Repository: ni/measurement-plugin-python (language: python)

Issue:
Rename 'ni_measurementlink_service' to 'ni_measurement_plugin_sdk'
- [x] This contribution adheres to [CONTRIBUTING.md](https://github.com/ni/measurement-services-python/blob/main/CONTRIBUTING.md).

### What does this Pull Request accomplish?

Renames the 'ni_measurementlink_service' to 'ni_measurement_plugin'.

### Why should this Pull Request be merged?

Remove references to 'MeasurementLink' and avoid users having to search for 'MeasurementLink' in pypi.org.

### What testing has been done?

Ran tests locally. A follow-up change will modify the examples to use this new package.


Discussion / hints:
## Test Results
    30 files  ±0      30 suites  ±0   50m 34s :stopwatch: +30s
   653 tests ±0     653 :white_check_mark: ±0      0 :zzz: ±0  0 :x: ±0 
16 210 runs  ±0  15 150 :white_check_mark: ±0  1 060 :zzz: ±0  0 :x: ±0 

Results for commit c58ac286. ± Comparison against base commit eb864aac.

[test-results]:data:application/gzip;base64,H4sIAAksX2YC/13MSw6DIBSF4a0Yxh0A8rh0Mw1FSEhVGh4j070XbVHb4f+d5CzI+dEmdO16fOlQKj4fNZSosw/z1j2rUse8zoL3rW6pGPNPD/+shHdw2o8/YGMM8SuxzOsnEZS0bKeEE37Y55VgsdPpd+vzrQnT5HMNZDhoQ0GAkVgqCpoqrSgeABzcHQPJGMVSWPR6A3q7IY0PAQAA

:recycle: This comment has been updated with latest results.

Fix patch:
diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md
index 15f091b5f..993ff022a 100644
--- a/.github/ISSUE_TEMPLATE/bug_report.md
+++ b/.github/ISSUE_TEMPLATE/bug_report.md
@@ -44,6 +44,6 @@ Search open/closed issues before submitting. Someone may have reported the same
 <!--- Include as many relevant details as possible about the environment you experienced the bug in -->
 
 * OS & Device: [e.g. macOS, Windows, Linux] on [Mac, PC]
-* `ni-measurement-plugin-sdk` version [e.g. 2.0.0]
+* `ni-measurement-plugin-sdk-service` version [e.g. 2.0.0]
 * MeasurementLink version [e.g. 23.0.0d123]
 * Python version [e.g. 3.9]
diff --git a/.github/workflows/check_nims.yml b/.github/workflows/check_nims.yml
index cb8ff2b53..4390f7653 100644
--- a/.github/workflows/check_nims.yml
+++ b/.github/workflows/check_nims.yml
@@ -26,45 +26,45 @@ jobs:
         uses: Gr1N/setup-poetry@v9
         with:
           poetry-version: ${{ env.POETRY_VERSION }}
-      - name: Check for lock changes (ni-measurement-plugin-sdk)
+      - name: Check for lock changes (ni-measurement-plugin-sdk-service)
         run: poetry lock --check
 
-      # ni-measurement-plugin-sdk, all extras
-      - name: Restore cached virtualenv (ni-measurement-plugin-sdk, all extras)
+      # ni-measurement-plugin-sdk-service, all extras
+      - name: Restore cached virtualenv (ni-measurement-plugin-sdk-service, all extras)
         uses: actions/cache/restore@v4
         id: restore-nims-all-extras
         with:
           path: .venv
-          key: ni-measurement-plugin-sdk-all-extras-${{ runner.os }}-py${{ steps.setup-python.outputs.python-version }}-${{ hashFiles('poetry.lock') }}
-      - name: Install ni-measurement-plugin-sdk (all extras)
+          key: ni-measurement-plugin-sdk-service-all-extras-${{ runner.os }}-py${{ steps.setup-python.outputs.python-version }}-${{ hashFiles('poetry.lock') }}
+      - name: Install ni-measurement-plugin-sdk-service (all extras)
         run: poetry install -v --all-extras
-      - name: Save cached virtualenv (ni-measurement-plugin-sdk, all extras)
+      - name: Save cached virtualenv (ni-measurement-plugin-sdk-service, all extras)
         uses: actions/cache/save@v4
         if: steps.restore-nims-all-extras.outputs.cache-hit != 'true'
         with:
           path: .venv
           key: ${{ steps.restore-nims-all-extras.outputs.cache-primary-key }}
-      - name: Lint ni-measurement-plugin-sdk
+      - name: Lint ni-measurement-plugin-sdk-service
         run: poetry run ni-python-styleguide lint
-      - name: Mypy static analysis (ni-measurement-plugin-sdk, Linux)
-        run:  poetry run mypy -p ni_measurement_plugin_sdk
-      - name: Mypy static analysis (ni-measurement-plugin-sdk, Windows)
-        run:  poetry run mypy -p ni_measurement_plugin_sdk --platform win32
+      - name: Mypy static analysis (ni-measurement-plugin-sdk-service, Linux)
+        run:  poetry run mypy -p ni_measurement_plugin_sdk_service
+      - name: Mypy static analysis (ni-measurement-plugin-sdk-service, Windows)
+        run:  poetry run mypy -p ni_measurement_plugin_sdk_service --platform win32
       - name: Mypy static analysis (tests, Linux)
         run:  poetry run mypy tests
       - name: Mypy static analysis (tests, Windows)
         run:  poetry run mypy tests --platform win32
 
-      # ni-measurement-plugin-sdk, all extras, docs
-      - name: Restore cached virtualenv (ni-measurement-plugin-sdk, all extras, docs)
+      # ni-measurement-plugin-sdk-service, all extras, docs
+      - name: Restore cached virtualenv (ni-measurement-plugin-sdk-service, all extras, docs)
         uses: actions/cache/restore@v4
         id: restore-nims-all-extras-docs
         with:
           path: .venv
-          key: ni-measurement-plugin-sdk-all-extras-docs-${{ runner.os }}-py${{ steps.setup-python.outputs.python-version }}-${{ hashFiles('poetry.lock') }}
-      - name: Install ni-measurement-plugin-sdk (all extras, docs)
+          key: ni-measurement-plugin-sdk-service-all-extras-docs-${{ runner.os }}-py${{ steps.setup-python.outputs.python-version }}-${{ hashFiles('poetry.lock') }}
+      - name: Install ni-measurement-plugin-sdk-service (all extras, docs)
         run: poetry install -v --all-extras --with docs
-      - name: Save cached virtualenv (ni-measurement-plugin-sdk, all extras, docs)
+      - name: Save cached virtualenv (ni-measurement-plugin-sdk-service, all extras, docs)
         uses: actions/cache/save@v4
         if: steps.restore-nims-all-extras-docs.outputs.cache-hit != 'true'
         with:
@@ -79,12 +79,12 @@ jobs:
         run:  git clean -dfx docs/ && git restore docs/
       - name: Generate gRPC stubs
         run: |
-          find ni_measurement_plugin_sdk/_internal/stubs/ -name \*_pb2.py\* -o -name \*_pb2_grpc.py\* -delete
+          find ni_measurement_plugin_sdk_service/_internal/stubs/ -name \*_pb2.py\* -o -name \*_pb2_grpc.py\* -delete
           find tests/utilities/stubs/ -name \*_pb2.py\* -o -name \*_pb2_grpc.py\* -delete
           poetry run python scripts/generate_grpc_stubs.py
       - name: Check for out-of-date gRPC stubs
         run:  git diff --exit-code
       - name: Revert gRPC stubs
         run: |
-          git clean -dfx ni_measurement_plugin_sdk/_internal/stubs/ tests/utilities/stubs/
-          git restore ni_measurement_plugin_sdk/_internal/stubs/ tests/utilities/stubs/
+          git clean -dfx ni_measurement_plugin_sdk_service/_internal/stubs/ tests/utilities/stubs/
+          git restore ni_measurement_plugin_sdk_service/_internal/stubs/ tests/utilities/stubs/
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index a68bfe68c..0f721e921 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -52,7 +52,7 @@ poetry install
 
 # Adding dependencies
 
-Add dependency package for `ni_measurement_plugin_sdk`  using the [`poetry add`](https://python-poetry.org/docs/cli/#add) command.
+Add dependency package for `ni_measurement_plugin_sdk_service`  using the [`poetry add`](https://python-poetry.org/docs/cli/#add) command.
 
 ```cmd
 poetry add <name_of_dependency>:<version>
@@ -66,7 +66,7 @@ poetry add -D <name_of_dev_dependency>:<version>
 
 # Updating gRPC stubs when a .proto file is modified
 
-The `ni_measurement_plugin_sdk\_internal\stubs` directory contains the auto-generated Python files based on MeasurementLink protobuf (`.proto`) files. The file needs to be replaced whenever there is a change to these `.proto` files:
+The `ni_measurement_plugin_sdk_service\_internal\stubs` directory contains the auto-generated Python files based on MeasurementLink protobuf (`.proto`) files. The file needs to be replaced whenever there is a change to these `.proto` files:
 
 - ni/measurementlink/pin_map_context.proto
 - ni/measurementlink/discovery/v1/discovery_service.proto
@@ -76,7 +76,7 @@ The `ni_measurement_plugin_sdk\_internal\stubs` directory contains the auto-gene
 - nidevice_grpc/README.md
 - nidevice_grpc/session.proto
 
-The latest .proto files are available in [Azure Repo](https://dev.azure.com/ni/DevCentral/_git/ASW?path=/Source/Protos). From the Azure Repo manually download and overwrite the `.proto` files under the `ni_measurement_plugin_sdk\_internal\stubs\proto` folder.
+The latest .proto files are available in [Azure Repo](https://dev.azure.com/ni/DevCentral/_git/ASW?path=/Source/Protos). From the Azure Repo manually download and overwrite the `.proto` files under the `ni_measurement_plugin_sdk_service\_internal\stubs\proto` folder.
 
 Run `poetry run python scripts/generate_grpc_stubs.py`. This generates the required `.py` files for the listed `.proto` files. The required `grpcio-tools` package is already added as a development dependency in pyproject.toml.
 
@@ -96,13 +96,13 @@ poetry run ni-python-styleguide fix
 poetry build
 ```
 
-Running this command from the repo's root directory will generate the tar.gz file and .whl file of ni_measurement_plugin_sdk package to the `dist` directory.
+Running this command from the repo's root directory will generate the tar.gz file and .whl file of ni_measurement_plugin_sdk_service package to the `dist` directory.
 
 # Testing
 
-`ni-measurement-plugin-sdk` includes regression tests under the `tests/` directory. The GitHub CI runs these tests for PRs targeting the main branch. It is recommended that during development you run the tests locally before creating a PR.
+`ni-measurement-plugin-sdk-service` includes regression tests under the `tests/` directory. The GitHub CI runs these tests for PRs targeting the main branch. It is recommended that during development you run the tests locally before creating a PR.
 
-In order to run the `ni-measurement-plugin-sdk` tests locally:
+In order to run the `ni-measurement-plugin-sdk-service` tests locally:
 
 ## Using Command Line
 
@@ -143,8 +143,8 @@ extension, refer
 
 - Install the required dependency by running `poetry install`
 - Activate the virtual environment if not already activated : `.venv\Scripts\activate`
-- Run the command `pytest --cov=ni_measurement_plugin_sdk`, from the repo's root directory **to get the summary of test coverage** in the console.
-- Run the command `pytest --cov-report html:cov_html --cov=ni_measurement_plugin_sdk`, from the repo's root directory **to generate detailed HTML based coverage report**. Upon running, the coverage reports will be created under `<repo_root>\cov_html` directory.
+- Run the command `pytest --cov=ni_measurement_plugin_sdk_service`, from the repo's root directory **to get the summary of test coverage** in the console.
+- Run the command `pytest --cov-report html:cov_html --cov=ni_measurement_plugin_sdk_service`, from the repo's root directory **to generate detailed HTML based coverage report**. Upon running, the coverage reports will be created under `<repo_root>\cov_html` directory.
 
 # Developer Certificate of Origin (DCO)
 
diff --git a/README.md b/README.md
index b3f2341c4..6d71f6564 100644
--- a/README.md
+++ b/README.md
@@ -15,13 +15,13 @@
   - [Appendix: Managing Measurement with Python](#appendix-managing-measurement-with-python)
     - [Create and Manage Python Measurement using Poetry](#create-and-manage-python-measurement-using-poetry)
     - [Create and Manage Python Measurement using `venv`](#create-and-manage-python-measurement-using-venv)
-    - [Create and Manage Python Measurement by directly installing `ni-measurement-plugin-sdk` as a system-level package](#create-and-manage-python-measurement-by-directly-installing-ni-measurement-plugin-sdk-as-a-system-level-package)
+    - [Create and Manage Python Measurement by directly installing `ni-measurement-plugin-sdk-service` as a system-level package](#create-and-manage-python-measurement-by-directly-installing-ni-measurement-plugin-sdk-service-as-a-system-level-package)
 
 ---
 
 ## Introduction
 
-Measurement Plugin Support for Python (`ni-measurement-plugin-sdk`) is a Python
+Measurement Plugin Support for Python (`ni-measurement-plugin-sdk-service`) is a Python
 framework that helps you create reusable measurement plug-ins using gRPC
 services. Deploy your measurement plug-ins to perform interactive validation in
 InstrumentStudio and automated testing in TestStand.
@@ -91,13 +91,13 @@ Make sure the system has the recommended Python version is installed. Install Me
 
 ``` cmd
 REM Activate the required virtual environment if any.
-pip install ni-measurement-plugin-sdk
+pip install ni-measurement-plugin-sdk-service
 ```
 
 Check if you have installed the expected version of Measurement Plugin Support for Python installed by running the below command:
 
 ```cmd
-pip show ni-measurement-plugin-sdk
+pip show ni-measurement-plugin-sdk-service
 ```
 
 ### Developing a minimal Python measurement
@@ -273,7 +273,7 @@ Python communities have different ways of managing Python projects and their dep
 
     2. Install `poetry` using the installation steps given in <https://python-poetry.org/docs/#installation>.
 
-2. Create a new Python project and add `ni-measurement-plugin-sdk` as a dependency to the project.
+2. Create a new Python project and add `ni-measurement-plugin-sdk-service` as a dependency to the project.
 
     1. Open a command prompt, and change the working directory to the directory of your choice where you want to create the project.
 
@@ -287,11 +287,11 @@ Python communities have different ways of managing Python projects and their dep
         poetry new <name_of_the_project>
         ```
 
-    3. Add the `ni-measurement-plugin-sdk` package as a dependency using the [`poetry add`](https://python-poetry.org/docs/cli/#add) command.
+    3. Add the `ni-measurement-plugin-sdk-service` package as a dependency using the [`poetry add`](https://python-poetry.org/docs/cli/#add) command.
 
         ``` cmd
         cd <name_of_the_project>
-        poetry add ni-measurement-plugin-sdk
+        poetry add ni-measurement-plugin-sdk-service
         ```
 
     4. The virtual environment will be auto-created by poetry.
@@ -330,10 +330,10 @@ For detailed info on managing projects using poetry [refer to the official docum
     python -m pip install -U pip
     ```
 
-5. Install the `ni-measurement-plugin-sdk` package into the virtual environment.
+5. Install the `ni-measurement-plugin-sdk-service` package into the virtual environment.
 
     ``` cmd
-    pip install ni-measurement-plugin-sdk
+    pip install ni-measurement-plugin-sdk-service
     ```
 
 6. Create measurement modules as described in ["Developing a minimal Python measurement"](#developing-a-minimal-python-measurement)
@@ -345,14 +345,14 @@ For detailed info on managing projects using poetry [refer to the official docum
 
 For detailed info on managing projects with a virtual environment, refer to the [official documentation](https://docs.python.org/3/tutorial/venv.html).
 
-### Create and Manage Python Measurement by directly installing `ni-measurement-plugin-sdk` as a system-level package
+### Create and Manage Python Measurement by directly installing `ni-measurement-plugin-sdk-service` as a system-level package
 
-Measurement developers can also install `ni-measurement-plugin-sdk` as a system package if necessary.
+Measurement developers can also install `ni-measurement-plugin-sdk-service` as a system package if necessary.
 
-1. Install the `ni-measurement-plugin-sdk` package from the command prompt
+1. Install the `ni-measurement-plugin-sdk-service` package from the command prompt
 
     ``` cmd
-    pip install ni-measurement-plugin-sdk
+    pip install ni-measurement-plugin-sdk-service
     ```
 
 2. Create measurement modules as described in ["Developing a minimal Python measurement"](#developing-a-minimal-python-measurement)
diff --git a/_docs_source/conf.py b/_docs_source/conf.py
index a94a7be75..4c208639e 100644
--- a/_docs_source/conf.py
+++ b/_docs_source/conf.py
@@ -46,14 +46,14 @@
 # tell autoapi to doc the public options
 autoapi_options = list(autoapi.extension._DEFAULT_OPTIONS)
 autoapi_options.remove("private-members")  # note: remove this to include "_" members in docs
-autoapi_dirs = [root_path / "ni_measurement_plugin_sdk"]
+autoapi_dirs = [root_path / "ni_measurement_plugin_sdk_service"]
 autoapi_type = "python"
 autodoc_typehints = "description"
 
 
 # WARNING: more than one target found for cross-reference 'MeasurementInfo':
-# ni_measurement_plugin_sdk.MeasurementInfo,
-# ni_measurement_plugin_sdk.measurement.info.MeasurementInfo
+# ni_measurement_plugin_sdk_service.MeasurementInfo,
+# ni_measurement_plugin_sdk_service.measurement.info.MeasurementInfo
 #
 # TODO: figure out how to make :canonical: work with autoapi
 def skip_aliases(app, what, name, obj, skip, options):
@@ -61,16 +61,16 @@ def skip_aliases(app, what, name, obj, skip, options):
     # For names that are defined in a public sub-module and aliased into a
     # public package, hide the alias.
     if name in [
-        "ni_measurement_plugin_sdk.DataType",
-        "ni_measurement_plugin_sdk.MeasurementInfo",
-        "ni_measurement_plugin_sdk.ServiceInfo",
-        "ni_measurement_plugin_sdk.MeasurementService",
+        "ni_measurement_plugin_sdk_service.DataType",
+        "ni_measurement_plugin_sdk_service.MeasurementInfo",
+        "ni_measurement_plugin_sdk_service.ServiceInfo",
+        "ni_measurement_plugin_sdk_service.MeasurementService",
     ]:
         skip = True
 
     # For names that are defined in a private sub-module and aliased into a
     # public package, hide the definition.
-    if name.startswith("ni_measurement_plugin_sdk.session_management._constants."):
+    if name.startswith("ni_measurement_plugin_sdk_service.session_management._constants."):
         skip = True
 
     return skip
diff --git a/examples/.env.sample b/examples/.env.sample
index f3991b1aa..a7722efe9 100644
--- a/examples/.env.sample
+++ b/examples/.env.sample
@@ -1,4 +1,4 @@
-# This is a sample ni-measurement-plugin-sdk configuration file.
+# This is a sample ni-measurement-plugin-sdk-service configuration file.
 #
 # To use it:
 # - Copy this file to your service's directory or one of its parent directories
diff --git a/examples/.env.simulation b/examples/.env.simulation
index 863418489..6e7715bb0 100644
--- a/examples/.env.simulation
+++ b/examples/.env.simulation
@@ -1,4 +1,4 @@
-# This is a sample ni-measurement-plugin-sdk configuration file that enables
+# This is a sample ni-measurement-plugin-sdk-service configuration file that enables
 # simulated devices for NI modular instrument drivers and VISA example
 # measurements.
 #
diff --git a/examples/README.md b/examples/README.md
index 5ac74a332..b2a3413fb 100644
--- a/examples/README.md
+++ b/examples/README.md
@@ -50,7 +50,7 @@ The example measurements are *Poetry-based* projects. Follow the steps below to
     REM Example: cd "..\measurementlink-python\examples\dc_measurement"
     ```
 
-3. Run `poetry install`. This command creates/updates the virtual environment (`.venv`) and installs the needed dependencies (including `ni-measurement-plugin-sdk` package) into the virtual environment.
+3. Run `poetry install`. This command creates/updates the virtual environment (`.venv`) and installs the needed dependencies (including `ni-measurement-plugin-sdk-service` package) into the virtual environment.
 
     ``` cmd
     poetry install
diff --git a/examples/game_of_life/measurement.py b/examples/game_of_life/measurement.py
index eb11d7839..ec9980e15 100644
--- a/examples/game_of_life/measurement.py
+++ b/examples/game_of_life/measurement.py
@@ -8,9 +8,9 @@
 
 import click
 import grpc
-import ni_measurement_plugin_sdk as nims
+import ni_measurement_plugin_sdk_service as nims
 from _helpers import configure_logging, verbosity_option
-from ni_measurement_plugin_sdk._internal.stubs.ni.protobuf.types import xydata_pb2
+from ni_measurement_plugin_sdk_service._internal.stubs.ni.protobuf.types import xydata_pb2
 
 service_directory = pathlib.Path(__file__).resolve().parent
 measurement_service = nims.MeasurementService(
diff --git a/examples/game_of_life/pyproject.toml b/examples/game_of_life/pyproject.toml
index 9a57a821a..caf701036 100644
--- a/examples/game_of_life/pyproject.toml
+++ b/examples/game_of_life/pyproject.toml
@@ -7,7 +7,7 @@ authors = ["National Instruments"]
 
 [tool.poetry.dependencies]
 python = "^3.8"
-# ni-measurement-plugin-sdk = {version = "^1.3.0"}
+# ni-measurement-plugin-sdk-service = {version = "^1.3.0"}
 click = ">=7.1.2, !=8.1.4" # mypy fails with click 8.1.4: https://github.com/pallets/click/issues/2558
 
 [tool.poetry.group.dev.dependencies]
@@ -16,7 +16,7 @@ mypy = ">=1.0"
 grpc-stubs = "^1.53"
 types-protobuf = "^4.21"
 # Uncomment to use prerelease dependencies.
-ni-measurement-plugin-sdk = {path = "../..", develop = true}
+ni-measurement-plugin-sdk-service = {path = "../..", develop = true}
 
 [tool.mypy]
 disallow_untyped_defs = true
diff --git a/examples/nidaqmx_analog_input/measurement.py b/examples/nidaqmx_analog_input/measurement.py
index 326c74498..c86a514b7 100644
--- a/examples/nidaqmx_analog_input/measurement.py
+++ b/examples/nidaqmx_analog_input/measurement.py
@@ -6,7 +6,7 @@
 from typing import List, Tuple
 
 import click
-import ni_measurement_plugin_sdk as nims
+import ni_measurement_plugin_sdk_service as nims
 from _helpers import (
     configure_logging,
     verbosity_option,
diff --git a/examples/nidaqmx_analog_input/pyproject.toml b/examples/nidaqmx_analog_input/pyproject.toml
index 201d758e5..96a67a37b 100644
--- a/examples/nidaqmx_analog_input/pyproject.toml
+++ b/examples/nidaqmx_analog_input/pyproject.toml
@@ -8,7 +8,7 @@ authors = ["National Instruments"]
 [tool.poetry.dependencies]
 python = "^3.8"
 nidaqmx = { version = ">=0.8.0", extras = ["grpc"] }
-# ni-measurement-plugin-sdk = {version = "^1.5.0-dev0", allow-prereleases = true}
+# ni-measurement-plugin-sdk-service = {version = "^1.5.0-dev0", allow-prereleases = true}
 click = ">=7.1.2, !=8.1.4" # mypy fails with click 8.1.4: https://github.com/pallets/click/issues/2558
 
 [tool.poetry.group.dev.dependencies]
@@ -17,7 +17,7 @@ mypy = ">=1.0"
 grpc-stubs = "^1.53"
 # Uncomment to use prerelease dependencies.
 # nidaqmx = { git = "https://github.com/ni/nidaqmx-python.git", branch = "master", extras = ["grpc"] }
-ni-measurement-plugin-sdk = {path = "../..", develop = true}
+ni-measurement-plugin-sdk-service = {path = "../..", develop = true}
 
 [build-system]
 requires = ["poetry-core>=1.0.0"]
diff --git a/examples/nidcpower_source_dc_voltage/measurement.py b/examples/nidcpower_source_dc_voltage/measurement.py
index 3782dcc5f..96a54acda 100644
--- a/examples/nidcpower_source_dc_voltage/measurement.py
+++ b/examples/nidcpower_source_dc_voltage/measurement.py
@@ -13,7 +13,7 @@
 import click
 import grpc
 import hightime
-import ni_measurement_plugin_sdk as nims
+import ni_measurement_plugin_sdk_service as nims
 import nidcpower
 import nidcpower.session
 from _helpers import configure_logging, verbosity_option
diff --git a/examples/nidcpower_source_dc_voltage/pyproject.toml b/examples/nidcpower_source_dc_voltage/pyproject.toml
index 179ed0972..99eda8d00 100644
--- a/examples/nidcpower_source_dc_voltage/pyproject.toml
+++ b/examples/nidcpower_source_dc_voltage/pyproject.toml
@@ -8,7 +8,7 @@ authors = ["National Instruments"]
 [tool.poetry.dependencies]
 python = "^3.8"
 nidcpower = { version = ">=1.4.4", extras = ["grpc"] }
-# ni-measurement-plugin-sdk = {version = "^1.5.0-dev0", allow-prereleases = true}
+# ni-measurement-plugin-sdk-service = {version = "^1.5.0-dev0", allow-prereleases = true}
 click = ">=7.1.2, !=8.1.4" # mypy fails with click 8.1.4: https://github.com/pallets/click/issues/2558
 grpcio = "*"
 
@@ -18,7 +18,7 @@ mypy = ">=1.0"
 grpc-stubs = "^1.53"
 # Uncomment to use prerelease dependencies.
 # nidcpower = { git = "https://github.com/ni/nimi-python.git", subdirectory = "generated/nidcpower", extras = ["grpc"] }
-ni-measurement-plugin-sdk = {path = "../..", develop = true}
+ni-measurement-plugin-sdk-service = {path = "../..", develop = true}
 
 [build-system]
 requires = ["poetry-core>=1.0.0"]
diff --git a/examples/nidcpower_source_dc_voltage_with_multiplexer/measurement.py b/examples/nidcpower_source_dc_voltage_with_multiplexer/measurement.py
index 669f2f13c..dc06266a3 100644
--- a/examples/nidcpower_source_dc_voltage_with_multiplexer/measurement.py
+++ b/examples/nidcpower_source_dc_voltage_with_multiplexer/measurement.py
@@ -12,7 +12,7 @@
 import click
 import grpc
 import hightime
-import ni_measurement_plugin_sdk as nims
+import ni_measurement_plugin_sdk_service as nims
 import nidcpower
 import nidcpower.session
 import niswitch.session
diff --git a/examples/nidcpower_source_dc_voltage_with_multiplexer/pyproject.toml b/examples/nidcpower_source_dc_voltage_with_multiplexer/pyproject.toml
index fb730d878..323de92be 100644
--- a/examples/nidcpower_source_dc_voltage_with_multiplexer/pyproject.toml
+++ b/examples/nidcpower_source_dc_voltage_with_multiplexer/pyproject.toml
@@ -9,7 +9,7 @@ authors = ["National Instruments"]
 python = "^3.8"
 nidcpower = { version = ">=1.4.4", extras = ["grpc"] }
 niswitch = { version = ">=1.4.4", extras = ["grpc"] }
-# ni-measurement-plugin-sdk = {version = "^1.5.0-dev0", allow-prereleases = true}
+# ni-measurement-plugin-sdk-service = {version = "^1.5.0-dev0", allow-prereleases = true}
 click = ">=7.1.2, !=8.1.4" # mypy fails with click 8.1.4: https://github.com/pallets/click/issues/2558
 grpcio = "*"
 
@@ -20,7 +20,7 @@ grpc-stubs = "^1.53"
 # Uncomment to use prerelease dependencies.
 # nidcpower = { git = "https://github.com/ni/nimi-python.git", subdirectory = "generated/nidcpower", extras = ["grpc"] }
 # niswitch = { git = "https://github.com/ni/nimi-python.git", subdirectory = "generated/niswitch", extras = ["grpc"] }
-ni-measurement-plugin-sdk = {path = "../..", develop = true}
+ni-measurement-plugin-sdk-service = {path = "../..", develop = true}
 
 [build-system]
 requires = ["poetry-core>=1.0.0"]
diff --git a/examples/nidigital_spi/measurement.py b/examples/nidigital_spi/measurement.py
index e0da44d6d..3abe60df3 100644
--- a/examples/nidigital_spi/measurement.py
+++ b/examples/nidigital_spi/measurement.py
@@ -6,7 +6,7 @@
 from typing import Iterable, Tuple, Union
 
 import click
-import ni_measurement_plugin_sdk as nims
+import ni_measurement_plugin_sdk_service as nims
 import nidigital
 from _helpers import configure_logging, verbosity_option
 
diff --git a/examples/nidigital_spi/pyproject.toml b/examples/nidigital_spi/pyproject.toml
index 493b477a8..9ed681a00 100644
--- a/examples/nidigital_spi/pyproject.toml
+++ b/examples/nidigital_spi/pyproject.toml
@@ -8,7 +8,7 @@ authors = ["National Instruments"]
 [tool.poetry.dependencies]
 python = "^3.8"
 nidigital = { version = ">=1.4.4", extras = ["grpc"] }
-# ni-measurement-plugin-sdk = {version = "^1.5.0-dev0", allow-prereleases = true}
+# ni-measurement-plugin-sdk-service = {version = "^1.5.0-dev0", allow-prereleases = true}
 click = ">=7.1.2, !=8.1.4" # mypy fails with click 8.1.4: https://github.com/pallets/click/issues/2558
 grpcio = "*"
 
@@ -18,7 +18,7 @@ mypy = ">=1.0"
 grpc-stubs = "^1.53"
 # Uncomment to use prerelease dependencies.
 # nidigital = { git = "https://github.com/ni/nimi-python.git", subdirectory = "generated/nidigital", extras = ["grpc"] }
-ni-measurement-plugin-sdk = {path = "../..", develop = true}
+ni-measurement-plugin-sdk-service = {path = "../..", develop = true}
 
 [build-system]
 requires = ["poetry-core>=1.0.0"]
diff --git a/examples/nidmm_measurement/measurement.py b/examples/nidmm_measurement/measurement.py
index 1ce02db93..a4bd5a684 100644
--- a/examples/nidmm_measurement/measurement.py
+++ b/examples/nidmm_measurement/measurement.py
@@ -8,7 +8,7 @@
 from typing import Tuple
 
 import click
-import ni_measurement_plugin_sdk as nims
+import ni_measurement_plugin_sdk_service as nims
 import nidmm
 from _helpers import configure_logging, verbosity_option
 
diff --git a/examples/nidmm_measurement/pyproject.toml b/examples/nidmm_measurement/pyproject.toml
index 231ebe83a..a28899b6d 100644
--- a/examples/nidmm_measurement/pyproject.toml
+++ b/examples/nidmm_measurement/pyproject.toml
@@ -8,7 +8,7 @@ authors = ["National Instruments"]
 [tool.poetry.dependencies]
 python = "^3.8"
 nidmm = { version = ">=1.4.4", extras = ["grpc"] }
-# ni-measurement-plugin-sdk = {version = "^1.5.0-dev0", allow-prereleases = true}
+# ni-measurement-plugin-sdk-service = {version = "^1.5.0-dev0", allow-prereleases = true}
 click = ">=7.1.2, !=8.1.4" # mypy fails with click 8.1.4: https://github.com/pallets/click/issues/2558
 grpcio = "*"
 
@@ -18,7 +18,7 @@ mypy = ">=1.0"
 grpc-stubs = "^1.53"
 # Uncomment to use prerelease dependencies.
 # nidmm = { git = "https://github.com/ni/nimi-python.git", subdirectory = "generated/nidmm", extras = ["grpc"] }
-ni-measurement-plugin-sdk = {path = "../..", develop = true}
+ni-measurement-plugin-sdk-service = {path = "../..", develop = true}
 
 [build-system]
 requires = ["poetry-core>=1.0.0"]
diff --git a/examples/nifgen_standard_function/measurement.py b/examples/nifgen_standard_function/measurement.py
index 93e192756..d4d9ea068 100644
--- a/examples/nifgen_standard_function/measurement.py
+++ b/examples/nifgen_standard_function/measurement.py
@@ -12,7 +12,7 @@
 import click
 import grpc
 import hightime
-import ni_measurement_plugin_sdk as nims
+import ni_measurement_plugin_sdk_service as nims
 import nifgen
 from _helpers import configure_logging, verbosity_option
 
diff --git a/examples/nifgen_standard_function/pyproject.toml b/examples/nifgen_standard_function/pyproject.toml
index 526ad4a46..0451380d0 100644
--- a/examples/nifgen_standard_function/pyproject.toml
+++ b/examples/nifgen_standard_function/pyproject.toml
@@ -8,7 +8,7 @@ authors = ["National Instruments"]
 [tool.poetry.dependencies]
 python = "^3.8"
 nifgen = { version = ">=1.4.4", extras = ["grpc"] }
-# ni-measurement-plugin-sdk = {version = "^1.3.0-dev0", allow-prereleases = true}
+# ni-measurement-plugin-sdk-service = {version = "^1.3.0-dev0", allow-prereleases = true}
 click = ">=7.1.2, !=8.1.4" # mypy fails with click 8.1.4: https://github.com/pallets/click/issues/2558
 grpcio = "*"
 
@@ -18,7 +18,7 @@ mypy = ">=1.0"
 grpc-stubs = "^1.53"
 # Uncomment to use prerelease dependencies.
 # nifgen = { git = "https://github.com/ni/nimi-python.git", subdirectory = "generated/nifgen", extras = ["grpc"] }
-ni-measurement-plugin-sdk = {path = "../..", develop = true}
+ni-measurement-plugin-sdk-service = {path = "../..", develop = true}
 
 [build-system]
 requires = ["poetry-core>=1.0.0"]
diff --git a/examples/niscope_acquire_waveform/measurement.py b/examples/niscope_acquire_waveform/measurement.py
index f1e1e1c2e..44cfb094e 100644
--- a/examples/niscope_acquire_waveform/measurement.py
+++ b/examples/niscope_acquire_waveform/measurement.py
@@ -9,7 +9,7 @@
 
 import click
 import grpc
-import ni_measurement_plugin_sdk as nims
+import ni_measurement_plugin_sdk_service as nims
 import niscope
 from _helpers import configure_logging, verbosity_option
 
diff --git a/examples/niscope_acquire_waveform/pyproject.toml b/examples/niscope_acquire_waveform/pyproject.toml
index 2876ddb24..3f013ff9f 100644
--- a/examples/niscope_acquire_waveform/pyproject.toml
+++ b/examples/niscope_acquire_waveform/pyproject.toml
@@ -8,7 +8,7 @@ authors = ["National Instruments"]
 [tool.poetry.dependencies]
 python = "^3.8"
 niscope = { version = ">=1.4.4", extras = ["grpc"] }
-# ni-measurement-plugin-sdk = {version = "^1.5.0-dev0", allow-prereleases = true}
+# ni-measurement-plugin-sdk-service = {version = "^1.5.0-dev0", allow-prereleases = true}
 click = ">=7.1.2, !=8.1.4" # mypy fails with click 8.1.4: https://github.com/pallets/click/issues/2558
 grpcio = "*"
 
@@ -18,7 +18,7 @@ mypy = ">=1.0"
 grpc-stubs = "^1.53"
 # Uncomment to use prerelease dependencies.
 # niscope = { git = "https://github.com/ni/nimi-python.git", subdirectory = "generated/niscope", extras = ["grpc"] }
-ni-measurement-plugin-sdk = {path = "../..", develop = true}
+ni-measurement-plugin-sdk-service = {path = "../..", develop = true}
 
 [build-system]
 requires = ["poetry-core>=1.0.0"]
diff --git a/examples/niswitch_control_relays/measurement.py b/examples/niswitch_control_relays/measurement.py
index 517bb455e..c9a883477 100644
--- a/examples/niswitch_control_relays/measurement.py
+++ b/examples/niswitch_control_relays/measurement.py
@@ -6,7 +6,7 @@
 from typing import Tuple
 
 import click
-import ni_measurement_plugin_sdk as nims
+import ni_measurement_plugin_sdk_service as nims
 from _helpers import configure_logging, verbosity_option
 from niswitch.enums import RelayAction
 
diff --git a/examples/niswitch_control_relays/pyproject.toml b/examples/niswitch_control_relays/pyproject.toml
index 62f503a06..d91f98326 100644
--- a/examples/niswitch_control_relays/pyproject.toml
+++ b/examples/niswitch_control_relays/pyproject.toml
@@ -8,7 +8,7 @@ authors = ["National Instruments"]
 [tool.poetry.dependencies]
 python = "^3.8"
 niswitch = { version = ">=1.4.4", extras = ["grpc"] }
-# ni-measurement-plugin-sdk = {version = "^1.4.0"}
+# ni-measurement-plugin-sdk-service = {version = "^1.4.0"}
 click = ">=7.1.2, !=8.1.4" # mypy fails with click 8.1.4: https://github.com/pallets/click/issues/2558
 grpcio = "*"
 
@@ -18,7 +18,7 @@ mypy = ">=1.0"
 grpc-stubs = "^1.53"
 # Uncomment to use prerelease dependencies.
 # niswitch = { git = "https://github.com/ni/nimi-python.git", subdirectory = "generated/niswitch", extras = ["grpc"] }
-ni-measurement-plugin-sdk = {path = "../..", develop = true}
+ni-measurement-plugin-sdk-service = {path = "../..", develop = true}
 
 [build-system]
 requires = ["poetry-core>=1.0.0"]
diff --git a/examples/nivisa_dmm_measurement/_visa_dmm_session_management.py b/examples/nivisa_dmm_measurement/_visa_dmm_session_management.py
index 117d14fe1..5625a55d3 100644
--- a/examples/nivisa_dmm_measurement/_visa_dmm_session_management.py
+++ b/examples/nivisa_dmm_measurement/_visa_dmm_session_management.py
@@ -3,8 +3,8 @@
 from _visa_dmm import Session
 from _visa_grpc import build_visa_grpc_resource_string, get_visa_grpc_insecure_address
 from decouple import AutoConfig
-from ni_measurement_plugin_sdk.discovery import DiscoveryClient
-from ni_measurement_plugin_sdk.session_management import (
+from ni_measurement_plugin_sdk_service.discovery import DiscoveryClient
+from ni_measurement_plugin_sdk_service.session_management import (
     SessionInformation,
     SessionInitializationBehavior,
 )
diff --git a/examples/nivisa_dmm_measurement/_visa_grpc.py b/examples/nivisa_dmm_measurement/_visa_grpc.py
index c600b8d61..b43b96864 100644
--- a/examples/nivisa_dmm_measurement/_visa_grpc.py
+++ b/examples/nivisa_dmm_measurement/_visa_grpc.py
@@ -1,8 +1,8 @@
 from urllib.parse import urlencode, urlsplit
 
 from decouple import AutoConfig
-from ni_measurement_plugin_sdk.discovery import DiscoveryClient
-from ni_measurement_plugin_sdk.session_management import SessionInitializationBehavior
+from ni_measurement_plugin_sdk_service.discovery import DiscoveryClient
+from ni_measurement_plugin_sdk_service.session_management import SessionInitializationBehavior
 
 _INITIALIZATION_BEHAVIOR = {
     SessionInitializationBehavior.AUTO: 0,
diff --git a/examples/nivisa_dmm_measurement/measurement.py b/examples/nivisa_dmm_measurement/measurement.py
index 78a05dac1..6fff20884 100644
--- a/examples/nivisa_dmm_measurement/measurement.py
+++ b/examples/nivisa_dmm_measurement/measurement.py
@@ -6,7 +6,7 @@
 from typing import Tuple
 
 import click
-import ni_measurement_plugin_sdk as nims
+import ni_measurement_plugin_sdk_service as nims
 from _helpers import configure_logging, verbosity_option
 from _visa_dmm import INSTRUMENT_TYPE_VISA_DMM, Function
 from _visa_dmm_session_management import VisaDmmSessionConstructor
diff --git a/examples/nivisa_dmm_measurement/pyproject.toml b/examples/nivisa_dmm_measurement/pyproject.toml
index 4f506f764..81ab0aa49 100644
--- a/examples/nivisa_dmm_measurement/pyproject.toml
+++ b/examples/nivisa_dmm_measurement/pyproject.toml
@@ -7,7 +7,7 @@ authors = ["National Instruments"]
 
 [tool.poetry.dependencies]
 python = "^3.8"
-# ni-measurement-plugin-sdk = {version = "^1.5.0-dev0", allow-prereleases = true}
+# ni-measurement-plugin-sdk-service = {version = "^1.5.0-dev0", allow-prereleases = true}
 PyVISA = "^1.13.0"
 PyVISA-sim = "^0.5.1"
 click = ">=7.1.2, !=8.1.4" # mypy fails with click 8.1.4: https://github.com/pallets/click/issues/2558
@@ -19,7 +19,7 @@ ni-python-styleguide = ">=0.4.1"
 mypy = ">=1.0"
 grpc-stubs = "^1.53"
 # Uncomment to use prerelease dependencies.
-ni-measurement-plugin-sdk = {path = "../..", develop = true}
+ni-measurement-plugin-sdk-service = {path = "../..", develop = true}
 
 [build-system]
 requires = ["poetry-core>=1.0.0"]
diff --git a/examples/output_voltage_measurement/_visa_dmm_session_management.py b/examples/output_voltage_measurement/_visa_dmm_session_management.py
index 117d14fe1..5625a55d3 100644
--- a/examples/output_voltage_measurement/_visa_dmm_session_management.py
+++ b/examples/output_voltage_measurement/_visa_dmm_session_management.py
@@ -3,8 +3,8 @@
 from _visa_dmm import Session
 from _visa_grpc import build_visa_grpc_resource_string, get_visa_grpc_insecure_address
 from decouple import AutoConfig
-from ni_measurement_plugin_sdk.discovery import DiscoveryClient
-from ni_measurement_plugin_sdk.session_management import (
+from ni_measurement_plugin_sdk_service.discovery import DiscoveryClient
+from ni_measurement_plugin_sdk_service.session_management import (
     SessionInformation,
     SessionInitializationBehavior,
 )
diff --git a/examples/output_voltage_measurement/_visa_grpc.py b/examples/output_voltage_measurement/_visa_grpc.py
index c600b8d61..b43b96864 100644
--- a/examples/output_voltage_measurement/_visa_grpc.py
+++ b/examples/output_voltage_measurement/_visa_grpc.py
@@ -1,8 +1,8 @@
 from urllib.parse import urlencode, urlsplit
 
 from decouple import AutoConfig
-from ni_measurement_plugin_sdk.discovery import DiscoveryClient
-from ni_measurement_plugin_sdk.session_management import SessionInitializationBehavior
+from ni_measurement_plugin_sdk_service.discovery import DiscoveryClient
+from ni_measurement_plugin_sdk_service.session_management import SessionInitializationBehavior
 
 _INITIALIZATION_BEHAVIOR = {
     SessionInitializationBehavior.AUTO: 0,
diff --git a/examples/output_voltage_measurement/measurement.py b/examples/output_voltage_measurement/measurement.py
index 4c31f599e..4959a0b75 100644
--- a/examples/output_voltage_measurement/measurement.py
+++ b/examples/output_voltage_measurement/measurement.py
@@ -10,7 +10,7 @@
 import click
 import grpc
 import hightime
-import ni_measurement_plugin_sdk as nims
+import ni_measurement_plugin_sdk_service as nims
 import nidcpower
 import nidcpower.session
 from _helpers import configure_logging, verbosity_option
diff --git a/examples/output_voltage_measurement/pyproject.toml b/examples/output_voltage_measurement/pyproject.toml
index a1e4e04d2..cfb658500 100644
--- a/examples/output_voltage_measurement/pyproject.toml
+++ b/examples/output_voltage_measurement/pyproject.toml
@@ -7,7 +7,7 @@ authors = ["National Instruments"]
 
 [tool.poetry.dependencies]
 python = "^3.8"
-# ni-measurement-plugin-sdk = {version = "^1.5.0-dev0", allow-prereleases = true}
+# ni-measurement-plugin-sdk-service = {version = "^1.5.0-dev0", allow-prereleases = true}
 PyVISA = "^1.13.0"
 PyVISA-sim = "^0.5.1"
 nidcpower = { version = ">=1.4.4", extras = ["grpc"] }
@@ -21,7 +21,7 @@ mypy = ">=1.0"
 grpc-stubs = "^1.53"
 # Uncomment to use prerelease dependencies.
 # nidcpower = { git = "https://github.com/ni/nimi-python.git", subdirectory = "generated/nidcpower", extras=["grpc"] }
-ni-measurement-plugin-sdk = {path = "../..", develop = true}
+ni-measurement-plugin-sdk-service = {path = "../..", develop = true}
 
 [build-system]
 requires = ["poetry-core>=1.0.0"]
diff --git a/examples/sample_measurement/measurement.py b/examples/sample_measurement/measurement.py
index 308823834..6da1eaf82 100644
--- a/examples/sample_measurement/measurement.py
+++ b/examples/sample_measurement/measurement.py
@@ -7,7 +7,7 @@
 from typing import Iterable, Tuple
 
 import click
-import ni_measurement_plugin_sdk as nims
+import ni_measurement_plugin_sdk_service as nims
 from _helpers import configure_logging, verbosity_option
 
 try:
diff --git a/examples/sample_measurement/pyproject.toml b/examples/sample_measurement/pyproject.toml
index 6e27ef9d5..0a86add24 100644
--- a/examples/sample_measurement/pyproject.toml
+++ b/examples/sample_measurement/pyproject.toml
@@ -7,7 +7,7 @@ authors = ["National Instruments"]
 
 [tool.poetry.dependencies]
 python = "^3.8"
-# ni-measurement-plugin-sdk = {version = "^1.3.0"}
+# ni-measurement-plugin-sdk-service = {version = "^1.3.0"}
 click = ">=7.1.2, !=8.1.4" # mypy fails with click 8.1.4: https://github.com/pallets/click/issues/2558
 
 [tool.poetry.group.dev.dependencies]
@@ -16,7 +16,7 @@ mypy = ">=1.0"
 grpc-stubs = "^1.53"
 types-protobuf = "^4.21"
 # Uncomment to use prerelease dependencies.
-ni-measurement-plugin-sdk = {path = "../..", develop = true}
+ni-measurement-plugin-sdk-service = {path = "../..", develop = true}
 
 [build-system]
 requires = ["poetry-core>=1.0.0"]
diff --git a/ni_measurement_plugin_generator/README.md b/ni_measurement_plugin_generator/README.md
index 9040102b7..1e8219f98 100644
--- a/ni_measurement_plugin_generator/README.md
+++ b/ni_measurement_plugin_generator/README.md
@@ -7,7 +7,7 @@
 MeasurementLink Code Generator for Python (`ni-measurement-plugin-generator`) is a
 tool for generating reusable measurement plug-ins using gRPC services.
 
-For installation and usage, see [Measurement Plugin Support for Python (`ni-measurement-plugin-sdk`)](https://pypi.org/project/ni-measurement-plugin-sdk/).
+For installation and usage, see [Measurement Plugin Support for Python (`ni-measurement-plugin-sdk-service`)](https://pypi.org/project/ni-measurement-plugin-sdk-service/).
 
 ---
 
diff --git a/ni_measurement_plugin_generator/ni_measurement_plugin_generator/templates/measurement.py.mako b/ni_measurement_plugin_generator/ni_measurement_plugin_generator/templates/measurement.py.mako
index 313668444..7c6da5af6 100644
--- a/ni_measurement_plugin_generator/ni_measurement_plugin_generator/templates/measurement.py.mako
+++ b/ni_measurement_plugin_generator/ni_measurement_plugin_generator/templates/measurement.py.mako
@@ -7,7 +7,7 @@ import pathlib
 import sys
 
 import click
-import ni_measurement_plugin_sdk as nims
+import ni_measurement_plugin_sdk_service as nims
 
 script_or_exe = sys.executable if getattr(sys, "frozen", False) else __file__
 service_directory = pathlib.Path(script_or_exe).resolve().parent
diff --git a/ni_measurement_plugin_sdk/_internal/discovery_client.py b/ni_measurement_plugin_sdk/_internal/discovery_client.py
deleted file mode 100644
index 3681146ab..000000000
--- a/ni_measurement_plugin_sdk/_internal/discovery_client.py
+++ /dev/null
@@ -1,19 +0,0 @@
-"""Redirect internal discovery client API to the public API."""
-
-import warnings
-
-from deprecation import DeprecatedWarning
-
-from ni_measurement_plugin_sdk.discovery._client import DiscoveryClient
-from ni_measurement_plugin_sdk.discovery._types import ServiceLocation
-
-__all__ = ["DiscoveryClient", "ServiceLocation"]
-
-warnings.warn(
-    DeprecatedWarning(
-        "ni_measurement_plugin_sdk._internal.discovery_client",
-        deprecated_in="1.3.0",
-        removed_in=None,
-        details="Use ni_measurement_plugin_sdk.discovery instead.",
-    ),
-)
diff --git a/ni_measurement_plugin_sdk/discovery/__init__.py b/ni_measurement_plugin_sdk/discovery/__init__.py
deleted file mode 100644
index 40ca8e3a6..000000000
--- a/ni_measurement_plugin_sdk/discovery/__init__.py
+++ /dev/null
@@ -1,6 +0,0 @@
-"""Public API for accessing the MeasurementLink discovery service."""
-
-from ni_measurement_plugin_sdk.discovery._client import DiscoveryClient
-from ni_measurement_plugin_sdk.discovery._types import ServiceLocation
-
-__all__ = ["DiscoveryClient", "ServiceLocation"]
diff --git a/ni_measurement_plugin_sdk/__init__.py b/ni_measurement_plugin_sdk_service/__init__.py
similarity index 59%
rename from ni_measurement_plugin_sdk/__init__.py
rename to ni_measurement_plugin_sdk_service/__init__.py
index e9c060324..1a3b1ab97 100644
--- a/ni_measurement_plugin_sdk/__init__.py
+++ b/ni_measurement_plugin_sdk_service/__init__.py
@@ -2,13 +2,13 @@
 
 import logging
 
-from ni_measurement_plugin_sdk import session_management
-from ni_measurement_plugin_sdk.measurement.info import (
+from ni_measurement_plugin_sdk_service import session_management
+from ni_measurement_plugin_sdk_service.measurement.info import (
     DataType,
     MeasurementInfo,
     ServiceInfo,
 )
-from ni_measurement_plugin_sdk.measurement.service import MeasurementService
+from ni_measurement_plugin_sdk_service.measurement.service import MeasurementService
 
 __all__ = [
     "session_management",
diff --git a/ni_measurement_plugin_sdk/_annotations.py b/ni_measurement_plugin_sdk_service/_annotations.py
similarity index 100%
rename from ni_measurement_plugin_sdk/_annotations.py
rename to ni_measurement_plugin_sdk_service/_annotations.py
diff --git a/ni_measurement_plugin_sdk/_configuration.py b/ni_measurement_plugin_sdk_service/_configuration.py
similarity index 97%
rename from ni_measurement_plugin_sdk/_configuration.py
rename to ni_measurement_plugin_sdk_service/_configuration.py
index cb00c902b..e334556ca 100644
--- a/ni_measurement_plugin_sdk/_configuration.py
+++ b/ni_measurement_plugin_sdk_service/_configuration.py
@@ -7,7 +7,7 @@
 
 from decouple import AutoConfig, Undefined, undefined
 
-from ni_measurement_plugin_sdk._dotenvpath import get_dotenv_search_path
+from ni_measurement_plugin_sdk_service._dotenvpath import get_dotenv_search_path
 
 if TYPE_CHECKING:
     if sys.version_info >= (3, 11):
diff --git a/ni_measurement_plugin_sdk/_datatypeinfo.py b/ni_measurement_plugin_sdk_service/_datatypeinfo.py
similarity index 94%
rename from ni_measurement_plugin_sdk/_datatypeinfo.py
rename to ni_measurement_plugin_sdk_service/_datatypeinfo.py
index 12226c18f..fb068bc3a 100644
--- a/ni_measurement_plugin_sdk/_datatypeinfo.py
+++ b/ni_measurement_plugin_sdk_service/_datatypeinfo.py
@@ -2,8 +2,8 @@
 
 from google.protobuf import type_pb2
 
-from ni_measurement_plugin_sdk._internal.stubs.ni.protobuf.types import xydata_pb2
-from ni_measurement_plugin_sdk.measurement.info import DataType, TypeSpecialization
+from ni_measurement_plugin_sdk_service._internal.stubs.ni.protobuf.types import xydata_pb2
+from ni_measurement_plugin_sdk_service.measurement.info import DataType, TypeSpecialization
 
 
 class DataTypeInfo(NamedTuple):
diff --git a/ni_measurement_plugin_sdk/_dotenvpath.py b/ni_measurement_plugin_sdk_service/_dotenvpath.py
similarity index 93%
rename from ni_measurement_plugin_sdk/_dotenvpath.py
rename to ni_measurement_plugin_sdk_service/_dotenvpath.py
index 10c4e9f8d..4e00755c5 100644
--- a/ni_measurement_plugin_sdk/_dotenvpath.py
+++ b/ni_measurement_plugin_sdk_service/_dotenvpath.py
@@ -39,7 +39,7 @@ def _get_script_or_exe_path() -> Optional[Path]:
 
 
 def _get_caller_path() -> Optional[Path]:
-    """Get the path of the module calling into ni_measurement_plugin_sdk, if possible."""
+    """Get the path of the module calling into ni_measurement_plugin_sdk_service, if possible."""
     nims_path = _get_nims_path()
     for frame, _ in traceback.walk_stack(inspect.currentframe()):
         if frame.f_code.co_filename:
@@ -81,7 +81,7 @@ def _is_relative_to(path: PurePath, other: PurePath) -> bool:
 
 
 def _get_nims_path() -> Path:
-    """Get the path of the ni_measurement_plugin_sdk package."""
-    nims_module = sys.modules["ni_measurement_plugin_sdk"]
+    """Get the path of the ni_measurement_plugin_sdk_service package."""
+    nims_module = sys.modules["ni_measurement_plugin_sdk_service"]
     assert nims_module.__file__ and nims_module.__file__.endswith("__init__.py")
     return Path(nims_module.__file__).parent
diff --git a/ni_measurement_plugin_sdk/_drivers/__init__.py b/ni_measurement_plugin_sdk_service/_drivers/__init__.py
similarity index 95%
rename from ni_measurement_plugin_sdk/_drivers/__init__.py
rename to ni_measurement_plugin_sdk_service/_drivers/__init__.py
index d0d20301a..6d41b4d33 100644
--- a/ni_measurement_plugin_sdk/_drivers/__init__.py
+++ b/ni_measurement_plugin_sdk_service/_drivers/__init__.py
@@ -5,7 +5,7 @@
 import contextlib
 from typing import ContextManager, TypeVar
 
-from ni_measurement_plugin_sdk.session_management._types import (
+from ni_measurement_plugin_sdk_service.session_management._types import (
     SessionInitializationBehavior,
 )
 
diff --git a/ni_measurement_plugin_sdk/_drivers/_grpcdevice.py b/ni_measurement_plugin_sdk_service/_drivers/_grpcdevice.py
similarity index 93%
rename from ni_measurement_plugin_sdk/_drivers/_grpcdevice.py
rename to ni_measurement_plugin_sdk_service/_drivers/_grpcdevice.py
index 14f3d4c23..7f73602d7 100644
--- a/ni_measurement_plugin_sdk/_drivers/_grpcdevice.py
+++ b/ni_measurement_plugin_sdk_service/_drivers/_grpcdevice.py
@@ -8,12 +8,12 @@
 
 import grpc
 
-from ni_measurement_plugin_sdk._configuration import (
+from ni_measurement_plugin_sdk_service._configuration import (
     GRPC_DEVICE_SERVER_ADDRESS,
     USE_GRPC_DEVICE_SERVER,
 )
-from ni_measurement_plugin_sdk.discovery import DiscoveryClient, ServiceLocation
-from ni_measurement_plugin_sdk.grpc.channelpool import GrpcChannelPool
+from ni_measurement_plugin_sdk_service.discovery import DiscoveryClient, ServiceLocation
+from ni_measurement_plugin_sdk_service.grpc.channelpool import GrpcChannelPool
 
 _logger = logging.getLogger(__name__)
 
diff --git a/ni_measurement_plugin_sdk/_drivers/_nidaqmx.py b/ni_measurement_plugin_sdk_service/_drivers/_nidaqmx.py
similarity index 86%
rename from ni_measurement_plugin_sdk/_drivers/_nidaqmx.py
rename to ni_measurement_plugin_sdk_service/_drivers/_nidaqmx.py
index 9937841d4..db3c90fb9 100644
--- a/ni_measurement_plugin_sdk/_drivers/_nidaqmx.py
+++ b/ni_measurement_plugin_sdk_service/_drivers/_nidaqmx.py
@@ -4,12 +4,12 @@
 
 import nidaqmx
 
-from ni_measurement_plugin_sdk._drivers._grpcdevice import (
+from ni_measurement_plugin_sdk_service._drivers._grpcdevice import (
     get_insecure_grpc_device_server_channel,
 )
-from ni_measurement_plugin_sdk.discovery import DiscoveryClient
-from ni_measurement_plugin_sdk.grpc.channelpool import GrpcChannelPool
-from ni_measurement_plugin_sdk.session_management._types import (
+from ni_measurement_plugin_sdk_service.discovery import DiscoveryClient
+from ni_measurement_plugin_sdk_service.grpc.channelpool import GrpcChannelPool
+from ni_measurement_plugin_sdk_service.session_management._types import (
     SessionInformation,
     SessionInitializationBehavior,
 )
diff --git a/ni_measurement_plugin_sdk/_drivers/_nidcpower.py b/ni_measurement_plugin_sdk_service/_drivers/_nidcpower.py
similarity index 85%
rename from ni_measurement_plugin_sdk/_drivers/_nidcpower.py
rename to ni_measurement_plugin_sdk_service/_drivers/_nidcpower.py
index ba0013274..0f39fc970 100644
--- a/ni_measurement_plugin_sdk/_drivers/_nidcpower.py
+++ b/ni_measurement_plugin_sdk_service/_drivers/_nidcpower.py
@@ -4,13 +4,13 @@
 
 import nidcpower
 
-from ni_measurement_plugin_sdk._configuration import NIDCPOWER_OPTIONS
-from ni_measurement_plugin_sdk._drivers._grpcdevice import (
+from ni_measurement_plugin_sdk_service._configuration import NIDCPOWER_OPTIONS
+from ni_measurement_plugin_sdk_service._drivers._grpcdevice import (
     get_insecure_grpc_device_server_channel,
 )
-from ni_measurement_plugin_sdk.discovery import DiscoveryClient
-from ni_measurement_plugin_sdk.grpc.channelpool import GrpcChannelPool
-from ni_measurement_plugin_sdk.session_management._types import (
+from ni_measurement_plugin_sdk_service.discovery import DiscoveryClient
+from ni_measurement_plugin_sdk_service.grpc.channelpool import GrpcChannelPool
+from ni_measurement_plugin_sdk_service.session_management._types import (
     SessionInformation,
     SessionInitializationBehavior,
 )
diff --git a/ni_measurement_plugin_sdk/_drivers/_nidigital.py b/ni_measurement_plugin_sdk_service/_drivers/_nidigital.py
similarity index 86%
rename from ni_measurement_plugin_sdk/_drivers/_nidigital.py
rename to ni_measurement_plugin_sdk_service/_drivers/_nidigital.py
index 0352b16a4..58b5a383b 100644
--- a/ni_measurement_plugin_sdk/_drivers/_nidigital.py
+++ b/ni_measurement_plugin_sdk_service/_drivers/_nidigital.py
@@ -4,13 +4,13 @@
 
 import nidigital
 
-from ni_measurement_plugin_sdk._configuration import NIDIGITAL_OPTIONS
-from ni_measurement_plugin_sdk._drivers._grpcdevice import (
+from ni_measurement_plugin_sdk_service._configuration import NIDIGITAL_OPTIONS
+from ni_measurement_plugin_sdk_service._drivers._grpcdevice import (
     get_insecure_grpc_device_server_channel,
 )
-from ni_measurement_plugin_sdk.discovery import DiscoveryClient
-from ni_measurement_plugin_sdk.grpc.channelpool import GrpcChannelPool
-from ni_measurement_plugin_sdk.session_management._types import (
+from ni_measurement_plugin_sdk_service.discovery import DiscoveryClient
+from ni_measurement_plugin_sdk_service.grpc.channelpool import GrpcChannelPool
+from ni_measurement_plugin_sdk_service.session_management._types import (
     SessionInformation,
     SessionInitializationBehavior,
 )
diff --git a/ni_measurement_plugin_sdk/_drivers/_nidmm.py b/ni_measurement_plugin_sdk_service/_drivers/_nidmm.py
similarity index 86%
rename from ni_measurement_plugin_sdk/_drivers/_nidmm.py
rename to ni_measurement_plugin_sdk_service/_drivers/_nidmm.py
index 29007d174..e23c0e318 100644
--- a/ni_measurement_plugin_sdk/_drivers/_nidmm.py
+++ b/ni_measurement_plugin_sdk_service/_drivers/_nidmm.py
@@ -4,13 +4,13 @@
 
 import nidmm
 
-from ni_measurement_plugin_sdk._configuration import NIDMM_OPTIONS
-from ni_measurement_plugin_sdk._drivers._grpcdevice import (
+from ni_measurement_plugin_sdk_service._configuration import NIDMM_OPTIONS
+from ni_measurement_plugin_sdk_service._drivers._grpcdevice import (
     get_insecure_grpc_device_server_channel,
 )
-from ni_measurement_plugin_sdk.discovery import DiscoveryClient
-from ni_measurement_plugin_sdk.grpc.channelpool import GrpcChannelPool
-from ni_measurement_plugin_sdk.session_management._types import (
+from ni_measurement_plugin_sdk_service.discovery import DiscoveryClient
+from ni_measurement_plugin_sdk_service.grpc.channelpool import GrpcChannelPool
+from ni_measurement_plugin_sdk_service.session_management._types import (
     SessionInformation,
     SessionInitializationBehavior,
 )
diff --git a/ni_measurement_plugin_sdk/_drivers/_nifgen.py b/ni_measurement_plugin_sdk_service/_drivers/_nifgen.py
similarity index 85%
rename from ni_measurement_plugin_sdk/_drivers/_nifgen.py
rename to ni_measurement_plugin_sdk_service/_drivers/_nifgen.py
index e463b22d0..4e2937e85 100644
--- a/ni_measurement_plugin_sdk/_drivers/_nifgen.py
+++ b/ni_measurement_plugin_sdk_service/_drivers/_nifgen.py
@@ -4,13 +4,13 @@
 
 import nifgen
 
-from ni_measurement_plugin_sdk._configuration import NIFGEN_OPTIONS
-from ni_measurement_plugin_sdk._drivers._grpcdevice import (
+from ni_measurement_plugin_sdk_service._configuration import NIFGEN_OPTIONS
+from ni_measurement_plugin_sdk_service._drivers._grpcdevice import (
     get_insecure_grpc_device_server_channel,
 )
-from ni_measurement_plugin_sdk.discovery import DiscoveryClient
-from ni_measurement_plugin_sdk.grpc.channelpool import GrpcChannelPool
-from ni_measurement_plugin_sdk.session_management._types import (
+from ni_measurement_plugin_sdk_service.discovery import DiscoveryClient
+from ni_measurement_plugin_sdk_service.grpc.channelpool import GrpcChannelPool
+from ni_measurement_plugin_sdk_service.session_management._types import (
     SessionInformation,
     SessionInitializationBehavior,
 )
diff --git a/ni_measurement_plugin_sdk/_drivers/_niscope.py b/ni_measurement_plugin_sdk_service/_drivers/_niscope.py
similarity index 86%
rename from ni_measurement_plugin_sdk/_drivers/_niscope.py
rename to ni_measurement_plugin_sdk_service/_drivers/_niscope.py
index 88f0e85d5..0ca5ed867 100644
--- a/ni_measurement_plugin_sdk/_drivers/_niscope.py
+++ b/ni_measurement_plugin_sdk_service/_drivers/_niscope.py
@@ -4,13 +4,13 @@
 
 import niscope
 
-from ni_measurement_plugin_sdk._configuration import NISCOPE_OPTIONS
-from ni_measurement_plugin_sdk._drivers._grpcdevice import (
+from ni_measurement_plugin_sdk_service._configuration import NISCOPE_OPTIONS
+from ni_measurement_plugin_sdk_service._drivers._grpcdevice import (
     get_insecure_grpc_device_server_channel,
 )
-from ni_measurement_plugin_sdk.discovery import DiscoveryClient
-from ni_measurement_plugin_sdk.grpc.channelpool import GrpcChannelPool
-from ni_measurement_plugin_sdk.session_management._types import (
+from ni_measurement_plugin_sdk_service.discovery import DiscoveryClient
+from ni_measurement_plugin_sdk_service.grpc.channelpool import GrpcChannelPool
+from ni_measurement_plugin_sdk_service.session_management._types import (
     SessionInformation,
     SessionInitializationBehavior,
 )
diff --git a/ni_measurement_plugin_sdk/_drivers/_niswitch.py b/ni_measurement_plugin_sdk_service/_drivers/_niswitch.py
similarity index 87%
rename from ni_measurement_plugin_sdk/_drivers/_niswitch.py
rename to ni_measurement_plugin_sdk_service/_drivers/_niswitch.py
index 18b13195a..55d31ffdf 100644
--- a/ni_measurement_plugin_sdk/_drivers/_niswitch.py
+++ b/ni_measurement_plugin_sdk_service/_drivers/_niswitch.py
@@ -4,13 +4,16 @@
 
 import niswitch
 
-from ni_measurement_plugin_sdk._configuration import NISWITCH_OPTIONS, NISWITCH_MULTIPLEXER_OPTIONS
-from ni_measurement_plugin_sdk._drivers._grpcdevice import (
+from ni_measurement_plugin_sdk_service._configuration import (
+    NISWITCH_MULTIPLEXER_OPTIONS,
+    NISWITCH_OPTIONS,
+)
+from ni_measurement_plugin_sdk_service._drivers._grpcdevice import (
     get_insecure_grpc_device_server_channel,
 )
-from ni_measurement_plugin_sdk.discovery import DiscoveryClient
-from ni_measurement_plugin_sdk.grpc.channelpool import GrpcChannelPool
-from ni_measurement_plugin_sdk.session_management._types import (
+from ni_measurement_plugin_sdk_service.discovery import DiscoveryClient
+from ni_measurement_plugin_sdk_service.grpc.channelpool import GrpcChannelPool
+from ni_measurement_plugin_sdk_service.session_management._types import (
     MultiplexerSessionInformation,
     SessionInformation,
     SessionInitializationBehavior,
diff --git a/ni_measurement_plugin_sdk/_featuretoggles.py b/ni_measurement_plugin_sdk_service/_featuretoggles.py
similarity index 98%
rename from ni_measurement_plugin_sdk/_featuretoggles.py
rename to ni_measurement_plugin_sdk_service/_featuretoggles.py
index 2b8ea7f7f..5166dc831 100644
--- a/ni_measurement_plugin_sdk/_featuretoggles.py
+++ b/ni_measurement_plugin_sdk_service/_featuretoggles.py
@@ -7,7 +7,7 @@
 from enum import Enum
 from typing import TYPE_CHECKING, Callable, TypeVar
 
-from ni_measurement_plugin_sdk._configuration import _PREFIX, _config
+from ni_measurement_plugin_sdk_service._configuration import _PREFIX, _config
 
 if TYPE_CHECKING:
     if sys.version_info >= (3, 10):
diff --git a/ni_measurement_plugin_sdk/_internal/__init__.py b/ni_measurement_plugin_sdk_service/_internal/__init__.py
similarity index 100%
rename from ni_measurement_plugin_sdk/_internal/__init__.py
rename to ni_measurement_plugin_sdk_service/_internal/__init__.py
diff --git a/ni_measurement_plugin_sdk_service/_internal/discovery_client.py b/ni_measurement_plugin_sdk_service/_internal/discovery_client.py
new file mode 100644
index 000000000..cd6d29542
--- /dev/null
+++ b/ni_measurement_plugin_sdk_service/_internal/discovery_client.py
@@ -0,0 +1,19 @@
+"""Redirect internal discovery client API to the public API."""
+
+import warnings
+
+from deprecation import DeprecatedWarning
+
+from ni_measurement_plugin_sdk_service.discovery._client import DiscoveryClient
+from ni_measurement_plugin_sdk_service.discovery._types import ServiceLocation
+
+__all__ = ["DiscoveryClient", "ServiceLocation"]
+
+warnings.warn(
+    DeprecatedWarning(
+        "ni_measurement_plugin_sdk_service._internal.discovery_client",
+        deprecated_in="1.3.0",
+        removed_in=None,
+        details="Use ni_measurement_plugin_sdk_service.discovery instead.",
+    ),
+)
diff --git a/ni_measurement_plugin_sdk/_internal/grpc_servicer.py b/ni_measurement_plugin_sdk_service/_internal/grpc_servicer.py
similarity index 96%
rename from ni_measurement_plugin_sdk/_internal/grpc_servicer.py
rename to ni_measurement_plugin_sdk_service/_internal/grpc_servicer.py
index 0a00221b0..ae29db78e 100644
--- a/ni_measurement_plugin_sdk/_internal/grpc_servicer.py
+++ b/ni_measurement_plugin_sdk_service/_internal/grpc_servicer.py
@@ -13,18 +13,18 @@
 import grpc
 from google.protobuf import any_pb2
 
-from ni_measurement_plugin_sdk._internal.parameter import serializer
-from ni_measurement_plugin_sdk._internal.parameter.metadata import ParameterMetadata
-from ni_measurement_plugin_sdk._internal.stubs.ni.measurementlink.measurement.v1 import (
+from ni_measurement_plugin_sdk_service._internal.parameter import serializer
+from ni_measurement_plugin_sdk_service._internal.parameter.metadata import ParameterMetadata
+from ni_measurement_plugin_sdk_service._internal.stubs.ni.measurementlink.measurement.v1 import (
     measurement_service_pb2 as v1_measurement_service_pb2,
     measurement_service_pb2_grpc as v1_measurement_service_pb2_grpc,
 )
-from ni_measurement_plugin_sdk._internal.stubs.ni.measurementlink.measurement.v2 import (
+from ni_measurement_plugin_sdk_service._internal.stubs.ni.measurementlink.measurement.v2 import (
     measurement_service_pb2 as v2_measurement_service_pb2,
     measurement_service_pb2_grpc as v2_measurement_service_pb2_grpc,
 )
-from ni_measurement_plugin_sdk.measurement.info import MeasurementInfo
-from ni_measurement_plugin_sdk.session_management import PinMapContext
+from ni_measurement_plugin_sdk_service.measurement.info import MeasurementInfo
+from ni_measurement_plugin_sdk_service.session_management import PinMapContext
 
 
 class MeasurementServiceContext:
diff --git a/ni_measurement_plugin_sdk/_internal/parameter/__init__.py b/ni_measurement_plugin_sdk_service/_internal/parameter/__init__.py
similarity index 100%
rename from ni_measurement_plugin_sdk/_internal/parameter/__init__.py
rename to ni_measurement_plugin_sdk_service/_internal/parameter/__init__.py
diff --git a/ni_measurement_plugin_sdk/_internal/parameter/_message.py b/ni_measurement_plugin_sdk_service/_internal/parameter/_message.py
similarity index 98%
rename from ni_measurement_plugin_sdk/_internal/parameter/_message.py
rename to ni_measurement_plugin_sdk_service/_internal/parameter/_message.py
index bf57cabe6..dcc04b146 100644
--- a/ni_measurement_plugin_sdk/_internal/parameter/_message.py
+++ b/ni_measurement_plugin_sdk_service/_internal/parameter/_message.py
@@ -15,7 +15,7 @@
 from google.protobuf.internal import encoder, wire_format
 from google.protobuf.message import Message
 
-from ni_measurement_plugin_sdk._internal.parameter._serializer_types import (
+from ni_measurement_plugin_sdk_service._internal.parameter._serializer_types import (
     Decoder,
     Key,
     NewDefault,
diff --git a/ni_measurement_plugin_sdk/_internal/parameter/_serializer_types.py b/ni_measurement_plugin_sdk_service/_internal/parameter/_serializer_types.py
similarity index 100%
rename from ni_measurement_plugin_sdk/_internal/parameter/_serializer_types.py
rename to ni_measurement_plugin_sdk_service/_internal/parameter/_serializer_types.py
diff --git a/ni_measurement_plugin_sdk/_internal/parameter/metadata.py b/ni_measurement_plugin_sdk_service/_internal/parameter/metadata.py
similarity index 95%
rename from ni_measurement_plugin_sdk/_internal/parameter/metadata.py
rename to ni_measurement_plugin_sdk_service/_internal/parameter/metadata.py
index 7e5921850..f6aff41c8 100644
--- a/ni_measurement_plugin_sdk/_internal/parameter/metadata.py
+++ b/ni_measurement_plugin_sdk_service/_internal/parameter/metadata.py
@@ -6,12 +6,12 @@
 
 from google.protobuf import type_pb2
 
-from ni_measurement_plugin_sdk._annotations import (
+from ni_measurement_plugin_sdk_service._annotations import (
     ENUM_VALUES_KEY,
     TYPE_SPECIALIZATION_KEY,
 )
-from ni_measurement_plugin_sdk._internal.parameter import serialization_strategy
-from ni_measurement_plugin_sdk.measurement.info import TypeSpecialization
+from ni_measurement_plugin_sdk_service._internal.parameter import serialization_strategy
+from ni_measurement_plugin_sdk_service.measurement.info import TypeSpecialization
 
 
 class ParameterMetadata(NamedTuple):
diff --git a/ni_measurement_plugin_sdk/_internal/parameter/serialization_strategy.py b/ni_measurement_plugin_sdk_service/_internal/parameter/serialization_strategy.py
similarity index 97%
rename from ni_measurement_plugin_sdk/_internal/parameter/serialization_strategy.py
rename to ni_measurement_plugin_sdk_service/_internal/parameter/serialization_strategy.py
index fb4d28ad8..88fc5cd84 100644
--- a/ni_measurement_plugin_sdk/_internal/parameter/serialization_strategy.py
+++ b/ni_measurement_plugin_sdk_service/_internal/parameter/serialization_strategy.py
@@ -8,8 +8,8 @@
 from google.protobuf.internal import decoder, encoder
 from google.protobuf.message import Message
 
-from ni_measurement_plugin_sdk._internal.parameter import _message
-from ni_measurement_plugin_sdk._internal.parameter._serializer_types import (
+from ni_measurement_plugin_sdk_service._internal.parameter import _message
+from ni_measurement_plugin_sdk_service._internal.parameter._serializer_types import (
     Decoder,
     DecoderConstructor,
     Encoder,
@@ -18,7 +18,7 @@
     PartialDecoderConstructor,
     PartialEncoderConstructor,
 )
-from ni_measurement_plugin_sdk._internal.stubs.ni.protobuf.types import xydata_pb2
+from ni_measurement_plugin_sdk_service._internal.stubs.ni.protobuf.types import xydata_pb2
 
 
 def _scalar_encoder(encoder: EncoderConstructor) -> PartialEncoderConstructor:
@@ -67,7 +67,7 @@ def _scalar_decoder(decoder: DecoderConstructor) -> PartialDecoderConstructor:
 
     def _unsupported_new_default(message: Optional[Message]) -> Any:
         raise NotImplementedError(
-            "This function should not be called. Verify that you are using up-to-date and compatible versions of the ni-measurement-plugin-sdk and protobuf packages."
+            "This function should not be called. Verify that you are using up-to-date and compatible versions of the ni-measurement-plugin-sdk-service and protobuf packages."
         )
 
     def scalar_decoder(field_index: int, key: Key) -> Decoder:
diff --git a/ni_measurement_plugin_sdk/_internal/parameter/serializer.py b/ni_measurement_plugin_sdk_service/_internal/parameter/serializer.py
similarity index 96%
rename from ni_measurement_plugin_sdk/_internal/parameter/serializer.py
rename to ni_measurement_plugin_sdk_service/_internal/parameter/serializer.py
index 67e34655d..71ef39568 100644
--- a/ni_measurement_plugin_sdk/_internal/parameter/serializer.py
+++ b/ni_measurement_plugin_sdk_service/_internal/parameter/serializer.py
@@ -10,15 +10,15 @@
 )
 from google.protobuf.message import Message
 
-from ni_measurement_plugin_sdk._annotations import (
+from ni_measurement_plugin_sdk_service._annotations import (
     TYPE_SPECIALIZATION_KEY,
 )
-from ni_measurement_plugin_sdk._internal.parameter import serialization_strategy
-from ni_measurement_plugin_sdk._internal.parameter.metadata import (
+from ni_measurement_plugin_sdk_service._internal.parameter import serialization_strategy
+from ni_measurement_plugin_sdk_service._internal.parameter.metadata import (
     ParameterMetadata,
     get_enum_values_annotation,
 )
-from ni_measurement_plugin_sdk.measurement.info import TypeSpecialization
+from ni_measurement_plugin_sdk_service.measurement.info import TypeSpecialization
 
 _GRPC_WIRE_TYPE_BIT_WIDTH = 3
 
diff --git a/ni_measurement_plugin_sdk/_internal/service_manager.py b/ni_measurement_plugin_sdk_service/_internal/service_manager.py
similarity index 89%
rename from ni_measurement_plugin_sdk/_internal/service_manager.py
rename to ni_measurement_plugin_sdk_service/_internal/service_manager.py
index 24733dd1f..42a048921 100644
--- a/ni_measurement_plugin_sdk/_internal/service_manager.py
+++ b/ni_measurement_plugin_sdk_service/_internal/service_manager.py
@@ -5,20 +5,20 @@
 from deprecation import deprecated
 from grpc.framework.foundation import logging_pool
 
-from ni_measurement_plugin_sdk._internal.grpc_servicer import (
+from ni_measurement_plugin_sdk_service._internal.grpc_servicer import (
     MeasurementServiceServicerV1,
     MeasurementServiceServicerV2,
 )
-from ni_measurement_plugin_sdk._internal.parameter.metadata import ParameterMetadata
-from ni_measurement_plugin_sdk._internal.stubs.ni.measurementlink.measurement.v1 import (
+from ni_measurement_plugin_sdk_service._internal.parameter.metadata import ParameterMetadata
+from ni_measurement_plugin_sdk_service._internal.stubs.ni.measurementlink.measurement.v1 import (
     measurement_service_pb2_grpc as v1_measurement_service_pb2_grpc,
 )
-from ni_measurement_plugin_sdk._internal.stubs.ni.measurementlink.measurement.v2 import (
+from ni_measurement_plugin_sdk_service._internal.stubs.ni.measurementlink.measurement.v2 import (
     measurement_service_pb2_grpc as v2_measurement_service_pb2_grpc,
 )
-from ni_measurement_plugin_sdk.discovery import DiscoveryClient, ServiceLocation
-from ni_measurement_plugin_sdk.grpc.loggers import ServerLogger
-from ni_measurement_plugin_sdk.measurement.info import MeasurementInfo, ServiceInfo
+from ni_measurement_plugin_sdk_service.discovery import DiscoveryClient, ServiceLocation
+from ni_measurement_plugin_sdk_service.grpc.loggers import ServerLogger
+from ni_measurement_plugin_sdk_service.measurement.info import MeasurementInfo, ServiceInfo
 
 _logger = logging.getLogger(__name__)
 _V1_INTERFACE = "ni.measurementlink.measurement.v1.MeasurementService"
diff --git a/ni_measurement_plugin_sdk/_internal/stubs/__init__.py b/ni_measurement_plugin_sdk_service/_internal/stubs/__init__.py
similarity index 100%
rename from ni_measurement_plugin_sdk/_internal/stubs/__init__.py
rename to ni_measurement_plugin_sdk_service/_internal/stubs/__init__.py
diff --git a/ni_measurement_plugin_sdk/_internal/stubs/ni/__init__.py b/ni_measurement_plugin_sdk_service/_internal/stubs/ni/__init__.py
similarity index 100%
rename from ni_measurement_plugin_sdk/_internal/stubs/ni/__init__.py
rename to ni_measurement_plugin_sdk_service/_internal/stubs/ni/__init__.py
diff --git a/ni_measurement_plugin_sdk/_internal/stubs/ni/measurementlink/__init__.py b/ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/__init__.py
similarity index 100%
rename from ni_measurement_plugin_sdk/_internal/stubs/ni/measurementlink/__init__.py
rename to ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/__init__.py
diff --git a/ni_measurement_plugin_sdk/_internal/stubs/ni/measurementlink/discovery/__init__.py b/ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/discovery/__init__.py
similarity index 100%
rename from ni_measurement_plugin_sdk/_internal/stubs/ni/measurementlink/discovery/__init__.py
rename to ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/discovery/__init__.py
diff --git a/ni_measurement_plugin_sdk/_internal/stubs/ni/measurementlink/discovery/v1/__init__.py b/ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/discovery/v1/__init__.py
similarity index 100%
rename from ni_measurement_plugin_sdk/_internal/stubs/ni/measurementlink/discovery/v1/__init__.py
rename to ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/discovery/v1/__init__.py
diff --git a/ni_measurement_plugin_sdk/_internal/stubs/ni/measurementlink/discovery/v1/discovery_service_pb2.py b/ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/discovery/v1/discovery_service_pb2.py
similarity index 100%
rename from ni_measurement_plugin_sdk/_internal/stubs/ni/measurementlink/discovery/v1/discovery_service_pb2.py
rename to ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/discovery/v1/discovery_service_pb2.py
diff --git a/ni_measurement_plugin_sdk/_internal/stubs/ni/measurementlink/discovery/v1/discovery_service_pb2.pyi b/ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/discovery/v1/discovery_service_pb2.pyi
similarity index 100%
rename from ni_measurement_plugin_sdk/_internal/stubs/ni/measurementlink/discovery/v1/discovery_service_pb2.pyi
rename to ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/discovery/v1/discovery_service_pb2.pyi
diff --git a/ni_measurement_plugin_sdk/_internal/stubs/ni/measurementlink/discovery/v1/discovery_service_pb2_grpc.py b/ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/discovery/v1/discovery_service_pb2_grpc.py
similarity index 98%
rename from ni_measurement_plugin_sdk/_internal/stubs/ni/measurementlink/discovery/v1/discovery_service_pb2_grpc.py
rename to ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/discovery/v1/discovery_service_pb2_grpc.py
index f02462664..5e0c21a59 100644
--- a/ni_measurement_plugin_sdk/_internal/stubs/ni/measurementlink/discovery/v1/discovery_service_pb2_grpc.py
+++ b/ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/discovery/v1/discovery_service_pb2_grpc.py
@@ -2,7 +2,7 @@
 """Client and server classes corresponding to protobuf-defined services."""
 import grpc
 
-from ni_measurement_plugin_sdk._internal.stubs.ni.measurementlink.discovery.v1 import discovery_service_pb2 as ni_dot_measurementlink_dot_discovery_dot_v1_dot_discovery__service__pb2
+from ni_measurement_plugin_sdk_service._internal.stubs.ni.measurementlink.discovery.v1 import discovery_service_pb2 as ni_dot_measurementlink_dot_discovery_dot_v1_dot_discovery__service__pb2
 
 
 class DiscoveryServiceStub(object):
diff --git a/ni_measurement_plugin_sdk/_internal/stubs/ni/measurementlink/discovery/v1/discovery_service_pb2_grpc.pyi b/ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/discovery/v1/discovery_service_pb2_grpc.pyi
similarity index 98%
rename from ni_measurement_plugin_sdk/_internal/stubs/ni/measurementlink/discovery/v1/discovery_service_pb2_grpc.pyi
rename to ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/discovery/v1/discovery_service_pb2_grpc.pyi
index 240e32e33..f39e59b8d 100644
--- a/ni_measurement_plugin_sdk/_internal/stubs/ni/measurementlink/discovery/v1/discovery_service_pb2_grpc.pyi
+++ b/ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/discovery/v1/discovery_service_pb2_grpc.pyi
@@ -9,7 +9,7 @@ import abc
 import collections.abc
 import grpc
 import grpc.aio
-import ni_measurement_plugin_sdk._internal.stubs.ni.measurementlink.discovery.v1.discovery_service_pb2 as ni_measurementlink_discovery_v1_discovery_service_pb2
+import ni_measurement_plugin_sdk_service._internal.stubs.ni.measurementlink.discovery.v1.discovery_service_pb2 as ni_measurementlink_discovery_v1_discovery_service_pb2
 import typing
 
 _T = typing.TypeVar("_T")
diff --git a/ni_measurement_plugin_sdk/_internal/stubs/ni/measurementlink/measurement/__init__.py b/ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/measurement/__init__.py
similarity index 100%
rename from ni_measurement_plugin_sdk/_internal/stubs/ni/measurementlink/measurement/__init__.py
rename to ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/measurement/__init__.py
diff --git a/ni_measurement_plugin_sdk/_internal/stubs/ni/measurementlink/measurement/v1/__init__.py b/ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/measurement/v1/__init__.py
similarity index 100%
rename from ni_measurement_plugin_sdk/_internal/stubs/ni/measurementlink/measurement/v1/__init__.py
rename to ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/measurement/v1/__init__.py
diff --git a/ni_measurement_plugin_sdk/_internal/stubs/ni/measurementlink/measurement/v1/measurement_service_pb2.py b/ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/measurement/v1/measurement_service_pb2.py
similarity index 97%
rename from ni_measurement_plugin_sdk/_internal/stubs/ni/measurementlink/measurement/v1/measurement_service_pb2.py
rename to ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/measurement/v1/measurement_service_pb2.py
index 587da68a5..9d72459bd 100644
--- a/ni_measurement_plugin_sdk/_internal/stubs/ni/measurementlink/measurement/v1/measurement_service_pb2.py
+++ b/ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/measurement/v1/measurement_service_pb2.py
@@ -13,7 +13,7 @@
 
 from google.protobuf import any_pb2 as google_dot_protobuf_dot_any__pb2
 from google.protobuf import type_pb2 as google_dot_protobuf_dot_type__pb2
-from ni_measurement_plugin_sdk._internal.stubs.ni.measurementlink import pin_map_context_pb2 as ni_dot_measurementlink_dot_pin__map__context__pb2
+from ni_measurement_plugin_sdk_service._internal.stubs.ni.measurementlink import pin_map_context_pb2 as ni_dot_measurementlink_dot_pin__map__context__pb2
 
 
 DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n;ni/measurementlink/measurement/v1/measurement_service.proto\x12!ni.measurementlink.measurement.v1\x1a\x19google/protobuf/any.proto\x1a\x1agoogle/protobuf/type.proto\x1a(ni/measurementlink/pin_map_context.proto\"\x14\n\x12GetMetadataRequest\"\x9a\x02\n\x13GetMetadataResponse\x12R\n\x13measurement_details\x18\x01 \x01(\x0b\x32\x35.ni.measurementlink.measurement.v1.MeasurementDetails\x12V\n\x15measurement_signature\x18\x02 \x01(\x0b\x32\x37.ni.measurementlink.measurement.v1.MeasurementSignature\x12W\n\x16user_interface_details\x18\x03 \x03(\x0b\x32\x37.ni.measurementlink.measurement.v1.UserInterfaceDetails\"\x84\x01\n\x0eMeasureRequest\x12\x36\n\x18\x63onfiguration_parameters\x18\x01 \x01(\x0b\x32\x14.google.protobuf.Any\x12:\n\x0fpin_map_context\x18\x02 \x01(\x0b\x32!.ni.measurementlink.PinMapContext\"8\n\x0fMeasureResponse\x12%\n\x07outputs\x18\x01 \x01(\x0b\x32\x14.google.protobuf.Any\";\n\x12MeasurementDetails\x12\x14\n\x0c\x64isplay_name\x18\x01 \x01(\t\x12\x0f\n\x07version\x18\x02 \x01(\t\"\xb2\x02\n\x14MeasurementSignature\x12-\n%configuration_parameters_message_type\x18\x01 \x01(\t\x12[\n\x18\x63onfiguration_parameters\x18\x02 \x03(\x0b\x32\x39.ni.measurementlink.measurement.v1.ConfigurationParameter\x12\x34\n\x16\x63onfiguration_defaults\x18\x03 \x01(\x0b\x32\x14.google.protobuf.Any\x12\x1c\n\x14outputs_message_type\x18\x04 \x01(\t\x12:\n\x07outputs\x18\x05 \x03(\x0b\x32).ni.measurementlink.measurement.v1.Output\"(\n\x14UserInterfaceDetails\x12\x10\n\x08\x66ile_url\x18\x01 \x01(\t\"\x8e\x02\n\x16\x43onfigurationParameter\x12\x14\n\x0c\x66ield_number\x18\x01 \x01(\x05\x12)\n\x04type\x18\x02 \x01(\x0e\x32\x1b.google.protobuf.Field.Kind\x12\x0c\n\x04name\x18\x03 \x01(\t\x12\x10\n\x08repeated\x18\x04 \x01(\x08\x12_\n\x0b\x61nnotations\x18\x05 \x03(\x0b\x32J.ni.measurementlink.measurement.v1.ConfigurationParameter.AnnotationsEntry\x1a\x32\n\x10\x41nnotationsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"i\n\x06Output\x12\x14\n\x0c\x66ield_number\x18\x01 \x01(\x05\x12)\n\x04type\x18\x02 \x01(\x0e\x32\x1b.google.protobuf.Field.Kind\x12\x0c\n\x04name\x18\x03 \x01(\t\x12\x10\n\x08repeated\x18\x04 \x01(\x08\x32\x84\x02\n\x12MeasurementService\x12|\n\x0bGetMetadata\x12\x35.ni.measurementlink.measurement.v1.GetMetadataRequest\x1a\x36.ni.measurementlink.measurement.v1.GetMetadataResponse\x12p\n\x07Measure\x12\x31.ni.measurementlink.measurement.v1.MeasureRequest\x1a\x32.ni.measurementlink.measurement.v1.MeasureResponseB\xd8\x01\n%com.ni.measurementlink.measurement.v1B\x17MeasurementServiceProtoP\x01Z\rmeasurementv1\xa2\x02\x04NIMM\xaa\x02\x32NationalInstruments.MeasurementLink.Measurement.V1\xca\x02!NI\\MeasurementLink\\Measurement\\V1\xea\x02$NI::MeasurementLink::Measurement::V1b\x06proto3')
diff --git a/ni_measurement_plugin_sdk/_internal/stubs/ni/measurementlink/measurement/v1/measurement_service_pb2.pyi b/ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/measurement/v1/measurement_service_pb2.pyi
similarity index 98%
rename from ni_measurement_plugin_sdk/_internal/stubs/ni/measurementlink/measurement/v1/measurement_service_pb2.pyi
rename to ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/measurement/v1/measurement_service_pb2.pyi
index 360f48c13..94f5b9d22 100644
--- a/ni_measurement_plugin_sdk/_internal/stubs/ni/measurementlink/measurement/v1/measurement_service_pb2.pyi
+++ b/ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/measurement/v1/measurement_service_pb2.pyi
@@ -12,7 +12,7 @@ import google.protobuf.descriptor
 import google.protobuf.internal.containers
 import google.protobuf.message
 import google.protobuf.type_pb2
-import ni_measurement_plugin_sdk._internal.stubs.ni.measurementlink.pin_map_context_pb2 as ni_measurementlink_pin_map_context_pb2
+import ni_measurement_plugin_sdk_service._internal.stubs.ni.measurementlink.pin_map_context_pb2 as ni_measurementlink_pin_map_context_pb2
 import typing
 
 DESCRIPTOR: google.protobuf.descriptor.FileDescriptor
diff --git a/ni_measurement_plugin_sdk/_internal/stubs/ni/measurementlink/measurement/v1/measurement_service_pb2_grpc.py b/ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/measurement/v1/measurement_service_pb2_grpc.py
similarity index 96%
rename from ni_measurement_plugin_sdk/_internal/stubs/ni/measurementlink/measurement/v1/measurement_service_pb2_grpc.py
rename to ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/measurement/v1/measurement_service_pb2_grpc.py
index a03c70874..d3605471e 100644
--- a/ni_measurement_plugin_sdk/_internal/stubs/ni/measurementlink/measurement/v1/measurement_service_pb2_grpc.py
+++ b/ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/measurement/v1/measurement_service_pb2_grpc.py
@@ -2,7 +2,7 @@
 """Client and server classes corresponding to protobuf-defined services."""
 import grpc
 
-from ni_measurement_plugin_sdk._internal.stubs.ni.measurementlink.measurement.v1 import measurement_service_pb2 as ni_dot_measurementlink_dot_measurement_dot_v1_dot_measurement__service__pb2
+from ni_measurement_plugin_sdk_service._internal.stubs.ni.measurementlink.measurement.v1 import measurement_service_pb2 as ni_dot_measurementlink_dot_measurement_dot_v1_dot_measurement__service__pb2
 
 
 class MeasurementServiceStub(object):
diff --git a/ni_measurement_plugin_sdk/_internal/stubs/ni/measurementlink/measurement/v1/measurement_service_pb2_grpc.pyi b/ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/measurement/v1/measurement_service_pb2_grpc.pyi
similarity index 95%
rename from ni_measurement_plugin_sdk/_internal/stubs/ni/measurementlink/measurement/v1/measurement_service_pb2_grpc.pyi
rename to ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/measurement/v1/measurement_service_pb2_grpc.pyi
index bb3637bb4..eaa860697 100644
--- a/ni_measurement_plugin_sdk/_internal/stubs/ni/measurementlink/measurement/v1/measurement_service_pb2_grpc.pyi
+++ b/ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/measurement/v1/measurement_service_pb2_grpc.pyi
@@ -9,7 +9,7 @@ import abc
 import collections.abc
 import grpc
 import grpc.aio
-import ni_measurement_plugin_sdk._internal.stubs.ni.measurementlink.measurement.v1.measurement_service_pb2 as ni_measurementlink_measurement_v1_measurement_service_pb2
+import ni_measurement_plugin_sdk_service._internal.stubs.ni.measurementlink.measurement.v1.measurement_service_pb2 as ni_measurementlink_measurement_v1_measurement_service_pb2
 import typing
 
 _T = typing.TypeVar("_T")
diff --git a/ni_measurement_plugin_sdk/_internal/stubs/ni/measurementlink/measurement/v2/__init__.py b/ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/measurement/v2/__init__.py
similarity index 100%
rename from ni_measurement_plugin_sdk/_internal/stubs/ni/measurementlink/measurement/v2/__init__.py
rename to ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/measurement/v2/__init__.py
diff --git a/ni_measurement_plugin_sdk/_internal/stubs/ni/measurementlink/measurement/v2/measurement_service_pb2.py b/ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/measurement/v2/measurement_service_pb2.py
similarity index 97%
rename from ni_measurement_plugin_sdk/_internal/stubs/ni/measurementlink/measurement/v2/measurement_service_pb2.py
rename to ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/measurement/v2/measurement_service_pb2.py
index 819bc04da..c298e9560 100644
--- a/ni_measurement_plugin_sdk/_internal/stubs/ni/measurementlink/measurement/v2/measurement_service_pb2.py
+++ b/ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/measurement/v2/measurement_service_pb2.py
@@ -13,7 +13,7 @@
 
 from google.protobuf import any_pb2 as google_dot_protobuf_dot_any__pb2
 from google.protobuf import type_pb2 as google_dot_protobuf_dot_type__pb2
-from ni_measurement_plugin_sdk._internal.stubs.ni.measurementlink import pin_map_context_pb2 as ni_dot_measurementlink_dot_pin__map__context__pb2
+from ni_measurement_plugin_sdk_service._internal.stubs.ni.measurementlink import pin_map_context_pb2 as ni_dot_measurementlink_dot_pin__map__context__pb2
 
 
 DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n;ni/measurementlink/measurement/v2/measurement_service.proto\x12!ni.measurementlink.measurement.v2\x1a\x19google/protobuf/any.proto\x1a\x1agoogle/protobuf/type.proto\x1a(ni/measurementlink/pin_map_context.proto\"\x14\n\x12GetMetadataRequest\"\x9a\x02\n\x13GetMetadataResponse\x12R\n\x13measurement_details\x18\x01 \x01(\x0b\x32\x35.ni.measurementlink.measurement.v2.MeasurementDetails\x12V\n\x15measurement_signature\x18\x02 \x01(\x0b\x32\x37.ni.measurementlink.measurement.v2.MeasurementSignature\x12W\n\x16user_interface_details\x18\x03 \x03(\x0b\x32\x37.ni.measurementlink.measurement.v2.UserInterfaceDetails\"\x84\x01\n\x0eMeasureRequest\x12\x36\n\x18\x63onfiguration_parameters\x18\x01 \x01(\x0b\x32\x14.google.protobuf.Any\x12:\n\x0fpin_map_context\x18\x02 \x01(\x0b\x32!.ni.measurementlink.PinMapContext\"8\n\x0fMeasureResponse\x12%\n\x07outputs\x18\x01 \x01(\x0b\x32\x14.google.protobuf.Any\";\n\x12MeasurementDetails\x12\x14\n\x0c\x64isplay_name\x18\x01 \x01(\t\x12\x0f\n\x07version\x18\x02 \x01(\t\"\xb2\x02\n\x14MeasurementSignature\x12-\n%configuration_parameters_message_type\x18\x01 \x01(\t\x12[\n\x18\x63onfiguration_parameters\x18\x02 \x03(\x0b\x32\x39.ni.measurementlink.measurement.v2.ConfigurationParameter\x12\x34\n\x16\x63onfiguration_defaults\x18\x03 \x01(\x0b\x32\x14.google.protobuf.Any\x12\x1c\n\x14outputs_message_type\x18\x04 \x01(\t\x12:\n\x07outputs\x18\x05 \x03(\x0b\x32).ni.measurementlink.measurement.v2.Output\"(\n\x14UserInterfaceDetails\x12\x10\n\x08\x66ile_url\x18\x01 \x01(\t\"\xa4\x02\n\x16\x43onfigurationParameter\x12\x14\n\x0c\x66ield_number\x18\x01 \x01(\x05\x12)\n\x04type\x18\x02 \x01(\x0e\x32\x1b.google.protobuf.Field.Kind\x12\x0c\n\x04name\x18\x03 \x01(\t\x12\x10\n\x08repeated\x18\x04 \x01(\x08\x12_\n\x0b\x61nnotations\x18\x05 \x03(\x0b\x32J.ni.measurementlink.measurement.v2.ConfigurationParameter.AnnotationsEntry\x12\x14\n\x0cmessage_type\x18\x06 \x01(\t\x1a\x32\n\x10\x41nnotationsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\x84\x02\n\x06Output\x12\x14\n\x0c\x66ield_number\x18\x01 \x01(\x05\x12)\n\x04type\x18\x02 \x01(\x0e\x32\x1b.google.protobuf.Field.Kind\x12\x0c\n\x04name\x18\x03 \x01(\t\x12\x10\n\x08repeated\x18\x04 \x01(\x08\x12O\n\x0b\x61nnotations\x18\x05 \x03(\x0b\x32:.ni.measurementlink.measurement.v2.Output.AnnotationsEntry\x12\x14\n\x0cmessage_type\x18\x06 \x01(\t\x1a\x32\n\x10\x41nnotationsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x32\x86\x02\n\x12MeasurementService\x12|\n\x0bGetMetadata\x12\x35.ni.measurementlink.measurement.v2.GetMetadataRequest\x1a\x36.ni.measurementlink.measurement.v2.GetMetadataResponse\x12r\n\x07Measure\x12\x31.ni.measurementlink.measurement.v2.MeasureRequest\x1a\x32.ni.measurementlink.measurement.v2.MeasureResponse0\x01\x42\xd8\x01\n%com.ni.measurementlink.measurement.v2B\x17MeasurementServiceProtoP\x01Z\rmeasurementv2\xa2\x02\x04NIMM\xaa\x02\x32NationalInstruments.MeasurementLink.Measurement.V2\xca\x02!NI\\MeasurementLink\\Measurement\\V2\xea\x02$NI::MeasurementLink::Measurement::V2b\x06proto3')
diff --git a/ni_measurement_plugin_sdk/_internal/stubs/ni/measurementlink/measurement/v2/measurement_service_pb2.pyi b/ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/measurement/v2/measurement_service_pb2.pyi
similarity index 99%
rename from ni_measurement_plugin_sdk/_internal/stubs/ni/measurementlink/measurement/v2/measurement_service_pb2.pyi
rename to ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/measurement/v2/measurement_service_pb2.pyi
index a0455e224..bbb5275a0 100644
--- a/ni_measurement_plugin_sdk/_internal/stubs/ni/measurementlink/measurement/v2/measurement_service_pb2.pyi
+++ b/ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/measurement/v2/measurement_service_pb2.pyi
@@ -12,7 +12,7 @@ import google.protobuf.descriptor
 import google.protobuf.internal.containers
 import google.protobuf.message
 import google.protobuf.type_pb2
-import ni_measurement_plugin_sdk._internal.stubs.ni.measurementlink.pin_map_context_pb2 as ni_measurementlink_pin_map_context_pb2
+import ni_measurement_plugin_sdk_service._internal.stubs.ni.measurementlink.pin_map_context_pb2 as ni_measurementlink_pin_map_context_pb2
 import typing
 
 DESCRIPTOR: google.protobuf.descriptor.FileDescriptor
diff --git a/ni_measurement_plugin_sdk/_internal/stubs/ni/measurementlink/measurement/v2/measurement_service_pb2_grpc.py b/ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/measurement/v2/measurement_service_pb2_grpc.py
similarity index 96%
rename from ni_measurement_plugin_sdk/_internal/stubs/ni/measurementlink/measurement/v2/measurement_service_pb2_grpc.py
rename to ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/measurement/v2/measurement_service_pb2_grpc.py
index 10eab4882..3220455c7 100644
--- a/ni_measurement_plugin_sdk/_internal/stubs/ni/measurementlink/measurement/v2/measurement_service_pb2_grpc.py
+++ b/ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/measurement/v2/measurement_service_pb2_grpc.py
@@ -2,7 +2,7 @@
 """Client and server classes corresponding to protobuf-defined services."""
 import grpc
 
-from ni_measurement_plugin_sdk._internal.stubs.ni.measurementlink.measurement.v2 import measurement_service_pb2 as ni_dot_measurementlink_dot_measurement_dot_v2_dot_measurement__service__pb2
+from ni_measurement_plugin_sdk_service._internal.stubs.ni.measurementlink.measurement.v2 import measurement_service_pb2 as ni_dot_measurementlink_dot_measurement_dot_v2_dot_measurement__service__pb2
 
 
 class MeasurementServiceStub(object):
diff --git a/ni_measurement_plugin_sdk/_internal/stubs/ni/measurementlink/measurement/v2/measurement_service_pb2_grpc.pyi b/ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/measurement/v2/measurement_service_pb2_grpc.pyi
similarity index 95%
rename from ni_measurement_plugin_sdk/_internal/stubs/ni/measurementlink/measurement/v2/measurement_service_pb2_grpc.pyi
rename to ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/measurement/v2/measurement_service_pb2_grpc.pyi
index 7267564be..5a0fe7cfd 100644
--- a/ni_measurement_plugin_sdk/_internal/stubs/ni/measurementlink/measurement/v2/measurement_service_pb2_grpc.pyi
+++ b/ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/measurement/v2/measurement_service_pb2_grpc.pyi
@@ -9,7 +9,7 @@ import abc
 import collections.abc
 import grpc
 import grpc.aio
-import ni_measurement_plugin_sdk._internal.stubs.ni.measurementlink.measurement.v2.measurement_service_pb2 as ni_measurementlink_measurement_v2_measurement_service_pb2
+import ni_measurement_plugin_sdk_service._internal.stubs.ni.measurementlink.measurement.v2.measurement_service_pb2 as ni_measurementlink_measurement_v2_measurement_service_pb2
 import typing
 
 _T = typing.TypeVar("_T")
diff --git a/ni_measurement_plugin_sdk/_internal/stubs/ni/measurementlink/pin_map_context_pb2.py b/ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/pin_map_context_pb2.py
similarity index 100%
rename from ni_measurement_plugin_sdk/_internal/stubs/ni/measurementlink/pin_map_context_pb2.py
rename to ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/pin_map_context_pb2.py
diff --git a/ni_measurement_plugin_sdk/_internal/stubs/ni/measurementlink/pin_map_context_pb2.pyi b/ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/pin_map_context_pb2.pyi
similarity index 100%
rename from ni_measurement_plugin_sdk/_internal/stubs/ni/measurementlink/pin_map_context_pb2.pyi
rename to ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/pin_map_context_pb2.pyi
diff --git a/ni_measurement_plugin_sdk/_internal/stubs/ni/measurementlink/pin_map_context_pb2_grpc.py b/ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/pin_map_context_pb2_grpc.py
similarity index 100%
rename from ni_measurement_plugin_sdk/_internal/stubs/ni/measurementlink/pin_map_context_pb2_grpc.py
rename to ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/pin_map_context_pb2_grpc.py
diff --git a/ni_measurement_plugin_sdk/_internal/stubs/ni/measurementlink/pin_map_context_pb2_grpc.pyi b/ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/pin_map_context_pb2_grpc.pyi
similarity index 100%
rename from ni_measurement_plugin_sdk/_internal/stubs/ni/measurementlink/pin_map_context_pb2_grpc.pyi
rename to ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/pin_map_context_pb2_grpc.pyi
diff --git a/ni_measurement_plugin_sdk/_internal/stubs/ni/measurementlink/pinmap/__init__.py b/ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/pinmap/__init__.py
similarity index 100%
rename from ni_measurement_plugin_sdk/_internal/stubs/ni/measurementlink/pinmap/__init__.py
rename to ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/pinmap/__init__.py
diff --git a/ni_measurement_plugin_sdk/_internal/stubs/ni/measurementlink/pinmap/v1/__init__.py b/ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/pinmap/v1/__init__.py
similarity index 100%
rename from ni_measurement_plugin_sdk/_internal/stubs/ni/measurementlink/pinmap/v1/__init__.py
rename to ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/pinmap/v1/__init__.py
diff --git a/ni_measurement_plugin_sdk/_internal/stubs/ni/measurementlink/pinmap/v1/pin_map_service_pb2.py b/ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/pinmap/v1/pin_map_service_pb2.py
similarity index 100%
rename from ni_measurement_plugin_sdk/_internal/stubs/ni/measurementlink/pinmap/v1/pin_map_service_pb2.py
rename to ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/pinmap/v1/pin_map_service_pb2.py
diff --git a/ni_measurement_plugin_sdk/_internal/stubs/ni/measurementlink/pinmap/v1/pin_map_service_pb2.pyi b/ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/pinmap/v1/pin_map_service_pb2.pyi
similarity index 100%
rename from ni_measurement_plugin_sdk/_internal/stubs/ni/measurementlink/pinmap/v1/pin_map_service_pb2.pyi
rename to ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/pinmap/v1/pin_map_service_pb2.pyi
diff --git a/ni_measurement_plugin_sdk/_internal/stubs/ni/measurementlink/pinmap/v1/pin_map_service_pb2_grpc.py b/ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/pinmap/v1/pin_map_service_pb2_grpc.py
similarity index 98%
rename from ni_measurement_plugin_sdk/_internal/stubs/ni/measurementlink/pinmap/v1/pin_map_service_pb2_grpc.py
rename to ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/pinmap/v1/pin_map_service_pb2_grpc.py
index a87fc89e9..a4bcab6b0 100644
--- a/ni_measurement_plugin_sdk/_internal/stubs/ni/measurementlink/pinmap/v1/pin_map_service_pb2_grpc.py
+++ b/ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/pinmap/v1/pin_map_service_pb2_grpc.py
@@ -2,7 +2,7 @@
 """Client and server classes corresponding to protobuf-defined services."""
 import grpc
 
-from ni_measurement_plugin_sdk._internal.stubs.ni.measurementlink.pinmap.v1 import pin_map_service_pb2 as ni_dot_measurementlink_dot_pinmap_dot_v1_dot_pin__map__service__pb2
+from ni_measurement_plugin_sdk_service._internal.stubs.ni.measurementlink.pinmap.v1 import pin_map_service_pb2 as ni_dot_measurementlink_dot_pinmap_dot_v1_dot_pin__map__service__pb2
 
 
 class PinMapServiceStub(object):
diff --git a/ni_measurement_plugin_sdk/_internal/stubs/ni/measurementlink/pinmap/v1/pin_map_service_pb2_grpc.pyi b/ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/pinmap/v1/pin_map_service_pb2_grpc.pyi
similarity index 98%
rename from ni_measurement_plugin_sdk/_internal/stubs/ni/measurementlink/pinmap/v1/pin_map_service_pb2_grpc.pyi
rename to ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/pinmap/v1/pin_map_service_pb2_grpc.pyi
index 702e7bd23..9deca851c 100644
--- a/ni_measurement_plugin_sdk/_internal/stubs/ni/measurementlink/pinmap/v1/pin_map_service_pb2_grpc.pyi
+++ b/ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/pinmap/v1/pin_map_service_pb2_grpc.pyi
@@ -7,7 +7,7 @@ import abc
 import collections.abc
 import grpc
 import grpc.aio
-import ni_measurement_plugin_sdk._internal.stubs.ni.measurementlink.pinmap.v1.pin_map_service_pb2 as ni_measurementlink_pinmap_v1_pin_map_service_pb2
+import ni_measurement_plugin_sdk_service._internal.stubs.ni.measurementlink.pinmap.v1.pin_map_service_pb2 as ni_measurementlink_pinmap_v1_pin_map_service_pb2
 import typing
 
 _T = typing.TypeVar("_T")
diff --git a/ni_measurement_plugin_sdk/_internal/stubs/ni/measurementlink/sessionmanagement/__init__.py b/ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/sessionmanagement/__init__.py
similarity index 100%
rename from ni_measurement_plugin_sdk/_internal/stubs/ni/measurementlink/sessionmanagement/__init__.py
rename to ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/sessionmanagement/__init__.py
diff --git a/ni_measurement_plugin_sdk/_internal/stubs/ni/measurementlink/sessionmanagement/v1/__init__.py b/ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/sessionmanagement/v1/__init__.py
similarity index 100%
rename from ni_measurement_plugin_sdk/_internal/stubs/ni/measurementlink/sessionmanagement/v1/__init__.py
rename to ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/sessionmanagement/v1/__init__.py
diff --git a/ni_measurement_plugin_sdk/_internal/stubs/ni/measurementlink/sessionmanagement/v1/session_management_service_pb2.py b/ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/sessionmanagement/v1/session_management_service_pb2.py
similarity index 97%
rename from ni_measurement_plugin_sdk/_internal/stubs/ni/measurementlink/sessionmanagement/v1/session_management_service_pb2.py
rename to ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/sessionmanagement/v1/session_management_service_pb2.py
index 9f3318459..6e0487787 100644
--- a/ni_measurement_plugin_sdk/_internal/stubs/ni/measurementlink/sessionmanagement/v1/session_management_service_pb2.py
+++ b/ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/sessionmanagement/v1/session_management_service_pb2.py
@@ -11,8 +11,8 @@
 _sym_db = _symbol_database.Default()
 
 
-from ni_measurement_plugin_sdk._internal.stubs.ni.measurementlink import pin_map_context_pb2 as ni_dot_measurementlink_dot_pin__map__context__pb2
-from ni_measurement_plugin_sdk._internal.stubs import session_pb2 as session__pb2
+from ni_measurement_plugin_sdk_service._internal.stubs.ni.measurementlink import pin_map_context_pb2 as ni_dot_measurementlink_dot_pin__map__context__pb2
+from ni_measurement_plugin_sdk_service._internal.stubs import session_pb2 as session__pb2
 
 
 DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\nHni/measurementlink/sessionmanagement/v1/session_management_service.proto\x12\'ni.measurementlink.sessionmanagement.v1\x1a(ni/measurementlink/pin_map_context.proto\x1a\rsession.proto\"\xf1\x01\n\x12SessionInformation\x12\'\n\x07session\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\x15\n\rresource_name\x18\x02 \x01(\t\x12\x14\n\x0c\x63hannel_list\x18\x03 \x01(\t\x12\x1a\n\x12instrument_type_id\x18\x04 \x01(\t\x12\x16\n\x0esession_exists\x18\x05 \x01(\x08\x12Q\n\x10\x63hannel_mappings\x18\x06 \x03(\x0b\x32\x37.ni.measurementlink.sessionmanagement.v1.ChannelMapping\"\x88\x01\n\x0e\x43hannelMapping\x12\x19\n\x11pin_or_relay_name\x18\x01 \x01(\t\x12\x0c\n\x04site\x18\x02 \x01(\x05\x12\x0f\n\x07\x63hannel\x18\x03 \x01(\t\x12!\n\x19multiplexer_resource_name\x18\x04 \x01(\t\x12\x19\n\x11multiplexer_route\x18\x05 \x01(\t\"\x94\x01\n\x1dMultiplexerSessionInformation\x12\'\n\x07session\x18\x01 \x01(\x0b\x32\x16.nidevice_grpc.Session\x12\x15\n\rresource_name\x18\x02 \x01(\t\x12\x1b\n\x13multiplexer_type_id\x18\x03 \x01(\t\x12\x16\n\x0esession_exists\x18\x04 \x01(\x08\"\xad\x01\n\x16ReserveSessionsRequest\x12:\n\x0fpin_map_context\x18\x01 \x01(\x0b\x32!.ni.measurementlink.PinMapContext\x12\x1a\n\x12pin_or_relay_names\x18\x02 \x03(\t\x12\x1a\n\x12instrument_type_id\x18\x03 \x01(\t\x12\x1f\n\x17timeout_in_milliseconds\x18\x04 \x01(\x05\"\xb0\x03\n\x17ReserveSessionsResponse\x12M\n\x08sessions\x18\x01 \x03(\x0b\x32;.ni.measurementlink.sessionmanagement.v1.SessionInformation\x12\x64\n\x14multiplexer_sessions\x18\x02 \x03(\x0b\x32\x46.ni.measurementlink.sessionmanagement.v1.MultiplexerSessionInformation\x12k\n\x0egroup_mappings\x18\x03 \x03(\x0b\x32S.ni.measurementlink.sessionmanagement.v1.ReserveSessionsResponse.GroupMappingsEntry\x1as\n\x12GroupMappingsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12L\n\x05value\x18\x02 \x01(\x0b\x32=.ni.measurementlink.sessionmanagement.v1.ResolvedPinsOrRelays:\x02\x38\x01\"i\n\x18UnreserveSessionsRequest\x12M\n\x08sessions\x18\x01 \x03(\x0b\x32;.ni.measurementlink.sessionmanagement.v1.SessionInformation\"\x1b\n\x19UnreserveSessionsResponse\"h\n\x17RegisterSessionsRequest\x12M\n\x08sessions\x18\x01 \x03(\x0b\x32;.ni.measurementlink.sessionmanagement.v1.SessionInformation\"\x1a\n\x18RegisterSessionsResponse\"j\n\x19UnregisterSessionsRequest\x12M\n\x08sessions\x18\x01 \x03(\x0b\x32;.ni.measurementlink.sessionmanagement.v1.SessionInformation\"\x1c\n\x1aUnregisterSessionsResponse\"b\n#ReserveAllRegisteredSessionsRequest\x12\x1f\n\x17timeout_in_milliseconds\x18\x01 \x01(\x05\x12\x1a\n\x12instrument_type_id\x18\x02 \x01(\t\"u\n$ReserveAllRegisteredSessionsResponse\x12M\n\x08sessions\x18\x01 \x03(\x0b\x32;.ni.measurementlink.sessionmanagement.v1.SessionInformation\"\x8a\x01\n\"RegisterMultiplexerSessionsRequest\x12\x64\n\x14multiplexer_sessions\x18\x01 \x03(\x0b\x32\x46.ni.measurementlink.sessionmanagement.v1.MultiplexerSessionInformation\"%\n#RegisterMultiplexerSessionsResponse\"\x8c\x01\n$UnregisterMultiplexerSessionsRequest\x12\x64\n\x14multiplexer_sessions\x18\x01 \x03(\x0b\x32\x46.ni.measurementlink.sessionmanagement.v1.MultiplexerSessionInformation\"\'\n%UnregisterMultiplexerSessionsResponse\"x\n\x1dGetMultiplexerSessionsRequest\x12:\n\x0fpin_map_context\x18\x01 \x01(\x0b\x32!.ni.measurementlink.PinMapContext\x12\x1b\n\x13multiplexer_type_id\x18\x02 \x01(\t\"\x86\x01\n\x1eGetMultiplexerSessionsResponse\x12\x64\n\x14multiplexer_sessions\x18\x01 \x03(\x0b\x32\x46.ni.measurementlink.sessionmanagement.v1.MultiplexerSessionInformation\"I\n*GetAllRegisteredMultiplexerSessionsRequest\x12\x1b\n\x13multiplexer_type_id\x18\x01 \x01(\t\"\x93\x01\n+GetAllRegisteredMultiplexerSessionsResponse\x12\x64\n\x14multiplexer_sessions\x18\x01 \x03(\x0b\x32\x46.ni.measurementlink.sessionmanagement.v1.MultiplexerSessionInformation\"2\n\x14ResolvedPinsOrRelays\x12\x1a\n\x12pin_or_relay_names\x18\x01 \x03(\t2\xc1\x0c\n\x18SessionManagementService\x12\x94\x01\n\x0fReserveSessions\x12?.ni.measurementlink.sessionmanagement.v1.ReserveSessionsRequest\x1a@.ni.measurementlink.sessionmanagement.v1.ReserveSessionsResponse\x12\x9a\x01\n\x11UnreserveSessions\x12\x41.ni.measurementlink.sessionmanagement.v1.UnreserveSessionsRequest\x1a\x42.ni.measurementlink.sessionmanagement.v1.UnreserveSessionsResponse\x12\x97\x01\n\x10RegisterSessions\x12@.ni.measurementlink.sessionmanagement.v1.RegisterSessionsRequest\x1a\x41.ni.measurementlink.sessionmanagement.v1.RegisterSessionsResponse\x12\x9d\x01\n\x12UnregisterSessions\x12\x42.ni.measurementlink.sessionmanagement.v1.UnregisterSessionsRequest\x1a\x43.ni.measurementlink.sessionmanagement.v1.UnregisterSessionsResponse\x12\xbb\x01\n\x1cReserveAllRegisteredSessions\x12L.ni.measurementlink.sessionmanagement.v1.ReserveAllRegisteredSessionsRequest\x1aM.ni.measurementlink.sessionmanagement.v1.ReserveAllRegisteredSessionsResponse\x12\xb8\x01\n\x1bRegisterMultiplexerSessions\x12K.ni.measurementlink.sessionmanagement.v1.RegisterMultiplexerSessionsRequest\x1aL.ni.measurementlink.sessionmanagement.v1.RegisterMultiplexerSessionsResponse\x12\xbe\x01\n\x1dUnregisterMultiplexerSessions\x12M.ni.measurementlink.sessionmanagement.v1.UnregisterMultiplexerSessionsRequest\x1aN.ni.measurementlink.sessionmanagement.v1.UnregisterMultiplexerSessionsResponse\x12\xa9\x01\n\x16GetMultiplexerSessions\x12\x46.ni.measurementlink.sessionmanagement.v1.GetMultiplexerSessionsRequest\x1aG.ni.measurementlink.sessionmanagement.v1.GetMultiplexerSessionsResponse\x12\xd0\x01\n#GetAllRegisteredMultiplexerSessions\x12S.ni.measurementlink.sessionmanagement.v1.GetAllRegisteredMultiplexerSessionsRequest\x1aT.ni.measurementlink.sessionmanagement.v1.GetAllRegisteredMultiplexerSessionsResponseB\xf5\x01\n+com.ni.measurementlink.sessionmanagement.v1B\x16SessionManagementProtoP\x01Z\x13sessionmanagementv1\xa2\x02\x04NIMS\xaa\x02\x38NationalInstruments.MeasurementLink.SessionManagement.V1\xca\x02\'NI\\MeasurementLink\\SessionManagement\\V1\xea\x02*NI::MeasurementLink::SessionManagement::V1b\x06proto3')
diff --git a/ni_measurement_plugin_sdk/_internal/stubs/ni/measurementlink/sessionmanagement/v1/session_management_service_pb2.pyi b/ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/sessionmanagement/v1/session_management_service_pb2.pyi
similarity index 99%
rename from ni_measurement_plugin_sdk/_internal/stubs/ni/measurementlink/sessionmanagement/v1/session_management_service_pb2.pyi
rename to ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/sessionmanagement/v1/session_management_service_pb2.pyi
index 77d8b1062..31a58956a 100644
--- a/ni_measurement_plugin_sdk/_internal/stubs/ni/measurementlink/sessionmanagement/v1/session_management_service_pb2.pyi
+++ b/ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/sessionmanagement/v1/session_management_service_pb2.pyi
@@ -8,8 +8,8 @@ import collections.abc
 import google.protobuf.descriptor
 import google.protobuf.internal.containers
 import google.protobuf.message
-import ni_measurement_plugin_sdk._internal.stubs.ni.measurementlink.pin_map_context_pb2 as ni_measurementlink_pin_map_context_pb2
-from ni_measurement_plugin_sdk._internal.stubs import session_pb2
+import ni_measurement_plugin_sdk_service._internal.stubs.ni.measurementlink.pin_map_context_pb2 as ni_measurementlink_pin_map_context_pb2
+from ni_measurement_plugin_sdk_service._internal.stubs import session_pb2
 import typing
 
 DESCRIPTOR: google.protobuf.descriptor.FileDescriptor
diff --git a/ni_measurement_plugin_sdk/_internal/stubs/ni/measurementlink/sessionmanagement/v1/session_management_service_pb2_grpc.py b/ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/sessionmanagement/v1/session_management_service_pb2_grpc.py
similarity index 99%
rename from ni_measurement_plugin_sdk/_internal/stubs/ni/measurementlink/sessionmanagement/v1/session_management_service_pb2_grpc.py
rename to ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/sessionmanagement/v1/session_management_service_pb2_grpc.py
index 8240b338b..5a9288ccc 100644
--- a/ni_measurement_plugin_sdk/_internal/stubs/ni/measurementlink/sessionmanagement/v1/session_management_service_pb2_grpc.py
+++ b/ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/sessionmanagement/v1/session_management_service_pb2_grpc.py
@@ -2,7 +2,7 @@
 """Client and server classes corresponding to protobuf-defined services."""
 import grpc
 
-from ni_measurement_plugin_sdk._internal.stubs.ni.measurementlink.sessionmanagement.v1 import session_management_service_pb2 as ni_dot_measurementlink_dot_sessionmanagement_dot_v1_dot_session__management__service__pb2
+from ni_measurement_plugin_sdk_service._internal.stubs.ni.measurementlink.sessionmanagement.v1 import session_management_service_pb2 as ni_dot_measurementlink_dot_sessionmanagement_dot_v1_dot_session__management__service__pb2
 
 
 class SessionManagementServiceStub(object):
diff --git a/ni_measurement_plugin_sdk/_internal/stubs/ni/measurementlink/sessionmanagement/v1/session_management_service_pb2_grpc.pyi b/ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/sessionmanagement/v1/session_management_service_pb2_grpc.pyi
similarity index 98%
rename from ni_measurement_plugin_sdk/_internal/stubs/ni/measurementlink/sessionmanagement/v1/session_management_service_pb2_grpc.pyi
rename to ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/sessionmanagement/v1/session_management_service_pb2_grpc.pyi
index 48f44b4f7..c3b7e01a6 100644
--- a/ni_measurement_plugin_sdk/_internal/stubs/ni/measurementlink/sessionmanagement/v1/session_management_service_pb2_grpc.pyi
+++ b/ni_measurement_plugin_sdk_service/_internal/stubs/ni/measurementlink/sessionmanagement/v1/session_management_service_pb2_grpc.pyi
@@ -7,7 +7,7 @@ import abc
 import collections.abc
 import grpc
 import grpc.aio
-import ni_measurement_plugin_sdk._internal.stubs.ni.measurementlink.sessionmanagement.v1.session_management_service_pb2 as ni_measurementlink_sessionmanagement_v1_session_management_service_pb2
+import ni_measurement_plugin_sdk_service._internal.stubs.ni.measurementlink.sessionmanagement.v1.session_management_service_pb2 as ni_measurementlink_sessionmanagement_v1_session_management_service_pb2
 import typing
 
 _T = typing.TypeVar("_T")
diff --git a/ni_measurement_plugin_sdk/_internal/stubs/ni/protobuf/__init__.py b/ni_measurement_plugin_sdk_service/_internal/stubs/ni/protobuf/__init__.py
similarity index 100%
rename from ni_measurement_plugin_sdk/_internal/stubs/ni/protobuf/__init__.py
rename to ni_measurement_plugin_sdk_service/_internal/stubs/ni/protobuf/__init__.py
diff --git a/ni_measurement_plugin_sdk/_internal/stubs/ni/protobuf/types/__init__.py b/ni_measurement_plugin_sdk_service/_internal/stubs/ni/protobuf/types/__init__.py
similarity index 100%
rename from ni_measurement_plugin_sdk/_internal/stubs/ni/protobuf/types/__init__.py
rename to ni_measurement_plugin_sdk_service/_internal/stubs/ni/protobuf/types/__init__.py
diff --git a/ni_measurement_plugin_sdk/_internal/stubs/ni/protobuf/types/precision_timestamp_pb2.py b/ni_measurement_plugin_sdk_service/_internal/stubs/ni/protobuf/types/precision_timestamp_pb2.py
similarity index 100%
rename from ni_measurement_plugin_sdk/_internal/stubs/ni/protobuf/types/precision_timestamp_pb2.py
rename to ni_measurement_plugin_sdk_service/_internal/stubs/ni/protobuf/types/precision_timestamp_pb2.py
diff --git a/ni_measurement_plugin_sdk/_internal/stubs/ni/protobuf/types/precision_timestamp_pb2.pyi b/ni_measurement_plugin_sdk_service/_internal/stubs/ni/protobuf/types/precision_timestamp_pb2.pyi
similarity index 100%
rename from ni_measurement_plugin_sdk/_internal/stubs/ni/protobuf/types/precision_timestamp_pb2.pyi
rename to ni_measurement_plugin_sdk_service/_internal/stubs/ni/protobuf/types/precision_timestamp_pb2.pyi
diff --git a/ni_measurement_plugin_sdk/_internal/stubs/ni/protobuf/types/precision_timestamp_pb2_grpc.py b/ni_measurement_plugin_sdk_service/_internal/stubs/ni/protobuf/types/precision_timestamp_pb2_grpc.py
similarity index 100%
rename from ni_measurement_plugin_sdk/_internal/stubs/ni/protobuf/types/precision_timestamp_pb2_grpc.py
rename to ni_measurement_plugin_sdk_service/_internal/stubs/ni/protobuf/types/precision_timestamp_pb2_grpc.py
diff --git a/ni_measurement_plugin_sdk/_internal/stubs/ni/protobuf/types/precision_timestamp_pb2_grpc.pyi b/ni_measurement_plugin_sdk_service/_internal/stubs/ni/protobuf/types/precision_timestamp_pb2_grpc.pyi
similarity index 100%
rename from ni_measurement_plugin_sdk/_internal/stubs/ni/protobuf/types/precision_timestamp_pb2_grpc.pyi
rename to ni_measurement_plugin_sdk_service/_internal/stubs/ni/protobuf/types/precision_timestamp_pb2_grpc.pyi
diff --git a/ni_measurement_plugin_sdk/_internal/stubs/ni/protobuf/types/waveform_pb2.py b/ni_measurement_plugin_sdk_service/_internal/stubs/ni/protobuf/types/waveform_pb2.py
similarity index 93%
rename from ni_measurement_plugin_sdk/_internal/stubs/ni/protobuf/types/waveform_pb2.py
rename to ni_measurement_plugin_sdk_service/_internal/stubs/ni/protobuf/types/waveform_pb2.py
index 04cf89c46..2beb9427d 100644
--- a/ni_measurement_plugin_sdk/_internal/stubs/ni/protobuf/types/waveform_pb2.py
+++ b/ni_measurement_plugin_sdk_service/_internal/stubs/ni/protobuf/types/waveform_pb2.py
@@ -11,7 +11,7 @@
 _sym_db = _symbol_database.Default()
 
 
-from ni_measurement_plugin_sdk._internal.stubs.ni.protobuf.types import precision_timestamp_pb2 as ni_dot_protobuf_dot_types_dot_precision__timestamp__pb2
+from ni_measurement_plugin_sdk_service._internal.stubs.ni.protobuf.types import precision_timestamp_pb2 as ni_dot_protobuf_dot_types_dot_precision__timestamp__pb2
 
 
 DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n ni/protobuf/types/waveform.proto\x12\x11ni.protobuf.types\x1a+ni/protobuf/types/precision_timestamp.proto\"\x90\x02\n\x14\x44oubleAnalogWaveform\x12\x31\n\x02t0\x18\x01 \x01(\x0b\x32%.ni.protobuf.types.PrecisionTimestamp\x12\n\n\x02\x64t\x18\x02 \x01(\x01\x12\x0e\n\x06y_data\x18\x03 \x03(\x01\x12K\n\nattributes\x18\x04 \x03(\x0b\x32\x37.ni.protobuf.types.DoubleAnalogWaveform.AttributesEntry\x1a\\\n\x0f\x41ttributesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x38\n\x05value\x18\x02 \x01(\x0b\x32).ni.protobuf.types.WaveformAttributeValue:\x02\x38\x01\"\x84\x01\n\x16WaveformAttributeValue\x12\x14\n\nbool_value\x18\x01 \x01(\x08H\x00\x12\x17\n\rinteger_value\x18\x02 \x01(\x05H\x00\x12\x16\n\x0c\x64ouble_value\x18\x03 \x01(\x01H\x00\x12\x16\n\x0cstring_value\x18\x04 \x01(\tH\x00\x42\x0b\n\tattributeB\x85\x01\n\x15\x63om.ni.protobuf.typesB\rWaveformProtoP\x01Z\x05types\xa2\x02\x04NIPT\xaa\x02\"NationalInstruments.Protobuf.Types\xca\x02\x11NI\\PROTOBUF\\TYPES\xea\x02\x13NI::Protobuf::Typesb\x06proto3')
diff --git a/ni_measurement_plugin_sdk/_internal/stubs/ni/protobuf/types/waveform_pb2.pyi b/ni_measurement_plugin_sdk_service/_internal/stubs/ni/protobuf/types/waveform_pb2.pyi
similarity index 97%
rename from ni_measurement_plugin_sdk/_internal/stubs/ni/protobuf/types/waveform_pb2.pyi
rename to ni_measurement_plugin_sdk_service/_internal/stubs/ni/protobuf/types/waveform_pb2.pyi
index 4375957d0..fa7c96516 100644
--- a/ni_measurement_plugin_sdk/_internal/stubs/ni/protobuf/types/waveform_pb2.pyi
+++ b/ni_measurement_plugin_sdk_service/_internal/stubs/ni/protobuf/types/waveform_pb2.pyi
@@ -10,7 +10,7 @@ import collections.abc
 import google.protobuf.descriptor
 import google.protobuf.internal.containers
 import google.protobuf.message
-import ni_measurement_plugin_sdk._internal.stubs.ni.protobuf.types.precision_timestamp_pb2 as ni_protobuf_types_precision_timestamp_pb2
+import ni_measurement_plugin_sdk_service._internal.stubs.ni.protobuf.types.precision_timestamp_pb2 as ni_protobuf_types_precision_timestamp_pb2
 import typing
 
 DESCRIPTOR: google.protobuf.descriptor.FileDescriptor
diff --git a/ni_measurement_plugin_sdk/_internal/stubs/ni/protobuf/types/waveform_pb2_grpc.py b/ni_measurement_plugin_sdk_service/_internal/stubs/ni/protobuf/types/waveform_pb2_grpc.py
similarity index 100%
rename from ni_measurement_plugin_sdk/_internal/stubs/ni/protobuf/types/waveform_pb2_grpc.py
rename to ni_measurement_plugin_sdk_service/_internal/stubs/ni/protobuf/types/waveform_pb2_grpc.py
diff --git a/ni_measurement_plugin_sdk/_internal/stubs/ni/protobuf/types/waveform_pb2_grpc.pyi b/ni_measurement_plugin_sdk_service/_internal/stubs/ni/protobuf/types/waveform_pb2_grpc.pyi
similarity index 100%
rename from ni_measurement_plugin_sdk/_internal/stubs/ni/protobuf/types/waveform_pb2_grpc.pyi
rename to ni_measurement_plugin_sdk_service/_internal/stubs/ni/protobuf/types/waveform_pb2_grpc.pyi
diff --git a/ni_measurement_plugin_sdk/_internal/stubs/ni/protobuf/types/xydata_pb2.py b/ni_measurement_plugin_sdk_service/_internal/stubs/ni/protobuf/types/xydata_pb2.py
similarity index 100%
rename from ni_measurement_plugin_sdk/_internal/stubs/ni/protobuf/types/xydata_pb2.py
rename to ni_measurement_plugin_sdk_service/_internal/stubs/ni/protobuf/types/xydata_pb2.py
diff --git a/ni_measurement_plugin_sdk/_internal/stubs/ni/protobuf/types/xydata_pb2.pyi b/ni_measurement_plugin_sdk_service/_internal/stubs/ni/protobuf/types/xydata_pb2.pyi
similarity index 100%
rename from ni_measurement_plugin_sdk/_internal/stubs/ni/protobuf/types/xydata_pb2.pyi
rename to ni_measurement_plugin_sdk_service/_internal/stubs/ni/protobuf/types/xydata_pb2.pyi
diff --git a/ni_measurement_plugin_sdk/_internal/stubs/ni/protobuf/types/xydata_pb2_grpc.py b/ni_measurement_plugin_sdk_service/_internal/stubs/ni/protobuf/types/xydata_pb2_grpc.py
similarity index 100%
rename from ni_measurement_plugin_sdk/_internal/stubs/ni/protobuf/types/xydata_pb2_grpc.py
rename to ni_measurement_plugin_sdk_service/_internal/stubs/ni/protobuf/types/xydata_pb2_grpc.py
diff --git a/ni_measurement_plugin_sdk/_internal/stubs/ni/protobuf/types/xydata_pb2_grpc.pyi b/ni_measurement_plugin_sdk_service/_internal/stubs/ni/protobuf/types/xydata_pb2_grpc.pyi
similarity index 100%
rename from ni_measurement_plugin_sdk/_internal/stubs/ni/protobuf/types/xydata_pb2_grpc.pyi
rename to ni_measurement_plugin_sdk_service/_internal/stubs/ni/protobuf/types/xydata_pb2_grpc.pyi
diff --git a/ni_measurement_plugin_sdk/_internal/stubs/proto/README.md b/ni_measurement_plugin_sdk_service/_internal/stubs/proto/README.md
similarity index 100%
rename from ni_measurement_plugin_sdk/_internal/stubs/proto/README.md
rename to ni_measurement_plugin_sdk_service/_internal/stubs/proto/README.md
diff --git a/ni_measurement_plugin_sdk/_internal/stubs/proto/__init__.py b/ni_measurement_plugin_sdk_service/_internal/stubs/proto/__init__.py
similarity index 100%
rename from ni_measurement_plugin_sdk/_internal/stubs/proto/__init__.py
rename to ni_measurement_plugin_sdk_service/_internal/stubs/proto/__init__.py
diff --git a/ni_measurement_plugin_sdk/_internal/stubs/proto/session.proto b/ni_measurement_plugin_sdk_service/_internal/stubs/proto/session.proto
similarity index 100%
rename from ni_measurement_plugin_sdk/_internal/stubs/proto/session.proto
rename to ni_measurement_plugin_sdk_service/_internal/stubs/proto/session.proto
diff --git a/ni_measurement_plugin_sdk/_internal/stubs/session_pb2.py b/ni_measurement_plugin_sdk_service/_internal/stubs/session_pb2.py
similarity index 100%
rename from ni_measurement_plugin_sdk/_internal/stubs/session_pb2.py
rename to ni_measurement_plugin_sdk_service/_internal/stubs/session_pb2.py
diff --git a/ni_measurement_plugin_sdk/_internal/stubs/session_pb2.pyi b/ni_measurement_plugin_sdk_service/_internal/stubs/session_pb2.pyi
similarity index 100%
rename from ni_measurement_plugin_sdk/_internal/stubs/session_pb2.pyi
rename to ni_measurement_plugin_sdk_service/_internal/stubs/session_pb2.pyi
diff --git a/ni_measurement_plugin_sdk/_internal/stubs/session_pb2_grpc.py b/ni_measurement_plugin_sdk_service/_internal/stubs/session_pb2_grpc.py
similarity index 98%
rename from ni_measurement_plugin_sdk/_internal/stubs/session_pb2_grpc.py
rename to ni_measurement_plugin_sdk_service/_internal/stubs/session_pb2_grpc.py
index dad705d6e..64940c4cc 100644
--- a/ni_measurement_plugin_sdk/_internal/stubs/session_pb2_grpc.py
+++ b/ni_measurement_plugin_sdk_service/_internal/stubs/session_pb2_grpc.py
@@ -2,7 +2,7 @@
 """Client and server classes corresponding to protobuf-defined services."""
 import grpc
 
-from ni_measurement_plugin_sdk._internal.stubs import session_pb2 as session__pb2
+from ni_measurement_plugin_sdk_service._internal.stubs import session_pb2 as session__pb2
 
 
 class SessionUtilitiesStub(object):
diff --git a/ni_measurement_plugin_sdk/_internal/stubs/session_pb2_grpc.pyi b/ni_measurement_plugin_sdk_service/_internal/stubs/session_pb2_grpc.pyi
similarity index 98%
rename from ni_measurement_plugin_sdk/_internal/stubs/session_pb2_grpc.pyi
rename to ni_measurement_plugin_sdk_service/_internal/stubs/session_pb2_grpc.pyi
index d0af49c53..961856253 100644
--- a/ni_measurement_plugin_sdk/_internal/stubs/session_pb2_grpc.pyi
+++ b/ni_measurement_plugin_sdk_service/_internal/stubs/session_pb2_grpc.pyi
@@ -7,7 +7,7 @@ import abc
 import collections.abc
 import grpc
 import grpc.aio
-from ni_measurement_plugin_sdk._internal.stubs import session_pb2
+from ni_measurement_plugin_sdk_service._internal.stubs import session_pb2
 import typing
 
 _T = typing.TypeVar("_T")
diff --git a/ni_measurement_plugin_sdk/_tracelogging.py b/ni_measurement_plugin_sdk_service/_tracelogging.py
similarity index 100%
rename from ni_measurement_plugin_sdk/_tracelogging.py
rename to ni_measurement_plugin_sdk_service/_tracelogging.py
diff --git a/ni_measurement_plugin_sdk_service/discovery/__init__.py b/ni_measurement_plugin_sdk_service/discovery/__init__.py
new file mode 100644
index 000000000..ad4110058
--- /dev/null
+++ b/ni_measurement_plugin_sdk_service/discovery/__init__.py
@@ -0,0 +1,6 @@
+"""Public API for accessing the MeasurementLink discovery service."""
+
+from ni_measurement_plugin_sdk_service.discovery._client import DiscoveryClient
+from ni_measurement_plugin_sdk_service.discovery._types import ServiceLocation
+
+__all__ = ["DiscoveryClient", "ServiceLocation"]
diff --git a/ni_measurement_plugin_sdk/discovery/_client.py b/ni_measurement_plugin_sdk_service/discovery/_client.py
similarity index 94%
rename from ni_measurement_plugin_sdk/discovery/_client.py
rename to ni_measurement_plugin_sdk_service/discovery/_client.py
index 8f3e3d273..eb08c0626 100644
--- a/ni_measurement_plugin_sdk/discovery/_client.py
+++ b/ni_measurement_plugin_sdk_service/discovery/_client.py
@@ -7,17 +7,17 @@
 import grpc
 from deprecation import deprecated
 
-from ni_measurement_plugin_sdk._annotations import (
+from ni_measurement_plugin_sdk_service._annotations import (
     SERVICE_PROGRAMMINGLANGUAGE_KEY,
 )
-from ni_measurement_plugin_sdk._internal.stubs.ni.measurementlink.discovery.v1 import (
+from ni_measurement_plugin_sdk_service._internal.stubs.ni.measurementlink.discovery.v1 import (
     discovery_service_pb2,
     discovery_service_pb2_grpc,
 )
-from ni_measurement_plugin_sdk.discovery._support import _get_discovery_service_address
-from ni_measurement_plugin_sdk.discovery._types import ServiceLocation
-from ni_measurement_plugin_sdk.grpc.channelpool import GrpcChannelPool
-from ni_measurement_plugin_sdk.measurement.info import MeasurementInfo, ServiceInfo
+from ni_measurement_plugin_sdk_service.discovery._support import _get_discovery_service_address
+from ni_measurement_plugin_sdk_service.discovery._types import ServiceLocation
+from ni_measurement_plugin_sdk_service.grpc.channelpool import GrpcChannelPool
+from ni_measurement_plugin_sdk_service.measurement.info import MeasurementInfo, ServiceInfo
 
 _logger = logging.getLogger(__name__)
 
diff --git a/ni_measurement_plugin_sdk/discovery/_support.py b/ni_measurement_plugin_sdk_service/discovery/_support.py
similarity index 98%
rename from ni_measurement_plugin_sdk/discovery/_support.py
rename to ni_measurement_plugin_sdk_service/discovery/_support.py
index fdae5548a..87e16ae72 100644
--- a/ni_measurement_plugin_sdk/discovery/_support.py
+++ b/ni_measurement_plugin_sdk_service/discovery/_support.py
@@ -10,7 +10,7 @@
 import typing
 from typing import Any, Dict, Optional
 
-from ni_measurement_plugin_sdk._internal.stubs.ni.measurementlink.discovery.v1 import (
+from ni_measurement_plugin_sdk_service._internal.stubs.ni.measurementlink.discovery.v1 import (
     discovery_service_pb2,
 )
 
diff --git a/ni_measurement_plugin_sdk/discovery/_types.py b/ni_measurement_plugin_sdk_service/discovery/_types.py
similarity index 100%
rename from ni_measurement_plugin_sdk/discovery/_types.py
rename to ni_measurement_plugin_sdk_service/discovery/_types.py
diff --git a/ni_measurement_plugin_sdk/grpc/__init__.py b/ni_measurement_plugin_sdk_service/grpc/__init__.py
similarity index 100%
rename from ni_measurement_plugin_sdk/grpc/__init__.py
rename to ni_measurement_plugin_sdk_service/grpc/__init__.py
diff --git a/ni_measurement_plugin_sdk/grpc/channelpool.py b/ni_measurement_plugin_sdk_service/grpc/channelpool.py
similarity index 96%
rename from ni_measurement_plugin_sdk/grpc/channelpool.py
rename to ni_measurement_plugin_sdk_service/grpc/channelpool.py
index 089b87284..1ec44e21c 100644
--- a/ni_measurement_plugin_sdk/grpc/channelpool.py
+++ b/ni_measurement_plugin_sdk_service/grpc/channelpool.py
@@ -15,7 +15,7 @@
 
 import grpc
 
-from ni_measurement_plugin_sdk.grpc.loggers import ClientLogger
+from ni_measurement_plugin_sdk_service.grpc.loggers import ClientLogger
 
 if TYPE_CHECKING:
     if sys.version_info >= (3, 11):
diff --git a/ni_measurement_plugin_sdk/grpc/loggers.py b/ni_measurement_plugin_sdk_service/grpc/loggers.py
similarity index 99%
rename from ni_measurement_plugin_sdk/grpc/loggers.py
rename to ni_measurement_plugin_sdk_service/grpc/loggers.py
index 958ff99d0..5266914f2 100644
--- a/ni_measurement_plugin_sdk/grpc/loggers.py
+++ b/ni_measurement_plugin_sdk_service/grpc/loggers.py
@@ -28,7 +28,7 @@
     else:
         from typing_extensions import Self
 
-from ni_measurement_plugin_sdk import _tracelogging
+from ni_measurement_plugin_sdk_service import _tracelogging
 
 _logger = logging.getLogger(__name__)
 
diff --git a/ni_measurement_plugin_sdk/measurement/__init__.py b/ni_measurement_plugin_sdk_service/measurement/__init__.py
similarity index 100%
rename from ni_measurement_plugin_sdk/measurement/__init__.py
rename to ni_measurement_plugin_sdk_service/measurement/__init__.py
diff --git a/ni_measurement_plugin_sdk/measurement/info.py b/ni_measurement_plugin_sdk_service/measurement/info.py
similarity index 100%
rename from ni_measurement_plugin_sdk/measurement/info.py
rename to ni_measurement_plugin_sdk_service/measurement/info.py
diff --git a/ni_measurement_plugin_sdk/measurement/service.py b/ni_measurement_plugin_sdk_service/measurement/service.py
similarity index 95%
rename from ni_measurement_plugin_sdk/measurement/service.py
rename to ni_measurement_plugin_sdk_service/measurement/service.py
index 936ceaf28..2ff645217 100644
--- a/ni_measurement_plugin_sdk/measurement/service.py
+++ b/ni_measurement_plugin_sdk_service/measurement/service.py
@@ -28,27 +28,27 @@
 from deprecation import deprecated
 from google.protobuf.descriptor import EnumDescriptor
 
-from ni_measurement_plugin_sdk import _datatypeinfo
-from ni_measurement_plugin_sdk._annotations import (
+from ni_measurement_plugin_sdk_service import _datatypeinfo
+from ni_measurement_plugin_sdk_service._annotations import (
     ENUM_VALUES_KEY,
     TYPE_SPECIALIZATION_KEY,
 )
-from ni_measurement_plugin_sdk._internal import grpc_servicer
-from ni_measurement_plugin_sdk._internal.parameter import (
+from ni_measurement_plugin_sdk_service._internal import grpc_servicer
+from ni_measurement_plugin_sdk_service._internal.parameter import (
     metadata as parameter_metadata,
 )
-from ni_measurement_plugin_sdk._internal.service_manager import GrpcService
-from ni_measurement_plugin_sdk.discovery import DiscoveryClient, ServiceLocation
-from ni_measurement_plugin_sdk.grpc.channelpool import (  # re-export
+from ni_measurement_plugin_sdk_service._internal.service_manager import GrpcService
+from ni_measurement_plugin_sdk_service.discovery import DiscoveryClient, ServiceLocation
+from ni_measurement_plugin_sdk_service.grpc.channelpool import (  # re-export
     GrpcChannelPool as GrpcChannelPool,
 )
-from ni_measurement_plugin_sdk.measurement.info import (
+from ni_measurement_plugin_sdk_service.measurement.info import (
     DataType,
     MeasurementInfo,
     ServiceInfo,
     TypeSpecialization,
 )
-from ni_measurement_plugin_sdk.session_management import (
+from ni_measurement_plugin_sdk_service.session_management import (
     MultiSessionReservation,
     PinMapContext,
     SessionManagementClient,
@@ -387,10 +387,10 @@ def configuration(
                 is DataType.IOResource or DataType.Pin (deprecated).
 
                 For NI instruments, use instrument type id constants defined by
-                :py:mod:`ni_measurement_plugin_sdk.session_management`, such as
-                :py:const:`~ni_measurement_plugin_sdk.session_management.INSTRUMENT_TYPE_NI_DCPOWER`
+                :py:mod:`ni_measurement_plugin_sdk_service.session_management`, such as
+                :py:const:`~ni_measurement_plugin_sdk_service.session_management.INSTRUMENT_TYPE_NI_DCPOWER`
                 or
-                :py:const:`~ni_measurement_plugin_sdk.session_management.INSTRUMENT_TYPE_NI_DMM`.
+                :py:const:`~ni_measurement_plugin_sdk_service.session_management.INSTRUMENT_TYPE_NI_DMM`.
 
                 For custom instruments, use the instrument type id defined in the pin map file.
 
diff --git a/ni_measurement_plugin_sdk/py.typed b/ni_measurement_plugin_sdk_service/py.typed
similarity index 100%
rename from ni_measurement_plugin_sdk/py.typed
rename to ni_measurement_plugin_sdk_service/py.typed
diff --git a/ni_measurement_plugin_sdk/session_management/__init__.py b/ni_measurement_plugin_sdk_service/session_management/__init__.py
similarity index 90%
rename from ni_measurement_plugin_sdk/session_management/__init__.py
rename to ni_measurement_plugin_sdk_service/session_management/__init__.py
index 765fcd6e8..220294349 100644
--- a/ni_measurement_plugin_sdk/session_management/__init__.py
+++ b/ni_measurement_plugin_sdk_service/session_management/__init__.py
@@ -7,10 +7,10 @@
 
 from deprecation import DeprecatedWarning
 
-from ni_measurement_plugin_sdk.session_management._client import (
+from ni_measurement_plugin_sdk_service.session_management._client import (
     SessionManagementClient,
 )
-from ni_measurement_plugin_sdk.session_management._constants import (
+from ni_measurement_plugin_sdk_service.session_management._constants import (
     GRPC_SERVICE_CLASS,
     GRPC_SERVICE_INTERFACE_NAME,
     INSTRUMENT_TYPE_NI_DAQMX,
@@ -30,13 +30,13 @@
     INSTRUMENT_TYPE_NONE,
     SITE_SYSTEM_PINS,
 )
-from ni_measurement_plugin_sdk.session_management._reservation import (
+from ni_measurement_plugin_sdk_service.session_management._reservation import (
     BaseReservation,
     MultiplexerSessionContainer,
     MultiSessionReservation,
     SingleSessionReservation,
 )
-from ni_measurement_plugin_sdk.session_management._types import (
+from ni_measurement_plugin_sdk_service.session_management._types import (
     ChannelMapping,
     Connection,
     PinMapContext,
diff --git a/ni_measurement_plugin_sdk/session_management/_client.py b/ni_measurement_plugin_sdk_service/session_management/_client.py
similarity index 97%
rename from ni_measurement_plugin_sdk/session_management/_client.py
rename to ni_measurement_plugin_sdk_service/session_management/_client.py
index ed8caf040..d22a1d8c6 100644
--- a/ni_measurement_plugin_sdk/session_management/_client.py
+++ b/ni_measurement_plugin_sdk_service/session_management/_client.py
@@ -10,22 +10,22 @@
 import google.protobuf.internal.containers
 import grpc
 
-from ni_measurement_plugin_sdk._internal.stubs.ni.measurementlink.sessionmanagement.v1 import (
+from ni_measurement_plugin_sdk_service._internal.stubs.ni.measurementlink.sessionmanagement.v1 import (
     session_management_service_pb2,
     session_management_service_pb2_grpc,
 )
-from ni_measurement_plugin_sdk.discovery import DiscoveryClient
-from ni_measurement_plugin_sdk.grpc.channelpool import GrpcChannelPool
-from ni_measurement_plugin_sdk.session_management._constants import (
+from ni_measurement_plugin_sdk_service.discovery import DiscoveryClient
+from ni_measurement_plugin_sdk_service.grpc.channelpool import GrpcChannelPool
+from ni_measurement_plugin_sdk_service.session_management._constants import (
     GRPC_SERVICE_CLASS,
     GRPC_SERVICE_INTERFACE_NAME,
 )
-from ni_measurement_plugin_sdk.session_management._reservation import (
+from ni_measurement_plugin_sdk_service.session_management._reservation import (
     MultiplexerSessionContainer,
     MultiSessionReservation,
     SingleSessionReservation,
 )
-from ni_measurement_plugin_sdk.session_management._types import (
+from ni_measurement_plugin_sdk_service.session_management._types import (
     MultiplexerSessionInformation,
     PinMapContext,
     SessionInformation,
diff --git a/ni_measurement_plugin_sdk/session_management/_constants.py b/ni_measurement_plugin_sdk_service/session_management/_constants.py
similarity index 100%
rename from ni_measurement_plugin_sdk/session_management/_constants.py
rename to ni_measurement_plugin_sdk_service/session_management/_constants.py
diff --git a/ni_measurement_plugin_sdk/session_management/_reservation.py b/ni_measurement_plugin_sdk_service/session_management/_reservation.py
similarity index 98%
rename from ni_measurement_plugin_sdk/session_management/_reservation.py
rename to ni_measurement_plugin_sdk_service/session_management/_reservation.py
index 9afd78220..4f02138e6 100644
--- a/ni_measurement_plugin_sdk/session_management/_reservation.py
+++ b/ni_measurement_plugin_sdk_service/session_management/_reservation.py
@@ -31,16 +31,16 @@
     cast,
 )
 
-from ni_measurement_plugin_sdk._drivers import (
+from ni_measurement_plugin_sdk_service._drivers import (
     closing_session,
     closing_session_with_ts_code_module_support,
 )
-from ni_measurement_plugin_sdk._internal.stubs.ni.measurementlink.sessionmanagement.v1 import (
+from ni_measurement_plugin_sdk_service._internal.stubs.ni.measurementlink.sessionmanagement.v1 import (
     session_management_service_pb2,
 )
-from ni_measurement_plugin_sdk.discovery import DiscoveryClient
-from ni_measurement_plugin_sdk.grpc.channelpool import GrpcChannelPool
-from ni_measurement_plugin_sdk.session_management._constants import (
+from ni_measurement_plugin_sdk_service.discovery import DiscoveryClient
+from ni_measurement_plugin_sdk_service.grpc.channelpool import GrpcChannelPool
+from ni_measurement_plugin_sdk_service.session_management._constants import (
     INSTRUMENT_TYPE_NI_DAQMX,
     INSTRUMENT_TYPE_NI_DCPOWER,
     INSTRUMENT_TYPE_NI_DIGITAL_PATTERN,
@@ -50,7 +50,7 @@
     INSTRUMENT_TYPE_NI_SCOPE,
     SITE_SYSTEM_PINS,
 )
-from ni_measurement_plugin_sdk.session_management._types import (
+from ni_measurement_plugin_sdk_service.session_management._types import (
     Connection,
     MultiplexerSessionInformation,
     SessionInformation,
@@ -74,7 +74,7 @@
     import niscope
     import niswitch
 
-    from ni_measurement_plugin_sdk.session_management._client import (  # circular import
+    from ni_measurement_plugin_sdk_service.session_management._client import (  # circular import
         SessionManagementClient,
     )
 
@@ -467,7 +467,7 @@ def initialize_niswitch_multiplexer_session(
         See Also:
             For more details, see :py:class:`niswitch.Session`.
         """
-        from ni_measurement_plugin_sdk._drivers._niswitch import SessionConstructor
+        from ni_measurement_plugin_sdk_service._drivers._niswitch import SessionConstructor
 
         session_constructor = SessionConstructor(
             self._discovery_client,
@@ -530,7 +530,7 @@ def initialize_niswitch_multiplexer_sessions(
         See Also:
             For more details, see :py:class:`niswitch.Session`.
         """
-        from ni_measurement_plugin_sdk._drivers._niswitch import SessionConstructor
+        from ni_measurement_plugin_sdk_service._drivers._niswitch import SessionConstructor
 
         session_constructor = SessionConstructor(
             self._discovery_client,
@@ -1183,7 +1183,7 @@ def create_nidaqmx_task(
         See Also:
             For more details, see :py:class:`nidaqmx.Task`.
         """
-        from ni_measurement_plugin_sdk._drivers._nidaqmx import SessionConstructor
+        from ni_measurement_plugin_sdk_service._drivers._nidaqmx import SessionConstructor
 
         session_constructor = SessionConstructor(
             self._discovery_client, self._grpc_channel_pool, initialization_behavior
@@ -1219,7 +1219,7 @@ def create_nidaqmx_tasks(
         See Also:
             For more details, see :py:class:`nidaqmx.Task`.
         """
-        from ni_measurement_plugin_sdk._drivers._nidaqmx import SessionConstructor
+        from ni_measurement_plugin_sdk_service._drivers._nidaqmx import SessionConstructor
 
         session_constructor = SessionConstructor(
             self._discovery_client, self._grpc_channel_pool, initialization_behavior
@@ -1384,7 +1384,7 @@ def initialize_nidcpower_session(
         See Also:
             For more details, see :py:class:`nidcpower.Session`.
         """
-        from ni_measurement_plugin_sdk._drivers._nidcpower import SessionConstructor
+        from ni_measurement_plugin_sdk_service._drivers._nidcpower import SessionConstructor
 
         session_constructor = SessionConstructor(
             self._discovery_client, self._grpc_channel_pool, reset, options, initialization_behavior
@@ -1428,7 +1428,7 @@ def initialize_nidcpower_sessions(
         See Also:
             For more details, see :py:class:`nidcpower.Session`.
         """
-        from ni_measurement_plugin_sdk._drivers._nidcpower import SessionConstructor
+        from ni_measurement_plugin_sdk_service._drivers._nidcpower import SessionConstructor
 
         session_constructor = SessionConstructor(
             self._discovery_client, self._grpc_channel_pool, reset, options, initialization_behavior
@@ -1603,7 +1603,7 @@ def initialize_nidigital_session(
         See Also:
             For more details, see :py:class:`nidigital.Session`.
         """
-        from ni_measurement_plugin_sdk._drivers._nidigital import SessionConstructor
+        from ni_measurement_plugin_sdk_service._drivers._nidigital import SessionConstructor
 
         session_constructor = SessionConstructor(
             self._discovery_client,
@@ -1651,7 +1651,7 @@ def initialize_nidigital_sessions(
         See Also:
             For more details, see :py:class:`nidigital.Session`.
         """
-        from ni_measurement_plugin_sdk._drivers._nidigital import SessionConstructor
+        from ni_measurement_plugin_sdk_service._drivers._nidigital import SessionConstructor
 
         session_constructor = SessionConstructor(
             self._discovery_client,
@@ -1834,7 +1834,7 @@ def initialize_nidmm_session(
         See Also:
             For more details, see :py:class:`nidmm.Session`.
         """
-        from ni_measurement_plugin_sdk._drivers._nidmm import SessionConstructor
+        from ni_measurement_plugin_sdk_service._drivers._nidmm import SessionConstructor
 
         session_constructor = SessionConstructor(
             self._discovery_client,
@@ -1882,7 +1882,7 @@ def initialize_nidmm_sessions(
         See Also:
             For more details, see :py:class:`nidmm.Session`.
         """
-        from ni_measurement_plugin_sdk._drivers._nidmm import SessionConstructor
+        from ni_measurement_plugin_sdk_service._drivers._nidmm import SessionConstructor
 
         session_constructor = SessionConstructor(
             self._discovery_client,
@@ -2051,7 +2051,7 @@ def initialize_nifgen_session(
         See Also:
             For more details, see :py:class:`nifgen.Session`.
         """
-        from ni_measurement_plugin_sdk._drivers._nifgen import SessionConstructor
+        from ni_measurement_plugin_sdk_service._drivers._nifgen import SessionConstructor
 
         session_constructor = SessionConstructor(
             self._discovery_client,
@@ -2099,7 +2099,7 @@ def initialize_nifgen_sessions(
         See Also:
             For more details, see :py:class:`nifgen.Session`.
         """
-        from ni_measurement_plugin_sdk._drivers._nifgen import SessionConstructor
+        from ni_measurement_plugin_sdk_service._drivers._nifgen import SessionConstructor
 
         session_constructor = SessionConstructor(
             self._discovery_client,
@@ -2268,7 +2268,7 @@ def initialize_niscope_session(
         See Also:
             For more details, see :py:class:`niscope.Session`.
         """
-        from ni_measurement_plugin_sdk._drivers._niscope import SessionConstructor
+        from ni_measurement_plugin_sdk_service._drivers._niscope import SessionConstructor
 
         session_constructor = SessionConstructor(
             self._discovery_client,
@@ -2316,7 +2316,7 @@ def initialize_niscope_sessions(
         See Also:
             For more details, see :py:class:`niscope.Session`.
         """
-        from ni_measurement_plugin_sdk._drivers._niscope import SessionConstructor
+        from ni_measurement_plugin_sdk_service._drivers._niscope import SessionConstructor
 
         session_constructor = SessionConstructor(
             self._discovery_client,
@@ -2495,7 +2495,7 @@ def initialize_niswitch_session(
         See Also:
             For more details, see :py:class:`niswitch.Session`.
         """
-        from ni_measurement_plugin_sdk._drivers._niswitch import SessionConstructor
+        from ni_measurement_plugin_sdk_service._drivers._niswitch import SessionConstructor
 
         session_constructor = SessionConstructor(
             self._discovery_client,
@@ -2550,7 +2550,7 @@ def initialize_niswitch_sessions(
         See Also:
             For more details, see :py:class:`niswitch.Session`.
         """
-        from ni_measurement_plugin_sdk._drivers._niswitch import SessionConstructor
+        from ni_measurement_plugin_sdk_service._drivers._niswitch import SessionConstructor
 
         session_constructor = SessionConstructor(
             self._discovery_client,
diff --git a/ni_measurement_plugin_sdk/session_management/_types.py b/ni_measurement_plugin_sdk_service/session_management/_types.py
similarity index 98%
rename from ni_measurement_plugin_sdk/session_management/_types.py
rename to ni_measurement_plugin_sdk_service/session_management/_types.py
index fb49fb01e..364fb3f95 100644
--- a/ni_measurement_plugin_sdk/session_management/_types.py
+++ b/ni_measurement_plugin_sdk_service/session_management/_types.py
@@ -5,11 +5,11 @@
 from enum import IntEnum
 from typing import Generic, Iterable, List, NamedTuple, Optional, Protocol, TypeVar
 
-from ni_measurement_plugin_sdk._internal.stubs import session_pb2
-from ni_measurement_plugin_sdk._internal.stubs.ni.measurementlink import (
+from ni_measurement_plugin_sdk_service._internal.stubs import session_pb2
+from ni_measurement_plugin_sdk_service._internal.stubs.ni.measurementlink import (
     pin_map_context_pb2,
 )
-from ni_measurement_plugin_sdk._internal.stubs.ni.measurementlink.sessionmanagement.v1 import (
+from ni_measurement_plugin_sdk_service._internal.stubs.ni.measurementlink.sessionmanagement.v1 import (
     session_management_service_pb2,
 )
 
diff --git a/pyproject.toml b/pyproject.toml
index e3b0927cc..2856976bb 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -6,7 +6,7 @@ line-length = 100
 extend_exclude = '.tox/,*_pb2_grpc.py,*_pb2_grpc.pyi,*_pb2.py,*_pb2.pyi,ni_measurement_plugin_generator/,examples/,third_party/'
 
 [tool.poetry]
-name = "ni_measurement_plugin_sdk"
+name = "ni_measurement_plugin_sdk_service"
 version = "2.0.0-dev0"
 description = "Measurement Plugin Support for Python"
 authors = ["NI <opensource@ni.com>"]
@@ -147,7 +147,7 @@ ignore_missing_imports = true
 
 [[tool.mypy.overrides]]
 # mypy-protobuf codegen has some unused ignores.
-module = ["ni_measurement_plugin_sdk._internal.stubs.*","tests.utilities.stubs.*"]
+module = ["ni_measurement_plugin_sdk_service._internal.stubs.*","tests.utilities.stubs.*"]
 warn_unused_ignores = false
 
 [[tool.mypy.overrides]]
diff --git a/scripts/generate_grpc_stubs.py b/scripts/generate_grpc_stubs.py
index 90f9c6302..0c8c51a19 100755
--- a/scripts/generate_grpc_stubs.py
+++ b/scripts/generate_grpc_stubs.py
@@ -8,7 +8,7 @@
 import grpc_tools.protoc
 import pkg_resources
 
-STUBS_NAMESPACE = "ni_measurement_plugin_sdk._internal.stubs"
+STUBS_NAMESPACE = "ni_measurement_plugin_sdk_service._internal.stubs"
 PROTO_PARENT_NAMESPACES = ["ni.measurementlink", "nidevice_grpc", "ni.protobuf.types"]
 STUBS_PATH = pathlib.Path(__file__).parent.parent / STUBS_NAMESPACE.replace(".", "/")
 PROTO_PATH = pathlib.Path(__file__).parent.parent / "third_party" / "ni-apis"
diff --git a/scripts/install_examples.py b/scripts/install_examples.py
index 1503bc400..44ef3da49 100644
--- a/scripts/install_examples.py
+++ b/scripts/install_examples.py
@@ -47,7 +47,7 @@ def main():
         pyproject_path = install_path / "pyproject.toml"
         pyproject_data = pyproject_path.read_text()
         new_pyproject_data = re.sub(
-            r'^ni-measurement-plugin-sdk\s*=\s*\{\s*path\s*=\s*"\.\./\.\."',
+            r'^ni-measurement-plugin-sdk-service\s*=\s*\{\s*path\s*=\s*"\.\./\.\."',
             lambda m: m.group(0).replace("../..", ROOT_DIR.absolute().as_posix()),
             pyproject_data,
             flags=re.MULTILINE,
diff --git a/tox.ini b/tox.ini
index a30b70a39..b31600d58 100644
--- a/tox.ini
+++ b/tox.ini
@@ -14,7 +14,7 @@ passenv = RUNNER_NAME
 commands =
    poetry run python --version
    poetry install -v --all-extras
-   poetry run pytest -v --cov=ni_measurement_plugin_sdk --cov-append --cov-report= --junitxml=test_results/nims-{env:RUNNER_NAME}-{envname}.xml
+   poetry run pytest -v --cov=ni_measurement_plugin_sdk_service --cov-append --cov-report= --junitxml=test_results/nims-{env:RUNNER_NAME}-{envname}.xml
 
 [testenv:clean]
 commands = poetry run coverage erase
\ No newline at end of file


Test patch:
diff --git a/.github/workflows/run_unit_tests.yml b/.github/workflows/run_unit_tests.yml
index 296588fdf..bfedbd1cf 100644
--- a/.github/workflows/run_unit_tests.yml
+++ b/.github/workflows/run_unit_tests.yml
@@ -31,41 +31,41 @@ jobs:
         with:
           poetry-version: ${{ env.POETRY_VERSION }}
 
-      # ni-measurement-plugin-sdk, no extras
-      - name: Restore cached virtualenv (ni-measurement-plugin-sdk, no extras)
+      # ni-measurement-plugin-sdk-service, no extras
+      - name: Restore cached virtualenv (ni-measurement-plugin-sdk-service, no extras)
         uses: actions/cache/restore@v4
         id: restore-nims-no-extras
         with:
           path: .venv
-          key: ni-measurement-plugin-sdk-no-extras-${{ runner.os }}-py${{ steps.setup-python.outputs.python-version }}-${{ hashFiles('poetry.lock') }}
-      - name: Install ni-measurement-plugin-sdk (no extras)
+          key: ni-measurement-plugin-sdk-service-no-extras-${{ runner.os }}-py${{ steps.setup-python.outputs.python-version }}-${{ hashFiles('poetry.lock') }}
+      - name: Install ni-measurement-plugin-sdk-service (no extras)
         run: poetry install -v
-      - name: Save cached virtualenv (ni-measurement-plugin-sdk, no extras)
+      - name: Save cached virtualenv (ni-measurement-plugin-sdk-service, no extras)
         uses: actions/cache/save@v4
         if: steps.restore-nims-no-extras.outputs.cache-hit != 'true'
         with:
           path: .venv
           key: ${{ steps.restore-nims-no-extras.outputs.cache-primary-key }}
-      - name: Run unit tests and code coverage (ni-measurement-plugin-sdk, no extras)
-        run: poetry run pytest ./tests/unit -v --cov=ni_measurement_plugin_sdk --junitxml=test_results/nims-${{ matrix.os }}-py${{ matrix.python-version}}-no-extras.xml
+      - name: Run unit tests and code coverage (ni-measurement-plugin-sdk-service, no extras)
+        run: poetry run pytest ./tests/unit -v --cov=ni_measurement_plugin_sdk_service --junitxml=test_results/nims-${{ matrix.os }}-py${{ matrix.python-version}}-no-extras.xml
 
-      # ni-measurement-plugin-sdk, all extras
-      - name: Restore cached virtualenv (ni-measurement-plugin-sdk, all extras)
+      # ni-measurement-plugin-sdk-service, all extras
+      - name: Restore cached virtualenv (ni-measurement-plugin-sdk-service, all extras)
         uses: actions/cache/restore@v4
         id: restore-nims-all-extras
         with:
           path: .venv
-          key: ni-measurement-plugin-sdk-all-extras-${{ runner.os }}-py${{ steps.setup-python.outputs.python-version }}-${{ hashFiles('poetry.lock') }}
-      - name: Install ni-measurement-plugin-sdk (all extras)
+          key: ni-measurement-plugin-sdk-service-all-extras-${{ runner.os }}-py${{ steps.setup-python.outputs.python-version }}-${{ hashFiles('poetry.lock') }}
+      - name: Install ni-measurement-plugin-sdk-service (all extras)
         run: poetry install -v --all-extras
-      - name: Save cached ni-measurement-plugin-sdk virtualenv (all extras)
+      - name: Save cached ni-measurement-plugin-sdk-service virtualenv (all extras)
         uses: actions/cache/save@v4
         if: steps.restore-nims-all-extras.outputs.cache-hit != 'true'
         with:
           path: .venv
           key: ${{ steps.restore-nims-all-extras.outputs.cache-primary-key }}
-      - name: Run unit tests and code coverage (ni-measurement-plugin-sdk, all extras)
-        run: poetry run pytest ./tests/unit -v --cov=ni_measurement_plugin_sdk --junitxml=test_results/nims-${{ matrix.os }}-py${{ matrix.python-version}}-all-extras.xml
+      - name: Run unit tests and code coverage (ni-measurement-plugin-sdk-service, all extras)
+        run: poetry run pytest ./tests/unit -v --cov=ni_measurement_plugin_sdk_service --junitxml=test_results/nims-${{ matrix.os }}-py${{ matrix.python-version}}-all-extras.xml
 
       # ni-measurement-plugin-generator
       - name: Restore cached virtualenv (ni-measurement-plugin-generator)
diff --git a/examples/nidaqmx_analog_input/teststand_nidaqmx.py b/examples/nidaqmx_analog_input/teststand_nidaqmx.py
index f169ad70c..aaac5cb00 100644
--- a/examples/nidaqmx_analog_input/teststand_nidaqmx.py
+++ b/examples/nidaqmx_analog_input/teststand_nidaqmx.py
@@ -3,9 +3,9 @@
 from typing import Any
 
 from _helpers import TestStandSupport
-from ni_measurement_plugin_sdk.discovery import DiscoveryClient
-from ni_measurement_plugin_sdk.grpc.channelpool import GrpcChannelPool
-from ni_measurement_plugin_sdk.session_management import (
+from ni_measurement_plugin_sdk_service.discovery import DiscoveryClient
+from ni_measurement_plugin_sdk_service.grpc.channelpool import GrpcChannelPool
+from ni_measurement_plugin_sdk_service.session_management import (
     INSTRUMENT_TYPE_NI_DAQMX,
     PinMapContext,
     SessionInitializationBehavior,
diff --git a/examples/nidcpower_source_dc_voltage/teststand_nidcpower.py b/examples/nidcpower_source_dc_voltage/teststand_nidcpower.py
index 1ec1600ed..9f8404079 100644
--- a/examples/nidcpower_source_dc_voltage/teststand_nidcpower.py
+++ b/examples/nidcpower_source_dc_voltage/teststand_nidcpower.py
@@ -3,9 +3,9 @@
 from typing import Any
 
 from _helpers import TestStandSupport
-from ni_measurement_plugin_sdk.discovery import DiscoveryClient
-from ni_measurement_plugin_sdk.grpc.channelpool import GrpcChannelPool
-from ni_measurement_plugin_sdk.session_management import (
+from ni_measurement_plugin_sdk_service.discovery import DiscoveryClient
+from ni_measurement_plugin_sdk_service.grpc.channelpool import GrpcChannelPool
+from ni_measurement_plugin_sdk_service.session_management import (
     INSTRUMENT_TYPE_NI_DCPOWER,
     PinMapContext,
     SessionInitializationBehavior,
diff --git a/examples/nidcpower_source_dc_voltage_with_multiplexer/teststand_nidcpower.py b/examples/nidcpower_source_dc_voltage_with_multiplexer/teststand_nidcpower.py
index 1ec1600ed..9f8404079 100644
--- a/examples/nidcpower_source_dc_voltage_with_multiplexer/teststand_nidcpower.py
+++ b/examples/nidcpower_source_dc_voltage_with_multiplexer/teststand_nidcpower.py
@@ -3,9 +3,9 @@
 from typing import Any
 
 from _helpers import TestStandSupport
-from ni_measurement_plugin_sdk.discovery import DiscoveryClient
-from ni_measurement_plugin_sdk.grpc.channelpool import GrpcChannelPool
-from ni_measurement_plugin_sdk.session_management import (
+from ni_measurement_plugin_sdk_service.discovery import DiscoveryClient
+from ni_measurement_plugin_sdk_service.grpc.channelpool import GrpcChannelPool
+from ni_measurement_plugin_sdk_service.session_management import (
     INSTRUMENT_TYPE_NI_DCPOWER,
     PinMapContext,
     SessionInitializationBehavior,
diff --git a/examples/nidcpower_source_dc_voltage_with_multiplexer/teststand_niswitch.py b/examples/nidcpower_source_dc_voltage_with_multiplexer/teststand_niswitch.py
index f6a6877a8..fd62dbfb7 100644
--- a/examples/nidcpower_source_dc_voltage_with_multiplexer/teststand_niswitch.py
+++ b/examples/nidcpower_source_dc_voltage_with_multiplexer/teststand_niswitch.py
@@ -3,9 +3,9 @@
 from typing import Any
 
 from _helpers import TestStandSupport
-from ni_measurement_plugin_sdk.discovery import DiscoveryClient
-from ni_measurement_plugin_sdk.grpc.channelpool import GrpcChannelPool
-from ni_measurement_plugin_sdk.session_management import (
+from ni_measurement_plugin_sdk_service.discovery import DiscoveryClient
+from ni_measurement_plugin_sdk_service.grpc.channelpool import GrpcChannelPool
+from ni_measurement_plugin_sdk_service.session_management import (
     INSTRUMENT_TYPE_NI_RELAY_DRIVER,
     PinMapContext,
     SessionInitializationBehavior,
diff --git a/examples/nidigital_spi/teststand_nidigital.py b/examples/nidigital_spi/teststand_nidigital.py
index 69eeba9e8..4cd8d00d4 100644
--- a/examples/nidigital_spi/teststand_nidigital.py
+++ b/examples/nidigital_spi/teststand_nidigital.py
@@ -3,15 +3,15 @@
 from typing import Any, Iterable
 
 from _helpers import TestStandSupport
-from ni_measurement_plugin_sdk.discovery import DiscoveryClient
-from ni_measurement_plugin_sdk.grpc.channelpool import GrpcChannelPool
-from ni_measurement_plugin_sdk.session_management import (
+from ni_measurement_plugin_sdk_service.discovery import DiscoveryClient
+from ni_measurement_plugin_sdk_service.grpc.channelpool import GrpcChannelPool
+from ni_measurement_plugin_sdk_service.session_management import (
     INSTRUMENT_TYPE_NI_DIGITAL_PATTERN,
     PinMapContext,
     SessionInitializationBehavior,
     SessionManagementClient,
 )
-from ni_measurement_plugin_sdk.session_management._reservation import (
+from ni_measurement_plugin_sdk_service.session_management._reservation import (
     MultiSessionReservation,
 )
 
diff --git a/examples/nidmm_measurement/teststand_nidmm.py b/examples/nidmm_measurement/teststand_nidmm.py
index 0286b96e1..4fd77e214 100644
--- a/examples/nidmm_measurement/teststand_nidmm.py
+++ b/examples/nidmm_measurement/teststand_nidmm.py
@@ -3,9 +3,9 @@
 from typing import Any
 
 from _helpers import TestStandSupport
-from ni_measurement_plugin_sdk.discovery import DiscoveryClient
-from ni_measurement_plugin_sdk.grpc.channelpool import GrpcChannelPool
-from ni_measurement_plugin_sdk.session_management import (
+from ni_measurement_plugin_sdk_service.discovery import DiscoveryClient
+from ni_measurement_plugin_sdk_service.grpc.channelpool import GrpcChannelPool
+from ni_measurement_plugin_sdk_service.session_management import (
     INSTRUMENT_TYPE_NI_DMM,
     PinMapContext,
     SessionInitializationBehavior,
diff --git a/examples/nifgen_standard_function/teststand_nifgen.py b/examples/nifgen_standard_function/teststand_nifgen.py
index d5a32a50f..50a0fac53 100644
--- a/examples/nifgen_standard_function/teststand_nifgen.py
+++ b/examples/nifgen_standard_function/teststand_nifgen.py
@@ -3,9 +3,9 @@
 from typing import Any
 
 from _helpers import TestStandSupport
-from ni_measurement_plugin_sdk.discovery import DiscoveryClient
-from ni_measurement_plugin_sdk.grpc.channelpool import GrpcChannelPool
-from ni_measurement_plugin_sdk.session_management import (
+from ni_measurement_plugin_sdk_service.discovery import DiscoveryClient
+from ni_measurement_plugin_sdk_service.grpc.channelpool import GrpcChannelPool
+from ni_measurement_plugin_sdk_service.session_management import (
     INSTRUMENT_TYPE_NI_FGEN,
     PinMapContext,
     SessionInitializationBehavior,
diff --git a/examples/niscope_acquire_waveform/teststand_niscope.py b/examples/niscope_acquire_waveform/teststand_niscope.py
index 03c879281..538bd55be 100644
--- a/examples/niscope_acquire_waveform/teststand_niscope.py
+++ b/examples/niscope_acquire_waveform/teststand_niscope.py
@@ -3,9 +3,9 @@
 from typing import Any
 
 from _helpers import TestStandSupport
-from ni_measurement_plugin_sdk.discovery import DiscoveryClient
-from ni_measurement_plugin_sdk.grpc.channelpool import GrpcChannelPool
-from ni_measurement_plugin_sdk.session_management import (
+from ni_measurement_plugin_sdk_service.discovery import DiscoveryClient
+from ni_measurement_plugin_sdk_service.grpc.channelpool import GrpcChannelPool
+from ni_measurement_plugin_sdk_service.session_management import (
     INSTRUMENT_TYPE_NI_SCOPE,
     PinMapContext,
     SessionInitializationBehavior,
diff --git a/examples/niswitch_control_relays/teststand_niswitch.py b/examples/niswitch_control_relays/teststand_niswitch.py
index f6a6877a8..fd62dbfb7 100644
--- a/examples/niswitch_control_relays/teststand_niswitch.py
+++ b/examples/niswitch_control_relays/teststand_niswitch.py
@@ -3,9 +3,9 @@
 from typing import Any
 
 from _helpers import TestStandSupport
-from ni_measurement_plugin_sdk.discovery import DiscoveryClient
-from ni_measurement_plugin_sdk.grpc.channelpool import GrpcChannelPool
-from ni_measurement_plugin_sdk.session_management import (
+from ni_measurement_plugin_sdk_service.discovery import DiscoveryClient
+from ni_measurement_plugin_sdk_service.grpc.channelpool import GrpcChannelPool
+from ni_measurement_plugin_sdk_service.session_management import (
     INSTRUMENT_TYPE_NI_RELAY_DRIVER,
     PinMapContext,
     SessionInitializationBehavior,
diff --git a/examples/nivisa_dmm_measurement/teststand_nivisa_dmm.py b/examples/nivisa_dmm_measurement/teststand_nivisa_dmm.py
index 57648ded1..b33ee5c78 100644
--- a/examples/nivisa_dmm_measurement/teststand_nivisa_dmm.py
+++ b/examples/nivisa_dmm_measurement/teststand_nivisa_dmm.py
@@ -7,13 +7,13 @@
 from _visa_dmm import INSTRUMENT_TYPE_VISA_DMM
 from _visa_dmm_session_management import VisaDmmSessionConstructor
 from decouple import AutoConfig
-from ni_measurement_plugin_sdk.discovery import DiscoveryClient
-from ni_measurement_plugin_sdk.grpc.channelpool import GrpcChannelPool
-from ni_measurement_plugin_sdk.session_management import (
+from ni_measurement_plugin_sdk_service.discovery import DiscoveryClient
+from ni_measurement_plugin_sdk_service.grpc.channelpool import GrpcChannelPool
+from ni_measurement_plugin_sdk_service.session_management import (
     PinMapContext,
     SessionManagementClient,
 )
-from ni_measurement_plugin_sdk.session_management._types import (
+from ni_measurement_plugin_sdk_service.session_management._types import (
     SessionInitializationBehavior,
 )
 
diff --git a/examples/output_voltage_measurement/teststand_nidcpower.py b/examples/output_voltage_measurement/teststand_nidcpower.py
index 1ec1600ed..9f8404079 100644
--- a/examples/output_voltage_measurement/teststand_nidcpower.py
+++ b/examples/output_voltage_measurement/teststand_nidcpower.py
@@ -3,9 +3,9 @@
 from typing import Any
 
 from _helpers import TestStandSupport
-from ni_measurement_plugin_sdk.discovery import DiscoveryClient
-from ni_measurement_plugin_sdk.grpc.channelpool import GrpcChannelPool
-from ni_measurement_plugin_sdk.session_management import (
+from ni_measurement_plugin_sdk_service.discovery import DiscoveryClient
+from ni_measurement_plugin_sdk_service.grpc.channelpool import GrpcChannelPool
+from ni_measurement_plugin_sdk_service.session_management import (
     INSTRUMENT_TYPE_NI_DCPOWER,
     PinMapContext,
     SessionInitializationBehavior,
diff --git a/examples/output_voltage_measurement/teststand_nivisa_dmm.py b/examples/output_voltage_measurement/teststand_nivisa_dmm.py
index 57648ded1..b33ee5c78 100644
--- a/examples/output_voltage_measurement/teststand_nivisa_dmm.py
+++ b/examples/output_voltage_measurement/teststand_nivisa_dmm.py
@@ -7,13 +7,13 @@
 from _visa_dmm import INSTRUMENT_TYPE_VISA_DMM
 from _visa_dmm_session_management import VisaDmmSessionConstructor
 from decouple import AutoConfig
-from ni_measurement_plugin_sdk.discovery import DiscoveryClient
-from ni_measurement_plugin_sdk.grpc.channelpool import GrpcChannelPool
-from ni_measurement_plugin_sdk.session_management import (
+from ni_measurement_plugin_sdk_service.discovery import DiscoveryClient
+from ni_measurement_plugin_sdk_service.grpc.channelpool import GrpcChannelPool
+from ni_measurement_plugin_sdk_service.session_management import (
     PinMapContext,
     SessionManagementClient,
 )
-from ni_measurement_plugin_sdk.session_management._types import (
+from ni_measurement_plugin_sdk_service.session_management._types import (
     SessionInitializationBehavior,
 )
 
diff --git a/ni_measurement_plugin_generator/tests/test_assets/example_renders/measurement/measurement.py b/ni_measurement_plugin_generator/tests/test_assets/example_renders/measurement/measurement.py
index 17d18da75..f2fcfe4ac 100644
--- a/ni_measurement_plugin_generator/tests/test_assets/example_renders/measurement/measurement.py
+++ b/ni_measurement_plugin_generator/tests/test_assets/example_renders/measurement/measurement.py
@@ -5,7 +5,7 @@
 import sys
 
 import click
-import ni_measurement_plugin_sdk as nims
+import ni_measurement_plugin_sdk_service as nims
 
 script_or_exe = sys.executable if getattr(sys, "frozen", False) else __file__
 service_directory = pathlib.Path(script_or_exe).resolve().parent
diff --git a/ni_measurement_plugin_generator/tests/test_assets/example_renders/measurement_with_annotations/measurement.py b/ni_measurement_plugin_generator/tests/test_assets/example_renders/measurement_with_annotations/measurement.py
index 17d18da75..f2fcfe4ac 100644
--- a/ni_measurement_plugin_generator/tests/test_assets/example_renders/measurement_with_annotations/measurement.py
+++ b/ni_measurement_plugin_generator/tests/test_assets/example_renders/measurement_with_annotations/measurement.py
@@ -5,7 +5,7 @@
 import sys
 
 import click
-import ni_measurement_plugin_sdk as nims
+import ni_measurement_plugin_sdk_service as nims
 
 script_or_exe = sys.executable if getattr(sys, "frozen", False) else __file__
 service_directory = pathlib.Path(script_or_exe).resolve().parent
diff --git a/tests/acceptance/test_logging.py b/tests/acceptance/test_logging.py
index 6f6803a6b..bc012a493 100644
--- a/tests/acceptance/test_logging.py
+++ b/tests/acceptance/test_logging.py
@@ -5,14 +5,14 @@
 import pytest
 from pytest import FixtureRequest, LogCaptureFixture
 
-from ni_measurement_plugin_sdk import session_management
-from ni_measurement_plugin_sdk._internal.stubs.ni.measurementlink.measurement.v2 import (
+from ni_measurement_plugin_sdk_service import session_management
+from ni_measurement_plugin_sdk_service._internal.stubs.ni.measurementlink.measurement.v2 import (
     measurement_service_pb2 as v2_measurement_service_pb2,
     measurement_service_pb2_grpc as v2_measurement_service_pb2_grpc,
 )
-from ni_measurement_plugin_sdk.discovery import DiscoveryClient
-from ni_measurement_plugin_sdk.measurement.service import MeasurementService
-from ni_measurement_plugin_sdk.session_management import SessionManagementClient
+from ni_measurement_plugin_sdk_service.discovery import DiscoveryClient
+from ni_measurement_plugin_sdk_service.measurement.service import MeasurementService
+from ni_measurement_plugin_sdk_service.session_management import SessionManagementClient
 from tests.acceptance.test_streaming_data_measurement import (
     _get_configuration_parameters as get_streaming_data_configuration_parameters,
 )
diff --git a/tests/acceptance/test_measurement_service.py b/tests/acceptance/test_measurement_service.py
index 28facac77..6dea4a8a3 100644
--- a/tests/acceptance/test_measurement_service.py
+++ b/tests/acceptance/test_measurement_service.py
@@ -10,15 +10,15 @@
 import pytest
 from google.protobuf import any_pb2
 
-from ni_measurement_plugin_sdk._internal.stubs.ni.measurementlink.measurement.v1 import (
+from ni_measurement_plugin_sdk_service._internal.stubs.ni.measurementlink.measurement.v1 import (
     measurement_service_pb2 as v1_measurement_service_pb2,
     measurement_service_pb2_grpc as v1_measurement_service_pb2_grpc,
 )
-from ni_measurement_plugin_sdk._internal.stubs.ni.measurementlink.measurement.v2 import (
+from ni_measurement_plugin_sdk_service._internal.stubs.ni.measurementlink.measurement.v2 import (
     measurement_service_pb2 as v2_measurement_service_pb2,
     measurement_service_pb2_grpc as v2_measurement_service_pb2_grpc,
 )
-from ni_measurement_plugin_sdk.measurement.service import MeasurementService
+from ni_measurement_plugin_sdk_service.measurement.service import MeasurementService
 from tests.utilities.measurements import loopback_measurement
 from tests.utilities.stubs.loopback.types_pb2 import Parameters, ProtobufColor
 
diff --git a/tests/acceptance/test_nidaqmx_measurement.py b/tests/acceptance/test_nidaqmx_measurement.py
index b87d9fa55..98938fe19 100644
--- a/tests/acceptance/test_nidaqmx_measurement.py
+++ b/tests/acceptance/test_nidaqmx_measurement.py
@@ -3,16 +3,16 @@
 
 import pytest
 
-from ni_measurement_plugin_sdk._internal.stubs.ni.measurementlink.measurement.v2.measurement_service_pb2 import (
+from ni_measurement_plugin_sdk_service._internal.stubs.ni.measurementlink.measurement.v2.measurement_service_pb2 import (
     MeasureRequest,
 )
-from ni_measurement_plugin_sdk._internal.stubs.ni.measurementlink.measurement.v2.measurement_service_pb2_grpc import (
+from ni_measurement_plugin_sdk_service._internal.stubs.ni.measurementlink.measurement.v2.measurement_service_pb2_grpc import (
     MeasurementServiceStub,
 )
-from ni_measurement_plugin_sdk._internal.stubs.ni.measurementlink.pin_map_context_pb2 import (
+from ni_measurement_plugin_sdk_service._internal.stubs.ni.measurementlink.pin_map_context_pb2 import (
     PinMapContext,
 )
-from ni_measurement_plugin_sdk.measurement.service import MeasurementService
+from ni_measurement_plugin_sdk_service.measurement.service import MeasurementService
 from tests.utilities.measurements import nidaqmx_measurement
 from tests.utilities.pin_map_client import PinMapClient
 from tests.utilities.stubs.nidaqmx.types_pb2 import Configurations, Outputs
diff --git a/tests/acceptance/test_nidcpower_measurement.py b/tests/acceptance/test_nidcpower_measurement.py
index 866d063a2..ebffed8ff 100644
--- a/tests/acceptance/test_nidcpower_measurement.py
+++ b/tests/acceptance/test_nidcpower_measurement.py
@@ -3,16 +3,16 @@
 
 import pytest
 
-from ni_measurement_plugin_sdk._internal.stubs.ni.measurementlink.measurement.v2.measurement_service_pb2 import (
+from ni_measurement_plugin_sdk_service._internal.stubs.ni.measurementlink.measurement.v2.measurement_service_pb2 import (
     MeasureRequest,
 )
-from ni_measurement_plugin_sdk._internal.stubs.ni.measurementlink.measurement.v2.measurement_service_pb2_grpc import (
+from ni_measurement_plugin_sdk_service._internal.stubs.ni.measurementlink.measurement.v2.measurement_service_pb2_grpc import (
     MeasurementServiceStub,
 )
-from ni_measurement_plugin_sdk._internal.stubs.ni.measurementlink.pin_map_context_pb2 import (
+from ni_measurement_plugin_sdk_service._internal.stubs.ni.measurementlink.pin_map_context_pb2 import (
     PinMapContext,
 )
-from ni_measurement_plugin_sdk.measurement.service import MeasurementService
+from ni_measurement_plugin_sdk_service.measurement.service import MeasurementService
 from tests.utilities.measurements import nidcpower_measurement
 from tests.utilities.pin_map_client import PinMapClient
 from tests.utilities.stubs.nidcpower.types_pb2 import Configurations, Outputs
diff --git a/tests/acceptance/test_nidigital_measurement.py b/tests/acceptance/test_nidigital_measurement.py
index 2e8e2d3b6..7b92fa5d2 100644
--- a/tests/acceptance/test_nidigital_measurement.py
+++ b/tests/acceptance/test_nidigital_measurement.py
@@ -3,16 +3,16 @@
 
 import pytest
 
-from ni_measurement_plugin_sdk._internal.stubs.ni.measurementlink.measurement.v2.measurement_service_pb2 import (
+from ni_measurement_plugin_sdk_service._internal.stubs.ni.measurementlink.measurement.v2.measurement_service_pb2 import (
     MeasureRequest,
 )
-from ni_measurement_plugin_sdk._internal.stubs.ni.measurementlink.measurement.v2.measurement_service_pb2_grpc import (
+from ni_measurement_plugin_sdk_service._internal.stubs.ni.measurementlink.measurement.v2.measurement_service_pb2_grpc import (
     MeasurementServiceStub,
 )
-from ni_measurement_plugin_sdk._internal.stubs.ni.measurementlink.pin_map_context_pb2 import (
+from ni_measurement_plugin_sdk_service._internal.stubs.ni.measurementlink.pin_map_context_pb2 import (
     PinMapContext,
 )
-from ni_measurement_plugin_sdk.measurement.service import MeasurementService
+from ni_measurement_plugin_sdk_service.measurement.service import MeasurementService
 from tests.utilities.measurements import nidigital_measurement
 from tests.utilities.pin_map_client import PinMapClient
 from tests.utilities.stubs.nidigital.types_pb2 import Configurations, Outputs
diff --git a/tests/acceptance/test_nidmm_measurement.py b/tests/acceptance/test_nidmm_measurement.py
index a3fd5fa64..77bb6b5a8 100644
--- a/tests/acceptance/test_nidmm_measurement.py
+++ b/tests/acceptance/test_nidmm_measurement.py
@@ -3,16 +3,16 @@
 
 import pytest
 
-from ni_measurement_plugin_sdk._internal.stubs.ni.measurementlink.measurement.v2.measurement_service_pb2 import (
+from ni_measurement_plugin_sdk_service._internal.stubs.ni.measurementlink.measurement.v2.measurement_service_pb2 import (
     MeasureRequest,
 )
-from ni_measurement_plugin_sdk._internal.stubs.ni.measurementlink.measurement.v2.measurement_service_pb2_grpc import (
+from ni_measurement_plugin_sdk_service._internal.stubs.ni.measurementlink.measurement.v2.measurement_service_pb2_grpc import (
     MeasurementServiceStub,
 )
-from ni_measurement_plugin_sdk._internal.stubs.ni.measurementlink.pin_map_context_pb2 import (
+from ni_measurement_plugin_sdk_service._internal.stubs.ni.measurementlink.pin_map_context_pb2 import (
     PinMapContext,
 )
-from ni_measurement_plugin_sdk.measurement.service import MeasurementService
+from ni_measurement_plugin_sdk_service.measurement.service import MeasurementService
 from tests.utilities.measurements import nidmm_measurement
 from tests.utilities.pin_map_client import PinMapClient
 from tests.utilities.stubs.nidmm.types_pb2 import Configurations, Outputs
diff --git a/tests/acceptance/test_nifgen_measurement.py b/tests/acceptance/test_nifgen_measurement.py
index ef40e2b30..a56ba535a 100644
--- a/tests/acceptance/test_nifgen_measurement.py
+++ b/tests/acceptance/test_nifgen_measurement.py
@@ -3,16 +3,16 @@
 
 import pytest
 
-from ni_measurement_plugin_sdk._internal.stubs.ni.measurementlink.measurement.v2.measurement_service_pb2 import (
+from ni_measurement_plugin_sdk_service._internal.stubs.ni.measurementlink.measurement.v2.measurement_service_pb2 import (
     MeasureRequest,
 )
-from ni_measurement_plugin_sdk._internal.stubs.ni.measurementlink.measurement.v2.measurement_service_pb2_grpc import (
+from ni_measurement_plugin_sdk_service._internal.stubs.ni.measurementlink.measurement.v2.measurement_service_pb2_grpc import (
     MeasurementServiceStub,
 )
-from ni_measurement_plugin_sdk._internal.stubs.ni.measurementlink.pin_map_context_pb2 import (
+from ni_measurement_plugin_sdk_service._internal.stubs.ni.measurementlink.pin_map_context_pb2 import (
     PinMapContext,
 )
-from ni_measurement_plugin_sdk.measurement.service import MeasurementService
+from ni_measurement_plugin_sdk_service.measurement.service import MeasurementService
 from tests.utilities.measurements import nifgen_measurement
 from tests.utilities.pin_map_client import PinMapClient
 from tests.utilities.stubs.nifgen.types_pb2 import Configurations, Outputs
diff --git a/tests/acceptance/test_niscope_measurement.py b/tests/acceptance/test_niscope_measurement.py
index c801c20fc..f05683abf 100644
--- a/tests/acceptance/test_niscope_measurement.py
+++ b/tests/acceptance/test_niscope_measurement.py
@@ -3,16 +3,16 @@
 
 import pytest
 
-from ni_measurement_plugin_sdk._internal.stubs.ni.measurementlink.measurement.v2.measurement_service_pb2 import (
+from ni_measurement_plugin_sdk_service._internal.stubs.ni.measurementlink.measurement.v2.measurement_service_pb2 import (
     MeasureRequest,
 )
-from ni_measurement_plugin_sdk._internal.stubs.ni.measurementlink.measurement.v2.measurement_service_pb2_grpc import (
+from ni_measurement_plugin_sdk_service._internal.stubs.ni.measurementlink.measurement.v2.measurement_service_pb2_grpc import (
     MeasurementServiceStub,
 )
-from ni_measurement_plugin_sdk._internal.stubs.ni.measurementlink.pin_map_context_pb2 import (
+from ni_measurement_plugin_sdk_service._internal.stubs.ni.measurementlink.pin_map_context_pb2 import (
     PinMapContext,
 )
-from ni_measurement_plugin_sdk.measurement.service import MeasurementService
+from ni_measurement_plugin_sdk_service.measurement.service import MeasurementService
 from tests.utilities.measurements import niscope_measurement
 from tests.utilities.pin_map_client import PinMapClient
 from tests.utilities.stubs.niscope.types_pb2 import Configurations, Outputs
diff --git a/tests/acceptance/test_niswitch_measurement.py b/tests/acceptance/test_niswitch_measurement.py
index a4f92138a..67a3c1145 100644
--- a/tests/acceptance/test_niswitch_measurement.py
+++ b/tests/acceptance/test_niswitch_measurement.py
@@ -3,16 +3,16 @@
 
 import pytest
 
-from ni_measurement_plugin_sdk._internal.stubs.ni.measurementlink.measurement.v2.measurement_service_pb2 import (
+from ni_measurement_plugin_sdk_service._internal.stubs.ni.measurementlink.measurement.v2.measurement_service_pb2 import (
     MeasureRequest,
 )
-from ni_measurement_plugin_sdk._internal.stubs.ni.measurementlink.measurement.v2.measurement_service_pb2_grpc import (
+from ni_measurement_plugin_sdk_service._internal.stubs.ni.measurementlink.measurement.v2.measurement_service_pb2_grpc import (
     MeasurementServiceStub,
 )
-from ni_measurement_plugin_sdk._internal.stubs.ni.measurementlink.pin_map_context_pb2 import (
+from ni_measurement_plugin_sdk_service._internal.stubs.ni.measurementlink.pin_map_context_pb2 import (
     PinMapContext,
 )
-from ni_measurement_plugin_sdk.measurement.service import MeasurementService
+from ni_measurement_plugin_sdk_service.measurement.service import MeasurementService
 from tests.utilities.measurements import niswitch_measurement
 from tests.utilities.pin_map_client import PinMapClient
 from tests.utilities.stubs.niswitch.types_pb2 import Configurations, Outputs
diff --git a/tests/acceptance/test_niswitch_multiplexer_measurement.py b/tests/acceptance/test_niswitch_multiplexer_measurement.py
index ebade0dac..e26f37afb 100644
--- a/tests/acceptance/test_niswitch_multiplexer_measurement.py
+++ b/tests/acceptance/test_niswitch_multiplexer_measurement.py
@@ -3,16 +3,16 @@
 
 import pytest
 
-from ni_measurement_plugin_sdk._internal.stubs.ni.measurementlink.measurement.v2.measurement_service_pb2 import (
+from ni_measurement_plugin_sdk_service._internal.stubs.ni.measurementlink.measurement.v2.measurement_service_pb2 import (
     MeasureRequest,
 )
-from ni_measurement_plugin_sdk._internal.stubs.ni.measurementlink.measurement.v2.measurement_service_pb2_grpc import (
+from ni_measurement_plugin_sdk_service._internal.stubs.ni.measurementlink.measurement.v2.measurement_service_pb2_grpc import (
     MeasurementServiceStub,
 )
-from ni_measurement_plugin_sdk._internal.stubs.ni.measurementlink.pin_map_context_pb2 import (
+from ni_measurement_plugin_sdk_service._internal.stubs.ni.measurementlink.pin_map_context_pb2 import (
     PinMapContext,
 )
-from ni_measurement_plugin_sdk.measurement.service import MeasurementService
+from ni_measurement_plugin_sdk_service.measurement.service import MeasurementService
 from tests.utilities.measurements import niswitch_multiplexer_measurement
 from tests.utilities.pin_map_client import PinMapClient
 from tests.utilities.stubs.niswitchmultiplexer.types_pb2 import Configurations, Outputs
diff --git a/tests/acceptance/test_security.py b/tests/acceptance/test_security.py
index 543700201..172529810 100644
--- a/tests/acceptance/test_security.py
+++ b/tests/acceptance/test_security.py
@@ -4,7 +4,7 @@
 import psutil
 import pytest
 
-from ni_measurement_plugin_sdk.measurement.service import MeasurementService
+from ni_measurement_plugin_sdk_service.measurement.service import MeasurementService
 from tests.utilities.discovery_service_process import DiscoveryServiceProcess
 from tests.utilities.measurements import loopback_measurement
 
diff --git a/tests/acceptance/test_session_management.py b/tests/acceptance/test_session_management.py
index 52d325bf1..e63def482 100644
--- a/tests/acceptance/test_session_management.py
+++ b/tests/acceptance/test_session_management.py
@@ -4,16 +4,16 @@
 import grpc
 import pytest
 
-from ni_measurement_plugin_sdk._internal.stubs.ni.measurementlink.measurement.v2.measurement_service_pb2 import (
+from ni_measurement_plugin_sdk_service._internal.stubs.ni.measurementlink.measurement.v2.measurement_service_pb2 import (
     MeasureRequest,
 )
-from ni_measurement_plugin_sdk._internal.stubs.ni.measurementlink.measurement.v2.measurement_service_pb2_grpc import (
+from ni_measurement_plugin_sdk_service._internal.stubs.ni.measurementlink.measurement.v2.measurement_service_pb2_grpc import (
     MeasurementServiceStub,
 )
-from ni_measurement_plugin_sdk._internal.stubs.ni.measurementlink.pin_map_context_pb2 import (
+from ni_measurement_plugin_sdk_service._internal.stubs.ni.measurementlink.pin_map_context_pb2 import (
     PinMapContext,
 )
-from ni_measurement_plugin_sdk.measurement.service import MeasurementService
+from ni_measurement_plugin_sdk_service.measurement.service import MeasurementService
 from tests.utilities.discovery_service_process import DiscoveryServiceProcess
 from tests.utilities.measurements import pin_aware_measurement
 from tests.utilities.pin_map_client import PinMapClient
diff --git a/tests/acceptance/test_streaming_data_measurement.py b/tests/acceptance/test_streaming_data_measurement.py
index 7fcc36ff9..d9b792120 100644
--- a/tests/acceptance/test_streaming_data_measurement.py
+++ b/tests/acceptance/test_streaming_data_measurement.py
@@ -6,11 +6,11 @@
 import pytest
 from google.protobuf import any_pb2
 
-from ni_measurement_plugin_sdk._internal.stubs.ni.measurementlink.measurement.v2 import (
+from ni_measurement_plugin_sdk_service._internal.stubs.ni.measurementlink.measurement.v2 import (
     measurement_service_pb2 as v2_measurement_service_pb2,
     measurement_service_pb2_grpc as v2_measurement_service_pb2_grpc,
 )
-from ni_measurement_plugin_sdk.measurement.service import MeasurementService
+from ni_measurement_plugin_sdk_service.measurement.service import MeasurementService
 from tests.utilities.measurements import streaming_data_measurement
 from tests.utilities.stubs.streamingdata.types_pb2 import Configurations, Outputs
 
diff --git a/tests/acceptance/test_yield_vs_return.py b/tests/acceptance/test_yield_vs_return.py
index 314122f81..f56fabea9 100644
--- a/tests/acceptance/test_yield_vs_return.py
+++ b/tests/acceptance/test_yield_vs_return.py
@@ -5,11 +5,11 @@
 import pytest
 from google.protobuf import any_pb2
 
-from ni_measurement_plugin_sdk._internal.stubs.ni.measurementlink.measurement.v2 import (
+from ni_measurement_plugin_sdk_service._internal.stubs.ni.measurementlink.measurement.v2 import (
     measurement_service_pb2 as v2_measurement_service_pb2,
     measurement_service_pb2_grpc as v2_measurement_service_pb2_grpc,
 )
-from ni_measurement_plugin_sdk.measurement.service import MeasurementService
+from ni_measurement_plugin_sdk_service.measurement.service import MeasurementService
 from tests.utilities.measurements import yield_vs_return_measurement
 from tests.utilities.stubs.yieldvsreturn.types_pb2 import Configurations, Outputs
 
diff --git a/tests/conftest.py b/tests/conftest.py
index 3d5a7a9fc..c3a4ca8a5 100644
--- a/tests/conftest.py
+++ b/tests/conftest.py
@@ -7,23 +7,23 @@
 import grpc
 import pytest
 
-from ni_measurement_plugin_sdk import _featuretoggles
-from ni_measurement_plugin_sdk._featuretoggles import CodeReadiness, FeatureToggle
-from ni_measurement_plugin_sdk._internal.stubs.ni.measurementlink.measurement.v1 import (
+from ni_measurement_plugin_sdk_service import _featuretoggles
+from ni_measurement_plugin_sdk_service._featuretoggles import CodeReadiness, FeatureToggle
+from ni_measurement_plugin_sdk_service._internal.stubs.ni.measurementlink.measurement.v1 import (
     measurement_service_pb2_grpc as v1_measurement_service_pb2_grpc,
 )
-from ni_measurement_plugin_sdk._internal.stubs.ni.measurementlink.measurement.v2 import (
+from ni_measurement_plugin_sdk_service._internal.stubs.ni.measurementlink.measurement.v2 import (
     measurement_service_pb2_grpc as v2_measurement_service_pb2_grpc,
 )
-from ni_measurement_plugin_sdk.discovery import DiscoveryClient
-from ni_measurement_plugin_sdk.discovery._support import (
+from ni_measurement_plugin_sdk_service.discovery import DiscoveryClient
+from ni_measurement_plugin_sdk_service.discovery._support import (
     _get_registration_json_file_path,
 )
-from ni_measurement_plugin_sdk.measurement.service import (
+from ni_measurement_plugin_sdk_service.measurement.service import (
     GrpcChannelPool,
     MeasurementService,
 )
-from ni_measurement_plugin_sdk.session_management import SessionManagementClient
+from ni_measurement_plugin_sdk_service.session_management import SessionManagementClient
 from tests.utilities.discovery_service_process import DiscoveryServiceProcess
 from tests.utilities.pin_map_client import PinMapClient
 
diff --git a/tests/integration/session_management/test_nidaqmx_reservation.py b/tests/integration/session_management/test_nidaqmx_reservation.py
index 61c550394..7dea03ef7 100644
--- a/tests/integration/session_management/test_nidaqmx_reservation.py
+++ b/tests/integration/session_management/test_nidaqmx_reservation.py
@@ -3,7 +3,7 @@
 
 import pytest
 
-from ni_measurement_plugin_sdk.session_management import (
+from ni_measurement_plugin_sdk_service.session_management import (
     PinMapContext,
     SessionManagementClient,
 )
diff --git a/tests/integration/session_management/test_nidcpower_reservation.py b/tests/integration/session_management/test_nidcpower_reservation.py
index 882caec14..2f1e60c90 100644
--- a/tests/integration/session_management/test_nidcpower_reservation.py
+++ b/tests/integration/session_management/test_nidcpower_reservation.py
@@ -3,7 +3,7 @@
 
 import pytest
 
-from ni_measurement_plugin_sdk.session_management import (
+from ni_measurement_plugin_sdk_service.session_management import (
     PinMapContext,
     SessionManagementClient,
 )
diff --git a/tests/integration/session_management/test_nidigital_reservation.py b/tests/integration/session_management/test_nidigital_reservation.py
index bac18bc8b..c45f7d5b2 100644
--- a/tests/integration/session_management/test_nidigital_reservation.py
+++ b/tests/integration/session_management/test_nidigital_reservation.py
@@ -3,7 +3,7 @@
 
 import pytest
 
-from ni_measurement_plugin_sdk.session_management import (
+from ni_measurement_plugin_sdk_service.session_management import (
     PinMapContext,
     SessionManagementClient,
 )
diff --git a/tests/integration/session_management/test_nidmm_reservation.py b/tests/integration/session_management/test_nidmm_reservation.py
index 433f9e512..818fedb75 100644
--- a/tests/integration/session_management/test_nidmm_reservation.py
+++ b/tests/integration/session_management/test_nidmm_reservation.py
@@ -3,7 +3,7 @@
 
 import pytest
 
-from ni_measurement_plugin_sdk.session_management import (
+from ni_measurement_plugin_sdk_service.session_management import (
     PinMapContext,
     SessionManagementClient,
 )
diff --git a/tests/integration/session_management/test_nifgen_reservation.py b/tests/integration/session_management/test_nifgen_reservation.py
index ddf8c3f0f..8a39192b2 100644
--- a/tests/integration/session_management/test_nifgen_reservation.py
+++ b/tests/integration/session_management/test_nifgen_reservation.py
@@ -3,7 +3,7 @@
 
 import pytest
 
-from ni_measurement_plugin_sdk.session_management import (
+from ni_measurement_plugin_sdk_service.session_management import (
     PinMapContext,
     SessionManagementClient,
 )
diff --git a/tests/integration/session_management/test_niscope_reservation.py b/tests/integration/session_management/test_niscope_reservation.py
index 1f4112206..6c6311429 100644
--- a/tests/integration/session_management/test_niscope_reservation.py
+++ b/tests/integration/session_management/test_niscope_reservation.py
@@ -3,7 +3,7 @@
 
 import pytest
 
-from ni_measurement_plugin_sdk.session_management import (
+from ni_measurement_plugin_sdk_service.session_management import (
     PinMapContext,
     SessionManagementClient,
 )
diff --git a/tests/integration/session_management/test_niswitch_multiplexer_reservation.py b/tests/integration/session_management/test_niswitch_multiplexer_reservation.py
index d88e3c003..a4d745e6b 100644
--- a/tests/integration/session_management/test_niswitch_multiplexer_reservation.py
+++ b/tests/integration/session_management/test_niswitch_multiplexer_reservation.py
@@ -4,7 +4,7 @@
 import niswitch
 import pytest
 
-from ni_measurement_plugin_sdk.session_management import (
+from ni_measurement_plugin_sdk_service.session_management import (
     PinMapContext,
     SessionManagementClient,
 )
diff --git a/tests/integration/session_management/test_niswitch_reservation.py b/tests/integration/session_management/test_niswitch_reservation.py
index 8736f000c..fd7c7273f 100644
--- a/tests/integration/session_management/test_niswitch_reservation.py
+++ b/tests/integration/session_management/test_niswitch_reservation.py
@@ -3,7 +3,7 @@
 
 import pytest
 
-from ni_measurement_plugin_sdk.session_management import (
+from ni_measurement_plugin_sdk_service.session_management import (
     PinMapContext,
     SessionManagementClient,
 )
diff --git a/tests/integration/session_management/test_reservation.py b/tests/integration/session_management/test_reservation.py
index 6a6e9bc2b..09f5a26ba 100644
--- a/tests/integration/session_management/test_reservation.py
+++ b/tests/integration/session_management/test_reservation.py
@@ -3,7 +3,7 @@
 import pathlib
 from contextlib import ExitStack
 
-from ni_measurement_plugin_sdk.session_management import (
+from ni_measurement_plugin_sdk_service.session_management import (
     INSTRUMENT_TYPE_NI_DCPOWER,
     INSTRUMENT_TYPE_NI_RELAY_DRIVER,
     INSTRUMENT_TYPE_NI_SCOPE,
diff --git a/tests/integration/test_service_manager.py b/tests/integration/test_service_manager.py
index fc8ac74a9..ced660b01 100644
--- a/tests/integration/test_service_manager.py
+++ b/tests/integration/test_service_manager.py
@@ -6,15 +6,15 @@
 import pytest
 from grpc import RpcError
 
-from ni_measurement_plugin_sdk._internal.service_manager import GrpcService
-from ni_measurement_plugin_sdk._internal.stubs.ni.measurementlink.discovery.v1.discovery_service_pb2_grpc import (
+from ni_measurement_plugin_sdk_service._internal.service_manager import GrpcService
+from ni_measurement_plugin_sdk_service._internal.stubs.ni.measurementlink.discovery.v1.discovery_service_pb2_grpc import (
     DiscoveryServiceStub,
 )
-from ni_measurement_plugin_sdk._internal.stubs.ni.measurementlink.measurement.v1 import (
+from ni_measurement_plugin_sdk_service._internal.stubs.ni.measurementlink.measurement.v1 import (
     measurement_service_pb2,
     measurement_service_pb2_grpc,
 )
-from ni_measurement_plugin_sdk.discovery import DiscoveryClient
+from ni_measurement_plugin_sdk_service.discovery import DiscoveryClient
 from tests.utilities.fake_discovery_service import (
     FakeDiscoveryServiceError,
     FakeDiscoveryServiceStub,
diff --git a/tests/unit/_drivers/__init__.py b/tests/unit/_drivers/__init__.py
index f70f5d15e..64581d868 100644
--- a/tests/unit/_drivers/__init__.py
+++ b/tests/unit/_drivers/__init__.py
@@ -1,1 +1,1 @@
-"""Unit tests for ni_measurement_plugin_sdk._drivers."""
+"""Unit tests for ni_measurement_plugin_sdk_service._drivers."""
diff --git a/tests/unit/_drivers/_driver_utils.py b/tests/unit/_drivers/_driver_utils.py
index 26fe05537..73d7c07c6 100644
--- a/tests/unit/_drivers/_driver_utils.py
+++ b/tests/unit/_drivers/_driver_utils.py
@@ -5,7 +5,7 @@
 
 from pytest_mock import MockerFixture
 
-from ni_measurement_plugin_sdk._configuration import MIDriverOptions
+from ni_measurement_plugin_sdk_service._configuration import MIDriverOptions
 
 TSession = TypeVar("TSession")
 
@@ -28,6 +28,6 @@ def set_simulation_options(
 ) -> None:
     """Set simulation options for the specified driver."""
     mocker.patch(
-        f"ni_measurement_plugin_sdk._drivers._{driver_name}.{driver_name.upper()}_OPTIONS",
+        f"ni_measurement_plugin_sdk_service._drivers._{driver_name}.{driver_name.upper()}_OPTIONS",
         MIDriverOptions(driver_name, simulate, board_type, model),
     )
diff --git a/tests/unit/_drivers/test_grpcdevice.py b/tests/unit/_drivers/test_grpcdevice.py
index 60b55f2c3..d5edbdd6c 100644
--- a/tests/unit/_drivers/test_grpcdevice.py
+++ b/tests/unit/_drivers/test_grpcdevice.py
@@ -3,12 +3,12 @@
 import pytest
 from pytest_mock import MockerFixture
 
-from ni_measurement_plugin_sdk._drivers._grpcdevice import (
+from ni_measurement_plugin_sdk_service._drivers._grpcdevice import (
     SERVICE_CLASS,
     get_grpc_device_server_location,
     get_insecure_grpc_device_server_channel,
 )
-from ni_measurement_plugin_sdk.discovery import ServiceLocation
+from ni_measurement_plugin_sdk_service.discovery import ServiceLocation
 from tests.utilities import fake_driver
 
 
@@ -32,7 +32,9 @@ def test___use_grpc_device_server_false___get_grpc_device_server_location___retu
     discovery_client: Mock,
     mocker: MockerFixture,
 ) -> None:
-    mocker.patch("ni_measurement_plugin_sdk._drivers._grpcdevice.USE_GRPC_DEVICE_SERVER", False)
+    mocker.patch(
+        "ni_measurement_plugin_sdk_service._drivers._grpcdevice.USE_GRPC_DEVICE_SERVER", False
+    )
 
     service_location = get_grpc_device_server_location(
         discovery_client, fake_driver.GRPC_SERVICE_INTERFACE_NAME
@@ -57,7 +59,7 @@ def test___grpc_device_server_address_set___get_grpc_device_server_location___re
     expected_location: ServiceLocation,
 ) -> None:
     mocker.patch(
-        "ni_measurement_plugin_sdk._drivers._grpcdevice.GRPC_DEVICE_SERVER_ADDRESS",
+        "ni_measurement_plugin_sdk_service._drivers._grpcdevice.GRPC_DEVICE_SERVER_ADDRESS",
         grpc_device_server_address,
     )
 
@@ -108,7 +110,7 @@ def test___grpc_device_server_address_unsupported___get_grpc_device_server_locat
     expected_message: str,
 ) -> None:
     mocker.patch(
-        "ni_measurement_plugin_sdk._drivers._grpcdevice.GRPC_DEVICE_SERVER_ADDRESS",
+        "ni_measurement_plugin_sdk_service._drivers._grpcdevice.GRPC_DEVICE_SERVER_ADDRESS",
         grpc_device_server_address,
     )
 
@@ -145,7 +147,9 @@ def test___use_grpc_device_server_false___get_insecure_grpc_device_server_channe
     grpc_channel_pool: Mock,
     mocker: MockerFixture,
 ) -> None:
-    mocker.patch("ni_measurement_plugin_sdk._drivers._grpcdevice.USE_GRPC_DEVICE_SERVER", False)
+    mocker.patch(
+        "ni_measurement_plugin_sdk_service._drivers._grpcdevice.USE_GRPC_DEVICE_SERVER", False
+    )
 
     returned_channel = get_insecure_grpc_device_server_channel(
         discovery_client, grpc_channel_pool, fake_driver.GRPC_SERVICE_INTERFACE_NAME
@@ -161,7 +165,7 @@ def test___grpc_device_server_address_set___get_insecure_grpc_device_server_chan
     mocker: MockerFixture,
 ) -> None:
     mocker.patch(
-        "ni_measurement_plugin_sdk._drivers._grpcdevice.GRPC_DEVICE_SERVER_ADDRESS",
+        "ni_measurement_plugin_sdk_service._drivers._grpcdevice.GRPC_DEVICE_SERVER_ADDRESS",
         "http://[::1]:31763",
     )
     grpc_channel_pool.get_channel.return_value = grpc_channel
diff --git a/tests/unit/_drivers/test_nidaqmx.py b/tests/unit/_drivers/test_nidaqmx.py
index 72e253ba4..c59f5a4d5 100644
--- a/tests/unit/_drivers/test_nidaqmx.py
+++ b/tests/unit/_drivers/test_nidaqmx.py
@@ -6,7 +6,7 @@
 import pytest
 from pytest_mock import MockerFixture
 
-from ni_measurement_plugin_sdk.session_management import (
+from ni_measurement_plugin_sdk_service.session_management import (
     INSTRUMENT_TYPE_NI_DAQMX,
     MultiSessionReservation,
     SessionInitializationBehavior,
diff --git a/tests/unit/_drivers/test_nidcpower.py b/tests/unit/_drivers/test_nidcpower.py
index 2939d8eb8..67ee7f18b 100644
--- a/tests/unit/_drivers/test_nidcpower.py
+++ b/tests/unit/_drivers/test_nidcpower.py
@@ -6,7 +6,7 @@
 import pytest
 from pytest_mock import MockerFixture
 
-from ni_measurement_plugin_sdk.session_management import (
+from ni_measurement_plugin_sdk_service.session_management import (
     INSTRUMENT_TYPE_NI_DCPOWER,
     MultiSessionReservation,
     SessionInitializationBehavior,
diff --git a/tests/unit/_drivers/test_nidigital.py b/tests/unit/_drivers/test_nidigital.py
index 0cea8a2d7..fc015be63 100644
--- a/tests/unit/_drivers/test_nidigital.py
+++ b/tests/unit/_drivers/test_nidigital.py
@@ -6,7 +6,7 @@
 import pytest
 from pytest_mock import MockerFixture
 
-from ni_measurement_plugin_sdk.session_management import (
+from ni_measurement_plugin_sdk_service.session_management import (
     INSTRUMENT_TYPE_NI_DIGITAL_PATTERN,
     MultiSessionReservation,
     SessionInitializationBehavior,
diff --git a/tests/unit/_drivers/test_nidmm.py b/tests/unit/_drivers/test_nidmm.py
index 1410a3462..1307d4fd5 100644
--- a/tests/unit/_drivers/test_nidmm.py
+++ b/tests/unit/_drivers/test_nidmm.py
@@ -6,7 +6,7 @@
 import pytest
 from pytest_mock import MockerFixture
 
-from ni_measurement_plugin_sdk.session_management import (
+from ni_measurement_plugin_sdk_service.session_management import (
     INSTRUMENT_TYPE_NI_DMM,
     MultiSessionReservation,
     SessionInitializationBehavior,
diff --git a/tests/unit/_drivers/test_nifgen.py b/tests/unit/_drivers/test_nifgen.py
index e09aa6c6f..49b06c0f9 100644
--- a/tests/unit/_drivers/test_nifgen.py
+++ b/tests/unit/_drivers/test_nifgen.py
@@ -6,7 +6,7 @@
 import pytest
 from pytest_mock import MockerFixture
 
-from ni_measurement_plugin_sdk.session_management import (
+from ni_measurement_plugin_sdk_service.session_management import (
     INSTRUMENT_TYPE_NI_FGEN,
     MultiSessionReservation,
     SessionInitializationBehavior,
diff --git a/tests/unit/_drivers/test_niscope.py b/tests/unit/_drivers/test_niscope.py
index 67bb65546..82384a62e 100644
--- a/tests/unit/_drivers/test_niscope.py
+++ b/tests/unit/_drivers/test_niscope.py
@@ -6,7 +6,7 @@
 import pytest
 from pytest_mock import MockerFixture
 
-from ni_measurement_plugin_sdk.session_management import (
+from ni_measurement_plugin_sdk_service.session_management import (
     INSTRUMENT_TYPE_NI_SCOPE,
     MultiSessionReservation,
     SessionInitializationBehavior,
diff --git a/tests/unit/_drivers/test_niswitch.py b/tests/unit/_drivers/test_niswitch.py
index 6f1c9eb11..4dad34425 100644
--- a/tests/unit/_drivers/test_niswitch.py
+++ b/tests/unit/_drivers/test_niswitch.py
@@ -6,8 +6,8 @@
 import pytest
 from pytest_mock import MockerFixture
 
-from ni_measurement_plugin_sdk._configuration import NISwitchOptions
-from ni_measurement_plugin_sdk.session_management import (
+from ni_measurement_plugin_sdk_service._configuration import NISwitchOptions
+from ni_measurement_plugin_sdk_service.session_management import (
     INSTRUMENT_TYPE_NI_RELAY_DRIVER,
     MultiSessionReservation,
     SessionInitializationBehavior,
@@ -264,6 +264,6 @@ def session_new(mocker: MockerFixture) -> Mock:
 
 def _set_niswitch_simulation_options(mocker: MockerFixture, simulate: bool, topology: str) -> None:
     mocker.patch(
-        "ni_measurement_plugin_sdk._drivers._niswitch.NISWITCH_OPTIONS",
+        "ni_measurement_plugin_sdk_service._drivers._niswitch.NISWITCH_OPTIONS",
         NISwitchOptions("niswitch", simulate, topology),
     )
diff --git a/tests/unit/_reservation_utils.py b/tests/unit/_reservation_utils.py
index 9b297a270..8b8655342 100644
--- a/tests/unit/_reservation_utils.py
+++ b/tests/unit/_reservation_utils.py
@@ -2,11 +2,11 @@
 
 from typing import List
 
-from ni_measurement_plugin_sdk._internal.stubs import session_pb2
-from ni_measurement_plugin_sdk._internal.stubs.ni.measurementlink.sessionmanagement.v1 import (
+from ni_measurement_plugin_sdk_service._internal.stubs import session_pb2
+from ni_measurement_plugin_sdk_service._internal.stubs.ni.measurementlink.sessionmanagement.v1 import (
     session_management_service_pb2,
 )
-from ni_measurement_plugin_sdk.session_management import (
+from ni_measurement_plugin_sdk_service.session_management import (
     MultiplexerSessionInformation,
     SessionInformation,
 )
diff --git a/tests/unit/conftest.py b/tests/unit/conftest.py
index aa59ee69d..a0e555558 100644
--- a/tests/unit/conftest.py
+++ b/tests/unit/conftest.py
@@ -7,12 +7,12 @@
 import pytest
 from pytest_mock import MockerFixture
 
-from ni_measurement_plugin_sdk._internal import grpc_servicer
-from ni_measurement_plugin_sdk._internal.grpc_servicer import MeasurementServiceContext
-from ni_measurement_plugin_sdk.discovery import DiscoveryClient
-from ni_measurement_plugin_sdk.grpc.channelpool import GrpcChannelPool
-from ni_measurement_plugin_sdk.measurement.service import MeasurementService
-from ni_measurement_plugin_sdk.session_management import (
+from ni_measurement_plugin_sdk_service._internal import grpc_servicer
+from ni_measurement_plugin_sdk_service._internal.grpc_servicer import MeasurementServiceContext
+from ni_measurement_plugin_sdk_service.discovery import DiscoveryClient
+from ni_measurement_plugin_sdk_service.grpc.channelpool import GrpcChannelPool
+from ni_measurement_plugin_sdk_service.measurement.service import MeasurementService
+from ni_measurement_plugin_sdk_service.session_management import (
     MultiSessionReservation,
     SessionManagementClient,
     SingleSessionReservation,
diff --git a/tests/unit/measurement/__init__.py b/tests/unit/measurement/__init__.py
index c528cde54..5def080a9 100644
--- a/tests/unit/measurement/__init__.py
+++ b/tests/unit/measurement/__init__.py
@@ -1,1 +1,1 @@
-"""Unit tests for ni_measurement_plugin_sdk.measurement."""
+"""Unit tests for ni_measurement_plugin_sdk_service.measurement."""
diff --git a/tests/unit/measurement/service/__init__.py b/tests/unit/measurement/service/__init__.py
index 54479ca54..847df0b6c 100644
--- a/tests/unit/measurement/service/__init__.py
+++ b/tests/unit/measurement/service/__init__.py
@@ -1,1 +1,1 @@
-"""Unit tests for ni_measurement_plugin_sdk.measurement.service."""
+"""Unit tests for ni_measurement_plugin_sdk_service.measurement.service."""
diff --git a/tests/unit/measurement/service/test_measurement_context.py b/tests/unit/measurement/service/test_measurement_context.py
index 9b03469d1..3028ee167 100644
--- a/tests/unit/measurement/service/test_measurement_context.py
+++ b/tests/unit/measurement/service/test_measurement_context.py
@@ -3,7 +3,7 @@
 
 import pytest
 
-from ni_measurement_plugin_sdk.measurement.service import MeasurementContext
+from ni_measurement_plugin_sdk_service.measurement.service import MeasurementContext
 
 pytestmark = pytest.mark.usefixtures("measurement_service_context")
 
diff --git a/tests/unit/test_configuration.py b/tests/unit/test_configuration.py
index fa41e5a1c..d0b464a8b 100644
--- a/tests/unit/test_configuration.py
+++ b/tests/unit/test_configuration.py
@@ -4,7 +4,7 @@
 import pytest
 from pytest_mock import MockerFixture
 
-from ni_measurement_plugin_sdk._configuration import MIDriverOptions, NISwitchOptions
+from ni_measurement_plugin_sdk_service._configuration import MIDriverOptions, NISwitchOptions
 
 
 def test___mi_driver_options___update_from_config___reads_config(config: Mock) -> None:
@@ -58,4 +58,4 @@ def test___niswitch_options___update_from_config___reads_config(config: Mock) ->
 @pytest.fixture
 def config(mocker: MockerFixture) -> Mock:
     """Test fixture that creates a mock decouple config."""
-    return mocker.patch("ni_measurement_plugin_sdk._configuration._config")
+    return mocker.patch("ni_measurement_plugin_sdk_service._configuration._config")
diff --git a/tests/unit/test_discovery_client.py b/tests/unit/test_discovery_client.py
index a39f95a64..b9468b34d 100644
--- a/tests/unit/test_discovery_client.py
+++ b/tests/unit/test_discovery_client.py
@@ -13,8 +13,10 @@
 import pytest
 from pytest_mock import MockerFixture
 
-from ni_measurement_plugin_sdk._annotations import SERVICE_PROGRAMMINGLANGUAGE_KEY
-from ni_measurement_plugin_sdk._internal.stubs.ni.measurementlink.discovery.v1.discovery_service_pb2 import (
+from ni_measurement_plugin_sdk_service._annotations import (
+    SERVICE_PROGRAMMINGLANGUAGE_KEY,
+)
+from ni_measurement_plugin_sdk_service._internal.stubs.ni.measurementlink.discovery.v1.discovery_service_pb2 import (
     RegisterServiceRequest,
     RegisterServiceResponse,
     ResolveServiceRequest,
@@ -23,17 +25,20 @@
     UnregisterServiceRequest,
     UnregisterServiceResponse,
 )
-from ni_measurement_plugin_sdk._internal.stubs.ni.measurementlink.discovery.v1.discovery_service_pb2_grpc import (
+from ni_measurement_plugin_sdk_service._internal.stubs.ni.measurementlink.discovery.v1.discovery_service_pb2_grpc import (
     DiscoveryServiceStub,
 )
-from ni_measurement_plugin_sdk.discovery import DiscoveryClient, ServiceLocation
-from ni_measurement_plugin_sdk.discovery._support import (
+from ni_measurement_plugin_sdk_service.discovery import DiscoveryClient, ServiceLocation
+from ni_measurement_plugin_sdk_service.discovery._support import (
     _get_discovery_service_address,
     _open_key_file,
     _start_service,
 )
-from ni_measurement_plugin_sdk.grpc.channelpool import GrpcChannelPool
-from ni_measurement_plugin_sdk.measurement.info import MeasurementInfo, ServiceInfo
+from ni_measurement_plugin_sdk_service.grpc.channelpool import GrpcChannelPool
+from ni_measurement_plugin_sdk_service.measurement.info import (
+    MeasurementInfo,
+    ServiceInfo,
+)
 from tests.utilities.fake_rpc_error import FakeRpcError
 
 if sys.platform == "win32":
@@ -202,15 +207,15 @@ def test___discovery_service_not_running___get_discovery_service_address___start
     subprocess_popen_kwargs: Dict[str, Any],
 ):
     mocker.patch(
-        "ni_measurement_plugin_sdk.discovery._support._get_key_file_path",
+        "ni_measurement_plugin_sdk_service.discovery._support._get_key_file_path",
         return_value=temp_discovery_key_file_path,
     )
     mocker.patch(
-        "ni_measurement_plugin_sdk.discovery._support._service_already_running",
+        "ni_measurement_plugin_sdk_service.discovery._support._service_already_running",
         return_value=False,
     )
     mocker.patch(
-        "ni_measurement_plugin_sdk.discovery._support._get_registration_json_file_path",
+        "ni_measurement_plugin_sdk_service.discovery._support._get_registration_json_file_path",
         return_value=temp_registration_json_file_path,
     )
     mock_popen = mocker.patch("subprocess.Popen")
@@ -235,13 +240,15 @@ def test___key_file_never_created___get_discovery_service_address___throws_timeo
     temp_registration_json_file_path: pathlib.Path,
 ):
     mocker.patch(
-        "ni_measurement_plugin_sdk.discovery._support._get_key_file_path",
+        "ni_measurement_plugin_sdk_service.discovery._support._get_key_file_path",
         return_value=temp_discovery_key_file_path,
     )
-    mocker.patch("ni_measurement_plugin_sdk.discovery._support._START_SERVICE_TIMEOUT", 5.0)
-    mocker.patch("ni_measurement_plugin_sdk.discovery._support._open_key_file", side_effect=OSError)
+    mocker.patch("ni_measurement_plugin_sdk_service.discovery._support._START_SERVICE_TIMEOUT", 5.0)
+    mocker.patch(
+        "ni_measurement_plugin_sdk_service.discovery._support._open_key_file", side_effect=OSError
+    )
     mocker.patch(
-        "ni_measurement_plugin_sdk.discovery._support._get_registration_json_file_path",
+        "ni_measurement_plugin_sdk_service.discovery._support._get_registration_json_file_path",
         return_value=temp_registration_json_file_path,
     )
     mocker.patch("subprocess.Popen")
@@ -278,7 +285,7 @@ def test___key_file_exist_after_poll___start_discovery_service___discovery_servi
     exe_file_path = temp_directory / _MOCK_REGISTRATION_FILE_CONTENT["discovery"]["path"]
 
     mocker.patch(
-        "ni_measurement_plugin_sdk.discovery._support._open_key_file",
+        "ni_measurement_plugin_sdk_service.discovery._support._open_key_file",
         side_effect=[OSError, OSError, OSError, StringIO()],
     )
     mock_popen = mocker.patch("subprocess.Popen")
@@ -300,11 +307,11 @@ def test___discovery_service_exe_unavailable___register_service___raises_file_no
     temp_registration_json_file_path: pathlib.Path,
 ):
     mocker.patch(
-        "ni_measurement_plugin_sdk.discovery._support._get_key_file_path",
+        "ni_measurement_plugin_sdk_service.discovery._support._get_key_file_path",
         return_value=temp_discovery_key_file_path,
     )
     mocker.patch(
-        "ni_measurement_plugin_sdk.discovery._support._get_registration_json_file_path",
+        "ni_measurement_plugin_sdk_service.discovery._support._get_registration_json_file_path",
         return_value=temp_registration_json_file_path,
     )
     mocker.patch("subprocess.Popen", side_effect=FileNotFoundError)
@@ -328,7 +335,7 @@ def discovery_client(
 ) -> DiscoveryClient:
     """Create a DiscoveryClient."""
     mocker.patch(
-        "ni_measurement_plugin_sdk.discovery._client.DiscoveryClient._get_stub",
+        "ni_measurement_plugin_sdk_service.discovery._client.DiscoveryClient._get_stub",
         return_value=discovery_service_stub,
     )
     return DiscoveryClient(grpc_channel_pool=cast(GrpcChannelPool, grpc_channel_pool))
diff --git a/tests/unit/test_dotenvpath.py b/tests/unit/test_dotenvpath.py
index 46c5f6ec0..6c59cad0f 100644
--- a/tests/unit/test_dotenvpath.py
+++ b/tests/unit/test_dotenvpath.py
@@ -2,7 +2,7 @@
 
 import pytest
 
-from ni_measurement_plugin_sdk import _dotenvpath
+from ni_measurement_plugin_sdk_service import _dotenvpath
 
 
 @pytest.mark.parametrize("dotenv_exists", [False, True])
diff --git a/tests/unit/test_drivers.py b/tests/unit/test_drivers.py
index c4b835c46..d8001e9e4 100644
--- a/tests/unit/test_drivers.py
+++ b/tests/unit/test_drivers.py
@@ -1,13 +1,16 @@
 import pytest
 
-from ni_measurement_plugin_sdk._drivers import closing_session_with_ts_code_module_support
-from ni_measurement_plugin_sdk.session_management._types import SessionInitializationBehavior
+from ni_measurement_plugin_sdk_service._drivers import (
+    closing_session_with_ts_code_module_support,
+)
+from ni_measurement_plugin_sdk_service.session_management._types import (
+    SessionInitializationBehavior,
+)
 from tests.utilities import fake_driver
 from tests.utilities.fake_driver import (
     SessionInitializationBehavior as FakeDriverSessionInitializationBehavior,
 )
 
-
 _INITIALIZATION_BEHAVIOR = {
     SessionInitializationBehavior.AUTO: FakeDriverSessionInitializationBehavior.AUTO,
     SessionInitializationBehavior.INITIALIZE_SERVER_SESSION: FakeDriverSessionInitializationBehavior.INITIALIZE_SERVER_SESSION,
diff --git a/tests/unit/test_featuretoggles.py b/tests/unit/test_featuretoggles.py
index 6d85b2abd..ba24a8e91 100644
--- a/tests/unit/test_featuretoggles.py
+++ b/tests/unit/test_featuretoggles.py
@@ -3,7 +3,7 @@
 import pytest
 from pytest_mock import MockerFixture
 
-from ni_measurement_plugin_sdk._featuretoggles import (
+from ni_measurement_plugin_sdk_service._featuretoggles import (
     CodeReadiness,
     FeatureNotSupportedError,
     FeatureToggle,
diff --git a/tests/unit/test_metadata.py b/tests/unit/test_metadata.py
index b660d041d..a4f0c5398 100644
--- a/tests/unit/test_metadata.py
+++ b/tests/unit/test_metadata.py
@@ -4,13 +4,13 @@
 
 import pytest
 
-from ni_measurement_plugin_sdk import _datatypeinfo
-from ni_measurement_plugin_sdk._annotations import (
+from ni_measurement_plugin_sdk_service import _datatypeinfo
+from ni_measurement_plugin_sdk_service._annotations import (
     ENUM_VALUES_KEY,
     TYPE_SPECIALIZATION_KEY,
 )
-from ni_measurement_plugin_sdk._internal.parameter import metadata
-from ni_measurement_plugin_sdk.measurement.info import DataType, TypeSpecialization
+from ni_measurement_plugin_sdk_service._internal.parameter import metadata
+from ni_measurement_plugin_sdk_service.measurement.info import DataType, TypeSpecialization
 
 
 class Color(Enum):
diff --git a/tests/unit/test_reservation.py b/tests/unit/test_reservation.py
index bfde4b92e..f70558c4c 100644
--- a/tests/unit/test_reservation.py
+++ b/tests/unit/test_reservation.py
@@ -5,10 +5,10 @@
 
 import pytest
 
-from ni_measurement_plugin_sdk._internal.stubs.ni.measurementlink.sessionmanagement.v1 import (
+from ni_measurement_plugin_sdk_service._internal.stubs.ni.measurementlink.sessionmanagement.v1 import (
     session_management_service_pb2,
 )
-from ni_measurement_plugin_sdk.session_management import (
+from ni_measurement_plugin_sdk_service.session_management import (
     SITE_SYSTEM_PINS,
     MultiSessionReservation,
     SessionInformation,
diff --git a/tests/unit/test_reservation_multiplexer.py b/tests/unit/test_reservation_multiplexer.py
index 3d0ac9ba3..06f816a2b 100644
--- a/tests/unit/test_reservation_multiplexer.py
+++ b/tests/unit/test_reservation_multiplexer.py
@@ -5,10 +5,10 @@
 
 import pytest
 
-from ni_measurement_plugin_sdk._internal.stubs.ni.measurementlink.sessionmanagement.v1 import (
+from ni_measurement_plugin_sdk_service._internal.stubs.ni.measurementlink.sessionmanagement.v1 import (
     session_management_service_pb2,
 )
-from ni_measurement_plugin_sdk.session_management import (
+from ni_measurement_plugin_sdk_service.session_management import (
     MultiplexerSessionInformation,
     MultiSessionReservation,
     SingleSessionReservation,
diff --git a/tests/unit/test_serialization_strategy.py b/tests/unit/test_serialization_strategy.py
index ec3505544..41b2c4a81 100644
--- a/tests/unit/test_serialization_strategy.py
+++ b/tests/unit/test_serialization_strategy.py
@@ -3,8 +3,8 @@
 import pytest
 from google.protobuf import type_pb2
 
-from ni_measurement_plugin_sdk._internal.parameter import serialization_strategy
-from ni_measurement_plugin_sdk._internal.stubs.ni.protobuf.types import xydata_pb2
+from ni_measurement_plugin_sdk_service._internal.parameter import serialization_strategy
+from ni_measurement_plugin_sdk_service._internal.stubs.ni.protobuf.types import xydata_pb2
 
 
 @pytest.mark.parametrize(
diff --git a/tests/unit/test_serializer.py b/tests/unit/test_serializer.py
index 6a7686d63..bb3655939 100644
--- a/tests/unit/test_serializer.py
+++ b/tests/unit/test_serializer.py
@@ -6,16 +6,16 @@
 import pytest
 from google.protobuf import any_pb2, type_pb2
 
-from ni_measurement_plugin_sdk._annotations import (
+from ni_measurement_plugin_sdk_service._annotations import (
     ENUM_VALUES_KEY,
     TYPE_SPECIALIZATION_KEY,
 )
-from ni_measurement_plugin_sdk._internal.parameter import serializer
-from ni_measurement_plugin_sdk._internal.parameter.metadata import (
+from ni_measurement_plugin_sdk_service._internal.parameter import serializer
+from ni_measurement_plugin_sdk_service._internal.parameter.metadata import (
     ParameterMetadata,
     TypeSpecialization,
 )
-from ni_measurement_plugin_sdk._internal.stubs.ni.protobuf.types import xydata_pb2
+from ni_measurement_plugin_sdk_service._internal.stubs.ni.protobuf.types import xydata_pb2
 from tests.utilities.stubs.serialization import test_pb2
 from tests.utilities.stubs.serialization.bigmessage_pb2 import BigMessage
 
diff --git a/tests/unit/test_service.py b/tests/unit/test_service.py
index 68c3fa424..b62235f2f 100644
--- a/tests/unit/test_service.py
+++ b/tests/unit/test_service.py
@@ -8,11 +8,11 @@
 import pytest
 from pytest_mock import MockerFixture
 
-from ni_measurement_plugin_sdk import _datatypeinfo
-from ni_measurement_plugin_sdk._annotations import TYPE_SPECIALIZATION_KEY
-from ni_measurement_plugin_sdk._internal.stubs.ni.protobuf.types import xydata_pb2
-from ni_measurement_plugin_sdk.measurement.info import DataType, TypeSpecialization
-from ni_measurement_plugin_sdk.measurement.service import MeasurementService
+from ni_measurement_plugin_sdk_service import _datatypeinfo
+from ni_measurement_plugin_sdk_service._annotations import TYPE_SPECIALIZATION_KEY
+from ni_measurement_plugin_sdk_service._internal.stubs.ni.protobuf.types import xydata_pb2
+from ni_measurement_plugin_sdk_service.measurement.info import DataType, TypeSpecialization
+from ni_measurement_plugin_sdk_service.measurement.service import MeasurementService
 
 
 class Color(Enum):
@@ -447,7 +447,7 @@ def test___measurement_service___host_service_with_grpc_service_not_started___ra
 ):
     measurement_service.register_measurement(_fake_measurement_function)
     mocker.patch(
-        "ni_measurement_plugin_sdk._internal.service_manager.GrpcService.start",
+        "ni_measurement_plugin_sdk_service._internal.service_manager.GrpcService.start",
         side_effect=Exception,
     )
 
diff --git a/tests/unit/test_session_management.py b/tests/unit/test_session_management.py
index 054e951b2..10d1fd0a2 100644
--- a/tests/unit/test_session_management.py
+++ b/tests/unit/test_session_management.py
@@ -5,16 +5,16 @@
 import pytest
 from pytest_mock import MockerFixture
 
-from ni_measurement_plugin_sdk._internal.stubs import session_pb2
-from ni_measurement_plugin_sdk._internal.stubs.ni.measurementlink.sessionmanagement.v1 import (
+from ni_measurement_plugin_sdk_service._internal.stubs import session_pb2
+from ni_measurement_plugin_sdk_service._internal.stubs.ni.measurementlink.sessionmanagement.v1 import (
     session_management_service_pb2,
 )
-from ni_measurement_plugin_sdk._internal.stubs.ni.measurementlink.sessionmanagement.v1.session_management_service_pb2_grpc import (
+from ni_measurement_plugin_sdk_service._internal.stubs.ni.measurementlink.sessionmanagement.v1.session_management_service_pb2_grpc import (
     SessionManagementServiceStub,
 )
-from ni_measurement_plugin_sdk.discovery import DiscoveryClient
-from ni_measurement_plugin_sdk.grpc.channelpool import GrpcChannelPool
-from ni_measurement_plugin_sdk.session_management import (
+from ni_measurement_plugin_sdk_service.discovery import DiscoveryClient
+from ni_measurement_plugin_sdk_service.grpc.channelpool import GrpcChannelPool
+from ni_measurement_plugin_sdk_service.session_management import (
     MultiplexerSessionInformation,
     MultiSessionReservation,
     PinMapContext,
@@ -581,7 +581,7 @@ def test___use_reservation_type___reports_deprecated_warning_and_aliases_to_mult
     session_management_client: SessionManagementClient,
 ) -> None:
     with pytest.deprecated_call():
-        from ni_measurement_plugin_sdk.session_management import Reservation
+        from ni_measurement_plugin_sdk_service.session_management import Reservation
 
         reservation = Reservation(session_management_client, _create_grpc_session_infos(3))
 
@@ -983,7 +983,7 @@ def session_management_client(
 ) -> SessionManagementClient:
     """Create a Client with a mock SessionManagementServiceStub."""
     mocker.patch(
-        "ni_measurement_plugin_sdk.session_management.SessionManagementClient._get_stub",
+        "ni_measurement_plugin_sdk_service.session_management.SessionManagementClient._get_stub",
         return_value=session_management_stub,
     )
     client = SessionManagementClient(
diff --git a/tests/utilities/connection_subset.py b/tests/utilities/connection_subset.py
index 781fb8e2b..ddab93473 100644
--- a/tests/utilities/connection_subset.py
+++ b/tests/utilities/connection_subset.py
@@ -2,7 +2,7 @@
 
 from typing import NamedTuple, TypeVar, Union
 
-from ni_measurement_plugin_sdk.session_management import (
+from ni_measurement_plugin_sdk_service.session_management import (
     Connection,
     TypedConnection,
     TypedConnectionWithMultiplexer,
diff --git a/tests/utilities/discovery_service_process.py b/tests/utilities/discovery_service_process.py
index 71b645196..30f5f488b 100644
--- a/tests/utilities/discovery_service_process.py
+++ b/tests/utilities/discovery_service_process.py
@@ -5,7 +5,7 @@
 
 from typing_extensions import Self
 
-from ni_measurement_plugin_sdk.discovery._support import (
+from ni_measurement_plugin_sdk_service.discovery._support import (
     _get_discovery_service_location,
     _get_key_file_path,
     _service_already_running,
diff --git a/tests/utilities/measurements/loopback_measurement/__init__.py b/tests/utilities/measurements/loopback_measurement/__init__.py
index 85a1598a2..3bb5a8997 100644
--- a/tests/utilities/measurements/loopback_measurement/__init__.py
+++ b/tests/utilities/measurements/loopback_measurement/__init__.py
@@ -6,7 +6,7 @@
 
 from examples.sample_measurement._stubs import color_pb2
 
-import ni_measurement_plugin_sdk as nims
+import ni_measurement_plugin_sdk_service as nims
 
 
 class Color(Enum):
diff --git a/tests/utilities/measurements/nidaqmx_measurement/__init__.py b/tests/utilities/measurements/nidaqmx_measurement/__init__.py
index ebb729313..7447e694e 100644
--- a/tests/utilities/measurements/nidaqmx_measurement/__init__.py
+++ b/tests/utilities/measurements/nidaqmx_measurement/__init__.py
@@ -5,8 +5,8 @@
 
 import nidaqmx
 
-import ni_measurement_plugin_sdk as nims
-from ni_measurement_plugin_sdk.session_management import TypedSessionInformation
+import ni_measurement_plugin_sdk_service as nims
+from ni_measurement_plugin_sdk_service.session_management import TypedSessionInformation
 
 service_directory = pathlib.Path(__file__).resolve().parent
 measurement_service = nims.MeasurementService(
diff --git a/tests/utilities/measurements/nidcpower_measurement/__init__.py b/tests/utilities/measurements/nidcpower_measurement/__init__.py
index 2c67ec8a7..eebe26a1c 100644
--- a/tests/utilities/measurements/nidcpower_measurement/__init__.py
+++ b/tests/utilities/measurements/nidcpower_measurement/__init__.py
@@ -7,7 +7,7 @@
 import hightime
 import nidcpower
 
-import ni_measurement_plugin_sdk as nims
+import ni_measurement_plugin_sdk_service as nims
 
 service_directory = pathlib.Path(__file__).resolve().parent
 measurement_service = nims.MeasurementService(
diff --git a/tests/utilities/measurements/nidigital_measurement/__init__.py b/tests/utilities/measurements/nidigital_measurement/__init__.py
index 35b337041..96ba670f0 100644
--- a/tests/utilities/measurements/nidigital_measurement/__init__.py
+++ b/tests/utilities/measurements/nidigital_measurement/__init__.py
@@ -6,8 +6,8 @@
 
 import nidigital
 
-import ni_measurement_plugin_sdk as nims
-from ni_measurement_plugin_sdk.session_management import (
+import ni_measurement_plugin_sdk_service as nims
+from ni_measurement_plugin_sdk_service.session_management import (
     TypedConnection,
     TypedSessionInformation,
 )
diff --git a/tests/utilities/measurements/nidmm_measurement/__init__.py b/tests/utilities/measurements/nidmm_measurement/__init__.py
index 40bdbedcf..bbbd01ace 100644
--- a/tests/utilities/measurements/nidmm_measurement/__init__.py
+++ b/tests/utilities/measurements/nidmm_measurement/__init__.py
@@ -6,8 +6,8 @@
 
 import nidmm
 
-import ni_measurement_plugin_sdk as nims
-from ni_measurement_plugin_sdk.session_management import TypedSessionInformation
+import ni_measurement_plugin_sdk_service as nims
+from ni_measurement_plugin_sdk_service.session_management import TypedSessionInformation
 
 service_directory = pathlib.Path(__file__).resolve().parent
 measurement_service = nims.MeasurementService(
diff --git a/tests/utilities/measurements/nifgen_measurement/__init__.py b/tests/utilities/measurements/nifgen_measurement/__init__.py
index 0019e1069..3d0462b53 100644
--- a/tests/utilities/measurements/nifgen_measurement/__init__.py
+++ b/tests/utilities/measurements/nifgen_measurement/__init__.py
@@ -6,8 +6,8 @@
 
 import nifgen
 
-import ni_measurement_plugin_sdk as nims
-from ni_measurement_plugin_sdk.session_management import TypedSessionInformation
+import ni_measurement_plugin_sdk_service as nims
+from ni_measurement_plugin_sdk_service.session_management import TypedSessionInformation
 
 service_directory = pathlib.Path(__file__).resolve().parent
 measurement_service = nims.MeasurementService(
diff --git a/tests/utilities/measurements/niscope_measurement/__init__.py b/tests/utilities/measurements/niscope_measurement/__init__.py
index e603a60d2..d2662aa3f 100644
--- a/tests/utilities/measurements/niscope_measurement/__init__.py
+++ b/tests/utilities/measurements/niscope_measurement/__init__.py
@@ -6,8 +6,8 @@
 
 import niscope
 
-import ni_measurement_plugin_sdk as nims
-from ni_measurement_plugin_sdk.session_management import TypedSessionInformation
+import ni_measurement_plugin_sdk_service as nims
+from ni_measurement_plugin_sdk_service.session_management import TypedSessionInformation
 
 service_directory = pathlib.Path(__file__).resolve().parent
 measurement_service = nims.MeasurementService(
diff --git a/tests/utilities/measurements/niswitch_measurement/__init__.py b/tests/utilities/measurements/niswitch_measurement/__init__.py
index 9fcc4ef6b..b176e6140 100644
--- a/tests/utilities/measurements/niswitch_measurement/__init__.py
+++ b/tests/utilities/measurements/niswitch_measurement/__init__.py
@@ -5,8 +5,8 @@
 
 import niswitch
 
-import ni_measurement_plugin_sdk as nims
-from ni_measurement_plugin_sdk.session_management import TypedSessionInformation
+import ni_measurement_plugin_sdk_service as nims
+from ni_measurement_plugin_sdk_service.session_management import TypedSessionInformation
 
 service_directory = pathlib.Path(__file__).resolve().parent
 measurement_service = nims.MeasurementService(
diff --git a/tests/utilities/measurements/niswitch_multiplexer_measurement/__init__.py b/tests/utilities/measurements/niswitch_multiplexer_measurement/__init__.py
index e6ab53039..31556d203 100644
--- a/tests/utilities/measurements/niswitch_multiplexer_measurement/__init__.py
+++ b/tests/utilities/measurements/niswitch_multiplexer_measurement/__init__.py
@@ -5,8 +5,8 @@
 
 import niswitch
 
-import ni_measurement_plugin_sdk as nims
-from ni_measurement_plugin_sdk.session_management import TypedConnectionWithMultiplexer
+import ni_measurement_plugin_sdk_service as nims
+from ni_measurement_plugin_sdk_service.session_management import TypedConnectionWithMultiplexer
 
 service_directory = pathlib.Path(__file__).resolve().parent
 measurement_service = nims.MeasurementService(
diff --git a/tests/utilities/measurements/pin_aware_measurement/__init__.py b/tests/utilities/measurements/pin_aware_measurement/__init__.py
index 00106b40a..2319c09b8 100644
--- a/tests/utilities/measurements/pin_aware_measurement/__init__.py
+++ b/tests/utilities/measurements/pin_aware_measurement/__init__.py
@@ -3,7 +3,7 @@
 import pathlib
 from typing import Iterable, Tuple
 
-import ni_measurement_plugin_sdk as nims
+import ni_measurement_plugin_sdk_service as nims
 
 service_directory = pathlib.Path(__file__).resolve().parent
 measurement_service = nims.MeasurementService(
diff --git a/tests/utilities/measurements/streaming_data_measurement/__init__.py b/tests/utilities/measurements/streaming_data_measurement/__init__.py
index a72c8d5e8..15a099b3f 100644
--- a/tests/utilities/measurements/streaming_data_measurement/__init__.py
+++ b/tests/utilities/measurements/streaming_data_measurement/__init__.py
@@ -7,7 +7,7 @@
 
 import grpc
 
-import ni_measurement_plugin_sdk as nims
+import ni_measurement_plugin_sdk_service as nims
 
 service_directory = pathlib.Path(__file__).resolve().parent
 measurement_service = nims.MeasurementService(
diff --git a/tests/utilities/measurements/unknown_interface_measurement/__init__.py b/tests/utilities/measurements/unknown_interface_measurement/__init__.py
index 8d5162a06..b72fdc226 100644
--- a/tests/utilities/measurements/unknown_interface_measurement/__init__.py
+++ b/tests/utilities/measurements/unknown_interface_measurement/__init__.py
@@ -2,7 +2,7 @@
 
 import pathlib
 
-import ni_measurement_plugin_sdk as nims
+import ni_measurement_plugin_sdk_service as nims
 
 service_directory = pathlib.Path(__file__).resolve().parent
 measurement_service = nims.MeasurementService(
diff --git a/tests/utilities/measurements/v1_only_measurement/__init__.py b/tests/utilities/measurements/v1_only_measurement/__init__.py
index cf0b4a892..909ba982e 100644
--- a/tests/utilities/measurements/v1_only_measurement/__init__.py
+++ b/tests/utilities/measurements/v1_only_measurement/__init__.py
@@ -2,7 +2,7 @@
 
 import pathlib
 
-import ni_measurement_plugin_sdk as nims
+import ni_measurement_plugin_sdk_service as nims
 
 service_directory = pathlib.Path(__file__).resolve().parent
 measurement_service = nims.MeasurementService(
diff --git a/tests/utilities/measurements/v2_only_measurement/__init__.py b/tests/utilities/measurements/v2_only_measurement/__init__.py
index e554c66ed..54f80c226 100644
--- a/tests/utilities/measurements/v2_only_measurement/__init__.py
+++ b/tests/utilities/measurements/v2_only_measurement/__init__.py
@@ -2,7 +2,7 @@
 
 import pathlib
 
-import ni_measurement_plugin_sdk as nims
+import ni_measurement_plugin_sdk_service as nims
 
 service_directory = pathlib.Path(__file__).resolve().parent
 measurement_service = nims.MeasurementService(
diff --git a/tests/utilities/measurements/yield_vs_return_measurement/__init__.py b/tests/utilities/measurements/yield_vs_return_measurement/__init__.py
index 49f1cb200..bf7e58e8a 100644
--- a/tests/utilities/measurements/yield_vs_return_measurement/__init__.py
+++ b/tests/utilities/measurements/yield_vs_return_measurement/__init__.py
@@ -8,7 +8,7 @@
 
 import grpc
 
-import ni_measurement_plugin_sdk as nims
+import ni_measurement_plugin_sdk_service as nims
 
 RANDOM_NUMBERS_PER_SECOND = 100.0
 RANDOM_NUMBER_RANGE = 10.0
diff --git a/tests/utilities/pin_map_client.py b/tests/utilities/pin_map_client.py
index 5baed98c1..ea4a7cc8f 100644
--- a/tests/utilities/pin_map_client.py
+++ b/tests/utilities/pin_map_client.py
@@ -7,12 +7,12 @@
 
 import grpc
 
-from ni_measurement_plugin_sdk._internal.stubs.ni.measurementlink.pinmap.v1 import (
+from ni_measurement_plugin_sdk_service._internal.stubs.ni.measurementlink.pinmap.v1 import (
     pin_map_service_pb2,
     pin_map_service_pb2_grpc,
 )
-from ni_measurement_plugin_sdk.discovery import DiscoveryClient
-from ni_measurement_plugin_sdk.grpc.channelpool import GrpcChannelPool
+from ni_measurement_plugin_sdk_service.discovery import DiscoveryClient
+from ni_measurement_plugin_sdk_service.grpc.channelpool import GrpcChannelPool
 
 _logger = logging.getLogger(__name__)
 
diff --git a/tests/utilities/stubs/serialization/test_pb2.py b/tests/utilities/stubs/serialization/test_pb2.py
index d3d9e8502..d36e018cd 100644
--- a/tests/utilities/stubs/serialization/test_pb2.py
+++ b/tests/utilities/stubs/serialization/test_pb2.py
@@ -11,7 +11,7 @@
 _sym_db = _symbol_database.Default()
 
 
-from ni_measurement_plugin_sdk._internal.stubs.ni.protobuf.types import xydata_pb2 as ni_dot_protobuf_dot_types_dot_xydata__pb2
+from ni_measurement_plugin_sdk_service._internal.stubs.ni.protobuf.types import xydata_pb2 as ni_dot_protobuf_dot_types_dot_xydata__pb2
 
 
 DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x18serialization/test.proto\x12\x32ni.measurementlink.measurement.tests.serialization\x1a\x1eni/protobuf/types/xydata.proto\"\xdc\x06\n\x14MeasurementParameter\x12\x12\n\nfloat_data\x18\x01 \x01(\x02\x12\x13\n\x0b\x64ouble_data\x18\x02 \x01(\x01\x12\x12\n\nint32_data\x18\x03 \x01(\x05\x12\x13\n\x0buint32_data\x18\x04 \x01(\r\x12\x12\n\nint64_data\x18\x05 \x01(\x03\x12\x13\n\x0buint64_data\x18\x06 \x01(\x04\x12\x11\n\tbool_data\x18\x07 \x01(\x08\x12\x13\n\x0bstring_data\x18\x08 \x01(\t\x12\x19\n\x11\x64ouble_array_data\x18\t \x03(\x01\x12\x18\n\x10\x66loat_array_data\x18\n \x03(\x02\x12\x18\n\x10int32_array_data\x18\x0b \x03(\x05\x12\x19\n\x11uint32_array_data\x18\x0c \x03(\r\x12\x18\n\x10int64_array_data\x18\r \x03(\x03\x12\x19\n\x11uint64_array_data\x18\x0e \x03(\x04\x12\x17\n\x0f\x62ool_array_data\x18\x0f \x03(\x08\x12\x19\n\x11string_array_data\x18\x10 \x03(\t\x12U\n\tenum_data\x18\x11 \x01(\x0e\x32\x42.ni.measurementlink.measurement.tests.serialization.DifferentColor\x12[\n\x0f\x65num_array_data\x18\x12 \x03(\x0e\x32\x42.ni.measurementlink.measurement.tests.serialization.DifferentColor\x12T\n\rint_enum_data\x18\x13 \x01(\x0e\x32=.ni.measurementlink.measurement.tests.serialization.Countries\x12Z\n\x13int_enum_array_data\x18\x14 \x03(\x0e\x32=.ni.measurementlink.measurement.tests.serialization.Countries\x12\x30\n\x07xy_data\x18\x15 \x01(\x0b\x32\x1f.ni.protobuf.types.DoubleXYData\x12\x36\n\rxy_data_array\x18\x16 \x03(\x0b\x32\x1f.ni.protobuf.types.DoubleXYData*=\n\x0e\x44ifferentColor\x12\n\n\x06PURPLE\x10\x00\x12\n\n\x06ORANGE\x10\x01\x12\x08\n\x04TEAL\x10\x02\x12\t\n\x05\x42ROWN\x10\x03*?\n\tCountries\x12\x0b\n\x07\x41MERICA\x10\x00\x12\n\n\x06TAIWAN\x10\x01\x12\r\n\tAUSTRALIA\x10\x02\x12\n\n\x06\x43\x41NADA\x10\x03\x62\x06proto3')
diff --git a/tests/utilities/stubs/serialization/test_pb2.pyi b/tests/utilities/stubs/serialization/test_pb2.pyi
index 926b344af..894460c43 100644
--- a/tests/utilities/stubs/serialization/test_pb2.pyi
+++ b/tests/utilities/stubs/serialization/test_pb2.pyi
@@ -9,7 +9,7 @@ import google.protobuf.descriptor
 import google.protobuf.internal.containers
 import google.protobuf.internal.enum_type_wrapper
 import google.protobuf.message
-import ni_measurement_plugin_sdk._internal.stubs.ni.protobuf.types.xydata_pb2 as ni_protobuf_types_xydata_pb2
+import ni_measurement_plugin_sdk_service._internal.stubs.ni.protobuf.types.xydata_pb2 as ni_protobuf_types_xydata_pb2
 import sys
 import typing