From fd3d8f5a34f5070b7a4f7ef38c48f92d3a4b3067 Mon Sep 17 00:00:00 2001
From: Brandon Stoll <bstoll@users.noreply.github.com>
Date: Mon, 13 Jan 2025 23:52:15 +0000
Subject: [PATCH] Add bazel8 support.

---
 .bazelversion                                 |    2 +-
 BUILD.bazel                                   |   29 +-
 MODULE.bazel                                  |   42 +-
 MODULE.bazel.lock                             | 1836 ++++------
 WORKSPACE                                     |   96 +-
 WORKSPACE.bzlmod                              |    0
 bazel/BUILD.bazel                             |   18 +
 bazel/tools.go                                |   24 +
 bgp/BUILD.bazel                               |   13 +-
 bgp/bgp.pb.go                                 |  185 +-
 bgp/bgp_grpc.pb.go                            |   44 +-
 bootconfig/BUILD.bazel                        |   29 +-
 bootconfig/bootconfig.pb.go                   |  130 +-
 bootconfig/bootconfig_grpc.pb.go              |   46 +-
 cert/BUILD.bazel                              |   13 +-
 cert/cert.pb.go                               | 1516 +++-----
 cert/cert_grpc.pb.go                          |  198 +-
 common.bzl                                    |   29 -
 common/BUILD.bazel                            |   12 +-
 common/common.pb.go                           |   37 +-
 containerz/BUILD.bazel                        |   17 +-
 containerz/containerz.pb.go                   | 3146 +++++++----------
 containerz/containerz_grpc.pb.go              |  358 +-
 debug/BUILD.bazel                             |   13 +-
 debug/debug.pb.go                             |  300 +-
 debug/debug_grpc.pb.go                        |   86 +-
 diag/BUILD.bazel                              |   13 +-
 diag/diag.pb.go                               |  883 ++---
 diag/diag_grpc.pb.go                          |   56 +-
 factory_reset/BUILD.bazel                     |   13 +-
 factory_reset/factory_reset.pb.go             |  309 +-
 factory_reset/factory_reset_grpc.pb.go        |   44 +-
 file/BUILD.bazel                              |   13 +-
 file/file.pb.go                               |  686 ++--
 file/file_grpc.pb.go                          |  169 +-
 gnoi_deps.bzl                                 |  509 +--
 gnoi_go_deps.bzl                              |  471 +++
 go.mod                                        |   13 +-
 go.sum                                        |   18 +-
 healthz/BUILD.bazel                           |   13 +-
 healthz/healthz.pb.go                         |  941 ++---
 healthz/healthz_grpc.pb.go                    |  110 +-
 layer2/BUILD.bazel                            |   13 +-
 layer2/layer2.pb.go                           |  589 ++-
 layer2/layer2_grpc.pb.go                      |  110 +-
 mpls/BUILD.bazel                              |   13 +-
 mpls/mpls.pb.go                               |  578 ++-
 mpls/mpls_grpc.pb.go                          |   98 +-
 os/BUILD.bazel                                |   16 +-
 os/os.pb.go                                   |  666 ++--
 os/os_grpc.pb.go                              |  108 +-
 otdr/BUILD.bazel                              |   13 +-
 otdr/otdr.pb.go                               |  660 ++--
 otdr/otdr_grpc.pb.go                          |   86 +-
 packet_capture/BUILD.bazel                    |   14 +-
 packet_capture/packet_capture.pb.go           |  768 ++--
 packet_capture/packet_capture_grpc.pb.go      |   86 +-
 packet_link_qualification/BUILD.bazel         |   17 +-
 .../packet_link_qualification.pb.go           | 1830 ++++------
 .../packet_link_qualification_grpc.pb.go      |   68 +-
 system/BUILD.bazel                            |   13 +-
 system/system.pb.go                           | 1480 +++-----
 system/system_grpc.pb.go                      |  235 +-
 test/BUILD.bazel                              |    2 +-
 types/BUILD.bazel                             |   12 +-
 types/types.pb.go                             |  156 +-
 wavelength_router/BUILD.bazel                 |   13 +-
 wavelength_router/wavelength_router.pb.go     |  734 ++--
 .../wavelength_router_grpc.pb.go              |  146 +-
 69 files changed, 8505 insertions(+), 12499 deletions(-)
 create mode 100644 WORKSPACE.bzlmod
 create mode 100644 bazel/BUILD.bazel
 create mode 100644 bazel/tools.go
 delete mode 100644 common.bzl
 create mode 100644 gnoi_go_deps.bzl

diff --git a/.bazelversion b/.bazelversion
index 19b860c1..ae9a76b9 100644
--- a/.bazelversion
+++ b/.bazelversion
@@ -1 +1 @@
-6.4.0
+8.0.0
diff --git a/BUILD.bazel b/BUILD.bazel
index 805bd137..1083baf1 100644
--- a/BUILD.bazel
+++ b/BUILD.bazel
@@ -13,7 +13,7 @@
 # limitations under the License.
 #
 # Supporting infrastructure for implementing and testing PINS.
-load("@bazel_gazelle//:def.bzl", "gazelle")
+load("@bazel_gazelle//:def.bzl", "gazelle", "gazelle_test")
 
 package(
     default_visibility = ["//visibility:public"],
@@ -22,7 +22,32 @@ package(
 
 exports_files(["LICENSE"])
 
+# gazelle:go_grpc_compilers @io_bazel_rules_go//proto:go_grpc_v2, @io_bazel_rules_go//proto:go_proto
+# gazelle:proto_import_prefix github.com/openconfig/gnoi
 # gazelle:prefix github.com/openconfig/gnoi
+# gazelle:resolve proto go google/rpc/status.proto @org_golang_google_genproto_googleapis_rpc//status
+# gazelle:resolve proto google/rpc/status.proto @com_google_googleapis//google/rpc:status_proto
+# gazelle:resolve proto go github.com/openconfig/bootz/proto/bootz.proto @openconfig_bootz//proto:bootz_go_proto
+# gazelle:resolve proto github.com/openconfig/bootz/proto/bootz.proto @openconfig_bootz//proto:bootz_proto
+# gazelle:resolve proto go github.com/openconfig/gnsi/authz/authz.proto @openconfig_gnsi//authz:authz_go_proto
+# gazelle:resolve proto github.com/openconfig/gnsi/authz/authz.proto @openconfig_gnsi//authz:authz_proto
+# gazelle:resolve proto go github.com/openconfig/gnsi/certz/certz.proto @openconfig_gnsi//certz:certz_go_proto
+# gazelle:resolve proto github.com/openconfig/gnsi/certz/certz.proto @openconfig_gnsi//certz:certz_proto
+# gazelle:resolve proto go github.com/openconfig/gnsi/pathz/pathz.proto @openconfig_gnsi//pathz:pathz_go_proto
+# gazelle:resolve proto github.com/openconfig/gnsi/pathz/pathz.proto @openconfig_gnsi//pathz:pathz_proto
 gazelle(name = "gazelle")
 
-# gazelle:exclude **.pb.go
+gazelle(
+    name = "gazelle_update_repos",
+    args = [
+        "-from_file=go.mod",
+        "-to_macro=gnoi_go_deps.bzl%gnoi_go_deps",
+        "-prune",
+    ],
+    command = "update-repos",
+)
+
+gazelle_test(
+    name = "gazelle_test",
+    workspace = "//:BUILD.bazel",
+)
diff --git a/MODULE.bazel b/MODULE.bazel
index 00bb1836..8a6c05d0 100644
--- a/MODULE.bazel
+++ b/MODULE.bazel
@@ -1,6 +1,36 @@
-###############################################################################
-# Bazel now uses Bzlmod by default to manage external dependencies.
-# Please consider migrating your external dependencies from WORKSPACE to MODULE.bazel.
-#
-# For more details, please check https://github.com/bazelbuild/bazel/issues/18958
-###############################################################################
+module(
+    name = "openconfig_gnoi",
+)
+
+bazel_dep(name = "gazelle", version = "0.41.0", repo_name = "bazel_gazelle")
+bazel_dep(name = "googleapis", version = "0.0.0-20240819-fe8ba054a", repo_name = "com_google_googleapis")
+bazel_dep(name = "grpc", version = "1.69.0", repo_name = "com_github_grpc_grpc")
+bazel_dep(name = "protobuf", version = "29.3", repo_name = "com_google_protobuf")
+bazel_dep(name = "rules_go", version = "0.51.0", repo_name = "io_bazel_rules_go")
+bazel_dep(name = "openconfig_bootz", version = "0.0.0")
+bazel_dep(name = "openconfig_gnsi", version = "0.0.0")
+
+go_sdk = use_extension("@io_bazel_rules_go//go:extensions.bzl", "go_sdk")
+go_sdk.download(version = "1.23.4")
+
+go_deps = use_extension("@bazel_gazelle//:extensions.bzl", "go_deps")
+go_deps.from_file(go_mod = "//:go.mod")
+use_repo(go_deps, "com_github_golang_protobuf", "org_golang_google_genproto_googleapis_rpc", "org_golang_google_grpc", "org_golang_google_grpc_cmd_protoc_gen_go_grpc", "org_golang_google_protobuf")
+
+git_override(
+    module_name = "openconfig_gnsi",
+    commit = "57ecb02511c1541195a212b571ddde05bc635a0a",
+    remote = "https://github.com/bstoll/gnsi",
+)
+
+git_override(
+    module_name = "openconfig_bootz",
+    commit = "145e9a838f6ae8ab3210848a0043e78fceda29a3",
+    remote = "https://github.com/bstoll/bootz",
+)
+
+git_override(
+    module_name = "openconfig_gnmi",
+    commit = "66ccc5027ea9b69376978a6eeb079ba5907249b7",
+    remote = "https://github.com/bstoll/gnmi",
+)
diff --git a/MODULE.bazel.lock b/MODULE.bazel.lock
index 524a898c..8c46e9e3 100644
--- a/MODULE.bazel.lock
+++ b/MODULE.bazel.lock
@@ -1,1270 +1,888 @@
 {
-  "lockFileVersion": 3,
-  "moduleFileHash": "0e3e315145ac7ee7a4e0ac825e1c5e03c068ec1254dd42c3caaecb27e921dc4d",
-  "flags": {
-    "cmdRegistries": [
-      "https://bcr.bazel.build/"
-    ],
-    "cmdModuleOverrides": {},
-    "allowedYankedVersions": [],
-    "envVarAllowedYankedVersions": "",
-    "ignoreDevDependency": false,
-    "directDependenciesMode": "WARNING",
-    "compatibilityMode": "ERROR"
-  },
-  "localOverrideHashes": {
-    "bazel_tools": "922ea6752dc9105de5af957f7a99a6933c0a6a712d23df6aad16a9c399f7e787"
-  },
-  "moduleDepGraph": {
-    "<root>": {
-      "name": "",
-      "version": "",
-      "key": "<root>",
-      "repoName": "",
-      "executionPlatformsToRegister": [],
-      "toolchainsToRegister": [],
-      "extensionUsages": [],
-      "deps": {
-        "bazel_tools": "bazel_tools@_",
-        "local_config_platform": "local_config_platform@_"
-      }
-    },
-    "bazel_tools@_": {
-      "name": "bazel_tools",
-      "version": "",
-      "key": "bazel_tools@_",
-      "repoName": "bazel_tools",
-      "executionPlatformsToRegister": [],
-      "toolchainsToRegister": [
-        "@local_config_cc_toolchains//:all",
-        "@local_config_sh//:local_sh_toolchain"
-      ],
-      "extensionUsages": [
-        {
-          "extensionBzlFile": "@bazel_tools//tools/cpp:cc_configure.bzl",
-          "extensionName": "cc_configure_extension",
-          "usingModule": "bazel_tools@_",
-          "location": {
-            "file": "@@bazel_tools//:MODULE.bazel",
-            "line": 17,
-            "column": 29
-          },
-          "imports": {
-            "local_config_cc": "local_config_cc",
-            "local_config_cc_toolchains": "local_config_cc_toolchains"
-          },
-          "devImports": [],
-          "tags": [],
-          "hasDevUseExtension": false,
-          "hasNonDevUseExtension": true
-        },
-        {
-          "extensionBzlFile": "@bazel_tools//tools/osx:xcode_configure.bzl",
-          "extensionName": "xcode_configure_extension",
-          "usingModule": "bazel_tools@_",
-          "location": {
-            "file": "@@bazel_tools//:MODULE.bazel",
-            "line": 21,
-            "column": 32
-          },
-          "imports": {
-            "local_config_xcode": "local_config_xcode"
-          },
-          "devImports": [],
-          "tags": [],
-          "hasDevUseExtension": false,
-          "hasNonDevUseExtension": true
-        },
-        {
-          "extensionBzlFile": "@rules_java//java:extensions.bzl",
-          "extensionName": "toolchains",
-          "usingModule": "bazel_tools@_",
-          "location": {
-            "file": "@@bazel_tools//:MODULE.bazel",
-            "line": 24,
-            "column": 32
-          },
-          "imports": {
-            "local_jdk": "local_jdk",
-            "remote_java_tools": "remote_java_tools",
-            "remote_java_tools_linux": "remote_java_tools_linux",
-            "remote_java_tools_windows": "remote_java_tools_windows",
-            "remote_java_tools_darwin_x86_64": "remote_java_tools_darwin_x86_64",
-            "remote_java_tools_darwin_arm64": "remote_java_tools_darwin_arm64"
-          },
-          "devImports": [],
-          "tags": [],
-          "hasDevUseExtension": false,
-          "hasNonDevUseExtension": true
-        },
-        {
-          "extensionBzlFile": "@bazel_tools//tools/sh:sh_configure.bzl",
-          "extensionName": "sh_configure_extension",
-          "usingModule": "bazel_tools@_",
-          "location": {
-            "file": "@@bazel_tools//:MODULE.bazel",
-            "line": 35,
-            "column": 39
-          },
-          "imports": {
-            "local_config_sh": "local_config_sh"
-          },
-          "devImports": [],
-          "tags": [],
-          "hasDevUseExtension": false,
-          "hasNonDevUseExtension": true
-        },
-        {
-          "extensionBzlFile": "@bazel_tools//tools/test:extensions.bzl",
-          "extensionName": "remote_coverage_tools_extension",
-          "usingModule": "bazel_tools@_",
-          "location": {
-            "file": "@@bazel_tools//:MODULE.bazel",
-            "line": 39,
-            "column": 48
-          },
-          "imports": {
-            "remote_coverage_tools": "remote_coverage_tools"
-          },
-          "devImports": [],
-          "tags": [],
-          "hasDevUseExtension": false,
-          "hasNonDevUseExtension": true
-        },
-        {
-          "extensionBzlFile": "@bazel_tools//tools/android:android_extensions.bzl",
-          "extensionName": "remote_android_tools_extensions",
-          "usingModule": "bazel_tools@_",
-          "location": {
-            "file": "@@bazel_tools//:MODULE.bazel",
-            "line": 42,
-            "column": 42
-          },
-          "imports": {
-            "android_gmaven_r8": "android_gmaven_r8",
-            "android_tools": "android_tools"
-          },
-          "devImports": [],
-          "tags": [],
-          "hasDevUseExtension": false,
-          "hasNonDevUseExtension": true
-        }
-      ],
-      "deps": {
-        "rules_cc": "rules_cc@0.0.9",
-        "rules_java": "rules_java@7.1.0",
-        "rules_license": "rules_license@0.0.7",
-        "rules_proto": "rules_proto@4.0.0",
-        "rules_python": "rules_python@0.4.0",
-        "platforms": "platforms@0.0.7",
-        "com_google_protobuf": "protobuf@3.19.6",
-        "zlib": "zlib@1.3",
-        "build_bazel_apple_support": "apple_support@1.5.0",
-        "local_config_platform": "local_config_platform@_"
-      }
-    },
-    "local_config_platform@_": {
-      "name": "local_config_platform",
-      "version": "",
-      "key": "local_config_platform@_",
-      "repoName": "local_config_platform",
-      "executionPlatformsToRegister": [],
-      "toolchainsToRegister": [],
-      "extensionUsages": [],
-      "deps": {
-        "platforms": "platforms@0.0.7",
-        "bazel_tools": "bazel_tools@_"
-      }
-    },
-    "rules_cc@0.0.9": {
-      "name": "rules_cc",
-      "version": "0.0.9",
-      "key": "rules_cc@0.0.9",
-      "repoName": "rules_cc",
-      "executionPlatformsToRegister": [],
-      "toolchainsToRegister": [
-        "@local_config_cc_toolchains//:all"
-      ],
-      "extensionUsages": [
-        {
-          "extensionBzlFile": "@bazel_tools//tools/cpp:cc_configure.bzl",
-          "extensionName": "cc_configure_extension",
-          "usingModule": "rules_cc@0.0.9",
-          "location": {
-            "file": "https://bcr.bazel.build/modules/rules_cc/0.0.9/MODULE.bazel",
-            "line": 9,
-            "column": 29
-          },
-          "imports": {
-            "local_config_cc_toolchains": "local_config_cc_toolchains"
-          },
-          "devImports": [],
-          "tags": [],
-          "hasDevUseExtension": false,
-          "hasNonDevUseExtension": true
-        }
-      ],
-      "deps": {
-        "platforms": "platforms@0.0.7",
-        "bazel_tools": "bazel_tools@_",
-        "local_config_platform": "local_config_platform@_"
-      },
-      "repoSpec": {
-        "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl",
-        "ruleClassName": "http_archive",
-        "attributes": {
-          "name": "rules_cc~0.0.9",
-          "urls": [
-            "https://github.com/bazelbuild/rules_cc/releases/download/0.0.9/rules_cc-0.0.9.tar.gz"
-          ],
-          "integrity": "sha256-IDeHW5pEVtzkp50RKorohbvEqtlo5lh9ym5k86CQDN8=",
-          "strip_prefix": "rules_cc-0.0.9",
-          "remote_patches": {
-            "https://bcr.bazel.build/modules/rules_cc/0.0.9/patches/module_dot_bazel_version.patch": "sha256-mM+qzOI0SgAdaJBlWOSMwMPKpaA9b7R37Hj/tp5bb4g="
-          },
-          "remote_patch_strip": 0
-        }
-      }
-    },
-    "rules_java@7.1.0": {
-      "name": "rules_java",
-      "version": "7.1.0",
-      "key": "rules_java@7.1.0",
-      "repoName": "rules_java",
-      "executionPlatformsToRegister": [],
-      "toolchainsToRegister": [
-        "//toolchains:all",
-        "@local_jdk//:runtime_toolchain_definition",
-        "@local_jdk//:bootstrap_runtime_toolchain_definition",
-        "@remotejdk11_linux_toolchain_config_repo//:all",
-        "@remotejdk11_linux_aarch64_toolchain_config_repo//:all",
-        "@remotejdk11_linux_ppc64le_toolchain_config_repo//:all",
-        "@remotejdk11_linux_s390x_toolchain_config_repo//:all",
-        "@remotejdk11_macos_toolchain_config_repo//:all",
-        "@remotejdk11_macos_aarch64_toolchain_config_repo//:all",
-        "@remotejdk11_win_toolchain_config_repo//:all",
-        "@remotejdk11_win_arm64_toolchain_config_repo//:all",
-        "@remotejdk17_linux_toolchain_config_repo//:all",
-        "@remotejdk17_linux_aarch64_toolchain_config_repo//:all",
-        "@remotejdk17_linux_ppc64le_toolchain_config_repo//:all",
-        "@remotejdk17_linux_s390x_toolchain_config_repo//:all",
-        "@remotejdk17_macos_toolchain_config_repo//:all",
-        "@remotejdk17_macos_aarch64_toolchain_config_repo//:all",
-        "@remotejdk17_win_toolchain_config_repo//:all",
-        "@remotejdk17_win_arm64_toolchain_config_repo//:all",
-        "@remotejdk21_linux_toolchain_config_repo//:all",
-        "@remotejdk21_linux_aarch64_toolchain_config_repo//:all",
-        "@remotejdk21_macos_toolchain_config_repo//:all",
-        "@remotejdk21_macos_aarch64_toolchain_config_repo//:all",
-        "@remotejdk21_win_toolchain_config_repo//:all"
-      ],
-      "extensionUsages": [
-        {
-          "extensionBzlFile": "@rules_java//java:extensions.bzl",
-          "extensionName": "toolchains",
-          "usingModule": "rules_java@7.1.0",
-          "location": {
-            "file": "https://bcr.bazel.build/modules/rules_java/7.1.0/MODULE.bazel",
-            "line": 19,
-            "column": 27
-          },
-          "imports": {
-            "remote_java_tools": "remote_java_tools",
-            "remote_java_tools_linux": "remote_java_tools_linux",
-            "remote_java_tools_windows": "remote_java_tools_windows",
-            "remote_java_tools_darwin_x86_64": "remote_java_tools_darwin_x86_64",
-            "remote_java_tools_darwin_arm64": "remote_java_tools_darwin_arm64",
-            "local_jdk": "local_jdk",
-            "remotejdk11_linux_toolchain_config_repo": "remotejdk11_linux_toolchain_config_repo",
-            "remotejdk11_linux_aarch64_toolchain_config_repo": "remotejdk11_linux_aarch64_toolchain_config_repo",
-            "remotejdk11_linux_ppc64le_toolchain_config_repo": "remotejdk11_linux_ppc64le_toolchain_config_repo",
-            "remotejdk11_linux_s390x_toolchain_config_repo": "remotejdk11_linux_s390x_toolchain_config_repo",
-            "remotejdk11_macos_toolchain_config_repo": "remotejdk11_macos_toolchain_config_repo",
-            "remotejdk11_macos_aarch64_toolchain_config_repo": "remotejdk11_macos_aarch64_toolchain_config_repo",
-            "remotejdk11_win_toolchain_config_repo": "remotejdk11_win_toolchain_config_repo",
-            "remotejdk11_win_arm64_toolchain_config_repo": "remotejdk11_win_arm64_toolchain_config_repo",
-            "remotejdk17_linux_toolchain_config_repo": "remotejdk17_linux_toolchain_config_repo",
-            "remotejdk17_linux_aarch64_toolchain_config_repo": "remotejdk17_linux_aarch64_toolchain_config_repo",
-            "remotejdk17_linux_ppc64le_toolchain_config_repo": "remotejdk17_linux_ppc64le_toolchain_config_repo",
-            "remotejdk17_linux_s390x_toolchain_config_repo": "remotejdk17_linux_s390x_toolchain_config_repo",
-            "remotejdk17_macos_toolchain_config_repo": "remotejdk17_macos_toolchain_config_repo",
-            "remotejdk17_macos_aarch64_toolchain_config_repo": "remotejdk17_macos_aarch64_toolchain_config_repo",
-            "remotejdk17_win_toolchain_config_repo": "remotejdk17_win_toolchain_config_repo",
-            "remotejdk17_win_arm64_toolchain_config_repo": "remotejdk17_win_arm64_toolchain_config_repo",
-            "remotejdk21_linux_toolchain_config_repo": "remotejdk21_linux_toolchain_config_repo",
-            "remotejdk21_linux_aarch64_toolchain_config_repo": "remotejdk21_linux_aarch64_toolchain_config_repo",
-            "remotejdk21_macos_toolchain_config_repo": "remotejdk21_macos_toolchain_config_repo",
-            "remotejdk21_macos_aarch64_toolchain_config_repo": "remotejdk21_macos_aarch64_toolchain_config_repo",
-            "remotejdk21_win_toolchain_config_repo": "remotejdk21_win_toolchain_config_repo"
-          },
-          "devImports": [],
-          "tags": [],
-          "hasDevUseExtension": false,
-          "hasNonDevUseExtension": true
-        }
-      ],
-      "deps": {
-        "platforms": "platforms@0.0.7",
-        "rules_cc": "rules_cc@0.0.9",
-        "bazel_skylib": "bazel_skylib@1.3.0",
-        "rules_proto": "rules_proto@4.0.0",
-        "rules_license": "rules_license@0.0.7",
-        "bazel_tools": "bazel_tools@_",
-        "local_config_platform": "local_config_platform@_"
-      },
-      "repoSpec": {
-        "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl",
-        "ruleClassName": "http_archive",
-        "attributes": {
-          "name": "rules_java~7.1.0",
-          "urls": [
-            "https://github.com/bazelbuild/rules_java/releases/download/7.1.0/rules_java-7.1.0.tar.gz"
-          ],
-          "integrity": "sha256-o3pOX2OrgnFuXdau75iO2EYcegC46TYnImKJn1h81OE=",
-          "strip_prefix": "",
-          "remote_patches": {},
-          "remote_patch_strip": 0
-        }
-      }
-    },
-    "rules_license@0.0.7": {
-      "name": "rules_license",
-      "version": "0.0.7",
-      "key": "rules_license@0.0.7",
-      "repoName": "rules_license",
-      "executionPlatformsToRegister": [],
-      "toolchainsToRegister": [],
-      "extensionUsages": [],
-      "deps": {
-        "bazel_tools": "bazel_tools@_",
-        "local_config_platform": "local_config_platform@_"
-      },
-      "repoSpec": {
-        "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl",
-        "ruleClassName": "http_archive",
-        "attributes": {
-          "name": "rules_license~0.0.7",
-          "urls": [
-            "https://github.com/bazelbuild/rules_license/releases/download/0.0.7/rules_license-0.0.7.tar.gz"
-          ],
-          "integrity": "sha256-RTHezLkTY5ww5cdRKgVNXYdWmNrrddjPkPKEN1/nw2A=",
-          "strip_prefix": "",
-          "remote_patches": {},
-          "remote_patch_strip": 0
-        }
-      }
-    },
-    "rules_proto@4.0.0": {
-      "name": "rules_proto",
-      "version": "4.0.0",
-      "key": "rules_proto@4.0.0",
-      "repoName": "rules_proto",
-      "executionPlatformsToRegister": [],
-      "toolchainsToRegister": [],
-      "extensionUsages": [],
-      "deps": {
-        "bazel_skylib": "bazel_skylib@1.3.0",
-        "rules_cc": "rules_cc@0.0.9",
-        "bazel_tools": "bazel_tools@_",
-        "local_config_platform": "local_config_platform@_"
-      },
-      "repoSpec": {
-        "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl",
-        "ruleClassName": "http_archive",
-        "attributes": {
-          "name": "rules_proto~4.0.0",
-          "urls": [
-            "https://github.com/bazelbuild/rules_proto/archive/refs/tags/4.0.0.zip"
-          ],
-          "integrity": "sha256-Lr5z6xyuRA19pNtRYMGjKaynwQpck4H/lwYyVjyhoq4=",
-          "strip_prefix": "rules_proto-4.0.0",
-          "remote_patches": {
-            "https://bcr.bazel.build/modules/rules_proto/4.0.0/patches/module_dot_bazel.patch": "sha256-MclJO7tIAM2ElDAmscNId9pKTpOuDGHgVlW/9VBOIp0="
-          },
-          "remote_patch_strip": 0
-        }
-      }
-    },
-    "rules_python@0.4.0": {
-      "name": "rules_python",
-      "version": "0.4.0",
-      "key": "rules_python@0.4.0",
-      "repoName": "rules_python",
-      "executionPlatformsToRegister": [],
-      "toolchainsToRegister": [
-        "@bazel_tools//tools/python:autodetecting_toolchain"
-      ],
-      "extensionUsages": [
-        {
-          "extensionBzlFile": "@rules_python//bzlmod:extensions.bzl",
-          "extensionName": "pip_install",
-          "usingModule": "rules_python@0.4.0",
-          "location": {
-            "file": "https://bcr.bazel.build/modules/rules_python/0.4.0/MODULE.bazel",
-            "line": 7,
-            "column": 28
-          },
-          "imports": {
-            "pypi__click": "pypi__click",
-            "pypi__pip": "pypi__pip",
-            "pypi__pip_tools": "pypi__pip_tools",
-            "pypi__pkginfo": "pypi__pkginfo",
-            "pypi__setuptools": "pypi__setuptools",
-            "pypi__wheel": "pypi__wheel"
-          },
-          "devImports": [],
-          "tags": [],
-          "hasDevUseExtension": false,
-          "hasNonDevUseExtension": true
-        }
-      ],
-      "deps": {
-        "bazel_tools": "bazel_tools@_",
-        "local_config_platform": "local_config_platform@_"
-      },
-      "repoSpec": {
-        "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl",
-        "ruleClassName": "http_archive",
-        "attributes": {
-          "name": "rules_python~0.4.0",
-          "urls": [
-            "https://github.com/bazelbuild/rules_python/releases/download/0.4.0/rules_python-0.4.0.tar.gz"
-          ],
-          "integrity": "sha256-lUqom0kb5KCDMEosuDgBnIuMNyCnq7nEy4GseiQjDOo=",
-          "strip_prefix": "",
-          "remote_patches": {
-            "https://bcr.bazel.build/modules/rules_python/0.4.0/patches/propagate_pip_install_dependencies.patch": "sha256-v7S/dem/mixg63MF4KoRGDA4KEol9ab/tIVp+6Xq0D0=",
-            "https://bcr.bazel.build/modules/rules_python/0.4.0/patches/module_dot_bazel.patch": "sha256-kG4VIfWxQazzTuh50mvsx6pmyoRVA4lfH5rkto/Oq+Y="
-          },
-          "remote_patch_strip": 1
-        }
-      }
-    },
-    "platforms@0.0.7": {
-      "name": "platforms",
-      "version": "0.0.7",
-      "key": "platforms@0.0.7",
-      "repoName": "platforms",
-      "executionPlatformsToRegister": [],
-      "toolchainsToRegister": [],
-      "extensionUsages": [],
-      "deps": {
-        "rules_license": "rules_license@0.0.7",
-        "bazel_tools": "bazel_tools@_",
-        "local_config_platform": "local_config_platform@_"
-      },
-      "repoSpec": {
-        "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl",
-        "ruleClassName": "http_archive",
-        "attributes": {
-          "name": "platforms",
-          "urls": [
-            "https://github.com/bazelbuild/platforms/releases/download/0.0.7/platforms-0.0.7.tar.gz"
-          ],
-          "integrity": "sha256-OlYcmee9vpFzqmU/1Xn+hJ8djWc5V4CrR3Cx84FDHVE=",
-          "strip_prefix": "",
-          "remote_patches": {},
-          "remote_patch_strip": 0
-        }
-      }
-    },
-    "protobuf@3.19.6": {
-      "name": "protobuf",
-      "version": "3.19.6",
-      "key": "protobuf@3.19.6",
-      "repoName": "protobuf",
-      "executionPlatformsToRegister": [],
-      "toolchainsToRegister": [],
-      "extensionUsages": [],
-      "deps": {
-        "bazel_skylib": "bazel_skylib@1.3.0",
-        "zlib": "zlib@1.3",
-        "rules_python": "rules_python@0.4.0",
-        "rules_cc": "rules_cc@0.0.9",
-        "rules_proto": "rules_proto@4.0.0",
-        "rules_java": "rules_java@7.1.0",
-        "bazel_tools": "bazel_tools@_",
-        "local_config_platform": "local_config_platform@_"
-      },
-      "repoSpec": {
-        "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl",
-        "ruleClassName": "http_archive",
-        "attributes": {
-          "name": "protobuf~3.19.6",
-          "urls": [
-            "https://github.com/protocolbuffers/protobuf/archive/refs/tags/v3.19.6.zip"
-          ],
-          "integrity": "sha256-OH4sVZuyx8G8N5jE5s/wFTgaebJ1hpavy/johzC0c4k=",
-          "strip_prefix": "protobuf-3.19.6",
-          "remote_patches": {
-            "https://bcr.bazel.build/modules/protobuf/3.19.6/patches/relative_repo_names.patch": "sha256-w/5gw/zGv8NFId+669hcdw1Uus2lxgYpulATHIwIByI=",
-            "https://bcr.bazel.build/modules/protobuf/3.19.6/patches/remove_dependency_on_rules_jvm_external.patch": "sha256-THUTnVgEBmjA0W7fKzIyZOVG58DnW9HQTkr4D2zKUUc=",
-            "https://bcr.bazel.build/modules/protobuf/3.19.6/patches/add_module_dot_bazel_for_examples.patch": "sha256-s/b1gi3baK3LsXefI2rQilhmkb2R5jVJdnT6zEcdfHY=",
-            "https://bcr.bazel.build/modules/protobuf/3.19.6/patches/module_dot_bazel.patch": "sha256-S0DEni8zgx7rHscW3z/rCEubQnYec0XhNet640cw0h4="
-          },
-          "remote_patch_strip": 1
-        }
-      }
-    },
-    "zlib@1.3": {
-      "name": "zlib",
-      "version": "1.3",
-      "key": "zlib@1.3",
-      "repoName": "zlib",
-      "executionPlatformsToRegister": [],
-      "toolchainsToRegister": [],
-      "extensionUsages": [],
-      "deps": {
-        "platforms": "platforms@0.0.7",
-        "rules_cc": "rules_cc@0.0.9",
-        "bazel_tools": "bazel_tools@_",
-        "local_config_platform": "local_config_platform@_"
-      },
-      "repoSpec": {
-        "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl",
-        "ruleClassName": "http_archive",
-        "attributes": {
-          "name": "zlib~1.3",
-          "urls": [
-            "https://github.com/madler/zlib/releases/download/v1.3/zlib-1.3.tar.gz"
-          ],
-          "integrity": "sha256-/wukwpIBPbwnUws6geH5qBPNOd4Byl4Pi/NVcC76WT4=",
-          "strip_prefix": "zlib-1.3",
-          "remote_patches": {
-            "https://bcr.bazel.build/modules/zlib/1.3/patches/add_build_file.patch": "sha256-Ei+FYaaOo7A3jTKunMEodTI0Uw5NXQyZEcboMC8JskY=",
-            "https://bcr.bazel.build/modules/zlib/1.3/patches/module_dot_bazel.patch": "sha256-fPWLM+2xaF/kuy+kZc1YTfW6hNjrkG400Ho7gckuyJk="
-          },
-          "remote_patch_strip": 0
-        }
-      }
-    },
-    "apple_support@1.5.0": {
-      "name": "apple_support",
-      "version": "1.5.0",
-      "key": "apple_support@1.5.0",
-      "repoName": "build_bazel_apple_support",
-      "executionPlatformsToRegister": [],
-      "toolchainsToRegister": [
-        "@local_config_apple_cc_toolchains//:all"
-      ],
-      "extensionUsages": [
-        {
-          "extensionBzlFile": "@build_bazel_apple_support//crosstool:setup.bzl",
-          "extensionName": "apple_cc_configure_extension",
-          "usingModule": "apple_support@1.5.0",
-          "location": {
-            "file": "https://bcr.bazel.build/modules/apple_support/1.5.0/MODULE.bazel",
-            "line": 17,
-            "column": 35
-          },
-          "imports": {
-            "local_config_apple_cc": "local_config_apple_cc",
-            "local_config_apple_cc_toolchains": "local_config_apple_cc_toolchains"
-          },
-          "devImports": [],
-          "tags": [],
-          "hasDevUseExtension": false,
-          "hasNonDevUseExtension": true
-        }
-      ],
-      "deps": {
-        "bazel_skylib": "bazel_skylib@1.3.0",
-        "platforms": "platforms@0.0.7",
-        "bazel_tools": "bazel_tools@_",
-        "local_config_platform": "local_config_platform@_"
-      },
-      "repoSpec": {
-        "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl",
-        "ruleClassName": "http_archive",
-        "attributes": {
-          "name": "apple_support~1.5.0",
-          "urls": [
-            "https://github.com/bazelbuild/apple_support/releases/download/1.5.0/apple_support.1.5.0.tar.gz"
-          ],
-          "integrity": "sha256-miM41vja0yRPgj8txghKA+TQ+7J8qJLclw5okNW0gYQ=",
-          "strip_prefix": "",
-          "remote_patches": {},
-          "remote_patch_strip": 0
-        }
-      }
-    },
-    "bazel_skylib@1.3.0": {
-      "name": "bazel_skylib",
-      "version": "1.3.0",
-      "key": "bazel_skylib@1.3.0",
-      "repoName": "bazel_skylib",
-      "executionPlatformsToRegister": [],
-      "toolchainsToRegister": [
-        "//toolchains/unittest:cmd_toolchain",
-        "//toolchains/unittest:bash_toolchain"
-      ],
-      "extensionUsages": [],
-      "deps": {
-        "platforms": "platforms@0.0.7",
-        "bazel_tools": "bazel_tools@_",
-        "local_config_platform": "local_config_platform@_"
-      },
-      "repoSpec": {
-        "bzlFile": "@bazel_tools//tools/build_defs/repo:http.bzl",
-        "ruleClassName": "http_archive",
-        "attributes": {
-          "name": "bazel_skylib~1.3.0",
-          "urls": [
-            "https://github.com/bazelbuild/bazel-skylib/releases/download/1.3.0/bazel-skylib-1.3.0.tar.gz"
-          ],
-          "integrity": "sha256-dNVE2W9KW7Yw1GXKi7z+Ix41lOWq5X4e2/F6brPKJQY=",
-          "strip_prefix": "",
-          "remote_patches": {},
-          "remote_patch_strip": 0
-        }
-      }
-    }
+  "lockFileVersion": 16,
+  "registryFileHashes": {
+    "https://bcr.bazel.build/bazel_registry.json": "8a28e4aff06ee60aed2a8c281907fb8bcbf3b753c91fb5a5c57da3215d5b3497",
+    "https://bcr.bazel.build/modules/abseil-cpp/20210324.2/MODULE.bazel": "7cd0312e064fde87c8d1cd79ba06c876bd23630c83466e9500321be55c96ace2",
+    "https://bcr.bazel.build/modules/abseil-cpp/20211102.0/MODULE.bazel": "70390338f7a5106231d20620712f7cccb659cd0e9d073d1991c038eb9fc57589",
+    "https://bcr.bazel.build/modules/abseil-cpp/20220623.1/MODULE.bazel": "73ae41b6818d423a11fd79d95aedef1258f304448193d4db4ff90e5e7a0f076c",
+    "https://bcr.bazel.build/modules/abseil-cpp/20230125.1/MODULE.bazel": "89047429cb0207707b2dface14ba7f8df85273d484c2572755be4bab7ce9c3a0",
+    "https://bcr.bazel.build/modules/abseil-cpp/20230802.0.bcr.1/MODULE.bazel": "1c8cec495288dccd14fdae6e3f95f772c1c91857047a098fad772034264cc8cb",
+    "https://bcr.bazel.build/modules/abseil-cpp/20230802.0/MODULE.bazel": "d253ae36a8bd9ee3c5955384096ccb6baf16a1b1e93e858370da0a3b94f77c16",
+    "https://bcr.bazel.build/modules/abseil-cpp/20230802.1/MODULE.bazel": "fa92e2eb41a04df73cdabeec37107316f7e5272650f81d6cc096418fe647b915",
+    "https://bcr.bazel.build/modules/abseil-cpp/20240116.0/MODULE.bazel": "98dc378d64c12a4e4741ad3362f87fb737ee6a0886b2d90c3cdbb4d93ea3e0bf",
+    "https://bcr.bazel.build/modules/abseil-cpp/20240116.1/MODULE.bazel": "37bcdb4440fbb61df6a1c296ae01b327f19e9bb521f9b8e26ec854b6f97309ed",
+    "https://bcr.bazel.build/modules/abseil-cpp/20240116.2/MODULE.bazel": "73939767a4686cd9a520d16af5ab440071ed75cec1a876bf2fcfaf1f71987a16",
+    "https://bcr.bazel.build/modules/abseil-cpp/20240722.0/MODULE.bazel": "88668a07647adbdc14cb3a7cd116fb23c9dda37a90a1681590b6c9d8339a5b84",
+    "https://bcr.bazel.build/modules/abseil-cpp/20240722.0/source.json": "59af9f8a8a4817092624e21263fe1fb7d7951a3b06f0570c610c7e5a9caf5f29",
+    "https://bcr.bazel.build/modules/apple_support/1.15.1/MODULE.bazel": "a0556fefca0b1bb2de8567b8827518f94db6a6e7e7d632b4c48dc5f865bc7c85",
+    "https://bcr.bazel.build/modules/apple_support/1.15.1/source.json": "517f2b77430084c541bc9be2db63fdcbb7102938c5f64c17ee60ffda2e5cf07b",
+    "https://bcr.bazel.build/modules/bazel_features/1.1.0/MODULE.bazel": "cfd42ff3b815a5f39554d97182657f8c4b9719568eb7fded2b9135f084bf760b",
+    "https://bcr.bazel.build/modules/bazel_features/1.1.1/MODULE.bazel": "27b8c79ef57efe08efccbd9dd6ef70d61b4798320b8d3c134fd571f78963dbcd",
+    "https://bcr.bazel.build/modules/bazel_features/1.11.0/MODULE.bazel": "f9382337dd5a474c3b7d334c2f83e50b6eaedc284253334cf823044a26de03e8",
+    "https://bcr.bazel.build/modules/bazel_features/1.15.0/MODULE.bazel": "d38ff6e517149dc509406aca0db3ad1efdd890a85e049585b7234d04238e2a4d",
+    "https://bcr.bazel.build/modules/bazel_features/1.17.0/MODULE.bazel": "039de32d21b816b47bd42c778e0454217e9c9caac4a3cf8e15c7231ee3ddee4d",
+    "https://bcr.bazel.build/modules/bazel_features/1.18.0/MODULE.bazel": "1be0ae2557ab3a72a57aeb31b29be347bcdc5d2b1eb1e70f39e3851a7e97041a",
+    "https://bcr.bazel.build/modules/bazel_features/1.19.0/MODULE.bazel": "59adcdf28230d220f0067b1f435b8537dd033bfff8db21335ef9217919c7fb58",
+    "https://bcr.bazel.build/modules/bazel_features/1.21.0/MODULE.bazel": "675642261665d8eea09989aa3b8afb5c37627f1be178382c320d1b46afba5e3b",
+    "https://bcr.bazel.build/modules/bazel_features/1.21.0/source.json": "3e8379efaaef53ce35b7b8ba419df829315a880cb0a030e5bb45c96d6d5ecb5f",
+    "https://bcr.bazel.build/modules/bazel_features/1.3.0/MODULE.bazel": "cdcafe83ec318cda34e02948e81d790aab8df7a929cec6f6969f13a489ccecd9",
+    "https://bcr.bazel.build/modules/bazel_features/1.4.1/MODULE.bazel": "e45b6bb2350aff3e442ae1111c555e27eac1d915e77775f6fdc4b351b758b5d7",
+    "https://bcr.bazel.build/modules/bazel_features/1.9.1/MODULE.bazel": "8f679097876a9b609ad1f60249c49d68bfab783dd9be012faf9d82547b14815a",
+    "https://bcr.bazel.build/modules/bazel_skylib/1.0.3/MODULE.bazel": "bcb0fd896384802d1ad283b4e4eb4d718eebd8cb820b0a2c3a347fb971afd9d8",
+    "https://bcr.bazel.build/modules/bazel_skylib/1.1.1/MODULE.bazel": "1add3e7d93ff2e6998f9e118022c84d163917d912f5afafb3058e3d2f1545b5e",
+    "https://bcr.bazel.build/modules/bazel_skylib/1.2.0/MODULE.bazel": "44fe84260e454ed94ad326352a698422dbe372b21a1ac9f3eab76eb531223686",
+    "https://bcr.bazel.build/modules/bazel_skylib/1.2.1/MODULE.bazel": "f35baf9da0efe45fa3da1696ae906eea3d615ad41e2e3def4aeb4e8bc0ef9a7a",
+    "https://bcr.bazel.build/modules/bazel_skylib/1.3.0/MODULE.bazel": "20228b92868bf5cfc41bda7afc8a8ba2a543201851de39d990ec957b513579c5",
+    "https://bcr.bazel.build/modules/bazel_skylib/1.4.1/MODULE.bazel": "a0dcb779424be33100dcae821e9e27e4f2901d9dfd5333efe5ac6a8d7ab75e1d",
+    "https://bcr.bazel.build/modules/bazel_skylib/1.4.2/MODULE.bazel": "3bd40978e7a1fac911d5989e6b09d8f64921865a45822d8b09e815eaa726a651",
+    "https://bcr.bazel.build/modules/bazel_skylib/1.5.0/MODULE.bazel": "32880f5e2945ce6a03d1fbd588e9198c0a959bb42297b2cfaf1685b7bc32e138",
+    "https://bcr.bazel.build/modules/bazel_skylib/1.6.1/MODULE.bazel": "8fdee2dbaace6c252131c00e1de4b165dc65af02ea278476187765e1a617b917",
+    "https://bcr.bazel.build/modules/bazel_skylib/1.7.0/MODULE.bazel": "0db596f4563de7938de764cc8deeabec291f55e8ec15299718b93c4423e9796d",
+    "https://bcr.bazel.build/modules/bazel_skylib/1.7.1/MODULE.bazel": "3120d80c5861aa616222ec015332e5f8d3171e062e3e804a2a0253e1be26e59b",
+    "https://bcr.bazel.build/modules/bazel_skylib/1.7.1/source.json": "f121b43eeefc7c29efbd51b83d08631e2347297c95aac9764a701f2a6a2bb953",
+    "https://bcr.bazel.build/modules/boringssl/0.0.0-20211025-d4f1ab9/MODULE.bazel": "6ee6353f8b1a701fe2178e1d925034294971350b6d3ac37e67e5a7d463267834",
+    "https://bcr.bazel.build/modules/boringssl/0.0.0-20230215-5c22014/MODULE.bazel": "4b03dc0d04375fa0271174badcd202ed249870c8e895b26664fd7298abea7282",
+    "https://bcr.bazel.build/modules/boringssl/0.0.0-20240530-2db0eb3/MODULE.bazel": "d0405b762c5e87cd445b7015f2b8da5400ef9a8dbca0bfefa6c1cea79d528a97",
+    "https://bcr.bazel.build/modules/boringssl/0.20240913.0/MODULE.bazel": "fcaa7503a5213290831a91ed1eb538551cf11ac0bc3a6ad92d0fef92c5bd25fb",
+    "https://bcr.bazel.build/modules/boringssl/0.20241024.0/MODULE.bazel": "b540cff73d948cb79cb0bc108d7cef391d2098a25adabfda5043e4ef548dbc87",
+    "https://bcr.bazel.build/modules/boringssl/0.20241024.0/source.json": "d843092e682b84188c043ac742965d7f96e04c846c7e338187e03238674909a9",
+    "https://bcr.bazel.build/modules/buildozer/7.1.2/MODULE.bazel": "2e8dd40ede9c454042645fd8d8d0cd1527966aa5c919de86661e62953cd73d84",
+    "https://bcr.bazel.build/modules/buildozer/7.1.2/source.json": "c9028a501d2db85793a6996205c8de120944f50a0d570438fcae0457a5f9d1f8",
+    "https://bcr.bazel.build/modules/c-ares/1.15.0/MODULE.bazel": "ba0a78360fdc83f02f437a9e7df0532ad1fbaa59b722f6e715c11effebaa0166",
+    "https://bcr.bazel.build/modules/c-ares/1.15.0/source.json": "5e3ed991616c5ec4cc09b0893b29a19232de4a1830eb78c567121bfea87453f7",
+    "https://bcr.bazel.build/modules/cel-spec/0.15.0/MODULE.bazel": "e1eed53d233acbdcf024b4b0bc1528116d92c29713251b5154078ab1348cb600",
+    "https://bcr.bazel.build/modules/cel-spec/0.15.0/source.json": "ab7dccdf21ea2261c0f809b5a5221a4d7f8b580309f285fdf1444baaca75d44a",
+    "https://bcr.bazel.build/modules/civetweb/1.16/MODULE.bazel": "46a38f9daeb57392e3827fce7d40926be0c802bd23cdd6bfd3a96c804de42fae",
+    "https://bcr.bazel.build/modules/civetweb/1.16/source.json": "ba8b9585adb8355cb51b999d57172fd05e7a762c56b8d4bac6db42c99de3beb7",
+    "https://bcr.bazel.build/modules/curl/8.4.0/MODULE.bazel": "0bc250aa1cb69590049383df7a9537c809591fcf876c620f5f097c58fdc9bc10",
+    "https://bcr.bazel.build/modules/curl/8.7.1/MODULE.bazel": "088221c35a2939c555e6e47cb31a81c15f8b59f4daa8009b1e9271a502d33485",
+    "https://bcr.bazel.build/modules/curl/8.7.1/source.json": "bf9890e809717445b10a3ddc323b6d25c46631589c693a232df8310a25964484",
+    "https://bcr.bazel.build/modules/cython/3.0.11-1/MODULE.bazel": "868b3f5c956c3657420d2302004c6bb92606bfa47e314bab7f2ba0630c7c966c",
+    "https://bcr.bazel.build/modules/cython/3.0.11-1/source.json": "da318be900b8ca9c3d1018839d3bebc5a8e1645620d0848fa2c696d4ecf7c296",
+    "https://bcr.bazel.build/modules/envoy_api/0.0.0-20241214-918efc9/MODULE.bazel": "24e05f6f52f37be63a795192848555a2c8c855e7814dbc1ed419fb04a7005464",
+    "https://bcr.bazel.build/modules/envoy_api/0.0.0-20241214-918efc9/source.json": "212043ab69d87f7a04aa4f627f725b540cff5e145a3a31a9403d8b6ec2e920c9",
+    "https://bcr.bazel.build/modules/gazelle/0.27.0/MODULE.bazel": "3446abd608295de6d90b4a8a118ed64a9ce11dcb3dda2dc3290a22056bd20996",
+    "https://bcr.bazel.build/modules/gazelle/0.30.0/MODULE.bazel": "f888a1effe338491f35f0e0e85003b47bb9d8295ccba73c37e07702d8d31c65b",
+    "https://bcr.bazel.build/modules/gazelle/0.32.0/MODULE.bazel": "b499f58a5d0d3537f3cf5b76d8ada18242f64ec474d8391247438bf04f58c7b8",
+    "https://bcr.bazel.build/modules/gazelle/0.33.0/MODULE.bazel": "a13a0f279b462b784fb8dd52a4074526c4a2afe70e114c7d09066097a46b3350",
+    "https://bcr.bazel.build/modules/gazelle/0.34.0/MODULE.bazel": "abdd8ce4d70978933209db92e436deb3a8b737859e9354fb5fd11fb5c2004c8a",
+    "https://bcr.bazel.build/modules/gazelle/0.36.0/MODULE.bazel": "e375d5d6e9a6ca59b0cb38b0540bc9a05b6aa926d322f2de268ad267a2ee74c0",
+    "https://bcr.bazel.build/modules/gazelle/0.41.0/MODULE.bazel": "fdce8a8f5129d5b6d693d91cb191d0a014fdcb88e9094e528325a7165de2a826",
+    "https://bcr.bazel.build/modules/gazelle/0.41.0/source.json": "bc00c665344d775b5cae6064608262e0478789c523677d40eef8f85031c6bfda",
+    "https://bcr.bazel.build/modules/google_benchmark/1.8.2/MODULE.bazel": "a70cf1bba851000ba93b58ae2f6d76490a9feb74192e57ab8e8ff13c34ec50cb",
+    "https://bcr.bazel.build/modules/google_benchmark/1.8.4/MODULE.bazel": "c6d54a11dcf64ee63545f42561eda3fd94c1b5f5ebe1357011de63ae33739d5e",
+    "https://bcr.bazel.build/modules/google_benchmark/1.8.5/MODULE.bazel": "9ba9b31b984022828a950e3300410977eda2e35df35584c6b0b2d0c2e52766b7",
+    "https://bcr.bazel.build/modules/google_benchmark/1.8.5/source.json": "2c9c685f9b496f125b9e3a9c696c549d1ed2f33b75830a2fb6ac94fab23c0398",
+    "https://bcr.bazel.build/modules/googleapis/0.0.0-20240326-1c8d509c5/MODULE.bazel": "a4b7e46393c1cdcc5a00e6f85524467c48c565256b22b5fae20f84ab4a999a68",
+    "https://bcr.bazel.build/modules/googleapis/0.0.0-20240819-fe8ba054a/MODULE.bazel": "117b7c7be7327ed5d6c482274533f2dbd78631313f607094d4625c28203cacdf",
+    "https://bcr.bazel.build/modules/googleapis/0.0.0-20240819-fe8ba054a/source.json": "b31fc7eb283a83f71d2e5bfc3d1c562d2994198fa1278409fbe8caec3afc1d3e",
+    "https://bcr.bazel.build/modules/googletest/1.11.0/MODULE.bazel": "3a83f095183f66345ca86aa13c58b59f9f94a2f81999c093d4eeaa2d262d12f4",
+    "https://bcr.bazel.build/modules/googletest/1.14.0.bcr.1/MODULE.bazel": "22c31a561553727960057361aa33bf20fb2e98584bc4fec007906e27053f80c6",
+    "https://bcr.bazel.build/modules/googletest/1.14.0/MODULE.bazel": "cfbcbf3e6eac06ef9d85900f64424708cc08687d1b527f0ef65aa7517af8118f",
+    "https://bcr.bazel.build/modules/googletest/1.15.2/MODULE.bazel": "6de1edc1d26cafb0ea1a6ab3f4d4192d91a312fd2d360b63adaa213cd00b2108",
+    "https://bcr.bazel.build/modules/googletest/1.15.2/source.json": "dbdda654dcb3a0d7a8bc5d0ac5fc7e150b58c2a986025ae5bc634bb2cb61f470",
+    "https://bcr.bazel.build/modules/grpc-java/1.62.2/MODULE.bazel": "99b8771e8c7cacb130170fed2a10c9e8fed26334a93e73b42d2953250885a158",
+    "https://bcr.bazel.build/modules/grpc-java/1.66.0/MODULE.bazel": "86ff26209fac846adb89db11f3714b3dc0090fb2fb81575673cc74880cda4e7e",
+    "https://bcr.bazel.build/modules/grpc-java/1.69.0/MODULE.bazel": "53887af6a00b3b406d70175d3d07e84ea9362016ff55ea90b9185f0227bfaf98",
+    "https://bcr.bazel.build/modules/grpc-java/1.69.0/source.json": "daf42ef1f7a2b86d9178d288c5245802f9b6157adc302b2b05c8fd12cbd79659",
+    "https://bcr.bazel.build/modules/grpc-proto/0.0.0-20240627-ec30f58/MODULE.bazel": "88de79051e668a04726e9ea94a481ec6f1692086735fd6f488ab908b3b909238",
+    "https://bcr.bazel.build/modules/grpc-proto/0.0.0-20240627-ec30f58/source.json": "5035d379c61042930244ab59e750106d893ec440add92ec0df6a0098ca7f131d",
+    "https://bcr.bazel.build/modules/grpc/1.41.0/MODULE.bazel": "5bcbfc2b274dabea628f0649dc50c90cf36543b1cfc31624832538644ad1aae8",
+    "https://bcr.bazel.build/modules/grpc/1.56.3.bcr.1/MODULE.bazel": "cd5b1eb276b806ec5ab85032921f24acc51735a69ace781be586880af20ab33f",
+    "https://bcr.bazel.build/modules/grpc/1.62.1/MODULE.bazel": "2998211594b8a79a6b459c4e797cfa19f0fb8b3be3149760ec7b8c99abfd426f",
+    "https://bcr.bazel.build/modules/grpc/1.66.0.bcr.2/MODULE.bazel": "0fa2b0fd028ce354febf0fe90f1ed8fecfbfc33118cddd95ac0418cc283333a0",
+    "https://bcr.bazel.build/modules/grpc/1.66.0.bcr.3/MODULE.bazel": "f6047e89faf488f5e3e65cb2594c6f5e86992abec7487163ff6b623526e543b0",
+    "https://bcr.bazel.build/modules/grpc/1.69.0/MODULE.bazel": "4e26e05c9e1ef291ccbc96aad8e457b1b8abedbc141623831629da2f8168eef6",
+    "https://bcr.bazel.build/modules/grpc/1.69.0/source.json": "82e5cd0eeed569909ff42fd6946b813c8b69fc71a6b075ccebef224937e19215",
+    "https://bcr.bazel.build/modules/jsoncpp/1.9.5/MODULE.bazel": "31271aedc59e815656f5736f282bb7509a97c7ecb43e927ac1a37966e0578075",
+    "https://bcr.bazel.build/modules/jsoncpp/1.9.5/source.json": "4108ee5085dd2885a341c7fab149429db457b3169b86eb081fa245eadf69169d",
+    "https://bcr.bazel.build/modules/libpfm/4.11.0/MODULE.bazel": "45061ff025b301940f1e30d2c16bea596c25b176c8b6b3087e92615adbd52902",
+    "https://bcr.bazel.build/modules/libpfm/4.11.0/source.json": "caaffb3ac2b59b8aac456917a4ecf3167d40478ee79f15ab7a877ec9273937c9",
+    "https://bcr.bazel.build/modules/mbedtls/3.6.0/MODULE.bazel": "8e380e4698107c5f8766264d4df92e36766248447858db28187151d884995a09",
+    "https://bcr.bazel.build/modules/mbedtls/3.6.0/source.json": "1dbe7eb5258050afcc3806b9d43050f71c6f539ce0175535c670df606790b30c",
+    "https://bcr.bazel.build/modules/nlohmann_json/3.11.3/MODULE.bazel": "87023db2f55fc3a9949c7b08dc711fae4d4be339a80a99d04453c4bb3998eefc",
+    "https://bcr.bazel.build/modules/nlohmann_json/3.11.3/source.json": "296c63a90c6813e53b3812d24245711981fc7e563d98fe15625f55181494488a",
+    "https://bcr.bazel.build/modules/nlohmann_json/3.6.1/MODULE.bazel": "6f7b417dcc794d9add9e556673ad25cb3ba835224290f4f848f8e2db1e1fca74",
+    "https://bcr.bazel.build/modules/opencensus-cpp/0.0.0-20230502-50eb5de/MODULE.bazel": "02201d2921dadb4ec90c4980eca4b2a02904eddcf6fa02f3da7594fb7b0d821c",
+    "https://bcr.bazel.build/modules/opencensus-cpp/0.0.0-20230502-50eb5de/source.json": "f50efc07822f5425bd1d3e40e977484f9c0142463052717d40ec85cd6744243e",
+    "https://bcr.bazel.build/modules/opencensus-proto/0.4.1/MODULE.bazel": "4a2e8b4d0b544002502474d611a5a183aa282251e14f6a01afe841c0c1b10372",
+    "https://bcr.bazel.build/modules/opencensus-proto/0.4.1/source.json": "a7d956700a85b833c43fc61455c0e111ab75bab40768ed17a206ee18a2bbe38f",
+    "https://bcr.bazel.build/modules/opentelemetry-cpp/1.14.2/MODULE.bazel": "089a5613c2a159c7dfde098dabfc61e966889c7d6a81a98422a84c51535ed17d",
+    "https://bcr.bazel.build/modules/opentelemetry-cpp/1.16.0/MODULE.bazel": "b7379a140f538cea3f749179a2d481ed81942cc6f7b05a6113723eb34ac3b3e7",
+    "https://bcr.bazel.build/modules/opentelemetry-cpp/1.16.0/source.json": "da0cf667713b1e48d7f8912b100b4e0a8284c8a95717af5eb8c830d699e61cf5",
+    "https://bcr.bazel.build/modules/opentelemetry-proto/1.1.0/MODULE.bazel": "a49f406e99bf05ab43ed4f5b3322fbd33adfd484b6546948929d1316299b68bf",
+    "https://bcr.bazel.build/modules/opentelemetry-proto/1.3.1/MODULE.bazel": "0141a50e989576ee064c11ce8dd5ec89993525bd9f9a09c5618e4dacc8df9352",
+    "https://bcr.bazel.build/modules/opentelemetry-proto/1.4.0.bcr.1/MODULE.bazel": "5ceaf25e11170d22eded4c8032728b4a3f273765fccda32f9e94f463755c4167",
+    "https://bcr.bazel.build/modules/opentelemetry-proto/1.4.0.bcr.1/source.json": "fb9e01517460cfad8bafab082f2e1508d3cc2b7ed700cff19f3c7c84b146e5eb",
+    "https://bcr.bazel.build/modules/opentracing-cpp/1.6.0/MODULE.bazel": "b3925269f63561b8b880ae7cf62ccf81f6ece55b62cd791eda9925147ae116ec",
+    "https://bcr.bazel.build/modules/opentracing-cpp/1.6.0/source.json": "da1cb1add160f5e5074b7272e9db6fd8f1b3336c15032cd0a653af9d2f484aed",
+    "https://bcr.bazel.build/modules/platforms/0.0.10/MODULE.bazel": "8cb8efaf200bdeb2150d93e162c40f388529a25852b332cec879373771e48ed5",
+    "https://bcr.bazel.build/modules/platforms/0.0.10/source.json": "f22828ff4cf021a6b577f1bf6341cb9dcd7965092a439f64fc1bb3b7a5ae4bd5",
+    "https://bcr.bazel.build/modules/platforms/0.0.4/MODULE.bazel": "9b328e31ee156f53f3c416a64f8491f7eb731742655a47c9eec4703a71644aee",
+    "https://bcr.bazel.build/modules/platforms/0.0.5/MODULE.bazel": "5733b54ea419d5eaf7997054bb55f6a1d0b5ff8aedf0176fef9eea44f3acda37",
+    "https://bcr.bazel.build/modules/platforms/0.0.6/MODULE.bazel": "ad6eeef431dc52aefd2d77ed20a4b353f8ebf0f4ecdd26a807d2da5aa8cd0615",
+    "https://bcr.bazel.build/modules/platforms/0.0.7/MODULE.bazel": "72fd4a0ede9ee5c021f6a8dd92b503e089f46c227ba2813ff183b71616034814",
+    "https://bcr.bazel.build/modules/platforms/0.0.8/MODULE.bazel": "9f142c03e348f6d263719f5074b21ef3adf0b139ee4c5133e2aa35664da9eb2d",
+    "https://bcr.bazel.build/modules/platforms/0.0.9/MODULE.bazel": "4a87a60c927b56ddd67db50c89acaa62f4ce2a1d2149ccb63ffd871d5ce29ebc",
+    "https://bcr.bazel.build/modules/prometheus-cpp/1.2.4/MODULE.bazel": "0fbe5dcff66311947a3f6b86ebc6a6d9328e31a28413ca864debc4a043f371e5",
+    "https://bcr.bazel.build/modules/prometheus-cpp/1.3.0/MODULE.bazel": "ce82e086bbc0b60267e970f6a54b2ca6d0f22d3eb6633e00e2cc2899c700f3d8",
+    "https://bcr.bazel.build/modules/prometheus-cpp/1.3.0/source.json": "8cb66b4e535afc718e9d104a3db96ccb71a42ee816a100e50fd0d5ac843c0606",
+    "https://bcr.bazel.build/modules/protobuf/21.7/MODULE.bazel": "a5a29bb89544f9b97edce05642fac225a808b5b7be74038ea3640fae2f8e66a7",
+    "https://bcr.bazel.build/modules/protobuf/23.1/MODULE.bazel": "88b393b3eb4101d18129e5db51847cd40a5517a53e81216144a8c32dfeeca52a",
+    "https://bcr.bazel.build/modules/protobuf/24.4/MODULE.bazel": "7bc7ce5f2abf36b3b7b7c8218d3acdebb9426aeb35c2257c96445756f970eb12",
+    "https://bcr.bazel.build/modules/protobuf/26.0.bcr.1/MODULE.bazel": "8f04d38c2da40a3715ff6bdce4d32c5981e6432557571482d43a62c31a24c2cf",
+    "https://bcr.bazel.build/modules/protobuf/26.0.bcr.2/MODULE.bazel": "62e0b84ca727bdeb55a6fe1ef180e6b191bbe548a58305ea1426c158067be534",
+    "https://bcr.bazel.build/modules/protobuf/26.0/MODULE.bazel": "8402da964092af40097f4a205eec2a33fd4a7748dc43632b7d1629bfd9a2b856",
+    "https://bcr.bazel.build/modules/protobuf/27.0-rc2/MODULE.bazel": "b2b0dbafd57b6bec0ca9b251da02e628c357dab53a097570aa7d79d020f107cf",
+    "https://bcr.bazel.build/modules/protobuf/27.0/MODULE.bazel": "7873b60be88844a0a1d8f80b9d5d20cfbd8495a689b8763e76c6372998d3f64c",
+    "https://bcr.bazel.build/modules/protobuf/27.1/MODULE.bazel": "703a7b614728bb06647f965264967a8ef1c39e09e8f167b3ca0bb1fd80449c0d",
+    "https://bcr.bazel.build/modules/protobuf/29.0-rc2/MODULE.bazel": "6241d35983510143049943fc0d57937937122baf1b287862f9dc8590fc4c37df",
+    "https://bcr.bazel.build/modules/protobuf/29.0/MODULE.bazel": "319dc8bf4c679ff87e71b1ccfb5a6e90a6dbc4693501d471f48662ac46d04e4e",
+    "https://bcr.bazel.build/modules/protobuf/29.3/MODULE.bazel": "77480eea5fb5541903e49683f24dc3e09f4a79e0eea247414887bb9fc0066e94",
+    "https://bcr.bazel.build/modules/protobuf/29.3/source.json": "c460e6550ddd24996232c7542ebf201f73c4e01d2183a31a041035fb50f19681",
+    "https://bcr.bazel.build/modules/protobuf/3.19.0/MODULE.bazel": "6b5fbb433f760a99a22b18b6850ed5784ef0e9928a72668b66e4d7ccd47db9b0",
+    "https://bcr.bazel.build/modules/protobuf/3.19.2/MODULE.bazel": "532ffe5f2186b69fdde039efe6df13ba726ff338c6bc82275ad433013fa10573",
+    "https://bcr.bazel.build/modules/protobuf/3.19.6/MODULE.bazel": "9233edc5e1f2ee276a60de3eaa47ac4132302ef9643238f23128fea53ea12858",
+    "https://bcr.bazel.build/modules/protoc-gen-validate/1.0.4.bcr.2/MODULE.bazel": "c4bd2c850211ff5b7dadf9d2d0496c1c922fdedc303c775b01dfd3b3efc907ed",
+    "https://bcr.bazel.build/modules/protoc-gen-validate/1.0.4.bcr.2/source.json": "4cc97f70b521890798058600a927ce4b0def8ee84ff2a5aa632aabcb4234aa0b",
+    "https://bcr.bazel.build/modules/protoc-gen-validate/1.0.4/MODULE.bazel": "b8913c154b16177990f6126d2d2477d187f9ddc568e95ee3e2d50fc65d2c494a",
+    "https://bcr.bazel.build/modules/pybind11_bazel/2.11.1/MODULE.bazel": "88af1c246226d87e65be78ed49ecd1e6f5e98648558c14ce99176da041dc378e",
+    "https://bcr.bazel.build/modules/pybind11_bazel/2.12.0/MODULE.bazel": "e6f4c20442eaa7c90d7190d8dc539d0ab422f95c65a57cc59562170c58ae3d34",
+    "https://bcr.bazel.build/modules/pybind11_bazel/2.12.0/source.json": "6900fdc8a9e95866b8c0d4ad4aba4d4236317b5c1cd04c502df3f0d33afed680",
+    "https://bcr.bazel.build/modules/rapidjson/1.1.0.bcr.20241007/MODULE.bazel": "82fbcb2e42f9e0040e76ccc74c06c3e46dfd33c64ca359293f8b84df0e6dff4c",
+    "https://bcr.bazel.build/modules/rapidjson/1.1.0.bcr.20241007/source.json": "5c42389ad0e21fc06b95ad7c0b730008271624a2fa3292e0eab5f30e15adeee3",
+    "https://bcr.bazel.build/modules/re2/2021-09-01/MODULE.bazel": "bcb6b96f3b071e6fe2d8bed9cc8ada137a105f9d2c5912e91d27528b3d123833",
+    "https://bcr.bazel.build/modules/re2/2023-09-01/MODULE.bazel": "cb3d511531b16cfc78a225a9e2136007a48cf8a677e4264baeab57fe78a80206",
+    "https://bcr.bazel.build/modules/re2/2024-05-01/MODULE.bazel": "55a3f059538f381107824e7d00df5df6d061ba1fb80e874e4909c0f0549e8f3e",
+    "https://bcr.bazel.build/modules/re2/2024-07-02/MODULE.bazel": "0eadc4395959969297cbcf31a249ff457f2f1d456228c67719480205aa306daa",
+    "https://bcr.bazel.build/modules/re2/2024-07-02/source.json": "547d0111a9d4f362db32196fef805abbf3676e8d6afbe44d395d87816c1130ca",
+    "https://bcr.bazel.build/modules/rules_android/0.1.1/MODULE.bazel": "48809ab0091b07ad0182defb787c4c5328bd3a278938415c00a7b69b50c4d3a8",
+    "https://bcr.bazel.build/modules/rules_android/0.1.1/source.json": "e6986b41626ee10bdc864937ffb6d6bf275bb5b9c65120e6137d56e6331f089e",
+    "https://bcr.bazel.build/modules/rules_apple/3.5.1/MODULE.bazel": "3d1bbf65ad3692003d36d8a29eff54d4e5c1c5f4bfb60f79e28646a924d9101c",
+    "https://bcr.bazel.build/modules/rules_apple/3.5.1/source.json": "e7593cdf26437d35dbda64faeaf5b82cbdd9df72674b0f041fdde75c1d20dda7",
+    "https://bcr.bazel.build/modules/rules_cc/0.0.1/MODULE.bazel": "cb2aa0747f84c6c3a78dad4e2049c154f08ab9d166b1273835a8174940365647",
+    "https://bcr.bazel.build/modules/rules_cc/0.0.10/MODULE.bazel": "ec1705118f7eaedd6e118508d3d26deba2a4e76476ada7e0e3965211be012002",
+    "https://bcr.bazel.build/modules/rules_cc/0.0.13/MODULE.bazel": "0e8529ed7b323dad0775ff924d2ae5af7640b23553dfcd4d34344c7e7a867191",
+    "https://bcr.bazel.build/modules/rules_cc/0.0.14/MODULE.bazel": "5e343a3aac88b8d7af3b1b6d2093b55c347b8eefc2e7d1442f7a02dc8fea48ac",
+    "https://bcr.bazel.build/modules/rules_cc/0.0.15/MODULE.bazel": "6704c35f7b4a72502ee81f61bf88706b54f06b3cbe5558ac17e2e14666cd5dcc",
+    "https://bcr.bazel.build/modules/rules_cc/0.0.16/MODULE.bazel": "7661303b8fc1b4d7f532e54e9d6565771fea666fbdf839e0a86affcd02defe87",
+    "https://bcr.bazel.build/modules/rules_cc/0.0.16/source.json": "227e83737046aa4f50015da48e98e0d8ab42fd0ec74d8d653b6cc9f9a357f200",
+    "https://bcr.bazel.build/modules/rules_cc/0.0.2/MODULE.bazel": "6915987c90970493ab97393024c156ea8fb9f3bea953b2f3ec05c34f19b5695c",
+    "https://bcr.bazel.build/modules/rules_cc/0.0.5/MODULE.bazel": "be41f87587998fe8890cd82ea4e848ed8eb799e053c224f78f3ff7fe1a1d9b74",
+    "https://bcr.bazel.build/modules/rules_cc/0.0.6/MODULE.bazel": "abf360251023dfe3efcef65ab9d56beefa8394d4176dd29529750e1c57eaa33f",
+    "https://bcr.bazel.build/modules/rules_cc/0.0.8/MODULE.bazel": "964c85c82cfeb6f3855e6a07054fdb159aced38e99a5eecf7bce9d53990afa3e",
+    "https://bcr.bazel.build/modules/rules_cc/0.0.9/MODULE.bazel": "836e76439f354b89afe6a911a7adf59a6b2518fafb174483ad78a2a2fde7b1c5",
+    "https://bcr.bazel.build/modules/rules_foreign_cc/0.10.1/MODULE.bazel": "b9527010e5fef060af92b6724edb3691970a5b1f76f74b21d39f7d433641be60",
+    "https://bcr.bazel.build/modules/rules_foreign_cc/0.10.1/source.json": "9300e71df0cdde0952f10afff1401fa664e9fc5d9ae6204660ba1b158d90d6a6",
+    "https://bcr.bazel.build/modules/rules_foreign_cc/0.9.0/MODULE.bazel": "c9e8c682bf75b0e7c704166d79b599f93b72cfca5ad7477df596947891feeef6",
+    "https://bcr.bazel.build/modules/rules_fuzzing/0.5.2/MODULE.bazel": "40c97d1144356f52905566c55811f13b299453a14ac7769dfba2ac38192337a8",
+    "https://bcr.bazel.build/modules/rules_fuzzing/0.5.2/source.json": "c8b1e2c717646f1702290959a3302a178fb639d987ab61d548105019f11e527e",
+    "https://bcr.bazel.build/modules/rules_go/0.33.0/MODULE.bazel": "a2b11b64cd24bf94f57454f53288a5dacfe6cb86453eee7761b7637728c1910c",
+    "https://bcr.bazel.build/modules/rules_go/0.38.1/MODULE.bazel": "fb8e73dd3b6fc4ff9d260ceacd830114891d49904f5bda1c16bc147bcc254f71",
+    "https://bcr.bazel.build/modules/rules_go/0.39.1/MODULE.bazel": "d34fb2a249403a5f4339c754f1e63dc9e5ad70b47c5e97faee1441fc6636cd61",
+    "https://bcr.bazel.build/modules/rules_go/0.41.0/MODULE.bazel": "55861d8e8bb0e62cbd2896f60ff303f62ffcb0eddb74ecb0e5c0cbe36fc292c8",
+    "https://bcr.bazel.build/modules/rules_go/0.42.0/MODULE.bazel": "8cfa875b9aa8c6fce2b2e5925e73c1388173ea3c32a0db4d2b4804b453c14270",
+    "https://bcr.bazel.build/modules/rules_go/0.45.1/MODULE.bazel": "6d7884f0edf890024eba8ab31a621faa98714df0ec9d512389519f0edff0281a",
+    "https://bcr.bazel.build/modules/rules_go/0.46.0/MODULE.bazel": "3477df8bdcc49e698b9d25f734c4f3a9f5931ff34ee48a2c662be168f5f2d3fd",
+    "https://bcr.bazel.build/modules/rules_go/0.48.0/MODULE.bazel": "d00ebcae0908ee3f5e6d53f68677a303d6d59a77beef879598700049c3980a03",
+    "https://bcr.bazel.build/modules/rules_go/0.50.1/MODULE.bazel": "b91a308dc5782bb0a8021ad4330c81fea5bda77f96b9e4c117b9b9c8f6665ee0",
+    "https://bcr.bazel.build/modules/rules_go/0.51.0/MODULE.bazel": "b6920f505935bfd69381651c942496d99b16e2a12f3dd5263b90ded16f3b4d0f",
+    "https://bcr.bazel.build/modules/rules_go/0.51.0/source.json": "473c0263360b1ae3aca71758e001d257a638620b2e2a36e3a2721fdae04377ec",
+    "https://bcr.bazel.build/modules/rules_java/4.0.0/MODULE.bazel": "5a78a7ae82cd1a33cef56dc578c7d2a46ed0dca12643ee45edbb8417899e6f74",
+    "https://bcr.bazel.build/modules/rules_java/5.1.0/MODULE.bazel": "324b6478b0343a3ce7a9add8586ad75d24076d6d43d2f622990b9c1cfd8a1b15",
+    "https://bcr.bazel.build/modules/rules_java/5.3.5/MODULE.bazel": "a4ec4f2db570171e3e5eb753276ee4b389bae16b96207e9d3230895c99644b86",
+    "https://bcr.bazel.build/modules/rules_java/5.5.0/MODULE.bazel": "486ad1aa15cdc881af632b4b1448b0136c76025a1fe1ad1b65c5899376b83a50",
+    "https://bcr.bazel.build/modules/rules_java/6.0.0/MODULE.bazel": "8a43b7df601a7ec1af61d79345c17b31ea1fedc6711fd4abfd013ea612978e39",
+    "https://bcr.bazel.build/modules/rules_java/6.3.0/MODULE.bazel": "a97c7678c19f236a956ad260d59c86e10a463badb7eb2eda787490f4c969b963",
+    "https://bcr.bazel.build/modules/rules_java/6.4.0/MODULE.bazel": "e986a9fe25aeaa84ac17ca093ef13a4637f6107375f64667a15999f77db6c8f6",
+    "https://bcr.bazel.build/modules/rules_java/6.5.2/MODULE.bazel": "1d440d262d0e08453fa0c4d8f699ba81609ed0e9a9a0f02cd10b3e7942e61e31",
+    "https://bcr.bazel.build/modules/rules_java/7.1.0/MODULE.bazel": "30d9135a2b6561c761bd67bd4990da591e6bdc128790ce3e7afd6a3558b2fb64",
+    "https://bcr.bazel.build/modules/rules_java/7.10.0/MODULE.bazel": "530c3beb3067e870561739f1144329a21c851ff771cd752a49e06e3dc9c2e71a",
+    "https://bcr.bazel.build/modules/rules_java/7.12.2/MODULE.bazel": "579c505165ee757a4280ef83cda0150eea193eed3bef50b1004ba88b99da6de6",
+    "https://bcr.bazel.build/modules/rules_java/7.2.0/MODULE.bazel": "06c0334c9be61e6cef2c8c84a7800cef502063269a5af25ceb100b192453d4ab",
+    "https://bcr.bazel.build/modules/rules_java/7.3.2/MODULE.bazel": "50dece891cfdf1741ea230d001aa9c14398062f2b7c066470accace78e412bc2",
+    "https://bcr.bazel.build/modules/rules_java/7.4.0/MODULE.bazel": "a592852f8a3dd539e82ee6542013bf2cadfc4c6946be8941e189d224500a8934",
+    "https://bcr.bazel.build/modules/rules_java/7.6.1/MODULE.bazel": "2f14b7e8a1aa2f67ae92bc69d1ec0fa8d9f827c4e17ff5e5f02e91caa3b2d0fe",
+    "https://bcr.bazel.build/modules/rules_java/8.6.1/MODULE.bazel": "f4808e2ab5b0197f094cabce9f4b006a27766beb6a9975931da07099560ca9c2",
+    "https://bcr.bazel.build/modules/rules_java/8.6.1/source.json": "f18d9ad3c4c54945bf422ad584fa6c5ca5b3116ff55a5b1bc77e5c1210be5960",
+    "https://bcr.bazel.build/modules/rules_jvm_external/4.4.2/MODULE.bazel": "a56b85e418c83eb1839819f0b515c431010160383306d13ec21959ac412d2fe7",
+    "https://bcr.bazel.build/modules/rules_jvm_external/5.1/MODULE.bazel": "33f6f999e03183f7d088c9be518a63467dfd0be94a11d0055fe2d210f89aa909",
+    "https://bcr.bazel.build/modules/rules_jvm_external/5.2/MODULE.bazel": "d9351ba35217ad0de03816ef3ed63f89d411349353077348a45348b096615036",
+    "https://bcr.bazel.build/modules/rules_jvm_external/5.3/MODULE.bazel": "bf93870767689637164657731849fb887ad086739bd5d360d90007a581d5527d",
+    "https://bcr.bazel.build/modules/rules_jvm_external/6.0/MODULE.bazel": "37c93a5a78d32e895d52f86a8d0416176e915daabd029ccb5594db422e87c495",
+    "https://bcr.bazel.build/modules/rules_jvm_external/6.1/MODULE.bazel": "75b5fec090dbd46cf9b7d8ea08cf84a0472d92ba3585b476f44c326eda8059c4",
+    "https://bcr.bazel.build/modules/rules_jvm_external/6.3/MODULE.bazel": "c998e060b85f71e00de5ec552019347c8bca255062c990ac02d051bb80a38df0",
+    "https://bcr.bazel.build/modules/rules_jvm_external/6.3/source.json": "6f5f5a5a4419ae4e37c35a5bb0a6ae657ed40b7abc5a5189111b47fcebe43197",
+    "https://bcr.bazel.build/modules/rules_kotlin/1.9.0/MODULE.bazel": "ef85697305025e5a61f395d4eaede272a5393cee479ace6686dba707de804d59",
+    "https://bcr.bazel.build/modules/rules_kotlin/1.9.6/MODULE.bazel": "d269a01a18ee74d0335450b10f62c9ed81f2321d7958a2934e44272fe82dcef3",
+    "https://bcr.bazel.build/modules/rules_kotlin/1.9.6/source.json": "2faa4794364282db7c06600b7e5e34867a564ae91bda7cae7c29c64e9466b7d5",
+    "https://bcr.bazel.build/modules/rules_license/0.0.3/MODULE.bazel": "627e9ab0247f7d1e05736b59dbb1b6871373de5ad31c3011880b4133cafd4bd0",
+    "https://bcr.bazel.build/modules/rules_license/0.0.7/MODULE.bazel": "088fbeb0b6a419005b89cf93fe62d9517c0a2b8bb56af3244af65ecfe37e7d5d",
+    "https://bcr.bazel.build/modules/rules_license/1.0.0/MODULE.bazel": "a7fda60eefdf3d8c827262ba499957e4df06f659330bbe6cdbdb975b768bb65c",
+    "https://bcr.bazel.build/modules/rules_license/1.0.0/source.json": "a52c89e54cc311196e478f8382df91c15f7a2bfdf4c6cd0e2675cc2ff0b56efb",
+    "https://bcr.bazel.build/modules/rules_pkg/0.7.0/MODULE.bazel": "df99f03fc7934a4737122518bb87e667e62d780b610910f0447665a7e2be62dc",
+    "https://bcr.bazel.build/modules/rules_pkg/1.0.1/MODULE.bazel": "5b1df97dbc29623bccdf2b0dcd0f5cb08e2f2c9050aab1092fd39a41e82686ff",
+    "https://bcr.bazel.build/modules/rules_pkg/1.0.1/source.json": "bd82e5d7b9ce2d31e380dd9f50c111d678c3bdaca190cb76b0e1c71b05e1ba8a",
+    "https://bcr.bazel.build/modules/rules_proto/4.0.0/MODULE.bazel": "a7a7b6ce9bee418c1a760b3d84f83a299ad6952f9903c67f19e4edd964894e06",
+    "https://bcr.bazel.build/modules/rules_proto/5.3.0-21.7/MODULE.bazel": "e8dff86b0971688790ae75528fe1813f71809b5afd57facb44dad9e8eca631b7",
+    "https://bcr.bazel.build/modules/rules_proto/6.0.0-rc1/MODULE.bazel": "1e5b502e2e1a9e825eef74476a5a1ee524a92297085015a052510b09a1a09483",
+    "https://bcr.bazel.build/modules/rules_proto/6.0.0/MODULE.bazel": "b531d7f09f58dce456cd61b4579ce8c86b38544da75184eadaf0a7cb7966453f",
+    "https://bcr.bazel.build/modules/rules_proto/6.0.2/MODULE.bazel": "ce916b775a62b90b61888052a416ccdda405212b6aaeb39522f7dc53431a5e73",
+    "https://bcr.bazel.build/modules/rules_proto/7.0.2/MODULE.bazel": "bf81793bd6d2ad89a37a40693e56c61b0ee30f7a7fdbaf3eabbf5f39de47dea2",
+    "https://bcr.bazel.build/modules/rules_proto/7.0.2/source.json": "1e5e7260ae32ef4f2b52fd1d0de8d03b606a44c91b694d2f1afb1d3b28a48ce1",
+    "https://bcr.bazel.build/modules/rules_python/0.10.2/MODULE.bazel": "cc82bc96f2997baa545ab3ce73f196d040ffb8756fd2d66125a530031cd90e5f",
+    "https://bcr.bazel.build/modules/rules_python/0.20.0/MODULE.bazel": "bfe14d17f20e3fe900b9588f526f52c967a6f281e47a1d6b988679bd15082286",
+    "https://bcr.bazel.build/modules/rules_python/0.22.0/MODULE.bazel": "b8057bafa11a9e0f4b08fc3b7cd7bee0dcbccea209ac6fc9a3ff051cd03e19e9",
+    "https://bcr.bazel.build/modules/rules_python/0.22.1/MODULE.bazel": "26114f0c0b5e93018c0c066d6673f1a2c3737c7e90af95eff30cfee38d0bbac7",
+    "https://bcr.bazel.build/modules/rules_python/0.23.1/MODULE.bazel": "49ffccf0511cb8414de28321f5fcf2a31312b47c40cc21577144b7447f2bf300",
+    "https://bcr.bazel.build/modules/rules_python/0.25.0/MODULE.bazel": "72f1506841c920a1afec76975b35312410eea3aa7b63267436bfb1dd91d2d382",
+    "https://bcr.bazel.build/modules/rules_python/0.28.0/MODULE.bazel": "cba2573d870babc976664a912539b320cbaa7114cd3e8f053c720171cde331ed",
+    "https://bcr.bazel.build/modules/rules_python/0.29.0/MODULE.bazel": "2ac8cd70524b4b9ec49a0b8284c79e4cd86199296f82f6e0d5da3f783d660c82",
+    "https://bcr.bazel.build/modules/rules_python/0.31.0/MODULE.bazel": "93a43dc47ee570e6ec9f5779b2e64c1476a6ce921c48cc9a1678a91dd5f8fd58",
+    "https://bcr.bazel.build/modules/rules_python/0.33.2/MODULE.bazel": "3e036c4ad8d804a4dad897d333d8dce200d943df4827cb849840055be8d2e937",
+    "https://bcr.bazel.build/modules/rules_python/0.37.1/MODULE.bazel": "3faeb2d9fa0a81f8980643ee33f212308f4d93eea4b9ce6f36d0b742e71e9500",
+    "https://bcr.bazel.build/modules/rules_python/0.4.0/MODULE.bazel": "9208ee05fd48bf09ac60ed269791cf17fb343db56c8226a720fbb1cdf467166c",
+    "https://bcr.bazel.build/modules/rules_python/0.40.0/MODULE.bazel": "9d1a3cd88ed7d8e39583d9ffe56ae8a244f67783ae89b60caafc9f5cf318ada7",
+    "https://bcr.bazel.build/modules/rules_python/0.40.0/source.json": "939d4bd2e3110f27bfb360292986bb79fd8dcefb874358ccd6cdaa7bda029320",
+    "https://bcr.bazel.build/modules/rules_shell/0.2.0/MODULE.bazel": "fda8a652ab3c7d8fee214de05e7a9916d8b28082234e8d2c0094505c5268ed3c",
+    "https://bcr.bazel.build/modules/rules_shell/0.3.0/MODULE.bazel": "de4402cd12f4cc8fda2354fce179fdb068c0b9ca1ec2d2b17b3e21b24c1a937b",
+    "https://bcr.bazel.build/modules/rules_shell/0.3.0/source.json": "c55ed591aa5009401ddf80ded9762ac32c358d2517ee7820be981e2de9756cf3",
+    "https://bcr.bazel.build/modules/rules_swift/1.18.0/MODULE.bazel": "a6aba73625d0dc64c7b4a1e831549b6e375fbddb9d2dde9d80c9de6ec45b24c9",
+    "https://bcr.bazel.build/modules/rules_swift/1.18.0/source.json": "9e636cabd446f43444ea2662341a9cbb74ecd87ab0557225ae73f1127cb7ff52",
+    "https://bcr.bazel.build/modules/stardoc/0.5.1/MODULE.bazel": "1a05d92974d0c122f5ccf09291442580317cdd859f07a8655f1db9a60374f9f8",
+    "https://bcr.bazel.build/modules/stardoc/0.5.3/MODULE.bazel": "c7f6948dae6999bf0db32c1858ae345f112cacf98f174c7a8bb707e41b974f1c",
+    "https://bcr.bazel.build/modules/stardoc/0.5.6/MODULE.bazel": "c43dabc564990eeab55e25ed61c07a1aadafe9ece96a4efabb3f8bf9063b71ef",
+    "https://bcr.bazel.build/modules/stardoc/0.6.2/MODULE.bazel": "7060193196395f5dd668eda046ccbeacebfd98efc77fed418dbe2b82ffaa39fd",
+    "https://bcr.bazel.build/modules/stardoc/0.7.0/MODULE.bazel": "05e3d6d30c099b6770e97da986c53bd31844d7f13d41412480ea265ac9e8079c",
+    "https://bcr.bazel.build/modules/stardoc/0.7.1/MODULE.bazel": "3548faea4ee5dda5580f9af150e79d0f6aea934fc60c1cc50f4efdd9420759e7",
+    "https://bcr.bazel.build/modules/stardoc/0.7.1/source.json": "b6500ffcd7b48cd72c29bb67bcac781e12701cc0d6d55d266a652583cfcdab01",
+    "https://bcr.bazel.build/modules/upb/0.0.0-20211020-160625a/MODULE.bazel": "6cced416be2dc5b9c05efd5b997049ba795e5e4e6fafbe1624f4587767638928",
+    "https://bcr.bazel.build/modules/upb/0.0.0-20220923-a547704/MODULE.bazel": "7298990c00040a0e2f121f6c32544bab27d4452f80d9ce51349b1a28f3005c43",
+    "https://bcr.bazel.build/modules/upb/0.0.0-20230516-61a97ef/MODULE.bazel": "c0df5e35ad55e264160417fd0875932ee3c9dda63d9fccace35ac62f45e1b6f9",
+    "https://bcr.bazel.build/modules/upb/0.0.0-20230907-e7430e6/MODULE.bazel": "3a7dedadf70346e678dc059dbe44d05cbf3ab17f1ce43a1c7a42edc7cbf93fd9",
+    "https://bcr.bazel.build/modules/xds/0.0.0-20240423-555b57e/MODULE.bazel": "cea509976a77e34131411684ef05a1d6ad194dd71a8d5816643bc5b0af16dc0f",
+    "https://bcr.bazel.build/modules/xds/0.0.0-20240423-555b57e/source.json": "7227e1fcad55f3f3cab1a08691ecd753cb29cc6380a47bc650851be9f9ad6d20",
+    "https://bcr.bazel.build/modules/zlib/1.2.11/MODULE.bazel": "07b389abc85fdbca459b69e2ec656ae5622873af3f845e1c9d80fe179f3effa0",
+    "https://bcr.bazel.build/modules/zlib/1.2.12/MODULE.bazel": "3b1a8834ada2a883674be8cbd36ede1b6ec481477ada359cd2d3ddc562340b27",
+    "https://bcr.bazel.build/modules/zlib/1.2.13/MODULE.bazel": "aa6deb1b83c18ffecd940c4119aff9567cd0a671d7bba756741cb2ef043a29d5",
+    "https://bcr.bazel.build/modules/zlib/1.3.1.bcr.1/MODULE.bazel": "6a9fe6e3fc865715a7be9823ce694ceb01e364c35f7a846bf0d2b34762bc066b",
+    "https://bcr.bazel.build/modules/zlib/1.3.1.bcr.3/MODULE.bazel": "af322bc08976524477c79d1e45e241b6efbeb918c497e8840b8ab116802dda79",
+    "https://bcr.bazel.build/modules/zlib/1.3.1.bcr.3/source.json": "2be409ac3c7601245958cd4fcdff4288be79ed23bd690b4b951f500d54ee6e7d",
+    "https://bcr.bazel.build/modules/zlib/1.3.1/MODULE.bazel": "751c9940dcfe869f5f7274e1295422a34623555916eb98c174c1e945594bf198",
+    "https://bcr.bazel.build/modules/zlib/1.3/MODULE.bazel": "6a9c02f19a24dcedb05572b2381446e27c272cd383aed11d41d99da9e3167a72"
   },
+  "selectedYankedVersions": {},
   "moduleExtensions": {
-    "@@apple_support~1.5.0//crosstool:setup.bzl%apple_cc_configure_extension": {
+    "@@apple_support+//crosstool:setup.bzl%apple_cc_configure_extension": {
       "general": {
-        "bzlTransitiveDigest": "pMLFCYaRPkgXPQ8vtuNkMfiHfPmRBy6QJfnid4sWfv0=",
-        "accumulatedFileDigests": {},
+        "bzlTransitiveDigest": "pd/h9zu+PbVBnRwZ3tnvvnAydlf0zxd9Ov95CD7vJIM=",
+        "usagesDigest": "yAC1H7cg3wkisnNswc7hxM2fAxrH04yqn7CXVasZPgc=",
+        "recordedFileInputs": {},
+        "recordedDirentsInputs": {},
         "envVariables": {},
         "generatedRepoSpecs": {
-          "local_config_apple_cc": {
-            "bzlFile": "@@apple_support~1.5.0//crosstool:setup.bzl",
-            "ruleClassName": "_apple_cc_autoconf",
-            "attributes": {
-              "name": "apple_support~1.5.0~apple_cc_configure_extension~local_config_apple_cc"
-            }
-          },
           "local_config_apple_cc_toolchains": {
-            "bzlFile": "@@apple_support~1.5.0//crosstool:setup.bzl",
-            "ruleClassName": "_apple_cc_autoconf_toolchains",
-            "attributes": {
-              "name": "apple_support~1.5.0~apple_cc_configure_extension~local_config_apple_cc_toolchains"
-            }
+            "repoRuleId": "@@apple_support+//crosstool:setup.bzl%_apple_cc_autoconf_toolchains",
+            "attributes": {}
+          },
+          "local_config_apple_cc": {
+            "repoRuleId": "@@apple_support+//crosstool:setup.bzl%_apple_cc_autoconf",
+            "attributes": {}
           }
         },
         "recordedRepoMappingEntries": [
           [
-            "apple_support~1.5.0",
+            "apple_support+",
             "bazel_tools",
             "bazel_tools"
-          ]
-        ]
-      }
-    },
-    "@@bazel_tools//tools/cpp:cc_configure.bzl%cc_configure_extension": {
-      "general": {
-        "bzlTransitiveDigest": "mcsWHq3xORJexV5/4eCvNOLxFOQKV6eli3fkr+tEaqE=",
-        "accumulatedFileDigests": {},
-        "envVariables": {},
-        "generatedRepoSpecs": {
-          "local_config_cc": {
-            "bzlFile": "@@bazel_tools//tools/cpp:cc_configure.bzl",
-            "ruleClassName": "cc_autoconf",
-            "attributes": {
-              "name": "bazel_tools~cc_configure_extension~local_config_cc"
-            }
-          },
-          "local_config_cc_toolchains": {
-            "bzlFile": "@@bazel_tools//tools/cpp:cc_configure.bzl",
-            "ruleClassName": "cc_autoconf_toolchains",
-            "attributes": {
-              "name": "bazel_tools~cc_configure_extension~local_config_cc_toolchains"
-            }
-          }
-        },
-        "recordedRepoMappingEntries": [
+          ],
           [
             "bazel_tools",
-            "bazel_tools",
-            "bazel_tools"
+            "rules_cc",
+            "rules_cc+"
           ]
         ]
       }
     },
-    "@@bazel_tools//tools/osx:xcode_configure.bzl%xcode_configure_extension": {
+    "@@googleapis+//:extensions.bzl%switched_rules": {
       "general": {
-        "bzlTransitiveDigest": "Qh2bWTU6QW6wkrd87qrU4YeY+SG37Nvw3A0PR4Y0L2Y=",
-        "accumulatedFileDigests": {},
+        "bzlTransitiveDigest": "vG6fuTzXD8MMvHWZEQud0MMH7eoC4GXY0va7VrFFh04=",
+        "usagesDigest": "DUo2RRz7jYoF7ioQN9YVzDHmoyje8eVbJOIz080D0Sc=",
+        "recordedFileInputs": {},
+        "recordedDirentsInputs": {},
         "envVariables": {},
         "generatedRepoSpecs": {
-          "local_config_xcode": {
-            "bzlFile": "@@bazel_tools//tools/osx:xcode_configure.bzl",
-            "ruleClassName": "xcode_autoconf",
-            "attributes": {
-              "name": "bazel_tools~xcode_configure_extension~local_config_xcode",
-              "xcode_locator": "@bazel_tools//tools/osx:xcode_locator.m",
-              "remote_xcode": ""
+          "com_google_googleapis_imports": {
+            "repoRuleId": "@@googleapis+//:repository_rules.bzl%switched_rules",
+            "attributes": {
+              "rules": {
+                "proto_library_with_info": [
+                  "",
+                  ""
+                ],
+                "moved_proto_library": [
+                  "",
+                  ""
+                ],
+                "java_proto_library": [
+                  "",
+                  ""
+                ],
+                "java_grpc_library": [
+                  "",
+                  ""
+                ],
+                "java_gapic_library": [
+                  "",
+                  ""
+                ],
+                "java_gapic_test": [
+                  "",
+                  ""
+                ],
+                "java_gapic_assembly_gradle_pkg": [
+                  "",
+                  ""
+                ],
+                "py_proto_library": [
+                  "",
+                  ""
+                ],
+                "py_grpc_library": [
+                  "",
+                  ""
+                ],
+                "py_gapic_library": [
+                  "",
+                  ""
+                ],
+                "py_test": [
+                  "",
+                  ""
+                ],
+                "py_gapic_assembly_pkg": [
+                  "",
+                  ""
+                ],
+                "py_import": [
+                  "",
+                  ""
+                ],
+                "go_proto_library": [
+                  "",
+                  ""
+                ],
+                "go_grpc_library": [
+                  "",
+                  ""
+                ],
+                "go_library": [
+                  "",
+                  ""
+                ],
+                "go_test": [
+                  "",
+                  ""
+                ],
+                "go_gapic_library": [
+                  "",
+                  ""
+                ],
+                "go_gapic_assembly_pkg": [
+                  "",
+                  ""
+                ],
+                "cc_proto_library": [
+                  "",
+                  ""
+                ],
+                "cc_grpc_library": [
+                  "",
+                  ""
+                ],
+                "cc_gapic_library": [
+                  "",
+                  ""
+                ],
+                "php_proto_library": [
+                  "",
+                  "php_proto_library"
+                ],
+                "php_grpc_library": [
+                  "",
+                  "php_grpc_library"
+                ],
+                "php_gapic_library": [
+                  "",
+                  "php_gapic_library"
+                ],
+                "php_gapic_assembly_pkg": [
+                  "",
+                  "php_gapic_assembly_pkg"
+                ],
+                "nodejs_gapic_library": [
+                  "",
+                  "typescript_gapic_library"
+                ],
+                "nodejs_gapic_assembly_pkg": [
+                  "",
+                  "typescript_gapic_assembly_pkg"
+                ],
+                "ruby_proto_library": [
+                  "",
+                  ""
+                ],
+                "ruby_grpc_library": [
+                  "",
+                  ""
+                ],
+                "ruby_ads_gapic_library": [
+                  "",
+                  ""
+                ],
+                "ruby_cloud_gapic_library": [
+                  "",
+                  ""
+                ],
+                "ruby_gapic_assembly_pkg": [
+                  "",
+                  ""
+                ],
+                "csharp_proto_library": [
+                  "",
+                  ""
+                ],
+                "csharp_grpc_library": [
+                  "",
+                  ""
+                ],
+                "csharp_gapic_library": [
+                  "",
+                  ""
+                ],
+                "csharp_gapic_assembly_pkg": [
+                  "",
+                  ""
+                ]
+              }
             }
           }
         },
         "recordedRepoMappingEntries": []
       }
     },
-    "@@bazel_tools//tools/sh:sh_configure.bzl%sh_configure_extension": {
+    "@@platforms//host:extension.bzl%host_platform": {
       "general": {
-        "bzlTransitiveDigest": "hp4NgmNjEg5+xgvzfh6L83bt9/aiiWETuNpwNuF1MSU=",
-        "accumulatedFileDigests": {},
+        "bzlTransitiveDigest": "xelQcPZH8+tmuOHVjL9vDxMnnQNMlwj0SlvgoqBkm4U=",
+        "usagesDigest": "SeQiIN/f8/Qt9vYQk7qcXp4I4wJeEC0RnQDiaaJ4tb8=",
+        "recordedFileInputs": {},
+        "recordedDirentsInputs": {},
         "envVariables": {},
         "generatedRepoSpecs": {
-          "local_config_sh": {
-            "bzlFile": "@@bazel_tools//tools/sh:sh_configure.bzl",
-            "ruleClassName": "sh_config",
-            "attributes": {
-              "name": "bazel_tools~sh_configure_extension~local_config_sh"
-            }
+          "host_platform": {
+            "repoRuleId": "@@platforms//host:extension.bzl%host_platform_repo",
+            "attributes": {}
           }
         },
         "recordedRepoMappingEntries": []
       }
     },
-    "@@rules_java~7.1.0//java:extensions.bzl%toolchains": {
+    "@@rules_foreign_cc+//foreign_cc:extensions.bzl%tools": {
       "general": {
-        "bzlTransitiveDigest": "D02GmifxnV/IhYgspsJMDZ/aE8HxAjXgek5gi6FSto4=",
-        "accumulatedFileDigests": {},
+        "bzlTransitiveDigest": "FApcIcVN43WOEs7g8eg7Cy1hrfRbVNEoUu8IiF+8WOc=",
+        "usagesDigest": "9LXdVp01HkdYQT8gYPjYLO6VLVJHo9uFfxWaU1ymiRE=",
+        "recordedFileInputs": {},
+        "recordedDirentsInputs": {},
         "envVariables": {},
         "generatedRepoSpecs": {
-          "remotejdk21_linux_toolchain_config_repo": {
-            "bzlFile": "@@rules_java~7.1.0//toolchains:remote_java_repository.bzl",
-            "ruleClassName": "_toolchain_config",
-            "attributes": {
-              "name": "rules_java~7.1.0~toolchains~remotejdk21_linux_toolchain_config_repo",
-              "build_file": "\nconfig_setting(\n    name = \"prefix_version_setting\",\n    values = {\"java_runtime_version\": \"remotejdk_21\"},\n    visibility = [\"//visibility:private\"],\n)\nconfig_setting(\n    name = \"version_setting\",\n    values = {\"java_runtime_version\": \"21\"},\n    visibility = [\"//visibility:private\"],\n)\nalias(\n    name = \"version_or_prefix_version_setting\",\n    actual = select({\n        \":version_setting\": \":version_setting\",\n        \"//conditions:default\": \":prefix_version_setting\",\n    }),\n    visibility = [\"//visibility:private\"],\n)\ntoolchain(\n    name = \"toolchain\",\n    target_compatible_with = [\"@platforms//os:linux\", \"@platforms//cpu:x86_64\"],\n    target_settings = [\":version_or_prefix_version_setting\"],\n    toolchain_type = \"@bazel_tools//tools/jdk:runtime_toolchain_type\",\n    toolchain = \"@remotejdk21_linux//:jdk\",\n)\ntoolchain(\n    name = \"bootstrap_runtime_toolchain\",\n    # These constraints are not required for correctness, but prevent fetches of remote JDK for\n    # different architectures. As every Java compilation toolchain depends on a bootstrap runtime in\n    # the same configuration, this constraint will not result in toolchain resolution failures.\n    exec_compatible_with = [\"@platforms//os:linux\", \"@platforms//cpu:x86_64\"],\n    target_settings = [\":version_or_prefix_version_setting\"],\n    toolchain_type = \"@bazel_tools//tools/jdk:bootstrap_runtime_toolchain_type\",\n    toolchain = \"@remotejdk21_linux//:jdk\",\n)\n"
-            }
-          },
-          "remotejdk17_linux_s390x_toolchain_config_repo": {
-            "bzlFile": "@@rules_java~7.1.0//toolchains:remote_java_repository.bzl",
-            "ruleClassName": "_toolchain_config",
-            "attributes": {
-              "name": "rules_java~7.1.0~toolchains~remotejdk17_linux_s390x_toolchain_config_repo",
-              "build_file": "\nconfig_setting(\n    name = \"prefix_version_setting\",\n    values = {\"java_runtime_version\": \"remotejdk_17\"},\n    visibility = [\"//visibility:private\"],\n)\nconfig_setting(\n    name = \"version_setting\",\n    values = {\"java_runtime_version\": \"17\"},\n    visibility = [\"//visibility:private\"],\n)\nalias(\n    name = \"version_or_prefix_version_setting\",\n    actual = select({\n        \":version_setting\": \":version_setting\",\n        \"//conditions:default\": \":prefix_version_setting\",\n    }),\n    visibility = [\"//visibility:private\"],\n)\ntoolchain(\n    name = \"toolchain\",\n    target_compatible_with = [\"@platforms//os:linux\", \"@platforms//cpu:s390x\"],\n    target_settings = [\":version_or_prefix_version_setting\"],\n    toolchain_type = \"@bazel_tools//tools/jdk:runtime_toolchain_type\",\n    toolchain = \"@remotejdk17_linux_s390x//:jdk\",\n)\ntoolchain(\n    name = \"bootstrap_runtime_toolchain\",\n    # These constraints are not required for correctness, but prevent fetches of remote JDK for\n    # different architectures. As every Java compilation toolchain depends on a bootstrap runtime in\n    # the same configuration, this constraint will not result in toolchain resolution failures.\n    exec_compatible_with = [\"@platforms//os:linux\", \"@platforms//cpu:s390x\"],\n    target_settings = [\":version_or_prefix_version_setting\"],\n    toolchain_type = \"@bazel_tools//tools/jdk:bootstrap_runtime_toolchain_type\",\n    toolchain = \"@remotejdk17_linux_s390x//:jdk\",\n)\n"
-            }
-          },
-          "remotejdk17_macos_toolchain_config_repo": {
-            "bzlFile": "@@rules_java~7.1.0//toolchains:remote_java_repository.bzl",
-            "ruleClassName": "_toolchain_config",
-            "attributes": {
-              "name": "rules_java~7.1.0~toolchains~remotejdk17_macos_toolchain_config_repo",
-              "build_file": "\nconfig_setting(\n    name = \"prefix_version_setting\",\n    values = {\"java_runtime_version\": \"remotejdk_17\"},\n    visibility = [\"//visibility:private\"],\n)\nconfig_setting(\n    name = \"version_setting\",\n    values = {\"java_runtime_version\": \"17\"},\n    visibility = [\"//visibility:private\"],\n)\nalias(\n    name = \"version_or_prefix_version_setting\",\n    actual = select({\n        \":version_setting\": \":version_setting\",\n        \"//conditions:default\": \":prefix_version_setting\",\n    }),\n    visibility = [\"//visibility:private\"],\n)\ntoolchain(\n    name = \"toolchain\",\n    target_compatible_with = [\"@platforms//os:macos\", \"@platforms//cpu:x86_64\"],\n    target_settings = [\":version_or_prefix_version_setting\"],\n    toolchain_type = \"@bazel_tools//tools/jdk:runtime_toolchain_type\",\n    toolchain = \"@remotejdk17_macos//:jdk\",\n)\ntoolchain(\n    name = \"bootstrap_runtime_toolchain\",\n    # These constraints are not required for correctness, but prevent fetches of remote JDK for\n    # different architectures. As every Java compilation toolchain depends on a bootstrap runtime in\n    # the same configuration, this constraint will not result in toolchain resolution failures.\n    exec_compatible_with = [\"@platforms//os:macos\", \"@platforms//cpu:x86_64\"],\n    target_settings = [\":version_or_prefix_version_setting\"],\n    toolchain_type = \"@bazel_tools//tools/jdk:bootstrap_runtime_toolchain_type\",\n    toolchain = \"@remotejdk17_macos//:jdk\",\n)\n"
-            }
-          },
-          "remotejdk21_macos_aarch64_toolchain_config_repo": {
-            "bzlFile": "@@rules_java~7.1.0//toolchains:remote_java_repository.bzl",
-            "ruleClassName": "_toolchain_config",
+          "rules_foreign_cc_framework_toolchain_linux": {
+            "repoRuleId": "@@rules_foreign_cc+//foreign_cc/private/framework:toolchain.bzl%framework_toolchain_repository",
             "attributes": {
-              "name": "rules_java~7.1.0~toolchains~remotejdk21_macos_aarch64_toolchain_config_repo",
-              "build_file": "\nconfig_setting(\n    name = \"prefix_version_setting\",\n    values = {\"java_runtime_version\": \"remotejdk_21\"},\n    visibility = [\"//visibility:private\"],\n)\nconfig_setting(\n    name = \"version_setting\",\n    values = {\"java_runtime_version\": \"21\"},\n    visibility = [\"//visibility:private\"],\n)\nalias(\n    name = \"version_or_prefix_version_setting\",\n    actual = select({\n        \":version_setting\": \":version_setting\",\n        \"//conditions:default\": \":prefix_version_setting\",\n    }),\n    visibility = [\"//visibility:private\"],\n)\ntoolchain(\n    name = \"toolchain\",\n    target_compatible_with = [\"@platforms//os:macos\", \"@platforms//cpu:aarch64\"],\n    target_settings = [\":version_or_prefix_version_setting\"],\n    toolchain_type = \"@bazel_tools//tools/jdk:runtime_toolchain_type\",\n    toolchain = \"@remotejdk21_macos_aarch64//:jdk\",\n)\ntoolchain(\n    name = \"bootstrap_runtime_toolchain\",\n    # These constraints are not required for correctness, but prevent fetches of remote JDK for\n    # different architectures. As every Java compilation toolchain depends on a bootstrap runtime in\n    # the same configuration, this constraint will not result in toolchain resolution failures.\n    exec_compatible_with = [\"@platforms//os:macos\", \"@platforms//cpu:aarch64\"],\n    target_settings = [\":version_or_prefix_version_setting\"],\n    toolchain_type = \"@bazel_tools//tools/jdk:bootstrap_runtime_toolchain_type\",\n    toolchain = \"@remotejdk21_macos_aarch64//:jdk\",\n)\n"
-            }
-          },
-          "remotejdk17_linux_aarch64_toolchain_config_repo": {
-            "bzlFile": "@@rules_java~7.1.0//toolchains:remote_java_repository.bzl",
-            "ruleClassName": "_toolchain_config",
-            "attributes": {
-              "name": "rules_java~7.1.0~toolchains~remotejdk17_linux_aarch64_toolchain_config_repo",
-              "build_file": "\nconfig_setting(\n    name = \"prefix_version_setting\",\n    values = {\"java_runtime_version\": \"remotejdk_17\"},\n    visibility = [\"//visibility:private\"],\n)\nconfig_setting(\n    name = \"version_setting\",\n    values = {\"java_runtime_version\": \"17\"},\n    visibility = [\"//visibility:private\"],\n)\nalias(\n    name = \"version_or_prefix_version_setting\",\n    actual = select({\n        \":version_setting\": \":version_setting\",\n        \"//conditions:default\": \":prefix_version_setting\",\n    }),\n    visibility = [\"//visibility:private\"],\n)\ntoolchain(\n    name = \"toolchain\",\n    target_compatible_with = [\"@platforms//os:linux\", \"@platforms//cpu:aarch64\"],\n    target_settings = [\":version_or_prefix_version_setting\"],\n    toolchain_type = \"@bazel_tools//tools/jdk:runtime_toolchain_type\",\n    toolchain = \"@remotejdk17_linux_aarch64//:jdk\",\n)\ntoolchain(\n    name = \"bootstrap_runtime_toolchain\",\n    # These constraints are not required for correctness, but prevent fetches of remote JDK for\n    # different architectures. As every Java compilation toolchain depends on a bootstrap runtime in\n    # the same configuration, this constraint will not result in toolchain resolution failures.\n    exec_compatible_with = [\"@platforms//os:linux\", \"@platforms//cpu:aarch64\"],\n    target_settings = [\":version_or_prefix_version_setting\"],\n    toolchain_type = \"@bazel_tools//tools/jdk:bootstrap_runtime_toolchain_type\",\n    toolchain = \"@remotejdk17_linux_aarch64//:jdk\",\n)\n"
-            }
-          },
-          "remotejdk21_macos_aarch64": {
-            "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
-            "ruleClassName": "http_archive",
-            "attributes": {
-              "name": "rules_java~7.1.0~toolchains~remotejdk21_macos_aarch64",
-              "build_file_content": "load(\"@rules_java//java:defs.bzl\", \"java_runtime\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\nexports_files([\"WORKSPACE\", \"BUILD.bazel\"])\n\nfilegroup(\n    name = \"jre\",\n    srcs = glob(\n        [\n            \"jre/bin/**\",\n            \"jre/lib/**\",\n        ],\n        allow_empty = True,\n        # In some configurations, Java browser plugin is considered harmful and\n        # common antivirus software blocks access to npjp2.dll interfering with Bazel,\n        # so do not include it in JRE on Windows.\n        exclude = [\"jre/bin/plugin2/**\"],\n    ),\n)\n\nfilegroup(\n    name = \"jdk-bin\",\n    srcs = glob(\n        [\"bin/**\"],\n        # The JDK on Windows sometimes contains a directory called\n        # \"%systemroot%\", which is not a valid label.\n        exclude = [\"**/*%*/**\"],\n    ),\n)\n\n# This folder holds security policies.\nfilegroup(\n    name = \"jdk-conf\",\n    srcs = glob(\n        [\"conf/**\"],\n        allow_empty = True,\n    ),\n)\n\nfilegroup(\n    name = \"jdk-include\",\n    srcs = glob(\n        [\"include/**\"],\n        allow_empty = True,\n    ),\n)\n\nfilegroup(\n    name = \"jdk-lib\",\n    srcs = glob(\n        [\"lib/**\", \"release\"],\n        allow_empty = True,\n        exclude = [\n            \"lib/missioncontrol/**\",\n            \"lib/visualvm/**\",\n        ],\n    ),\n)\n\njava_runtime(\n    name = \"jdk\",\n    srcs = [\n        \":jdk-bin\",\n        \":jdk-conf\",\n        \":jdk-include\",\n        \":jdk-lib\",\n        \":jre\",\n    ],\n    # Provide the 'java` binary explicitly so that the correct path is used by\n    # Bazel even when the host platform differs from the execution platform.\n    # Exactly one of the two globs will be empty depending on the host platform.\n    # When --incompatible_disallow_empty_glob is enabled, each individual empty\n    # glob will fail without allow_empty = True, even if the overall result is\n    # non-empty.\n    java = glob([\"bin/java.exe\", \"bin/java\"], allow_empty = True)[0],\n    version = 21,\n)\n",
-              "sha256": "2a7a99a3ea263dbd8d32a67d1e6e363ba8b25c645c826f5e167a02bbafaff1fa",
-              "strip_prefix": "zulu21.28.85-ca-jdk21.0.0-macosx_aarch64",
-              "urls": [
-                "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu21.28.85-ca-jdk21.0.0-macosx_aarch64.tar.gz",
-                "https://cdn.azul.com/zulu/bin/zulu21.28.85-ca-jdk21.0.0-macosx_aarch64.tar.gz"
+              "commands_src": "@rules_foreign_cc//foreign_cc/private/framework/toolchains:linux_commands.bzl",
+              "exec_compatible_with": [
+                "@platforms//os:linux"
               ]
             }
           },
-          "remotejdk17_linux_toolchain_config_repo": {
-            "bzlFile": "@@rules_java~7.1.0//toolchains:remote_java_repository.bzl",
-            "ruleClassName": "_toolchain_config",
+          "rules_foreign_cc_framework_toolchain_freebsd": {
+            "repoRuleId": "@@rules_foreign_cc+//foreign_cc/private/framework:toolchain.bzl%framework_toolchain_repository",
             "attributes": {
-              "name": "rules_java~7.1.0~toolchains~remotejdk17_linux_toolchain_config_repo",
-              "build_file": "\nconfig_setting(\n    name = \"prefix_version_setting\",\n    values = {\"java_runtime_version\": \"remotejdk_17\"},\n    visibility = [\"//visibility:private\"],\n)\nconfig_setting(\n    name = \"version_setting\",\n    values = {\"java_runtime_version\": \"17\"},\n    visibility = [\"//visibility:private\"],\n)\nalias(\n    name = \"version_or_prefix_version_setting\",\n    actual = select({\n        \":version_setting\": \":version_setting\",\n        \"//conditions:default\": \":prefix_version_setting\",\n    }),\n    visibility = [\"//visibility:private\"],\n)\ntoolchain(\n    name = \"toolchain\",\n    target_compatible_with = [\"@platforms//os:linux\", \"@platforms//cpu:x86_64\"],\n    target_settings = [\":version_or_prefix_version_setting\"],\n    toolchain_type = \"@bazel_tools//tools/jdk:runtime_toolchain_type\",\n    toolchain = \"@remotejdk17_linux//:jdk\",\n)\ntoolchain(\n    name = \"bootstrap_runtime_toolchain\",\n    # These constraints are not required for correctness, but prevent fetches of remote JDK for\n    # different architectures. As every Java compilation toolchain depends on a bootstrap runtime in\n    # the same configuration, this constraint will not result in toolchain resolution failures.\n    exec_compatible_with = [\"@platforms//os:linux\", \"@platforms//cpu:x86_64\"],\n    target_settings = [\":version_or_prefix_version_setting\"],\n    toolchain_type = \"@bazel_tools//tools/jdk:bootstrap_runtime_toolchain_type\",\n    toolchain = \"@remotejdk17_linux//:jdk\",\n)\n"
-            }
-          },
-          "remotejdk17_macos_aarch64": {
-            "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
-            "ruleClassName": "http_archive",
-            "attributes": {
-              "name": "rules_java~7.1.0~toolchains~remotejdk17_macos_aarch64",
-              "build_file_content": "load(\"@rules_java//java:defs.bzl\", \"java_runtime\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\nexports_files([\"WORKSPACE\", \"BUILD.bazel\"])\n\nfilegroup(\n    name = \"jre\",\n    srcs = glob(\n        [\n            \"jre/bin/**\",\n            \"jre/lib/**\",\n        ],\n        allow_empty = True,\n        # In some configurations, Java browser plugin is considered harmful and\n        # common antivirus software blocks access to npjp2.dll interfering with Bazel,\n        # so do not include it in JRE on Windows.\n        exclude = [\"jre/bin/plugin2/**\"],\n    ),\n)\n\nfilegroup(\n    name = \"jdk-bin\",\n    srcs = glob(\n        [\"bin/**\"],\n        # The JDK on Windows sometimes contains a directory called\n        # \"%systemroot%\", which is not a valid label.\n        exclude = [\"**/*%*/**\"],\n    ),\n)\n\n# This folder holds security policies.\nfilegroup(\n    name = \"jdk-conf\",\n    srcs = glob(\n        [\"conf/**\"],\n        allow_empty = True,\n    ),\n)\n\nfilegroup(\n    name = \"jdk-include\",\n    srcs = glob(\n        [\"include/**\"],\n        allow_empty = True,\n    ),\n)\n\nfilegroup(\n    name = \"jdk-lib\",\n    srcs = glob(\n        [\"lib/**\", \"release\"],\n        allow_empty = True,\n        exclude = [\n            \"lib/missioncontrol/**\",\n            \"lib/visualvm/**\",\n        ],\n    ),\n)\n\njava_runtime(\n    name = \"jdk\",\n    srcs = [\n        \":jdk-bin\",\n        \":jdk-conf\",\n        \":jdk-include\",\n        \":jdk-lib\",\n        \":jre\",\n    ],\n    # Provide the 'java` binary explicitly so that the correct path is used by\n    # Bazel even when the host platform differs from the execution platform.\n    # Exactly one of the two globs will be empty depending on the host platform.\n    # When --incompatible_disallow_empty_glob is enabled, each individual empty\n    # glob will fail without allow_empty = True, even if the overall result is\n    # non-empty.\n    java = glob([\"bin/java.exe\", \"bin/java\"], allow_empty = True)[0],\n    version = 17,\n)\n",
-              "sha256": "314b04568ec0ae9b36ba03c9cbd42adc9e1265f74678923b19297d66eb84dcca",
-              "strip_prefix": "zulu17.44.53-ca-jdk17.0.8.1-macosx_aarch64",
-              "urls": [
-                "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu17.44.53-ca-jdk17.0.8.1-macosx_aarch64.tar.gz",
-                "https://cdn.azul.com/zulu/bin/zulu17.44.53-ca-jdk17.0.8.1-macosx_aarch64.tar.gz"
+              "commands_src": "@rules_foreign_cc//foreign_cc/private/framework/toolchains:freebsd_commands.bzl",
+              "exec_compatible_with": [
+                "@platforms//os:freebsd"
               ]
             }
           },
-          "remote_java_tools_windows": {
-            "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
-            "ruleClassName": "http_archive",
+          "rules_foreign_cc_framework_toolchain_windows": {
+            "repoRuleId": "@@rules_foreign_cc+//foreign_cc/private/framework:toolchain.bzl%framework_toolchain_repository",
             "attributes": {
-              "name": "rules_java~7.1.0~toolchains~remote_java_tools_windows",
-              "sha256": "c5c70c214a350f12cbf52da8270fa43ba629b795f3dd328028a38f8f0d39c2a1",
-              "urls": [
-                "https://mirror.bazel.build/bazel_java_tools/releases/java/v13.1/java_tools_windows-v13.1.zip",
-                "https://github.com/bazelbuild/java_tools/releases/download/java_v13.1/java_tools_windows-v13.1.zip"
+              "commands_src": "@rules_foreign_cc//foreign_cc/private/framework/toolchains:windows_commands.bzl",
+              "exec_compatible_with": [
+                "@platforms//os:windows"
               ]
             }
           },
-          "remotejdk11_win": {
-            "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
-            "ruleClassName": "http_archive",
+          "rules_foreign_cc_framework_toolchain_macos": {
+            "repoRuleId": "@@rules_foreign_cc+//foreign_cc/private/framework:toolchain.bzl%framework_toolchain_repository",
             "attributes": {
-              "name": "rules_java~7.1.0~toolchains~remotejdk11_win",
-              "build_file_content": "load(\"@rules_java//java:defs.bzl\", \"java_runtime\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\nexports_files([\"WORKSPACE\", \"BUILD.bazel\"])\n\nfilegroup(\n    name = \"jre\",\n    srcs = glob(\n        [\n            \"jre/bin/**\",\n            \"jre/lib/**\",\n        ],\n        allow_empty = True,\n        # In some configurations, Java browser plugin is considered harmful and\n        # common antivirus software blocks access to npjp2.dll interfering with Bazel,\n        # so do not include it in JRE on Windows.\n        exclude = [\"jre/bin/plugin2/**\"],\n    ),\n)\n\nfilegroup(\n    name = \"jdk-bin\",\n    srcs = glob(\n        [\"bin/**\"],\n        # The JDK on Windows sometimes contains a directory called\n        # \"%systemroot%\", which is not a valid label.\n        exclude = [\"**/*%*/**\"],\n    ),\n)\n\n# This folder holds security policies.\nfilegroup(\n    name = \"jdk-conf\",\n    srcs = glob(\n        [\"conf/**\"],\n        allow_empty = True,\n    ),\n)\n\nfilegroup(\n    name = \"jdk-include\",\n    srcs = glob(\n        [\"include/**\"],\n        allow_empty = True,\n    ),\n)\n\nfilegroup(\n    name = \"jdk-lib\",\n    srcs = glob(\n        [\"lib/**\", \"release\"],\n        allow_empty = True,\n        exclude = [\n            \"lib/missioncontrol/**\",\n            \"lib/visualvm/**\",\n        ],\n    ),\n)\n\njava_runtime(\n    name = \"jdk\",\n    srcs = [\n        \":jdk-bin\",\n        \":jdk-conf\",\n        \":jdk-include\",\n        \":jdk-lib\",\n        \":jre\",\n    ],\n    # Provide the 'java` binary explicitly so that the correct path is used by\n    # Bazel even when the host platform differs from the execution platform.\n    # Exactly one of the two globs will be empty depending on the host platform.\n    # When --incompatible_disallow_empty_glob is enabled, each individual empty\n    # glob will fail without allow_empty = True, even if the overall result is\n    # non-empty.\n    java = glob([\"bin/java.exe\", \"bin/java\"], allow_empty = True)[0],\n    version = 11,\n)\n",
-              "sha256": "43408193ce2fa0862819495b5ae8541085b95660153f2adcf91a52d3a1710e83",
-              "strip_prefix": "zulu11.66.15-ca-jdk11.0.20-win_x64",
-              "urls": [
-                "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu11.66.15-ca-jdk11.0.20-win_x64.zip",
-                "https://cdn.azul.com/zulu/bin/zulu11.66.15-ca-jdk11.0.20-win_x64.zip"
+              "commands_src": "@rules_foreign_cc//foreign_cc/private/framework/toolchains:macos_commands.bzl",
+              "exec_compatible_with": [
+                "@platforms//os:macos"
               ]
             }
           },
-          "remotejdk11_win_toolchain_config_repo": {
-            "bzlFile": "@@rules_java~7.1.0//toolchains:remote_java_repository.bzl",
-            "ruleClassName": "_toolchain_config",
-            "attributes": {
-              "name": "rules_java~7.1.0~toolchains~remotejdk11_win_toolchain_config_repo",
-              "build_file": "\nconfig_setting(\n    name = \"prefix_version_setting\",\n    values = {\"java_runtime_version\": \"remotejdk_11\"},\n    visibility = [\"//visibility:private\"],\n)\nconfig_setting(\n    name = \"version_setting\",\n    values = {\"java_runtime_version\": \"11\"},\n    visibility = [\"//visibility:private\"],\n)\nalias(\n    name = \"version_or_prefix_version_setting\",\n    actual = select({\n        \":version_setting\": \":version_setting\",\n        \"//conditions:default\": \":prefix_version_setting\",\n    }),\n    visibility = [\"//visibility:private\"],\n)\ntoolchain(\n    name = \"toolchain\",\n    target_compatible_with = [\"@platforms//os:windows\", \"@platforms//cpu:x86_64\"],\n    target_settings = [\":version_or_prefix_version_setting\"],\n    toolchain_type = \"@bazel_tools//tools/jdk:runtime_toolchain_type\",\n    toolchain = \"@remotejdk11_win//:jdk\",\n)\ntoolchain(\n    name = \"bootstrap_runtime_toolchain\",\n    # These constraints are not required for correctness, but prevent fetches of remote JDK for\n    # different architectures. As every Java compilation toolchain depends on a bootstrap runtime in\n    # the same configuration, this constraint will not result in toolchain resolution failures.\n    exec_compatible_with = [\"@platforms//os:windows\", \"@platforms//cpu:x86_64\"],\n    target_settings = [\":version_or_prefix_version_setting\"],\n    toolchain_type = \"@bazel_tools//tools/jdk:bootstrap_runtime_toolchain_type\",\n    toolchain = \"@remotejdk11_win//:jdk\",\n)\n"
-            }
+          "rules_foreign_cc_framework_toolchains": {
+            "repoRuleId": "@@rules_foreign_cc+//foreign_cc/private/framework:toolchain.bzl%framework_toolchain_repository_hub",
+            "attributes": {}
           },
-          "remotejdk11_linux_aarch64": {
-            "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
-            "ruleClassName": "http_archive",
+          "cmake_src": {
+            "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive",
             "attributes": {
-              "name": "rules_java~7.1.0~toolchains~remotejdk11_linux_aarch64",
-              "build_file_content": "load(\"@rules_java//java:defs.bzl\", \"java_runtime\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\nexports_files([\"WORKSPACE\", \"BUILD.bazel\"])\n\nfilegroup(\n    name = \"jre\",\n    srcs = glob(\n        [\n            \"jre/bin/**\",\n            \"jre/lib/**\",\n        ],\n        allow_empty = True,\n        # In some configurations, Java browser plugin is considered harmful and\n        # common antivirus software blocks access to npjp2.dll interfering with Bazel,\n        # so do not include it in JRE on Windows.\n        exclude = [\"jre/bin/plugin2/**\"],\n    ),\n)\n\nfilegroup(\n    name = \"jdk-bin\",\n    srcs = glob(\n        [\"bin/**\"],\n        # The JDK on Windows sometimes contains a directory called\n        # \"%systemroot%\", which is not a valid label.\n        exclude = [\"**/*%*/**\"],\n    ),\n)\n\n# This folder holds security policies.\nfilegroup(\n    name = \"jdk-conf\",\n    srcs = glob(\n        [\"conf/**\"],\n        allow_empty = True,\n    ),\n)\n\nfilegroup(\n    name = \"jdk-include\",\n    srcs = glob(\n        [\"include/**\"],\n        allow_empty = True,\n    ),\n)\n\nfilegroup(\n    name = \"jdk-lib\",\n    srcs = glob(\n        [\"lib/**\", \"release\"],\n        allow_empty = True,\n        exclude = [\n            \"lib/missioncontrol/**\",\n            \"lib/visualvm/**\",\n        ],\n    ),\n)\n\njava_runtime(\n    name = \"jdk\",\n    srcs = [\n        \":jdk-bin\",\n        \":jdk-conf\",\n        \":jdk-include\",\n        \":jdk-lib\",\n        \":jre\",\n    ],\n    # Provide the 'java` binary explicitly so that the correct path is used by\n    # Bazel even when the host platform differs from the execution platform.\n    # Exactly one of the two globs will be empty depending on the host platform.\n    # When --incompatible_disallow_empty_glob is enabled, each individual empty\n    # glob will fail without allow_empty = True, even if the overall result is\n    # non-empty.\n    java = glob([\"bin/java.exe\", \"bin/java\"], allow_empty = True)[0],\n    version = 11,\n)\n",
-              "sha256": "54174439f2b3fddd11f1048c397fe7bb45d4c9d66d452d6889b013d04d21c4de",
-              "strip_prefix": "zulu11.66.15-ca-jdk11.0.20-linux_aarch64",
+              "build_file_content": "filegroup(\n    name = \"all_srcs\",\n    srcs = glob([\"**\"]),\n    visibility = [\"//visibility:public\"],\n)\n",
+              "sha256": "f316b40053466f9a416adf981efda41b160ca859e97f6a484b447ea299ff26aa",
+              "strip_prefix": "cmake-3.23.2",
               "urls": [
-                "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu11.66.15-ca-jdk11.0.20-linux_aarch64.tar.gz",
-                "https://cdn.azul.com/zulu/bin/zulu11.66.15-ca-jdk11.0.20-linux_aarch64.tar.gz"
+                "https://github.com/Kitware/CMake/releases/download/v3.23.2/cmake-3.23.2.tar.gz"
               ]
             }
           },
-          "remotejdk17_linux": {
-            "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
-            "ruleClassName": "http_archive",
+          "gnumake_src": {
+            "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive",
             "attributes": {
-              "name": "rules_java~7.1.0~toolchains~remotejdk17_linux",
-              "build_file_content": "load(\"@rules_java//java:defs.bzl\", \"java_runtime\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\nexports_files([\"WORKSPACE\", \"BUILD.bazel\"])\n\nfilegroup(\n    name = \"jre\",\n    srcs = glob(\n        [\n            \"jre/bin/**\",\n            \"jre/lib/**\",\n        ],\n        allow_empty = True,\n        # In some configurations, Java browser plugin is considered harmful and\n        # common antivirus software blocks access to npjp2.dll interfering with Bazel,\n        # so do not include it in JRE on Windows.\n        exclude = [\"jre/bin/plugin2/**\"],\n    ),\n)\n\nfilegroup(\n    name = \"jdk-bin\",\n    srcs = glob(\n        [\"bin/**\"],\n        # The JDK on Windows sometimes contains a directory called\n        # \"%systemroot%\", which is not a valid label.\n        exclude = [\"**/*%*/**\"],\n    ),\n)\n\n# This folder holds security policies.\nfilegroup(\n    name = \"jdk-conf\",\n    srcs = glob(\n        [\"conf/**\"],\n        allow_empty = True,\n    ),\n)\n\nfilegroup(\n    name = \"jdk-include\",\n    srcs = glob(\n        [\"include/**\"],\n        allow_empty = True,\n    ),\n)\n\nfilegroup(\n    name = \"jdk-lib\",\n    srcs = glob(\n        [\"lib/**\", \"release\"],\n        allow_empty = True,\n        exclude = [\n            \"lib/missioncontrol/**\",\n            \"lib/visualvm/**\",\n        ],\n    ),\n)\n\njava_runtime(\n    name = \"jdk\",\n    srcs = [\n        \":jdk-bin\",\n        \":jdk-conf\",\n        \":jdk-include\",\n        \":jdk-lib\",\n        \":jre\",\n    ],\n    # Provide the 'java` binary explicitly so that the correct path is used by\n    # Bazel even when the host platform differs from the execution platform.\n    # Exactly one of the two globs will be empty depending on the host platform.\n    # When --incompatible_disallow_empty_glob is enabled, each individual empty\n    # glob will fail without allow_empty = True, even if the overall result is\n    # non-empty.\n    java = glob([\"bin/java.exe\", \"bin/java\"], allow_empty = True)[0],\n    version = 17,\n)\n",
-              "sha256": "b9482f2304a1a68a614dfacddcf29569a72f0fac32e6c74f83dc1b9a157b8340",
-              "strip_prefix": "zulu17.44.53-ca-jdk17.0.8.1-linux_x64",
+              "build_file_content": "filegroup(\n    name = \"all_srcs\",\n    srcs = glob([\"**\"]),\n    visibility = [\"//visibility:public\"],\n)\n",
+              "sha256": "581f4d4e872da74b3941c874215898a7d35802f03732bdccee1d4a7979105d18",
+              "strip_prefix": "make-4.4",
               "urls": [
-                "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu17.44.53-ca-jdk17.0.8.1-linux_x64.tar.gz",
-                "https://cdn.azul.com/zulu/bin/zulu17.44.53-ca-jdk17.0.8.1-linux_x64.tar.gz"
+                "https://mirror.bazel.build/ftpmirror.gnu.org/gnu/make/make-4.4.tar.gz",
+                "http://ftpmirror.gnu.org/gnu/make/make-4.4.tar.gz"
               ]
             }
           },
-          "remotejdk11_linux_s390x_toolchain_config_repo": {
-            "bzlFile": "@@rules_java~7.1.0//toolchains:remote_java_repository.bzl",
-            "ruleClassName": "_toolchain_config",
-            "attributes": {
-              "name": "rules_java~7.1.0~toolchains~remotejdk11_linux_s390x_toolchain_config_repo",
-              "build_file": "\nconfig_setting(\n    name = \"prefix_version_setting\",\n    values = {\"java_runtime_version\": \"remotejdk_11\"},\n    visibility = [\"//visibility:private\"],\n)\nconfig_setting(\n    name = \"version_setting\",\n    values = {\"java_runtime_version\": \"11\"},\n    visibility = [\"//visibility:private\"],\n)\nalias(\n    name = \"version_or_prefix_version_setting\",\n    actual = select({\n        \":version_setting\": \":version_setting\",\n        \"//conditions:default\": \":prefix_version_setting\",\n    }),\n    visibility = [\"//visibility:private\"],\n)\ntoolchain(\n    name = \"toolchain\",\n    target_compatible_with = [\"@platforms//os:linux\", \"@platforms//cpu:s390x\"],\n    target_settings = [\":version_or_prefix_version_setting\"],\n    toolchain_type = \"@bazel_tools//tools/jdk:runtime_toolchain_type\",\n    toolchain = \"@remotejdk11_linux_s390x//:jdk\",\n)\ntoolchain(\n    name = \"bootstrap_runtime_toolchain\",\n    # These constraints are not required for correctness, but prevent fetches of remote JDK for\n    # different architectures. As every Java compilation toolchain depends on a bootstrap runtime in\n    # the same configuration, this constraint will not result in toolchain resolution failures.\n    exec_compatible_with = [\"@platforms//os:linux\", \"@platforms//cpu:s390x\"],\n    target_settings = [\":version_or_prefix_version_setting\"],\n    toolchain_type = \"@bazel_tools//tools/jdk:bootstrap_runtime_toolchain_type\",\n    toolchain = \"@remotejdk11_linux_s390x//:jdk\",\n)\n"
-            }
-          },
-          "remotejdk11_linux_toolchain_config_repo": {
-            "bzlFile": "@@rules_java~7.1.0//toolchains:remote_java_repository.bzl",
-            "ruleClassName": "_toolchain_config",
-            "attributes": {
-              "name": "rules_java~7.1.0~toolchains~remotejdk11_linux_toolchain_config_repo",
-              "build_file": "\nconfig_setting(\n    name = \"prefix_version_setting\",\n    values = {\"java_runtime_version\": \"remotejdk_11\"},\n    visibility = [\"//visibility:private\"],\n)\nconfig_setting(\n    name = \"version_setting\",\n    values = {\"java_runtime_version\": \"11\"},\n    visibility = [\"//visibility:private\"],\n)\nalias(\n    name = \"version_or_prefix_version_setting\",\n    actual = select({\n        \":version_setting\": \":version_setting\",\n        \"//conditions:default\": \":prefix_version_setting\",\n    }),\n    visibility = [\"//visibility:private\"],\n)\ntoolchain(\n    name = \"toolchain\",\n    target_compatible_with = [\"@platforms//os:linux\", \"@platforms//cpu:x86_64\"],\n    target_settings = [\":version_or_prefix_version_setting\"],\n    toolchain_type = \"@bazel_tools//tools/jdk:runtime_toolchain_type\",\n    toolchain = \"@remotejdk11_linux//:jdk\",\n)\ntoolchain(\n    name = \"bootstrap_runtime_toolchain\",\n    # These constraints are not required for correctness, but prevent fetches of remote JDK for\n    # different architectures. As every Java compilation toolchain depends on a bootstrap runtime in\n    # the same configuration, this constraint will not result in toolchain resolution failures.\n    exec_compatible_with = [\"@platforms//os:linux\", \"@platforms//cpu:x86_64\"],\n    target_settings = [\":version_or_prefix_version_setting\"],\n    toolchain_type = \"@bazel_tools//tools/jdk:bootstrap_runtime_toolchain_type\",\n    toolchain = \"@remotejdk11_linux//:jdk\",\n)\n"
-            }
-          },
-          "remotejdk11_macos": {
-            "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
-            "ruleClassName": "http_archive",
+          "ninja_build_src": {
+            "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive",
             "attributes": {
-              "name": "rules_java~7.1.0~toolchains~remotejdk11_macos",
-              "build_file_content": "load(\"@rules_java//java:defs.bzl\", \"java_runtime\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\nexports_files([\"WORKSPACE\", \"BUILD.bazel\"])\n\nfilegroup(\n    name = \"jre\",\n    srcs = glob(\n        [\n            \"jre/bin/**\",\n            \"jre/lib/**\",\n        ],\n        allow_empty = True,\n        # In some configurations, Java browser plugin is considered harmful and\n        # common antivirus software blocks access to npjp2.dll interfering with Bazel,\n        # so do not include it in JRE on Windows.\n        exclude = [\"jre/bin/plugin2/**\"],\n    ),\n)\n\nfilegroup(\n    name = \"jdk-bin\",\n    srcs = glob(\n        [\"bin/**\"],\n        # The JDK on Windows sometimes contains a directory called\n        # \"%systemroot%\", which is not a valid label.\n        exclude = [\"**/*%*/**\"],\n    ),\n)\n\n# This folder holds security policies.\nfilegroup(\n    name = \"jdk-conf\",\n    srcs = glob(\n        [\"conf/**\"],\n        allow_empty = True,\n    ),\n)\n\nfilegroup(\n    name = \"jdk-include\",\n    srcs = glob(\n        [\"include/**\"],\n        allow_empty = True,\n    ),\n)\n\nfilegroup(\n    name = \"jdk-lib\",\n    srcs = glob(\n        [\"lib/**\", \"release\"],\n        allow_empty = True,\n        exclude = [\n            \"lib/missioncontrol/**\",\n            \"lib/visualvm/**\",\n        ],\n    ),\n)\n\njava_runtime(\n    name = \"jdk\",\n    srcs = [\n        \":jdk-bin\",\n        \":jdk-conf\",\n        \":jdk-include\",\n        \":jdk-lib\",\n        \":jre\",\n    ],\n    # Provide the 'java` binary explicitly so that the correct path is used by\n    # Bazel even when the host platform differs from the execution platform.\n    # Exactly one of the two globs will be empty depending on the host platform.\n    # When --incompatible_disallow_empty_glob is enabled, each individual empty\n    # glob will fail without allow_empty = True, even if the overall result is\n    # non-empty.\n    java = glob([\"bin/java.exe\", \"bin/java\"], allow_empty = True)[0],\n    version = 11,\n)\n",
-              "sha256": "bcaab11cfe586fae7583c6d9d311c64384354fb2638eb9a012eca4c3f1a1d9fd",
-              "strip_prefix": "zulu11.66.15-ca-jdk11.0.20-macosx_x64",
+              "build_file_content": "filegroup(\n    name = \"all_srcs\",\n    srcs = glob([\"**\"]),\n    visibility = [\"//visibility:public\"],\n)\n",
+              "sha256": "31747ae633213f1eda3842686f83c2aa1412e0f5691d1c14dbbcc67fe7400cea",
+              "strip_prefix": "ninja-1.11.1",
               "urls": [
-                "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu11.66.15-ca-jdk11.0.20-macosx_x64.tar.gz",
-                "https://cdn.azul.com/zulu/bin/zulu11.66.15-ca-jdk11.0.20-macosx_x64.tar.gz"
+                "https://github.com/ninja-build/ninja/archive/v1.11.1.tar.gz"
               ]
             }
           },
-          "remotejdk11_win_arm64": {
-            "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
-            "ruleClassName": "http_archive",
+          "meson_src": {
+            "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive",
             "attributes": {
-              "name": "rules_java~7.1.0~toolchains~remotejdk11_win_arm64",
-              "build_file_content": "load(\"@rules_java//java:defs.bzl\", \"java_runtime\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\nexports_files([\"WORKSPACE\", \"BUILD.bazel\"])\n\nfilegroup(\n    name = \"jre\",\n    srcs = glob(\n        [\n            \"jre/bin/**\",\n            \"jre/lib/**\",\n        ],\n        allow_empty = True,\n        # In some configurations, Java browser plugin is considered harmful and\n        # common antivirus software blocks access to npjp2.dll interfering with Bazel,\n        # so do not include it in JRE on Windows.\n        exclude = [\"jre/bin/plugin2/**\"],\n    ),\n)\n\nfilegroup(\n    name = \"jdk-bin\",\n    srcs = glob(\n        [\"bin/**\"],\n        # The JDK on Windows sometimes contains a directory called\n        # \"%systemroot%\", which is not a valid label.\n        exclude = [\"**/*%*/**\"],\n    ),\n)\n\n# This folder holds security policies.\nfilegroup(\n    name = \"jdk-conf\",\n    srcs = glob(\n        [\"conf/**\"],\n        allow_empty = True,\n    ),\n)\n\nfilegroup(\n    name = \"jdk-include\",\n    srcs = glob(\n        [\"include/**\"],\n        allow_empty = True,\n    ),\n)\n\nfilegroup(\n    name = \"jdk-lib\",\n    srcs = glob(\n        [\"lib/**\", \"release\"],\n        allow_empty = True,\n        exclude = [\n            \"lib/missioncontrol/**\",\n            \"lib/visualvm/**\",\n        ],\n    ),\n)\n\njava_runtime(\n    name = \"jdk\",\n    srcs = [\n        \":jdk-bin\",\n        \":jdk-conf\",\n        \":jdk-include\",\n        \":jdk-lib\",\n        \":jre\",\n    ],\n    # Provide the 'java` binary explicitly so that the correct path is used by\n    # Bazel even when the host platform differs from the execution platform.\n    # Exactly one of the two globs will be empty depending on the host platform.\n    # When --incompatible_disallow_empty_glob is enabled, each individual empty\n    # glob will fail without allow_empty = True, even if the overall result is\n    # non-empty.\n    java = glob([\"bin/java.exe\", \"bin/java\"], allow_empty = True)[0],\n    version = 11,\n)\n",
-              "sha256": "b8a28e6e767d90acf793ea6f5bed0bb595ba0ba5ebdf8b99f395266161e53ec2",
-              "strip_prefix": "jdk-11.0.13+8",
-              "urls": [
-                "https://mirror.bazel.build/aka.ms/download-jdk/microsoft-jdk-11.0.13.8.1-windows-aarch64.zip"
-              ]
+              "build_file_content": "exports_files([\"meson.py\"])\n\nfilegroup(\n    name = \"runtime\",\n    srcs = glob([\"mesonbuild/**\"]),\n    visibility = [\"//visibility:public\"],\n)\n",
+              "strip_prefix": "meson-1.1.1",
+              "url": "https://github.com/mesonbuild/meson/releases/download/1.1.1/meson-1.1.1.tar.gz"
             }
           },
-          "remotejdk17_macos": {
-            "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
-            "ruleClassName": "http_archive",
+          "glib_dev": {
+            "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive",
             "attributes": {
-              "name": "rules_java~7.1.0~toolchains~remotejdk17_macos",
-              "build_file_content": "load(\"@rules_java//java:defs.bzl\", \"java_runtime\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\nexports_files([\"WORKSPACE\", \"BUILD.bazel\"])\n\nfilegroup(\n    name = \"jre\",\n    srcs = glob(\n        [\n            \"jre/bin/**\",\n            \"jre/lib/**\",\n        ],\n        allow_empty = True,\n        # In some configurations, Java browser plugin is considered harmful and\n        # common antivirus software blocks access to npjp2.dll interfering with Bazel,\n        # so do not include it in JRE on Windows.\n        exclude = [\"jre/bin/plugin2/**\"],\n    ),\n)\n\nfilegroup(\n    name = \"jdk-bin\",\n    srcs = glob(\n        [\"bin/**\"],\n        # The JDK on Windows sometimes contains a directory called\n        # \"%systemroot%\", which is not a valid label.\n        exclude = [\"**/*%*/**\"],\n    ),\n)\n\n# This folder holds security policies.\nfilegroup(\n    name = \"jdk-conf\",\n    srcs = glob(\n        [\"conf/**\"],\n        allow_empty = True,\n    ),\n)\n\nfilegroup(\n    name = \"jdk-include\",\n    srcs = glob(\n        [\"include/**\"],\n        allow_empty = True,\n    ),\n)\n\nfilegroup(\n    name = \"jdk-lib\",\n    srcs = glob(\n        [\"lib/**\", \"release\"],\n        allow_empty = True,\n        exclude = [\n            \"lib/missioncontrol/**\",\n            \"lib/visualvm/**\",\n        ],\n    ),\n)\n\njava_runtime(\n    name = \"jdk\",\n    srcs = [\n        \":jdk-bin\",\n        \":jdk-conf\",\n        \":jdk-include\",\n        \":jdk-lib\",\n        \":jre\",\n    ],\n    # Provide the 'java` binary explicitly so that the correct path is used by\n    # Bazel even when the host platform differs from the execution platform.\n    # Exactly one of the two globs will be empty depending on the host platform.\n    # When --incompatible_disallow_empty_glob is enabled, each individual empty\n    # glob will fail without allow_empty = True, even if the overall result is\n    # non-empty.\n    java = glob([\"bin/java.exe\", \"bin/java\"], allow_empty = True)[0],\n    version = 17,\n)\n",
-              "sha256": "640453e8afe8ffe0fb4dceb4535fb50db9c283c64665eebb0ba68b19e65f4b1f",
-              "strip_prefix": "zulu17.44.53-ca-jdk17.0.8.1-macosx_x64",
+              "build_file_content": "\nload(\"@rules_cc//cc:defs.bzl\", \"cc_library\")\n\ncc_import(\n    name = \"glib_dev\",\n    hdrs = glob([\"include/**\"]),\n    shared_library = \"@glib_runtime//:bin/libglib-2.0-0.dll\",\n    visibility = [\"//visibility:public\"],\n)\n        ",
+              "sha256": "bdf18506df304d38be98a4b3f18055b8b8cca81beabecad0eece6ce95319c369",
               "urls": [
-                "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu17.44.53-ca-jdk17.0.8.1-macosx_x64.tar.gz",
-                "https://cdn.azul.com/zulu/bin/zulu17.44.53-ca-jdk17.0.8.1-macosx_x64.tar.gz"
+                "https://download.gnome.org/binaries/win64/glib/2.26/glib-dev_2.26.1-1_win64.zip"
               ]
             }
           },
-          "remotejdk21_macos": {
-            "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
-            "ruleClassName": "http_archive",
+          "glib_src": {
+            "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive",
             "attributes": {
-              "name": "rules_java~7.1.0~toolchains~remotejdk21_macos",
-              "build_file_content": "load(\"@rules_java//java:defs.bzl\", \"java_runtime\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\nexports_files([\"WORKSPACE\", \"BUILD.bazel\"])\n\nfilegroup(\n    name = \"jre\",\n    srcs = glob(\n        [\n            \"jre/bin/**\",\n            \"jre/lib/**\",\n        ],\n        allow_empty = True,\n        # In some configurations, Java browser plugin is considered harmful and\n        # common antivirus software blocks access to npjp2.dll interfering with Bazel,\n        # so do not include it in JRE on Windows.\n        exclude = [\"jre/bin/plugin2/**\"],\n    ),\n)\n\nfilegroup(\n    name = \"jdk-bin\",\n    srcs = glob(\n        [\"bin/**\"],\n        # The JDK on Windows sometimes contains a directory called\n        # \"%systemroot%\", which is not a valid label.\n        exclude = [\"**/*%*/**\"],\n    ),\n)\n\n# This folder holds security policies.\nfilegroup(\n    name = \"jdk-conf\",\n    srcs = glob(\n        [\"conf/**\"],\n        allow_empty = True,\n    ),\n)\n\nfilegroup(\n    name = \"jdk-include\",\n    srcs = glob(\n        [\"include/**\"],\n        allow_empty = True,\n    ),\n)\n\nfilegroup(\n    name = \"jdk-lib\",\n    srcs = glob(\n        [\"lib/**\", \"release\"],\n        allow_empty = True,\n        exclude = [\n            \"lib/missioncontrol/**\",\n            \"lib/visualvm/**\",\n        ],\n    ),\n)\n\njava_runtime(\n    name = \"jdk\",\n    srcs = [\n        \":jdk-bin\",\n        \":jdk-conf\",\n        \":jdk-include\",\n        \":jdk-lib\",\n        \":jre\",\n    ],\n    # Provide the 'java` binary explicitly so that the correct path is used by\n    # Bazel even when the host platform differs from the execution platform.\n    # Exactly one of the two globs will be empty depending on the host platform.\n    # When --incompatible_disallow_empty_glob is enabled, each individual empty\n    # glob will fail without allow_empty = True, even if the overall result is\n    # non-empty.\n    java = glob([\"bin/java.exe\", \"bin/java\"], allow_empty = True)[0],\n    version = 21,\n)\n",
-              "sha256": "9639b87db586d0c89f7a9892ae47f421e442c64b97baebdff31788fbe23265bd",
-              "strip_prefix": "zulu21.28.85-ca-jdk21.0.0-macosx_x64",
+              "build_file_content": "\ncc_import(\n    name = \"msvc_hdr\",\n    hdrs = [\"msvc_recommended_pragmas.h\"],\n    visibility = [\"//visibility:public\"],\n)\n        ",
+              "sha256": "bc96f63112823b7d6c9f06572d2ad626ddac7eb452c04d762592197f6e07898e",
+              "strip_prefix": "glib-2.26.1",
               "urls": [
-                "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu21.28.85-ca-jdk21.0.0-macosx_x64.tar.gz",
-                "https://cdn.azul.com/zulu/bin/zulu21.28.85-ca-jdk21.0.0-macosx_x64.tar.gz"
+                "https://download.gnome.org/sources/glib/2.26/glib-2.26.1.tar.gz"
               ]
             }
           },
-          "remotejdk21_macos_toolchain_config_repo": {
-            "bzlFile": "@@rules_java~7.1.0//toolchains:remote_java_repository.bzl",
-            "ruleClassName": "_toolchain_config",
-            "attributes": {
-              "name": "rules_java~7.1.0~toolchains~remotejdk21_macos_toolchain_config_repo",
-              "build_file": "\nconfig_setting(\n    name = \"prefix_version_setting\",\n    values = {\"java_runtime_version\": \"remotejdk_21\"},\n    visibility = [\"//visibility:private\"],\n)\nconfig_setting(\n    name = \"version_setting\",\n    values = {\"java_runtime_version\": \"21\"},\n    visibility = [\"//visibility:private\"],\n)\nalias(\n    name = \"version_or_prefix_version_setting\",\n    actual = select({\n        \":version_setting\": \":version_setting\",\n        \"//conditions:default\": \":prefix_version_setting\",\n    }),\n    visibility = [\"//visibility:private\"],\n)\ntoolchain(\n    name = \"toolchain\",\n    target_compatible_with = [\"@platforms//os:macos\", \"@platforms//cpu:x86_64\"],\n    target_settings = [\":version_or_prefix_version_setting\"],\n    toolchain_type = \"@bazel_tools//tools/jdk:runtime_toolchain_type\",\n    toolchain = \"@remotejdk21_macos//:jdk\",\n)\ntoolchain(\n    name = \"bootstrap_runtime_toolchain\",\n    # These constraints are not required for correctness, but prevent fetches of remote JDK for\n    # different architectures. As every Java compilation toolchain depends on a bootstrap runtime in\n    # the same configuration, this constraint will not result in toolchain resolution failures.\n    exec_compatible_with = [\"@platforms//os:macos\", \"@platforms//cpu:x86_64\"],\n    target_settings = [\":version_or_prefix_version_setting\"],\n    toolchain_type = \"@bazel_tools//tools/jdk:bootstrap_runtime_toolchain_type\",\n    toolchain = \"@remotejdk21_macos//:jdk\",\n)\n"
-            }
-          },
-          "remotejdk17_macos_aarch64_toolchain_config_repo": {
-            "bzlFile": "@@rules_java~7.1.0//toolchains:remote_java_repository.bzl",
-            "ruleClassName": "_toolchain_config",
+          "glib_runtime": {
+            "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive",
             "attributes": {
-              "name": "rules_java~7.1.0~toolchains~remotejdk17_macos_aarch64_toolchain_config_repo",
-              "build_file": "\nconfig_setting(\n    name = \"prefix_version_setting\",\n    values = {\"java_runtime_version\": \"remotejdk_17\"},\n    visibility = [\"//visibility:private\"],\n)\nconfig_setting(\n    name = \"version_setting\",\n    values = {\"java_runtime_version\": \"17\"},\n    visibility = [\"//visibility:private\"],\n)\nalias(\n    name = \"version_or_prefix_version_setting\",\n    actual = select({\n        \":version_setting\": \":version_setting\",\n        \"//conditions:default\": \":prefix_version_setting\",\n    }),\n    visibility = [\"//visibility:private\"],\n)\ntoolchain(\n    name = \"toolchain\",\n    target_compatible_with = [\"@platforms//os:macos\", \"@platforms//cpu:aarch64\"],\n    target_settings = [\":version_or_prefix_version_setting\"],\n    toolchain_type = \"@bazel_tools//tools/jdk:runtime_toolchain_type\",\n    toolchain = \"@remotejdk17_macos_aarch64//:jdk\",\n)\ntoolchain(\n    name = \"bootstrap_runtime_toolchain\",\n    # These constraints are not required for correctness, but prevent fetches of remote JDK for\n    # different architectures. As every Java compilation toolchain depends on a bootstrap runtime in\n    # the same configuration, this constraint will not result in toolchain resolution failures.\n    exec_compatible_with = [\"@platforms//os:macos\", \"@platforms//cpu:aarch64\"],\n    target_settings = [\":version_or_prefix_version_setting\"],\n    toolchain_type = \"@bazel_tools//tools/jdk:bootstrap_runtime_toolchain_type\",\n    toolchain = \"@remotejdk17_macos_aarch64//:jdk\",\n)\n"
-            }
-          },
-          "remotejdk17_win": {
-            "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
-            "ruleClassName": "http_archive",
-            "attributes": {
-              "name": "rules_java~7.1.0~toolchains~remotejdk17_win",
-              "build_file_content": "load(\"@rules_java//java:defs.bzl\", \"java_runtime\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\nexports_files([\"WORKSPACE\", \"BUILD.bazel\"])\n\nfilegroup(\n    name = \"jre\",\n    srcs = glob(\n        [\n            \"jre/bin/**\",\n            \"jre/lib/**\",\n        ],\n        allow_empty = True,\n        # In some configurations, Java browser plugin is considered harmful and\n        # common antivirus software blocks access to npjp2.dll interfering with Bazel,\n        # so do not include it in JRE on Windows.\n        exclude = [\"jre/bin/plugin2/**\"],\n    ),\n)\n\nfilegroup(\n    name = \"jdk-bin\",\n    srcs = glob(\n        [\"bin/**\"],\n        # The JDK on Windows sometimes contains a directory called\n        # \"%systemroot%\", which is not a valid label.\n        exclude = [\"**/*%*/**\"],\n    ),\n)\n\n# This folder holds security policies.\nfilegroup(\n    name = \"jdk-conf\",\n    srcs = glob(\n        [\"conf/**\"],\n        allow_empty = True,\n    ),\n)\n\nfilegroup(\n    name = \"jdk-include\",\n    srcs = glob(\n        [\"include/**\"],\n        allow_empty = True,\n    ),\n)\n\nfilegroup(\n    name = \"jdk-lib\",\n    srcs = glob(\n        [\"lib/**\", \"release\"],\n        allow_empty = True,\n        exclude = [\n            \"lib/missioncontrol/**\",\n            \"lib/visualvm/**\",\n        ],\n    ),\n)\n\njava_runtime(\n    name = \"jdk\",\n    srcs = [\n        \":jdk-bin\",\n        \":jdk-conf\",\n        \":jdk-include\",\n        \":jdk-lib\",\n        \":jre\",\n    ],\n    # Provide the 'java` binary explicitly so that the correct path is used by\n    # Bazel even when the host platform differs from the execution platform.\n    # Exactly one of the two globs will be empty depending on the host platform.\n    # When --incompatible_disallow_empty_glob is enabled, each individual empty\n    # glob will fail without allow_empty = True, even if the overall result is\n    # non-empty.\n    java = glob([\"bin/java.exe\", \"bin/java\"], allow_empty = True)[0],\n    version = 17,\n)\n",
-              "sha256": "192f2afca57701de6ec496234f7e45d971bf623ff66b8ee4a5c81582054e5637",
-              "strip_prefix": "zulu17.44.53-ca-jdk17.0.8.1-win_x64",
-              "urls": [
-                "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu17.44.53-ca-jdk17.0.8.1-win_x64.zip",
-                "https://cdn.azul.com/zulu/bin/zulu17.44.53-ca-jdk17.0.8.1-win_x64.zip"
-              ]
-            }
-          },
-          "remotejdk11_macos_aarch64_toolchain_config_repo": {
-            "bzlFile": "@@rules_java~7.1.0//toolchains:remote_java_repository.bzl",
-            "ruleClassName": "_toolchain_config",
-            "attributes": {
-              "name": "rules_java~7.1.0~toolchains~remotejdk11_macos_aarch64_toolchain_config_repo",
-              "build_file": "\nconfig_setting(\n    name = \"prefix_version_setting\",\n    values = {\"java_runtime_version\": \"remotejdk_11\"},\n    visibility = [\"//visibility:private\"],\n)\nconfig_setting(\n    name = \"version_setting\",\n    values = {\"java_runtime_version\": \"11\"},\n    visibility = [\"//visibility:private\"],\n)\nalias(\n    name = \"version_or_prefix_version_setting\",\n    actual = select({\n        \":version_setting\": \":version_setting\",\n        \"//conditions:default\": \":prefix_version_setting\",\n    }),\n    visibility = [\"//visibility:private\"],\n)\ntoolchain(\n    name = \"toolchain\",\n    target_compatible_with = [\"@platforms//os:macos\", \"@platforms//cpu:aarch64\"],\n    target_settings = [\":version_or_prefix_version_setting\"],\n    toolchain_type = \"@bazel_tools//tools/jdk:runtime_toolchain_type\",\n    toolchain = \"@remotejdk11_macos_aarch64//:jdk\",\n)\ntoolchain(\n    name = \"bootstrap_runtime_toolchain\",\n    # These constraints are not required for correctness, but prevent fetches of remote JDK for\n    # different architectures. As every Java compilation toolchain depends on a bootstrap runtime in\n    # the same configuration, this constraint will not result in toolchain resolution failures.\n    exec_compatible_with = [\"@platforms//os:macos\", \"@platforms//cpu:aarch64\"],\n    target_settings = [\":version_or_prefix_version_setting\"],\n    toolchain_type = \"@bazel_tools//tools/jdk:bootstrap_runtime_toolchain_type\",\n    toolchain = \"@remotejdk11_macos_aarch64//:jdk\",\n)\n"
-            }
-          },
-          "remotejdk11_linux_ppc64le_toolchain_config_repo": {
-            "bzlFile": "@@rules_java~7.1.0//toolchains:remote_java_repository.bzl",
-            "ruleClassName": "_toolchain_config",
-            "attributes": {
-              "name": "rules_java~7.1.0~toolchains~remotejdk11_linux_ppc64le_toolchain_config_repo",
-              "build_file": "\nconfig_setting(\n    name = \"prefix_version_setting\",\n    values = {\"java_runtime_version\": \"remotejdk_11\"},\n    visibility = [\"//visibility:private\"],\n)\nconfig_setting(\n    name = \"version_setting\",\n    values = {\"java_runtime_version\": \"11\"},\n    visibility = [\"//visibility:private\"],\n)\nalias(\n    name = \"version_or_prefix_version_setting\",\n    actual = select({\n        \":version_setting\": \":version_setting\",\n        \"//conditions:default\": \":prefix_version_setting\",\n    }),\n    visibility = [\"//visibility:private\"],\n)\ntoolchain(\n    name = \"toolchain\",\n    target_compatible_with = [\"@platforms//os:linux\", \"@platforms//cpu:ppc\"],\n    target_settings = [\":version_or_prefix_version_setting\"],\n    toolchain_type = \"@bazel_tools//tools/jdk:runtime_toolchain_type\",\n    toolchain = \"@remotejdk11_linux_ppc64le//:jdk\",\n)\ntoolchain(\n    name = \"bootstrap_runtime_toolchain\",\n    # These constraints are not required for correctness, but prevent fetches of remote JDK for\n    # different architectures. As every Java compilation toolchain depends on a bootstrap runtime in\n    # the same configuration, this constraint will not result in toolchain resolution failures.\n    exec_compatible_with = [\"@platforms//os:linux\", \"@platforms//cpu:ppc\"],\n    target_settings = [\":version_or_prefix_version_setting\"],\n    toolchain_type = \"@bazel_tools//tools/jdk:bootstrap_runtime_toolchain_type\",\n    toolchain = \"@remotejdk11_linux_ppc64le//:jdk\",\n)\n"
-            }
-          },
-          "remotejdk21_linux": {
-            "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
-            "ruleClassName": "http_archive",
-            "attributes": {
-              "name": "rules_java~7.1.0~toolchains~remotejdk21_linux",
-              "build_file_content": "load(\"@rules_java//java:defs.bzl\", \"java_runtime\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\nexports_files([\"WORKSPACE\", \"BUILD.bazel\"])\n\nfilegroup(\n    name = \"jre\",\n    srcs = glob(\n        [\n            \"jre/bin/**\",\n            \"jre/lib/**\",\n        ],\n        allow_empty = True,\n        # In some configurations, Java browser plugin is considered harmful and\n        # common antivirus software blocks access to npjp2.dll interfering with Bazel,\n        # so do not include it in JRE on Windows.\n        exclude = [\"jre/bin/plugin2/**\"],\n    ),\n)\n\nfilegroup(\n    name = \"jdk-bin\",\n    srcs = glob(\n        [\"bin/**\"],\n        # The JDK on Windows sometimes contains a directory called\n        # \"%systemroot%\", which is not a valid label.\n        exclude = [\"**/*%*/**\"],\n    ),\n)\n\n# This folder holds security policies.\nfilegroup(\n    name = \"jdk-conf\",\n    srcs = glob(\n        [\"conf/**\"],\n        allow_empty = True,\n    ),\n)\n\nfilegroup(\n    name = \"jdk-include\",\n    srcs = glob(\n        [\"include/**\"],\n        allow_empty = True,\n    ),\n)\n\nfilegroup(\n    name = \"jdk-lib\",\n    srcs = glob(\n        [\"lib/**\", \"release\"],\n        allow_empty = True,\n        exclude = [\n            \"lib/missioncontrol/**\",\n            \"lib/visualvm/**\",\n        ],\n    ),\n)\n\njava_runtime(\n    name = \"jdk\",\n    srcs = [\n        \":jdk-bin\",\n        \":jdk-conf\",\n        \":jdk-include\",\n        \":jdk-lib\",\n        \":jre\",\n    ],\n    # Provide the 'java` binary explicitly so that the correct path is used by\n    # Bazel even when the host platform differs from the execution platform.\n    # Exactly one of the two globs will be empty depending on the host platform.\n    # When --incompatible_disallow_empty_glob is enabled, each individual empty\n    # glob will fail without allow_empty = True, even if the overall result is\n    # non-empty.\n    java = glob([\"bin/java.exe\", \"bin/java\"], allow_empty = True)[0],\n    version = 21,\n)\n",
-              "sha256": "0c0eadfbdc47a7ca64aeab51b9c061f71b6e4d25d2d87674512e9b6387e9e3a6",
-              "strip_prefix": "zulu21.28.85-ca-jdk21.0.0-linux_x64",
+              "build_file_content": "\nexports_files(\n    [\n        \"bin/libgio-2.0-0.dll\",\n        \"bin/libglib-2.0-0.dll\",\n        \"bin/libgmodule-2.0-0.dll\",\n        \"bin/libgobject-2.0-0.dll\",\n        \"bin/libgthread-2.0-0.dll\",\n    ],\n    visibility = [\"//visibility:public\"],\n)\n        ",
+              "sha256": "88d857087e86f16a9be651ee7021880b3f7ba050d34a1ed9f06113b8799cb973",
               "urls": [
-                "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu21.28.85-ca-jdk21.0.0-linux_x64.tar.gz",
-                "https://cdn.azul.com/zulu/bin/zulu21.28.85-ca-jdk21.0.0-linux_x64.tar.gz"
+                "https://download.gnome.org/binaries/win64/glib/2.26/glib_2.26.1-1_win64.zip"
               ]
             }
           },
-          "remote_java_tools_linux": {
-            "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
-            "ruleClassName": "http_archive",
+          "gettext_runtime": {
+            "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive",
             "attributes": {
-              "name": "rules_java~7.1.0~toolchains~remote_java_tools_linux",
-              "sha256": "d134da9b04c9023fb6e56a5d4bffccee73f7bc9572ddc4e747778dacccd7a5a7",
+              "build_file_content": "\ncc_import(\n    name = \"gettext_runtime\",\n    shared_library = \"bin/libintl-8.dll\",\n    visibility = [\"//visibility:public\"],\n)\n        ",
+              "sha256": "1f4269c0e021076d60a54e98da6f978a3195013f6de21674ba0edbc339c5b079",
               "urls": [
-                "https://mirror.bazel.build/bazel_java_tools/releases/java/v13.1/java_tools_linux-v13.1.zip",
-                "https://github.com/bazelbuild/java_tools/releases/download/java_v13.1/java_tools_linux-v13.1.zip"
+                "https://download.gnome.org/binaries/win64/dependencies/gettext-runtime_0.18.1.1-2_win64.zip"
               ]
             }
           },
-          "remotejdk21_win": {
-            "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
-            "ruleClassName": "http_archive",
+          "pkgconfig_src": {
+            "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive",
             "attributes": {
-              "name": "rules_java~7.1.0~toolchains~remotejdk21_win",
-              "build_file_content": "load(\"@rules_java//java:defs.bzl\", \"java_runtime\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\nexports_files([\"WORKSPACE\", \"BUILD.bazel\"])\n\nfilegroup(\n    name = \"jre\",\n    srcs = glob(\n        [\n            \"jre/bin/**\",\n            \"jre/lib/**\",\n        ],\n        allow_empty = True,\n        # In some configurations, Java browser plugin is considered harmful and\n        # common antivirus software blocks access to npjp2.dll interfering with Bazel,\n        # so do not include it in JRE on Windows.\n        exclude = [\"jre/bin/plugin2/**\"],\n    ),\n)\n\nfilegroup(\n    name = \"jdk-bin\",\n    srcs = glob(\n        [\"bin/**\"],\n        # The JDK on Windows sometimes contains a directory called\n        # \"%systemroot%\", which is not a valid label.\n        exclude = [\"**/*%*/**\"],\n    ),\n)\n\n# This folder holds security policies.\nfilegroup(\n    name = \"jdk-conf\",\n    srcs = glob(\n        [\"conf/**\"],\n        allow_empty = True,\n    ),\n)\n\nfilegroup(\n    name = \"jdk-include\",\n    srcs = glob(\n        [\"include/**\"],\n        allow_empty = True,\n    ),\n)\n\nfilegroup(\n    name = \"jdk-lib\",\n    srcs = glob(\n        [\"lib/**\", \"release\"],\n        allow_empty = True,\n        exclude = [\n            \"lib/missioncontrol/**\",\n            \"lib/visualvm/**\",\n        ],\n    ),\n)\n\njava_runtime(\n    name = \"jdk\",\n    srcs = [\n        \":jdk-bin\",\n        \":jdk-conf\",\n        \":jdk-include\",\n        \":jdk-lib\",\n        \":jre\",\n    ],\n    # Provide the 'java` binary explicitly so that the correct path is used by\n    # Bazel even when the host platform differs from the execution platform.\n    # Exactly one of the two globs will be empty depending on the host platform.\n    # When --incompatible_disallow_empty_glob is enabled, each individual empty\n    # glob will fail without allow_empty = True, even if the overall result is\n    # non-empty.\n    java = glob([\"bin/java.exe\", \"bin/java\"], allow_empty = True)[0],\n    version = 21,\n)\n",
-              "sha256": "e9959d500a0d9a7694ac243baf657761479da132f0f94720cbffd092150bd802",
-              "strip_prefix": "zulu21.28.85-ca-jdk21.0.0-win_x64",
+              "build_file_content": "filegroup(\n    name = \"all_srcs\",\n    srcs = glob([\"**\"]),\n    visibility = [\"//visibility:public\"],\n)\n",
+              "sha256": "6fc69c01688c9458a57eb9a1664c9aba372ccda420a02bf4429fe610e7e7d591",
+              "strip_prefix": "pkg-config-0.29.2",
+              "patches": [
+                "@@rules_foreign_cc+//toolchains:pkgconfig-detectenv.patch",
+                "@@rules_foreign_cc+//toolchains:pkgconfig-makefile-vc.patch"
+              ],
               "urls": [
-                "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu21.28.85-ca-jdk21.0.0-win_x64.zip",
-                "https://cdn.azul.com/zulu/bin/zulu21.28.85-ca-jdk21.0.0-win_x64.zip"
+                "https://pkgconfig.freedesktop.org/releases/pkg-config-0.29.2.tar.gz"
               ]
             }
           },
-          "remotejdk21_linux_aarch64": {
-            "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
-            "ruleClassName": "http_archive",
+          "bazel_skylib": {
+            "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive",
             "attributes": {
-              "name": "rules_java~7.1.0~toolchains~remotejdk21_linux_aarch64",
-              "build_file_content": "load(\"@rules_java//java:defs.bzl\", \"java_runtime\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\nexports_files([\"WORKSPACE\", \"BUILD.bazel\"])\n\nfilegroup(\n    name = \"jre\",\n    srcs = glob(\n        [\n            \"jre/bin/**\",\n            \"jre/lib/**\",\n        ],\n        allow_empty = True,\n        # In some configurations, Java browser plugin is considered harmful and\n        # common antivirus software blocks access to npjp2.dll interfering with Bazel,\n        # so do not include it in JRE on Windows.\n        exclude = [\"jre/bin/plugin2/**\"],\n    ),\n)\n\nfilegroup(\n    name = \"jdk-bin\",\n    srcs = glob(\n        [\"bin/**\"],\n        # The JDK on Windows sometimes contains a directory called\n        # \"%systemroot%\", which is not a valid label.\n        exclude = [\"**/*%*/**\"],\n    ),\n)\n\n# This folder holds security policies.\nfilegroup(\n    name = \"jdk-conf\",\n    srcs = glob(\n        [\"conf/**\"],\n        allow_empty = True,\n    ),\n)\n\nfilegroup(\n    name = \"jdk-include\",\n    srcs = glob(\n        [\"include/**\"],\n        allow_empty = True,\n    ),\n)\n\nfilegroup(\n    name = \"jdk-lib\",\n    srcs = glob(\n        [\"lib/**\", \"release\"],\n        allow_empty = True,\n        exclude = [\n            \"lib/missioncontrol/**\",\n            \"lib/visualvm/**\",\n        ],\n    ),\n)\n\njava_runtime(\n    name = \"jdk\",\n    srcs = [\n        \":jdk-bin\",\n        \":jdk-conf\",\n        \":jdk-include\",\n        \":jdk-lib\",\n        \":jre\",\n    ],\n    # Provide the 'java` binary explicitly so that the correct path is used by\n    # Bazel even when the host platform differs from the execution platform.\n    # Exactly one of the two globs will be empty depending on the host platform.\n    # When --incompatible_disallow_empty_glob is enabled, each individual empty\n    # glob will fail without allow_empty = True, even if the overall result is\n    # non-empty.\n    java = glob([\"bin/java.exe\", \"bin/java\"], allow_empty = True)[0],\n    version = 21,\n)\n",
-              "sha256": "1fb64b8036c5d463d8ab59af06bf5b6b006811e6012e3b0eb6bccf57f1c55835",
-              "strip_prefix": "zulu21.28.85-ca-jdk21.0.0-linux_aarch64",
               "urls": [
-                "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu21.28.85-ca-jdk21.0.0-linux_aarch64.tar.gz",
-                "https://cdn.azul.com/zulu/bin/zulu21.28.85-ca-jdk21.0.0-linux_aarch64.tar.gz"
-              ]
+                "https://mirror.bazel.build/github.com/bazelbuild/bazel-skylib/releases/download/1.2.1/bazel-skylib-1.2.1.tar.gz",
+                "https://github.com/bazelbuild/bazel-skylib/releases/download/1.2.1/bazel-skylib-1.2.1.tar.gz"
+              ],
+              "sha256": "f7be3474d42aae265405a592bb7da8e171919d74c16f082a5457840f06054728"
             }
           },
-          "remotejdk11_linux_aarch64_toolchain_config_repo": {
-            "bzlFile": "@@rules_java~7.1.0//toolchains:remote_java_repository.bzl",
-            "ruleClassName": "_toolchain_config",
+          "rules_python": {
+            "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive",
             "attributes": {
-              "name": "rules_java~7.1.0~toolchains~remotejdk11_linux_aarch64_toolchain_config_repo",
-              "build_file": "\nconfig_setting(\n    name = \"prefix_version_setting\",\n    values = {\"java_runtime_version\": \"remotejdk_11\"},\n    visibility = [\"//visibility:private\"],\n)\nconfig_setting(\n    name = \"version_setting\",\n    values = {\"java_runtime_version\": \"11\"},\n    visibility = [\"//visibility:private\"],\n)\nalias(\n    name = \"version_or_prefix_version_setting\",\n    actual = select({\n        \":version_setting\": \":version_setting\",\n        \"//conditions:default\": \":prefix_version_setting\",\n    }),\n    visibility = [\"//visibility:private\"],\n)\ntoolchain(\n    name = \"toolchain\",\n    target_compatible_with = [\"@platforms//os:linux\", \"@platforms//cpu:aarch64\"],\n    target_settings = [\":version_or_prefix_version_setting\"],\n    toolchain_type = \"@bazel_tools//tools/jdk:runtime_toolchain_type\",\n    toolchain = \"@remotejdk11_linux_aarch64//:jdk\",\n)\ntoolchain(\n    name = \"bootstrap_runtime_toolchain\",\n    # These constraints are not required for correctness, but prevent fetches of remote JDK for\n    # different architectures. As every Java compilation toolchain depends on a bootstrap runtime in\n    # the same configuration, this constraint will not result in toolchain resolution failures.\n    exec_compatible_with = [\"@platforms//os:linux\", \"@platforms//cpu:aarch64\"],\n    target_settings = [\":version_or_prefix_version_setting\"],\n    toolchain_type = \"@bazel_tools//tools/jdk:bootstrap_runtime_toolchain_type\",\n    toolchain = \"@remotejdk11_linux_aarch64//:jdk\",\n)\n"
+              "sha256": "84aec9e21cc56fbc7f1335035a71c850d1b9b5cc6ff497306f84cced9a769841",
+              "strip_prefix": "rules_python-0.23.1",
+              "url": "https://github.com/bazelbuild/rules_python/archive/refs/tags/0.23.1.tar.gz"
             }
           },
-          "remotejdk11_linux_s390x": {
-            "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
-            "ruleClassName": "http_archive",
+          "cmake-3.23.2-linux-aarch64": {
+            "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive",
             "attributes": {
-              "name": "rules_java~7.1.0~toolchains~remotejdk11_linux_s390x",
-              "build_file_content": "load(\"@rules_java//java:defs.bzl\", \"java_runtime\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\nexports_files([\"WORKSPACE\", \"BUILD.bazel\"])\n\nfilegroup(\n    name = \"jre\",\n    srcs = glob(\n        [\n            \"jre/bin/**\",\n            \"jre/lib/**\",\n        ],\n        allow_empty = True,\n        # In some configurations, Java browser plugin is considered harmful and\n        # common antivirus software blocks access to npjp2.dll interfering with Bazel,\n        # so do not include it in JRE on Windows.\n        exclude = [\"jre/bin/plugin2/**\"],\n    ),\n)\n\nfilegroup(\n    name = \"jdk-bin\",\n    srcs = glob(\n        [\"bin/**\"],\n        # The JDK on Windows sometimes contains a directory called\n        # \"%systemroot%\", which is not a valid label.\n        exclude = [\"**/*%*/**\"],\n    ),\n)\n\n# This folder holds security policies.\nfilegroup(\n    name = \"jdk-conf\",\n    srcs = glob(\n        [\"conf/**\"],\n        allow_empty = True,\n    ),\n)\n\nfilegroup(\n    name = \"jdk-include\",\n    srcs = glob(\n        [\"include/**\"],\n        allow_empty = True,\n    ),\n)\n\nfilegroup(\n    name = \"jdk-lib\",\n    srcs = glob(\n        [\"lib/**\", \"release\"],\n        allow_empty = True,\n        exclude = [\n            \"lib/missioncontrol/**\",\n            \"lib/visualvm/**\",\n        ],\n    ),\n)\n\njava_runtime(\n    name = \"jdk\",\n    srcs = [\n        \":jdk-bin\",\n        \":jdk-conf\",\n        \":jdk-include\",\n        \":jdk-lib\",\n        \":jre\",\n    ],\n    # Provide the 'java` binary explicitly so that the correct path is used by\n    # Bazel even when the host platform differs from the execution platform.\n    # Exactly one of the two globs will be empty depending on the host platform.\n    # When --incompatible_disallow_empty_glob is enabled, each individual empty\n    # glob will fail without allow_empty = True, even if the overall result is\n    # non-empty.\n    java = glob([\"bin/java.exe\", \"bin/java\"], allow_empty = True)[0],\n    version = 11,\n)\n",
-              "sha256": "a58fc0361966af0a5d5a31a2d8a208e3c9bb0f54f345596fd80b99ea9a39788b",
-              "strip_prefix": "jdk-11.0.15+10",
               "urls": [
-                "https://mirror.bazel.build/github.com/adoptium/temurin11-binaries/releases/download/jdk-11.0.15+10/OpenJDK11U-jdk_s390x_linux_hotspot_11.0.15_10.tar.gz",
-                "https://github.com/adoptium/temurin11-binaries/releases/download/jdk-11.0.15+10/OpenJDK11U-jdk_s390x_linux_hotspot_11.0.15_10.tar.gz"
-              ]
+                "https://github.com/Kitware/CMake/releases/download/v3.23.2/cmake-3.23.2-linux-aarch64.tar.gz"
+              ],
+              "sha256": "f2654bf780b53f170bbbec44d8ac67d401d24788e590faa53036a89476efa91e",
+              "strip_prefix": "cmake-3.23.2-linux-aarch64",
+              "build_file_content": "load(\"@rules_foreign_cc//toolchains/native_tools:native_tools_toolchain.bzl\", \"native_tool_toolchain\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\nfilegroup(\n    name = \"cmake_data\",\n    srcs = glob(\n        [\n            \"**\",\n        ],\n        exclude = [\n            \"WORKSPACE\",\n            \"WORKSPACE.bazel\",\n            \"BUILD\",\n            \"BUILD.bazel\",\n        ],\n    ),\n)\n\nnative_tool_toolchain(\n    name = \"cmake_tool\",\n    path = \"bin/cmake\",\n    target = \":cmake_data\",\n)\n"
             }
           },
-          "remotejdk17_linux_aarch64": {
-            "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
-            "ruleClassName": "http_archive",
+          "cmake-3.23.2-linux-x86_64": {
+            "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive",
             "attributes": {
-              "name": "rules_java~7.1.0~toolchains~remotejdk17_linux_aarch64",
-              "build_file_content": "load(\"@rules_java//java:defs.bzl\", \"java_runtime\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\nexports_files([\"WORKSPACE\", \"BUILD.bazel\"])\n\nfilegroup(\n    name = \"jre\",\n    srcs = glob(\n        [\n            \"jre/bin/**\",\n            \"jre/lib/**\",\n        ],\n        allow_empty = True,\n        # In some configurations, Java browser plugin is considered harmful and\n        # common antivirus software blocks access to npjp2.dll interfering with Bazel,\n        # so do not include it in JRE on Windows.\n        exclude = [\"jre/bin/plugin2/**\"],\n    ),\n)\n\nfilegroup(\n    name = \"jdk-bin\",\n    srcs = glob(\n        [\"bin/**\"],\n        # The JDK on Windows sometimes contains a directory called\n        # \"%systemroot%\", which is not a valid label.\n        exclude = [\"**/*%*/**\"],\n    ),\n)\n\n# This folder holds security policies.\nfilegroup(\n    name = \"jdk-conf\",\n    srcs = glob(\n        [\"conf/**\"],\n        allow_empty = True,\n    ),\n)\n\nfilegroup(\n    name = \"jdk-include\",\n    srcs = glob(\n        [\"include/**\"],\n        allow_empty = True,\n    ),\n)\n\nfilegroup(\n    name = \"jdk-lib\",\n    srcs = glob(\n        [\"lib/**\", \"release\"],\n        allow_empty = True,\n        exclude = [\n            \"lib/missioncontrol/**\",\n            \"lib/visualvm/**\",\n        ],\n    ),\n)\n\njava_runtime(\n    name = \"jdk\",\n    srcs = [\n        \":jdk-bin\",\n        \":jdk-conf\",\n        \":jdk-include\",\n        \":jdk-lib\",\n        \":jre\",\n    ],\n    # Provide the 'java` binary explicitly so that the correct path is used by\n    # Bazel even when the host platform differs from the execution platform.\n    # Exactly one of the two globs will be empty depending on the host platform.\n    # When --incompatible_disallow_empty_glob is enabled, each individual empty\n    # glob will fail without allow_empty = True, even if the overall result is\n    # non-empty.\n    java = glob([\"bin/java.exe\", \"bin/java\"], allow_empty = True)[0],\n    version = 17,\n)\n",
-              "sha256": "6531cef61e416d5a7b691555c8cf2bdff689201b8a001ff45ab6740062b44313",
-              "strip_prefix": "zulu17.44.53-ca-jdk17.0.8.1-linux_aarch64",
               "urls": [
-                "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu17.44.53-ca-jdk17.0.8.1-linux_aarch64.tar.gz",
-                "https://cdn.azul.com/zulu/bin/zulu17.44.53-ca-jdk17.0.8.1-linux_aarch64.tar.gz"
-              ]
+                "https://github.com/Kitware/CMake/releases/download/v3.23.2/cmake-3.23.2-linux-x86_64.tar.gz"
+              ],
+              "sha256": "aaced6f745b86ce853661a595bdac6c5314a60f8181b6912a0a4920acfa32708",
+              "strip_prefix": "cmake-3.23.2-linux-x86_64",
+              "build_file_content": "load(\"@rules_foreign_cc//toolchains/native_tools:native_tools_toolchain.bzl\", \"native_tool_toolchain\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\nfilegroup(\n    name = \"cmake_data\",\n    srcs = glob(\n        [\n            \"**\",\n        ],\n        exclude = [\n            \"WORKSPACE\",\n            \"WORKSPACE.bazel\",\n            \"BUILD\",\n            \"BUILD.bazel\",\n        ],\n    ),\n)\n\nnative_tool_toolchain(\n    name = \"cmake_tool\",\n    path = \"bin/cmake\",\n    target = \":cmake_data\",\n)\n"
             }
           },
-          "remotejdk17_win_arm64_toolchain_config_repo": {
-            "bzlFile": "@@rules_java~7.1.0//toolchains:remote_java_repository.bzl",
-            "ruleClassName": "_toolchain_config",
+          "cmake-3.23.2-macos-universal": {
+            "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive",
             "attributes": {
-              "name": "rules_java~7.1.0~toolchains~remotejdk17_win_arm64_toolchain_config_repo",
-              "build_file": "\nconfig_setting(\n    name = \"prefix_version_setting\",\n    values = {\"java_runtime_version\": \"remotejdk_17\"},\n    visibility = [\"//visibility:private\"],\n)\nconfig_setting(\n    name = \"version_setting\",\n    values = {\"java_runtime_version\": \"17\"},\n    visibility = [\"//visibility:private\"],\n)\nalias(\n    name = \"version_or_prefix_version_setting\",\n    actual = select({\n        \":version_setting\": \":version_setting\",\n        \"//conditions:default\": \":prefix_version_setting\",\n    }),\n    visibility = [\"//visibility:private\"],\n)\ntoolchain(\n    name = \"toolchain\",\n    target_compatible_with = [\"@platforms//os:windows\", \"@platforms//cpu:arm64\"],\n    target_settings = [\":version_or_prefix_version_setting\"],\n    toolchain_type = \"@bazel_tools//tools/jdk:runtime_toolchain_type\",\n    toolchain = \"@remotejdk17_win_arm64//:jdk\",\n)\ntoolchain(\n    name = \"bootstrap_runtime_toolchain\",\n    # These constraints are not required for correctness, but prevent fetches of remote JDK for\n    # different architectures. As every Java compilation toolchain depends on a bootstrap runtime in\n    # the same configuration, this constraint will not result in toolchain resolution failures.\n    exec_compatible_with = [\"@platforms//os:windows\", \"@platforms//cpu:arm64\"],\n    target_settings = [\":version_or_prefix_version_setting\"],\n    toolchain_type = \"@bazel_tools//tools/jdk:bootstrap_runtime_toolchain_type\",\n    toolchain = \"@remotejdk17_win_arm64//:jdk\",\n)\n"
-            }
-          },
-          "remotejdk11_linux": {
-            "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
-            "ruleClassName": "http_archive",
-            "attributes": {
-              "name": "rules_java~7.1.0~toolchains~remotejdk11_linux",
-              "build_file_content": "load(\"@rules_java//java:defs.bzl\", \"java_runtime\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\nexports_files([\"WORKSPACE\", \"BUILD.bazel\"])\n\nfilegroup(\n    name = \"jre\",\n    srcs = glob(\n        [\n            \"jre/bin/**\",\n            \"jre/lib/**\",\n        ],\n        allow_empty = True,\n        # In some configurations, Java browser plugin is considered harmful and\n        # common antivirus software blocks access to npjp2.dll interfering with Bazel,\n        # so do not include it in JRE on Windows.\n        exclude = [\"jre/bin/plugin2/**\"],\n    ),\n)\n\nfilegroup(\n    name = \"jdk-bin\",\n    srcs = glob(\n        [\"bin/**\"],\n        # The JDK on Windows sometimes contains a directory called\n        # \"%systemroot%\", which is not a valid label.\n        exclude = [\"**/*%*/**\"],\n    ),\n)\n\n# This folder holds security policies.\nfilegroup(\n    name = \"jdk-conf\",\n    srcs = glob(\n        [\"conf/**\"],\n        allow_empty = True,\n    ),\n)\n\nfilegroup(\n    name = \"jdk-include\",\n    srcs = glob(\n        [\"include/**\"],\n        allow_empty = True,\n    ),\n)\n\nfilegroup(\n    name = \"jdk-lib\",\n    srcs = glob(\n        [\"lib/**\", \"release\"],\n        allow_empty = True,\n        exclude = [\n            \"lib/missioncontrol/**\",\n            \"lib/visualvm/**\",\n        ],\n    ),\n)\n\njava_runtime(\n    name = \"jdk\",\n    srcs = [\n        \":jdk-bin\",\n        \":jdk-conf\",\n        \":jdk-include\",\n        \":jdk-lib\",\n        \":jre\",\n    ],\n    # Provide the 'java` binary explicitly so that the correct path is used by\n    # Bazel even when the host platform differs from the execution platform.\n    # Exactly one of the two globs will be empty depending on the host platform.\n    # When --incompatible_disallow_empty_glob is enabled, each individual empty\n    # glob will fail without allow_empty = True, even if the overall result is\n    # non-empty.\n    java = glob([\"bin/java.exe\", \"bin/java\"], allow_empty = True)[0],\n    version = 11,\n)\n",
-              "sha256": "a34b404f87a08a61148b38e1416d837189e1df7a040d949e743633daf4695a3c",
-              "strip_prefix": "zulu11.66.15-ca-jdk11.0.20-linux_x64",
               "urls": [
-                "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu11.66.15-ca-jdk11.0.20-linux_x64.tar.gz",
-                "https://cdn.azul.com/zulu/bin/zulu11.66.15-ca-jdk11.0.20-linux_x64.tar.gz"
-              ]
-            }
-          },
-          "remotejdk11_macos_toolchain_config_repo": {
-            "bzlFile": "@@rules_java~7.1.0//toolchains:remote_java_repository.bzl",
-            "ruleClassName": "_toolchain_config",
-            "attributes": {
-              "name": "rules_java~7.1.0~toolchains~remotejdk11_macos_toolchain_config_repo",
-              "build_file": "\nconfig_setting(\n    name = \"prefix_version_setting\",\n    values = {\"java_runtime_version\": \"remotejdk_11\"},\n    visibility = [\"//visibility:private\"],\n)\nconfig_setting(\n    name = \"version_setting\",\n    values = {\"java_runtime_version\": \"11\"},\n    visibility = [\"//visibility:private\"],\n)\nalias(\n    name = \"version_or_prefix_version_setting\",\n    actual = select({\n        \":version_setting\": \":version_setting\",\n        \"//conditions:default\": \":prefix_version_setting\",\n    }),\n    visibility = [\"//visibility:private\"],\n)\ntoolchain(\n    name = \"toolchain\",\n    target_compatible_with = [\"@platforms//os:macos\", \"@platforms//cpu:x86_64\"],\n    target_settings = [\":version_or_prefix_version_setting\"],\n    toolchain_type = \"@bazel_tools//tools/jdk:runtime_toolchain_type\",\n    toolchain = \"@remotejdk11_macos//:jdk\",\n)\ntoolchain(\n    name = \"bootstrap_runtime_toolchain\",\n    # These constraints are not required for correctness, but prevent fetches of remote JDK for\n    # different architectures. As every Java compilation toolchain depends on a bootstrap runtime in\n    # the same configuration, this constraint will not result in toolchain resolution failures.\n    exec_compatible_with = [\"@platforms//os:macos\", \"@platforms//cpu:x86_64\"],\n    target_settings = [\":version_or_prefix_version_setting\"],\n    toolchain_type = \"@bazel_tools//tools/jdk:bootstrap_runtime_toolchain_type\",\n    toolchain = \"@remotejdk11_macos//:jdk\",\n)\n"
-            }
-          },
-          "remotejdk17_linux_ppc64le_toolchain_config_repo": {
-            "bzlFile": "@@rules_java~7.1.0//toolchains:remote_java_repository.bzl",
-            "ruleClassName": "_toolchain_config",
-            "attributes": {
-              "name": "rules_java~7.1.0~toolchains~remotejdk17_linux_ppc64le_toolchain_config_repo",
-              "build_file": "\nconfig_setting(\n    name = \"prefix_version_setting\",\n    values = {\"java_runtime_version\": \"remotejdk_17\"},\n    visibility = [\"//visibility:private\"],\n)\nconfig_setting(\n    name = \"version_setting\",\n    values = {\"java_runtime_version\": \"17\"},\n    visibility = [\"//visibility:private\"],\n)\nalias(\n    name = \"version_or_prefix_version_setting\",\n    actual = select({\n        \":version_setting\": \":version_setting\",\n        \"//conditions:default\": \":prefix_version_setting\",\n    }),\n    visibility = [\"//visibility:private\"],\n)\ntoolchain(\n    name = \"toolchain\",\n    target_compatible_with = [\"@platforms//os:linux\", \"@platforms//cpu:ppc\"],\n    target_settings = [\":version_or_prefix_version_setting\"],\n    toolchain_type = \"@bazel_tools//tools/jdk:runtime_toolchain_type\",\n    toolchain = \"@remotejdk17_linux_ppc64le//:jdk\",\n)\ntoolchain(\n    name = \"bootstrap_runtime_toolchain\",\n    # These constraints are not required for correctness, but prevent fetches of remote JDK for\n    # different architectures. As every Java compilation toolchain depends on a bootstrap runtime in\n    # the same configuration, this constraint will not result in toolchain resolution failures.\n    exec_compatible_with = [\"@platforms//os:linux\", \"@platforms//cpu:ppc\"],\n    target_settings = [\":version_or_prefix_version_setting\"],\n    toolchain_type = \"@bazel_tools//tools/jdk:bootstrap_runtime_toolchain_type\",\n    toolchain = \"@remotejdk17_linux_ppc64le//:jdk\",\n)\n"
+                "https://github.com/Kitware/CMake/releases/download/v3.23.2/cmake-3.23.2-macos-universal.tar.gz"
+              ],
+              "sha256": "853a0f9af148c5ef47282ffffee06c4c9f257be2635936755f39ca13c3286c88",
+              "strip_prefix": "cmake-3.23.2-macos-universal/CMake.app/Contents",
+              "build_file_content": "load(\"@rules_foreign_cc//toolchains/native_tools:native_tools_toolchain.bzl\", \"native_tool_toolchain\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\nfilegroup(\n    name = \"cmake_data\",\n    srcs = glob(\n        [\n            \"**\",\n        ],\n        exclude = [\n            \"WORKSPACE\",\n            \"WORKSPACE.bazel\",\n            \"BUILD\",\n            \"BUILD.bazel\",\n        ],\n    ),\n)\n\nnative_tool_toolchain(\n    name = \"cmake_tool\",\n    path = \"bin/cmake\",\n    target = \":cmake_data\",\n)\n"
             }
           },
-          "remotejdk17_win_arm64": {
-            "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
-            "ruleClassName": "http_archive",
+          "cmake-3.23.2-windows-i386": {
+            "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive",
             "attributes": {
-              "name": "rules_java~7.1.0~toolchains~remotejdk17_win_arm64",
-              "build_file_content": "load(\"@rules_java//java:defs.bzl\", \"java_runtime\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\nexports_files([\"WORKSPACE\", \"BUILD.bazel\"])\n\nfilegroup(\n    name = \"jre\",\n    srcs = glob(\n        [\n            \"jre/bin/**\",\n            \"jre/lib/**\",\n        ],\n        allow_empty = True,\n        # In some configurations, Java browser plugin is considered harmful and\n        # common antivirus software blocks access to npjp2.dll interfering with Bazel,\n        # so do not include it in JRE on Windows.\n        exclude = [\"jre/bin/plugin2/**\"],\n    ),\n)\n\nfilegroup(\n    name = \"jdk-bin\",\n    srcs = glob(\n        [\"bin/**\"],\n        # The JDK on Windows sometimes contains a directory called\n        # \"%systemroot%\", which is not a valid label.\n        exclude = [\"**/*%*/**\"],\n    ),\n)\n\n# This folder holds security policies.\nfilegroup(\n    name = \"jdk-conf\",\n    srcs = glob(\n        [\"conf/**\"],\n        allow_empty = True,\n    ),\n)\n\nfilegroup(\n    name = \"jdk-include\",\n    srcs = glob(\n        [\"include/**\"],\n        allow_empty = True,\n    ),\n)\n\nfilegroup(\n    name = \"jdk-lib\",\n    srcs = glob(\n        [\"lib/**\", \"release\"],\n        allow_empty = True,\n        exclude = [\n            \"lib/missioncontrol/**\",\n            \"lib/visualvm/**\",\n        ],\n    ),\n)\n\njava_runtime(\n    name = \"jdk\",\n    srcs = [\n        \":jdk-bin\",\n        \":jdk-conf\",\n        \":jdk-include\",\n        \":jdk-lib\",\n        \":jre\",\n    ],\n    # Provide the 'java` binary explicitly so that the correct path is used by\n    # Bazel even when the host platform differs from the execution platform.\n    # Exactly one of the two globs will be empty depending on the host platform.\n    # When --incompatible_disallow_empty_glob is enabled, each individual empty\n    # glob will fail without allow_empty = True, even if the overall result is\n    # non-empty.\n    java = glob([\"bin/java.exe\", \"bin/java\"], allow_empty = True)[0],\n    version = 17,\n)\n",
-              "sha256": "6802c99eae0d788e21f52d03cab2e2b3bf42bc334ca03cbf19f71eb70ee19f85",
-              "strip_prefix": "zulu17.44.53-ca-jdk17.0.8.1-win_aarch64",
               "urls": [
-                "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu17.44.53-ca-jdk17.0.8.1-win_aarch64.zip",
-                "https://cdn.azul.com/zulu/bin/zulu17.44.53-ca-jdk17.0.8.1-win_aarch64.zip"
-              ]
+                "https://github.com/Kitware/CMake/releases/download/v3.23.2/cmake-3.23.2-windows-i386.zip"
+              ],
+              "sha256": "6a4fcd6a2315b93cb23c93507efccacc30c449c2bf98f14d6032bb226c582e07",
+              "strip_prefix": "cmake-3.23.2-windows-i386",
+              "build_file_content": "load(\"@rules_foreign_cc//toolchains/native_tools:native_tools_toolchain.bzl\", \"native_tool_toolchain\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\nfilegroup(\n    name = \"cmake_data\",\n    srcs = glob(\n        [\n            \"**\",\n        ],\n        exclude = [\n            \"WORKSPACE\",\n            \"WORKSPACE.bazel\",\n            \"BUILD\",\n            \"BUILD.bazel\",\n        ],\n    ),\n)\n\nnative_tool_toolchain(\n    name = \"cmake_tool\",\n    path = \"bin/cmake.exe\",\n    target = \":cmake_data\",\n)\n"
             }
           },
-          "remote_java_tools_darwin_arm64": {
-            "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
-            "ruleClassName": "http_archive",
+          "cmake-3.23.2-windows-x86_64": {
+            "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive",
             "attributes": {
-              "name": "rules_java~7.1.0~toolchains~remote_java_tools_darwin_arm64",
-              "sha256": "dab5bb87ec43e980faea6e1cec14bafb217b8e2f5346f53aa784fd715929a930",
               "urls": [
-                "https://mirror.bazel.build/bazel_java_tools/releases/java/v13.1/java_tools_darwin_arm64-v13.1.zip",
-                "https://github.com/bazelbuild/java_tools/releases/download/java_v13.1/java_tools_darwin_arm64-v13.1.zip"
-              ]
-            }
-          },
-          "remotejdk17_linux_ppc64le": {
-            "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
-            "ruleClassName": "http_archive",
+                "https://github.com/Kitware/CMake/releases/download/v3.23.2/cmake-3.23.2-windows-x86_64.zip"
+              ],
+              "sha256": "2329387f3166b84c25091c86389fb891193967740c9bcf01e7f6d3306f7ffda0",
+              "strip_prefix": "cmake-3.23.2-windows-x86_64",
+              "build_file_content": "load(\"@rules_foreign_cc//toolchains/native_tools:native_tools_toolchain.bzl\", \"native_tool_toolchain\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\nfilegroup(\n    name = \"cmake_data\",\n    srcs = glob(\n        [\n            \"**\",\n        ],\n        exclude = [\n            \"WORKSPACE\",\n            \"WORKSPACE.bazel\",\n            \"BUILD\",\n            \"BUILD.bazel\",\n        ],\n    ),\n)\n\nnative_tool_toolchain(\n    name = \"cmake_tool\",\n    path = \"bin/cmake.exe\",\n    target = \":cmake_data\",\n)\n"
+            }
+          },
+          "cmake_3.23.2_toolchains": {
+            "repoRuleId": "@@rules_foreign_cc+//toolchains:prebuilt_toolchains_repository.bzl%prebuilt_toolchains_repository",
+            "attributes": {
+              "repos": {
+                "cmake-3.23.2-linux-aarch64": [
+                  "@platforms//cpu:aarch64",
+                  "@platforms//os:linux"
+                ],
+                "cmake-3.23.2-linux-x86_64": [
+                  "@platforms//cpu:x86_64",
+                  "@platforms//os:linux"
+                ],
+                "cmake-3.23.2-macos-universal": [
+                  "@platforms//os:macos"
+                ],
+                "cmake-3.23.2-windows-i386": [
+                  "@platforms//cpu:x86_32",
+                  "@platforms//os:windows"
+                ],
+                "cmake-3.23.2-windows-x86_64": [
+                  "@platforms//cpu:x86_64",
+                  "@platforms//os:windows"
+                ]
+              },
+              "tool": "cmake"
+            }
+          },
+          "ninja_1.11.1_linux": {
+            "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive",
             "attributes": {
-              "name": "rules_java~7.1.0~toolchains~remotejdk17_linux_ppc64le",
-              "build_file_content": "load(\"@rules_java//java:defs.bzl\", \"java_runtime\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\nexports_files([\"WORKSPACE\", \"BUILD.bazel\"])\n\nfilegroup(\n    name = \"jre\",\n    srcs = glob(\n        [\n            \"jre/bin/**\",\n            \"jre/lib/**\",\n        ],\n        allow_empty = True,\n        # In some configurations, Java browser plugin is considered harmful and\n        # common antivirus software blocks access to npjp2.dll interfering with Bazel,\n        # so do not include it in JRE on Windows.\n        exclude = [\"jre/bin/plugin2/**\"],\n    ),\n)\n\nfilegroup(\n    name = \"jdk-bin\",\n    srcs = glob(\n        [\"bin/**\"],\n        # The JDK on Windows sometimes contains a directory called\n        # \"%systemroot%\", which is not a valid label.\n        exclude = [\"**/*%*/**\"],\n    ),\n)\n\n# This folder holds security policies.\nfilegroup(\n    name = \"jdk-conf\",\n    srcs = glob(\n        [\"conf/**\"],\n        allow_empty = True,\n    ),\n)\n\nfilegroup(\n    name = \"jdk-include\",\n    srcs = glob(\n        [\"include/**\"],\n        allow_empty = True,\n    ),\n)\n\nfilegroup(\n    name = \"jdk-lib\",\n    srcs = glob(\n        [\"lib/**\", \"release\"],\n        allow_empty = True,\n        exclude = [\n            \"lib/missioncontrol/**\",\n            \"lib/visualvm/**\",\n        ],\n    ),\n)\n\njava_runtime(\n    name = \"jdk\",\n    srcs = [\n        \":jdk-bin\",\n        \":jdk-conf\",\n        \":jdk-include\",\n        \":jdk-lib\",\n        \":jre\",\n    ],\n    # Provide the 'java` binary explicitly so that the correct path is used by\n    # Bazel even when the host platform differs from the execution platform.\n    # Exactly one of the two globs will be empty depending on the host platform.\n    # When --incompatible_disallow_empty_glob is enabled, each individual empty\n    # glob will fail without allow_empty = True, even if the overall result is\n    # non-empty.\n    java = glob([\"bin/java.exe\", \"bin/java\"], allow_empty = True)[0],\n    version = 17,\n)\n",
-              "sha256": "00a4c07603d0218cd678461b5b3b7e25b3253102da4022d31fc35907f21a2efd",
-              "strip_prefix": "jdk-17.0.8.1+1",
               "urls": [
-                "https://mirror.bazel.build/github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.8.1%2B1/OpenJDK17U-jdk_ppc64le_linux_hotspot_17.0.8.1_1.tar.gz",
-                "https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.8.1%2B1/OpenJDK17U-jdk_ppc64le_linux_hotspot_17.0.8.1_1.tar.gz"
-              ]
-            }
-          },
-          "remotejdk21_linux_aarch64_toolchain_config_repo": {
-            "bzlFile": "@@rules_java~7.1.0//toolchains:remote_java_repository.bzl",
-            "ruleClassName": "_toolchain_config",
-            "attributes": {
-              "name": "rules_java~7.1.0~toolchains~remotejdk21_linux_aarch64_toolchain_config_repo",
-              "build_file": "\nconfig_setting(\n    name = \"prefix_version_setting\",\n    values = {\"java_runtime_version\": \"remotejdk_21\"},\n    visibility = [\"//visibility:private\"],\n)\nconfig_setting(\n    name = \"version_setting\",\n    values = {\"java_runtime_version\": \"21\"},\n    visibility = [\"//visibility:private\"],\n)\nalias(\n    name = \"version_or_prefix_version_setting\",\n    actual = select({\n        \":version_setting\": \":version_setting\",\n        \"//conditions:default\": \":prefix_version_setting\",\n    }),\n    visibility = [\"//visibility:private\"],\n)\ntoolchain(\n    name = \"toolchain\",\n    target_compatible_with = [\"@platforms//os:linux\", \"@platforms//cpu:aarch64\"],\n    target_settings = [\":version_or_prefix_version_setting\"],\n    toolchain_type = \"@bazel_tools//tools/jdk:runtime_toolchain_type\",\n    toolchain = \"@remotejdk21_linux_aarch64//:jdk\",\n)\ntoolchain(\n    name = \"bootstrap_runtime_toolchain\",\n    # These constraints are not required for correctness, but prevent fetches of remote JDK for\n    # different architectures. As every Java compilation toolchain depends on a bootstrap runtime in\n    # the same configuration, this constraint will not result in toolchain resolution failures.\n    exec_compatible_with = [\"@platforms//os:linux\", \"@platforms//cpu:aarch64\"],\n    target_settings = [\":version_or_prefix_version_setting\"],\n    toolchain_type = \"@bazel_tools//tools/jdk:bootstrap_runtime_toolchain_type\",\n    toolchain = \"@remotejdk21_linux_aarch64//:jdk\",\n)\n"
-            }
-          },
-          "remotejdk11_win_arm64_toolchain_config_repo": {
-            "bzlFile": "@@rules_java~7.1.0//toolchains:remote_java_repository.bzl",
-            "ruleClassName": "_toolchain_config",
-            "attributes": {
-              "name": "rules_java~7.1.0~toolchains~remotejdk11_win_arm64_toolchain_config_repo",
-              "build_file": "\nconfig_setting(\n    name = \"prefix_version_setting\",\n    values = {\"java_runtime_version\": \"remotejdk_11\"},\n    visibility = [\"//visibility:private\"],\n)\nconfig_setting(\n    name = \"version_setting\",\n    values = {\"java_runtime_version\": \"11\"},\n    visibility = [\"//visibility:private\"],\n)\nalias(\n    name = \"version_or_prefix_version_setting\",\n    actual = select({\n        \":version_setting\": \":version_setting\",\n        \"//conditions:default\": \":prefix_version_setting\",\n    }),\n    visibility = [\"//visibility:private\"],\n)\ntoolchain(\n    name = \"toolchain\",\n    target_compatible_with = [\"@platforms//os:windows\", \"@platforms//cpu:arm64\"],\n    target_settings = [\":version_or_prefix_version_setting\"],\n    toolchain_type = \"@bazel_tools//tools/jdk:runtime_toolchain_type\",\n    toolchain = \"@remotejdk11_win_arm64//:jdk\",\n)\ntoolchain(\n    name = \"bootstrap_runtime_toolchain\",\n    # These constraints are not required for correctness, but prevent fetches of remote JDK for\n    # different architectures. As every Java compilation toolchain depends on a bootstrap runtime in\n    # the same configuration, this constraint will not result in toolchain resolution failures.\n    exec_compatible_with = [\"@platforms//os:windows\", \"@platforms//cpu:arm64\"],\n    target_settings = [\":version_or_prefix_version_setting\"],\n    toolchain_type = \"@bazel_tools//tools/jdk:bootstrap_runtime_toolchain_type\",\n    toolchain = \"@remotejdk11_win_arm64//:jdk\",\n)\n"
-            }
-          },
-          "local_jdk": {
-            "bzlFile": "@@rules_java~7.1.0//toolchains:local_java_repository.bzl",
-            "ruleClassName": "_local_java_repository_rule",
-            "attributes": {
-              "name": "rules_java~7.1.0~toolchains~local_jdk",
-              "java_home": "",
-              "version": "",
-              "build_file_content": "load(\"@rules_java//java:defs.bzl\", \"java_runtime\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\nexports_files([\"WORKSPACE\", \"BUILD.bazel\"])\n\nfilegroup(\n    name = \"jre\",\n    srcs = glob(\n        [\n            \"jre/bin/**\",\n            \"jre/lib/**\",\n        ],\n        allow_empty = True,\n        # In some configurations, Java browser plugin is considered harmful and\n        # common antivirus software blocks access to npjp2.dll interfering with Bazel,\n        # so do not include it in JRE on Windows.\n        exclude = [\"jre/bin/plugin2/**\"],\n    ),\n)\n\nfilegroup(\n    name = \"jdk-bin\",\n    srcs = glob(\n        [\"bin/**\"],\n        # The JDK on Windows sometimes contains a directory called\n        # \"%systemroot%\", which is not a valid label.\n        exclude = [\"**/*%*/**\"],\n    ),\n)\n\n# This folder holds security policies.\nfilegroup(\n    name = \"jdk-conf\",\n    srcs = glob(\n        [\"conf/**\"],\n        allow_empty = True,\n    ),\n)\n\nfilegroup(\n    name = \"jdk-include\",\n    srcs = glob(\n        [\"include/**\"],\n        allow_empty = True,\n    ),\n)\n\nfilegroup(\n    name = \"jdk-lib\",\n    srcs = glob(\n        [\"lib/**\", \"release\"],\n        allow_empty = True,\n        exclude = [\n            \"lib/missioncontrol/**\",\n            \"lib/visualvm/**\",\n        ],\n    ),\n)\n\njava_runtime(\n    name = \"jdk\",\n    srcs = [\n        \":jdk-bin\",\n        \":jdk-conf\",\n        \":jdk-include\",\n        \":jdk-lib\",\n        \":jre\",\n    ],\n    # Provide the 'java` binary explicitly so that the correct path is used by\n    # Bazel even when the host platform differs from the execution platform.\n    # Exactly one of the two globs will be empty depending on the host platform.\n    # When --incompatible_disallow_empty_glob is enabled, each individual empty\n    # glob will fail without allow_empty = True, even if the overall result is\n    # non-empty.\n    java = glob([\"bin/java.exe\", \"bin/java\"], allow_empty = True)[0],\n    version = {RUNTIME_VERSION},\n)\n"
+                "https://github.com/ninja-build/ninja/releases/download/v1.11.1/ninja-linux.zip"
+              ],
+              "sha256": "b901ba96e486dce377f9a070ed4ef3f79deb45f4ffe2938f8e7ddc69cfb3df77",
+              "strip_prefix": "",
+              "build_file_content": "load(\"@rules_foreign_cc//toolchains/native_tools:native_tools_toolchain.bzl\", \"native_tool_toolchain\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\nfilegroup(\n    name = \"ninja_bin\",\n    srcs = [\"ninja\"],\n)\n\nnative_tool_toolchain(\n    name = \"ninja_tool\",\n    env = {\"NINJA\": \"$(execpath :ninja_bin)\"},\n    path = \"$(execpath :ninja_bin)\",\n    target = \":ninja_bin\",\n)\n"
             }
           },
-          "remote_java_tools_darwin_x86_64": {
-            "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
-            "ruleClassName": "http_archive",
+          "ninja_1.11.1_mac": {
+            "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive",
             "attributes": {
-              "name": "rules_java~7.1.0~toolchains~remote_java_tools_darwin_x86_64",
-              "sha256": "0db40d8505a2b65ef0ed46e4256757807db8162f7acff16225be57c1d5726dbc",
               "urls": [
-                "https://mirror.bazel.build/bazel_java_tools/releases/java/v13.1/java_tools_darwin_x86_64-v13.1.zip",
-                "https://github.com/bazelbuild/java_tools/releases/download/java_v13.1/java_tools_darwin_x86_64-v13.1.zip"
-              ]
+                "https://github.com/ninja-build/ninja/releases/download/v1.11.1/ninja-mac.zip"
+              ],
+              "sha256": "482ecb23c59ae3d4f158029112de172dd96bb0e97549c4b1ca32d8fad11f873e",
+              "strip_prefix": "",
+              "build_file_content": "load(\"@rules_foreign_cc//toolchains/native_tools:native_tools_toolchain.bzl\", \"native_tool_toolchain\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\nfilegroup(\n    name = \"ninja_bin\",\n    srcs = [\"ninja\"],\n)\n\nnative_tool_toolchain(\n    name = \"ninja_tool\",\n    env = {\"NINJA\": \"$(execpath :ninja_bin)\"},\n    path = \"$(execpath :ninja_bin)\",\n    target = \":ninja_bin\",\n)\n"
             }
           },
-          "remote_java_tools": {
-            "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
-            "ruleClassName": "http_archive",
+          "ninja_1.11.1_win": {
+            "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive",
             "attributes": {
-              "name": "rules_java~7.1.0~toolchains~remote_java_tools",
-              "sha256": "286bdbbd66e616fc4ed3f90101418729a73baa7e8c23a98ffbef558f74c0ad14",
               "urls": [
-                "https://mirror.bazel.build/bazel_java_tools/releases/java/v13.1/java_tools-v13.1.zip",
-                "https://github.com/bazelbuild/java_tools/releases/download/java_v13.1/java_tools-v13.1.zip"
-              ]
+                "https://github.com/ninja-build/ninja/releases/download/v1.11.1/ninja-win.zip"
+              ],
+              "sha256": "524b344a1a9a55005eaf868d991e090ab8ce07fa109f1820d40e74642e289abc",
+              "strip_prefix": "",
+              "build_file_content": "load(\"@rules_foreign_cc//toolchains/native_tools:native_tools_toolchain.bzl\", \"native_tool_toolchain\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\nfilegroup(\n    name = \"ninja_bin\",\n    srcs = [\"ninja.exe\"],\n)\n\nnative_tool_toolchain(\n    name = \"ninja_tool\",\n    env = {\"NINJA\": \"$(execpath :ninja_bin)\"},\n    path = \"$(execpath :ninja_bin)\",\n    target = \":ninja_bin\",\n)\n"
+            }
+          },
+          "ninja_1.11.1_toolchains": {
+            "repoRuleId": "@@rules_foreign_cc+//toolchains:prebuilt_toolchains_repository.bzl%prebuilt_toolchains_repository",
+            "attributes": {
+              "repos": {
+                "ninja_1.11.1_linux": [
+                  "@platforms//cpu:x86_64",
+                  "@platforms//os:linux"
+                ],
+                "ninja_1.11.1_mac": [
+                  "@platforms//cpu:x86_64",
+                  "@platforms//os:macos"
+                ],
+                "ninja_1.11.1_win": [
+                  "@platforms//cpu:x86_64",
+                  "@platforms//os:windows"
+                ]
+              },
+              "tool": "ninja"
             }
-          },
-          "remotejdk17_linux_s390x": {
-            "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
-            "ruleClassName": "http_archive",
+          }
+        },
+        "recordedRepoMappingEntries": [
+          [
+            "rules_foreign_cc+",
+            "bazel_tools",
+            "bazel_tools"
+          ],
+          [
+            "rules_foreign_cc+",
+            "rules_foreign_cc",
+            "rules_foreign_cc+"
+          ]
+        ]
+      }
+    },
+    "@@rules_java+//java:rules_java_deps.bzl%compatibility_proxy": {
+      "general": {
+        "bzlTransitiveDigest": "84xJEZ1jnXXwo8BXMprvBm++rRt4jsTu9liBxz0ivps=",
+        "usagesDigest": "jTQDdLDxsS43zuRmg1faAjIEPWdLAbDAowI1pInQSoo=",
+        "recordedFileInputs": {},
+        "recordedDirentsInputs": {},
+        "envVariables": {},
+        "generatedRepoSpecs": {
+          "compatibility_proxy": {
+            "repoRuleId": "@@rules_java+//java:rules_java_deps.bzl%_compatibility_proxy_repo_rule",
+            "attributes": {}
+          }
+        },
+        "recordedRepoMappingEntries": [
+          [
+            "rules_java+",
+            "bazel_tools",
+            "bazel_tools"
+          ]
+        ]
+      }
+    },
+    "@@rules_kotlin+//src/main/starlark/core/repositories:bzlmod_setup.bzl%rules_kotlin_extensions": {
+      "general": {
+        "bzlTransitiveDigest": "sFhcgPbDQehmbD1EOXzX4H1q/CD5df8zwG4kp4jbvr8=",
+        "usagesDigest": "QI2z8ZUR+mqtbwsf2fLqYdJAkPOHdOV+tF2yVAUgRzw=",
+        "recordedFileInputs": {},
+        "recordedDirentsInputs": {},
+        "envVariables": {},
+        "generatedRepoSpecs": {
+          "com_github_jetbrains_kotlin_git": {
+            "repoRuleId": "@@rules_kotlin+//src/main/starlark/core/repositories:compiler.bzl%kotlin_compiler_git_repository",
             "attributes": {
-              "name": "rules_java~7.1.0~toolchains~remotejdk17_linux_s390x",
-              "build_file_content": "load(\"@rules_java//java:defs.bzl\", \"java_runtime\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\nexports_files([\"WORKSPACE\", \"BUILD.bazel\"])\n\nfilegroup(\n    name = \"jre\",\n    srcs = glob(\n        [\n            \"jre/bin/**\",\n            \"jre/lib/**\",\n        ],\n        allow_empty = True,\n        # In some configurations, Java browser plugin is considered harmful and\n        # common antivirus software blocks access to npjp2.dll interfering with Bazel,\n        # so do not include it in JRE on Windows.\n        exclude = [\"jre/bin/plugin2/**\"],\n    ),\n)\n\nfilegroup(\n    name = \"jdk-bin\",\n    srcs = glob(\n        [\"bin/**\"],\n        # The JDK on Windows sometimes contains a directory called\n        # \"%systemroot%\", which is not a valid label.\n        exclude = [\"**/*%*/**\"],\n    ),\n)\n\n# This folder holds security policies.\nfilegroup(\n    name = \"jdk-conf\",\n    srcs = glob(\n        [\"conf/**\"],\n        allow_empty = True,\n    ),\n)\n\nfilegroup(\n    name = \"jdk-include\",\n    srcs = glob(\n        [\"include/**\"],\n        allow_empty = True,\n    ),\n)\n\nfilegroup(\n    name = \"jdk-lib\",\n    srcs = glob(\n        [\"lib/**\", \"release\"],\n        allow_empty = True,\n        exclude = [\n            \"lib/missioncontrol/**\",\n            \"lib/visualvm/**\",\n        ],\n    ),\n)\n\njava_runtime(\n    name = \"jdk\",\n    srcs = [\n        \":jdk-bin\",\n        \":jdk-conf\",\n        \":jdk-include\",\n        \":jdk-lib\",\n        \":jre\",\n    ],\n    # Provide the 'java` binary explicitly so that the correct path is used by\n    # Bazel even when the host platform differs from the execution platform.\n    # Exactly one of the two globs will be empty depending on the host platform.\n    # When --incompatible_disallow_empty_glob is enabled, each individual empty\n    # glob will fail without allow_empty = True, even if the overall result is\n    # non-empty.\n    java = glob([\"bin/java.exe\", \"bin/java\"], allow_empty = True)[0],\n    version = 17,\n)\n",
-              "sha256": "ffacba69c6843d7ca70d572489d6cc7ab7ae52c60f0852cedf4cf0d248b6fc37",
-              "strip_prefix": "jdk-17.0.8.1+1",
               "urls": [
-                "https://mirror.bazel.build/github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.8.1%2B1/OpenJDK17U-jdk_s390x_linux_hotspot_17.0.8.1_1.tar.gz",
-                "https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.8.1%2B1/OpenJDK17U-jdk_s390x_linux_hotspot_17.0.8.1_1.tar.gz"
-              ]
+                "https://github.com/JetBrains/kotlin/releases/download/v1.9.23/kotlin-compiler-1.9.23.zip"
+              ],
+              "sha256": "93137d3aab9afa9b27cb06a824c2324195c6b6f6179d8a8653f440f5bd58be88"
             }
           },
-          "remotejdk17_win_toolchain_config_repo": {
-            "bzlFile": "@@rules_java~7.1.0//toolchains:remote_java_repository.bzl",
-            "ruleClassName": "_toolchain_config",
+          "com_github_jetbrains_kotlin": {
+            "repoRuleId": "@@rules_kotlin+//src/main/starlark/core/repositories:compiler.bzl%kotlin_capabilities_repository",
             "attributes": {
-              "name": "rules_java~7.1.0~toolchains~remotejdk17_win_toolchain_config_repo",
-              "build_file": "\nconfig_setting(\n    name = \"prefix_version_setting\",\n    values = {\"java_runtime_version\": \"remotejdk_17\"},\n    visibility = [\"//visibility:private\"],\n)\nconfig_setting(\n    name = \"version_setting\",\n    values = {\"java_runtime_version\": \"17\"},\n    visibility = [\"//visibility:private\"],\n)\nalias(\n    name = \"version_or_prefix_version_setting\",\n    actual = select({\n        \":version_setting\": \":version_setting\",\n        \"//conditions:default\": \":prefix_version_setting\",\n    }),\n    visibility = [\"//visibility:private\"],\n)\ntoolchain(\n    name = \"toolchain\",\n    target_compatible_with = [\"@platforms//os:windows\", \"@platforms//cpu:x86_64\"],\n    target_settings = [\":version_or_prefix_version_setting\"],\n    toolchain_type = \"@bazel_tools//tools/jdk:runtime_toolchain_type\",\n    toolchain = \"@remotejdk17_win//:jdk\",\n)\ntoolchain(\n    name = \"bootstrap_runtime_toolchain\",\n    # These constraints are not required for correctness, but prevent fetches of remote JDK for\n    # different architectures. As every Java compilation toolchain depends on a bootstrap runtime in\n    # the same configuration, this constraint will not result in toolchain resolution failures.\n    exec_compatible_with = [\"@platforms//os:windows\", \"@platforms//cpu:x86_64\"],\n    target_settings = [\":version_or_prefix_version_setting\"],\n    toolchain_type = \"@bazel_tools//tools/jdk:bootstrap_runtime_toolchain_type\",\n    toolchain = \"@remotejdk17_win//:jdk\",\n)\n"
+              "git_repository_name": "com_github_jetbrains_kotlin_git",
+              "compiler_version": "1.9.23"
             }
           },
-          "remotejdk11_linux_ppc64le": {
-            "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
-            "ruleClassName": "http_archive",
+          "com_github_google_ksp": {
+            "repoRuleId": "@@rules_kotlin+//src/main/starlark/core/repositories:ksp.bzl%ksp_compiler_plugin_repository",
             "attributes": {
-              "name": "rules_java~7.1.0~toolchains~remotejdk11_linux_ppc64le",
-              "build_file_content": "load(\"@rules_java//java:defs.bzl\", \"java_runtime\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\nexports_files([\"WORKSPACE\", \"BUILD.bazel\"])\n\nfilegroup(\n    name = \"jre\",\n    srcs = glob(\n        [\n            \"jre/bin/**\",\n            \"jre/lib/**\",\n        ],\n        allow_empty = True,\n        # In some configurations, Java browser plugin is considered harmful and\n        # common antivirus software blocks access to npjp2.dll interfering with Bazel,\n        # so do not include it in JRE on Windows.\n        exclude = [\"jre/bin/plugin2/**\"],\n    ),\n)\n\nfilegroup(\n    name = \"jdk-bin\",\n    srcs = glob(\n        [\"bin/**\"],\n        # The JDK on Windows sometimes contains a directory called\n        # \"%systemroot%\", which is not a valid label.\n        exclude = [\"**/*%*/**\"],\n    ),\n)\n\n# This folder holds security policies.\nfilegroup(\n    name = \"jdk-conf\",\n    srcs = glob(\n        [\"conf/**\"],\n        allow_empty = True,\n    ),\n)\n\nfilegroup(\n    name = \"jdk-include\",\n    srcs = glob(\n        [\"include/**\"],\n        allow_empty = True,\n    ),\n)\n\nfilegroup(\n    name = \"jdk-lib\",\n    srcs = glob(\n        [\"lib/**\", \"release\"],\n        allow_empty = True,\n        exclude = [\n            \"lib/missioncontrol/**\",\n            \"lib/visualvm/**\",\n        ],\n    ),\n)\n\njava_runtime(\n    name = \"jdk\",\n    srcs = [\n        \":jdk-bin\",\n        \":jdk-conf\",\n        \":jdk-include\",\n        \":jdk-lib\",\n        \":jre\",\n    ],\n    # Provide the 'java` binary explicitly so that the correct path is used by\n    # Bazel even when the host platform differs from the execution platform.\n    # Exactly one of the two globs will be empty depending on the host platform.\n    # When --incompatible_disallow_empty_glob is enabled, each individual empty\n    # glob will fail without allow_empty = True, even if the overall result is\n    # non-empty.\n    java = glob([\"bin/java.exe\", \"bin/java\"], allow_empty = True)[0],\n    version = 11,\n)\n",
-              "sha256": "a8fba686f6eb8ae1d1a9566821dbd5a85a1108b96ad857fdbac5c1e4649fc56f",
-              "strip_prefix": "jdk-11.0.15+10",
               "urls": [
-                "https://mirror.bazel.build/github.com/adoptium/temurin11-binaries/releases/download/jdk-11.0.15+10/OpenJDK11U-jdk_ppc64le_linux_hotspot_11.0.15_10.tar.gz",
-                "https://github.com/adoptium/temurin11-binaries/releases/download/jdk-11.0.15+10/OpenJDK11U-jdk_ppc64le_linux_hotspot_11.0.15_10.tar.gz"
-              ]
+                "https://github.com/google/ksp/releases/download/1.9.23-1.0.20/artifacts.zip"
+              ],
+              "sha256": "ee0618755913ef7fd6511288a232e8fad24838b9af6ea73972a76e81053c8c2d",
+              "strip_version": "1.9.23-1.0.20"
             }
           },
-          "remotejdk11_macos_aarch64": {
-            "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl",
-            "ruleClassName": "http_archive",
+          "com_github_pinterest_ktlint": {
+            "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_file",
             "attributes": {
-              "name": "rules_java~7.1.0~toolchains~remotejdk11_macos_aarch64",
-              "build_file_content": "load(\"@rules_java//java:defs.bzl\", \"java_runtime\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\nexports_files([\"WORKSPACE\", \"BUILD.bazel\"])\n\nfilegroup(\n    name = \"jre\",\n    srcs = glob(\n        [\n            \"jre/bin/**\",\n            \"jre/lib/**\",\n        ],\n        allow_empty = True,\n        # In some configurations, Java browser plugin is considered harmful and\n        # common antivirus software blocks access to npjp2.dll interfering with Bazel,\n        # so do not include it in JRE on Windows.\n        exclude = [\"jre/bin/plugin2/**\"],\n    ),\n)\n\nfilegroup(\n    name = \"jdk-bin\",\n    srcs = glob(\n        [\"bin/**\"],\n        # The JDK on Windows sometimes contains a directory called\n        # \"%systemroot%\", which is not a valid label.\n        exclude = [\"**/*%*/**\"],\n    ),\n)\n\n# This folder holds security policies.\nfilegroup(\n    name = \"jdk-conf\",\n    srcs = glob(\n        [\"conf/**\"],\n        allow_empty = True,\n    ),\n)\n\nfilegroup(\n    name = \"jdk-include\",\n    srcs = glob(\n        [\"include/**\"],\n        allow_empty = True,\n    ),\n)\n\nfilegroup(\n    name = \"jdk-lib\",\n    srcs = glob(\n        [\"lib/**\", \"release\"],\n        allow_empty = True,\n        exclude = [\n            \"lib/missioncontrol/**\",\n            \"lib/visualvm/**\",\n        ],\n    ),\n)\n\njava_runtime(\n    name = \"jdk\",\n    srcs = [\n        \":jdk-bin\",\n        \":jdk-conf\",\n        \":jdk-include\",\n        \":jdk-lib\",\n        \":jre\",\n    ],\n    # Provide the 'java` binary explicitly so that the correct path is used by\n    # Bazel even when the host platform differs from the execution platform.\n    # Exactly one of the two globs will be empty depending on the host platform.\n    # When --incompatible_disallow_empty_glob is enabled, each individual empty\n    # glob will fail without allow_empty = True, even if the overall result is\n    # non-empty.\n    java = glob([\"bin/java.exe\", \"bin/java\"], allow_empty = True)[0],\n    version = 11,\n)\n",
-              "sha256": "7632bc29f8a4b7d492b93f3bc75a7b61630894db85d136456035ab2a24d38885",
-              "strip_prefix": "zulu11.66.15-ca-jdk11.0.20-macosx_aarch64",
+              "sha256": "01b2e0ef893383a50dbeb13970fe7fa3be36ca3e83259e01649945b09d736985",
               "urls": [
-                "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu11.66.15-ca-jdk11.0.20-macosx_aarch64.tar.gz",
-                "https://cdn.azul.com/zulu/bin/zulu11.66.15-ca-jdk11.0.20-macosx_aarch64.tar.gz"
-              ]
+                "https://github.com/pinterest/ktlint/releases/download/1.3.0/ktlint"
+              ],
+              "executable": true
             }
           },
-          "remotejdk21_win_toolchain_config_repo": {
-            "bzlFile": "@@rules_java~7.1.0//toolchains:remote_java_repository.bzl",
-            "ruleClassName": "_toolchain_config",
+          "rules_android": {
+            "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive",
             "attributes": {
-              "name": "rules_java~7.1.0~toolchains~remotejdk21_win_toolchain_config_repo",
-              "build_file": "\nconfig_setting(\n    name = \"prefix_version_setting\",\n    values = {\"java_runtime_version\": \"remotejdk_21\"},\n    visibility = [\"//visibility:private\"],\n)\nconfig_setting(\n    name = \"version_setting\",\n    values = {\"java_runtime_version\": \"21\"},\n    visibility = [\"//visibility:private\"],\n)\nalias(\n    name = \"version_or_prefix_version_setting\",\n    actual = select({\n        \":version_setting\": \":version_setting\",\n        \"//conditions:default\": \":prefix_version_setting\",\n    }),\n    visibility = [\"//visibility:private\"],\n)\ntoolchain(\n    name = \"toolchain\",\n    target_compatible_with = [\"@platforms//os:windows\", \"@platforms//cpu:x86_64\"],\n    target_settings = [\":version_or_prefix_version_setting\"],\n    toolchain_type = \"@bazel_tools//tools/jdk:runtime_toolchain_type\",\n    toolchain = \"@remotejdk21_win//:jdk\",\n)\ntoolchain(\n    name = \"bootstrap_runtime_toolchain\",\n    # These constraints are not required for correctness, but prevent fetches of remote JDK for\n    # different architectures. As every Java compilation toolchain depends on a bootstrap runtime in\n    # the same configuration, this constraint will not result in toolchain resolution failures.\n    exec_compatible_with = [\"@platforms//os:windows\", \"@platforms//cpu:x86_64\"],\n    target_settings = [\":version_or_prefix_version_setting\"],\n    toolchain_type = \"@bazel_tools//tools/jdk:bootstrap_runtime_toolchain_type\",\n    toolchain = \"@remotejdk21_win//:jdk\",\n)\n"
+              "sha256": "cd06d15dd8bb59926e4d65f9003bfc20f9da4b2519985c27e190cddc8b7a7806",
+              "strip_prefix": "rules_android-0.1.1",
+              "urls": [
+                "https://github.com/bazelbuild/rules_android/archive/v0.1.1.zip"
+              ]
             }
           }
         },
         "recordedRepoMappingEntries": [
           [
-            "rules_java~7.1.0",
+            "rules_kotlin+",
             "bazel_tools",
             "bazel_tools"
-          ],
-          [
-            "rules_java~7.1.0",
-            "remote_java_tools",
-            "rules_java~7.1.0~toolchains~remote_java_tools"
           ]
         ]
       }
diff --git a/WORKSPACE b/WORKSPACE
index 6bb13a4c..99007196 100644
--- a/WORKSPACE
+++ b/WORKSPACE
@@ -1,21 +1,8 @@
 workspace(name = "com_github_openconfig_gnoi")
 
-load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
-
-### Bazel rules for many languages to compile PROTO into gRPC libraries
-http_archive(
-    name = "rules_proto_grpc",
-    sha256 = "c0d718f4d892c524025504e67a5bfe83360b3a982e654bc71fed7514eb8ac8ad",
-    strip_prefix = "rules_proto_grpc-4.6.0",
-    urls = ["https://github.com/rules-proto-grpc/rules_proto_grpc/archive/4.6.0.tar.gz"],
-)
+load("//:gnoi_deps.bzl", "gnoi_deps")
 
-http_archive(
-    name = "com_google_googleapis",
-    sha256 = "9fc03150d86501d7da35eefa989d5553bdd77a95cfe4373cdafe8eee92f6bfb1",
-    strip_prefix = "googleapis-870a5ed7e141b4faf70e2a0858854e9b5bb18612",
-    urls = ["https://github.com/googleapis/googleapis/archive/870a5ed7e141b4faf70e2a0858854e9b5bb18612.tar.gz"],
-)
+gnoi_deps()
 
 load("@com_google_googleapis//:repository_rules.bzl", "switched_rules_by_language")
 
@@ -23,79 +10,42 @@ switched_rules_by_language(
     name = "com_google_googleapis_imports",
     cc = True,
     go = True,
+    grpc = True,
 )
 
-load(
-    "@rules_proto_grpc//:repositories.bzl",
-    "bazel_gazelle",
-    "io_bazel_rules_go",
-    "rules_proto_grpc_repos",
-    "rules_proto_grpc_toolchains",
-)
-
-rules_proto_grpc_toolchains()
-
-rules_proto_grpc_repos()
+load("@bazel_features//:deps.bzl", "bazel_features_deps")
 
-load("@rules_proto//proto:repositories.bzl", "rules_proto_dependencies", "rules_proto_toolchains")
-
-rules_proto_dependencies()
-
-rules_proto_toolchains()
-
-### Golang
-io_bazel_rules_go()
-
-load("@io_bazel_rules_go//go:deps.bzl", "go_register_toolchains", "go_rules_dependencies")
-
-go_rules_dependencies()
-
-go_register_toolchains(go_version = "1.20")
-
-# gazelle:repo bazel_gazelle
-bazel_gazelle()
+bazel_features_deps()
 
 load("@bazel_gazelle//:deps.bzl", "gazelle_dependencies")
-load("//:gnoi_deps.bzl", "gnoi_deps")
+load("@io_bazel_rules_go//go:deps.bzl", "go_register_toolchains", "go_rules_dependencies")
+load("//:gnoi_go_deps.bzl", "gnoi_go_deps")
 
-# gazelle:repository_macro gnoi_deps.bzl%gnoi_deps
-gnoi_deps()
+# gazelle:repository_macro gnoi_go_deps.bzl%gnoi_go_deps
+gnoi_go_deps()
 
-load("@rules_proto_grpc//go:repositories.bzl", rules_proto_grpc_go_repos = "go_repos")
+go_rules_dependencies()
 
-rules_proto_grpc_go_repos()
+go_register_toolchains(version = "1.23.4")
 
-# Load gazelle_dependencies last, so that the newer version of org_golang_google_grpc is used.
-# see https://github.com/rules-proto-grpc/rules_proto_grpc/issues/160
 gazelle_dependencies()
 
-### C++
-load("@rules_proto_grpc//cpp:repositories.bzl", rules_proto_grpc_cpp_repos = "cpp_repos")
+load("@com_google_protobuf//:protobuf_deps.bzl", "protobuf_deps")
 
-rules_proto_grpc_cpp_repos()
+protobuf_deps()
 
 load("@com_github_grpc_grpc//bazel:grpc_deps.bzl", "grpc_deps")
 
 grpc_deps()
 
-# open-config YANG files
-http_archive(
-    name = "github_openconfig_yang",
-    build_file_content = """exports_files(glob(["release/models/**/*.yang"]), visibility = ["//visibility:public"])""",
-    sha256 = "f6b2b6c0ffe0b66881287bcd43241a57583f353cc5cc41cba973601c32232f45",
-    strip_prefix = "public-bf737a5567ec248456cb528efcd63cab15e8fc69",
-    urls = [
-        "https://github.com/openconfig/public/archive/bf737a5567ec248456cb528efcd63cab15e8fc69.zip",
-    ],
-)
+load("@build_bazel_apple_support//lib:repositories.bzl", "apple_support_dependencies")
+load("@build_bazel_rules_apple//apple:repositories.bzl", "apple_rules_dependencies")
 
-# YANG files from other standard bodies.
-http_archive(
-    name = "github_yang",
-    build_file_content = """exports_files(glob(["standard/**/*.yang"]), visibility = ["//visibility:public"])""",
-    sha256 = "55913058f64a1ec7fe9e6e70d7128f08e66b20c859803b1fb02dbaf7eef2c64d",
-    strip_prefix = "yang-2fa291d6bdb4b281d4e1b3dfa3254ffa7257d800",
-    urls = [
-        "https://github.com/YangModels/yang/archive/2fa291d6bdb4b281d4e1b3dfa3254ffa7257d800.zip",
-    ],
-)
+# Required by grpc
+load("@rules_python//python:repositories.bzl", "py_repositories")
+
+py_repositories()
+
+apple_rules_dependencies(ignore_version_differences = False)
+
+apple_support_dependencies()
diff --git a/WORKSPACE.bzlmod b/WORKSPACE.bzlmod
new file mode 100644
index 00000000..e69de29b
diff --git a/bazel/BUILD.bazel b/bazel/BUILD.bazel
new file mode 100644
index 00000000..d7120588
--- /dev/null
+++ b/bazel/BUILD.bazel
@@ -0,0 +1,18 @@
+# Copyright 2024 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+package(
+    default_visibility = ["//visibility:public"],
+    licenses = ["notice"],
+)
diff --git a/bazel/tools.go b/bazel/tools.go
new file mode 100644
index 00000000..3d91a0be
--- /dev/null
+++ b/bazel/tools.go
@@ -0,0 +1,24 @@
+// Copyright 2025 Google LLC
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+//go:build tools
+
+// Package bazel contains imports to keep go.mod entries for packages that are
+// referenced in BUILD files, but not in Go code.
+package bazel
+
+import (
+	_ "google.golang.org/grpc/cmd/protoc-gen-go-grpc" // protoc-gen-go-grpc
+	_ "google.golang.org/protobuf/cmd/protoc-gen-go"  // protoc-gen-go
+)
diff --git a/bgp/BUILD.bazel b/bgp/BUILD.bazel
index 4d746acb..c08ec776 100644
--- a/bgp/BUILD.bazel
+++ b/bgp/BUILD.bazel
@@ -1,8 +1,8 @@
-load("@rules_proto//proto:defs.bzl", "proto_library")
+load("@com_github_grpc_grpc//bazel:cc_grpc_library.bzl", "cc_grpc_library")
+load("@com_google_protobuf//bazel:cc_proto_library.bzl", "cc_proto_library")
+load("@com_google_protobuf//bazel:proto_library.bzl", "proto_library")
 load("@io_bazel_rules_go//go:def.bzl", "go_library")
 load("@io_bazel_rules_go//proto:def.bzl", "go_proto_library")
-load("@com_github_grpc_grpc//bazel:cc_grpc_library.bzl", "cc_grpc_library")
-load("//:common.bzl", "use_new_compilers")
 
 #Copyright 2021 Google LLC
 #
@@ -23,11 +23,10 @@ package(
     licenses = ["notice"],
 )
 
-use_new_compilers()
-
 proto_library(
     name = "bgp_proto",
     srcs = ["bgp.proto"],
+    import_prefix = "github.com/openconfig/gnoi",
     deps = [
         "//types:types_proto",
     ],
@@ -48,8 +47,8 @@ cc_grpc_library(
 go_proto_library(
     name = "bgp_go_proto",
     compilers = [
-        "go_protoc_gen_go",
-        "go_protoc_gen_go_grpc",
+        "@io_bazel_rules_go//proto:go_grpc_v2",
+        "@io_bazel_rules_go//proto:go_proto",
     ],
     importpath = "github.com/openconfig/gnoi/bgp",
     proto = ":bgp_proto",
diff --git a/bgp/bgp.pb.go b/bgp/bgp.pb.go
index 11f6683b..7d81cb6b 100644
--- a/bgp/bgp.pb.go
+++ b/bgp/bgp.pb.go
@@ -1,8 +1,8 @@
 // Code generated by protoc-gen-go. DO NOT EDIT.
 // versions:
-// 	protoc-gen-go v1.30.0
-// 	protoc        v3.21.10
-// source: bgp/bgp.proto
+// 	protoc-gen-go v1.36.2
+// 	protoc        v5.29.3
+// source: github.com/openconfig/gnoi/bgp/bgp.proto
 
 package bgp
 
@@ -54,11 +54,11 @@ func (x ClearBGPNeighborRequest_Mode) String() string {
 }
 
 func (ClearBGPNeighborRequest_Mode) Descriptor() protoreflect.EnumDescriptor {
-	return file_bgp_bgp_proto_enumTypes[0].Descriptor()
+	return file_github_com_openconfig_gnoi_bgp_bgp_proto_enumTypes[0].Descriptor()
 }
 
 func (ClearBGPNeighborRequest_Mode) Type() protoreflect.EnumType {
-	return &file_bgp_bgp_proto_enumTypes[0]
+	return &file_github_com_openconfig_gnoi_bgp_bgp_proto_enumTypes[0]
 }
 
 func (x ClearBGPNeighborRequest_Mode) Number() protoreflect.EnumNumber {
@@ -67,26 +67,23 @@ func (x ClearBGPNeighborRequest_Mode) Number() protoreflect.EnumNumber {
 
 // Deprecated: Use ClearBGPNeighborRequest_Mode.Descriptor instead.
 func (ClearBGPNeighborRequest_Mode) EnumDescriptor() ([]byte, []int) {
-	return file_bgp_bgp_proto_rawDescGZIP(), []int{0, 0}
+	return file_github_com_openconfig_gnoi_bgp_bgp_proto_rawDescGZIP(), []int{0, 0}
 }
 
 type ClearBGPNeighborRequest struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
+	state           protoimpl.MessageState       `protogen:"open.v1"`
 	Address         string                       `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"`
 	RoutingInstance string                       `protobuf:"bytes,2,opt,name=routing_instance,json=routingInstance,proto3" json:"routing_instance,omitempty"`
 	Mode            ClearBGPNeighborRequest_Mode `protobuf:"varint,3,opt,name=mode,proto3,enum=gnoi.bgp.ClearBGPNeighborRequest_Mode" json:"mode,omitempty"`
+	unknownFields   protoimpl.UnknownFields
+	sizeCache       protoimpl.SizeCache
 }
 
 func (x *ClearBGPNeighborRequest) Reset() {
 	*x = ClearBGPNeighborRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_bgp_bgp_proto_msgTypes[0]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_bgp_bgp_proto_msgTypes[0]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *ClearBGPNeighborRequest) String() string {
@@ -96,8 +93,8 @@ func (x *ClearBGPNeighborRequest) String() string {
 func (*ClearBGPNeighborRequest) ProtoMessage() {}
 
 func (x *ClearBGPNeighborRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_bgp_bgp_proto_msgTypes[0]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_bgp_bgp_proto_msgTypes[0]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -109,7 +106,7 @@ func (x *ClearBGPNeighborRequest) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use ClearBGPNeighborRequest.ProtoReflect.Descriptor instead.
 func (*ClearBGPNeighborRequest) Descriptor() ([]byte, []int) {
-	return file_bgp_bgp_proto_rawDescGZIP(), []int{0}
+	return file_github_com_openconfig_gnoi_bgp_bgp_proto_rawDescGZIP(), []int{0}
 }
 
 func (x *ClearBGPNeighborRequest) GetAddress() string {
@@ -134,18 +131,16 @@ func (x *ClearBGPNeighborRequest) GetMode() ClearBGPNeighborRequest_Mode {
 }
 
 type ClearBGPNeighborResponse struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState `protogen:"open.v1"`
 	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *ClearBGPNeighborResponse) Reset() {
 	*x = ClearBGPNeighborResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_bgp_bgp_proto_msgTypes[1]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_bgp_bgp_proto_msgTypes[1]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *ClearBGPNeighborResponse) String() string {
@@ -155,8 +150,8 @@ func (x *ClearBGPNeighborResponse) String() string {
 func (*ClearBGPNeighborResponse) ProtoMessage() {}
 
 func (x *ClearBGPNeighborResponse) ProtoReflect() protoreflect.Message {
-	mi := &file_bgp_bgp_proto_msgTypes[1]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_bgp_bgp_proto_msgTypes[1]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -168,62 +163,64 @@ func (x *ClearBGPNeighborResponse) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use ClearBGPNeighborResponse.ProtoReflect.Descriptor instead.
 func (*ClearBGPNeighborResponse) Descriptor() ([]byte, []int) {
-	return file_bgp_bgp_proto_rawDescGZIP(), []int{1}
+	return file_github_com_openconfig_gnoi_bgp_bgp_proto_rawDescGZIP(), []int{1}
 }
 
-var File_bgp_bgp_proto protoreflect.FileDescriptor
-
-var file_bgp_bgp_proto_rawDesc = []byte{
-	0x0a, 0x0d, 0x62, 0x67, 0x70, 0x2f, 0x62, 0x67, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12,
-	0x08, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x62, 0x67, 0x70, 0x1a, 0x2c, 0x67, 0x69, 0x74, 0x68, 0x75,
-	0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67,
-	0x2f, 0x67, 0x6e, 0x6f, 0x69, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2f, 0x74, 0x79, 0x70, 0x65,
-	0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xc2, 0x01, 0x0a, 0x17, 0x43, 0x6c, 0x65, 0x61,
-	0x72, 0x42, 0x47, 0x50, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x52, 0x65, 0x71, 0x75,
-	0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01,
-	0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x29, 0x0a,
-	0x10, 0x72, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63,
-	0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x72, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67,
-	0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x3a, 0x0a, 0x04, 0x6d, 0x6f, 0x64, 0x65,
-	0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x62, 0x67,
-	0x70, 0x2e, 0x43, 0x6c, 0x65, 0x61, 0x72, 0x42, 0x47, 0x50, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62,
-	0x6f, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x04,
-	0x6d, 0x6f, 0x64, 0x65, 0x22, 0x26, 0x0a, 0x04, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x08, 0x0a, 0x04,
-	0x53, 0x4f, 0x46, 0x54, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x53, 0x4f, 0x46, 0x54, 0x49, 0x4e,
-	0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x48, 0x41, 0x52, 0x44, 0x10, 0x02, 0x22, 0x1a, 0x0a, 0x18,
-	0x43, 0x6c, 0x65, 0x61, 0x72, 0x42, 0x47, 0x50, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72,
-	0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x32, 0x62, 0x0a, 0x03, 0x42, 0x47, 0x50, 0x12,
-	0x5b, 0x0a, 0x10, 0x43, 0x6c, 0x65, 0x61, 0x72, 0x42, 0x47, 0x50, 0x4e, 0x65, 0x69, 0x67, 0x68,
-	0x62, 0x6f, 0x72, 0x12, 0x21, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x62, 0x67, 0x70, 0x2e, 0x43,
-	0x6c, 0x65, 0x61, 0x72, 0x42, 0x47, 0x50, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x52,
-	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x62, 0x67,
-	0x70, 0x2e, 0x43, 0x6c, 0x65, 0x61, 0x72, 0x42, 0x47, 0x50, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62,
-	0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x28, 0xd2, 0x3e,
-	0x05, 0x30, 0x2e, 0x31, 0x2e, 0x30, 0x5a, 0x1e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63,
-	0x6f, 0x6d, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x67, 0x6e,
-	0x6f, 0x69, 0x2f, 0x62, 0x67, 0x70, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+var File_github_com_openconfig_gnoi_bgp_bgp_proto protoreflect.FileDescriptor
+
+var file_github_com_openconfig_gnoi_bgp_bgp_proto_rawDesc = []byte{
+	0x0a, 0x28, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x70, 0x65,
+	0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x67, 0x6e, 0x6f, 0x69, 0x2f, 0x62, 0x67, 0x70,
+	0x2f, 0x62, 0x67, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x08, 0x67, 0x6e, 0x6f, 0x69,
+	0x2e, 0x62, 0x67, 0x70, 0x1a, 0x2c, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d,
+	0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x67, 0x6e, 0x6f, 0x69,
+	0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f,
+	0x74, 0x6f, 0x22, 0xc2, 0x01, 0x0a, 0x17, 0x43, 0x6c, 0x65, 0x61, 0x72, 0x42, 0x47, 0x50, 0x4e,
+	0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18,
+	0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
+	0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x29, 0x0a, 0x10, 0x72, 0x6f, 0x75, 0x74,
+	0x69, 0x6e, 0x67, 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01,
+	0x28, 0x09, 0x52, 0x0f, 0x72, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x73, 0x74, 0x61,
+	0x6e, 0x63, 0x65, 0x12, 0x3a, 0x0a, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28,
+	0x0e, 0x32, 0x26, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x62, 0x67, 0x70, 0x2e, 0x43, 0x6c, 0x65,
+	0x61, 0x72, 0x42, 0x47, 0x50, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x52, 0x65, 0x71,
+	0x75, 0x65, 0x73, 0x74, 0x2e, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x22,
+	0x26, 0x0a, 0x04, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x08, 0x0a, 0x04, 0x53, 0x4f, 0x46, 0x54, 0x10,
+	0x00, 0x12, 0x0a, 0x0a, 0x06, 0x53, 0x4f, 0x46, 0x54, 0x49, 0x4e, 0x10, 0x01, 0x12, 0x08, 0x0a,
+	0x04, 0x48, 0x41, 0x52, 0x44, 0x10, 0x02, 0x22, 0x1a, 0x0a, 0x18, 0x43, 0x6c, 0x65, 0x61, 0x72,
+	0x42, 0x47, 0x50, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f,
+	0x6e, 0x73, 0x65, 0x32, 0x62, 0x0a, 0x03, 0x42, 0x47, 0x50, 0x12, 0x5b, 0x0a, 0x10, 0x43, 0x6c,
+	0x65, 0x61, 0x72, 0x42, 0x47, 0x50, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x12, 0x21,
+	0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x62, 0x67, 0x70, 0x2e, 0x43, 0x6c, 0x65, 0x61, 0x72, 0x42,
+	0x47, 0x50, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
+	0x74, 0x1a, 0x22, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x62, 0x67, 0x70, 0x2e, 0x43, 0x6c, 0x65,
+	0x61, 0x72, 0x42, 0x47, 0x50, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x52, 0x65, 0x73,
+	0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x28, 0xd2, 0x3e, 0x05, 0x30, 0x2e, 0x31, 0x2e,
+	0x30, 0x5a, 0x1e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x70,
+	0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x67, 0x6e, 0x6f, 0x69, 0x2f, 0x62, 0x67,
+	0x70, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
 }
 
 var (
-	file_bgp_bgp_proto_rawDescOnce sync.Once
-	file_bgp_bgp_proto_rawDescData = file_bgp_bgp_proto_rawDesc
+	file_github_com_openconfig_gnoi_bgp_bgp_proto_rawDescOnce sync.Once
+	file_github_com_openconfig_gnoi_bgp_bgp_proto_rawDescData = file_github_com_openconfig_gnoi_bgp_bgp_proto_rawDesc
 )
 
-func file_bgp_bgp_proto_rawDescGZIP() []byte {
-	file_bgp_bgp_proto_rawDescOnce.Do(func() {
-		file_bgp_bgp_proto_rawDescData = protoimpl.X.CompressGZIP(file_bgp_bgp_proto_rawDescData)
+func file_github_com_openconfig_gnoi_bgp_bgp_proto_rawDescGZIP() []byte {
+	file_github_com_openconfig_gnoi_bgp_bgp_proto_rawDescOnce.Do(func() {
+		file_github_com_openconfig_gnoi_bgp_bgp_proto_rawDescData = protoimpl.X.CompressGZIP(file_github_com_openconfig_gnoi_bgp_bgp_proto_rawDescData)
 	})
-	return file_bgp_bgp_proto_rawDescData
+	return file_github_com_openconfig_gnoi_bgp_bgp_proto_rawDescData
 }
 
-var file_bgp_bgp_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
-var file_bgp_bgp_proto_msgTypes = make([]protoimpl.MessageInfo, 2)
-var file_bgp_bgp_proto_goTypes = []interface{}{
+var file_github_com_openconfig_gnoi_bgp_bgp_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
+var file_github_com_openconfig_gnoi_bgp_bgp_proto_msgTypes = make([]protoimpl.MessageInfo, 2)
+var file_github_com_openconfig_gnoi_bgp_bgp_proto_goTypes = []any{
 	(ClearBGPNeighborRequest_Mode)(0), // 0: gnoi.bgp.ClearBGPNeighborRequest.Mode
 	(*ClearBGPNeighborRequest)(nil),   // 1: gnoi.bgp.ClearBGPNeighborRequest
 	(*ClearBGPNeighborResponse)(nil),  // 2: gnoi.bgp.ClearBGPNeighborResponse
 }
-var file_bgp_bgp_proto_depIdxs = []int32{
+var file_github_com_openconfig_gnoi_bgp_bgp_proto_depIdxs = []int32{
 	0, // 0: gnoi.bgp.ClearBGPNeighborRequest.mode:type_name -> gnoi.bgp.ClearBGPNeighborRequest.Mode
 	1, // 1: gnoi.bgp.BGP.ClearBGPNeighbor:input_type -> gnoi.bgp.ClearBGPNeighborRequest
 	2, // 2: gnoi.bgp.BGP.ClearBGPNeighbor:output_type -> gnoi.bgp.ClearBGPNeighborResponse
@@ -234,54 +231,28 @@ var file_bgp_bgp_proto_depIdxs = []int32{
 	0, // [0:1] is the sub-list for field type_name
 }
 
-func init() { file_bgp_bgp_proto_init() }
-func file_bgp_bgp_proto_init() {
-	if File_bgp_bgp_proto != nil {
+func init() { file_github_com_openconfig_gnoi_bgp_bgp_proto_init() }
+func file_github_com_openconfig_gnoi_bgp_bgp_proto_init() {
+	if File_github_com_openconfig_gnoi_bgp_bgp_proto != nil {
 		return
 	}
-	if !protoimpl.UnsafeEnabled {
-		file_bgp_bgp_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*ClearBGPNeighborRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_bgp_bgp_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*ClearBGPNeighborResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-	}
 	type x struct{}
 	out := protoimpl.TypeBuilder{
 		File: protoimpl.DescBuilder{
 			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
-			RawDescriptor: file_bgp_bgp_proto_rawDesc,
+			RawDescriptor: file_github_com_openconfig_gnoi_bgp_bgp_proto_rawDesc,
 			NumEnums:      1,
 			NumMessages:   2,
 			NumExtensions: 0,
 			NumServices:   1,
 		},
-		GoTypes:           file_bgp_bgp_proto_goTypes,
-		DependencyIndexes: file_bgp_bgp_proto_depIdxs,
-		EnumInfos:         file_bgp_bgp_proto_enumTypes,
-		MessageInfos:      file_bgp_bgp_proto_msgTypes,
+		GoTypes:           file_github_com_openconfig_gnoi_bgp_bgp_proto_goTypes,
+		DependencyIndexes: file_github_com_openconfig_gnoi_bgp_bgp_proto_depIdxs,
+		EnumInfos:         file_github_com_openconfig_gnoi_bgp_bgp_proto_enumTypes,
+		MessageInfos:      file_github_com_openconfig_gnoi_bgp_bgp_proto_msgTypes,
 	}.Build()
-	File_bgp_bgp_proto = out.File
-	file_bgp_bgp_proto_rawDesc = nil
-	file_bgp_bgp_proto_goTypes = nil
-	file_bgp_bgp_proto_depIdxs = nil
+	File_github_com_openconfig_gnoi_bgp_bgp_proto = out.File
+	file_github_com_openconfig_gnoi_bgp_bgp_proto_rawDesc = nil
+	file_github_com_openconfig_gnoi_bgp_bgp_proto_goTypes = nil
+	file_github_com_openconfig_gnoi_bgp_bgp_proto_depIdxs = nil
 }
diff --git a/bgp/bgp_grpc.pb.go b/bgp/bgp_grpc.pb.go
index f66278c3..448583b4 100644
--- a/bgp/bgp_grpc.pb.go
+++ b/bgp/bgp_grpc.pb.go
@@ -1,8 +1,8 @@
 // Code generated by protoc-gen-go-grpc. DO NOT EDIT.
 // versions:
-// - protoc-gen-go-grpc v1.2.0
-// - protoc             v3.21.10
-// source: bgp/bgp.proto
+// - protoc-gen-go-grpc v1.5.1
+// - protoc             v5.29.3
+// source: github.com/openconfig/gnoi/bgp/bgp.proto
 
 package bgp
 
@@ -15,8 +15,12 @@ import (
 
 // This is a compile-time assertion to ensure that this generated file
 // is compatible with the grpc package it is being compiled against.
-// Requires gRPC-Go v1.32.0 or later.
-const _ = grpc.SupportPackageIsVersion7
+// Requires gRPC-Go v1.64.0 or later.
+const _ = grpc.SupportPackageIsVersion9
+
+const (
+	BGP_ClearBGPNeighbor_FullMethodName = "/gnoi.bgp.BGP/ClearBGPNeighbor"
+)
 
 // BGPClient is the client API for BGP service.
 //
@@ -34,8 +38,9 @@ func NewBGPClient(cc grpc.ClientConnInterface) BGPClient {
 }
 
 func (c *bGPClient) ClearBGPNeighbor(ctx context.Context, in *ClearBGPNeighborRequest, opts ...grpc.CallOption) (*ClearBGPNeighborResponse, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
 	out := new(ClearBGPNeighborResponse)
-	err := c.cc.Invoke(ctx, "/gnoi.bgp.BGP/ClearBGPNeighbor", in, out, opts...)
+	err := c.cc.Invoke(ctx, BGP_ClearBGPNeighbor_FullMethodName, in, out, cOpts...)
 	if err != nil {
 		return nil, err
 	}
@@ -43,21 +48,23 @@ func (c *bGPClient) ClearBGPNeighbor(ctx context.Context, in *ClearBGPNeighborRe
 }
 
 // BGPServer is the server API for BGP service.
-// All implementations must embed UnimplementedBGPServer
-// for forward compatibility
+// All implementations should embed UnimplementedBGPServer
+// for forward compatibility.
 type BGPServer interface {
 	ClearBGPNeighbor(context.Context, *ClearBGPNeighborRequest) (*ClearBGPNeighborResponse, error)
-	mustEmbedUnimplementedBGPServer()
 }
 
-// UnimplementedBGPServer must be embedded to have forward compatible implementations.
-type UnimplementedBGPServer struct {
-}
+// UnimplementedBGPServer should be embedded to have
+// forward compatible implementations.
+//
+// NOTE: this should be embedded by value instead of pointer to avoid a nil
+// pointer dereference when methods are called.
+type UnimplementedBGPServer struct{}
 
 func (UnimplementedBGPServer) ClearBGPNeighbor(context.Context, *ClearBGPNeighborRequest) (*ClearBGPNeighborResponse, error) {
 	return nil, status.Errorf(codes.Unimplemented, "method ClearBGPNeighbor not implemented")
 }
-func (UnimplementedBGPServer) mustEmbedUnimplementedBGPServer() {}
+func (UnimplementedBGPServer) testEmbeddedByValue() {}
 
 // UnsafeBGPServer may be embedded to opt out of forward compatibility for this service.
 // Use of this interface is not recommended, as added methods to BGPServer will
@@ -67,6 +74,13 @@ type UnsafeBGPServer interface {
 }
 
 func RegisterBGPServer(s grpc.ServiceRegistrar, srv BGPServer) {
+	// If the following call pancis, it indicates UnimplementedBGPServer was
+	// embedded by pointer and is nil.  This will cause panics if an
+	// unimplemented method is ever invoked, so we test this at initialization
+	// time to prevent it from happening at runtime later due to I/O.
+	if t, ok := srv.(interface{ testEmbeddedByValue() }); ok {
+		t.testEmbeddedByValue()
+	}
 	s.RegisterService(&BGP_ServiceDesc, srv)
 }
 
@@ -80,7 +94,7 @@ func _BGP_ClearBGPNeighbor_Handler(srv interface{}, ctx context.Context, dec fun
 	}
 	info := &grpc.UnaryServerInfo{
 		Server:     srv,
-		FullMethod: "/gnoi.bgp.BGP/ClearBGPNeighbor",
+		FullMethod: BGP_ClearBGPNeighbor_FullMethodName,
 	}
 	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
 		return srv.(BGPServer).ClearBGPNeighbor(ctx, req.(*ClearBGPNeighborRequest))
@@ -101,5 +115,5 @@ var BGP_ServiceDesc = grpc.ServiceDesc{
 		},
 	},
 	Streams:  []grpc.StreamDesc{},
-	Metadata: "bgp/bgp.proto",
+	Metadata: "github.com/openconfig/gnoi/bgp/bgp.proto",
 }
diff --git a/bootconfig/BUILD.bazel b/bootconfig/BUILD.bazel
index 2bf6dc4c..80b1cd11 100644
--- a/bootconfig/BUILD.bazel
+++ b/bootconfig/BUILD.bazel
@@ -1,8 +1,8 @@
-load("@rules_proto//proto:defs.bzl", "proto_library")
+load("@com_github_grpc_grpc//bazel:cc_grpc_library.bzl", "cc_grpc_library")
+load("@com_google_protobuf//bazel:cc_proto_library.bzl", "cc_proto_library")
+load("@com_google_protobuf//bazel:proto_library.bzl", "proto_library")
 load("@io_bazel_rules_go//go:def.bzl", "go_library")
 load("@io_bazel_rules_go//proto:def.bzl", "go_proto_library")
-load("@com_github_grpc_grpc//bazel:cc_grpc_library.bzl", "cc_grpc_library")
-load("//:common.bzl", "use_new_compilers")
 
 #Copyright 2021 Google LLC
 #
@@ -23,19 +23,16 @@ package(
     licenses = ["notice"],
 )
 
-use_new_compilers()
-
 proto_library(
     name = "bootconfig_proto",
     srcs = ["bootconfig.proto"],
     import_prefix = "github.com/openconfig/gnoi",
     deps = [
         "//types:types_proto",
-        "@com_github_openconfig_bootz//proto:bootz_proto",        
-        "@com_github_openconfig_gnsi//authz:authz_proto",
-        "@com_github_openconfig_gnsi//credentialz:credentialz_proto",
-        "@com_github_openconfig_gnsi//certz:certz_proto",
-        "@com_github_openconfig_gnsi//pathz:pathz_proto",
+        "@openconfig_bootz//proto:bootz_proto",
+        "@openconfig_gnsi//authz:authz_proto",
+        "@openconfig_gnsi//certz:certz_proto",
+        "@openconfig_gnsi//pathz:pathz_proto",
     ],
 )
 
@@ -54,17 +51,17 @@ cc_grpc_library(
 go_proto_library(
     name = "bootconfig_go_proto",
     compilers = [
-        "go_protoc_gen_go",
-        "go_protoc_gen_go_grpc",
+        "@io_bazel_rules_go//proto:go_grpc_v2",
+        "@io_bazel_rules_go//proto:go_proto",
     ],
     importpath = "github.com/openconfig/gnoi/bootconfig",
     proto = ":bootconfig_proto",
     deps = [
         "//types",
-        "@com_github_openconfig_bootz//proto:bootz_go_proto",
-        "@com_github_openconfig_gnsi//authz:authz_go_proto",
-        "@com_github_openconfig_gnsi//certz:certz_go_proto",
-        "@com_github_openconfig_gnsi//pathz:pathz_go_proto",
+        "@openconfig_bootz//proto:bootz_go_proto",
+        "@openconfig_gnsi//authz:authz_go_proto",
+        "@openconfig_gnsi//certz:certz_go_proto",
+        "@openconfig_gnsi//pathz:pathz_go_proto",
     ],
 )
 
diff --git a/bootconfig/bootconfig.pb.go b/bootconfig/bootconfig.pb.go
index aeb1e0bb..d544ee48 100644
--- a/bootconfig/bootconfig.pb.go
+++ b/bootconfig/bootconfig.pb.go
@@ -1,7 +1,7 @@
 // Code generated by protoc-gen-go. DO NOT EDIT.
 // versions:
-// 	protoc-gen-go v1.30.0
-// 	protoc        v3.21.10
+// 	protoc-gen-go v1.36.2
+// 	protoc        v5.29.3
 // source: github.com/openconfig/gnoi/bootconfig/bootconfig.proto
 
 package bootconfig
@@ -26,18 +26,16 @@ const (
 )
 
 type GetBootConfigRequest struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState `protogen:"open.v1"`
 	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *GetBootConfigRequest) Reset() {
 	*x = GetBootConfigRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_github_com_openconfig_gnoi_bootconfig_bootconfig_proto_msgTypes[0]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_bootconfig_bootconfig_proto_msgTypes[0]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *GetBootConfigRequest) String() string {
@@ -48,7 +46,7 @@ func (*GetBootConfigRequest) ProtoMessage() {}
 
 func (x *GetBootConfigRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_github_com_openconfig_gnoi_bootconfig_bootconfig_proto_msgTypes[0]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -64,20 +62,17 @@ func (*GetBootConfigRequest) Descriptor() ([]byte, []int) {
 }
 
 type GetBootConfigResponse struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	BootConfig    *bootz.BootConfig      `protobuf:"bytes,1,opt,name=boot_config,json=bootConfig,proto3" json:"boot_config,omitempty"`
 	unknownFields protoimpl.UnknownFields
-
-	BootConfig *bootz.BootConfig `protobuf:"bytes,1,opt,name=boot_config,json=bootConfig,proto3" json:"boot_config,omitempty"`
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *GetBootConfigResponse) Reset() {
 	*x = GetBootConfigResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_github_com_openconfig_gnoi_bootconfig_bootconfig_proto_msgTypes[1]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_bootconfig_bootconfig_proto_msgTypes[1]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *GetBootConfigResponse) String() string {
@@ -88,7 +83,7 @@ func (*GetBootConfigResponse) ProtoMessage() {}
 
 func (x *GetBootConfigResponse) ProtoReflect() protoreflect.Message {
 	mi := &file_github_com_openconfig_gnoi_bootconfig_bootconfig_proto_msgTypes[1]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -111,26 +106,23 @@ func (x *GetBootConfigResponse) GetBootConfig() *bootz.BootConfig {
 }
 
 type SetBootConfigRequest struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	BootConfig  *bootz.BootConfig    `protobuf:"bytes,1,opt,name=boot_config,json=bootConfig,proto3" json:"boot_config,omitempty"`
-	Credentials *bootz.Credentials   `protobuf:"bytes,2,opt,name=credentials,proto3" json:"credentials,omitempty"`
-	Pathz       *pathz.UploadRequest `protobuf:"bytes,3,opt,name=pathz,proto3" json:"pathz,omitempty"`
-	Authz       *authz.UploadRequest `protobuf:"bytes,4,opt,name=authz,proto3" json:"authz,omitempty"`
+	state       protoimpl.MessageState `protogen:"open.v1"`
+	BootConfig  *bootz.BootConfig      `protobuf:"bytes,1,opt,name=boot_config,json=bootConfig,proto3" json:"boot_config,omitempty"`
+	Credentials *bootz.Credentials     `protobuf:"bytes,2,opt,name=credentials,proto3" json:"credentials,omitempty"`
+	Pathz       *pathz.UploadRequest   `protobuf:"bytes,3,opt,name=pathz,proto3" json:"pathz,omitempty"`
+	Authz       *authz.UploadRequest   `protobuf:"bytes,4,opt,name=authz,proto3" json:"authz,omitempty"`
 	// Deprecated: Marked as deprecated in github.com/openconfig/gnoi/bootconfig/bootconfig.proto.
-	Certificates *certz.UploadRequest `protobuf:"bytes,5,opt,name=certificates,proto3" json:"certificates,omitempty"`
-	Certz        *bootz.CertzProfiles `protobuf:"bytes,6,opt,name=certz,proto3" json:"certz,omitempty"`
+	Certificates  *certz.UploadRequest `protobuf:"bytes,5,opt,name=certificates,proto3" json:"certificates,omitempty"`
+	Certz         *bootz.CertzProfiles `protobuf:"bytes,6,opt,name=certz,proto3" json:"certz,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *SetBootConfigRequest) Reset() {
 	*x = SetBootConfigRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_github_com_openconfig_gnoi_bootconfig_bootconfig_proto_msgTypes[2]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_bootconfig_bootconfig_proto_msgTypes[2]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *SetBootConfigRequest) String() string {
@@ -141,7 +133,7 @@ func (*SetBootConfigRequest) ProtoMessage() {}
 
 func (x *SetBootConfigRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_github_com_openconfig_gnoi_bootconfig_bootconfig_proto_msgTypes[2]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -200,18 +192,16 @@ func (x *SetBootConfigRequest) GetCertz() *bootz.CertzProfiles {
 }
 
 type SetBootConfigResponse struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState `protogen:"open.v1"`
 	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *SetBootConfigResponse) Reset() {
 	*x = SetBootConfigResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_github_com_openconfig_gnoi_bootconfig_bootconfig_proto_msgTypes[3]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_bootconfig_bootconfig_proto_msgTypes[3]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *SetBootConfigResponse) String() string {
@@ -222,7 +212,7 @@ func (*SetBootConfigResponse) ProtoMessage() {}
 
 func (x *SetBootConfigResponse) ProtoReflect() protoreflect.Message {
 	mi := &file_github_com_openconfig_gnoi_bootconfig_bootconfig_proto_msgTypes[3]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -321,7 +311,7 @@ func file_github_com_openconfig_gnoi_bootconfig_bootconfig_proto_rawDescGZIP() [
 }
 
 var file_github_com_openconfig_gnoi_bootconfig_bootconfig_proto_msgTypes = make([]protoimpl.MessageInfo, 4)
-var file_github_com_openconfig_gnoi_bootconfig_bootconfig_proto_goTypes = []interface{}{
+var file_github_com_openconfig_gnoi_bootconfig_bootconfig_proto_goTypes = []any{
 	(*GetBootConfigRequest)(nil),  // 0: gnoi.bootconfig.GetBootConfigRequest
 	(*GetBootConfigResponse)(nil), // 1: gnoi.bootconfig.GetBootConfigResponse
 	(*SetBootConfigRequest)(nil),  // 2: gnoi.bootconfig.SetBootConfigRequest
@@ -357,56 +347,6 @@ func file_github_com_openconfig_gnoi_bootconfig_bootconfig_proto_init() {
 	if File_github_com_openconfig_gnoi_bootconfig_bootconfig_proto != nil {
 		return
 	}
-	if !protoimpl.UnsafeEnabled {
-		file_github_com_openconfig_gnoi_bootconfig_bootconfig_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*GetBootConfigRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_github_com_openconfig_gnoi_bootconfig_bootconfig_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*GetBootConfigResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_github_com_openconfig_gnoi_bootconfig_bootconfig_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*SetBootConfigRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_github_com_openconfig_gnoi_bootconfig_bootconfig_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*SetBootConfigResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-	}
 	type x struct{}
 	out := protoimpl.TypeBuilder{
 		File: protoimpl.DescBuilder{
diff --git a/bootconfig/bootconfig_grpc.pb.go b/bootconfig/bootconfig_grpc.pb.go
index 84027979..f9abab21 100644
--- a/bootconfig/bootconfig_grpc.pb.go
+++ b/bootconfig/bootconfig_grpc.pb.go
@@ -1,7 +1,7 @@
 // Code generated by protoc-gen-go-grpc. DO NOT EDIT.
 // versions:
-// - protoc-gen-go-grpc v1.2.0
-// - protoc             v3.21.10
+// - protoc-gen-go-grpc v1.5.1
+// - protoc             v5.29.3
 // source: github.com/openconfig/gnoi/bootconfig/bootconfig.proto
 
 package bootconfig
@@ -15,8 +15,13 @@ import (
 
 // This is a compile-time assertion to ensure that this generated file
 // is compatible with the grpc package it is being compiled against.
-// Requires gRPC-Go v1.32.0 or later.
-const _ = grpc.SupportPackageIsVersion7
+// Requires gRPC-Go v1.64.0 or later.
+const _ = grpc.SupportPackageIsVersion9
+
+const (
+	BootConfig_GetBootConfig_FullMethodName = "/gnoi.bootconfig.BootConfig/GetBootConfig"
+	BootConfig_SetBootConfig_FullMethodName = "/gnoi.bootconfig.BootConfig/SetBootConfig"
+)
 
 // BootConfigClient is the client API for BootConfig service.
 //
@@ -35,8 +40,9 @@ func NewBootConfigClient(cc grpc.ClientConnInterface) BootConfigClient {
 }
 
 func (c *bootConfigClient) GetBootConfig(ctx context.Context, in *GetBootConfigRequest, opts ...grpc.CallOption) (*GetBootConfigResponse, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
 	out := new(GetBootConfigResponse)
-	err := c.cc.Invoke(ctx, "/gnoi.bootconfig.BootConfig/GetBootConfig", in, out, opts...)
+	err := c.cc.Invoke(ctx, BootConfig_GetBootConfig_FullMethodName, in, out, cOpts...)
 	if err != nil {
 		return nil, err
 	}
@@ -44,8 +50,9 @@ func (c *bootConfigClient) GetBootConfig(ctx context.Context, in *GetBootConfigR
 }
 
 func (c *bootConfigClient) SetBootConfig(ctx context.Context, in *SetBootConfigRequest, opts ...grpc.CallOption) (*SetBootConfigResponse, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
 	out := new(SetBootConfigResponse)
-	err := c.cc.Invoke(ctx, "/gnoi.bootconfig.BootConfig/SetBootConfig", in, out, opts...)
+	err := c.cc.Invoke(ctx, BootConfig_SetBootConfig_FullMethodName, in, out, cOpts...)
 	if err != nil {
 		return nil, err
 	}
@@ -53,17 +60,19 @@ func (c *bootConfigClient) SetBootConfig(ctx context.Context, in *SetBootConfigR
 }
 
 // BootConfigServer is the server API for BootConfig service.
-// All implementations must embed UnimplementedBootConfigServer
-// for forward compatibility
+// All implementations should embed UnimplementedBootConfigServer
+// for forward compatibility.
 type BootConfigServer interface {
 	GetBootConfig(context.Context, *GetBootConfigRequest) (*GetBootConfigResponse, error)
 	SetBootConfig(context.Context, *SetBootConfigRequest) (*SetBootConfigResponse, error)
-	mustEmbedUnimplementedBootConfigServer()
 }
 
-// UnimplementedBootConfigServer must be embedded to have forward compatible implementations.
-type UnimplementedBootConfigServer struct {
-}
+// UnimplementedBootConfigServer should be embedded to have
+// forward compatible implementations.
+//
+// NOTE: this should be embedded by value instead of pointer to avoid a nil
+// pointer dereference when methods are called.
+type UnimplementedBootConfigServer struct{}
 
 func (UnimplementedBootConfigServer) GetBootConfig(context.Context, *GetBootConfigRequest) (*GetBootConfigResponse, error) {
 	return nil, status.Errorf(codes.Unimplemented, "method GetBootConfig not implemented")
@@ -71,7 +80,7 @@ func (UnimplementedBootConfigServer) GetBootConfig(context.Context, *GetBootConf
 func (UnimplementedBootConfigServer) SetBootConfig(context.Context, *SetBootConfigRequest) (*SetBootConfigResponse, error) {
 	return nil, status.Errorf(codes.Unimplemented, "method SetBootConfig not implemented")
 }
-func (UnimplementedBootConfigServer) mustEmbedUnimplementedBootConfigServer() {}
+func (UnimplementedBootConfigServer) testEmbeddedByValue() {}
 
 // UnsafeBootConfigServer may be embedded to opt out of forward compatibility for this service.
 // Use of this interface is not recommended, as added methods to BootConfigServer will
@@ -81,6 +90,13 @@ type UnsafeBootConfigServer interface {
 }
 
 func RegisterBootConfigServer(s grpc.ServiceRegistrar, srv BootConfigServer) {
+	// If the following call pancis, it indicates UnimplementedBootConfigServer was
+	// embedded by pointer and is nil.  This will cause panics if an
+	// unimplemented method is ever invoked, so we test this at initialization
+	// time to prevent it from happening at runtime later due to I/O.
+	if t, ok := srv.(interface{ testEmbeddedByValue() }); ok {
+		t.testEmbeddedByValue()
+	}
 	s.RegisterService(&BootConfig_ServiceDesc, srv)
 }
 
@@ -94,7 +110,7 @@ func _BootConfig_GetBootConfig_Handler(srv interface{}, ctx context.Context, dec
 	}
 	info := &grpc.UnaryServerInfo{
 		Server:     srv,
-		FullMethod: "/gnoi.bootconfig.BootConfig/GetBootConfig",
+		FullMethod: BootConfig_GetBootConfig_FullMethodName,
 	}
 	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
 		return srv.(BootConfigServer).GetBootConfig(ctx, req.(*GetBootConfigRequest))
@@ -112,7 +128,7 @@ func _BootConfig_SetBootConfig_Handler(srv interface{}, ctx context.Context, dec
 	}
 	info := &grpc.UnaryServerInfo{
 		Server:     srv,
-		FullMethod: "/gnoi.bootconfig.BootConfig/SetBootConfig",
+		FullMethod: BootConfig_SetBootConfig_FullMethodName,
 	}
 	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
 		return srv.(BootConfigServer).SetBootConfig(ctx, req.(*SetBootConfigRequest))
diff --git a/cert/BUILD.bazel b/cert/BUILD.bazel
index 5863db8d..e82c9860 100644
--- a/cert/BUILD.bazel
+++ b/cert/BUILD.bazel
@@ -1,8 +1,8 @@
-load("@rules_proto//proto:defs.bzl", "proto_library")
+load("@com_github_grpc_grpc//bazel:cc_grpc_library.bzl", "cc_grpc_library")
+load("@com_google_protobuf//bazel:cc_proto_library.bzl", "cc_proto_library")
+load("@com_google_protobuf//bazel:proto_library.bzl", "proto_library")
 load("@io_bazel_rules_go//go:def.bzl", "go_library")
 load("@io_bazel_rules_go//proto:def.bzl", "go_proto_library")
-load("@com_github_grpc_grpc//bazel:cc_grpc_library.bzl", "cc_grpc_library")
-load("//:common.bzl", "use_new_compilers")
 
 #Copyright 2021 Google LLC
 #
@@ -23,11 +23,10 @@ package(
     licenses = ["notice"],
 )
 
-use_new_compilers()
-
 proto_library(
     name = "cert_proto",
     srcs = ["cert.proto"],
+    import_prefix = "github.com/openconfig/gnoi",
     deps = ["//types:types_proto"],
 )
 
@@ -46,8 +45,8 @@ cc_grpc_library(
 go_proto_library(
     name = "cert_go_proto",
     compilers = [
-        "go_protoc_gen_go",
-        "go_protoc_gen_go_grpc",
+        "@io_bazel_rules_go//proto:go_grpc_v2",
+        "@io_bazel_rules_go//proto:go_proto",
     ],
     importpath = "github.com/openconfig/gnoi/cert",
     proto = ":cert_proto",
diff --git a/cert/cert.pb.go b/cert/cert.pb.go
index d1f6e73d..6353edd7 100644
--- a/cert/cert.pb.go
+++ b/cert/cert.pb.go
@@ -1,8 +1,8 @@
 // Code generated by protoc-gen-go. DO NOT EDIT.
 // versions:
-// 	protoc-gen-go v1.30.0
-// 	protoc        v3.21.10
-// source: cert/cert.proto
+// 	protoc-gen-go v1.36.2
+// 	protoc        v5.29.3
+// source: github.com/openconfig/gnoi/cert/cert.proto
 
 package cert
 
@@ -51,11 +51,11 @@ func (x CertificateType) String() string {
 }
 
 func (CertificateType) Descriptor() protoreflect.EnumDescriptor {
-	return file_cert_cert_proto_enumTypes[0].Descriptor()
+	return file_github_com_openconfig_gnoi_cert_cert_proto_enumTypes[0].Descriptor()
 }
 
 func (CertificateType) Type() protoreflect.EnumType {
-	return &file_cert_cert_proto_enumTypes[0]
+	return &file_github_com_openconfig_gnoi_cert_cert_proto_enumTypes[0]
 }
 
 func (x CertificateType) Number() protoreflect.EnumNumber {
@@ -64,7 +64,7 @@ func (x CertificateType) Number() protoreflect.EnumNumber {
 
 // Deprecated: Use CertificateType.Descriptor instead.
 func (CertificateType) EnumDescriptor() ([]byte, []int) {
-	return file_cert_cert_proto_rawDescGZIP(), []int{0}
+	return file_github_com_openconfig_gnoi_cert_cert_proto_rawDescGZIP(), []int{0}
 }
 
 type KeyType int32
@@ -97,11 +97,11 @@ func (x KeyType) String() string {
 }
 
 func (KeyType) Descriptor() protoreflect.EnumDescriptor {
-	return file_cert_cert_proto_enumTypes[1].Descriptor()
+	return file_github_com_openconfig_gnoi_cert_cert_proto_enumTypes[1].Descriptor()
 }
 
 func (KeyType) Type() protoreflect.EnumType {
-	return &file_cert_cert_proto_enumTypes[1]
+	return &file_github_com_openconfig_gnoi_cert_cert_proto_enumTypes[1]
 }
 
 func (x KeyType) Number() protoreflect.EnumNumber {
@@ -110,7 +110,7 @@ func (x KeyType) Number() protoreflect.EnumNumber {
 
 // Deprecated: Use KeyType.Descriptor instead.
 func (KeyType) EnumDescriptor() ([]byte, []int) {
-	return file_cert_cert_proto_rawDescGZIP(), []int{1}
+	return file_github_com_openconfig_gnoi_cert_cert_proto_rawDescGZIP(), []int{1}
 }
 
 type Endpoint_Type int32
@@ -146,11 +146,11 @@ func (x Endpoint_Type) String() string {
 }
 
 func (Endpoint_Type) Descriptor() protoreflect.EnumDescriptor {
-	return file_cert_cert_proto_enumTypes[2].Descriptor()
+	return file_github_com_openconfig_gnoi_cert_cert_proto_enumTypes[2].Descriptor()
 }
 
 func (Endpoint_Type) Type() protoreflect.EnumType {
-	return &file_cert_cert_proto_enumTypes[2]
+	return &file_github_com_openconfig_gnoi_cert_cert_proto_enumTypes[2]
 }
 
 func (x Endpoint_Type) Number() protoreflect.EnumNumber {
@@ -159,29 +159,26 @@ func (x Endpoint_Type) Number() protoreflect.EnumNumber {
 
 // Deprecated: Use Endpoint_Type.Descriptor instead.
 func (Endpoint_Type) EnumDescriptor() ([]byte, []int) {
-	return file_cert_cert_proto_rawDescGZIP(), []int{23, 0}
+	return file_github_com_openconfig_gnoi_cert_cert_proto_rawDescGZIP(), []int{23, 0}
 }
 
 type RotateCertificateRequest struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	// Types that are assignable to RotateRequest:
+	state protoimpl.MessageState `protogen:"open.v1"`
+	// Types that are valid to be assigned to RotateRequest:
 	//
 	//	*RotateCertificateRequest_GenerateCsr
 	//	*RotateCertificateRequest_LoadCertificate
 	//	*RotateCertificateRequest_FinalizeRotation
 	RotateRequest isRotateCertificateRequest_RotateRequest `protobuf_oneof:"rotate_request"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *RotateCertificateRequest) Reset() {
 	*x = RotateCertificateRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_cert_cert_proto_msgTypes[0]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_cert_cert_proto_msgTypes[0]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *RotateCertificateRequest) String() string {
@@ -191,8 +188,8 @@ func (x *RotateCertificateRequest) String() string {
 func (*RotateCertificateRequest) ProtoMessage() {}
 
 func (x *RotateCertificateRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_cert_cert_proto_msgTypes[0]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_cert_cert_proto_msgTypes[0]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -204,33 +201,39 @@ func (x *RotateCertificateRequest) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use RotateCertificateRequest.ProtoReflect.Descriptor instead.
 func (*RotateCertificateRequest) Descriptor() ([]byte, []int) {
-	return file_cert_cert_proto_rawDescGZIP(), []int{0}
+	return file_github_com_openconfig_gnoi_cert_cert_proto_rawDescGZIP(), []int{0}
 }
 
-func (m *RotateCertificateRequest) GetRotateRequest() isRotateCertificateRequest_RotateRequest {
-	if m != nil {
-		return m.RotateRequest
+func (x *RotateCertificateRequest) GetRotateRequest() isRotateCertificateRequest_RotateRequest {
+	if x != nil {
+		return x.RotateRequest
 	}
 	return nil
 }
 
 func (x *RotateCertificateRequest) GetGenerateCsr() *GenerateCSRRequest {
-	if x, ok := x.GetRotateRequest().(*RotateCertificateRequest_GenerateCsr); ok {
-		return x.GenerateCsr
+	if x != nil {
+		if x, ok := x.RotateRequest.(*RotateCertificateRequest_GenerateCsr); ok {
+			return x.GenerateCsr
+		}
 	}
 	return nil
 }
 
 func (x *RotateCertificateRequest) GetLoadCertificate() *LoadCertificateRequest {
-	if x, ok := x.GetRotateRequest().(*RotateCertificateRequest_LoadCertificate); ok {
-		return x.LoadCertificate
+	if x != nil {
+		if x, ok := x.RotateRequest.(*RotateCertificateRequest_LoadCertificate); ok {
+			return x.LoadCertificate
+		}
 	}
 	return nil
 }
 
 func (x *RotateCertificateRequest) GetFinalizeRotation() *FinalizeRequest {
-	if x, ok := x.GetRotateRequest().(*RotateCertificateRequest_FinalizeRotation); ok {
-		return x.FinalizeRotation
+	if x != nil {
+		if x, ok := x.RotateRequest.(*RotateCertificateRequest_FinalizeRotation); ok {
+			return x.FinalizeRotation
+		}
 	}
 	return nil
 }
@@ -258,24 +261,21 @@ func (*RotateCertificateRequest_LoadCertificate) isRotateCertificateRequest_Rota
 func (*RotateCertificateRequest_FinalizeRotation) isRotateCertificateRequest_RotateRequest() {}
 
 type RotateCertificateResponse struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	// Types that are assignable to RotateResponse:
+	state protoimpl.MessageState `protogen:"open.v1"`
+	// Types that are valid to be assigned to RotateResponse:
 	//
 	//	*RotateCertificateResponse_GeneratedCsr
 	//	*RotateCertificateResponse_LoadCertificate
 	RotateResponse isRotateCertificateResponse_RotateResponse `protobuf_oneof:"rotate_response"`
+	unknownFields  protoimpl.UnknownFields
+	sizeCache      protoimpl.SizeCache
 }
 
 func (x *RotateCertificateResponse) Reset() {
 	*x = RotateCertificateResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_cert_cert_proto_msgTypes[1]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_cert_cert_proto_msgTypes[1]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *RotateCertificateResponse) String() string {
@@ -285,8 +285,8 @@ func (x *RotateCertificateResponse) String() string {
 func (*RotateCertificateResponse) ProtoMessage() {}
 
 func (x *RotateCertificateResponse) ProtoReflect() protoreflect.Message {
-	mi := &file_cert_cert_proto_msgTypes[1]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_cert_cert_proto_msgTypes[1]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -298,26 +298,30 @@ func (x *RotateCertificateResponse) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use RotateCertificateResponse.ProtoReflect.Descriptor instead.
 func (*RotateCertificateResponse) Descriptor() ([]byte, []int) {
-	return file_cert_cert_proto_rawDescGZIP(), []int{1}
+	return file_github_com_openconfig_gnoi_cert_cert_proto_rawDescGZIP(), []int{1}
 }
 
-func (m *RotateCertificateResponse) GetRotateResponse() isRotateCertificateResponse_RotateResponse {
-	if m != nil {
-		return m.RotateResponse
+func (x *RotateCertificateResponse) GetRotateResponse() isRotateCertificateResponse_RotateResponse {
+	if x != nil {
+		return x.RotateResponse
 	}
 	return nil
 }
 
 func (x *RotateCertificateResponse) GetGeneratedCsr() *GenerateCSRResponse {
-	if x, ok := x.GetRotateResponse().(*RotateCertificateResponse_GeneratedCsr); ok {
-		return x.GeneratedCsr
+	if x != nil {
+		if x, ok := x.RotateResponse.(*RotateCertificateResponse_GeneratedCsr); ok {
+			return x.GeneratedCsr
+		}
 	}
 	return nil
 }
 
 func (x *RotateCertificateResponse) GetLoadCertificate() *LoadCertificateResponse {
-	if x, ok := x.GetRotateResponse().(*RotateCertificateResponse_LoadCertificate); ok {
-		return x.LoadCertificate
+	if x != nil {
+		if x, ok := x.RotateResponse.(*RotateCertificateResponse_LoadCertificate); ok {
+			return x.LoadCertificate
+		}
 	}
 	return nil
 }
@@ -339,24 +343,21 @@ func (*RotateCertificateResponse_GeneratedCsr) isRotateCertificateResponse_Rotat
 func (*RotateCertificateResponse_LoadCertificate) isRotateCertificateResponse_RotateResponse() {}
 
 type InstallCertificateRequest struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	// Types that are assignable to InstallRequest:
+	state protoimpl.MessageState `protogen:"open.v1"`
+	// Types that are valid to be assigned to InstallRequest:
 	//
 	//	*InstallCertificateRequest_GenerateCsr
 	//	*InstallCertificateRequest_LoadCertificate
 	InstallRequest isInstallCertificateRequest_InstallRequest `protobuf_oneof:"install_request"`
+	unknownFields  protoimpl.UnknownFields
+	sizeCache      protoimpl.SizeCache
 }
 
 func (x *InstallCertificateRequest) Reset() {
 	*x = InstallCertificateRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_cert_cert_proto_msgTypes[2]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_cert_cert_proto_msgTypes[2]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *InstallCertificateRequest) String() string {
@@ -366,8 +367,8 @@ func (x *InstallCertificateRequest) String() string {
 func (*InstallCertificateRequest) ProtoMessage() {}
 
 func (x *InstallCertificateRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_cert_cert_proto_msgTypes[2]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_cert_cert_proto_msgTypes[2]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -379,26 +380,30 @@ func (x *InstallCertificateRequest) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use InstallCertificateRequest.ProtoReflect.Descriptor instead.
 func (*InstallCertificateRequest) Descriptor() ([]byte, []int) {
-	return file_cert_cert_proto_rawDescGZIP(), []int{2}
+	return file_github_com_openconfig_gnoi_cert_cert_proto_rawDescGZIP(), []int{2}
 }
 
-func (m *InstallCertificateRequest) GetInstallRequest() isInstallCertificateRequest_InstallRequest {
-	if m != nil {
-		return m.InstallRequest
+func (x *InstallCertificateRequest) GetInstallRequest() isInstallCertificateRequest_InstallRequest {
+	if x != nil {
+		return x.InstallRequest
 	}
 	return nil
 }
 
 func (x *InstallCertificateRequest) GetGenerateCsr() *GenerateCSRRequest {
-	if x, ok := x.GetInstallRequest().(*InstallCertificateRequest_GenerateCsr); ok {
-		return x.GenerateCsr
+	if x != nil {
+		if x, ok := x.InstallRequest.(*InstallCertificateRequest_GenerateCsr); ok {
+			return x.GenerateCsr
+		}
 	}
 	return nil
 }
 
 func (x *InstallCertificateRequest) GetLoadCertificate() *LoadCertificateRequest {
-	if x, ok := x.GetInstallRequest().(*InstallCertificateRequest_LoadCertificate); ok {
-		return x.LoadCertificate
+	if x != nil {
+		if x, ok := x.InstallRequest.(*InstallCertificateRequest_LoadCertificate); ok {
+			return x.LoadCertificate
+		}
 	}
 	return nil
 }
@@ -420,24 +425,21 @@ func (*InstallCertificateRequest_GenerateCsr) isInstallCertificateRequest_Instal
 func (*InstallCertificateRequest_LoadCertificate) isInstallCertificateRequest_InstallRequest() {}
 
 type InstallCertificateResponse struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	// Types that are assignable to InstallResponse:
+	state protoimpl.MessageState `protogen:"open.v1"`
+	// Types that are valid to be assigned to InstallResponse:
 	//
 	//	*InstallCertificateResponse_GeneratedCsr
 	//	*InstallCertificateResponse_LoadCertificate
 	InstallResponse isInstallCertificateResponse_InstallResponse `protobuf_oneof:"install_response"`
+	unknownFields   protoimpl.UnknownFields
+	sizeCache       protoimpl.SizeCache
 }
 
 func (x *InstallCertificateResponse) Reset() {
 	*x = InstallCertificateResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_cert_cert_proto_msgTypes[3]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_cert_cert_proto_msgTypes[3]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *InstallCertificateResponse) String() string {
@@ -447,8 +449,8 @@ func (x *InstallCertificateResponse) String() string {
 func (*InstallCertificateResponse) ProtoMessage() {}
 
 func (x *InstallCertificateResponse) ProtoReflect() protoreflect.Message {
-	mi := &file_cert_cert_proto_msgTypes[3]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_cert_cert_proto_msgTypes[3]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -460,26 +462,30 @@ func (x *InstallCertificateResponse) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use InstallCertificateResponse.ProtoReflect.Descriptor instead.
 func (*InstallCertificateResponse) Descriptor() ([]byte, []int) {
-	return file_cert_cert_proto_rawDescGZIP(), []int{3}
+	return file_github_com_openconfig_gnoi_cert_cert_proto_rawDescGZIP(), []int{3}
 }
 
-func (m *InstallCertificateResponse) GetInstallResponse() isInstallCertificateResponse_InstallResponse {
-	if m != nil {
-		return m.InstallResponse
+func (x *InstallCertificateResponse) GetInstallResponse() isInstallCertificateResponse_InstallResponse {
+	if x != nil {
+		return x.InstallResponse
 	}
 	return nil
 }
 
 func (x *InstallCertificateResponse) GetGeneratedCsr() *GenerateCSRResponse {
-	if x, ok := x.GetInstallResponse().(*InstallCertificateResponse_GeneratedCsr); ok {
-		return x.GeneratedCsr
+	if x != nil {
+		if x, ok := x.InstallResponse.(*InstallCertificateResponse_GeneratedCsr); ok {
+			return x.GeneratedCsr
+		}
 	}
 	return nil
 }
 
 func (x *InstallCertificateResponse) GetLoadCertificate() *LoadCertificateResponse {
-	if x, ok := x.GetInstallResponse().(*InstallCertificateResponse_LoadCertificate); ok {
-		return x.LoadCertificate
+	if x != nil {
+		if x, ok := x.InstallResponse.(*InstallCertificateResponse_LoadCertificate); ok {
+			return x.LoadCertificate
+		}
 	}
 	return nil
 }
@@ -501,21 +507,18 @@ func (*InstallCertificateResponse_GeneratedCsr) isInstallCertificateResponse_Ins
 func (*InstallCertificateResponse_LoadCertificate) isInstallCertificateResponse_InstallResponse() {}
 
 type GenerateCSRRequest struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	CsrParams     *CSRParams             `protobuf:"bytes,1,opt,name=csr_params,json=csrParams,proto3" json:"csr_params,omitempty"`
+	CertificateId string                 `protobuf:"bytes,2,opt,name=certificate_id,json=certificateId,proto3" json:"certificate_id,omitempty"`
 	unknownFields protoimpl.UnknownFields
-
-	CsrParams     *CSRParams `protobuf:"bytes,1,opt,name=csr_params,json=csrParams,proto3" json:"csr_params,omitempty"`
-	CertificateId string     `protobuf:"bytes,2,opt,name=certificate_id,json=certificateId,proto3" json:"certificate_id,omitempty"`
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *GenerateCSRRequest) Reset() {
 	*x = GenerateCSRRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_cert_cert_proto_msgTypes[4]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_cert_cert_proto_msgTypes[4]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *GenerateCSRRequest) String() string {
@@ -525,8 +528,8 @@ func (x *GenerateCSRRequest) String() string {
 func (*GenerateCSRRequest) ProtoMessage() {}
 
 func (x *GenerateCSRRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_cert_cert_proto_msgTypes[4]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_cert_cert_proto_msgTypes[4]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -538,7 +541,7 @@ func (x *GenerateCSRRequest) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use GenerateCSRRequest.ProtoReflect.Descriptor instead.
 func (*GenerateCSRRequest) Descriptor() ([]byte, []int) {
-	return file_cert_cert_proto_rawDescGZIP(), []int{4}
+	return file_github_com_openconfig_gnoi_cert_cert_proto_rawDescGZIP(), []int{4}
 }
 
 func (x *GenerateCSRRequest) GetCsrParams() *CSRParams {
@@ -556,30 +559,27 @@ func (x *GenerateCSRRequest) GetCertificateId() string {
 }
 
 type CSRParams struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	Type               CertificateType `protobuf:"varint,1,opt,name=type,proto3,enum=gnoi.certificate.CertificateType" json:"type,omitempty"`
-	MinKeySize         uint32          `protobuf:"varint,2,opt,name=min_key_size,json=minKeySize,proto3" json:"min_key_size,omitempty"`
-	KeyType            KeyType         `protobuf:"varint,3,opt,name=key_type,json=keyType,proto3,enum=gnoi.certificate.KeyType" json:"key_type,omitempty"`
-	CommonName         string          `protobuf:"bytes,4,opt,name=common_name,json=commonName,proto3" json:"common_name,omitempty"`
-	Country            string          `protobuf:"bytes,5,opt,name=country,proto3" json:"country,omitempty"`
-	State              string          `protobuf:"bytes,6,opt,name=state,proto3" json:"state,omitempty"`
-	City               string          `protobuf:"bytes,7,opt,name=city,proto3" json:"city,omitempty"`
-	Organization       string          `protobuf:"bytes,8,opt,name=organization,proto3" json:"organization,omitempty"`
-	OrganizationalUnit string          `protobuf:"bytes,9,opt,name=organizational_unit,json=organizationalUnit,proto3" json:"organizational_unit,omitempty"`
-	IpAddress          string          `protobuf:"bytes,10,opt,name=ip_address,json=ipAddress,proto3" json:"ip_address,omitempty"`
-	EmailId            string          `protobuf:"bytes,11,opt,name=email_id,json=emailId,proto3" json:"email_id,omitempty"`
+	state              protoimpl.MessageState `protogen:"open.v1"`
+	Type               CertificateType        `protobuf:"varint,1,opt,name=type,proto3,enum=gnoi.certificate.CertificateType" json:"type,omitempty"`
+	MinKeySize         uint32                 `protobuf:"varint,2,opt,name=min_key_size,json=minKeySize,proto3" json:"min_key_size,omitempty"`
+	KeyType            KeyType                `protobuf:"varint,3,opt,name=key_type,json=keyType,proto3,enum=gnoi.certificate.KeyType" json:"key_type,omitempty"`
+	CommonName         string                 `protobuf:"bytes,4,opt,name=common_name,json=commonName,proto3" json:"common_name,omitempty"`
+	Country            string                 `protobuf:"bytes,5,opt,name=country,proto3" json:"country,omitempty"`
+	State              string                 `protobuf:"bytes,6,opt,name=state,proto3" json:"state,omitempty"`
+	City               string                 `protobuf:"bytes,7,opt,name=city,proto3" json:"city,omitempty"`
+	Organization       string                 `protobuf:"bytes,8,opt,name=organization,proto3" json:"organization,omitempty"`
+	OrganizationalUnit string                 `protobuf:"bytes,9,opt,name=organizational_unit,json=organizationalUnit,proto3" json:"organizational_unit,omitempty"`
+	IpAddress          string                 `protobuf:"bytes,10,opt,name=ip_address,json=ipAddress,proto3" json:"ip_address,omitempty"`
+	EmailId            string                 `protobuf:"bytes,11,opt,name=email_id,json=emailId,proto3" json:"email_id,omitempty"`
+	unknownFields      protoimpl.UnknownFields
+	sizeCache          protoimpl.SizeCache
 }
 
 func (x *CSRParams) Reset() {
 	*x = CSRParams{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_cert_cert_proto_msgTypes[5]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_cert_cert_proto_msgTypes[5]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *CSRParams) String() string {
@@ -589,8 +589,8 @@ func (x *CSRParams) String() string {
 func (*CSRParams) ProtoMessage() {}
 
 func (x *CSRParams) ProtoReflect() protoreflect.Message {
-	mi := &file_cert_cert_proto_msgTypes[5]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_cert_cert_proto_msgTypes[5]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -602,7 +602,7 @@ func (x *CSRParams) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use CSRParams.ProtoReflect.Descriptor instead.
 func (*CSRParams) Descriptor() ([]byte, []int) {
-	return file_cert_cert_proto_rawDescGZIP(), []int{5}
+	return file_github_com_openconfig_gnoi_cert_cert_proto_rawDescGZIP(), []int{5}
 }
 
 func (x *CSRParams) GetType() CertificateType {
@@ -683,20 +683,17 @@ func (x *CSRParams) GetEmailId() string {
 }
 
 type GenerateCSRResponse struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Csr           *CSR                   `protobuf:"bytes,1,opt,name=csr,proto3" json:"csr,omitempty"`
 	unknownFields protoimpl.UnknownFields
-
-	Csr *CSR `protobuf:"bytes,1,opt,name=csr,proto3" json:"csr,omitempty"`
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *GenerateCSRResponse) Reset() {
 	*x = GenerateCSRResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_cert_cert_proto_msgTypes[6]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_cert_cert_proto_msgTypes[6]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *GenerateCSRResponse) String() string {
@@ -706,8 +703,8 @@ func (x *GenerateCSRResponse) String() string {
 func (*GenerateCSRResponse) ProtoMessage() {}
 
 func (x *GenerateCSRResponse) ProtoReflect() protoreflect.Message {
-	mi := &file_cert_cert_proto_msgTypes[6]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_cert_cert_proto_msgTypes[6]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -719,7 +716,7 @@ func (x *GenerateCSRResponse) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use GenerateCSRResponse.ProtoReflect.Descriptor instead.
 func (*GenerateCSRResponse) Descriptor() ([]byte, []int) {
-	return file_cert_cert_proto_rawDescGZIP(), []int{6}
+	return file_github_com_openconfig_gnoi_cert_cert_proto_rawDescGZIP(), []int{6}
 }
 
 func (x *GenerateCSRResponse) GetCsr() *CSR {
@@ -730,23 +727,20 @@ func (x *GenerateCSRResponse) GetCsr() *CSR {
 }
 
 type LoadCertificateRequest struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	Certificate    *Certificate   `protobuf:"bytes,1,opt,name=certificate,proto3" json:"certificate,omitempty"`
-	KeyPair        *KeyPair       `protobuf:"bytes,2,opt,name=key_pair,json=keyPair,proto3" json:"key_pair,omitempty"`
-	CertificateId  string         `protobuf:"bytes,3,opt,name=certificate_id,json=certificateId,proto3" json:"certificate_id,omitempty"`
-	CaCertificates []*Certificate `protobuf:"bytes,4,rep,name=ca_certificates,json=caCertificates,proto3" json:"ca_certificates,omitempty"`
+	state          protoimpl.MessageState `protogen:"open.v1"`
+	Certificate    *Certificate           `protobuf:"bytes,1,opt,name=certificate,proto3" json:"certificate,omitempty"`
+	KeyPair        *KeyPair               `protobuf:"bytes,2,opt,name=key_pair,json=keyPair,proto3" json:"key_pair,omitempty"`
+	CertificateId  string                 `protobuf:"bytes,3,opt,name=certificate_id,json=certificateId,proto3" json:"certificate_id,omitempty"`
+	CaCertificates []*Certificate         `protobuf:"bytes,4,rep,name=ca_certificates,json=caCertificates,proto3" json:"ca_certificates,omitempty"`
+	unknownFields  protoimpl.UnknownFields
+	sizeCache      protoimpl.SizeCache
 }
 
 func (x *LoadCertificateRequest) Reset() {
 	*x = LoadCertificateRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_cert_cert_proto_msgTypes[7]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_cert_cert_proto_msgTypes[7]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *LoadCertificateRequest) String() string {
@@ -756,8 +750,8 @@ func (x *LoadCertificateRequest) String() string {
 func (*LoadCertificateRequest) ProtoMessage() {}
 
 func (x *LoadCertificateRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_cert_cert_proto_msgTypes[7]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_cert_cert_proto_msgTypes[7]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -769,7 +763,7 @@ func (x *LoadCertificateRequest) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use LoadCertificateRequest.ProtoReflect.Descriptor instead.
 func (*LoadCertificateRequest) Descriptor() ([]byte, []int) {
-	return file_cert_cert_proto_rawDescGZIP(), []int{7}
+	return file_github_com_openconfig_gnoi_cert_cert_proto_rawDescGZIP(), []int{7}
 }
 
 func (x *LoadCertificateRequest) GetCertificate() *Certificate {
@@ -801,18 +795,16 @@ func (x *LoadCertificateRequest) GetCaCertificates() []*Certificate {
 }
 
 type LoadCertificateResponse struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState `protogen:"open.v1"`
 	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *LoadCertificateResponse) Reset() {
 	*x = LoadCertificateResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_cert_cert_proto_msgTypes[8]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_cert_cert_proto_msgTypes[8]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *LoadCertificateResponse) String() string {
@@ -822,8 +814,8 @@ func (x *LoadCertificateResponse) String() string {
 func (*LoadCertificateResponse) ProtoMessage() {}
 
 func (x *LoadCertificateResponse) ProtoReflect() protoreflect.Message {
-	mi := &file_cert_cert_proto_msgTypes[8]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_cert_cert_proto_msgTypes[8]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -835,24 +827,21 @@ func (x *LoadCertificateResponse) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use LoadCertificateResponse.ProtoReflect.Descriptor instead.
 func (*LoadCertificateResponse) Descriptor() ([]byte, []int) {
-	return file_cert_cert_proto_rawDescGZIP(), []int{8}
+	return file_github_com_openconfig_gnoi_cert_cert_proto_rawDescGZIP(), []int{8}
 }
 
 type LoadCertificateAuthorityBundleRequest struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	CaCertificates []*Certificate `protobuf:"bytes,1,rep,name=ca_certificates,json=caCertificates,proto3" json:"ca_certificates,omitempty"`
+	state          protoimpl.MessageState `protogen:"open.v1"`
+	CaCertificates []*Certificate         `protobuf:"bytes,1,rep,name=ca_certificates,json=caCertificates,proto3" json:"ca_certificates,omitempty"`
+	unknownFields  protoimpl.UnknownFields
+	sizeCache      protoimpl.SizeCache
 }
 
 func (x *LoadCertificateAuthorityBundleRequest) Reset() {
 	*x = LoadCertificateAuthorityBundleRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_cert_cert_proto_msgTypes[9]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_cert_cert_proto_msgTypes[9]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *LoadCertificateAuthorityBundleRequest) String() string {
@@ -862,8 +851,8 @@ func (x *LoadCertificateAuthorityBundleRequest) String() string {
 func (*LoadCertificateAuthorityBundleRequest) ProtoMessage() {}
 
 func (x *LoadCertificateAuthorityBundleRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_cert_cert_proto_msgTypes[9]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_cert_cert_proto_msgTypes[9]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -875,7 +864,7 @@ func (x *LoadCertificateAuthorityBundleRequest) ProtoReflect() protoreflect.Mess
 
 // Deprecated: Use LoadCertificateAuthorityBundleRequest.ProtoReflect.Descriptor instead.
 func (*LoadCertificateAuthorityBundleRequest) Descriptor() ([]byte, []int) {
-	return file_cert_cert_proto_rawDescGZIP(), []int{9}
+	return file_github_com_openconfig_gnoi_cert_cert_proto_rawDescGZIP(), []int{9}
 }
 
 func (x *LoadCertificateAuthorityBundleRequest) GetCaCertificates() []*Certificate {
@@ -886,18 +875,16 @@ func (x *LoadCertificateAuthorityBundleRequest) GetCaCertificates() []*Certifica
 }
 
 type LoadCertificateAuthorityBundleResponse struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState `protogen:"open.v1"`
 	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *LoadCertificateAuthorityBundleResponse) Reset() {
 	*x = LoadCertificateAuthorityBundleResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_cert_cert_proto_msgTypes[10]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_cert_cert_proto_msgTypes[10]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *LoadCertificateAuthorityBundleResponse) String() string {
@@ -907,8 +894,8 @@ func (x *LoadCertificateAuthorityBundleResponse) String() string {
 func (*LoadCertificateAuthorityBundleResponse) ProtoMessage() {}
 
 func (x *LoadCertificateAuthorityBundleResponse) ProtoReflect() protoreflect.Message {
-	mi := &file_cert_cert_proto_msgTypes[10]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_cert_cert_proto_msgTypes[10]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -920,22 +907,20 @@ func (x *LoadCertificateAuthorityBundleResponse) ProtoReflect() protoreflect.Mes
 
 // Deprecated: Use LoadCertificateAuthorityBundleResponse.ProtoReflect.Descriptor instead.
 func (*LoadCertificateAuthorityBundleResponse) Descriptor() ([]byte, []int) {
-	return file_cert_cert_proto_rawDescGZIP(), []int{10}
+	return file_github_com_openconfig_gnoi_cert_cert_proto_rawDescGZIP(), []int{10}
 }
 
 type FinalizeRequest struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState `protogen:"open.v1"`
 	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *FinalizeRequest) Reset() {
 	*x = FinalizeRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_cert_cert_proto_msgTypes[11]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_cert_cert_proto_msgTypes[11]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *FinalizeRequest) String() string {
@@ -945,8 +930,8 @@ func (x *FinalizeRequest) String() string {
 func (*FinalizeRequest) ProtoMessage() {}
 
 func (x *FinalizeRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_cert_cert_proto_msgTypes[11]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_cert_cert_proto_msgTypes[11]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -958,22 +943,20 @@ func (x *FinalizeRequest) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use FinalizeRequest.ProtoReflect.Descriptor instead.
 func (*FinalizeRequest) Descriptor() ([]byte, []int) {
-	return file_cert_cert_proto_rawDescGZIP(), []int{11}
+	return file_github_com_openconfig_gnoi_cert_cert_proto_rawDescGZIP(), []int{11}
 }
 
 type GetCertificatesRequest struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState `protogen:"open.v1"`
 	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *GetCertificatesRequest) Reset() {
 	*x = GetCertificatesRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_cert_cert_proto_msgTypes[12]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_cert_cert_proto_msgTypes[12]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *GetCertificatesRequest) String() string {
@@ -983,8 +966,8 @@ func (x *GetCertificatesRequest) String() string {
 func (*GetCertificatesRequest) ProtoMessage() {}
 
 func (x *GetCertificatesRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_cert_cert_proto_msgTypes[12]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_cert_cert_proto_msgTypes[12]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -996,24 +979,21 @@ func (x *GetCertificatesRequest) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use GetCertificatesRequest.ProtoReflect.Descriptor instead.
 func (*GetCertificatesRequest) Descriptor() ([]byte, []int) {
-	return file_cert_cert_proto_rawDescGZIP(), []int{12}
+	return file_github_com_openconfig_gnoi_cert_cert_proto_rawDescGZIP(), []int{12}
 }
 
 type GetCertificatesResponse struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	CertificateInfo []*CertificateInfo `protobuf:"bytes,1,rep,name=certificate_info,json=certificateInfo,proto3" json:"certificate_info,omitempty"`
+	state           protoimpl.MessageState `protogen:"open.v1"`
+	CertificateInfo []*CertificateInfo     `protobuf:"bytes,1,rep,name=certificate_info,json=certificateInfo,proto3" json:"certificate_info,omitempty"`
+	unknownFields   protoimpl.UnknownFields
+	sizeCache       protoimpl.SizeCache
 }
 
 func (x *GetCertificatesResponse) Reset() {
 	*x = GetCertificatesResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_cert_cert_proto_msgTypes[13]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_cert_cert_proto_msgTypes[13]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *GetCertificatesResponse) String() string {
@@ -1023,8 +1003,8 @@ func (x *GetCertificatesResponse) String() string {
 func (*GetCertificatesResponse) ProtoMessage() {}
 
 func (x *GetCertificatesResponse) ProtoReflect() protoreflect.Message {
-	mi := &file_cert_cert_proto_msgTypes[13]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_cert_cert_proto_msgTypes[13]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -1036,7 +1016,7 @@ func (x *GetCertificatesResponse) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use GetCertificatesResponse.ProtoReflect.Descriptor instead.
 func (*GetCertificatesResponse) Descriptor() ([]byte, []int) {
-	return file_cert_cert_proto_rawDescGZIP(), []int{13}
+	return file_github_com_openconfig_gnoi_cert_cert_proto_rawDescGZIP(), []int{13}
 }
 
 func (x *GetCertificatesResponse) GetCertificateInfo() []*CertificateInfo {
@@ -1047,23 +1027,20 @@ func (x *GetCertificatesResponse) GetCertificateInfo() []*CertificateInfo {
 }
 
 type CertificateInfo struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	CertificateId    string       `protobuf:"bytes,1,opt,name=certificate_id,json=certificateId,proto3" json:"certificate_id,omitempty"`
-	Certificate      *Certificate `protobuf:"bytes,2,opt,name=certificate,proto3" json:"certificate,omitempty"`
-	Endpoints        []*Endpoint  `protobuf:"bytes,3,rep,name=endpoints,proto3" json:"endpoints,omitempty"`
-	ModificationTime int64        `protobuf:"varint,4,opt,name=modification_time,json=modificationTime,proto3" json:"modification_time,omitempty"`
+	state            protoimpl.MessageState `protogen:"open.v1"`
+	CertificateId    string                 `protobuf:"bytes,1,opt,name=certificate_id,json=certificateId,proto3" json:"certificate_id,omitempty"`
+	Certificate      *Certificate           `protobuf:"bytes,2,opt,name=certificate,proto3" json:"certificate,omitempty"`
+	Endpoints        []*Endpoint            `protobuf:"bytes,3,rep,name=endpoints,proto3" json:"endpoints,omitempty"`
+	ModificationTime int64                  `protobuf:"varint,4,opt,name=modification_time,json=modificationTime,proto3" json:"modification_time,omitempty"`
+	unknownFields    protoimpl.UnknownFields
+	sizeCache        protoimpl.SizeCache
 }
 
 func (x *CertificateInfo) Reset() {
 	*x = CertificateInfo{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_cert_cert_proto_msgTypes[14]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_cert_cert_proto_msgTypes[14]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *CertificateInfo) String() string {
@@ -1073,8 +1050,8 @@ func (x *CertificateInfo) String() string {
 func (*CertificateInfo) ProtoMessage() {}
 
 func (x *CertificateInfo) ProtoReflect() protoreflect.Message {
-	mi := &file_cert_cert_proto_msgTypes[14]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_cert_cert_proto_msgTypes[14]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -1086,7 +1063,7 @@ func (x *CertificateInfo) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use CertificateInfo.ProtoReflect.Descriptor instead.
 func (*CertificateInfo) Descriptor() ([]byte, []int) {
-	return file_cert_cert_proto_rawDescGZIP(), []int{14}
+	return file_github_com_openconfig_gnoi_cert_cert_proto_rawDescGZIP(), []int{14}
 }
 
 func (x *CertificateInfo) GetCertificateId() string {
@@ -1118,20 +1095,17 @@ func (x *CertificateInfo) GetModificationTime() int64 {
 }
 
 type RevokeCertificatesRequest struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	CertificateId []string               `protobuf:"bytes,1,rep,name=certificate_id,json=certificateId,proto3" json:"certificate_id,omitempty"`
 	unknownFields protoimpl.UnknownFields
-
-	CertificateId []string `protobuf:"bytes,1,rep,name=certificate_id,json=certificateId,proto3" json:"certificate_id,omitempty"`
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *RevokeCertificatesRequest) Reset() {
 	*x = RevokeCertificatesRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_cert_cert_proto_msgTypes[15]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_cert_cert_proto_msgTypes[15]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *RevokeCertificatesRequest) String() string {
@@ -1141,8 +1115,8 @@ func (x *RevokeCertificatesRequest) String() string {
 func (*RevokeCertificatesRequest) ProtoMessage() {}
 
 func (x *RevokeCertificatesRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_cert_cert_proto_msgTypes[15]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_cert_cert_proto_msgTypes[15]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -1154,7 +1128,7 @@ func (x *RevokeCertificatesRequest) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use RevokeCertificatesRequest.ProtoReflect.Descriptor instead.
 func (*RevokeCertificatesRequest) Descriptor() ([]byte, []int) {
-	return file_cert_cert_proto_rawDescGZIP(), []int{15}
+	return file_github_com_openconfig_gnoi_cert_cert_proto_rawDescGZIP(), []int{15}
 }
 
 func (x *RevokeCertificatesRequest) GetCertificateId() []string {
@@ -1165,21 +1139,18 @@ func (x *RevokeCertificatesRequest) GetCertificateId() []string {
 }
 
 type RevokeCertificatesResponse struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
+	state                      protoimpl.MessageState        `protogen:"open.v1"`
 	RevokedCertificateId       []string                      `protobuf:"bytes,1,rep,name=revoked_certificate_id,json=revokedCertificateId,proto3" json:"revoked_certificate_id,omitempty"`
 	CertificateRevocationError []*CertificateRevocationError `protobuf:"bytes,2,rep,name=certificate_revocation_error,json=certificateRevocationError,proto3" json:"certificate_revocation_error,omitempty"`
+	unknownFields              protoimpl.UnknownFields
+	sizeCache                  protoimpl.SizeCache
 }
 
 func (x *RevokeCertificatesResponse) Reset() {
 	*x = RevokeCertificatesResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_cert_cert_proto_msgTypes[16]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_cert_cert_proto_msgTypes[16]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *RevokeCertificatesResponse) String() string {
@@ -1189,8 +1160,8 @@ func (x *RevokeCertificatesResponse) String() string {
 func (*RevokeCertificatesResponse) ProtoMessage() {}
 
 func (x *RevokeCertificatesResponse) ProtoReflect() protoreflect.Message {
-	mi := &file_cert_cert_proto_msgTypes[16]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_cert_cert_proto_msgTypes[16]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -1202,7 +1173,7 @@ func (x *RevokeCertificatesResponse) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use RevokeCertificatesResponse.ProtoReflect.Descriptor instead.
 func (*RevokeCertificatesResponse) Descriptor() ([]byte, []int) {
-	return file_cert_cert_proto_rawDescGZIP(), []int{16}
+	return file_github_com_openconfig_gnoi_cert_cert_proto_rawDescGZIP(), []int{16}
 }
 
 func (x *RevokeCertificatesResponse) GetRevokedCertificateId() []string {
@@ -1220,21 +1191,18 @@ func (x *RevokeCertificatesResponse) GetCertificateRevocationError() []*Certific
 }
 
 type CertificateRevocationError struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	CertificateId string                 `protobuf:"bytes,1,opt,name=certificate_id,json=certificateId,proto3" json:"certificate_id,omitempty"`
+	ErrorMessage  string                 `protobuf:"bytes,2,opt,name=error_message,json=errorMessage,proto3" json:"error_message,omitempty"`
 	unknownFields protoimpl.UnknownFields
-
-	CertificateId string `protobuf:"bytes,1,opt,name=certificate_id,json=certificateId,proto3" json:"certificate_id,omitempty"`
-	ErrorMessage  string `protobuf:"bytes,2,opt,name=error_message,json=errorMessage,proto3" json:"error_message,omitempty"`
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *CertificateRevocationError) Reset() {
 	*x = CertificateRevocationError{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_cert_cert_proto_msgTypes[17]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_cert_cert_proto_msgTypes[17]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *CertificateRevocationError) String() string {
@@ -1244,8 +1212,8 @@ func (x *CertificateRevocationError) String() string {
 func (*CertificateRevocationError) ProtoMessage() {}
 
 func (x *CertificateRevocationError) ProtoReflect() protoreflect.Message {
-	mi := &file_cert_cert_proto_msgTypes[17]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_cert_cert_proto_msgTypes[17]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -1257,7 +1225,7 @@ func (x *CertificateRevocationError) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use CertificateRevocationError.ProtoReflect.Descriptor instead.
 func (*CertificateRevocationError) Descriptor() ([]byte, []int) {
-	return file_cert_cert_proto_rawDescGZIP(), []int{17}
+	return file_github_com_openconfig_gnoi_cert_cert_proto_rawDescGZIP(), []int{17}
 }
 
 func (x *CertificateRevocationError) GetCertificateId() string {
@@ -1275,22 +1243,19 @@ func (x *CertificateRevocationError) GetErrorMessage() string {
 }
 
 type CanGenerateCSRRequest struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	KeyType         KeyType         `protobuf:"varint,1,opt,name=key_type,json=keyType,proto3,enum=gnoi.certificate.KeyType" json:"key_type,omitempty"`
-	CertificateType CertificateType `protobuf:"varint,2,opt,name=certificate_type,json=certificateType,proto3,enum=gnoi.certificate.CertificateType" json:"certificate_type,omitempty"`
-	KeySize         uint32          `protobuf:"varint,3,opt,name=key_size,json=keySize,proto3" json:"key_size,omitempty"`
+	state           protoimpl.MessageState `protogen:"open.v1"`
+	KeyType         KeyType                `protobuf:"varint,1,opt,name=key_type,json=keyType,proto3,enum=gnoi.certificate.KeyType" json:"key_type,omitempty"`
+	CertificateType CertificateType        `protobuf:"varint,2,opt,name=certificate_type,json=certificateType,proto3,enum=gnoi.certificate.CertificateType" json:"certificate_type,omitempty"`
+	KeySize         uint32                 `protobuf:"varint,3,opt,name=key_size,json=keySize,proto3" json:"key_size,omitempty"`
+	unknownFields   protoimpl.UnknownFields
+	sizeCache       protoimpl.SizeCache
 }
 
 func (x *CanGenerateCSRRequest) Reset() {
 	*x = CanGenerateCSRRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_cert_cert_proto_msgTypes[18]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_cert_cert_proto_msgTypes[18]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *CanGenerateCSRRequest) String() string {
@@ -1300,8 +1265,8 @@ func (x *CanGenerateCSRRequest) String() string {
 func (*CanGenerateCSRRequest) ProtoMessage() {}
 
 func (x *CanGenerateCSRRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_cert_cert_proto_msgTypes[18]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_cert_cert_proto_msgTypes[18]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -1313,7 +1278,7 @@ func (x *CanGenerateCSRRequest) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use CanGenerateCSRRequest.ProtoReflect.Descriptor instead.
 func (*CanGenerateCSRRequest) Descriptor() ([]byte, []int) {
-	return file_cert_cert_proto_rawDescGZIP(), []int{18}
+	return file_github_com_openconfig_gnoi_cert_cert_proto_rawDescGZIP(), []int{18}
 }
 
 func (x *CanGenerateCSRRequest) GetKeyType() KeyType {
@@ -1338,20 +1303,17 @@ func (x *CanGenerateCSRRequest) GetKeySize() uint32 {
 }
 
 type CanGenerateCSRResponse struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	CanGenerate   bool                   `protobuf:"varint,4,opt,name=can_generate,json=canGenerate,proto3" json:"can_generate,omitempty"`
 	unknownFields protoimpl.UnknownFields
-
-	CanGenerate bool `protobuf:"varint,4,opt,name=can_generate,json=canGenerate,proto3" json:"can_generate,omitempty"`
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *CanGenerateCSRResponse) Reset() {
 	*x = CanGenerateCSRResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_cert_cert_proto_msgTypes[19]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_cert_cert_proto_msgTypes[19]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *CanGenerateCSRResponse) String() string {
@@ -1361,8 +1323,8 @@ func (x *CanGenerateCSRResponse) String() string {
 func (*CanGenerateCSRResponse) ProtoMessage() {}
 
 func (x *CanGenerateCSRResponse) ProtoReflect() protoreflect.Message {
-	mi := &file_cert_cert_proto_msgTypes[19]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_cert_cert_proto_msgTypes[19]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -1374,7 +1336,7 @@ func (x *CanGenerateCSRResponse) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use CanGenerateCSRResponse.ProtoReflect.Descriptor instead.
 func (*CanGenerateCSRResponse) Descriptor() ([]byte, []int) {
-	return file_cert_cert_proto_rawDescGZIP(), []int{19}
+	return file_github_com_openconfig_gnoi_cert_cert_proto_rawDescGZIP(), []int{19}
 }
 
 func (x *CanGenerateCSRResponse) GetCanGenerate() bool {
@@ -1385,21 +1347,18 @@ func (x *CanGenerateCSRResponse) GetCanGenerate() bool {
 }
 
 type Certificate struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Type          CertificateType        `protobuf:"varint,1,opt,name=type,proto3,enum=gnoi.certificate.CertificateType" json:"type,omitempty"`
+	Certificate   []byte                 `protobuf:"bytes,2,opt,name=certificate,proto3" json:"certificate,omitempty"`
 	unknownFields protoimpl.UnknownFields
-
-	Type        CertificateType `protobuf:"varint,1,opt,name=type,proto3,enum=gnoi.certificate.CertificateType" json:"type,omitempty"`
-	Certificate []byte          `protobuf:"bytes,2,opt,name=certificate,proto3" json:"certificate,omitempty"`
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *Certificate) Reset() {
 	*x = Certificate{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_cert_cert_proto_msgTypes[20]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_cert_cert_proto_msgTypes[20]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *Certificate) String() string {
@@ -1409,8 +1368,8 @@ func (x *Certificate) String() string {
 func (*Certificate) ProtoMessage() {}
 
 func (x *Certificate) ProtoReflect() protoreflect.Message {
-	mi := &file_cert_cert_proto_msgTypes[20]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_cert_cert_proto_msgTypes[20]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -1422,7 +1381,7 @@ func (x *Certificate) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use Certificate.ProtoReflect.Descriptor instead.
 func (*Certificate) Descriptor() ([]byte, []int) {
-	return file_cert_cert_proto_rawDescGZIP(), []int{20}
+	return file_github_com_openconfig_gnoi_cert_cert_proto_rawDescGZIP(), []int{20}
 }
 
 func (x *Certificate) GetType() CertificateType {
@@ -1440,21 +1399,18 @@ func (x *Certificate) GetCertificate() []byte {
 }
 
 type CSR struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Type          CertificateType        `protobuf:"varint,1,opt,name=type,proto3,enum=gnoi.certificate.CertificateType" json:"type,omitempty"`
+	Csr           []byte                 `protobuf:"bytes,2,opt,name=csr,proto3" json:"csr,omitempty"`
 	unknownFields protoimpl.UnknownFields
-
-	Type CertificateType `protobuf:"varint,1,opt,name=type,proto3,enum=gnoi.certificate.CertificateType" json:"type,omitempty"`
-	Csr  []byte          `protobuf:"bytes,2,opt,name=csr,proto3" json:"csr,omitempty"`
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *CSR) Reset() {
 	*x = CSR{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_cert_cert_proto_msgTypes[21]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_cert_cert_proto_msgTypes[21]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *CSR) String() string {
@@ -1464,8 +1420,8 @@ func (x *CSR) String() string {
 func (*CSR) ProtoMessage() {}
 
 func (x *CSR) ProtoReflect() protoreflect.Message {
-	mi := &file_cert_cert_proto_msgTypes[21]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_cert_cert_proto_msgTypes[21]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -1477,7 +1433,7 @@ func (x *CSR) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use CSR.ProtoReflect.Descriptor instead.
 func (*CSR) Descriptor() ([]byte, []int) {
-	return file_cert_cert_proto_rawDescGZIP(), []int{21}
+	return file_github_com_openconfig_gnoi_cert_cert_proto_rawDescGZIP(), []int{21}
 }
 
 func (x *CSR) GetType() CertificateType {
@@ -1495,21 +1451,18 @@ func (x *CSR) GetCsr() []byte {
 }
 
 type KeyPair struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	PrivateKey    []byte                 `protobuf:"bytes,1,opt,name=private_key,json=privateKey,proto3" json:"private_key,omitempty"`
+	PublicKey     []byte                 `protobuf:"bytes,2,opt,name=public_key,json=publicKey,proto3" json:"public_key,omitempty"`
 	unknownFields protoimpl.UnknownFields
-
-	PrivateKey []byte `protobuf:"bytes,1,opt,name=private_key,json=privateKey,proto3" json:"private_key,omitempty"`
-	PublicKey  []byte `protobuf:"bytes,2,opt,name=public_key,json=publicKey,proto3" json:"public_key,omitempty"`
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *KeyPair) Reset() {
 	*x = KeyPair{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_cert_cert_proto_msgTypes[22]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_cert_cert_proto_msgTypes[22]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *KeyPair) String() string {
@@ -1519,8 +1472,8 @@ func (x *KeyPair) String() string {
 func (*KeyPair) ProtoMessage() {}
 
 func (x *KeyPair) ProtoReflect() protoreflect.Message {
-	mi := &file_cert_cert_proto_msgTypes[22]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_cert_cert_proto_msgTypes[22]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -1532,7 +1485,7 @@ func (x *KeyPair) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use KeyPair.ProtoReflect.Descriptor instead.
 func (*KeyPair) Descriptor() ([]byte, []int) {
-	return file_cert_cert_proto_rawDescGZIP(), []int{22}
+	return file_github_com_openconfig_gnoi_cert_cert_proto_rawDescGZIP(), []int{22}
 }
 
 func (x *KeyPair) GetPrivateKey() []byte {
@@ -1550,21 +1503,18 @@ func (x *KeyPair) GetPublicKey() []byte {
 }
 
 type Endpoint struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Type          Endpoint_Type          `protobuf:"varint,1,opt,name=type,proto3,enum=gnoi.certificate.Endpoint_Type" json:"type,omitempty"`
+	Endpoint      string                 `protobuf:"bytes,2,opt,name=endpoint,proto3" json:"endpoint,omitempty"`
 	unknownFields protoimpl.UnknownFields
-
-	Type     Endpoint_Type `protobuf:"varint,1,opt,name=type,proto3,enum=gnoi.certificate.Endpoint_Type" json:"type,omitempty"`
-	Endpoint string        `protobuf:"bytes,2,opt,name=endpoint,proto3" json:"endpoint,omitempty"`
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *Endpoint) Reset() {
 	*x = Endpoint{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_cert_cert_proto_msgTypes[23]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_cert_cert_proto_msgTypes[23]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *Endpoint) String() string {
@@ -1574,8 +1524,8 @@ func (x *Endpoint) String() string {
 func (*Endpoint) ProtoMessage() {}
 
 func (x *Endpoint) ProtoReflect() protoreflect.Message {
-	mi := &file_cert_cert_proto_msgTypes[23]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_cert_cert_proto_msgTypes[23]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -1587,7 +1537,7 @@ func (x *Endpoint) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use Endpoint.ProtoReflect.Descriptor instead.
 func (*Endpoint) Descriptor() ([]byte, []int) {
-	return file_cert_cert_proto_rawDescGZIP(), []int{23}
+	return file_github_com_openconfig_gnoi_cert_cert_proto_rawDescGZIP(), []int{23}
 }
 
 func (x *Endpoint) GetType() Endpoint_Type {
@@ -1604,47 +1554,17 @@ func (x *Endpoint) GetEndpoint() string {
 	return ""
 }
 
-var File_cert_cert_proto protoreflect.FileDescriptor
+var File_github_com_openconfig_gnoi_cert_cert_proto protoreflect.FileDescriptor
 
-var file_cert_cert_proto_rawDesc = []byte{
-	0x0a, 0x0f, 0x63, 0x65, 0x72, 0x74, 0x2f, 0x63, 0x65, 0x72, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74,
-	0x6f, 0x12, 0x10, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63,
-	0x61, 0x74, 0x65, 0x1a, 0x2c, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f,
-	0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x67, 0x6e, 0x6f, 0x69, 0x2f,
-	0x74, 0x79, 0x70, 0x65, 0x73, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74,
-	0x6f, 0x22, 0xa0, 0x02, 0x0a, 0x18, 0x52, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x43, 0x65, 0x72, 0x74,
-	0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x49,
-	0x0a, 0x0c, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x63, 0x73, 0x72, 0x18, 0x01,
-	0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x63, 0x65, 0x72, 0x74,
-	0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65,
-	0x43, 0x53, 0x52, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x0b, 0x67, 0x65,
-	0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x43, 0x73, 0x72, 0x12, 0x55, 0x0a, 0x10, 0x6c, 0x6f, 0x61,
-	0x64, 0x5f, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20,
-	0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x63, 0x65, 0x72, 0x74, 0x69,
-	0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x2e, 0x4c, 0x6f, 0x61, 0x64, 0x43, 0x65, 0x72, 0x74, 0x69,
-	0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52,
-	0x0f, 0x6c, 0x6f, 0x61, 0x64, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65,
-	0x12, 0x50, 0x0a, 0x11, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x5f, 0x72, 0x6f, 0x74,
-	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x67, 0x6e,
-	0x6f, 0x69, 0x2e, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x2e, 0x46,
-	0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00,
-	0x52, 0x10, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x52, 0x6f, 0x74, 0x61, 0x74, 0x69,
-	0x6f, 0x6e, 0x42, 0x10, 0x0a, 0x0e, 0x72, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x65, 0x71,
-	0x75, 0x65, 0x73, 0x74, 0x22, 0xd4, 0x01, 0x0a, 0x19, 0x52, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x43,
-	0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
-	0x73, 0x65, 0x12, 0x4c, 0x0a, 0x0d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x5f,
-	0x63, 0x73, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x67, 0x6e, 0x6f, 0x69,
-	0x2e, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x2e, 0x47, 0x65, 0x6e,
-	0x65, 0x72, 0x61, 0x74, 0x65, 0x43, 0x53, 0x52, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
-	0x48, 0x00, 0x52, 0x0c, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x43, 0x73, 0x72,
-	0x12, 0x56, 0x0a, 0x10, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69,
-	0x63, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67, 0x6e, 0x6f,
-	0x69, 0x2e, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x2e, 0x4c, 0x6f,
-	0x61, 0x64, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73,
-	0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x00, 0x52, 0x0f, 0x6c, 0x6f, 0x61, 0x64, 0x43, 0x65, 0x72,
-	0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x42, 0x11, 0x0a, 0x0f, 0x72, 0x6f, 0x74, 0x61,
-	0x74, 0x65, 0x5f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xd0, 0x01, 0x0a, 0x19,
-	0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61,
+var file_github_com_openconfig_gnoi_cert_cert_proto_rawDesc = []byte{
+	0x0a, 0x2a, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x70, 0x65,
+	0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x67, 0x6e, 0x6f, 0x69, 0x2f, 0x63, 0x65, 0x72,
+	0x74, 0x2f, 0x63, 0x65, 0x72, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x10, 0x67, 0x6e,
+	0x6f, 0x69, 0x2e, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x1a, 0x2c,
+	0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x63,
+	0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x67, 0x6e, 0x6f, 0x69, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73,
+	0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xa0, 0x02, 0x0a,
+	0x18, 0x52, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61,
 	0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x49, 0x0a, 0x0c, 0x67, 0x65, 0x6e,
 	0x65, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x63, 0x73, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
 	0x24, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61,
@@ -1655,9 +1575,14 @@ var file_cert_cert_proto_rawDesc = []byte{
 	0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74,
 	0x65, 0x2e, 0x4c, 0x6f, 0x61, 0x64, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74,
 	0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x0f, 0x6c, 0x6f, 0x61, 0x64,
-	0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x42, 0x11, 0x0a, 0x0f, 0x69,
-	0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0xd6,
-	0x01, 0x0a, 0x1a, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66,
+	0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x12, 0x50, 0x0a, 0x11, 0x66,
+	0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x5f, 0x72, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+	0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x63, 0x65,
+	0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x2e, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x69,
+	0x7a, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x10, 0x66, 0x69, 0x6e,
+	0x61, 0x6c, 0x69, 0x7a, 0x65, 0x52, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x10, 0x0a,
+	0x0e, 0x72, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22,
+	0xd4, 0x01, 0x0a, 0x19, 0x52, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66,
 	0x69, 0x63, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4c, 0x0a,
 	0x0d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x73, 0x72, 0x18, 0x01,
 	0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x63, 0x65, 0x72, 0x74,
@@ -1669,244 +1594,271 @@ var file_cert_cert_proto_rawDesc = []byte{
 	0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x2e, 0x4c, 0x6f, 0x61, 0x64, 0x43, 0x65, 0x72,
 	0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
 	0x48, 0x00, 0x52, 0x0f, 0x6c, 0x6f, 0x61, 0x64, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63,
-	0x61, 0x74, 0x65, 0x42, 0x12, 0x0a, 0x10, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x5f, 0x72,
-	0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x77, 0x0a, 0x12, 0x47, 0x65, 0x6e, 0x65, 0x72,
-	0x61, 0x74, 0x65, 0x43, 0x53, 0x52, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3a, 0x0a,
-	0x0a, 0x63, 0x73, 0x72, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28,
-	0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69,
-	0x63, 0x61, 0x74, 0x65, 0x2e, 0x43, 0x53, 0x52, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x09,
-	0x63, 0x73, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x63, 0x65, 0x72,
-	0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28,
-	0x09, 0x52, 0x0d, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x49, 0x64,
-	0x22, 0x8e, 0x03, 0x0a, 0x09, 0x43, 0x53, 0x52, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x35,
-	0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x67,
+	0x61, 0x74, 0x65, 0x42, 0x11, 0x0a, 0x0f, 0x72, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x65,
+	0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xd0, 0x01, 0x0a, 0x19, 0x49, 0x6e, 0x73, 0x74, 0x61,
+	0x6c, 0x6c, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71,
+	0x75, 0x65, 0x73, 0x74, 0x12, 0x49, 0x0a, 0x0c, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65,
+	0x5f, 0x63, 0x73, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6e, 0x6f,
+	0x69, 0x2e, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x2e, 0x47, 0x65,
+	0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x43, 0x53, 0x52, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
+	0x48, 0x00, 0x52, 0x0b, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x43, 0x73, 0x72, 0x12,
+	0x55, 0x0a, 0x10, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63,
+	0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x67, 0x6e, 0x6f, 0x69,
+	0x2e, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x2e, 0x4c, 0x6f, 0x61,
+	0x64, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75,
+	0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x0f, 0x6c, 0x6f, 0x61, 0x64, 0x43, 0x65, 0x72, 0x74, 0x69,
+	0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x42, 0x11, 0x0a, 0x0f, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c,
+	0x6c, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0xd6, 0x01, 0x0a, 0x1a, 0x49, 0x6e,
+	0x73, 0x74, 0x61, 0x6c, 0x6c, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65,
+	0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4c, 0x0a, 0x0d, 0x67, 0x65, 0x6e, 0x65,
+	0x72, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x73, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
+	0x25, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61,
+	0x74, 0x65, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x43, 0x53, 0x52, 0x52, 0x65,
+	0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x00, 0x52, 0x0c, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61,
+	0x74, 0x65, 0x64, 0x43, 0x73, 0x72, 0x12, 0x56, 0x0a, 0x10, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x63,
+	0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b,
+	0x32, 0x29, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63,
+	0x61, 0x74, 0x65, 0x2e, 0x4c, 0x6f, 0x61, 0x64, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63,
+	0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x00, 0x52, 0x0f, 0x6c,
+	0x6f, 0x61, 0x64, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x42, 0x12,
+	0x0a, 0x10, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x5f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e,
+	0x73, 0x65, 0x22, 0x77, 0x0a, 0x12, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x43, 0x53,
+	0x52, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3a, 0x0a, 0x0a, 0x63, 0x73, 0x72, 0x5f,
+	0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67,
 	0x6e, 0x6f, 0x69, 0x2e, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x2e,
-	0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52,
-	0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0c, 0x6d, 0x69, 0x6e, 0x5f, 0x6b, 0x65, 0x79,
-	0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x6d, 0x69, 0x6e,
-	0x4b, 0x65, 0x79, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x34, 0x0a, 0x08, 0x6b, 0x65, 0x79, 0x5f, 0x74,
-	0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x67, 0x6e, 0x6f, 0x69,
-	0x2e, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x2e, 0x4b, 0x65, 0x79,
-	0x54, 0x79, 0x70, 0x65, 0x52, 0x07, 0x6b, 0x65, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1f, 0x0a,
-	0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01,
-	0x28, 0x09, 0x52, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18,
-	0x0a, 0x07, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52,
-	0x07, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74,
-	0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x12,
-	0x0a, 0x04, 0x63, 0x69, 0x74, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x69,
-	0x74, 0x79, 0x12, 0x22, 0x0a, 0x0c, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69,
-	0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69,
-	0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2f, 0x0a, 0x13, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69,
-	0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x75, 0x6e, 0x69, 0x74, 0x18, 0x09, 0x20,
-	0x01, 0x28, 0x09, 0x52, 0x12, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f,
-	0x6e, 0x61, 0x6c, 0x55, 0x6e, 0x69, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x69, 0x70, 0x5f, 0x61, 0x64,
-	0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x69, 0x70, 0x41,
-	0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x5f,
-	0x69, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x49,
-	0x64, 0x22, 0x3e, 0x0a, 0x13, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x43, 0x53, 0x52,
-	0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x27, 0x0a, 0x03, 0x63, 0x73, 0x72, 0x18,
-	0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x63, 0x65, 0x72,
-	0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x2e, 0x43, 0x53, 0x52, 0x52, 0x03, 0x63, 0x73,
-	0x72, 0x22, 0xfe, 0x01, 0x0a, 0x16, 0x4c, 0x6f, 0x61, 0x64, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66,
-	0x69, 0x63, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3f, 0x0a, 0x0b,
-	0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,
-	0x0b, 0x32, 0x1d, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69,
-	0x63, 0x61, 0x74, 0x65, 0x2e, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65,
-	0x52, 0x0b, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x12, 0x34, 0x0a,
-	0x08, 0x6b, 0x65, 0x79, 0x5f, 0x70, 0x61, 0x69, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32,
-	0x19, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61,
-	0x74, 0x65, 0x2e, 0x4b, 0x65, 0x79, 0x50, 0x61, 0x69, 0x72, 0x52, 0x07, 0x6b, 0x65, 0x79, 0x50,
-	0x61, 0x69, 0x72, 0x12, 0x25, 0x0a, 0x0e, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61,
-	0x74, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x63, 0x65, 0x72,
-	0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x49, 0x64, 0x12, 0x46, 0x0a, 0x0f, 0x63, 0x61,
-	0x5f, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x18, 0x04, 0x20,
-	0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x63, 0x65, 0x72, 0x74, 0x69,
-	0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x2e, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61,
-	0x74, 0x65, 0x52, 0x0e, 0x63, 0x61, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74,
-	0x65, 0x73, 0x22, 0x19, 0x0a, 0x17, 0x4c, 0x6f, 0x61, 0x64, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66,
-	0x69, 0x63, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x6f, 0x0a,
-	0x25, 0x4c, 0x6f, 0x61, 0x64, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65,
-	0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x52,
-	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x46, 0x0a, 0x0f, 0x63, 0x61, 0x5f, 0x63, 0x65, 0x72,
-	0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32,
-	0x1d, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61,
-	0x74, 0x65, 0x2e, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x52, 0x0e,
-	0x63, 0x61, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x22, 0x28,
-	0x0a, 0x26, 0x4c, 0x6f, 0x61, 0x64, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74,
-	0x65, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65,
-	0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x11, 0x0a, 0x0f, 0x46, 0x69, 0x6e, 0x61,
-	0x6c, 0x69, 0x7a, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x18, 0x0a, 0x16, 0x47,
-	0x65, 0x74, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65,
-	0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x67, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x43, 0x65, 0x72, 0x74,
-	0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
-	0x12, 0x4c, 0x0a, 0x10, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x5f,
-	0x69, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x67, 0x6e, 0x6f,
-	0x69, 0x2e, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x2e, 0x43, 0x65,
-	0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0f, 0x63,
-	0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0xe0,
-	0x01, 0x0a, 0x0f, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x49, 0x6e,
-	0x66, 0x6f, 0x12, 0x25, 0x0a, 0x0e, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74,
-	0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x63, 0x65, 0x72, 0x74,
-	0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x49, 0x64, 0x12, 0x3f, 0x0a, 0x0b, 0x63, 0x65, 0x72,
-	0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d,
-	0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74,
-	0x65, 0x2e, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x52, 0x0b, 0x63,
-	0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x12, 0x38, 0x0a, 0x09, 0x65, 0x6e,
-	0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e,
-	0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65,
-	0x2e, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x09, 0x65, 0x6e, 0x64, 0x70, 0x6f,
-	0x69, 0x6e, 0x74, 0x73, 0x12, 0x2b, 0x0a, 0x11, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x63, 0x61,
-	0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52,
-	0x10, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d,
-	0x65, 0x22, 0x42, 0x0a, 0x19, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x43, 0x65, 0x72, 0x74, 0x69,
-	0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x25,
-	0x0a, 0x0e, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x5f, 0x69, 0x64,
-	0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63,
-	0x61, 0x74, 0x65, 0x49, 0x64, 0x22, 0xc2, 0x01, 0x0a, 0x1a, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65,
-	0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70,
-	0x6f, 0x6e, 0x73, 0x65, 0x12, 0x34, 0x0a, 0x16, 0x72, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x64, 0x5f,
-	0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01,
-	0x20, 0x03, 0x28, 0x09, 0x52, 0x14, 0x72, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x64, 0x43, 0x65, 0x72,
-	0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x49, 0x64, 0x12, 0x6e, 0x0a, 0x1c, 0x63, 0x65,
-	0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x65, 0x76, 0x6f, 0x63, 0x61,
-	0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b,
-	0x32, 0x2c, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63,
-	0x61, 0x74, 0x65, 0x2e, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x52,
-	0x65, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x1a,
-	0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x52, 0x65, 0x76, 0x6f, 0x63,
-	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x22, 0x68, 0x0a, 0x1a, 0x43, 0x65,
-	0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x52, 0x65, 0x76, 0x6f, 0x63, 0x61, 0x74,
-	0x69, 0x6f, 0x6e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x25, 0x0a, 0x0e, 0x63, 0x65, 0x72, 0x74,
-	0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
-	0x52, 0x0d, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x49, 0x64, 0x12,
-	0x23, 0x0a, 0x0d, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65,
-	0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x65, 0x73,
-	0x73, 0x61, 0x67, 0x65, 0x22, 0xb6, 0x01, 0x0a, 0x15, 0x43, 0x61, 0x6e, 0x47, 0x65, 0x6e, 0x65,
-	0x72, 0x61, 0x74, 0x65, 0x43, 0x53, 0x52, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x34,
-	0x0a, 0x08, 0x6b, 0x65, 0x79, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e,
-	0x32, 0x19, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63,
-	0x61, 0x74, 0x65, 0x2e, 0x4b, 0x65, 0x79, 0x54, 0x79, 0x70, 0x65, 0x52, 0x07, 0x6b, 0x65, 0x79,
-	0x54, 0x79, 0x70, 0x65, 0x12, 0x4c, 0x0a, 0x10, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63,
-	0x61, 0x74, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21,
-	0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74,
-	0x65, 0x2e, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x54, 0x79, 0x70,
-	0x65, 0x52, 0x0f, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x54, 0x79,
-	0x70, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x6b, 0x65, 0x79, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x03,
-	0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x6b, 0x65, 0x79, 0x53, 0x69, 0x7a, 0x65, 0x22, 0x3b, 0x0a,
-	0x16, 0x43, 0x61, 0x6e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x43, 0x53, 0x52, 0x52,
-	0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x61, 0x6e, 0x5f, 0x67,
-	0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x63,
-	0x61, 0x6e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x22, 0x66, 0x0a, 0x0b, 0x43, 0x65,
-	0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x12, 0x35, 0x0a, 0x04, 0x74, 0x79, 0x70,
-	0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x63,
-	0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x2e, 0x43, 0x65, 0x72, 0x74, 0x69,
-	0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65,
-	0x12, 0x20, 0x0a, 0x0b, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x18,
-	0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61,
-	0x74, 0x65, 0x22, 0x4e, 0x0a, 0x03, 0x43, 0x53, 0x52, 0x12, 0x35, 0x0a, 0x04, 0x74, 0x79, 0x70,
+	0x43, 0x53, 0x52, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x09, 0x63, 0x73, 0x72, 0x50, 0x61,
+	0x72, 0x61, 0x6d, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63,
+	0x61, 0x74, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x63, 0x65,
+	0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x49, 0x64, 0x22, 0x8e, 0x03, 0x0a, 0x09,
+	0x43, 0x53, 0x52, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x35, 0x0a, 0x04, 0x74, 0x79, 0x70,
 	0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x63,
 	0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x2e, 0x43, 0x65, 0x72, 0x74, 0x69,
 	0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65,
-	0x12, 0x10, 0x0a, 0x03, 0x63, 0x73, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x63,
-	0x73, 0x72, 0x22, 0x49, 0x0a, 0x07, 0x4b, 0x65, 0x79, 0x50, 0x61, 0x69, 0x72, 0x12, 0x1f, 0x0a,
-	0x0b, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01,
-	0x28, 0x0c, 0x52, 0x0a, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x12, 0x1d,
-	0x0a, 0x0a, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01,
-	0x28, 0x0c, 0x52, 0x09, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x22, 0x9b, 0x01,
-	0x0a, 0x08, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x33, 0x0a, 0x04, 0x74, 0x79,
-	0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e,
-	0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x2e, 0x45, 0x6e, 0x64, 0x70,
-	0x6f, 0x69, 0x6e, 0x74, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12,
-	0x1a, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28,
-	0x09, 0x52, 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x22, 0x3e, 0x0a, 0x04, 0x54,
-	0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x50, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43,
-	0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x50, 0x5f, 0x49, 0x50,
-	0x53, 0x45, 0x43, 0x5f, 0x54, 0x55, 0x4e, 0x4e, 0x45, 0x4c, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09,
-	0x45, 0x50, 0x5f, 0x44, 0x41, 0x45, 0x4d, 0x4f, 0x4e, 0x10, 0x02, 0x2a, 0x2e, 0x0a, 0x0f, 0x43,
-	0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0e,
-	0x0a, 0x0a, 0x43, 0x54, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x0b,
-	0x0a, 0x07, 0x43, 0x54, 0x5f, 0x58, 0x35, 0x30, 0x39, 0x10, 0x01, 0x2a, 0x25, 0x0a, 0x07, 0x4b,
-	0x65, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0e, 0x0a, 0x0a, 0x4b, 0x54, 0x5f, 0x55, 0x4e, 0x4b,
-	0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x4b, 0x54, 0x5f, 0x52, 0x53, 0x41,
-	0x10, 0x01, 0x32, 0xa8, 0x07, 0x0a, 0x15, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61,
-	0x74, 0x65, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x6a, 0x0a, 0x06,
-	0x52, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x12, 0x2a, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x63, 0x65,
-	0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x2e, 0x52, 0x6f, 0x74, 0x61, 0x74, 0x65,
-	0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65,
-	0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66,
-	0x69, 0x63, 0x61, 0x74, 0x65, 0x2e, 0x52, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x43, 0x65, 0x72, 0x74,
-	0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22,
-	0x03, 0x88, 0x02, 0x01, 0x28, 0x01, 0x30, 0x01, 0x12, 0x6d, 0x0a, 0x07, 0x49, 0x6e, 0x73, 0x74,
-	0x61, 0x6c, 0x6c, 0x12, 0x2b, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x63, 0x65, 0x72, 0x74, 0x69,
-	0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x2e, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x43, 0x65,
-	0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
-	0x1a, 0x2c, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63,
-	0x61, 0x74, 0x65, 0x2e, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x43, 0x65, 0x72, 0x74, 0x69,
-	0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x03,
-	0x88, 0x02, 0x01, 0x28, 0x01, 0x30, 0x01, 0x12, 0x5f, 0x0a, 0x0b, 0x47, 0x65, 0x6e, 0x65, 0x72,
-	0x61, 0x74, 0x65, 0x43, 0x53, 0x52, 0x12, 0x24, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x63, 0x65,
-	0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61,
-	0x74, 0x65, 0x43, 0x53, 0x52, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x67,
-	0x6e, 0x6f, 0x69, 0x2e, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x2e,
+	0x12, 0x20, 0x0a, 0x0c, 0x6d, 0x69, 0x6e, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x73, 0x69, 0x7a, 0x65,
+	0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x6d, 0x69, 0x6e, 0x4b, 0x65, 0x79, 0x53, 0x69,
+	0x7a, 0x65, 0x12, 0x34, 0x0a, 0x08, 0x6b, 0x65, 0x79, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03,
+	0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x63, 0x65, 0x72, 0x74,
+	0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x2e, 0x4b, 0x65, 0x79, 0x54, 0x79, 0x70, 0x65, 0x52,
+	0x07, 0x6b, 0x65, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x6f, 0x6d, 0x6d,
+	0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63,
+	0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x75,
+	0x6e, 0x74, 0x72, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x75, 0x6e,
+	0x74, 0x72, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x06, 0x20, 0x01,
+	0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x69, 0x74,
+	0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x69, 0x74, 0x79, 0x12, 0x22, 0x0a,
+	0x0c, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20,
+	0x01, 0x28, 0x09, 0x52, 0x0c, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f,
+	0x6e, 0x12, 0x2f, 0x0a, 0x13, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f,
+	0x6e, 0x61, 0x6c, 0x5f, 0x75, 0x6e, 0x69, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12,
+	0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x55, 0x6e,
+	0x69, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x69, 0x70, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73,
+	0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x69, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73,
+	0x73, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x0b, 0x20,
+	0x01, 0x28, 0x09, 0x52, 0x07, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x49, 0x64, 0x22, 0x3e, 0x0a, 0x13,
 	0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x43, 0x53, 0x52, 0x52, 0x65, 0x73, 0x70, 0x6f,
-	0x6e, 0x73, 0x65, 0x22, 0x03, 0x88, 0x02, 0x01, 0x12, 0x6b, 0x0a, 0x0f, 0x4c, 0x6f, 0x61, 0x64,
-	0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x12, 0x28, 0x2e, 0x67, 0x6e,
-	0x6f, 0x69, 0x2e, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x2e, 0x4c,
-	0x6f, 0x61, 0x64, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x52, 0x65,
-	0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x63, 0x65, 0x72,
-	0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x2e, 0x4c, 0x6f, 0x61, 0x64, 0x43, 0x65, 0x72,
-	0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
-	0x22, 0x03, 0x88, 0x02, 0x01, 0x12, 0x98, 0x01, 0x0a, 0x1e, 0x4c, 0x6f, 0x61, 0x64, 0x43, 0x65,
-	0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69,
-	0x74, 0x79, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x37, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e,
-	0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x2e, 0x4c, 0x6f, 0x61, 0x64,
+	0x6e, 0x73, 0x65, 0x12, 0x27, 0x0a, 0x03, 0x63, 0x73, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,
+	0x32, 0x15, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63,
+	0x61, 0x74, 0x65, 0x2e, 0x43, 0x53, 0x52, 0x52, 0x03, 0x63, 0x73, 0x72, 0x22, 0xfe, 0x01, 0x0a,
+	0x16, 0x4c, 0x6f, 0x61, 0x64, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65,
+	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3f, 0x0a, 0x0b, 0x63, 0x65, 0x72, 0x74, 0x69,
+	0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x67,
+	0x6e, 0x6f, 0x69, 0x2e, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x2e,
+	0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x52, 0x0b, 0x63, 0x65, 0x72,
+	0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x12, 0x34, 0x0a, 0x08, 0x6b, 0x65, 0x79, 0x5f,
+	0x70, 0x61, 0x69, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6e, 0x6f,
+	0x69, 0x2e, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x2e, 0x4b, 0x65,
+	0x79, 0x50, 0x61, 0x69, 0x72, 0x52, 0x07, 0x6b, 0x65, 0x79, 0x50, 0x61, 0x69, 0x72, 0x12, 0x25,
+	0x0a, 0x0e, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x5f, 0x69, 0x64,
+	0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63,
+	0x61, 0x74, 0x65, 0x49, 0x64, 0x12, 0x46, 0x0a, 0x0f, 0x63, 0x61, 0x5f, 0x63, 0x65, 0x72, 0x74,
+	0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d,
+	0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74,
+	0x65, 0x2e, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x52, 0x0e, 0x63,
+	0x61, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x22, 0x19, 0x0a,
+	0x17, 0x4c, 0x6f, 0x61, 0x64, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65,
+	0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x6f, 0x0a, 0x25, 0x4c, 0x6f, 0x61, 0x64,
 	0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x41, 0x75, 0x74, 0x68, 0x6f,
 	0x72, 0x69, 0x74, 0x79, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
-	0x74, 0x1a, 0x38, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69,
-	0x63, 0x61, 0x74, 0x65, 0x2e, 0x4c, 0x6f, 0x61, 0x64, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69,
-	0x63, 0x61, 0x74, 0x65, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x42, 0x75, 0x6e,
-	0x64, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x03, 0x88, 0x02, 0x01,
-	0x12, 0x6b, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61,
-	0x74, 0x65, 0x73, 0x12, 0x28, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x63, 0x65, 0x72, 0x74, 0x69,
-	0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66,
-	0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e,
-	0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65,
-	0x2e, 0x47, 0x65, 0x74, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73,
-	0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x03, 0x88, 0x02, 0x01, 0x12, 0x74, 0x0a,
-	0x12, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61,
-	0x74, 0x65, 0x73, 0x12, 0x2b, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x63, 0x65, 0x72, 0x74, 0x69,
-	0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x2e, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x43, 0x65, 0x72,
+	0x74, 0x12, 0x46, 0x0a, 0x0f, 0x63, 0x61, 0x5f, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63,
+	0x61, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x67, 0x6e, 0x6f,
+	0x69, 0x2e, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x2e, 0x43, 0x65,
+	0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x52, 0x0e, 0x63, 0x61, 0x43, 0x65, 0x72,
+	0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x22, 0x28, 0x0a, 0x26, 0x4c, 0x6f, 0x61,
+	0x64, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x41, 0x75, 0x74, 0x68,
+	0x6f, 0x72, 0x69, 0x74, 0x79, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f,
+	0x6e, 0x73, 0x65, 0x22, 0x11, 0x0a, 0x0f, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x52,
+	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x18, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x43, 0x65, 0x72,
 	0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
-	0x1a, 0x2c, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63,
-	0x61, 0x74, 0x65, 0x2e, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66,
-	0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x03,
-	0x88, 0x02, 0x01, 0x12, 0x68, 0x0a, 0x0e, 0x43, 0x61, 0x6e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61,
-	0x74, 0x65, 0x43, 0x53, 0x52, 0x12, 0x27, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x63, 0x65, 0x72,
-	0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x2e, 0x43, 0x61, 0x6e, 0x47, 0x65, 0x6e, 0x65,
-	0x72, 0x61, 0x74, 0x65, 0x43, 0x53, 0x52, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28,
+	0x22, 0x67, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61,
+	0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4c, 0x0a, 0x10, 0x63,
+	0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18,
+	0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x63, 0x65, 0x72,
+	0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x2e, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69,
+	0x63, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0f, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66,
+	0x69, 0x63, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0xe0, 0x01, 0x0a, 0x0f, 0x43, 0x65,
+	0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x25, 0x0a,
+	0x0e, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x5f, 0x69, 0x64, 0x18,
+	0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61,
+	0x74, 0x65, 0x49, 0x64, 0x12, 0x3f, 0x0a, 0x0b, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63,
+	0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x67, 0x6e, 0x6f, 0x69,
+	0x2e, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x2e, 0x43, 0x65, 0x72,
+	0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x52, 0x0b, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66,
+	0x69, 0x63, 0x61, 0x74, 0x65, 0x12, 0x38, 0x0a, 0x09, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e,
+	0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e,
+	0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x2e, 0x45, 0x6e, 0x64, 0x70,
+	0x6f, 0x69, 0x6e, 0x74, 0x52, 0x09, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x12,
+	0x2b, 0x0a, 0x11, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f,
+	0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x6d, 0x6f, 0x64, 0x69,
+	0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x42, 0x0a, 0x19,
+	0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74,
+	0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x63, 0x65, 0x72,
+	0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x03, 0x28,
+	0x09, 0x52, 0x0d, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x49, 0x64,
+	0x22, 0xc2, 0x01, 0x0a, 0x1a, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x43, 0x65, 0x72, 0x74, 0x69,
+	0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12,
+	0x34, 0x0a, 0x16, 0x72, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x64, 0x5f, 0x63, 0x65, 0x72, 0x74, 0x69,
+	0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52,
+	0x14, 0x72, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x64, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63,
+	0x61, 0x74, 0x65, 0x49, 0x64, 0x12, 0x6e, 0x0a, 0x1c, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69,
+	0x63, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x65, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f,
+	0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x67, 0x6e,
+	0x6f, 0x69, 0x2e, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x2e, 0x43,
+	0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x52, 0x65, 0x76, 0x6f, 0x63, 0x61,
+	0x74, 0x69, 0x6f, 0x6e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x1a, 0x63, 0x65, 0x72, 0x74, 0x69,
+	0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x52, 0x65, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+	0x45, 0x72, 0x72, 0x6f, 0x72, 0x22, 0x68, 0x0a, 0x1a, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69,
+	0x63, 0x61, 0x74, 0x65, 0x52, 0x65, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x72,
+	0x72, 0x6f, 0x72, 0x12, 0x25, 0x0a, 0x0e, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61,
+	0x74, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x63, 0x65, 0x72,
+	0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x65, 0x72,
+	0x72, 0x6f, 0x72, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,
+	0x09, 0x52, 0x0c, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22,
+	0xb6, 0x01, 0x0a, 0x15, 0x43, 0x61, 0x6e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x43,
+	0x53, 0x52, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x34, 0x0a, 0x08, 0x6b, 0x65, 0x79,
+	0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x67, 0x6e,
+	0x6f, 0x69, 0x2e, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x2e, 0x4b,
+	0x65, 0x79, 0x54, 0x79, 0x70, 0x65, 0x52, 0x07, 0x6b, 0x65, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12,
+	0x4c, 0x0a, 0x10, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x5f, 0x74,
+	0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x67, 0x6e, 0x6f, 0x69,
+	0x2e, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x2e, 0x43, 0x65, 0x72,
+	0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0f, 0x63, 0x65,
+	0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x19, 0x0a,
+	0x08, 0x6b, 0x65, 0x79, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52,
+	0x07, 0x6b, 0x65, 0x79, 0x53, 0x69, 0x7a, 0x65, 0x22, 0x3b, 0x0a, 0x16, 0x43, 0x61, 0x6e, 0x47,
+	0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x43, 0x53, 0x52, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
+	0x73, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x61, 0x6e, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61,
+	0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x63, 0x61, 0x6e, 0x47, 0x65, 0x6e,
+	0x65, 0x72, 0x61, 0x74, 0x65, 0x22, 0x66, 0x0a, 0x0b, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69,
+	0x63, 0x61, 0x74, 0x65, 0x12, 0x35, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01,
+	0x28, 0x0e, 0x32, 0x21, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66,
+	0x69, 0x63, 0x61, 0x74, 0x65, 0x2e, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74,
+	0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x63,
+	0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c,
+	0x52, 0x0b, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x22, 0x4e, 0x0a,
+	0x03, 0x43, 0x53, 0x52, 0x12, 0x35, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01,
+	0x28, 0x0e, 0x32, 0x21, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66,
+	0x69, 0x63, 0x61, 0x74, 0x65, 0x2e, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74,
+	0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x63,
+	0x73, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x63, 0x73, 0x72, 0x22, 0x49, 0x0a,
+	0x07, 0x4b, 0x65, 0x79, 0x50, 0x61, 0x69, 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x72, 0x69, 0x76,
+	0x61, 0x74, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x70,
+	0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x75, 0x62,
+	0x6c, 0x69, 0x63, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x70,
+	0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x22, 0x9b, 0x01, 0x0a, 0x08, 0x45, 0x6e, 0x64,
+	0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x33, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20,
+	0x01, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x63, 0x65, 0x72, 0x74, 0x69,
+	0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x2e, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x2e,
+	0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x6e,
+	0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x6e,
+	0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x22, 0x3e, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x12,
+	0x0a, 0x0e, 0x45, 0x50, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44,
+	0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x50, 0x5f, 0x49, 0x50, 0x53, 0x45, 0x43, 0x5f, 0x54,
+	0x55, 0x4e, 0x4e, 0x45, 0x4c, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x45, 0x50, 0x5f, 0x44, 0x41,
+	0x45, 0x4d, 0x4f, 0x4e, 0x10, 0x02, 0x2a, 0x2e, 0x0a, 0x0f, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66,
+	0x69, 0x63, 0x61, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0e, 0x0a, 0x0a, 0x43, 0x54, 0x5f,
+	0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x43, 0x54, 0x5f,
+	0x58, 0x35, 0x30, 0x39, 0x10, 0x01, 0x2a, 0x25, 0x0a, 0x07, 0x4b, 0x65, 0x79, 0x54, 0x79, 0x70,
+	0x65, 0x12, 0x0e, 0x0a, 0x0a, 0x4b, 0x54, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10,
+	0x00, 0x12, 0x0a, 0x0a, 0x06, 0x4b, 0x54, 0x5f, 0x52, 0x53, 0x41, 0x10, 0x01, 0x32, 0xa8, 0x07,
+	0x0a, 0x15, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x6e,
+	0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x6a, 0x0a, 0x06, 0x52, 0x6f, 0x74, 0x61, 0x74,
+	0x65, 0x12, 0x2a, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69,
+	0x63, 0x61, 0x74, 0x65, 0x2e, 0x52, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x43, 0x65, 0x72, 0x74, 0x69,
+	0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e,
+	0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65,
+	0x2e, 0x52, 0x6f, 0x74, 0x61, 0x74, 0x65, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61,
+	0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x03, 0x88, 0x02, 0x01, 0x28,
+	0x01, 0x30, 0x01, 0x12, 0x6d, 0x0a, 0x07, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x12, 0x2b,
+	0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74,
+	0x65, 0x2e, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69,
+	0x63, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x67, 0x6e,
+	0x6f, 0x69, 0x2e, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x2e, 0x49,
+	0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74,
+	0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x03, 0x88, 0x02, 0x01, 0x28, 0x01,
+	0x30, 0x01, 0x12, 0x5f, 0x0a, 0x0b, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x43, 0x53,
+	0x52, 0x12, 0x24, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69,
+	0x63, 0x61, 0x74, 0x65, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x43, 0x53, 0x52,
+	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x63,
+	0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72,
+	0x61, 0x74, 0x65, 0x43, 0x53, 0x52, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x03,
+	0x88, 0x02, 0x01, 0x12, 0x6b, 0x0a, 0x0f, 0x4c, 0x6f, 0x61, 0x64, 0x43, 0x65, 0x72, 0x74, 0x69,
+	0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x12, 0x28, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x63, 0x65,
+	0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x2e, 0x4c, 0x6f, 0x61, 0x64, 0x43, 0x65,
+	0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
+	0x1a, 0x29, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63,
+	0x61, 0x74, 0x65, 0x2e, 0x4c, 0x6f, 0x61, 0x64, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63,
+	0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x03, 0x88, 0x02, 0x01,
+	0x12, 0x98, 0x01, 0x0a, 0x1e, 0x4c, 0x6f, 0x61, 0x64, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69,
+	0x63, 0x61, 0x74, 0x65, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x42, 0x75, 0x6e,
+	0x64, 0x6c, 0x65, 0x12, 0x37, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x63, 0x65, 0x72, 0x74, 0x69,
+	0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x2e, 0x4c, 0x6f, 0x61, 0x64, 0x43, 0x65, 0x72, 0x74, 0x69,
+	0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x42,
+	0x75, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x38, 0x2e, 0x67,
+	0x6e, 0x6f, 0x69, 0x2e, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x2e,
+	0x4c, 0x6f, 0x61, 0x64, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x41,
+	0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x65,
+	0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x03, 0x88, 0x02, 0x01, 0x12, 0x6b, 0x0a, 0x0f, 0x47,
+	0x65, 0x74, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x12, 0x28,
 	0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74,
-	0x65, 0x2e, 0x43, 0x61, 0x6e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x43, 0x53, 0x52,
-	0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x03, 0x88, 0x02, 0x01, 0x42, 0x29, 0xd2,
-	0x3e, 0x05, 0x30, 0x2e, 0x32, 0x2e, 0x30, 0x5a, 0x1f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e,
-	0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x67,
-	0x6e, 0x6f, 0x69, 0x2f, 0x63, 0x65, 0x72, 0x74, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+	0x65, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65,
+	0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e,
+	0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x43,
+	0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f,
+	0x6e, 0x73, 0x65, 0x22, 0x03, 0x88, 0x02, 0x01, 0x12, 0x74, 0x0a, 0x12, 0x52, 0x65, 0x76, 0x6f,
+	0x6b, 0x65, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x12, 0x2b,
+	0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74,
+	0x65, 0x2e, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63,
+	0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x67, 0x6e,
+	0x6f, 0x69, 0x2e, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x2e, 0x52,
+	0x65, 0x76, 0x6f, 0x6b, 0x65, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65,
+	0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x03, 0x88, 0x02, 0x01, 0x12, 0x68,
+	0x0a, 0x0e, 0x43, 0x61, 0x6e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x43, 0x53, 0x52,
+	0x12, 0x27, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63,
+	0x61, 0x74, 0x65, 0x2e, 0x43, 0x61, 0x6e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x43,
+	0x53, 0x52, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x67, 0x6e, 0x6f, 0x69,
+	0x2e, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x2e, 0x43, 0x61, 0x6e,
+	0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x43, 0x53, 0x52, 0x52, 0x65, 0x73, 0x70, 0x6f,
+	0x6e, 0x73, 0x65, 0x22, 0x03, 0x88, 0x02, 0x01, 0x42, 0x29, 0xd2, 0x3e, 0x05, 0x30, 0x2e, 0x32,
+	0x2e, 0x30, 0x5a, 0x1f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f,
+	0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x67, 0x6e, 0x6f, 0x69, 0x2f, 0x63,
+	0x65, 0x72, 0x74, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
 }
 
 var (
-	file_cert_cert_proto_rawDescOnce sync.Once
-	file_cert_cert_proto_rawDescData = file_cert_cert_proto_rawDesc
+	file_github_com_openconfig_gnoi_cert_cert_proto_rawDescOnce sync.Once
+	file_github_com_openconfig_gnoi_cert_cert_proto_rawDescData = file_github_com_openconfig_gnoi_cert_cert_proto_rawDesc
 )
 
-func file_cert_cert_proto_rawDescGZIP() []byte {
-	file_cert_cert_proto_rawDescOnce.Do(func() {
-		file_cert_cert_proto_rawDescData = protoimpl.X.CompressGZIP(file_cert_cert_proto_rawDescData)
+func file_github_com_openconfig_gnoi_cert_cert_proto_rawDescGZIP() []byte {
+	file_github_com_openconfig_gnoi_cert_cert_proto_rawDescOnce.Do(func() {
+		file_github_com_openconfig_gnoi_cert_cert_proto_rawDescData = protoimpl.X.CompressGZIP(file_github_com_openconfig_gnoi_cert_cert_proto_rawDescData)
 	})
-	return file_cert_cert_proto_rawDescData
+	return file_github_com_openconfig_gnoi_cert_cert_proto_rawDescData
 }
 
-var file_cert_cert_proto_enumTypes = make([]protoimpl.EnumInfo, 3)
-var file_cert_cert_proto_msgTypes = make([]protoimpl.MessageInfo, 24)
-var file_cert_cert_proto_goTypes = []interface{}{
+var file_github_com_openconfig_gnoi_cert_cert_proto_enumTypes = make([]protoimpl.EnumInfo, 3)
+var file_github_com_openconfig_gnoi_cert_cert_proto_msgTypes = make([]protoimpl.MessageInfo, 24)
+var file_github_com_openconfig_gnoi_cert_cert_proto_goTypes = []any{
 	(CertificateType)(0),                           // 0: gnoi.certificate.CertificateType
 	(KeyType)(0),                                   // 1: gnoi.certificate.KeyType
 	(Endpoint_Type)(0),                             // 2: gnoi.certificate.Endpoint.Type
@@ -1935,7 +1887,7 @@ var file_cert_cert_proto_goTypes = []interface{}{
 	(*KeyPair)(nil),                                // 25: gnoi.certificate.KeyPair
 	(*Endpoint)(nil),                               // 26: gnoi.certificate.Endpoint
 }
-var file_cert_cert_proto_depIdxs = []int32{
+var file_github_com_openconfig_gnoi_cert_cert_proto_depIdxs = []int32{
 	7,  // 0: gnoi.certificate.RotateCertificateRequest.generate_csr:type_name -> gnoi.certificate.GenerateCSRRequest
 	10, // 1: gnoi.certificate.RotateCertificateRequest.load_certificate:type_name -> gnoi.certificate.LoadCertificateRequest
 	14, // 2: gnoi.certificate.RotateCertificateRequest.finalize_rotation:type_name -> gnoi.certificate.FinalizeRequest
@@ -1985,315 +1937,25 @@ var file_cert_cert_proto_depIdxs = []int32{
 	0,  // [0:26] is the sub-list for field type_name
 }
 
-func init() { file_cert_cert_proto_init() }
-func file_cert_cert_proto_init() {
-	if File_cert_cert_proto != nil {
+func init() { file_github_com_openconfig_gnoi_cert_cert_proto_init() }
+func file_github_com_openconfig_gnoi_cert_cert_proto_init() {
+	if File_github_com_openconfig_gnoi_cert_cert_proto != nil {
 		return
 	}
-	if !protoimpl.UnsafeEnabled {
-		file_cert_cert_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*RotateCertificateRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_cert_cert_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*RotateCertificateResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_cert_cert_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*InstallCertificateRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_cert_cert_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*InstallCertificateResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_cert_cert_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*GenerateCSRRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_cert_cert_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*CSRParams); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_cert_cert_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*GenerateCSRResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_cert_cert_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*LoadCertificateRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_cert_cert_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*LoadCertificateResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_cert_cert_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*LoadCertificateAuthorityBundleRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_cert_cert_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*LoadCertificateAuthorityBundleResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_cert_cert_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*FinalizeRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_cert_cert_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*GetCertificatesRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_cert_cert_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*GetCertificatesResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_cert_cert_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*CertificateInfo); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_cert_cert_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*RevokeCertificatesRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_cert_cert_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*RevokeCertificatesResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_cert_cert_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*CertificateRevocationError); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_cert_cert_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*CanGenerateCSRRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_cert_cert_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*CanGenerateCSRResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_cert_cert_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*Certificate); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_cert_cert_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*CSR); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_cert_cert_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*KeyPair); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_cert_cert_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*Endpoint); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-	}
-	file_cert_cert_proto_msgTypes[0].OneofWrappers = []interface{}{
+	file_github_com_openconfig_gnoi_cert_cert_proto_msgTypes[0].OneofWrappers = []any{
 		(*RotateCertificateRequest_GenerateCsr)(nil),
 		(*RotateCertificateRequest_LoadCertificate)(nil),
 		(*RotateCertificateRequest_FinalizeRotation)(nil),
 	}
-	file_cert_cert_proto_msgTypes[1].OneofWrappers = []interface{}{
+	file_github_com_openconfig_gnoi_cert_cert_proto_msgTypes[1].OneofWrappers = []any{
 		(*RotateCertificateResponse_GeneratedCsr)(nil),
 		(*RotateCertificateResponse_LoadCertificate)(nil),
 	}
-	file_cert_cert_proto_msgTypes[2].OneofWrappers = []interface{}{
+	file_github_com_openconfig_gnoi_cert_cert_proto_msgTypes[2].OneofWrappers = []any{
 		(*InstallCertificateRequest_GenerateCsr)(nil),
 		(*InstallCertificateRequest_LoadCertificate)(nil),
 	}
-	file_cert_cert_proto_msgTypes[3].OneofWrappers = []interface{}{
+	file_github_com_openconfig_gnoi_cert_cert_proto_msgTypes[3].OneofWrappers = []any{
 		(*InstallCertificateResponse_GeneratedCsr)(nil),
 		(*InstallCertificateResponse_LoadCertificate)(nil),
 	}
@@ -2301,19 +1963,19 @@ func file_cert_cert_proto_init() {
 	out := protoimpl.TypeBuilder{
 		File: protoimpl.DescBuilder{
 			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
-			RawDescriptor: file_cert_cert_proto_rawDesc,
+			RawDescriptor: file_github_com_openconfig_gnoi_cert_cert_proto_rawDesc,
 			NumEnums:      3,
 			NumMessages:   24,
 			NumExtensions: 0,
 			NumServices:   1,
 		},
-		GoTypes:           file_cert_cert_proto_goTypes,
-		DependencyIndexes: file_cert_cert_proto_depIdxs,
-		EnumInfos:         file_cert_cert_proto_enumTypes,
-		MessageInfos:      file_cert_cert_proto_msgTypes,
+		GoTypes:           file_github_com_openconfig_gnoi_cert_cert_proto_goTypes,
+		DependencyIndexes: file_github_com_openconfig_gnoi_cert_cert_proto_depIdxs,
+		EnumInfos:         file_github_com_openconfig_gnoi_cert_cert_proto_enumTypes,
+		MessageInfos:      file_github_com_openconfig_gnoi_cert_cert_proto_msgTypes,
 	}.Build()
-	File_cert_cert_proto = out.File
-	file_cert_cert_proto_rawDesc = nil
-	file_cert_cert_proto_goTypes = nil
-	file_cert_cert_proto_depIdxs = nil
+	File_github_com_openconfig_gnoi_cert_cert_proto = out.File
+	file_github_com_openconfig_gnoi_cert_cert_proto_rawDesc = nil
+	file_github_com_openconfig_gnoi_cert_cert_proto_goTypes = nil
+	file_github_com_openconfig_gnoi_cert_cert_proto_depIdxs = nil
 }
diff --git a/cert/cert_grpc.pb.go b/cert/cert_grpc.pb.go
index a72031b3..65ac357f 100644
--- a/cert/cert_grpc.pb.go
+++ b/cert/cert_grpc.pb.go
@@ -1,8 +1,8 @@
 // Code generated by protoc-gen-go-grpc. DO NOT EDIT.
 // versions:
-// - protoc-gen-go-grpc v1.2.0
-// - protoc             v3.21.10
-// source: cert/cert.proto
+// - protoc-gen-go-grpc v1.5.1
+// - protoc             v5.29.3
+// source: github.com/openconfig/gnoi/cert/cert.proto
 
 package cert
 
@@ -15,17 +15,28 @@ import (
 
 // This is a compile-time assertion to ensure that this generated file
 // is compatible with the grpc package it is being compiled against.
-// Requires gRPC-Go v1.32.0 or later.
-const _ = grpc.SupportPackageIsVersion7
+// Requires gRPC-Go v1.64.0 or later.
+const _ = grpc.SupportPackageIsVersion9
+
+const (
+	CertificateManagement_Rotate_FullMethodName                         = "/gnoi.certificate.CertificateManagement/Rotate"
+	CertificateManagement_Install_FullMethodName                        = "/gnoi.certificate.CertificateManagement/Install"
+	CertificateManagement_GenerateCSR_FullMethodName                    = "/gnoi.certificate.CertificateManagement/GenerateCSR"
+	CertificateManagement_LoadCertificate_FullMethodName                = "/gnoi.certificate.CertificateManagement/LoadCertificate"
+	CertificateManagement_LoadCertificateAuthorityBundle_FullMethodName = "/gnoi.certificate.CertificateManagement/LoadCertificateAuthorityBundle"
+	CertificateManagement_GetCertificates_FullMethodName                = "/gnoi.certificate.CertificateManagement/GetCertificates"
+	CertificateManagement_RevokeCertificates_FullMethodName             = "/gnoi.certificate.CertificateManagement/RevokeCertificates"
+	CertificateManagement_CanGenerateCSR_FullMethodName                 = "/gnoi.certificate.CertificateManagement/CanGenerateCSR"
+)
 
 // CertificateManagementClient is the client API for CertificateManagement service.
 //
 // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.
 type CertificateManagementClient interface {
 	// Deprecated: Do not use.
-	Rotate(ctx context.Context, opts ...grpc.CallOption) (CertificateManagement_RotateClient, error)
+	Rotate(ctx context.Context, opts ...grpc.CallOption) (grpc.BidiStreamingClient[RotateCertificateRequest, RotateCertificateResponse], error)
 	// Deprecated: Do not use.
-	Install(ctx context.Context, opts ...grpc.CallOption) (CertificateManagement_InstallClient, error)
+	Install(ctx context.Context, opts ...grpc.CallOption) (grpc.BidiStreamingClient[InstallCertificateRequest, InstallCertificateResponse], error)
 	// Deprecated: Do not use.
 	GenerateCSR(ctx context.Context, in *GenerateCSRRequest, opts ...grpc.CallOption) (*GenerateCSRResponse, error)
 	// Deprecated: Do not use.
@@ -49,73 +60,38 @@ func NewCertificateManagementClient(cc grpc.ClientConnInterface) CertificateMana
 }
 
 // Deprecated: Do not use.
-func (c *certificateManagementClient) Rotate(ctx context.Context, opts ...grpc.CallOption) (CertificateManagement_RotateClient, error) {
-	stream, err := c.cc.NewStream(ctx, &CertificateManagement_ServiceDesc.Streams[0], "/gnoi.certificate.CertificateManagement/Rotate", opts...)
+func (c *certificateManagementClient) Rotate(ctx context.Context, opts ...grpc.CallOption) (grpc.BidiStreamingClient[RotateCertificateRequest, RotateCertificateResponse], error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	stream, err := c.cc.NewStream(ctx, &CertificateManagement_ServiceDesc.Streams[0], CertificateManagement_Rotate_FullMethodName, cOpts...)
 	if err != nil {
 		return nil, err
 	}
-	x := &certificateManagementRotateClient{stream}
+	x := &grpc.GenericClientStream[RotateCertificateRequest, RotateCertificateResponse]{ClientStream: stream}
 	return x, nil
 }
 
-type CertificateManagement_RotateClient interface {
-	Send(*RotateCertificateRequest) error
-	Recv() (*RotateCertificateResponse, error)
-	grpc.ClientStream
-}
-
-type certificateManagementRotateClient struct {
-	grpc.ClientStream
-}
-
-func (x *certificateManagementRotateClient) Send(m *RotateCertificateRequest) error {
-	return x.ClientStream.SendMsg(m)
-}
-
-func (x *certificateManagementRotateClient) Recv() (*RotateCertificateResponse, error) {
-	m := new(RotateCertificateResponse)
-	if err := x.ClientStream.RecvMsg(m); err != nil {
-		return nil, err
-	}
-	return m, nil
-}
+// This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name.
+type CertificateManagement_RotateClient = grpc.BidiStreamingClient[RotateCertificateRequest, RotateCertificateResponse]
 
 // Deprecated: Do not use.
-func (c *certificateManagementClient) Install(ctx context.Context, opts ...grpc.CallOption) (CertificateManagement_InstallClient, error) {
-	stream, err := c.cc.NewStream(ctx, &CertificateManagement_ServiceDesc.Streams[1], "/gnoi.certificate.CertificateManagement/Install", opts...)
+func (c *certificateManagementClient) Install(ctx context.Context, opts ...grpc.CallOption) (grpc.BidiStreamingClient[InstallCertificateRequest, InstallCertificateResponse], error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	stream, err := c.cc.NewStream(ctx, &CertificateManagement_ServiceDesc.Streams[1], CertificateManagement_Install_FullMethodName, cOpts...)
 	if err != nil {
 		return nil, err
 	}
-	x := &certificateManagementInstallClient{stream}
+	x := &grpc.GenericClientStream[InstallCertificateRequest, InstallCertificateResponse]{ClientStream: stream}
 	return x, nil
 }
 
-type CertificateManagement_InstallClient interface {
-	Send(*InstallCertificateRequest) error
-	Recv() (*InstallCertificateResponse, error)
-	grpc.ClientStream
-}
-
-type certificateManagementInstallClient struct {
-	grpc.ClientStream
-}
-
-func (x *certificateManagementInstallClient) Send(m *InstallCertificateRequest) error {
-	return x.ClientStream.SendMsg(m)
-}
-
-func (x *certificateManagementInstallClient) Recv() (*InstallCertificateResponse, error) {
-	m := new(InstallCertificateResponse)
-	if err := x.ClientStream.RecvMsg(m); err != nil {
-		return nil, err
-	}
-	return m, nil
-}
+// This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name.
+type CertificateManagement_InstallClient = grpc.BidiStreamingClient[InstallCertificateRequest, InstallCertificateResponse]
 
 // Deprecated: Do not use.
 func (c *certificateManagementClient) GenerateCSR(ctx context.Context, in *GenerateCSRRequest, opts ...grpc.CallOption) (*GenerateCSRResponse, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
 	out := new(GenerateCSRResponse)
-	err := c.cc.Invoke(ctx, "/gnoi.certificate.CertificateManagement/GenerateCSR", in, out, opts...)
+	err := c.cc.Invoke(ctx, CertificateManagement_GenerateCSR_FullMethodName, in, out, cOpts...)
 	if err != nil {
 		return nil, err
 	}
@@ -124,8 +100,9 @@ func (c *certificateManagementClient) GenerateCSR(ctx context.Context, in *Gener
 
 // Deprecated: Do not use.
 func (c *certificateManagementClient) LoadCertificate(ctx context.Context, in *LoadCertificateRequest, opts ...grpc.CallOption) (*LoadCertificateResponse, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
 	out := new(LoadCertificateResponse)
-	err := c.cc.Invoke(ctx, "/gnoi.certificate.CertificateManagement/LoadCertificate", in, out, opts...)
+	err := c.cc.Invoke(ctx, CertificateManagement_LoadCertificate_FullMethodName, in, out, cOpts...)
 	if err != nil {
 		return nil, err
 	}
@@ -134,8 +111,9 @@ func (c *certificateManagementClient) LoadCertificate(ctx context.Context, in *L
 
 // Deprecated: Do not use.
 func (c *certificateManagementClient) LoadCertificateAuthorityBundle(ctx context.Context, in *LoadCertificateAuthorityBundleRequest, opts ...grpc.CallOption) (*LoadCertificateAuthorityBundleResponse, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
 	out := new(LoadCertificateAuthorityBundleResponse)
-	err := c.cc.Invoke(ctx, "/gnoi.certificate.CertificateManagement/LoadCertificateAuthorityBundle", in, out, opts...)
+	err := c.cc.Invoke(ctx, CertificateManagement_LoadCertificateAuthorityBundle_FullMethodName, in, out, cOpts...)
 	if err != nil {
 		return nil, err
 	}
@@ -144,8 +122,9 @@ func (c *certificateManagementClient) LoadCertificateAuthorityBundle(ctx context
 
 // Deprecated: Do not use.
 func (c *certificateManagementClient) GetCertificates(ctx context.Context, in *GetCertificatesRequest, opts ...grpc.CallOption) (*GetCertificatesResponse, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
 	out := new(GetCertificatesResponse)
-	err := c.cc.Invoke(ctx, "/gnoi.certificate.CertificateManagement/GetCertificates", in, out, opts...)
+	err := c.cc.Invoke(ctx, CertificateManagement_GetCertificates_FullMethodName, in, out, cOpts...)
 	if err != nil {
 		return nil, err
 	}
@@ -154,8 +133,9 @@ func (c *certificateManagementClient) GetCertificates(ctx context.Context, in *G
 
 // Deprecated: Do not use.
 func (c *certificateManagementClient) RevokeCertificates(ctx context.Context, in *RevokeCertificatesRequest, opts ...grpc.CallOption) (*RevokeCertificatesResponse, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
 	out := new(RevokeCertificatesResponse)
-	err := c.cc.Invoke(ctx, "/gnoi.certificate.CertificateManagement/RevokeCertificates", in, out, opts...)
+	err := c.cc.Invoke(ctx, CertificateManagement_RevokeCertificates_FullMethodName, in, out, cOpts...)
 	if err != nil {
 		return nil, err
 	}
@@ -164,8 +144,9 @@ func (c *certificateManagementClient) RevokeCertificates(ctx context.Context, in
 
 // Deprecated: Do not use.
 func (c *certificateManagementClient) CanGenerateCSR(ctx context.Context, in *CanGenerateCSRRequest, opts ...grpc.CallOption) (*CanGenerateCSRResponse, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
 	out := new(CanGenerateCSRResponse)
-	err := c.cc.Invoke(ctx, "/gnoi.certificate.CertificateManagement/CanGenerateCSR", in, out, opts...)
+	err := c.cc.Invoke(ctx, CertificateManagement_CanGenerateCSR_FullMethodName, in, out, cOpts...)
 	if err != nil {
 		return nil, err
 	}
@@ -173,13 +154,13 @@ func (c *certificateManagementClient) CanGenerateCSR(ctx context.Context, in *Ca
 }
 
 // CertificateManagementServer is the server API for CertificateManagement service.
-// All implementations must embed UnimplementedCertificateManagementServer
-// for forward compatibility
+// All implementations should embed UnimplementedCertificateManagementServer
+// for forward compatibility.
 type CertificateManagementServer interface {
 	// Deprecated: Do not use.
-	Rotate(CertificateManagement_RotateServer) error
+	Rotate(grpc.BidiStreamingServer[RotateCertificateRequest, RotateCertificateResponse]) error
 	// Deprecated: Do not use.
-	Install(CertificateManagement_InstallServer) error
+	Install(grpc.BidiStreamingServer[InstallCertificateRequest, InstallCertificateResponse]) error
 	// Deprecated: Do not use.
 	GenerateCSR(context.Context, *GenerateCSRRequest) (*GenerateCSRResponse, error)
 	// Deprecated: Do not use.
@@ -192,17 +173,19 @@ type CertificateManagementServer interface {
 	RevokeCertificates(context.Context, *RevokeCertificatesRequest) (*RevokeCertificatesResponse, error)
 	// Deprecated: Do not use.
 	CanGenerateCSR(context.Context, *CanGenerateCSRRequest) (*CanGenerateCSRResponse, error)
-	mustEmbedUnimplementedCertificateManagementServer()
 }
 
-// UnimplementedCertificateManagementServer must be embedded to have forward compatible implementations.
-type UnimplementedCertificateManagementServer struct {
-}
+// UnimplementedCertificateManagementServer should be embedded to have
+// forward compatible implementations.
+//
+// NOTE: this should be embedded by value instead of pointer to avoid a nil
+// pointer dereference when methods are called.
+type UnimplementedCertificateManagementServer struct{}
 
-func (UnimplementedCertificateManagementServer) Rotate(CertificateManagement_RotateServer) error {
+func (UnimplementedCertificateManagementServer) Rotate(grpc.BidiStreamingServer[RotateCertificateRequest, RotateCertificateResponse]) error {
 	return status.Errorf(codes.Unimplemented, "method Rotate not implemented")
 }
-func (UnimplementedCertificateManagementServer) Install(CertificateManagement_InstallServer) error {
+func (UnimplementedCertificateManagementServer) Install(grpc.BidiStreamingServer[InstallCertificateRequest, InstallCertificateResponse]) error {
 	return status.Errorf(codes.Unimplemented, "method Install not implemented")
 }
 func (UnimplementedCertificateManagementServer) GenerateCSR(context.Context, *GenerateCSRRequest) (*GenerateCSRResponse, error) {
@@ -223,7 +206,7 @@ func (UnimplementedCertificateManagementServer) RevokeCertificates(context.Conte
 func (UnimplementedCertificateManagementServer) CanGenerateCSR(context.Context, *CanGenerateCSRRequest) (*CanGenerateCSRResponse, error) {
 	return nil, status.Errorf(codes.Unimplemented, "method CanGenerateCSR not implemented")
 }
-func (UnimplementedCertificateManagementServer) mustEmbedUnimplementedCertificateManagementServer() {}
+func (UnimplementedCertificateManagementServer) testEmbeddedByValue() {}
 
 // UnsafeCertificateManagementServer may be embedded to opt out of forward compatibility for this service.
 // Use of this interface is not recommended, as added methods to CertificateManagementServer will
@@ -233,60 +216,29 @@ type UnsafeCertificateManagementServer interface {
 }
 
 func RegisterCertificateManagementServer(s grpc.ServiceRegistrar, srv CertificateManagementServer) {
+	// If the following call pancis, it indicates UnimplementedCertificateManagementServer was
+	// embedded by pointer and is nil.  This will cause panics if an
+	// unimplemented method is ever invoked, so we test this at initialization
+	// time to prevent it from happening at runtime later due to I/O.
+	if t, ok := srv.(interface{ testEmbeddedByValue() }); ok {
+		t.testEmbeddedByValue()
+	}
 	s.RegisterService(&CertificateManagement_ServiceDesc, srv)
 }
 
 func _CertificateManagement_Rotate_Handler(srv interface{}, stream grpc.ServerStream) error {
-	return srv.(CertificateManagementServer).Rotate(&certificateManagementRotateServer{stream})
-}
-
-type CertificateManagement_RotateServer interface {
-	Send(*RotateCertificateResponse) error
-	Recv() (*RotateCertificateRequest, error)
-	grpc.ServerStream
-}
-
-type certificateManagementRotateServer struct {
-	grpc.ServerStream
-}
-
-func (x *certificateManagementRotateServer) Send(m *RotateCertificateResponse) error {
-	return x.ServerStream.SendMsg(m)
+	return srv.(CertificateManagementServer).Rotate(&grpc.GenericServerStream[RotateCertificateRequest, RotateCertificateResponse]{ServerStream: stream})
 }
 
-func (x *certificateManagementRotateServer) Recv() (*RotateCertificateRequest, error) {
-	m := new(RotateCertificateRequest)
-	if err := x.ServerStream.RecvMsg(m); err != nil {
-		return nil, err
-	}
-	return m, nil
-}
+// This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name.
+type CertificateManagement_RotateServer = grpc.BidiStreamingServer[RotateCertificateRequest, RotateCertificateResponse]
 
 func _CertificateManagement_Install_Handler(srv interface{}, stream grpc.ServerStream) error {
-	return srv.(CertificateManagementServer).Install(&certificateManagementInstallServer{stream})
-}
-
-type CertificateManagement_InstallServer interface {
-	Send(*InstallCertificateResponse) error
-	Recv() (*InstallCertificateRequest, error)
-	grpc.ServerStream
-}
-
-type certificateManagementInstallServer struct {
-	grpc.ServerStream
+	return srv.(CertificateManagementServer).Install(&grpc.GenericServerStream[InstallCertificateRequest, InstallCertificateResponse]{ServerStream: stream})
 }
 
-func (x *certificateManagementInstallServer) Send(m *InstallCertificateResponse) error {
-	return x.ServerStream.SendMsg(m)
-}
-
-func (x *certificateManagementInstallServer) Recv() (*InstallCertificateRequest, error) {
-	m := new(InstallCertificateRequest)
-	if err := x.ServerStream.RecvMsg(m); err != nil {
-		return nil, err
-	}
-	return m, nil
-}
+// This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name.
+type CertificateManagement_InstallServer = grpc.BidiStreamingServer[InstallCertificateRequest, InstallCertificateResponse]
 
 func _CertificateManagement_GenerateCSR_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
 	in := new(GenerateCSRRequest)
@@ -298,7 +250,7 @@ func _CertificateManagement_GenerateCSR_Handler(srv interface{}, ctx context.Con
 	}
 	info := &grpc.UnaryServerInfo{
 		Server:     srv,
-		FullMethod: "/gnoi.certificate.CertificateManagement/GenerateCSR",
+		FullMethod: CertificateManagement_GenerateCSR_FullMethodName,
 	}
 	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
 		return srv.(CertificateManagementServer).GenerateCSR(ctx, req.(*GenerateCSRRequest))
@@ -316,7 +268,7 @@ func _CertificateManagement_LoadCertificate_Handler(srv interface{}, ctx context
 	}
 	info := &grpc.UnaryServerInfo{
 		Server:     srv,
-		FullMethod: "/gnoi.certificate.CertificateManagement/LoadCertificate",
+		FullMethod: CertificateManagement_LoadCertificate_FullMethodName,
 	}
 	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
 		return srv.(CertificateManagementServer).LoadCertificate(ctx, req.(*LoadCertificateRequest))
@@ -334,7 +286,7 @@ func _CertificateManagement_LoadCertificateAuthorityBundle_Handler(srv interface
 	}
 	info := &grpc.UnaryServerInfo{
 		Server:     srv,
-		FullMethod: "/gnoi.certificate.CertificateManagement/LoadCertificateAuthorityBundle",
+		FullMethod: CertificateManagement_LoadCertificateAuthorityBundle_FullMethodName,
 	}
 	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
 		return srv.(CertificateManagementServer).LoadCertificateAuthorityBundle(ctx, req.(*LoadCertificateAuthorityBundleRequest))
@@ -352,7 +304,7 @@ func _CertificateManagement_GetCertificates_Handler(srv interface{}, ctx context
 	}
 	info := &grpc.UnaryServerInfo{
 		Server:     srv,
-		FullMethod: "/gnoi.certificate.CertificateManagement/GetCertificates",
+		FullMethod: CertificateManagement_GetCertificates_FullMethodName,
 	}
 	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
 		return srv.(CertificateManagementServer).GetCertificates(ctx, req.(*GetCertificatesRequest))
@@ -370,7 +322,7 @@ func _CertificateManagement_RevokeCertificates_Handler(srv interface{}, ctx cont
 	}
 	info := &grpc.UnaryServerInfo{
 		Server:     srv,
-		FullMethod: "/gnoi.certificate.CertificateManagement/RevokeCertificates",
+		FullMethod: CertificateManagement_RevokeCertificates_FullMethodName,
 	}
 	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
 		return srv.(CertificateManagementServer).RevokeCertificates(ctx, req.(*RevokeCertificatesRequest))
@@ -388,7 +340,7 @@ func _CertificateManagement_CanGenerateCSR_Handler(srv interface{}, ctx context.
 	}
 	info := &grpc.UnaryServerInfo{
 		Server:     srv,
-		FullMethod: "/gnoi.certificate.CertificateManagement/CanGenerateCSR",
+		FullMethod: CertificateManagement_CanGenerateCSR_FullMethodName,
 	}
 	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
 		return srv.(CertificateManagementServer).CanGenerateCSR(ctx, req.(*CanGenerateCSRRequest))
@@ -442,5 +394,5 @@ var CertificateManagement_ServiceDesc = grpc.ServiceDesc{
 			ClientStreams: true,
 		},
 	},
-	Metadata: "cert/cert.proto",
+	Metadata: "github.com/openconfig/gnoi/cert/cert.proto",
 }
diff --git a/common.bzl b/common.bzl
deleted file mode 100644
index b40ec14a..00000000
--- a/common.bzl
+++ /dev/null
@@ -1,29 +0,0 @@
-load("@io_bazel_rules_go//proto:compiler.bzl", "go_proto_compiler")
-load("@io_bazel_rules_go//proto/wkt:well_known_types.bzl", "PROTO_RUNTIME_DEPS", "WELL_KNOWN_TYPES_APIV2")
-
-def use_new_compilers():
-    go_proto_compiler(
-        name = "go_protoc_gen_go",
-        options = [
-            "paths=source_relative",
-        ],
-        plugin = "@org_golang_google_protobuf//cmd/protoc-gen-go",
-        suffix = ".pb.go",
-        visibility = ["//visibility:public"],
-        deps = PROTO_RUNTIME_DEPS + WELL_KNOWN_TYPES_APIV2,
-    )
-    go_proto_compiler(
-        name = "go_protoc_gen_go_grpc",
-        options = [
-            "paths=source_relative",
-        ],
-        plugin = "@org_golang_google_grpc_cmd_protoc_gen_go_grpc//:protoc-gen-go-grpc",
-        suffix = "_grpc.pb.go",
-        visibility = ["//visibility:public"],
-        deps = PROTO_RUNTIME_DEPS + [
-            "@org_golang_google_grpc//:go_default_library",
-            "@org_golang_google_grpc//codes:go_default_library",
-            "@org_golang_google_grpc//status:go_default_library",
-        ],
-    )
-
diff --git a/common/BUILD.bazel b/common/BUILD.bazel
index 13e56a8f..df719160 100644
--- a/common/BUILD.bazel
+++ b/common/BUILD.bazel
@@ -1,8 +1,8 @@
-load("@rules_proto//proto:defs.bzl", "proto_library")
+load("@com_github_grpc_grpc//bazel:cc_grpc_library.bzl", "cc_grpc_library")
+load("@com_google_protobuf//bazel:cc_proto_library.bzl", "cc_proto_library")
+load("@com_google_protobuf//bazel:proto_library.bzl", "proto_library")
 load("@io_bazel_rules_go//go:def.bzl", "go_library")
 load("@io_bazel_rules_go//proto:def.bzl", "go_proto_library")
-load("@com_github_grpc_grpc//bazel:cc_grpc_library.bzl", "cc_grpc_library")
-load("//:common.bzl", "use_new_compilers")
 
 # Copyright 2021 Google LLC
 #
@@ -23,8 +23,6 @@ package(
     licenses = ["notice"],
 )
 
-use_new_compilers()
-
 proto_library(
     name = "common_proto",
     srcs = ["common.proto"],
@@ -39,10 +37,6 @@ cc_proto_library(
 
 go_proto_library(
     name = "common_go_proto",
-    compilers = [
-        "go_protoc_gen_go",
-        "go_protoc_gen_go_grpc",
-    ],
     importpath = "github.com/openconfig/gnoi/common",
     proto = ":common_proto",
     deps = ["//types"],
diff --git a/common/common.pb.go b/common/common.pb.go
index 76daf84f..da6e2a05 100644
--- a/common/common.pb.go
+++ b/common/common.pb.go
@@ -1,7 +1,7 @@
 // Code generated by protoc-gen-go. DO NOT EDIT.
 // versions:
-// 	protoc-gen-go v1.30.0
-// 	protoc        v3.21.10
+// 	protoc-gen-go v1.36.2
+// 	protoc        v5.29.3
 // source: github.com/openconfig/gnoi/common/common.proto
 
 package common
@@ -77,24 +77,21 @@ func (RemoteDownload_Protocol) EnumDescriptor() ([]byte, []int) {
 }
 
 type RemoteDownload struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
+	state         protoimpl.MessageState  `protogen:"open.v1"`
 	Path          string                  `protobuf:"bytes,1,opt,name=path,proto3" json:"path,omitempty"`
 	Protocol      RemoteDownload_Protocol `protobuf:"varint,2,opt,name=protocol,proto3,enum=gnoi.common.RemoteDownload_Protocol" json:"protocol,omitempty"`
 	Credentials   *types.Credentials      `protobuf:"bytes,3,opt,name=credentials,proto3" json:"credentials,omitempty"`
 	SourceAddress string                  `protobuf:"bytes,4,opt,name=source_address,json=sourceAddress,proto3" json:"source_address,omitempty"`
 	SourceVrf     string                  `protobuf:"bytes,5,opt,name=source_vrf,json=sourceVrf,proto3" json:"source_vrf,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *RemoteDownload) Reset() {
 	*x = RemoteDownload{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_github_com_openconfig_gnoi_common_common_proto_msgTypes[0]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_common_common_proto_msgTypes[0]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *RemoteDownload) String() string {
@@ -105,7 +102,7 @@ func (*RemoteDownload) ProtoMessage() {}
 
 func (x *RemoteDownload) ProtoReflect() protoreflect.Message {
 	mi := &file_github_com_openconfig_gnoi_common_common_proto_msgTypes[0]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -203,7 +200,7 @@ func file_github_com_openconfig_gnoi_common_common_proto_rawDescGZIP() []byte {
 
 var file_github_com_openconfig_gnoi_common_common_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
 var file_github_com_openconfig_gnoi_common_common_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
-var file_github_com_openconfig_gnoi_common_common_proto_goTypes = []interface{}{
+var file_github_com_openconfig_gnoi_common_common_proto_goTypes = []any{
 	(RemoteDownload_Protocol)(0), // 0: gnoi.common.RemoteDownload.Protocol
 	(*RemoteDownload)(nil),       // 1: gnoi.common.RemoteDownload
 	(*types.Credentials)(nil),    // 2: gnoi.types.Credentials
@@ -223,20 +220,6 @@ func file_github_com_openconfig_gnoi_common_common_proto_init() {
 	if File_github_com_openconfig_gnoi_common_common_proto != nil {
 		return
 	}
-	if !protoimpl.UnsafeEnabled {
-		file_github_com_openconfig_gnoi_common_common_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*RemoteDownload); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-	}
 	type x struct{}
 	out := protoimpl.TypeBuilder{
 		File: protoimpl.DescBuilder{
diff --git a/containerz/BUILD.bazel b/containerz/BUILD.bazel
index 557125bb..cdb599fe 100644
--- a/containerz/BUILD.bazel
+++ b/containerz/BUILD.bazel
@@ -1,8 +1,8 @@
-load("@rules_proto//proto:defs.bzl", "proto_library")
+load("@com_github_grpc_grpc//bazel:cc_grpc_library.bzl", "cc_grpc_library")
+load("@com_google_protobuf//bazel:cc_proto_library.bzl", "cc_proto_library")
+load("@com_google_protobuf//bazel:proto_library.bzl", "proto_library")
 load("@io_bazel_rules_go//go:def.bzl", "go_library")
 load("@io_bazel_rules_go//proto:def.bzl", "go_proto_library")
-load("@com_github_grpc_grpc//bazel:cc_grpc_library.bzl", "cc_grpc_library")
-load("//:common.bzl", "use_new_compilers")
 
 #Copyright 2021 Google LLC
 #
@@ -23,16 +23,15 @@ package(
     licenses = ["notice"],
 )
 
-use_new_compilers()
-
 proto_library(
     name = "containerz_proto",
     srcs = ["containerz.proto"],
+    import_prefix = "github.com/openconfig/gnoi",
     deps = [
         "//common:common_proto",
         "//types:types_proto",
+        "@com_google_googleapis//google/rpc:status_proto",
         "@com_google_protobuf//:timestamp_proto",
-        "@go_googleapis//google/rpc:status_proto",
     ],
 )
 
@@ -51,15 +50,15 @@ cc_grpc_library(
 go_proto_library(
     name = "containerz_go_proto",
     compilers = [
-        "go_protoc_gen_go",
-        "go_protoc_gen_go_grpc",
+        "@io_bazel_rules_go//proto:go_grpc_v2",
+        "@io_bazel_rules_go//proto:go_proto",
     ],
     importpath = "github.com/openconfig/gnoi/containerz",
     proto = ":containerz_proto",
     deps = [
         "//common",
         "//types",
-        "@go_googleapis//google/rpc:status_go_proto",
+        "@org_golang_google_genproto_googleapis_rpc//status",
     ],
 )
 
diff --git a/containerz/containerz.pb.go b/containerz/containerz.pb.go
index 178be595..5c18de4c 100644
--- a/containerz/containerz.pb.go
+++ b/containerz/containerz.pb.go
@@ -1,8 +1,8 @@
 // Code generated by protoc-gen-go. DO NOT EDIT.
 // versions:
-// 	protoc-gen-go v1.30.0
-// 	protoc        v3.21.10
-// source: containerz/containerz.proto
+// 	protoc-gen-go v1.36.2
+// 	protoc        v5.29.3
+// source: github.com/openconfig/gnoi/containerz/containerz.proto
 
 package containerz
 
@@ -54,11 +54,11 @@ func (x Driver) String() string {
 }
 
 func (Driver) Descriptor() protoreflect.EnumDescriptor {
-	return file_containerz_containerz_proto_enumTypes[0].Descriptor()
+	return file_github_com_openconfig_gnoi_containerz_containerz_proto_enumTypes[0].Descriptor()
 }
 
 func (Driver) Type() protoreflect.EnumType {
-	return &file_containerz_containerz_proto_enumTypes[0]
+	return &file_github_com_openconfig_gnoi_containerz_containerz_proto_enumTypes[0]
 }
 
 func (x Driver) Number() protoreflect.EnumNumber {
@@ -67,7 +67,7 @@ func (x Driver) Number() protoreflect.EnumNumber {
 
 // Deprecated: Use Driver.Descriptor instead.
 func (Driver) EnumDescriptor() ([]byte, []int) {
-	return file_containerz_containerz_proto_rawDescGZIP(), []int{0}
+	return file_github_com_openconfig_gnoi_containerz_containerz_proto_rawDescGZIP(), []int{0}
 }
 
 type RemoveImageResponse_Code int32
@@ -109,11 +109,11 @@ func (x RemoveImageResponse_Code) String() string {
 }
 
 func (RemoveImageResponse_Code) Descriptor() protoreflect.EnumDescriptor {
-	return file_containerz_containerz_proto_enumTypes[1].Descriptor()
+	return file_github_com_openconfig_gnoi_containerz_containerz_proto_enumTypes[1].Descriptor()
 }
 
 func (RemoveImageResponse_Code) Type() protoreflect.EnumType {
-	return &file_containerz_containerz_proto_enumTypes[1]
+	return &file_github_com_openconfig_gnoi_containerz_containerz_proto_enumTypes[1]
 }
 
 func (x RemoveImageResponse_Code) Number() protoreflect.EnumNumber {
@@ -122,7 +122,7 @@ func (x RemoveImageResponse_Code) Number() protoreflect.EnumNumber {
 
 // Deprecated: Use RemoveImageResponse_Code.Descriptor instead.
 func (RemoveImageResponse_Code) EnumDescriptor() ([]byte, []int) {
-	return file_containerz_containerz_proto_rawDescGZIP(), []int{8, 0}
+	return file_github_com_openconfig_gnoi_containerz_containerz_proto_rawDescGZIP(), []int{8, 0}
 }
 
 type RemoveContainerResponse_Code int32
@@ -161,11 +161,11 @@ func (x RemoveContainerResponse_Code) String() string {
 }
 
 func (RemoveContainerResponse_Code) Descriptor() protoreflect.EnumDescriptor {
-	return file_containerz_containerz_proto_enumTypes[2].Descriptor()
+	return file_github_com_openconfig_gnoi_containerz_containerz_proto_enumTypes[2].Descriptor()
 }
 
 func (RemoveContainerResponse_Code) Type() protoreflect.EnumType {
-	return &file_containerz_containerz_proto_enumTypes[2]
+	return &file_github_com_openconfig_gnoi_containerz_containerz_proto_enumTypes[2]
 }
 
 func (x RemoveContainerResponse_Code) Number() protoreflect.EnumNumber {
@@ -174,7 +174,7 @@ func (x RemoveContainerResponse_Code) Number() protoreflect.EnumNumber {
 
 // Deprecated: Use RemoveContainerResponse_Code.Descriptor instead.
 func (RemoveContainerResponse_Code) EnumDescriptor() ([]byte, []int) {
-	return file_containerz_containerz_proto_rawDescGZIP(), []int{10, 0}
+	return file_github_com_openconfig_gnoi_containerz_containerz_proto_rawDescGZIP(), []int{10, 0}
 }
 
 type ListContainerResponse_Status int32
@@ -216,11 +216,11 @@ func (x ListContainerResponse_Status) String() string {
 }
 
 func (ListContainerResponse_Status) Descriptor() protoreflect.EnumDescriptor {
-	return file_containerz_containerz_proto_enumTypes[3].Descriptor()
+	return file_github_com_openconfig_gnoi_containerz_containerz_proto_enumTypes[3].Descriptor()
 }
 
 func (ListContainerResponse_Status) Type() protoreflect.EnumType {
-	return &file_containerz_containerz_proto_enumTypes[3]
+	return &file_github_com_openconfig_gnoi_containerz_containerz_proto_enumTypes[3]
 }
 
 func (x ListContainerResponse_Status) Number() protoreflect.EnumNumber {
@@ -229,7 +229,7 @@ func (x ListContainerResponse_Status) Number() protoreflect.EnumNumber {
 
 // Deprecated: Use ListContainerResponse_Status.Descriptor instead.
 func (ListContainerResponse_Status) EnumDescriptor() ([]byte, []int) {
-	return file_containerz_containerz_proto_rawDescGZIP(), []int{14, 0}
+	return file_github_com_openconfig_gnoi_containerz_containerz_proto_rawDescGZIP(), []int{14, 0}
 }
 
 type StartContainerRequest_Restart_Policy int32
@@ -268,11 +268,11 @@ func (x StartContainerRequest_Restart_Policy) String() string {
 }
 
 func (StartContainerRequest_Restart_Policy) Descriptor() protoreflect.EnumDescriptor {
-	return file_containerz_containerz_proto_enumTypes[4].Descriptor()
+	return file_github_com_openconfig_gnoi_containerz_containerz_proto_enumTypes[4].Descriptor()
 }
 
 func (StartContainerRequest_Restart_Policy) Type() protoreflect.EnumType {
-	return &file_containerz_containerz_proto_enumTypes[4]
+	return &file_github_com_openconfig_gnoi_containerz_containerz_proto_enumTypes[4]
 }
 
 func (x StartContainerRequest_Restart_Policy) Number() protoreflect.EnumNumber {
@@ -281,7 +281,7 @@ func (x StartContainerRequest_Restart_Policy) Number() protoreflect.EnumNumber {
 
 // Deprecated: Use StartContainerRequest_Restart_Policy.Descriptor instead.
 func (StartContainerRequest_Restart_Policy) EnumDescriptor() ([]byte, []int) {
-	return file_containerz_containerz_proto_rawDescGZIP(), []int{16, 3, 0}
+	return file_github_com_openconfig_gnoi_containerz_containerz_proto_rawDescGZIP(), []int{16, 3, 0}
 }
 
 type StartError_Code int32
@@ -320,11 +320,11 @@ func (x StartError_Code) String() string {
 }
 
 func (StartError_Code) Descriptor() protoreflect.EnumDescriptor {
-	return file_containerz_containerz_proto_enumTypes[5].Descriptor()
+	return file_github_com_openconfig_gnoi_containerz_containerz_proto_enumTypes[5].Descriptor()
 }
 
 func (StartError_Code) Type() protoreflect.EnumType {
-	return &file_containerz_containerz_proto_enumTypes[5]
+	return &file_github_com_openconfig_gnoi_containerz_containerz_proto_enumTypes[5]
 }
 
 func (x StartError_Code) Number() protoreflect.EnumNumber {
@@ -333,7 +333,7 @@ func (x StartError_Code) Number() protoreflect.EnumNumber {
 
 // Deprecated: Use StartError_Code.Descriptor instead.
 func (StartError_Code) EnumDescriptor() ([]byte, []int) {
-	return file_containerz_containerz_proto_rawDescGZIP(), []int{19, 0}
+	return file_github_com_openconfig_gnoi_containerz_containerz_proto_rawDescGZIP(), []int{19, 0}
 }
 
 type StopContainerResponse_Code int32
@@ -372,11 +372,11 @@ func (x StopContainerResponse_Code) String() string {
 }
 
 func (StopContainerResponse_Code) Descriptor() protoreflect.EnumDescriptor {
-	return file_containerz_containerz_proto_enumTypes[6].Descriptor()
+	return file_github_com_openconfig_gnoi_containerz_containerz_proto_enumTypes[6].Descriptor()
 }
 
 func (StopContainerResponse_Code) Type() protoreflect.EnumType {
-	return &file_containerz_containerz_proto_enumTypes[6]
+	return &file_github_com_openconfig_gnoi_containerz_containerz_proto_enumTypes[6]
 }
 
 func (x StopContainerResponse_Code) Number() protoreflect.EnumNumber {
@@ -385,7 +385,7 @@ func (x StopContainerResponse_Code) Number() protoreflect.EnumNumber {
 
 // Deprecated: Use StopContainerResponse_Code.Descriptor instead.
 func (StopContainerResponse_Code) EnumDescriptor() ([]byte, []int) {
-	return file_containerz_containerz_proto_rawDescGZIP(), []int{21, 0}
+	return file_github_com_openconfig_gnoi_containerz_containerz_proto_rawDescGZIP(), []int{21, 0}
 }
 
 type UpdateError_Code int32
@@ -430,11 +430,11 @@ func (x UpdateError_Code) String() string {
 }
 
 func (UpdateError_Code) Descriptor() protoreflect.EnumDescriptor {
-	return file_containerz_containerz_proto_enumTypes[7].Descriptor()
+	return file_github_com_openconfig_gnoi_containerz_containerz_proto_enumTypes[7].Descriptor()
 }
 
 func (UpdateError_Code) Type() protoreflect.EnumType {
-	return &file_containerz_containerz_proto_enumTypes[7]
+	return &file_github_com_openconfig_gnoi_containerz_containerz_proto_enumTypes[7]
 }
 
 func (x UpdateError_Code) Number() protoreflect.EnumNumber {
@@ -443,7 +443,7 @@ func (x UpdateError_Code) Number() protoreflect.EnumNumber {
 
 // Deprecated: Use UpdateError_Code.Descriptor instead.
 func (UpdateError_Code) EnumDescriptor() ([]byte, []int) {
-	return file_containerz_containerz_proto_rawDescGZIP(), []int{25, 0}
+	return file_github_com_openconfig_gnoi_containerz_containerz_proto_rawDescGZIP(), []int{25, 0}
 }
 
 type LocalDriverOptions_Type int32
@@ -476,11 +476,11 @@ func (x LocalDriverOptions_Type) String() string {
 }
 
 func (LocalDriverOptions_Type) Descriptor() protoreflect.EnumDescriptor {
-	return file_containerz_containerz_proto_enumTypes[8].Descriptor()
+	return file_github_com_openconfig_gnoi_containerz_containerz_proto_enumTypes[8].Descriptor()
 }
 
 func (LocalDriverOptions_Type) Type() protoreflect.EnumType {
-	return &file_containerz_containerz_proto_enumTypes[8]
+	return &file_github_com_openconfig_gnoi_containerz_containerz_proto_enumTypes[8]
 }
 
 func (x LocalDriverOptions_Type) Number() protoreflect.EnumNumber {
@@ -489,29 +489,26 @@ func (x LocalDriverOptions_Type) Number() protoreflect.EnumNumber {
 
 // Deprecated: Use LocalDriverOptions_Type.Descriptor instead.
 func (LocalDriverOptions_Type) EnumDescriptor() ([]byte, []int) {
-	return file_containerz_containerz_proto_rawDescGZIP(), []int{28, 0}
+	return file_github_com_openconfig_gnoi_containerz_containerz_proto_rawDescGZIP(), []int{28, 0}
 }
 
 type DeployRequest struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	// Types that are assignable to Request:
+	state protoimpl.MessageState `protogen:"open.v1"`
+	// Types that are valid to be assigned to Request:
 	//
 	//	*DeployRequest_ImageTransfer
 	//	*DeployRequest_Content
 	//	*DeployRequest_ImageTransferEnd
-	Request isDeployRequest_Request `protobuf_oneof:"request"`
+	Request       isDeployRequest_Request `protobuf_oneof:"request"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *DeployRequest) Reset() {
 	*x = DeployRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_containerz_containerz_proto_msgTypes[0]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_containerz_containerz_proto_msgTypes[0]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *DeployRequest) String() string {
@@ -521,8 +518,8 @@ func (x *DeployRequest) String() string {
 func (*DeployRequest) ProtoMessage() {}
 
 func (x *DeployRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_containerz_containerz_proto_msgTypes[0]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_containerz_containerz_proto_msgTypes[0]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -534,33 +531,39 @@ func (x *DeployRequest) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use DeployRequest.ProtoReflect.Descriptor instead.
 func (*DeployRequest) Descriptor() ([]byte, []int) {
-	return file_containerz_containerz_proto_rawDescGZIP(), []int{0}
+	return file_github_com_openconfig_gnoi_containerz_containerz_proto_rawDescGZIP(), []int{0}
 }
 
-func (m *DeployRequest) GetRequest() isDeployRequest_Request {
-	if m != nil {
-		return m.Request
+func (x *DeployRequest) GetRequest() isDeployRequest_Request {
+	if x != nil {
+		return x.Request
 	}
 	return nil
 }
 
 func (x *DeployRequest) GetImageTransfer() *ImageTransfer {
-	if x, ok := x.GetRequest().(*DeployRequest_ImageTransfer); ok {
-		return x.ImageTransfer
+	if x != nil {
+		if x, ok := x.Request.(*DeployRequest_ImageTransfer); ok {
+			return x.ImageTransfer
+		}
 	}
 	return nil
 }
 
 func (x *DeployRequest) GetContent() []byte {
-	if x, ok := x.GetRequest().(*DeployRequest_Content); ok {
-		return x.Content
+	if x != nil {
+		if x, ok := x.Request.(*DeployRequest_Content); ok {
+			return x.Content
+		}
 	}
 	return nil
 }
 
 func (x *DeployRequest) GetImageTransferEnd() *ImageTransferEnd {
-	if x, ok := x.GetRequest().(*DeployRequest_ImageTransferEnd); ok {
-		return x.ImageTransferEnd
+	if x != nil {
+		if x, ok := x.Request.(*DeployRequest_ImageTransferEnd); ok {
+			return x.ImageTransferEnd
+		}
 	}
 	return nil
 }
@@ -588,24 +591,21 @@ func (*DeployRequest_Content) isDeployRequest_Request() {}
 func (*DeployRequest_ImageTransferEnd) isDeployRequest_Request() {}
 
 type ImageTransfer struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
+	state          protoimpl.MessageState `protogen:"open.v1"`
 	Name           string                 `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	Tag            string                 `protobuf:"bytes,2,opt,name=tag,proto3" json:"tag,omitempty"`
 	ImageSize      uint64                 `protobuf:"varint,3,opt,name=image_size,json=imageSize,proto3" json:"image_size,omitempty"`
 	RemoteDownload *common.RemoteDownload `protobuf:"bytes,4,opt,name=remote_download,json=remoteDownload,proto3" json:"remote_download,omitempty"`
 	IsPlugin       bool                   `protobuf:"varint,5,opt,name=is_plugin,json=isPlugin,proto3" json:"is_plugin,omitempty"`
+	unknownFields  protoimpl.UnknownFields
+	sizeCache      protoimpl.SizeCache
 }
 
 func (x *ImageTransfer) Reset() {
 	*x = ImageTransfer{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_containerz_containerz_proto_msgTypes[1]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_containerz_containerz_proto_msgTypes[1]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *ImageTransfer) String() string {
@@ -615,8 +615,8 @@ func (x *ImageTransfer) String() string {
 func (*ImageTransfer) ProtoMessage() {}
 
 func (x *ImageTransfer) ProtoReflect() protoreflect.Message {
-	mi := &file_containerz_containerz_proto_msgTypes[1]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_containerz_containerz_proto_msgTypes[1]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -628,7 +628,7 @@ func (x *ImageTransfer) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use ImageTransfer.ProtoReflect.Descriptor instead.
 func (*ImageTransfer) Descriptor() ([]byte, []int) {
-	return file_containerz_containerz_proto_rawDescGZIP(), []int{1}
+	return file_github_com_openconfig_gnoi_containerz_containerz_proto_rawDescGZIP(), []int{1}
 }
 
 func (x *ImageTransfer) GetName() string {
@@ -667,18 +667,16 @@ func (x *ImageTransfer) GetIsPlugin() bool {
 }
 
 type ImageTransferEnd struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState `protogen:"open.v1"`
 	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *ImageTransferEnd) Reset() {
 	*x = ImageTransferEnd{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_containerz_containerz_proto_msgTypes[2]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_containerz_containerz_proto_msgTypes[2]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *ImageTransferEnd) String() string {
@@ -688,8 +686,8 @@ func (x *ImageTransferEnd) String() string {
 func (*ImageTransferEnd) ProtoMessage() {}
 
 func (x *ImageTransferEnd) ProtoReflect() protoreflect.Message {
-	mi := &file_containerz_containerz_proto_msgTypes[2]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_containerz_containerz_proto_msgTypes[2]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -701,30 +699,27 @@ func (x *ImageTransferEnd) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use ImageTransferEnd.ProtoReflect.Descriptor instead.
 func (*ImageTransferEnd) Descriptor() ([]byte, []int) {
-	return file_containerz_containerz_proto_rawDescGZIP(), []int{2}
+	return file_github_com_openconfig_gnoi_containerz_containerz_proto_rawDescGZIP(), []int{2}
 }
 
 type DeployResponse struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	// Types that are assignable to Response:
+	state protoimpl.MessageState `protogen:"open.v1"`
+	// Types that are valid to be assigned to Response:
 	//
 	//	*DeployResponse_ImageTransferReady
 	//	*DeployResponse_ImageTransferProgress
 	//	*DeployResponse_ImageTransferSuccess
 	//	*DeployResponse_ImageTransferError
-	Response isDeployResponse_Response `protobuf_oneof:"response"`
+	Response      isDeployResponse_Response `protobuf_oneof:"response"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *DeployResponse) Reset() {
 	*x = DeployResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_containerz_containerz_proto_msgTypes[3]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_containerz_containerz_proto_msgTypes[3]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *DeployResponse) String() string {
@@ -734,8 +729,8 @@ func (x *DeployResponse) String() string {
 func (*DeployResponse) ProtoMessage() {}
 
 func (x *DeployResponse) ProtoReflect() protoreflect.Message {
-	mi := &file_containerz_containerz_proto_msgTypes[3]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_containerz_containerz_proto_msgTypes[3]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -747,40 +742,48 @@ func (x *DeployResponse) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use DeployResponse.ProtoReflect.Descriptor instead.
 func (*DeployResponse) Descriptor() ([]byte, []int) {
-	return file_containerz_containerz_proto_rawDescGZIP(), []int{3}
+	return file_github_com_openconfig_gnoi_containerz_containerz_proto_rawDescGZIP(), []int{3}
 }
 
-func (m *DeployResponse) GetResponse() isDeployResponse_Response {
-	if m != nil {
-		return m.Response
+func (x *DeployResponse) GetResponse() isDeployResponse_Response {
+	if x != nil {
+		return x.Response
 	}
 	return nil
 }
 
 func (x *DeployResponse) GetImageTransferReady() *ImageTransferReady {
-	if x, ok := x.GetResponse().(*DeployResponse_ImageTransferReady); ok {
-		return x.ImageTransferReady
+	if x != nil {
+		if x, ok := x.Response.(*DeployResponse_ImageTransferReady); ok {
+			return x.ImageTransferReady
+		}
 	}
 	return nil
 }
 
 func (x *DeployResponse) GetImageTransferProgress() *ImageTransferProgress {
-	if x, ok := x.GetResponse().(*DeployResponse_ImageTransferProgress); ok {
-		return x.ImageTransferProgress
+	if x != nil {
+		if x, ok := x.Response.(*DeployResponse_ImageTransferProgress); ok {
+			return x.ImageTransferProgress
+		}
 	}
 	return nil
 }
 
 func (x *DeployResponse) GetImageTransferSuccess() *ImageTransferSuccess {
-	if x, ok := x.GetResponse().(*DeployResponse_ImageTransferSuccess); ok {
-		return x.ImageTransferSuccess
+	if x != nil {
+		if x, ok := x.Response.(*DeployResponse_ImageTransferSuccess); ok {
+			return x.ImageTransferSuccess
+		}
 	}
 	return nil
 }
 
 func (x *DeployResponse) GetImageTransferError() *status.Status {
-	if x, ok := x.GetResponse().(*DeployResponse_ImageTransferError); ok {
-		return x.ImageTransferError
+	if x != nil {
+		if x, ok := x.Response.(*DeployResponse_ImageTransferError); ok {
+			return x.ImageTransferError
+		}
 	}
 	return nil
 }
@@ -814,20 +817,17 @@ func (*DeployResponse_ImageTransferSuccess) isDeployResponse_Response() {}
 func (*DeployResponse_ImageTransferError) isDeployResponse_Response() {}
 
 type ImageTransferReady struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	ChunkSize     int32                  `protobuf:"varint,1,opt,name=chunk_size,json=chunkSize,proto3" json:"chunk_size,omitempty"`
 	unknownFields protoimpl.UnknownFields
-
-	ChunkSize int32 `protobuf:"varint,1,opt,name=chunk_size,json=chunkSize,proto3" json:"chunk_size,omitempty"`
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *ImageTransferReady) Reset() {
 	*x = ImageTransferReady{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_containerz_containerz_proto_msgTypes[4]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_containerz_containerz_proto_msgTypes[4]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *ImageTransferReady) String() string {
@@ -837,8 +837,8 @@ func (x *ImageTransferReady) String() string {
 func (*ImageTransferReady) ProtoMessage() {}
 
 func (x *ImageTransferReady) ProtoReflect() protoreflect.Message {
-	mi := &file_containerz_containerz_proto_msgTypes[4]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_containerz_containerz_proto_msgTypes[4]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -850,7 +850,7 @@ func (x *ImageTransferReady) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use ImageTransferReady.ProtoReflect.Descriptor instead.
 func (*ImageTransferReady) Descriptor() ([]byte, []int) {
-	return file_containerz_containerz_proto_rawDescGZIP(), []int{4}
+	return file_github_com_openconfig_gnoi_containerz_containerz_proto_rawDescGZIP(), []int{4}
 }
 
 func (x *ImageTransferReady) GetChunkSize() int32 {
@@ -861,20 +861,17 @@ func (x *ImageTransferReady) GetChunkSize() int32 {
 }
 
 type ImageTransferProgress struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	BytesReceived uint64                 `protobuf:"varint,1,opt,name=bytes_received,json=bytesReceived,proto3" json:"bytes_received,omitempty"`
 	unknownFields protoimpl.UnknownFields
-
-	BytesReceived uint64 `protobuf:"varint,1,opt,name=bytes_received,json=bytesReceived,proto3" json:"bytes_received,omitempty"`
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *ImageTransferProgress) Reset() {
 	*x = ImageTransferProgress{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_containerz_containerz_proto_msgTypes[5]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_containerz_containerz_proto_msgTypes[5]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *ImageTransferProgress) String() string {
@@ -884,8 +881,8 @@ func (x *ImageTransferProgress) String() string {
 func (*ImageTransferProgress) ProtoMessage() {}
 
 func (x *ImageTransferProgress) ProtoReflect() protoreflect.Message {
-	mi := &file_containerz_containerz_proto_msgTypes[5]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_containerz_containerz_proto_msgTypes[5]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -897,7 +894,7 @@ func (x *ImageTransferProgress) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use ImageTransferProgress.ProtoReflect.Descriptor instead.
 func (*ImageTransferProgress) Descriptor() ([]byte, []int) {
-	return file_containerz_containerz_proto_rawDescGZIP(), []int{5}
+	return file_github_com_openconfig_gnoi_containerz_containerz_proto_rawDescGZIP(), []int{5}
 }
 
 func (x *ImageTransferProgress) GetBytesReceived() uint64 {
@@ -908,22 +905,19 @@ func (x *ImageTransferProgress) GetBytesReceived() uint64 {
 }
 
 type ImageTransferSuccess struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Name          string                 `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
+	Tag           string                 `protobuf:"bytes,2,opt,name=tag,proto3" json:"tag,omitempty"`
+	ImageSize     uint64                 `protobuf:"varint,3,opt,name=image_size,json=imageSize,proto3" json:"image_size,omitempty"`
 	unknownFields protoimpl.UnknownFields
-
-	Name      string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
-	Tag       string `protobuf:"bytes,2,opt,name=tag,proto3" json:"tag,omitempty"`
-	ImageSize uint64 `protobuf:"varint,3,opt,name=image_size,json=imageSize,proto3" json:"image_size,omitempty"`
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *ImageTransferSuccess) Reset() {
 	*x = ImageTransferSuccess{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_containerz_containerz_proto_msgTypes[6]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_containerz_containerz_proto_msgTypes[6]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *ImageTransferSuccess) String() string {
@@ -933,8 +927,8 @@ func (x *ImageTransferSuccess) String() string {
 func (*ImageTransferSuccess) ProtoMessage() {}
 
 func (x *ImageTransferSuccess) ProtoReflect() protoreflect.Message {
-	mi := &file_containerz_containerz_proto_msgTypes[6]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_containerz_containerz_proto_msgTypes[6]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -946,7 +940,7 @@ func (x *ImageTransferSuccess) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use ImageTransferSuccess.ProtoReflect.Descriptor instead.
 func (*ImageTransferSuccess) Descriptor() ([]byte, []int) {
-	return file_containerz_containerz_proto_rawDescGZIP(), []int{6}
+	return file_github_com_openconfig_gnoi_containerz_containerz_proto_rawDescGZIP(), []int{6}
 }
 
 func (x *ImageTransferSuccess) GetName() string {
@@ -971,22 +965,19 @@ func (x *ImageTransferSuccess) GetImageSize() uint64 {
 }
 
 type RemoveImageRequest struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Name          string                 `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
+	Tag           string                 `protobuf:"bytes,2,opt,name=tag,proto3" json:"tag,omitempty"`
+	Force         bool                   `protobuf:"varint,3,opt,name=force,proto3" json:"force,omitempty"`
 	unknownFields protoimpl.UnknownFields
-
-	Name  string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
-	Tag   string `protobuf:"bytes,2,opt,name=tag,proto3" json:"tag,omitempty"`
-	Force bool   `protobuf:"varint,3,opt,name=force,proto3" json:"force,omitempty"`
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *RemoveImageRequest) Reset() {
 	*x = RemoveImageRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_containerz_containerz_proto_msgTypes[7]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_containerz_containerz_proto_msgTypes[7]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *RemoveImageRequest) String() string {
@@ -996,8 +987,8 @@ func (x *RemoveImageRequest) String() string {
 func (*RemoveImageRequest) ProtoMessage() {}
 
 func (x *RemoveImageRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_containerz_containerz_proto_msgTypes[7]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_containerz_containerz_proto_msgTypes[7]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -1009,7 +1000,7 @@ func (x *RemoveImageRequest) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use RemoveImageRequest.ProtoReflect.Descriptor instead.
 func (*RemoveImageRequest) Descriptor() ([]byte, []int) {
-	return file_containerz_containerz_proto_rawDescGZIP(), []int{7}
+	return file_github_com_openconfig_gnoi_containerz_containerz_proto_rawDescGZIP(), []int{7}
 }
 
 func (x *RemoveImageRequest) GetName() string {
@@ -1034,21 +1025,18 @@ func (x *RemoveImageRequest) GetForce() bool {
 }
 
 type RemoveImageResponse struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState   `protogen:"open.v1"`
+	Code          RemoveImageResponse_Code `protobuf:"varint,1,opt,name=code,proto3,enum=gnoi.containerz.RemoveImageResponse_Code" json:"code,omitempty"`
+	Detail        string                   `protobuf:"bytes,2,opt,name=detail,proto3" json:"detail,omitempty"`
 	unknownFields protoimpl.UnknownFields
-
-	Code   RemoveImageResponse_Code `protobuf:"varint,1,opt,name=code,proto3,enum=gnoi.containerz.RemoveImageResponse_Code" json:"code,omitempty"`
-	Detail string                   `protobuf:"bytes,2,opt,name=detail,proto3" json:"detail,omitempty"`
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *RemoveImageResponse) Reset() {
 	*x = RemoveImageResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_containerz_containerz_proto_msgTypes[8]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_containerz_containerz_proto_msgTypes[8]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *RemoveImageResponse) String() string {
@@ -1058,8 +1046,8 @@ func (x *RemoveImageResponse) String() string {
 func (*RemoveImageResponse) ProtoMessage() {}
 
 func (x *RemoveImageResponse) ProtoReflect() protoreflect.Message {
-	mi := &file_containerz_containerz_proto_msgTypes[8]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_containerz_containerz_proto_msgTypes[8]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -1071,7 +1059,7 @@ func (x *RemoveImageResponse) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use RemoveImageResponse.ProtoReflect.Descriptor instead.
 func (*RemoveImageResponse) Descriptor() ([]byte, []int) {
-	return file_containerz_containerz_proto_rawDescGZIP(), []int{8}
+	return file_github_com_openconfig_gnoi_containerz_containerz_proto_rawDescGZIP(), []int{8}
 }
 
 func (x *RemoveImageResponse) GetCode() RemoveImageResponse_Code {
@@ -1089,21 +1077,18 @@ func (x *RemoveImageResponse) GetDetail() string {
 }
 
 type RemoveContainerRequest struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Name          string                 `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
+	Force         bool                   `protobuf:"varint,3,opt,name=force,proto3" json:"force,omitempty"`
 	unknownFields protoimpl.UnknownFields
-
-	Name  string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
-	Force bool   `protobuf:"varint,3,opt,name=force,proto3" json:"force,omitempty"`
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *RemoveContainerRequest) Reset() {
 	*x = RemoveContainerRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_containerz_containerz_proto_msgTypes[9]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_containerz_containerz_proto_msgTypes[9]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *RemoveContainerRequest) String() string {
@@ -1113,8 +1098,8 @@ func (x *RemoveContainerRequest) String() string {
 func (*RemoveContainerRequest) ProtoMessage() {}
 
 func (x *RemoveContainerRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_containerz_containerz_proto_msgTypes[9]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_containerz_containerz_proto_msgTypes[9]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -1126,7 +1111,7 @@ func (x *RemoveContainerRequest) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use RemoveContainerRequest.ProtoReflect.Descriptor instead.
 func (*RemoveContainerRequest) Descriptor() ([]byte, []int) {
-	return file_containerz_containerz_proto_rawDescGZIP(), []int{9}
+	return file_github_com_openconfig_gnoi_containerz_containerz_proto_rawDescGZIP(), []int{9}
 }
 
 func (x *RemoveContainerRequest) GetName() string {
@@ -1144,21 +1129,18 @@ func (x *RemoveContainerRequest) GetForce() bool {
 }
 
 type RemoveContainerResponse struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState       `protogen:"open.v1"`
+	Code          RemoveContainerResponse_Code `protobuf:"varint,1,opt,name=code,proto3,enum=gnoi.containerz.RemoveContainerResponse_Code" json:"code,omitempty"`
+	Detail        string                       `protobuf:"bytes,2,opt,name=detail,proto3" json:"detail,omitempty"`
 	unknownFields protoimpl.UnknownFields
-
-	Code   RemoveContainerResponse_Code `protobuf:"varint,1,opt,name=code,proto3,enum=gnoi.containerz.RemoveContainerResponse_Code" json:"code,omitempty"`
-	Detail string                       `protobuf:"bytes,2,opt,name=detail,proto3" json:"detail,omitempty"`
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *RemoveContainerResponse) Reset() {
 	*x = RemoveContainerResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_containerz_containerz_proto_msgTypes[10]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_containerz_containerz_proto_msgTypes[10]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *RemoveContainerResponse) String() string {
@@ -1168,8 +1150,8 @@ func (x *RemoveContainerResponse) String() string {
 func (*RemoveContainerResponse) ProtoMessage() {}
 
 func (x *RemoveContainerResponse) ProtoReflect() protoreflect.Message {
-	mi := &file_containerz_containerz_proto_msgTypes[10]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_containerz_containerz_proto_msgTypes[10]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -1181,7 +1163,7 @@ func (x *RemoveContainerResponse) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use RemoveContainerResponse.ProtoReflect.Descriptor instead.
 func (*RemoveContainerResponse) Descriptor() ([]byte, []int) {
-	return file_containerz_containerz_proto_rawDescGZIP(), []int{10}
+	return file_github_com_openconfig_gnoi_containerz_containerz_proto_rawDescGZIP(), []int{10}
 }
 
 func (x *RemoveContainerResponse) GetCode() RemoveContainerResponse_Code {
@@ -1199,21 +1181,18 @@ func (x *RemoveContainerResponse) GetDetail() string {
 }
 
 type ListImageRequest struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState     `protogen:"open.v1"`
+	Limit         int32                      `protobuf:"varint,1,opt,name=limit,proto3" json:"limit,omitempty"`
+	Filter        []*ListImageRequest_Filter `protobuf:"bytes,3,rep,name=filter,proto3" json:"filter,omitempty"`
 	unknownFields protoimpl.UnknownFields
-
-	Limit  int32                      `protobuf:"varint,1,opt,name=limit,proto3" json:"limit,omitempty"`
-	Filter []*ListImageRequest_Filter `protobuf:"bytes,3,rep,name=filter,proto3" json:"filter,omitempty"`
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *ListImageRequest) Reset() {
 	*x = ListImageRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_containerz_containerz_proto_msgTypes[11]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_containerz_containerz_proto_msgTypes[11]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *ListImageRequest) String() string {
@@ -1223,8 +1202,8 @@ func (x *ListImageRequest) String() string {
 func (*ListImageRequest) ProtoMessage() {}
 
 func (x *ListImageRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_containerz_containerz_proto_msgTypes[11]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_containerz_containerz_proto_msgTypes[11]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -1236,7 +1215,7 @@ func (x *ListImageRequest) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use ListImageRequest.ProtoReflect.Descriptor instead.
 func (*ListImageRequest) Descriptor() ([]byte, []int) {
-	return file_containerz_containerz_proto_rawDescGZIP(), []int{11}
+	return file_github_com_openconfig_gnoi_containerz_containerz_proto_rawDescGZIP(), []int{11}
 }
 
 func (x *ListImageRequest) GetLimit() int32 {
@@ -1254,22 +1233,19 @@ func (x *ListImageRequest) GetFilter() []*ListImageRequest_Filter {
 }
 
 type ListImageResponse struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Id            string                 `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
+	ImageName     string                 `protobuf:"bytes,2,opt,name=image_name,json=imageName,proto3" json:"image_name,omitempty"`
+	Tag           string                 `protobuf:"bytes,3,opt,name=tag,proto3" json:"tag,omitempty"`
 	unknownFields protoimpl.UnknownFields
-
-	Id        string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
-	ImageName string `protobuf:"bytes,2,opt,name=image_name,json=imageName,proto3" json:"image_name,omitempty"`
-	Tag       string `protobuf:"bytes,3,opt,name=tag,proto3" json:"tag,omitempty"`
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *ListImageResponse) Reset() {
 	*x = ListImageResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_containerz_containerz_proto_msgTypes[12]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_containerz_containerz_proto_msgTypes[12]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *ListImageResponse) String() string {
@@ -1279,8 +1255,8 @@ func (x *ListImageResponse) String() string {
 func (*ListImageResponse) ProtoMessage() {}
 
 func (x *ListImageResponse) ProtoReflect() protoreflect.Message {
-	mi := &file_containerz_containerz_proto_msgTypes[12]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_containerz_containerz_proto_msgTypes[12]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -1292,7 +1268,7 @@ func (x *ListImageResponse) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use ListImageResponse.ProtoReflect.Descriptor instead.
 func (*ListImageResponse) Descriptor() ([]byte, []int) {
-	return file_containerz_containerz_proto_rawDescGZIP(), []int{12}
+	return file_github_com_openconfig_gnoi_containerz_containerz_proto_rawDescGZIP(), []int{12}
 }
 
 func (x *ListImageResponse) GetId() string {
@@ -1317,22 +1293,19 @@ func (x *ListImageResponse) GetTag() string {
 }
 
 type ListContainerRequest struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState         `protogen:"open.v1"`
+	All           bool                           `protobuf:"varint,1,opt,name=all,proto3" json:"all,omitempty"`
+	Limit         int32                          `protobuf:"varint,2,opt,name=limit,proto3" json:"limit,omitempty"`
+	Filter        []*ListContainerRequest_Filter `protobuf:"bytes,3,rep,name=filter,proto3" json:"filter,omitempty"`
 	unknownFields protoimpl.UnknownFields
-
-	All    bool                           `protobuf:"varint,1,opt,name=all,proto3" json:"all,omitempty"`
-	Limit  int32                          `protobuf:"varint,2,opt,name=limit,proto3" json:"limit,omitempty"`
-	Filter []*ListContainerRequest_Filter `protobuf:"bytes,3,rep,name=filter,proto3" json:"filter,omitempty"`
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *ListContainerRequest) Reset() {
 	*x = ListContainerRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_containerz_containerz_proto_msgTypes[13]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_containerz_containerz_proto_msgTypes[13]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *ListContainerRequest) String() string {
@@ -1342,8 +1315,8 @@ func (x *ListContainerRequest) String() string {
 func (*ListContainerRequest) ProtoMessage() {}
 
 func (x *ListContainerRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_containerz_containerz_proto_msgTypes[13]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_containerz_containerz_proto_msgTypes[13]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -1355,7 +1328,7 @@ func (x *ListContainerRequest) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use ListContainerRequest.ProtoReflect.Descriptor instead.
 func (*ListContainerRequest) Descriptor() ([]byte, []int) {
-	return file_containerz_containerz_proto_rawDescGZIP(), []int{13}
+	return file_github_com_openconfig_gnoi_containerz_containerz_proto_rawDescGZIP(), []int{13}
 }
 
 func (x *ListContainerRequest) GetAll() bool {
@@ -1380,25 +1353,22 @@ func (x *ListContainerRequest) GetFilter() []*ListContainerRequest_Filter {
 }
 
 type ListContainerResponse struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState       `protogen:"open.v1"`
+	Id            string                       `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
+	Name          string                       `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
+	ImageName     string                       `protobuf:"bytes,3,opt,name=image_name,json=imageName,proto3" json:"image_name,omitempty"`
+	Status        ListContainerResponse_Status `protobuf:"varint,4,opt,name=status,proto3,enum=gnoi.containerz.ListContainerResponse_Status" json:"status,omitempty"`
+	Labels        map[string]string            `protobuf:"bytes,5,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
+	Hash          *types.HashType              `protobuf:"bytes,6,opt,name=hash,proto3" json:"hash,omitempty"`
 	unknownFields protoimpl.UnknownFields
-
-	Id        string                       `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
-	Name      string                       `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
-	ImageName string                       `protobuf:"bytes,3,opt,name=image_name,json=imageName,proto3" json:"image_name,omitempty"`
-	Status    ListContainerResponse_Status `protobuf:"varint,4,opt,name=status,proto3,enum=gnoi.containerz.ListContainerResponse_Status" json:"status,omitempty"`
-	Labels    map[string]string            `protobuf:"bytes,5,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
-	Hash      *types.HashType              `protobuf:"bytes,6,opt,name=hash,proto3" json:"hash,omitempty"`
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *ListContainerResponse) Reset() {
 	*x = ListContainerResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_containerz_containerz_proto_msgTypes[14]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_containerz_containerz_proto_msgTypes[14]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *ListContainerResponse) String() string {
@@ -1408,8 +1378,8 @@ func (x *ListContainerResponse) String() string {
 func (*ListContainerResponse) ProtoMessage() {}
 
 func (x *ListContainerResponse) ProtoReflect() protoreflect.Message {
-	mi := &file_containerz_containerz_proto_msgTypes[14]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_containerz_containerz_proto_msgTypes[14]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -1421,7 +1391,7 @@ func (x *ListContainerResponse) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use ListContainerResponse.ProtoReflect.Descriptor instead.
 func (*ListContainerResponse) Descriptor() ([]byte, []int) {
-	return file_containerz_containerz_proto_rawDescGZIP(), []int{14}
+	return file_github_com_openconfig_gnoi_containerz_containerz_proto_rawDescGZIP(), []int{14}
 }
 
 func (x *ListContainerResponse) GetId() string {
@@ -1467,22 +1437,19 @@ func (x *ListContainerResponse) GetHash() *types.HashType {
 }
 
 type Volume struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Name          string                 `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
+	MountPoint    string                 `protobuf:"bytes,2,opt,name=mount_point,json=mountPoint,proto3" json:"mount_point,omitempty"`
+	ReadOnly      bool                   `protobuf:"varint,3,opt,name=read_only,json=readOnly,proto3" json:"read_only,omitempty"`
 	unknownFields protoimpl.UnknownFields
-
-	Name       string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
-	MountPoint string `protobuf:"bytes,2,opt,name=mount_point,json=mountPoint,proto3" json:"mount_point,omitempty"`
-	ReadOnly   bool   `protobuf:"varint,3,opt,name=read_only,json=readOnly,proto3" json:"read_only,omitempty"`
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *Volume) Reset() {
 	*x = Volume{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_containerz_containerz_proto_msgTypes[15]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_containerz_containerz_proto_msgTypes[15]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *Volume) String() string {
@@ -1492,8 +1459,8 @@ func (x *Volume) String() string {
 func (*Volume) ProtoMessage() {}
 
 func (x *Volume) ProtoReflect() protoreflect.Message {
-	mi := &file_containerz_containerz_proto_msgTypes[15]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_containerz_containerz_proto_msgTypes[15]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -1505,7 +1472,7 @@ func (x *Volume) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use Volume.ProtoReflect.Descriptor instead.
 func (*Volume) Descriptor() ([]byte, []int) {
-	return file_containerz_containerz_proto_rawDescGZIP(), []int{15}
+	return file_github_com_openconfig_gnoi_containerz_containerz_proto_rawDescGZIP(), []int{15}
 }
 
 func (x *Volume) GetName() string {
@@ -1530,32 +1497,29 @@ func (x *Volume) GetReadOnly() bool {
 }
 
 type StartContainerRequest struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState              `protogen:"open.v1"`
+	ImageName     string                              `protobuf:"bytes,1,opt,name=image_name,json=imageName,proto3" json:"image_name,omitempty"`
+	Tag           string                              `protobuf:"bytes,2,opt,name=tag,proto3" json:"tag,omitempty"`
+	Cmd           string                              `protobuf:"bytes,3,opt,name=cmd,proto3" json:"cmd,omitempty"`
+	InstanceName  string                              `protobuf:"bytes,4,opt,name=instance_name,json=instanceName,proto3" json:"instance_name,omitempty"`
+	Ports         []*StartContainerRequest_Port       `protobuf:"bytes,5,rep,name=ports,proto3" json:"ports,omitempty"`
+	Environment   map[string]string                   `protobuf:"bytes,6,rep,name=environment,proto3" json:"environment,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
+	Volumes       []*Volume                           `protobuf:"bytes,7,rep,name=volumes,proto3" json:"volumes,omitempty"`
+	Network       string                              `protobuf:"bytes,8,opt,name=network,proto3" json:"network,omitempty"`
+	Cap           *StartContainerRequest_Capabilities `protobuf:"bytes,9,opt,name=cap,proto3" json:"cap,omitempty"`
+	Restart       *StartContainerRequest_Restart      `protobuf:"bytes,10,opt,name=restart,proto3" json:"restart,omitempty"`
+	RunAs         *StartContainerRequest_RunAs        `protobuf:"bytes,11,opt,name=run_as,json=runAs,proto3" json:"run_as,omitempty"`
+	Labels        map[string]string                   `protobuf:"bytes,12,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
+	Limits        *StartContainerRequest_Limits       `protobuf:"bytes,13,opt,name=limits,proto3" json:"limits,omitempty"`
 	unknownFields protoimpl.UnknownFields
-
-	ImageName    string                              `protobuf:"bytes,1,opt,name=image_name,json=imageName,proto3" json:"image_name,omitempty"`
-	Tag          string                              `protobuf:"bytes,2,opt,name=tag,proto3" json:"tag,omitempty"`
-	Cmd          string                              `protobuf:"bytes,3,opt,name=cmd,proto3" json:"cmd,omitempty"`
-	InstanceName string                              `protobuf:"bytes,4,opt,name=instance_name,json=instanceName,proto3" json:"instance_name,omitempty"`
-	Ports        []*StartContainerRequest_Port       `protobuf:"bytes,5,rep,name=ports,proto3" json:"ports,omitempty"`
-	Environment  map[string]string                   `protobuf:"bytes,6,rep,name=environment,proto3" json:"environment,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
-	Volumes      []*Volume                           `protobuf:"bytes,7,rep,name=volumes,proto3" json:"volumes,omitempty"`
-	Network      string                              `protobuf:"bytes,8,opt,name=network,proto3" json:"network,omitempty"`
-	Cap          *StartContainerRequest_Capabilities `protobuf:"bytes,9,opt,name=cap,proto3" json:"cap,omitempty"`
-	Restart      *StartContainerRequest_Restart      `protobuf:"bytes,10,opt,name=restart,proto3" json:"restart,omitempty"`
-	RunAs        *StartContainerRequest_RunAs        `protobuf:"bytes,11,opt,name=run_as,json=runAs,proto3" json:"run_as,omitempty"`
-	Labels       map[string]string                   `protobuf:"bytes,12,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
-	Limits       *StartContainerRequest_Limits       `protobuf:"bytes,13,opt,name=limits,proto3" json:"limits,omitempty"`
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *StartContainerRequest) Reset() {
 	*x = StartContainerRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_containerz_containerz_proto_msgTypes[16]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_containerz_containerz_proto_msgTypes[16]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *StartContainerRequest) String() string {
@@ -1565,8 +1529,8 @@ func (x *StartContainerRequest) String() string {
 func (*StartContainerRequest) ProtoMessage() {}
 
 func (x *StartContainerRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_containerz_containerz_proto_msgTypes[16]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_containerz_containerz_proto_msgTypes[16]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -1578,7 +1542,7 @@ func (x *StartContainerRequest) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use StartContainerRequest.ProtoReflect.Descriptor instead.
 func (*StartContainerRequest) Descriptor() ([]byte, []int) {
-	return file_containerz_containerz_proto_rawDescGZIP(), []int{16}
+	return file_github_com_openconfig_gnoi_containerz_containerz_proto_rawDescGZIP(), []int{16}
 }
 
 func (x *StartContainerRequest) GetImageName() string {
@@ -1673,24 +1637,21 @@ func (x *StartContainerRequest) GetLimits() *StartContainerRequest_Limits {
 }
 
 type StartContainerResponse struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	// Types that are assignable to Response:
+	state protoimpl.MessageState `protogen:"open.v1"`
+	// Types that are valid to be assigned to Response:
 	//
 	//	*StartContainerResponse_StartOk
 	//	*StartContainerResponse_StartError
-	Response isStartContainerResponse_Response `protobuf_oneof:"response"`
+	Response      isStartContainerResponse_Response `protobuf_oneof:"response"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *StartContainerResponse) Reset() {
 	*x = StartContainerResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_containerz_containerz_proto_msgTypes[17]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_containerz_containerz_proto_msgTypes[17]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *StartContainerResponse) String() string {
@@ -1700,8 +1661,8 @@ func (x *StartContainerResponse) String() string {
 func (*StartContainerResponse) ProtoMessage() {}
 
 func (x *StartContainerResponse) ProtoReflect() protoreflect.Message {
-	mi := &file_containerz_containerz_proto_msgTypes[17]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_containerz_containerz_proto_msgTypes[17]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -1713,26 +1674,30 @@ func (x *StartContainerResponse) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use StartContainerResponse.ProtoReflect.Descriptor instead.
 func (*StartContainerResponse) Descriptor() ([]byte, []int) {
-	return file_containerz_containerz_proto_rawDescGZIP(), []int{17}
+	return file_github_com_openconfig_gnoi_containerz_containerz_proto_rawDescGZIP(), []int{17}
 }
 
-func (m *StartContainerResponse) GetResponse() isStartContainerResponse_Response {
-	if m != nil {
-		return m.Response
+func (x *StartContainerResponse) GetResponse() isStartContainerResponse_Response {
+	if x != nil {
+		return x.Response
 	}
 	return nil
 }
 
 func (x *StartContainerResponse) GetStartOk() *StartOK {
-	if x, ok := x.GetResponse().(*StartContainerResponse_StartOk); ok {
-		return x.StartOk
+	if x != nil {
+		if x, ok := x.Response.(*StartContainerResponse_StartOk); ok {
+			return x.StartOk
+		}
 	}
 	return nil
 }
 
 func (x *StartContainerResponse) GetStartError() *StartError {
-	if x, ok := x.GetResponse().(*StartContainerResponse_StartError); ok {
-		return x.StartError
+	if x != nil {
+		if x, ok := x.Response.(*StartContainerResponse_StartError); ok {
+			return x.StartError
+		}
 	}
 	return nil
 }
@@ -1754,20 +1719,17 @@ func (*StartContainerResponse_StartOk) isStartContainerResponse_Response() {}
 func (*StartContainerResponse_StartError) isStartContainerResponse_Response() {}
 
 type StartOK struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	InstanceName  string                 `protobuf:"bytes,1,opt,name=instance_name,json=instanceName,proto3" json:"instance_name,omitempty"`
 	unknownFields protoimpl.UnknownFields
-
-	InstanceName string `protobuf:"bytes,1,opt,name=instance_name,json=instanceName,proto3" json:"instance_name,omitempty"`
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *StartOK) Reset() {
 	*x = StartOK{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_containerz_containerz_proto_msgTypes[18]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_containerz_containerz_proto_msgTypes[18]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *StartOK) String() string {
@@ -1777,8 +1739,8 @@ func (x *StartOK) String() string {
 func (*StartOK) ProtoMessage() {}
 
 func (x *StartOK) ProtoReflect() protoreflect.Message {
-	mi := &file_containerz_containerz_proto_msgTypes[18]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_containerz_containerz_proto_msgTypes[18]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -1790,7 +1752,7 @@ func (x *StartOK) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use StartOK.ProtoReflect.Descriptor instead.
 func (*StartOK) Descriptor() ([]byte, []int) {
-	return file_containerz_containerz_proto_rawDescGZIP(), []int{18}
+	return file_github_com_openconfig_gnoi_containerz_containerz_proto_rawDescGZIP(), []int{18}
 }
 
 func (x *StartOK) GetInstanceName() string {
@@ -1801,21 +1763,18 @@ func (x *StartOK) GetInstanceName() string {
 }
 
 type StartError struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	ErrorCode     StartError_Code        `protobuf:"varint,1,opt,name=error_code,json=errorCode,proto3,enum=gnoi.containerz.StartError_Code" json:"error_code,omitempty"`
+	Details       string                 `protobuf:"bytes,2,opt,name=details,proto3" json:"details,omitempty"`
 	unknownFields protoimpl.UnknownFields
-
-	ErrorCode StartError_Code `protobuf:"varint,1,opt,name=error_code,json=errorCode,proto3,enum=gnoi.containerz.StartError_Code" json:"error_code,omitempty"`
-	Details   string          `protobuf:"bytes,2,opt,name=details,proto3" json:"details,omitempty"`
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *StartError) Reset() {
 	*x = StartError{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_containerz_containerz_proto_msgTypes[19]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_containerz_containerz_proto_msgTypes[19]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *StartError) String() string {
@@ -1825,8 +1784,8 @@ func (x *StartError) String() string {
 func (*StartError) ProtoMessage() {}
 
 func (x *StartError) ProtoReflect() protoreflect.Message {
-	mi := &file_containerz_containerz_proto_msgTypes[19]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_containerz_containerz_proto_msgTypes[19]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -1838,7 +1797,7 @@ func (x *StartError) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use StartError.ProtoReflect.Descriptor instead.
 func (*StartError) Descriptor() ([]byte, []int) {
-	return file_containerz_containerz_proto_rawDescGZIP(), []int{19}
+	return file_github_com_openconfig_gnoi_containerz_containerz_proto_rawDescGZIP(), []int{19}
 }
 
 func (x *StartError) GetErrorCode() StartError_Code {
@@ -1856,22 +1815,19 @@ func (x *StartError) GetDetails() string {
 }
 
 type StopContainerRequest struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	InstanceName  string                 `protobuf:"bytes,1,opt,name=instance_name,json=instanceName,proto3" json:"instance_name,omitempty"`
+	Force         bool                   `protobuf:"varint,2,opt,name=force,proto3" json:"force,omitempty"`
+	Restart       bool                   `protobuf:"varint,3,opt,name=restart,proto3" json:"restart,omitempty"`
 	unknownFields protoimpl.UnknownFields
-
-	InstanceName string `protobuf:"bytes,1,opt,name=instance_name,json=instanceName,proto3" json:"instance_name,omitempty"`
-	Force        bool   `protobuf:"varint,2,opt,name=force,proto3" json:"force,omitempty"`
-	Restart      bool   `protobuf:"varint,3,opt,name=restart,proto3" json:"restart,omitempty"`
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *StopContainerRequest) Reset() {
 	*x = StopContainerRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_containerz_containerz_proto_msgTypes[20]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_containerz_containerz_proto_msgTypes[20]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *StopContainerRequest) String() string {
@@ -1881,8 +1837,8 @@ func (x *StopContainerRequest) String() string {
 func (*StopContainerRequest) ProtoMessage() {}
 
 func (x *StopContainerRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_containerz_containerz_proto_msgTypes[20]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_containerz_containerz_proto_msgTypes[20]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -1894,7 +1850,7 @@ func (x *StopContainerRequest) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use StopContainerRequest.ProtoReflect.Descriptor instead.
 func (*StopContainerRequest) Descriptor() ([]byte, []int) {
-	return file_containerz_containerz_proto_rawDescGZIP(), []int{20}
+	return file_github_com_openconfig_gnoi_containerz_containerz_proto_rawDescGZIP(), []int{20}
 }
 
 func (x *StopContainerRequest) GetInstanceName() string {
@@ -1919,21 +1875,18 @@ func (x *StopContainerRequest) GetRestart() bool {
 }
 
 type StopContainerResponse struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState     `protogen:"open.v1"`
+	Code          StopContainerResponse_Code `protobuf:"varint,1,opt,name=code,proto3,enum=gnoi.containerz.StopContainerResponse_Code" json:"code,omitempty"`
+	Details       string                     `protobuf:"bytes,2,opt,name=details,proto3" json:"details,omitempty"`
 	unknownFields protoimpl.UnknownFields
-
-	Code    StopContainerResponse_Code `protobuf:"varint,1,opt,name=code,proto3,enum=gnoi.containerz.StopContainerResponse_Code" json:"code,omitempty"`
-	Details string                     `protobuf:"bytes,2,opt,name=details,proto3" json:"details,omitempty"`
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *StopContainerResponse) Reset() {
 	*x = StopContainerResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_containerz_containerz_proto_msgTypes[21]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_containerz_containerz_proto_msgTypes[21]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *StopContainerResponse) String() string {
@@ -1943,8 +1896,8 @@ func (x *StopContainerResponse) String() string {
 func (*StopContainerResponse) ProtoMessage() {}
 
 func (x *StopContainerResponse) ProtoReflect() protoreflect.Message {
-	mi := &file_containerz_containerz_proto_msgTypes[21]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_containerz_containerz_proto_msgTypes[21]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -1956,7 +1909,7 @@ func (x *StopContainerResponse) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use StopContainerResponse.ProtoReflect.Descriptor instead.
 func (*StopContainerResponse) Descriptor() ([]byte, []int) {
-	return file_containerz_containerz_proto_rawDescGZIP(), []int{21}
+	return file_github_com_openconfig_gnoi_containerz_containerz_proto_rawDescGZIP(), []int{21}
 }
 
 func (x *StopContainerResponse) GetCode() StopContainerResponse_Code {
@@ -1974,24 +1927,21 @@ func (x *StopContainerResponse) GetDetails() string {
 }
 
 type UpdateContainerRequest struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	InstanceName  string                 `protobuf:"bytes,1,opt,name=instance_name,json=instanceName,proto3" json:"instance_name,omitempty"`
+	ImageName     string                 `protobuf:"bytes,2,opt,name=image_name,json=imageName,proto3" json:"image_name,omitempty"`
+	ImageTag      string                 `protobuf:"bytes,3,opt,name=image_tag,json=imageTag,proto3" json:"image_tag,omitempty"`
+	Params        *StartContainerRequest `protobuf:"bytes,4,opt,name=params,proto3" json:"params,omitempty"`
+	Async         bool                   `protobuf:"varint,5,opt,name=async,proto3" json:"async,omitempty"`
 	unknownFields protoimpl.UnknownFields
-
-	InstanceName string                 `protobuf:"bytes,1,opt,name=instance_name,json=instanceName,proto3" json:"instance_name,omitempty"`
-	ImageName    string                 `protobuf:"bytes,2,opt,name=image_name,json=imageName,proto3" json:"image_name,omitempty"`
-	ImageTag     string                 `protobuf:"bytes,3,opt,name=image_tag,json=imageTag,proto3" json:"image_tag,omitempty"`
-	Params       *StartContainerRequest `protobuf:"bytes,4,opt,name=params,proto3" json:"params,omitempty"`
-	Async        bool                   `protobuf:"varint,5,opt,name=async,proto3" json:"async,omitempty"`
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *UpdateContainerRequest) Reset() {
 	*x = UpdateContainerRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_containerz_containerz_proto_msgTypes[22]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_containerz_containerz_proto_msgTypes[22]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *UpdateContainerRequest) String() string {
@@ -2001,8 +1951,8 @@ func (x *UpdateContainerRequest) String() string {
 func (*UpdateContainerRequest) ProtoMessage() {}
 
 func (x *UpdateContainerRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_containerz_containerz_proto_msgTypes[22]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_containerz_containerz_proto_msgTypes[22]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -2014,7 +1964,7 @@ func (x *UpdateContainerRequest) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use UpdateContainerRequest.ProtoReflect.Descriptor instead.
 func (*UpdateContainerRequest) Descriptor() ([]byte, []int) {
-	return file_containerz_containerz_proto_rawDescGZIP(), []int{22}
+	return file_github_com_openconfig_gnoi_containerz_containerz_proto_rawDescGZIP(), []int{22}
 }
 
 func (x *UpdateContainerRequest) GetInstanceName() string {
@@ -2053,24 +2003,21 @@ func (x *UpdateContainerRequest) GetAsync() bool {
 }
 
 type UpdateContainerResponse struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	// Types that are assignable to Response:
+	state protoimpl.MessageState `protogen:"open.v1"`
+	// Types that are valid to be assigned to Response:
 	//
 	//	*UpdateContainerResponse_UpdateOk
 	//	*UpdateContainerResponse_UpdateError
-	Response isUpdateContainerResponse_Response `protobuf_oneof:"response"`
+	Response      isUpdateContainerResponse_Response `protobuf_oneof:"response"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *UpdateContainerResponse) Reset() {
 	*x = UpdateContainerResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_containerz_containerz_proto_msgTypes[23]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_containerz_containerz_proto_msgTypes[23]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *UpdateContainerResponse) String() string {
@@ -2080,8 +2027,8 @@ func (x *UpdateContainerResponse) String() string {
 func (*UpdateContainerResponse) ProtoMessage() {}
 
 func (x *UpdateContainerResponse) ProtoReflect() protoreflect.Message {
-	mi := &file_containerz_containerz_proto_msgTypes[23]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_containerz_containerz_proto_msgTypes[23]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -2093,26 +2040,30 @@ func (x *UpdateContainerResponse) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use UpdateContainerResponse.ProtoReflect.Descriptor instead.
 func (*UpdateContainerResponse) Descriptor() ([]byte, []int) {
-	return file_containerz_containerz_proto_rawDescGZIP(), []int{23}
+	return file_github_com_openconfig_gnoi_containerz_containerz_proto_rawDescGZIP(), []int{23}
 }
 
-func (m *UpdateContainerResponse) GetResponse() isUpdateContainerResponse_Response {
-	if m != nil {
-		return m.Response
+func (x *UpdateContainerResponse) GetResponse() isUpdateContainerResponse_Response {
+	if x != nil {
+		return x.Response
 	}
 	return nil
 }
 
 func (x *UpdateContainerResponse) GetUpdateOk() *UpdateOK {
-	if x, ok := x.GetResponse().(*UpdateContainerResponse_UpdateOk); ok {
-		return x.UpdateOk
+	if x != nil {
+		if x, ok := x.Response.(*UpdateContainerResponse_UpdateOk); ok {
+			return x.UpdateOk
+		}
 	}
 	return nil
 }
 
 func (x *UpdateContainerResponse) GetUpdateError() *UpdateError {
-	if x, ok := x.GetResponse().(*UpdateContainerResponse_UpdateError); ok {
-		return x.UpdateError
+	if x != nil {
+		if x, ok := x.Response.(*UpdateContainerResponse_UpdateError); ok {
+			return x.UpdateError
+		}
 	}
 	return nil
 }
@@ -2134,21 +2085,18 @@ func (*UpdateContainerResponse_UpdateOk) isUpdateContainerResponse_Response() {}
 func (*UpdateContainerResponse_UpdateError) isUpdateContainerResponse_Response() {}
 
 type UpdateOK struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	InstanceName  string                 `protobuf:"bytes,1,opt,name=instance_name,json=instanceName,proto3" json:"instance_name,omitempty"`
+	IsAsync       bool                   `protobuf:"varint,2,opt,name=is_async,json=isAsync,proto3" json:"is_async,omitempty"`
 	unknownFields protoimpl.UnknownFields
-
-	InstanceName string `protobuf:"bytes,1,opt,name=instance_name,json=instanceName,proto3" json:"instance_name,omitempty"`
-	IsAsync      bool   `protobuf:"varint,2,opt,name=is_async,json=isAsync,proto3" json:"is_async,omitempty"`
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *UpdateOK) Reset() {
 	*x = UpdateOK{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_containerz_containerz_proto_msgTypes[24]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_containerz_containerz_proto_msgTypes[24]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *UpdateOK) String() string {
@@ -2158,8 +2106,8 @@ func (x *UpdateOK) String() string {
 func (*UpdateOK) ProtoMessage() {}
 
 func (x *UpdateOK) ProtoReflect() protoreflect.Message {
-	mi := &file_containerz_containerz_proto_msgTypes[24]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_containerz_containerz_proto_msgTypes[24]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -2171,7 +2119,7 @@ func (x *UpdateOK) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use UpdateOK.ProtoReflect.Descriptor instead.
 func (*UpdateOK) Descriptor() ([]byte, []int) {
-	return file_containerz_containerz_proto_rawDescGZIP(), []int{24}
+	return file_github_com_openconfig_gnoi_containerz_containerz_proto_rawDescGZIP(), []int{24}
 }
 
 func (x *UpdateOK) GetInstanceName() string {
@@ -2189,21 +2137,18 @@ func (x *UpdateOK) GetIsAsync() bool {
 }
 
 type UpdateError struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	ErrorCode     UpdateError_Code       `protobuf:"varint,1,opt,name=error_code,json=errorCode,proto3,enum=gnoi.containerz.UpdateError_Code" json:"error_code,omitempty"`
+	Details       string                 `protobuf:"bytes,2,opt,name=details,proto3" json:"details,omitempty"`
 	unknownFields protoimpl.UnknownFields
-
-	ErrorCode UpdateError_Code `protobuf:"varint,1,opt,name=error_code,json=errorCode,proto3,enum=gnoi.containerz.UpdateError_Code" json:"error_code,omitempty"`
-	Details   string           `protobuf:"bytes,2,opt,name=details,proto3" json:"details,omitempty"`
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *UpdateError) Reset() {
 	*x = UpdateError{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_containerz_containerz_proto_msgTypes[25]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_containerz_containerz_proto_msgTypes[25]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *UpdateError) String() string {
@@ -2213,8 +2158,8 @@ func (x *UpdateError) String() string {
 func (*UpdateError) ProtoMessage() {}
 
 func (x *UpdateError) ProtoReflect() protoreflect.Message {
-	mi := &file_containerz_containerz_proto_msgTypes[25]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_containerz_containerz_proto_msgTypes[25]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -2226,7 +2171,7 @@ func (x *UpdateError) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use UpdateError.ProtoReflect.Descriptor instead.
 func (*UpdateError) Descriptor() ([]byte, []int) {
-	return file_containerz_containerz_proto_rawDescGZIP(), []int{25}
+	return file_github_com_openconfig_gnoi_containerz_containerz_proto_rawDescGZIP(), []int{25}
 }
 
 func (x *UpdateError) GetErrorCode() UpdateError_Code {
@@ -2244,21 +2189,18 @@ func (x *UpdateError) GetDetails() string {
 }
 
 type LogRequest struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	InstanceName  string                 `protobuf:"bytes,1,opt,name=instance_name,json=instanceName,proto3" json:"instance_name,omitempty"`
+	Follow        bool                   `protobuf:"varint,2,opt,name=follow,proto3" json:"follow,omitempty"`
 	unknownFields protoimpl.UnknownFields
-
-	InstanceName string `protobuf:"bytes,1,opt,name=instance_name,json=instanceName,proto3" json:"instance_name,omitempty"`
-	Follow       bool   `protobuf:"varint,2,opt,name=follow,proto3" json:"follow,omitempty"`
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *LogRequest) Reset() {
 	*x = LogRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_containerz_containerz_proto_msgTypes[26]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_containerz_containerz_proto_msgTypes[26]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *LogRequest) String() string {
@@ -2268,8 +2210,8 @@ func (x *LogRequest) String() string {
 func (*LogRequest) ProtoMessage() {}
 
 func (x *LogRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_containerz_containerz_proto_msgTypes[26]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_containerz_containerz_proto_msgTypes[26]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -2281,7 +2223,7 @@ func (x *LogRequest) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use LogRequest.ProtoReflect.Descriptor instead.
 func (*LogRequest) Descriptor() ([]byte, []int) {
-	return file_containerz_containerz_proto_rawDescGZIP(), []int{26}
+	return file_github_com_openconfig_gnoi_containerz_containerz_proto_rawDescGZIP(), []int{26}
 }
 
 func (x *LogRequest) GetInstanceName() string {
@@ -2299,20 +2241,17 @@ func (x *LogRequest) GetFollow() bool {
 }
 
 type LogResponse struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Msg           string                 `protobuf:"bytes,1,opt,name=msg,proto3" json:"msg,omitempty"`
 	unknownFields protoimpl.UnknownFields
-
-	Msg string `protobuf:"bytes,1,opt,name=msg,proto3" json:"msg,omitempty"`
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *LogResponse) Reset() {
 	*x = LogResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_containerz_containerz_proto_msgTypes[27]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_containerz_containerz_proto_msgTypes[27]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *LogResponse) String() string {
@@ -2322,8 +2261,8 @@ func (x *LogResponse) String() string {
 func (*LogResponse) ProtoMessage() {}
 
 func (x *LogResponse) ProtoReflect() protoreflect.Message {
-	mi := &file_containerz_containerz_proto_msgTypes[27]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_containerz_containerz_proto_msgTypes[27]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -2335,7 +2274,7 @@ func (x *LogResponse) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use LogResponse.ProtoReflect.Descriptor instead.
 func (*LogResponse) Descriptor() ([]byte, []int) {
-	return file_containerz_containerz_proto_rawDescGZIP(), []int{27}
+	return file_github_com_openconfig_gnoi_containerz_containerz_proto_rawDescGZIP(), []int{27}
 }
 
 func (x *LogResponse) GetMsg() string {
@@ -2346,22 +2285,19 @@ func (x *LogResponse) GetMsg() string {
 }
 
 type LocalDriverOptions struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState  `protogen:"open.v1"`
+	Type          LocalDriverOptions_Type `protobuf:"varint,1,opt,name=type,proto3,enum=gnoi.containerz.LocalDriverOptions_Type" json:"type,omitempty"`
+	Options       []string                `protobuf:"bytes,2,rep,name=options,proto3" json:"options,omitempty"`
+	Mountpoint    string                  `protobuf:"bytes,3,opt,name=mountpoint,proto3" json:"mountpoint,omitempty"`
 	unknownFields protoimpl.UnknownFields
-
-	Type       LocalDriverOptions_Type `protobuf:"varint,1,opt,name=type,proto3,enum=gnoi.containerz.LocalDriverOptions_Type" json:"type,omitempty"`
-	Options    []string                `protobuf:"bytes,2,rep,name=options,proto3" json:"options,omitempty"`
-	Mountpoint string                  `protobuf:"bytes,3,opt,name=mountpoint,proto3" json:"mountpoint,omitempty"`
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *LocalDriverOptions) Reset() {
 	*x = LocalDriverOptions{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_containerz_containerz_proto_msgTypes[28]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_containerz_containerz_proto_msgTypes[28]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *LocalDriverOptions) String() string {
@@ -2371,8 +2307,8 @@ func (x *LocalDriverOptions) String() string {
 func (*LocalDriverOptions) ProtoMessage() {}
 
 func (x *LocalDriverOptions) ProtoReflect() protoreflect.Message {
-	mi := &file_containerz_containerz_proto_msgTypes[28]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_containerz_containerz_proto_msgTypes[28]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -2384,7 +2320,7 @@ func (x *LocalDriverOptions) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use LocalDriverOptions.ProtoReflect.Descriptor instead.
 func (*LocalDriverOptions) Descriptor() ([]byte, []int) {
-	return file_containerz_containerz_proto_rawDescGZIP(), []int{28}
+	return file_github_com_openconfig_gnoi_containerz_containerz_proto_rawDescGZIP(), []int{28}
 }
 
 func (x *LocalDriverOptions) GetType() LocalDriverOptions_Type {
@@ -2409,26 +2345,23 @@ func (x *LocalDriverOptions) GetMountpoint() string {
 }
 
 type CreateVolumeRequest struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	Name   string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
-	Driver Driver `protobuf:"varint,2,opt,name=driver,proto3,enum=gnoi.containerz.Driver" json:"driver,omitempty"`
-	// Types that are assignable to Options:
+	state  protoimpl.MessageState `protogen:"open.v1"`
+	Name   string                 `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
+	Driver Driver                 `protobuf:"varint,2,opt,name=driver,proto3,enum=gnoi.containerz.Driver" json:"driver,omitempty"`
+	// Types that are valid to be assigned to Options:
 	//
 	//	*CreateVolumeRequest_LocalMountOptions
-	Options isCreateVolumeRequest_Options `protobuf_oneof:"options"`
-	Labels  map[string]string             `protobuf:"bytes,4,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
+	Options       isCreateVolumeRequest_Options `protobuf_oneof:"options"`
+	Labels        map[string]string             `protobuf:"bytes,4,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *CreateVolumeRequest) Reset() {
 	*x = CreateVolumeRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_containerz_containerz_proto_msgTypes[29]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_containerz_containerz_proto_msgTypes[29]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *CreateVolumeRequest) String() string {
@@ -2438,8 +2371,8 @@ func (x *CreateVolumeRequest) String() string {
 func (*CreateVolumeRequest) ProtoMessage() {}
 
 func (x *CreateVolumeRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_containerz_containerz_proto_msgTypes[29]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_containerz_containerz_proto_msgTypes[29]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -2451,7 +2384,7 @@ func (x *CreateVolumeRequest) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use CreateVolumeRequest.ProtoReflect.Descriptor instead.
 func (*CreateVolumeRequest) Descriptor() ([]byte, []int) {
-	return file_containerz_containerz_proto_rawDescGZIP(), []int{29}
+	return file_github_com_openconfig_gnoi_containerz_containerz_proto_rawDescGZIP(), []int{29}
 }
 
 func (x *CreateVolumeRequest) GetName() string {
@@ -2468,16 +2401,18 @@ func (x *CreateVolumeRequest) GetDriver() Driver {
 	return Driver_DS_UNSPECIFIED
 }
 
-func (m *CreateVolumeRequest) GetOptions() isCreateVolumeRequest_Options {
-	if m != nil {
-		return m.Options
+func (x *CreateVolumeRequest) GetOptions() isCreateVolumeRequest_Options {
+	if x != nil {
+		return x.Options
 	}
 	return nil
 }
 
 func (x *CreateVolumeRequest) GetLocalMountOptions() *LocalDriverOptions {
-	if x, ok := x.GetOptions().(*CreateVolumeRequest_LocalMountOptions); ok {
-		return x.LocalMountOptions
+	if x != nil {
+		if x, ok := x.Options.(*CreateVolumeRequest_LocalMountOptions); ok {
+			return x.LocalMountOptions
+		}
 	}
 	return nil
 }
@@ -2500,20 +2435,17 @@ type CreateVolumeRequest_LocalMountOptions struct {
 func (*CreateVolumeRequest_LocalMountOptions) isCreateVolumeRequest_Options() {}
 
 type CreateVolumeResponse struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Name          string                 `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	unknownFields protoimpl.UnknownFields
-
-	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *CreateVolumeResponse) Reset() {
 	*x = CreateVolumeResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_containerz_containerz_proto_msgTypes[30]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_containerz_containerz_proto_msgTypes[30]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *CreateVolumeResponse) String() string {
@@ -2523,8 +2455,8 @@ func (x *CreateVolumeResponse) String() string {
 func (*CreateVolumeResponse) ProtoMessage() {}
 
 func (x *CreateVolumeResponse) ProtoReflect() protoreflect.Message {
-	mi := &file_containerz_containerz_proto_msgTypes[30]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_containerz_containerz_proto_msgTypes[30]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -2536,7 +2468,7 @@ func (x *CreateVolumeResponse) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use CreateVolumeResponse.ProtoReflect.Descriptor instead.
 func (*CreateVolumeResponse) Descriptor() ([]byte, []int) {
-	return file_containerz_containerz_proto_rawDescGZIP(), []int{30}
+	return file_github_com_openconfig_gnoi_containerz_containerz_proto_rawDescGZIP(), []int{30}
 }
 
 func (x *CreateVolumeResponse) GetName() string {
@@ -2547,21 +2479,18 @@ func (x *CreateVolumeResponse) GetName() string {
 }
 
 type RemoveVolumeRequest struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Name          string                 `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
+	Force         bool                   `protobuf:"varint,2,opt,name=force,proto3" json:"force,omitempty"`
 	unknownFields protoimpl.UnknownFields
-
-	Name  string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
-	Force bool   `protobuf:"varint,2,opt,name=force,proto3" json:"force,omitempty"`
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *RemoveVolumeRequest) Reset() {
 	*x = RemoveVolumeRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_containerz_containerz_proto_msgTypes[31]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_containerz_containerz_proto_msgTypes[31]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *RemoveVolumeRequest) String() string {
@@ -2571,8 +2500,8 @@ func (x *RemoveVolumeRequest) String() string {
 func (*RemoveVolumeRequest) ProtoMessage() {}
 
 func (x *RemoveVolumeRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_containerz_containerz_proto_msgTypes[31]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_containerz_containerz_proto_msgTypes[31]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -2584,7 +2513,7 @@ func (x *RemoveVolumeRequest) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use RemoveVolumeRequest.ProtoReflect.Descriptor instead.
 func (*RemoveVolumeRequest) Descriptor() ([]byte, []int) {
-	return file_containerz_containerz_proto_rawDescGZIP(), []int{31}
+	return file_github_com_openconfig_gnoi_containerz_containerz_proto_rawDescGZIP(), []int{31}
 }
 
 func (x *RemoveVolumeRequest) GetName() string {
@@ -2602,18 +2531,16 @@ func (x *RemoveVolumeRequest) GetForce() bool {
 }
 
 type RemoveVolumeResponse struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState `protogen:"open.v1"`
 	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *RemoveVolumeResponse) Reset() {
 	*x = RemoveVolumeResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_containerz_containerz_proto_msgTypes[32]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_containerz_containerz_proto_msgTypes[32]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *RemoveVolumeResponse) String() string {
@@ -2623,8 +2550,8 @@ func (x *RemoveVolumeResponse) String() string {
 func (*RemoveVolumeResponse) ProtoMessage() {}
 
 func (x *RemoveVolumeResponse) ProtoReflect() protoreflect.Message {
-	mi := &file_containerz_containerz_proto_msgTypes[32]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_containerz_containerz_proto_msgTypes[32]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -2636,24 +2563,21 @@ func (x *RemoveVolumeResponse) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use RemoveVolumeResponse.ProtoReflect.Descriptor instead.
 func (*RemoveVolumeResponse) Descriptor() ([]byte, []int) {
-	return file_containerz_containerz_proto_rawDescGZIP(), []int{32}
+	return file_github_com_openconfig_gnoi_containerz_containerz_proto_rawDescGZIP(), []int{32}
 }
 
 type ListVolumeRequest struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState      `protogen:"open.v1"`
+	Filter        []*ListVolumeRequest_Filter `protobuf:"bytes,1,rep,name=filter,proto3" json:"filter,omitempty"`
 	unknownFields protoimpl.UnknownFields
-
-	Filter []*ListVolumeRequest_Filter `protobuf:"bytes,1,rep,name=filter,proto3" json:"filter,omitempty"`
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *ListVolumeRequest) Reset() {
 	*x = ListVolumeRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_containerz_containerz_proto_msgTypes[33]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_containerz_containerz_proto_msgTypes[33]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *ListVolumeRequest) String() string {
@@ -2663,8 +2587,8 @@ func (x *ListVolumeRequest) String() string {
 func (*ListVolumeRequest) ProtoMessage() {}
 
 func (x *ListVolumeRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_containerz_containerz_proto_msgTypes[33]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_containerz_containerz_proto_msgTypes[33]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -2676,7 +2600,7 @@ func (x *ListVolumeRequest) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use ListVolumeRequest.ProtoReflect.Descriptor instead.
 func (*ListVolumeRequest) Descriptor() ([]byte, []int) {
-	return file_containerz_containerz_proto_rawDescGZIP(), []int{33}
+	return file_github_com_openconfig_gnoi_containerz_containerz_proto_rawDescGZIP(), []int{33}
 }
 
 func (x *ListVolumeRequest) GetFilter() []*ListVolumeRequest_Filter {
@@ -2687,24 +2611,21 @@ func (x *ListVolumeRequest) GetFilter() []*ListVolumeRequest_Filter {
 }
 
 type ListVolumeResponse struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Name          string                 `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
+	Created       *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=created,proto3" json:"created,omitempty"`
+	Driver        string                 `protobuf:"bytes,3,opt,name=driver,proto3" json:"driver,omitempty"`
+	Options       map[string]string      `protobuf:"bytes,4,rep,name=options,proto3" json:"options,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
+	Labels        map[string]string      `protobuf:"bytes,5,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
 	unknownFields protoimpl.UnknownFields
-
-	Name    string                 `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
-	Created *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=created,proto3" json:"created,omitempty"`
-	Driver  string                 `protobuf:"bytes,3,opt,name=driver,proto3" json:"driver,omitempty"`
-	Options map[string]string      `protobuf:"bytes,4,rep,name=options,proto3" json:"options,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
-	Labels  map[string]string      `protobuf:"bytes,5,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *ListVolumeResponse) Reset() {
 	*x = ListVolumeResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_containerz_containerz_proto_msgTypes[34]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_containerz_containerz_proto_msgTypes[34]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *ListVolumeResponse) String() string {
@@ -2714,8 +2635,8 @@ func (x *ListVolumeResponse) String() string {
 func (*ListVolumeResponse) ProtoMessage() {}
 
 func (x *ListVolumeResponse) ProtoReflect() protoreflect.Message {
-	mi := &file_containerz_containerz_proto_msgTypes[34]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_containerz_containerz_proto_msgTypes[34]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -2727,7 +2648,7 @@ func (x *ListVolumeResponse) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use ListVolumeResponse.ProtoReflect.Descriptor instead.
 func (*ListVolumeResponse) Descriptor() ([]byte, []int) {
-	return file_containerz_containerz_proto_rawDescGZIP(), []int{34}
+	return file_github_com_openconfig_gnoi_containerz_containerz_proto_rawDescGZIP(), []int{34}
 }
 
 func (x *ListVolumeResponse) GetName() string {
@@ -2766,22 +2687,19 @@ func (x *ListVolumeResponse) GetLabels() map[string]string {
 }
 
 type StartPluginRequest struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Name          string                 `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
+	InstanceName  string                 `protobuf:"bytes,2,opt,name=instance_name,json=instanceName,proto3" json:"instance_name,omitempty"`
+	Config        string                 `protobuf:"bytes,3,opt,name=config,proto3" json:"config,omitempty"`
 	unknownFields protoimpl.UnknownFields
-
-	Name         string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
-	InstanceName string `protobuf:"bytes,2,opt,name=instance_name,json=instanceName,proto3" json:"instance_name,omitempty"`
-	Config       string `protobuf:"bytes,3,opt,name=config,proto3" json:"config,omitempty"`
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *StartPluginRequest) Reset() {
 	*x = StartPluginRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_containerz_containerz_proto_msgTypes[35]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_containerz_containerz_proto_msgTypes[35]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *StartPluginRequest) String() string {
@@ -2791,8 +2709,8 @@ func (x *StartPluginRequest) String() string {
 func (*StartPluginRequest) ProtoMessage() {}
 
 func (x *StartPluginRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_containerz_containerz_proto_msgTypes[35]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_containerz_containerz_proto_msgTypes[35]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -2804,7 +2722,7 @@ func (x *StartPluginRequest) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use StartPluginRequest.ProtoReflect.Descriptor instead.
 func (*StartPluginRequest) Descriptor() ([]byte, []int) {
-	return file_containerz_containerz_proto_rawDescGZIP(), []int{35}
+	return file_github_com_openconfig_gnoi_containerz_containerz_proto_rawDescGZIP(), []int{35}
 }
 
 func (x *StartPluginRequest) GetName() string {
@@ -2829,20 +2747,17 @@ func (x *StartPluginRequest) GetConfig() string {
 }
 
 type StartPluginResponse struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	InstanceName  string                 `protobuf:"bytes,1,opt,name=instance_name,json=instanceName,proto3" json:"instance_name,omitempty"`
 	unknownFields protoimpl.UnknownFields
-
-	InstanceName string `protobuf:"bytes,1,opt,name=instance_name,json=instanceName,proto3" json:"instance_name,omitempty"`
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *StartPluginResponse) Reset() {
 	*x = StartPluginResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_containerz_containerz_proto_msgTypes[36]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_containerz_containerz_proto_msgTypes[36]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *StartPluginResponse) String() string {
@@ -2852,8 +2767,8 @@ func (x *StartPluginResponse) String() string {
 func (*StartPluginResponse) ProtoMessage() {}
 
 func (x *StartPluginResponse) ProtoReflect() protoreflect.Message {
-	mi := &file_containerz_containerz_proto_msgTypes[36]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_containerz_containerz_proto_msgTypes[36]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -2865,7 +2780,7 @@ func (x *StartPluginResponse) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use StartPluginResponse.ProtoReflect.Descriptor instead.
 func (*StartPluginResponse) Descriptor() ([]byte, []int) {
-	return file_containerz_containerz_proto_rawDescGZIP(), []int{36}
+	return file_github_com_openconfig_gnoi_containerz_containerz_proto_rawDescGZIP(), []int{36}
 }
 
 func (x *StartPluginResponse) GetInstanceName() string {
@@ -2876,20 +2791,17 @@ func (x *StartPluginResponse) GetInstanceName() string {
 }
 
 type StopPluginRequest struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	InstanceName  string                 `protobuf:"bytes,1,opt,name=instance_name,json=instanceName,proto3" json:"instance_name,omitempty"`
 	unknownFields protoimpl.UnknownFields
-
-	InstanceName string `protobuf:"bytes,1,opt,name=instance_name,json=instanceName,proto3" json:"instance_name,omitempty"`
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *StopPluginRequest) Reset() {
 	*x = StopPluginRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_containerz_containerz_proto_msgTypes[37]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_containerz_containerz_proto_msgTypes[37]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *StopPluginRequest) String() string {
@@ -2899,8 +2811,8 @@ func (x *StopPluginRequest) String() string {
 func (*StopPluginRequest) ProtoMessage() {}
 
 func (x *StopPluginRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_containerz_containerz_proto_msgTypes[37]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_containerz_containerz_proto_msgTypes[37]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -2912,7 +2824,7 @@ func (x *StopPluginRequest) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use StopPluginRequest.ProtoReflect.Descriptor instead.
 func (*StopPluginRequest) Descriptor() ([]byte, []int) {
-	return file_containerz_containerz_proto_rawDescGZIP(), []int{37}
+	return file_github_com_openconfig_gnoi_containerz_containerz_proto_rawDescGZIP(), []int{37}
 }
 
 func (x *StopPluginRequest) GetInstanceName() string {
@@ -2923,18 +2835,16 @@ func (x *StopPluginRequest) GetInstanceName() string {
 }
 
 type StopPluginResponse struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState `protogen:"open.v1"`
 	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *StopPluginResponse) Reset() {
 	*x = StopPluginResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_containerz_containerz_proto_msgTypes[38]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_containerz_containerz_proto_msgTypes[38]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *StopPluginResponse) String() string {
@@ -2944,8 +2854,8 @@ func (x *StopPluginResponse) String() string {
 func (*StopPluginResponse) ProtoMessage() {}
 
 func (x *StopPluginResponse) ProtoReflect() protoreflect.Message {
-	mi := &file_containerz_containerz_proto_msgTypes[38]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_containerz_containerz_proto_msgTypes[38]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -2957,24 +2867,21 @@ func (x *StopPluginResponse) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use StopPluginResponse.ProtoReflect.Descriptor instead.
 func (*StopPluginResponse) Descriptor() ([]byte, []int) {
-	return file_containerz_containerz_proto_rawDescGZIP(), []int{38}
+	return file_github_com_openconfig_gnoi_containerz_containerz_proto_rawDescGZIP(), []int{38}
 }
 
 type ListPluginsRequest struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	InstanceName  string                 `protobuf:"bytes,1,opt,name=instance_name,json=instanceName,proto3" json:"instance_name,omitempty"`
 	unknownFields protoimpl.UnknownFields
-
-	InstanceName string `protobuf:"bytes,1,opt,name=instance_name,json=instanceName,proto3" json:"instance_name,omitempty"`
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *ListPluginsRequest) Reset() {
 	*x = ListPluginsRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_containerz_containerz_proto_msgTypes[39]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_containerz_containerz_proto_msgTypes[39]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *ListPluginsRequest) String() string {
@@ -2984,8 +2891,8 @@ func (x *ListPluginsRequest) String() string {
 func (*ListPluginsRequest) ProtoMessage() {}
 
 func (x *ListPluginsRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_containerz_containerz_proto_msgTypes[39]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_containerz_containerz_proto_msgTypes[39]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -2997,7 +2904,7 @@ func (x *ListPluginsRequest) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use ListPluginsRequest.ProtoReflect.Descriptor instead.
 func (*ListPluginsRequest) Descriptor() ([]byte, []int) {
-	return file_containerz_containerz_proto_rawDescGZIP(), []int{39}
+	return file_github_com_openconfig_gnoi_containerz_containerz_proto_rawDescGZIP(), []int{39}
 }
 
 func (x *ListPluginsRequest) GetInstanceName() string {
@@ -3008,23 +2915,20 @@ func (x *ListPluginsRequest) GetInstanceName() string {
 }
 
 type Plugin struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Id            string                 `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
+	InstanceName  string                 `protobuf:"bytes,2,opt,name=instance_name,json=instanceName,proto3" json:"instance_name,omitempty"`
+	Hash          *types.HashType        `protobuf:"bytes,3,opt,name=hash,proto3" json:"hash,omitempty"`
+	Config        string                 `protobuf:"bytes,4,opt,name=config,proto3" json:"config,omitempty"`
 	unknownFields protoimpl.UnknownFields
-
-	Id           string          `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
-	InstanceName string          `protobuf:"bytes,2,opt,name=instance_name,json=instanceName,proto3" json:"instance_name,omitempty"`
-	Hash         *types.HashType `protobuf:"bytes,3,opt,name=hash,proto3" json:"hash,omitempty"`
-	Config       string          `protobuf:"bytes,4,opt,name=config,proto3" json:"config,omitempty"`
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *Plugin) Reset() {
 	*x = Plugin{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_containerz_containerz_proto_msgTypes[40]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_containerz_containerz_proto_msgTypes[40]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *Plugin) String() string {
@@ -3034,8 +2938,8 @@ func (x *Plugin) String() string {
 func (*Plugin) ProtoMessage() {}
 
 func (x *Plugin) ProtoReflect() protoreflect.Message {
-	mi := &file_containerz_containerz_proto_msgTypes[40]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_containerz_containerz_proto_msgTypes[40]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -3047,7 +2951,7 @@ func (x *Plugin) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use Plugin.ProtoReflect.Descriptor instead.
 func (*Plugin) Descriptor() ([]byte, []int) {
-	return file_containerz_containerz_proto_rawDescGZIP(), []int{40}
+	return file_github_com_openconfig_gnoi_containerz_containerz_proto_rawDescGZIP(), []int{40}
 }
 
 func (x *Plugin) GetId() string {
@@ -3079,20 +2983,17 @@ func (x *Plugin) GetConfig() string {
 }
 
 type ListPluginsResponse struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Plugins       []*Plugin              `protobuf:"bytes,1,rep,name=plugins,proto3" json:"plugins,omitempty"`
 	unknownFields protoimpl.UnknownFields
-
-	Plugins []*Plugin `protobuf:"bytes,1,rep,name=plugins,proto3" json:"plugins,omitempty"`
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *ListPluginsResponse) Reset() {
 	*x = ListPluginsResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_containerz_containerz_proto_msgTypes[41]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_containerz_containerz_proto_msgTypes[41]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *ListPluginsResponse) String() string {
@@ -3102,8 +3003,8 @@ func (x *ListPluginsResponse) String() string {
 func (*ListPluginsResponse) ProtoMessage() {}
 
 func (x *ListPluginsResponse) ProtoReflect() protoreflect.Message {
-	mi := &file_containerz_containerz_proto_msgTypes[41]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_containerz_containerz_proto_msgTypes[41]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -3115,7 +3016,7 @@ func (x *ListPluginsResponse) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use ListPluginsResponse.ProtoReflect.Descriptor instead.
 func (*ListPluginsResponse) Descriptor() ([]byte, []int) {
-	return file_containerz_containerz_proto_rawDescGZIP(), []int{41}
+	return file_github_com_openconfig_gnoi_containerz_containerz_proto_rawDescGZIP(), []int{41}
 }
 
 func (x *ListPluginsResponse) GetPlugins() []*Plugin {
@@ -3126,20 +3027,17 @@ func (x *ListPluginsResponse) GetPlugins() []*Plugin {
 }
 
 type RemovePluginRequest struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	InstanceName  string                 `protobuf:"bytes,1,opt,name=instance_name,json=instanceName,proto3" json:"instance_name,omitempty"`
 	unknownFields protoimpl.UnknownFields
-
-	InstanceName string `protobuf:"bytes,1,opt,name=instance_name,json=instanceName,proto3" json:"instance_name,omitempty"`
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *RemovePluginRequest) Reset() {
 	*x = RemovePluginRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_containerz_containerz_proto_msgTypes[42]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_containerz_containerz_proto_msgTypes[42]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *RemovePluginRequest) String() string {
@@ -3149,8 +3047,8 @@ func (x *RemovePluginRequest) String() string {
 func (*RemovePluginRequest) ProtoMessage() {}
 
 func (x *RemovePluginRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_containerz_containerz_proto_msgTypes[42]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_containerz_containerz_proto_msgTypes[42]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -3162,7 +3060,7 @@ func (x *RemovePluginRequest) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use RemovePluginRequest.ProtoReflect.Descriptor instead.
 func (*RemovePluginRequest) Descriptor() ([]byte, []int) {
-	return file_containerz_containerz_proto_rawDescGZIP(), []int{42}
+	return file_github_com_openconfig_gnoi_containerz_containerz_proto_rawDescGZIP(), []int{42}
 }
 
 func (x *RemovePluginRequest) GetInstanceName() string {
@@ -3173,18 +3071,16 @@ func (x *RemovePluginRequest) GetInstanceName() string {
 }
 
 type RemovePluginResponse struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState `protogen:"open.v1"`
 	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *RemovePluginResponse) Reset() {
 	*x = RemovePluginResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_containerz_containerz_proto_msgTypes[43]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_containerz_containerz_proto_msgTypes[43]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *RemovePluginResponse) String() string {
@@ -3194,8 +3090,8 @@ func (x *RemovePluginResponse) String() string {
 func (*RemovePluginResponse) ProtoMessage() {}
 
 func (x *RemovePluginResponse) ProtoReflect() protoreflect.Message {
-	mi := &file_containerz_containerz_proto_msgTypes[43]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_containerz_containerz_proto_msgTypes[43]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -3207,25 +3103,22 @@ func (x *RemovePluginResponse) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use RemovePluginResponse.ProtoReflect.Descriptor instead.
 func (*RemovePluginResponse) Descriptor() ([]byte, []int) {
-	return file_containerz_containerz_proto_rawDescGZIP(), []int{43}
+	return file_github_com_openconfig_gnoi_containerz_containerz_proto_rawDescGZIP(), []int{43}
 }
 
 type ListImageRequest_Filter struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Key           string                 `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
+	Value         []string               `protobuf:"bytes,2,rep,name=value,proto3" json:"value,omitempty"`
 	unknownFields protoimpl.UnknownFields
-
-	Key   string   `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
-	Value []string `protobuf:"bytes,2,rep,name=value,proto3" json:"value,omitempty"`
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *ListImageRequest_Filter) Reset() {
 	*x = ListImageRequest_Filter{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_containerz_containerz_proto_msgTypes[44]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_containerz_containerz_proto_msgTypes[44]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *ListImageRequest_Filter) String() string {
@@ -3235,8 +3128,8 @@ func (x *ListImageRequest_Filter) String() string {
 func (*ListImageRequest_Filter) ProtoMessage() {}
 
 func (x *ListImageRequest_Filter) ProtoReflect() protoreflect.Message {
-	mi := &file_containerz_containerz_proto_msgTypes[44]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_containerz_containerz_proto_msgTypes[44]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -3248,7 +3141,7 @@ func (x *ListImageRequest_Filter) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use ListImageRequest_Filter.ProtoReflect.Descriptor instead.
 func (*ListImageRequest_Filter) Descriptor() ([]byte, []int) {
-	return file_containerz_containerz_proto_rawDescGZIP(), []int{11, 0}
+	return file_github_com_openconfig_gnoi_containerz_containerz_proto_rawDescGZIP(), []int{11, 0}
 }
 
 func (x *ListImageRequest_Filter) GetKey() string {
@@ -3266,21 +3159,18 @@ func (x *ListImageRequest_Filter) GetValue() []string {
 }
 
 type ListContainerRequest_Filter struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Key           string                 `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
+	Value         []string               `protobuf:"bytes,2,rep,name=value,proto3" json:"value,omitempty"`
 	unknownFields protoimpl.UnknownFields
-
-	Key   string   `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
-	Value []string `protobuf:"bytes,2,rep,name=value,proto3" json:"value,omitempty"`
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *ListContainerRequest_Filter) Reset() {
 	*x = ListContainerRequest_Filter{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_containerz_containerz_proto_msgTypes[45]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_containerz_containerz_proto_msgTypes[45]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *ListContainerRequest_Filter) String() string {
@@ -3290,8 +3180,8 @@ func (x *ListContainerRequest_Filter) String() string {
 func (*ListContainerRequest_Filter) ProtoMessage() {}
 
 func (x *ListContainerRequest_Filter) ProtoReflect() protoreflect.Message {
-	mi := &file_containerz_containerz_proto_msgTypes[45]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_containerz_containerz_proto_msgTypes[45]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -3303,7 +3193,7 @@ func (x *ListContainerRequest_Filter) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use ListContainerRequest_Filter.ProtoReflect.Descriptor instead.
 func (*ListContainerRequest_Filter) Descriptor() ([]byte, []int) {
-	return file_containerz_containerz_proto_rawDescGZIP(), []int{13, 0}
+	return file_github_com_openconfig_gnoi_containerz_containerz_proto_rawDescGZIP(), []int{13, 0}
 }
 
 func (x *ListContainerRequest_Filter) GetKey() string {
@@ -3321,21 +3211,18 @@ func (x *ListContainerRequest_Filter) GetValue() []string {
 }
 
 type StartContainerRequest_Port struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Internal      uint32                 `protobuf:"varint,1,opt,name=internal,proto3" json:"internal,omitempty"`
+	External      uint32                 `protobuf:"varint,2,opt,name=external,proto3" json:"external,omitempty"`
 	unknownFields protoimpl.UnknownFields
-
-	Internal uint32 `protobuf:"varint,1,opt,name=internal,proto3" json:"internal,omitempty"`
-	External uint32 `protobuf:"varint,2,opt,name=external,proto3" json:"external,omitempty"`
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *StartContainerRequest_Port) Reset() {
 	*x = StartContainerRequest_Port{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_containerz_containerz_proto_msgTypes[47]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_containerz_containerz_proto_msgTypes[47]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *StartContainerRequest_Port) String() string {
@@ -3345,8 +3232,8 @@ func (x *StartContainerRequest_Port) String() string {
 func (*StartContainerRequest_Port) ProtoMessage() {}
 
 func (x *StartContainerRequest_Port) ProtoReflect() protoreflect.Message {
-	mi := &file_containerz_containerz_proto_msgTypes[47]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_containerz_containerz_proto_msgTypes[47]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -3358,7 +3245,7 @@ func (x *StartContainerRequest_Port) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use StartContainerRequest_Port.ProtoReflect.Descriptor instead.
 func (*StartContainerRequest_Port) Descriptor() ([]byte, []int) {
-	return file_containerz_containerz_proto_rawDescGZIP(), []int{16, 0}
+	return file_github_com_openconfig_gnoi_containerz_containerz_proto_rawDescGZIP(), []int{16, 0}
 }
 
 func (x *StartContainerRequest_Port) GetInternal() uint32 {
@@ -3376,21 +3263,18 @@ func (x *StartContainerRequest_Port) GetExternal() uint32 {
 }
 
 type StartContainerRequest_Capabilities struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Add           []string               `protobuf:"bytes,1,rep,name=add,proto3" json:"add,omitempty"`
+	Remove        []string               `protobuf:"bytes,2,rep,name=remove,proto3" json:"remove,omitempty"`
 	unknownFields protoimpl.UnknownFields
-
-	Add    []string `protobuf:"bytes,1,rep,name=add,proto3" json:"add,omitempty"`
-	Remove []string `protobuf:"bytes,2,rep,name=remove,proto3" json:"remove,omitempty"`
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *StartContainerRequest_Capabilities) Reset() {
 	*x = StartContainerRequest_Capabilities{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_containerz_containerz_proto_msgTypes[49]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_containerz_containerz_proto_msgTypes[49]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *StartContainerRequest_Capabilities) String() string {
@@ -3400,8 +3284,8 @@ func (x *StartContainerRequest_Capabilities) String() string {
 func (*StartContainerRequest_Capabilities) ProtoMessage() {}
 
 func (x *StartContainerRequest_Capabilities) ProtoReflect() protoreflect.Message {
-	mi := &file_containerz_containerz_proto_msgTypes[49]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_containerz_containerz_proto_msgTypes[49]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -3413,7 +3297,7 @@ func (x *StartContainerRequest_Capabilities) ProtoReflect() protoreflect.Message
 
 // Deprecated: Use StartContainerRequest_Capabilities.ProtoReflect.Descriptor instead.
 func (*StartContainerRequest_Capabilities) Descriptor() ([]byte, []int) {
-	return file_containerz_containerz_proto_rawDescGZIP(), []int{16, 2}
+	return file_github_com_openconfig_gnoi_containerz_containerz_proto_rawDescGZIP(), []int{16, 2}
 }
 
 func (x *StartContainerRequest_Capabilities) GetAdd() []string {
@@ -3431,21 +3315,18 @@ func (x *StartContainerRequest_Capabilities) GetRemove() []string {
 }
 
 type StartContainerRequest_Restart struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState               `protogen:"open.v1"`
+	Policy        StartContainerRequest_Restart_Policy `protobuf:"varint,1,opt,name=policy,proto3,enum=gnoi.containerz.StartContainerRequest_Restart_Policy" json:"policy,omitempty"`
+	Attempts      uint32                               `protobuf:"varint,2,opt,name=attempts,proto3" json:"attempts,omitempty"`
 	unknownFields protoimpl.UnknownFields
-
-	Policy   StartContainerRequest_Restart_Policy `protobuf:"varint,1,opt,name=policy,proto3,enum=gnoi.containerz.StartContainerRequest_Restart_Policy" json:"policy,omitempty"`
-	Attempts uint32                               `protobuf:"varint,2,opt,name=attempts,proto3" json:"attempts,omitempty"`
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *StartContainerRequest_Restart) Reset() {
 	*x = StartContainerRequest_Restart{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_containerz_containerz_proto_msgTypes[50]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_containerz_containerz_proto_msgTypes[50]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *StartContainerRequest_Restart) String() string {
@@ -3455,8 +3336,8 @@ func (x *StartContainerRequest_Restart) String() string {
 func (*StartContainerRequest_Restart) ProtoMessage() {}
 
 func (x *StartContainerRequest_Restart) ProtoReflect() protoreflect.Message {
-	mi := &file_containerz_containerz_proto_msgTypes[50]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_containerz_containerz_proto_msgTypes[50]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -3468,7 +3349,7 @@ func (x *StartContainerRequest_Restart) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use StartContainerRequest_Restart.ProtoReflect.Descriptor instead.
 func (*StartContainerRequest_Restart) Descriptor() ([]byte, []int) {
-	return file_containerz_containerz_proto_rawDescGZIP(), []int{16, 3}
+	return file_github_com_openconfig_gnoi_containerz_containerz_proto_rawDescGZIP(), []int{16, 3}
 }
 
 func (x *StartContainerRequest_Restart) GetPolicy() StartContainerRequest_Restart_Policy {
@@ -3486,21 +3367,18 @@ func (x *StartContainerRequest_Restart) GetAttempts() uint32 {
 }
 
 type StartContainerRequest_RunAs struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	User          string                 `protobuf:"bytes,1,opt,name=user,proto3" json:"user,omitempty"`
+	Group         string                 `protobuf:"bytes,2,opt,name=group,proto3" json:"group,omitempty"`
 	unknownFields protoimpl.UnknownFields
-
-	User  string `protobuf:"bytes,1,opt,name=user,proto3" json:"user,omitempty"`
-	Group string `protobuf:"bytes,2,opt,name=group,proto3" json:"group,omitempty"`
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *StartContainerRequest_RunAs) Reset() {
 	*x = StartContainerRequest_RunAs{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_containerz_containerz_proto_msgTypes[51]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_containerz_containerz_proto_msgTypes[51]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *StartContainerRequest_RunAs) String() string {
@@ -3510,8 +3388,8 @@ func (x *StartContainerRequest_RunAs) String() string {
 func (*StartContainerRequest_RunAs) ProtoMessage() {}
 
 func (x *StartContainerRequest_RunAs) ProtoReflect() protoreflect.Message {
-	mi := &file_containerz_containerz_proto_msgTypes[51]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_containerz_containerz_proto_msgTypes[51]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -3523,7 +3401,7 @@ func (x *StartContainerRequest_RunAs) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use StartContainerRequest_RunAs.ProtoReflect.Descriptor instead.
 func (*StartContainerRequest_RunAs) Descriptor() ([]byte, []int) {
-	return file_containerz_containerz_proto_rawDescGZIP(), []int{16, 4}
+	return file_github_com_openconfig_gnoi_containerz_containerz_proto_rawDescGZIP(), []int{16, 4}
 }
 
 func (x *StartContainerRequest_RunAs) GetUser() string {
@@ -3541,22 +3419,19 @@ func (x *StartContainerRequest_RunAs) GetGroup() string {
 }
 
 type StartContainerRequest_Limits struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	MaxCpu        float64                `protobuf:"fixed64,1,opt,name=max_cpu,json=maxCpu,proto3" json:"max_cpu,omitempty"`
+	SoftMemBytes  int64                  `protobuf:"varint,2,opt,name=soft_mem_bytes,json=softMemBytes,proto3" json:"soft_mem_bytes,omitempty"`
+	HardMemBytes  int64                  `protobuf:"varint,3,opt,name=hard_mem_bytes,json=hardMemBytes,proto3" json:"hard_mem_bytes,omitempty"`
 	unknownFields protoimpl.UnknownFields
-
-	MaxCpu       float64 `protobuf:"fixed64,1,opt,name=max_cpu,json=maxCpu,proto3" json:"max_cpu,omitempty"`
-	SoftMemBytes int64   `protobuf:"varint,2,opt,name=soft_mem_bytes,json=softMemBytes,proto3" json:"soft_mem_bytes,omitempty"`
-	HardMemBytes int64   `protobuf:"varint,3,opt,name=hard_mem_bytes,json=hardMemBytes,proto3" json:"hard_mem_bytes,omitempty"`
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *StartContainerRequest_Limits) Reset() {
 	*x = StartContainerRequest_Limits{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_containerz_containerz_proto_msgTypes[53]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_containerz_containerz_proto_msgTypes[53]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *StartContainerRequest_Limits) String() string {
@@ -3566,8 +3441,8 @@ func (x *StartContainerRequest_Limits) String() string {
 func (*StartContainerRequest_Limits) ProtoMessage() {}
 
 func (x *StartContainerRequest_Limits) ProtoReflect() protoreflect.Message {
-	mi := &file_containerz_containerz_proto_msgTypes[53]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_containerz_containerz_proto_msgTypes[53]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -3579,7 +3454,7 @@ func (x *StartContainerRequest_Limits) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use StartContainerRequest_Limits.ProtoReflect.Descriptor instead.
 func (*StartContainerRequest_Limits) Descriptor() ([]byte, []int) {
-	return file_containerz_containerz_proto_rawDescGZIP(), []int{16, 6}
+	return file_github_com_openconfig_gnoi_containerz_containerz_proto_rawDescGZIP(), []int{16, 6}
 }
 
 func (x *StartContainerRequest_Limits) GetMaxCpu() float64 {
@@ -3604,21 +3479,18 @@ func (x *StartContainerRequest_Limits) GetHardMemBytes() int64 {
 }
 
 type ListVolumeRequest_Filter struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Key           string                 `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
+	Value         []string               `protobuf:"bytes,2,rep,name=value,proto3" json:"value,omitempty"`
 	unknownFields protoimpl.UnknownFields
-
-	Key   string   `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
-	Value []string `protobuf:"bytes,2,rep,name=value,proto3" json:"value,omitempty"`
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *ListVolumeRequest_Filter) Reset() {
 	*x = ListVolumeRequest_Filter{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_containerz_containerz_proto_msgTypes[55]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_containerz_containerz_proto_msgTypes[55]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *ListVolumeRequest_Filter) String() string {
@@ -3628,8 +3500,8 @@ func (x *ListVolumeRequest_Filter) String() string {
 func (*ListVolumeRequest_Filter) ProtoMessage() {}
 
 func (x *ListVolumeRequest_Filter) ProtoReflect() protoreflect.Message {
-	mi := &file_containerz_containerz_proto_msgTypes[55]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_containerz_containerz_proto_msgTypes[55]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -3641,7 +3513,7 @@ func (x *ListVolumeRequest_Filter) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use ListVolumeRequest_Filter.ProtoReflect.Descriptor instead.
 func (*ListVolumeRequest_Filter) Descriptor() ([]byte, []int) {
-	return file_containerz_containerz_proto_rawDescGZIP(), []int{33, 0}
+	return file_github_com_openconfig_gnoi_containerz_containerz_proto_rawDescGZIP(), []int{33, 0}
 }
 
 func (x *ListVolumeRequest_Filter) GetKey() string {
@@ -3658,577 +3530,579 @@ func (x *ListVolumeRequest_Filter) GetValue() []string {
 	return nil
 }
 
-var File_containerz_containerz_proto protoreflect.FileDescriptor
-
-var file_containerz_containerz_proto_rawDesc = []byte{
-	0x0a, 0x1b, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x7a, 0x2f, 0x63, 0x6f, 0x6e,
-	0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x7a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0f, 0x67,
-	0x6e, 0x6f, 0x69, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x7a, 0x1a, 0x2e,
-	0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x63,
-	0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x67, 0x6e, 0x6f, 0x69, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f,
-	0x6e, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2c,
-	0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x63,
-	0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x67, 0x6e, 0x6f, 0x69, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73,
-	0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f,
-	0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69,
-	0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x67,
-	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x72, 0x70, 0x63, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73,
-	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xd2, 0x01, 0x0a, 0x0d, 0x44, 0x65, 0x70, 0x6c, 0x6f,
-	0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x47, 0x0a, 0x0e, 0x69, 0x6d, 0x61, 0x67,
-	0x65, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,
-	0x32, 0x1e, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65,
-	0x72, 0x7a, 0x2e, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72,
-	0x48, 0x00, 0x52, 0x0d, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65,
-	0x72, 0x12, 0x1a, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01,
-	0x28, 0x0c, 0x48, 0x00, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x51, 0x0a,
-	0x12, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x5f,
-	0x65, 0x6e, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x67, 0x6e, 0x6f, 0x69,
-	0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x7a, 0x2e, 0x49, 0x6d, 0x61, 0x67,
-	0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x45, 0x6e, 0x64, 0x48, 0x00, 0x52, 0x10,
-	0x69, 0x6d, 0x61, 0x67, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x45, 0x6e, 0x64,
-	0x42, 0x09, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0xb7, 0x01, 0x0a, 0x0d,
-	0x49, 0x6d, 0x61, 0x67, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x12, 0x12, 0x0a,
-	0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d,
-	0x65, 0x12, 0x10, 0x0a, 0x03, 0x74, 0x61, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03,
-	0x74, 0x61, 0x67, 0x12, 0x1d, 0x0a, 0x0a, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a,
-	0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x53, 0x69,
-	0x7a, 0x65, 0x12, 0x44, 0x0a, 0x0f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x64, 0x6f, 0x77,
-	0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6e,
-	0x6f, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65,
-	0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x0e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65,
-	0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x73, 0x5f, 0x70,
-	0x6c, 0x75, 0x67, 0x69, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x69, 0x73, 0x50,
-	0x6c, 0x75, 0x67, 0x69, 0x6e, 0x22, 0x12, 0x0a, 0x10, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x54, 0x72,
-	0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x45, 0x6e, 0x64, 0x22, 0xfe, 0x02, 0x0a, 0x0e, 0x44, 0x65,
-	0x70, 0x6c, 0x6f, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x57, 0x0a, 0x14,
-	0x69, 0x6d, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x5f, 0x72,
-	0x65, 0x61, 0x64, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x67, 0x6e, 0x6f,
-	0x69, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x7a, 0x2e, 0x49, 0x6d, 0x61,
-	0x67, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x79, 0x48,
-	0x00, 0x52, 0x12, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72,
-	0x52, 0x65, 0x61, 0x64, 0x79, 0x12, 0x60, 0x0a, 0x17, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x5f, 0x74,
-	0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x5f, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73,
-	0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x63, 0x6f,
-	0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x7a, 0x2e, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x54, 0x72,
-	0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x48, 0x00,
-	0x52, 0x15, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x50,
-	0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0x5d, 0x0a, 0x16, 0x69, 0x6d, 0x61, 0x67, 0x65,
-	0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x5f, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73,
-	0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x63,
-	0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x7a, 0x2e, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x54,
-	0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x48, 0x00,
-	0x52, 0x14, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x53,
-	0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x46, 0x0a, 0x14, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x5f,
-	0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x04,
-	0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x72, 0x70,
-	0x63, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x48, 0x00, 0x52, 0x12, 0x69, 0x6d, 0x61, 0x67,
-	0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x42, 0x0a,
-	0x0a, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x33, 0x0a, 0x12, 0x49, 0x6d,
+var File_github_com_openconfig_gnoi_containerz_containerz_proto protoreflect.FileDescriptor
+
+var file_github_com_openconfig_gnoi_containerz_containerz_proto_rawDesc = []byte{
+	0x0a, 0x36, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x70, 0x65,
+	0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x67, 0x6e, 0x6f, 0x69, 0x2f, 0x63, 0x6f, 0x6e,
+	0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x7a, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65,
+	0x72, 0x7a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0f, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x63,
+	0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x7a, 0x1a, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75,
+	0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67,
+	0x2f, 0x67, 0x6e, 0x6f, 0x69, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2f, 0x63, 0x6f, 0x6d,
+	0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2c, 0x67, 0x69, 0x74, 0x68, 0x75,
+	0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67,
+	0x2f, 0x67, 0x6e, 0x6f, 0x69, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2f, 0x74, 0x79, 0x70, 0x65,
+	0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f,
+	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61,
+	0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
+	0x2f, 0x72, 0x70, 0x63, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74,
+	0x6f, 0x22, 0xd2, 0x01, 0x0a, 0x0d, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x52, 0x65, 0x71, 0x75,
+	0x65, 0x73, 0x74, 0x12, 0x47, 0x0a, 0x0e, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x72, 0x61,
+	0x6e, 0x73, 0x66, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x67, 0x6e,
+	0x6f, 0x69, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x7a, 0x2e, 0x49, 0x6d,
+	0x61, 0x67, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x48, 0x00, 0x52, 0x0d, 0x69,
+	0x6d, 0x61, 0x67, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x07,
+	0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52,
+	0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x51, 0x0a, 0x12, 0x69, 0x6d, 0x61, 0x67,
+	0x65, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x5f, 0x65, 0x6e, 0x64, 0x18, 0x03,
+	0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x63, 0x6f, 0x6e, 0x74,
+	0x61, 0x69, 0x6e, 0x65, 0x72, 0x7a, 0x2e, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x54, 0x72, 0x61, 0x6e,
+	0x73, 0x66, 0x65, 0x72, 0x45, 0x6e, 0x64, 0x48, 0x00, 0x52, 0x10, 0x69, 0x6d, 0x61, 0x67, 0x65,
+	0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x45, 0x6e, 0x64, 0x42, 0x09, 0x0a, 0x07, 0x72,
+	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0xb7, 0x01, 0x0a, 0x0d, 0x49, 0x6d, 0x61, 0x67, 0x65,
+	0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65,
+	0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03,
+	0x74, 0x61, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x74, 0x61, 0x67, 0x12, 0x1d,
+	0x0a, 0x0a, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01,
+	0x28, 0x04, 0x52, 0x09, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x44, 0x0a,
+	0x0f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64,
+	0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x63, 0x6f,
+	0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x44, 0x6f, 0x77, 0x6e, 0x6c,
+	0x6f, 0x61, 0x64, 0x52, 0x0e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x44, 0x6f, 0x77, 0x6e, 0x6c,
+	0x6f, 0x61, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x73, 0x5f, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e,
+	0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x69, 0x73, 0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e,
+	0x22, 0x12, 0x0a, 0x10, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65,
+	0x72, 0x45, 0x6e, 0x64, 0x22, 0xfe, 0x02, 0x0a, 0x0e, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x52,
+	0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x57, 0x0a, 0x14, 0x69, 0x6d, 0x61, 0x67, 0x65,
+	0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x79, 0x18,
+	0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x63, 0x6f, 0x6e,
+	0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x7a, 0x2e, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x54, 0x72, 0x61,
+	0x6e, 0x73, 0x66, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x79, 0x48, 0x00, 0x52, 0x12, 0x69, 0x6d,
 	0x61, 0x67, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x79,
-	0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x68, 0x75, 0x6e, 0x6b, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x01,
-	0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x63, 0x68, 0x75, 0x6e, 0x6b, 0x53, 0x69, 0x7a, 0x65, 0x22,
-	0x3e, 0x0a, 0x15, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72,
-	0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x62, 0x79, 0x74, 0x65,
-	0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04,
-	0x52, 0x0d, 0x62, 0x79, 0x74, 0x65, 0x73, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x22,
-	0x5b, 0x0a, 0x14, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72,
-	0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18,
-	0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x74,
-	0x61, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x74, 0x61, 0x67, 0x12, 0x1d, 0x0a,
-	0x0a, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28,
-	0x04, 0x52, 0x09, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x22, 0x50, 0x0a, 0x12,
-	0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65,
-	0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
+	0x12, 0x60, 0x0a, 0x17, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66,
+	0x65, 0x72, 0x5f, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28,
+	0x0b, 0x32, 0x26, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e,
+	0x65, 0x72, 0x7a, 0x2e, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65,
+	0x72, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x48, 0x00, 0x52, 0x15, 0x69, 0x6d, 0x61,
+	0x67, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65,
+	0x73, 0x73, 0x12, 0x5d, 0x0a, 0x16, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x72, 0x61, 0x6e,
+	0x73, 0x66, 0x65, 0x72, 0x5f, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01,
+	0x28, 0x0b, 0x32, 0x25, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69,
+	0x6e, 0x65, 0x72, 0x7a, 0x2e, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66,
+	0x65, 0x72, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x48, 0x00, 0x52, 0x14, 0x69, 0x6d, 0x61,
+	0x67, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73,
+	0x73, 0x12, 0x46, 0x0a, 0x14, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73,
+	0x66, 0x65, 0x72, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32,
+	0x12, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x61,
+	0x74, 0x75, 0x73, 0x48, 0x00, 0x52, 0x12, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x54, 0x72, 0x61, 0x6e,
+	0x73, 0x66, 0x65, 0x72, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x42, 0x0a, 0x0a, 0x08, 0x72, 0x65, 0x73,
+	0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x33, 0x0a, 0x12, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x54, 0x72,
+	0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x79, 0x12, 0x1d, 0x0a, 0x0a, 0x63,
+	0x68, 0x75, 0x6e, 0x6b, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52,
+	0x09, 0x63, 0x68, 0x75, 0x6e, 0x6b, 0x53, 0x69, 0x7a, 0x65, 0x22, 0x3e, 0x0a, 0x15, 0x49, 0x6d,
+	0x61, 0x67, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x67, 0x72,
+	0x65, 0x73, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x63,
+	0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x62, 0x79, 0x74,
+	0x65, 0x73, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x22, 0x5b, 0x0a, 0x14, 0x49, 0x6d,
+	0x61, 0x67, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x53, 0x75, 0x63, 0x63, 0x65,
+	0x73, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
 	0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x74, 0x61, 0x67, 0x18, 0x02, 0x20,
-	0x01, 0x28, 0x09, 0x52, 0x03, 0x74, 0x61, 0x67, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x6f, 0x72, 0x63,
-	0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x22, 0xbb,
-	0x01, 0x0a, 0x13, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x65,
-	0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3d, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01,
-	0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x63, 0x6f, 0x6e, 0x74,
-	0x61, 0x69, 0x6e, 0x65, 0x72, 0x7a, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x49, 0x6d, 0x61,
-	0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x43, 0x6f, 0x64, 0x65, 0x52,
-	0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x18,
-	0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x22, 0x4d, 0x0a,
-	0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x0f, 0x0a, 0x0b, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49,
-	0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57,
-	0x4e, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x4e, 0x4f, 0x54, 0x5f, 0x46, 0x4f, 0x55, 0x4e, 0x44,
-	0x10, 0x02, 0x12, 0x0b, 0x0a, 0x07, 0x52, 0x55, 0x4e, 0x4e, 0x49, 0x4e, 0x47, 0x10, 0x03, 0x12,
-	0x0b, 0x0a, 0x07, 0x53, 0x55, 0x43, 0x43, 0x45, 0x53, 0x53, 0x10, 0x04, 0x22, 0x48, 0x0a, 0x16,
-	0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x52,
-	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01,
-	0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x6f,
-	0x72, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x66, 0x6f, 0x72, 0x63, 0x65,
-	0x4a, 0x04, 0x08, 0x02, 0x10, 0x03, 0x22, 0xb6, 0x01, 0x0a, 0x17, 0x52, 0x65, 0x6d, 0x6f, 0x76,
-	0x65, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
-	0x73, 0x65, 0x12, 0x41, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e,
-	0x32, 0x2d, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65,
-	0x72, 0x7a, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e,
-	0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x43, 0x6f, 0x64, 0x65, 0x52,
-	0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x18,
-	0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x22, 0x40, 0x0a,
-	0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x0f, 0x0a, 0x0b, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49,
-	0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x4e, 0x4f, 0x54, 0x5f, 0x46, 0x4f,
-	0x55, 0x4e, 0x44, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x52, 0x55, 0x4e, 0x4e, 0x49, 0x4e, 0x47,
-	0x10, 0x02, 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x55, 0x43, 0x43, 0x45, 0x53, 0x53, 0x10, 0x03, 0x22,
-	0x9c, 0x01, 0x0a, 0x10, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71,
-	0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x01, 0x20,
-	0x01, 0x28, 0x05, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x40, 0x0a, 0x06, 0x66, 0x69,
-	0x6c, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x67, 0x6e, 0x6f,
-	0x69, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x7a, 0x2e, 0x4c, 0x69, 0x73,
-	0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x46, 0x69,
-	0x6c, 0x74, 0x65, 0x72, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x1a, 0x30, 0x0a, 0x06,
-	0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20,
-	0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75,
-	0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x54,
-	0x0a, 0x11, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f,
-	0x6e, 0x73, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
-	0x02, 0x69, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x5f, 0x6e, 0x61, 0x6d,
-	0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x4e, 0x61,
-	0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x74, 0x61, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52,
-	0x03, 0x74, 0x61, 0x67, 0x22, 0xb6, 0x01, 0x0a, 0x14, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e,
-	0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a,
-	0x03, 0x61, 0x6c, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x61, 0x6c, 0x6c, 0x12,
-	0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05,
-	0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x44, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18,
-	0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x63, 0x6f, 0x6e,
-	0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x7a, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74,
-	0x61, 0x69, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x46, 0x69, 0x6c,
-	0x74, 0x65, 0x72, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x1a, 0x30, 0x0a, 0x06, 0x46,
-	0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01,
-	0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65,
-	0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xa3, 0x03,
-	0x0a, 0x15, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x52,
-	0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20,
-	0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18,
-	0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x69,
-	0x6d, 0x61, 0x67, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52,
-	0x09, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x45, 0x0a, 0x06, 0x73, 0x74,
-	0x61, 0x74, 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x67, 0x6e, 0x6f,
-	0x69, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x7a, 0x2e, 0x4c, 0x69, 0x73,
-	0x74, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
-	0x73, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75,
-	0x73, 0x12, 0x4a, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28,
-	0x0b, 0x32, 0x32, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e,
-	0x65, 0x72, 0x7a, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65,
-	0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73,
-	0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x28, 0x0a,
-	0x04, 0x68, 0x61, 0x73, 0x68, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6e,
-	0x6f, 0x69, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x48, 0x61, 0x73, 0x68, 0x54, 0x79, 0x70,
-	0x65, 0x52, 0x04, 0x68, 0x61, 0x73, 0x68, 0x1a, 0x39, 0x0a, 0x0b, 0x4c, 0x61, 0x62, 0x65, 0x6c,
-	0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20,
-	0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75,
-	0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02,
-	0x38, 0x01, 0x22, 0x4f, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x0f, 0x0a, 0x0b,
-	0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0b, 0x0a,
-	0x07, 0x53, 0x54, 0x4f, 0x50, 0x50, 0x45, 0x44, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x52, 0x55,
-	0x4e, 0x4e, 0x49, 0x4e, 0x47, 0x10, 0x02, 0x12, 0x0b, 0x0a, 0x07, 0x50, 0x52, 0x45, 0x53, 0x45,
-	0x4e, 0x54, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x4e, 0x4f, 0x54, 0x5f, 0x46, 0x4f, 0x55, 0x4e,
-	0x44, 0x10, 0x04, 0x22, 0x5a, 0x0a, 0x06, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x12, 0x12, 0x0a,
+	0x01, 0x28, 0x09, 0x52, 0x03, 0x74, 0x61, 0x67, 0x12, 0x1d, 0x0a, 0x0a, 0x69, 0x6d, 0x61, 0x67,
+	0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x69, 0x6d,
+	0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x22, 0x50, 0x0a, 0x12, 0x52, 0x65, 0x6d, 0x6f, 0x76,
+	0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a,
 	0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d,
-	0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74,
-	0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x6f, 0x69,
-	0x6e, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x18,
-	0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x72, 0x65, 0x61, 0x64, 0x4f, 0x6e, 0x6c, 0x79, 0x22,
-	0xa5, 0x0a, 0x0a, 0x15, 0x53, 0x74, 0x61, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e,
-	0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x69, 0x6d, 0x61,
-	0x67, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x69,
-	0x6d, 0x61, 0x67, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x74, 0x61, 0x67, 0x18,
-	0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x74, 0x61, 0x67, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x6d,
-	0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x63, 0x6d, 0x64, 0x12, 0x23, 0x0a, 0x0d,
-	0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20,
-	0x01, 0x28, 0x09, 0x52, 0x0c, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x4e, 0x61, 0x6d,
-	0x65, 0x12, 0x41, 0x0a, 0x05, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b,
-	0x32, 0x2b, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65,
-	0x72, 0x7a, 0x2e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65,
-	0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x05, 0x70,
-	0x6f, 0x72, 0x74, 0x73, 0x12, 0x59, 0x0a, 0x0b, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d,
-	0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x67, 0x6e, 0x6f, 0x69,
-	0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x7a, 0x2e, 0x53, 0x74, 0x61, 0x72,
-	0x74, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
-	0x74, 0x2e, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x45, 0x6e, 0x74,
-	0x72, 0x79, 0x52, 0x0b, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x12,
-	0x31, 0x0a, 0x07, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b,
-	0x32, 0x17, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65,
-	0x72, 0x7a, 0x2e, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x07, 0x76, 0x6f, 0x6c, 0x75, 0x6d,
-	0x65, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x18, 0x08, 0x20,
-	0x01, 0x28, 0x09, 0x52, 0x07, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x12, 0x45, 0x0a, 0x03,
-	0x63, 0x61, 0x70, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x67, 0x6e, 0x6f, 0x69,
-	0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x7a, 0x2e, 0x53, 0x74, 0x61, 0x72,
-	0x74, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
-	0x74, 0x2e, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x52, 0x03,
-	0x63, 0x61, 0x70, 0x12, 0x48, 0x0a, 0x07, 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x0a,
-	0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x63, 0x6f, 0x6e, 0x74,
-	0x61, 0x69, 0x6e, 0x65, 0x72, 0x7a, 0x2e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x74,
-	0x61, 0x69, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x52, 0x65, 0x73,
-	0x74, 0x61, 0x72, 0x74, 0x52, 0x07, 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x43, 0x0a,
-	0x06, 0x72, 0x75, 0x6e, 0x5f, 0x61, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e,
-	0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x7a, 0x2e,
-	0x53, 0x74, 0x61, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x52, 0x65,
-	0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x52, 0x75, 0x6e, 0x41, 0x73, 0x52, 0x05, 0x72, 0x75, 0x6e,
-	0x41, 0x73, 0x12, 0x4a, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x0c, 0x20, 0x03,
-	0x28, 0x0b, 0x32, 0x32, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69,
-	0x6e, 0x65, 0x72, 0x7a, 0x2e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69,
-	0x6e, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c,
-	0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x45,
-	0x0a, 0x06, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d,
-	0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x7a,
-	0x2e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x52,
-	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x52, 0x06, 0x6c,
-	0x69, 0x6d, 0x69, 0x74, 0x73, 0x1a, 0x3e, 0x0a, 0x04, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x1a, 0x0a,
-	0x08, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52,
-	0x08, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x78, 0x74,
-	0x65, 0x72, 0x6e, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x65, 0x78, 0x74,
-	0x65, 0x72, 0x6e, 0x61, 0x6c, 0x1a, 0x3e, 0x0a, 0x10, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e,
-	0x6d, 0x65, 0x6e, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79,
-	0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76,
-	0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75,
-	0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x38, 0x0a, 0x0c, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c,
-	0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x64, 0x64, 0x18, 0x01, 0x20, 0x03,
-	0x28, 0x09, 0x52, 0x03, 0x61, 0x64, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x6d, 0x6f, 0x76,
-	0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x1a,
-	0xb8, 0x01, 0x0a, 0x07, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x4d, 0x0a, 0x06, 0x70,
-	0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x35, 0x2e, 0x67, 0x6e,
+	0x65, 0x12, 0x10, 0x0a, 0x03, 0x74, 0x61, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03,
+	0x74, 0x61, 0x67, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01,
+	0x28, 0x08, 0x52, 0x05, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x22, 0xbb, 0x01, 0x0a, 0x13, 0x52, 0x65,
+	0x6d, 0x6f, 0x76, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
+	0x65, 0x12, 0x3d, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32,
+	0x29, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72,
+	0x7a, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73,
+	0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65,
+	0x12, 0x16, 0x0a, 0x06, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
+	0x52, 0x06, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x22, 0x4d, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65,
+	0x12, 0x0f, 0x0a, 0x0b, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10,
+	0x00, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x01, 0x12, 0x0d,
+	0x0a, 0x09, 0x4e, 0x4f, 0x54, 0x5f, 0x46, 0x4f, 0x55, 0x4e, 0x44, 0x10, 0x02, 0x12, 0x0b, 0x0a,
+	0x07, 0x52, 0x55, 0x4e, 0x4e, 0x49, 0x4e, 0x47, 0x10, 0x03, 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x55,
+	0x43, 0x43, 0x45, 0x53, 0x53, 0x10, 0x04, 0x22, 0x48, 0x0a, 0x16, 0x52, 0x65, 0x6d, 0x6f, 0x76,
+	0x65, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
+	0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
+	0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x18, 0x03,
+	0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x4a, 0x04, 0x08, 0x02, 0x10,
+	0x03, 0x22, 0xb6, 0x01, 0x0a, 0x17, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x43, 0x6f, 0x6e, 0x74,
+	0x61, 0x69, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x41, 0x0a,
+	0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x67, 0x6e,
+	0x6f, 0x69, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x7a, 0x2e, 0x52, 0x65,
+	0x6d, 0x6f, 0x76, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x73,
+	0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65,
+	0x12, 0x16, 0x0a, 0x06, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
+	0x52, 0x06, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x22, 0x40, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65,
+	0x12, 0x0f, 0x0a, 0x0b, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10,
+	0x00, 0x12, 0x0d, 0x0a, 0x09, 0x4e, 0x4f, 0x54, 0x5f, 0x46, 0x4f, 0x55, 0x4e, 0x44, 0x10, 0x01,
+	0x12, 0x0b, 0x0a, 0x07, 0x52, 0x55, 0x4e, 0x4e, 0x49, 0x4e, 0x47, 0x10, 0x02, 0x12, 0x0b, 0x0a,
+	0x07, 0x53, 0x55, 0x43, 0x43, 0x45, 0x53, 0x53, 0x10, 0x03, 0x22, 0x9c, 0x01, 0x0a, 0x10, 0x4c,
+	0x69, 0x73, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12,
+	0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05,
+	0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x40, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18,
+	0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x63, 0x6f, 0x6e,
+	0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x7a, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x6d, 0x61, 0x67,
+	0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52,
+	0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x1a, 0x30, 0x0a, 0x06, 0x46, 0x69, 0x6c, 0x74, 0x65,
+	0x72, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03,
+	0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x03,
+	0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x54, 0x0a, 0x11, 0x4c, 0x69, 0x73,
+	0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0e,
+	0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1d,
+	0x0a, 0x0a, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01,
+	0x28, 0x09, 0x52, 0x09, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a,
+	0x03, 0x74, 0x61, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x74, 0x61, 0x67, 0x22,
+	0xb6, 0x01, 0x0a, 0x14, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65,
+	0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x6c, 0x6c, 0x18,
+	0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x61, 0x6c, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69,
+	0x6d, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74,
+	0x12, 0x44, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b,
+	0x32, 0x2c, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65,
+	0x72, 0x7a, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72,
+	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x06,
+	0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x1a, 0x30, 0x0a, 0x06, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72,
+	0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b,
+	0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28,
+	0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xa3, 0x03, 0x0a, 0x15, 0x4c, 0x69, 0x73,
+	0x74, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
+	0x73, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02,
+	0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
+	0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x5f,
+	0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x69, 0x6d, 0x61, 0x67,
+	0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x45, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18,
+	0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x63, 0x6f, 0x6e,
+	0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x7a, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74,
+	0x61, 0x69, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x74,
+	0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x4a, 0x0a, 0x06,
+	0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x67,
+	0x6e, 0x6f, 0x69, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x7a, 0x2e, 0x4c,
+	0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70,
+	0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79,
+	0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x28, 0x0a, 0x04, 0x68, 0x61, 0x73, 0x68,
+	0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x74, 0x79,
+	0x70, 0x65, 0x73, 0x2e, 0x48, 0x61, 0x73, 0x68, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x68, 0x61,
+	0x73, 0x68, 0x1a, 0x39, 0x0a, 0x0b, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72,
+	0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03,
+	0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01,
+	0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x4f, 0x0a,
+	0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x0f, 0x0a, 0x0b, 0x55, 0x4e, 0x53, 0x50, 0x45,
+	0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x54, 0x4f, 0x50,
+	0x50, 0x45, 0x44, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x52, 0x55, 0x4e, 0x4e, 0x49, 0x4e, 0x47,
+	0x10, 0x02, 0x12, 0x0b, 0x0a, 0x07, 0x50, 0x52, 0x45, 0x53, 0x45, 0x4e, 0x54, 0x10, 0x03, 0x12,
+	0x0d, 0x0a, 0x09, 0x4e, 0x4f, 0x54, 0x5f, 0x46, 0x4f, 0x55, 0x4e, 0x44, 0x10, 0x04, 0x22, 0x5a,
+	0x0a, 0x06, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65,
+	0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b,
+	0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28,
+	0x09, 0x52, 0x0a, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x1b, 0x0a,
+	0x09, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08,
+	0x52, 0x08, 0x72, 0x65, 0x61, 0x64, 0x4f, 0x6e, 0x6c, 0x79, 0x22, 0xa5, 0x0a, 0x0a, 0x15, 0x53,
+	0x74, 0x61, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x71,
+	0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x5f, 0x6e, 0x61,
+	0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x4e,
+	0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x74, 0x61, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
+	0x52, 0x03, 0x74, 0x61, 0x67, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x6d, 0x64, 0x18, 0x03, 0x20, 0x01,
+	0x28, 0x09, 0x52, 0x03, 0x63, 0x6d, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x69, 0x6e, 0x73, 0x74, 0x61,
+	0x6e, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c,
+	0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x41, 0x0a, 0x05,
+	0x70, 0x6f, 0x72, 0x74, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6e,
 	0x6f, 0x69, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x7a, 0x2e, 0x53, 0x74,
 	0x61, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75,
-	0x65, 0x73, 0x74, 0x2e, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x2e, 0x50, 0x6f, 0x6c, 0x69,
-	0x63, 0x79, 0x52, 0x06, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x74,
-	0x74, 0x65, 0x6d, 0x70, 0x74, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x61, 0x74,
-	0x74, 0x65, 0x6d, 0x70, 0x74, 0x73, 0x22, 0x42, 0x0a, 0x06, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79,
-	0x12, 0x08, 0x0a, 0x04, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x41, 0x4c,
-	0x57, 0x41, 0x59, 0x53, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x55, 0x4e, 0x4c, 0x45, 0x53, 0x53,
-	0x5f, 0x53, 0x54, 0x4f, 0x50, 0x50, 0x45, 0x44, 0x10, 0x02, 0x12, 0x0e, 0x0a, 0x0a, 0x4f, 0x4e,
-	0x5f, 0x46, 0x41, 0x49, 0x4c, 0x55, 0x52, 0x45, 0x10, 0x03, 0x1a, 0x31, 0x0a, 0x05, 0x52, 0x75,
-	0x6e, 0x41, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28,
-	0x09, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70,
-	0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x1a, 0x39, 0x0a,
-	0x0b, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03,
-	0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14,
-	0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76,
-	0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x6d, 0x0a, 0x06, 0x4c, 0x69, 0x6d, 0x69,
-	0x74, 0x73, 0x12, 0x17, 0x0a, 0x07, 0x6d, 0x61, 0x78, 0x5f, 0x63, 0x70, 0x75, 0x18, 0x01, 0x20,
-	0x01, 0x28, 0x01, 0x52, 0x06, 0x6d, 0x61, 0x78, 0x43, 0x70, 0x75, 0x12, 0x24, 0x0a, 0x0e, 0x73,
-	0x6f, 0x66, 0x74, 0x5f, 0x6d, 0x65, 0x6d, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x02, 0x20,
-	0x01, 0x28, 0x03, 0x52, 0x0c, 0x73, 0x6f, 0x66, 0x74, 0x4d, 0x65, 0x6d, 0x42, 0x79, 0x74, 0x65,
-	0x73, 0x12, 0x24, 0x0a, 0x0e, 0x68, 0x61, 0x72, 0x64, 0x5f, 0x6d, 0x65, 0x6d, 0x5f, 0x62, 0x79,
-	0x74, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x68, 0x61, 0x72, 0x64, 0x4d,
-	0x65, 0x6d, 0x42, 0x79, 0x74, 0x65, 0x73, 0x22, 0x9b, 0x01, 0x0a, 0x16, 0x53, 0x74, 0x61, 0x72,
-	0x74, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
-	0x73, 0x65, 0x12, 0x35, 0x0a, 0x08, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x6f, 0x6b, 0x18, 0x01,
-	0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x63, 0x6f, 0x6e, 0x74,
-	0x61, 0x69, 0x6e, 0x65, 0x72, 0x7a, 0x2e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x4f, 0x4b, 0x48, 0x00,
-	0x52, 0x07, 0x73, 0x74, 0x61, 0x72, 0x74, 0x4f, 0x6b, 0x12, 0x3e, 0x0a, 0x0b, 0x73, 0x74, 0x61,
-	0x72, 0x74, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b,
-	0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x7a,
-	0x2e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x48, 0x00, 0x52, 0x0a, 0x73,
-	0x74, 0x61, 0x72, 0x74, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x42, 0x0a, 0x0a, 0x08, 0x72, 0x65, 0x73,
-	0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2e, 0x0a, 0x07, 0x53, 0x74, 0x61, 0x72, 0x74, 0x4f, 0x4b,
-	0x12, 0x23, 0x0a, 0x0d, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d,
-	0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63,
-	0x65, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0xab, 0x01, 0x0a, 0x0a, 0x53, 0x74, 0x61, 0x72, 0x74, 0x45,
-	0x72, 0x72, 0x6f, 0x72, 0x12, 0x3f, 0x0a, 0x0a, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x63, 0x6f,
-	0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x20, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e,
+	0x65, 0x73, 0x74, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x05, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x12,
+	0x59, 0x0a, 0x0b, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06,
+	0x20, 0x03, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x63, 0x6f, 0x6e, 0x74,
+	0x61, 0x69, 0x6e, 0x65, 0x72, 0x7a, 0x2e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x74,
+	0x61, 0x69, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x45, 0x6e, 0x76,
+	0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0b, 0x65,
+	0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x31, 0x0a, 0x07, 0x76, 0x6f,
+	0x6c, 0x75, 0x6d, 0x65, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6e,
+	0x6f, 0x69, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x7a, 0x2e, 0x56, 0x6f,
+	0x6c, 0x75, 0x6d, 0x65, 0x52, 0x07, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x12, 0x18, 0x0a,
+	0x07, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07,
+	0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x12, 0x45, 0x0a, 0x03, 0x63, 0x61, 0x70, 0x18, 0x09,
+	0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x63, 0x6f, 0x6e, 0x74,
+	0x61, 0x69, 0x6e, 0x65, 0x72, 0x7a, 0x2e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x74,
+	0x61, 0x69, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x43, 0x61, 0x70,
+	0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x52, 0x03, 0x63, 0x61, 0x70, 0x12, 0x48,
+	0x0a, 0x07, 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32,
+	0x2e, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72,
+	0x7a, 0x2e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72,
+	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x52,
+	0x07, 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x43, 0x0a, 0x06, 0x72, 0x75, 0x6e, 0x5f,
+	0x61, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e,
 	0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x7a, 0x2e, 0x53, 0x74, 0x61, 0x72, 0x74,
-	0x45, 0x72, 0x72, 0x6f, 0x72, 0x2e, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x09, 0x65, 0x72, 0x72, 0x6f,
-	0x72, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73,
-	0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x22,
-	0x42, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x0f, 0x0a, 0x0b, 0x55, 0x4e, 0x53, 0x50, 0x45,
-	0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e,
-	0x4f, 0x57, 0x4e, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x4e, 0x4f, 0x54, 0x5f, 0x46, 0x4f, 0x55,
-	0x4e, 0x44, 0x10, 0x02, 0x12, 0x0d, 0x0a, 0x09, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x55, 0x53, 0x45,
-	0x44, 0x10, 0x03, 0x22, 0x6b, 0x0a, 0x14, 0x53, 0x74, 0x6f, 0x70, 0x43, 0x6f, 0x6e, 0x74, 0x61,
-	0x69, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x69,
+	0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
+	0x2e, 0x52, 0x75, 0x6e, 0x41, 0x73, 0x52, 0x05, 0x72, 0x75, 0x6e, 0x41, 0x73, 0x12, 0x4a, 0x0a,
+	0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x32, 0x2e,
+	0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x7a, 0x2e,
+	0x53, 0x74, 0x61, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x52, 0x65,
+	0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72,
+	0x79, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x45, 0x0a, 0x06, 0x6c, 0x69, 0x6d,
+	0x69, 0x74, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x67, 0x6e, 0x6f, 0x69,
+	0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x7a, 0x2e, 0x53, 0x74, 0x61, 0x72,
+	0x74, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
+	0x74, 0x2e, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x52, 0x06, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x73,
+	0x1a, 0x3e, 0x0a, 0x04, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x6e, 0x74, 0x65,
+	0x72, 0x6e, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x69, 0x6e, 0x74, 0x65,
+	0x72, 0x6e, 0x61, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c,
+	0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c,
+	0x1a, 0x3e, 0x0a, 0x10, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x45,
+	0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28,
+	0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18,
+	0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01,
+	0x1a, 0x38, 0x0a, 0x0c, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73,
+	0x12, 0x10, 0x0a, 0x03, 0x61, 0x64, 0x64, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x03, 0x61,
+	0x64, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x18, 0x02, 0x20, 0x03,
+	0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x1a, 0xb8, 0x01, 0x0a, 0x07, 0x52,
+	0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x4d, 0x0a, 0x06, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79,
+	0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x35, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x63, 0x6f,
+	0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x7a, 0x2e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x43, 0x6f,
+	0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x52,
+	0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x2e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x06, 0x70,
+	0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x74, 0x74, 0x65, 0x6d, 0x70, 0x74,
+	0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x61, 0x74, 0x74, 0x65, 0x6d, 0x70, 0x74,
+	0x73, 0x22, 0x42, 0x0a, 0x06, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x08, 0x0a, 0x04, 0x4e,
+	0x4f, 0x4e, 0x45, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x41, 0x4c, 0x57, 0x41, 0x59, 0x53, 0x10,
+	0x01, 0x12, 0x12, 0x0a, 0x0e, 0x55, 0x4e, 0x4c, 0x45, 0x53, 0x53, 0x5f, 0x53, 0x54, 0x4f, 0x50,
+	0x50, 0x45, 0x44, 0x10, 0x02, 0x12, 0x0e, 0x0a, 0x0a, 0x4f, 0x4e, 0x5f, 0x46, 0x41, 0x49, 0x4c,
+	0x55, 0x52, 0x45, 0x10, 0x03, 0x1a, 0x31, 0x0a, 0x05, 0x52, 0x75, 0x6e, 0x41, 0x73, 0x12, 0x12,
+	0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x73,
+	0x65, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28,
+	0x09, 0x52, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x1a, 0x39, 0x0a, 0x0b, 0x4c, 0x61, 0x62, 0x65,
+	0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01,
+	0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c,
+	0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a,
+	0x02, 0x38, 0x01, 0x1a, 0x6d, 0x0a, 0x06, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x12, 0x17, 0x0a,
+	0x07, 0x6d, 0x61, 0x78, 0x5f, 0x63, 0x70, 0x75, 0x18, 0x01, 0x20, 0x01, 0x28, 0x01, 0x52, 0x06,
+	0x6d, 0x61, 0x78, 0x43, 0x70, 0x75, 0x12, 0x24, 0x0a, 0x0e, 0x73, 0x6f, 0x66, 0x74, 0x5f, 0x6d,
+	0x65, 0x6d, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c,
+	0x73, 0x6f, 0x66, 0x74, 0x4d, 0x65, 0x6d, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x24, 0x0a, 0x0e,
+	0x68, 0x61, 0x72, 0x64, 0x5f, 0x6d, 0x65, 0x6d, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x03,
+	0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x68, 0x61, 0x72, 0x64, 0x4d, 0x65, 0x6d, 0x42, 0x79, 0x74,
+	0x65, 0x73, 0x22, 0x9b, 0x01, 0x0a, 0x16, 0x53, 0x74, 0x61, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x74,
+	0x61, 0x69, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x35, 0x0a,
+	0x08, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x6f, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
+	0x18, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72,
+	0x7a, 0x2e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x4f, 0x4b, 0x48, 0x00, 0x52, 0x07, 0x73, 0x74, 0x61,
+	0x72, 0x74, 0x4f, 0x6b, 0x12, 0x3e, 0x0a, 0x0b, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x65, 0x72,
+	0x72, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6e, 0x6f, 0x69,
+	0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x7a, 0x2e, 0x53, 0x74, 0x61, 0x72,
+	0x74, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x48, 0x00, 0x52, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x45,
+	0x72, 0x72, 0x6f, 0x72, 0x42, 0x0a, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
+	0x22, 0x2e, 0x0a, 0x07, 0x53, 0x74, 0x61, 0x72, 0x74, 0x4f, 0x4b, 0x12, 0x23, 0x0a, 0x0d, 0x69,
 	0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01,
 	0x28, 0x09, 0x52, 0x0c, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65,
-	0x12, 0x14, 0x0a, 0x05, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52,
-	0x05, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x73, 0x74, 0x61, 0x72,
-	0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74,
-	0x22, 0xb1, 0x01, 0x0a, 0x15, 0x53, 0x74, 0x6f, 0x70, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e,
-	0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3f, 0x0a, 0x04, 0x63, 0x6f,
-	0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e,
-	0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x7a, 0x2e, 0x53, 0x74, 0x6f, 0x70, 0x43,
-	0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
-	0x2e, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x64,
-	0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x64, 0x65,
-	0x74, 0x61, 0x69, 0x6c, 0x73, 0x22, 0x3d, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x0f, 0x0a,
-	0x0b, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x08,
-	0x0a, 0x04, 0x42, 0x55, 0x53, 0x59, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x4e, 0x4f, 0x54, 0x5f,
-	0x46, 0x4f, 0x55, 0x4e, 0x44, 0x10, 0x02, 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x55, 0x43, 0x43, 0x45,
-	0x53, 0x53, 0x10, 0x03, 0x22, 0xcf, 0x01, 0x0a, 0x16, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43,
-	0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12,
-	0x23, 0x0a, 0x0d, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65,
-	0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65,
-	0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x5f, 0x6e, 0x61,
-	0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x4e,
-	0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x61, 0x67,
-	0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x54, 0x61, 0x67,
-	0x12, 0x3e, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b,
-	0x32, 0x26, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65,
-	0x72, 0x7a, 0x2e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65,
-	0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73,
-	0x12, 0x14, 0x0a, 0x05, 0x61, 0x73, 0x79, 0x6e, 0x63, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52,
-	0x05, 0x61, 0x73, 0x79, 0x6e, 0x63, 0x22, 0xa2, 0x01, 0x0a, 0x17, 0x55, 0x70, 0x64, 0x61, 0x74,
-	0x65, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
-	0x73, 0x65, 0x12, 0x38, 0x0a, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6f, 0x6b, 0x18,
-	0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x63, 0x6f, 0x6e,
-	0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x7a, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x4b,
-	0x48, 0x00, 0x52, 0x08, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x6b, 0x12, 0x41, 0x0a, 0x0c,
-	0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01,
-	0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69,
-	0x6e, 0x65, 0x72, 0x7a, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72,
-	0x48, 0x00, 0x52, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x42,
-	0x0a, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x4a, 0x0a, 0x08, 0x55,
-	0x70, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x4b, 0x12, 0x23, 0x0a, 0x0d, 0x69, 0x6e, 0x73, 0x74, 0x61,
-	0x6e, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c,
-	0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08,
-	0x69, 0x73, 0x5f, 0x61, 0x73, 0x79, 0x6e, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07,
-	0x69, 0x73, 0x41, 0x73, 0x79, 0x6e, 0x63, 0x22, 0xcf, 0x01, 0x0a, 0x0b, 0x55, 0x70, 0x64, 0x61,
-	0x74, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x40, 0x0a, 0x0a, 0x65, 0x72, 0x72, 0x6f, 0x72,
-	0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x67, 0x6e,
-	0x6f, 0x69, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x7a, 0x2e, 0x55, 0x70,
-	0x64, 0x61, 0x74, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x2e, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x09,
-	0x65, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x64, 0x65, 0x74,
-	0x61, 0x69, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x64, 0x65, 0x74, 0x61,
-	0x69, 0x6c, 0x73, 0x22, 0x64, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x0f, 0x0a, 0x0b, 0x55,
-	0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09,
-	0x4e, 0x4f, 0x54, 0x5f, 0x46, 0x4f, 0x55, 0x4e, 0x44, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x50,
-	0x4f, 0x52, 0x54, 0x5f, 0x55, 0x53, 0x45, 0x44, 0x10, 0x02, 0x12, 0x0f, 0x0a, 0x0b, 0x4e, 0x4f,
-	0x54, 0x5f, 0x52, 0x55, 0x4e, 0x4e, 0x49, 0x4e, 0x47, 0x10, 0x03, 0x12, 0x0f, 0x0a, 0x0b, 0x4e,
-	0x4f, 0x54, 0x5f, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x44, 0x10, 0x04, 0x12, 0x0b, 0x0a, 0x07,
-	0x46, 0x41, 0x49, 0x4c, 0x55, 0x52, 0x45, 0x10, 0x05, 0x22, 0x49, 0x0a, 0x0a, 0x4c, 0x6f, 0x67,
-	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x69, 0x6e, 0x73, 0x74, 0x61,
-	0x6e, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c,
-	0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06,
-	0x66, 0x6f, 0x6c, 0x6c, 0x6f, 0x77, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x66, 0x6f,
-	0x6c, 0x6c, 0x6f, 0x77, 0x22, 0x1f, 0x0a, 0x0b, 0x4c, 0x6f, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f,
-	0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
-	0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0xb9, 0x01, 0x0a, 0x12, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x44,
-	0x72, 0x69, 0x76, 0x65, 0x72, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x3c, 0x0a, 0x04,
-	0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x67, 0x6e, 0x6f,
-	0x69, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x7a, 0x2e, 0x4c, 0x6f, 0x63,
-	0x61, 0x6c, 0x44, 0x72, 0x69, 0x76, 0x65, 0x72, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e,
-	0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x70,
-	0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x70, 0x74,
-	0x69, 0x6f, 0x6e, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x70, 0x6f, 0x69,
-	0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x70,
-	0x6f, 0x69, 0x6e, 0x74, 0x22, 0x2b, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x10,
-	0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44,
-	0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4e, 0x4f, 0x4e, 0x45, 0x10,
-	0x01, 0x22, 0xc1, 0x02, 0x0a, 0x13, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x56, 0x6f, 0x6c, 0x75,
-	0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d,
-	0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x2f, 0x0a,
-	0x06, 0x64, 0x72, 0x69, 0x76, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x17, 0x2e,
+	0x22, 0xab, 0x01, 0x0a, 0x0a, 0x53, 0x74, 0x61, 0x72, 0x74, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12,
+	0x3f, 0x0a, 0x0a, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20,
+	0x01, 0x28, 0x0e, 0x32, 0x20, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61,
+	0x69, 0x6e, 0x65, 0x72, 0x7a, 0x2e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x45, 0x72, 0x72, 0x6f, 0x72,
+	0x2e, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x09, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65,
+	0x12, 0x18, 0x0a, 0x07, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28,
+	0x09, 0x52, 0x07, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x22, 0x42, 0x0a, 0x04, 0x43, 0x6f,
+	0x64, 0x65, 0x12, 0x0f, 0x0a, 0x0b, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45,
+	0x44, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x01,
+	0x12, 0x0d, 0x0a, 0x09, 0x4e, 0x4f, 0x54, 0x5f, 0x46, 0x4f, 0x55, 0x4e, 0x44, 0x10, 0x02, 0x12,
+	0x0d, 0x0a, 0x09, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x55, 0x53, 0x45, 0x44, 0x10, 0x03, 0x22, 0x6b,
+	0x0a, 0x14, 0x53, 0x74, 0x6f, 0x70, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x52,
+	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e,
+	0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x69,
+	0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x66,
+	0x6f, 0x72, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x66, 0x6f, 0x72, 0x63,
+	0x65, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x03, 0x20, 0x01,
+	0x28, 0x08, 0x52, 0x07, 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x22, 0xb1, 0x01, 0x0a, 0x15,
+	0x53, 0x74, 0x6f, 0x70, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x73,
+	0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3f, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20,
+	0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61,
+	0x69, 0x6e, 0x65, 0x72, 0x7a, 0x2e, 0x53, 0x74, 0x6f, 0x70, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69,
+	0x6e, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x43, 0x6f, 0x64, 0x65,
+	0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c,
+	0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73,
+	0x22, 0x3d, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x0f, 0x0a, 0x0b, 0x55, 0x4e, 0x53, 0x50,
+	0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x42, 0x55, 0x53,
+	0x59, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x4e, 0x4f, 0x54, 0x5f, 0x46, 0x4f, 0x55, 0x4e, 0x44,
+	0x10, 0x02, 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x55, 0x43, 0x43, 0x45, 0x53, 0x53, 0x10, 0x03, 0x22,
+	0xcf, 0x01, 0x0a, 0x16, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69,
+	0x6e, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x69, 0x6e,
+	0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,
+	0x09, 0x52, 0x0c, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12,
+	0x1d, 0x0a, 0x0a, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20,
+	0x01, 0x28, 0x09, 0x52, 0x09, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1b,
+	0x0a, 0x09, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x61, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28,
+	0x09, 0x52, 0x08, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x54, 0x61, 0x67, 0x12, 0x3e, 0x0a, 0x06, 0x70,
+	0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x67, 0x6e,
+	0x6f, 0x69, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x7a, 0x2e, 0x53, 0x74,
+	0x61, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75,
+	0x65, 0x73, 0x74, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x61,
+	0x73, 0x79, 0x6e, 0x63, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x61, 0x73, 0x79, 0x6e,
+	0x63, 0x22, 0xa2, 0x01, 0x0a, 0x17, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74,
+	0x61, 0x69, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x38, 0x0a,
+	0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6f, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,
+	0x32, 0x19, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65,
+	0x72, 0x7a, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x4b, 0x48, 0x00, 0x52, 0x08, 0x75,
+	0x70, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x6b, 0x12, 0x41, 0x0a, 0x0c, 0x75, 0x70, 0x64, 0x61, 0x74,
+	0x65, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e,
 	0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x7a, 0x2e,
-	0x44, 0x72, 0x69, 0x76, 0x65, 0x72, 0x52, 0x06, 0x64, 0x72, 0x69, 0x76, 0x65, 0x72, 0x12, 0x55,
-	0x0a, 0x13, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x6f, 0x70,
-	0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x67, 0x6e,
-	0x6f, 0x69, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x7a, 0x2e, 0x4c, 0x6f,
-	0x63, 0x61, 0x6c, 0x44, 0x72, 0x69, 0x76, 0x65, 0x72, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73,
-	0x48, 0x00, 0x52, 0x11, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x4d, 0x6f, 0x75, 0x6e, 0x74, 0x4f, 0x70,
-	0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x48, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18,
-	0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x63, 0x6f, 0x6e,
-	0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x7a, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x56, 0x6f,
-	0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x4c, 0x61, 0x62, 0x65,
-	0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x1a,
-	0x39, 0x0a, 0x0b, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10,
-	0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79,
-	0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
-	0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x6f, 0x70,
-	0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x2a, 0x0a, 0x14, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x56,
-	0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a,
-	0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d,
-	0x65, 0x22, 0x3f, 0x0a, 0x13, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x56, 0x6f, 0x6c, 0x75, 0x6d,
-	0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65,
-	0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05,
-	0x66, 0x6f, 0x72, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x66, 0x6f, 0x72,
-	0x63, 0x65, 0x22, 0x16, 0x0a, 0x14, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x56, 0x6f, 0x6c, 0x75,
-	0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x88, 0x01, 0x0a, 0x11, 0x4c,
-	0x69, 0x73, 0x74, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
-	0x12, 0x41, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b,
-	0x32, 0x29, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65,
-	0x72, 0x7a, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x71,
-	0x75, 0x65, 0x73, 0x74, 0x2e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x06, 0x66, 0x69, 0x6c,
-	0x74, 0x65, 0x72, 0x1a, 0x30, 0x0a, 0x06, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x10, 0x0a,
-	0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12,
-	0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05,
-	0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x82, 0x03, 0x0a, 0x12, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x6f,
-	0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04,
-	0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65,
-	0x12, 0x34, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28,
-	0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
-	0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x07, 0x63,
-	0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x72, 0x69, 0x76, 0x65, 0x72,
-	0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x72, 0x69, 0x76, 0x65, 0x72, 0x12, 0x4a,
-	0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32,
-	0x30, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72,
-	0x7a, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70,
-	0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72,
-	0x79, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x47, 0x0a, 0x06, 0x6c, 0x61,
-	0x62, 0x65, 0x6c, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x67, 0x6e, 0x6f,
+	0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x48, 0x00, 0x52, 0x0b, 0x75,
+	0x70, 0x64, 0x61, 0x74, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x42, 0x0a, 0x0a, 0x08, 0x72, 0x65,
+	0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x4a, 0x0a, 0x08, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65,
+	0x4f, 0x4b, 0x12, 0x23, 0x0a, 0x0d, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x6e,
+	0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x69, 0x6e, 0x73, 0x74, 0x61,
+	0x6e, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x69, 0x73, 0x5f, 0x61, 0x73,
+	0x79, 0x6e, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x69, 0x73, 0x41, 0x73, 0x79,
+	0x6e, 0x63, 0x22, 0xcf, 0x01, 0x0a, 0x0b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x45, 0x72, 0x72,
+	0x6f, 0x72, 0x12, 0x40, 0x0a, 0x0a, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x63, 0x6f, 0x64, 0x65,
+	0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x63, 0x6f,
+	0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x7a, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x45,
+	0x72, 0x72, 0x6f, 0x72, 0x2e, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x09, 0x65, 0x72, 0x72, 0x6f, 0x72,
+	0x43, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18,
+	0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x22, 0x64,
+	0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x0f, 0x0a, 0x0b, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43,
+	0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x4e, 0x4f, 0x54, 0x5f, 0x46,
+	0x4f, 0x55, 0x4e, 0x44, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x55,
+	0x53, 0x45, 0x44, 0x10, 0x02, 0x12, 0x0f, 0x0a, 0x0b, 0x4e, 0x4f, 0x54, 0x5f, 0x52, 0x55, 0x4e,
+	0x4e, 0x49, 0x4e, 0x47, 0x10, 0x03, 0x12, 0x0f, 0x0a, 0x0b, 0x4e, 0x4f, 0x54, 0x5f, 0x55, 0x50,
+	0x44, 0x41, 0x54, 0x45, 0x44, 0x10, 0x04, 0x12, 0x0b, 0x0a, 0x07, 0x46, 0x41, 0x49, 0x4c, 0x55,
+	0x52, 0x45, 0x10, 0x05, 0x22, 0x49, 0x0a, 0x0a, 0x4c, 0x6f, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65,
+	0x73, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x6e,
+	0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x69, 0x6e, 0x73, 0x74, 0x61,
+	0x6e, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x6f, 0x6c, 0x6c, 0x6f,
+	0x77, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x66, 0x6f, 0x6c, 0x6c, 0x6f, 0x77, 0x22,
+	0x1f, 0x0a, 0x0b, 0x4c, 0x6f, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10,
+	0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67,
+	0x22, 0xb9, 0x01, 0x0a, 0x12, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x44, 0x72, 0x69, 0x76, 0x65, 0x72,
+	0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x3c, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18,
+	0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x63, 0x6f, 0x6e,
+	0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x7a, 0x2e, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x44, 0x72, 0x69,
+	0x76, 0x65, 0x72, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52,
+	0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73,
+	0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12,
+	0x1e, 0x0a, 0x0a, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x03, 0x20,
+	0x01, 0x28, 0x09, 0x52, 0x0a, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x22,
+	0x2b, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x10, 0x54, 0x59, 0x50, 0x45, 0x5f,
+	0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0d, 0x0a,
+	0x09, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x01, 0x22, 0xc1, 0x02, 0x0a,
+	0x13, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x71,
+	0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01,
+	0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x2f, 0x0a, 0x06, 0x64, 0x72, 0x69, 0x76,
+	0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x17, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e,
+	0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x7a, 0x2e, 0x44, 0x72, 0x69, 0x76, 0x65,
+	0x72, 0x52, 0x06, 0x64, 0x72, 0x69, 0x76, 0x65, 0x72, 0x12, 0x55, 0x0a, 0x13, 0x6c, 0x6f, 0x63,
+	0x61, 0x6c, 0x5f, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73,
+	0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x63, 0x6f,
+	0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x7a, 0x2e, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x44, 0x72,
+	0x69, 0x76, 0x65, 0x72, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x48, 0x00, 0x52, 0x11, 0x6c,
+	0x6f, 0x63, 0x61, 0x6c, 0x4d, 0x6f, 0x75, 0x6e, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73,
+	0x12, 0x48, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b,
+	0x32, 0x30, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65,
+	0x72, 0x7a, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52,
+	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74,
+	0x72, 0x79, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x1a, 0x39, 0x0a, 0x0b, 0x4c, 0x61,
+	0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79,
+	0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76,
+	0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75,
+	0x65, 0x3a, 0x02, 0x38, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73,
+	0x22, 0x2a, 0x0a, 0x14, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65,
+	0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65,
+	0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3f, 0x0a, 0x13,
+	0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75,
+	0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,
+	0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x6f, 0x72, 0x63, 0x65,
+	0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x22, 0x16, 0x0a,
+	0x14, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x73,
+	0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x88, 0x01, 0x0a, 0x11, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x6f,
+	0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x41, 0x0a, 0x06, 0x66,
+	0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67, 0x6e,
+	0x6f, 0x69, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x7a, 0x2e, 0x4c, 0x69,
+	0x73, 0x74, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e,
+	0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x1a, 0x30,
+	0x0a, 0x06, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18,
+	0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61,
+	0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65,
+	0x22, 0x82, 0x03, 0x0a, 0x12, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52,
+	0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18,
+	0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x34, 0x0a, 0x07, 0x63,
+	0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67,
+	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54,
+	0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65,
+	0x64, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x72, 0x69, 0x76, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28,
+	0x09, 0x52, 0x06, 0x64, 0x72, 0x69, 0x76, 0x65, 0x72, 0x12, 0x4a, 0x0a, 0x07, 0x6f, 0x70, 0x74,
+	0x69, 0x6f, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x67, 0x6e, 0x6f,
 	0x69, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x7a, 0x2e, 0x4c, 0x69, 0x73,
 	0x74, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e,
-	0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x6c, 0x61, 0x62,
-	0x65, 0x6c, 0x73, 0x1a, 0x3a, 0x0a, 0x0c, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e,
-	0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
-	0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02,
-	0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a,
-	0x39, 0x0a, 0x0b, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10,
+	0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x6f, 0x70,
+	0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x47, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18,
+	0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x63, 0x6f, 0x6e,
+	0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x7a, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x6f, 0x6c, 0x75,
+	0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c,
+	0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x1a, 0x3a,
+	0x0a, 0x0c, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10,
 	0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79,
 	0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
-	0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x65, 0x0a, 0x12, 0x53, 0x74,
-	0x61, 0x72, 0x74, 0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
-	0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04,
-	0x6e, 0x61, 0x6d, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65,
-	0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x69, 0x6e, 0x73,
-	0x74, 0x61, 0x6e, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x6f, 0x6e,
-	0x66, 0x69, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69,
-	0x67, 0x22, 0x3a, 0x0a, 0x13, 0x53, 0x74, 0x61, 0x72, 0x74, 0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e,
-	0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x69, 0x6e, 0x73, 0x74,
-	0x61, 0x6e, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
-	0x0c, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x38, 0x0a,
-	0x11, 0x53, 0x74, 0x6f, 0x70, 0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65,
-	0x73, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x6e,
-	0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x69, 0x6e, 0x73, 0x74, 0x61,
-	0x6e, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x14, 0x0a, 0x12, 0x53, 0x74, 0x6f, 0x70, 0x50,
-	0x6c, 0x75, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x39, 0x0a,
-	0x12, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75,
-	0x65, 0x73, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x5f,
+	0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x39, 0x0a, 0x0b, 0x4c, 0x61,
+	0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79,
+	0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76,
+	0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75,
+	0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x65, 0x0a, 0x12, 0x53, 0x74, 0x61, 0x72, 0x74, 0x50, 0x6c,
+	0x75, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e,
+	0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12,
+	0x23, 0x0a, 0x0d, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65,
+	0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65,
+	0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x03,
+	0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0x3a, 0x0a, 0x13,
+	0x53, 0x74, 0x61, 0x72, 0x74, 0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f,
+	0x6e, 0x73, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x5f,
 	0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x69, 0x6e, 0x73, 0x74,
-	0x61, 0x6e, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x7f, 0x0a, 0x06, 0x50, 0x6c, 0x75, 0x67,
-	0x69, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02,
-	0x69, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x6e,
-	0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x69, 0x6e, 0x73, 0x74, 0x61,
-	0x6e, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x28, 0x0a, 0x04, 0x68, 0x61, 0x73, 0x68, 0x18,
-	0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x74, 0x79, 0x70,
-	0x65, 0x73, 0x2e, 0x48, 0x61, 0x73, 0x68, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x68, 0x61, 0x73,
-	0x68, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28,
-	0x09, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0x48, 0x0a, 0x13, 0x4c, 0x69, 0x73,
-	0x74, 0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
-	0x12, 0x31, 0x0a, 0x07, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28,
-	0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e,
-	0x65, 0x72, 0x7a, 0x2e, 0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x52, 0x07, 0x70, 0x6c, 0x75, 0x67,
-	0x69, 0x6e, 0x73, 0x22, 0x3a, 0x0a, 0x13, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x50, 0x6c, 0x75,
-	0x67, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x69, 0x6e,
-	0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,
-	0x09, 0x52, 0x0c, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x22,
-	0x16, 0x0a, 0x14, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x52,
-	0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2a, 0x2a, 0x0a, 0x06, 0x44, 0x72, 0x69, 0x76, 0x65,
-	0x72, 0x12, 0x12, 0x0a, 0x0e, 0x44, 0x53, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46,
-	0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x44, 0x53, 0x5f, 0x4c, 0x4f, 0x43, 0x41,
-	0x4c, 0x10, 0x01, 0x32, 0xdb, 0x0b, 0x0a, 0x0a, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65,
-	0x72, 0x7a, 0x12, 0x4f, 0x0a, 0x06, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x12, 0x1e, 0x2e, 0x67,
-	0x6e, 0x6f, 0x69, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x7a, 0x2e, 0x44,
-	0x65, 0x70, 0x6c, 0x6f, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x67,
-	0x6e, 0x6f, 0x69, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x7a, 0x2e, 0x44,
-	0x65, 0x70, 0x6c, 0x6f, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x28,
-	0x01, 0x30, 0x01, 0x12, 0x56, 0x0a, 0x09, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65,
-	0x12, 0x21, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65,
-	0x72, 0x7a, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75,
-	0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61,
-	0x69, 0x6e, 0x65, 0x72, 0x7a, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52,
-	0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x30, 0x01, 0x12, 0x5a, 0x0a, 0x0b, 0x52,
-	0x65, 0x6d, 0x6f, 0x76, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x23, 0x2e, 0x67, 0x6e, 0x6f,
-	0x69, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x7a, 0x2e, 0x52, 0x65, 0x6d,
-	0x6f, 0x76, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
-	0x24, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72,
-	0x7a, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73,
-	0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x66, 0x0a, 0x0f, 0x52, 0x65, 0x6d, 0x6f, 0x76,
-	0x65, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x12, 0x27, 0x2e, 0x67, 0x6e, 0x6f,
+	0x61, 0x6e, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x38, 0x0a, 0x11, 0x53, 0x74, 0x6f, 0x70,
+	0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x23, 0x0a,
+	0x0d, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01,
+	0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x4e, 0x61,
+	0x6d, 0x65, 0x22, 0x14, 0x0a, 0x12, 0x53, 0x74, 0x6f, 0x70, 0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e,
+	0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x39, 0x0a, 0x12, 0x4c, 0x69, 0x73, 0x74,
+	0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x23,
+	0x0a, 0x0d, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18,
+	0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x4e,
+	0x61, 0x6d, 0x65, 0x22, 0x7f, 0x0a, 0x06, 0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x12, 0x0e, 0x0a,
+	0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x23, 0x0a,
+	0x0d, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02,
+	0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x4e, 0x61,
+	0x6d, 0x65, 0x12, 0x28, 0x0a, 0x04, 0x68, 0x61, 0x73, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b,
+	0x32, 0x14, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x48, 0x61,
+	0x73, 0x68, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x68, 0x61, 0x73, 0x68, 0x12, 0x16, 0x0a, 0x06,
+	0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x6f,
+	0x6e, 0x66, 0x69, 0x67, 0x22, 0x48, 0x0a, 0x13, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x6c, 0x75, 0x67,
+	0x69, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x31, 0x0a, 0x07, 0x70,
+	0x6c, 0x75, 0x67, 0x69, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67,
+	0x6e, 0x6f, 0x69, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x7a, 0x2e, 0x50,
+	0x6c, 0x75, 0x67, 0x69, 0x6e, 0x52, 0x07, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x73, 0x22, 0x3a,
+	0x0a, 0x13, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x52, 0x65,
+	0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63,
+	0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x69, 0x6e,
+	0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x16, 0x0a, 0x14, 0x52, 0x65,
+	0x6d, 0x6f, 0x76, 0x65, 0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
+	0x73, 0x65, 0x2a, 0x2a, 0x0a, 0x06, 0x44, 0x72, 0x69, 0x76, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x0e,
+	0x44, 0x53, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00,
+	0x12, 0x0c, 0x0a, 0x08, 0x44, 0x53, 0x5f, 0x4c, 0x4f, 0x43, 0x41, 0x4c, 0x10, 0x01, 0x32, 0xdb,
+	0x0b, 0x0a, 0x0a, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x7a, 0x12, 0x4f, 0x0a,
+	0x06, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x12, 0x1e, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x63,
+	0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x7a, 0x2e, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79,
+	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x63,
+	0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x7a, 0x2e, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79,
+	0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x28, 0x01, 0x30, 0x01, 0x12, 0x56,
+	0x0a, 0x09, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x21, 0x2e, 0x67, 0x6e,
+	0x6f, 0x69, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x7a, 0x2e, 0x4c, 0x69,
+	0x73, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22,
+	0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x7a,
+	0x2e, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
+	0x73, 0x65, 0x22, 0x00, 0x30, 0x01, 0x12, 0x5a, 0x0a, 0x0b, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65,
+	0x49, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x23, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x63, 0x6f, 0x6e,
+	0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x7a, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x49, 0x6d,
+	0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x67, 0x6e, 0x6f,
 	0x69, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x7a, 0x2e, 0x52, 0x65, 0x6d,
-	0x6f, 0x76, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75,
-	0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61,
-	0x69, 0x6e, 0x65, 0x72, 0x7a, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x43, 0x6f, 0x6e, 0x74,
-	0x61, 0x69, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12,
-	0x62, 0x0a, 0x0d, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72,
-	0x12, 0x25, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65,
-	0x72, 0x7a, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72,
-	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x63,
-	0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x7a, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6f,
-	0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22,
-	0x00, 0x30, 0x01, 0x12, 0x63, 0x0a, 0x0e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x74,
-	0x61, 0x69, 0x6e, 0x65, 0x72, 0x12, 0x26, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x63, 0x6f, 0x6e,
-	0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x7a, 0x2e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x43, 0x6f, 0x6e,
-	0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e,
-	0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x7a, 0x2e,
-	0x53, 0x74, 0x61, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x52, 0x65,
-	0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x60, 0x0a, 0x0d, 0x53, 0x74, 0x6f, 0x70,
-	0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x12, 0x25, 0x2e, 0x67, 0x6e, 0x6f, 0x69,
-	0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x7a, 0x2e, 0x53, 0x74, 0x6f, 0x70,
-	0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
-	0x1a, 0x26, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65,
-	0x72, 0x7a, 0x2e, 0x53, 0x74, 0x6f, 0x70, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72,
-	0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x66, 0x0a, 0x0f, 0x55, 0x70,
-	0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x12, 0x27, 0x2e,
-	0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x7a, 0x2e,
-	0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x52,
-	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x63, 0x6f,
-	0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x7a, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43,
-	0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
-	0x22, 0x00, 0x12, 0x44, 0x0a, 0x03, 0x4c, 0x6f, 0x67, 0x12, 0x1b, 0x2e, 0x67, 0x6e, 0x6f, 0x69,
-	0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x7a, 0x2e, 0x4c, 0x6f, 0x67, 0x52,
-	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x63, 0x6f,
-	0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x7a, 0x2e, 0x4c, 0x6f, 0x67, 0x52, 0x65, 0x73, 0x70,
-	0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x30, 0x01, 0x12, 0x5d, 0x0a, 0x0c, 0x43, 0x72, 0x65, 0x61,
-	0x74, 0x65, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x12, 0x24, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e,
-	0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x7a, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74,
-	0x65, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25,
+	0x6f, 0x76, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
+	0x22, 0x00, 0x12, 0x66, 0x0a, 0x0f, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x43, 0x6f, 0x6e, 0x74,
+	0x61, 0x69, 0x6e, 0x65, 0x72, 0x12, 0x27, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x63, 0x6f, 0x6e,
+	0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x7a, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x43, 0x6f,
+	0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28,
 	0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x7a,
-	0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x73,
-	0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x5d, 0x0a, 0x0c, 0x52, 0x65, 0x6d, 0x6f, 0x76,
-	0x65, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x12, 0x24, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x63,
-	0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x7a, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65,
-	0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e,
-	0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x7a, 0x2e,
-	0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70,
-	0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x59, 0x0a, 0x0a, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x6f,
-	0x6c, 0x75, 0x6d, 0x65, 0x12, 0x22, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x63, 0x6f, 0x6e, 0x74,
-	0x61, 0x69, 0x6e, 0x65, 0x72, 0x7a, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x6f, 0x6c, 0x75, 0x6d,
-	0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e,
-	0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x7a, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x56,
-	0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x30,
-	0x01, 0x12, 0x5a, 0x0a, 0x0b, 0x53, 0x74, 0x61, 0x72, 0x74, 0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e,
-	0x12, 0x23, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65,
+	0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72,
+	0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x62, 0x0a, 0x0d, 0x4c, 0x69,
+	0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x12, 0x25, 0x2e, 0x67, 0x6e,
+	0x6f, 0x69, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x7a, 0x2e, 0x4c, 0x69,
+	0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65,
+	0x73, 0x74, 0x1a, 0x26, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69,
+	0x6e, 0x65, 0x72, 0x7a, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e,
+	0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x30, 0x01, 0x12, 0x63,
+	0x0a, 0x0e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72,
+	0x12, 0x26, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65,
+	0x72, 0x7a, 0x2e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65,
+	0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e,
+	0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x7a, 0x2e, 0x53, 0x74, 0x61, 0x72, 0x74,
+	0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
+	0x65, 0x22, 0x00, 0x12, 0x60, 0x0a, 0x0d, 0x53, 0x74, 0x6f, 0x70, 0x43, 0x6f, 0x6e, 0x74, 0x61,
+	0x69, 0x6e, 0x65, 0x72, 0x12, 0x25, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x63, 0x6f, 0x6e, 0x74,
+	0x61, 0x69, 0x6e, 0x65, 0x72, 0x7a, 0x2e, 0x53, 0x74, 0x6f, 0x70, 0x43, 0x6f, 0x6e, 0x74, 0x61,
+	0x69, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x67, 0x6e,
+	0x6f, 0x69, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x7a, 0x2e, 0x53, 0x74,
+	0x6f, 0x70, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f,
+	0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x66, 0x0a, 0x0f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43,
+	0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x12, 0x27, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e,
+	0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x7a, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74,
+	0x65, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
+	0x74, 0x1a, 0x28, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e,
+	0x65, 0x72, 0x7a, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69,
+	0x6e, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x44, 0x0a,
+	0x03, 0x4c, 0x6f, 0x67, 0x12, 0x1b, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x63, 0x6f, 0x6e, 0x74,
+	0x61, 0x69, 0x6e, 0x65, 0x72, 0x7a, 0x2e, 0x4c, 0x6f, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
+	0x74, 0x1a, 0x1c, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e,
+	0x65, 0x72, 0x7a, 0x2e, 0x4c, 0x6f, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22,
+	0x00, 0x30, 0x01, 0x12, 0x5d, 0x0a, 0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x56, 0x6f, 0x6c,
+	0x75, 0x6d, 0x65, 0x12, 0x24, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61,
+	0x69, 0x6e, 0x65, 0x72, 0x7a, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x56, 0x6f, 0x6c, 0x75,
+	0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x67, 0x6e, 0x6f, 0x69,
+	0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x7a, 0x2e, 0x43, 0x72, 0x65, 0x61,
+	0x74, 0x65, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
+	0x22, 0x00, 0x12, 0x5d, 0x0a, 0x0c, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x56, 0x6f, 0x6c, 0x75,
+	0x6d, 0x65, 0x12, 0x24, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69,
+	0x6e, 0x65, 0x72, 0x7a, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x56, 0x6f, 0x6c, 0x75, 0x6d,
+	0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e,
+	0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x7a, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76,
+	0x65, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22,
+	0x00, 0x12, 0x59, 0x0a, 0x0a, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x12,
+	0x22, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72,
+	0x7a, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75,
+	0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61,
+	0x69, 0x6e, 0x65, 0x72, 0x7a, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65,
+	0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x30, 0x01, 0x12, 0x5a, 0x0a, 0x0b,
+	0x53, 0x74, 0x61, 0x72, 0x74, 0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x12, 0x23, 0x2e, 0x67, 0x6e,
+	0x6f, 0x69, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x7a, 0x2e, 0x53, 0x74,
+	0x61, 0x72, 0x74, 0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
+	0x1a, 0x24, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65,
 	0x72, 0x7a, 0x2e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x52, 0x65,
+	0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x57, 0x0a, 0x0a, 0x53, 0x74, 0x6f, 0x70,
+	0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x12, 0x22, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x63, 0x6f,
+	0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x7a, 0x2e, 0x53, 0x74, 0x6f, 0x70, 0x50, 0x6c, 0x75,
+	0x67, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x67, 0x6e, 0x6f,
+	0x69, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x7a, 0x2e, 0x53, 0x74, 0x6f,
+	0x70, 0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22,
+	0x00, 0x12, 0x5a, 0x0a, 0x0b, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x73,
+	0x12, 0x23, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65,
+	0x72, 0x7a, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x73, 0x52, 0x65,
 	0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x63, 0x6f, 0x6e,
-	0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x7a, 0x2e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x50, 0x6c, 0x75,
-	0x67, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x57, 0x0a,
-	0x0a, 0x53, 0x74, 0x6f, 0x70, 0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x12, 0x22, 0x2e, 0x67, 0x6e,
-	0x6f, 0x69, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x7a, 0x2e, 0x53, 0x74,
-	0x6f, 0x70, 0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
-	0x23, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72,
-	0x7a, 0x2e, 0x53, 0x74, 0x6f, 0x70, 0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70,
-	0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x5a, 0x0a, 0x0b, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x6c,
-	0x75, 0x67, 0x69, 0x6e, 0x73, 0x12, 0x23, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x63, 0x6f, 0x6e,
 	0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x7a, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x6c, 0x75, 0x67,
-	0x69, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x67, 0x6e, 0x6f,
-	0x69, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x7a, 0x2e, 0x4c, 0x69, 0x73,
-	0x74, 0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
-	0x22, 0x00, 0x12, 0x5d, 0x0a, 0x0c, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x50, 0x6c, 0x75, 0x67,
-	0x69, 0x6e, 0x12, 0x24, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69,
-	0x6e, 0x65, 0x72, 0x7a, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x50, 0x6c, 0x75, 0x67, 0x69,
-	0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e,
-	0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x7a, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76,
-	0x65, 0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22,
-	0x00, 0x42, 0x2f, 0xd2, 0x3e, 0x05, 0x30, 0x2e, 0x31, 0x2e, 0x32, 0x5a, 0x25, 0x67, 0x69, 0x74,
-	0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66,
-	0x69, 0x67, 0x2f, 0x67, 0x6e, 0x6f, 0x69, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65,
-	0x72, 0x7a, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+	0x69, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x5d, 0x0a,
+	0x0c, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x12, 0x24, 0x2e,
+	0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x7a, 0x2e,
+	0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75,
+	0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61,
+	0x69, 0x6e, 0x65, 0x72, 0x7a, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x50, 0x6c, 0x75, 0x67,
+	0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x2f, 0xd2, 0x3e,
+	0x05, 0x30, 0x2e, 0x31, 0x2e, 0x32, 0x5a, 0x25, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63,
+	0x6f, 0x6d, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x67, 0x6e,
+	0x6f, 0x69, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x7a, 0x62, 0x06, 0x70,
+	0x72, 0x6f, 0x74, 0x6f, 0x33,
 }
 
 var (
-	file_containerz_containerz_proto_rawDescOnce sync.Once
-	file_containerz_containerz_proto_rawDescData = file_containerz_containerz_proto_rawDesc
+	file_github_com_openconfig_gnoi_containerz_containerz_proto_rawDescOnce sync.Once
+	file_github_com_openconfig_gnoi_containerz_containerz_proto_rawDescData = file_github_com_openconfig_gnoi_containerz_containerz_proto_rawDesc
 )
 
-func file_containerz_containerz_proto_rawDescGZIP() []byte {
-	file_containerz_containerz_proto_rawDescOnce.Do(func() {
-		file_containerz_containerz_proto_rawDescData = protoimpl.X.CompressGZIP(file_containerz_containerz_proto_rawDescData)
+func file_github_com_openconfig_gnoi_containerz_containerz_proto_rawDescGZIP() []byte {
+	file_github_com_openconfig_gnoi_containerz_containerz_proto_rawDescOnce.Do(func() {
+		file_github_com_openconfig_gnoi_containerz_containerz_proto_rawDescData = protoimpl.X.CompressGZIP(file_github_com_openconfig_gnoi_containerz_containerz_proto_rawDescData)
 	})
-	return file_containerz_containerz_proto_rawDescData
+	return file_github_com_openconfig_gnoi_containerz_containerz_proto_rawDescData
 }
 
-var file_containerz_containerz_proto_enumTypes = make([]protoimpl.EnumInfo, 9)
-var file_containerz_containerz_proto_msgTypes = make([]protoimpl.MessageInfo, 58)
-var file_containerz_containerz_proto_goTypes = []interface{}{
+var file_github_com_openconfig_gnoi_containerz_containerz_proto_enumTypes = make([]protoimpl.EnumInfo, 9)
+var file_github_com_openconfig_gnoi_containerz_containerz_proto_msgTypes = make([]protoimpl.MessageInfo, 58)
+var file_github_com_openconfig_gnoi_containerz_containerz_proto_goTypes = []any{
 	(Driver)(0),                                // 0: gnoi.containerz.Driver
 	(RemoveImageResponse_Code)(0),              // 1: gnoi.containerz.RemoveImageResponse.Code
 	(RemoveContainerResponse_Code)(0),          // 2: gnoi.containerz.RemoveContainerResponse.Code
@@ -4301,7 +4175,7 @@ var file_containerz_containerz_proto_goTypes = []interface{}{
 	(*types.HashType)(nil),                     // 69: gnoi.types.HashType
 	(*timestamppb.Timestamp)(nil),              // 70: google.protobuf.Timestamp
 }
-var file_containerz_containerz_proto_depIdxs = []int32{
+var file_github_com_openconfig_gnoi_containerz_containerz_proto_depIdxs = []int32{
 	10, // 0: gnoi.containerz.DeployRequest.image_transfer:type_name -> gnoi.containerz.ImageTransfer
 	11, // 1: gnoi.containerz.DeployRequest.image_transfer_end:type_name -> gnoi.containerz.ImageTransferEnd
 	67, // 2: gnoi.containerz.ImageTransfer.remote_download:type_name -> gnoi.common.RemoteDownload
@@ -4382,676 +4256,50 @@ var file_containerz_containerz_proto_depIdxs = []int32{
 	0,  // [0:41] is the sub-list for field type_name
 }
 
-func init() { file_containerz_containerz_proto_init() }
-func file_containerz_containerz_proto_init() {
-	if File_containerz_containerz_proto != nil {
+func init() { file_github_com_openconfig_gnoi_containerz_containerz_proto_init() }
+func file_github_com_openconfig_gnoi_containerz_containerz_proto_init() {
+	if File_github_com_openconfig_gnoi_containerz_containerz_proto != nil {
 		return
 	}
-	if !protoimpl.UnsafeEnabled {
-		file_containerz_containerz_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*DeployRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_containerz_containerz_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*ImageTransfer); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_containerz_containerz_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*ImageTransferEnd); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_containerz_containerz_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*DeployResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_containerz_containerz_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*ImageTransferReady); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_containerz_containerz_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*ImageTransferProgress); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_containerz_containerz_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*ImageTransferSuccess); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_containerz_containerz_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*RemoveImageRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_containerz_containerz_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*RemoveImageResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_containerz_containerz_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*RemoveContainerRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_containerz_containerz_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*RemoveContainerResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_containerz_containerz_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*ListImageRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_containerz_containerz_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*ListImageResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_containerz_containerz_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*ListContainerRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_containerz_containerz_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*ListContainerResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_containerz_containerz_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*Volume); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_containerz_containerz_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*StartContainerRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_containerz_containerz_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*StartContainerResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_containerz_containerz_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*StartOK); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_containerz_containerz_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*StartError); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_containerz_containerz_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*StopContainerRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_containerz_containerz_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*StopContainerResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_containerz_containerz_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*UpdateContainerRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_containerz_containerz_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*UpdateContainerResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_containerz_containerz_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*UpdateOK); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_containerz_containerz_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*UpdateError); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_containerz_containerz_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*LogRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_containerz_containerz_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*LogResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_containerz_containerz_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*LocalDriverOptions); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_containerz_containerz_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*CreateVolumeRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_containerz_containerz_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*CreateVolumeResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_containerz_containerz_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*RemoveVolumeRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_containerz_containerz_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*RemoveVolumeResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_containerz_containerz_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*ListVolumeRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_containerz_containerz_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*ListVolumeResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_containerz_containerz_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*StartPluginRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_containerz_containerz_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*StartPluginResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_containerz_containerz_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*StopPluginRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_containerz_containerz_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*StopPluginResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_containerz_containerz_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*ListPluginsRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_containerz_containerz_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*Plugin); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_containerz_containerz_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*ListPluginsResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_containerz_containerz_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*RemovePluginRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_containerz_containerz_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*RemovePluginResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_containerz_containerz_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*ListImageRequest_Filter); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_containerz_containerz_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*ListContainerRequest_Filter); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_containerz_containerz_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*StartContainerRequest_Port); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_containerz_containerz_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*StartContainerRequest_Capabilities); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_containerz_containerz_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*StartContainerRequest_Restart); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_containerz_containerz_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*StartContainerRequest_RunAs); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_containerz_containerz_proto_msgTypes[53].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*StartContainerRequest_Limits); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_containerz_containerz_proto_msgTypes[55].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*ListVolumeRequest_Filter); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-	}
-	file_containerz_containerz_proto_msgTypes[0].OneofWrappers = []interface{}{
+	file_github_com_openconfig_gnoi_containerz_containerz_proto_msgTypes[0].OneofWrappers = []any{
 		(*DeployRequest_ImageTransfer)(nil),
 		(*DeployRequest_Content)(nil),
 		(*DeployRequest_ImageTransferEnd)(nil),
 	}
-	file_containerz_containerz_proto_msgTypes[3].OneofWrappers = []interface{}{
+	file_github_com_openconfig_gnoi_containerz_containerz_proto_msgTypes[3].OneofWrappers = []any{
 		(*DeployResponse_ImageTransferReady)(nil),
 		(*DeployResponse_ImageTransferProgress)(nil),
 		(*DeployResponse_ImageTransferSuccess)(nil),
 		(*DeployResponse_ImageTransferError)(nil),
 	}
-	file_containerz_containerz_proto_msgTypes[17].OneofWrappers = []interface{}{
+	file_github_com_openconfig_gnoi_containerz_containerz_proto_msgTypes[17].OneofWrappers = []any{
 		(*StartContainerResponse_StartOk)(nil),
 		(*StartContainerResponse_StartError)(nil),
 	}
-	file_containerz_containerz_proto_msgTypes[23].OneofWrappers = []interface{}{
+	file_github_com_openconfig_gnoi_containerz_containerz_proto_msgTypes[23].OneofWrappers = []any{
 		(*UpdateContainerResponse_UpdateOk)(nil),
 		(*UpdateContainerResponse_UpdateError)(nil),
 	}
-	file_containerz_containerz_proto_msgTypes[29].OneofWrappers = []interface{}{
+	file_github_com_openconfig_gnoi_containerz_containerz_proto_msgTypes[29].OneofWrappers = []any{
 		(*CreateVolumeRequest_LocalMountOptions)(nil),
 	}
 	type x struct{}
 	out := protoimpl.TypeBuilder{
 		File: protoimpl.DescBuilder{
 			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
-			RawDescriptor: file_containerz_containerz_proto_rawDesc,
+			RawDescriptor: file_github_com_openconfig_gnoi_containerz_containerz_proto_rawDesc,
 			NumEnums:      9,
 			NumMessages:   58,
 			NumExtensions: 0,
 			NumServices:   1,
 		},
-		GoTypes:           file_containerz_containerz_proto_goTypes,
-		DependencyIndexes: file_containerz_containerz_proto_depIdxs,
-		EnumInfos:         file_containerz_containerz_proto_enumTypes,
-		MessageInfos:      file_containerz_containerz_proto_msgTypes,
+		GoTypes:           file_github_com_openconfig_gnoi_containerz_containerz_proto_goTypes,
+		DependencyIndexes: file_github_com_openconfig_gnoi_containerz_containerz_proto_depIdxs,
+		EnumInfos:         file_github_com_openconfig_gnoi_containerz_containerz_proto_enumTypes,
+		MessageInfos:      file_github_com_openconfig_gnoi_containerz_containerz_proto_msgTypes,
 	}.Build()
-	File_containerz_containerz_proto = out.File
-	file_containerz_containerz_proto_rawDesc = nil
-	file_containerz_containerz_proto_goTypes = nil
-	file_containerz_containerz_proto_depIdxs = nil
+	File_github_com_openconfig_gnoi_containerz_containerz_proto = out.File
+	file_github_com_openconfig_gnoi_containerz_containerz_proto_rawDesc = nil
+	file_github_com_openconfig_gnoi_containerz_containerz_proto_goTypes = nil
+	file_github_com_openconfig_gnoi_containerz_containerz_proto_depIdxs = nil
 }
diff --git a/containerz/containerz_grpc.pb.go b/containerz/containerz_grpc.pb.go
index 916366b2..b4c91e90 100644
--- a/containerz/containerz_grpc.pb.go
+++ b/containerz/containerz_grpc.pb.go
@@ -1,8 +1,8 @@
 // Code generated by protoc-gen-go-grpc. DO NOT EDIT.
 // versions:
-// - protoc-gen-go-grpc v1.2.0
-// - protoc             v3.21.10
-// source: containerz/containerz.proto
+// - protoc-gen-go-grpc v1.5.1
+// - protoc             v5.29.3
+// source: github.com/openconfig/gnoi/containerz/containerz.proto
 
 package containerz
 
@@ -15,25 +15,44 @@ import (
 
 // This is a compile-time assertion to ensure that this generated file
 // is compatible with the grpc package it is being compiled against.
-// Requires gRPC-Go v1.32.0 or later.
-const _ = grpc.SupportPackageIsVersion7
+// Requires gRPC-Go v1.64.0 or later.
+const _ = grpc.SupportPackageIsVersion9
+
+const (
+	Containerz_Deploy_FullMethodName          = "/gnoi.containerz.Containerz/Deploy"
+	Containerz_ListImage_FullMethodName       = "/gnoi.containerz.Containerz/ListImage"
+	Containerz_RemoveImage_FullMethodName     = "/gnoi.containerz.Containerz/RemoveImage"
+	Containerz_RemoveContainer_FullMethodName = "/gnoi.containerz.Containerz/RemoveContainer"
+	Containerz_ListContainer_FullMethodName   = "/gnoi.containerz.Containerz/ListContainer"
+	Containerz_StartContainer_FullMethodName  = "/gnoi.containerz.Containerz/StartContainer"
+	Containerz_StopContainer_FullMethodName   = "/gnoi.containerz.Containerz/StopContainer"
+	Containerz_UpdateContainer_FullMethodName = "/gnoi.containerz.Containerz/UpdateContainer"
+	Containerz_Log_FullMethodName             = "/gnoi.containerz.Containerz/Log"
+	Containerz_CreateVolume_FullMethodName    = "/gnoi.containerz.Containerz/CreateVolume"
+	Containerz_RemoveVolume_FullMethodName    = "/gnoi.containerz.Containerz/RemoveVolume"
+	Containerz_ListVolume_FullMethodName      = "/gnoi.containerz.Containerz/ListVolume"
+	Containerz_StartPlugin_FullMethodName     = "/gnoi.containerz.Containerz/StartPlugin"
+	Containerz_StopPlugin_FullMethodName      = "/gnoi.containerz.Containerz/StopPlugin"
+	Containerz_ListPlugins_FullMethodName     = "/gnoi.containerz.Containerz/ListPlugins"
+	Containerz_RemovePlugin_FullMethodName    = "/gnoi.containerz.Containerz/RemovePlugin"
+)
 
 // ContainerzClient is the client API for Containerz service.
 //
 // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.
 type ContainerzClient interface {
-	Deploy(ctx context.Context, opts ...grpc.CallOption) (Containerz_DeployClient, error)
-	ListImage(ctx context.Context, in *ListImageRequest, opts ...grpc.CallOption) (Containerz_ListImageClient, error)
+	Deploy(ctx context.Context, opts ...grpc.CallOption) (grpc.BidiStreamingClient[DeployRequest, DeployResponse], error)
+	ListImage(ctx context.Context, in *ListImageRequest, opts ...grpc.CallOption) (grpc.ServerStreamingClient[ListImageResponse], error)
 	RemoveImage(ctx context.Context, in *RemoveImageRequest, opts ...grpc.CallOption) (*RemoveImageResponse, error)
 	RemoveContainer(ctx context.Context, in *RemoveContainerRequest, opts ...grpc.CallOption) (*RemoveContainerResponse, error)
-	ListContainer(ctx context.Context, in *ListContainerRequest, opts ...grpc.CallOption) (Containerz_ListContainerClient, error)
+	ListContainer(ctx context.Context, in *ListContainerRequest, opts ...grpc.CallOption) (grpc.ServerStreamingClient[ListContainerResponse], error)
 	StartContainer(ctx context.Context, in *StartContainerRequest, opts ...grpc.CallOption) (*StartContainerResponse, error)
 	StopContainer(ctx context.Context, in *StopContainerRequest, opts ...grpc.CallOption) (*StopContainerResponse, error)
 	UpdateContainer(ctx context.Context, in *UpdateContainerRequest, opts ...grpc.CallOption) (*UpdateContainerResponse, error)
-	Log(ctx context.Context, in *LogRequest, opts ...grpc.CallOption) (Containerz_LogClient, error)
+	Log(ctx context.Context, in *LogRequest, opts ...grpc.CallOption) (grpc.ServerStreamingClient[LogResponse], error)
 	CreateVolume(ctx context.Context, in *CreateVolumeRequest, opts ...grpc.CallOption) (*CreateVolumeResponse, error)
 	RemoveVolume(ctx context.Context, in *RemoveVolumeRequest, opts ...grpc.CallOption) (*RemoveVolumeResponse, error)
-	ListVolume(ctx context.Context, in *ListVolumeRequest, opts ...grpc.CallOption) (Containerz_ListVolumeClient, error)
+	ListVolume(ctx context.Context, in *ListVolumeRequest, opts ...grpc.CallOption) (grpc.ServerStreamingClient[ListVolumeResponse], error)
 	StartPlugin(ctx context.Context, in *StartPluginRequest, opts ...grpc.CallOption) (*StartPluginResponse, error)
 	StopPlugin(ctx context.Context, in *StopPluginRequest, opts ...grpc.CallOption) (*StopPluginResponse, error)
 	ListPlugins(ctx context.Context, in *ListPluginsRequest, opts ...grpc.CallOption) (*ListPluginsResponse, error)
@@ -48,43 +67,26 @@ func NewContainerzClient(cc grpc.ClientConnInterface) ContainerzClient {
 	return &containerzClient{cc}
 }
 
-func (c *containerzClient) Deploy(ctx context.Context, opts ...grpc.CallOption) (Containerz_DeployClient, error) {
-	stream, err := c.cc.NewStream(ctx, &Containerz_ServiceDesc.Streams[0], "/gnoi.containerz.Containerz/Deploy", opts...)
+func (c *containerzClient) Deploy(ctx context.Context, opts ...grpc.CallOption) (grpc.BidiStreamingClient[DeployRequest, DeployResponse], error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	stream, err := c.cc.NewStream(ctx, &Containerz_ServiceDesc.Streams[0], Containerz_Deploy_FullMethodName, cOpts...)
 	if err != nil {
 		return nil, err
 	}
-	x := &containerzDeployClient{stream}
+	x := &grpc.GenericClientStream[DeployRequest, DeployResponse]{ClientStream: stream}
 	return x, nil
 }
 
-type Containerz_DeployClient interface {
-	Send(*DeployRequest) error
-	Recv() (*DeployResponse, error)
-	grpc.ClientStream
-}
-
-type containerzDeployClient struct {
-	grpc.ClientStream
-}
-
-func (x *containerzDeployClient) Send(m *DeployRequest) error {
-	return x.ClientStream.SendMsg(m)
-}
-
-func (x *containerzDeployClient) Recv() (*DeployResponse, error) {
-	m := new(DeployResponse)
-	if err := x.ClientStream.RecvMsg(m); err != nil {
-		return nil, err
-	}
-	return m, nil
-}
+// This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name.
+type Containerz_DeployClient = grpc.BidiStreamingClient[DeployRequest, DeployResponse]
 
-func (c *containerzClient) ListImage(ctx context.Context, in *ListImageRequest, opts ...grpc.CallOption) (Containerz_ListImageClient, error) {
-	stream, err := c.cc.NewStream(ctx, &Containerz_ServiceDesc.Streams[1], "/gnoi.containerz.Containerz/ListImage", opts...)
+func (c *containerzClient) ListImage(ctx context.Context, in *ListImageRequest, opts ...grpc.CallOption) (grpc.ServerStreamingClient[ListImageResponse], error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	stream, err := c.cc.NewStream(ctx, &Containerz_ServiceDesc.Streams[1], Containerz_ListImage_FullMethodName, cOpts...)
 	if err != nil {
 		return nil, err
 	}
-	x := &containerzListImageClient{stream}
+	x := &grpc.GenericClientStream[ListImageRequest, ListImageResponse]{ClientStream: stream}
 	if err := x.ClientStream.SendMsg(in); err != nil {
 		return nil, err
 	}
@@ -94,26 +96,13 @@ func (c *containerzClient) ListImage(ctx context.Context, in *ListImageRequest,
 	return x, nil
 }
 
-type Containerz_ListImageClient interface {
-	Recv() (*ListImageResponse, error)
-	grpc.ClientStream
-}
-
-type containerzListImageClient struct {
-	grpc.ClientStream
-}
-
-func (x *containerzListImageClient) Recv() (*ListImageResponse, error) {
-	m := new(ListImageResponse)
-	if err := x.ClientStream.RecvMsg(m); err != nil {
-		return nil, err
-	}
-	return m, nil
-}
+// This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name.
+type Containerz_ListImageClient = grpc.ServerStreamingClient[ListImageResponse]
 
 func (c *containerzClient) RemoveImage(ctx context.Context, in *RemoveImageRequest, opts ...grpc.CallOption) (*RemoveImageResponse, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
 	out := new(RemoveImageResponse)
-	err := c.cc.Invoke(ctx, "/gnoi.containerz.Containerz/RemoveImage", in, out, opts...)
+	err := c.cc.Invoke(ctx, Containerz_RemoveImage_FullMethodName, in, out, cOpts...)
 	if err != nil {
 		return nil, err
 	}
@@ -121,20 +110,22 @@ func (c *containerzClient) RemoveImage(ctx context.Context, in *RemoveImageReque
 }
 
 func (c *containerzClient) RemoveContainer(ctx context.Context, in *RemoveContainerRequest, opts ...grpc.CallOption) (*RemoveContainerResponse, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
 	out := new(RemoveContainerResponse)
-	err := c.cc.Invoke(ctx, "/gnoi.containerz.Containerz/RemoveContainer", in, out, opts...)
+	err := c.cc.Invoke(ctx, Containerz_RemoveContainer_FullMethodName, in, out, cOpts...)
 	if err != nil {
 		return nil, err
 	}
 	return out, nil
 }
 
-func (c *containerzClient) ListContainer(ctx context.Context, in *ListContainerRequest, opts ...grpc.CallOption) (Containerz_ListContainerClient, error) {
-	stream, err := c.cc.NewStream(ctx, &Containerz_ServiceDesc.Streams[2], "/gnoi.containerz.Containerz/ListContainer", opts...)
+func (c *containerzClient) ListContainer(ctx context.Context, in *ListContainerRequest, opts ...grpc.CallOption) (grpc.ServerStreamingClient[ListContainerResponse], error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	stream, err := c.cc.NewStream(ctx, &Containerz_ServiceDesc.Streams[2], Containerz_ListContainer_FullMethodName, cOpts...)
 	if err != nil {
 		return nil, err
 	}
-	x := &containerzListContainerClient{stream}
+	x := &grpc.GenericClientStream[ListContainerRequest, ListContainerResponse]{ClientStream: stream}
 	if err := x.ClientStream.SendMsg(in); err != nil {
 		return nil, err
 	}
@@ -144,26 +135,13 @@ func (c *containerzClient) ListContainer(ctx context.Context, in *ListContainerR
 	return x, nil
 }
 
-type Containerz_ListContainerClient interface {
-	Recv() (*ListContainerResponse, error)
-	grpc.ClientStream
-}
-
-type containerzListContainerClient struct {
-	grpc.ClientStream
-}
-
-func (x *containerzListContainerClient) Recv() (*ListContainerResponse, error) {
-	m := new(ListContainerResponse)
-	if err := x.ClientStream.RecvMsg(m); err != nil {
-		return nil, err
-	}
-	return m, nil
-}
+// This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name.
+type Containerz_ListContainerClient = grpc.ServerStreamingClient[ListContainerResponse]
 
 func (c *containerzClient) StartContainer(ctx context.Context, in *StartContainerRequest, opts ...grpc.CallOption) (*StartContainerResponse, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
 	out := new(StartContainerResponse)
-	err := c.cc.Invoke(ctx, "/gnoi.containerz.Containerz/StartContainer", in, out, opts...)
+	err := c.cc.Invoke(ctx, Containerz_StartContainer_FullMethodName, in, out, cOpts...)
 	if err != nil {
 		return nil, err
 	}
@@ -171,8 +149,9 @@ func (c *containerzClient) StartContainer(ctx context.Context, in *StartContaine
 }
 
 func (c *containerzClient) StopContainer(ctx context.Context, in *StopContainerRequest, opts ...grpc.CallOption) (*StopContainerResponse, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
 	out := new(StopContainerResponse)
-	err := c.cc.Invoke(ctx, "/gnoi.containerz.Containerz/StopContainer", in, out, opts...)
+	err := c.cc.Invoke(ctx, Containerz_StopContainer_FullMethodName, in, out, cOpts...)
 	if err != nil {
 		return nil, err
 	}
@@ -180,20 +159,22 @@ func (c *containerzClient) StopContainer(ctx context.Context, in *StopContainerR
 }
 
 func (c *containerzClient) UpdateContainer(ctx context.Context, in *UpdateContainerRequest, opts ...grpc.CallOption) (*UpdateContainerResponse, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
 	out := new(UpdateContainerResponse)
-	err := c.cc.Invoke(ctx, "/gnoi.containerz.Containerz/UpdateContainer", in, out, opts...)
+	err := c.cc.Invoke(ctx, Containerz_UpdateContainer_FullMethodName, in, out, cOpts...)
 	if err != nil {
 		return nil, err
 	}
 	return out, nil
 }
 
-func (c *containerzClient) Log(ctx context.Context, in *LogRequest, opts ...grpc.CallOption) (Containerz_LogClient, error) {
-	stream, err := c.cc.NewStream(ctx, &Containerz_ServiceDesc.Streams[3], "/gnoi.containerz.Containerz/Log", opts...)
+func (c *containerzClient) Log(ctx context.Context, in *LogRequest, opts ...grpc.CallOption) (grpc.ServerStreamingClient[LogResponse], error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	stream, err := c.cc.NewStream(ctx, &Containerz_ServiceDesc.Streams[3], Containerz_Log_FullMethodName, cOpts...)
 	if err != nil {
 		return nil, err
 	}
-	x := &containerzLogClient{stream}
+	x := &grpc.GenericClientStream[LogRequest, LogResponse]{ClientStream: stream}
 	if err := x.ClientStream.SendMsg(in); err != nil {
 		return nil, err
 	}
@@ -203,26 +184,13 @@ func (c *containerzClient) Log(ctx context.Context, in *LogRequest, opts ...grpc
 	return x, nil
 }
 
-type Containerz_LogClient interface {
-	Recv() (*LogResponse, error)
-	grpc.ClientStream
-}
-
-type containerzLogClient struct {
-	grpc.ClientStream
-}
-
-func (x *containerzLogClient) Recv() (*LogResponse, error) {
-	m := new(LogResponse)
-	if err := x.ClientStream.RecvMsg(m); err != nil {
-		return nil, err
-	}
-	return m, nil
-}
+// This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name.
+type Containerz_LogClient = grpc.ServerStreamingClient[LogResponse]
 
 func (c *containerzClient) CreateVolume(ctx context.Context, in *CreateVolumeRequest, opts ...grpc.CallOption) (*CreateVolumeResponse, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
 	out := new(CreateVolumeResponse)
-	err := c.cc.Invoke(ctx, "/gnoi.containerz.Containerz/CreateVolume", in, out, opts...)
+	err := c.cc.Invoke(ctx, Containerz_CreateVolume_FullMethodName, in, out, cOpts...)
 	if err != nil {
 		return nil, err
 	}
@@ -230,20 +198,22 @@ func (c *containerzClient) CreateVolume(ctx context.Context, in *CreateVolumeReq
 }
 
 func (c *containerzClient) RemoveVolume(ctx context.Context, in *RemoveVolumeRequest, opts ...grpc.CallOption) (*RemoveVolumeResponse, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
 	out := new(RemoveVolumeResponse)
-	err := c.cc.Invoke(ctx, "/gnoi.containerz.Containerz/RemoveVolume", in, out, opts...)
+	err := c.cc.Invoke(ctx, Containerz_RemoveVolume_FullMethodName, in, out, cOpts...)
 	if err != nil {
 		return nil, err
 	}
 	return out, nil
 }
 
-func (c *containerzClient) ListVolume(ctx context.Context, in *ListVolumeRequest, opts ...grpc.CallOption) (Containerz_ListVolumeClient, error) {
-	stream, err := c.cc.NewStream(ctx, &Containerz_ServiceDesc.Streams[4], "/gnoi.containerz.Containerz/ListVolume", opts...)
+func (c *containerzClient) ListVolume(ctx context.Context, in *ListVolumeRequest, opts ...grpc.CallOption) (grpc.ServerStreamingClient[ListVolumeResponse], error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	stream, err := c.cc.NewStream(ctx, &Containerz_ServiceDesc.Streams[4], Containerz_ListVolume_FullMethodName, cOpts...)
 	if err != nil {
 		return nil, err
 	}
-	x := &containerzListVolumeClient{stream}
+	x := &grpc.GenericClientStream[ListVolumeRequest, ListVolumeResponse]{ClientStream: stream}
 	if err := x.ClientStream.SendMsg(in); err != nil {
 		return nil, err
 	}
@@ -253,26 +223,13 @@ func (c *containerzClient) ListVolume(ctx context.Context, in *ListVolumeRequest
 	return x, nil
 }
 
-type Containerz_ListVolumeClient interface {
-	Recv() (*ListVolumeResponse, error)
-	grpc.ClientStream
-}
-
-type containerzListVolumeClient struct {
-	grpc.ClientStream
-}
-
-func (x *containerzListVolumeClient) Recv() (*ListVolumeResponse, error) {
-	m := new(ListVolumeResponse)
-	if err := x.ClientStream.RecvMsg(m); err != nil {
-		return nil, err
-	}
-	return m, nil
-}
+// This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name.
+type Containerz_ListVolumeClient = grpc.ServerStreamingClient[ListVolumeResponse]
 
 func (c *containerzClient) StartPlugin(ctx context.Context, in *StartPluginRequest, opts ...grpc.CallOption) (*StartPluginResponse, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
 	out := new(StartPluginResponse)
-	err := c.cc.Invoke(ctx, "/gnoi.containerz.Containerz/StartPlugin", in, out, opts...)
+	err := c.cc.Invoke(ctx, Containerz_StartPlugin_FullMethodName, in, out, cOpts...)
 	if err != nil {
 		return nil, err
 	}
@@ -280,8 +237,9 @@ func (c *containerzClient) StartPlugin(ctx context.Context, in *StartPluginReque
 }
 
 func (c *containerzClient) StopPlugin(ctx context.Context, in *StopPluginRequest, opts ...grpc.CallOption) (*StopPluginResponse, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
 	out := new(StopPluginResponse)
-	err := c.cc.Invoke(ctx, "/gnoi.containerz.Containerz/StopPlugin", in, out, opts...)
+	err := c.cc.Invoke(ctx, Containerz_StopPlugin_FullMethodName, in, out, cOpts...)
 	if err != nil {
 		return nil, err
 	}
@@ -289,8 +247,9 @@ func (c *containerzClient) StopPlugin(ctx context.Context, in *StopPluginRequest
 }
 
 func (c *containerzClient) ListPlugins(ctx context.Context, in *ListPluginsRequest, opts ...grpc.CallOption) (*ListPluginsResponse, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
 	out := new(ListPluginsResponse)
-	err := c.cc.Invoke(ctx, "/gnoi.containerz.Containerz/ListPlugins", in, out, opts...)
+	err := c.cc.Invoke(ctx, Containerz_ListPlugins_FullMethodName, in, out, cOpts...)
 	if err != nil {
 		return nil, err
 	}
@@ -298,8 +257,9 @@ func (c *containerzClient) ListPlugins(ctx context.Context, in *ListPluginsReque
 }
 
 func (c *containerzClient) RemovePlugin(ctx context.Context, in *RemovePluginRequest, opts ...grpc.CallOption) (*RemovePluginResponse, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
 	out := new(RemovePluginResponse)
-	err := c.cc.Invoke(ctx, "/gnoi.containerz.Containerz/RemovePlugin", in, out, opts...)
+	err := c.cc.Invoke(ctx, Containerz_RemovePlugin_FullMethodName, in, out, cOpts...)
 	if err != nil {
 		return nil, err
 	}
@@ -307,36 +267,38 @@ func (c *containerzClient) RemovePlugin(ctx context.Context, in *RemovePluginReq
 }
 
 // ContainerzServer is the server API for Containerz service.
-// All implementations must embed UnimplementedContainerzServer
-// for forward compatibility
+// All implementations should embed UnimplementedContainerzServer
+// for forward compatibility.
 type ContainerzServer interface {
-	Deploy(Containerz_DeployServer) error
-	ListImage(*ListImageRequest, Containerz_ListImageServer) error
+	Deploy(grpc.BidiStreamingServer[DeployRequest, DeployResponse]) error
+	ListImage(*ListImageRequest, grpc.ServerStreamingServer[ListImageResponse]) error
 	RemoveImage(context.Context, *RemoveImageRequest) (*RemoveImageResponse, error)
 	RemoveContainer(context.Context, *RemoveContainerRequest) (*RemoveContainerResponse, error)
-	ListContainer(*ListContainerRequest, Containerz_ListContainerServer) error
+	ListContainer(*ListContainerRequest, grpc.ServerStreamingServer[ListContainerResponse]) error
 	StartContainer(context.Context, *StartContainerRequest) (*StartContainerResponse, error)
 	StopContainer(context.Context, *StopContainerRequest) (*StopContainerResponse, error)
 	UpdateContainer(context.Context, *UpdateContainerRequest) (*UpdateContainerResponse, error)
-	Log(*LogRequest, Containerz_LogServer) error
+	Log(*LogRequest, grpc.ServerStreamingServer[LogResponse]) error
 	CreateVolume(context.Context, *CreateVolumeRequest) (*CreateVolumeResponse, error)
 	RemoveVolume(context.Context, *RemoveVolumeRequest) (*RemoveVolumeResponse, error)
-	ListVolume(*ListVolumeRequest, Containerz_ListVolumeServer) error
+	ListVolume(*ListVolumeRequest, grpc.ServerStreamingServer[ListVolumeResponse]) error
 	StartPlugin(context.Context, *StartPluginRequest) (*StartPluginResponse, error)
 	StopPlugin(context.Context, *StopPluginRequest) (*StopPluginResponse, error)
 	ListPlugins(context.Context, *ListPluginsRequest) (*ListPluginsResponse, error)
 	RemovePlugin(context.Context, *RemovePluginRequest) (*RemovePluginResponse, error)
-	mustEmbedUnimplementedContainerzServer()
 }
 
-// UnimplementedContainerzServer must be embedded to have forward compatible implementations.
-type UnimplementedContainerzServer struct {
-}
+// UnimplementedContainerzServer should be embedded to have
+// forward compatible implementations.
+//
+// NOTE: this should be embedded by value instead of pointer to avoid a nil
+// pointer dereference when methods are called.
+type UnimplementedContainerzServer struct{}
 
-func (UnimplementedContainerzServer) Deploy(Containerz_DeployServer) error {
+func (UnimplementedContainerzServer) Deploy(grpc.BidiStreamingServer[DeployRequest, DeployResponse]) error {
 	return status.Errorf(codes.Unimplemented, "method Deploy not implemented")
 }
-func (UnimplementedContainerzServer) ListImage(*ListImageRequest, Containerz_ListImageServer) error {
+func (UnimplementedContainerzServer) ListImage(*ListImageRequest, grpc.ServerStreamingServer[ListImageResponse]) error {
 	return status.Errorf(codes.Unimplemented, "method ListImage not implemented")
 }
 func (UnimplementedContainerzServer) RemoveImage(context.Context, *RemoveImageRequest) (*RemoveImageResponse, error) {
@@ -345,7 +307,7 @@ func (UnimplementedContainerzServer) RemoveImage(context.Context, *RemoveImageRe
 func (UnimplementedContainerzServer) RemoveContainer(context.Context, *RemoveContainerRequest) (*RemoveContainerResponse, error) {
 	return nil, status.Errorf(codes.Unimplemented, "method RemoveContainer not implemented")
 }
-func (UnimplementedContainerzServer) ListContainer(*ListContainerRequest, Containerz_ListContainerServer) error {
+func (UnimplementedContainerzServer) ListContainer(*ListContainerRequest, grpc.ServerStreamingServer[ListContainerResponse]) error {
 	return status.Errorf(codes.Unimplemented, "method ListContainer not implemented")
 }
 func (UnimplementedContainerzServer) StartContainer(context.Context, *StartContainerRequest) (*StartContainerResponse, error) {
@@ -357,7 +319,7 @@ func (UnimplementedContainerzServer) StopContainer(context.Context, *StopContain
 func (UnimplementedContainerzServer) UpdateContainer(context.Context, *UpdateContainerRequest) (*UpdateContainerResponse, error) {
 	return nil, status.Errorf(codes.Unimplemented, "method UpdateContainer not implemented")
 }
-func (UnimplementedContainerzServer) Log(*LogRequest, Containerz_LogServer) error {
+func (UnimplementedContainerzServer) Log(*LogRequest, grpc.ServerStreamingServer[LogResponse]) error {
 	return status.Errorf(codes.Unimplemented, "method Log not implemented")
 }
 func (UnimplementedContainerzServer) CreateVolume(context.Context, *CreateVolumeRequest) (*CreateVolumeResponse, error) {
@@ -366,7 +328,7 @@ func (UnimplementedContainerzServer) CreateVolume(context.Context, *CreateVolume
 func (UnimplementedContainerzServer) RemoveVolume(context.Context, *RemoveVolumeRequest) (*RemoveVolumeResponse, error) {
 	return nil, status.Errorf(codes.Unimplemented, "method RemoveVolume not implemented")
 }
-func (UnimplementedContainerzServer) ListVolume(*ListVolumeRequest, Containerz_ListVolumeServer) error {
+func (UnimplementedContainerzServer) ListVolume(*ListVolumeRequest, grpc.ServerStreamingServer[ListVolumeResponse]) error {
 	return status.Errorf(codes.Unimplemented, "method ListVolume not implemented")
 }
 func (UnimplementedContainerzServer) StartPlugin(context.Context, *StartPluginRequest) (*StartPluginResponse, error) {
@@ -381,7 +343,7 @@ func (UnimplementedContainerzServer) ListPlugins(context.Context, *ListPluginsRe
 func (UnimplementedContainerzServer) RemovePlugin(context.Context, *RemovePluginRequest) (*RemovePluginResponse, error) {
 	return nil, status.Errorf(codes.Unimplemented, "method RemovePlugin not implemented")
 }
-func (UnimplementedContainerzServer) mustEmbedUnimplementedContainerzServer() {}
+func (UnimplementedContainerzServer) testEmbeddedByValue() {}
 
 // UnsafeContainerzServer may be embedded to opt out of forward compatibility for this service.
 // Use of this interface is not recommended, as added methods to ContainerzServer will
@@ -391,55 +353,33 @@ type UnsafeContainerzServer interface {
 }
 
 func RegisterContainerzServer(s grpc.ServiceRegistrar, srv ContainerzServer) {
+	// If the following call pancis, it indicates UnimplementedContainerzServer was
+	// embedded by pointer and is nil.  This will cause panics if an
+	// unimplemented method is ever invoked, so we test this at initialization
+	// time to prevent it from happening at runtime later due to I/O.
+	if t, ok := srv.(interface{ testEmbeddedByValue() }); ok {
+		t.testEmbeddedByValue()
+	}
 	s.RegisterService(&Containerz_ServiceDesc, srv)
 }
 
 func _Containerz_Deploy_Handler(srv interface{}, stream grpc.ServerStream) error {
-	return srv.(ContainerzServer).Deploy(&containerzDeployServer{stream})
-}
-
-type Containerz_DeployServer interface {
-	Send(*DeployResponse) error
-	Recv() (*DeployRequest, error)
-	grpc.ServerStream
-}
-
-type containerzDeployServer struct {
-	grpc.ServerStream
+	return srv.(ContainerzServer).Deploy(&grpc.GenericServerStream[DeployRequest, DeployResponse]{ServerStream: stream})
 }
 
-func (x *containerzDeployServer) Send(m *DeployResponse) error {
-	return x.ServerStream.SendMsg(m)
-}
-
-func (x *containerzDeployServer) Recv() (*DeployRequest, error) {
-	m := new(DeployRequest)
-	if err := x.ServerStream.RecvMsg(m); err != nil {
-		return nil, err
-	}
-	return m, nil
-}
+// This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name.
+type Containerz_DeployServer = grpc.BidiStreamingServer[DeployRequest, DeployResponse]
 
 func _Containerz_ListImage_Handler(srv interface{}, stream grpc.ServerStream) error {
 	m := new(ListImageRequest)
 	if err := stream.RecvMsg(m); err != nil {
 		return err
 	}
-	return srv.(ContainerzServer).ListImage(m, &containerzListImageServer{stream})
-}
-
-type Containerz_ListImageServer interface {
-	Send(*ListImageResponse) error
-	grpc.ServerStream
+	return srv.(ContainerzServer).ListImage(m, &grpc.GenericServerStream[ListImageRequest, ListImageResponse]{ServerStream: stream})
 }
 
-type containerzListImageServer struct {
-	grpc.ServerStream
-}
-
-func (x *containerzListImageServer) Send(m *ListImageResponse) error {
-	return x.ServerStream.SendMsg(m)
-}
+// This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name.
+type Containerz_ListImageServer = grpc.ServerStreamingServer[ListImageResponse]
 
 func _Containerz_RemoveImage_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
 	in := new(RemoveImageRequest)
@@ -451,7 +391,7 @@ func _Containerz_RemoveImage_Handler(srv interface{}, ctx context.Context, dec f
 	}
 	info := &grpc.UnaryServerInfo{
 		Server:     srv,
-		FullMethod: "/gnoi.containerz.Containerz/RemoveImage",
+		FullMethod: Containerz_RemoveImage_FullMethodName,
 	}
 	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
 		return srv.(ContainerzServer).RemoveImage(ctx, req.(*RemoveImageRequest))
@@ -469,7 +409,7 @@ func _Containerz_RemoveContainer_Handler(srv interface{}, ctx context.Context, d
 	}
 	info := &grpc.UnaryServerInfo{
 		Server:     srv,
-		FullMethod: "/gnoi.containerz.Containerz/RemoveContainer",
+		FullMethod: Containerz_RemoveContainer_FullMethodName,
 	}
 	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
 		return srv.(ContainerzServer).RemoveContainer(ctx, req.(*RemoveContainerRequest))
@@ -482,21 +422,11 @@ func _Containerz_ListContainer_Handler(srv interface{}, stream grpc.ServerStream
 	if err := stream.RecvMsg(m); err != nil {
 		return err
 	}
-	return srv.(ContainerzServer).ListContainer(m, &containerzListContainerServer{stream})
+	return srv.(ContainerzServer).ListContainer(m, &grpc.GenericServerStream[ListContainerRequest, ListContainerResponse]{ServerStream: stream})
 }
 
-type Containerz_ListContainerServer interface {
-	Send(*ListContainerResponse) error
-	grpc.ServerStream
-}
-
-type containerzListContainerServer struct {
-	grpc.ServerStream
-}
-
-func (x *containerzListContainerServer) Send(m *ListContainerResponse) error {
-	return x.ServerStream.SendMsg(m)
-}
+// This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name.
+type Containerz_ListContainerServer = grpc.ServerStreamingServer[ListContainerResponse]
 
 func _Containerz_StartContainer_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
 	in := new(StartContainerRequest)
@@ -508,7 +438,7 @@ func _Containerz_StartContainer_Handler(srv interface{}, ctx context.Context, de
 	}
 	info := &grpc.UnaryServerInfo{
 		Server:     srv,
-		FullMethod: "/gnoi.containerz.Containerz/StartContainer",
+		FullMethod: Containerz_StartContainer_FullMethodName,
 	}
 	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
 		return srv.(ContainerzServer).StartContainer(ctx, req.(*StartContainerRequest))
@@ -526,7 +456,7 @@ func _Containerz_StopContainer_Handler(srv interface{}, ctx context.Context, dec
 	}
 	info := &grpc.UnaryServerInfo{
 		Server:     srv,
-		FullMethod: "/gnoi.containerz.Containerz/StopContainer",
+		FullMethod: Containerz_StopContainer_FullMethodName,
 	}
 	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
 		return srv.(ContainerzServer).StopContainer(ctx, req.(*StopContainerRequest))
@@ -544,7 +474,7 @@ func _Containerz_UpdateContainer_Handler(srv interface{}, ctx context.Context, d
 	}
 	info := &grpc.UnaryServerInfo{
 		Server:     srv,
-		FullMethod: "/gnoi.containerz.Containerz/UpdateContainer",
+		FullMethod: Containerz_UpdateContainer_FullMethodName,
 	}
 	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
 		return srv.(ContainerzServer).UpdateContainer(ctx, req.(*UpdateContainerRequest))
@@ -557,21 +487,11 @@ func _Containerz_Log_Handler(srv interface{}, stream grpc.ServerStream) error {
 	if err := stream.RecvMsg(m); err != nil {
 		return err
 	}
-	return srv.(ContainerzServer).Log(m, &containerzLogServer{stream})
+	return srv.(ContainerzServer).Log(m, &grpc.GenericServerStream[LogRequest, LogResponse]{ServerStream: stream})
 }
 
-type Containerz_LogServer interface {
-	Send(*LogResponse) error
-	grpc.ServerStream
-}
-
-type containerzLogServer struct {
-	grpc.ServerStream
-}
-
-func (x *containerzLogServer) Send(m *LogResponse) error {
-	return x.ServerStream.SendMsg(m)
-}
+// This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name.
+type Containerz_LogServer = grpc.ServerStreamingServer[LogResponse]
 
 func _Containerz_CreateVolume_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
 	in := new(CreateVolumeRequest)
@@ -583,7 +503,7 @@ func _Containerz_CreateVolume_Handler(srv interface{}, ctx context.Context, dec
 	}
 	info := &grpc.UnaryServerInfo{
 		Server:     srv,
-		FullMethod: "/gnoi.containerz.Containerz/CreateVolume",
+		FullMethod: Containerz_CreateVolume_FullMethodName,
 	}
 	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
 		return srv.(ContainerzServer).CreateVolume(ctx, req.(*CreateVolumeRequest))
@@ -601,7 +521,7 @@ func _Containerz_RemoveVolume_Handler(srv interface{}, ctx context.Context, dec
 	}
 	info := &grpc.UnaryServerInfo{
 		Server:     srv,
-		FullMethod: "/gnoi.containerz.Containerz/RemoveVolume",
+		FullMethod: Containerz_RemoveVolume_FullMethodName,
 	}
 	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
 		return srv.(ContainerzServer).RemoveVolume(ctx, req.(*RemoveVolumeRequest))
@@ -614,21 +534,11 @@ func _Containerz_ListVolume_Handler(srv interface{}, stream grpc.ServerStream) e
 	if err := stream.RecvMsg(m); err != nil {
 		return err
 	}
-	return srv.(ContainerzServer).ListVolume(m, &containerzListVolumeServer{stream})
-}
-
-type Containerz_ListVolumeServer interface {
-	Send(*ListVolumeResponse) error
-	grpc.ServerStream
-}
-
-type containerzListVolumeServer struct {
-	grpc.ServerStream
+	return srv.(ContainerzServer).ListVolume(m, &grpc.GenericServerStream[ListVolumeRequest, ListVolumeResponse]{ServerStream: stream})
 }
 
-func (x *containerzListVolumeServer) Send(m *ListVolumeResponse) error {
-	return x.ServerStream.SendMsg(m)
-}
+// This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name.
+type Containerz_ListVolumeServer = grpc.ServerStreamingServer[ListVolumeResponse]
 
 func _Containerz_StartPlugin_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
 	in := new(StartPluginRequest)
@@ -640,7 +550,7 @@ func _Containerz_StartPlugin_Handler(srv interface{}, ctx context.Context, dec f
 	}
 	info := &grpc.UnaryServerInfo{
 		Server:     srv,
-		FullMethod: "/gnoi.containerz.Containerz/StartPlugin",
+		FullMethod: Containerz_StartPlugin_FullMethodName,
 	}
 	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
 		return srv.(ContainerzServer).StartPlugin(ctx, req.(*StartPluginRequest))
@@ -658,7 +568,7 @@ func _Containerz_StopPlugin_Handler(srv interface{}, ctx context.Context, dec fu
 	}
 	info := &grpc.UnaryServerInfo{
 		Server:     srv,
-		FullMethod: "/gnoi.containerz.Containerz/StopPlugin",
+		FullMethod: Containerz_StopPlugin_FullMethodName,
 	}
 	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
 		return srv.(ContainerzServer).StopPlugin(ctx, req.(*StopPluginRequest))
@@ -676,7 +586,7 @@ func _Containerz_ListPlugins_Handler(srv interface{}, ctx context.Context, dec f
 	}
 	info := &grpc.UnaryServerInfo{
 		Server:     srv,
-		FullMethod: "/gnoi.containerz.Containerz/ListPlugins",
+		FullMethod: Containerz_ListPlugins_FullMethodName,
 	}
 	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
 		return srv.(ContainerzServer).ListPlugins(ctx, req.(*ListPluginsRequest))
@@ -694,7 +604,7 @@ func _Containerz_RemovePlugin_Handler(srv interface{}, ctx context.Context, dec
 	}
 	info := &grpc.UnaryServerInfo{
 		Server:     srv,
-		FullMethod: "/gnoi.containerz.Containerz/RemovePlugin",
+		FullMethod: Containerz_RemovePlugin_FullMethodName,
 	}
 	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
 		return srv.(ContainerzServer).RemovePlugin(ctx, req.(*RemovePluginRequest))
@@ -782,5 +692,5 @@ var Containerz_ServiceDesc = grpc.ServiceDesc{
 			ServerStreams: true,
 		},
 	},
-	Metadata: "containerz/containerz.proto",
+	Metadata: "github.com/openconfig/gnoi/containerz/containerz.proto",
 }
diff --git a/debug/BUILD.bazel b/debug/BUILD.bazel
index ed1d346c..817681ff 100644
--- a/debug/BUILD.bazel
+++ b/debug/BUILD.bazel
@@ -1,8 +1,8 @@
-load("@rules_proto//proto:defs.bzl", "proto_library")
+load("@com_github_grpc_grpc//bazel:cc_grpc_library.bzl", "cc_grpc_library")
+load("@com_google_protobuf//bazel:cc_proto_library.bzl", "cc_proto_library")
+load("@com_google_protobuf//bazel:proto_library.bzl", "proto_library")
 load("@io_bazel_rules_go//go:def.bzl", "go_library")
 load("@io_bazel_rules_go//proto:def.bzl", "go_proto_library")
-load("@com_github_grpc_grpc//bazel:cc_grpc_library.bzl", "cc_grpc_library")
-load("//:common.bzl", "use_new_compilers")
 
 #Copyright 2023 Google LLC
 #
@@ -23,11 +23,10 @@ package(
     licenses = ["notice"],
 )
 
-use_new_compilers()
-
 proto_library(
     name = "debug_proto",
     srcs = ["debug.proto"],
+    import_prefix = "github.com/openconfig/gnoi",
     deps = [
         "//types:types_proto",
         "@com_google_protobuf//:any_proto",
@@ -49,8 +48,8 @@ cc_grpc_library(
 go_proto_library(
     name = "debug_go_proto",
     compilers = [
-        "go_protoc_gen_go",
-        "go_protoc_gen_go_grpc",
+        "@io_bazel_rules_go//proto:go_grpc_v2",
+        "@io_bazel_rules_go//proto:go_proto",
     ],
     importpath = "github.com/openconfig/gnoi/debug",
     proto = ":debug_proto",
diff --git a/debug/debug.pb.go b/debug/debug.pb.go
index d5063da0..904c7b2d 100644
--- a/debug/debug.pb.go
+++ b/debug/debug.pb.go
@@ -1,8 +1,8 @@
 // Code generated by protoc-gen-go. DO NOT EDIT.
 // versions:
-// 	protoc-gen-go v1.30.0
-// 	protoc        v3.21.10
-// source: debug/debug.proto
+// 	protoc-gen-go v1.36.2
+// 	protoc        v5.29.3
+// source: github.com/openconfig/gnoi/debug/debug.proto
 
 package debug
 
@@ -55,11 +55,11 @@ func (x DebugRequest_Mode) String() string {
 }
 
 func (DebugRequest_Mode) Descriptor() protoreflect.EnumDescriptor {
-	return file_debug_debug_proto_enumTypes[0].Descriptor()
+	return file_github_com_openconfig_gnoi_debug_debug_proto_enumTypes[0].Descriptor()
 }
 
 func (DebugRequest_Mode) Type() protoreflect.EnumType {
-	return &file_debug_debug_proto_enumTypes[0]
+	return &file_github_com_openconfig_gnoi_debug_debug_proto_enumTypes[0]
 }
 
 func (x DebugRequest_Mode) Number() protoreflect.EnumNumber {
@@ -68,28 +68,25 @@ func (x DebugRequest_Mode) Number() protoreflect.EnumNumber {
 
 // Deprecated: Use DebugRequest_Mode.Descriptor instead.
 func (DebugRequest_Mode) EnumDescriptor() ([]byte, []int) {
-	return file_debug_debug_proto_rawDescGZIP(), []int{0, 0}
+	return file_github_com_openconfig_gnoi_debug_debug_proto_rawDescGZIP(), []int{0, 0}
 }
 
 type DebugRequest struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Mode          DebugRequest_Mode      `protobuf:"varint,1,opt,name=mode,proto3,enum=gnoi.debug.DebugRequest_Mode" json:"mode,omitempty"`
+	Command       []byte                 `protobuf:"bytes,2,opt,name=command,proto3" json:"command,omitempty"`
+	ByteLimit     int64                  `protobuf:"varint,3,opt,name=byte_limit,json=byteLimit,proto3" json:"byte_limit,omitempty"`
+	Timeout       int64                  `protobuf:"varint,4,opt,name=timeout,proto3" json:"timeout,omitempty"`
+	RoleAccount   string                 `protobuf:"bytes,5,opt,name=role_account,json=roleAccount,proto3" json:"role_account,omitempty"`
 	unknownFields protoimpl.UnknownFields
-
-	Mode        DebugRequest_Mode `protobuf:"varint,1,opt,name=mode,proto3,enum=gnoi.debug.DebugRequest_Mode" json:"mode,omitempty"`
-	Command     []byte            `protobuf:"bytes,2,opt,name=command,proto3" json:"command,omitempty"`
-	ByteLimit   int64             `protobuf:"varint,3,opt,name=byte_limit,json=byteLimit,proto3" json:"byte_limit,omitempty"`
-	Timeout     int64             `protobuf:"varint,4,opt,name=timeout,proto3" json:"timeout,omitempty"`
-	RoleAccount string            `protobuf:"bytes,5,opt,name=role_account,json=roleAccount,proto3" json:"role_account,omitempty"`
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *DebugRequest) Reset() {
 	*x = DebugRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_debug_debug_proto_msgTypes[0]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_debug_debug_proto_msgTypes[0]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *DebugRequest) String() string {
@@ -99,8 +96,8 @@ func (x *DebugRequest) String() string {
 func (*DebugRequest) ProtoMessage() {}
 
 func (x *DebugRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_debug_debug_proto_msgTypes[0]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_debug_debug_proto_msgTypes[0]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -112,7 +109,7 @@ func (x *DebugRequest) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use DebugRequest.ProtoReflect.Descriptor instead.
 func (*DebugRequest) Descriptor() ([]byte, []int) {
-	return file_debug_debug_proto_rawDescGZIP(), []int{0}
+	return file_github_com_openconfig_gnoi_debug_debug_proto_rawDescGZIP(), []int{0}
 }
 
 func (x *DebugRequest) GetMode() DebugRequest_Mode {
@@ -151,25 +148,22 @@ func (x *DebugRequest) GetRoleAccount() string {
 }
 
 type DebugResponse struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	// Types that are assignable to Response:
+	state protoimpl.MessageState `protogen:"open.v1"`
+	// Types that are valid to be assigned to Response:
 	//
 	//	*DebugResponse_Request
 	//	*DebugResponse_Data
 	//	*DebugResponse_Status
-	Response isDebugResponse_Response `protobuf_oneof:"response"`
+	Response      isDebugResponse_Response `protobuf_oneof:"response"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *DebugResponse) Reset() {
 	*x = DebugResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_debug_debug_proto_msgTypes[1]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_debug_debug_proto_msgTypes[1]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *DebugResponse) String() string {
@@ -179,8 +173,8 @@ func (x *DebugResponse) String() string {
 func (*DebugResponse) ProtoMessage() {}
 
 func (x *DebugResponse) ProtoReflect() protoreflect.Message {
-	mi := &file_debug_debug_proto_msgTypes[1]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_debug_debug_proto_msgTypes[1]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -192,33 +186,39 @@ func (x *DebugResponse) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use DebugResponse.ProtoReflect.Descriptor instead.
 func (*DebugResponse) Descriptor() ([]byte, []int) {
-	return file_debug_debug_proto_rawDescGZIP(), []int{1}
+	return file_github_com_openconfig_gnoi_debug_debug_proto_rawDescGZIP(), []int{1}
 }
 
-func (m *DebugResponse) GetResponse() isDebugResponse_Response {
-	if m != nil {
-		return m.Response
+func (x *DebugResponse) GetResponse() isDebugResponse_Response {
+	if x != nil {
+		return x.Response
 	}
 	return nil
 }
 
 func (x *DebugResponse) GetRequest() *DebugRequest {
-	if x, ok := x.GetResponse().(*DebugResponse_Request); ok {
-		return x.Request
+	if x != nil {
+		if x, ok := x.Response.(*DebugResponse_Request); ok {
+			return x.Request
+		}
 	}
 	return nil
 }
 
 func (x *DebugResponse) GetData() []byte {
-	if x, ok := x.GetResponse().(*DebugResponse_Data); ok {
-		return x.Data
+	if x != nil {
+		if x, ok := x.Response.(*DebugResponse_Data); ok {
+			return x.Data
+		}
 	}
 	return nil
 }
 
 func (x *DebugResponse) GetStatus() *DebugStatus {
-	if x, ok := x.GetResponse().(*DebugResponse_Status); ok {
-		return x.Status
+	if x != nil {
+		if x, ok := x.Response.(*DebugResponse_Status); ok {
+			return x.Status
+		}
 	}
 	return nil
 }
@@ -246,22 +246,19 @@ func (*DebugResponse_Data) isDebugResponse_Response() {}
 func (*DebugResponse_Status) isDebugResponse_Response() {}
 
 type DebugStatus struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Code          int32                  `protobuf:"varint,1,opt,name=code,proto3" json:"code,omitempty"`
+	Message       string                 `protobuf:"bytes,2,opt,name=message,proto3" json:"message,omitempty"`
+	Details       []*anypb.Any           `protobuf:"bytes,3,rep,name=details,proto3" json:"details,omitempty"`
 	unknownFields protoimpl.UnknownFields
-
-	Code    int32        `protobuf:"varint,1,opt,name=code,proto3" json:"code,omitempty"`
-	Message string       `protobuf:"bytes,2,opt,name=message,proto3" json:"message,omitempty"`
-	Details []*anypb.Any `protobuf:"bytes,3,rep,name=details,proto3" json:"details,omitempty"`
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *DebugStatus) Reset() {
 	*x = DebugStatus{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_debug_debug_proto_msgTypes[2]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_debug_debug_proto_msgTypes[2]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *DebugStatus) String() string {
@@ -271,8 +268,8 @@ func (x *DebugStatus) String() string {
 func (*DebugStatus) ProtoMessage() {}
 
 func (x *DebugStatus) ProtoReflect() protoreflect.Message {
-	mi := &file_debug_debug_proto_msgTypes[2]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_debug_debug_proto_msgTypes[2]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -284,7 +281,7 @@ func (x *DebugStatus) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use DebugStatus.ProtoReflect.Descriptor instead.
 func (*DebugStatus) Descriptor() ([]byte, []int) {
-	return file_debug_debug_proto_rawDescGZIP(), []int{2}
+	return file_github_com_openconfig_gnoi_debug_debug_proto_rawDescGZIP(), []int{2}
 }
 
 func (x *DebugStatus) GetCode() int32 {
@@ -308,80 +305,81 @@ func (x *DebugStatus) GetDetails() []*anypb.Any {
 	return nil
 }
 
-var File_debug_debug_proto protoreflect.FileDescriptor
-
-var file_debug_debug_proto_rawDesc = []byte{
-	0x0a, 0x11, 0x64, 0x65, 0x62, 0x75, 0x67, 0x2f, 0x64, 0x65, 0x62, 0x75, 0x67, 0x2e, 0x70, 0x72,
-	0x6f, 0x74, 0x6f, 0x12, 0x0a, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x64, 0x65, 0x62, 0x75, 0x67, 0x1a,
-	0x2c, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x70, 0x65, 0x6e,
-	0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x67, 0x6e, 0x6f, 0x69, 0x2f, 0x74, 0x79, 0x70, 0x65,
-	0x73, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x67,
-	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x61,
-	0x6e, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xf3, 0x01, 0x0a, 0x0c, 0x44, 0x65, 0x62,
-	0x75, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x31, 0x0a, 0x04, 0x6d, 0x6f, 0x64,
-	0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x64,
-	0x65, 0x62, 0x75, 0x67, 0x2e, 0x44, 0x65, 0x62, 0x75, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
-	0x74, 0x2e, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07,
-	0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x63,
-	0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x62, 0x79, 0x74, 0x65, 0x5f, 0x6c,
-	0x69, 0x6d, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x62, 0x79, 0x74, 0x65,
-	0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74,
-	0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12,
-	0x21, 0x0a, 0x0c, 0x72, 0x6f, 0x6c, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18,
-	0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x6f, 0x6c, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75,
-	0x6e, 0x74, 0x22, 0x3a, 0x0a, 0x04, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x14, 0x0a, 0x10, 0x4d, 0x4f,
-	0x44, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00,
-	0x12, 0x0e, 0x0a, 0x0a, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x53, 0x48, 0x45, 0x4c, 0x4c, 0x10, 0x01,
-	0x12, 0x0c, 0x0a, 0x08, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x43, 0x4c, 0x49, 0x10, 0x02, 0x22, 0x9a,
-	0x01, 0x0a, 0x0d, 0x44, 0x65, 0x62, 0x75, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
-	0x12, 0x34, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x64, 0x20, 0x01, 0x28,
-	0x0b, 0x32, 0x18, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x64, 0x65, 0x62, 0x75, 0x67, 0x2e, 0x44,
-	0x65, 0x62, 0x75, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x07, 0x72,
-	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x65,
-	0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x31, 0x0a, 0x06,
-	0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x66, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67,
-	0x6e, 0x6f, 0x69, 0x2e, 0x64, 0x65, 0x62, 0x75, 0x67, 0x2e, 0x44, 0x65, 0x62, 0x75, 0x67, 0x53,
-	0x74, 0x61, 0x74, 0x75, 0x73, 0x48, 0x00, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x42,
-	0x0a, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x6b, 0x0a, 0x0b, 0x44,
-	0x65, 0x62, 0x75, 0x67, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f,
-	0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x18,
-	0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
-	0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x2e, 0x0a, 0x07, 0x64, 0x65, 0x74, 0x61,
-	0x69, 0x6c, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
-	0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52,
-	0x07, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x32, 0x47, 0x0a, 0x05, 0x44, 0x65, 0x62, 0x75,
-	0x67, 0x12, 0x3e, 0x0a, 0x05, 0x44, 0x65, 0x62, 0x75, 0x67, 0x12, 0x18, 0x2e, 0x67, 0x6e, 0x6f,
-	0x69, 0x2e, 0x64, 0x65, 0x62, 0x75, 0x67, 0x2e, 0x44, 0x65, 0x62, 0x75, 0x67, 0x52, 0x65, 0x71,
-	0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x64, 0x65, 0x62, 0x75,
-	0x67, 0x2e, 0x44, 0x65, 0x62, 0x75, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30,
-	0x01, 0x42, 0x2a, 0xd2, 0x3e, 0x05, 0x30, 0x2e, 0x31, 0x2e, 0x30, 0x5a, 0x20, 0x67, 0x69, 0x74,
-	0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66,
-	0x69, 0x67, 0x2f, 0x67, 0x6e, 0x6f, 0x69, 0x2f, 0x64, 0x65, 0x62, 0x75, 0x67, 0x62, 0x06, 0x70,
-	0x72, 0x6f, 0x74, 0x6f, 0x33,
+var File_github_com_openconfig_gnoi_debug_debug_proto protoreflect.FileDescriptor
+
+var file_github_com_openconfig_gnoi_debug_debug_proto_rawDesc = []byte{
+	0x0a, 0x2c, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x70, 0x65,
+	0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x67, 0x6e, 0x6f, 0x69, 0x2f, 0x64, 0x65, 0x62,
+	0x75, 0x67, 0x2f, 0x64, 0x65, 0x62, 0x75, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0a,
+	0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x64, 0x65, 0x62, 0x75, 0x67, 0x1a, 0x2c, 0x67, 0x69, 0x74, 0x68,
+	0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69,
+	0x67, 0x2f, 0x67, 0x6e, 0x6f, 0x69, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2f, 0x74, 0x79, 0x70,
+	0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
+	0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x61, 0x6e, 0x79, 0x2e, 0x70, 0x72,
+	0x6f, 0x74, 0x6f, 0x22, 0xf3, 0x01, 0x0a, 0x0c, 0x44, 0x65, 0x62, 0x75, 0x67, 0x52, 0x65, 0x71,
+	0x75, 0x65, 0x73, 0x74, 0x12, 0x31, 0x0a, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01,
+	0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x64, 0x65, 0x62, 0x75, 0x67, 0x2e,
+	0x44, 0x65, 0x62, 0x75, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x4d, 0x6f, 0x64,
+	0x65, 0x52, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x61,
+	0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e,
+	0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x62, 0x79, 0x74, 0x65, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18,
+	0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x62, 0x79, 0x74, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74,
+	0x12, 0x18, 0x0a, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28,
+	0x03, 0x52, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x6f,
+	0x6c, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09,
+	0x52, 0x0b, 0x72, 0x6f, 0x6c, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x3a, 0x0a,
+	0x04, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x14, 0x0a, 0x10, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x55, 0x4e,
+	0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x4d,
+	0x4f, 0x44, 0x45, 0x5f, 0x53, 0x48, 0x45, 0x4c, 0x4c, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x4d,
+	0x4f, 0x44, 0x45, 0x5f, 0x43, 0x4c, 0x49, 0x10, 0x02, 0x22, 0x9a, 0x01, 0x0a, 0x0d, 0x44, 0x65,
+	0x62, 0x75, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x34, 0x0a, 0x07, 0x72,
+	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x64, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x67,
+	0x6e, 0x6f, 0x69, 0x2e, 0x64, 0x65, 0x62, 0x75, 0x67, 0x2e, 0x44, 0x65, 0x62, 0x75, 0x67, 0x52,
+	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73,
+	0x74, 0x12, 0x14, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x65, 0x20, 0x01, 0x28, 0x0c, 0x48,
+	0x00, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x31, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75,
+	0x73, 0x18, 0x66, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x64,
+	0x65, 0x62, 0x75, 0x67, 0x2e, 0x44, 0x65, 0x62, 0x75, 0x67, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73,
+	0x48, 0x00, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, 0x0a, 0x0a, 0x08, 0x72, 0x65,
+	0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x6b, 0x0a, 0x0b, 0x44, 0x65, 0x62, 0x75, 0x67, 0x53,
+	0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20,
+	0x01, 0x28, 0x05, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73,
+	0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73,
+	0x61, 0x67, 0x65, 0x12, 0x2e, 0x0a, 0x07, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x03,
+	0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72,
+	0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x07, 0x64, 0x65, 0x74, 0x61,
+	0x69, 0x6c, 0x73, 0x32, 0x47, 0x0a, 0x05, 0x44, 0x65, 0x62, 0x75, 0x67, 0x12, 0x3e, 0x0a, 0x05,
+	0x44, 0x65, 0x62, 0x75, 0x67, 0x12, 0x18, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x64, 0x65, 0x62,
+	0x75, 0x67, 0x2e, 0x44, 0x65, 0x62, 0x75, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
+	0x19, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x64, 0x65, 0x62, 0x75, 0x67, 0x2e, 0x44, 0x65, 0x62,
+	0x75, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x42, 0x2a, 0xd2, 0x3e,
+	0x05, 0x30, 0x2e, 0x31, 0x2e, 0x30, 0x5a, 0x20, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63,
+	0x6f, 0x6d, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x67, 0x6e,
+	0x6f, 0x69, 0x2f, 0x64, 0x65, 0x62, 0x75, 0x67, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
 }
 
 var (
-	file_debug_debug_proto_rawDescOnce sync.Once
-	file_debug_debug_proto_rawDescData = file_debug_debug_proto_rawDesc
+	file_github_com_openconfig_gnoi_debug_debug_proto_rawDescOnce sync.Once
+	file_github_com_openconfig_gnoi_debug_debug_proto_rawDescData = file_github_com_openconfig_gnoi_debug_debug_proto_rawDesc
 )
 
-func file_debug_debug_proto_rawDescGZIP() []byte {
-	file_debug_debug_proto_rawDescOnce.Do(func() {
-		file_debug_debug_proto_rawDescData = protoimpl.X.CompressGZIP(file_debug_debug_proto_rawDescData)
+func file_github_com_openconfig_gnoi_debug_debug_proto_rawDescGZIP() []byte {
+	file_github_com_openconfig_gnoi_debug_debug_proto_rawDescOnce.Do(func() {
+		file_github_com_openconfig_gnoi_debug_debug_proto_rawDescData = protoimpl.X.CompressGZIP(file_github_com_openconfig_gnoi_debug_debug_proto_rawDescData)
 	})
-	return file_debug_debug_proto_rawDescData
+	return file_github_com_openconfig_gnoi_debug_debug_proto_rawDescData
 }
 
-var file_debug_debug_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
-var file_debug_debug_proto_msgTypes = make([]protoimpl.MessageInfo, 3)
-var file_debug_debug_proto_goTypes = []interface{}{
+var file_github_com_openconfig_gnoi_debug_debug_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
+var file_github_com_openconfig_gnoi_debug_debug_proto_msgTypes = make([]protoimpl.MessageInfo, 3)
+var file_github_com_openconfig_gnoi_debug_debug_proto_goTypes = []any{
 	(DebugRequest_Mode)(0), // 0: gnoi.debug.DebugRequest.Mode
 	(*DebugRequest)(nil),   // 1: gnoi.debug.DebugRequest
 	(*DebugResponse)(nil),  // 2: gnoi.debug.DebugResponse
 	(*DebugStatus)(nil),    // 3: gnoi.debug.DebugStatus
 	(*anypb.Any)(nil),      // 4: google.protobuf.Any
 }
-var file_debug_debug_proto_depIdxs = []int32{
+var file_github_com_openconfig_gnoi_debug_debug_proto_depIdxs = []int32{
 	0, // 0: gnoi.debug.DebugRequest.mode:type_name -> gnoi.debug.DebugRequest.Mode
 	1, // 1: gnoi.debug.DebugResponse.request:type_name -> gnoi.debug.DebugRequest
 	3, // 2: gnoi.debug.DebugResponse.status:type_name -> gnoi.debug.DebugStatus
@@ -395,50 +393,12 @@ var file_debug_debug_proto_depIdxs = []int32{
 	0, // [0:4] is the sub-list for field type_name
 }
 
-func init() { file_debug_debug_proto_init() }
-func file_debug_debug_proto_init() {
-	if File_debug_debug_proto != nil {
+func init() { file_github_com_openconfig_gnoi_debug_debug_proto_init() }
+func file_github_com_openconfig_gnoi_debug_debug_proto_init() {
+	if File_github_com_openconfig_gnoi_debug_debug_proto != nil {
 		return
 	}
-	if !protoimpl.UnsafeEnabled {
-		file_debug_debug_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*DebugRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_debug_debug_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*DebugResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_debug_debug_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*DebugStatus); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-	}
-	file_debug_debug_proto_msgTypes[1].OneofWrappers = []interface{}{
+	file_github_com_openconfig_gnoi_debug_debug_proto_msgTypes[1].OneofWrappers = []any{
 		(*DebugResponse_Request)(nil),
 		(*DebugResponse_Data)(nil),
 		(*DebugResponse_Status)(nil),
@@ -447,19 +407,19 @@ func file_debug_debug_proto_init() {
 	out := protoimpl.TypeBuilder{
 		File: protoimpl.DescBuilder{
 			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
-			RawDescriptor: file_debug_debug_proto_rawDesc,
+			RawDescriptor: file_github_com_openconfig_gnoi_debug_debug_proto_rawDesc,
 			NumEnums:      1,
 			NumMessages:   3,
 			NumExtensions: 0,
 			NumServices:   1,
 		},
-		GoTypes:           file_debug_debug_proto_goTypes,
-		DependencyIndexes: file_debug_debug_proto_depIdxs,
-		EnumInfos:         file_debug_debug_proto_enumTypes,
-		MessageInfos:      file_debug_debug_proto_msgTypes,
+		GoTypes:           file_github_com_openconfig_gnoi_debug_debug_proto_goTypes,
+		DependencyIndexes: file_github_com_openconfig_gnoi_debug_debug_proto_depIdxs,
+		EnumInfos:         file_github_com_openconfig_gnoi_debug_debug_proto_enumTypes,
+		MessageInfos:      file_github_com_openconfig_gnoi_debug_debug_proto_msgTypes,
 	}.Build()
-	File_debug_debug_proto = out.File
-	file_debug_debug_proto_rawDesc = nil
-	file_debug_debug_proto_goTypes = nil
-	file_debug_debug_proto_depIdxs = nil
+	File_github_com_openconfig_gnoi_debug_debug_proto = out.File
+	file_github_com_openconfig_gnoi_debug_debug_proto_rawDesc = nil
+	file_github_com_openconfig_gnoi_debug_debug_proto_goTypes = nil
+	file_github_com_openconfig_gnoi_debug_debug_proto_depIdxs = nil
 }
diff --git a/debug/debug_grpc.pb.go b/debug/debug_grpc.pb.go
index e6d6699b..58a651ae 100644
--- a/debug/debug_grpc.pb.go
+++ b/debug/debug_grpc.pb.go
@@ -1,8 +1,8 @@
 // Code generated by protoc-gen-go-grpc. DO NOT EDIT.
 // versions:
-// - protoc-gen-go-grpc v1.2.0
-// - protoc             v3.21.10
-// source: debug/debug.proto
+// - protoc-gen-go-grpc v1.5.1
+// - protoc             v5.29.3
+// source: github.com/openconfig/gnoi/debug/debug.proto
 
 package debug
 
@@ -15,14 +15,18 @@ import (
 
 // This is a compile-time assertion to ensure that this generated file
 // is compatible with the grpc package it is being compiled against.
-// Requires gRPC-Go v1.32.0 or later.
-const _ = grpc.SupportPackageIsVersion7
+// Requires gRPC-Go v1.64.0 or later.
+const _ = grpc.SupportPackageIsVersion9
+
+const (
+	Debug_Debug_FullMethodName = "/gnoi.debug.Debug/Debug"
+)
 
 // DebugClient is the client API for Debug service.
 //
 // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.
 type DebugClient interface {
-	Debug(ctx context.Context, in *DebugRequest, opts ...grpc.CallOption) (Debug_DebugClient, error)
+	Debug(ctx context.Context, in *DebugRequest, opts ...grpc.CallOption) (grpc.ServerStreamingClient[DebugResponse], error)
 }
 
 type debugClient struct {
@@ -33,12 +37,13 @@ func NewDebugClient(cc grpc.ClientConnInterface) DebugClient {
 	return &debugClient{cc}
 }
 
-func (c *debugClient) Debug(ctx context.Context, in *DebugRequest, opts ...grpc.CallOption) (Debug_DebugClient, error) {
-	stream, err := c.cc.NewStream(ctx, &Debug_ServiceDesc.Streams[0], "/gnoi.debug.Debug/Debug", opts...)
+func (c *debugClient) Debug(ctx context.Context, in *DebugRequest, opts ...grpc.CallOption) (grpc.ServerStreamingClient[DebugResponse], error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	stream, err := c.cc.NewStream(ctx, &Debug_ServiceDesc.Streams[0], Debug_Debug_FullMethodName, cOpts...)
 	if err != nil {
 		return nil, err
 	}
-	x := &debugDebugClient{stream}
+	x := &grpc.GenericClientStream[DebugRequest, DebugResponse]{ClientStream: stream}
 	if err := x.ClientStream.SendMsg(in); err != nil {
 		return nil, err
 	}
@@ -48,39 +53,27 @@ func (c *debugClient) Debug(ctx context.Context, in *DebugRequest, opts ...grpc.
 	return x, nil
 }
 
-type Debug_DebugClient interface {
-	Recv() (*DebugResponse, error)
-	grpc.ClientStream
-}
-
-type debugDebugClient struct {
-	grpc.ClientStream
-}
-
-func (x *debugDebugClient) Recv() (*DebugResponse, error) {
-	m := new(DebugResponse)
-	if err := x.ClientStream.RecvMsg(m); err != nil {
-		return nil, err
-	}
-	return m, nil
-}
+// This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name.
+type Debug_DebugClient = grpc.ServerStreamingClient[DebugResponse]
 
 // DebugServer is the server API for Debug service.
-// All implementations must embed UnimplementedDebugServer
-// for forward compatibility
+// All implementations should embed UnimplementedDebugServer
+// for forward compatibility.
 type DebugServer interface {
-	Debug(*DebugRequest, Debug_DebugServer) error
-	mustEmbedUnimplementedDebugServer()
+	Debug(*DebugRequest, grpc.ServerStreamingServer[DebugResponse]) error
 }
 
-// UnimplementedDebugServer must be embedded to have forward compatible implementations.
-type UnimplementedDebugServer struct {
-}
+// UnimplementedDebugServer should be embedded to have
+// forward compatible implementations.
+//
+// NOTE: this should be embedded by value instead of pointer to avoid a nil
+// pointer dereference when methods are called.
+type UnimplementedDebugServer struct{}
 
-func (UnimplementedDebugServer) Debug(*DebugRequest, Debug_DebugServer) error {
+func (UnimplementedDebugServer) Debug(*DebugRequest, grpc.ServerStreamingServer[DebugResponse]) error {
 	return status.Errorf(codes.Unimplemented, "method Debug not implemented")
 }
-func (UnimplementedDebugServer) mustEmbedUnimplementedDebugServer() {}
+func (UnimplementedDebugServer) testEmbeddedByValue() {}
 
 // UnsafeDebugServer may be embedded to opt out of forward compatibility for this service.
 // Use of this interface is not recommended, as added methods to DebugServer will
@@ -90,6 +83,13 @@ type UnsafeDebugServer interface {
 }
 
 func RegisterDebugServer(s grpc.ServiceRegistrar, srv DebugServer) {
+	// If the following call pancis, it indicates UnimplementedDebugServer was
+	// embedded by pointer and is nil.  This will cause panics if an
+	// unimplemented method is ever invoked, so we test this at initialization
+	// time to prevent it from happening at runtime later due to I/O.
+	if t, ok := srv.(interface{ testEmbeddedByValue() }); ok {
+		t.testEmbeddedByValue()
+	}
 	s.RegisterService(&Debug_ServiceDesc, srv)
 }
 
@@ -98,21 +98,11 @@ func _Debug_Debug_Handler(srv interface{}, stream grpc.ServerStream) error {
 	if err := stream.RecvMsg(m); err != nil {
 		return err
 	}
-	return srv.(DebugServer).Debug(m, &debugDebugServer{stream})
+	return srv.(DebugServer).Debug(m, &grpc.GenericServerStream[DebugRequest, DebugResponse]{ServerStream: stream})
 }
 
-type Debug_DebugServer interface {
-	Send(*DebugResponse) error
-	grpc.ServerStream
-}
-
-type debugDebugServer struct {
-	grpc.ServerStream
-}
-
-func (x *debugDebugServer) Send(m *DebugResponse) error {
-	return x.ServerStream.SendMsg(m)
-}
+// This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name.
+type Debug_DebugServer = grpc.ServerStreamingServer[DebugResponse]
 
 // Debug_ServiceDesc is the grpc.ServiceDesc for Debug service.
 // It's only intended for direct use with grpc.RegisterService,
@@ -128,5 +118,5 @@ var Debug_ServiceDesc = grpc.ServiceDesc{
 			ServerStreams: true,
 		},
 	},
-	Metadata: "debug/debug.proto",
+	Metadata: "github.com/openconfig/gnoi/debug/debug.proto",
 }
diff --git a/diag/BUILD.bazel b/diag/BUILD.bazel
index 2e2fe744..1ed9ed82 100644
--- a/diag/BUILD.bazel
+++ b/diag/BUILD.bazel
@@ -1,8 +1,8 @@
-load("@rules_proto//proto:defs.bzl", "proto_library")
+load("@com_github_grpc_grpc//bazel:cc_grpc_library.bzl", "cc_grpc_library")
+load("@com_google_protobuf//bazel:cc_proto_library.bzl", "cc_proto_library")
+load("@com_google_protobuf//bazel:proto_library.bzl", "proto_library")
 load("@io_bazel_rules_go//go:def.bzl", "go_library")
 load("@io_bazel_rules_go//proto:def.bzl", "go_proto_library")
-load("@com_github_grpc_grpc//bazel:cc_grpc_library.bzl", "cc_grpc_library")
-load("//:common.bzl", "use_new_compilers")
 
 #Copyright 2021 Google LLC
 #
@@ -23,11 +23,10 @@ package(
     licenses = ["notice"],
 )
 
-use_new_compilers()
-
 proto_library(
     name = "diag_proto",
     srcs = ["diag.proto"],
+    import_prefix = "github.com/openconfig/gnoi",
     deps = [
         "//types:types_proto",
     ],
@@ -48,8 +47,8 @@ cc_grpc_library(
 go_proto_library(
     name = "diag_go_proto",
     compilers = [
-        "go_protoc_gen_go",
-        "go_protoc_gen_go_grpc",
+        "@io_bazel_rules_go//proto:go_grpc_v2",
+        "@io_bazel_rules_go//proto:go_proto",
     ],
     importpath = "github.com/openconfig/gnoi/diag",
     proto = ":diag_proto",
diff --git a/diag/diag.pb.go b/diag/diag.pb.go
index 90b8c838..5b770a61 100644
--- a/diag/diag.pb.go
+++ b/diag/diag.pb.go
@@ -1,8 +1,8 @@
 // Code generated by protoc-gen-go. DO NOT EDIT.
 // versions:
-// 	protoc-gen-go v1.30.0
-// 	protoc        v3.21.10
-// source: diag/diag.proto
+// 	protoc-gen-go v1.36.2
+// 	protoc        v5.29.3
+// source: github.com/openconfig/gnoi/diag/diag.proto
 
 package diag
 
@@ -66,11 +66,11 @@ func (x PrbsPolynomial) String() string {
 }
 
 func (PrbsPolynomial) Descriptor() protoreflect.EnumDescriptor {
-	return file_diag_diag_proto_enumTypes[0].Descriptor()
+	return file_github_com_openconfig_gnoi_diag_diag_proto_enumTypes[0].Descriptor()
 }
 
 func (PrbsPolynomial) Type() protoreflect.EnumType {
-	return &file_diag_diag_proto_enumTypes[0]
+	return &file_github_com_openconfig_gnoi_diag_diag_proto_enumTypes[0]
 }
 
 func (x PrbsPolynomial) Number() protoreflect.EnumNumber {
@@ -79,7 +79,7 @@ func (x PrbsPolynomial) Number() protoreflect.EnumNumber {
 
 // Deprecated: Use PrbsPolynomial.Descriptor instead.
 func (PrbsPolynomial) EnumDescriptor() ([]byte, []int) {
-	return file_diag_diag_proto_rawDescGZIP(), []int{0}
+	return file_github_com_openconfig_gnoi_diag_diag_proto_rawDescGZIP(), []int{0}
 }
 
 type BertStatus int32
@@ -148,11 +148,11 @@ func (x BertStatus) String() string {
 }
 
 func (BertStatus) Descriptor() protoreflect.EnumDescriptor {
-	return file_diag_diag_proto_enumTypes[1].Descriptor()
+	return file_github_com_openconfig_gnoi_diag_diag_proto_enumTypes[1].Descriptor()
 }
 
 func (BertStatus) Type() protoreflect.EnumType {
-	return &file_diag_diag_proto_enumTypes[1]
+	return &file_github_com_openconfig_gnoi_diag_diag_proto_enumTypes[1]
 }
 
 func (x BertStatus) Number() protoreflect.EnumNumber {
@@ -161,25 +161,22 @@ func (x BertStatus) Number() protoreflect.EnumNumber {
 
 // Deprecated: Use BertStatus.Descriptor instead.
 func (BertStatus) EnumDescriptor() ([]byte, []int) {
-	return file_diag_diag_proto_rawDescGZIP(), []int{1}
+	return file_github_com_openconfig_gnoi_diag_diag_proto_rawDescGZIP(), []int{1}
 }
 
 type StartBERTRequest struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
+	state           protoimpl.MessageState             `protogen:"open.v1"`
 	BertOperationId string                             `protobuf:"bytes,1,opt,name=bert_operation_id,json=bertOperationId,proto3" json:"bert_operation_id,omitempty"`
 	PerPortRequests []*StartBERTRequest_PerPortRequest `protobuf:"bytes,2,rep,name=per_port_requests,json=perPortRequests,proto3" json:"per_port_requests,omitempty"`
+	unknownFields   protoimpl.UnknownFields
+	sizeCache       protoimpl.SizeCache
 }
 
 func (x *StartBERTRequest) Reset() {
 	*x = StartBERTRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_diag_diag_proto_msgTypes[0]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_diag_diag_proto_msgTypes[0]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *StartBERTRequest) String() string {
@@ -189,8 +186,8 @@ func (x *StartBERTRequest) String() string {
 func (*StartBERTRequest) ProtoMessage() {}
 
 func (x *StartBERTRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_diag_diag_proto_msgTypes[0]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_diag_diag_proto_msgTypes[0]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -202,7 +199,7 @@ func (x *StartBERTRequest) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use StartBERTRequest.ProtoReflect.Descriptor instead.
 func (*StartBERTRequest) Descriptor() ([]byte, []int) {
-	return file_diag_diag_proto_rawDescGZIP(), []int{0}
+	return file_github_com_openconfig_gnoi_diag_diag_proto_rawDescGZIP(), []int{0}
 }
 
 func (x *StartBERTRequest) GetBertOperationId() string {
@@ -220,21 +217,18 @@ func (x *StartBERTRequest) GetPerPortRequests() []*StartBERTRequest_PerPortReque
 }
 
 type StartBERTResponse struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
+	state            protoimpl.MessageState               `protogen:"open.v1"`
 	BertOperationId  string                               `protobuf:"bytes,1,opt,name=bert_operation_id,json=bertOperationId,proto3" json:"bert_operation_id,omitempty"`
 	PerPortResponses []*StartBERTResponse_PerPortResponse `protobuf:"bytes,2,rep,name=per_port_responses,json=perPortResponses,proto3" json:"per_port_responses,omitempty"`
+	unknownFields    protoimpl.UnknownFields
+	sizeCache        protoimpl.SizeCache
 }
 
 func (x *StartBERTResponse) Reset() {
 	*x = StartBERTResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_diag_diag_proto_msgTypes[1]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_diag_diag_proto_msgTypes[1]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *StartBERTResponse) String() string {
@@ -244,8 +238,8 @@ func (x *StartBERTResponse) String() string {
 func (*StartBERTResponse) ProtoMessage() {}
 
 func (x *StartBERTResponse) ProtoReflect() protoreflect.Message {
-	mi := &file_diag_diag_proto_msgTypes[1]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_diag_diag_proto_msgTypes[1]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -257,7 +251,7 @@ func (x *StartBERTResponse) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use StartBERTResponse.ProtoReflect.Descriptor instead.
 func (*StartBERTResponse) Descriptor() ([]byte, []int) {
-	return file_diag_diag_proto_rawDescGZIP(), []int{1}
+	return file_github_com_openconfig_gnoi_diag_diag_proto_rawDescGZIP(), []int{1}
 }
 
 func (x *StartBERTResponse) GetBertOperationId() string {
@@ -275,21 +269,18 @@ func (x *StartBERTResponse) GetPerPortResponses() []*StartBERTResponse_PerPortRe
 }
 
 type StopBERTRequest struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
+	state           protoimpl.MessageState            `protogen:"open.v1"`
 	BertOperationId string                            `protobuf:"bytes,1,opt,name=bert_operation_id,json=bertOperationId,proto3" json:"bert_operation_id,omitempty"`
 	PerPortRequests []*StopBERTRequest_PerPortRequest `protobuf:"bytes,2,rep,name=per_port_requests,json=perPortRequests,proto3" json:"per_port_requests,omitempty"`
+	unknownFields   protoimpl.UnknownFields
+	sizeCache       protoimpl.SizeCache
 }
 
 func (x *StopBERTRequest) Reset() {
 	*x = StopBERTRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_diag_diag_proto_msgTypes[2]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_diag_diag_proto_msgTypes[2]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *StopBERTRequest) String() string {
@@ -299,8 +290,8 @@ func (x *StopBERTRequest) String() string {
 func (*StopBERTRequest) ProtoMessage() {}
 
 func (x *StopBERTRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_diag_diag_proto_msgTypes[2]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_diag_diag_proto_msgTypes[2]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -312,7 +303,7 @@ func (x *StopBERTRequest) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use StopBERTRequest.ProtoReflect.Descriptor instead.
 func (*StopBERTRequest) Descriptor() ([]byte, []int) {
-	return file_diag_diag_proto_rawDescGZIP(), []int{2}
+	return file_github_com_openconfig_gnoi_diag_diag_proto_rawDescGZIP(), []int{2}
 }
 
 func (x *StopBERTRequest) GetBertOperationId() string {
@@ -330,21 +321,18 @@ func (x *StopBERTRequest) GetPerPortRequests() []*StopBERTRequest_PerPortRequest
 }
 
 type StopBERTResponse struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
+	state            protoimpl.MessageState              `protogen:"open.v1"`
 	BertOperationId  string                              `protobuf:"bytes,1,opt,name=bert_operation_id,json=bertOperationId,proto3" json:"bert_operation_id,omitempty"`
 	PerPortResponses []*StopBERTResponse_PerPortResponse `protobuf:"bytes,2,rep,name=per_port_responses,json=perPortResponses,proto3" json:"per_port_responses,omitempty"`
+	unknownFields    protoimpl.UnknownFields
+	sizeCache        protoimpl.SizeCache
 }
 
 func (x *StopBERTResponse) Reset() {
 	*x = StopBERTResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_diag_diag_proto_msgTypes[3]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_diag_diag_proto_msgTypes[3]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *StopBERTResponse) String() string {
@@ -354,8 +342,8 @@ func (x *StopBERTResponse) String() string {
 func (*StopBERTResponse) ProtoMessage() {}
 
 func (x *StopBERTResponse) ProtoReflect() protoreflect.Message {
-	mi := &file_diag_diag_proto_msgTypes[3]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_diag_diag_proto_msgTypes[3]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -367,7 +355,7 @@ func (x *StopBERTResponse) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use StopBERTResponse.ProtoReflect.Descriptor instead.
 func (*StopBERTResponse) Descriptor() ([]byte, []int) {
-	return file_diag_diag_proto_rawDescGZIP(), []int{3}
+	return file_github_com_openconfig_gnoi_diag_diag_proto_rawDescGZIP(), []int{3}
 }
 
 func (x *StopBERTResponse) GetBertOperationId() string {
@@ -385,22 +373,19 @@ func (x *StopBERTResponse) GetPerPortResponses() []*StopBERTResponse_PerPortResp
 }
 
 type GetBERTResultRequest struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
+	state              protoimpl.MessageState                 `protogen:"open.v1"`
 	BertOperationId    string                                 `protobuf:"bytes,1,opt,name=bert_operation_id,json=bertOperationId,proto3" json:"bert_operation_id,omitempty"`
 	PerPortRequests    []*GetBERTResultRequest_PerPortRequest `protobuf:"bytes,2,rep,name=per_port_requests,json=perPortRequests,proto3" json:"per_port_requests,omitempty"`
 	ResultFromAllPorts bool                                   `protobuf:"varint,3,opt,name=result_from_all_ports,json=resultFromAllPorts,proto3" json:"result_from_all_ports,omitempty"`
+	unknownFields      protoimpl.UnknownFields
+	sizeCache          protoimpl.SizeCache
 }
 
 func (x *GetBERTResultRequest) Reset() {
 	*x = GetBERTResultRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_diag_diag_proto_msgTypes[4]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_diag_diag_proto_msgTypes[4]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *GetBERTResultRequest) String() string {
@@ -410,8 +395,8 @@ func (x *GetBERTResultRequest) String() string {
 func (*GetBERTResultRequest) ProtoMessage() {}
 
 func (x *GetBERTResultRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_diag_diag_proto_msgTypes[4]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_diag_diag_proto_msgTypes[4]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -423,7 +408,7 @@ func (x *GetBERTResultRequest) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use GetBERTResultRequest.ProtoReflect.Descriptor instead.
 func (*GetBERTResultRequest) Descriptor() ([]byte, []int) {
-	return file_diag_diag_proto_rawDescGZIP(), []int{4}
+	return file_github_com_openconfig_gnoi_diag_diag_proto_rawDescGZIP(), []int{4}
 }
 
 func (x *GetBERTResultRequest) GetBertOperationId() string {
@@ -448,20 +433,17 @@ func (x *GetBERTResultRequest) GetResultFromAllPorts() bool {
 }
 
 type GetBERTResultResponse struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
+	state            protoimpl.MessageState                   `protogen:"open.v1"`
 	PerPortResponses []*GetBERTResultResponse_PerPortResponse `protobuf:"bytes,1,rep,name=per_port_responses,json=perPortResponses,proto3" json:"per_port_responses,omitempty"`
+	unknownFields    protoimpl.UnknownFields
+	sizeCache        protoimpl.SizeCache
 }
 
 func (x *GetBERTResultResponse) Reset() {
 	*x = GetBERTResultResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_diag_diag_proto_msgTypes[5]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_diag_diag_proto_msgTypes[5]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *GetBERTResultResponse) String() string {
@@ -471,8 +453,8 @@ func (x *GetBERTResultResponse) String() string {
 func (*GetBERTResultResponse) ProtoMessage() {}
 
 func (x *GetBERTResultResponse) ProtoReflect() protoreflect.Message {
-	mi := &file_diag_diag_proto_msgTypes[5]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_diag_diag_proto_msgTypes[5]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -484,7 +466,7 @@ func (x *GetBERTResultResponse) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use GetBERTResultResponse.ProtoReflect.Descriptor instead.
 func (*GetBERTResultResponse) Descriptor() ([]byte, []int) {
-	return file_diag_diag_proto_rawDescGZIP(), []int{5}
+	return file_github_com_openconfig_gnoi_diag_diag_proto_rawDescGZIP(), []int{5}
 }
 
 func (x *GetBERTResultResponse) GetPerPortResponses() []*GetBERTResultResponse_PerPortResponse {
@@ -495,22 +477,19 @@ func (x *GetBERTResultResponse) GetPerPortResponses() []*GetBERTResultResponse_P
 }
 
 type StartBERTRequest_PerPortRequest struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	Interface          *types.Path    `protobuf:"bytes,1,opt,name=interface,proto3" json:"interface,omitempty"`
-	PrbsPolynomial     PrbsPolynomial `protobuf:"varint,2,opt,name=prbs_polynomial,json=prbsPolynomial,proto3,enum=gnoi.diag.PrbsPolynomial" json:"prbs_polynomial,omitempty"`
-	TestDurationInSecs uint32         `protobuf:"varint,3,opt,name=test_duration_in_secs,json=testDurationInSecs,proto3" json:"test_duration_in_secs,omitempty"`
+	state              protoimpl.MessageState `protogen:"open.v1"`
+	Interface          *types.Path            `protobuf:"bytes,1,opt,name=interface,proto3" json:"interface,omitempty"`
+	PrbsPolynomial     PrbsPolynomial         `protobuf:"varint,2,opt,name=prbs_polynomial,json=prbsPolynomial,proto3,enum=gnoi.diag.PrbsPolynomial" json:"prbs_polynomial,omitempty"`
+	TestDurationInSecs uint32                 `protobuf:"varint,3,opt,name=test_duration_in_secs,json=testDurationInSecs,proto3" json:"test_duration_in_secs,omitempty"`
+	unknownFields      protoimpl.UnknownFields
+	sizeCache          protoimpl.SizeCache
 }
 
 func (x *StartBERTRequest_PerPortRequest) Reset() {
 	*x = StartBERTRequest_PerPortRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_diag_diag_proto_msgTypes[6]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_diag_diag_proto_msgTypes[6]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *StartBERTRequest_PerPortRequest) String() string {
@@ -520,8 +499,8 @@ func (x *StartBERTRequest_PerPortRequest) String() string {
 func (*StartBERTRequest_PerPortRequest) ProtoMessage() {}
 
 func (x *StartBERTRequest_PerPortRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_diag_diag_proto_msgTypes[6]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_diag_diag_proto_msgTypes[6]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -533,7 +512,7 @@ func (x *StartBERTRequest_PerPortRequest) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use StartBERTRequest_PerPortRequest.ProtoReflect.Descriptor instead.
 func (*StartBERTRequest_PerPortRequest) Descriptor() ([]byte, []int) {
-	return file_diag_diag_proto_rawDescGZIP(), []int{0, 0}
+	return file_github_com_openconfig_gnoi_diag_diag_proto_rawDescGZIP(), []int{0, 0}
 }
 
 func (x *StartBERTRequest_PerPortRequest) GetInterface() *types.Path {
@@ -558,21 +537,18 @@ func (x *StartBERTRequest_PerPortRequest) GetTestDurationInSecs() uint32 {
 }
 
 type StartBERTResponse_PerPortResponse struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Interface     *types.Path            `protobuf:"bytes,1,opt,name=interface,proto3" json:"interface,omitempty"`
+	Status        BertStatus             `protobuf:"varint,2,opt,name=status,proto3,enum=gnoi.diag.BertStatus" json:"status,omitempty"`
 	unknownFields protoimpl.UnknownFields
-
-	Interface *types.Path `protobuf:"bytes,1,opt,name=interface,proto3" json:"interface,omitempty"`
-	Status    BertStatus  `protobuf:"varint,2,opt,name=status,proto3,enum=gnoi.diag.BertStatus" json:"status,omitempty"`
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *StartBERTResponse_PerPortResponse) Reset() {
 	*x = StartBERTResponse_PerPortResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_diag_diag_proto_msgTypes[7]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_diag_diag_proto_msgTypes[7]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *StartBERTResponse_PerPortResponse) String() string {
@@ -582,8 +558,8 @@ func (x *StartBERTResponse_PerPortResponse) String() string {
 func (*StartBERTResponse_PerPortResponse) ProtoMessage() {}
 
 func (x *StartBERTResponse_PerPortResponse) ProtoReflect() protoreflect.Message {
-	mi := &file_diag_diag_proto_msgTypes[7]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_diag_diag_proto_msgTypes[7]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -595,7 +571,7 @@ func (x *StartBERTResponse_PerPortResponse) ProtoReflect() protoreflect.Message
 
 // Deprecated: Use StartBERTResponse_PerPortResponse.ProtoReflect.Descriptor instead.
 func (*StartBERTResponse_PerPortResponse) Descriptor() ([]byte, []int) {
-	return file_diag_diag_proto_rawDescGZIP(), []int{1, 0}
+	return file_github_com_openconfig_gnoi_diag_diag_proto_rawDescGZIP(), []int{1, 0}
 }
 
 func (x *StartBERTResponse_PerPortResponse) GetInterface() *types.Path {
@@ -613,20 +589,17 @@ func (x *StartBERTResponse_PerPortResponse) GetStatus() BertStatus {
 }
 
 type StopBERTRequest_PerPortRequest struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Interface     *types.Path            `protobuf:"bytes,1,opt,name=interface,proto3" json:"interface,omitempty"`
 	unknownFields protoimpl.UnknownFields
-
-	Interface *types.Path `protobuf:"bytes,1,opt,name=interface,proto3" json:"interface,omitempty"`
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *StopBERTRequest_PerPortRequest) Reset() {
 	*x = StopBERTRequest_PerPortRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_diag_diag_proto_msgTypes[8]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_diag_diag_proto_msgTypes[8]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *StopBERTRequest_PerPortRequest) String() string {
@@ -636,8 +609,8 @@ func (x *StopBERTRequest_PerPortRequest) String() string {
 func (*StopBERTRequest_PerPortRequest) ProtoMessage() {}
 
 func (x *StopBERTRequest_PerPortRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_diag_diag_proto_msgTypes[8]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_diag_diag_proto_msgTypes[8]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -649,7 +622,7 @@ func (x *StopBERTRequest_PerPortRequest) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use StopBERTRequest_PerPortRequest.ProtoReflect.Descriptor instead.
 func (*StopBERTRequest_PerPortRequest) Descriptor() ([]byte, []int) {
-	return file_diag_diag_proto_rawDescGZIP(), []int{2, 0}
+	return file_github_com_openconfig_gnoi_diag_diag_proto_rawDescGZIP(), []int{2, 0}
 }
 
 func (x *StopBERTRequest_PerPortRequest) GetInterface() *types.Path {
@@ -660,21 +633,18 @@ func (x *StopBERTRequest_PerPortRequest) GetInterface() *types.Path {
 }
 
 type StopBERTResponse_PerPortResponse struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Interface     *types.Path            `protobuf:"bytes,1,opt,name=interface,proto3" json:"interface,omitempty"`
+	Status        BertStatus             `protobuf:"varint,2,opt,name=status,proto3,enum=gnoi.diag.BertStatus" json:"status,omitempty"`
 	unknownFields protoimpl.UnknownFields
-
-	Interface *types.Path `protobuf:"bytes,1,opt,name=interface,proto3" json:"interface,omitempty"`
-	Status    BertStatus  `protobuf:"varint,2,opt,name=status,proto3,enum=gnoi.diag.BertStatus" json:"status,omitempty"`
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *StopBERTResponse_PerPortResponse) Reset() {
 	*x = StopBERTResponse_PerPortResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_diag_diag_proto_msgTypes[9]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_diag_diag_proto_msgTypes[9]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *StopBERTResponse_PerPortResponse) String() string {
@@ -684,8 +654,8 @@ func (x *StopBERTResponse_PerPortResponse) String() string {
 func (*StopBERTResponse_PerPortResponse) ProtoMessage() {}
 
 func (x *StopBERTResponse_PerPortResponse) ProtoReflect() protoreflect.Message {
-	mi := &file_diag_diag_proto_msgTypes[9]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_diag_diag_proto_msgTypes[9]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -697,7 +667,7 @@ func (x *StopBERTResponse_PerPortResponse) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use StopBERTResponse_PerPortResponse.ProtoReflect.Descriptor instead.
 func (*StopBERTResponse_PerPortResponse) Descriptor() ([]byte, []int) {
-	return file_diag_diag_proto_rawDescGZIP(), []int{3, 0}
+	return file_github_com_openconfig_gnoi_diag_diag_proto_rawDescGZIP(), []int{3, 0}
 }
 
 func (x *StopBERTResponse_PerPortResponse) GetInterface() *types.Path {
@@ -715,20 +685,17 @@ func (x *StopBERTResponse_PerPortResponse) GetStatus() BertStatus {
 }
 
 type GetBERTResultRequest_PerPortRequest struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Interface     *types.Path            `protobuf:"bytes,1,opt,name=interface,proto3" json:"interface,omitempty"`
 	unknownFields protoimpl.UnknownFields
-
-	Interface *types.Path `protobuf:"bytes,1,opt,name=interface,proto3" json:"interface,omitempty"`
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *GetBERTResultRequest_PerPortRequest) Reset() {
 	*x = GetBERTResultRequest_PerPortRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_diag_diag_proto_msgTypes[10]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_diag_diag_proto_msgTypes[10]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *GetBERTResultRequest_PerPortRequest) String() string {
@@ -738,8 +705,8 @@ func (x *GetBERTResultRequest_PerPortRequest) String() string {
 func (*GetBERTResultRequest_PerPortRequest) ProtoMessage() {}
 
 func (x *GetBERTResultRequest_PerPortRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_diag_diag_proto_msgTypes[10]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_diag_diag_proto_msgTypes[10]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -751,7 +718,7 @@ func (x *GetBERTResultRequest_PerPortRequest) ProtoReflect() protoreflect.Messag
 
 // Deprecated: Use GetBERTResultRequest_PerPortRequest.ProtoReflect.Descriptor instead.
 func (*GetBERTResultRequest_PerPortRequest) Descriptor() ([]byte, []int) {
-	return file_diag_diag_proto_rawDescGZIP(), []int{4, 0}
+	return file_github_com_openconfig_gnoi_diag_diag_proto_rawDescGZIP(), []int{4, 0}
 }
 
 func (x *GetBERTResultRequest_PerPortRequest) GetInterface() *types.Path {
@@ -762,29 +729,26 @@ func (x *GetBERTResultRequest_PerPortRequest) GetInterface() *types.Path {
 }
 
 type GetBERTResultResponse_PerPortResponse struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	Interface                  *types.Path    `protobuf:"bytes,1,opt,name=interface,proto3" json:"interface,omitempty"`
-	Status                     BertStatus     `protobuf:"varint,2,opt,name=status,proto3,enum=gnoi.diag.BertStatus" json:"status,omitempty"`
-	BertOperationId            string         `protobuf:"bytes,3,opt,name=bert_operation_id,json=bertOperationId,proto3" json:"bert_operation_id,omitempty"`
-	PrbsPolynomial             PrbsPolynomial `protobuf:"varint,4,opt,name=prbs_polynomial,json=prbsPolynomial,proto3,enum=gnoi.diag.PrbsPolynomial" json:"prbs_polynomial,omitempty"`
-	LastBertStartTimestamp     uint64         `protobuf:"varint,5,opt,name=last_bert_start_timestamp,json=lastBertStartTimestamp,proto3" json:"last_bert_start_timestamp,omitempty"`
-	LastBertGetResultTimestamp uint64         `protobuf:"varint,6,opt,name=last_bert_get_result_timestamp,json=lastBertGetResultTimestamp,proto3" json:"last_bert_get_result_timestamp,omitempty"`
-	PeerLockEstablished        bool           `protobuf:"varint,7,opt,name=peer_lock_established,json=peerLockEstablished,proto3" json:"peer_lock_established,omitempty"`
-	PeerLockLost               bool           `protobuf:"varint,8,opt,name=peer_lock_lost,json=peerLockLost,proto3" json:"peer_lock_lost,omitempty"`
-	ErrorCountPerMinute        []uint32       `protobuf:"varint,9,rep,packed,name=error_count_per_minute,json=errorCountPerMinute,proto3" json:"error_count_per_minute,omitempty"`
-	TotalErrors                uint64         `protobuf:"varint,10,opt,name=total_errors,json=totalErrors,proto3" json:"total_errors,omitempty"`
+	state                      protoimpl.MessageState `protogen:"open.v1"`
+	Interface                  *types.Path            `protobuf:"bytes,1,opt,name=interface,proto3" json:"interface,omitempty"`
+	Status                     BertStatus             `protobuf:"varint,2,opt,name=status,proto3,enum=gnoi.diag.BertStatus" json:"status,omitempty"`
+	BertOperationId            string                 `protobuf:"bytes,3,opt,name=bert_operation_id,json=bertOperationId,proto3" json:"bert_operation_id,omitempty"`
+	PrbsPolynomial             PrbsPolynomial         `protobuf:"varint,4,opt,name=prbs_polynomial,json=prbsPolynomial,proto3,enum=gnoi.diag.PrbsPolynomial" json:"prbs_polynomial,omitempty"`
+	LastBertStartTimestamp     uint64                 `protobuf:"varint,5,opt,name=last_bert_start_timestamp,json=lastBertStartTimestamp,proto3" json:"last_bert_start_timestamp,omitempty"`
+	LastBertGetResultTimestamp uint64                 `protobuf:"varint,6,opt,name=last_bert_get_result_timestamp,json=lastBertGetResultTimestamp,proto3" json:"last_bert_get_result_timestamp,omitempty"`
+	PeerLockEstablished        bool                   `protobuf:"varint,7,opt,name=peer_lock_established,json=peerLockEstablished,proto3" json:"peer_lock_established,omitempty"`
+	PeerLockLost               bool                   `protobuf:"varint,8,opt,name=peer_lock_lost,json=peerLockLost,proto3" json:"peer_lock_lost,omitempty"`
+	ErrorCountPerMinute        []uint32               `protobuf:"varint,9,rep,packed,name=error_count_per_minute,json=errorCountPerMinute,proto3" json:"error_count_per_minute,omitempty"`
+	TotalErrors                uint64                 `protobuf:"varint,10,opt,name=total_errors,json=totalErrors,proto3" json:"total_errors,omitempty"`
+	unknownFields              protoimpl.UnknownFields
+	sizeCache                  protoimpl.SizeCache
 }
 
 func (x *GetBERTResultResponse_PerPortResponse) Reset() {
 	*x = GetBERTResultResponse_PerPortResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_diag_diag_proto_msgTypes[11]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_diag_diag_proto_msgTypes[11]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *GetBERTResultResponse_PerPortResponse) String() string {
@@ -794,8 +758,8 @@ func (x *GetBERTResultResponse_PerPortResponse) String() string {
 func (*GetBERTResultResponse_PerPortResponse) ProtoMessage() {}
 
 func (x *GetBERTResultResponse_PerPortResponse) ProtoReflect() protoreflect.Message {
-	mi := &file_diag_diag_proto_msgTypes[11]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_diag_diag_proto_msgTypes[11]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -807,7 +771,7 @@ func (x *GetBERTResultResponse_PerPortResponse) ProtoReflect() protoreflect.Mess
 
 // Deprecated: Use GetBERTResultResponse_PerPortResponse.ProtoReflect.Descriptor instead.
 func (*GetBERTResultResponse_PerPortResponse) Descriptor() ([]byte, []int) {
-	return file_diag_diag_proto_rawDescGZIP(), []int{5, 0}
+	return file_github_com_openconfig_gnoi_diag_diag_proto_rawDescGZIP(), []int{5, 0}
 }
 
 func (x *GetBERTResultResponse_PerPortResponse) GetInterface() *types.Path {
@@ -880,222 +844,223 @@ func (x *GetBERTResultResponse_PerPortResponse) GetTotalErrors() uint64 {
 	return 0
 }
 
-var File_diag_diag_proto protoreflect.FileDescriptor
-
-var file_diag_diag_proto_rawDesc = []byte{
-	0x0a, 0x0f, 0x64, 0x69, 0x61, 0x67, 0x2f, 0x64, 0x69, 0x61, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74,
-	0x6f, 0x12, 0x09, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x64, 0x69, 0x61, 0x67, 0x1a, 0x2c, 0x67, 0x69,
-	0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e,
-	0x66, 0x69, 0x67, 0x2f, 0x67, 0x6e, 0x6f, 0x69, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2f, 0x74,
-	0x79, 0x70, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xd0, 0x02, 0x0a, 0x10, 0x53,
-	0x74, 0x61, 0x72, 0x74, 0x42, 0x45, 0x52, 0x54, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12,
-	0x2a, 0x0a, 0x11, 0x62, 0x65, 0x72, 0x74, 0x5f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f,
-	0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x62, 0x65, 0x72, 0x74,
-	0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x56, 0x0a, 0x11, 0x70,
-	0x65, 0x72, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73,
-	0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x64, 0x69,
-	0x61, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x42, 0x45, 0x52, 0x54, 0x52, 0x65, 0x71, 0x75,
-	0x65, 0x73, 0x74, 0x2e, 0x50, 0x65, 0x72, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65,
-	0x73, 0x74, 0x52, 0x0f, 0x70, 0x65, 0x72, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65,
-	0x73, 0x74, 0x73, 0x1a, 0xb7, 0x01, 0x0a, 0x0e, 0x50, 0x65, 0x72, 0x50, 0x6f, 0x72, 0x74, 0x52,
-	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2e, 0x0a, 0x09, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66,
-	0x61, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x67, 0x6e, 0x6f, 0x69,
-	0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x50, 0x61, 0x74, 0x68, 0x52, 0x09, 0x69, 0x6e, 0x74,
-	0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x12, 0x42, 0x0a, 0x0f, 0x70, 0x72, 0x62, 0x73, 0x5f, 0x70,
-	0x6f, 0x6c, 0x79, 0x6e, 0x6f, 0x6d, 0x69, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32,
-	0x19, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x64, 0x69, 0x61, 0x67, 0x2e, 0x50, 0x72, 0x62, 0x73,
-	0x50, 0x6f, 0x6c, 0x79, 0x6e, 0x6f, 0x6d, 0x69, 0x61, 0x6c, 0x52, 0x0e, 0x70, 0x72, 0x62, 0x73,
-	0x50, 0x6f, 0x6c, 0x79, 0x6e, 0x6f, 0x6d, 0x69, 0x61, 0x6c, 0x12, 0x31, 0x0a, 0x15, 0x74, 0x65,
-	0x73, 0x74, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x5f, 0x73,
-	0x65, 0x63, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x12, 0x74, 0x65, 0x73, 0x74, 0x44,
-	0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x53, 0x65, 0x63, 0x73, 0x22, 0x8d, 0x02,
-	0x0a, 0x11, 0x53, 0x74, 0x61, 0x72, 0x74, 0x42, 0x45, 0x52, 0x54, 0x52, 0x65, 0x73, 0x70, 0x6f,
-	0x6e, 0x73, 0x65, 0x12, 0x2a, 0x0a, 0x11, 0x62, 0x65, 0x72, 0x74, 0x5f, 0x6f, 0x70, 0x65, 0x72,
-	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f,
-	0x62, 0x65, 0x72, 0x74, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12,
-	0x5a, 0x0a, 0x12, 0x70, 0x65, 0x72, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x72, 0x65, 0x73, 0x70,
-	0x6f, 0x6e, 0x73, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x67, 0x6e,
-	0x6f, 0x69, 0x2e, 0x64, 0x69, 0x61, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x42, 0x45, 0x52,
-	0x54, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x50, 0x65, 0x72, 0x50, 0x6f, 0x72,
-	0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x10, 0x70, 0x65, 0x72, 0x50, 0x6f,
-	0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x73, 0x1a, 0x70, 0x0a, 0x0f, 0x50,
-	0x65, 0x72, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2e,
-	0x0a, 0x09, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,
-	0x0b, 0x32, 0x10, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x50,
-	0x61, 0x74, 0x68, 0x52, 0x09, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x12, 0x2d,
-	0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x15,
-	0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x64, 0x69, 0x61, 0x67, 0x2e, 0x42, 0x65, 0x72, 0x74, 0x53,
-	0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0xd6, 0x01,
-	0x0a, 0x0f, 0x53, 0x74, 0x6f, 0x70, 0x42, 0x45, 0x52, 0x54, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
-	0x74, 0x12, 0x2a, 0x0a, 0x11, 0x62, 0x65, 0x72, 0x74, 0x5f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74,
-	0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x62, 0x65,
-	0x72, 0x74, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x55, 0x0a,
-	0x11, 0x70, 0x65, 0x72, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73,
-	0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e,
-	0x64, 0x69, 0x61, 0x67, 0x2e, 0x53, 0x74, 0x6f, 0x70, 0x42, 0x45, 0x52, 0x54, 0x52, 0x65, 0x71,
-	0x75, 0x65, 0x73, 0x74, 0x2e, 0x50, 0x65, 0x72, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75,
-	0x65, 0x73, 0x74, 0x52, 0x0f, 0x70, 0x65, 0x72, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75,
-	0x65, 0x73, 0x74, 0x73, 0x1a, 0x40, 0x0a, 0x0e, 0x50, 0x65, 0x72, 0x50, 0x6f, 0x72, 0x74, 0x52,
-	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2e, 0x0a, 0x09, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66,
-	0x61, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x67, 0x6e, 0x6f, 0x69,
-	0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x50, 0x61, 0x74, 0x68, 0x52, 0x09, 0x69, 0x6e, 0x74,
-	0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x22, 0x8b, 0x02, 0x0a, 0x10, 0x53, 0x74, 0x6f, 0x70, 0x42,
-	0x45, 0x52, 0x54, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2a, 0x0a, 0x11, 0x62,
-	0x65, 0x72, 0x74, 0x5f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64,
-	0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x62, 0x65, 0x72, 0x74, 0x4f, 0x70, 0x65, 0x72,
-	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x59, 0x0a, 0x12, 0x70, 0x65, 0x72, 0x5f, 0x70,
-	0x6f, 0x72, 0x74, 0x5f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x73, 0x18, 0x02, 0x20,
-	0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x64, 0x69, 0x61, 0x67, 0x2e,
-	0x53, 0x74, 0x6f, 0x70, 0x42, 0x45, 0x52, 0x54, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
-	0x2e, 0x50, 0x65, 0x72, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
-	0x52, 0x10, 0x70, 0x65, 0x72, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
-	0x65, 0x73, 0x1a, 0x70, 0x0a, 0x0f, 0x50, 0x65, 0x72, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73,
-	0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2e, 0x0a, 0x09, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61,
+var File_github_com_openconfig_gnoi_diag_diag_proto protoreflect.FileDescriptor
+
+var file_github_com_openconfig_gnoi_diag_diag_proto_rawDesc = []byte{
+	0x0a, 0x2a, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x70, 0x65,
+	0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x67, 0x6e, 0x6f, 0x69, 0x2f, 0x64, 0x69, 0x61,
+	0x67, 0x2f, 0x64, 0x69, 0x61, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x09, 0x67, 0x6e,
+	0x6f, 0x69, 0x2e, 0x64, 0x69, 0x61, 0x67, 0x1a, 0x2c, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e,
+	0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x67,
+	0x6e, 0x6f, 0x69, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e,
+	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xd0, 0x02, 0x0a, 0x10, 0x53, 0x74, 0x61, 0x72, 0x74, 0x42,
+	0x45, 0x52, 0x54, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2a, 0x0a, 0x11, 0x62, 0x65,
+	0x72, 0x74, 0x5f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18,
+	0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x62, 0x65, 0x72, 0x74, 0x4f, 0x70, 0x65, 0x72, 0x61,
+	0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x56, 0x0a, 0x11, 0x70, 0x65, 0x72, 0x5f, 0x70, 0x6f,
+	0x72, 0x74, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28,
+	0x0b, 0x32, 0x2a, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x64, 0x69, 0x61, 0x67, 0x2e, 0x53, 0x74,
+	0x61, 0x72, 0x74, 0x42, 0x45, 0x52, 0x54, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x50,
+	0x65, 0x72, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x0f, 0x70,
+	0x65, 0x72, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x1a, 0xb7,
+	0x01, 0x0a, 0x0e, 0x50, 0x65, 0x72, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
+	0x74, 0x12, 0x2e, 0x0a, 0x09, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x18, 0x01,
+	0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x74, 0x79, 0x70, 0x65,
+	0x73, 0x2e, 0x50, 0x61, 0x74, 0x68, 0x52, 0x09, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63,
+	0x65, 0x12, 0x42, 0x0a, 0x0f, 0x70, 0x72, 0x62, 0x73, 0x5f, 0x70, 0x6f, 0x6c, 0x79, 0x6e, 0x6f,
+	0x6d, 0x69, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x67, 0x6e, 0x6f,
+	0x69, 0x2e, 0x64, 0x69, 0x61, 0x67, 0x2e, 0x50, 0x72, 0x62, 0x73, 0x50, 0x6f, 0x6c, 0x79, 0x6e,
+	0x6f, 0x6d, 0x69, 0x61, 0x6c, 0x52, 0x0e, 0x70, 0x72, 0x62, 0x73, 0x50, 0x6f, 0x6c, 0x79, 0x6e,
+	0x6f, 0x6d, 0x69, 0x61, 0x6c, 0x12, 0x31, 0x0a, 0x15, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x64, 0x75,
+	0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x5f, 0x73, 0x65, 0x63, 0x73, 0x18, 0x03,
+	0x20, 0x01, 0x28, 0x0d, 0x52, 0x12, 0x74, 0x65, 0x73, 0x74, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69,
+	0x6f, 0x6e, 0x49, 0x6e, 0x53, 0x65, 0x63, 0x73, 0x22, 0x8d, 0x02, 0x0a, 0x11, 0x53, 0x74, 0x61,
+	0x72, 0x74, 0x42, 0x45, 0x52, 0x54, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2a,
+	0x0a, 0x11, 0x62, 0x65, 0x72, 0x74, 0x5f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+	0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x62, 0x65, 0x72, 0x74, 0x4f,
+	0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x5a, 0x0a, 0x12, 0x70, 0x65,
+	0x72, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x73,
+	0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x64, 0x69,
+	0x61, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x42, 0x45, 0x52, 0x54, 0x52, 0x65, 0x73, 0x70,
+	0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x50, 0x65, 0x72, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70,
+	0x6f, 0x6e, 0x73, 0x65, 0x52, 0x10, 0x70, 0x65, 0x72, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73,
+	0x70, 0x6f, 0x6e, 0x73, 0x65, 0x73, 0x1a, 0x70, 0x0a, 0x0f, 0x50, 0x65, 0x72, 0x50, 0x6f, 0x72,
+	0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2e, 0x0a, 0x09, 0x69, 0x6e, 0x74,
+	0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x67,
+	0x6e, 0x6f, 0x69, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x50, 0x61, 0x74, 0x68, 0x52, 0x09,
+	0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x12, 0x2d, 0x0a, 0x06, 0x73, 0x74, 0x61,
+	0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x15, 0x2e, 0x67, 0x6e, 0x6f, 0x69,
+	0x2e, 0x64, 0x69, 0x61, 0x67, 0x2e, 0x42, 0x65, 0x72, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73,
+	0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0xd6, 0x01, 0x0a, 0x0f, 0x53, 0x74, 0x6f,
+	0x70, 0x42, 0x45, 0x52, 0x54, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2a, 0x0a, 0x11,
+	0x62, 0x65, 0x72, 0x74, 0x5f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69,
+	0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x62, 0x65, 0x72, 0x74, 0x4f, 0x70, 0x65,
+	0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x55, 0x0a, 0x11, 0x70, 0x65, 0x72, 0x5f,
+	0x70, 0x6f, 0x72, 0x74, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x18, 0x02, 0x20,
+	0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x64, 0x69, 0x61, 0x67, 0x2e,
+	0x53, 0x74, 0x6f, 0x70, 0x42, 0x45, 0x52, 0x54, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e,
+	0x50, 0x65, 0x72, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x0f,
+	0x70, 0x65, 0x72, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x1a,
+	0x40, 0x0a, 0x0e, 0x50, 0x65, 0x72, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
+	0x74, 0x12, 0x2e, 0x0a, 0x09, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x18, 0x01,
+	0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x74, 0x79, 0x70, 0x65,
+	0x73, 0x2e, 0x50, 0x61, 0x74, 0x68, 0x52, 0x09, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63,
+	0x65, 0x22, 0x8b, 0x02, 0x0a, 0x10, 0x53, 0x74, 0x6f, 0x70, 0x42, 0x45, 0x52, 0x54, 0x52, 0x65,
+	0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2a, 0x0a, 0x11, 0x62, 0x65, 0x72, 0x74, 0x5f, 0x6f,
+	0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
+	0x09, 0x52, 0x0f, 0x62, 0x65, 0x72, 0x74, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+	0x49, 0x64, 0x12, 0x59, 0x0a, 0x12, 0x70, 0x65, 0x72, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x72,
+	0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b,
+	0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x64, 0x69, 0x61, 0x67, 0x2e, 0x53, 0x74, 0x6f, 0x70, 0x42,
+	0x45, 0x52, 0x54, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x50, 0x65, 0x72, 0x50,
+	0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x10, 0x70, 0x65, 0x72,
+	0x50, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x73, 0x1a, 0x70, 0x0a,
+	0x0f, 0x50, 0x65, 0x72, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
+	0x12, 0x2e, 0x0a, 0x09, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x18, 0x01, 0x20,
+	0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73,
+	0x2e, 0x50, 0x61, 0x74, 0x68, 0x52, 0x09, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65,
+	0x12, 0x2d, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e,
+	0x32, 0x15, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x64, 0x69, 0x61, 0x67, 0x2e, 0x42, 0x65, 0x72,
+	0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22,
+	0x93, 0x02, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x42, 0x45, 0x52, 0x54, 0x52, 0x65, 0x73, 0x75, 0x6c,
+	0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2a, 0x0a, 0x11, 0x62, 0x65, 0x72, 0x74,
+	0x5f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20,
+	0x01, 0x28, 0x09, 0x52, 0x0f, 0x62, 0x65, 0x72, 0x74, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69,
+	0x6f, 0x6e, 0x49, 0x64, 0x12, 0x5a, 0x0a, 0x11, 0x70, 0x65, 0x72, 0x5f, 0x70, 0x6f, 0x72, 0x74,
+	0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32,
+	0x2e, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x64, 0x69, 0x61, 0x67, 0x2e, 0x47, 0x65, 0x74, 0x42,
+	0x45, 0x52, 0x54, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
+	0x2e, 0x50, 0x65, 0x72, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52,
+	0x0f, 0x70, 0x65, 0x72, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73,
+	0x12, 0x31, 0x0a, 0x15, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x5f, 0x66, 0x72, 0x6f, 0x6d, 0x5f,
+	0x61, 0x6c, 0x6c, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52,
+	0x12, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x46, 0x72, 0x6f, 0x6d, 0x41, 0x6c, 0x6c, 0x50, 0x6f,
+	0x72, 0x74, 0x73, 0x1a, 0x40, 0x0a, 0x0e, 0x50, 0x65, 0x72, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x65,
+	0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2e, 0x0a, 0x09, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61,
 	0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e,
 	0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x50, 0x61, 0x74, 0x68, 0x52, 0x09, 0x69, 0x6e, 0x74, 0x65,
-	0x72, 0x66, 0x61, 0x63, 0x65, 0x12, 0x2d, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18,
-	0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x15, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x64, 0x69, 0x61,
-	0x67, 0x2e, 0x42, 0x65, 0x72, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74,
-	0x61, 0x74, 0x75, 0x73, 0x22, 0x93, 0x02, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x42, 0x45, 0x52, 0x54,
-	0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2a, 0x0a,
-	0x11, 0x62, 0x65, 0x72, 0x74, 0x5f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f,
-	0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x62, 0x65, 0x72, 0x74, 0x4f, 0x70,
-	0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x5a, 0x0a, 0x11, 0x70, 0x65, 0x72,
-	0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x18, 0x02,
-	0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x64, 0x69, 0x61, 0x67,
-	0x2e, 0x47, 0x65, 0x74, 0x42, 0x45, 0x52, 0x54, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x65,
-	0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x50, 0x65, 0x72, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71,
-	0x75, 0x65, 0x73, 0x74, 0x52, 0x0f, 0x70, 0x65, 0x72, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71,
-	0x75, 0x65, 0x73, 0x74, 0x73, 0x12, 0x31, 0x0a, 0x15, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x5f,
-	0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x61, 0x6c, 0x6c, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x18, 0x03,
-	0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x46, 0x72, 0x6f, 0x6d,
-	0x41, 0x6c, 0x6c, 0x50, 0x6f, 0x72, 0x74, 0x73, 0x1a, 0x40, 0x0a, 0x0e, 0x50, 0x65, 0x72, 0x50,
-	0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2e, 0x0a, 0x09, 0x69, 0x6e,
-	0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e,
-	0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x50, 0x61, 0x74, 0x68, 0x52,
-	0x09, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x22, 0x8b, 0x05, 0x0a, 0x15, 0x47,
-	0x65, 0x74, 0x42, 0x45, 0x52, 0x54, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x65, 0x73, 0x70,
-	0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5e, 0x0a, 0x12, 0x70, 0x65, 0x72, 0x5f, 0x70, 0x6f, 0x72, 0x74,
-	0x5f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b,
-	0x32, 0x30, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x64, 0x69, 0x61, 0x67, 0x2e, 0x47, 0x65, 0x74,
-	0x42, 0x45, 0x52, 0x54, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
-	0x73, 0x65, 0x2e, 0x50, 0x65, 0x72, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
-	0x73, 0x65, 0x52, 0x10, 0x70, 0x65, 0x72, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f,
-	0x6e, 0x73, 0x65, 0x73, 0x1a, 0x91, 0x04, 0x0a, 0x0f, 0x50, 0x65, 0x72, 0x50, 0x6f, 0x72, 0x74,
-	0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2e, 0x0a, 0x09, 0x69, 0x6e, 0x74, 0x65,
-	0x72, 0x66, 0x61, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x67, 0x6e,
-	0x6f, 0x69, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x50, 0x61, 0x74, 0x68, 0x52, 0x09, 0x69,
-	0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x12, 0x2d, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74,
-	0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x15, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e,
-	0x64, 0x69, 0x61, 0x67, 0x2e, 0x42, 0x65, 0x72, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52,
-	0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x2a, 0x0a, 0x11, 0x62, 0x65, 0x72, 0x74, 0x5f,
-	0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01,
-	0x28, 0x09, 0x52, 0x0f, 0x62, 0x65, 0x72, 0x74, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f,
-	0x6e, 0x49, 0x64, 0x12, 0x42, 0x0a, 0x0f, 0x70, 0x72, 0x62, 0x73, 0x5f, 0x70, 0x6f, 0x6c, 0x79,
-	0x6e, 0x6f, 0x6d, 0x69, 0x61, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x67,
-	0x6e, 0x6f, 0x69, 0x2e, 0x64, 0x69, 0x61, 0x67, 0x2e, 0x50, 0x72, 0x62, 0x73, 0x50, 0x6f, 0x6c,
-	0x79, 0x6e, 0x6f, 0x6d, 0x69, 0x61, 0x6c, 0x52, 0x0e, 0x70, 0x72, 0x62, 0x73, 0x50, 0x6f, 0x6c,
-	0x79, 0x6e, 0x6f, 0x6d, 0x69, 0x61, 0x6c, 0x12, 0x39, 0x0a, 0x19, 0x6c, 0x61, 0x73, 0x74, 0x5f,
-	0x62, 0x65, 0x72, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73,
-	0x74, 0x61, 0x6d, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x16, 0x6c, 0x61, 0x73, 0x74,
-	0x42, 0x65, 0x72, 0x74, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61,
-	0x6d, 0x70, 0x12, 0x42, 0x0a, 0x1e, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x62, 0x65, 0x72, 0x74, 0x5f,
-	0x67, 0x65, 0x74, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73,
-	0x74, 0x61, 0x6d, 0x70, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x1a, 0x6c, 0x61, 0x73, 0x74,
-	0x42, 0x65, 0x72, 0x74, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x54, 0x69, 0x6d,
-	0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x32, 0x0a, 0x15, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x6c,
-	0x6f, 0x63, 0x6b, 0x5f, 0x65, 0x73, 0x74, 0x61, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x64, 0x18,
-	0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x70, 0x65, 0x65, 0x72, 0x4c, 0x6f, 0x63, 0x6b, 0x45,
-	0x73, 0x74, 0x61, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x64, 0x12, 0x24, 0x0a, 0x0e, 0x70, 0x65,
-	0x65, 0x72, 0x5f, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x6c, 0x6f, 0x73, 0x74, 0x18, 0x08, 0x20, 0x01,
-	0x28, 0x08, 0x52, 0x0c, 0x70, 0x65, 0x65, 0x72, 0x4c, 0x6f, 0x63, 0x6b, 0x4c, 0x6f, 0x73, 0x74,
-	0x12, 0x33, 0x0a, 0x16, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f,
-	0x70, 0x65, 0x72, 0x5f, 0x6d, 0x69, 0x6e, 0x75, 0x74, 0x65, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0d,
-	0x52, 0x13, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x65, 0x72, 0x4d,
-	0x69, 0x6e, 0x75, 0x74, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x65,
-	0x72, 0x72, 0x6f, 0x72, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x74, 0x6f, 0x74,
-	0x61, 0x6c, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x2a, 0xd3, 0x01, 0x0a, 0x0e, 0x50, 0x72, 0x62,
-	0x73, 0x50, 0x6f, 0x6c, 0x79, 0x6e, 0x6f, 0x6d, 0x69, 0x61, 0x6c, 0x12, 0x1b, 0x0a, 0x17, 0x50,
-	0x52, 0x42, 0x53, 0x5f, 0x50, 0x4f, 0x4c, 0x59, 0x4e, 0x4f, 0x4d, 0x49, 0x41, 0x4c, 0x5f, 0x55,
-	0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x19, 0x0a, 0x15, 0x50, 0x52, 0x42, 0x53,
-	0x5f, 0x50, 0x4f, 0x4c, 0x59, 0x4e, 0x4f, 0x4d, 0x49, 0x41, 0x4c, 0x5f, 0x50, 0x52, 0x42, 0x53,
-	0x37, 0x10, 0x01, 0x12, 0x19, 0x0a, 0x15, 0x50, 0x52, 0x42, 0x53, 0x5f, 0x50, 0x4f, 0x4c, 0x59,
-	0x4e, 0x4f, 0x4d, 0x49, 0x41, 0x4c, 0x5f, 0x50, 0x52, 0x42, 0x53, 0x39, 0x10, 0x02, 0x12, 0x1a,
-	0x0a, 0x16, 0x50, 0x52, 0x42, 0x53, 0x5f, 0x50, 0x4f, 0x4c, 0x59, 0x4e, 0x4f, 0x4d, 0x49, 0x41,
-	0x4c, 0x5f, 0x50, 0x52, 0x42, 0x53, 0x31, 0x35, 0x10, 0x03, 0x12, 0x1a, 0x0a, 0x16, 0x50, 0x52,
-	0x42, 0x53, 0x5f, 0x50, 0x4f, 0x4c, 0x59, 0x4e, 0x4f, 0x4d, 0x49, 0x41, 0x4c, 0x5f, 0x50, 0x52,
-	0x42, 0x53, 0x32, 0x30, 0x10, 0x04, 0x12, 0x1a, 0x0a, 0x16, 0x50, 0x52, 0x42, 0x53, 0x5f, 0x50,
-	0x4f, 0x4c, 0x59, 0x4e, 0x4f, 0x4d, 0x49, 0x41, 0x4c, 0x5f, 0x50, 0x52, 0x42, 0x53, 0x32, 0x33,
-	0x10, 0x05, 0x12, 0x1a, 0x0a, 0x16, 0x50, 0x52, 0x42, 0x53, 0x5f, 0x50, 0x4f, 0x4c, 0x59, 0x4e,
-	0x4f, 0x4d, 0x49, 0x41, 0x4c, 0x5f, 0x50, 0x52, 0x42, 0x53, 0x33, 0x31, 0x10, 0x06, 0x2a, 0xfe,
-	0x03, 0x0a, 0x0a, 0x42, 0x65, 0x72, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x17, 0x0a,
-	0x13, 0x42, 0x45, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x4b,
-	0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x42, 0x45, 0x52, 0x54, 0x5f, 0x53,
-	0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x4f, 0x4b, 0x10, 0x01, 0x12, 0x21, 0x0a, 0x1d, 0x42, 0x45,
-	0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x4e, 0x4f, 0x4e, 0x5f, 0x45, 0x58,
-	0x49, 0x53, 0x54, 0x45, 0x4e, 0x54, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x10, 0x02, 0x12, 0x25, 0x0a,
-	0x21, 0x42, 0x45, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x48, 0x41, 0x52,
-	0x44, 0x57, 0x41, 0x52, 0x45, 0x5f, 0x41, 0x43, 0x43, 0x45, 0x53, 0x53, 0x5f, 0x45, 0x52, 0x52,
-	0x4f, 0x52, 0x10, 0x03, 0x12, 0x2b, 0x0a, 0x27, 0x42, 0x45, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41,
-	0x54, 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x53, 0x55, 0x50, 0x50, 0x4f, 0x52, 0x54, 0x45, 0x44, 0x5f,
-	0x50, 0x52, 0x42, 0x53, 0x5f, 0x50, 0x4f, 0x4c, 0x59, 0x4e, 0x4f, 0x4d, 0x49, 0x41, 0x4c, 0x10,
-	0x04, 0x12, 0x24, 0x0a, 0x20, 0x42, 0x45, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53,
-	0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x4c, 0x52, 0x45, 0x41, 0x44, 0x59, 0x5f, 0x49, 0x4e,
-	0x5f, 0x42, 0x45, 0x52, 0x54, 0x10, 0x05, 0x12, 0x25, 0x0a, 0x21, 0x42, 0x45, 0x52, 0x54, 0x5f,
-	0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x4e, 0x4f, 0x54, 0x5f,
-	0x52, 0x55, 0x4e, 0x4e, 0x49, 0x4e, 0x47, 0x5f, 0x42, 0x45, 0x52, 0x54, 0x10, 0x06, 0x12, 0x27,
-	0x0a, 0x23, 0x42, 0x45, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x54, 0x45,
-	0x53, 0x54, 0x5f, 0x44, 0x55, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x4f, 0x4f, 0x5f,
-	0x53, 0x48, 0x4f, 0x52, 0x54, 0x10, 0x07, 0x12, 0x26, 0x0a, 0x22, 0x42, 0x45, 0x52, 0x54, 0x5f,
-	0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x54, 0x45, 0x53, 0x54, 0x5f, 0x44, 0x55, 0x52, 0x41,
-	0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x4f, 0x4f, 0x5f, 0x4c, 0x4f, 0x4e, 0x47, 0x10, 0x08, 0x12,
-	0x26, 0x0a, 0x22, 0x42, 0x45, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x4f,
-	0x50, 0x45, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x49, 0x44, 0x5f, 0x4e, 0x4f, 0x54, 0x5f,
-	0x46, 0x4f, 0x55, 0x4e, 0x44, 0x10, 0x09, 0x12, 0x23, 0x0a, 0x1f, 0x42, 0x45, 0x52, 0x54, 0x5f,
-	0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x4f, 0x50, 0x45, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e,
-	0x5f, 0x49, 0x44, 0x5f, 0x49, 0x4e, 0x5f, 0x55, 0x53, 0x45, 0x10, 0x0a, 0x12, 0x21, 0x0a, 0x1d,
-	0x42, 0x45, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x50, 0x45, 0x45, 0x52,
-	0x5f, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x55, 0x52, 0x45, 0x10, 0x0b, 0x12,
-	0x1e, 0x0a, 0x1a, 0x42, 0x45, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x50,
-	0x45, 0x45, 0x52, 0x5f, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x4c, 0x4f, 0x53, 0x54, 0x10, 0x0c, 0x12,
-	0x1e, 0x0a, 0x1a, 0x42, 0x45, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x49,
-	0x4e, 0x54, 0x45, 0x52, 0x4e, 0x41, 0x4c, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x0d, 0x32,
-	0xed, 0x01, 0x0a, 0x04, 0x44, 0x69, 0x61, 0x67, 0x12, 0x48, 0x0a, 0x09, 0x53, 0x74, 0x61, 0x72,
-	0x74, 0x42, 0x45, 0x52, 0x54, 0x12, 0x1b, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x64, 0x69, 0x61,
-	0x67, 0x2e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x42, 0x45, 0x52, 0x54, 0x52, 0x65, 0x71, 0x75, 0x65,
-	0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x64, 0x69, 0x61, 0x67, 0x2e, 0x53,
-	0x74, 0x61, 0x72, 0x74, 0x42, 0x45, 0x52, 0x54, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
-	0x22, 0x00, 0x12, 0x45, 0x0a, 0x08, 0x53, 0x74, 0x6f, 0x70, 0x42, 0x45, 0x52, 0x54, 0x12, 0x1a,
-	0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x64, 0x69, 0x61, 0x67, 0x2e, 0x53, 0x74, 0x6f, 0x70, 0x42,
-	0x45, 0x52, 0x54, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x67, 0x6e, 0x6f,
-	0x69, 0x2e, 0x64, 0x69, 0x61, 0x67, 0x2e, 0x53, 0x74, 0x6f, 0x70, 0x42, 0x45, 0x52, 0x54, 0x52,
-	0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x54, 0x0a, 0x0d, 0x47, 0x65, 0x74,
-	0x42, 0x45, 0x52, 0x54, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x1f, 0x2e, 0x67, 0x6e, 0x6f,
-	0x69, 0x2e, 0x64, 0x69, 0x61, 0x67, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x45, 0x52, 0x54, 0x52, 0x65,
-	0x73, 0x75, 0x6c, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x67, 0x6e,
+	0x72, 0x66, 0x61, 0x63, 0x65, 0x22, 0x8b, 0x05, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x42, 0x45, 0x52,
+	0x54, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12,
+	0x5e, 0x0a, 0x12, 0x70, 0x65, 0x72, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x72, 0x65, 0x73, 0x70,
+	0x6f, 0x6e, 0x73, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x67, 0x6e,
 	0x6f, 0x69, 0x2e, 0x64, 0x69, 0x61, 0x67, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x45, 0x52, 0x54, 0x52,
-	0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42,
-	0x29, 0xd2, 0x3e, 0x05, 0x30, 0x2e, 0x31, 0x2e, 0x30, 0x5a, 0x1f, 0x67, 0x69, 0x74, 0x68, 0x75,
-	0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67,
-	0x2f, 0x67, 0x6e, 0x6f, 0x69, 0x2f, 0x64, 0x69, 0x61, 0x67, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74,
-	0x6f, 0x33,
+	0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x50, 0x65,
+	0x72, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x10, 0x70,
+	0x65, 0x72, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x73, 0x1a,
+	0x91, 0x04, 0x0a, 0x0f, 0x50, 0x65, 0x72, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f,
+	0x6e, 0x73, 0x65, 0x12, 0x2e, 0x0a, 0x09, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65,
+	0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x74, 0x79,
+	0x70, 0x65, 0x73, 0x2e, 0x50, 0x61, 0x74, 0x68, 0x52, 0x09, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66,
+	0x61, 0x63, 0x65, 0x12, 0x2d, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20,
+	0x01, 0x28, 0x0e, 0x32, 0x15, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x64, 0x69, 0x61, 0x67, 0x2e,
+	0x42, 0x65, 0x72, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74,
+	0x75, 0x73, 0x12, 0x2a, 0x0a, 0x11, 0x62, 0x65, 0x72, 0x74, 0x5f, 0x6f, 0x70, 0x65, 0x72, 0x61,
+	0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x62,
+	0x65, 0x72, 0x74, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x42,
+	0x0a, 0x0f, 0x70, 0x72, 0x62, 0x73, 0x5f, 0x70, 0x6f, 0x6c, 0x79, 0x6e, 0x6f, 0x6d, 0x69, 0x61,
+	0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x64,
+	0x69, 0x61, 0x67, 0x2e, 0x50, 0x72, 0x62, 0x73, 0x50, 0x6f, 0x6c, 0x79, 0x6e, 0x6f, 0x6d, 0x69,
+	0x61, 0x6c, 0x52, 0x0e, 0x70, 0x72, 0x62, 0x73, 0x50, 0x6f, 0x6c, 0x79, 0x6e, 0x6f, 0x6d, 0x69,
+	0x61, 0x6c, 0x12, 0x39, 0x0a, 0x19, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x62, 0x65, 0x72, 0x74, 0x5f,
+	0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18,
+	0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x16, 0x6c, 0x61, 0x73, 0x74, 0x42, 0x65, 0x72, 0x74, 0x53,
+	0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x42, 0x0a,
+	0x1e, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x62, 0x65, 0x72, 0x74, 0x5f, 0x67, 0x65, 0x74, 0x5f, 0x72,
+	0x65, 0x73, 0x75, 0x6c, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18,
+	0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x1a, 0x6c, 0x61, 0x73, 0x74, 0x42, 0x65, 0x72, 0x74, 0x47,
+	0x65, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d,
+	0x70, 0x12, 0x32, 0x0a, 0x15, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x65,
+	0x73, 0x74, 0x61, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08,
+	0x52, 0x13, 0x70, 0x65, 0x65, 0x72, 0x4c, 0x6f, 0x63, 0x6b, 0x45, 0x73, 0x74, 0x61, 0x62, 0x6c,
+	0x69, 0x73, 0x68, 0x65, 0x64, 0x12, 0x24, 0x0a, 0x0e, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x6c, 0x6f,
+	0x63, 0x6b, 0x5f, 0x6c, 0x6f, 0x73, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x70,
+	0x65, 0x65, 0x72, 0x4c, 0x6f, 0x63, 0x6b, 0x4c, 0x6f, 0x73, 0x74, 0x12, 0x33, 0x0a, 0x16, 0x65,
+	0x72, 0x72, 0x6f, 0x72, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x6d,
+	0x69, 0x6e, 0x75, 0x74, 0x65, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x13, 0x65, 0x72, 0x72,
+	0x6f, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x65, 0x72, 0x4d, 0x69, 0x6e, 0x75, 0x74, 0x65,
+	0x12, 0x21, 0x0a, 0x0c, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73,
+	0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x45, 0x72, 0x72,
+	0x6f, 0x72, 0x73, 0x2a, 0xd3, 0x01, 0x0a, 0x0e, 0x50, 0x72, 0x62, 0x73, 0x50, 0x6f, 0x6c, 0x79,
+	0x6e, 0x6f, 0x6d, 0x69, 0x61, 0x6c, 0x12, 0x1b, 0x0a, 0x17, 0x50, 0x52, 0x42, 0x53, 0x5f, 0x50,
+	0x4f, 0x4c, 0x59, 0x4e, 0x4f, 0x4d, 0x49, 0x41, 0x4c, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57,
+	0x4e, 0x10, 0x00, 0x12, 0x19, 0x0a, 0x15, 0x50, 0x52, 0x42, 0x53, 0x5f, 0x50, 0x4f, 0x4c, 0x59,
+	0x4e, 0x4f, 0x4d, 0x49, 0x41, 0x4c, 0x5f, 0x50, 0x52, 0x42, 0x53, 0x37, 0x10, 0x01, 0x12, 0x19,
+	0x0a, 0x15, 0x50, 0x52, 0x42, 0x53, 0x5f, 0x50, 0x4f, 0x4c, 0x59, 0x4e, 0x4f, 0x4d, 0x49, 0x41,
+	0x4c, 0x5f, 0x50, 0x52, 0x42, 0x53, 0x39, 0x10, 0x02, 0x12, 0x1a, 0x0a, 0x16, 0x50, 0x52, 0x42,
+	0x53, 0x5f, 0x50, 0x4f, 0x4c, 0x59, 0x4e, 0x4f, 0x4d, 0x49, 0x41, 0x4c, 0x5f, 0x50, 0x52, 0x42,
+	0x53, 0x31, 0x35, 0x10, 0x03, 0x12, 0x1a, 0x0a, 0x16, 0x50, 0x52, 0x42, 0x53, 0x5f, 0x50, 0x4f,
+	0x4c, 0x59, 0x4e, 0x4f, 0x4d, 0x49, 0x41, 0x4c, 0x5f, 0x50, 0x52, 0x42, 0x53, 0x32, 0x30, 0x10,
+	0x04, 0x12, 0x1a, 0x0a, 0x16, 0x50, 0x52, 0x42, 0x53, 0x5f, 0x50, 0x4f, 0x4c, 0x59, 0x4e, 0x4f,
+	0x4d, 0x49, 0x41, 0x4c, 0x5f, 0x50, 0x52, 0x42, 0x53, 0x32, 0x33, 0x10, 0x05, 0x12, 0x1a, 0x0a,
+	0x16, 0x50, 0x52, 0x42, 0x53, 0x5f, 0x50, 0x4f, 0x4c, 0x59, 0x4e, 0x4f, 0x4d, 0x49, 0x41, 0x4c,
+	0x5f, 0x50, 0x52, 0x42, 0x53, 0x33, 0x31, 0x10, 0x06, 0x2a, 0xfe, 0x03, 0x0a, 0x0a, 0x42, 0x65,
+	0x72, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x17, 0x0a, 0x13, 0x42, 0x45, 0x52, 0x54,
+	0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10,
+	0x00, 0x12, 0x12, 0x0a, 0x0e, 0x42, 0x45, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53,
+	0x5f, 0x4f, 0x4b, 0x10, 0x01, 0x12, 0x21, 0x0a, 0x1d, 0x42, 0x45, 0x52, 0x54, 0x5f, 0x53, 0x54,
+	0x41, 0x54, 0x55, 0x53, 0x5f, 0x4e, 0x4f, 0x4e, 0x5f, 0x45, 0x58, 0x49, 0x53, 0x54, 0x45, 0x4e,
+	0x54, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x10, 0x02, 0x12, 0x25, 0x0a, 0x21, 0x42, 0x45, 0x52, 0x54,
+	0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x48, 0x41, 0x52, 0x44, 0x57, 0x41, 0x52, 0x45,
+	0x5f, 0x41, 0x43, 0x43, 0x45, 0x53, 0x53, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x03, 0x12,
+	0x2b, 0x0a, 0x27, 0x42, 0x45, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55,
+	0x4e, 0x53, 0x55, 0x50, 0x50, 0x4f, 0x52, 0x54, 0x45, 0x44, 0x5f, 0x50, 0x52, 0x42, 0x53, 0x5f,
+	0x50, 0x4f, 0x4c, 0x59, 0x4e, 0x4f, 0x4d, 0x49, 0x41, 0x4c, 0x10, 0x04, 0x12, 0x24, 0x0a, 0x20,
+	0x42, 0x45, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x50, 0x4f, 0x52, 0x54,
+	0x5f, 0x41, 0x4c, 0x52, 0x45, 0x41, 0x44, 0x59, 0x5f, 0x49, 0x4e, 0x5f, 0x42, 0x45, 0x52, 0x54,
+	0x10, 0x05, 0x12, 0x25, 0x0a, 0x21, 0x42, 0x45, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55,
+	0x53, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x52, 0x55, 0x4e, 0x4e, 0x49,
+	0x4e, 0x47, 0x5f, 0x42, 0x45, 0x52, 0x54, 0x10, 0x06, 0x12, 0x27, 0x0a, 0x23, 0x42, 0x45, 0x52,
+	0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x54, 0x45, 0x53, 0x54, 0x5f, 0x44, 0x55,
+	0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x4f, 0x4f, 0x5f, 0x53, 0x48, 0x4f, 0x52, 0x54,
+	0x10, 0x07, 0x12, 0x26, 0x0a, 0x22, 0x42, 0x45, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55,
+	0x53, 0x5f, 0x54, 0x45, 0x53, 0x54, 0x5f, 0x44, 0x55, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f,
+	0x54, 0x4f, 0x4f, 0x5f, 0x4c, 0x4f, 0x4e, 0x47, 0x10, 0x08, 0x12, 0x26, 0x0a, 0x22, 0x42, 0x45,
+	0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x4f, 0x50, 0x45, 0x52, 0x41, 0x54,
+	0x49, 0x4f, 0x4e, 0x5f, 0x49, 0x44, 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x46, 0x4f, 0x55, 0x4e, 0x44,
+	0x10, 0x09, 0x12, 0x23, 0x0a, 0x1f, 0x42, 0x45, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55,
+	0x53, 0x5f, 0x4f, 0x50, 0x45, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x49, 0x44, 0x5f, 0x49,
+	0x4e, 0x5f, 0x55, 0x53, 0x45, 0x10, 0x0a, 0x12, 0x21, 0x0a, 0x1d, 0x42, 0x45, 0x52, 0x54, 0x5f,
+	0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x50, 0x45, 0x45, 0x52, 0x5f, 0x4c, 0x4f, 0x43, 0x4b,
+	0x5f, 0x46, 0x41, 0x49, 0x4c, 0x55, 0x52, 0x45, 0x10, 0x0b, 0x12, 0x1e, 0x0a, 0x1a, 0x42, 0x45,
+	0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x50, 0x45, 0x45, 0x52, 0x5f, 0x4c,
+	0x4f, 0x43, 0x4b, 0x5f, 0x4c, 0x4f, 0x53, 0x54, 0x10, 0x0c, 0x12, 0x1e, 0x0a, 0x1a, 0x42, 0x45,
+	0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x4e,
+	0x41, 0x4c, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x0d, 0x32, 0xed, 0x01, 0x0a, 0x04, 0x44,
+	0x69, 0x61, 0x67, 0x12, 0x48, 0x0a, 0x09, 0x53, 0x74, 0x61, 0x72, 0x74, 0x42, 0x45, 0x52, 0x54,
+	0x12, 0x1b, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x64, 0x69, 0x61, 0x67, 0x2e, 0x53, 0x74, 0x61,
+	0x72, 0x74, 0x42, 0x45, 0x52, 0x54, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e,
+	0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x64, 0x69, 0x61, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x42,
+	0x45, 0x52, 0x54, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x45, 0x0a,
+	0x08, 0x53, 0x74, 0x6f, 0x70, 0x42, 0x45, 0x52, 0x54, 0x12, 0x1a, 0x2e, 0x67, 0x6e, 0x6f, 0x69,
+	0x2e, 0x64, 0x69, 0x61, 0x67, 0x2e, 0x53, 0x74, 0x6f, 0x70, 0x42, 0x45, 0x52, 0x54, 0x52, 0x65,
+	0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x64, 0x69, 0x61,
+	0x67, 0x2e, 0x53, 0x74, 0x6f, 0x70, 0x42, 0x45, 0x52, 0x54, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
+	0x73, 0x65, 0x22, 0x00, 0x12, 0x54, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x42, 0x45, 0x52, 0x54, 0x52,
+	0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x1f, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x64, 0x69, 0x61,
+	0x67, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x45, 0x52, 0x54, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52,
+	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x64, 0x69,
+	0x61, 0x67, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x45, 0x52, 0x54, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74,
+	0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x29, 0xd2, 0x3e, 0x05, 0x30,
+	0x2e, 0x31, 0x2e, 0x30, 0x5a, 0x1f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d,
+	0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x67, 0x6e, 0x6f, 0x69,
+	0x2f, 0x64, 0x69, 0x61, 0x67, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
 }
 
 var (
-	file_diag_diag_proto_rawDescOnce sync.Once
-	file_diag_diag_proto_rawDescData = file_diag_diag_proto_rawDesc
+	file_github_com_openconfig_gnoi_diag_diag_proto_rawDescOnce sync.Once
+	file_github_com_openconfig_gnoi_diag_diag_proto_rawDescData = file_github_com_openconfig_gnoi_diag_diag_proto_rawDesc
 )
 
-func file_diag_diag_proto_rawDescGZIP() []byte {
-	file_diag_diag_proto_rawDescOnce.Do(func() {
-		file_diag_diag_proto_rawDescData = protoimpl.X.CompressGZIP(file_diag_diag_proto_rawDescData)
+func file_github_com_openconfig_gnoi_diag_diag_proto_rawDescGZIP() []byte {
+	file_github_com_openconfig_gnoi_diag_diag_proto_rawDescOnce.Do(func() {
+		file_github_com_openconfig_gnoi_diag_diag_proto_rawDescData = protoimpl.X.CompressGZIP(file_github_com_openconfig_gnoi_diag_diag_proto_rawDescData)
 	})
-	return file_diag_diag_proto_rawDescData
+	return file_github_com_openconfig_gnoi_diag_diag_proto_rawDescData
 }
 
-var file_diag_diag_proto_enumTypes = make([]protoimpl.EnumInfo, 2)
-var file_diag_diag_proto_msgTypes = make([]protoimpl.MessageInfo, 12)
-var file_diag_diag_proto_goTypes = []interface{}{
+var file_github_com_openconfig_gnoi_diag_diag_proto_enumTypes = make([]protoimpl.EnumInfo, 2)
+var file_github_com_openconfig_gnoi_diag_diag_proto_msgTypes = make([]protoimpl.MessageInfo, 12)
+var file_github_com_openconfig_gnoi_diag_diag_proto_goTypes = []any{
 	(PrbsPolynomial)(0),                           // 0: gnoi.diag.PrbsPolynomial
 	(BertStatus)(0),                               // 1: gnoi.diag.BertStatus
 	(*StartBERTRequest)(nil),                      // 2: gnoi.diag.StartBERTRequest
@@ -1112,7 +1077,7 @@ var file_diag_diag_proto_goTypes = []interface{}{
 	(*GetBERTResultResponse_PerPortResponse)(nil), // 13: gnoi.diag.GetBERTResultResponse.PerPortResponse
 	(*types.Path)(nil),                            // 14: gnoi.types.Path
 }
-var file_diag_diag_proto_depIdxs = []int32{
+var file_github_com_openconfig_gnoi_diag_diag_proto_depIdxs = []int32{
 	8,  // 0: gnoi.diag.StartBERTRequest.per_port_requests:type_name -> gnoi.diag.StartBERTRequest.PerPortRequest
 	9,  // 1: gnoi.diag.StartBERTResponse.per_port_responses:type_name -> gnoi.diag.StartBERTResponse.PerPortResponse
 	10, // 2: gnoi.diag.StopBERTRequest.per_port_requests:type_name -> gnoi.diag.StopBERTRequest.PerPortRequest
@@ -1143,174 +1108,28 @@ var file_diag_diag_proto_depIdxs = []int32{
 	0,  // [0:17] is the sub-list for field type_name
 }
 
-func init() { file_diag_diag_proto_init() }
-func file_diag_diag_proto_init() {
-	if File_diag_diag_proto != nil {
+func init() { file_github_com_openconfig_gnoi_diag_diag_proto_init() }
+func file_github_com_openconfig_gnoi_diag_diag_proto_init() {
+	if File_github_com_openconfig_gnoi_diag_diag_proto != nil {
 		return
 	}
-	if !protoimpl.UnsafeEnabled {
-		file_diag_diag_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*StartBERTRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_diag_diag_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*StartBERTResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_diag_diag_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*StopBERTRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_diag_diag_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*StopBERTResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_diag_diag_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*GetBERTResultRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_diag_diag_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*GetBERTResultResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_diag_diag_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*StartBERTRequest_PerPortRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_diag_diag_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*StartBERTResponse_PerPortResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_diag_diag_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*StopBERTRequest_PerPortRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_diag_diag_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*StopBERTResponse_PerPortResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_diag_diag_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*GetBERTResultRequest_PerPortRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_diag_diag_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*GetBERTResultResponse_PerPortResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-	}
 	type x struct{}
 	out := protoimpl.TypeBuilder{
 		File: protoimpl.DescBuilder{
 			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
-			RawDescriptor: file_diag_diag_proto_rawDesc,
+			RawDescriptor: file_github_com_openconfig_gnoi_diag_diag_proto_rawDesc,
 			NumEnums:      2,
 			NumMessages:   12,
 			NumExtensions: 0,
 			NumServices:   1,
 		},
-		GoTypes:           file_diag_diag_proto_goTypes,
-		DependencyIndexes: file_diag_diag_proto_depIdxs,
-		EnumInfos:         file_diag_diag_proto_enumTypes,
-		MessageInfos:      file_diag_diag_proto_msgTypes,
+		GoTypes:           file_github_com_openconfig_gnoi_diag_diag_proto_goTypes,
+		DependencyIndexes: file_github_com_openconfig_gnoi_diag_diag_proto_depIdxs,
+		EnumInfos:         file_github_com_openconfig_gnoi_diag_diag_proto_enumTypes,
+		MessageInfos:      file_github_com_openconfig_gnoi_diag_diag_proto_msgTypes,
 	}.Build()
-	File_diag_diag_proto = out.File
-	file_diag_diag_proto_rawDesc = nil
-	file_diag_diag_proto_goTypes = nil
-	file_diag_diag_proto_depIdxs = nil
+	File_github_com_openconfig_gnoi_diag_diag_proto = out.File
+	file_github_com_openconfig_gnoi_diag_diag_proto_rawDesc = nil
+	file_github_com_openconfig_gnoi_diag_diag_proto_goTypes = nil
+	file_github_com_openconfig_gnoi_diag_diag_proto_depIdxs = nil
 }
diff --git a/diag/diag_grpc.pb.go b/diag/diag_grpc.pb.go
index 1c41d9c5..4f5fd089 100644
--- a/diag/diag_grpc.pb.go
+++ b/diag/diag_grpc.pb.go
@@ -1,8 +1,8 @@
 // Code generated by protoc-gen-go-grpc. DO NOT EDIT.
 // versions:
-// - protoc-gen-go-grpc v1.2.0
-// - protoc             v3.21.10
-// source: diag/diag.proto
+// - protoc-gen-go-grpc v1.5.1
+// - protoc             v5.29.3
+// source: github.com/openconfig/gnoi/diag/diag.proto
 
 package diag
 
@@ -15,8 +15,14 @@ import (
 
 // This is a compile-time assertion to ensure that this generated file
 // is compatible with the grpc package it is being compiled against.
-// Requires gRPC-Go v1.32.0 or later.
-const _ = grpc.SupportPackageIsVersion7
+// Requires gRPC-Go v1.64.0 or later.
+const _ = grpc.SupportPackageIsVersion9
+
+const (
+	Diag_StartBERT_FullMethodName     = "/gnoi.diag.Diag/StartBERT"
+	Diag_StopBERT_FullMethodName      = "/gnoi.diag.Diag/StopBERT"
+	Diag_GetBERTResult_FullMethodName = "/gnoi.diag.Diag/GetBERTResult"
+)
 
 // DiagClient is the client API for Diag service.
 //
@@ -36,8 +42,9 @@ func NewDiagClient(cc grpc.ClientConnInterface) DiagClient {
 }
 
 func (c *diagClient) StartBERT(ctx context.Context, in *StartBERTRequest, opts ...grpc.CallOption) (*StartBERTResponse, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
 	out := new(StartBERTResponse)
-	err := c.cc.Invoke(ctx, "/gnoi.diag.Diag/StartBERT", in, out, opts...)
+	err := c.cc.Invoke(ctx, Diag_StartBERT_FullMethodName, in, out, cOpts...)
 	if err != nil {
 		return nil, err
 	}
@@ -45,8 +52,9 @@ func (c *diagClient) StartBERT(ctx context.Context, in *StartBERTRequest, opts .
 }
 
 func (c *diagClient) StopBERT(ctx context.Context, in *StopBERTRequest, opts ...grpc.CallOption) (*StopBERTResponse, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
 	out := new(StopBERTResponse)
-	err := c.cc.Invoke(ctx, "/gnoi.diag.Diag/StopBERT", in, out, opts...)
+	err := c.cc.Invoke(ctx, Diag_StopBERT_FullMethodName, in, out, cOpts...)
 	if err != nil {
 		return nil, err
 	}
@@ -54,8 +62,9 @@ func (c *diagClient) StopBERT(ctx context.Context, in *StopBERTRequest, opts ...
 }
 
 func (c *diagClient) GetBERTResult(ctx context.Context, in *GetBERTResultRequest, opts ...grpc.CallOption) (*GetBERTResultResponse, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
 	out := new(GetBERTResultResponse)
-	err := c.cc.Invoke(ctx, "/gnoi.diag.Diag/GetBERTResult", in, out, opts...)
+	err := c.cc.Invoke(ctx, Diag_GetBERTResult_FullMethodName, in, out, cOpts...)
 	if err != nil {
 		return nil, err
 	}
@@ -63,18 +72,20 @@ func (c *diagClient) GetBERTResult(ctx context.Context, in *GetBERTResultRequest
 }
 
 // DiagServer is the server API for Diag service.
-// All implementations must embed UnimplementedDiagServer
-// for forward compatibility
+// All implementations should embed UnimplementedDiagServer
+// for forward compatibility.
 type DiagServer interface {
 	StartBERT(context.Context, *StartBERTRequest) (*StartBERTResponse, error)
 	StopBERT(context.Context, *StopBERTRequest) (*StopBERTResponse, error)
 	GetBERTResult(context.Context, *GetBERTResultRequest) (*GetBERTResultResponse, error)
-	mustEmbedUnimplementedDiagServer()
 }
 
-// UnimplementedDiagServer must be embedded to have forward compatible implementations.
-type UnimplementedDiagServer struct {
-}
+// UnimplementedDiagServer should be embedded to have
+// forward compatible implementations.
+//
+// NOTE: this should be embedded by value instead of pointer to avoid a nil
+// pointer dereference when methods are called.
+type UnimplementedDiagServer struct{}
 
 func (UnimplementedDiagServer) StartBERT(context.Context, *StartBERTRequest) (*StartBERTResponse, error) {
 	return nil, status.Errorf(codes.Unimplemented, "method StartBERT not implemented")
@@ -85,7 +96,7 @@ func (UnimplementedDiagServer) StopBERT(context.Context, *StopBERTRequest) (*Sto
 func (UnimplementedDiagServer) GetBERTResult(context.Context, *GetBERTResultRequest) (*GetBERTResultResponse, error) {
 	return nil, status.Errorf(codes.Unimplemented, "method GetBERTResult not implemented")
 }
-func (UnimplementedDiagServer) mustEmbedUnimplementedDiagServer() {}
+func (UnimplementedDiagServer) testEmbeddedByValue() {}
 
 // UnsafeDiagServer may be embedded to opt out of forward compatibility for this service.
 // Use of this interface is not recommended, as added methods to DiagServer will
@@ -95,6 +106,13 @@ type UnsafeDiagServer interface {
 }
 
 func RegisterDiagServer(s grpc.ServiceRegistrar, srv DiagServer) {
+	// If the following call pancis, it indicates UnimplementedDiagServer was
+	// embedded by pointer and is nil.  This will cause panics if an
+	// unimplemented method is ever invoked, so we test this at initialization
+	// time to prevent it from happening at runtime later due to I/O.
+	if t, ok := srv.(interface{ testEmbeddedByValue() }); ok {
+		t.testEmbeddedByValue()
+	}
 	s.RegisterService(&Diag_ServiceDesc, srv)
 }
 
@@ -108,7 +126,7 @@ func _Diag_StartBERT_Handler(srv interface{}, ctx context.Context, dec func(inte
 	}
 	info := &grpc.UnaryServerInfo{
 		Server:     srv,
-		FullMethod: "/gnoi.diag.Diag/StartBERT",
+		FullMethod: Diag_StartBERT_FullMethodName,
 	}
 	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
 		return srv.(DiagServer).StartBERT(ctx, req.(*StartBERTRequest))
@@ -126,7 +144,7 @@ func _Diag_StopBERT_Handler(srv interface{}, ctx context.Context, dec func(inter
 	}
 	info := &grpc.UnaryServerInfo{
 		Server:     srv,
-		FullMethod: "/gnoi.diag.Diag/StopBERT",
+		FullMethod: Diag_StopBERT_FullMethodName,
 	}
 	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
 		return srv.(DiagServer).StopBERT(ctx, req.(*StopBERTRequest))
@@ -144,7 +162,7 @@ func _Diag_GetBERTResult_Handler(srv interface{}, ctx context.Context, dec func(
 	}
 	info := &grpc.UnaryServerInfo{
 		Server:     srv,
-		FullMethod: "/gnoi.diag.Diag/GetBERTResult",
+		FullMethod: Diag_GetBERTResult_FullMethodName,
 	}
 	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
 		return srv.(DiagServer).GetBERTResult(ctx, req.(*GetBERTResultRequest))
@@ -173,5 +191,5 @@ var Diag_ServiceDesc = grpc.ServiceDesc{
 		},
 	},
 	Streams:  []grpc.StreamDesc{},
-	Metadata: "diag/diag.proto",
+	Metadata: "github.com/openconfig/gnoi/diag/diag.proto",
 }
diff --git a/factory_reset/BUILD.bazel b/factory_reset/BUILD.bazel
index c7a9e138..66ad1ab7 100644
--- a/factory_reset/BUILD.bazel
+++ b/factory_reset/BUILD.bazel
@@ -1,8 +1,8 @@
-load("@rules_proto//proto:defs.bzl", "proto_library")
+load("@com_github_grpc_grpc//bazel:cc_grpc_library.bzl", "cc_grpc_library")
+load("@com_google_protobuf//bazel:cc_proto_library.bzl", "cc_proto_library")
+load("@com_google_protobuf//bazel:proto_library.bzl", "proto_library")
 load("@io_bazel_rules_go//go:def.bzl", "go_library")
 load("@io_bazel_rules_go//proto:def.bzl", "go_proto_library")
-load("@com_github_grpc_grpc//bazel:cc_grpc_library.bzl", "cc_grpc_library")
-load("//:common.bzl", "use_new_compilers")
 
 #Copyright 2021 Google LLC
 #
@@ -23,11 +23,10 @@ package(
     licenses = ["notice"],
 )
 
-use_new_compilers()
-
 proto_library(
     name = "factory_reset_proto",
     srcs = ["factory_reset.proto"],
+    import_prefix = "github.com/openconfig/gnoi",
     deps = [
         "//types:types_proto",
     ],
@@ -48,8 +47,8 @@ cc_grpc_library(
 go_proto_library(
     name = "factory_reset_go_proto",
     compilers = [
-        "go_protoc_gen_go",
-        "go_protoc_gen_go_grpc",
+        "@io_bazel_rules_go//proto:go_grpc_v2",
+        "@io_bazel_rules_go//proto:go_proto",
     ],
     importpath = "github.com/openconfig/gnoi/factory_reset",
     proto = ":factory_reset_proto",
diff --git a/factory_reset/factory_reset.pb.go b/factory_reset/factory_reset.pb.go
index 5b193144..385418b5 100644
--- a/factory_reset/factory_reset.pb.go
+++ b/factory_reset/factory_reset.pb.go
@@ -1,8 +1,8 @@
 // Code generated by protoc-gen-go. DO NOT EDIT.
 // versions:
-// 	protoc-gen-go v1.30.0
-// 	protoc        v3.21.10
-// source: factory_reset/factory_reset.proto
+// 	protoc-gen-go v1.36.2
+// 	protoc        v5.29.3
+// source: github.com/openconfig/gnoi/factory_reset/factory_reset.proto
 
 package factory_reset
 
@@ -22,22 +22,19 @@ const (
 )
 
 type StartRequest struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	FactoryOs     bool                   `protobuf:"varint,1,opt,name=factory_os,json=factoryOs,proto3" json:"factory_os,omitempty"`
+	ZeroFill      bool                   `protobuf:"varint,2,opt,name=zero_fill,json=zeroFill,proto3" json:"zero_fill,omitempty"`
+	RetainCerts   bool                   `protobuf:"varint,3,opt,name=retain_certs,json=retainCerts,proto3" json:"retain_certs,omitempty"`
 	unknownFields protoimpl.UnknownFields
-
-	FactoryOs   bool `protobuf:"varint,1,opt,name=factory_os,json=factoryOs,proto3" json:"factory_os,omitempty"`
-	ZeroFill    bool `protobuf:"varint,2,opt,name=zero_fill,json=zeroFill,proto3" json:"zero_fill,omitempty"`
-	RetainCerts bool `protobuf:"varint,3,opt,name=retain_certs,json=retainCerts,proto3" json:"retain_certs,omitempty"`
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *StartRequest) Reset() {
 	*x = StartRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_factory_reset_factory_reset_proto_msgTypes[0]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_factory_reset_factory_reset_proto_msgTypes[0]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *StartRequest) String() string {
@@ -47,8 +44,8 @@ func (x *StartRequest) String() string {
 func (*StartRequest) ProtoMessage() {}
 
 func (x *StartRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_factory_reset_factory_reset_proto_msgTypes[0]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_factory_reset_factory_reset_proto_msgTypes[0]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -60,7 +57,7 @@ func (x *StartRequest) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use StartRequest.ProtoReflect.Descriptor instead.
 func (*StartRequest) Descriptor() ([]byte, []int) {
-	return file_factory_reset_factory_reset_proto_rawDescGZIP(), []int{0}
+	return file_github_com_openconfig_gnoi_factory_reset_factory_reset_proto_rawDescGZIP(), []int{0}
 }
 
 func (x *StartRequest) GetFactoryOs() bool {
@@ -85,18 +82,16 @@ func (x *StartRequest) GetRetainCerts() bool {
 }
 
 type ResetSuccess struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState `protogen:"open.v1"`
 	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *ResetSuccess) Reset() {
 	*x = ResetSuccess{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_factory_reset_factory_reset_proto_msgTypes[1]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_factory_reset_factory_reset_proto_msgTypes[1]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *ResetSuccess) String() string {
@@ -106,8 +101,8 @@ func (x *ResetSuccess) String() string {
 func (*ResetSuccess) ProtoMessage() {}
 
 func (x *ResetSuccess) ProtoReflect() protoreflect.Message {
-	mi := &file_factory_reset_factory_reset_proto_msgTypes[1]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_factory_reset_factory_reset_proto_msgTypes[1]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -119,27 +114,24 @@ func (x *ResetSuccess) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use ResetSuccess.ProtoReflect.Descriptor instead.
 func (*ResetSuccess) Descriptor() ([]byte, []int) {
-	return file_factory_reset_factory_reset_proto_rawDescGZIP(), []int{1}
+	return file_github_com_openconfig_gnoi_factory_reset_factory_reset_proto_rawDescGZIP(), []int{1}
 }
 
 type ResetError struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	FactoryOsUnsupported bool   `protobuf:"varint,1,opt,name=factory_os_unsupported,json=factoryOsUnsupported,proto3" json:"factory_os_unsupported,omitempty"`
-	ZeroFillUnsupported  bool   `protobuf:"varint,2,opt,name=zero_fill_unsupported,json=zeroFillUnsupported,proto3" json:"zero_fill_unsupported,omitempty"`
-	Other                bool   `protobuf:"varint,3,opt,name=other,proto3" json:"other,omitempty"`
-	Detail               string `protobuf:"bytes,4,opt,name=detail,proto3" json:"detail,omitempty"`
+	state                protoimpl.MessageState `protogen:"open.v1"`
+	FactoryOsUnsupported bool                   `protobuf:"varint,1,opt,name=factory_os_unsupported,json=factoryOsUnsupported,proto3" json:"factory_os_unsupported,omitempty"`
+	ZeroFillUnsupported  bool                   `protobuf:"varint,2,opt,name=zero_fill_unsupported,json=zeroFillUnsupported,proto3" json:"zero_fill_unsupported,omitempty"`
+	Other                bool                   `protobuf:"varint,3,opt,name=other,proto3" json:"other,omitempty"`
+	Detail               string                 `protobuf:"bytes,4,opt,name=detail,proto3" json:"detail,omitempty"`
+	unknownFields        protoimpl.UnknownFields
+	sizeCache            protoimpl.SizeCache
 }
 
 func (x *ResetError) Reset() {
 	*x = ResetError{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_factory_reset_factory_reset_proto_msgTypes[2]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_factory_reset_factory_reset_proto_msgTypes[2]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *ResetError) String() string {
@@ -149,8 +141,8 @@ func (x *ResetError) String() string {
 func (*ResetError) ProtoMessage() {}
 
 func (x *ResetError) ProtoReflect() protoreflect.Message {
-	mi := &file_factory_reset_factory_reset_proto_msgTypes[2]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_factory_reset_factory_reset_proto_msgTypes[2]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -162,7 +154,7 @@ func (x *ResetError) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use ResetError.ProtoReflect.Descriptor instead.
 func (*ResetError) Descriptor() ([]byte, []int) {
-	return file_factory_reset_factory_reset_proto_rawDescGZIP(), []int{2}
+	return file_github_com_openconfig_gnoi_factory_reset_factory_reset_proto_rawDescGZIP(), []int{2}
 }
 
 func (x *ResetError) GetFactoryOsUnsupported() bool {
@@ -194,24 +186,21 @@ func (x *ResetError) GetDetail() string {
 }
 
 type StartResponse struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	// Types that are assignable to Response:
+	state protoimpl.MessageState `protogen:"open.v1"`
+	// Types that are valid to be assigned to Response:
 	//
 	//	*StartResponse_ResetSuccess
 	//	*StartResponse_ResetError
-	Response isStartResponse_Response `protobuf_oneof:"response"`
+	Response      isStartResponse_Response `protobuf_oneof:"response"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *StartResponse) Reset() {
 	*x = StartResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_factory_reset_factory_reset_proto_msgTypes[3]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_factory_reset_factory_reset_proto_msgTypes[3]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *StartResponse) String() string {
@@ -221,8 +210,8 @@ func (x *StartResponse) String() string {
 func (*StartResponse) ProtoMessage() {}
 
 func (x *StartResponse) ProtoReflect() protoreflect.Message {
-	mi := &file_factory_reset_factory_reset_proto_msgTypes[3]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_factory_reset_factory_reset_proto_msgTypes[3]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -234,26 +223,30 @@ func (x *StartResponse) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use StartResponse.ProtoReflect.Descriptor instead.
 func (*StartResponse) Descriptor() ([]byte, []int) {
-	return file_factory_reset_factory_reset_proto_rawDescGZIP(), []int{3}
+	return file_github_com_openconfig_gnoi_factory_reset_factory_reset_proto_rawDescGZIP(), []int{3}
 }
 
-func (m *StartResponse) GetResponse() isStartResponse_Response {
-	if m != nil {
-		return m.Response
+func (x *StartResponse) GetResponse() isStartResponse_Response {
+	if x != nil {
+		return x.Response
 	}
 	return nil
 }
 
 func (x *StartResponse) GetResetSuccess() *ResetSuccess {
-	if x, ok := x.GetResponse().(*StartResponse_ResetSuccess); ok {
-		return x.ResetSuccess
+	if x != nil {
+		if x, ok := x.Response.(*StartResponse_ResetSuccess); ok {
+			return x.ResetSuccess
+		}
 	}
 	return nil
 }
 
 func (x *StartResponse) GetResetError() *ResetError {
-	if x, ok := x.GetResponse().(*StartResponse_ResetError); ok {
-		return x.ResetError
+	if x != nil {
+		if x, ok := x.Response.(*StartResponse_ResetError); ok {
+			return x.ResetError
+		}
 	}
 	return nil
 }
@@ -274,76 +267,78 @@ func (*StartResponse_ResetSuccess) isStartResponse_Response() {}
 
 func (*StartResponse_ResetError) isStartResponse_Response() {}
 
-var File_factory_reset_factory_reset_proto protoreflect.FileDescriptor
-
-var file_factory_reset_factory_reset_proto_rawDesc = []byte{
-	0x0a, 0x21, 0x66, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x5f, 0x72, 0x65, 0x73, 0x65, 0x74, 0x2f,
-	0x66, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x5f, 0x72, 0x65, 0x73, 0x65, 0x74, 0x2e, 0x70, 0x72,
-	0x6f, 0x74, 0x6f, 0x12, 0x12, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x66, 0x61, 0x63, 0x74, 0x6f, 0x72,
-	0x79, 0x5f, 0x72, 0x65, 0x73, 0x65, 0x74, 0x1a, 0x2c, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e,
-	0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x67,
-	0x6e, 0x6f, 0x69, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e,
-	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x6d, 0x0a, 0x0c, 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65,
-	0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x66, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x79,
-	0x5f, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x66, 0x61, 0x63, 0x74, 0x6f,
-	0x72, 0x79, 0x4f, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x7a, 0x65, 0x72, 0x6f, 0x5f, 0x66, 0x69, 0x6c,
-	0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x7a, 0x65, 0x72, 0x6f, 0x46, 0x69, 0x6c,
-	0x6c, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6e, 0x5f, 0x63, 0x65, 0x72, 0x74,
-	0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6e, 0x43,
-	0x65, 0x72, 0x74, 0x73, 0x22, 0x0e, 0x0a, 0x0c, 0x52, 0x65, 0x73, 0x65, 0x74, 0x53, 0x75, 0x63,
-	0x63, 0x65, 0x73, 0x73, 0x22, 0xa4, 0x01, 0x0a, 0x0a, 0x52, 0x65, 0x73, 0x65, 0x74, 0x45, 0x72,
-	0x72, 0x6f, 0x72, 0x12, 0x34, 0x0a, 0x16, 0x66, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x5f, 0x6f,
-	0x73, 0x5f, 0x75, 0x6e, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x18, 0x01, 0x20,
-	0x01, 0x28, 0x08, 0x52, 0x14, 0x66, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x4f, 0x73, 0x55, 0x6e,
-	0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x12, 0x32, 0x0a, 0x15, 0x7a, 0x65, 0x72,
-	0x6f, 0x5f, 0x66, 0x69, 0x6c, 0x6c, 0x5f, 0x75, 0x6e, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74,
-	0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x7a, 0x65, 0x72, 0x6f, 0x46, 0x69,
-	0x6c, 0x6c, 0x55, 0x6e, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x12, 0x14, 0x0a,
-	0x05, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x6f, 0x74,
-	0x68, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x18, 0x04, 0x20,
-	0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x22, 0xa7, 0x01, 0x0a, 0x0d,
-	0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x47, 0x0a,
-	0x0d, 0x72, 0x65, 0x73, 0x65, 0x74, 0x5f, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x01,
-	0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x66, 0x61, 0x63, 0x74,
-	0x6f, 0x72, 0x79, 0x5f, 0x72, 0x65, 0x73, 0x65, 0x74, 0x2e, 0x52, 0x65, 0x73, 0x65, 0x74, 0x53,
-	0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x48, 0x00, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x65, 0x74, 0x53,
-	0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x41, 0x0a, 0x0b, 0x72, 0x65, 0x73, 0x65, 0x74, 0x5f,
-	0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x67, 0x6e,
+var File_github_com_openconfig_gnoi_factory_reset_factory_reset_proto protoreflect.FileDescriptor
+
+var file_github_com_openconfig_gnoi_factory_reset_factory_reset_proto_rawDesc = []byte{
+	0x0a, 0x3c, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x70, 0x65,
+	0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x67, 0x6e, 0x6f, 0x69, 0x2f, 0x66, 0x61, 0x63,
+	0x74, 0x6f, 0x72, 0x79, 0x5f, 0x72, 0x65, 0x73, 0x65, 0x74, 0x2f, 0x66, 0x61, 0x63, 0x74, 0x6f,
+	0x72, 0x79, 0x5f, 0x72, 0x65, 0x73, 0x65, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12,
+	0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x66, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x5f, 0x72, 0x65, 0x73,
+	0x65, 0x74, 0x1a, 0x2c, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f,
+	0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x67, 0x6e, 0x6f, 0x69, 0x2f, 0x74,
+	0x79, 0x70, 0x65, 0x73, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
+	0x22, 0x6d, 0x0a, 0x0c, 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
+	0x12, 0x1d, 0x0a, 0x0a, 0x66, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x5f, 0x6f, 0x73, 0x18, 0x01,
+	0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x66, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x4f, 0x73, 0x12,
+	0x1b, 0x0a, 0x09, 0x7a, 0x65, 0x72, 0x6f, 0x5f, 0x66, 0x69, 0x6c, 0x6c, 0x18, 0x02, 0x20, 0x01,
+	0x28, 0x08, 0x52, 0x08, 0x7a, 0x65, 0x72, 0x6f, 0x46, 0x69, 0x6c, 0x6c, 0x12, 0x21, 0x0a, 0x0c,
+	0x72, 0x65, 0x74, 0x61, 0x69, 0x6e, 0x5f, 0x63, 0x65, 0x72, 0x74, 0x73, 0x18, 0x03, 0x20, 0x01,
+	0x28, 0x08, 0x52, 0x0b, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6e, 0x43, 0x65, 0x72, 0x74, 0x73, 0x22,
+	0x0e, 0x0a, 0x0c, 0x52, 0x65, 0x73, 0x65, 0x74, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x22,
+	0xa4, 0x01, 0x0a, 0x0a, 0x52, 0x65, 0x73, 0x65, 0x74, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x34,
+	0x0a, 0x16, 0x66, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x5f, 0x6f, 0x73, 0x5f, 0x75, 0x6e, 0x73,
+	0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14,
+	0x66, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x4f, 0x73, 0x55, 0x6e, 0x73, 0x75, 0x70, 0x70, 0x6f,
+	0x72, 0x74, 0x65, 0x64, 0x12, 0x32, 0x0a, 0x15, 0x7a, 0x65, 0x72, 0x6f, 0x5f, 0x66, 0x69, 0x6c,
+	0x6c, 0x5f, 0x75, 0x6e, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x18, 0x02, 0x20,
+	0x01, 0x28, 0x08, 0x52, 0x13, 0x7a, 0x65, 0x72, 0x6f, 0x46, 0x69, 0x6c, 0x6c, 0x55, 0x6e, 0x73,
+	0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x6f, 0x74, 0x68, 0x65,
+	0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x12, 0x16,
+	0x0a, 0x06, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06,
+	0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x22, 0xa7, 0x01, 0x0a, 0x0d, 0x53, 0x74, 0x61, 0x72, 0x74,
+	0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x47, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x65,
+	0x74, 0x5f, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
+	0x20, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x66, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x5f, 0x72,
+	0x65, 0x73, 0x65, 0x74, 0x2e, 0x52, 0x65, 0x73, 0x65, 0x74, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73,
+	0x73, 0x48, 0x00, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x65, 0x74, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73,
+	0x73, 0x12, 0x41, 0x0a, 0x0b, 0x72, 0x65, 0x73, 0x65, 0x74, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72,
+	0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x66, 0x61,
+	0x63, 0x74, 0x6f, 0x72, 0x79, 0x5f, 0x72, 0x65, 0x73, 0x65, 0x74, 0x2e, 0x52, 0x65, 0x73, 0x65,
+	0x74, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x48, 0x00, 0x52, 0x0a, 0x72, 0x65, 0x73, 0x65, 0x74, 0x45,
+	0x72, 0x72, 0x6f, 0x72, 0x42, 0x0a, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
+	0x32, 0x5c, 0x0a, 0x0c, 0x46, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x65, 0x74,
+	0x12, 0x4c, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x20, 0x2e, 0x67, 0x6e, 0x6f, 0x69,
+	0x2e, 0x66, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x5f, 0x72, 0x65, 0x73, 0x65, 0x74, 0x2e, 0x53,
+	0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x67, 0x6e,
 	0x6f, 0x69, 0x2e, 0x66, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x5f, 0x72, 0x65, 0x73, 0x65, 0x74,
-	0x2e, 0x52, 0x65, 0x73, 0x65, 0x74, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x48, 0x00, 0x52, 0x0a, 0x72,
-	0x65, 0x73, 0x65, 0x74, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x42, 0x0a, 0x0a, 0x08, 0x72, 0x65, 0x73,
-	0x70, 0x6f, 0x6e, 0x73, 0x65, 0x32, 0x5c, 0x0a, 0x0c, 0x46, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x79,
-	0x52, 0x65, 0x73, 0x65, 0x74, 0x12, 0x4c, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x20,
-	0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x66, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x5f, 0x72, 0x65,
-	0x73, 0x65, 0x74, 0x2e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
-	0x1a, 0x21, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x66, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x5f,
-	0x72, 0x65, 0x73, 0x65, 0x74, 0x2e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f,
-	0x6e, 0x73, 0x65, 0x42, 0x32, 0xd2, 0x3e, 0x05, 0x30, 0x2e, 0x31, 0x2e, 0x30, 0x5a, 0x28, 0x67,
-	0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f,
-	0x6e, 0x66, 0x69, 0x67, 0x2f, 0x67, 0x6e, 0x6f, 0x69, 0x2f, 0x66, 0x61, 0x63, 0x74, 0x6f, 0x72,
-	0x79, 0x5f, 0x72, 0x65, 0x73, 0x65, 0x74, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+	0x2e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x32,
+	0xd2, 0x3e, 0x05, 0x30, 0x2e, 0x31, 0x2e, 0x30, 0x5a, 0x28, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62,
+	0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f,
+	0x67, 0x6e, 0x6f, 0x69, 0x2f, 0x66, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x5f, 0x72, 0x65, 0x73,
+	0x65, 0x74, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
 }
 
 var (
-	file_factory_reset_factory_reset_proto_rawDescOnce sync.Once
-	file_factory_reset_factory_reset_proto_rawDescData = file_factory_reset_factory_reset_proto_rawDesc
+	file_github_com_openconfig_gnoi_factory_reset_factory_reset_proto_rawDescOnce sync.Once
+	file_github_com_openconfig_gnoi_factory_reset_factory_reset_proto_rawDescData = file_github_com_openconfig_gnoi_factory_reset_factory_reset_proto_rawDesc
 )
 
-func file_factory_reset_factory_reset_proto_rawDescGZIP() []byte {
-	file_factory_reset_factory_reset_proto_rawDescOnce.Do(func() {
-		file_factory_reset_factory_reset_proto_rawDescData = protoimpl.X.CompressGZIP(file_factory_reset_factory_reset_proto_rawDescData)
+func file_github_com_openconfig_gnoi_factory_reset_factory_reset_proto_rawDescGZIP() []byte {
+	file_github_com_openconfig_gnoi_factory_reset_factory_reset_proto_rawDescOnce.Do(func() {
+		file_github_com_openconfig_gnoi_factory_reset_factory_reset_proto_rawDescData = protoimpl.X.CompressGZIP(file_github_com_openconfig_gnoi_factory_reset_factory_reset_proto_rawDescData)
 	})
-	return file_factory_reset_factory_reset_proto_rawDescData
+	return file_github_com_openconfig_gnoi_factory_reset_factory_reset_proto_rawDescData
 }
 
-var file_factory_reset_factory_reset_proto_msgTypes = make([]protoimpl.MessageInfo, 4)
-var file_factory_reset_factory_reset_proto_goTypes = []interface{}{
+var file_github_com_openconfig_gnoi_factory_reset_factory_reset_proto_msgTypes = make([]protoimpl.MessageInfo, 4)
+var file_github_com_openconfig_gnoi_factory_reset_factory_reset_proto_goTypes = []any{
 	(*StartRequest)(nil),  // 0: gnoi.factory_reset.StartRequest
 	(*ResetSuccess)(nil),  // 1: gnoi.factory_reset.ResetSuccess
 	(*ResetError)(nil),    // 2: gnoi.factory_reset.ResetError
 	(*StartResponse)(nil), // 3: gnoi.factory_reset.StartResponse
 }
-var file_factory_reset_factory_reset_proto_depIdxs = []int32{
+var file_github_com_openconfig_gnoi_factory_reset_factory_reset_proto_depIdxs = []int32{
 	1, // 0: gnoi.factory_reset.StartResponse.reset_success:type_name -> gnoi.factory_reset.ResetSuccess
 	2, // 1: gnoi.factory_reset.StartResponse.reset_error:type_name -> gnoi.factory_reset.ResetError
 	0, // 2: gnoi.factory_reset.FactoryReset.Start:input_type -> gnoi.factory_reset.StartRequest
@@ -355,62 +350,12 @@ var file_factory_reset_factory_reset_proto_depIdxs = []int32{
 	0, // [0:2] is the sub-list for field type_name
 }
 
-func init() { file_factory_reset_factory_reset_proto_init() }
-func file_factory_reset_factory_reset_proto_init() {
-	if File_factory_reset_factory_reset_proto != nil {
+func init() { file_github_com_openconfig_gnoi_factory_reset_factory_reset_proto_init() }
+func file_github_com_openconfig_gnoi_factory_reset_factory_reset_proto_init() {
+	if File_github_com_openconfig_gnoi_factory_reset_factory_reset_proto != nil {
 		return
 	}
-	if !protoimpl.UnsafeEnabled {
-		file_factory_reset_factory_reset_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*StartRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_factory_reset_factory_reset_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*ResetSuccess); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_factory_reset_factory_reset_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*ResetError); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_factory_reset_factory_reset_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*StartResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-	}
-	file_factory_reset_factory_reset_proto_msgTypes[3].OneofWrappers = []interface{}{
+	file_github_com_openconfig_gnoi_factory_reset_factory_reset_proto_msgTypes[3].OneofWrappers = []any{
 		(*StartResponse_ResetSuccess)(nil),
 		(*StartResponse_ResetError)(nil),
 	}
@@ -418,18 +363,18 @@ func file_factory_reset_factory_reset_proto_init() {
 	out := protoimpl.TypeBuilder{
 		File: protoimpl.DescBuilder{
 			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
-			RawDescriptor: file_factory_reset_factory_reset_proto_rawDesc,
+			RawDescriptor: file_github_com_openconfig_gnoi_factory_reset_factory_reset_proto_rawDesc,
 			NumEnums:      0,
 			NumMessages:   4,
 			NumExtensions: 0,
 			NumServices:   1,
 		},
-		GoTypes:           file_factory_reset_factory_reset_proto_goTypes,
-		DependencyIndexes: file_factory_reset_factory_reset_proto_depIdxs,
-		MessageInfos:      file_factory_reset_factory_reset_proto_msgTypes,
+		GoTypes:           file_github_com_openconfig_gnoi_factory_reset_factory_reset_proto_goTypes,
+		DependencyIndexes: file_github_com_openconfig_gnoi_factory_reset_factory_reset_proto_depIdxs,
+		MessageInfos:      file_github_com_openconfig_gnoi_factory_reset_factory_reset_proto_msgTypes,
 	}.Build()
-	File_factory_reset_factory_reset_proto = out.File
-	file_factory_reset_factory_reset_proto_rawDesc = nil
-	file_factory_reset_factory_reset_proto_goTypes = nil
-	file_factory_reset_factory_reset_proto_depIdxs = nil
+	File_github_com_openconfig_gnoi_factory_reset_factory_reset_proto = out.File
+	file_github_com_openconfig_gnoi_factory_reset_factory_reset_proto_rawDesc = nil
+	file_github_com_openconfig_gnoi_factory_reset_factory_reset_proto_goTypes = nil
+	file_github_com_openconfig_gnoi_factory_reset_factory_reset_proto_depIdxs = nil
 }
diff --git a/factory_reset/factory_reset_grpc.pb.go b/factory_reset/factory_reset_grpc.pb.go
index 40d4c0f9..5599e737 100644
--- a/factory_reset/factory_reset_grpc.pb.go
+++ b/factory_reset/factory_reset_grpc.pb.go
@@ -1,8 +1,8 @@
 // Code generated by protoc-gen-go-grpc. DO NOT EDIT.
 // versions:
-// - protoc-gen-go-grpc v1.2.0
-// - protoc             v3.21.10
-// source: factory_reset/factory_reset.proto
+// - protoc-gen-go-grpc v1.5.1
+// - protoc             v5.29.3
+// source: github.com/openconfig/gnoi/factory_reset/factory_reset.proto
 
 package factory_reset
 
@@ -15,8 +15,12 @@ import (
 
 // This is a compile-time assertion to ensure that this generated file
 // is compatible with the grpc package it is being compiled against.
-// Requires gRPC-Go v1.32.0 or later.
-const _ = grpc.SupportPackageIsVersion7
+// Requires gRPC-Go v1.64.0 or later.
+const _ = grpc.SupportPackageIsVersion9
+
+const (
+	FactoryReset_Start_FullMethodName = "/gnoi.factory_reset.FactoryReset/Start"
+)
 
 // FactoryResetClient is the client API for FactoryReset service.
 //
@@ -34,8 +38,9 @@ func NewFactoryResetClient(cc grpc.ClientConnInterface) FactoryResetClient {
 }
 
 func (c *factoryResetClient) Start(ctx context.Context, in *StartRequest, opts ...grpc.CallOption) (*StartResponse, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
 	out := new(StartResponse)
-	err := c.cc.Invoke(ctx, "/gnoi.factory_reset.FactoryReset/Start", in, out, opts...)
+	err := c.cc.Invoke(ctx, FactoryReset_Start_FullMethodName, in, out, cOpts...)
 	if err != nil {
 		return nil, err
 	}
@@ -43,21 +48,23 @@ func (c *factoryResetClient) Start(ctx context.Context, in *StartRequest, opts .
 }
 
 // FactoryResetServer is the server API for FactoryReset service.
-// All implementations must embed UnimplementedFactoryResetServer
-// for forward compatibility
+// All implementations should embed UnimplementedFactoryResetServer
+// for forward compatibility.
 type FactoryResetServer interface {
 	Start(context.Context, *StartRequest) (*StartResponse, error)
-	mustEmbedUnimplementedFactoryResetServer()
 }
 
-// UnimplementedFactoryResetServer must be embedded to have forward compatible implementations.
-type UnimplementedFactoryResetServer struct {
-}
+// UnimplementedFactoryResetServer should be embedded to have
+// forward compatible implementations.
+//
+// NOTE: this should be embedded by value instead of pointer to avoid a nil
+// pointer dereference when methods are called.
+type UnimplementedFactoryResetServer struct{}
 
 func (UnimplementedFactoryResetServer) Start(context.Context, *StartRequest) (*StartResponse, error) {
 	return nil, status.Errorf(codes.Unimplemented, "method Start not implemented")
 }
-func (UnimplementedFactoryResetServer) mustEmbedUnimplementedFactoryResetServer() {}
+func (UnimplementedFactoryResetServer) testEmbeddedByValue() {}
 
 // UnsafeFactoryResetServer may be embedded to opt out of forward compatibility for this service.
 // Use of this interface is not recommended, as added methods to FactoryResetServer will
@@ -67,6 +74,13 @@ type UnsafeFactoryResetServer interface {
 }
 
 func RegisterFactoryResetServer(s grpc.ServiceRegistrar, srv FactoryResetServer) {
+	// If the following call pancis, it indicates UnimplementedFactoryResetServer was
+	// embedded by pointer and is nil.  This will cause panics if an
+	// unimplemented method is ever invoked, so we test this at initialization
+	// time to prevent it from happening at runtime later due to I/O.
+	if t, ok := srv.(interface{ testEmbeddedByValue() }); ok {
+		t.testEmbeddedByValue()
+	}
 	s.RegisterService(&FactoryReset_ServiceDesc, srv)
 }
 
@@ -80,7 +94,7 @@ func _FactoryReset_Start_Handler(srv interface{}, ctx context.Context, dec func(
 	}
 	info := &grpc.UnaryServerInfo{
 		Server:     srv,
-		FullMethod: "/gnoi.factory_reset.FactoryReset/Start",
+		FullMethod: FactoryReset_Start_FullMethodName,
 	}
 	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
 		return srv.(FactoryResetServer).Start(ctx, req.(*StartRequest))
@@ -101,5 +115,5 @@ var FactoryReset_ServiceDesc = grpc.ServiceDesc{
 		},
 	},
 	Streams:  []grpc.StreamDesc{},
-	Metadata: "factory_reset/factory_reset.proto",
+	Metadata: "github.com/openconfig/gnoi/factory_reset/factory_reset.proto",
 }
diff --git a/file/BUILD.bazel b/file/BUILD.bazel
index eb6ce04b..c6116113 100644
--- a/file/BUILD.bazel
+++ b/file/BUILD.bazel
@@ -1,8 +1,8 @@
-load("@rules_proto//proto:defs.bzl", "proto_library")
+load("@com_github_grpc_grpc//bazel:cc_grpc_library.bzl", "cc_grpc_library")
+load("@com_google_protobuf//bazel:cc_proto_library.bzl", "cc_proto_library")
+load("@com_google_protobuf//bazel:proto_library.bzl", "proto_library")
 load("@io_bazel_rules_go//go:def.bzl", "go_library")
 load("@io_bazel_rules_go//proto:def.bzl", "go_proto_library")
-load("@com_github_grpc_grpc//bazel:cc_grpc_library.bzl", "cc_grpc_library")
-load("//:common.bzl", "use_new_compilers")
 
 #Copyright 2021 Google LLC
 #
@@ -23,11 +23,10 @@ package(
     licenses = ["notice"],
 )
 
-use_new_compilers()
-
 proto_library(
     name = "file_proto",
     srcs = ["file.proto"],
+    import_prefix = "github.com/openconfig/gnoi",
     deps = [
         "//common:common_proto",
         "//types:types_proto",
@@ -49,8 +48,8 @@ cc_grpc_library(
 go_proto_library(
     name = "file_go_proto",
     compilers = [
-        "go_protoc_gen_go",
-        "go_protoc_gen_go_grpc",
+        "@io_bazel_rules_go//proto:go_grpc_v2",
+        "@io_bazel_rules_go//proto:go_proto",
     ],
     importpath = "github.com/openconfig/gnoi/file",
     proto = ":file_proto",
diff --git a/file/file.pb.go b/file/file.pb.go
index fe87551e..c6837c82 100644
--- a/file/file.pb.go
+++ b/file/file.pb.go
@@ -1,8 +1,8 @@
 // Code generated by protoc-gen-go. DO NOT EDIT.
 // versions:
-// 	protoc-gen-go v1.30.0
-// 	protoc        v3.21.10
-// source: file/file.proto
+// 	protoc-gen-go v1.36.2
+// 	protoc        v5.29.3
+// source: github.com/openconfig/gnoi/file/file.proto
 
 package file
 
@@ -23,25 +23,22 @@ const (
 )
 
 type PutRequest struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	// Types that are assignable to Request:
+	state protoimpl.MessageState `protogen:"open.v1"`
+	// Types that are valid to be assigned to Request:
 	//
 	//	*PutRequest_Open
 	//	*PutRequest_Contents
 	//	*PutRequest_Hash
-	Request isPutRequest_Request `protobuf_oneof:"request"`
+	Request       isPutRequest_Request `protobuf_oneof:"request"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *PutRequest) Reset() {
 	*x = PutRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_file_file_proto_msgTypes[0]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_file_file_proto_msgTypes[0]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *PutRequest) String() string {
@@ -51,8 +48,8 @@ func (x *PutRequest) String() string {
 func (*PutRequest) ProtoMessage() {}
 
 func (x *PutRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_file_file_proto_msgTypes[0]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_file_file_proto_msgTypes[0]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -64,33 +61,39 @@ func (x *PutRequest) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use PutRequest.ProtoReflect.Descriptor instead.
 func (*PutRequest) Descriptor() ([]byte, []int) {
-	return file_file_file_proto_rawDescGZIP(), []int{0}
+	return file_github_com_openconfig_gnoi_file_file_proto_rawDescGZIP(), []int{0}
 }
 
-func (m *PutRequest) GetRequest() isPutRequest_Request {
-	if m != nil {
-		return m.Request
+func (x *PutRequest) GetRequest() isPutRequest_Request {
+	if x != nil {
+		return x.Request
 	}
 	return nil
 }
 
 func (x *PutRequest) GetOpen() *PutRequest_Details {
-	if x, ok := x.GetRequest().(*PutRequest_Open); ok {
-		return x.Open
+	if x != nil {
+		if x, ok := x.Request.(*PutRequest_Open); ok {
+			return x.Open
+		}
 	}
 	return nil
 }
 
 func (x *PutRequest) GetContents() []byte {
-	if x, ok := x.GetRequest().(*PutRequest_Contents); ok {
-		return x.Contents
+	if x != nil {
+		if x, ok := x.Request.(*PutRequest_Contents); ok {
+			return x.Contents
+		}
 	}
 	return nil
 }
 
 func (x *PutRequest) GetHash() *types.HashType {
-	if x, ok := x.GetRequest().(*PutRequest_Hash); ok {
-		return x.Hash
+	if x != nil {
+		if x, ok := x.Request.(*PutRequest_Hash); ok {
+			return x.Hash
+		}
 	}
 	return nil
 }
@@ -118,18 +121,16 @@ func (*PutRequest_Contents) isPutRequest_Request() {}
 func (*PutRequest_Hash) isPutRequest_Request() {}
 
 type PutResponse struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState `protogen:"open.v1"`
 	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *PutResponse) Reset() {
 	*x = PutResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_file_file_proto_msgTypes[1]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_file_file_proto_msgTypes[1]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *PutResponse) String() string {
@@ -139,8 +140,8 @@ func (x *PutResponse) String() string {
 func (*PutResponse) ProtoMessage() {}
 
 func (x *PutResponse) ProtoReflect() protoreflect.Message {
-	mi := &file_file_file_proto_msgTypes[1]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_file_file_proto_msgTypes[1]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -152,24 +153,21 @@ func (x *PutResponse) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use PutResponse.ProtoReflect.Descriptor instead.
 func (*PutResponse) Descriptor() ([]byte, []int) {
-	return file_file_file_proto_rawDescGZIP(), []int{1}
+	return file_github_com_openconfig_gnoi_file_file_proto_rawDescGZIP(), []int{1}
 }
 
 type GetRequest struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	RemoteFile    string                 `protobuf:"bytes,1,opt,name=remote_file,json=remoteFile,proto3" json:"remote_file,omitempty"`
 	unknownFields protoimpl.UnknownFields
-
-	RemoteFile string `protobuf:"bytes,1,opt,name=remote_file,json=remoteFile,proto3" json:"remote_file,omitempty"`
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *GetRequest) Reset() {
 	*x = GetRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_file_file_proto_msgTypes[2]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_file_file_proto_msgTypes[2]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *GetRequest) String() string {
@@ -179,8 +177,8 @@ func (x *GetRequest) String() string {
 func (*GetRequest) ProtoMessage() {}
 
 func (x *GetRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_file_file_proto_msgTypes[2]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_file_file_proto_msgTypes[2]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -192,7 +190,7 @@ func (x *GetRequest) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use GetRequest.ProtoReflect.Descriptor instead.
 func (*GetRequest) Descriptor() ([]byte, []int) {
-	return file_file_file_proto_rawDescGZIP(), []int{2}
+	return file_github_com_openconfig_gnoi_file_file_proto_rawDescGZIP(), []int{2}
 }
 
 func (x *GetRequest) GetRemoteFile() string {
@@ -203,24 +201,21 @@ func (x *GetRequest) GetRemoteFile() string {
 }
 
 type GetResponse struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	// Types that are assignable to Response:
+	state protoimpl.MessageState `protogen:"open.v1"`
+	// Types that are valid to be assigned to Response:
 	//
 	//	*GetResponse_Contents
 	//	*GetResponse_Hash
-	Response isGetResponse_Response `protobuf_oneof:"response"`
+	Response      isGetResponse_Response `protobuf_oneof:"response"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *GetResponse) Reset() {
 	*x = GetResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_file_file_proto_msgTypes[3]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_file_file_proto_msgTypes[3]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *GetResponse) String() string {
@@ -230,8 +225,8 @@ func (x *GetResponse) String() string {
 func (*GetResponse) ProtoMessage() {}
 
 func (x *GetResponse) ProtoReflect() protoreflect.Message {
-	mi := &file_file_file_proto_msgTypes[3]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_file_file_proto_msgTypes[3]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -243,26 +238,30 @@ func (x *GetResponse) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use GetResponse.ProtoReflect.Descriptor instead.
 func (*GetResponse) Descriptor() ([]byte, []int) {
-	return file_file_file_proto_rawDescGZIP(), []int{3}
+	return file_github_com_openconfig_gnoi_file_file_proto_rawDescGZIP(), []int{3}
 }
 
-func (m *GetResponse) GetResponse() isGetResponse_Response {
-	if m != nil {
-		return m.Response
+func (x *GetResponse) GetResponse() isGetResponse_Response {
+	if x != nil {
+		return x.Response
 	}
 	return nil
 }
 
 func (x *GetResponse) GetContents() []byte {
-	if x, ok := x.GetResponse().(*GetResponse_Contents); ok {
-		return x.Contents
+	if x != nil {
+		if x, ok := x.Response.(*GetResponse_Contents); ok {
+			return x.Contents
+		}
 	}
 	return nil
 }
 
 func (x *GetResponse) GetHash() *types.HashType {
-	if x, ok := x.GetResponse().(*GetResponse_Hash); ok {
-		return x.Hash
+	if x != nil {
+		if x, ok := x.Response.(*GetResponse_Hash); ok {
+			return x.Hash
+		}
 	}
 	return nil
 }
@@ -284,21 +283,18 @@ func (*GetResponse_Contents) isGetResponse_Response() {}
 func (*GetResponse_Hash) isGetResponse_Response() {}
 
 type TransferToRemoteRequest struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
+	state          protoimpl.MessageState `protogen:"open.v1"`
 	LocalPath      string                 `protobuf:"bytes,1,opt,name=local_path,json=localPath,proto3" json:"local_path,omitempty"`
 	RemoteDownload *common.RemoteDownload `protobuf:"bytes,2,opt,name=remote_download,json=remoteDownload,proto3" json:"remote_download,omitempty"`
+	unknownFields  protoimpl.UnknownFields
+	sizeCache      protoimpl.SizeCache
 }
 
 func (x *TransferToRemoteRequest) Reset() {
 	*x = TransferToRemoteRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_file_file_proto_msgTypes[4]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_file_file_proto_msgTypes[4]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *TransferToRemoteRequest) String() string {
@@ -308,8 +304,8 @@ func (x *TransferToRemoteRequest) String() string {
 func (*TransferToRemoteRequest) ProtoMessage() {}
 
 func (x *TransferToRemoteRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_file_file_proto_msgTypes[4]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_file_file_proto_msgTypes[4]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -321,7 +317,7 @@ func (x *TransferToRemoteRequest) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use TransferToRemoteRequest.ProtoReflect.Descriptor instead.
 func (*TransferToRemoteRequest) Descriptor() ([]byte, []int) {
-	return file_file_file_proto_rawDescGZIP(), []int{4}
+	return file_github_com_openconfig_gnoi_file_file_proto_rawDescGZIP(), []int{4}
 }
 
 func (x *TransferToRemoteRequest) GetLocalPath() string {
@@ -339,20 +335,17 @@ func (x *TransferToRemoteRequest) GetRemoteDownload() *common.RemoteDownload {
 }
 
 type TransferToRemoteResponse struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Hash          *types.HashType        `protobuf:"bytes,1,opt,name=hash,proto3" json:"hash,omitempty"`
 	unknownFields protoimpl.UnknownFields
-
-	Hash *types.HashType `protobuf:"bytes,1,opt,name=hash,proto3" json:"hash,omitempty"`
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *TransferToRemoteResponse) Reset() {
 	*x = TransferToRemoteResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_file_file_proto_msgTypes[5]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_file_file_proto_msgTypes[5]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *TransferToRemoteResponse) String() string {
@@ -362,8 +355,8 @@ func (x *TransferToRemoteResponse) String() string {
 func (*TransferToRemoteResponse) ProtoMessage() {}
 
 func (x *TransferToRemoteResponse) ProtoReflect() protoreflect.Message {
-	mi := &file_file_file_proto_msgTypes[5]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_file_file_proto_msgTypes[5]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -375,7 +368,7 @@ func (x *TransferToRemoteResponse) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use TransferToRemoteResponse.ProtoReflect.Descriptor instead.
 func (*TransferToRemoteResponse) Descriptor() ([]byte, []int) {
-	return file_file_file_proto_rawDescGZIP(), []int{5}
+	return file_github_com_openconfig_gnoi_file_file_proto_rawDescGZIP(), []int{5}
 }
 
 func (x *TransferToRemoteResponse) GetHash() *types.HashType {
@@ -386,20 +379,17 @@ func (x *TransferToRemoteResponse) GetHash() *types.HashType {
 }
 
 type StatRequest struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Path          string                 `protobuf:"bytes,1,opt,name=path,proto3" json:"path,omitempty"`
 	unknownFields protoimpl.UnknownFields
-
-	Path string `protobuf:"bytes,1,opt,name=path,proto3" json:"path,omitempty"`
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *StatRequest) Reset() {
 	*x = StatRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_file_file_proto_msgTypes[6]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_file_file_proto_msgTypes[6]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *StatRequest) String() string {
@@ -409,8 +399,8 @@ func (x *StatRequest) String() string {
 func (*StatRequest) ProtoMessage() {}
 
 func (x *StatRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_file_file_proto_msgTypes[6]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_file_file_proto_msgTypes[6]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -422,7 +412,7 @@ func (x *StatRequest) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use StatRequest.ProtoReflect.Descriptor instead.
 func (*StatRequest) Descriptor() ([]byte, []int) {
-	return file_file_file_proto_rawDescGZIP(), []int{6}
+	return file_github_com_openconfig_gnoi_file_file_proto_rawDescGZIP(), []int{6}
 }
 
 func (x *StatRequest) GetPath() string {
@@ -433,20 +423,17 @@ func (x *StatRequest) GetPath() string {
 }
 
 type StatResponse struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Stats         []*StatInfo            `protobuf:"bytes,1,rep,name=stats,proto3" json:"stats,omitempty"`
 	unknownFields protoimpl.UnknownFields
-
-	Stats []*StatInfo `protobuf:"bytes,1,rep,name=stats,proto3" json:"stats,omitempty"`
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *StatResponse) Reset() {
 	*x = StatResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_file_file_proto_msgTypes[7]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_file_file_proto_msgTypes[7]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *StatResponse) String() string {
@@ -456,8 +443,8 @@ func (x *StatResponse) String() string {
 func (*StatResponse) ProtoMessage() {}
 
 func (x *StatResponse) ProtoReflect() protoreflect.Message {
-	mi := &file_file_file_proto_msgTypes[7]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_file_file_proto_msgTypes[7]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -469,7 +456,7 @@ func (x *StatResponse) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use StatResponse.ProtoReflect.Descriptor instead.
 func (*StatResponse) Descriptor() ([]byte, []int) {
-	return file_file_file_proto_rawDescGZIP(), []int{7}
+	return file_github_com_openconfig_gnoi_file_file_proto_rawDescGZIP(), []int{7}
 }
 
 func (x *StatResponse) GetStats() []*StatInfo {
@@ -480,24 +467,21 @@ func (x *StatResponse) GetStats() []*StatInfo {
 }
 
 type StatInfo struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Path          string                 `protobuf:"bytes,1,opt,name=path,proto3" json:"path,omitempty"`
+	LastModified  uint64                 `protobuf:"varint,2,opt,name=last_modified,json=lastModified,proto3" json:"last_modified,omitempty"`
+	Permissions   uint32                 `protobuf:"varint,3,opt,name=permissions,proto3" json:"permissions,omitempty"`
+	Size          uint64                 `protobuf:"varint,4,opt,name=size,proto3" json:"size,omitempty"`
+	Umask         uint32                 `protobuf:"varint,5,opt,name=umask,proto3" json:"umask,omitempty"`
 	unknownFields protoimpl.UnknownFields
-
-	Path         string `protobuf:"bytes,1,opt,name=path,proto3" json:"path,omitempty"`
-	LastModified uint64 `protobuf:"varint,2,opt,name=last_modified,json=lastModified,proto3" json:"last_modified,omitempty"`
-	Permissions  uint32 `protobuf:"varint,3,opt,name=permissions,proto3" json:"permissions,omitempty"`
-	Size         uint64 `protobuf:"varint,4,opt,name=size,proto3" json:"size,omitempty"`
-	Umask        uint32 `protobuf:"varint,5,opt,name=umask,proto3" json:"umask,omitempty"`
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *StatInfo) Reset() {
 	*x = StatInfo{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_file_file_proto_msgTypes[8]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_file_file_proto_msgTypes[8]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *StatInfo) String() string {
@@ -507,8 +491,8 @@ func (x *StatInfo) String() string {
 func (*StatInfo) ProtoMessage() {}
 
 func (x *StatInfo) ProtoReflect() protoreflect.Message {
-	mi := &file_file_file_proto_msgTypes[8]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_file_file_proto_msgTypes[8]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -520,7 +504,7 @@ func (x *StatInfo) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use StatInfo.ProtoReflect.Descriptor instead.
 func (*StatInfo) Descriptor() ([]byte, []int) {
-	return file_file_file_proto_rawDescGZIP(), []int{8}
+	return file_github_com_openconfig_gnoi_file_file_proto_rawDescGZIP(), []int{8}
 }
 
 func (x *StatInfo) GetPath() string {
@@ -559,20 +543,17 @@ func (x *StatInfo) GetUmask() uint32 {
 }
 
 type RemoveRequest struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	RemoteFile    string                 `protobuf:"bytes,1,opt,name=remote_file,json=remoteFile,proto3" json:"remote_file,omitempty"`
 	unknownFields protoimpl.UnknownFields
-
-	RemoteFile string `protobuf:"bytes,1,opt,name=remote_file,json=remoteFile,proto3" json:"remote_file,omitempty"`
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *RemoveRequest) Reset() {
 	*x = RemoveRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_file_file_proto_msgTypes[9]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_file_file_proto_msgTypes[9]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *RemoveRequest) String() string {
@@ -582,8 +563,8 @@ func (x *RemoveRequest) String() string {
 func (*RemoveRequest) ProtoMessage() {}
 
 func (x *RemoveRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_file_file_proto_msgTypes[9]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_file_file_proto_msgTypes[9]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -595,7 +576,7 @@ func (x *RemoveRequest) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use RemoveRequest.ProtoReflect.Descriptor instead.
 func (*RemoveRequest) Descriptor() ([]byte, []int) {
-	return file_file_file_proto_rawDescGZIP(), []int{9}
+	return file_github_com_openconfig_gnoi_file_file_proto_rawDescGZIP(), []int{9}
 }
 
 func (x *RemoveRequest) GetRemoteFile() string {
@@ -606,18 +587,16 @@ func (x *RemoveRequest) GetRemoteFile() string {
 }
 
 type RemoveResponse struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState `protogen:"open.v1"`
 	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *RemoveResponse) Reset() {
 	*x = RemoveResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_file_file_proto_msgTypes[10]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_file_file_proto_msgTypes[10]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *RemoveResponse) String() string {
@@ -627,8 +606,8 @@ func (x *RemoveResponse) String() string {
 func (*RemoveResponse) ProtoMessage() {}
 
 func (x *RemoveResponse) ProtoReflect() protoreflect.Message {
-	mi := &file_file_file_proto_msgTypes[10]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_file_file_proto_msgTypes[10]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -640,25 +619,22 @@ func (x *RemoveResponse) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use RemoveResponse.ProtoReflect.Descriptor instead.
 func (*RemoveResponse) Descriptor() ([]byte, []int) {
-	return file_file_file_proto_rawDescGZIP(), []int{10}
+	return file_github_com_openconfig_gnoi_file_file_proto_rawDescGZIP(), []int{10}
 }
 
 type PutRequest_Details struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	RemoteFile    string                 `protobuf:"bytes,1,opt,name=remote_file,json=remoteFile,proto3" json:"remote_file,omitempty"`
+	Permissions   uint32                 `protobuf:"varint,2,opt,name=permissions,proto3" json:"permissions,omitempty"`
 	unknownFields protoimpl.UnknownFields
-
-	RemoteFile  string `protobuf:"bytes,1,opt,name=remote_file,json=remoteFile,proto3" json:"remote_file,omitempty"`
-	Permissions uint32 `protobuf:"varint,2,opt,name=permissions,proto3" json:"permissions,omitempty"`
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *PutRequest_Details) Reset() {
 	*x = PutRequest_Details{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_file_file_proto_msgTypes[11]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_file_file_proto_msgTypes[11]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *PutRequest_Details) String() string {
@@ -668,8 +644,8 @@ func (x *PutRequest_Details) String() string {
 func (*PutRequest_Details) ProtoMessage() {}
 
 func (x *PutRequest_Details) ProtoReflect() protoreflect.Message {
-	mi := &file_file_file_proto_msgTypes[11]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_file_file_proto_msgTypes[11]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -681,7 +657,7 @@ func (x *PutRequest_Details) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use PutRequest_Details.ProtoReflect.Descriptor instead.
 func (*PutRequest_Details) Descriptor() ([]byte, []int) {
-	return file_file_file_proto_rawDescGZIP(), []int{0, 0}
+	return file_github_com_openconfig_gnoi_file_file_proto_rawDescGZIP(), []int{0, 0}
 }
 
 func (x *PutRequest_Details) GetRemoteFile() string {
@@ -698,114 +674,116 @@ func (x *PutRequest_Details) GetPermissions() uint32 {
 	return 0
 }
 
-var File_file_file_proto protoreflect.FileDescriptor
-
-var file_file_file_proto_rawDesc = []byte{
-	0x0a, 0x0f, 0x66, 0x69, 0x6c, 0x65, 0x2f, 0x66, 0x69, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74,
-	0x6f, 0x12, 0x09, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x1a, 0x2e, 0x67, 0x69,
-	0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e,
-	0x66, 0x69, 0x67, 0x2f, 0x67, 0x6e, 0x6f, 0x69, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2f,
-	0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2c, 0x67, 0x69,
-	0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e,
-	0x66, 0x69, 0x67, 0x2f, 0x67, 0x6e, 0x6f, 0x69, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2f, 0x74,
-	0x79, 0x70, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xe4, 0x01, 0x0a, 0x0a, 0x50,
-	0x75, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x33, 0x0a, 0x04, 0x6f, 0x70, 0x65,
-	0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x66,
-	0x69, 0x6c, 0x65, 0x2e, 0x50, 0x75, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x44,
-	0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x48, 0x00, 0x52, 0x04, 0x6f, 0x70, 0x65, 0x6e, 0x12, 0x1c,
-	0x0a, 0x08, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c,
-	0x48, 0x00, 0x52, 0x08, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x2a, 0x0a, 0x04,
-	0x68, 0x61, 0x73, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6e, 0x6f,
-	0x69, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x48, 0x61, 0x73, 0x68, 0x54, 0x79, 0x70, 0x65,
-	0x48, 0x00, 0x52, 0x04, 0x68, 0x61, 0x73, 0x68, 0x1a, 0x4c, 0x0a, 0x07, 0x44, 0x65, 0x74, 0x61,
-	0x69, 0x6c, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x66, 0x69,
-	0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65,
-	0x46, 0x69, 0x6c, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69,
-	0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x70, 0x65, 0x72, 0x6d, 0x69,
-	0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x42, 0x09, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73,
-	0x74, 0x22, 0x0d, 0x0a, 0x0b, 0x50, 0x75, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
-	0x22, 0x2d, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1f,
-	0x0a, 0x0b, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x01, 0x20,
-	0x01, 0x28, 0x09, 0x52, 0x0a, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x22,
-	0x63, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1c,
-	0x0a, 0x08, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c,
-	0x48, 0x00, 0x52, 0x08, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x2a, 0x0a, 0x04,
-	0x68, 0x61, 0x73, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6e, 0x6f,
-	0x69, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x48, 0x61, 0x73, 0x68, 0x54, 0x79, 0x70, 0x65,
-	0x48, 0x00, 0x52, 0x04, 0x68, 0x61, 0x73, 0x68, 0x42, 0x0a, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x70,
-	0x6f, 0x6e, 0x73, 0x65, 0x22, 0x7e, 0x0a, 0x17, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72,
-	0x54, 0x6f, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12,
-	0x1d, 0x0a, 0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20,
-	0x01, 0x28, 0x09, 0x52, 0x09, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x50, 0x61, 0x74, 0x68, 0x12, 0x44,
-	0x0a, 0x0f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61,
-	0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x63,
-	0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x44, 0x6f, 0x77, 0x6e,
-	0x6c, 0x6f, 0x61, 0x64, 0x52, 0x0e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x44, 0x6f, 0x77, 0x6e,
-	0x6c, 0x6f, 0x61, 0x64, 0x22, 0x44, 0x0a, 0x18, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72,
-	0x54, 0x6f, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
-	0x12, 0x28, 0x0a, 0x04, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14,
-	0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x48, 0x61, 0x73, 0x68,
-	0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x68, 0x61, 0x73, 0x68, 0x22, 0x21, 0x0a, 0x0b, 0x53, 0x74,
-	0x61, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74,
-	0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x22, 0x39, 0x0a,
-	0x0c, 0x53, 0x74, 0x61, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x29, 0x0a,
-	0x05, 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x67,
-	0x6e, 0x6f, 0x69, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x49, 0x6e, 0x66,
-	0x6f, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x73, 0x22, 0x8f, 0x01, 0x0a, 0x08, 0x53, 0x74, 0x61,
-	0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20,
-	0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x23, 0x0a, 0x0d, 0x6c, 0x61, 0x73,
-	0x74, 0x5f, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04,
-	0x52, 0x0c, 0x6c, 0x61, 0x73, 0x74, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x12, 0x20,
-	0x0a, 0x0b, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20,
-	0x01, 0x28, 0x0d, 0x52, 0x0b, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73,
-	0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04,
-	0x73, 0x69, 0x7a, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x75, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x05, 0x20,
-	0x01, 0x28, 0x0d, 0x52, 0x05, 0x75, 0x6d, 0x61, 0x73, 0x6b, 0x22, 0x30, 0x0a, 0x0d, 0x52, 0x65,
-	0x6d, 0x6f, 0x76, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x72,
-	0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
-	0x52, 0x0a, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x22, 0x10, 0x0a, 0x0e,
-	0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x32, 0xd5,
-	0x02, 0x0a, 0x04, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x38, 0x0a, 0x03, 0x47, 0x65, 0x74, 0x12, 0x15,
-	0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65,
-	0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x66, 0x69, 0x6c,
-	0x65, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x30,
-	0x01, 0x12, 0x5d, 0x0a, 0x10, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x54, 0x6f, 0x52,
-	0x65, 0x6d, 0x6f, 0x74, 0x65, 0x12, 0x22, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x66, 0x69, 0x6c,
-	0x65, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x54, 0x6f, 0x52, 0x65, 0x6d, 0x6f,
-	0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x67, 0x6e, 0x6f, 0x69,
-	0x2e, 0x66, 0x69, 0x6c, 0x65, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x54, 0x6f,
-	0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00,
-	0x12, 0x38, 0x0a, 0x03, 0x50, 0x75, 0x74, 0x12, 0x15, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x66,
-	0x69, 0x6c, 0x65, 0x2e, 0x50, 0x75, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16,
-	0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x2e, 0x50, 0x75, 0x74, 0x52, 0x65,
-	0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x28, 0x01, 0x12, 0x39, 0x0a, 0x04, 0x53, 0x74,
-	0x61, 0x74, 0x12, 0x16, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x2e, 0x53,
-	0x74, 0x61, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x67, 0x6e, 0x6f,
-	0x69, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f,
-	0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3f, 0x0a, 0x06, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x12,
-	0x18, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x2e, 0x52, 0x65, 0x6d, 0x6f,
-	0x76, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x67, 0x6e, 0x6f, 0x69,
-	0x2e, 0x66, 0x69, 0x6c, 0x65, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x65, 0x73, 0x70,
-	0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x29, 0xd2, 0x3e, 0x05, 0x30, 0x2e, 0x31, 0x2e, 0x30,
-	0x5a, 0x1f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x70, 0x65,
+var File_github_com_openconfig_gnoi_file_file_proto protoreflect.FileDescriptor
+
+var file_github_com_openconfig_gnoi_file_file_proto_rawDesc = []byte{
+	0x0a, 0x2a, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x70, 0x65,
 	0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x67, 0x6e, 0x6f, 0x69, 0x2f, 0x66, 0x69, 0x6c,
-	0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+	0x65, 0x2f, 0x66, 0x69, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x09, 0x67, 0x6e,
+	0x6f, 0x69, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x1a, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e,
+	0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x67,
+	0x6e, 0x6f, 0x69, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f,
+	0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2c, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e,
+	0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x67,
+	0x6e, 0x6f, 0x69, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e,
+	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xe4, 0x01, 0x0a, 0x0a, 0x50, 0x75, 0x74, 0x52, 0x65, 0x71,
+	0x75, 0x65, 0x73, 0x74, 0x12, 0x33, 0x0a, 0x04, 0x6f, 0x70, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01,
+	0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x2e, 0x50,
+	0x75, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c,
+	0x73, 0x48, 0x00, 0x52, 0x04, 0x6f, 0x70, 0x65, 0x6e, 0x12, 0x1c, 0x0a, 0x08, 0x63, 0x6f, 0x6e,
+	0x74, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x08, 0x63,
+	0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x2a, 0x0a, 0x04, 0x68, 0x61, 0x73, 0x68, 0x18,
+	0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x74, 0x79, 0x70,
+	0x65, 0x73, 0x2e, 0x48, 0x61, 0x73, 0x68, 0x54, 0x79, 0x70, 0x65, 0x48, 0x00, 0x52, 0x04, 0x68,
+	0x61, 0x73, 0x68, 0x1a, 0x4c, 0x0a, 0x07, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x1f,
+	0x0a, 0x0b, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x01, 0x20,
+	0x01, 0x28, 0x09, 0x52, 0x0a, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x12,
+	0x20, 0x0a, 0x0b, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02,
+	0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e,
+	0x73, 0x42, 0x09, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x0d, 0x0a, 0x0b,
+	0x50, 0x75, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2d, 0x0a, 0x0a, 0x47,
+	0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x72, 0x65, 0x6d,
+	0x6f, 0x74, 0x65, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a,
+	0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x22, 0x63, 0x0a, 0x0b, 0x47, 0x65,
+	0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1c, 0x0a, 0x08, 0x63, 0x6f, 0x6e,
+	0x74, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x08, 0x63,
+	0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x2a, 0x0a, 0x04, 0x68, 0x61, 0x73, 0x68, 0x18,
+	0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x74, 0x79, 0x70,
+	0x65, 0x73, 0x2e, 0x48, 0x61, 0x73, 0x68, 0x54, 0x79, 0x70, 0x65, 0x48, 0x00, 0x52, 0x04, 0x68,
+	0x61, 0x73, 0x68, 0x42, 0x0a, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22,
+	0x7e, 0x0a, 0x17, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x54, 0x6f, 0x52, 0x65, 0x6d,
+	0x6f, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x6c, 0x6f,
+	0x63, 0x61, 0x6c, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09,
+	0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x50, 0x61, 0x74, 0x68, 0x12, 0x44, 0x0a, 0x0f, 0x72, 0x65, 0x6d,
+	0x6f, 0x74, 0x65, 0x5f, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x02, 0x20, 0x01,
+	0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e,
+	0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x52,
+	0x0e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x22,
+	0x44, 0x0a, 0x18, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x54, 0x6f, 0x52, 0x65, 0x6d,
+	0x6f, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x28, 0x0a, 0x04, 0x68,
+	0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6e, 0x6f, 0x69,
+	0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x48, 0x61, 0x73, 0x68, 0x54, 0x79, 0x70, 0x65, 0x52,
+	0x04, 0x68, 0x61, 0x73, 0x68, 0x22, 0x21, 0x0a, 0x0b, 0x53, 0x74, 0x61, 0x74, 0x52, 0x65, 0x71,
+	0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01,
+	0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x22, 0x39, 0x0a, 0x0c, 0x53, 0x74, 0x61, 0x74,
+	0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x29, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74,
+	0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x66,
+	0x69, 0x6c, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x73, 0x74,
+	0x61, 0x74, 0x73, 0x22, 0x8f, 0x01, 0x0a, 0x08, 0x53, 0x74, 0x61, 0x74, 0x49, 0x6e, 0x66, 0x6f,
+	0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04,
+	0x70, 0x61, 0x74, 0x68, 0x12, 0x23, 0x0a, 0x0d, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x6d, 0x6f, 0x64,
+	0x69, 0x66, 0x69, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x6c, 0x61, 0x73,
+	0x74, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x65, 0x72,
+	0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b,
+	0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x73,
+	0x69, 0x7a, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x12,
+	0x14, 0x0a, 0x05, 0x75, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05,
+	0x75, 0x6d, 0x61, 0x73, 0x6b, 0x22, 0x30, 0x0a, 0x0d, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52,
+	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65,
+	0x5f, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x72, 0x65, 0x6d,
+	0x6f, 0x74, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x22, 0x10, 0x0a, 0x0e, 0x52, 0x65, 0x6d, 0x6f, 0x76,
+	0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x32, 0xd5, 0x02, 0x0a, 0x04, 0x46, 0x69,
+	0x6c, 0x65, 0x12, 0x38, 0x0a, 0x03, 0x47, 0x65, 0x74, 0x12, 0x15, 0x2e, 0x67, 0x6e, 0x6f, 0x69,
+	0x2e, 0x66, 0x69, 0x6c, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
+	0x1a, 0x16, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x2e, 0x47, 0x65, 0x74,
+	0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x30, 0x01, 0x12, 0x5d, 0x0a, 0x10,
+	0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x54, 0x6f, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65,
+	0x12, 0x22, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x2e, 0x54, 0x72, 0x61,
+	0x6e, 0x73, 0x66, 0x65, 0x72, 0x54, 0x6f, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x52, 0x65, 0x71,
+	0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x66, 0x69, 0x6c, 0x65,
+	0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x54, 0x6f, 0x52, 0x65, 0x6d, 0x6f, 0x74,
+	0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x38, 0x0a, 0x03, 0x50,
+	0x75, 0x74, 0x12, 0x15, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x2e, 0x50,
+	0x75, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6e, 0x6f, 0x69,
+	0x2e, 0x66, 0x69, 0x6c, 0x65, 0x2e, 0x50, 0x75, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
+	0x65, 0x22, 0x00, 0x28, 0x01, 0x12, 0x39, 0x0a, 0x04, 0x53, 0x74, 0x61, 0x74, 0x12, 0x16, 0x2e,
+	0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x52, 0x65,
+	0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x66, 0x69, 0x6c,
+	0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00,
+	0x12, 0x3f, 0x0a, 0x06, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x12, 0x18, 0x2e, 0x67, 0x6e, 0x6f,
+	0x69, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x65, 0x71,
+	0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x66, 0x69, 0x6c, 0x65,
+	0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22,
+	0x00, 0x42, 0x29, 0xd2, 0x3e, 0x05, 0x30, 0x2e, 0x31, 0x2e, 0x30, 0x5a, 0x1f, 0x67, 0x69, 0x74,
+	0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66,
+	0x69, 0x67, 0x2f, 0x67, 0x6e, 0x6f, 0x69, 0x2f, 0x66, 0x69, 0x6c, 0x65, 0x62, 0x06, 0x70, 0x72,
+	0x6f, 0x74, 0x6f, 0x33,
 }
 
 var (
-	file_file_file_proto_rawDescOnce sync.Once
-	file_file_file_proto_rawDescData = file_file_file_proto_rawDesc
+	file_github_com_openconfig_gnoi_file_file_proto_rawDescOnce sync.Once
+	file_github_com_openconfig_gnoi_file_file_proto_rawDescData = file_github_com_openconfig_gnoi_file_file_proto_rawDesc
 )
 
-func file_file_file_proto_rawDescGZIP() []byte {
-	file_file_file_proto_rawDescOnce.Do(func() {
-		file_file_file_proto_rawDescData = protoimpl.X.CompressGZIP(file_file_file_proto_rawDescData)
+func file_github_com_openconfig_gnoi_file_file_proto_rawDescGZIP() []byte {
+	file_github_com_openconfig_gnoi_file_file_proto_rawDescOnce.Do(func() {
+		file_github_com_openconfig_gnoi_file_file_proto_rawDescData = protoimpl.X.CompressGZIP(file_github_com_openconfig_gnoi_file_file_proto_rawDescData)
 	})
-	return file_file_file_proto_rawDescData
+	return file_github_com_openconfig_gnoi_file_file_proto_rawDescData
 }
 
-var file_file_file_proto_msgTypes = make([]protoimpl.MessageInfo, 12)
-var file_file_file_proto_goTypes = []interface{}{
+var file_github_com_openconfig_gnoi_file_file_proto_msgTypes = make([]protoimpl.MessageInfo, 12)
+var file_github_com_openconfig_gnoi_file_file_proto_goTypes = []any{
 	(*PutRequest)(nil),               // 0: gnoi.file.PutRequest
 	(*PutResponse)(nil),              // 1: gnoi.file.PutResponse
 	(*GetRequest)(nil),               // 2: gnoi.file.GetRequest
@@ -821,7 +799,7 @@ var file_file_file_proto_goTypes = []interface{}{
 	(*types.HashType)(nil),           // 12: gnoi.types.HashType
 	(*common.RemoteDownload)(nil),    // 13: gnoi.common.RemoteDownload
 }
-var file_file_file_proto_depIdxs = []int32{
+var file_github_com_openconfig_gnoi_file_file_proto_depIdxs = []int32{
 	11, // 0: gnoi.file.PutRequest.open:type_name -> gnoi.file.PutRequest.Details
 	12, // 1: gnoi.file.PutRequest.hash:type_name -> gnoi.types.HashType
 	12, // 2: gnoi.file.GetResponse.hash:type_name -> gnoi.types.HashType
@@ -845,163 +823,17 @@ var file_file_file_proto_depIdxs = []int32{
 	0,  // [0:6] is the sub-list for field type_name
 }
 
-func init() { file_file_file_proto_init() }
-func file_file_file_proto_init() {
-	if File_file_file_proto != nil {
+func init() { file_github_com_openconfig_gnoi_file_file_proto_init() }
+func file_github_com_openconfig_gnoi_file_file_proto_init() {
+	if File_github_com_openconfig_gnoi_file_file_proto != nil {
 		return
 	}
-	if !protoimpl.UnsafeEnabled {
-		file_file_file_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*PutRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_file_file_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*PutResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_file_file_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*GetRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_file_file_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*GetResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_file_file_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*TransferToRemoteRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_file_file_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*TransferToRemoteResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_file_file_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*StatRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_file_file_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*StatResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_file_file_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*StatInfo); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_file_file_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*RemoveRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_file_file_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*RemoveResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_file_file_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*PutRequest_Details); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-	}
-	file_file_file_proto_msgTypes[0].OneofWrappers = []interface{}{
+	file_github_com_openconfig_gnoi_file_file_proto_msgTypes[0].OneofWrappers = []any{
 		(*PutRequest_Open)(nil),
 		(*PutRequest_Contents)(nil),
 		(*PutRequest_Hash)(nil),
 	}
-	file_file_file_proto_msgTypes[3].OneofWrappers = []interface{}{
+	file_github_com_openconfig_gnoi_file_file_proto_msgTypes[3].OneofWrappers = []any{
 		(*GetResponse_Contents)(nil),
 		(*GetResponse_Hash)(nil),
 	}
@@ -1009,18 +841,18 @@ func file_file_file_proto_init() {
 	out := protoimpl.TypeBuilder{
 		File: protoimpl.DescBuilder{
 			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
-			RawDescriptor: file_file_file_proto_rawDesc,
+			RawDescriptor: file_github_com_openconfig_gnoi_file_file_proto_rawDesc,
 			NumEnums:      0,
 			NumMessages:   12,
 			NumExtensions: 0,
 			NumServices:   1,
 		},
-		GoTypes:           file_file_file_proto_goTypes,
-		DependencyIndexes: file_file_file_proto_depIdxs,
-		MessageInfos:      file_file_file_proto_msgTypes,
+		GoTypes:           file_github_com_openconfig_gnoi_file_file_proto_goTypes,
+		DependencyIndexes: file_github_com_openconfig_gnoi_file_file_proto_depIdxs,
+		MessageInfos:      file_github_com_openconfig_gnoi_file_file_proto_msgTypes,
 	}.Build()
-	File_file_file_proto = out.File
-	file_file_file_proto_rawDesc = nil
-	file_file_file_proto_goTypes = nil
-	file_file_file_proto_depIdxs = nil
+	File_github_com_openconfig_gnoi_file_file_proto = out.File
+	file_github_com_openconfig_gnoi_file_file_proto_rawDesc = nil
+	file_github_com_openconfig_gnoi_file_file_proto_goTypes = nil
+	file_github_com_openconfig_gnoi_file_file_proto_depIdxs = nil
 }
diff --git a/file/file_grpc.pb.go b/file/file_grpc.pb.go
index bbcb5a74..646b0697 100644
--- a/file/file_grpc.pb.go
+++ b/file/file_grpc.pb.go
@@ -1,8 +1,8 @@
 // Code generated by protoc-gen-go-grpc. DO NOT EDIT.
 // versions:
-// - protoc-gen-go-grpc v1.2.0
-// - protoc             v3.21.10
-// source: file/file.proto
+// - protoc-gen-go-grpc v1.5.1
+// - protoc             v5.29.3
+// source: github.com/openconfig/gnoi/file/file.proto
 
 package file
 
@@ -15,16 +15,24 @@ import (
 
 // This is a compile-time assertion to ensure that this generated file
 // is compatible with the grpc package it is being compiled against.
-// Requires gRPC-Go v1.32.0 or later.
-const _ = grpc.SupportPackageIsVersion7
+// Requires gRPC-Go v1.64.0 or later.
+const _ = grpc.SupportPackageIsVersion9
+
+const (
+	File_Get_FullMethodName              = "/gnoi.file.File/Get"
+	File_TransferToRemote_FullMethodName = "/gnoi.file.File/TransferToRemote"
+	File_Put_FullMethodName              = "/gnoi.file.File/Put"
+	File_Stat_FullMethodName             = "/gnoi.file.File/Stat"
+	File_Remove_FullMethodName           = "/gnoi.file.File/Remove"
+)
 
 // FileClient is the client API for File service.
 //
 // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.
 type FileClient interface {
-	Get(ctx context.Context, in *GetRequest, opts ...grpc.CallOption) (File_GetClient, error)
+	Get(ctx context.Context, in *GetRequest, opts ...grpc.CallOption) (grpc.ServerStreamingClient[GetResponse], error)
 	TransferToRemote(ctx context.Context, in *TransferToRemoteRequest, opts ...grpc.CallOption) (*TransferToRemoteResponse, error)
-	Put(ctx context.Context, opts ...grpc.CallOption) (File_PutClient, error)
+	Put(ctx context.Context, opts ...grpc.CallOption) (grpc.ClientStreamingClient[PutRequest, PutResponse], error)
 	Stat(ctx context.Context, in *StatRequest, opts ...grpc.CallOption) (*StatResponse, error)
 	Remove(ctx context.Context, in *RemoveRequest, opts ...grpc.CallOption) (*RemoveResponse, error)
 }
@@ -37,12 +45,13 @@ func NewFileClient(cc grpc.ClientConnInterface) FileClient {
 	return &fileClient{cc}
 }
 
-func (c *fileClient) Get(ctx context.Context, in *GetRequest, opts ...grpc.CallOption) (File_GetClient, error) {
-	stream, err := c.cc.NewStream(ctx, &File_ServiceDesc.Streams[0], "/gnoi.file.File/Get", opts...)
+func (c *fileClient) Get(ctx context.Context, in *GetRequest, opts ...grpc.CallOption) (grpc.ServerStreamingClient[GetResponse], error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	stream, err := c.cc.NewStream(ctx, &File_ServiceDesc.Streams[0], File_Get_FullMethodName, cOpts...)
 	if err != nil {
 		return nil, err
 	}
-	x := &fileGetClient{stream}
+	x := &grpc.GenericClientStream[GetRequest, GetResponse]{ClientStream: stream}
 	if err := x.ClientStream.SendMsg(in); err != nil {
 		return nil, err
 	}
@@ -52,69 +61,36 @@ func (c *fileClient) Get(ctx context.Context, in *GetRequest, opts ...grpc.CallO
 	return x, nil
 }
 
-type File_GetClient interface {
-	Recv() (*GetResponse, error)
-	grpc.ClientStream
-}
-
-type fileGetClient struct {
-	grpc.ClientStream
-}
-
-func (x *fileGetClient) Recv() (*GetResponse, error) {
-	m := new(GetResponse)
-	if err := x.ClientStream.RecvMsg(m); err != nil {
-		return nil, err
-	}
-	return m, nil
-}
+// This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name.
+type File_GetClient = grpc.ServerStreamingClient[GetResponse]
 
 func (c *fileClient) TransferToRemote(ctx context.Context, in *TransferToRemoteRequest, opts ...grpc.CallOption) (*TransferToRemoteResponse, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
 	out := new(TransferToRemoteResponse)
-	err := c.cc.Invoke(ctx, "/gnoi.file.File/TransferToRemote", in, out, opts...)
+	err := c.cc.Invoke(ctx, File_TransferToRemote_FullMethodName, in, out, cOpts...)
 	if err != nil {
 		return nil, err
 	}
 	return out, nil
 }
 
-func (c *fileClient) Put(ctx context.Context, opts ...grpc.CallOption) (File_PutClient, error) {
-	stream, err := c.cc.NewStream(ctx, &File_ServiceDesc.Streams[1], "/gnoi.file.File/Put", opts...)
+func (c *fileClient) Put(ctx context.Context, opts ...grpc.CallOption) (grpc.ClientStreamingClient[PutRequest, PutResponse], error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	stream, err := c.cc.NewStream(ctx, &File_ServiceDesc.Streams[1], File_Put_FullMethodName, cOpts...)
 	if err != nil {
 		return nil, err
 	}
-	x := &filePutClient{stream}
+	x := &grpc.GenericClientStream[PutRequest, PutResponse]{ClientStream: stream}
 	return x, nil
 }
 
-type File_PutClient interface {
-	Send(*PutRequest) error
-	CloseAndRecv() (*PutResponse, error)
-	grpc.ClientStream
-}
-
-type filePutClient struct {
-	grpc.ClientStream
-}
-
-func (x *filePutClient) Send(m *PutRequest) error {
-	return x.ClientStream.SendMsg(m)
-}
-
-func (x *filePutClient) CloseAndRecv() (*PutResponse, error) {
-	if err := x.ClientStream.CloseSend(); err != nil {
-		return nil, err
-	}
-	m := new(PutResponse)
-	if err := x.ClientStream.RecvMsg(m); err != nil {
-		return nil, err
-	}
-	return m, nil
-}
+// This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name.
+type File_PutClient = grpc.ClientStreamingClient[PutRequest, PutResponse]
 
 func (c *fileClient) Stat(ctx context.Context, in *StatRequest, opts ...grpc.CallOption) (*StatResponse, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
 	out := new(StatResponse)
-	err := c.cc.Invoke(ctx, "/gnoi.file.File/Stat", in, out, opts...)
+	err := c.cc.Invoke(ctx, File_Stat_FullMethodName, in, out, cOpts...)
 	if err != nil {
 		return nil, err
 	}
@@ -122,8 +98,9 @@ func (c *fileClient) Stat(ctx context.Context, in *StatRequest, opts ...grpc.Cal
 }
 
 func (c *fileClient) Remove(ctx context.Context, in *RemoveRequest, opts ...grpc.CallOption) (*RemoveResponse, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
 	out := new(RemoveResponse)
-	err := c.cc.Invoke(ctx, "/gnoi.file.File/Remove", in, out, opts...)
+	err := c.cc.Invoke(ctx, File_Remove_FullMethodName, in, out, cOpts...)
 	if err != nil {
 		return nil, err
 	}
@@ -131,28 +108,30 @@ func (c *fileClient) Remove(ctx context.Context, in *RemoveRequest, opts ...grpc
 }
 
 // FileServer is the server API for File service.
-// All implementations must embed UnimplementedFileServer
-// for forward compatibility
+// All implementations should embed UnimplementedFileServer
+// for forward compatibility.
 type FileServer interface {
-	Get(*GetRequest, File_GetServer) error
+	Get(*GetRequest, grpc.ServerStreamingServer[GetResponse]) error
 	TransferToRemote(context.Context, *TransferToRemoteRequest) (*TransferToRemoteResponse, error)
-	Put(File_PutServer) error
+	Put(grpc.ClientStreamingServer[PutRequest, PutResponse]) error
 	Stat(context.Context, *StatRequest) (*StatResponse, error)
 	Remove(context.Context, *RemoveRequest) (*RemoveResponse, error)
-	mustEmbedUnimplementedFileServer()
 }
 
-// UnimplementedFileServer must be embedded to have forward compatible implementations.
-type UnimplementedFileServer struct {
-}
+// UnimplementedFileServer should be embedded to have
+// forward compatible implementations.
+//
+// NOTE: this should be embedded by value instead of pointer to avoid a nil
+// pointer dereference when methods are called.
+type UnimplementedFileServer struct{}
 
-func (UnimplementedFileServer) Get(*GetRequest, File_GetServer) error {
+func (UnimplementedFileServer) Get(*GetRequest, grpc.ServerStreamingServer[GetResponse]) error {
 	return status.Errorf(codes.Unimplemented, "method Get not implemented")
 }
 func (UnimplementedFileServer) TransferToRemote(context.Context, *TransferToRemoteRequest) (*TransferToRemoteResponse, error) {
 	return nil, status.Errorf(codes.Unimplemented, "method TransferToRemote not implemented")
 }
-func (UnimplementedFileServer) Put(File_PutServer) error {
+func (UnimplementedFileServer) Put(grpc.ClientStreamingServer[PutRequest, PutResponse]) error {
 	return status.Errorf(codes.Unimplemented, "method Put not implemented")
 }
 func (UnimplementedFileServer) Stat(context.Context, *StatRequest) (*StatResponse, error) {
@@ -161,7 +140,7 @@ func (UnimplementedFileServer) Stat(context.Context, *StatRequest) (*StatRespons
 func (UnimplementedFileServer) Remove(context.Context, *RemoveRequest) (*RemoveResponse, error) {
 	return nil, status.Errorf(codes.Unimplemented, "method Remove not implemented")
 }
-func (UnimplementedFileServer) mustEmbedUnimplementedFileServer() {}
+func (UnimplementedFileServer) testEmbeddedByValue() {}
 
 // UnsafeFileServer may be embedded to opt out of forward compatibility for this service.
 // Use of this interface is not recommended, as added methods to FileServer will
@@ -171,6 +150,13 @@ type UnsafeFileServer interface {
 }
 
 func RegisterFileServer(s grpc.ServiceRegistrar, srv FileServer) {
+	// If the following call pancis, it indicates UnimplementedFileServer was
+	// embedded by pointer and is nil.  This will cause panics if an
+	// unimplemented method is ever invoked, so we test this at initialization
+	// time to prevent it from happening at runtime later due to I/O.
+	if t, ok := srv.(interface{ testEmbeddedByValue() }); ok {
+		t.testEmbeddedByValue()
+	}
 	s.RegisterService(&File_ServiceDesc, srv)
 }
 
@@ -179,21 +165,11 @@ func _File_Get_Handler(srv interface{}, stream grpc.ServerStream) error {
 	if err := stream.RecvMsg(m); err != nil {
 		return err
 	}
-	return srv.(FileServer).Get(m, &fileGetServer{stream})
+	return srv.(FileServer).Get(m, &grpc.GenericServerStream[GetRequest, GetResponse]{ServerStream: stream})
 }
 
-type File_GetServer interface {
-	Send(*GetResponse) error
-	grpc.ServerStream
-}
-
-type fileGetServer struct {
-	grpc.ServerStream
-}
-
-func (x *fileGetServer) Send(m *GetResponse) error {
-	return x.ServerStream.SendMsg(m)
-}
+// This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name.
+type File_GetServer = grpc.ServerStreamingServer[GetResponse]
 
 func _File_TransferToRemote_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
 	in := new(TransferToRemoteRequest)
@@ -205,7 +181,7 @@ func _File_TransferToRemote_Handler(srv interface{}, ctx context.Context, dec fu
 	}
 	info := &grpc.UnaryServerInfo{
 		Server:     srv,
-		FullMethod: "/gnoi.file.File/TransferToRemote",
+		FullMethod: File_TransferToRemote_FullMethodName,
 	}
 	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
 		return srv.(FileServer).TransferToRemote(ctx, req.(*TransferToRemoteRequest))
@@ -214,30 +190,11 @@ func _File_TransferToRemote_Handler(srv interface{}, ctx context.Context, dec fu
 }
 
 func _File_Put_Handler(srv interface{}, stream grpc.ServerStream) error {
-	return srv.(FileServer).Put(&filePutServer{stream})
+	return srv.(FileServer).Put(&grpc.GenericServerStream[PutRequest, PutResponse]{ServerStream: stream})
 }
 
-type File_PutServer interface {
-	SendAndClose(*PutResponse) error
-	Recv() (*PutRequest, error)
-	grpc.ServerStream
-}
-
-type filePutServer struct {
-	grpc.ServerStream
-}
-
-func (x *filePutServer) SendAndClose(m *PutResponse) error {
-	return x.ServerStream.SendMsg(m)
-}
-
-func (x *filePutServer) Recv() (*PutRequest, error) {
-	m := new(PutRequest)
-	if err := x.ServerStream.RecvMsg(m); err != nil {
-		return nil, err
-	}
-	return m, nil
-}
+// This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name.
+type File_PutServer = grpc.ClientStreamingServer[PutRequest, PutResponse]
 
 func _File_Stat_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
 	in := new(StatRequest)
@@ -249,7 +206,7 @@ func _File_Stat_Handler(srv interface{}, ctx context.Context, dec func(interface
 	}
 	info := &grpc.UnaryServerInfo{
 		Server:     srv,
-		FullMethod: "/gnoi.file.File/Stat",
+		FullMethod: File_Stat_FullMethodName,
 	}
 	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
 		return srv.(FileServer).Stat(ctx, req.(*StatRequest))
@@ -267,7 +224,7 @@ func _File_Remove_Handler(srv interface{}, ctx context.Context, dec func(interfa
 	}
 	info := &grpc.UnaryServerInfo{
 		Server:     srv,
-		FullMethod: "/gnoi.file.File/Remove",
+		FullMethod: File_Remove_FullMethodName,
 	}
 	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
 		return srv.(FileServer).Remove(ctx, req.(*RemoveRequest))
@@ -307,5 +264,5 @@ var File_ServiceDesc = grpc.ServiceDesc{
 			ClientStreams: true,
 		},
 	},
-	Metadata: "file/file.proto",
+	Metadata: "github.com/openconfig/gnoi/file/file.proto",
 }
diff --git a/gnoi_deps.bzl b/gnoi_deps.bzl
index dbdf1bd9..90a0acf7 100644
--- a/gnoi_deps.bzl
+++ b/gnoi_deps.bzl
@@ -14,463 +14,92 @@
 #
 """Dependencies to build gnoi."""
 
-load("@bazel_gazelle//:deps.bzl", "go_repository")
 load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
 
 def gnoi_deps():
     """Declare the third-party dependencies necessary to build gnoi"""
-    if not native.existing_rule("rules_proto_grpc"):
+    if not native.existing_rule("bazel_features"):
         http_archive(
-            name = "rules_proto_grpc",
-            sha256 = "c0d718f4d892c524025504e67a5bfe83360b3a982e654bc71fed7514eb8ac8ad",
-            strip_prefix = "rules_proto_grpc-4.6.0",
-            urls = ["https://github.com/rules-proto-grpc/rules_proto_grpc/archive/4.6.0.tar.gz"],
+            name = "bazel_features",
+            sha256 = "af3d4fb1cf4f25942cb4a933b1ad93a0ea9fe9ee70c2af7f369fb72a67c266e5",
+            strip_prefix = "bazel_features-1.21.0",
+            url = "https://github.com/bazel-contrib/bazel_features/releases/download/v1.21.0/bazel_features-v1.21.0.tar.gz",
+        )
+    if not native.existing_rule("bazel_gazelle"):
+        http_archive(
+            name = "bazel_gazelle",
+            sha256 = "aefbf2fc7c7616c9ed73aa3d51c77100724d5b3ce66cfa16406e8c13e87c8b52",
+            urls = [
+                "https://mirror.bazel.build/github.com/bazelbuild/bazel-gazelle/releases/download/v0.41.0/bazel-gazelle-v0.41.0.tar.gz",
+                "https://github.com/bazelbuild/bazel-gazelle/releases/download/v0.41.0/bazel-gazelle-v0.41.0.tar.gz",
+            ],
         )
     if not native.existing_rule("com_github_grpc_grpc"):
         http_archive(
             name = "com_github_grpc_grpc",
-            url = "https://github.com/grpc/grpc/archive/refs/tags/v1.61.1.tar.gz",
-            strip_prefix = "grpc-1.61.1",
-            sha256 = "b74ce7d26fe187970d1d8e2c06a5d3391122f7bc1fdce569aff5e435fb8fe780",
+            url = "https://github.com/grpc/grpc/archive/refs/tags/v1.69.0.tar.gz",
+            strip_prefix = "grpc-1.69.0",
+            sha256 = "cd256d91781911d46a57506978b3979bfee45d5086a1b6668a3ae19c5e77f8dc",
+        )
+    if not native.existing_rule("com_google_googleapis"):
+        http_archive(
+            name = "com_google_googleapis",
+            sha256 = "3e8a622f6e72e1660c16ae846af6dab0b3eb696fbdf0172e57b9cdd6752378e7",
+            strip_prefix = "googleapis-fe8ba054ad4f7eca946c2d14a63c3f07c0b586a0",
+            urls = ["https://github.com/googleapis/googleapis/archive/fe8ba054ad4f7eca946c2d14a63c3f07c0b586a0.zip"],
         )
     if not native.existing_rule("com_google_protobuf"):
         http_archive(
             name = "com_google_protobuf",
-            url = "https://github.com/protocolbuffers/protobuf/releases/download/v4.25.2/protobuf-all-25.2.tar.gz",
-            strip_prefix = "protobuf-",
-            sha256 = "ba0650be1b169d24908eeddbe6107f011d8df0da5b1a5a4449a913b10e578faf",
-        )
-    if not native.existing_rule("com_github_openconfig_bootz"):
-        go_repository(
-            name = "com_github_openconfig_bootz",
-            importpath = "github.com/openconfig/bootz",
-            sum = "h1:Q0mThGmZiX/kht+crar6FtLVxqdjUS/deMnpcNX+F7c=",
-            version = "v0.3.1",
+            url = "https://github.com/protocolbuffers/protobuf/archive/refs/tags/v29.3.zip",
+            strip_prefix = "protobuf-29.3",
+            sha256 = "85803e01f347141e16a2f770213a496f808fff9f0138c7c0e0c9dfa708b0da92",
+            repo_mapping = {
+                "@proto_bazel_features": "@bazel_features",
+            },
         )
-    if not native.existing_rule("com_github_openconfig_gnmi"):
-        go_repository(
-            name = "com_github_openconfig_gnmi",
-            build_directives = [
-                "gazelle:proto_import_prefix github.com/openconfig/gnmi",
+    if not native.existing_rule("bazel_skylib"):
+        http_archive(
+            name = "bazel_skylib",
+            urls = [
+                "https://mirror.bazel.build/github.com/bazelbuild/bazel-skylib/releases/download/1.7.1/bazel-skylib-1.7.1.tar.gz",
+                "https://github.com/bazelbuild/bazel-skylib/releases/download/1.7.1/bazel-skylib-1.7.1.tar.gz",
             ],
-            build_file_generation = "on",
-            importpath = "github.com/openconfig/gnmi",
-            sum = "h1:H7pLIb/o3xObu3+x0Fv9DCK7TH3FUh7mNwbYe+34hFw=",
-            version = "v0.11.0",
+            sha256 = "bc283cdfcd526a52c3201279cda4bc298652efa898b10b4db0837dc51652756f",
         )
-    if not native.existing_rule("com_github_openconfig_gnsi"):
-        go_repository(
-            name = "com_github_openconfig_gnsi",
-            importpath = "github.com/openconfig/gnsi",
-            sum = "h1:PfQa9Gy0lH1sHqA2L3Gj2fEh2zPMbWxMmIRQv2Nk1T8=",
-            version = "v1.6.0",
+    if not native.existing_rule("io_bazel_rules_go"):
+        http_archive(
+            name = "io_bazel_rules_go",
+            sha256 = "0936c9bc3c4321ee372cb8f66dd972d368cb940ed01a9ba9fd7debcf0093f09b",
+            urls = [
+                "https://github.com/bazelbuild/rules_go/releases/download/v0.51.0/rules_go-v0.51.0.zip",
+            ],
         )
-    if not native.existing_rule("com_github_kylelemons_godebug"):
-        go_repository(
-            name = "com_github_kylelemons_godebug",
-            importpath = "github.com/kylelemons/godebug",
-            sum = "h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc=",
-            version = "v1.1.0",
+    if not native.existing_rule("rules_proto"):
+        http_archive(
+            name = "rules_proto",
+            sha256 = "0e5c64a2599a6e26c6a03d6162242d231ecc0de219534c38cb4402171def21e8",
+            strip_prefix = "rules_proto-7.0.2",
+            url = "https://github.com/bazelbuild/rules_proto/releases/download/7.0.2/rules_proto-7.0.2.tar.gz",
         )
-    if not native.existing_rule("com_github_openconfig_goyang"):
-        go_repository(
-            name = "com_github_openconfig_goyang",
-            importpath = "github.com/openconfig/goyang",
-            sum = "h1:Z95LskKYk6nBYOxHtmJCu3YEKlr3pJLWG1tYAaNh3yU=",
-            version = "v0.2.9",
+    if not native.existing_rule("openconfig_bootz"):
+        http_archive(
+            name = "openconfig_bootz",
+            sha256 = "45b2e66654cad3564358d66c46aa06234848d194c124ab6ce7308d89eaf4789c",
+            strip_prefix = "bootz-145e9a838f6ae8ab3210848a0043e78fceda29a3",
+            url = "https://github.com/bstoll/bootz/archive/145e9a838f6ae8ab3210848a0043e78fceda29a3.zip",
         )
-    if not native.existing_rule("com_github_openconfig_ygot"):
-        go_repository(
-            name = "com_github_openconfig_ygot",
-            build_directives = [
-                "gazelle:proto_import_prefix github.com/openconfig/ygot",
-            ],
-            importpath = "github.com/openconfig/ygot",
-            sum = "h1:EKaeFhx1WwTZGsYeqipyh1mfF8y+z2StaXZtwVnXklk=",
-            version = "v0.13.1",
+    if not native.existing_rule("openconfig_gnmi"):
+        http_archive(
+            name = "openconfig_gnmi",
+            sha256 = "5930b29b7f0b5aeec4502d5b2b1b82bb97c218b2752422cfe9a0462e39aa8370",
+            strip_prefix = "gnmi-66ccc5027ea9b69376978a6eeb079ba5907249b7",
+            url = "https://github.com/bstoll/gnmi/archive/66ccc5027ea9b69376978a6eeb079ba5907249b7.zip",
         )
-    go_repository(
-        name = "com_github_cenkalti_backoff_v4",
-        importpath = "github.com/cenkalti/backoff/v4",
-        sum = "h1:G2HAfAmvm/GcKan2oOQpBXOd2tT2G57ZnZGWa1PxPBQ=",
-        version = "v4.1.1",
-    )
-    go_repository(
-        name = "com_github_census_instrumentation_opencensus_proto",
-        importpath = "github.com/census-instrumentation/opencensus-proto",
-        sum = "h1:iKLQ0xPNFxR/2hzXZMrBo8f1j86j5WHzznCCQxV/b8g=",
-        version = "v0.4.1",
-    )
-    go_repository(
-        name = "com_github_cespare_xxhash_v2",
-        importpath = "github.com/cespare/xxhash/v2",
-        sum = "h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs=",
-        version = "v2.3.0",
-    )
-    go_repository(
-        name = "com_github_chappjc_logrus_prefix",
-        importpath = "github.com/chappjc/logrus-prefix",
-        sum = "h1:aZTKxMminKeQWHtzJBbV8TttfTxzdJ+7iEJFE6FmUzg=",
-        version = "v0.0.0-20180227015900-3a1d64819adb",
-    )
-    go_repository(
-        name = "com_github_cncf_xds_go",
-        importpath = "github.com/cncf/xds/go",
-        sum = "h1:ga8SEFjZ60pxLcmhnThWgvH2wg8376yUJmPhEH4H3kw=",
-        version = "v0.0.0-20240423153145-555b57ec207b",
-    )
-    go_repository(
-        name = "com_github_coredhcp_coredhcp",
-        importpath = "github.com/coredhcp/coredhcp",
-        sum = "h1:8bGxpjqPoic463Lr0Uqnnz7P/xSZCPKDkxkjeywS79k=",
-        version = "v0.0.0-20230808195049-3e32ddb5ac86",
-    )
-    go_repository(
-        name = "com_github_envoyproxy_go_control_plane",
-        importpath = "github.com/envoyproxy/go-control-plane",
-        sum = "h1:4X+VP1GHd1Mhj6IB5mMeGbLCleqxjletLK6K0rbxyZI=",
-        version = "v0.12.0",
-    )
-    go_repository(
-        name = "com_github_envoyproxy_protoc_gen_validate",
-        importpath = "github.com/envoyproxy/protoc-gen-validate",
-        sum = "h1:gVPz/FMfvh57HdSJQyvBtF00j8JU4zdyUgIUNhlgg0A=",
-        version = "v1.0.4",
-    )
-    go_repository(
-        name = "com_github_fsnotify_fsnotify",
-        importpath = "github.com/fsnotify/fsnotify",
-        sum = "h1:n+5WquG0fcWoWp6xPWfHdbskMCQaFnG6PfBrh1Ky4HY=",
-        version = "v1.6.0",
-    )
-    go_repository(
-        name = "com_github_golang_glog",
-        importpath = "github.com/golang/glog",
-        sum = "h1:OptwRhECazUx5ix5TTWC3EZhsZEHWcYWY4FQHTIubm4=",
-        version = "v1.2.1",
-    )
-    go_repository(
-        name = "com_github_golang_protobuf",
-        importpath = "github.com/golang/protobuf",
-        sum = "h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek=",
-        version = "v1.5.4",
-    )
-    go_repository(
-        name = "com_github_google_go_cmp",
-        importpath = "github.com/google/go-cmp",
-        sum = "h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI=",
-        version = "v0.6.0",
-    )
-    go_repository(
-        name = "com_github_google_gopacket",
-        importpath = "github.com/google/gopacket",
-        sum = "h1:ves8RnFZPGiFnTS0uPQStjwru6uO6h+nlr9j6fL7kF8=",
-        version = "v1.1.19",
-    )
-    go_repository(
-        name = "com_github_google_uuid",
-        importpath = "github.com/google/uuid",
-        sum = "h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0=",
-        version = "v1.6.0",
-    )
-    go_repository(
-        name = "com_github_h_fam_errdiff",
-        importpath = "github.com/h-fam/errdiff",
-        sum = "h1:rPsW4ob2fMOIulwTEoZXaaUIuud7XUudw5SLKTZj3Ss=",
-        version = "v1.0.2",
-    )
-    go_repository(
-        name = "com_github_hashicorp_hcl",
-        importpath = "github.com/hashicorp/hcl",
-        sum = "h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4=",
-        version = "v1.0.0",
-    )
-    go_repository(
-        name = "com_github_insomniacslk_dhcp",
-        importpath = "github.com/insomniacslk/dhcp",
-        sum = "h1:S33o3djA1nPRd+d/bf7jbbXytXuK/EoXow7+aa76grQ=",
-        version = "v0.0.0-20230908212754-65c27093e38a",
-    )
-    go_repository(
-        name = "com_github_josharian_native",
-        importpath = "github.com/josharian/native",
-        sum = "h1:uuaP0hAbW7Y4l0ZRQ6C9zfb7Mg1mbFKry/xzDAfmtLA=",
-        version = "v1.1.0",
-    )
-    go_repository(
-        name = "com_github_kylelemons_godebug",
-        importpath = "github.com/kylelemons/godebug",
-        sum = "h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc=",
-        version = "v1.1.0",
-    )
-    go_repository(
-        name = "com_github_magiconair_properties",
-        importpath = "github.com/magiconair/properties",
-        sum = "h1:IeQXZAiQcpL9mgcAe1Nu6cX9LLw6ExEHKjN0VQdvPDY=",
-        version = "v1.8.7",
-    )
-    go_repository(
-        name = "com_github_mattn_go_colorable",
-        importpath = "github.com/mattn/go-colorable",
-        sum = "h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA=",
-        version = "v0.1.13",
-    )
-    go_repository(
-        name = "com_github_mattn_go_isatty",
-        importpath = "github.com/mattn/go-isatty",
-        sum = "h1:JITubQf0MOLdlGRuRq+jtsDlekdYPia9ZFsB8h/APPA=",
-        version = "v0.0.19",
-    )
-    go_repository(
-        name = "com_github_mgutz_ansi",
-        importpath = "github.com/mgutz/ansi",
-        sum = "h1:5PJl274Y63IEHC+7izoQE9x6ikvDFZS2mDVS3drnohI=",
-        version = "v0.0.0-20200706080929-d51e80ef957d",
-    )
-    go_repository(
-        name = "com_github_mitchellh_go_wordwrap",
-        importpath = "github.com/mitchellh/go-wordwrap",
-        sum = "h1:TLuKupo69TCn6TQSyGxwI1EblZZEsQ0vMlAFQflz0v0=",
-        version = "v1.0.1",
-    )
-    go_repository(
-        name = "com_github_mitchellh_mapstructure",
-        importpath = "github.com/mitchellh/mapstructure",
-        sum = "h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY=",
-        version = "v1.5.0",
-    )
-    go_repository(
-        name = "com_github_nxadm_tail",
-        importpath = "github.com/nxadm/tail",
-        sum = "h1:nPr65rt6Y5JFSKQO7qToXr7pePgD6Gwiw05lkbyAQTE=",
-        version = "v1.4.8",
-    )
-    go_repository(
-        name = "com_github_openconfig_bootz",
-        importpath = "github.com/openconfig/bootz",
-        sum = "h1:Q0mThGmZiX/kht+crar6FtLVxqdjUS/deMnpcNX+F7c=",
-        version = "v0.3.1",
-    )
-    go_repository(
-        name = "com_github_openconfig_goyang",
-        importpath = "github.com/openconfig/goyang",
-        sum = "h1:5MyIz4bN4vpH6aHDN339bkWXAjTkhg1ZKMhR4aIi5Rk=",
-        version = "v0.0.0-20200115183954-d0a48929f0ea",
-    )
-    go_repository(
-        name = "com_github_openconfig_grpctunnel",
-        importpath = "github.com/openconfig/grpctunnel",
-        sum = "h1:t6SvvdfWCMlw0XPlsdxO8EgO+q/fXnTevDjdYREKFwU=",
-        version = "v0.0.0-20220819142823-6f5422b8ca70",
-    )
-    go_repository(
-        name = "com_github_openconfig_ygot",
-        importpath = "github.com/openconfig/ygot",
-        sum = "h1:kJJFPBrczC6TDnz/HMlFTJEdW2CuyUftV13XveIukg0=",
-        version = "v0.6.0",
-    )
-    go_repository(
-        name = "com_github_pelletier_go_toml_v2",
-        importpath = "github.com/pelletier/go-toml/v2",
-        sum = "h1:uH2qQXheeefCCkuBBSLi7jCiSmj3VRh2+Goq2N7Xxu0=",
-        version = "v2.0.9",
-    )
-    go_repository(
-        name = "com_github_pierrec_lz4_v4",
-        importpath = "github.com/pierrec/lz4/v4",
-        sum = "h1:xaKrnTkyoqfh1YItXl56+6KJNVYWlEEPuAQW9xsplYQ=",
-        version = "v4.1.18",
-    )
-    go_repository(
-        name = "com_github_protocolbuffers_txtpbfmt",
-        importpath = "github.com/protocolbuffers/txtpbfmt",
-        sum = "h1:AKJY61V2SQtJ2a2PdeswKk0NM1qF77X+julRNYRxPOk=",
-        version = "v0.0.0-20220608084003-fc78c767cd6a",
-    )
-    go_repository(
-        name = "com_github_rifflock_lfshook",
-        importpath = "github.com/rifflock/lfshook",
-        sum = "h1:mZHayPoR0lNmnHyvtYjDeq0zlVHn9K/ZXoy17ylucdo=",
-        version = "v0.0.0-20180920164130-b9218ef580f5",
-    )
-    go_repository(
-        name = "com_github_sirupsen_logrus",
-        importpath = "github.com/sirupsen/logrus",
-        sum = "h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ=",
-        version = "v1.9.3",
-    )
-    go_repository(
-        name = "com_github_spf13_afero",
-        importpath = "github.com/spf13/afero",
-        sum = "h1:stMpOSZFs//0Lv29HduCmli3GUfpFoF3Y1Q/aXj/wVM=",
-        version = "v1.9.5",
-    )
-    go_repository(
-        name = "com_github_spf13_cast",
-        importpath = "github.com/spf13/cast",
-        sum = "h1:R+kOtfhWQE6TVQzY+4D7wJLBgkdVasCEFxSUBYBYIlA=",
-        version = "v1.5.1",
-    )
-    go_repository(
-        name = "com_github_spf13_jwalterweatherman",
-        importpath = "github.com/spf13/jwalterweatherman",
-        sum = "h1:ue6voC5bR5F8YxI5S67j9i582FU4Qvo2bmqnqMYADFk=",
-        version = "v1.1.0",
-    )
-    go_repository(
-        name = "com_github_spf13_pflag",
-        importpath = "github.com/spf13/pflag",
-        sum = "h1:zqmyTlQyufRC65JnImJ6H1Sf7BDj8bG31EV919NVEQc=",
-        version = "v1.0.6-0.20201009195203-85dd5c8bc61c",
-    )
-    go_repository(
-        name = "com_github_spf13_viper",
-        importpath = "github.com/spf13/viper",
-        sum = "h1:rGGH0XDZhdUOryiDWjmIvUSWpbNqisK8Wk0Vyefw8hc=",
-        version = "v1.16.0",
-    )
-    go_repository(
-        name = "com_github_subosito_gotenv",
-        importpath = "github.com/subosito/gotenv",
-        sum = "h1:X1TuBLAMDFbaTAChgCBLu3DU3UPyELpnF2jjJ2cz/S8=",
-        version = "v1.4.2",
-    )
-    go_repository(
-        name = "com_github_u_root_uio",
-        importpath = "github.com/u-root/uio",
-        sum = "h1:YcojQL98T/OO+rybuzn2+5KrD5dBwXIvYBvQ2cD3Avg=",
-        version = "v0.0.0-20230305220412-3e8cd9d6bf63",
-    )
-    go_repository(
-        name = "com_google_cloud_go_compute",
-        importpath = "cloud.google.com/go/compute",
-        sum = "h1:phWcR2eWzRJaL/kOiJwfFsPs4BaKq1j6vnpZrc1YlVg=",
-        version = "v1.24.0",
-    )
-    go_repository(
-        name = "com_google_cloud_go_compute_metadata",
-        importpath = "cloud.google.com/go/compute/metadata",
-        sum = "h1:Tz+eQXMEqDIKRsmY3cHTL6FVaynIjX2QxYC4trgAKZc=",
-        version = "v0.3.0",
-    )
-    go_repository(
-        name = "dev_cel_expr",
-        importpath = "cel.dev/expr",
-        sum = "h1:O1jzfJCQBfL5BFoYktaxwIhuttaQPsVWerH9/EEKx0w=",
-        version = "v0.15.0",
-    )
-
-    go_repository(
-        name = "in_gopkg_ini_v1",
-        importpath = "gopkg.in/ini.v1",
-        sum = "h1:Dgnx+6+nfE+IfzjUEISNeydPJh9AXNNsWbGP9KzCsOA=",
-        version = "v1.67.0",
-    )
-    go_repository(
-        name = "in_gopkg_yaml_v3",
-        importpath = "gopkg.in/yaml.v3",
-        sum = "h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=",
-        version = "v3.0.1",
-    )
-    go_repository(
-        name = "org_golang_google_appengine",
-        importpath = "google.golang.org/appengine",
-        sum = "h1:IhEN5q69dyKagZPYMSdIjS2HqprW324FRQZJcGqPAsM=",
-        version = "v1.6.8",
-    )
-    go_repository(
-        name = "org_golang_google_genproto",
-        importpath = "google.golang.org/genproto",
-        sum = "h1:KpwkzHKEF7B9Zxg18WzOa7djJ+Ha5DzthMyZYQfEn2A=",
-        version = "v0.0.0-20230410155749-daa745c078e1",
-    )
-    go_repository(
-        name = "org_golang_google_genproto_googleapis_api",
-        importpath = "google.golang.org/genproto/googleapis/api",
-        sum = "h1:7whR9kGa5LUwFtpLm2ArCEejtnxlGeLbAyjFY8sGNFw=",
-        version = "v0.0.0-20240528184218-531527333157",
-    )
-    go_repository(
-        name = "org_golang_google_genproto_googleapis_rpc",
-        importpath = "google.golang.org/genproto/googleapis/rpc",
-        sum = "h1:Zy9XzmMEflZ/MAaA7vNcoebnRAld7FsPW1EeBB7V0m8=",
-        version = "v0.0.0-20240528184218-531527333157",
-    )
-    go_repository(
-        name = "org_golang_google_grpc",
-        importpath = "google.golang.org/grpc",
-        sum = "h1:bs/cUb4lp1G5iImFFd3u5ixQzweKizoZJAwBNLR42lc=",
-        version = "v1.65.0",
-    )
-    go_repository(
-        name = "org_golang_google_protobuf",
-        importpath = "google.golang.org/protobuf",
-        sum = "h1:6xV6lTsCfpGD21XK49h7MhtcApnLqkfYgPcdHftf6hg=",
-        version = "v1.34.2",
-    )
-    go_repository(
-        name = "org_golang_x_crypto",
-        importpath = "golang.org/x/crypto",
-        sum = "h1:dIJU/v2J8Mdglj/8rJ6UUOM3Zc9zLZxVZwwxMooUSAI=",
-        version = "v0.23.0",
-    )
-    go_repository(
-        name = "org_golang_x_mod",
-        importpath = "golang.org/x/mod",
-        sum = "h1:LUYupSeNrTNCGzR/hVBk2NHZO4hXcVaW1k4Qx7rjPx8=",
-        version = "v0.8.0",
-    )
-    go_repository(
-        name = "org_golang_x_net",
-        importpath = "golang.org/x/net",
-        sum = "h1:d/OCCoBEUq33pjydKrGQhw7IlUPI2Oylr+8qLx49kac=",
-        version = "v0.25.0",
-    )
-    go_repository(
-        name = "org_golang_x_oauth2",
-        importpath = "golang.org/x/oauth2",
-        sum = "h1:4mQdhULixXKP1rwYBW0vAijoXnkTG0BLCDRzfe1idMo=",
-        version = "v0.20.0",
-    )
-    go_repository(
-        name = "org_golang_x_sync",
-        importpath = "golang.org/x/sync",
-        sum = "h1:YsImfSBoP9QPYL0xyKJPq0gcaJdG3rInoqxTWbfQu9M=",
-        version = "v0.7.0",
-    )
-    go_repository(
-        name = "org_golang_x_sys",
-        importpath = "golang.org/x/sys",
-        sum = "h1:Od9JTbYCk261bKm4M/mw7AklTlFYIa0bIp9BgSm1S8Y=",
-        version = "v0.20.0",
-    )
-    go_repository(
-        name = "org_golang_x_term",
-        importpath = "golang.org/x/term",
-        sum = "h1:VnkxpohqXaOBYJtBmEppKUG6mXpi+4O6purfc2+sMhw=",
-        version = "v0.20.0",
-    )
-    go_repository(
-        name = "org_golang_x_text",
-        importpath = "golang.org/x/text",
-        sum = "h1:h1V/4gjBv8v9cjcR6+AR5+/cIYK5N/WAgiv4xlsEtAk=",
-        version = "v0.15.0",
-    )
-    go_repository(
-        name = "org_golang_x_tools",
-        importpath = "golang.org/x/tools",
-        sum = "h1:BOw41kyTf3PuCW1pVQf8+Cyg8pMlkYB1oo9iJ6D/lKM=",
-        version = "v0.6.0",
-    )
-    go_repository(
-        name = "org_golang_x_xerrors",
-        importpath = "golang.org/x/xerrors",
-        sum = "h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE=",
-        version = "v0.0.0-20200804184101-5ec99f83aff1",
-    )
-    go_repository(
-        name = "org_mozilla_go_pkcs7",
-        importpath = "go.mozilla.org/pkcs7",
-        sum = "h1:CCriYyAfq1Br1aIYettdHZTy8mBTIPo7We18TuO/bak=",
-        version = "v0.0.0-20210826202110-33d05740a352",
-    )
+    if not native.existing_rule("openconfig_gnsi"):
+        http_archive(
+            name = "openconfig_gnsi",
+            sha256 = "9752a0fdbbc98ef7cbeb40a89074ad035b127f8f939204427a407a3569e5157e",
+            strip_prefix = "gnsi-57ecb02511c1541195a212b571ddde05bc635a0a",
+            url = "https://github.com/bstoll/gnsi/archive/57ecb02511c1541195a212b571ddde05bc635a0a.zip",
+        )
\ No newline at end of file
diff --git a/gnoi_go_deps.bzl b/gnoi_go_deps.bzl
new file mode 100644
index 00000000..f46a1872
--- /dev/null
+++ b/gnoi_go_deps.bzl
@@ -0,0 +1,471 @@
+# Copyright 2025 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#    https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+"""Go dependencies to build gnoi."""
+
+load("@bazel_gazelle//:deps.bzl", "go_repository")
+
+def gnoi_go_deps():
+    """Declare the third-party Go dependencies necessary to build gnoi"""
+    go_repository(
+        name = "com_github_cenkalti_backoff_v4",
+        importpath = "github.com/cenkalti/backoff/v4",
+        sum = "h1:G2HAfAmvm/GcKan2oOQpBXOd2tT2G57ZnZGWa1PxPBQ=",
+        version = "v4.1.1",
+    )
+    go_repository(
+        name = "com_github_census_instrumentation_opencensus_proto",
+        importpath = "github.com/census-instrumentation/opencensus-proto",
+        sum = "h1:iKLQ0xPNFxR/2hzXZMrBo8f1j86j5WHzznCCQxV/b8g=",
+        version = "v0.4.1",
+    )
+    go_repository(
+        name = "com_github_cespare_xxhash_v2",
+        importpath = "github.com/cespare/xxhash/v2",
+        sum = "h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs=",
+        version = "v2.3.0",
+    )
+    go_repository(
+        name = "com_github_chappjc_logrus_prefix",
+        importpath = "github.com/chappjc/logrus-prefix",
+        sum = "h1:aZTKxMminKeQWHtzJBbV8TttfTxzdJ+7iEJFE6FmUzg=",
+        version = "v0.0.0-20180227015900-3a1d64819adb",
+    )
+    go_repository(
+        name = "com_github_cncf_xds_go",
+        importpath = "github.com/cncf/xds/go",
+        sum = "h1:QVw89YDxXxEe+l8gU8ETbOasdwEV+avkR75ZzsVV9WI=",
+        version = "v0.0.0-20240905190251-b4127c9b8d78",
+    )
+    go_repository(
+        name = "com_github_coredhcp_coredhcp",
+        importpath = "github.com/coredhcp/coredhcp",
+        sum = "h1:8bGxpjqPoic463Lr0Uqnnz7P/xSZCPKDkxkjeywS79k=",
+        version = "v0.0.0-20230808195049-3e32ddb5ac86",
+    )
+    go_repository(
+        name = "com_github_envoyproxy_go_control_plane",
+        importpath = "github.com/envoyproxy/go-control-plane",
+        sum = "h1:vPfJZCkob6yTMEgS+0TwfTUfbHjfy/6vOJ8hUWX/uXE=",
+        version = "v0.13.1",
+    )
+    go_repository(
+        name = "com_github_envoyproxy_protoc_gen_validate",
+        importpath = "github.com/envoyproxy/protoc-gen-validate",
+        sum = "h1:tntQDh69XqOCOZsDz0lVJQez/2L6Uu2PdjCQwWCJ3bM=",
+        version = "v1.1.0",
+    )
+    go_repository(
+        name = "com_github_fsnotify_fsnotify",
+        importpath = "github.com/fsnotify/fsnotify",
+        sum = "h1:n+5WquG0fcWoWp6xPWfHdbskMCQaFnG6PfBrh1Ky4HY=",
+        version = "v1.6.0",
+    )
+    go_repository(
+        name = "com_github_go_logr_logr",
+        importpath = "github.com/go-logr/logr",
+        sum = "h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY=",
+        version = "v1.4.2",
+    )
+    go_repository(
+        name = "com_github_go_logr_stdr",
+        importpath = "github.com/go-logr/stdr",
+        sum = "h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag=",
+        version = "v1.2.2",
+    )
+    go_repository(
+        name = "com_github_golang_glog",
+        importpath = "github.com/golang/glog",
+        sum = "h1:1+mZ9upx1Dh6FmUTFR1naJ77miKiXgALjWOZ3NVFPmY=",
+        version = "v1.2.2",
+    )
+    go_repository(
+        name = "com_github_golang_protobuf",
+        importpath = "github.com/golang/protobuf",
+        sum = "h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek=",
+        version = "v1.5.4",
+    )
+    go_repository(
+        name = "com_github_google_go_cmp",
+        importpath = "github.com/google/go-cmp",
+        sum = "h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI=",
+        version = "v0.6.0",
+    )
+    go_repository(
+        name = "com_github_google_gopacket",
+        importpath = "github.com/google/gopacket",
+        sum = "h1:ves8RnFZPGiFnTS0uPQStjwru6uO6h+nlr9j6fL7kF8=",
+        version = "v1.1.19",
+    )
+    go_repository(
+        name = "com_github_google_uuid",
+        importpath = "github.com/google/uuid",
+        sum = "h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0=",
+        version = "v1.6.0",
+    )
+    go_repository(
+        name = "com_github_googlecloudplatform_opentelemetry_operations_go_detectors_gcp",
+        importpath = "github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp",
+        sum = "h1:cZpsGsWTIFKymTA0je7IIvi1O7Es7apb9CF3EQlOcfE=",
+        version = "v1.24.2",
+    )
+    go_repository(
+        name = "com_github_h_fam_errdiff",
+        importpath = "github.com/h-fam/errdiff",
+        sum = "h1:rPsW4ob2fMOIulwTEoZXaaUIuud7XUudw5SLKTZj3Ss=",
+        version = "v1.0.2",
+    )
+    go_repository(
+        name = "com_github_hashicorp_hcl",
+        importpath = "github.com/hashicorp/hcl",
+        sum = "h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4=",
+        version = "v1.0.0",
+    )
+    go_repository(
+        name = "com_github_insomniacslk_dhcp",
+        importpath = "github.com/insomniacslk/dhcp",
+        sum = "h1:S33o3djA1nPRd+d/bf7jbbXytXuK/EoXow7+aa76grQ=",
+        version = "v0.0.0-20230908212754-65c27093e38a",
+    )
+    go_repository(
+        name = "com_github_josharian_native",
+        importpath = "github.com/josharian/native",
+        sum = "h1:uuaP0hAbW7Y4l0ZRQ6C9zfb7Mg1mbFKry/xzDAfmtLA=",
+        version = "v1.1.0",
+    )
+    go_repository(
+        name = "com_github_kylelemons_godebug",
+        importpath = "github.com/kylelemons/godebug",
+        sum = "h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc=",
+        version = "v1.1.0",
+    )
+    go_repository(
+        name = "com_github_magiconair_properties",
+        importpath = "github.com/magiconair/properties",
+        sum = "h1:IeQXZAiQcpL9mgcAe1Nu6cX9LLw6ExEHKjN0VQdvPDY=",
+        version = "v1.8.7",
+    )
+    go_repository(
+        name = "com_github_mattn_go_colorable",
+        importpath = "github.com/mattn/go-colorable",
+        sum = "h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA=",
+        version = "v0.1.13",
+    )
+    go_repository(
+        name = "com_github_mattn_go_isatty",
+        importpath = "github.com/mattn/go-isatty",
+        sum = "h1:JITubQf0MOLdlGRuRq+jtsDlekdYPia9ZFsB8h/APPA=",
+        version = "v0.0.19",
+    )
+    go_repository(
+        name = "com_github_mgutz_ansi",
+        importpath = "github.com/mgutz/ansi",
+        sum = "h1:5PJl274Y63IEHC+7izoQE9x6ikvDFZS2mDVS3drnohI=",
+        version = "v0.0.0-20200706080929-d51e80ef957d",
+    )
+    go_repository(
+        name = "com_github_mitchellh_go_wordwrap",
+        importpath = "github.com/mitchellh/go-wordwrap",
+        sum = "h1:TLuKupo69TCn6TQSyGxwI1EblZZEsQ0vMlAFQflz0v0=",
+        version = "v1.0.1",
+    )
+    go_repository(
+        name = "com_github_mitchellh_mapstructure",
+        importpath = "github.com/mitchellh/mapstructure",
+        sum = "h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY=",
+        version = "v1.5.0",
+    )
+    go_repository(
+        name = "com_github_nxadm_tail",
+        importpath = "github.com/nxadm/tail",
+        sum = "h1:nPr65rt6Y5JFSKQO7qToXr7pePgD6Gwiw05lkbyAQTE=",
+        version = "v1.4.8",
+    )
+    go_repository(
+        name = "com_github_openconfig_bootz",
+        importpath = "github.com/openconfig/bootz",
+        sum = "h1:Q0mThGmZiX/kht+crar6FtLVxqdjUS/deMnpcNX+F7c=",
+        version = "v0.3.1",
+    )
+    go_repository(
+        name = "com_github_openconfig_gnmi",
+        importpath = "github.com/openconfig/gnmi",
+        sum = "h1:kQEZ/9ek3Vp2Y5IVuV2L/ba8/77TgjdXg505QXvYmg8=",
+        version = "v0.10.0",
+    )
+    go_repository(
+        name = "com_github_openconfig_gnsi",
+        importpath = "github.com/openconfig/gnsi",
+        sum = "h1:Enn5i3m6KsnHeUI+kalB9OH8fADf0oeymd/3Ze0BzME=",
+        version = "v1.7.0",
+    )
+    go_repository(
+        name = "com_github_openconfig_goyang",
+        importpath = "github.com/openconfig/goyang",
+        sum = "h1:5MyIz4bN4vpH6aHDN339bkWXAjTkhg1ZKMhR4aIi5Rk=",
+        version = "v0.0.0-20200115183954-d0a48929f0ea",
+    )
+    go_repository(
+        name = "com_github_openconfig_grpctunnel",
+        importpath = "github.com/openconfig/grpctunnel",
+        sum = "h1:t6SvvdfWCMlw0XPlsdxO8EgO+q/fXnTevDjdYREKFwU=",
+        version = "v0.0.0-20220819142823-6f5422b8ca70",
+    )
+    go_repository(
+        name = "com_github_openconfig_ygot",
+        importpath = "github.com/openconfig/ygot",
+        sum = "h1:kJJFPBrczC6TDnz/HMlFTJEdW2CuyUftV13XveIukg0=",
+        version = "v0.6.0",
+    )
+    go_repository(
+        name = "com_github_pelletier_go_toml_v2",
+        importpath = "github.com/pelletier/go-toml/v2",
+        sum = "h1:uH2qQXheeefCCkuBBSLi7jCiSmj3VRh2+Goq2N7Xxu0=",
+        version = "v2.0.9",
+    )
+    go_repository(
+        name = "com_github_pierrec_lz4_v4",
+        importpath = "github.com/pierrec/lz4/v4",
+        sum = "h1:xaKrnTkyoqfh1YItXl56+6KJNVYWlEEPuAQW9xsplYQ=",
+        version = "v4.1.18",
+    )
+    go_repository(
+        name = "com_github_planetscale_vtprotobuf",
+        importpath = "github.com/planetscale/vtprotobuf",
+        sum = "h1:GFCKgmp0tecUJ0sJuv4pzYCqS9+RGSn52M3FUwPs+uo=",
+        version = "v0.6.1-0.20240319094008-0393e58bdf10",
+    )
+    go_repository(
+        name = "com_github_protocolbuffers_txtpbfmt",
+        importpath = "github.com/protocolbuffers/txtpbfmt",
+        sum = "h1:AKJY61V2SQtJ2a2PdeswKk0NM1qF77X+julRNYRxPOk=",
+        version = "v0.0.0-20220608084003-fc78c767cd6a",
+    )
+    go_repository(
+        name = "com_github_rifflock_lfshook",
+        importpath = "github.com/rifflock/lfshook",
+        sum = "h1:mZHayPoR0lNmnHyvtYjDeq0zlVHn9K/ZXoy17ylucdo=",
+        version = "v0.0.0-20180920164130-b9218ef580f5",
+    )
+    go_repository(
+        name = "com_github_sirupsen_logrus",
+        importpath = "github.com/sirupsen/logrus",
+        sum = "h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ=",
+        version = "v1.9.3",
+    )
+    go_repository(
+        name = "com_github_spf13_afero",
+        importpath = "github.com/spf13/afero",
+        sum = "h1:stMpOSZFs//0Lv29HduCmli3GUfpFoF3Y1Q/aXj/wVM=",
+        version = "v1.9.5",
+    )
+    go_repository(
+        name = "com_github_spf13_cast",
+        importpath = "github.com/spf13/cast",
+        sum = "h1:R+kOtfhWQE6TVQzY+4D7wJLBgkdVasCEFxSUBYBYIlA=",
+        version = "v1.5.1",
+    )
+    go_repository(
+        name = "com_github_spf13_jwalterweatherman",
+        importpath = "github.com/spf13/jwalterweatherman",
+        sum = "h1:ue6voC5bR5F8YxI5S67j9i582FU4Qvo2bmqnqMYADFk=",
+        version = "v1.1.0",
+    )
+    go_repository(
+        name = "com_github_spf13_pflag",
+        importpath = "github.com/spf13/pflag",
+        sum = "h1:zqmyTlQyufRC65JnImJ6H1Sf7BDj8bG31EV919NVEQc=",
+        version = "v1.0.6-0.20201009195203-85dd5c8bc61c",
+    )
+    go_repository(
+        name = "com_github_spf13_viper",
+        importpath = "github.com/spf13/viper",
+        sum = "h1:rGGH0XDZhdUOryiDWjmIvUSWpbNqisK8Wk0Vyefw8hc=",
+        version = "v1.16.0",
+    )
+    go_repository(
+        name = "com_github_subosito_gotenv",
+        importpath = "github.com/subosito/gotenv",
+        sum = "h1:X1TuBLAMDFbaTAChgCBLu3DU3UPyELpnF2jjJ2cz/S8=",
+        version = "v1.4.2",
+    )
+    go_repository(
+        name = "com_github_u_root_uio",
+        importpath = "github.com/u-root/uio",
+        sum = "h1:YcojQL98T/OO+rybuzn2+5KrD5dBwXIvYBvQ2cD3Avg=",
+        version = "v0.0.0-20230305220412-3e8cd9d6bf63",
+    )
+    go_repository(
+        name = "com_google_cloud_go_compute_metadata",
+        importpath = "cloud.google.com/go/compute/metadata",
+        sum = "h1:UxK4uu/Tn+I3p2dYWTfiX4wva7aYlKixAHn3fyqngqo=",
+        version = "v0.5.2",
+    )
+    go_repository(
+        name = "dev_cel_expr",
+        importpath = "cel.dev/expr",
+        sum = "h1:RwRhoH17VhAu9U5CMvMhH1PDVgf0tuz9FT+24AfMLfU=",
+        version = "v0.16.2",
+    )
+    go_repository(
+        name = "in_gopkg_ini_v1",
+        importpath = "gopkg.in/ini.v1",
+        sum = "h1:Dgnx+6+nfE+IfzjUEISNeydPJh9AXNNsWbGP9KzCsOA=",
+        version = "v1.67.0",
+    )
+    go_repository(
+        name = "in_gopkg_yaml_v3",
+        importpath = "gopkg.in/yaml.v3",
+        sum = "h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=",
+        version = "v3.0.1",
+    )
+    go_repository(
+        name = "io_opentelemetry_go_contrib_detectors_gcp",
+        importpath = "go.opentelemetry.io/contrib/detectors/gcp",
+        sum = "h1:G1JQOreVrfhRkner+l4mrGxmfqYCAuy76asTDAo0xsA=",
+        version = "v1.31.0",
+    )
+    go_repository(
+        name = "io_opentelemetry_go_otel",
+        importpath = "go.opentelemetry.io/otel",
+        sum = "h1:NsJcKPIW0D0H3NgzPDHmo0WW6SptzPdqg/L1zsIm2hY=",
+        version = "v1.31.0",
+    )
+    go_repository(
+        name = "io_opentelemetry_go_otel_metric",
+        importpath = "go.opentelemetry.io/otel/metric",
+        sum = "h1:FSErL0ATQAmYHUIzSezZibnyVlft1ybhy4ozRPcF2fE=",
+        version = "v1.31.0",
+    )
+    go_repository(
+        name = "io_opentelemetry_go_otel_sdk",
+        importpath = "go.opentelemetry.io/otel/sdk",
+        sum = "h1:xLY3abVHYZ5HSfOg3l2E5LUj2Cwva5Y7yGxnSW9H5Gk=",
+        version = "v1.31.0",
+    )
+    go_repository(
+        name = "io_opentelemetry_go_otel_sdk_metric",
+        importpath = "go.opentelemetry.io/otel/sdk/metric",
+        sum = "h1:i9hxxLJF/9kkvfHppyLL55aW7iIJz4JjxTeYusH7zMc=",
+        version = "v1.31.0",
+    )
+    go_repository(
+        name = "io_opentelemetry_go_otel_trace",
+        importpath = "go.opentelemetry.io/otel/trace",
+        sum = "h1:ffjsj1aRouKewfr85U2aGagJ46+MvodynlQ1HYdmJys=",
+        version = "v1.31.0",
+    )
+    go_repository(
+        name = "org_golang_google_genproto",
+        importpath = "google.golang.org/genproto",
+        sum = "h1:KpwkzHKEF7B9Zxg18WzOa7djJ+Ha5DzthMyZYQfEn2A=",
+        version = "v0.0.0-20230410155749-daa745c078e1",
+    )
+    go_repository(
+        name = "org_golang_google_genproto_googleapis_api",
+        importpath = "google.golang.org/genproto/googleapis/api",
+        sum = "h1:fVoAXEKA4+yufmbdVYv+SE73+cPZbbbe8paLsHfkK+U=",
+        version = "v0.0.0-20241015192408-796eee8c2d53",
+    )
+    go_repository(
+        name = "org_golang_google_genproto_googleapis_rpc",
+        importpath = "google.golang.org/genproto/googleapis/rpc",
+        sum = "h1:3UsHvIr4Wc2aW4brOaSCmcxh9ksica6fHEr8P1XhkYw=",
+        version = "v0.0.0-20250106144421-5f5ef82da422",
+    )
+    go_repository(
+        name = "org_golang_google_grpc",
+        importpath = "google.golang.org/grpc",
+        sum = "h1:MF5TftSMkd8GLw/m0KM6V8CMOCY6NZ1NQDPGFgbTt4A=",
+        version = "v1.69.4",
+    )
+    go_repository(
+        name = "org_golang_google_grpc_cmd_protoc_gen_go_grpc",
+        importpath = "google.golang.org/grpc/cmd/protoc-gen-go-grpc",
+        sum = "h1:F29+wU6Ee6qgu9TddPgooOdaqsxTMunOoj8KA5yuS5A=",
+        version = "v1.5.1",
+    )
+    go_repository(
+        name = "org_golang_google_protobuf",
+        build_file_proto_mode = "disable_global",  # Manually added to fix build. See https://github.com/golang/protobuf/issues/1611
+        importpath = "google.golang.org/protobuf",
+        sum = "h1:R8FeyR1/eLmkutZOM5CWghmo5itiG9z0ktFlTVLuTmU=",
+        version = "v1.36.2",
+    )
+    go_repository(
+        name = "org_golang_x_crypto",
+        importpath = "golang.org/x/crypto",
+        sum = "h1:euUpcYgM8WcP71gNpTqQCn6rC2t6ULUPiOzfWaXVVfc=",
+        version = "v0.32.0",
+    )
+    go_repository(
+        name = "org_golang_x_mod",
+        importpath = "golang.org/x/mod",
+        sum = "h1:zY54UmvipHiNd+pm+m0x9KhZ9hl1/7QNMyxXbc6ICqA=",
+        version = "v0.17.0",
+    )
+    go_repository(
+        name = "org_golang_x_net",
+        importpath = "golang.org/x/net",
+        sum = "h1:Mb7Mrk043xzHgnRM88suvJFwzVrRfHEHJEl5/71CKw0=",
+        version = "v0.34.0",
+    )
+    go_repository(
+        name = "org_golang_x_oauth2",
+        importpath = "golang.org/x/oauth2",
+        sum = "h1:PbgcYx2W7i4LvjJWEbf0ngHV6qJYr86PkAV3bXdLEbs=",
+        version = "v0.23.0",
+    )
+    go_repository(
+        name = "org_golang_x_sync",
+        importpath = "golang.org/x/sync",
+        sum = "h1:3NQrjDixjgGwUOCaF8w2+VYHv0Ve/vGYSbdkTa98gmQ=",
+        version = "v0.10.0",
+    )
+    go_repository(
+        name = "org_golang_x_sys",
+        importpath = "golang.org/x/sys",
+        sum = "h1:TPYlXGxvx1MGTn2GiZDhnjPA9wZzZeGKHHmKhHYvgaU=",
+        version = "v0.29.0",
+    )
+    go_repository(
+        name = "org_golang_x_term",
+        importpath = "golang.org/x/term",
+        sum = "h1:/Ts8HFuMR2E6IP/jlo7QVLZHggjKQbhu/7H0LJFr3Gg=",
+        version = "v0.28.0",
+    )
+    go_repository(
+        name = "org_golang_x_text",
+        importpath = "golang.org/x/text",
+        sum = "h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo=",
+        version = "v0.21.0",
+    )
+    go_repository(
+        name = "org_golang_x_tools",
+        importpath = "golang.org/x/tools",
+        sum = "h1:vU5i/LfpvrRCpgM/VPfJLg5KjxD3E+hfT1SH+d9zLwg=",
+        version = "v0.21.1-0.20240508182429-e35e4ccd0d2d",
+    )
+    go_repository(
+        name = "org_golang_x_xerrors",
+        importpath = "golang.org/x/xerrors",
+        sum = "h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE=",
+        version = "v0.0.0-20200804184101-5ec99f83aff1",
+    )
+    go_repository(
+        name = "org_mozilla_go_pkcs7",
+        importpath = "go.mozilla.org/pkcs7",
+        sum = "h1:CCriYyAfq1Br1aIYettdHZTy8mBTIPo7We18TuO/bak=",
+        version = "v0.0.0-20210826202110-33d05740a352",
+    )
diff --git a/go.mod b/go.mod
index 0de7ef1d..e790c511 100644
--- a/go.mod
+++ b/go.mod
@@ -1,21 +1,20 @@
 module github.com/openconfig/gnoi
 
-go 1.22
-
-toolchain go1.22.4
+go 1.23.4
 
 require (
 	github.com/golang/protobuf v1.5.4
 	github.com/openconfig/bootz v0.3.1
 	github.com/openconfig/gnsi v1.7.0
-	google.golang.org/genproto/googleapis/rpc v0.0.0-20241015192408-796eee8c2d53
+	google.golang.org/genproto/googleapis/rpc v0.0.0-20250106144421-5f5ef82da422
 	google.golang.org/grpc v1.69.4
+	google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.5.1
 	google.golang.org/protobuf v1.36.2
 )
 
 require (
 	github.com/openconfig/gnmi v0.10.0 // indirect
-	golang.org/x/net v0.30.0 // indirect
-	golang.org/x/sys v0.26.0 // indirect
-	golang.org/x/text v0.19.0 // indirect
+	golang.org/x/net v0.34.0 // indirect
+	golang.org/x/sys v0.29.0 // indirect
+	golang.org/x/text v0.21.0 // indirect
 )
diff --git a/go.sum b/go.sum
index a05533e5..715e4c03 100644
--- a/go.sum
+++ b/go.sum
@@ -24,15 +24,17 @@ go.opentelemetry.io/otel/sdk/metric v1.31.0 h1:i9hxxLJF/9kkvfHppyLL55aW7iIJz4Jjx
 go.opentelemetry.io/otel/sdk/metric v1.31.0/go.mod h1:CRInTMVvNhUKgSAMbKyTMxqOBC0zgyxzW55lZzX43Y8=
 go.opentelemetry.io/otel/trace v1.31.0 h1:ffjsj1aRouKewfr85U2aGagJ46+MvodynlQ1HYdmJys=
 go.opentelemetry.io/otel/trace v1.31.0/go.mod h1:TXZkRk7SM2ZQLtR6eoAWQFIHPvzQ06FJAsO1tJg480A=
-golang.org/x/net v0.30.0 h1:AcW1SDZMkb8IpzCdQUaIq2sP4sZ4zw+55h6ynffypl4=
-golang.org/x/net v0.30.0/go.mod h1:2wGyMJ5iFasEhkwi13ChkO/t1ECNC4X4eBKkVFyYFlU=
-golang.org/x/sys v0.26.0 h1:KHjCJyddX0LoSTb3J+vWpupP9p0oznkqVk/IfjymZbo=
-golang.org/x/sys v0.26.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
-golang.org/x/text v0.19.0 h1:kTxAhCbGbxhK0IwgSKiMO5awPoDQ0RpfiVYBfK860YM=
-golang.org/x/text v0.19.0/go.mod h1:BuEKDfySbSR4drPmRPG/7iBdf8hvFMuRexcpahXilzY=
-google.golang.org/genproto/googleapis/rpc v0.0.0-20241015192408-796eee8c2d53 h1:X58yt85/IXCx0Y3ZwN6sEIKZzQtDEYaBWrDvErdXrRE=
-google.golang.org/genproto/googleapis/rpc v0.0.0-20241015192408-796eee8c2d53/go.mod h1:GX3210XPVPUjJbTUbvwI8f2IpZDMZuPJWDzDuebbviI=
+golang.org/x/net v0.34.0 h1:Mb7Mrk043xzHgnRM88suvJFwzVrRfHEHJEl5/71CKw0=
+golang.org/x/net v0.34.0/go.mod h1:di0qlW3YNM5oh6GqDGQr92MyTozJPmybPK4Ev/Gm31k=
+golang.org/x/sys v0.29.0 h1:TPYlXGxvx1MGTn2GiZDhnjPA9wZzZeGKHHmKhHYvgaU=
+golang.org/x/sys v0.29.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
+golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo=
+golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ=
+google.golang.org/genproto/googleapis/rpc v0.0.0-20250106144421-5f5ef82da422 h1:3UsHvIr4Wc2aW4brOaSCmcxh9ksica6fHEr8P1XhkYw=
+google.golang.org/genproto/googleapis/rpc v0.0.0-20250106144421-5f5ef82da422/go.mod h1:3ENsm/5D1mzDyhpzeRi1NR784I0BcofWBoSc5QqqMK4=
 google.golang.org/grpc v1.69.4 h1:MF5TftSMkd8GLw/m0KM6V8CMOCY6NZ1NQDPGFgbTt4A=
 google.golang.org/grpc v1.69.4/go.mod h1:vyjdE6jLBI76dgpDojsFGNaHlxdjXN9ghpnd2o7JGZ4=
+google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.5.1 h1:F29+wU6Ee6qgu9TddPgooOdaqsxTMunOoj8KA5yuS5A=
+google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.5.1/go.mod h1:5KF+wpkbTSbGcR9zteSqZV6fqFOWBl4Yde8En8MryZA=
 google.golang.org/protobuf v1.36.2 h1:R8FeyR1/eLmkutZOM5CWghmo5itiG9z0ktFlTVLuTmU=
 google.golang.org/protobuf v1.36.2/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE=
diff --git a/healthz/BUILD.bazel b/healthz/BUILD.bazel
index b6b2d5d4..6710a991 100644
--- a/healthz/BUILD.bazel
+++ b/healthz/BUILD.bazel
@@ -1,9 +1,8 @@
 load("@com_github_grpc_grpc//bazel:cc_grpc_library.bzl", "cc_grpc_library")
-load("@rules_proto//proto:defs.bzl", "proto_library")
+load("@com_google_protobuf//bazel:cc_proto_library.bzl", "cc_proto_library")
+load("@com_google_protobuf//bazel:proto_library.bzl", "proto_library")
 load("@io_bazel_rules_go//go:def.bzl", "go_library")
 load("@io_bazel_rules_go//proto:def.bzl", "go_proto_library")
-load("@com_github_grpc_grpc//bazel:cc_grpc_library.bzl", "cc_grpc_library")
-load("//:common.bzl", "use_new_compilers")
 
 #Copyright 2021 Google LLC
 #
@@ -24,13 +23,11 @@ package(
     licenses = ["notice"],
 )
 
-use_new_compilers()
-
 proto_library(
     name = "healthz_proto",
     srcs = ["healthz.proto"],
+    import_prefix = "github.com/openconfig/gnoi",
     deps = [
-        "//common:common_proto",
         "//types:types_proto",
         "@com_google_protobuf//:any_proto",
         "@com_google_protobuf//:timestamp_proto",
@@ -40,8 +37,8 @@ proto_library(
 go_proto_library(
     name = "healthz_go_proto",
     compilers = [
-        "go_protoc_gen_go",
-        "go_protoc_gen_go_grpc",
+        "@io_bazel_rules_go//proto:go_grpc_v2",
+        "@io_bazel_rules_go//proto:go_proto",
     ],
     importpath = "github.com/openconfig/gnoi/healthz",
     proto = ":healthz_proto",
diff --git a/healthz/healthz.pb.go b/healthz/healthz.pb.go
index 2111bd28..937ad608 100644
--- a/healthz/healthz.pb.go
+++ b/healthz/healthz.pb.go
@@ -1,8 +1,8 @@
 // Code generated by protoc-gen-go. DO NOT EDIT.
 // versions:
-// 	protoc-gen-go v1.30.0
-// 	protoc        v3.21.10
-// source: healthz/healthz.proto
+// 	protoc-gen-go v1.36.2
+// 	protoc        v5.29.3
+// source: github.com/openconfig/gnoi/healthz/healthz.proto
 
 package healthz
 
@@ -56,11 +56,11 @@ func (x Status) String() string {
 }
 
 func (Status) Descriptor() protoreflect.EnumDescriptor {
-	return file_healthz_healthz_proto_enumTypes[0].Descriptor()
+	return file_github_com_openconfig_gnoi_healthz_healthz_proto_enumTypes[0].Descriptor()
 }
 
 func (Status) Type() protoreflect.EnumType {
-	return &file_healthz_healthz_proto_enumTypes[0]
+	return &file_github_com_openconfig_gnoi_healthz_healthz_proto_enumTypes[0]
 }
 
 func (x Status) Number() protoreflect.EnumNumber {
@@ -69,24 +69,21 @@ func (x Status) Number() protoreflect.EnumNumber {
 
 // Deprecated: Use Status.Descriptor instead.
 func (Status) EnumDescriptor() ([]byte, []int) {
-	return file_healthz_healthz_proto_rawDescGZIP(), []int{0}
+	return file_github_com_openconfig_gnoi_healthz_healthz_proto_rawDescGZIP(), []int{0}
 }
 
 type GetRequest struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Path          *types.Path            `protobuf:"bytes,1,opt,name=path,proto3" json:"path,omitempty"`
 	unknownFields protoimpl.UnknownFields
-
-	Path *types.Path `protobuf:"bytes,1,opt,name=path,proto3" json:"path,omitempty"`
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *GetRequest) Reset() {
 	*x = GetRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_healthz_healthz_proto_msgTypes[0]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_healthz_healthz_proto_msgTypes[0]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *GetRequest) String() string {
@@ -96,8 +93,8 @@ func (x *GetRequest) String() string {
 func (*GetRequest) ProtoMessage() {}
 
 func (x *GetRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_healthz_healthz_proto_msgTypes[0]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_healthz_healthz_proto_msgTypes[0]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -109,7 +106,7 @@ func (x *GetRequest) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use GetRequest.ProtoReflect.Descriptor instead.
 func (*GetRequest) Descriptor() ([]byte, []int) {
-	return file_healthz_healthz_proto_rawDescGZIP(), []int{0}
+	return file_github_com_openconfig_gnoi_healthz_healthz_proto_rawDescGZIP(), []int{0}
 }
 
 func (x *GetRequest) GetPath() *types.Path {
@@ -120,20 +117,17 @@ func (x *GetRequest) GetPath() *types.Path {
 }
 
 type GetResponse struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Component     *ComponentStatus       `protobuf:"bytes,1,opt,name=component,proto3" json:"component,omitempty"`
 	unknownFields protoimpl.UnknownFields
-
-	Component *ComponentStatus `protobuf:"bytes,1,opt,name=component,proto3" json:"component,omitempty"`
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *GetResponse) Reset() {
 	*x = GetResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_healthz_healthz_proto_msgTypes[1]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_healthz_healthz_proto_msgTypes[1]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *GetResponse) String() string {
@@ -143,8 +137,8 @@ func (x *GetResponse) String() string {
 func (*GetResponse) ProtoMessage() {}
 
 func (x *GetResponse) ProtoReflect() protoreflect.Message {
-	mi := &file_healthz_healthz_proto_msgTypes[1]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_healthz_healthz_proto_msgTypes[1]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -156,7 +150,7 @@ func (x *GetResponse) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use GetResponse.ProtoReflect.Descriptor instead.
 func (*GetResponse) Descriptor() ([]byte, []int) {
-	return file_healthz_healthz_proto_rawDescGZIP(), []int{1}
+	return file_github_com_openconfig_gnoi_healthz_healthz_proto_rawDescGZIP(), []int{1}
 }
 
 func (x *GetResponse) GetComponent() *ComponentStatus {
@@ -167,26 +161,23 @@ func (x *GetResponse) GetComponent() *ComponentStatus {
 }
 
 type ArtifactHeader struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
-	// Types that are assignable to ArtifactType:
+	state protoimpl.MessageState `protogen:"open.v1"`
+	Id    string                 `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
+	// Types that are valid to be assigned to ArtifactType:
 	//
 	//	*ArtifactHeader_File
 	//	*ArtifactHeader_Proto
 	//	*ArtifactHeader_Custom
-	ArtifactType isArtifactHeader_ArtifactType `protobuf_oneof:"artifact_type"`
+	ArtifactType  isArtifactHeader_ArtifactType `protobuf_oneof:"artifact_type"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *ArtifactHeader) Reset() {
 	*x = ArtifactHeader{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_healthz_healthz_proto_msgTypes[2]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_healthz_healthz_proto_msgTypes[2]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *ArtifactHeader) String() string {
@@ -196,8 +187,8 @@ func (x *ArtifactHeader) String() string {
 func (*ArtifactHeader) ProtoMessage() {}
 
 func (x *ArtifactHeader) ProtoReflect() protoreflect.Message {
-	mi := &file_healthz_healthz_proto_msgTypes[2]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_healthz_healthz_proto_msgTypes[2]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -209,7 +200,7 @@ func (x *ArtifactHeader) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use ArtifactHeader.ProtoReflect.Descriptor instead.
 func (*ArtifactHeader) Descriptor() ([]byte, []int) {
-	return file_healthz_healthz_proto_rawDescGZIP(), []int{2}
+	return file_github_com_openconfig_gnoi_healthz_healthz_proto_rawDescGZIP(), []int{2}
 }
 
 func (x *ArtifactHeader) GetId() string {
@@ -219,30 +210,36 @@ func (x *ArtifactHeader) GetId() string {
 	return ""
 }
 
-func (m *ArtifactHeader) GetArtifactType() isArtifactHeader_ArtifactType {
-	if m != nil {
-		return m.ArtifactType
+func (x *ArtifactHeader) GetArtifactType() isArtifactHeader_ArtifactType {
+	if x != nil {
+		return x.ArtifactType
 	}
 	return nil
 }
 
 func (x *ArtifactHeader) GetFile() *FileArtifactType {
-	if x, ok := x.GetArtifactType().(*ArtifactHeader_File); ok {
-		return x.File
+	if x != nil {
+		if x, ok := x.ArtifactType.(*ArtifactHeader_File); ok {
+			return x.File
+		}
 	}
 	return nil
 }
 
 func (x *ArtifactHeader) GetProto() *ProtoArtifactType {
-	if x, ok := x.GetArtifactType().(*ArtifactHeader_Proto); ok {
-		return x.Proto
+	if x != nil {
+		if x, ok := x.ArtifactType.(*ArtifactHeader_Proto); ok {
+			return x.Proto
+		}
 	}
 	return nil
 }
 
 func (x *ArtifactHeader) GetCustom() *anypb.Any {
-	if x, ok := x.GetArtifactType().(*ArtifactHeader_Custom); ok {
-		return x.Custom
+	if x != nil {
+		if x, ok := x.ArtifactType.(*ArtifactHeader_Custom); ok {
+			return x.Custom
+		}
 	}
 	return nil
 }
@@ -270,29 +267,26 @@ func (*ArtifactHeader_Proto) isArtifactHeader_ArtifactType() {}
 func (*ArtifactHeader_Custom) isArtifactHeader_ArtifactType() {}
 
 type ComponentStatus struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Path          *types.Path            `protobuf:"bytes,1,opt,name=path,proto3" json:"path,omitempty"`
+	Subcomponents []*ComponentStatus     `protobuf:"bytes,2,rep,name=subcomponents,proto3" json:"subcomponents,omitempty"`
+	Status        Status                 `protobuf:"varint,3,opt,name=status,proto3,enum=gnoi.healthz.Status" json:"status,omitempty"`
+	// Deprecated: Marked as deprecated in github.com/openconfig/gnoi/healthz/healthz.proto.
+	Healthz       *anypb.Any             `protobuf:"bytes,4,opt,name=healthz,proto3" json:"healthz,omitempty"`
+	Artifacts     []*ArtifactHeader      `protobuf:"bytes,5,rep,name=artifacts,proto3" json:"artifacts,omitempty"`
+	Id            string                 `protobuf:"bytes,6,opt,name=id,proto3" json:"id,omitempty"`
+	Acknowledged  bool                   `protobuf:"varint,7,opt,name=acknowledged,proto3" json:"acknowledged,omitempty"`
+	Created       *timestamppb.Timestamp `protobuf:"bytes,8,opt,name=created,proto3" json:"created,omitempty"`
+	Expires       *timestamppb.Timestamp `protobuf:"bytes,9,opt,name=expires,proto3" json:"expires,omitempty"`
 	unknownFields protoimpl.UnknownFields
-
-	Path          *types.Path        `protobuf:"bytes,1,opt,name=path,proto3" json:"path,omitempty"`
-	Subcomponents []*ComponentStatus `protobuf:"bytes,2,rep,name=subcomponents,proto3" json:"subcomponents,omitempty"`
-	Status        Status             `protobuf:"varint,3,opt,name=status,proto3,enum=gnoi.healthz.Status" json:"status,omitempty"`
-	// Deprecated: Marked as deprecated in healthz/healthz.proto.
-	Healthz      *anypb.Any             `protobuf:"bytes,4,opt,name=healthz,proto3" json:"healthz,omitempty"`
-	Artifacts    []*ArtifactHeader      `protobuf:"bytes,5,rep,name=artifacts,proto3" json:"artifacts,omitempty"`
-	Id           string                 `protobuf:"bytes,6,opt,name=id,proto3" json:"id,omitempty"`
-	Acknowledged bool                   `protobuf:"varint,7,opt,name=acknowledged,proto3" json:"acknowledged,omitempty"`
-	Created      *timestamppb.Timestamp `protobuf:"bytes,8,opt,name=created,proto3" json:"created,omitempty"`
-	Expires      *timestamppb.Timestamp `protobuf:"bytes,9,opt,name=expires,proto3" json:"expires,omitempty"`
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *ComponentStatus) Reset() {
 	*x = ComponentStatus{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_healthz_healthz_proto_msgTypes[3]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_healthz_healthz_proto_msgTypes[3]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *ComponentStatus) String() string {
@@ -302,8 +296,8 @@ func (x *ComponentStatus) String() string {
 func (*ComponentStatus) ProtoMessage() {}
 
 func (x *ComponentStatus) ProtoReflect() protoreflect.Message {
-	mi := &file_healthz_healthz_proto_msgTypes[3]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_healthz_healthz_proto_msgTypes[3]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -315,7 +309,7 @@ func (x *ComponentStatus) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use ComponentStatus.ProtoReflect.Descriptor instead.
 func (*ComponentStatus) Descriptor() ([]byte, []int) {
-	return file_healthz_healthz_proto_rawDescGZIP(), []int{3}
+	return file_github_com_openconfig_gnoi_healthz_healthz_proto_rawDescGZIP(), []int{3}
 }
 
 func (x *ComponentStatus) GetPath() *types.Path {
@@ -339,7 +333,7 @@ func (x *ComponentStatus) GetStatus() Status {
 	return Status_STATUS_UNSPECIFIED
 }
 
-// Deprecated: Marked as deprecated in healthz/healthz.proto.
+// Deprecated: Marked as deprecated in github.com/openconfig/gnoi/healthz/healthz.proto.
 func (x *ComponentStatus) GetHealthz() *anypb.Any {
 	if x != nil {
 		return x.Healthz
@@ -383,21 +377,18 @@ func (x *ComponentStatus) GetExpires() *timestamppb.Timestamp {
 }
 
 type ListRequest struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	Path                *types.Path `protobuf:"bytes,1,opt,name=path,proto3" json:"path,omitempty"`
-	IncludeAcknowledged bool        `protobuf:"varint,2,opt,name=include_acknowledged,json=includeAcknowledged,proto3" json:"include_acknowledged,omitempty"`
+	state               protoimpl.MessageState `protogen:"open.v1"`
+	Path                *types.Path            `protobuf:"bytes,1,opt,name=path,proto3" json:"path,omitempty"`
+	IncludeAcknowledged bool                   `protobuf:"varint,2,opt,name=include_acknowledged,json=includeAcknowledged,proto3" json:"include_acknowledged,omitempty"`
+	unknownFields       protoimpl.UnknownFields
+	sizeCache           protoimpl.SizeCache
 }
 
 func (x *ListRequest) Reset() {
 	*x = ListRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_healthz_healthz_proto_msgTypes[4]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_healthz_healthz_proto_msgTypes[4]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *ListRequest) String() string {
@@ -407,8 +398,8 @@ func (x *ListRequest) String() string {
 func (*ListRequest) ProtoMessage() {}
 
 func (x *ListRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_healthz_healthz_proto_msgTypes[4]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_healthz_healthz_proto_msgTypes[4]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -420,7 +411,7 @@ func (x *ListRequest) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use ListRequest.ProtoReflect.Descriptor instead.
 func (*ListRequest) Descriptor() ([]byte, []int) {
-	return file_healthz_healthz_proto_rawDescGZIP(), []int{4}
+	return file_github_com_openconfig_gnoi_healthz_healthz_proto_rawDescGZIP(), []int{4}
 }
 
 func (x *ListRequest) GetPath() *types.Path {
@@ -438,20 +429,17 @@ func (x *ListRequest) GetIncludeAcknowledged() bool {
 }
 
 type ListResponse struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Statuses      []*ComponentStatus     `protobuf:"bytes,1,rep,name=statuses,proto3" json:"statuses,omitempty"`
 	unknownFields protoimpl.UnknownFields
-
-	Statuses []*ComponentStatus `protobuf:"bytes,1,rep,name=statuses,proto3" json:"statuses,omitempty"`
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *ListResponse) Reset() {
 	*x = ListResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_healthz_healthz_proto_msgTypes[5]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_healthz_healthz_proto_msgTypes[5]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *ListResponse) String() string {
@@ -461,8 +449,8 @@ func (x *ListResponse) String() string {
 func (*ListResponse) ProtoMessage() {}
 
 func (x *ListResponse) ProtoReflect() protoreflect.Message {
-	mi := &file_healthz_healthz_proto_msgTypes[5]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_healthz_healthz_proto_msgTypes[5]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -474,7 +462,7 @@ func (x *ListResponse) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use ListResponse.ProtoReflect.Descriptor instead.
 func (*ListResponse) Descriptor() ([]byte, []int) {
-	return file_healthz_healthz_proto_rawDescGZIP(), []int{5}
+	return file_github_com_openconfig_gnoi_healthz_healthz_proto_rawDescGZIP(), []int{5}
 }
 
 func (x *ListResponse) GetStatuses() []*ComponentStatus {
@@ -485,21 +473,18 @@ func (x *ListResponse) GetStatuses() []*ComponentStatus {
 }
 
 type AcknowledgeRequest struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Path          *types.Path            `protobuf:"bytes,1,opt,name=path,proto3" json:"path,omitempty"`
+	Id            string                 `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"`
 	unknownFields protoimpl.UnknownFields
-
-	Path *types.Path `protobuf:"bytes,1,opt,name=path,proto3" json:"path,omitempty"`
-	Id   string      `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"`
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *AcknowledgeRequest) Reset() {
 	*x = AcknowledgeRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_healthz_healthz_proto_msgTypes[6]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_healthz_healthz_proto_msgTypes[6]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *AcknowledgeRequest) String() string {
@@ -509,8 +494,8 @@ func (x *AcknowledgeRequest) String() string {
 func (*AcknowledgeRequest) ProtoMessage() {}
 
 func (x *AcknowledgeRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_healthz_healthz_proto_msgTypes[6]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_healthz_healthz_proto_msgTypes[6]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -522,7 +507,7 @@ func (x *AcknowledgeRequest) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use AcknowledgeRequest.ProtoReflect.Descriptor instead.
 func (*AcknowledgeRequest) Descriptor() ([]byte, []int) {
-	return file_healthz_healthz_proto_rawDescGZIP(), []int{6}
+	return file_github_com_openconfig_gnoi_healthz_healthz_proto_rawDescGZIP(), []int{6}
 }
 
 func (x *AcknowledgeRequest) GetPath() *types.Path {
@@ -540,20 +525,17 @@ func (x *AcknowledgeRequest) GetId() string {
 }
 
 type AcknowledgeResponse struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Status        *ComponentStatus       `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"`
 	unknownFields protoimpl.UnknownFields
-
-	Status *ComponentStatus `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"`
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *AcknowledgeResponse) Reset() {
 	*x = AcknowledgeResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_healthz_healthz_proto_msgTypes[7]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_healthz_healthz_proto_msgTypes[7]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *AcknowledgeResponse) String() string {
@@ -563,8 +545,8 @@ func (x *AcknowledgeResponse) String() string {
 func (*AcknowledgeResponse) ProtoMessage() {}
 
 func (x *AcknowledgeResponse) ProtoReflect() protoreflect.Message {
-	mi := &file_healthz_healthz_proto_msgTypes[7]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_healthz_healthz_proto_msgTypes[7]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -576,7 +558,7 @@ func (x *AcknowledgeResponse) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use AcknowledgeResponse.ProtoReflect.Descriptor instead.
 func (*AcknowledgeResponse) Descriptor() ([]byte, []int) {
-	return file_healthz_healthz_proto_rawDescGZIP(), []int{7}
+	return file_github_com_openconfig_gnoi_healthz_healthz_proto_rawDescGZIP(), []int{7}
 }
 
 func (x *AcknowledgeResponse) GetStatus() *ComponentStatus {
@@ -587,20 +569,17 @@ func (x *AcknowledgeResponse) GetStatus() *ComponentStatus {
 }
 
 type ArtifactRequest struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Id            string                 `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
 	unknownFields protoimpl.UnknownFields
-
-	Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *ArtifactRequest) Reset() {
 	*x = ArtifactRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_healthz_healthz_proto_msgTypes[8]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_healthz_healthz_proto_msgTypes[8]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *ArtifactRequest) String() string {
@@ -610,8 +589,8 @@ func (x *ArtifactRequest) String() string {
 func (*ArtifactRequest) ProtoMessage() {}
 
 func (x *ArtifactRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_healthz_healthz_proto_msgTypes[8]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_healthz_healthz_proto_msgTypes[8]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -623,7 +602,7 @@ func (x *ArtifactRequest) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use ArtifactRequest.ProtoReflect.Descriptor instead.
 func (*ArtifactRequest) Descriptor() ([]byte, []int) {
-	return file_healthz_healthz_proto_rawDescGZIP(), []int{8}
+	return file_github_com_openconfig_gnoi_healthz_healthz_proto_rawDescGZIP(), []int{8}
 }
 
 func (x *ArtifactRequest) GetId() string {
@@ -634,26 +613,23 @@ func (x *ArtifactRequest) GetId() string {
 }
 
 type ArtifactResponse struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	// Types that are assignable to Contents:
+	state protoimpl.MessageState `protogen:"open.v1"`
+	// Types that are valid to be assigned to Contents:
 	//
 	//	*ArtifactResponse_Header
 	//	*ArtifactResponse_Trailer
 	//	*ArtifactResponse_Bytes
 	//	*ArtifactResponse_Proto
-	Contents isArtifactResponse_Contents `protobuf_oneof:"contents"`
+	Contents      isArtifactResponse_Contents `protobuf_oneof:"contents"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *ArtifactResponse) Reset() {
 	*x = ArtifactResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_healthz_healthz_proto_msgTypes[9]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_healthz_healthz_proto_msgTypes[9]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *ArtifactResponse) String() string {
@@ -663,8 +639,8 @@ func (x *ArtifactResponse) String() string {
 func (*ArtifactResponse) ProtoMessage() {}
 
 func (x *ArtifactResponse) ProtoReflect() protoreflect.Message {
-	mi := &file_healthz_healthz_proto_msgTypes[9]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_healthz_healthz_proto_msgTypes[9]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -676,40 +652,48 @@ func (x *ArtifactResponse) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use ArtifactResponse.ProtoReflect.Descriptor instead.
 func (*ArtifactResponse) Descriptor() ([]byte, []int) {
-	return file_healthz_healthz_proto_rawDescGZIP(), []int{9}
+	return file_github_com_openconfig_gnoi_healthz_healthz_proto_rawDescGZIP(), []int{9}
 }
 
-func (m *ArtifactResponse) GetContents() isArtifactResponse_Contents {
-	if m != nil {
-		return m.Contents
+func (x *ArtifactResponse) GetContents() isArtifactResponse_Contents {
+	if x != nil {
+		return x.Contents
 	}
 	return nil
 }
 
 func (x *ArtifactResponse) GetHeader() *ArtifactHeader {
-	if x, ok := x.GetContents().(*ArtifactResponse_Header); ok {
-		return x.Header
+	if x != nil {
+		if x, ok := x.Contents.(*ArtifactResponse_Header); ok {
+			return x.Header
+		}
 	}
 	return nil
 }
 
 func (x *ArtifactResponse) GetTrailer() *ArtifactTrailer {
-	if x, ok := x.GetContents().(*ArtifactResponse_Trailer); ok {
-		return x.Trailer
+	if x != nil {
+		if x, ok := x.Contents.(*ArtifactResponse_Trailer); ok {
+			return x.Trailer
+		}
 	}
 	return nil
 }
 
 func (x *ArtifactResponse) GetBytes() []byte {
-	if x, ok := x.GetContents().(*ArtifactResponse_Bytes); ok {
-		return x.Bytes
+	if x != nil {
+		if x, ok := x.Contents.(*ArtifactResponse_Bytes); ok {
+			return x.Bytes
+		}
 	}
 	return nil
 }
 
 func (x *ArtifactResponse) GetProto() *anypb.Any {
-	if x, ok := x.GetContents().(*ArtifactResponse_Proto); ok {
-		return x.Proto
+	if x != nil {
+		if x, ok := x.Contents.(*ArtifactResponse_Proto); ok {
+			return x.Proto
+		}
 	}
 	return nil
 }
@@ -743,24 +727,21 @@ func (*ArtifactResponse_Bytes) isArtifactResponse_Contents() {}
 func (*ArtifactResponse_Proto) isArtifactResponse_Contents() {}
 
 type FileArtifactType struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Name          string                 `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
+	Path          string                 `protobuf:"bytes,2,opt,name=path,proto3" json:"path,omitempty"`
+	Mimetype      string                 `protobuf:"bytes,3,opt,name=mimetype,proto3" json:"mimetype,omitempty"`
+	Size          int64                  `protobuf:"varint,4,opt,name=size,proto3" json:"size,omitempty"`
+	Hash          *types.HashType        `protobuf:"bytes,5,opt,name=hash,proto3" json:"hash,omitempty"`
 	unknownFields protoimpl.UnknownFields
-
-	Name     string          `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
-	Path     string          `protobuf:"bytes,2,opt,name=path,proto3" json:"path,omitempty"`
-	Mimetype string          `protobuf:"bytes,3,opt,name=mimetype,proto3" json:"mimetype,omitempty"`
-	Size     int64           `protobuf:"varint,4,opt,name=size,proto3" json:"size,omitempty"`
-	Hash     *types.HashType `protobuf:"bytes,5,opt,name=hash,proto3" json:"hash,omitempty"`
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *FileArtifactType) Reset() {
 	*x = FileArtifactType{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_healthz_healthz_proto_msgTypes[10]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_healthz_healthz_proto_msgTypes[10]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *FileArtifactType) String() string {
@@ -770,8 +751,8 @@ func (x *FileArtifactType) String() string {
 func (*FileArtifactType) ProtoMessage() {}
 
 func (x *FileArtifactType) ProtoReflect() protoreflect.Message {
-	mi := &file_healthz_healthz_proto_msgTypes[10]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_healthz_healthz_proto_msgTypes[10]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -783,7 +764,7 @@ func (x *FileArtifactType) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use FileArtifactType.ProtoReflect.Descriptor instead.
 func (*FileArtifactType) Descriptor() ([]byte, []int) {
-	return file_healthz_healthz_proto_rawDescGZIP(), []int{10}
+	return file_github_com_openconfig_gnoi_healthz_healthz_proto_rawDescGZIP(), []int{10}
 }
 
 func (x *FileArtifactType) GetName() string {
@@ -822,18 +803,16 @@ func (x *FileArtifactType) GetHash() *types.HashType {
 }
 
 type ProtoArtifactType struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState `protogen:"open.v1"`
 	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *ProtoArtifactType) Reset() {
 	*x = ProtoArtifactType{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_healthz_healthz_proto_msgTypes[11]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_healthz_healthz_proto_msgTypes[11]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *ProtoArtifactType) String() string {
@@ -843,8 +822,8 @@ func (x *ProtoArtifactType) String() string {
 func (*ProtoArtifactType) ProtoMessage() {}
 
 func (x *ProtoArtifactType) ProtoReflect() protoreflect.Message {
-	mi := &file_healthz_healthz_proto_msgTypes[11]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_healthz_healthz_proto_msgTypes[11]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -856,22 +835,20 @@ func (x *ProtoArtifactType) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use ProtoArtifactType.ProtoReflect.Descriptor instead.
 func (*ProtoArtifactType) Descriptor() ([]byte, []int) {
-	return file_healthz_healthz_proto_rawDescGZIP(), []int{11}
+	return file_github_com_openconfig_gnoi_healthz_healthz_proto_rawDescGZIP(), []int{11}
 }
 
 type ArtifactTrailer struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState `protogen:"open.v1"`
 	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *ArtifactTrailer) Reset() {
 	*x = ArtifactTrailer{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_healthz_healthz_proto_msgTypes[12]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_healthz_healthz_proto_msgTypes[12]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *ArtifactTrailer) String() string {
@@ -881,8 +858,8 @@ func (x *ArtifactTrailer) String() string {
 func (*ArtifactTrailer) ProtoMessage() {}
 
 func (x *ArtifactTrailer) ProtoReflect() protoreflect.Message {
-	mi := &file_healthz_healthz_proto_msgTypes[12]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_healthz_healthz_proto_msgTypes[12]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -894,25 +871,22 @@ func (x *ArtifactTrailer) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use ArtifactTrailer.ProtoReflect.Descriptor instead.
 func (*ArtifactTrailer) Descriptor() ([]byte, []int) {
-	return file_healthz_healthz_proto_rawDescGZIP(), []int{12}
+	return file_github_com_openconfig_gnoi_healthz_healthz_proto_rawDescGZIP(), []int{12}
 }
 
 type CheckRequest struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Path          *types.Path            `protobuf:"bytes,1,opt,name=path,proto3" json:"path,omitempty"`
+	EventId       string                 `protobuf:"bytes,2,opt,name=event_id,json=eventId,proto3" json:"event_id,omitempty"`
 	unknownFields protoimpl.UnknownFields
-
-	Path    *types.Path `protobuf:"bytes,1,opt,name=path,proto3" json:"path,omitempty"`
-	EventId string      `protobuf:"bytes,2,opt,name=event_id,json=eventId,proto3" json:"event_id,omitempty"`
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *CheckRequest) Reset() {
 	*x = CheckRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_healthz_healthz_proto_msgTypes[13]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_healthz_healthz_proto_msgTypes[13]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *CheckRequest) String() string {
@@ -922,8 +896,8 @@ func (x *CheckRequest) String() string {
 func (*CheckRequest) ProtoMessage() {}
 
 func (x *CheckRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_healthz_healthz_proto_msgTypes[13]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_healthz_healthz_proto_msgTypes[13]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -935,7 +909,7 @@ func (x *CheckRequest) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use CheckRequest.ProtoReflect.Descriptor instead.
 func (*CheckRequest) Descriptor() ([]byte, []int) {
-	return file_healthz_healthz_proto_rawDescGZIP(), []int{13}
+	return file_github_com_openconfig_gnoi_healthz_healthz_proto_rawDescGZIP(), []int{13}
 }
 
 func (x *CheckRequest) GetPath() *types.Path {
@@ -953,20 +927,17 @@ func (x *CheckRequest) GetEventId() string {
 }
 
 type CheckResponse struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Status        *ComponentStatus       `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"`
 	unknownFields protoimpl.UnknownFields
-
-	Status *ComponentStatus `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"`
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *CheckResponse) Reset() {
 	*x = CheckResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_healthz_healthz_proto_msgTypes[14]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_healthz_healthz_proto_msgTypes[14]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *CheckResponse) String() string {
@@ -976,8 +947,8 @@ func (x *CheckResponse) String() string {
 func (*CheckResponse) ProtoMessage() {}
 
 func (x *CheckResponse) ProtoReflect() protoreflect.Message {
-	mi := &file_healthz_healthz_proto_msgTypes[14]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_healthz_healthz_proto_msgTypes[14]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -989,7 +960,7 @@ func (x *CheckResponse) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use CheckResponse.ProtoReflect.Descriptor instead.
 func (*CheckResponse) Descriptor() ([]byte, []int) {
-	return file_healthz_healthz_proto_rawDescGZIP(), []int{14}
+	return file_github_com_openconfig_gnoi_healthz_healthz_proto_rawDescGZIP(), []int{14}
 }
 
 func (x *CheckResponse) GetStatus() *ComponentStatus {
@@ -999,174 +970,176 @@ func (x *CheckResponse) GetStatus() *ComponentStatus {
 	return nil
 }
 
-var File_healthz_healthz_proto protoreflect.FileDescriptor
+var File_github_com_openconfig_gnoi_healthz_healthz_proto protoreflect.FileDescriptor
 
-var file_healthz_healthz_proto_rawDesc = []byte{
-	0x0a, 0x15, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x7a, 0x2f, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68,
-	0x7a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0c, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x68, 0x65,
-	0x61, 0x6c, 0x74, 0x68, 0x7a, 0x1a, 0x2c, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f,
-	0x6d, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x67, 0x6e, 0x6f,
-	0x69, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x70, 0x72,
-	0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74,
-	0x6f, 0x62, 0x75, 0x66, 0x2f, 0x61, 0x6e, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f,
+var file_github_com_openconfig_gnoi_healthz_healthz_proto_rawDesc = []byte{
+	0x0a, 0x30, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x70, 0x65,
+	0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x67, 0x6e, 0x6f, 0x69, 0x2f, 0x68, 0x65, 0x61,
+	0x6c, 0x74, 0x68, 0x7a, 0x2f, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x7a, 0x2e, 0x70, 0x72, 0x6f,
+	0x74, 0x6f, 0x12, 0x0c, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x7a,
+	0x1a, 0x2c, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x70, 0x65,
+	0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x67, 0x6e, 0x6f, 0x69, 0x2f, 0x74, 0x79, 0x70,
+	0x65, 0x73, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19,
 	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f,
-	0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22,
-	0x32, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x24, 0x0a,
-	0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x67, 0x6e,
-	0x6f, 0x69, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x50, 0x61, 0x74, 0x68, 0x52, 0x04, 0x70,
-	0x61, 0x74, 0x68, 0x22, 0x4a, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
-	0x73, 0x65, 0x12, 0x3b, 0x0a, 0x09, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x18,
-	0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x68, 0x65, 0x61,
-	0x6c, 0x74, 0x68, 0x7a, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x53, 0x74,
-	0x61, 0x74, 0x75, 0x73, 0x52, 0x09, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x22,
-	0xd0, 0x01, 0x0a, 0x0e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x48, 0x65, 0x61, 0x64,
-	0x65, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02,
-	0x69, 0x64, 0x12, 0x34, 0x0a, 0x04, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x65, 0x20, 0x01, 0x28, 0x0b,
-	0x32, 0x1e, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x7a, 0x2e,
-	0x46, 0x69, 0x6c, 0x65, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x54, 0x79, 0x70, 0x65,
-	0x48, 0x00, 0x52, 0x04, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x37, 0x0a, 0x05, 0x70, 0x72, 0x6f, 0x74,
-	0x6f, 0x18, 0x66, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x68,
-	0x65, 0x61, 0x6c, 0x74, 0x68, 0x7a, 0x2e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x41, 0x72, 0x74, 0x69,
-	0x66, 0x61, 0x63, 0x74, 0x54, 0x79, 0x70, 0x65, 0x48, 0x00, 0x52, 0x05, 0x70, 0x72, 0x6f, 0x74,
-	0x6f, 0x12, 0x2e, 0x0a, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x18, 0x67, 0x20, 0x01, 0x28,
-	0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
-	0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x48, 0x00, 0x52, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f,
-	0x6d, 0x42, 0x0f, 0x0a, 0x0d, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x5f, 0x74, 0x79,
-	0x70, 0x65, 0x22, 0xba, 0x03, 0x0a, 0x0f, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74,
-	0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x24, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01,
-	0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x74, 0x79, 0x70, 0x65,
-	0x73, 0x2e, 0x50, 0x61, 0x74, 0x68, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x43, 0x0a, 0x0d,
-	0x73, 0x75, 0x62, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20,
-	0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x68, 0x65, 0x61, 0x6c, 0x74,
-	0x68, 0x7a, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74,
-	0x75, 0x73, 0x52, 0x0d, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74,
-	0x73, 0x12, 0x2c, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28,
-	0x0e, 0x32, 0x14, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x7a,
-	0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12,
-	0x32, 0x0a, 0x07, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x7a, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b,
-	0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62,
-	0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x42, 0x02, 0x18, 0x01, 0x52, 0x07, 0x68, 0x65, 0x61, 0x6c,
-	0x74, 0x68, 0x7a, 0x12, 0x3a, 0x0a, 0x09, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73,
-	0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x68, 0x65,
-	0x61, 0x6c, 0x74, 0x68, 0x7a, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x48, 0x65,
-	0x61, 0x64, 0x65, 0x72, 0x52, 0x09, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x12,
-	0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12,
-	0x22, 0x0a, 0x0c, 0x61, 0x63, 0x6b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x64, 0x18,
-	0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x61, 0x63, 0x6b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64,
-	0x67, 0x65, 0x64, 0x12, 0x34, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x18, 0x08,
-	0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72,
-	0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70,
-	0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x12, 0x34, 0x0a, 0x07, 0x65, 0x78, 0x70,
-	0x69, 0x72, 0x65, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f,
-	0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d,
-	0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x07, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x73, 0x22,
-	0x66, 0x0a, 0x0b, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x24,
-	0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x67,
-	0x6e, 0x6f, 0x69, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x50, 0x61, 0x74, 0x68, 0x52, 0x04,
-	0x70, 0x61, 0x74, 0x68, 0x12, 0x31, 0x0a, 0x14, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f,
-	0x61, 0x63, 0x6b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01,
-	0x28, 0x08, 0x52, 0x13, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x41, 0x63, 0x6b, 0x6e, 0x6f,
-	0x77, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x64, 0x22, 0x49, 0x0a, 0x0c, 0x4c, 0x69, 0x73, 0x74, 0x52,
-	0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x39, 0x0a, 0x08, 0x73, 0x74, 0x61, 0x74, 0x75,
-	0x73, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x67, 0x6e, 0x6f, 0x69,
-	0x2e, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x7a, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65,
-	0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x08, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73,
-	0x65, 0x73, 0x22, 0x4a, 0x0a, 0x12, 0x41, 0x63, 0x6b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67,
-	0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x24, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68,
+	0x61, 0x6e, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
+	0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73,
+	0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x32, 0x0a, 0x0a, 0x47, 0x65,
+	0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x24, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68,
 	0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x74, 0x79,
-	0x70, 0x65, 0x73, 0x2e, 0x50, 0x61, 0x74, 0x68, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x0e,
-	0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0x4c,
-	0x0a, 0x13, 0x41, 0x63, 0x6b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x52, 0x65, 0x73,
+	0x70, 0x65, 0x73, 0x2e, 0x50, 0x61, 0x74, 0x68, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x22, 0x4a,
+	0x0a, 0x0b, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3b, 0x0a,
+	0x09, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,
+	0x32, 0x1d, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x7a, 0x2e,
+	0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52,
+	0x09, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x22, 0xd0, 0x01, 0x0a, 0x0e, 0x41,
+	0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x0e, 0x0a,
+	0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x34, 0x0a,
+	0x04, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x65, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x67, 0x6e,
+	0x6f, 0x69, 0x2e, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x7a, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x41,
+	0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x54, 0x79, 0x70, 0x65, 0x48, 0x00, 0x52, 0x04, 0x66,
+	0x69, 0x6c, 0x65, 0x12, 0x37, 0x0a, 0x05, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x18, 0x66, 0x20, 0x01,
+	0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68,
+	0x7a, 0x2e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x54,
+	0x79, 0x70, 0x65, 0x48, 0x00, 0x52, 0x05, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x2e, 0x0a, 0x06,
+	0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x18, 0x67, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67,
+	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41,
+	0x6e, 0x79, 0x48, 0x00, 0x52, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x42, 0x0f, 0x0a, 0x0d,
+	0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, 0xba, 0x03,
+	0x0a, 0x0f, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75,
+	0x73, 0x12, 0x24, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
+	0x10, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x50, 0x61, 0x74,
+	0x68, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x43, 0x0a, 0x0d, 0x73, 0x75, 0x62, 0x63, 0x6f,
+	0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d,
+	0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x7a, 0x2e, 0x43, 0x6f,
+	0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x0d, 0x73,
+	0x75, 0x62, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x2c, 0x0a, 0x06,
+	0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x14, 0x2e, 0x67,
+	0x6e, 0x6f, 0x69, 0x2e, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x7a, 0x2e, 0x53, 0x74, 0x61, 0x74,
+	0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x32, 0x0a, 0x07, 0x68, 0x65,
+	0x61, 0x6c, 0x74, 0x68, 0x7a, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f,
+	0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e,
+	0x79, 0x42, 0x02, 0x18, 0x01, 0x52, 0x07, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x7a, 0x12, 0x3a,
+	0x0a, 0x09, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28,
+	0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x7a,
+	0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52,
+	0x09, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64,
+	0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x61, 0x63,
+	0x6b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08,
+	0x52, 0x0c, 0x61, 0x63, 0x6b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x64, 0x12, 0x34,
+	0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32,
+	0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75,
+	0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x07, 0x63, 0x72, 0x65,
+	0x61, 0x74, 0x65, 0x64, 0x12, 0x34, 0x0a, 0x07, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x73, 0x18,
+	0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70,
+	0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d,
+	0x70, 0x52, 0x07, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x73, 0x22, 0x66, 0x0a, 0x0b, 0x4c, 0x69,
+	0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x24, 0x0a, 0x04, 0x70, 0x61, 0x74,
+	0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x74,
+	0x79, 0x70, 0x65, 0x73, 0x2e, 0x50, 0x61, 0x74, 0x68, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12,
+	0x31, 0x0a, 0x14, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x61, 0x63, 0x6b, 0x6e, 0x6f,
+	0x77, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x69,
+	0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x41, 0x63, 0x6b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67,
+	0x65, 0x64, 0x22, 0x49, 0x0a, 0x0c, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
+	0x73, 0x65, 0x12, 0x39, 0x0a, 0x08, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x65, 0x73, 0x18, 0x01,
+	0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x68, 0x65, 0x61, 0x6c,
+	0x74, 0x68, 0x7a, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61,
+	0x74, 0x75, 0x73, 0x52, 0x08, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x65, 0x73, 0x22, 0x4a, 0x0a,
+	0x12, 0x41, 0x63, 0x6b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75,
+	0x65, 0x73, 0x74, 0x12, 0x24, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28,
+	0x0b, 0x32, 0x10, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x50,
+	0x61, 0x74, 0x68, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18,
+	0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0x4c, 0x0a, 0x13, 0x41, 0x63, 0x6b,
+	0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
+	0x12, 0x35, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,
+	0x32, 0x1d, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x7a, 0x2e,
+	0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52,
+	0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x21, 0x0a, 0x0f, 0x41, 0x72, 0x74, 0x69, 0x66,
+	0x61, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64,
+	0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0xd7, 0x01, 0x0a, 0x10, 0x41,
+	0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12,
+	0x36, 0x0a, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
+	0x1c, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x7a, 0x2e, 0x41,
+	0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x48, 0x00, 0x52,
+	0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x39, 0x0a, 0x07, 0x74, 0x72, 0x61, 0x69, 0x6c,
+	0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e,
+	0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x7a, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74,
+	0x54, 0x72, 0x61, 0x69, 0x6c, 0x65, 0x72, 0x48, 0x00, 0x52, 0x07, 0x74, 0x72, 0x61, 0x69, 0x6c,
+	0x65, 0x72, 0x12, 0x16, 0x0a, 0x05, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28,
+	0x0c, 0x48, 0x00, 0x52, 0x05, 0x62, 0x79, 0x74, 0x65, 0x73, 0x12, 0x2c, 0x0a, 0x05, 0x70, 0x72,
+	0x6f, 0x74, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
+	0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x48,
+	0x00, 0x52, 0x05, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x42, 0x0a, 0x0a, 0x08, 0x63, 0x6f, 0x6e, 0x74,
+	0x65, 0x6e, 0x74, 0x73, 0x22, 0x94, 0x01, 0x0a, 0x10, 0x46, 0x69, 0x6c, 0x65, 0x41, 0x72, 0x74,
+	0x69, 0x66, 0x61, 0x63, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d,
+	0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a,
+	0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74,
+	0x68, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x69, 0x6d, 0x65, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20,
+	0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x69, 0x6d, 0x65, 0x74, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a,
+	0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x73, 0x69, 0x7a,
+	0x65, 0x12, 0x28, 0x0a, 0x04, 0x68, 0x61, 0x73, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32,
+	0x14, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x48, 0x61, 0x73,
+	0x68, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x68, 0x61, 0x73, 0x68, 0x22, 0x13, 0x0a, 0x11, 0x50,
+	0x72, 0x6f, 0x74, 0x6f, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x54, 0x79, 0x70, 0x65,
+	0x22, 0x11, 0x0a, 0x0f, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x54, 0x72, 0x61, 0x69,
+	0x6c, 0x65, 0x72, 0x22, 0x4f, 0x0a, 0x0c, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75,
+	0x65, 0x73, 0x74, 0x12, 0x24, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28,
+	0x0b, 0x32, 0x10, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x50,
+	0x61, 0x74, 0x68, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x76, 0x65,
+	0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x65, 0x76, 0x65,
+	0x6e, 0x74, 0x49, 0x64, 0x22, 0x46, 0x0a, 0x0d, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x73,
 	0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x35, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18,
 	0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x68, 0x65, 0x61,
 	0x6c, 0x74, 0x68, 0x7a, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x53, 0x74,
-	0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x21, 0x0a, 0x0f,
-	0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12,
-	0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22,
-	0xd7, 0x01, 0x0a, 0x10, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70,
-	0x6f, 0x6e, 0x73, 0x65, 0x12, 0x36, 0x0a, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01,
-	0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x68, 0x65, 0x61, 0x6c,
-	0x74, 0x68, 0x7a, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x48, 0x65, 0x61, 0x64,
-	0x65, 0x72, 0x48, 0x00, 0x52, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x39, 0x0a, 0x07,
-	0x74, 0x72, 0x61, 0x69, 0x6c, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e,
-	0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x7a, 0x2e, 0x41, 0x72, 0x74,
-	0x69, 0x66, 0x61, 0x63, 0x74, 0x54, 0x72, 0x61, 0x69, 0x6c, 0x65, 0x72, 0x48, 0x00, 0x52, 0x07,
-	0x74, 0x72, 0x61, 0x69, 0x6c, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x05, 0x62, 0x79, 0x74, 0x65, 0x73,
-	0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x05, 0x62, 0x79, 0x74, 0x65, 0x73, 0x12,
-	0x2c, 0x0a, 0x05, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14,
-	0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66,
-	0x2e, 0x41, 0x6e, 0x79, 0x48, 0x00, 0x52, 0x05, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x42, 0x0a, 0x0a,
-	0x08, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x22, 0x94, 0x01, 0x0a, 0x10, 0x46, 0x69,
-	0x6c, 0x65, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x12,
-	0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61,
-	0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
-	0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x69, 0x6d, 0x65, 0x74, 0x79,
-	0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x69, 0x6d, 0x65, 0x74, 0x79,
-	0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03,
-	0x52, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x28, 0x0a, 0x04, 0x68, 0x61, 0x73, 0x68, 0x18, 0x05,
-	0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x74, 0x79, 0x70, 0x65,
-	0x73, 0x2e, 0x48, 0x61, 0x73, 0x68, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x68, 0x61, 0x73, 0x68,
-	0x22, 0x13, 0x0a, 0x11, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63,
-	0x74, 0x54, 0x79, 0x70, 0x65, 0x22, 0x11, 0x0a, 0x0f, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63,
-	0x74, 0x54, 0x72, 0x61, 0x69, 0x6c, 0x65, 0x72, 0x22, 0x4f, 0x0a, 0x0c, 0x43, 0x68, 0x65, 0x63,
-	0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x24, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68,
-	0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x74, 0x79,
-	0x70, 0x65, 0x73, 0x2e, 0x50, 0x61, 0x74, 0x68, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x19,
-	0x0a, 0x08, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
-	0x52, 0x07, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x22, 0x46, 0x0a, 0x0d, 0x43, 0x68, 0x65,
-	0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x35, 0x0a, 0x06, 0x73, 0x74,
-	0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x67, 0x6e, 0x6f,
-	0x69, 0x2e, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x7a, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e,
-	0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75,
-	0x73, 0x2a, 0x4a, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x16, 0x0a, 0x12, 0x53,
-	0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45,
-	0x44, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x48, 0x45,
-	0x41, 0x4c, 0x54, 0x48, 0x59, 0x10, 0x01, 0x12, 0x14, 0x0a, 0x10, 0x53, 0x54, 0x41, 0x54, 0x55,
-	0x53, 0x5f, 0x55, 0x4e, 0x48, 0x45, 0x41, 0x4c, 0x54, 0x48, 0x59, 0x10, 0x02, 0x32, 0xf1, 0x02,
-	0x0a, 0x07, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x7a, 0x12, 0x3c, 0x0a, 0x03, 0x47, 0x65, 0x74,
-	0x12, 0x18, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x7a, 0x2e,
-	0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x67, 0x6e, 0x6f,
-	0x69, 0x2e, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x7a, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73,
-	0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3f, 0x0a, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x12,
-	0x19, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x7a, 0x2e, 0x4c,
-	0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x67, 0x6e, 0x6f,
+	0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2a, 0x4a, 0x0a, 0x06,
+	0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x16, 0x0a, 0x12, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53,
+	0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x12,
+	0x0a, 0x0e, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x48, 0x45, 0x41, 0x4c, 0x54, 0x48, 0x59,
+	0x10, 0x01, 0x12, 0x14, 0x0a, 0x10, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x48,
+	0x45, 0x41, 0x4c, 0x54, 0x48, 0x59, 0x10, 0x02, 0x32, 0xf1, 0x02, 0x0a, 0x07, 0x48, 0x65, 0x61,
+	0x6c, 0x74, 0x68, 0x7a, 0x12, 0x3c, 0x0a, 0x03, 0x47, 0x65, 0x74, 0x12, 0x18, 0x2e, 0x67, 0x6e,
+	0x6f, 0x69, 0x2e, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x7a, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65,
+	0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x68, 0x65, 0x61,
+	0x6c, 0x74, 0x68, 0x7a, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
+	0x22, 0x00, 0x12, 0x3f, 0x0a, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x19, 0x2e, 0x67, 0x6e, 0x6f,
 	0x69, 0x2e, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x7a, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65,
-	0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x54, 0x0a, 0x0b, 0x41, 0x63, 0x6b, 0x6e,
-	0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x12, 0x20, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x68,
-	0x65, 0x61, 0x6c, 0x74, 0x68, 0x7a, 0x2e, 0x41, 0x63, 0x6b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64,
-	0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x67, 0x6e, 0x6f, 0x69,
-	0x2e, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x7a, 0x2e, 0x41, 0x63, 0x6b, 0x6e, 0x6f, 0x77, 0x6c,
-	0x65, 0x64, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4d,
-	0x0a, 0x08, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x12, 0x1d, 0x2e, 0x67, 0x6e, 0x6f,
-	0x69, 0x2e, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x7a, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61,
-	0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x67, 0x6e, 0x6f, 0x69,
-	0x2e, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x7a, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63,
-	0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x30, 0x01, 0x12, 0x42, 0x0a,
-	0x05, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x12, 0x1a, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x68, 0x65,
-	0x61, 0x6c, 0x74, 0x68, 0x7a, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65,
-	0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68,
-	0x7a, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22,
-	0x00, 0x42, 0x2c, 0xd2, 0x3e, 0x05, 0x31, 0x2e, 0x33, 0x2e, 0x30, 0x5a, 0x22, 0x67, 0x69, 0x74,
-	0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66,
-	0x69, 0x67, 0x2f, 0x67, 0x6e, 0x6f, 0x69, 0x2f, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x7a, 0x62,
-	0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+	0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x68, 0x65, 0x61,
+	0x6c, 0x74, 0x68, 0x7a, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
+	0x65, 0x22, 0x00, 0x12, 0x54, 0x0a, 0x0b, 0x41, 0x63, 0x6b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64,
+	0x67, 0x65, 0x12, 0x20, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68,
+	0x7a, 0x2e, 0x41, 0x63, 0x6b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x52, 0x65, 0x71,
+	0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x68, 0x65, 0x61, 0x6c,
+	0x74, 0x68, 0x7a, 0x2e, 0x41, 0x63, 0x6b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x52,
+	0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4d, 0x0a, 0x08, 0x41, 0x72, 0x74,
+	0x69, 0x66, 0x61, 0x63, 0x74, 0x12, 0x1d, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x68, 0x65, 0x61,
+	0x6c, 0x74, 0x68, 0x7a, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x52, 0x65, 0x71,
+	0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x68, 0x65, 0x61, 0x6c,
+	0x74, 0x68, 0x7a, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70,
+	0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x30, 0x01, 0x12, 0x42, 0x0a, 0x05, 0x43, 0x68, 0x65, 0x63,
+	0x6b, 0x12, 0x1a, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x7a,
+	0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e,
+	0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x7a, 0x2e, 0x43, 0x68, 0x65,
+	0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x2c, 0xd2, 0x3e,
+	0x05, 0x31, 0x2e, 0x33, 0x2e, 0x30, 0x5a, 0x22, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63,
+	0x6f, 0x6d, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x67, 0x6e,
+	0x6f, 0x69, 0x2f, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x7a, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74,
+	0x6f, 0x33,
 }
 
 var (
-	file_healthz_healthz_proto_rawDescOnce sync.Once
-	file_healthz_healthz_proto_rawDescData = file_healthz_healthz_proto_rawDesc
+	file_github_com_openconfig_gnoi_healthz_healthz_proto_rawDescOnce sync.Once
+	file_github_com_openconfig_gnoi_healthz_healthz_proto_rawDescData = file_github_com_openconfig_gnoi_healthz_healthz_proto_rawDesc
 )
 
-func file_healthz_healthz_proto_rawDescGZIP() []byte {
-	file_healthz_healthz_proto_rawDescOnce.Do(func() {
-		file_healthz_healthz_proto_rawDescData = protoimpl.X.CompressGZIP(file_healthz_healthz_proto_rawDescData)
+func file_github_com_openconfig_gnoi_healthz_healthz_proto_rawDescGZIP() []byte {
+	file_github_com_openconfig_gnoi_healthz_healthz_proto_rawDescOnce.Do(func() {
+		file_github_com_openconfig_gnoi_healthz_healthz_proto_rawDescData = protoimpl.X.CompressGZIP(file_github_com_openconfig_gnoi_healthz_healthz_proto_rawDescData)
 	})
-	return file_healthz_healthz_proto_rawDescData
+	return file_github_com_openconfig_gnoi_healthz_healthz_proto_rawDescData
 }
 
-var file_healthz_healthz_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
-var file_healthz_healthz_proto_msgTypes = make([]protoimpl.MessageInfo, 15)
-var file_healthz_healthz_proto_goTypes = []interface{}{
+var file_github_com_openconfig_gnoi_healthz_healthz_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
+var file_github_com_openconfig_gnoi_healthz_healthz_proto_msgTypes = make([]protoimpl.MessageInfo, 15)
+var file_github_com_openconfig_gnoi_healthz_healthz_proto_goTypes = []any{
 	(Status)(0),                   // 0: gnoi.healthz.Status
 	(*GetRequest)(nil),            // 1: gnoi.healthz.GetRequest
 	(*GetResponse)(nil),           // 2: gnoi.healthz.GetResponse
@@ -1188,7 +1161,7 @@ var file_healthz_healthz_proto_goTypes = []interface{}{
 	(*timestamppb.Timestamp)(nil), // 18: google.protobuf.Timestamp
 	(*types.HashType)(nil),        // 19: gnoi.types.HashType
 }
-var file_healthz_healthz_proto_depIdxs = []int32{
+var file_github_com_openconfig_gnoi_healthz_healthz_proto_depIdxs = []int32{
 	16, // 0: gnoi.healthz.GetRequest.path:type_name -> gnoi.types.Path
 	4,  // 1: gnoi.healthz.GetResponse.component:type_name -> gnoi.healthz.ComponentStatus
 	11, // 2: gnoi.healthz.ArtifactHeader.file:type_name -> gnoi.healthz.FileArtifactType
@@ -1228,199 +1201,17 @@ var file_healthz_healthz_proto_depIdxs = []int32{
 	0,  // [0:22] is the sub-list for field type_name
 }
 
-func init() { file_healthz_healthz_proto_init() }
-func file_healthz_healthz_proto_init() {
-	if File_healthz_healthz_proto != nil {
+func init() { file_github_com_openconfig_gnoi_healthz_healthz_proto_init() }
+func file_github_com_openconfig_gnoi_healthz_healthz_proto_init() {
+	if File_github_com_openconfig_gnoi_healthz_healthz_proto != nil {
 		return
 	}
-	if !protoimpl.UnsafeEnabled {
-		file_healthz_healthz_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*GetRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_healthz_healthz_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*GetResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_healthz_healthz_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*ArtifactHeader); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_healthz_healthz_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*ComponentStatus); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_healthz_healthz_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*ListRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_healthz_healthz_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*ListResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_healthz_healthz_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*AcknowledgeRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_healthz_healthz_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*AcknowledgeResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_healthz_healthz_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*ArtifactRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_healthz_healthz_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*ArtifactResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_healthz_healthz_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*FileArtifactType); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_healthz_healthz_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*ProtoArtifactType); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_healthz_healthz_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*ArtifactTrailer); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_healthz_healthz_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*CheckRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_healthz_healthz_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*CheckResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-	}
-	file_healthz_healthz_proto_msgTypes[2].OneofWrappers = []interface{}{
+	file_github_com_openconfig_gnoi_healthz_healthz_proto_msgTypes[2].OneofWrappers = []any{
 		(*ArtifactHeader_File)(nil),
 		(*ArtifactHeader_Proto)(nil),
 		(*ArtifactHeader_Custom)(nil),
 	}
-	file_healthz_healthz_proto_msgTypes[9].OneofWrappers = []interface{}{
+	file_github_com_openconfig_gnoi_healthz_healthz_proto_msgTypes[9].OneofWrappers = []any{
 		(*ArtifactResponse_Header)(nil),
 		(*ArtifactResponse_Trailer)(nil),
 		(*ArtifactResponse_Bytes)(nil),
@@ -1430,19 +1221,19 @@ func file_healthz_healthz_proto_init() {
 	out := protoimpl.TypeBuilder{
 		File: protoimpl.DescBuilder{
 			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
-			RawDescriptor: file_healthz_healthz_proto_rawDesc,
+			RawDescriptor: file_github_com_openconfig_gnoi_healthz_healthz_proto_rawDesc,
 			NumEnums:      1,
 			NumMessages:   15,
 			NumExtensions: 0,
 			NumServices:   1,
 		},
-		GoTypes:           file_healthz_healthz_proto_goTypes,
-		DependencyIndexes: file_healthz_healthz_proto_depIdxs,
-		EnumInfos:         file_healthz_healthz_proto_enumTypes,
-		MessageInfos:      file_healthz_healthz_proto_msgTypes,
+		GoTypes:           file_github_com_openconfig_gnoi_healthz_healthz_proto_goTypes,
+		DependencyIndexes: file_github_com_openconfig_gnoi_healthz_healthz_proto_depIdxs,
+		EnumInfos:         file_github_com_openconfig_gnoi_healthz_healthz_proto_enumTypes,
+		MessageInfos:      file_github_com_openconfig_gnoi_healthz_healthz_proto_msgTypes,
 	}.Build()
-	File_healthz_healthz_proto = out.File
-	file_healthz_healthz_proto_rawDesc = nil
-	file_healthz_healthz_proto_goTypes = nil
-	file_healthz_healthz_proto_depIdxs = nil
+	File_github_com_openconfig_gnoi_healthz_healthz_proto = out.File
+	file_github_com_openconfig_gnoi_healthz_healthz_proto_rawDesc = nil
+	file_github_com_openconfig_gnoi_healthz_healthz_proto_goTypes = nil
+	file_github_com_openconfig_gnoi_healthz_healthz_proto_depIdxs = nil
 }
diff --git a/healthz/healthz_grpc.pb.go b/healthz/healthz_grpc.pb.go
index e0cd6465..d7e8a6cc 100644
--- a/healthz/healthz_grpc.pb.go
+++ b/healthz/healthz_grpc.pb.go
@@ -1,8 +1,8 @@
 // Code generated by protoc-gen-go-grpc. DO NOT EDIT.
 // versions:
-// - protoc-gen-go-grpc v1.2.0
-// - protoc             v3.21.10
-// source: healthz/healthz.proto
+// - protoc-gen-go-grpc v1.5.1
+// - protoc             v5.29.3
+// source: github.com/openconfig/gnoi/healthz/healthz.proto
 
 package healthz
 
@@ -15,8 +15,16 @@ import (
 
 // This is a compile-time assertion to ensure that this generated file
 // is compatible with the grpc package it is being compiled against.
-// Requires gRPC-Go v1.32.0 or later.
-const _ = grpc.SupportPackageIsVersion7
+// Requires gRPC-Go v1.64.0 or later.
+const _ = grpc.SupportPackageIsVersion9
+
+const (
+	Healthz_Get_FullMethodName         = "/gnoi.healthz.Healthz/Get"
+	Healthz_List_FullMethodName        = "/gnoi.healthz.Healthz/List"
+	Healthz_Acknowledge_FullMethodName = "/gnoi.healthz.Healthz/Acknowledge"
+	Healthz_Artifact_FullMethodName    = "/gnoi.healthz.Healthz/Artifact"
+	Healthz_Check_FullMethodName       = "/gnoi.healthz.Healthz/Check"
+)
 
 // HealthzClient is the client API for Healthz service.
 //
@@ -25,7 +33,7 @@ type HealthzClient interface {
 	Get(ctx context.Context, in *GetRequest, opts ...grpc.CallOption) (*GetResponse, error)
 	List(ctx context.Context, in *ListRequest, opts ...grpc.CallOption) (*ListResponse, error)
 	Acknowledge(ctx context.Context, in *AcknowledgeRequest, opts ...grpc.CallOption) (*AcknowledgeResponse, error)
-	Artifact(ctx context.Context, in *ArtifactRequest, opts ...grpc.CallOption) (Healthz_ArtifactClient, error)
+	Artifact(ctx context.Context, in *ArtifactRequest, opts ...grpc.CallOption) (grpc.ServerStreamingClient[ArtifactResponse], error)
 	Check(ctx context.Context, in *CheckRequest, opts ...grpc.CallOption) (*CheckResponse, error)
 }
 
@@ -38,8 +46,9 @@ func NewHealthzClient(cc grpc.ClientConnInterface) HealthzClient {
 }
 
 func (c *healthzClient) Get(ctx context.Context, in *GetRequest, opts ...grpc.CallOption) (*GetResponse, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
 	out := new(GetResponse)
-	err := c.cc.Invoke(ctx, "/gnoi.healthz.Healthz/Get", in, out, opts...)
+	err := c.cc.Invoke(ctx, Healthz_Get_FullMethodName, in, out, cOpts...)
 	if err != nil {
 		return nil, err
 	}
@@ -47,8 +56,9 @@ func (c *healthzClient) Get(ctx context.Context, in *GetRequest, opts ...grpc.Ca
 }
 
 func (c *healthzClient) List(ctx context.Context, in *ListRequest, opts ...grpc.CallOption) (*ListResponse, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
 	out := new(ListResponse)
-	err := c.cc.Invoke(ctx, "/gnoi.healthz.Healthz/List", in, out, opts...)
+	err := c.cc.Invoke(ctx, Healthz_List_FullMethodName, in, out, cOpts...)
 	if err != nil {
 		return nil, err
 	}
@@ -56,20 +66,22 @@ func (c *healthzClient) List(ctx context.Context, in *ListRequest, opts ...grpc.
 }
 
 func (c *healthzClient) Acknowledge(ctx context.Context, in *AcknowledgeRequest, opts ...grpc.CallOption) (*AcknowledgeResponse, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
 	out := new(AcknowledgeResponse)
-	err := c.cc.Invoke(ctx, "/gnoi.healthz.Healthz/Acknowledge", in, out, opts...)
+	err := c.cc.Invoke(ctx, Healthz_Acknowledge_FullMethodName, in, out, cOpts...)
 	if err != nil {
 		return nil, err
 	}
 	return out, nil
 }
 
-func (c *healthzClient) Artifact(ctx context.Context, in *ArtifactRequest, opts ...grpc.CallOption) (Healthz_ArtifactClient, error) {
-	stream, err := c.cc.NewStream(ctx, &Healthz_ServiceDesc.Streams[0], "/gnoi.healthz.Healthz/Artifact", opts...)
+func (c *healthzClient) Artifact(ctx context.Context, in *ArtifactRequest, opts ...grpc.CallOption) (grpc.ServerStreamingClient[ArtifactResponse], error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	stream, err := c.cc.NewStream(ctx, &Healthz_ServiceDesc.Streams[0], Healthz_Artifact_FullMethodName, cOpts...)
 	if err != nil {
 		return nil, err
 	}
-	x := &healthzArtifactClient{stream}
+	x := &grpc.GenericClientStream[ArtifactRequest, ArtifactResponse]{ClientStream: stream}
 	if err := x.ClientStream.SendMsg(in); err != nil {
 		return nil, err
 	}
@@ -79,26 +91,13 @@ func (c *healthzClient) Artifact(ctx context.Context, in *ArtifactRequest, opts
 	return x, nil
 }
 
-type Healthz_ArtifactClient interface {
-	Recv() (*ArtifactResponse, error)
-	grpc.ClientStream
-}
-
-type healthzArtifactClient struct {
-	grpc.ClientStream
-}
-
-func (x *healthzArtifactClient) Recv() (*ArtifactResponse, error) {
-	m := new(ArtifactResponse)
-	if err := x.ClientStream.RecvMsg(m); err != nil {
-		return nil, err
-	}
-	return m, nil
-}
+// This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name.
+type Healthz_ArtifactClient = grpc.ServerStreamingClient[ArtifactResponse]
 
 func (c *healthzClient) Check(ctx context.Context, in *CheckRequest, opts ...grpc.CallOption) (*CheckResponse, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
 	out := new(CheckResponse)
-	err := c.cc.Invoke(ctx, "/gnoi.healthz.Healthz/Check", in, out, opts...)
+	err := c.cc.Invoke(ctx, Healthz_Check_FullMethodName, in, out, cOpts...)
 	if err != nil {
 		return nil, err
 	}
@@ -106,20 +105,22 @@ func (c *healthzClient) Check(ctx context.Context, in *CheckRequest, opts ...grp
 }
 
 // HealthzServer is the server API for Healthz service.
-// All implementations must embed UnimplementedHealthzServer
-// for forward compatibility
+// All implementations should embed UnimplementedHealthzServer
+// for forward compatibility.
 type HealthzServer interface {
 	Get(context.Context, *GetRequest) (*GetResponse, error)
 	List(context.Context, *ListRequest) (*ListResponse, error)
 	Acknowledge(context.Context, *AcknowledgeRequest) (*AcknowledgeResponse, error)
-	Artifact(*ArtifactRequest, Healthz_ArtifactServer) error
+	Artifact(*ArtifactRequest, grpc.ServerStreamingServer[ArtifactResponse]) error
 	Check(context.Context, *CheckRequest) (*CheckResponse, error)
-	mustEmbedUnimplementedHealthzServer()
 }
 
-// UnimplementedHealthzServer must be embedded to have forward compatible implementations.
-type UnimplementedHealthzServer struct {
-}
+// UnimplementedHealthzServer should be embedded to have
+// forward compatible implementations.
+//
+// NOTE: this should be embedded by value instead of pointer to avoid a nil
+// pointer dereference when methods are called.
+type UnimplementedHealthzServer struct{}
 
 func (UnimplementedHealthzServer) Get(context.Context, *GetRequest) (*GetResponse, error) {
 	return nil, status.Errorf(codes.Unimplemented, "method Get not implemented")
@@ -130,13 +131,13 @@ func (UnimplementedHealthzServer) List(context.Context, *ListRequest) (*ListResp
 func (UnimplementedHealthzServer) Acknowledge(context.Context, *AcknowledgeRequest) (*AcknowledgeResponse, error) {
 	return nil, status.Errorf(codes.Unimplemented, "method Acknowledge not implemented")
 }
-func (UnimplementedHealthzServer) Artifact(*ArtifactRequest, Healthz_ArtifactServer) error {
+func (UnimplementedHealthzServer) Artifact(*ArtifactRequest, grpc.ServerStreamingServer[ArtifactResponse]) error {
 	return status.Errorf(codes.Unimplemented, "method Artifact not implemented")
 }
 func (UnimplementedHealthzServer) Check(context.Context, *CheckRequest) (*CheckResponse, error) {
 	return nil, status.Errorf(codes.Unimplemented, "method Check not implemented")
 }
-func (UnimplementedHealthzServer) mustEmbedUnimplementedHealthzServer() {}
+func (UnimplementedHealthzServer) testEmbeddedByValue() {}
 
 // UnsafeHealthzServer may be embedded to opt out of forward compatibility for this service.
 // Use of this interface is not recommended, as added methods to HealthzServer will
@@ -146,6 +147,13 @@ type UnsafeHealthzServer interface {
 }
 
 func RegisterHealthzServer(s grpc.ServiceRegistrar, srv HealthzServer) {
+	// If the following call pancis, it indicates UnimplementedHealthzServer was
+	// embedded by pointer and is nil.  This will cause panics if an
+	// unimplemented method is ever invoked, so we test this at initialization
+	// time to prevent it from happening at runtime later due to I/O.
+	if t, ok := srv.(interface{ testEmbeddedByValue() }); ok {
+		t.testEmbeddedByValue()
+	}
 	s.RegisterService(&Healthz_ServiceDesc, srv)
 }
 
@@ -159,7 +167,7 @@ func _Healthz_Get_Handler(srv interface{}, ctx context.Context, dec func(interfa
 	}
 	info := &grpc.UnaryServerInfo{
 		Server:     srv,
-		FullMethod: "/gnoi.healthz.Healthz/Get",
+		FullMethod: Healthz_Get_FullMethodName,
 	}
 	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
 		return srv.(HealthzServer).Get(ctx, req.(*GetRequest))
@@ -177,7 +185,7 @@ func _Healthz_List_Handler(srv interface{}, ctx context.Context, dec func(interf
 	}
 	info := &grpc.UnaryServerInfo{
 		Server:     srv,
-		FullMethod: "/gnoi.healthz.Healthz/List",
+		FullMethod: Healthz_List_FullMethodName,
 	}
 	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
 		return srv.(HealthzServer).List(ctx, req.(*ListRequest))
@@ -195,7 +203,7 @@ func _Healthz_Acknowledge_Handler(srv interface{}, ctx context.Context, dec func
 	}
 	info := &grpc.UnaryServerInfo{
 		Server:     srv,
-		FullMethod: "/gnoi.healthz.Healthz/Acknowledge",
+		FullMethod: Healthz_Acknowledge_FullMethodName,
 	}
 	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
 		return srv.(HealthzServer).Acknowledge(ctx, req.(*AcknowledgeRequest))
@@ -208,21 +216,11 @@ func _Healthz_Artifact_Handler(srv interface{}, stream grpc.ServerStream) error
 	if err := stream.RecvMsg(m); err != nil {
 		return err
 	}
-	return srv.(HealthzServer).Artifact(m, &healthzArtifactServer{stream})
+	return srv.(HealthzServer).Artifact(m, &grpc.GenericServerStream[ArtifactRequest, ArtifactResponse]{ServerStream: stream})
 }
 
-type Healthz_ArtifactServer interface {
-	Send(*ArtifactResponse) error
-	grpc.ServerStream
-}
-
-type healthzArtifactServer struct {
-	grpc.ServerStream
-}
-
-func (x *healthzArtifactServer) Send(m *ArtifactResponse) error {
-	return x.ServerStream.SendMsg(m)
-}
+// This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name.
+type Healthz_ArtifactServer = grpc.ServerStreamingServer[ArtifactResponse]
 
 func _Healthz_Check_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
 	in := new(CheckRequest)
@@ -234,7 +232,7 @@ func _Healthz_Check_Handler(srv interface{}, ctx context.Context, dec func(inter
 	}
 	info := &grpc.UnaryServerInfo{
 		Server:     srv,
-		FullMethod: "/gnoi.healthz.Healthz/Check",
+		FullMethod: Healthz_Check_FullMethodName,
 	}
 	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
 		return srv.(HealthzServer).Check(ctx, req.(*CheckRequest))
@@ -273,5 +271,5 @@ var Healthz_ServiceDesc = grpc.ServiceDesc{
 			ServerStreams: true,
 		},
 	},
-	Metadata: "healthz/healthz.proto",
+	Metadata: "github.com/openconfig/gnoi/healthz/healthz.proto",
 }
diff --git a/layer2/BUILD.bazel b/layer2/BUILD.bazel
index 4715f6c6..1e2c0db2 100644
--- a/layer2/BUILD.bazel
+++ b/layer2/BUILD.bazel
@@ -1,8 +1,8 @@
-load("@rules_proto//proto:defs.bzl", "proto_library")
+load("@com_github_grpc_grpc//bazel:cc_grpc_library.bzl", "cc_grpc_library")
+load("@com_google_protobuf//bazel:cc_proto_library.bzl", "cc_proto_library")
+load("@com_google_protobuf//bazel:proto_library.bzl", "proto_library")
 load("@io_bazel_rules_go//go:def.bzl", "go_library")
 load("@io_bazel_rules_go//proto:def.bzl", "go_proto_library")
-load("@com_github_grpc_grpc//bazel:cc_grpc_library.bzl", "cc_grpc_library")
-load("//:common.bzl", "use_new_compilers")
 
 #Copyright 2021 Google LLC
 #
@@ -23,11 +23,10 @@ package(
     licenses = ["notice"],
 )
 
-use_new_compilers()
-
 proto_library(
     name = "layer2_proto",
     srcs = ["layer2.proto"],
+    import_prefix = "github.com/openconfig/gnoi",
     deps = ["//types:types_proto"],
 )
 
@@ -46,8 +45,8 @@ cc_grpc_library(
 go_proto_library(
     name = "layer2_go_proto",
     compilers = [
-        "go_protoc_gen_go",
-        "go_protoc_gen_go_grpc",
+        "@io_bazel_rules_go//proto:go_grpc_v2",
+        "@io_bazel_rules_go//proto:go_proto",
     ],
     importpath = "github.com/openconfig/gnoi/layer2",
     proto = ":layer2_proto",
diff --git a/layer2/layer2.pb.go b/layer2/layer2.pb.go
index 92cfe0aa..3d2732d5 100644
--- a/layer2/layer2.pb.go
+++ b/layer2/layer2.pb.go
@@ -1,8 +1,8 @@
 // Code generated by protoc-gen-go. DO NOT EDIT.
 // versions:
-// 	protoc-gen-go v1.30.0
-// 	protoc        v3.21.10
-// source: layer2/layer2.proto
+// 	protoc-gen-go v1.36.2
+// 	protoc        v5.29.3
+// source: github.com/openconfig/gnoi/layer2/layer2.proto
 
 package layer2
 
@@ -60,11 +60,11 @@ func (x PerformBERTResponse_BERTState) String() string {
 }
 
 func (PerformBERTResponse_BERTState) Descriptor() protoreflect.EnumDescriptor {
-	return file_layer2_layer2_proto_enumTypes[0].Descriptor()
+	return file_github_com_openconfig_gnoi_layer2_layer2_proto_enumTypes[0].Descriptor()
 }
 
 func (PerformBERTResponse_BERTState) Type() protoreflect.EnumType {
-	return &file_layer2_layer2_proto_enumTypes[0]
+	return &file_github_com_openconfig_gnoi_layer2_layer2_proto_enumTypes[0]
 }
 
 func (x PerformBERTResponse_BERTState) Number() protoreflect.EnumNumber {
@@ -73,25 +73,22 @@ func (x PerformBERTResponse_BERTState) Number() protoreflect.EnumNumber {
 
 // Deprecated: Use PerformBERTResponse_BERTState.Descriptor instead.
 func (PerformBERTResponse_BERTState) EnumDescriptor() ([]byte, []int) {
-	return file_layer2_layer2_proto_rawDescGZIP(), []int{5, 0}
+	return file_github_com_openconfig_gnoi_layer2_layer2_proto_rawDescGZIP(), []int{5, 0}
 }
 
 type ClearNeighborDiscoveryRequest struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Protocol      types.L3Protocol       `protobuf:"varint,1,opt,name=protocol,proto3,enum=gnoi.types.L3Protocol" json:"protocol,omitempty"`
+	Address       string                 `protobuf:"bytes,2,opt,name=address,proto3" json:"address,omitempty"`
 	unknownFields protoimpl.UnknownFields
-
-	Protocol types.L3Protocol `protobuf:"varint,1,opt,name=protocol,proto3,enum=gnoi.types.L3Protocol" json:"protocol,omitempty"`
-	Address  string           `protobuf:"bytes,2,opt,name=address,proto3" json:"address,omitempty"`
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *ClearNeighborDiscoveryRequest) Reset() {
 	*x = ClearNeighborDiscoveryRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_layer2_layer2_proto_msgTypes[0]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_layer2_layer2_proto_msgTypes[0]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *ClearNeighborDiscoveryRequest) String() string {
@@ -101,8 +98,8 @@ func (x *ClearNeighborDiscoveryRequest) String() string {
 func (*ClearNeighborDiscoveryRequest) ProtoMessage() {}
 
 func (x *ClearNeighborDiscoveryRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_layer2_layer2_proto_msgTypes[0]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_layer2_layer2_proto_msgTypes[0]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -114,7 +111,7 @@ func (x *ClearNeighborDiscoveryRequest) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use ClearNeighborDiscoveryRequest.ProtoReflect.Descriptor instead.
 func (*ClearNeighborDiscoveryRequest) Descriptor() ([]byte, []int) {
-	return file_layer2_layer2_proto_rawDescGZIP(), []int{0}
+	return file_github_com_openconfig_gnoi_layer2_layer2_proto_rawDescGZIP(), []int{0}
 }
 
 func (x *ClearNeighborDiscoveryRequest) GetProtocol() types.L3Protocol {
@@ -132,18 +129,16 @@ func (x *ClearNeighborDiscoveryRequest) GetAddress() string {
 }
 
 type ClearNeighborDiscoveryResponse struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState `protogen:"open.v1"`
 	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *ClearNeighborDiscoveryResponse) Reset() {
 	*x = ClearNeighborDiscoveryResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_layer2_layer2_proto_msgTypes[1]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_layer2_layer2_proto_msgTypes[1]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *ClearNeighborDiscoveryResponse) String() string {
@@ -153,8 +148,8 @@ func (x *ClearNeighborDiscoveryResponse) String() string {
 func (*ClearNeighborDiscoveryResponse) ProtoMessage() {}
 
 func (x *ClearNeighborDiscoveryResponse) ProtoReflect() protoreflect.Message {
-	mi := &file_layer2_layer2_proto_msgTypes[1]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_layer2_layer2_proto_msgTypes[1]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -166,24 +161,21 @@ func (x *ClearNeighborDiscoveryResponse) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use ClearNeighborDiscoveryResponse.ProtoReflect.Descriptor instead.
 func (*ClearNeighborDiscoveryResponse) Descriptor() ([]byte, []int) {
-	return file_layer2_layer2_proto_rawDescGZIP(), []int{1}
+	return file_github_com_openconfig_gnoi_layer2_layer2_proto_rawDescGZIP(), []int{1}
 }
 
 type ClearSpanningTreeRequest struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Interface     *types.Path            `protobuf:"bytes,1,opt,name=interface,proto3" json:"interface,omitempty"`
 	unknownFields protoimpl.UnknownFields
-
-	Interface *types.Path `protobuf:"bytes,1,opt,name=interface,proto3" json:"interface,omitempty"`
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *ClearSpanningTreeRequest) Reset() {
 	*x = ClearSpanningTreeRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_layer2_layer2_proto_msgTypes[2]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_layer2_layer2_proto_msgTypes[2]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *ClearSpanningTreeRequest) String() string {
@@ -193,8 +185,8 @@ func (x *ClearSpanningTreeRequest) String() string {
 func (*ClearSpanningTreeRequest) ProtoMessage() {}
 
 func (x *ClearSpanningTreeRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_layer2_layer2_proto_msgTypes[2]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_layer2_layer2_proto_msgTypes[2]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -206,7 +198,7 @@ func (x *ClearSpanningTreeRequest) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use ClearSpanningTreeRequest.ProtoReflect.Descriptor instead.
 func (*ClearSpanningTreeRequest) Descriptor() ([]byte, []int) {
-	return file_layer2_layer2_proto_rawDescGZIP(), []int{2}
+	return file_github_com_openconfig_gnoi_layer2_layer2_proto_rawDescGZIP(), []int{2}
 }
 
 func (x *ClearSpanningTreeRequest) GetInterface() *types.Path {
@@ -217,18 +209,16 @@ func (x *ClearSpanningTreeRequest) GetInterface() *types.Path {
 }
 
 type ClearSpanningTreeResponse struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState `protogen:"open.v1"`
 	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *ClearSpanningTreeResponse) Reset() {
 	*x = ClearSpanningTreeResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_layer2_layer2_proto_msgTypes[3]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_layer2_layer2_proto_msgTypes[3]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *ClearSpanningTreeResponse) String() string {
@@ -238,8 +228,8 @@ func (x *ClearSpanningTreeResponse) String() string {
 func (*ClearSpanningTreeResponse) ProtoMessage() {}
 
 func (x *ClearSpanningTreeResponse) ProtoReflect() protoreflect.Message {
-	mi := &file_layer2_layer2_proto_msgTypes[3]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_layer2_layer2_proto_msgTypes[3]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -251,25 +241,22 @@ func (x *ClearSpanningTreeResponse) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use ClearSpanningTreeResponse.ProtoReflect.Descriptor instead.
 func (*ClearSpanningTreeResponse) Descriptor() ([]byte, []int) {
-	return file_layer2_layer2_proto_rawDescGZIP(), []int{3}
+	return file_github_com_openconfig_gnoi_layer2_layer2_proto_rawDescGZIP(), []int{3}
 }
 
 type PerformBERTRequest struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Id            string                 `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
+	Interface     *types.Path            `protobuf:"bytes,2,opt,name=interface,proto3" json:"interface,omitempty"`
 	unknownFields protoimpl.UnknownFields
-
-	Id        string      `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
-	Interface *types.Path `protobuf:"bytes,2,opt,name=interface,proto3" json:"interface,omitempty"`
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *PerformBERTRequest) Reset() {
 	*x = PerformBERTRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_layer2_layer2_proto_msgTypes[4]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_layer2_layer2_proto_msgTypes[4]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *PerformBERTRequest) String() string {
@@ -279,8 +266,8 @@ func (x *PerformBERTRequest) String() string {
 func (*PerformBERTRequest) ProtoMessage() {}
 
 func (x *PerformBERTRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_layer2_layer2_proto_msgTypes[4]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_layer2_layer2_proto_msgTypes[4]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -292,7 +279,7 @@ func (x *PerformBERTRequest) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use PerformBERTRequest.ProtoReflect.Descriptor instead.
 func (*PerformBERTRequest) Descriptor() ([]byte, []int) {
-	return file_layer2_layer2_proto_rawDescGZIP(), []int{4}
+	return file_github_com_openconfig_gnoi_layer2_layer2_proto_rawDescGZIP(), []int{4}
 }
 
 func (x *PerformBERTRequest) GetId() string {
@@ -310,25 +297,22 @@ func (x *PerformBERTRequest) GetInterface() *types.Path {
 }
 
 type PerformBERTResponse struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
+	state         protoimpl.MessageState        `protogen:"open.v1"`
 	Id            string                        `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
 	State         PerformBERTResponse_BERTState `protobuf:"varint,2,opt,name=state,proto3,enum=gnoi.layer2.PerformBERTResponse_BERTState" json:"state,omitempty"`
 	ElapsedPeriod int64                         `protobuf:"varint,3,opt,name=elapsed_period,json=elapsedPeriod,proto3" json:"elapsed_period,omitempty"`
 	Pattern       []byte                        `protobuf:"bytes,4,opt,name=pattern,proto3" json:"pattern,omitempty"`
 	Errors        int64                         `protobuf:"varint,5,opt,name=errors,proto3" json:"errors,omitempty"`
 	ReceivedBits  int64                         `protobuf:"varint,6,opt,name=received_bits,json=receivedBits,proto3" json:"received_bits,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *PerformBERTResponse) Reset() {
 	*x = PerformBERTResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_layer2_layer2_proto_msgTypes[5]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_layer2_layer2_proto_msgTypes[5]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *PerformBERTResponse) String() string {
@@ -338,8 +322,8 @@ func (x *PerformBERTResponse) String() string {
 func (*PerformBERTResponse) ProtoMessage() {}
 
 func (x *PerformBERTResponse) ProtoReflect() protoreflect.Message {
-	mi := &file_layer2_layer2_proto_msgTypes[5]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_layer2_layer2_proto_msgTypes[5]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -351,7 +335,7 @@ func (x *PerformBERTResponse) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use PerformBERTResponse.ProtoReflect.Descriptor instead.
 func (*PerformBERTResponse) Descriptor() ([]byte, []int) {
-	return file_layer2_layer2_proto_rawDescGZIP(), []int{5}
+	return file_github_com_openconfig_gnoi_layer2_layer2_proto_rawDescGZIP(), []int{5}
 }
 
 func (x *PerformBERTResponse) GetId() string {
@@ -397,20 +381,17 @@ func (x *PerformBERTResponse) GetReceivedBits() int64 {
 }
 
 type ClearLLDPInterfaceRequest struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Interface     *types.Path            `protobuf:"bytes,1,opt,name=interface,proto3" json:"interface,omitempty"`
 	unknownFields protoimpl.UnknownFields
-
-	Interface *types.Path `protobuf:"bytes,1,opt,name=interface,proto3" json:"interface,omitempty"`
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *ClearLLDPInterfaceRequest) Reset() {
 	*x = ClearLLDPInterfaceRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_layer2_layer2_proto_msgTypes[6]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_layer2_layer2_proto_msgTypes[6]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *ClearLLDPInterfaceRequest) String() string {
@@ -420,8 +401,8 @@ func (x *ClearLLDPInterfaceRequest) String() string {
 func (*ClearLLDPInterfaceRequest) ProtoMessage() {}
 
 func (x *ClearLLDPInterfaceRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_layer2_layer2_proto_msgTypes[6]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_layer2_layer2_proto_msgTypes[6]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -433,7 +414,7 @@ func (x *ClearLLDPInterfaceRequest) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use ClearLLDPInterfaceRequest.ProtoReflect.Descriptor instead.
 func (*ClearLLDPInterfaceRequest) Descriptor() ([]byte, []int) {
-	return file_layer2_layer2_proto_rawDescGZIP(), []int{6}
+	return file_github_com_openconfig_gnoi_layer2_layer2_proto_rawDescGZIP(), []int{6}
 }
 
 func (x *ClearLLDPInterfaceRequest) GetInterface() *types.Path {
@@ -444,18 +425,16 @@ func (x *ClearLLDPInterfaceRequest) GetInterface() *types.Path {
 }
 
 type ClearLLDPInterfaceResponse struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState `protogen:"open.v1"`
 	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *ClearLLDPInterfaceResponse) Reset() {
 	*x = ClearLLDPInterfaceResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_layer2_layer2_proto_msgTypes[7]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_layer2_layer2_proto_msgTypes[7]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *ClearLLDPInterfaceResponse) String() string {
@@ -465,8 +444,8 @@ func (x *ClearLLDPInterfaceResponse) String() string {
 func (*ClearLLDPInterfaceResponse) ProtoMessage() {}
 
 func (x *ClearLLDPInterfaceResponse) ProtoReflect() protoreflect.Message {
-	mi := &file_layer2_layer2_proto_msgTypes[7]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_layer2_layer2_proto_msgTypes[7]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -478,26 +457,23 @@ func (x *ClearLLDPInterfaceResponse) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use ClearLLDPInterfaceResponse.ProtoReflect.Descriptor instead.
 func (*ClearLLDPInterfaceResponse) Descriptor() ([]byte, []int) {
-	return file_layer2_layer2_proto_rawDescGZIP(), []int{7}
+	return file_github_com_openconfig_gnoi_layer2_layer2_proto_rawDescGZIP(), []int{7}
 }
 
 type SendWakeOnLANRequest struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Interface     *types.Path            `protobuf:"bytes,1,opt,name=interface,proto3" json:"interface,omitempty"`
+	Address       string                 `protobuf:"bytes,2,opt,name=address,proto3" json:"address,omitempty"`
+	MacAddress    []byte                 `protobuf:"bytes,3,opt,name=mac_address,json=macAddress,proto3" json:"mac_address,omitempty"`
 	unknownFields protoimpl.UnknownFields
-
-	Interface  *types.Path `protobuf:"bytes,1,opt,name=interface,proto3" json:"interface,omitempty"`
-	Address    string      `protobuf:"bytes,2,opt,name=address,proto3" json:"address,omitempty"`
-	MacAddress []byte      `protobuf:"bytes,3,opt,name=mac_address,json=macAddress,proto3" json:"mac_address,omitempty"`
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *SendWakeOnLANRequest) Reset() {
 	*x = SendWakeOnLANRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_layer2_layer2_proto_msgTypes[8]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_layer2_layer2_proto_msgTypes[8]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *SendWakeOnLANRequest) String() string {
@@ -507,8 +483,8 @@ func (x *SendWakeOnLANRequest) String() string {
 func (*SendWakeOnLANRequest) ProtoMessage() {}
 
 func (x *SendWakeOnLANRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_layer2_layer2_proto_msgTypes[8]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_layer2_layer2_proto_msgTypes[8]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -520,7 +496,7 @@ func (x *SendWakeOnLANRequest) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use SendWakeOnLANRequest.ProtoReflect.Descriptor instead.
 func (*SendWakeOnLANRequest) Descriptor() ([]byte, []int) {
-	return file_layer2_layer2_proto_rawDescGZIP(), []int{8}
+	return file_github_com_openconfig_gnoi_layer2_layer2_proto_rawDescGZIP(), []int{8}
 }
 
 func (x *SendWakeOnLANRequest) GetInterface() *types.Path {
@@ -545,18 +521,16 @@ func (x *SendWakeOnLANRequest) GetMacAddress() []byte {
 }
 
 type SendWakeOnLANResponse struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState `protogen:"open.v1"`
 	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *SendWakeOnLANResponse) Reset() {
 	*x = SendWakeOnLANResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_layer2_layer2_proto_msgTypes[9]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_layer2_layer2_proto_msgTypes[9]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *SendWakeOnLANResponse) String() string {
@@ -566,8 +540,8 @@ func (x *SendWakeOnLANResponse) String() string {
 func (*SendWakeOnLANResponse) ProtoMessage() {}
 
 func (x *SendWakeOnLANResponse) ProtoReflect() protoreflect.Message {
-	mi := &file_layer2_layer2_proto_msgTypes[9]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_layer2_layer2_proto_msgTypes[9]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -579,127 +553,128 @@ func (x *SendWakeOnLANResponse) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use SendWakeOnLANResponse.ProtoReflect.Descriptor instead.
 func (*SendWakeOnLANResponse) Descriptor() ([]byte, []int) {
-	return file_layer2_layer2_proto_rawDescGZIP(), []int{9}
-}
-
-var File_layer2_layer2_proto protoreflect.FileDescriptor
-
-var file_layer2_layer2_proto_rawDesc = []byte{
-	0x0a, 0x13, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x32, 0x2f, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x32, 0x2e,
-	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0b, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x6c, 0x61, 0x79, 0x65,
-	0x72, 0x32, 0x1a, 0x2c, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f,
-	0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x67, 0x6e, 0x6f, 0x69, 0x2f, 0x74,
-	0x79, 0x70, 0x65, 0x73, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
-	0x22, 0x6d, 0x0a, 0x1d, 0x43, 0x6c, 0x65, 0x61, 0x72, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f,
-	0x72, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
-	0x74, 0x12, 0x32, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x01, 0x20,
-	0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73,
-	0x2e, 0x4c, 0x33, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x52, 0x08, 0x70, 0x72, 0x6f,
-	0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73,
-	0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22,
-	0x20, 0x0a, 0x1e, 0x43, 0x6c, 0x65, 0x61, 0x72, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72,
-	0x44, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
-	0x65, 0x22, 0x4a, 0x0a, 0x18, 0x43, 0x6c, 0x65, 0x61, 0x72, 0x53, 0x70, 0x61, 0x6e, 0x6e, 0x69,
-	0x6e, 0x67, 0x54, 0x72, 0x65, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2e, 0x0a,
-	0x09, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,
-	0x32, 0x10, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x50, 0x61,
-	0x74, 0x68, 0x52, 0x09, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x22, 0x1b, 0x0a,
-	0x19, 0x43, 0x6c, 0x65, 0x61, 0x72, 0x53, 0x70, 0x61, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x54, 0x72,
-	0x65, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x54, 0x0a, 0x12, 0x50, 0x65,
-	0x72, 0x66, 0x6f, 0x72, 0x6d, 0x42, 0x45, 0x52, 0x54, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
-	0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64,
-	0x12, 0x2e, 0x0a, 0x09, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x18, 0x02, 0x20,
-	0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73,
-	0x2e, 0x50, 0x61, 0x74, 0x68, 0x52, 0x09, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65,
-	0x22, 0xb3, 0x02, 0x0a, 0x13, 0x50, 0x65, 0x72, 0x66, 0x6f, 0x72, 0x6d, 0x42, 0x45, 0x52, 0x54,
-	0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01,
-	0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x40, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74,
-	0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x6c,
-	0x61, 0x79, 0x65, 0x72, 0x32, 0x2e, 0x50, 0x65, 0x72, 0x66, 0x6f, 0x72, 0x6d, 0x42, 0x45, 0x52,
-	0x54, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x42, 0x45, 0x52, 0x54, 0x53, 0x74,
-	0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x65, 0x6c,
-	0x61, 0x70, 0x73, 0x65, 0x64, 0x5f, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x18, 0x03, 0x20, 0x01,
-	0x28, 0x03, 0x52, 0x0d, 0x65, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x50, 0x65, 0x72, 0x69, 0x6f,
-	0x64, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x18, 0x04, 0x20, 0x01,
-	0x28, 0x0c, 0x52, 0x07, 0x70, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x65,
-	0x72, 0x72, 0x6f, 0x72, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x65, 0x72, 0x72,
-	0x6f, 0x72, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x5f,
-	0x62, 0x69, 0x74, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x72, 0x65, 0x63, 0x65,
-	0x69, 0x76, 0x65, 0x64, 0x42, 0x69, 0x74, 0x73, 0x22, 0x4c, 0x0a, 0x09, 0x42, 0x45, 0x52, 0x54,
-	0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e,
-	0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x44, 0x49, 0x53, 0x41, 0x42, 0x4c, 0x45, 0x44, 0x10, 0x01,
-	0x12, 0x0b, 0x0a, 0x07, 0x52, 0x55, 0x4e, 0x4e, 0x49, 0x4e, 0x47, 0x10, 0x02, 0x12, 0x0c, 0x0a,
-	0x08, 0x43, 0x4f, 0x4d, 0x50, 0x4c, 0x45, 0x54, 0x45, 0x10, 0x03, 0x12, 0x09, 0x0a, 0x05, 0x45,
-	0x52, 0x52, 0x4f, 0x52, 0x10, 0x04, 0x22, 0x4b, 0x0a, 0x19, 0x43, 0x6c, 0x65, 0x61, 0x72, 0x4c,
-	0x4c, 0x44, 0x50, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75,
-	0x65, 0x73, 0x74, 0x12, 0x2e, 0x0a, 0x09, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65,
-	0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x74, 0x79,
-	0x70, 0x65, 0x73, 0x2e, 0x50, 0x61, 0x74, 0x68, 0x52, 0x09, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66,
-	0x61, 0x63, 0x65, 0x22, 0x1c, 0x0a, 0x1a, 0x43, 0x6c, 0x65, 0x61, 0x72, 0x4c, 0x4c, 0x44, 0x50,
-	0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
-	0x65, 0x22, 0x81, 0x01, 0x0a, 0x14, 0x53, 0x65, 0x6e, 0x64, 0x57, 0x61, 0x6b, 0x65, 0x4f, 0x6e,
-	0x4c, 0x41, 0x4e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2e, 0x0a, 0x09, 0x69, 0x6e,
-	0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e,
-	0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x50, 0x61, 0x74, 0x68, 0x52,
-	0x09, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64,
-	0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64,
-	0x72, 0x65, 0x73, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x6d, 0x61, 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72,
-	0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x6d, 0x61, 0x63, 0x41, 0x64,
-	0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0x17, 0x0a, 0x15, 0x53, 0x65, 0x6e, 0x64, 0x57, 0x61, 0x6b,
-	0x65, 0x4f, 0x6e, 0x4c, 0x41, 0x4e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x32, 0xfc,
-	0x03, 0x0a, 0x06, 0x4c, 0x61, 0x79, 0x65, 0x72, 0x32, 0x12, 0x73, 0x0a, 0x16, 0x43, 0x6c, 0x65,
-	0x61, 0x72, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x76,
-	0x65, 0x72, 0x79, 0x12, 0x2a, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x6c, 0x61, 0x79, 0x65, 0x72,
-	0x32, 0x2e, 0x43, 0x6c, 0x65, 0x61, 0x72, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x44,
-	0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
-	0x2b, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x32, 0x2e, 0x43, 0x6c,
+	return file_github_com_openconfig_gnoi_layer2_layer2_proto_rawDescGZIP(), []int{9}
+}
+
+var File_github_com_openconfig_gnoi_layer2_layer2_proto protoreflect.FileDescriptor
+
+var file_github_com_openconfig_gnoi_layer2_layer2_proto_rawDesc = []byte{
+	0x0a, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x70, 0x65,
+	0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x67, 0x6e, 0x6f, 0x69, 0x2f, 0x6c, 0x61, 0x79,
+	0x65, 0x72, 0x32, 0x2f, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x32, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
+	0x12, 0x0b, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x32, 0x1a, 0x2c, 0x67,
+	0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f,
+	0x6e, 0x66, 0x69, 0x67, 0x2f, 0x67, 0x6e, 0x6f, 0x69, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2f,
+	0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x6d, 0x0a, 0x1d, 0x43,
+	0x6c, 0x65, 0x61, 0x72, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x44, 0x69, 0x73, 0x63,
+	0x6f, 0x76, 0x65, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x32, 0x0a, 0x08,
+	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16,
+	0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4c, 0x33, 0x50, 0x72,
+	0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c,
+	0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28,
+	0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0x20, 0x0a, 0x1e, 0x43, 0x6c,
 	0x65, 0x61, 0x72, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x44, 0x69, 0x73, 0x63, 0x6f,
-	0x76, 0x65, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x64,
-	0x0a, 0x11, 0x43, 0x6c, 0x65, 0x61, 0x72, 0x53, 0x70, 0x61, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x54,
-	0x72, 0x65, 0x65, 0x12, 0x25, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x6c, 0x61, 0x79, 0x65, 0x72,
-	0x32, 0x2e, 0x43, 0x6c, 0x65, 0x61, 0x72, 0x53, 0x70, 0x61, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x54,
-	0x72, 0x65, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x67, 0x6e, 0x6f,
-	0x69, 0x2e, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x32, 0x2e, 0x43, 0x6c, 0x65, 0x61, 0x72, 0x53, 0x70,
-	0x61, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x54, 0x72, 0x65, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
-	0x73, 0x65, 0x22, 0x00, 0x12, 0x54, 0x0a, 0x0b, 0x50, 0x65, 0x72, 0x66, 0x6f, 0x72, 0x6d, 0x42,
-	0x45, 0x52, 0x54, 0x12, 0x1f, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x6c, 0x61, 0x79, 0x65, 0x72,
-	0x32, 0x2e, 0x50, 0x65, 0x72, 0x66, 0x6f, 0x72, 0x6d, 0x42, 0x45, 0x52, 0x54, 0x52, 0x65, 0x71,
-	0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x6c, 0x61, 0x79, 0x65,
-	0x72, 0x32, 0x2e, 0x50, 0x65, 0x72, 0x66, 0x6f, 0x72, 0x6d, 0x42, 0x45, 0x52, 0x54, 0x52, 0x65,
-	0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x30, 0x01, 0x12, 0x67, 0x0a, 0x12, 0x43, 0x6c,
-	0x65, 0x61, 0x72, 0x4c, 0x4c, 0x44, 0x50, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65,
-	0x12, 0x26, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x32, 0x2e, 0x43,
-	0x6c, 0x65, 0x61, 0x72, 0x4c, 0x4c, 0x44, 0x50, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63,
-	0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e,
-	0x6c, 0x61, 0x79, 0x65, 0x72, 0x32, 0x2e, 0x43, 0x6c, 0x65, 0x61, 0x72, 0x4c, 0x4c, 0x44, 0x50,
-	0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
-	0x65, 0x22, 0x00, 0x12, 0x58, 0x0a, 0x0d, 0x53, 0x65, 0x6e, 0x64, 0x57, 0x61, 0x6b, 0x65, 0x4f,
-	0x6e, 0x4c, 0x41, 0x4e, 0x12, 0x21, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x6c, 0x61, 0x79, 0x65,
-	0x72, 0x32, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x57, 0x61, 0x6b, 0x65, 0x4f, 0x6e, 0x4c, 0x41, 0x4e,
-	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x6c,
-	0x61, 0x79, 0x65, 0x72, 0x32, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x57, 0x61, 0x6b, 0x65, 0x4f, 0x6e,
-	0x4c, 0x41, 0x4e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x2b, 0xd2,
-	0x3e, 0x05, 0x30, 0x2e, 0x31, 0x2e, 0x30, 0x5a, 0x21, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e,
-	0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x67,
-	0x6e, 0x6f, 0x69, 0x2f, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x32, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74,
-	0x6f, 0x33,
+	0x76, 0x65, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x4a, 0x0a, 0x18,
+	0x43, 0x6c, 0x65, 0x61, 0x72, 0x53, 0x70, 0x61, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x54, 0x72, 0x65,
+	0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2e, 0x0a, 0x09, 0x69, 0x6e, 0x74, 0x65,
+	0x72, 0x66, 0x61, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x67, 0x6e,
+	0x6f, 0x69, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x50, 0x61, 0x74, 0x68, 0x52, 0x09, 0x69,
+	0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x22, 0x1b, 0x0a, 0x19, 0x43, 0x6c, 0x65, 0x61,
+	0x72, 0x53, 0x70, 0x61, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x54, 0x72, 0x65, 0x65, 0x52, 0x65, 0x73,
+	0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x54, 0x0a, 0x12, 0x50, 0x65, 0x72, 0x66, 0x6f, 0x72, 0x6d,
+	0x42, 0x45, 0x52, 0x54, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69,
+	0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x2e, 0x0a, 0x09, 0x69,
+	0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10,
+	0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x50, 0x61, 0x74, 0x68,
+	0x52, 0x09, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x22, 0xb3, 0x02, 0x0a, 0x13,
+	0x50, 0x65, 0x72, 0x66, 0x6f, 0x72, 0x6d, 0x42, 0x45, 0x52, 0x54, 0x52, 0x65, 0x73, 0x70, 0x6f,
+	0x6e, 0x73, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
+	0x02, 0x69, 0x64, 0x12, 0x40, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01,
+	0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x32,
+	0x2e, 0x50, 0x65, 0x72, 0x66, 0x6f, 0x72, 0x6d, 0x42, 0x45, 0x52, 0x54, 0x52, 0x65, 0x73, 0x70,
+	0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x42, 0x45, 0x52, 0x54, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05,
+	0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x65, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64,
+	0x5f, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x65,
+	0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x12, 0x18, 0x0a, 0x07,
+	0x70, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x70,
+	0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73,
+	0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x12, 0x23,
+	0x0a, 0x0d, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x5f, 0x62, 0x69, 0x74, 0x73, 0x18,
+	0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x42,
+	0x69, 0x74, 0x73, 0x22, 0x4c, 0x0a, 0x09, 0x42, 0x45, 0x52, 0x54, 0x53, 0x74, 0x61, 0x74, 0x65,
+	0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x0c, 0x0a,
+	0x08, 0x44, 0x49, 0x53, 0x41, 0x42, 0x4c, 0x45, 0x44, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x52,
+	0x55, 0x4e, 0x4e, 0x49, 0x4e, 0x47, 0x10, 0x02, 0x12, 0x0c, 0x0a, 0x08, 0x43, 0x4f, 0x4d, 0x50,
+	0x4c, 0x45, 0x54, 0x45, 0x10, 0x03, 0x12, 0x09, 0x0a, 0x05, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10,
+	0x04, 0x22, 0x4b, 0x0a, 0x19, 0x43, 0x6c, 0x65, 0x61, 0x72, 0x4c, 0x4c, 0x44, 0x50, 0x49, 0x6e,
+	0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2e,
+	0x0a, 0x09, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,
+	0x0b, 0x32, 0x10, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x50,
+	0x61, 0x74, 0x68, 0x52, 0x09, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x22, 0x1c,
+	0x0a, 0x1a, 0x43, 0x6c, 0x65, 0x61, 0x72, 0x4c, 0x4c, 0x44, 0x50, 0x49, 0x6e, 0x74, 0x65, 0x72,
+	0x66, 0x61, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x81, 0x01, 0x0a,
+	0x14, 0x53, 0x65, 0x6e, 0x64, 0x57, 0x61, 0x6b, 0x65, 0x4f, 0x6e, 0x4c, 0x41, 0x4e, 0x52, 0x65,
+	0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2e, 0x0a, 0x09, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61,
+	0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e,
+	0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x50, 0x61, 0x74, 0x68, 0x52, 0x09, 0x69, 0x6e, 0x74, 0x65,
+	0x72, 0x66, 0x61, 0x63, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73,
+	0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12,
+	0x1f, 0x0a, 0x0b, 0x6d, 0x61, 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03,
+	0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x6d, 0x61, 0x63, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73,
+	0x22, 0x17, 0x0a, 0x15, 0x53, 0x65, 0x6e, 0x64, 0x57, 0x61, 0x6b, 0x65, 0x4f, 0x6e, 0x4c, 0x41,
+	0x4e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x32, 0xfc, 0x03, 0x0a, 0x06, 0x4c, 0x61,
+	0x79, 0x65, 0x72, 0x32, 0x12, 0x73, 0x0a, 0x16, 0x43, 0x6c, 0x65, 0x61, 0x72, 0x4e, 0x65, 0x69,
+	0x67, 0x68, 0x62, 0x6f, 0x72, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x12, 0x2a,
+	0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x32, 0x2e, 0x43, 0x6c, 0x65,
+	0x61, 0x72, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x76,
+	0x65, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x67, 0x6e, 0x6f,
+	0x69, 0x2e, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x32, 0x2e, 0x43, 0x6c, 0x65, 0x61, 0x72, 0x4e, 0x65,
+	0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x52,
+	0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x64, 0x0a, 0x11, 0x43, 0x6c, 0x65,
+	0x61, 0x72, 0x53, 0x70, 0x61, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x54, 0x72, 0x65, 0x65, 0x12, 0x25,
+	0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x32, 0x2e, 0x43, 0x6c, 0x65,
+	0x61, 0x72, 0x53, 0x70, 0x61, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x54, 0x72, 0x65, 0x65, 0x52, 0x65,
+	0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x6c, 0x61, 0x79,
+	0x65, 0x72, 0x32, 0x2e, 0x43, 0x6c, 0x65, 0x61, 0x72, 0x53, 0x70, 0x61, 0x6e, 0x6e, 0x69, 0x6e,
+	0x67, 0x54, 0x72, 0x65, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12,
+	0x54, 0x0a, 0x0b, 0x50, 0x65, 0x72, 0x66, 0x6f, 0x72, 0x6d, 0x42, 0x45, 0x52, 0x54, 0x12, 0x1f,
+	0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x32, 0x2e, 0x50, 0x65, 0x72,
+	0x66, 0x6f, 0x72, 0x6d, 0x42, 0x45, 0x52, 0x54, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
+	0x20, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x32, 0x2e, 0x50, 0x65,
+	0x72, 0x66, 0x6f, 0x72, 0x6d, 0x42, 0x45, 0x52, 0x54, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
+	0x65, 0x22, 0x00, 0x30, 0x01, 0x12, 0x67, 0x0a, 0x12, 0x43, 0x6c, 0x65, 0x61, 0x72, 0x4c, 0x4c,
+	0x44, 0x50, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x12, 0x26, 0x2e, 0x67, 0x6e,
+	0x6f, 0x69, 0x2e, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x32, 0x2e, 0x43, 0x6c, 0x65, 0x61, 0x72, 0x4c,
+	0x4c, 0x44, 0x50, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75,
+	0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x6c, 0x61, 0x79, 0x65, 0x72,
+	0x32, 0x2e, 0x43, 0x6c, 0x65, 0x61, 0x72, 0x4c, 0x4c, 0x44, 0x50, 0x49, 0x6e, 0x74, 0x65, 0x72,
+	0x66, 0x61, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x58,
+	0x0a, 0x0d, 0x53, 0x65, 0x6e, 0x64, 0x57, 0x61, 0x6b, 0x65, 0x4f, 0x6e, 0x4c, 0x41, 0x4e, 0x12,
+	0x21, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x32, 0x2e, 0x53, 0x65,
+	0x6e, 0x64, 0x57, 0x61, 0x6b, 0x65, 0x4f, 0x6e, 0x4c, 0x41, 0x4e, 0x52, 0x65, 0x71, 0x75, 0x65,
+	0x73, 0x74, 0x1a, 0x22, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x32,
+	0x2e, 0x53, 0x65, 0x6e, 0x64, 0x57, 0x61, 0x6b, 0x65, 0x4f, 0x6e, 0x4c, 0x41, 0x4e, 0x52, 0x65,
+	0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x2b, 0xd2, 0x3e, 0x05, 0x30, 0x2e, 0x31,
+	0x2e, 0x30, 0x5a, 0x21, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f,
+	0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x67, 0x6e, 0x6f, 0x69, 0x2f, 0x6c,
+	0x61, 0x79, 0x65, 0x72, 0x32, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
 }
 
 var (
-	file_layer2_layer2_proto_rawDescOnce sync.Once
-	file_layer2_layer2_proto_rawDescData = file_layer2_layer2_proto_rawDesc
+	file_github_com_openconfig_gnoi_layer2_layer2_proto_rawDescOnce sync.Once
+	file_github_com_openconfig_gnoi_layer2_layer2_proto_rawDescData = file_github_com_openconfig_gnoi_layer2_layer2_proto_rawDesc
 )
 
-func file_layer2_layer2_proto_rawDescGZIP() []byte {
-	file_layer2_layer2_proto_rawDescOnce.Do(func() {
-		file_layer2_layer2_proto_rawDescData = protoimpl.X.CompressGZIP(file_layer2_layer2_proto_rawDescData)
+func file_github_com_openconfig_gnoi_layer2_layer2_proto_rawDescGZIP() []byte {
+	file_github_com_openconfig_gnoi_layer2_layer2_proto_rawDescOnce.Do(func() {
+		file_github_com_openconfig_gnoi_layer2_layer2_proto_rawDescData = protoimpl.X.CompressGZIP(file_github_com_openconfig_gnoi_layer2_layer2_proto_rawDescData)
 	})
-	return file_layer2_layer2_proto_rawDescData
+	return file_github_com_openconfig_gnoi_layer2_layer2_proto_rawDescData
 }
 
-var file_layer2_layer2_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
-var file_layer2_layer2_proto_msgTypes = make([]protoimpl.MessageInfo, 10)
-var file_layer2_layer2_proto_goTypes = []interface{}{
+var file_github_com_openconfig_gnoi_layer2_layer2_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
+var file_github_com_openconfig_gnoi_layer2_layer2_proto_msgTypes = make([]protoimpl.MessageInfo, 10)
+var file_github_com_openconfig_gnoi_layer2_layer2_proto_goTypes = []any{
 	(PerformBERTResponse_BERTState)(0),     // 0: gnoi.layer2.PerformBERTResponse.BERTState
 	(*ClearNeighborDiscoveryRequest)(nil),  // 1: gnoi.layer2.ClearNeighborDiscoveryRequest
 	(*ClearNeighborDiscoveryResponse)(nil), // 2: gnoi.layer2.ClearNeighborDiscoveryResponse
@@ -714,7 +689,7 @@ var file_layer2_layer2_proto_goTypes = []interface{}{
 	(types.L3Protocol)(0),                  // 11: gnoi.types.L3Protocol
 	(*types.Path)(nil),                     // 12: gnoi.types.Path
 }
-var file_layer2_layer2_proto_depIdxs = []int32{
+var file_github_com_openconfig_gnoi_layer2_layer2_proto_depIdxs = []int32{
 	11, // 0: gnoi.layer2.ClearNeighborDiscoveryRequest.protocol:type_name -> gnoi.types.L3Protocol
 	12, // 1: gnoi.layer2.ClearSpanningTreeRequest.interface:type_name -> gnoi.types.Path
 	12, // 2: gnoi.layer2.PerformBERTRequest.interface:type_name -> gnoi.types.Path
@@ -738,150 +713,28 @@ var file_layer2_layer2_proto_depIdxs = []int32{
 	0,  // [0:6] is the sub-list for field type_name
 }
 
-func init() { file_layer2_layer2_proto_init() }
-func file_layer2_layer2_proto_init() {
-	if File_layer2_layer2_proto != nil {
+func init() { file_github_com_openconfig_gnoi_layer2_layer2_proto_init() }
+func file_github_com_openconfig_gnoi_layer2_layer2_proto_init() {
+	if File_github_com_openconfig_gnoi_layer2_layer2_proto != nil {
 		return
 	}
-	if !protoimpl.UnsafeEnabled {
-		file_layer2_layer2_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*ClearNeighborDiscoveryRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_layer2_layer2_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*ClearNeighborDiscoveryResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_layer2_layer2_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*ClearSpanningTreeRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_layer2_layer2_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*ClearSpanningTreeResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_layer2_layer2_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*PerformBERTRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_layer2_layer2_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*PerformBERTResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_layer2_layer2_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*ClearLLDPInterfaceRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_layer2_layer2_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*ClearLLDPInterfaceResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_layer2_layer2_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*SendWakeOnLANRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_layer2_layer2_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*SendWakeOnLANResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-	}
 	type x struct{}
 	out := protoimpl.TypeBuilder{
 		File: protoimpl.DescBuilder{
 			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
-			RawDescriptor: file_layer2_layer2_proto_rawDesc,
+			RawDescriptor: file_github_com_openconfig_gnoi_layer2_layer2_proto_rawDesc,
 			NumEnums:      1,
 			NumMessages:   10,
 			NumExtensions: 0,
 			NumServices:   1,
 		},
-		GoTypes:           file_layer2_layer2_proto_goTypes,
-		DependencyIndexes: file_layer2_layer2_proto_depIdxs,
-		EnumInfos:         file_layer2_layer2_proto_enumTypes,
-		MessageInfos:      file_layer2_layer2_proto_msgTypes,
+		GoTypes:           file_github_com_openconfig_gnoi_layer2_layer2_proto_goTypes,
+		DependencyIndexes: file_github_com_openconfig_gnoi_layer2_layer2_proto_depIdxs,
+		EnumInfos:         file_github_com_openconfig_gnoi_layer2_layer2_proto_enumTypes,
+		MessageInfos:      file_github_com_openconfig_gnoi_layer2_layer2_proto_msgTypes,
 	}.Build()
-	File_layer2_layer2_proto = out.File
-	file_layer2_layer2_proto_rawDesc = nil
-	file_layer2_layer2_proto_goTypes = nil
-	file_layer2_layer2_proto_depIdxs = nil
+	File_github_com_openconfig_gnoi_layer2_layer2_proto = out.File
+	file_github_com_openconfig_gnoi_layer2_layer2_proto_rawDesc = nil
+	file_github_com_openconfig_gnoi_layer2_layer2_proto_goTypes = nil
+	file_github_com_openconfig_gnoi_layer2_layer2_proto_depIdxs = nil
 }
diff --git a/layer2/layer2_grpc.pb.go b/layer2/layer2_grpc.pb.go
index 1690a8c5..e95a9608 100644
--- a/layer2/layer2_grpc.pb.go
+++ b/layer2/layer2_grpc.pb.go
@@ -1,8 +1,8 @@
 // Code generated by protoc-gen-go-grpc. DO NOT EDIT.
 // versions:
-// - protoc-gen-go-grpc v1.2.0
-// - protoc             v3.21.10
-// source: layer2/layer2.proto
+// - protoc-gen-go-grpc v1.5.1
+// - protoc             v5.29.3
+// source: github.com/openconfig/gnoi/layer2/layer2.proto
 
 package layer2
 
@@ -15,8 +15,16 @@ import (
 
 // This is a compile-time assertion to ensure that this generated file
 // is compatible with the grpc package it is being compiled against.
-// Requires gRPC-Go v1.32.0 or later.
-const _ = grpc.SupportPackageIsVersion7
+// Requires gRPC-Go v1.64.0 or later.
+const _ = grpc.SupportPackageIsVersion9
+
+const (
+	Layer2_ClearNeighborDiscovery_FullMethodName = "/gnoi.layer2.Layer2/ClearNeighborDiscovery"
+	Layer2_ClearSpanningTree_FullMethodName      = "/gnoi.layer2.Layer2/ClearSpanningTree"
+	Layer2_PerformBERT_FullMethodName            = "/gnoi.layer2.Layer2/PerformBERT"
+	Layer2_ClearLLDPInterface_FullMethodName     = "/gnoi.layer2.Layer2/ClearLLDPInterface"
+	Layer2_SendWakeOnLAN_FullMethodName          = "/gnoi.layer2.Layer2/SendWakeOnLAN"
+)
 
 // Layer2Client is the client API for Layer2 service.
 //
@@ -24,7 +32,7 @@ const _ = grpc.SupportPackageIsVersion7
 type Layer2Client interface {
 	ClearNeighborDiscovery(ctx context.Context, in *ClearNeighborDiscoveryRequest, opts ...grpc.CallOption) (*ClearNeighborDiscoveryResponse, error)
 	ClearSpanningTree(ctx context.Context, in *ClearSpanningTreeRequest, opts ...grpc.CallOption) (*ClearSpanningTreeResponse, error)
-	PerformBERT(ctx context.Context, in *PerformBERTRequest, opts ...grpc.CallOption) (Layer2_PerformBERTClient, error)
+	PerformBERT(ctx context.Context, in *PerformBERTRequest, opts ...grpc.CallOption) (grpc.ServerStreamingClient[PerformBERTResponse], error)
 	ClearLLDPInterface(ctx context.Context, in *ClearLLDPInterfaceRequest, opts ...grpc.CallOption) (*ClearLLDPInterfaceResponse, error)
 	SendWakeOnLAN(ctx context.Context, in *SendWakeOnLANRequest, opts ...grpc.CallOption) (*SendWakeOnLANResponse, error)
 }
@@ -38,8 +46,9 @@ func NewLayer2Client(cc grpc.ClientConnInterface) Layer2Client {
 }
 
 func (c *layer2Client) ClearNeighborDiscovery(ctx context.Context, in *ClearNeighborDiscoveryRequest, opts ...grpc.CallOption) (*ClearNeighborDiscoveryResponse, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
 	out := new(ClearNeighborDiscoveryResponse)
-	err := c.cc.Invoke(ctx, "/gnoi.layer2.Layer2/ClearNeighborDiscovery", in, out, opts...)
+	err := c.cc.Invoke(ctx, Layer2_ClearNeighborDiscovery_FullMethodName, in, out, cOpts...)
 	if err != nil {
 		return nil, err
 	}
@@ -47,20 +56,22 @@ func (c *layer2Client) ClearNeighborDiscovery(ctx context.Context, in *ClearNeig
 }
 
 func (c *layer2Client) ClearSpanningTree(ctx context.Context, in *ClearSpanningTreeRequest, opts ...grpc.CallOption) (*ClearSpanningTreeResponse, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
 	out := new(ClearSpanningTreeResponse)
-	err := c.cc.Invoke(ctx, "/gnoi.layer2.Layer2/ClearSpanningTree", in, out, opts...)
+	err := c.cc.Invoke(ctx, Layer2_ClearSpanningTree_FullMethodName, in, out, cOpts...)
 	if err != nil {
 		return nil, err
 	}
 	return out, nil
 }
 
-func (c *layer2Client) PerformBERT(ctx context.Context, in *PerformBERTRequest, opts ...grpc.CallOption) (Layer2_PerformBERTClient, error) {
-	stream, err := c.cc.NewStream(ctx, &Layer2_ServiceDesc.Streams[0], "/gnoi.layer2.Layer2/PerformBERT", opts...)
+func (c *layer2Client) PerformBERT(ctx context.Context, in *PerformBERTRequest, opts ...grpc.CallOption) (grpc.ServerStreamingClient[PerformBERTResponse], error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	stream, err := c.cc.NewStream(ctx, &Layer2_ServiceDesc.Streams[0], Layer2_PerformBERT_FullMethodName, cOpts...)
 	if err != nil {
 		return nil, err
 	}
-	x := &layer2PerformBERTClient{stream}
+	x := &grpc.GenericClientStream[PerformBERTRequest, PerformBERTResponse]{ClientStream: stream}
 	if err := x.ClientStream.SendMsg(in); err != nil {
 		return nil, err
 	}
@@ -70,26 +81,13 @@ func (c *layer2Client) PerformBERT(ctx context.Context, in *PerformBERTRequest,
 	return x, nil
 }
 
-type Layer2_PerformBERTClient interface {
-	Recv() (*PerformBERTResponse, error)
-	grpc.ClientStream
-}
-
-type layer2PerformBERTClient struct {
-	grpc.ClientStream
-}
-
-func (x *layer2PerformBERTClient) Recv() (*PerformBERTResponse, error) {
-	m := new(PerformBERTResponse)
-	if err := x.ClientStream.RecvMsg(m); err != nil {
-		return nil, err
-	}
-	return m, nil
-}
+// This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name.
+type Layer2_PerformBERTClient = grpc.ServerStreamingClient[PerformBERTResponse]
 
 func (c *layer2Client) ClearLLDPInterface(ctx context.Context, in *ClearLLDPInterfaceRequest, opts ...grpc.CallOption) (*ClearLLDPInterfaceResponse, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
 	out := new(ClearLLDPInterfaceResponse)
-	err := c.cc.Invoke(ctx, "/gnoi.layer2.Layer2/ClearLLDPInterface", in, out, opts...)
+	err := c.cc.Invoke(ctx, Layer2_ClearLLDPInterface_FullMethodName, in, out, cOpts...)
 	if err != nil {
 		return nil, err
 	}
@@ -97,8 +95,9 @@ func (c *layer2Client) ClearLLDPInterface(ctx context.Context, in *ClearLLDPInte
 }
 
 func (c *layer2Client) SendWakeOnLAN(ctx context.Context, in *SendWakeOnLANRequest, opts ...grpc.CallOption) (*SendWakeOnLANResponse, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
 	out := new(SendWakeOnLANResponse)
-	err := c.cc.Invoke(ctx, "/gnoi.layer2.Layer2/SendWakeOnLAN", in, out, opts...)
+	err := c.cc.Invoke(ctx, Layer2_SendWakeOnLAN_FullMethodName, in, out, cOpts...)
 	if err != nil {
 		return nil, err
 	}
@@ -106,20 +105,22 @@ func (c *layer2Client) SendWakeOnLAN(ctx context.Context, in *SendWakeOnLANReque
 }
 
 // Layer2Server is the server API for Layer2 service.
-// All implementations must embed UnimplementedLayer2Server
-// for forward compatibility
+// All implementations should embed UnimplementedLayer2Server
+// for forward compatibility.
 type Layer2Server interface {
 	ClearNeighborDiscovery(context.Context, *ClearNeighborDiscoveryRequest) (*ClearNeighborDiscoveryResponse, error)
 	ClearSpanningTree(context.Context, *ClearSpanningTreeRequest) (*ClearSpanningTreeResponse, error)
-	PerformBERT(*PerformBERTRequest, Layer2_PerformBERTServer) error
+	PerformBERT(*PerformBERTRequest, grpc.ServerStreamingServer[PerformBERTResponse]) error
 	ClearLLDPInterface(context.Context, *ClearLLDPInterfaceRequest) (*ClearLLDPInterfaceResponse, error)
 	SendWakeOnLAN(context.Context, *SendWakeOnLANRequest) (*SendWakeOnLANResponse, error)
-	mustEmbedUnimplementedLayer2Server()
 }
 
-// UnimplementedLayer2Server must be embedded to have forward compatible implementations.
-type UnimplementedLayer2Server struct {
-}
+// UnimplementedLayer2Server should be embedded to have
+// forward compatible implementations.
+//
+// NOTE: this should be embedded by value instead of pointer to avoid a nil
+// pointer dereference when methods are called.
+type UnimplementedLayer2Server struct{}
 
 func (UnimplementedLayer2Server) ClearNeighborDiscovery(context.Context, *ClearNeighborDiscoveryRequest) (*ClearNeighborDiscoveryResponse, error) {
 	return nil, status.Errorf(codes.Unimplemented, "method ClearNeighborDiscovery not implemented")
@@ -127,7 +128,7 @@ func (UnimplementedLayer2Server) ClearNeighborDiscovery(context.Context, *ClearN
 func (UnimplementedLayer2Server) ClearSpanningTree(context.Context, *ClearSpanningTreeRequest) (*ClearSpanningTreeResponse, error) {
 	return nil, status.Errorf(codes.Unimplemented, "method ClearSpanningTree not implemented")
 }
-func (UnimplementedLayer2Server) PerformBERT(*PerformBERTRequest, Layer2_PerformBERTServer) error {
+func (UnimplementedLayer2Server) PerformBERT(*PerformBERTRequest, grpc.ServerStreamingServer[PerformBERTResponse]) error {
 	return status.Errorf(codes.Unimplemented, "method PerformBERT not implemented")
 }
 func (UnimplementedLayer2Server) ClearLLDPInterface(context.Context, *ClearLLDPInterfaceRequest) (*ClearLLDPInterfaceResponse, error) {
@@ -136,7 +137,7 @@ func (UnimplementedLayer2Server) ClearLLDPInterface(context.Context, *ClearLLDPI
 func (UnimplementedLayer2Server) SendWakeOnLAN(context.Context, *SendWakeOnLANRequest) (*SendWakeOnLANResponse, error) {
 	return nil, status.Errorf(codes.Unimplemented, "method SendWakeOnLAN not implemented")
 }
-func (UnimplementedLayer2Server) mustEmbedUnimplementedLayer2Server() {}
+func (UnimplementedLayer2Server) testEmbeddedByValue() {}
 
 // UnsafeLayer2Server may be embedded to opt out of forward compatibility for this service.
 // Use of this interface is not recommended, as added methods to Layer2Server will
@@ -146,6 +147,13 @@ type UnsafeLayer2Server interface {
 }
 
 func RegisterLayer2Server(s grpc.ServiceRegistrar, srv Layer2Server) {
+	// If the following call pancis, it indicates UnimplementedLayer2Server was
+	// embedded by pointer and is nil.  This will cause panics if an
+	// unimplemented method is ever invoked, so we test this at initialization
+	// time to prevent it from happening at runtime later due to I/O.
+	if t, ok := srv.(interface{ testEmbeddedByValue() }); ok {
+		t.testEmbeddedByValue()
+	}
 	s.RegisterService(&Layer2_ServiceDesc, srv)
 }
 
@@ -159,7 +167,7 @@ func _Layer2_ClearNeighborDiscovery_Handler(srv interface{}, ctx context.Context
 	}
 	info := &grpc.UnaryServerInfo{
 		Server:     srv,
-		FullMethod: "/gnoi.layer2.Layer2/ClearNeighborDiscovery",
+		FullMethod: Layer2_ClearNeighborDiscovery_FullMethodName,
 	}
 	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
 		return srv.(Layer2Server).ClearNeighborDiscovery(ctx, req.(*ClearNeighborDiscoveryRequest))
@@ -177,7 +185,7 @@ func _Layer2_ClearSpanningTree_Handler(srv interface{}, ctx context.Context, dec
 	}
 	info := &grpc.UnaryServerInfo{
 		Server:     srv,
-		FullMethod: "/gnoi.layer2.Layer2/ClearSpanningTree",
+		FullMethod: Layer2_ClearSpanningTree_FullMethodName,
 	}
 	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
 		return srv.(Layer2Server).ClearSpanningTree(ctx, req.(*ClearSpanningTreeRequest))
@@ -190,21 +198,11 @@ func _Layer2_PerformBERT_Handler(srv interface{}, stream grpc.ServerStream) erro
 	if err := stream.RecvMsg(m); err != nil {
 		return err
 	}
-	return srv.(Layer2Server).PerformBERT(m, &layer2PerformBERTServer{stream})
+	return srv.(Layer2Server).PerformBERT(m, &grpc.GenericServerStream[PerformBERTRequest, PerformBERTResponse]{ServerStream: stream})
 }
 
-type Layer2_PerformBERTServer interface {
-	Send(*PerformBERTResponse) error
-	grpc.ServerStream
-}
-
-type layer2PerformBERTServer struct {
-	grpc.ServerStream
-}
-
-func (x *layer2PerformBERTServer) Send(m *PerformBERTResponse) error {
-	return x.ServerStream.SendMsg(m)
-}
+// This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name.
+type Layer2_PerformBERTServer = grpc.ServerStreamingServer[PerformBERTResponse]
 
 func _Layer2_ClearLLDPInterface_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
 	in := new(ClearLLDPInterfaceRequest)
@@ -216,7 +214,7 @@ func _Layer2_ClearLLDPInterface_Handler(srv interface{}, ctx context.Context, de
 	}
 	info := &grpc.UnaryServerInfo{
 		Server:     srv,
-		FullMethod: "/gnoi.layer2.Layer2/ClearLLDPInterface",
+		FullMethod: Layer2_ClearLLDPInterface_FullMethodName,
 	}
 	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
 		return srv.(Layer2Server).ClearLLDPInterface(ctx, req.(*ClearLLDPInterfaceRequest))
@@ -234,7 +232,7 @@ func _Layer2_SendWakeOnLAN_Handler(srv interface{}, ctx context.Context, dec fun
 	}
 	info := &grpc.UnaryServerInfo{
 		Server:     srv,
-		FullMethod: "/gnoi.layer2.Layer2/SendWakeOnLAN",
+		FullMethod: Layer2_SendWakeOnLAN_FullMethodName,
 	}
 	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
 		return srv.(Layer2Server).SendWakeOnLAN(ctx, req.(*SendWakeOnLANRequest))
@@ -273,5 +271,5 @@ var Layer2_ServiceDesc = grpc.ServiceDesc{
 			ServerStreams: true,
 		},
 	},
-	Metadata: "layer2/layer2.proto",
+	Metadata: "github.com/openconfig/gnoi/layer2/layer2.proto",
 }
diff --git a/mpls/BUILD.bazel b/mpls/BUILD.bazel
index 3406775e..954a03e4 100644
--- a/mpls/BUILD.bazel
+++ b/mpls/BUILD.bazel
@@ -1,8 +1,8 @@
-load("@rules_proto//proto:defs.bzl", "proto_library")
+load("@com_github_grpc_grpc//bazel:cc_grpc_library.bzl", "cc_grpc_library")
+load("@com_google_protobuf//bazel:cc_proto_library.bzl", "cc_proto_library")
+load("@com_google_protobuf//bazel:proto_library.bzl", "proto_library")
 load("@io_bazel_rules_go//go:def.bzl", "go_library")
 load("@io_bazel_rules_go//proto:def.bzl", "go_proto_library")
-load("@com_github_grpc_grpc//bazel:cc_grpc_library.bzl", "cc_grpc_library")
-load("//:common.bzl", "use_new_compilers")
 
 #Copyright 2021 Google LLC
 #
@@ -23,11 +23,10 @@ package(
     licenses = ["notice"],
 )
 
-use_new_compilers()
-
 proto_library(
     name = "mpls_proto",
     srcs = ["mpls.proto"],
+    import_prefix = "github.com/openconfig/gnoi",
     deps = ["//types:types_proto"],
 )
 
@@ -46,8 +45,8 @@ cc_grpc_library(
 go_proto_library(
     name = "mpls_go_proto",
     compilers = [
-        "go_protoc_gen_go",
-        "go_protoc_gen_go_grpc",
+        "@io_bazel_rules_go//proto:go_grpc_v2",
+        "@io_bazel_rules_go//proto:go_proto",
     ],
     importpath = "github.com/openconfig/gnoi/mpls",
     proto = ":mpls_proto",
diff --git a/mpls/mpls.pb.go b/mpls/mpls.pb.go
index d87f09ce..0b15aef3 100644
--- a/mpls/mpls.pb.go
+++ b/mpls/mpls.pb.go
@@ -1,8 +1,8 @@
 // Code generated by protoc-gen-go. DO NOT EDIT.
 // versions:
-// 	protoc-gen-go v1.30.0
-// 	protoc        v3.21.10
-// source: mpls/mpls.proto
+// 	protoc-gen-go v1.36.2
+// 	protoc        v5.29.3
+// source: github.com/openconfig/gnoi/mpls/mpls.proto
 
 package mpls
 
@@ -63,11 +63,11 @@ func (x ClearLSPRequest_Mode) String() string {
 }
 
 func (ClearLSPRequest_Mode) Descriptor() protoreflect.EnumDescriptor {
-	return file_mpls_mpls_proto_enumTypes[0].Descriptor()
+	return file_github_com_openconfig_gnoi_mpls_mpls_proto_enumTypes[0].Descriptor()
 }
 
 func (ClearLSPRequest_Mode) Type() protoreflect.EnumType {
-	return &file_mpls_mpls_proto_enumTypes[0]
+	return &file_github_com_openconfig_gnoi_mpls_mpls_proto_enumTypes[0]
 }
 
 func (x ClearLSPRequest_Mode) Number() protoreflect.EnumNumber {
@@ -76,7 +76,7 @@ func (x ClearLSPRequest_Mode) Number() protoreflect.EnumNumber {
 
 // Deprecated: Use ClearLSPRequest_Mode.Descriptor instead.
 func (ClearLSPRequest_Mode) EnumDescriptor() ([]byte, []int) {
-	return file_mpls_mpls_proto_rawDescGZIP(), []int{0, 0}
+	return file_github_com_openconfig_gnoi_mpls_mpls_proto_rawDescGZIP(), []int{0, 0}
 }
 
 type MPLSPingRequest_ReplyMode int32
@@ -109,11 +109,11 @@ func (x MPLSPingRequest_ReplyMode) String() string {
 }
 
 func (MPLSPingRequest_ReplyMode) Descriptor() protoreflect.EnumDescriptor {
-	return file_mpls_mpls_proto_enumTypes[1].Descriptor()
+	return file_github_com_openconfig_gnoi_mpls_mpls_proto_enumTypes[1].Descriptor()
 }
 
 func (MPLSPingRequest_ReplyMode) Type() protoreflect.EnumType {
-	return &file_mpls_mpls_proto_enumTypes[1]
+	return &file_github_com_openconfig_gnoi_mpls_mpls_proto_enumTypes[1]
 }
 
 func (x MPLSPingRequest_ReplyMode) Number() protoreflect.EnumNumber {
@@ -122,7 +122,7 @@ func (x MPLSPingRequest_ReplyMode) Number() protoreflect.EnumNumber {
 
 // Deprecated: Use MPLSPingRequest_ReplyMode.Descriptor instead.
 func (MPLSPingRequest_ReplyMode) EnumDescriptor() ([]byte, []int) {
-	return file_mpls_mpls_proto_rawDescGZIP(), []int{6, 0}
+	return file_github_com_openconfig_gnoi_mpls_mpls_proto_rawDescGZIP(), []int{6, 0}
 }
 
 type MPLSPingResponse_EchoResponseCode int32
@@ -158,11 +158,11 @@ func (x MPLSPingResponse_EchoResponseCode) String() string {
 }
 
 func (MPLSPingResponse_EchoResponseCode) Descriptor() protoreflect.EnumDescriptor {
-	return file_mpls_mpls_proto_enumTypes[2].Descriptor()
+	return file_github_com_openconfig_gnoi_mpls_mpls_proto_enumTypes[2].Descriptor()
 }
 
 func (MPLSPingResponse_EchoResponseCode) Type() protoreflect.EnumType {
-	return &file_mpls_mpls_proto_enumTypes[2]
+	return &file_github_com_openconfig_gnoi_mpls_mpls_proto_enumTypes[2]
 }
 
 func (x MPLSPingResponse_EchoResponseCode) Number() protoreflect.EnumNumber {
@@ -171,25 +171,22 @@ func (x MPLSPingResponse_EchoResponseCode) Number() protoreflect.EnumNumber {
 
 // Deprecated: Use MPLSPingResponse_EchoResponseCode.Descriptor instead.
 func (MPLSPingResponse_EchoResponseCode) EnumDescriptor() ([]byte, []int) {
-	return file_mpls_mpls_proto_rawDescGZIP(), []int{7, 0}
+	return file_github_com_openconfig_gnoi_mpls_mpls_proto_rawDescGZIP(), []int{7, 0}
 }
 
 type ClearLSPRequest struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Name          string                 `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
+	Mode          ClearLSPRequest_Mode   `protobuf:"varint,3,opt,name=mode,proto3,enum=gnoi.mpls.ClearLSPRequest_Mode" json:"mode,omitempty"`
 	unknownFields protoimpl.UnknownFields
-
-	Name string               `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
-	Mode ClearLSPRequest_Mode `protobuf:"varint,3,opt,name=mode,proto3,enum=gnoi.mpls.ClearLSPRequest_Mode" json:"mode,omitempty"`
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *ClearLSPRequest) Reset() {
 	*x = ClearLSPRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_mpls_mpls_proto_msgTypes[0]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_mpls_mpls_proto_msgTypes[0]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *ClearLSPRequest) String() string {
@@ -199,8 +196,8 @@ func (x *ClearLSPRequest) String() string {
 func (*ClearLSPRequest) ProtoMessage() {}
 
 func (x *ClearLSPRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_mpls_mpls_proto_msgTypes[0]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_mpls_mpls_proto_msgTypes[0]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -212,7 +209,7 @@ func (x *ClearLSPRequest) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use ClearLSPRequest.ProtoReflect.Descriptor instead.
 func (*ClearLSPRequest) Descriptor() ([]byte, []int) {
-	return file_mpls_mpls_proto_rawDescGZIP(), []int{0}
+	return file_github_com_openconfig_gnoi_mpls_mpls_proto_rawDescGZIP(), []int{0}
 }
 
 func (x *ClearLSPRequest) GetName() string {
@@ -230,18 +227,16 @@ func (x *ClearLSPRequest) GetMode() ClearLSPRequest_Mode {
 }
 
 type ClearLSPResponse struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState `protogen:"open.v1"`
 	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *ClearLSPResponse) Reset() {
 	*x = ClearLSPResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_mpls_mpls_proto_msgTypes[1]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_mpls_mpls_proto_msgTypes[1]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *ClearLSPResponse) String() string {
@@ -251,8 +246,8 @@ func (x *ClearLSPResponse) String() string {
 func (*ClearLSPResponse) ProtoMessage() {}
 
 func (x *ClearLSPResponse) ProtoReflect() protoreflect.Message {
-	mi := &file_mpls_mpls_proto_msgTypes[1]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_mpls_mpls_proto_msgTypes[1]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -264,24 +259,21 @@ func (x *ClearLSPResponse) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use ClearLSPResponse.ProtoReflect.Descriptor instead.
 func (*ClearLSPResponse) Descriptor() ([]byte, []int) {
-	return file_mpls_mpls_proto_rawDescGZIP(), []int{1}
+	return file_github_com_openconfig_gnoi_mpls_mpls_proto_rawDescGZIP(), []int{1}
 }
 
 type ClearLSPCountersRequest struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Name          string                 `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
 	unknownFields protoimpl.UnknownFields
-
-	Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *ClearLSPCountersRequest) Reset() {
 	*x = ClearLSPCountersRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_mpls_mpls_proto_msgTypes[2]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_mpls_mpls_proto_msgTypes[2]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *ClearLSPCountersRequest) String() string {
@@ -291,8 +283,8 @@ func (x *ClearLSPCountersRequest) String() string {
 func (*ClearLSPCountersRequest) ProtoMessage() {}
 
 func (x *ClearLSPCountersRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_mpls_mpls_proto_msgTypes[2]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_mpls_mpls_proto_msgTypes[2]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -304,7 +296,7 @@ func (x *ClearLSPCountersRequest) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use ClearLSPCountersRequest.ProtoReflect.Descriptor instead.
 func (*ClearLSPCountersRequest) Descriptor() ([]byte, []int) {
-	return file_mpls_mpls_proto_rawDescGZIP(), []int{2}
+	return file_github_com_openconfig_gnoi_mpls_mpls_proto_rawDescGZIP(), []int{2}
 }
 
 func (x *ClearLSPCountersRequest) GetName() string {
@@ -315,18 +307,16 @@ func (x *ClearLSPCountersRequest) GetName() string {
 }
 
 type ClearLSPCountersResponse struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState `protogen:"open.v1"`
 	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *ClearLSPCountersResponse) Reset() {
 	*x = ClearLSPCountersResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_mpls_mpls_proto_msgTypes[3]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_mpls_mpls_proto_msgTypes[3]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *ClearLSPCountersResponse) String() string {
@@ -336,8 +326,8 @@ func (x *ClearLSPCountersResponse) String() string {
 func (*ClearLSPCountersResponse) ProtoMessage() {}
 
 func (x *ClearLSPCountersResponse) ProtoReflect() protoreflect.Message {
-	mi := &file_mpls_mpls_proto_msgTypes[3]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_mpls_mpls_proto_msgTypes[3]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -349,25 +339,22 @@ func (x *ClearLSPCountersResponse) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use ClearLSPCountersResponse.ProtoReflect.Descriptor instead.
 func (*ClearLSPCountersResponse) Descriptor() ([]byte, []int) {
-	return file_mpls_mpls_proto_rawDescGZIP(), []int{3}
+	return file_github_com_openconfig_gnoi_mpls_mpls_proto_rawDescGZIP(), []int{3}
 }
 
 type MPLSPingPWEDestination struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Eler          string                 `protobuf:"bytes,1,opt,name=eler,proto3" json:"eler,omitempty"`
+	Vcid          uint32                 `protobuf:"varint,2,opt,name=vcid,proto3" json:"vcid,omitempty"`
 	unknownFields protoimpl.UnknownFields
-
-	Eler string `protobuf:"bytes,1,opt,name=eler,proto3" json:"eler,omitempty"`
-	Vcid uint32 `protobuf:"varint,2,opt,name=vcid,proto3" json:"vcid,omitempty"`
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *MPLSPingPWEDestination) Reset() {
 	*x = MPLSPingPWEDestination{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_mpls_mpls_proto_msgTypes[4]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_mpls_mpls_proto_msgTypes[4]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *MPLSPingPWEDestination) String() string {
@@ -377,8 +364,8 @@ func (x *MPLSPingPWEDestination) String() string {
 func (*MPLSPingPWEDestination) ProtoMessage() {}
 
 func (x *MPLSPingPWEDestination) ProtoReflect() protoreflect.Message {
-	mi := &file_mpls_mpls_proto_msgTypes[4]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_mpls_mpls_proto_msgTypes[4]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -390,7 +377,7 @@ func (x *MPLSPingPWEDestination) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use MPLSPingPWEDestination.ProtoReflect.Descriptor instead.
 func (*MPLSPingPWEDestination) Descriptor() ([]byte, []int) {
-	return file_mpls_mpls_proto_rawDescGZIP(), []int{4}
+	return file_github_com_openconfig_gnoi_mpls_mpls_proto_rawDescGZIP(), []int{4}
 }
 
 func (x *MPLSPingPWEDestination) GetEler() string {
@@ -408,22 +395,19 @@ func (x *MPLSPingPWEDestination) GetVcid() uint32 {
 }
 
 type MPLSPingRSVPTEDestination struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	Src              string `protobuf:"bytes,1,opt,name=src,proto3" json:"src,omitempty"`
-	Dst              string `protobuf:"bytes,2,opt,name=dst,proto3" json:"dst,omitempty"`
-	ExtendedTunnelId uint32 `protobuf:"varint,3,opt,name=extended_tunnel_id,json=extendedTunnelId,proto3" json:"extended_tunnel_id,omitempty"`
+	state            protoimpl.MessageState `protogen:"open.v1"`
+	Src              string                 `protobuf:"bytes,1,opt,name=src,proto3" json:"src,omitempty"`
+	Dst              string                 `protobuf:"bytes,2,opt,name=dst,proto3" json:"dst,omitempty"`
+	ExtendedTunnelId uint32                 `protobuf:"varint,3,opt,name=extended_tunnel_id,json=extendedTunnelId,proto3" json:"extended_tunnel_id,omitempty"`
+	unknownFields    protoimpl.UnknownFields
+	sizeCache        protoimpl.SizeCache
 }
 
 func (x *MPLSPingRSVPTEDestination) Reset() {
 	*x = MPLSPingRSVPTEDestination{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_mpls_mpls_proto_msgTypes[5]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_mpls_mpls_proto_msgTypes[5]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *MPLSPingRSVPTEDestination) String() string {
@@ -433,8 +417,8 @@ func (x *MPLSPingRSVPTEDestination) String() string {
 func (*MPLSPingRSVPTEDestination) ProtoMessage() {}
 
 func (x *MPLSPingRSVPTEDestination) ProtoReflect() protoreflect.Message {
-	mi := &file_mpls_mpls_proto_msgTypes[5]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_mpls_mpls_proto_msgTypes[5]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -446,7 +430,7 @@ func (x *MPLSPingRSVPTEDestination) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use MPLSPingRSVPTEDestination.ProtoReflect.Descriptor instead.
 func (*MPLSPingRSVPTEDestination) Descriptor() ([]byte, []int) {
-	return file_mpls_mpls_proto_rawDescGZIP(), []int{5}
+	return file_github_com_openconfig_gnoi_mpls_mpls_proto_rawDescGZIP(), []int{5}
 }
 
 func (x *MPLSPingRSVPTEDestination) GetSrc() string {
@@ -471,11 +455,8 @@ func (x *MPLSPingRSVPTEDestination) GetExtendedTunnelId() uint32 {
 }
 
 type MPLSPingRequest struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	// Types that are assignable to Destination:
+	state protoimpl.MessageState `protogen:"open.v1"`
+	// Types that are valid to be assigned to Destination:
 	//
 	//	*MPLSPingRequest_LdpFec
 	//	*MPLSPingRequest_Fec129Pwe
@@ -488,15 +469,15 @@ type MPLSPingRequest struct {
 	SourceAddress string                        `protobuf:"bytes,9,opt,name=source_address,json=sourceAddress,proto3" json:"source_address,omitempty"`
 	MplsTtl       uint32                        `protobuf:"varint,10,opt,name=mpls_ttl,json=mplsTtl,proto3" json:"mpls_ttl,omitempty"`
 	TrafficClass  uint32                        `protobuf:"varint,11,opt,name=traffic_class,json=trafficClass,proto3" json:"traffic_class,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *MPLSPingRequest) Reset() {
 	*x = MPLSPingRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_mpls_mpls_proto_msgTypes[6]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_mpls_mpls_proto_msgTypes[6]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *MPLSPingRequest) String() string {
@@ -506,8 +487,8 @@ func (x *MPLSPingRequest) String() string {
 func (*MPLSPingRequest) ProtoMessage() {}
 
 func (x *MPLSPingRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_mpls_mpls_proto_msgTypes[6]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_mpls_mpls_proto_msgTypes[6]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -519,40 +500,48 @@ func (x *MPLSPingRequest) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use MPLSPingRequest.ProtoReflect.Descriptor instead.
 func (*MPLSPingRequest) Descriptor() ([]byte, []int) {
-	return file_mpls_mpls_proto_rawDescGZIP(), []int{6}
+	return file_github_com_openconfig_gnoi_mpls_mpls_proto_rawDescGZIP(), []int{6}
 }
 
-func (m *MPLSPingRequest) GetDestination() isMPLSPingRequest_Destination {
-	if m != nil {
-		return m.Destination
+func (x *MPLSPingRequest) GetDestination() isMPLSPingRequest_Destination {
+	if x != nil {
+		return x.Destination
 	}
 	return nil
 }
 
 func (x *MPLSPingRequest) GetLdpFec() string {
-	if x, ok := x.GetDestination().(*MPLSPingRequest_LdpFec); ok {
-		return x.LdpFec
+	if x != nil {
+		if x, ok := x.Destination.(*MPLSPingRequest_LdpFec); ok {
+			return x.LdpFec
+		}
 	}
 	return ""
 }
 
 func (x *MPLSPingRequest) GetFec129Pwe() *MPLSPingPWEDestination {
-	if x, ok := x.GetDestination().(*MPLSPingRequest_Fec129Pwe); ok {
-		return x.Fec129Pwe
+	if x != nil {
+		if x, ok := x.Destination.(*MPLSPingRequest_Fec129Pwe); ok {
+			return x.Fec129Pwe
+		}
 	}
 	return nil
 }
 
 func (x *MPLSPingRequest) GetRsvpteLspName() string {
-	if x, ok := x.GetDestination().(*MPLSPingRequest_RsvpteLspName); ok {
-		return x.RsvpteLspName
+	if x != nil {
+		if x, ok := x.Destination.(*MPLSPingRequest_RsvpteLspName); ok {
+			return x.RsvpteLspName
+		}
 	}
 	return ""
 }
 
 func (x *MPLSPingRequest) GetRsvpteLsp() *MPLSPingRSVPTEDestination {
-	if x, ok := x.GetDestination().(*MPLSPingRequest_RsvpteLsp); ok {
-		return x.RsvpteLsp
+	if x != nil {
+		if x, ok := x.Destination.(*MPLSPingRequest_RsvpteLsp); ok {
+			return x.RsvpteLsp
+		}
 	}
 	return nil
 }
@@ -628,22 +617,19 @@ func (*MPLSPingRequest_RsvpteLspName) isMPLSPingRequest_Destination() {}
 func (*MPLSPingRequest_RsvpteLsp) isMPLSPingRequest_Destination() {}
 
 type MPLSPingResponse struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState            `protogen:"open.v1"`
+	Seq           uint32                            `protobuf:"varint,1,opt,name=seq,proto3" json:"seq,omitempty"`
+	Response      MPLSPingResponse_EchoResponseCode `protobuf:"varint,2,opt,name=response,proto3,enum=gnoi.mpls.MPLSPingResponse_EchoResponseCode" json:"response,omitempty"`
+	ResponseTime  uint64                            `protobuf:"varint,3,opt,name=response_time,json=responseTime,proto3" json:"response_time,omitempty"`
 	unknownFields protoimpl.UnknownFields
-
-	Seq          uint32                            `protobuf:"varint,1,opt,name=seq,proto3" json:"seq,omitempty"`
-	Response     MPLSPingResponse_EchoResponseCode `protobuf:"varint,2,opt,name=response,proto3,enum=gnoi.mpls.MPLSPingResponse_EchoResponseCode" json:"response,omitempty"`
-	ResponseTime uint64                            `protobuf:"varint,3,opt,name=response_time,json=responseTime,proto3" json:"response_time,omitempty"`
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *MPLSPingResponse) Reset() {
 	*x = MPLSPingResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_mpls_mpls_proto_msgTypes[7]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_mpls_mpls_proto_msgTypes[7]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *MPLSPingResponse) String() string {
@@ -653,8 +639,8 @@ func (x *MPLSPingResponse) String() string {
 func (*MPLSPingResponse) ProtoMessage() {}
 
 func (x *MPLSPingResponse) ProtoReflect() protoreflect.Message {
-	mi := &file_mpls_mpls_proto_msgTypes[7]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_mpls_mpls_proto_msgTypes[7]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -666,7 +652,7 @@ func (x *MPLSPingResponse) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use MPLSPingResponse.ProtoReflect.Descriptor instead.
 func (*MPLSPingResponse) Descriptor() ([]byte, []int) {
-	return file_mpls_mpls_proto_rawDescGZIP(), []int{7}
+	return file_github_com_openconfig_gnoi_mpls_mpls_proto_rawDescGZIP(), []int{7}
 }
 
 func (x *MPLSPingResponse) GetSeq() uint32 {
@@ -690,124 +676,126 @@ func (x *MPLSPingResponse) GetResponseTime() uint64 {
 	return 0
 }
 
-var File_mpls_mpls_proto protoreflect.FileDescriptor
-
-var file_mpls_mpls_proto_rawDesc = []byte{
-	0x0a, 0x0f, 0x6d, 0x70, 0x6c, 0x73, 0x2f, 0x6d, 0x70, 0x6c, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74,
-	0x6f, 0x12, 0x09, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x6d, 0x70, 0x6c, 0x73, 0x1a, 0x2c, 0x67, 0x69,
-	0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e,
-	0x66, 0x69, 0x67, 0x2f, 0x67, 0x6e, 0x6f, 0x69, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2f, 0x74,
-	0x79, 0x70, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xd2, 0x01, 0x0a, 0x0f, 0x43,
-	0x6c, 0x65, 0x61, 0x72, 0x4c, 0x53, 0x50, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12,
-	0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61,
-	0x6d, 0x65, 0x12, 0x33, 0x0a, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e,
-	0x32, 0x1f, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x6d, 0x70, 0x6c, 0x73, 0x2e, 0x43, 0x6c, 0x65,
-	0x61, 0x72, 0x4c, 0x53, 0x50, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x4d, 0x6f, 0x64,
-	0x65, 0x52, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x22, 0x76, 0x0a, 0x04, 0x4d, 0x6f, 0x64, 0x65, 0x12,
-	0x0b, 0x0a, 0x07, 0x44, 0x45, 0x46, 0x41, 0x55, 0x4c, 0x54, 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d,
-	0x4e, 0x4f, 0x4e, 0x41, 0x47, 0x47, 0x52, 0x45, 0x53, 0x53, 0x49, 0x56, 0x45, 0x10, 0x00, 0x12,
-	0x0e, 0x0a, 0x0a, 0x41, 0x47, 0x47, 0x52, 0x45, 0x53, 0x53, 0x49, 0x56, 0x45, 0x10, 0x01, 0x12,
-	0x09, 0x0a, 0x05, 0x52, 0x45, 0x53, 0x45, 0x54, 0x10, 0x02, 0x12, 0x15, 0x0a, 0x11, 0x41, 0x55,
-	0x54, 0x4f, 0x42, 0x57, 0x5f, 0x41, 0x47, 0x47, 0x52, 0x45, 0x53, 0x53, 0x49, 0x56, 0x45, 0x10,
-	0x03, 0x12, 0x18, 0x0a, 0x14, 0x41, 0x55, 0x54, 0x4f, 0x42, 0x57, 0x5f, 0x4e, 0x4f, 0x4e, 0x41,
-	0x47, 0x47, 0x52, 0x45, 0x53, 0x53, 0x49, 0x56, 0x45, 0x10, 0x04, 0x1a, 0x02, 0x10, 0x01, 0x22,
-	0x12, 0x0a, 0x10, 0x43, 0x6c, 0x65, 0x61, 0x72, 0x4c, 0x53, 0x50, 0x52, 0x65, 0x73, 0x70, 0x6f,
-	0x6e, 0x73, 0x65, 0x22, 0x2d, 0x0a, 0x17, 0x43, 0x6c, 0x65, 0x61, 0x72, 0x4c, 0x53, 0x50, 0x43,
-	0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12,
-	0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61,
-	0x6d, 0x65, 0x22, 0x1a, 0x0a, 0x18, 0x43, 0x6c, 0x65, 0x61, 0x72, 0x4c, 0x53, 0x50, 0x43, 0x6f,
-	0x75, 0x6e, 0x74, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x40,
-	0x0a, 0x16, 0x4d, 0x50, 0x4c, 0x53, 0x50, 0x69, 0x6e, 0x67, 0x50, 0x57, 0x45, 0x44, 0x65, 0x73,
-	0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x65, 0x6c, 0x65, 0x72,
-	0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x65, 0x6c, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04,
-	0x76, 0x63, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x76, 0x63, 0x69, 0x64,
-	0x22, 0x6d, 0x0a, 0x19, 0x4d, 0x50, 0x4c, 0x53, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x53, 0x56, 0x50,
-	0x54, 0x45, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x10, 0x0a,
-	0x03, 0x73, 0x72, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x73, 0x72, 0x63, 0x12,
-	0x10, 0x0a, 0x03, 0x64, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x64, 0x73,
-	0x74, 0x12, 0x2c, 0x0a, 0x12, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x5f, 0x74, 0x75,
-	0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x65,
-	0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x22,
-	0xef, 0x03, 0x0a, 0x0f, 0x4d, 0x50, 0x4c, 0x53, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75,
-	0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x07, 0x6c, 0x64, 0x70, 0x5f, 0x66, 0x65, 0x63, 0x18, 0x01,
-	0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x06, 0x6c, 0x64, 0x70, 0x46, 0x65, 0x63, 0x12, 0x42,
-	0x0a, 0x0a, 0x66, 0x65, 0x63, 0x31, 0x32, 0x39, 0x5f, 0x70, 0x77, 0x65, 0x18, 0x02, 0x20, 0x01,
-	0x28, 0x0b, 0x32, 0x21, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x6d, 0x70, 0x6c, 0x73, 0x2e, 0x4d,
-	0x50, 0x4c, 0x53, 0x50, 0x69, 0x6e, 0x67, 0x50, 0x57, 0x45, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e,
-	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x09, 0x66, 0x65, 0x63, 0x31, 0x32, 0x39, 0x50,
-	0x77, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x72, 0x73, 0x76, 0x70, 0x74, 0x65, 0x5f, 0x6c, 0x73, 0x70,
-	0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0d, 0x72,
-	0x73, 0x76, 0x70, 0x74, 0x65, 0x4c, 0x73, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x45, 0x0a, 0x0a,
-	0x72, 0x73, 0x76, 0x70, 0x74, 0x65, 0x5f, 0x6c, 0x73, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b,
-	0x32, 0x24, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x6d, 0x70, 0x6c, 0x73, 0x2e, 0x4d, 0x50, 0x4c,
-	0x53, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x53, 0x56, 0x50, 0x54, 0x45, 0x44, 0x65, 0x73, 0x74, 0x69,
-	0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x09, 0x72, 0x73, 0x76, 0x70, 0x74, 0x65,
-	0x4c, 0x73, 0x70, 0x12, 0x43, 0x0a, 0x0a, 0x72, 0x65, 0x70, 0x6c, 0x79, 0x5f, 0x6d, 0x6f, 0x64,
-	0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x6d,
-	0x70, 0x6c, 0x73, 0x2e, 0x4d, 0x50, 0x4c, 0x53, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75,
-	0x65, 0x73, 0x74, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x09, 0x72,
-	0x65, 0x70, 0x6c, 0x79, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e,
-	0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x12,
-	0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x73, 0x69,
-	0x7a, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x61, 0x64, 0x64,
-	0x72, 0x65, 0x73, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x6f, 0x75, 0x72,
-	0x63, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x6d, 0x70, 0x6c,
-	0x73, 0x5f, 0x74, 0x74, 0x6c, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x6d, 0x70, 0x6c,
-	0x73, 0x54, 0x74, 0x6c, 0x12, 0x23, 0x0a, 0x0d, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x5f,
-	0x63, 0x6c, 0x61, 0x73, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x74, 0x72, 0x61,
-	0x66, 0x66, 0x69, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x22, 0x27, 0x0a, 0x09, 0x52, 0x65, 0x70,
-	0x6c, 0x79, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x08, 0x0a, 0x04, 0x49, 0x50, 0x56, 0x34, 0x10, 0x00,
-	0x12, 0x10, 0x0a, 0x0c, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x52, 0x5f, 0x41, 0x4c, 0x45, 0x52, 0x54,
-	0x10, 0x01, 0x42, 0x0d, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f,
-	0x6e, 0x22, 0xcf, 0x01, 0x0a, 0x10, 0x4d, 0x50, 0x4c, 0x53, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65,
-	0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x65, 0x71, 0x18, 0x01, 0x20,
-	0x01, 0x28, 0x0d, 0x52, 0x03, 0x73, 0x65, 0x71, 0x12, 0x48, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x70,
-	0x6f, 0x6e, 0x73, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x67, 0x6e, 0x6f,
-	0x69, 0x2e, 0x6d, 0x70, 0x6c, 0x73, 0x2e, 0x4d, 0x50, 0x4c, 0x53, 0x50, 0x69, 0x6e, 0x67, 0x52,
-	0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x45, 0x63, 0x68, 0x6f, 0x52, 0x65, 0x73, 0x70,
-	0x6f, 0x6e, 0x73, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e,
-	0x73, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x74,
-	0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x70, 0x6f,
-	0x6e, 0x73, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x3a, 0x0a, 0x10, 0x45, 0x63, 0x68, 0x6f, 0x52,
-	0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x53,
-	0x55, 0x43, 0x43, 0x45, 0x53, 0x53, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x4e, 0x4f, 0x54, 0x5f,
-	0x53, 0x45, 0x4e, 0x54, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x54, 0x49, 0x4d, 0x45, 0x4f, 0x55,
-	0x54, 0x10, 0x02, 0x32, 0xf5, 0x01, 0x0a, 0x04, 0x4d, 0x50, 0x4c, 0x53, 0x12, 0x45, 0x0a, 0x08,
-	0x43, 0x6c, 0x65, 0x61, 0x72, 0x4c, 0x53, 0x50, 0x12, 0x1a, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e,
-	0x6d, 0x70, 0x6c, 0x73, 0x2e, 0x43, 0x6c, 0x65, 0x61, 0x72, 0x4c, 0x53, 0x50, 0x52, 0x65, 0x71,
-	0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x6d, 0x70, 0x6c, 0x73,
-	0x2e, 0x43, 0x6c, 0x65, 0x61, 0x72, 0x4c, 0x53, 0x50, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
-	0x65, 0x22, 0x00, 0x12, 0x5d, 0x0a, 0x10, 0x43, 0x6c, 0x65, 0x61, 0x72, 0x4c, 0x53, 0x50, 0x43,
-	0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x73, 0x12, 0x22, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x6d,
-	0x70, 0x6c, 0x73, 0x2e, 0x43, 0x6c, 0x65, 0x61, 0x72, 0x4c, 0x53, 0x50, 0x43, 0x6f, 0x75, 0x6e,
-	0x74, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x67, 0x6e,
+var File_github_com_openconfig_gnoi_mpls_mpls_proto protoreflect.FileDescriptor
+
+var file_github_com_openconfig_gnoi_mpls_mpls_proto_rawDesc = []byte{
+	0x0a, 0x2a, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x70, 0x65,
+	0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x67, 0x6e, 0x6f, 0x69, 0x2f, 0x6d, 0x70, 0x6c,
+	0x73, 0x2f, 0x6d, 0x70, 0x6c, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x09, 0x67, 0x6e,
+	0x6f, 0x69, 0x2e, 0x6d, 0x70, 0x6c, 0x73, 0x1a, 0x2c, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e,
+	0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x67,
+	0x6e, 0x6f, 0x69, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e,
+	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xd2, 0x01, 0x0a, 0x0f, 0x43, 0x6c, 0x65, 0x61, 0x72, 0x4c,
+	0x53, 0x50, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d,
+	0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x33, 0x0a,
+	0x04, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x67, 0x6e,
 	0x6f, 0x69, 0x2e, 0x6d, 0x70, 0x6c, 0x73, 0x2e, 0x43, 0x6c, 0x65, 0x61, 0x72, 0x4c, 0x53, 0x50,
-	0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
-	0x22, 0x00, 0x12, 0x47, 0x0a, 0x08, 0x4d, 0x50, 0x4c, 0x53, 0x50, 0x69, 0x6e, 0x67, 0x12, 0x1a,
-	0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x6d, 0x70, 0x6c, 0x73, 0x2e, 0x4d, 0x50, 0x4c, 0x53, 0x50,
-	0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x67, 0x6e, 0x6f,
-	0x69, 0x2e, 0x6d, 0x70, 0x6c, 0x73, 0x2e, 0x4d, 0x50, 0x4c, 0x53, 0x50, 0x69, 0x6e, 0x67, 0x52,
-	0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x30, 0x01, 0x42, 0x29, 0xd2, 0x3e, 0x05,
-	0x30, 0x2e, 0x31, 0x2e, 0x30, 0x5a, 0x1f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f,
-	0x6d, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x67, 0x6e, 0x6f,
-	0x69, 0x2f, 0x6d, 0x70, 0x6c, 0x73, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x04, 0x6d, 0x6f,
+	0x64, 0x65, 0x22, 0x76, 0x0a, 0x04, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x44, 0x45,
+	0x46, 0x41, 0x55, 0x4c, 0x54, 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d, 0x4e, 0x4f, 0x4e, 0x41, 0x47,
+	0x47, 0x52, 0x45, 0x53, 0x53, 0x49, 0x56, 0x45, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x41, 0x47,
+	0x47, 0x52, 0x45, 0x53, 0x53, 0x49, 0x56, 0x45, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x52, 0x45,
+	0x53, 0x45, 0x54, 0x10, 0x02, 0x12, 0x15, 0x0a, 0x11, 0x41, 0x55, 0x54, 0x4f, 0x42, 0x57, 0x5f,
+	0x41, 0x47, 0x47, 0x52, 0x45, 0x53, 0x53, 0x49, 0x56, 0x45, 0x10, 0x03, 0x12, 0x18, 0x0a, 0x14,
+	0x41, 0x55, 0x54, 0x4f, 0x42, 0x57, 0x5f, 0x4e, 0x4f, 0x4e, 0x41, 0x47, 0x47, 0x52, 0x45, 0x53,
+	0x53, 0x49, 0x56, 0x45, 0x10, 0x04, 0x1a, 0x02, 0x10, 0x01, 0x22, 0x12, 0x0a, 0x10, 0x43, 0x6c,
+	0x65, 0x61, 0x72, 0x4c, 0x53, 0x50, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2d,
+	0x0a, 0x17, 0x43, 0x6c, 0x65, 0x61, 0x72, 0x4c, 0x53, 0x50, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65,
+	0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d,
+	0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x1a, 0x0a,
+	0x18, 0x43, 0x6c, 0x65, 0x61, 0x72, 0x4c, 0x53, 0x50, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72,
+	0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x40, 0x0a, 0x16, 0x4d, 0x50, 0x4c,
+	0x53, 0x50, 0x69, 0x6e, 0x67, 0x50, 0x57, 0x45, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74,
+	0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x65, 0x6c, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28,
+	0x09, 0x52, 0x04, 0x65, 0x6c, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x76, 0x63, 0x69, 0x64, 0x18,
+	0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x76, 0x63, 0x69, 0x64, 0x22, 0x6d, 0x0a, 0x19, 0x4d,
+	0x50, 0x4c, 0x53, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x53, 0x56, 0x50, 0x54, 0x45, 0x44, 0x65, 0x73,
+	0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x72, 0x63, 0x18,
+	0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x73, 0x72, 0x63, 0x12, 0x10, 0x0a, 0x03, 0x64, 0x73,
+	0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x64, 0x73, 0x74, 0x12, 0x2c, 0x0a, 0x12,
+	0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x5f, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f,
+	0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64,
+	0x65, 0x64, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x22, 0xef, 0x03, 0x0a, 0x0f, 0x4d,
+	0x50, 0x4c, 0x53, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19,
+	0x0a, 0x07, 0x6c, 0x64, 0x70, 0x5f, 0x66, 0x65, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48,
+	0x00, 0x52, 0x06, 0x6c, 0x64, 0x70, 0x46, 0x65, 0x63, 0x12, 0x42, 0x0a, 0x0a, 0x66, 0x65, 0x63,
+	0x31, 0x32, 0x39, 0x5f, 0x70, 0x77, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e,
+	0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x6d, 0x70, 0x6c, 0x73, 0x2e, 0x4d, 0x50, 0x4c, 0x53, 0x50, 0x69,
+	0x6e, 0x67, 0x50, 0x57, 0x45, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+	0x48, 0x00, 0x52, 0x09, 0x66, 0x65, 0x63, 0x31, 0x32, 0x39, 0x50, 0x77, 0x65, 0x12, 0x28, 0x0a,
+	0x0f, 0x72, 0x73, 0x76, 0x70, 0x74, 0x65, 0x5f, 0x6c, 0x73, 0x70, 0x5f, 0x6e, 0x61, 0x6d, 0x65,
+	0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0d, 0x72, 0x73, 0x76, 0x70, 0x74, 0x65,
+	0x4c, 0x73, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x45, 0x0a, 0x0a, 0x72, 0x73, 0x76, 0x70, 0x74,
+	0x65, 0x5f, 0x6c, 0x73, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6e,
+	0x6f, 0x69, 0x2e, 0x6d, 0x70, 0x6c, 0x73, 0x2e, 0x4d, 0x50, 0x4c, 0x53, 0x50, 0x69, 0x6e, 0x67,
+	0x52, 0x53, 0x56, 0x50, 0x54, 0x45, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f,
+	0x6e, 0x48, 0x00, 0x52, 0x09, 0x72, 0x73, 0x76, 0x70, 0x74, 0x65, 0x4c, 0x73, 0x70, 0x12, 0x43,
+	0x0a, 0x0a, 0x72, 0x65, 0x70, 0x6c, 0x79, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x06, 0x20, 0x01,
+	0x28, 0x0e, 0x32, 0x24, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x6d, 0x70, 0x6c, 0x73, 0x2e, 0x4d,
+	0x50, 0x4c, 0x53, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x52,
+	0x65, 0x70, 0x6c, 0x79, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x09, 0x72, 0x65, 0x70, 0x6c, 0x79, 0x4d,
+	0x6f, 0x64, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01,
+	0x28, 0x0d, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x7a,
+	0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x25, 0x0a,
+	0x0e, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18,
+	0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x41, 0x64, 0x64,
+	0x72, 0x65, 0x73, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x6d, 0x70, 0x6c, 0x73, 0x5f, 0x74, 0x74, 0x6c,
+	0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x6d, 0x70, 0x6c, 0x73, 0x54, 0x74, 0x6c, 0x12,
+	0x23, 0x0a, 0x0d, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73,
+	0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x43,
+	0x6c, 0x61, 0x73, 0x73, 0x22, 0x27, 0x0a, 0x09, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x4d, 0x6f, 0x64,
+	0x65, 0x12, 0x08, 0x0a, 0x04, 0x49, 0x50, 0x56, 0x34, 0x10, 0x00, 0x12, 0x10, 0x0a, 0x0c, 0x52,
+	0x4f, 0x55, 0x54, 0x45, 0x52, 0x5f, 0x41, 0x4c, 0x45, 0x52, 0x54, 0x10, 0x01, 0x42, 0x0d, 0x0a,
+	0x0b, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xcf, 0x01, 0x0a,
+	0x10, 0x4d, 0x50, 0x4c, 0x53, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
+	0x65, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x65, 0x71, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03,
+	0x73, 0x65, 0x71, 0x12, 0x48, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18,
+	0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x6d, 0x70, 0x6c,
+	0x73, 0x2e, 0x4d, 0x50, 0x4c, 0x53, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
+	0x73, 0x65, 0x2e, 0x45, 0x63, 0x68, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x43,
+	0x6f, 0x64, 0x65, 0x52, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x23, 0x0a,
+	0x0d, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03,
+	0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x54, 0x69,
+	0x6d, 0x65, 0x22, 0x3a, 0x0a, 0x10, 0x45, 0x63, 0x68, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
+	0x73, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x55, 0x43, 0x43, 0x45, 0x53,
+	0x53, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x4e, 0x4f, 0x54, 0x5f, 0x53, 0x45, 0x4e, 0x54, 0x10,
+	0x01, 0x12, 0x0b, 0x0a, 0x07, 0x54, 0x49, 0x4d, 0x45, 0x4f, 0x55, 0x54, 0x10, 0x02, 0x32, 0xf5,
+	0x01, 0x0a, 0x04, 0x4d, 0x50, 0x4c, 0x53, 0x12, 0x45, 0x0a, 0x08, 0x43, 0x6c, 0x65, 0x61, 0x72,
+	0x4c, 0x53, 0x50, 0x12, 0x1a, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x6d, 0x70, 0x6c, 0x73, 0x2e,
+	0x43, 0x6c, 0x65, 0x61, 0x72, 0x4c, 0x53, 0x50, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
+	0x1b, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x6d, 0x70, 0x6c, 0x73, 0x2e, 0x43, 0x6c, 0x65, 0x61,
+	0x72, 0x4c, 0x53, 0x50, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x5d,
+	0x0a, 0x10, 0x43, 0x6c, 0x65, 0x61, 0x72, 0x4c, 0x53, 0x50, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65,
+	0x72, 0x73, 0x12, 0x22, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x6d, 0x70, 0x6c, 0x73, 0x2e, 0x43,
+	0x6c, 0x65, 0x61, 0x72, 0x4c, 0x53, 0x50, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x73, 0x52,
+	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x6d, 0x70,
+	0x6c, 0x73, 0x2e, 0x43, 0x6c, 0x65, 0x61, 0x72, 0x4c, 0x53, 0x50, 0x43, 0x6f, 0x75, 0x6e, 0x74,
+	0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x47, 0x0a,
+	0x08, 0x4d, 0x50, 0x4c, 0x53, 0x50, 0x69, 0x6e, 0x67, 0x12, 0x1a, 0x2e, 0x67, 0x6e, 0x6f, 0x69,
+	0x2e, 0x6d, 0x70, 0x6c, 0x73, 0x2e, 0x4d, 0x50, 0x4c, 0x53, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65,
+	0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x6d, 0x70, 0x6c,
+	0x73, 0x2e, 0x4d, 0x50, 0x4c, 0x53, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
+	0x73, 0x65, 0x22, 0x00, 0x30, 0x01, 0x42, 0x29, 0xd2, 0x3e, 0x05, 0x30, 0x2e, 0x31, 0x2e, 0x30,
+	0x5a, 0x1f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x70, 0x65,
+	0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x67, 0x6e, 0x6f, 0x69, 0x2f, 0x6d, 0x70, 0x6c,
+	0x73, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
 }
 
 var (
-	file_mpls_mpls_proto_rawDescOnce sync.Once
-	file_mpls_mpls_proto_rawDescData = file_mpls_mpls_proto_rawDesc
+	file_github_com_openconfig_gnoi_mpls_mpls_proto_rawDescOnce sync.Once
+	file_github_com_openconfig_gnoi_mpls_mpls_proto_rawDescData = file_github_com_openconfig_gnoi_mpls_mpls_proto_rawDesc
 )
 
-func file_mpls_mpls_proto_rawDescGZIP() []byte {
-	file_mpls_mpls_proto_rawDescOnce.Do(func() {
-		file_mpls_mpls_proto_rawDescData = protoimpl.X.CompressGZIP(file_mpls_mpls_proto_rawDescData)
+func file_github_com_openconfig_gnoi_mpls_mpls_proto_rawDescGZIP() []byte {
+	file_github_com_openconfig_gnoi_mpls_mpls_proto_rawDescOnce.Do(func() {
+		file_github_com_openconfig_gnoi_mpls_mpls_proto_rawDescData = protoimpl.X.CompressGZIP(file_github_com_openconfig_gnoi_mpls_mpls_proto_rawDescData)
 	})
-	return file_mpls_mpls_proto_rawDescData
+	return file_github_com_openconfig_gnoi_mpls_mpls_proto_rawDescData
 }
 
-var file_mpls_mpls_proto_enumTypes = make([]protoimpl.EnumInfo, 3)
-var file_mpls_mpls_proto_msgTypes = make([]protoimpl.MessageInfo, 8)
-var file_mpls_mpls_proto_goTypes = []interface{}{
+var file_github_com_openconfig_gnoi_mpls_mpls_proto_enumTypes = make([]protoimpl.EnumInfo, 3)
+var file_github_com_openconfig_gnoi_mpls_mpls_proto_msgTypes = make([]protoimpl.MessageInfo, 8)
+var file_github_com_openconfig_gnoi_mpls_mpls_proto_goTypes = []any{
 	(ClearLSPRequest_Mode)(0),              // 0: gnoi.mpls.ClearLSPRequest.Mode
 	(MPLSPingRequest_ReplyMode)(0),         // 1: gnoi.mpls.MPLSPingRequest.ReplyMode
 	(MPLSPingResponse_EchoResponseCode)(0), // 2: gnoi.mpls.MPLSPingResponse.EchoResponseCode
@@ -820,7 +808,7 @@ var file_mpls_mpls_proto_goTypes = []interface{}{
 	(*MPLSPingRequest)(nil),                // 9: gnoi.mpls.MPLSPingRequest
 	(*MPLSPingResponse)(nil),               // 10: gnoi.mpls.MPLSPingResponse
 }
-var file_mpls_mpls_proto_depIdxs = []int32{
+var file_github_com_openconfig_gnoi_mpls_mpls_proto_depIdxs = []int32{
 	0,  // 0: gnoi.mpls.ClearLSPRequest.mode:type_name -> gnoi.mpls.ClearLSPRequest.Mode
 	7,  // 1: gnoi.mpls.MPLSPingRequest.fec129_pwe:type_name -> gnoi.mpls.MPLSPingPWEDestination
 	8,  // 2: gnoi.mpls.MPLSPingRequest.rsvpte_lsp:type_name -> gnoi.mpls.MPLSPingRSVPTEDestination
@@ -839,110 +827,12 @@ var file_mpls_mpls_proto_depIdxs = []int32{
 	0,  // [0:5] is the sub-list for field type_name
 }
 
-func init() { file_mpls_mpls_proto_init() }
-func file_mpls_mpls_proto_init() {
-	if File_mpls_mpls_proto != nil {
+func init() { file_github_com_openconfig_gnoi_mpls_mpls_proto_init() }
+func file_github_com_openconfig_gnoi_mpls_mpls_proto_init() {
+	if File_github_com_openconfig_gnoi_mpls_mpls_proto != nil {
 		return
 	}
-	if !protoimpl.UnsafeEnabled {
-		file_mpls_mpls_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*ClearLSPRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_mpls_mpls_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*ClearLSPResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_mpls_mpls_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*ClearLSPCountersRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_mpls_mpls_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*ClearLSPCountersResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_mpls_mpls_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*MPLSPingPWEDestination); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_mpls_mpls_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*MPLSPingRSVPTEDestination); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_mpls_mpls_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*MPLSPingRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_mpls_mpls_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*MPLSPingResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-	}
-	file_mpls_mpls_proto_msgTypes[6].OneofWrappers = []interface{}{
+	file_github_com_openconfig_gnoi_mpls_mpls_proto_msgTypes[6].OneofWrappers = []any{
 		(*MPLSPingRequest_LdpFec)(nil),
 		(*MPLSPingRequest_Fec129Pwe)(nil),
 		(*MPLSPingRequest_RsvpteLspName)(nil),
@@ -952,19 +842,19 @@ func file_mpls_mpls_proto_init() {
 	out := protoimpl.TypeBuilder{
 		File: protoimpl.DescBuilder{
 			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
-			RawDescriptor: file_mpls_mpls_proto_rawDesc,
+			RawDescriptor: file_github_com_openconfig_gnoi_mpls_mpls_proto_rawDesc,
 			NumEnums:      3,
 			NumMessages:   8,
 			NumExtensions: 0,
 			NumServices:   1,
 		},
-		GoTypes:           file_mpls_mpls_proto_goTypes,
-		DependencyIndexes: file_mpls_mpls_proto_depIdxs,
-		EnumInfos:         file_mpls_mpls_proto_enumTypes,
-		MessageInfos:      file_mpls_mpls_proto_msgTypes,
+		GoTypes:           file_github_com_openconfig_gnoi_mpls_mpls_proto_goTypes,
+		DependencyIndexes: file_github_com_openconfig_gnoi_mpls_mpls_proto_depIdxs,
+		EnumInfos:         file_github_com_openconfig_gnoi_mpls_mpls_proto_enumTypes,
+		MessageInfos:      file_github_com_openconfig_gnoi_mpls_mpls_proto_msgTypes,
 	}.Build()
-	File_mpls_mpls_proto = out.File
-	file_mpls_mpls_proto_rawDesc = nil
-	file_mpls_mpls_proto_goTypes = nil
-	file_mpls_mpls_proto_depIdxs = nil
+	File_github_com_openconfig_gnoi_mpls_mpls_proto = out.File
+	file_github_com_openconfig_gnoi_mpls_mpls_proto_rawDesc = nil
+	file_github_com_openconfig_gnoi_mpls_mpls_proto_goTypes = nil
+	file_github_com_openconfig_gnoi_mpls_mpls_proto_depIdxs = nil
 }
diff --git a/mpls/mpls_grpc.pb.go b/mpls/mpls_grpc.pb.go
index 8d354e0f..496e89d8 100644
--- a/mpls/mpls_grpc.pb.go
+++ b/mpls/mpls_grpc.pb.go
@@ -1,8 +1,8 @@
 // Code generated by protoc-gen-go-grpc. DO NOT EDIT.
 // versions:
-// - protoc-gen-go-grpc v1.2.0
-// - protoc             v3.21.10
-// source: mpls/mpls.proto
+// - protoc-gen-go-grpc v1.5.1
+// - protoc             v5.29.3
+// source: github.com/openconfig/gnoi/mpls/mpls.proto
 
 package mpls
 
@@ -15,8 +15,14 @@ import (
 
 // This is a compile-time assertion to ensure that this generated file
 // is compatible with the grpc package it is being compiled against.
-// Requires gRPC-Go v1.32.0 or later.
-const _ = grpc.SupportPackageIsVersion7
+// Requires gRPC-Go v1.64.0 or later.
+const _ = grpc.SupportPackageIsVersion9
+
+const (
+	MPLS_ClearLSP_FullMethodName         = "/gnoi.mpls.MPLS/ClearLSP"
+	MPLS_ClearLSPCounters_FullMethodName = "/gnoi.mpls.MPLS/ClearLSPCounters"
+	MPLS_MPLSPing_FullMethodName         = "/gnoi.mpls.MPLS/MPLSPing"
+)
 
 // MPLSClient is the client API for MPLS service.
 //
@@ -24,7 +30,7 @@ const _ = grpc.SupportPackageIsVersion7
 type MPLSClient interface {
 	ClearLSP(ctx context.Context, in *ClearLSPRequest, opts ...grpc.CallOption) (*ClearLSPResponse, error)
 	ClearLSPCounters(ctx context.Context, in *ClearLSPCountersRequest, opts ...grpc.CallOption) (*ClearLSPCountersResponse, error)
-	MPLSPing(ctx context.Context, in *MPLSPingRequest, opts ...grpc.CallOption) (MPLS_MPLSPingClient, error)
+	MPLSPing(ctx context.Context, in *MPLSPingRequest, opts ...grpc.CallOption) (grpc.ServerStreamingClient[MPLSPingResponse], error)
 }
 
 type mPLSClient struct {
@@ -36,8 +42,9 @@ func NewMPLSClient(cc grpc.ClientConnInterface) MPLSClient {
 }
 
 func (c *mPLSClient) ClearLSP(ctx context.Context, in *ClearLSPRequest, opts ...grpc.CallOption) (*ClearLSPResponse, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
 	out := new(ClearLSPResponse)
-	err := c.cc.Invoke(ctx, "/gnoi.mpls.MPLS/ClearLSP", in, out, opts...)
+	err := c.cc.Invoke(ctx, MPLS_ClearLSP_FullMethodName, in, out, cOpts...)
 	if err != nil {
 		return nil, err
 	}
@@ -45,20 +52,22 @@ func (c *mPLSClient) ClearLSP(ctx context.Context, in *ClearLSPRequest, opts ...
 }
 
 func (c *mPLSClient) ClearLSPCounters(ctx context.Context, in *ClearLSPCountersRequest, opts ...grpc.CallOption) (*ClearLSPCountersResponse, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
 	out := new(ClearLSPCountersResponse)
-	err := c.cc.Invoke(ctx, "/gnoi.mpls.MPLS/ClearLSPCounters", in, out, opts...)
+	err := c.cc.Invoke(ctx, MPLS_ClearLSPCounters_FullMethodName, in, out, cOpts...)
 	if err != nil {
 		return nil, err
 	}
 	return out, nil
 }
 
-func (c *mPLSClient) MPLSPing(ctx context.Context, in *MPLSPingRequest, opts ...grpc.CallOption) (MPLS_MPLSPingClient, error) {
-	stream, err := c.cc.NewStream(ctx, &MPLS_ServiceDesc.Streams[0], "/gnoi.mpls.MPLS/MPLSPing", opts...)
+func (c *mPLSClient) MPLSPing(ctx context.Context, in *MPLSPingRequest, opts ...grpc.CallOption) (grpc.ServerStreamingClient[MPLSPingResponse], error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	stream, err := c.cc.NewStream(ctx, &MPLS_ServiceDesc.Streams[0], MPLS_MPLSPing_FullMethodName, cOpts...)
 	if err != nil {
 		return nil, err
 	}
-	x := &mPLSMPLSPingClient{stream}
+	x := &grpc.GenericClientStream[MPLSPingRequest, MPLSPingResponse]{ClientStream: stream}
 	if err := x.ClientStream.SendMsg(in); err != nil {
 		return nil, err
 	}
@@ -68,36 +77,24 @@ func (c *mPLSClient) MPLSPing(ctx context.Context, in *MPLSPingRequest, opts ...
 	return x, nil
 }
 
-type MPLS_MPLSPingClient interface {
-	Recv() (*MPLSPingResponse, error)
-	grpc.ClientStream
-}
-
-type mPLSMPLSPingClient struct {
-	grpc.ClientStream
-}
-
-func (x *mPLSMPLSPingClient) Recv() (*MPLSPingResponse, error) {
-	m := new(MPLSPingResponse)
-	if err := x.ClientStream.RecvMsg(m); err != nil {
-		return nil, err
-	}
-	return m, nil
-}
+// This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name.
+type MPLS_MPLSPingClient = grpc.ServerStreamingClient[MPLSPingResponse]
 
 // MPLSServer is the server API for MPLS service.
-// All implementations must embed UnimplementedMPLSServer
-// for forward compatibility
+// All implementations should embed UnimplementedMPLSServer
+// for forward compatibility.
 type MPLSServer interface {
 	ClearLSP(context.Context, *ClearLSPRequest) (*ClearLSPResponse, error)
 	ClearLSPCounters(context.Context, *ClearLSPCountersRequest) (*ClearLSPCountersResponse, error)
-	MPLSPing(*MPLSPingRequest, MPLS_MPLSPingServer) error
-	mustEmbedUnimplementedMPLSServer()
+	MPLSPing(*MPLSPingRequest, grpc.ServerStreamingServer[MPLSPingResponse]) error
 }
 
-// UnimplementedMPLSServer must be embedded to have forward compatible implementations.
-type UnimplementedMPLSServer struct {
-}
+// UnimplementedMPLSServer should be embedded to have
+// forward compatible implementations.
+//
+// NOTE: this should be embedded by value instead of pointer to avoid a nil
+// pointer dereference when methods are called.
+type UnimplementedMPLSServer struct{}
 
 func (UnimplementedMPLSServer) ClearLSP(context.Context, *ClearLSPRequest) (*ClearLSPResponse, error) {
 	return nil, status.Errorf(codes.Unimplemented, "method ClearLSP not implemented")
@@ -105,10 +102,10 @@ func (UnimplementedMPLSServer) ClearLSP(context.Context, *ClearLSPRequest) (*Cle
 func (UnimplementedMPLSServer) ClearLSPCounters(context.Context, *ClearLSPCountersRequest) (*ClearLSPCountersResponse, error) {
 	return nil, status.Errorf(codes.Unimplemented, "method ClearLSPCounters not implemented")
 }
-func (UnimplementedMPLSServer) MPLSPing(*MPLSPingRequest, MPLS_MPLSPingServer) error {
+func (UnimplementedMPLSServer) MPLSPing(*MPLSPingRequest, grpc.ServerStreamingServer[MPLSPingResponse]) error {
 	return status.Errorf(codes.Unimplemented, "method MPLSPing not implemented")
 }
-func (UnimplementedMPLSServer) mustEmbedUnimplementedMPLSServer() {}
+func (UnimplementedMPLSServer) testEmbeddedByValue() {}
 
 // UnsafeMPLSServer may be embedded to opt out of forward compatibility for this service.
 // Use of this interface is not recommended, as added methods to MPLSServer will
@@ -118,6 +115,13 @@ type UnsafeMPLSServer interface {
 }
 
 func RegisterMPLSServer(s grpc.ServiceRegistrar, srv MPLSServer) {
+	// If the following call pancis, it indicates UnimplementedMPLSServer was
+	// embedded by pointer and is nil.  This will cause panics if an
+	// unimplemented method is ever invoked, so we test this at initialization
+	// time to prevent it from happening at runtime later due to I/O.
+	if t, ok := srv.(interface{ testEmbeddedByValue() }); ok {
+		t.testEmbeddedByValue()
+	}
 	s.RegisterService(&MPLS_ServiceDesc, srv)
 }
 
@@ -131,7 +135,7 @@ func _MPLS_ClearLSP_Handler(srv interface{}, ctx context.Context, dec func(inter
 	}
 	info := &grpc.UnaryServerInfo{
 		Server:     srv,
-		FullMethod: "/gnoi.mpls.MPLS/ClearLSP",
+		FullMethod: MPLS_ClearLSP_FullMethodName,
 	}
 	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
 		return srv.(MPLSServer).ClearLSP(ctx, req.(*ClearLSPRequest))
@@ -149,7 +153,7 @@ func _MPLS_ClearLSPCounters_Handler(srv interface{}, ctx context.Context, dec fu
 	}
 	info := &grpc.UnaryServerInfo{
 		Server:     srv,
-		FullMethod: "/gnoi.mpls.MPLS/ClearLSPCounters",
+		FullMethod: MPLS_ClearLSPCounters_FullMethodName,
 	}
 	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
 		return srv.(MPLSServer).ClearLSPCounters(ctx, req.(*ClearLSPCountersRequest))
@@ -162,21 +166,11 @@ func _MPLS_MPLSPing_Handler(srv interface{}, stream grpc.ServerStream) error {
 	if err := stream.RecvMsg(m); err != nil {
 		return err
 	}
-	return srv.(MPLSServer).MPLSPing(m, &mPLSMPLSPingServer{stream})
+	return srv.(MPLSServer).MPLSPing(m, &grpc.GenericServerStream[MPLSPingRequest, MPLSPingResponse]{ServerStream: stream})
 }
 
-type MPLS_MPLSPingServer interface {
-	Send(*MPLSPingResponse) error
-	grpc.ServerStream
-}
-
-type mPLSMPLSPingServer struct {
-	grpc.ServerStream
-}
-
-func (x *mPLSMPLSPingServer) Send(m *MPLSPingResponse) error {
-	return x.ServerStream.SendMsg(m)
-}
+// This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name.
+type MPLS_MPLSPingServer = grpc.ServerStreamingServer[MPLSPingResponse]
 
 // MPLS_ServiceDesc is the grpc.ServiceDesc for MPLS service.
 // It's only intended for direct use with grpc.RegisterService,
@@ -201,5 +195,5 @@ var MPLS_ServiceDesc = grpc.ServiceDesc{
 			ServerStreams: true,
 		},
 	},
-	Metadata: "mpls/mpls.proto",
+	Metadata: "github.com/openconfig/gnoi/mpls/mpls.proto",
 }
diff --git a/os/BUILD.bazel b/os/BUILD.bazel
index cebb8c8b..a29b1e03 100644
--- a/os/BUILD.bazel
+++ b/os/BUILD.bazel
@@ -1,8 +1,8 @@
-load("@rules_proto//proto:defs.bzl", "proto_library")
+load("@com_github_grpc_grpc//bazel:cc_grpc_library.bzl", "cc_grpc_library")
+load("@com_google_protobuf//bazel:cc_proto_library.bzl", "cc_proto_library")
+load("@com_google_protobuf//bazel:proto_library.bzl", "proto_library")
 load("@io_bazel_rules_go//go:def.bzl", "go_library")
 load("@io_bazel_rules_go//proto:def.bzl", "go_proto_library")
-load("@com_github_grpc_grpc//bazel:cc_grpc_library.bzl", "cc_grpc_library")
-load("//:common.bzl", "use_new_compilers")
 
 #Copyright 2021 Google LLC
 #
@@ -23,15 +23,13 @@ package(
     licenses = ["notice"],
 )
 
-use_new_compilers()
-
 proto_library(
     name = "os_proto",
     srcs = ["os.proto"],
     import_prefix = "github.com/openconfig/gnoi",
     deps = [
-        "//types:types_proto",
         "//bootconfig:bootconfig_proto",
+        "//types:types_proto",
     ],
 )
 
@@ -50,14 +48,14 @@ cc_grpc_library(
 go_proto_library(
     name = "os_go_proto",
     compilers = [
-        "go_protoc_gen_go",
-        "go_protoc_gen_go_grpc",
+        "@io_bazel_rules_go//proto:go_grpc_v2",
+        "@io_bazel_rules_go//proto:go_proto",
     ],
     importpath = "github.com/openconfig/gnoi/os",
     proto = ":os_proto",
     deps = [
-        "//types",
         "//bootconfig",
+        "//types",
     ],
 )
 
diff --git a/os/os.pb.go b/os/os.pb.go
index e6b0bc3f..6cbd4183 100644
--- a/os/os.pb.go
+++ b/os/os.pb.go
@@ -1,7 +1,7 @@
 // Code generated by protoc-gen-go. DO NOT EDIT.
 // versions:
-// 	protoc-gen-go v1.30.0
-// 	protoc        v3.21.10
+// 	protoc-gen-go v1.36.2
+// 	protoc        v5.29.3
 // source: github.com/openconfig/gnoi/os/os.proto
 
 package os
@@ -194,25 +194,22 @@ func (StandbyState_State) EnumDescriptor() ([]byte, []int) {
 }
 
 type InstallRequest struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	// Types that are assignable to Request:
+	state protoimpl.MessageState `protogen:"open.v1"`
+	// Types that are valid to be assigned to Request:
 	//
 	//	*InstallRequest_TransferRequest
 	//	*InstallRequest_TransferContent
 	//	*InstallRequest_TransferEnd
-	Request isInstallRequest_Request `protobuf_oneof:"request"`
+	Request       isInstallRequest_Request `protobuf_oneof:"request"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *InstallRequest) Reset() {
 	*x = InstallRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_github_com_openconfig_gnoi_os_os_proto_msgTypes[0]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_os_os_proto_msgTypes[0]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *InstallRequest) String() string {
@@ -223,7 +220,7 @@ func (*InstallRequest) ProtoMessage() {}
 
 func (x *InstallRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_github_com_openconfig_gnoi_os_os_proto_msgTypes[0]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -238,30 +235,36 @@ func (*InstallRequest) Descriptor() ([]byte, []int) {
 	return file_github_com_openconfig_gnoi_os_os_proto_rawDescGZIP(), []int{0}
 }
 
-func (m *InstallRequest) GetRequest() isInstallRequest_Request {
-	if m != nil {
-		return m.Request
+func (x *InstallRequest) GetRequest() isInstallRequest_Request {
+	if x != nil {
+		return x.Request
 	}
 	return nil
 }
 
 func (x *InstallRequest) GetTransferRequest() *TransferRequest {
-	if x, ok := x.GetRequest().(*InstallRequest_TransferRequest); ok {
-		return x.TransferRequest
+	if x != nil {
+		if x, ok := x.Request.(*InstallRequest_TransferRequest); ok {
+			return x.TransferRequest
+		}
 	}
 	return nil
 }
 
 func (x *InstallRequest) GetTransferContent() []byte {
-	if x, ok := x.GetRequest().(*InstallRequest_TransferContent); ok {
-		return x.TransferContent
+	if x != nil {
+		if x, ok := x.Request.(*InstallRequest_TransferContent); ok {
+			return x.TransferContent
+		}
 	}
 	return nil
 }
 
 func (x *InstallRequest) GetTransferEnd() *TransferEnd {
-	if x, ok := x.GetRequest().(*InstallRequest_TransferEnd); ok {
-		return x.TransferEnd
+	if x != nil {
+		if x, ok := x.Request.(*InstallRequest_TransferEnd); ok {
+			return x.TransferEnd
+		}
 	}
 	return nil
 }
@@ -289,22 +292,19 @@ func (*InstallRequest_TransferContent) isInstallRequest_Request() {}
 func (*InstallRequest_TransferEnd) isInstallRequest_Request() {}
 
 type TransferRequest struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	Version           string `protobuf:"bytes,1,opt,name=version,proto3" json:"version,omitempty"`
-	StandbySupervisor bool   `protobuf:"varint,2,opt,name=standby_supervisor,json=standbySupervisor,proto3" json:"standby_supervisor,omitempty"`
-	PackageSize       uint64 `protobuf:"varint,3,opt,name=package_size,json=packageSize,proto3" json:"package_size,omitempty"`
+	state             protoimpl.MessageState `protogen:"open.v1"`
+	Version           string                 `protobuf:"bytes,1,opt,name=version,proto3" json:"version,omitempty"`
+	StandbySupervisor bool                   `protobuf:"varint,2,opt,name=standby_supervisor,json=standbySupervisor,proto3" json:"standby_supervisor,omitempty"`
+	PackageSize       uint64                 `protobuf:"varint,3,opt,name=package_size,json=packageSize,proto3" json:"package_size,omitempty"`
+	unknownFields     protoimpl.UnknownFields
+	sizeCache         protoimpl.SizeCache
 }
 
 func (x *TransferRequest) Reset() {
 	*x = TransferRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_github_com_openconfig_gnoi_os_os_proto_msgTypes[1]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_os_os_proto_msgTypes[1]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *TransferRequest) String() string {
@@ -315,7 +315,7 @@ func (*TransferRequest) ProtoMessage() {}
 
 func (x *TransferRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_github_com_openconfig_gnoi_os_os_proto_msgTypes[1]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -352,18 +352,16 @@ func (x *TransferRequest) GetPackageSize() uint64 {
 }
 
 type TransferEnd struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState `protogen:"open.v1"`
 	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *TransferEnd) Reset() {
 	*x = TransferEnd{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_github_com_openconfig_gnoi_os_os_proto_msgTypes[2]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_os_os_proto_msgTypes[2]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *TransferEnd) String() string {
@@ -374,7 +372,7 @@ func (*TransferEnd) ProtoMessage() {}
 
 func (x *TransferEnd) ProtoReflect() protoreflect.Message {
 	mi := &file_github_com_openconfig_gnoi_os_os_proto_msgTypes[2]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -390,27 +388,24 @@ func (*TransferEnd) Descriptor() ([]byte, []int) {
 }
 
 type InstallResponse struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	// Types that are assignable to Response:
+	state protoimpl.MessageState `protogen:"open.v1"`
+	// Types that are valid to be assigned to Response:
 	//
 	//	*InstallResponse_TransferReady
 	//	*InstallResponse_TransferProgress
 	//	*InstallResponse_SyncProgress
 	//	*InstallResponse_Validated
 	//	*InstallResponse_InstallError
-	Response isInstallResponse_Response `protobuf_oneof:"response"`
+	Response      isInstallResponse_Response `protobuf_oneof:"response"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *InstallResponse) Reset() {
 	*x = InstallResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_github_com_openconfig_gnoi_os_os_proto_msgTypes[3]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_os_os_proto_msgTypes[3]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *InstallResponse) String() string {
@@ -421,7 +416,7 @@ func (*InstallResponse) ProtoMessage() {}
 
 func (x *InstallResponse) ProtoReflect() protoreflect.Message {
 	mi := &file_github_com_openconfig_gnoi_os_os_proto_msgTypes[3]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -436,44 +431,54 @@ func (*InstallResponse) Descriptor() ([]byte, []int) {
 	return file_github_com_openconfig_gnoi_os_os_proto_rawDescGZIP(), []int{3}
 }
 
-func (m *InstallResponse) GetResponse() isInstallResponse_Response {
-	if m != nil {
-		return m.Response
+func (x *InstallResponse) GetResponse() isInstallResponse_Response {
+	if x != nil {
+		return x.Response
 	}
 	return nil
 }
 
 func (x *InstallResponse) GetTransferReady() *TransferReady {
-	if x, ok := x.GetResponse().(*InstallResponse_TransferReady); ok {
-		return x.TransferReady
+	if x != nil {
+		if x, ok := x.Response.(*InstallResponse_TransferReady); ok {
+			return x.TransferReady
+		}
 	}
 	return nil
 }
 
 func (x *InstallResponse) GetTransferProgress() *TransferProgress {
-	if x, ok := x.GetResponse().(*InstallResponse_TransferProgress); ok {
-		return x.TransferProgress
+	if x != nil {
+		if x, ok := x.Response.(*InstallResponse_TransferProgress); ok {
+			return x.TransferProgress
+		}
 	}
 	return nil
 }
 
 func (x *InstallResponse) GetSyncProgress() *SyncProgress {
-	if x, ok := x.GetResponse().(*InstallResponse_SyncProgress); ok {
-		return x.SyncProgress
+	if x != nil {
+		if x, ok := x.Response.(*InstallResponse_SyncProgress); ok {
+			return x.SyncProgress
+		}
 	}
 	return nil
 }
 
 func (x *InstallResponse) GetValidated() *Validated {
-	if x, ok := x.GetResponse().(*InstallResponse_Validated); ok {
-		return x.Validated
+	if x != nil {
+		if x, ok := x.Response.(*InstallResponse_Validated); ok {
+			return x.Validated
+		}
 	}
 	return nil
 }
 
 func (x *InstallResponse) GetInstallError() *InstallError {
-	if x, ok := x.GetResponse().(*InstallResponse_InstallError); ok {
-		return x.InstallError
+	if x != nil {
+		if x, ok := x.Response.(*InstallResponse_InstallError); ok {
+			return x.InstallError
+		}
 	}
 	return nil
 }
@@ -513,18 +518,16 @@ func (*InstallResponse_Validated) isInstallResponse_Response() {}
 func (*InstallResponse_InstallError) isInstallResponse_Response() {}
 
 type TransferReady struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState `protogen:"open.v1"`
 	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *TransferReady) Reset() {
 	*x = TransferReady{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_github_com_openconfig_gnoi_os_os_proto_msgTypes[4]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_os_os_proto_msgTypes[4]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *TransferReady) String() string {
@@ -535,7 +538,7 @@ func (*TransferReady) ProtoMessage() {}
 
 func (x *TransferReady) ProtoReflect() protoreflect.Message {
 	mi := &file_github_com_openconfig_gnoi_os_os_proto_msgTypes[4]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -551,20 +554,17 @@ func (*TransferReady) Descriptor() ([]byte, []int) {
 }
 
 type TransferProgress struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	BytesReceived uint64                 `protobuf:"varint,1,opt,name=bytes_received,json=bytesReceived,proto3" json:"bytes_received,omitempty"`
 	unknownFields protoimpl.UnknownFields
-
-	BytesReceived uint64 `protobuf:"varint,1,opt,name=bytes_received,json=bytesReceived,proto3" json:"bytes_received,omitempty"`
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *TransferProgress) Reset() {
 	*x = TransferProgress{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_github_com_openconfig_gnoi_os_os_proto_msgTypes[5]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_os_os_proto_msgTypes[5]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *TransferProgress) String() string {
@@ -575,7 +575,7 @@ func (*TransferProgress) ProtoMessage() {}
 
 func (x *TransferProgress) ProtoReflect() protoreflect.Message {
 	mi := &file_github_com_openconfig_gnoi_os_os_proto_msgTypes[5]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -598,20 +598,17 @@ func (x *TransferProgress) GetBytesReceived() uint64 {
 }
 
 type SyncProgress struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	PercentageTransferred uint32 `protobuf:"varint,1,opt,name=percentage_transferred,json=percentageTransferred,proto3" json:"percentage_transferred,omitempty"`
+	state                 protoimpl.MessageState `protogen:"open.v1"`
+	PercentageTransferred uint32                 `protobuf:"varint,1,opt,name=percentage_transferred,json=percentageTransferred,proto3" json:"percentage_transferred,omitempty"`
+	unknownFields         protoimpl.UnknownFields
+	sizeCache             protoimpl.SizeCache
 }
 
 func (x *SyncProgress) Reset() {
 	*x = SyncProgress{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_github_com_openconfig_gnoi_os_os_proto_msgTypes[6]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_os_os_proto_msgTypes[6]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *SyncProgress) String() string {
@@ -622,7 +619,7 @@ func (*SyncProgress) ProtoMessage() {}
 
 func (x *SyncProgress) ProtoReflect() protoreflect.Message {
 	mi := &file_github_com_openconfig_gnoi_os_os_proto_msgTypes[6]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -645,21 +642,18 @@ func (x *SyncProgress) GetPercentageTransferred() uint32 {
 }
 
 type Validated struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Version       string                 `protobuf:"bytes,1,opt,name=version,proto3" json:"version,omitempty"`
+	Description   string                 `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"`
 	unknownFields protoimpl.UnknownFields
-
-	Version     string `protobuf:"bytes,1,opt,name=version,proto3" json:"version,omitempty"`
-	Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"`
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *Validated) Reset() {
 	*x = Validated{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_github_com_openconfig_gnoi_os_os_proto_msgTypes[7]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_os_os_proto_msgTypes[7]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *Validated) String() string {
@@ -670,7 +664,7 @@ func (*Validated) ProtoMessage() {}
 
 func (x *Validated) ProtoReflect() protoreflect.Message {
 	mi := &file_github_com_openconfig_gnoi_os_os_proto_msgTypes[7]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -700,21 +694,18 @@ func (x *Validated) GetDescription() string {
 }
 
 type InstallError struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Type          InstallError_Type      `protobuf:"varint,1,opt,name=type,proto3,enum=gnoi.os.InstallError_Type" json:"type,omitempty"`
+	Detail        string                 `protobuf:"bytes,2,opt,name=detail,proto3" json:"detail,omitempty"`
 	unknownFields protoimpl.UnknownFields
-
-	Type   InstallError_Type `protobuf:"varint,1,opt,name=type,proto3,enum=gnoi.os.InstallError_Type" json:"type,omitempty"`
-	Detail string            `protobuf:"bytes,2,opt,name=detail,proto3" json:"detail,omitempty"`
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *InstallError) Reset() {
 	*x = InstallError{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_github_com_openconfig_gnoi_os_os_proto_msgTypes[8]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_os_os_proto_msgTypes[8]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *InstallError) String() string {
@@ -725,7 +716,7 @@ func (*InstallError) ProtoMessage() {}
 
 func (x *InstallError) ProtoReflect() protoreflect.Message {
 	mi := &file_github_com_openconfig_gnoi_os_os_proto_msgTypes[8]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -755,23 +746,20 @@ func (x *InstallError) GetDetail() string {
 }
 
 type ActivateRequest struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
+	state             protoimpl.MessageState           `protogen:"open.v1"`
 	Version           string                           `protobuf:"bytes,1,opt,name=version,proto3" json:"version,omitempty"`
 	StandbySupervisor bool                             `protobuf:"varint,2,opt,name=standby_supervisor,json=standbySupervisor,proto3" json:"standby_supervisor,omitempty"`
 	NoReboot          bool                             `protobuf:"varint,3,opt,name=no_reboot,json=noReboot,proto3" json:"no_reboot,omitempty"`
 	BootConfig        *bootconfig.SetBootConfigRequest `protobuf:"bytes,4,opt,name=boot_config,json=bootConfig,proto3" json:"boot_config,omitempty"`
+	unknownFields     protoimpl.UnknownFields
+	sizeCache         protoimpl.SizeCache
 }
 
 func (x *ActivateRequest) Reset() {
 	*x = ActivateRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_github_com_openconfig_gnoi_os_os_proto_msgTypes[9]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_os_os_proto_msgTypes[9]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *ActivateRequest) String() string {
@@ -782,7 +770,7 @@ func (*ActivateRequest) ProtoMessage() {}
 
 func (x *ActivateRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_github_com_openconfig_gnoi_os_os_proto_msgTypes[9]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -826,24 +814,21 @@ func (x *ActivateRequest) GetBootConfig() *bootconfig.SetBootConfigRequest {
 }
 
 type ActivateResponse struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	// Types that are assignable to Response:
+	state protoimpl.MessageState `protogen:"open.v1"`
+	// Types that are valid to be assigned to Response:
 	//
 	//	*ActivateResponse_ActivateOk
 	//	*ActivateResponse_ActivateError
-	Response isActivateResponse_Response `protobuf_oneof:"response"`
+	Response      isActivateResponse_Response `protobuf_oneof:"response"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *ActivateResponse) Reset() {
 	*x = ActivateResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_github_com_openconfig_gnoi_os_os_proto_msgTypes[10]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_os_os_proto_msgTypes[10]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *ActivateResponse) String() string {
@@ -854,7 +839,7 @@ func (*ActivateResponse) ProtoMessage() {}
 
 func (x *ActivateResponse) ProtoReflect() protoreflect.Message {
 	mi := &file_github_com_openconfig_gnoi_os_os_proto_msgTypes[10]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -869,23 +854,27 @@ func (*ActivateResponse) Descriptor() ([]byte, []int) {
 	return file_github_com_openconfig_gnoi_os_os_proto_rawDescGZIP(), []int{10}
 }
 
-func (m *ActivateResponse) GetResponse() isActivateResponse_Response {
-	if m != nil {
-		return m.Response
+func (x *ActivateResponse) GetResponse() isActivateResponse_Response {
+	if x != nil {
+		return x.Response
 	}
 	return nil
 }
 
 func (x *ActivateResponse) GetActivateOk() *ActivateOK {
-	if x, ok := x.GetResponse().(*ActivateResponse_ActivateOk); ok {
-		return x.ActivateOk
+	if x != nil {
+		if x, ok := x.Response.(*ActivateResponse_ActivateOk); ok {
+			return x.ActivateOk
+		}
 	}
 	return nil
 }
 
 func (x *ActivateResponse) GetActivateError() *ActivateError {
-	if x, ok := x.GetResponse().(*ActivateResponse_ActivateError); ok {
-		return x.ActivateError
+	if x != nil {
+		if x, ok := x.Response.(*ActivateResponse_ActivateError); ok {
+			return x.ActivateError
+		}
 	}
 	return nil
 }
@@ -907,18 +896,16 @@ func (*ActivateResponse_ActivateOk) isActivateResponse_Response() {}
 func (*ActivateResponse_ActivateError) isActivateResponse_Response() {}
 
 type ActivateOK struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState `protogen:"open.v1"`
 	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *ActivateOK) Reset() {
 	*x = ActivateOK{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_github_com_openconfig_gnoi_os_os_proto_msgTypes[11]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_os_os_proto_msgTypes[11]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *ActivateOK) String() string {
@@ -929,7 +916,7 @@ func (*ActivateOK) ProtoMessage() {}
 
 func (x *ActivateOK) ProtoReflect() protoreflect.Message {
 	mi := &file_github_com_openconfig_gnoi_os_os_proto_msgTypes[11]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -945,21 +932,18 @@ func (*ActivateOK) Descriptor() ([]byte, []int) {
 }
 
 type ActivateError struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Type          ActivateError_Type     `protobuf:"varint,1,opt,name=type,proto3,enum=gnoi.os.ActivateError_Type" json:"type,omitempty"`
+	Detail        string                 `protobuf:"bytes,2,opt,name=detail,proto3" json:"detail,omitempty"`
 	unknownFields protoimpl.UnknownFields
-
-	Type   ActivateError_Type `protobuf:"varint,1,opt,name=type,proto3,enum=gnoi.os.ActivateError_Type" json:"type,omitempty"`
-	Detail string             `protobuf:"bytes,2,opt,name=detail,proto3" json:"detail,omitempty"`
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *ActivateError) Reset() {
 	*x = ActivateError{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_github_com_openconfig_gnoi_os_os_proto_msgTypes[12]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_os_os_proto_msgTypes[12]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *ActivateError) String() string {
@@ -970,7 +954,7 @@ func (*ActivateError) ProtoMessage() {}
 
 func (x *ActivateError) ProtoReflect() protoreflect.Message {
 	mi := &file_github_com_openconfig_gnoi_os_os_proto_msgTypes[12]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -1000,18 +984,16 @@ func (x *ActivateError) GetDetail() string {
 }
 
 type VerifyRequest struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState `protogen:"open.v1"`
 	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *VerifyRequest) Reset() {
 	*x = VerifyRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_github_com_openconfig_gnoi_os_os_proto_msgTypes[13]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_os_os_proto_msgTypes[13]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *VerifyRequest) String() string {
@@ -1022,7 +1004,7 @@ func (*VerifyRequest) ProtoMessage() {}
 
 func (x *VerifyRequest) ProtoReflect() protoreflect.Message {
 	mi := &file_github_com_openconfig_gnoi_os_os_proto_msgTypes[13]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -1038,23 +1020,20 @@ func (*VerifyRequest) Descriptor() ([]byte, []int) {
 }
 
 type VerifyResponse struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	Version                     string         `protobuf:"bytes,1,opt,name=version,proto3" json:"version,omitempty"`
-	ActivationFailMessage       string         `protobuf:"bytes,2,opt,name=activation_fail_message,json=activationFailMessage,proto3" json:"activation_fail_message,omitempty"`
-	VerifyStandby               *VerifyStandby `protobuf:"bytes,3,opt,name=verify_standby,json=verifyStandby,proto3" json:"verify_standby,omitempty"`
-	IndividualSupervisorInstall bool           `protobuf:"varint,4,opt,name=individual_supervisor_install,json=individualSupervisorInstall,proto3" json:"individual_supervisor_install,omitempty"`
+	state                       protoimpl.MessageState `protogen:"open.v1"`
+	Version                     string                 `protobuf:"bytes,1,opt,name=version,proto3" json:"version,omitempty"`
+	ActivationFailMessage       string                 `protobuf:"bytes,2,opt,name=activation_fail_message,json=activationFailMessage,proto3" json:"activation_fail_message,omitempty"`
+	VerifyStandby               *VerifyStandby         `protobuf:"bytes,3,opt,name=verify_standby,json=verifyStandby,proto3" json:"verify_standby,omitempty"`
+	IndividualSupervisorInstall bool                   `protobuf:"varint,4,opt,name=individual_supervisor_install,json=individualSupervisorInstall,proto3" json:"individual_supervisor_install,omitempty"`
+	unknownFields               protoimpl.UnknownFields
+	sizeCache                   protoimpl.SizeCache
 }
 
 func (x *VerifyResponse) Reset() {
 	*x = VerifyResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_github_com_openconfig_gnoi_os_os_proto_msgTypes[14]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_os_os_proto_msgTypes[14]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *VerifyResponse) String() string {
@@ -1065,7 +1044,7 @@ func (*VerifyResponse) ProtoMessage() {}
 
 func (x *VerifyResponse) ProtoReflect() protoreflect.Message {
 	mi := &file_github_com_openconfig_gnoi_os_os_proto_msgTypes[14]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -1109,24 +1088,21 @@ func (x *VerifyResponse) GetIndividualSupervisorInstall() bool {
 }
 
 type VerifyStandby struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	// Types that are assignable to State:
+	state protoimpl.MessageState `protogen:"open.v1"`
+	// Types that are valid to be assigned to State:
 	//
 	//	*VerifyStandby_StandbyState
 	//	*VerifyStandby_VerifyResponse
-	State isVerifyStandby_State `protobuf_oneof:"state"`
+	State         isVerifyStandby_State `protobuf_oneof:"state"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *VerifyStandby) Reset() {
 	*x = VerifyStandby{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_github_com_openconfig_gnoi_os_os_proto_msgTypes[15]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_os_os_proto_msgTypes[15]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *VerifyStandby) String() string {
@@ -1137,7 +1113,7 @@ func (*VerifyStandby) ProtoMessage() {}
 
 func (x *VerifyStandby) ProtoReflect() protoreflect.Message {
 	mi := &file_github_com_openconfig_gnoi_os_os_proto_msgTypes[15]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -1152,23 +1128,27 @@ func (*VerifyStandby) Descriptor() ([]byte, []int) {
 	return file_github_com_openconfig_gnoi_os_os_proto_rawDescGZIP(), []int{15}
 }
 
-func (m *VerifyStandby) GetState() isVerifyStandby_State {
-	if m != nil {
-		return m.State
+func (x *VerifyStandby) GetState() isVerifyStandby_State {
+	if x != nil {
+		return x.State
 	}
 	return nil
 }
 
 func (x *VerifyStandby) GetStandbyState() *StandbyState {
-	if x, ok := x.GetState().(*VerifyStandby_StandbyState); ok {
-		return x.StandbyState
+	if x != nil {
+		if x, ok := x.State.(*VerifyStandby_StandbyState); ok {
+			return x.StandbyState
+		}
 	}
 	return nil
 }
 
 func (x *VerifyStandby) GetVerifyResponse() *StandbyResponse {
-	if x, ok := x.GetState().(*VerifyStandby_VerifyResponse); ok {
-		return x.VerifyResponse
+	if x != nil {
+		if x, ok := x.State.(*VerifyStandby_VerifyResponse); ok {
+			return x.VerifyResponse
+		}
 	}
 	return nil
 }
@@ -1190,20 +1170,17 @@ func (*VerifyStandby_StandbyState) isVerifyStandby_State() {}
 func (*VerifyStandby_VerifyResponse) isVerifyStandby_State() {}
 
 type StandbyState struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	State         StandbyState_State     `protobuf:"varint,1,opt,name=state,proto3,enum=gnoi.os.StandbyState_State" json:"state,omitempty"`
 	unknownFields protoimpl.UnknownFields
-
-	State StandbyState_State `protobuf:"varint,1,opt,name=state,proto3,enum=gnoi.os.StandbyState_State" json:"state,omitempty"`
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *StandbyState) Reset() {
 	*x = StandbyState{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_github_com_openconfig_gnoi_os_os_proto_msgTypes[16]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_os_os_proto_msgTypes[16]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *StandbyState) String() string {
@@ -1214,7 +1191,7 @@ func (*StandbyState) ProtoMessage() {}
 
 func (x *StandbyState) ProtoReflect() protoreflect.Message {
 	mi := &file_github_com_openconfig_gnoi_os_os_proto_msgTypes[16]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -1237,22 +1214,19 @@ func (x *StandbyState) GetState() StandbyState_State {
 }
 
 type StandbyResponse struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	Id                    string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
-	Version               string `protobuf:"bytes,2,opt,name=version,proto3" json:"version,omitempty"`
-	ActivationFailMessage string `protobuf:"bytes,3,opt,name=activation_fail_message,json=activationFailMessage,proto3" json:"activation_fail_message,omitempty"`
+	state                 protoimpl.MessageState `protogen:"open.v1"`
+	Id                    string                 `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
+	Version               string                 `protobuf:"bytes,2,opt,name=version,proto3" json:"version,omitempty"`
+	ActivationFailMessage string                 `protobuf:"bytes,3,opt,name=activation_fail_message,json=activationFailMessage,proto3" json:"activation_fail_message,omitempty"`
+	unknownFields         protoimpl.UnknownFields
+	sizeCache             protoimpl.SizeCache
 }
 
 func (x *StandbyResponse) Reset() {
 	*x = StandbyResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_github_com_openconfig_gnoi_os_os_proto_msgTypes[17]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_os_os_proto_msgTypes[17]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *StandbyResponse) String() string {
@@ -1263,7 +1237,7 @@ func (*StandbyResponse) ProtoMessage() {}
 
 func (x *StandbyResponse) ProtoReflect() protoreflect.Message {
 	mi := &file_github_com_openconfig_gnoi_os_os_proto_msgTypes[17]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -1495,7 +1469,7 @@ func file_github_com_openconfig_gnoi_os_os_proto_rawDescGZIP() []byte {
 
 var file_github_com_openconfig_gnoi_os_os_proto_enumTypes = make([]protoimpl.EnumInfo, 3)
 var file_github_com_openconfig_gnoi_os_os_proto_msgTypes = make([]protoimpl.MessageInfo, 18)
-var file_github_com_openconfig_gnoi_os_os_proto_goTypes = []interface{}{
+var file_github_com_openconfig_gnoi_os_os_proto_goTypes = []any{
 	(InstallError_Type)(0),                  // 0: gnoi.os.InstallError.Type
 	(ActivateError_Type)(0),                 // 1: gnoi.os.ActivateError.Type
 	(StandbyState_State)(0),                 // 2: gnoi.os.StandbyState.State
@@ -1554,241 +1528,23 @@ func file_github_com_openconfig_gnoi_os_os_proto_init() {
 	if File_github_com_openconfig_gnoi_os_os_proto != nil {
 		return
 	}
-	if !protoimpl.UnsafeEnabled {
-		file_github_com_openconfig_gnoi_os_os_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*InstallRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_github_com_openconfig_gnoi_os_os_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*TransferRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_github_com_openconfig_gnoi_os_os_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*TransferEnd); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_github_com_openconfig_gnoi_os_os_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*InstallResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_github_com_openconfig_gnoi_os_os_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*TransferReady); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_github_com_openconfig_gnoi_os_os_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*TransferProgress); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_github_com_openconfig_gnoi_os_os_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*SyncProgress); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_github_com_openconfig_gnoi_os_os_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*Validated); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_github_com_openconfig_gnoi_os_os_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*InstallError); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_github_com_openconfig_gnoi_os_os_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*ActivateRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_github_com_openconfig_gnoi_os_os_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*ActivateResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_github_com_openconfig_gnoi_os_os_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*ActivateOK); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_github_com_openconfig_gnoi_os_os_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*ActivateError); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_github_com_openconfig_gnoi_os_os_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*VerifyRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_github_com_openconfig_gnoi_os_os_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*VerifyResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_github_com_openconfig_gnoi_os_os_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*VerifyStandby); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_github_com_openconfig_gnoi_os_os_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*StandbyState); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_github_com_openconfig_gnoi_os_os_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*StandbyResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-	}
-	file_github_com_openconfig_gnoi_os_os_proto_msgTypes[0].OneofWrappers = []interface{}{
+	file_github_com_openconfig_gnoi_os_os_proto_msgTypes[0].OneofWrappers = []any{
 		(*InstallRequest_TransferRequest)(nil),
 		(*InstallRequest_TransferContent)(nil),
 		(*InstallRequest_TransferEnd)(nil),
 	}
-	file_github_com_openconfig_gnoi_os_os_proto_msgTypes[3].OneofWrappers = []interface{}{
+	file_github_com_openconfig_gnoi_os_os_proto_msgTypes[3].OneofWrappers = []any{
 		(*InstallResponse_TransferReady)(nil),
 		(*InstallResponse_TransferProgress)(nil),
 		(*InstallResponse_SyncProgress)(nil),
 		(*InstallResponse_Validated)(nil),
 		(*InstallResponse_InstallError)(nil),
 	}
-	file_github_com_openconfig_gnoi_os_os_proto_msgTypes[10].OneofWrappers = []interface{}{
+	file_github_com_openconfig_gnoi_os_os_proto_msgTypes[10].OneofWrappers = []any{
 		(*ActivateResponse_ActivateOk)(nil),
 		(*ActivateResponse_ActivateError)(nil),
 	}
-	file_github_com_openconfig_gnoi_os_os_proto_msgTypes[15].OneofWrappers = []interface{}{
+	file_github_com_openconfig_gnoi_os_os_proto_msgTypes[15].OneofWrappers = []any{
 		(*VerifyStandby_StandbyState)(nil),
 		(*VerifyStandby_VerifyResponse)(nil),
 	}
diff --git a/os/os_grpc.pb.go b/os/os_grpc.pb.go
index 7251b646..a34c142a 100644
--- a/os/os_grpc.pb.go
+++ b/os/os_grpc.pb.go
@@ -1,7 +1,7 @@
 // Code generated by protoc-gen-go-grpc. DO NOT EDIT.
 // versions:
-// - protoc-gen-go-grpc v1.2.0
-// - protoc             v3.21.10
+// - protoc-gen-go-grpc v1.5.1
+// - protoc             v5.29.3
 // source: github.com/openconfig/gnoi/os/os.proto
 
 package os
@@ -15,14 +15,20 @@ import (
 
 // This is a compile-time assertion to ensure that this generated file
 // is compatible with the grpc package it is being compiled against.
-// Requires gRPC-Go v1.32.0 or later.
-const _ = grpc.SupportPackageIsVersion7
+// Requires gRPC-Go v1.64.0 or later.
+const _ = grpc.SupportPackageIsVersion9
+
+const (
+	OS_Install_FullMethodName  = "/gnoi.os.OS/Install"
+	OS_Activate_FullMethodName = "/gnoi.os.OS/Activate"
+	OS_Verify_FullMethodName   = "/gnoi.os.OS/Verify"
+)
 
 // OSClient is the client API for OS service.
 //
 // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.
 type OSClient interface {
-	Install(ctx context.Context, opts ...grpc.CallOption) (OS_InstallClient, error)
+	Install(ctx context.Context, opts ...grpc.CallOption) (grpc.BidiStreamingClient[InstallRequest, InstallResponse], error)
 	Activate(ctx context.Context, in *ActivateRequest, opts ...grpc.CallOption) (*ActivateResponse, error)
 	Verify(ctx context.Context, in *VerifyRequest, opts ...grpc.CallOption) (*VerifyResponse, error)
 }
@@ -35,40 +41,23 @@ func NewOSClient(cc grpc.ClientConnInterface) OSClient {
 	return &oSClient{cc}
 }
 
-func (c *oSClient) Install(ctx context.Context, opts ...grpc.CallOption) (OS_InstallClient, error) {
-	stream, err := c.cc.NewStream(ctx, &OS_ServiceDesc.Streams[0], "/gnoi.os.OS/Install", opts...)
+func (c *oSClient) Install(ctx context.Context, opts ...grpc.CallOption) (grpc.BidiStreamingClient[InstallRequest, InstallResponse], error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	stream, err := c.cc.NewStream(ctx, &OS_ServiceDesc.Streams[0], OS_Install_FullMethodName, cOpts...)
 	if err != nil {
 		return nil, err
 	}
-	x := &oSInstallClient{stream}
+	x := &grpc.GenericClientStream[InstallRequest, InstallResponse]{ClientStream: stream}
 	return x, nil
 }
 
-type OS_InstallClient interface {
-	Send(*InstallRequest) error
-	Recv() (*InstallResponse, error)
-	grpc.ClientStream
-}
-
-type oSInstallClient struct {
-	grpc.ClientStream
-}
-
-func (x *oSInstallClient) Send(m *InstallRequest) error {
-	return x.ClientStream.SendMsg(m)
-}
-
-func (x *oSInstallClient) Recv() (*InstallResponse, error) {
-	m := new(InstallResponse)
-	if err := x.ClientStream.RecvMsg(m); err != nil {
-		return nil, err
-	}
-	return m, nil
-}
+// This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name.
+type OS_InstallClient = grpc.BidiStreamingClient[InstallRequest, InstallResponse]
 
 func (c *oSClient) Activate(ctx context.Context, in *ActivateRequest, opts ...grpc.CallOption) (*ActivateResponse, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
 	out := new(ActivateResponse)
-	err := c.cc.Invoke(ctx, "/gnoi.os.OS/Activate", in, out, opts...)
+	err := c.cc.Invoke(ctx, OS_Activate_FullMethodName, in, out, cOpts...)
 	if err != nil {
 		return nil, err
 	}
@@ -76,8 +65,9 @@ func (c *oSClient) Activate(ctx context.Context, in *ActivateRequest, opts ...gr
 }
 
 func (c *oSClient) Verify(ctx context.Context, in *VerifyRequest, opts ...grpc.CallOption) (*VerifyResponse, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
 	out := new(VerifyResponse)
-	err := c.cc.Invoke(ctx, "/gnoi.os.OS/Verify", in, out, opts...)
+	err := c.cc.Invoke(ctx, OS_Verify_FullMethodName, in, out, cOpts...)
 	if err != nil {
 		return nil, err
 	}
@@ -85,20 +75,22 @@ func (c *oSClient) Verify(ctx context.Context, in *VerifyRequest, opts ...grpc.C
 }
 
 // OSServer is the server API for OS service.
-// All implementations must embed UnimplementedOSServer
-// for forward compatibility
+// All implementations should embed UnimplementedOSServer
+// for forward compatibility.
 type OSServer interface {
-	Install(OS_InstallServer) error
+	Install(grpc.BidiStreamingServer[InstallRequest, InstallResponse]) error
 	Activate(context.Context, *ActivateRequest) (*ActivateResponse, error)
 	Verify(context.Context, *VerifyRequest) (*VerifyResponse, error)
-	mustEmbedUnimplementedOSServer()
 }
 
-// UnimplementedOSServer must be embedded to have forward compatible implementations.
-type UnimplementedOSServer struct {
-}
+// UnimplementedOSServer should be embedded to have
+// forward compatible implementations.
+//
+// NOTE: this should be embedded by value instead of pointer to avoid a nil
+// pointer dereference when methods are called.
+type UnimplementedOSServer struct{}
 
-func (UnimplementedOSServer) Install(OS_InstallServer) error {
+func (UnimplementedOSServer) Install(grpc.BidiStreamingServer[InstallRequest, InstallResponse]) error {
 	return status.Errorf(codes.Unimplemented, "method Install not implemented")
 }
 func (UnimplementedOSServer) Activate(context.Context, *ActivateRequest) (*ActivateResponse, error) {
@@ -107,7 +99,7 @@ func (UnimplementedOSServer) Activate(context.Context, *ActivateRequest) (*Activ
 func (UnimplementedOSServer) Verify(context.Context, *VerifyRequest) (*VerifyResponse, error) {
 	return nil, status.Errorf(codes.Unimplemented, "method Verify not implemented")
 }
-func (UnimplementedOSServer) mustEmbedUnimplementedOSServer() {}
+func (UnimplementedOSServer) testEmbeddedByValue() {}
 
 // UnsafeOSServer may be embedded to opt out of forward compatibility for this service.
 // Use of this interface is not recommended, as added methods to OSServer will
@@ -117,34 +109,22 @@ type UnsafeOSServer interface {
 }
 
 func RegisterOSServer(s grpc.ServiceRegistrar, srv OSServer) {
+	// If the following call pancis, it indicates UnimplementedOSServer was
+	// embedded by pointer and is nil.  This will cause panics if an
+	// unimplemented method is ever invoked, so we test this at initialization
+	// time to prevent it from happening at runtime later due to I/O.
+	if t, ok := srv.(interface{ testEmbeddedByValue() }); ok {
+		t.testEmbeddedByValue()
+	}
 	s.RegisterService(&OS_ServiceDesc, srv)
 }
 
 func _OS_Install_Handler(srv interface{}, stream grpc.ServerStream) error {
-	return srv.(OSServer).Install(&oSInstallServer{stream})
-}
-
-type OS_InstallServer interface {
-	Send(*InstallResponse) error
-	Recv() (*InstallRequest, error)
-	grpc.ServerStream
-}
-
-type oSInstallServer struct {
-	grpc.ServerStream
-}
-
-func (x *oSInstallServer) Send(m *InstallResponse) error {
-	return x.ServerStream.SendMsg(m)
+	return srv.(OSServer).Install(&grpc.GenericServerStream[InstallRequest, InstallResponse]{ServerStream: stream})
 }
 
-func (x *oSInstallServer) Recv() (*InstallRequest, error) {
-	m := new(InstallRequest)
-	if err := x.ServerStream.RecvMsg(m); err != nil {
-		return nil, err
-	}
-	return m, nil
-}
+// This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name.
+type OS_InstallServer = grpc.BidiStreamingServer[InstallRequest, InstallResponse]
 
 func _OS_Activate_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
 	in := new(ActivateRequest)
@@ -156,7 +136,7 @@ func _OS_Activate_Handler(srv interface{}, ctx context.Context, dec func(interfa
 	}
 	info := &grpc.UnaryServerInfo{
 		Server:     srv,
-		FullMethod: "/gnoi.os.OS/Activate",
+		FullMethod: OS_Activate_FullMethodName,
 	}
 	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
 		return srv.(OSServer).Activate(ctx, req.(*ActivateRequest))
@@ -174,7 +154,7 @@ func _OS_Verify_Handler(srv interface{}, ctx context.Context, dec func(interface
 	}
 	info := &grpc.UnaryServerInfo{
 		Server:     srv,
-		FullMethod: "/gnoi.os.OS/Verify",
+		FullMethod: OS_Verify_FullMethodName,
 	}
 	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
 		return srv.(OSServer).Verify(ctx, req.(*VerifyRequest))
diff --git a/otdr/BUILD.bazel b/otdr/BUILD.bazel
index 0d9c7d37..8ad5ccec 100644
--- a/otdr/BUILD.bazel
+++ b/otdr/BUILD.bazel
@@ -1,8 +1,8 @@
-load("@rules_proto//proto:defs.bzl", "proto_library")
+load("@com_github_grpc_grpc//bazel:cc_grpc_library.bzl", "cc_grpc_library")
+load("@com_google_protobuf//bazel:cc_proto_library.bzl", "cc_proto_library")
+load("@com_google_protobuf//bazel:proto_library.bzl", "proto_library")
 load("@io_bazel_rules_go//go:def.bzl", "go_library")
 load("@io_bazel_rules_go//proto:def.bzl", "go_proto_library")
-load("@com_github_grpc_grpc//bazel:cc_grpc_library.bzl", "cc_grpc_library")
-load("//:common.bzl", "use_new_compilers")
 
 #Copyright 2021 Google LLC
 #
@@ -23,11 +23,10 @@ package(
     licenses = ["notice"],
 )
 
-use_new_compilers()
-
 proto_library(
     name = "otdr_proto",
     srcs = ["otdr.proto"],
+    import_prefix = "github.com/openconfig/gnoi",
     deps = ["//types:types_proto"],
 )
 
@@ -46,8 +45,8 @@ cc_grpc_library(
 go_proto_library(
     name = "otdr_go_proto",
     compilers = [
-        "go_protoc_gen_go",
-        "go_protoc_gen_go_grpc",
+        "@io_bazel_rules_go//proto:go_grpc_v2",
+        "@io_bazel_rules_go//proto:go_proto",
     ],
     importpath = "github.com/openconfig/gnoi/otdr",
     proto = ":otdr_proto",
diff --git a/otdr/otdr.pb.go b/otdr/otdr.pb.go
index 2b0435f6..815b988e 100644
--- a/otdr/otdr.pb.go
+++ b/otdr/otdr.pb.go
@@ -1,8 +1,8 @@
 // Code generated by protoc-gen-go. DO NOT EDIT.
 // versions:
-// 	protoc-gen-go v1.30.0
-// 	protoc        v3.21.10
-// source: otdr/otdr.proto
+// 	protoc-gen-go v1.36.2
+// 	protoc        v5.29.3
+// source: github.com/openconfig/gnoi/otdr/otdr.proto
 
 package otdr
 
@@ -72,11 +72,11 @@ func (x FiberTypeProfile) String() string {
 }
 
 func (FiberTypeProfile) Descriptor() protoreflect.EnumDescriptor {
-	return file_otdr_otdr_proto_enumTypes[0].Descriptor()
+	return file_github_com_openconfig_gnoi_otdr_otdr_proto_enumTypes[0].Descriptor()
 }
 
 func (FiberTypeProfile) Type() protoreflect.EnumType {
-	return &file_otdr_otdr_proto_enumTypes[0]
+	return &file_github_com_openconfig_gnoi_otdr_otdr_proto_enumTypes[0]
 }
 
 func (x FiberTypeProfile) Number() protoreflect.EnumNumber {
@@ -85,7 +85,7 @@ func (x FiberTypeProfile) Number() protoreflect.EnumNumber {
 
 // Deprecated: Use FiberTypeProfile.Descriptor instead.
 func (FiberTypeProfile) EnumDescriptor() ([]byte, []int) {
-	return file_otdr_otdr_proto_rawDescGZIP(), []int{0}
+	return file_github_com_openconfig_gnoi_otdr_otdr_proto_rawDescGZIP(), []int{0}
 }
 
 type InitiateRequest_ResultsMethod int32
@@ -121,11 +121,11 @@ func (x InitiateRequest_ResultsMethod) String() string {
 }
 
 func (InitiateRequest_ResultsMethod) Descriptor() protoreflect.EnumDescriptor {
-	return file_otdr_otdr_proto_enumTypes[1].Descriptor()
+	return file_github_com_openconfig_gnoi_otdr_otdr_proto_enumTypes[1].Descriptor()
 }
 
 func (InitiateRequest_ResultsMethod) Type() protoreflect.EnumType {
-	return &file_otdr_otdr_proto_enumTypes[1]
+	return &file_github_com_openconfig_gnoi_otdr_otdr_proto_enumTypes[1]
 }
 
 func (x InitiateRequest_ResultsMethod) Number() protoreflect.EnumNumber {
@@ -134,7 +134,7 @@ func (x InitiateRequest_ResultsMethod) Number() protoreflect.EnumNumber {
 
 // Deprecated: Use InitiateRequest_ResultsMethod.Descriptor instead.
 func (InitiateRequest_ResultsMethod) EnumDescriptor() ([]byte, []int) {
-	return file_otdr_otdr_proto_rawDescGZIP(), []int{0, 0}
+	return file_github_com_openconfig_gnoi_otdr_otdr_proto_rawDescGZIP(), []int{0, 0}
 }
 
 type InitiateProgress_State int32
@@ -173,11 +173,11 @@ func (x InitiateProgress_State) String() string {
 }
 
 func (InitiateProgress_State) Descriptor() protoreflect.EnumDescriptor {
-	return file_otdr_otdr_proto_enumTypes[2].Descriptor()
+	return file_github_com_openconfig_gnoi_otdr_otdr_proto_enumTypes[2].Descriptor()
 }
 
 func (InitiateProgress_State) Type() protoreflect.EnumType {
-	return &file_otdr_otdr_proto_enumTypes[2]
+	return &file_github_com_openconfig_gnoi_otdr_otdr_proto_enumTypes[2]
 }
 
 func (x InitiateProgress_State) Number() protoreflect.EnumNumber {
@@ -186,7 +186,7 @@ func (x InitiateProgress_State) Number() protoreflect.EnumNumber {
 
 // Deprecated: Use InitiateProgress_State.Descriptor instead.
 func (InitiateProgress_State) EnumDescriptor() ([]byte, []int) {
-	return file_otdr_otdr_proto_rawDescGZIP(), []int{2, 0}
+	return file_github_com_openconfig_gnoi_otdr_otdr_proto_rawDescGZIP(), []int{2, 0}
 }
 
 type InitiateError_Type int32
@@ -222,11 +222,11 @@ func (x InitiateError_Type) String() string {
 }
 
 func (InitiateError_Type) Descriptor() protoreflect.EnumDescriptor {
-	return file_otdr_otdr_proto_enumTypes[3].Descriptor()
+	return file_github_com_openconfig_gnoi_otdr_otdr_proto_enumTypes[3].Descriptor()
 }
 
 func (InitiateError_Type) Type() protoreflect.EnumType {
-	return &file_otdr_otdr_proto_enumTypes[3]
+	return &file_github_com_openconfig_gnoi_otdr_otdr_proto_enumTypes[3]
 }
 
 func (x InitiateError_Type) Number() protoreflect.EnumNumber {
@@ -235,27 +235,24 @@ func (x InitiateError_Type) Number() protoreflect.EnumNumber {
 
 // Deprecated: Use InitiateError_Type.Descriptor instead.
 func (InitiateError_Type) EnumDescriptor() ([]byte, []int) {
-	return file_otdr_otdr_proto_rawDescGZIP(), []int{4, 0}
+	return file_github_com_openconfig_gnoi_otdr_otdr_proto_rawDescGZIP(), []int{4, 0}
 }
 
 type InitiateRequest struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
+	state         protoimpl.MessageState          `protogen:"open.v1"`
 	Component     *types.Path                     `protobuf:"bytes,1,opt,name=component,proto3" json:"component,omitempty"`
 	ResultsMethod []InitiateRequest_ResultsMethod `protobuf:"varint,2,rep,packed,name=results_method,json=resultsMethod,proto3,enum=gnoi.optical.InitiateRequest_ResultsMethod" json:"results_method,omitempty"`
 	Configuration *OTDRConfiguration              `protobuf:"bytes,3,opt,name=configuration,proto3" json:"configuration,omitempty"`
 	Label         string                          `protobuf:"bytes,4,opt,name=label,proto3" json:"label,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *InitiateRequest) Reset() {
 	*x = InitiateRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_otdr_otdr_proto_msgTypes[0]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_otdr_otdr_proto_msgTypes[0]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *InitiateRequest) String() string {
@@ -265,8 +262,8 @@ func (x *InitiateRequest) String() string {
 func (*InitiateRequest) ProtoMessage() {}
 
 func (x *InitiateRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_otdr_otdr_proto_msgTypes[0]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_otdr_otdr_proto_msgTypes[0]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -278,7 +275,7 @@ func (x *InitiateRequest) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use InitiateRequest.ProtoReflect.Descriptor instead.
 func (*InitiateRequest) Descriptor() ([]byte, []int) {
-	return file_otdr_otdr_proto_rawDescGZIP(), []int{0}
+	return file_github_com_openconfig_gnoi_otdr_otdr_proto_rawDescGZIP(), []int{0}
 }
 
 func (x *InitiateRequest) GetComponent() *types.Path {
@@ -310,25 +307,22 @@ func (x *InitiateRequest) GetLabel() string {
 }
 
 type OTDRConfiguration struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	AcquisitionTimeS    uint32           `protobuf:"varint,1,opt,name=acquisition_time_s,json=acquisitionTimeS,proto3" json:"acquisition_time_s,omitempty"`
-	PulseWidthNs        float32          `protobuf:"fixed32,2,opt,name=pulse_width_ns,json=pulseWidthNs,proto3" json:"pulse_width_ns,omitempty"`
-	WavelengthMhz       uint64           `protobuf:"varint,3,opt,name=wavelength_mhz,json=wavelengthMhz,proto3" json:"wavelength_mhz,omitempty"`
-	RangeM              float32          `protobuf:"fixed32,4,opt,name=range_m,json=rangeM,proto3" json:"range_m,omitempty"`
-	FiberType           FiberTypeProfile `protobuf:"varint,5,opt,name=fiber_type,json=fiberType,proto3,enum=gnoi.optical.FiberTypeProfile" json:"fiber_type,omitempty"`
-	SamplingResolutionM float32          `protobuf:"fixed32,6,opt,name=sampling_resolution_m,json=samplingResolutionM,proto3" json:"sampling_resolution_m,omitempty"`
+	state               protoimpl.MessageState `protogen:"open.v1"`
+	AcquisitionTimeS    uint32                 `protobuf:"varint,1,opt,name=acquisition_time_s,json=acquisitionTimeS,proto3" json:"acquisition_time_s,omitempty"`
+	PulseWidthNs        float32                `protobuf:"fixed32,2,opt,name=pulse_width_ns,json=pulseWidthNs,proto3" json:"pulse_width_ns,omitempty"`
+	WavelengthMhz       uint64                 `protobuf:"varint,3,opt,name=wavelength_mhz,json=wavelengthMhz,proto3" json:"wavelength_mhz,omitempty"`
+	RangeM              float32                `protobuf:"fixed32,4,opt,name=range_m,json=rangeM,proto3" json:"range_m,omitempty"`
+	FiberType           FiberTypeProfile       `protobuf:"varint,5,opt,name=fiber_type,json=fiberType,proto3,enum=gnoi.optical.FiberTypeProfile" json:"fiber_type,omitempty"`
+	SamplingResolutionM float32                `protobuf:"fixed32,6,opt,name=sampling_resolution_m,json=samplingResolutionM,proto3" json:"sampling_resolution_m,omitempty"`
+	unknownFields       protoimpl.UnknownFields
+	sizeCache           protoimpl.SizeCache
 }
 
 func (x *OTDRConfiguration) Reset() {
 	*x = OTDRConfiguration{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_otdr_otdr_proto_msgTypes[1]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_otdr_otdr_proto_msgTypes[1]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *OTDRConfiguration) String() string {
@@ -338,8 +332,8 @@ func (x *OTDRConfiguration) String() string {
 func (*OTDRConfiguration) ProtoMessage() {}
 
 func (x *OTDRConfiguration) ProtoReflect() protoreflect.Message {
-	mi := &file_otdr_otdr_proto_msgTypes[1]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_otdr_otdr_proto_msgTypes[1]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -351,7 +345,7 @@ func (x *OTDRConfiguration) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use OTDRConfiguration.ProtoReflect.Descriptor instead.
 func (*OTDRConfiguration) Descriptor() ([]byte, []int) {
-	return file_otdr_otdr_proto_rawDescGZIP(), []int{1}
+	return file_github_com_openconfig_gnoi_otdr_otdr_proto_rawDescGZIP(), []int{1}
 }
 
 func (x *OTDRConfiguration) GetAcquisitionTimeS() uint32 {
@@ -397,20 +391,17 @@ func (x *OTDRConfiguration) GetSamplingResolutionM() float32 {
 }
 
 type InitiateProgress struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	State         InitiateProgress_State `protobuf:"varint,1,opt,name=state,proto3,enum=gnoi.optical.InitiateProgress_State" json:"state,omitempty"`
 	unknownFields protoimpl.UnknownFields
-
-	State InitiateProgress_State `protobuf:"varint,1,opt,name=state,proto3,enum=gnoi.optical.InitiateProgress_State" json:"state,omitempty"`
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *InitiateProgress) Reset() {
 	*x = InitiateProgress{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_otdr_otdr_proto_msgTypes[2]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_otdr_otdr_proto_msgTypes[2]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *InitiateProgress) String() string {
@@ -420,8 +411,8 @@ func (x *InitiateProgress) String() string {
 func (*InitiateProgress) ProtoMessage() {}
 
 func (x *InitiateProgress) ProtoReflect() protoreflect.Message {
-	mi := &file_otdr_otdr_proto_msgTypes[2]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_otdr_otdr_proto_msgTypes[2]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -433,7 +424,7 @@ func (x *InitiateProgress) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use InitiateProgress.ProtoReflect.Descriptor instead.
 func (*InitiateProgress) Descriptor() ([]byte, []int) {
-	return file_otdr_otdr_proto_rawDescGZIP(), []int{2}
+	return file_github_com_openconfig_gnoi_otdr_otdr_proto_rawDescGZIP(), []int{2}
 }
 
 func (x *InitiateProgress) GetState() InitiateProgress_State {
@@ -444,21 +435,18 @@ func (x *InitiateProgress) GetState() InitiateProgress_State {
 }
 
 type InitiateResults struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	LocalPath     string                 `protobuf:"bytes,1,opt,name=local_path,json=localPath,proto3" json:"local_path,omitempty"`
+	OtdrTrace     *OTDRTrace             `protobuf:"bytes,2,opt,name=otdr_trace,json=otdrTrace,proto3" json:"otdr_trace,omitempty"`
 	unknownFields protoimpl.UnknownFields
-
-	LocalPath string     `protobuf:"bytes,1,opt,name=local_path,json=localPath,proto3" json:"local_path,omitempty"`
-	OtdrTrace *OTDRTrace `protobuf:"bytes,2,opt,name=otdr_trace,json=otdrTrace,proto3" json:"otdr_trace,omitempty"`
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *InitiateResults) Reset() {
 	*x = InitiateResults{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_otdr_otdr_proto_msgTypes[3]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_otdr_otdr_proto_msgTypes[3]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *InitiateResults) String() string {
@@ -468,8 +456,8 @@ func (x *InitiateResults) String() string {
 func (*InitiateResults) ProtoMessage() {}
 
 func (x *InitiateResults) ProtoReflect() protoreflect.Message {
-	mi := &file_otdr_otdr_proto_msgTypes[3]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_otdr_otdr_proto_msgTypes[3]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -481,7 +469,7 @@ func (x *InitiateResults) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use InitiateResults.ProtoReflect.Descriptor instead.
 func (*InitiateResults) Descriptor() ([]byte, []int) {
-	return file_otdr_otdr_proto_rawDescGZIP(), []int{3}
+	return file_github_com_openconfig_gnoi_otdr_otdr_proto_rawDescGZIP(), []int{3}
 }
 
 func (x *InitiateResults) GetLocalPath() string {
@@ -499,21 +487,18 @@ func (x *InitiateResults) GetOtdrTrace() *OTDRTrace {
 }
 
 type InitiateError struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Type          InitiateError_Type     `protobuf:"varint,1,opt,name=type,proto3,enum=gnoi.optical.InitiateError_Type" json:"type,omitempty"`
+	Detail        string                 `protobuf:"bytes,2,opt,name=detail,proto3" json:"detail,omitempty"`
 	unknownFields protoimpl.UnknownFields
-
-	Type   InitiateError_Type `protobuf:"varint,1,opt,name=type,proto3,enum=gnoi.optical.InitiateError_Type" json:"type,omitempty"`
-	Detail string             `protobuf:"bytes,2,opt,name=detail,proto3" json:"detail,omitempty"`
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *InitiateError) Reset() {
 	*x = InitiateError{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_otdr_otdr_proto_msgTypes[4]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_otdr_otdr_proto_msgTypes[4]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *InitiateError) String() string {
@@ -523,8 +508,8 @@ func (x *InitiateError) String() string {
 func (*InitiateError) ProtoMessage() {}
 
 func (x *InitiateError) ProtoReflect() protoreflect.Message {
-	mi := &file_otdr_otdr_proto_msgTypes[4]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_otdr_otdr_proto_msgTypes[4]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -536,7 +521,7 @@ func (x *InitiateError) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use InitiateError.ProtoReflect.Descriptor instead.
 func (*InitiateError) Descriptor() ([]byte, []int) {
-	return file_otdr_otdr_proto_rawDescGZIP(), []int{4}
+	return file_github_com_openconfig_gnoi_otdr_otdr_proto_rawDescGZIP(), []int{4}
 }
 
 func (x *InitiateError) GetType() InitiateError_Type {
@@ -554,25 +539,22 @@ func (x *InitiateError) GetDetail() string {
 }
 
 type InitiateResponse struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	// Types that are assignable to Response:
+	state protoimpl.MessageState `protogen:"open.v1"`
+	// Types that are valid to be assigned to Response:
 	//
 	//	*InitiateResponse_Progress
 	//	*InitiateResponse_Results
 	//	*InitiateResponse_Error
-	Response isInitiateResponse_Response `protobuf_oneof:"response"`
+	Response      isInitiateResponse_Response `protobuf_oneof:"response"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *InitiateResponse) Reset() {
 	*x = InitiateResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_otdr_otdr_proto_msgTypes[5]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_otdr_otdr_proto_msgTypes[5]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *InitiateResponse) String() string {
@@ -582,8 +564,8 @@ func (x *InitiateResponse) String() string {
 func (*InitiateResponse) ProtoMessage() {}
 
 func (x *InitiateResponse) ProtoReflect() protoreflect.Message {
-	mi := &file_otdr_otdr_proto_msgTypes[5]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_otdr_otdr_proto_msgTypes[5]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -595,33 +577,39 @@ func (x *InitiateResponse) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use InitiateResponse.ProtoReflect.Descriptor instead.
 func (*InitiateResponse) Descriptor() ([]byte, []int) {
-	return file_otdr_otdr_proto_rawDescGZIP(), []int{5}
+	return file_github_com_openconfig_gnoi_otdr_otdr_proto_rawDescGZIP(), []int{5}
 }
 
-func (m *InitiateResponse) GetResponse() isInitiateResponse_Response {
-	if m != nil {
-		return m.Response
+func (x *InitiateResponse) GetResponse() isInitiateResponse_Response {
+	if x != nil {
+		return x.Response
 	}
 	return nil
 }
 
 func (x *InitiateResponse) GetProgress() *InitiateProgress {
-	if x, ok := x.GetResponse().(*InitiateResponse_Progress); ok {
-		return x.Progress
+	if x != nil {
+		if x, ok := x.Response.(*InitiateResponse_Progress); ok {
+			return x.Progress
+		}
 	}
 	return nil
 }
 
 func (x *InitiateResponse) GetResults() *InitiateResults {
-	if x, ok := x.GetResponse().(*InitiateResponse_Results); ok {
-		return x.Results
+	if x != nil {
+		if x, ok := x.Response.(*InitiateResponse_Results); ok {
+			return x.Results
+		}
 	}
 	return nil
 }
 
 func (x *InitiateResponse) GetError() *InitiateError {
-	if x, ok := x.GetResponse().(*InitiateResponse_Error); ok {
-		return x.Error
+	if x != nil {
+		if x, ok := x.Response.(*InitiateResponse_Error); ok {
+			return x.Error
+		}
 	}
 	return nil
 }
@@ -649,25 +637,22 @@ func (*InitiateResponse_Results) isInitiateResponse_Response() {}
 func (*InitiateResponse_Error) isInitiateResponse_Response() {}
 
 type OTDRTrace struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	TotalLossDb         float32          `protobuf:"fixed32,1,opt,name=total_loss_db,json=totalLossDb,proto3" json:"total_loss_db,omitempty"`
-	TotalLengthM        float32          `protobuf:"fixed32,2,opt,name=total_length_m,json=totalLengthM,proto3" json:"total_length_m,omitempty"`
-	OpticalReturnLossDb float32          `protobuf:"fixed32,3,opt,name=optical_return_loss_db,json=opticalReturnLossDb,proto3" json:"optical_return_loss_db,omitempty"`
-	AverageLossDbKm     float32          `protobuf:"fixed32,4,opt,name=average_loss_db_km,json=averageLossDbKm,proto3" json:"average_loss_db_km,omitempty"`
-	DiscoveredFiberType FiberTypeProfile `protobuf:"varint,5,opt,name=discovered_fiber_type,json=discoveredFiberType,proto3,enum=gnoi.optical.FiberTypeProfile" json:"discovered_fiber_type,omitempty"`
-	Events              []*Event         `protobuf:"bytes,6,rep,name=events,proto3" json:"events,omitempty"`
+	state               protoimpl.MessageState `protogen:"open.v1"`
+	TotalLossDb         float32                `protobuf:"fixed32,1,opt,name=total_loss_db,json=totalLossDb,proto3" json:"total_loss_db,omitempty"`
+	TotalLengthM        float32                `protobuf:"fixed32,2,opt,name=total_length_m,json=totalLengthM,proto3" json:"total_length_m,omitempty"`
+	OpticalReturnLossDb float32                `protobuf:"fixed32,3,opt,name=optical_return_loss_db,json=opticalReturnLossDb,proto3" json:"optical_return_loss_db,omitempty"`
+	AverageLossDbKm     float32                `protobuf:"fixed32,4,opt,name=average_loss_db_km,json=averageLossDbKm,proto3" json:"average_loss_db_km,omitempty"`
+	DiscoveredFiberType FiberTypeProfile       `protobuf:"varint,5,opt,name=discovered_fiber_type,json=discoveredFiberType,proto3,enum=gnoi.optical.FiberTypeProfile" json:"discovered_fiber_type,omitempty"`
+	Events              []*Event               `protobuf:"bytes,6,rep,name=events,proto3" json:"events,omitempty"`
+	unknownFields       protoimpl.UnknownFields
+	sizeCache           protoimpl.SizeCache
 }
 
 func (x *OTDRTrace) Reset() {
 	*x = OTDRTrace{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_otdr_otdr_proto_msgTypes[6]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_otdr_otdr_proto_msgTypes[6]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *OTDRTrace) String() string {
@@ -677,8 +662,8 @@ func (x *OTDRTrace) String() string {
 func (*OTDRTrace) ProtoMessage() {}
 
 func (x *OTDRTrace) ProtoReflect() protoreflect.Message {
-	mi := &file_otdr_otdr_proto_msgTypes[6]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_otdr_otdr_proto_msgTypes[6]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -690,7 +675,7 @@ func (x *OTDRTrace) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use OTDRTrace.ProtoReflect.Descriptor instead.
 func (*OTDRTrace) Descriptor() ([]byte, []int) {
-	return file_otdr_otdr_proto_rawDescGZIP(), []int{6}
+	return file_github_com_openconfig_gnoi_otdr_otdr_proto_rawDescGZIP(), []int{6}
 }
 
 func (x *OTDRTrace) GetTotalLossDb() float32 {
@@ -736,22 +721,19 @@ func (x *OTDRTrace) GetEvents() []*Event {
 }
 
 type Event struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	DistanceM     float32                `protobuf:"fixed32,1,opt,name=distance_m,json=distanceM,proto3" json:"distance_m,omitempty"`
+	LossDb        float32                `protobuf:"fixed32,2,opt,name=loss_db,json=lossDb,proto3" json:"loss_db,omitempty"`
+	ReflectionDb  float32                `protobuf:"fixed32,3,opt,name=reflection_db,json=reflectionDb,proto3" json:"reflection_db,omitempty"`
 	unknownFields protoimpl.UnknownFields
-
-	DistanceM    float32 `protobuf:"fixed32,1,opt,name=distance_m,json=distanceM,proto3" json:"distance_m,omitempty"`
-	LossDb       float32 `protobuf:"fixed32,2,opt,name=loss_db,json=lossDb,proto3" json:"loss_db,omitempty"`
-	ReflectionDb float32 `protobuf:"fixed32,3,opt,name=reflection_db,json=reflectionDb,proto3" json:"reflection_db,omitempty"`
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *Event) Reset() {
 	*x = Event{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_otdr_otdr_proto_msgTypes[7]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_otdr_otdr_proto_msgTypes[7]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *Event) String() string {
@@ -761,8 +743,8 @@ func (x *Event) String() string {
 func (*Event) ProtoMessage() {}
 
 func (x *Event) ProtoReflect() protoreflect.Message {
-	mi := &file_otdr_otdr_proto_msgTypes[7]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_otdr_otdr_proto_msgTypes[7]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -774,7 +756,7 @@ func (x *Event) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use Event.ProtoReflect.Descriptor instead.
 func (*Event) Descriptor() ([]byte, []int) {
-	return file_otdr_otdr_proto_rawDescGZIP(), []int{7}
+	return file_github_com_openconfig_gnoi_otdr_otdr_proto_rawDescGZIP(), []int{7}
 }
 
 func (x *Event) GetDistanceM() float32 {
@@ -798,153 +780,155 @@ func (x *Event) GetReflectionDb() float32 {
 	return 0
 }
 
-var File_otdr_otdr_proto protoreflect.FileDescriptor
-
-var file_otdr_otdr_proto_rawDesc = []byte{
-	0x0a, 0x0f, 0x6f, 0x74, 0x64, 0x72, 0x2f, 0x6f, 0x74, 0x64, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74,
-	0x6f, 0x12, 0x0c, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x1a,
-	0x2c, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x70, 0x65, 0x6e,
-	0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x67, 0x6e, 0x6f, 0x69, 0x2f, 0x74, 0x79, 0x70, 0x65,
-	0x73, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xcc, 0x02,
-	0x0a, 0x0f, 0x49, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
-	0x74, 0x12, 0x2e, 0x0a, 0x09, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x18, 0x01,
-	0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x74, 0x79, 0x70, 0x65,
-	0x73, 0x2e, 0x50, 0x61, 0x74, 0x68, 0x52, 0x09, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e,
-	0x74, 0x12, 0x52, 0x0a, 0x0e, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x5f, 0x6d, 0x65, 0x74,
-	0x68, 0x6f, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x67, 0x6e, 0x6f, 0x69,
-	0x2e, 0x6f, 0x70, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x2e, 0x49, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x74,
-	0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73,
-	0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x52, 0x0d, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x4d,
-	0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x45, 0x0a, 0x0d, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75,
-	0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x67,
-	0x6e, 0x6f, 0x69, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x2e, 0x4f, 0x54, 0x44, 0x52,
-	0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0d, 0x63,
-	0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05,
-	0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6c, 0x61, 0x62,
-	0x65, 0x6c, 0x22, 0x58, 0x0a, 0x0d, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x4d, 0x65, 0x74,
-	0x68, 0x6f, 0x64, 0x12, 0x13, 0x0a, 0x0f, 0x52, 0x45, 0x53, 0x55, 0x4c, 0x54, 0x53, 0x5f, 0x55,
-	0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x19, 0x0a, 0x15, 0x52, 0x45, 0x53, 0x55,
-	0x4c, 0x54, 0x53, 0x5f, 0x54, 0x4f, 0x5f, 0x4c, 0x4f, 0x43, 0x41, 0x4c, 0x5f, 0x44, 0x49, 0x53,
-	0x4b, 0x10, 0x01, 0x12, 0x17, 0x0a, 0x13, 0x52, 0x45, 0x53, 0x55, 0x4c, 0x54, 0x53, 0x5f, 0x49,
-	0x4e, 0x5f, 0x52, 0x45, 0x53, 0x50, 0x4f, 0x4e, 0x53, 0x45, 0x10, 0x02, 0x22, 0x9a, 0x02, 0x0a,
-	0x11, 0x4f, 0x54, 0x44, 0x52, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69,
-	0x6f, 0x6e, 0x12, 0x2c, 0x0a, 0x12, 0x61, 0x63, 0x71, 0x75, 0x69, 0x73, 0x69, 0x74, 0x69, 0x6f,
-	0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10,
-	0x61, 0x63, 0x71, 0x75, 0x69, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x53,
-	0x12, 0x24, 0x0a, 0x0e, 0x70, 0x75, 0x6c, 0x73, 0x65, 0x5f, 0x77, 0x69, 0x64, 0x74, 0x68, 0x5f,
-	0x6e, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0c, 0x70, 0x75, 0x6c, 0x73, 0x65, 0x57,
-	0x69, 0x64, 0x74, 0x68, 0x4e, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x77, 0x61, 0x76, 0x65, 0x6c, 0x65,
-	0x6e, 0x67, 0x74, 0x68, 0x5f, 0x6d, 0x68, 0x7a, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d,
-	0x77, 0x61, 0x76, 0x65, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x68, 0x7a, 0x12, 0x17, 0x0a,
-	0x07, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x52, 0x06,
-	0x72, 0x61, 0x6e, 0x67, 0x65, 0x4d, 0x12, 0x3d, 0x0a, 0x0a, 0x66, 0x69, 0x62, 0x65, 0x72, 0x5f,
-	0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x67, 0x6e, 0x6f,
-	0x69, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x2e, 0x46, 0x69, 0x62, 0x65, 0x72, 0x54,
-	0x79, 0x70, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x09, 0x66, 0x69, 0x62, 0x65,
-	0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x32, 0x0a, 0x15, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x69, 0x6e,
-	0x67, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x18, 0x06,
-	0x20, 0x01, 0x28, 0x02, 0x52, 0x13, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x69, 0x6e, 0x67, 0x52, 0x65,
-	0x73, 0x6f, 0x6c, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x22, 0x8c, 0x01, 0x0a, 0x10, 0x49, 0x6e,
-	0x69, 0x74, 0x69, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0x3a,
-	0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e,
+var File_github_com_openconfig_gnoi_otdr_otdr_proto protoreflect.FileDescriptor
+
+var file_github_com_openconfig_gnoi_otdr_otdr_proto_rawDesc = []byte{
+	0x0a, 0x2a, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x70, 0x65,
+	0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x67, 0x6e, 0x6f, 0x69, 0x2f, 0x6f, 0x74, 0x64,
+	0x72, 0x2f, 0x6f, 0x74, 0x64, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0c, 0x67, 0x6e,
+	0x6f, 0x69, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x1a, 0x2c, 0x67, 0x69, 0x74, 0x68,
+	0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69,
+	0x67, 0x2f, 0x67, 0x6e, 0x6f, 0x69, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2f, 0x74, 0x79, 0x70,
+	0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xcc, 0x02, 0x0a, 0x0f, 0x49, 0x6e, 0x69,
+	0x74, 0x69, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2e, 0x0a, 0x09,
+	0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
+	0x10, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x50, 0x61, 0x74,
+	0x68, 0x52, 0x09, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x12, 0x52, 0x0a, 0x0e,
+	0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x5f, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x02,
+	0x20, 0x03, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x6f, 0x70, 0x74, 0x69,
+	0x63, 0x61, 0x6c, 0x2e, 0x49, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75,
+	0x65, 0x73, 0x74, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x4d, 0x65, 0x74, 0x68, 0x6f,
+	0x64, 0x52, 0x0d, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64,
+	0x12, 0x45, 0x0a, 0x0d, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f,
+	0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x6f,
+	0x70, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x2e, 0x4f, 0x54, 0x44, 0x52, 0x43, 0x6f, 0x6e, 0x66, 0x69,
+	0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0d, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67,
+	0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c,
+	0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22, 0x58, 0x0a,
+	0x0d, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x13,
+	0x0a, 0x0f, 0x52, 0x45, 0x53, 0x55, 0x4c, 0x54, 0x53, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57,
+	0x4e, 0x10, 0x00, 0x12, 0x19, 0x0a, 0x15, 0x52, 0x45, 0x53, 0x55, 0x4c, 0x54, 0x53, 0x5f, 0x54,
+	0x4f, 0x5f, 0x4c, 0x4f, 0x43, 0x41, 0x4c, 0x5f, 0x44, 0x49, 0x53, 0x4b, 0x10, 0x01, 0x12, 0x17,
+	0x0a, 0x13, 0x52, 0x45, 0x53, 0x55, 0x4c, 0x54, 0x53, 0x5f, 0x49, 0x4e, 0x5f, 0x52, 0x45, 0x53,
+	0x50, 0x4f, 0x4e, 0x53, 0x45, 0x10, 0x02, 0x22, 0x9a, 0x02, 0x0a, 0x11, 0x4f, 0x54, 0x44, 0x52,
+	0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2c, 0x0a,
+	0x12, 0x61, 0x63, 0x71, 0x75, 0x69, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x69, 0x6d,
+	0x65, 0x5f, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x61, 0x63, 0x71, 0x75, 0x69,
+	0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x12, 0x24, 0x0a, 0x0e, 0x70,
+	0x75, 0x6c, 0x73, 0x65, 0x5f, 0x77, 0x69, 0x64, 0x74, 0x68, 0x5f, 0x6e, 0x73, 0x18, 0x02, 0x20,
+	0x01, 0x28, 0x02, 0x52, 0x0c, 0x70, 0x75, 0x6c, 0x73, 0x65, 0x57, 0x69, 0x64, 0x74, 0x68, 0x4e,
+	0x73, 0x12, 0x25, 0x0a, 0x0e, 0x77, 0x61, 0x76, 0x65, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x5f,
+	0x6d, 0x68, 0x7a, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x77, 0x61, 0x76, 0x65, 0x6c,
+	0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x68, 0x7a, 0x12, 0x17, 0x0a, 0x07, 0x72, 0x61, 0x6e, 0x67,
+	0x65, 0x5f, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x52, 0x06, 0x72, 0x61, 0x6e, 0x67, 0x65,
+	0x4d, 0x12, 0x3d, 0x0a, 0x0a, 0x66, 0x69, 0x62, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18,
+	0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x6f, 0x70, 0x74,
+	0x69, 0x63, 0x61, 0x6c, 0x2e, 0x46, 0x69, 0x62, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x50, 0x72,
+	0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x09, 0x66, 0x69, 0x62, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65,
+	0x12, 0x32, 0x0a, 0x15, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x72, 0x65, 0x73,
+	0x6f, 0x6c, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x18, 0x06, 0x20, 0x01, 0x28, 0x02, 0x52,
+	0x13, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x75, 0x74,
+	0x69, 0x6f, 0x6e, 0x4d, 0x22, 0x8c, 0x01, 0x0a, 0x10, 0x49, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x74,
+	0x65, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0x3a, 0x0a, 0x05, 0x73, 0x74, 0x61,
+	0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e,
+	0x6f, 0x70, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x2e, 0x49, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x74, 0x65,
+	0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05,
+	0x73, 0x74, 0x61, 0x74, 0x65, 0x22, 0x3c, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x0b,
+	0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x52,
+	0x55, 0x4e, 0x4e, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x50, 0x45, 0x4e, 0x44,
+	0x49, 0x4e, 0x47, 0x10, 0x02, 0x12, 0x0c, 0x0a, 0x08, 0x43, 0x4f, 0x4d, 0x50, 0x4c, 0x45, 0x54,
+	0x45, 0x10, 0x03, 0x22, 0x68, 0x0a, 0x0f, 0x49, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x74, 0x65, 0x52,
+	0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f,
+	0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6c, 0x6f, 0x63, 0x61,
+	0x6c, 0x50, 0x61, 0x74, 0x68, 0x12, 0x36, 0x0a, 0x0a, 0x6f, 0x74, 0x64, 0x72, 0x5f, 0x74, 0x72,
+	0x61, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6e, 0x6f, 0x69,
+	0x2e, 0x6f, 0x70, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x2e, 0x4f, 0x54, 0x44, 0x52, 0x54, 0x72, 0x61,
+	0x63, 0x65, 0x52, 0x09, 0x6f, 0x74, 0x64, 0x72, 0x54, 0x72, 0x61, 0x63, 0x65, 0x22, 0xa5, 0x01,
+	0x0a, 0x0d, 0x49, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x74, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12,
+	0x34, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x20, 0x2e,
 	0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x2e, 0x49, 0x6e, 0x69,
-	0x74, 0x69, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x2e, 0x53, 0x74,
-	0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x22, 0x3c, 0x0a, 0x05, 0x53, 0x74,
-	0x61, 0x74, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00,
-	0x12, 0x0b, 0x0a, 0x07, 0x52, 0x55, 0x4e, 0x4e, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x0b, 0x0a,
-	0x07, 0x50, 0x45, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x10, 0x02, 0x12, 0x0c, 0x0a, 0x08, 0x43, 0x4f,
-	0x4d, 0x50, 0x4c, 0x45, 0x54, 0x45, 0x10, 0x03, 0x22, 0x68, 0x0a, 0x0f, 0x49, 0x6e, 0x69, 0x74,
-	0x69, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x6c,
-	0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
-	0x09, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x50, 0x61, 0x74, 0x68, 0x12, 0x36, 0x0a, 0x0a, 0x6f, 0x74,
-	0x64, 0x72, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17,
-	0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x2e, 0x4f, 0x54,
-	0x44, 0x52, 0x54, 0x72, 0x61, 0x63, 0x65, 0x52, 0x09, 0x6f, 0x74, 0x64, 0x72, 0x54, 0x72, 0x61,
-	0x63, 0x65, 0x22, 0xa5, 0x01, 0x0a, 0x0d, 0x49, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x74, 0x65, 0x45,
-	0x72, 0x72, 0x6f, 0x72, 0x12, 0x34, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01,
-	0x28, 0x0e, 0x32, 0x20, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x63, 0x61,
-	0x6c, 0x2e, 0x49, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x74, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x2e,
-	0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x65,
-	0x74, 0x61, 0x69, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x65, 0x74, 0x61,
-	0x69, 0x6c, 0x22, 0x46, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0f, 0x0a, 0x0b, 0x55, 0x4e,
-	0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x17, 0x0a, 0x13, 0x41,
-	0x4c, 0x52, 0x45, 0x41, 0x44, 0x59, 0x5f, 0x49, 0x4e, 0x5f, 0x50, 0x52, 0x4f, 0x47, 0x52, 0x45,
-	0x53, 0x53, 0x10, 0x01, 0x12, 0x14, 0x0a, 0x10, 0x48, 0x41, 0x52, 0x44, 0x57, 0x41, 0x52, 0x45,
-	0x5f, 0x46, 0x41, 0x49, 0x4c, 0x55, 0x52, 0x45, 0x10, 0x02, 0x22, 0xcc, 0x01, 0x0a, 0x10, 0x49,
-	0x6e, 0x69, 0x74, 0x69, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12,
-	0x3c, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28,
-	0x0b, 0x32, 0x1e, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x63, 0x61, 0x6c,
-	0x2e, 0x49, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73,
-	0x73, 0x48, 0x00, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0x39, 0x0a,
-	0x07, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d,
-	0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x2e, 0x49, 0x6e,
-	0x69, 0x74, 0x69, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x48, 0x00, 0x52,
-	0x07, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x33, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f,
-	0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x6f,
-	0x70, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x2e, 0x49, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x74, 0x65, 0x45,
-	0x72, 0x72, 0x6f, 0x72, 0x48, 0x00, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x42, 0x0a, 0x0a,
-	0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xb8, 0x02, 0x0a, 0x09, 0x4f, 0x54,
-	0x44, 0x52, 0x54, 0x72, 0x61, 0x63, 0x65, 0x12, 0x22, 0x0a, 0x0d, 0x74, 0x6f, 0x74, 0x61, 0x6c,
-	0x5f, 0x6c, 0x6f, 0x73, 0x73, 0x5f, 0x64, 0x62, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0b,
-	0x74, 0x6f, 0x74, 0x61, 0x6c, 0x4c, 0x6f, 0x73, 0x73, 0x44, 0x62, 0x12, 0x24, 0x0a, 0x0e, 0x74,
-	0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x5f, 0x6d, 0x18, 0x02, 0x20,
-	0x01, 0x28, 0x02, 0x52, 0x0c, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68,
-	0x4d, 0x12, 0x33, 0x0a, 0x16, 0x6f, 0x70, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x5f, 0x72, 0x65, 0x74,
-	0x75, 0x72, 0x6e, 0x5f, 0x6c, 0x6f, 0x73, 0x73, 0x5f, 0x64, 0x62, 0x18, 0x03, 0x20, 0x01, 0x28,
-	0x02, 0x52, 0x13, 0x6f, 0x70, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e,
-	0x4c, 0x6f, 0x73, 0x73, 0x44, 0x62, 0x12, 0x2b, 0x0a, 0x12, 0x61, 0x76, 0x65, 0x72, 0x61, 0x67,
-	0x65, 0x5f, 0x6c, 0x6f, 0x73, 0x73, 0x5f, 0x64, 0x62, 0x5f, 0x6b, 0x6d, 0x18, 0x04, 0x20, 0x01,
-	0x28, 0x02, 0x52, 0x0f, 0x61, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x4c, 0x6f, 0x73, 0x73, 0x44,
-	0x62, 0x4b, 0x6d, 0x12, 0x52, 0x0a, 0x15, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x65,
-	0x64, 0x5f, 0x66, 0x69, 0x62, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01,
-	0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x63, 0x61,
-	0x6c, 0x2e, 0x46, 0x69, 0x62, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69,
-	0x6c, 0x65, 0x52, 0x13, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x65, 0x64, 0x46, 0x69,
-	0x62, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x2b, 0x0a, 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74,
-	0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x6f,
-	0x70, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x06, 0x65, 0x76,
-	0x65, 0x6e, 0x74, 0x73, 0x22, 0x64, 0x0a, 0x05, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x1d, 0x0a,
-	0x0a, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28,
-	0x02, 0x52, 0x09, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x4d, 0x12, 0x17, 0x0a, 0x07,
-	0x6c, 0x6f, 0x73, 0x73, 0x5f, 0x64, 0x62, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x06, 0x6c,
-	0x6f, 0x73, 0x73, 0x44, 0x62, 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x65, 0x66, 0x6c, 0x65, 0x63, 0x74,
-	0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x62, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0c, 0x72, 0x65,
-	0x66, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x62, 0x2a, 0x98, 0x01, 0x0a, 0x10, 0x46,
-	0x69, 0x62, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x12,
-	0x0f, 0x0a, 0x0b, 0x46, 0x54, 0x50, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00,
-	0x12, 0x0b, 0x0a, 0x07, 0x46, 0x54, 0x50, 0x5f, 0x44, 0x53, 0x46, 0x10, 0x01, 0x12, 0x0c, 0x0a,
-	0x08, 0x46, 0x54, 0x50, 0x5f, 0x4c, 0x45, 0x41, 0x46, 0x10, 0x02, 0x12, 0x0c, 0x0a, 0x08, 0x46,
-	0x54, 0x50, 0x5f, 0x53, 0x53, 0x4d, 0x46, 0x10, 0x03, 0x12, 0x0b, 0x0a, 0x07, 0x46, 0x54, 0x50,
-	0x5f, 0x54, 0x57, 0x43, 0x10, 0x04, 0x12, 0x0c, 0x0a, 0x08, 0x46, 0x54, 0x50, 0x5f, 0x54, 0x57,
-	0x52, 0x53, 0x10, 0x05, 0x12, 0x0a, 0x0a, 0x06, 0x46, 0x54, 0x50, 0x5f, 0x4c, 0x53, 0x10, 0x06,
-	0x12, 0x10, 0x0a, 0x0c, 0x46, 0x54, 0x50, 0x5f, 0x54, 0x45, 0x52, 0x41, 0x57, 0x41, 0x56, 0x45,
-	0x10, 0x07, 0x12, 0x11, 0x0a, 0x0d, 0x46, 0x54, 0x50, 0x5f, 0x54, 0x45, 0x52, 0x41, 0x4c, 0x49,
-	0x47, 0x48, 0x54, 0x10, 0x08, 0x32, 0x55, 0x0a, 0x04, 0x4f, 0x54, 0x44, 0x52, 0x12, 0x4d, 0x0a,
-	0x08, 0x49, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x74, 0x65, 0x12, 0x1d, 0x2e, 0x67, 0x6e, 0x6f, 0x69,
+	0x74, 0x69, 0x61, 0x74, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52,
+	0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x18,
+	0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x22, 0x46, 0x0a,
+	0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0f, 0x0a, 0x0b, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49,
+	0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x17, 0x0a, 0x13, 0x41, 0x4c, 0x52, 0x45, 0x41, 0x44,
+	0x59, 0x5f, 0x49, 0x4e, 0x5f, 0x50, 0x52, 0x4f, 0x47, 0x52, 0x45, 0x53, 0x53, 0x10, 0x01, 0x12,
+	0x14, 0x0a, 0x10, 0x48, 0x41, 0x52, 0x44, 0x57, 0x41, 0x52, 0x45, 0x5f, 0x46, 0x41, 0x49, 0x4c,
+	0x55, 0x52, 0x45, 0x10, 0x02, 0x22, 0xcc, 0x01, 0x0a, 0x10, 0x49, 0x6e, 0x69, 0x74, 0x69, 0x61,
+	0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3c, 0x0a, 0x08, 0x70, 0x72,
+	0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x67,
+	0x6e, 0x6f, 0x69, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x2e, 0x49, 0x6e, 0x69, 0x74,
+	0x69, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x48, 0x00, 0x52, 0x08,
+	0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0x39, 0x0a, 0x07, 0x72, 0x65, 0x73, 0x75,
+	0x6c, 0x74, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x67, 0x6e, 0x6f, 0x69,
 	0x2e, 0x6f, 0x70, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x2e, 0x49, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x74,
-	0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e,
-	0x6f, 0x70, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x2e, 0x49, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x74, 0x65,
-	0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x30, 0x01, 0x42, 0x29, 0xd2, 0x3e,
-	0x05, 0x30, 0x2e, 0x31, 0x2e, 0x30, 0x5a, 0x1f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63,
-	0x6f, 0x6d, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x67, 0x6e,
-	0x6f, 0x69, 0x2f, 0x6f, 0x74, 0x64, 0x72, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+	0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x48, 0x00, 0x52, 0x07, 0x72, 0x65, 0x73, 0x75,
+	0x6c, 0x74, 0x73, 0x12, 0x33, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01,
+	0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x63, 0x61,
+	0x6c, 0x2e, 0x49, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x74, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x48,
+	0x00, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x42, 0x0a, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x70,
+	0x6f, 0x6e, 0x73, 0x65, 0x22, 0xb8, 0x02, 0x0a, 0x09, 0x4f, 0x54, 0x44, 0x52, 0x54, 0x72, 0x61,
+	0x63, 0x65, 0x12, 0x22, 0x0a, 0x0d, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x6c, 0x6f, 0x73, 0x73,
+	0x5f, 0x64, 0x62, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c,
+	0x4c, 0x6f, 0x73, 0x73, 0x44, 0x62, 0x12, 0x24, 0x0a, 0x0e, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f,
+	0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x5f, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0c,
+	0x74, 0x6f, 0x74, 0x61, 0x6c, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x12, 0x33, 0x0a, 0x16,
+	0x6f, 0x70, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x5f, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x5f, 0x6c,
+	0x6f, 0x73, 0x73, 0x5f, 0x64, 0x62, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x13, 0x6f, 0x70,
+	0x74, 0x69, 0x63, 0x61, 0x6c, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x4c, 0x6f, 0x73, 0x73, 0x44,
+	0x62, 0x12, 0x2b, 0x0a, 0x12, 0x61, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x6c, 0x6f, 0x73,
+	0x73, 0x5f, 0x64, 0x62, 0x5f, 0x6b, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0f, 0x61,
+	0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x4c, 0x6f, 0x73, 0x73, 0x44, 0x62, 0x4b, 0x6d, 0x12, 0x52,
+	0x0a, 0x15, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x65, 0x64, 0x5f, 0x66, 0x69, 0x62,
+	0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e,
+	0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x2e, 0x46, 0x69, 0x62,
+	0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x13, 0x64,
+	0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x65, 0x64, 0x46, 0x69, 0x62, 0x65, 0x72, 0x54, 0x79,
+	0x70, 0x65, 0x12, 0x2b, 0x0a, 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x06, 0x20, 0x03,
+	0x28, 0x0b, 0x32, 0x13, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x63, 0x61,
+	0x6c, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x22,
+	0x64, 0x0a, 0x05, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x64, 0x69, 0x73, 0x74,
+	0x61, 0x6e, 0x63, 0x65, 0x5f, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x09, 0x64, 0x69,
+	0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x4d, 0x12, 0x17, 0x0a, 0x07, 0x6c, 0x6f, 0x73, 0x73, 0x5f,
+	0x64, 0x62, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x06, 0x6c, 0x6f, 0x73, 0x73, 0x44, 0x62,
+	0x12, 0x23, 0x0a, 0x0d, 0x72, 0x65, 0x66, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64,
+	0x62, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0c, 0x72, 0x65, 0x66, 0x6c, 0x65, 0x63, 0x74,
+	0x69, 0x6f, 0x6e, 0x44, 0x62, 0x2a, 0x98, 0x01, 0x0a, 0x10, 0x46, 0x69, 0x62, 0x65, 0x72, 0x54,
+	0x79, 0x70, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x0f, 0x0a, 0x0b, 0x46, 0x54,
+	0x50, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x46,
+	0x54, 0x50, 0x5f, 0x44, 0x53, 0x46, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x46, 0x54, 0x50, 0x5f,
+	0x4c, 0x45, 0x41, 0x46, 0x10, 0x02, 0x12, 0x0c, 0x0a, 0x08, 0x46, 0x54, 0x50, 0x5f, 0x53, 0x53,
+	0x4d, 0x46, 0x10, 0x03, 0x12, 0x0b, 0x0a, 0x07, 0x46, 0x54, 0x50, 0x5f, 0x54, 0x57, 0x43, 0x10,
+	0x04, 0x12, 0x0c, 0x0a, 0x08, 0x46, 0x54, 0x50, 0x5f, 0x54, 0x57, 0x52, 0x53, 0x10, 0x05, 0x12,
+	0x0a, 0x0a, 0x06, 0x46, 0x54, 0x50, 0x5f, 0x4c, 0x53, 0x10, 0x06, 0x12, 0x10, 0x0a, 0x0c, 0x46,
+	0x54, 0x50, 0x5f, 0x54, 0x45, 0x52, 0x41, 0x57, 0x41, 0x56, 0x45, 0x10, 0x07, 0x12, 0x11, 0x0a,
+	0x0d, 0x46, 0x54, 0x50, 0x5f, 0x54, 0x45, 0x52, 0x41, 0x4c, 0x49, 0x47, 0x48, 0x54, 0x10, 0x08,
+	0x32, 0x55, 0x0a, 0x04, 0x4f, 0x54, 0x44, 0x52, 0x12, 0x4d, 0x0a, 0x08, 0x49, 0x6e, 0x69, 0x74,
+	0x69, 0x61, 0x74, 0x65, 0x12, 0x1d, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x6f, 0x70, 0x74, 0x69,
+	0x63, 0x61, 0x6c, 0x2e, 0x49, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75,
+	0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x63,
+	0x61, 0x6c, 0x2e, 0x49, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f,
+	0x6e, 0x73, 0x65, 0x22, 0x00, 0x30, 0x01, 0x42, 0x29, 0xd2, 0x3e, 0x05, 0x30, 0x2e, 0x31, 0x2e,
+	0x30, 0x5a, 0x1f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x70,
+	0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x67, 0x6e, 0x6f, 0x69, 0x2f, 0x6f, 0x74,
+	0x64, 0x72, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
 }
 
 var (
-	file_otdr_otdr_proto_rawDescOnce sync.Once
-	file_otdr_otdr_proto_rawDescData = file_otdr_otdr_proto_rawDesc
+	file_github_com_openconfig_gnoi_otdr_otdr_proto_rawDescOnce sync.Once
+	file_github_com_openconfig_gnoi_otdr_otdr_proto_rawDescData = file_github_com_openconfig_gnoi_otdr_otdr_proto_rawDesc
 )
 
-func file_otdr_otdr_proto_rawDescGZIP() []byte {
-	file_otdr_otdr_proto_rawDescOnce.Do(func() {
-		file_otdr_otdr_proto_rawDescData = protoimpl.X.CompressGZIP(file_otdr_otdr_proto_rawDescData)
+func file_github_com_openconfig_gnoi_otdr_otdr_proto_rawDescGZIP() []byte {
+	file_github_com_openconfig_gnoi_otdr_otdr_proto_rawDescOnce.Do(func() {
+		file_github_com_openconfig_gnoi_otdr_otdr_proto_rawDescData = protoimpl.X.CompressGZIP(file_github_com_openconfig_gnoi_otdr_otdr_proto_rawDescData)
 	})
-	return file_otdr_otdr_proto_rawDescData
+	return file_github_com_openconfig_gnoi_otdr_otdr_proto_rawDescData
 }
 
-var file_otdr_otdr_proto_enumTypes = make([]protoimpl.EnumInfo, 4)
-var file_otdr_otdr_proto_msgTypes = make([]protoimpl.MessageInfo, 8)
-var file_otdr_otdr_proto_goTypes = []interface{}{
+var file_github_com_openconfig_gnoi_otdr_otdr_proto_enumTypes = make([]protoimpl.EnumInfo, 4)
+var file_github_com_openconfig_gnoi_otdr_otdr_proto_msgTypes = make([]protoimpl.MessageInfo, 8)
+var file_github_com_openconfig_gnoi_otdr_otdr_proto_goTypes = []any{
 	(FiberTypeProfile)(0),              // 0: gnoi.optical.FiberTypeProfile
 	(InitiateRequest_ResultsMethod)(0), // 1: gnoi.optical.InitiateRequest.ResultsMethod
 	(InitiateProgress_State)(0),        // 2: gnoi.optical.InitiateProgress.State
@@ -959,7 +943,7 @@ var file_otdr_otdr_proto_goTypes = []interface{}{
 	(*Event)(nil),                      // 11: gnoi.optical.Event
 	(*types.Path)(nil),                 // 12: gnoi.types.Path
 }
-var file_otdr_otdr_proto_depIdxs = []int32{
+var file_github_com_openconfig_gnoi_otdr_otdr_proto_depIdxs = []int32{
 	12, // 0: gnoi.optical.InitiateRequest.component:type_name -> gnoi.types.Path
 	1,  // 1: gnoi.optical.InitiateRequest.results_method:type_name -> gnoi.optical.InitiateRequest.ResultsMethod
 	5,  // 2: gnoi.optical.InitiateRequest.configuration:type_name -> gnoi.optical.OTDRConfiguration
@@ -981,110 +965,12 @@ var file_otdr_otdr_proto_depIdxs = []int32{
 	0,  // [0:12] is the sub-list for field type_name
 }
 
-func init() { file_otdr_otdr_proto_init() }
-func file_otdr_otdr_proto_init() {
-	if File_otdr_otdr_proto != nil {
+func init() { file_github_com_openconfig_gnoi_otdr_otdr_proto_init() }
+func file_github_com_openconfig_gnoi_otdr_otdr_proto_init() {
+	if File_github_com_openconfig_gnoi_otdr_otdr_proto != nil {
 		return
 	}
-	if !protoimpl.UnsafeEnabled {
-		file_otdr_otdr_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*InitiateRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_otdr_otdr_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*OTDRConfiguration); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_otdr_otdr_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*InitiateProgress); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_otdr_otdr_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*InitiateResults); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_otdr_otdr_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*InitiateError); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_otdr_otdr_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*InitiateResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_otdr_otdr_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*OTDRTrace); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_otdr_otdr_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*Event); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-	}
-	file_otdr_otdr_proto_msgTypes[5].OneofWrappers = []interface{}{
+	file_github_com_openconfig_gnoi_otdr_otdr_proto_msgTypes[5].OneofWrappers = []any{
 		(*InitiateResponse_Progress)(nil),
 		(*InitiateResponse_Results)(nil),
 		(*InitiateResponse_Error)(nil),
@@ -1093,19 +979,19 @@ func file_otdr_otdr_proto_init() {
 	out := protoimpl.TypeBuilder{
 		File: protoimpl.DescBuilder{
 			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
-			RawDescriptor: file_otdr_otdr_proto_rawDesc,
+			RawDescriptor: file_github_com_openconfig_gnoi_otdr_otdr_proto_rawDesc,
 			NumEnums:      4,
 			NumMessages:   8,
 			NumExtensions: 0,
 			NumServices:   1,
 		},
-		GoTypes:           file_otdr_otdr_proto_goTypes,
-		DependencyIndexes: file_otdr_otdr_proto_depIdxs,
-		EnumInfos:         file_otdr_otdr_proto_enumTypes,
-		MessageInfos:      file_otdr_otdr_proto_msgTypes,
+		GoTypes:           file_github_com_openconfig_gnoi_otdr_otdr_proto_goTypes,
+		DependencyIndexes: file_github_com_openconfig_gnoi_otdr_otdr_proto_depIdxs,
+		EnumInfos:         file_github_com_openconfig_gnoi_otdr_otdr_proto_enumTypes,
+		MessageInfos:      file_github_com_openconfig_gnoi_otdr_otdr_proto_msgTypes,
 	}.Build()
-	File_otdr_otdr_proto = out.File
-	file_otdr_otdr_proto_rawDesc = nil
-	file_otdr_otdr_proto_goTypes = nil
-	file_otdr_otdr_proto_depIdxs = nil
+	File_github_com_openconfig_gnoi_otdr_otdr_proto = out.File
+	file_github_com_openconfig_gnoi_otdr_otdr_proto_rawDesc = nil
+	file_github_com_openconfig_gnoi_otdr_otdr_proto_goTypes = nil
+	file_github_com_openconfig_gnoi_otdr_otdr_proto_depIdxs = nil
 }
diff --git a/otdr/otdr_grpc.pb.go b/otdr/otdr_grpc.pb.go
index c0d5fa22..a913fe76 100644
--- a/otdr/otdr_grpc.pb.go
+++ b/otdr/otdr_grpc.pb.go
@@ -1,8 +1,8 @@
 // Code generated by protoc-gen-go-grpc. DO NOT EDIT.
 // versions:
-// - protoc-gen-go-grpc v1.2.0
-// - protoc             v3.21.10
-// source: otdr/otdr.proto
+// - protoc-gen-go-grpc v1.5.1
+// - protoc             v5.29.3
+// source: github.com/openconfig/gnoi/otdr/otdr.proto
 
 package otdr
 
@@ -15,14 +15,18 @@ import (
 
 // This is a compile-time assertion to ensure that this generated file
 // is compatible with the grpc package it is being compiled against.
-// Requires gRPC-Go v1.32.0 or later.
-const _ = grpc.SupportPackageIsVersion7
+// Requires gRPC-Go v1.64.0 or later.
+const _ = grpc.SupportPackageIsVersion9
+
+const (
+	OTDR_Initiate_FullMethodName = "/gnoi.optical.OTDR/Initiate"
+)
 
 // OTDRClient is the client API for OTDR service.
 //
 // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.
 type OTDRClient interface {
-	Initiate(ctx context.Context, in *InitiateRequest, opts ...grpc.CallOption) (OTDR_InitiateClient, error)
+	Initiate(ctx context.Context, in *InitiateRequest, opts ...grpc.CallOption) (grpc.ServerStreamingClient[InitiateResponse], error)
 }
 
 type oTDRClient struct {
@@ -33,12 +37,13 @@ func NewOTDRClient(cc grpc.ClientConnInterface) OTDRClient {
 	return &oTDRClient{cc}
 }
 
-func (c *oTDRClient) Initiate(ctx context.Context, in *InitiateRequest, opts ...grpc.CallOption) (OTDR_InitiateClient, error) {
-	stream, err := c.cc.NewStream(ctx, &OTDR_ServiceDesc.Streams[0], "/gnoi.optical.OTDR/Initiate", opts...)
+func (c *oTDRClient) Initiate(ctx context.Context, in *InitiateRequest, opts ...grpc.CallOption) (grpc.ServerStreamingClient[InitiateResponse], error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	stream, err := c.cc.NewStream(ctx, &OTDR_ServiceDesc.Streams[0], OTDR_Initiate_FullMethodName, cOpts...)
 	if err != nil {
 		return nil, err
 	}
-	x := &oTDRInitiateClient{stream}
+	x := &grpc.GenericClientStream[InitiateRequest, InitiateResponse]{ClientStream: stream}
 	if err := x.ClientStream.SendMsg(in); err != nil {
 		return nil, err
 	}
@@ -48,39 +53,27 @@ func (c *oTDRClient) Initiate(ctx context.Context, in *InitiateRequest, opts ...
 	return x, nil
 }
 
-type OTDR_InitiateClient interface {
-	Recv() (*InitiateResponse, error)
-	grpc.ClientStream
-}
-
-type oTDRInitiateClient struct {
-	grpc.ClientStream
-}
-
-func (x *oTDRInitiateClient) Recv() (*InitiateResponse, error) {
-	m := new(InitiateResponse)
-	if err := x.ClientStream.RecvMsg(m); err != nil {
-		return nil, err
-	}
-	return m, nil
-}
+// This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name.
+type OTDR_InitiateClient = grpc.ServerStreamingClient[InitiateResponse]
 
 // OTDRServer is the server API for OTDR service.
-// All implementations must embed UnimplementedOTDRServer
-// for forward compatibility
+// All implementations should embed UnimplementedOTDRServer
+// for forward compatibility.
 type OTDRServer interface {
-	Initiate(*InitiateRequest, OTDR_InitiateServer) error
-	mustEmbedUnimplementedOTDRServer()
+	Initiate(*InitiateRequest, grpc.ServerStreamingServer[InitiateResponse]) error
 }
 
-// UnimplementedOTDRServer must be embedded to have forward compatible implementations.
-type UnimplementedOTDRServer struct {
-}
+// UnimplementedOTDRServer should be embedded to have
+// forward compatible implementations.
+//
+// NOTE: this should be embedded by value instead of pointer to avoid a nil
+// pointer dereference when methods are called.
+type UnimplementedOTDRServer struct{}
 
-func (UnimplementedOTDRServer) Initiate(*InitiateRequest, OTDR_InitiateServer) error {
+func (UnimplementedOTDRServer) Initiate(*InitiateRequest, grpc.ServerStreamingServer[InitiateResponse]) error {
 	return status.Errorf(codes.Unimplemented, "method Initiate not implemented")
 }
-func (UnimplementedOTDRServer) mustEmbedUnimplementedOTDRServer() {}
+func (UnimplementedOTDRServer) testEmbeddedByValue() {}
 
 // UnsafeOTDRServer may be embedded to opt out of forward compatibility for this service.
 // Use of this interface is not recommended, as added methods to OTDRServer will
@@ -90,6 +83,13 @@ type UnsafeOTDRServer interface {
 }
 
 func RegisterOTDRServer(s grpc.ServiceRegistrar, srv OTDRServer) {
+	// If the following call pancis, it indicates UnimplementedOTDRServer was
+	// embedded by pointer and is nil.  This will cause panics if an
+	// unimplemented method is ever invoked, so we test this at initialization
+	// time to prevent it from happening at runtime later due to I/O.
+	if t, ok := srv.(interface{ testEmbeddedByValue() }); ok {
+		t.testEmbeddedByValue()
+	}
 	s.RegisterService(&OTDR_ServiceDesc, srv)
 }
 
@@ -98,21 +98,11 @@ func _OTDR_Initiate_Handler(srv interface{}, stream grpc.ServerStream) error {
 	if err := stream.RecvMsg(m); err != nil {
 		return err
 	}
-	return srv.(OTDRServer).Initiate(m, &oTDRInitiateServer{stream})
+	return srv.(OTDRServer).Initiate(m, &grpc.GenericServerStream[InitiateRequest, InitiateResponse]{ServerStream: stream})
 }
 
-type OTDR_InitiateServer interface {
-	Send(*InitiateResponse) error
-	grpc.ServerStream
-}
-
-type oTDRInitiateServer struct {
-	grpc.ServerStream
-}
-
-func (x *oTDRInitiateServer) Send(m *InitiateResponse) error {
-	return x.ServerStream.SendMsg(m)
-}
+// This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name.
+type OTDR_InitiateServer = grpc.ServerStreamingServer[InitiateResponse]
 
 // OTDR_ServiceDesc is the grpc.ServiceDesc for OTDR service.
 // It's only intended for direct use with grpc.RegisterService,
@@ -128,5 +118,5 @@ var OTDR_ServiceDesc = grpc.ServiceDesc{
 			ServerStreams: true,
 		},
 	},
-	Metadata: "otdr/otdr.proto",
+	Metadata: "github.com/openconfig/gnoi/otdr/otdr.proto",
 }
diff --git a/packet_capture/BUILD.bazel b/packet_capture/BUILD.bazel
index 84cef576..1f814026 100644
--- a/packet_capture/BUILD.bazel
+++ b/packet_capture/BUILD.bazel
@@ -1,8 +1,9 @@
-load("@rules_proto//proto:defs.bzl", "proto_library")
+load("@com_github_grpc_grpc//bazel:cc_grpc_library.bzl", "cc_grpc_library")
+load("@com_google_protobuf//bazel:cc_proto_library.bzl", "cc_proto_library")
+load("@com_google_protobuf//bazel:proto_library.bzl", "proto_library")
 load("@io_bazel_rules_go//go:def.bzl", "go_library")
 load("@io_bazel_rules_go//proto:def.bzl", "go_proto_library")
-load("@com_github_grpc_grpc//bazel:cc_grpc_library.bzl", "cc_grpc_library")
-load("//:common.bzl", "use_new_compilers")
+
 # Copyright 2024 Google LLC
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
@@ -22,19 +23,18 @@ package(
     licenses = ["notice"],
 )
 
-use_new_compilers()
-
 proto_library(
     name = "pcap_proto",
     srcs = ["packet_capture.proto"],
+    import_prefix = "github.com/openconfig/gnoi",
     visibility = ["//visibility:public"],
 )
 
 go_proto_library(
     name = "pcap_go_proto",
     compilers = [
-        "go_protoc_gen_go",
-        "go_protoc_gen_go_grpc",
+        "@io_bazel_rules_go//proto:go_grpc_v2",
+        "@io_bazel_rules_go//proto:go_proto",
     ],
     importpath = "github.com/openconfig/gnoi/packet_capture",
     proto = ":pcap_proto",
diff --git a/packet_capture/packet_capture.pb.go b/packet_capture/packet_capture.pb.go
index 3b641b92..4b9309a4 100644
--- a/packet_capture/packet_capture.pb.go
+++ b/packet_capture/packet_capture.pb.go
@@ -1,8 +1,8 @@
 // Code generated by protoc-gen-go. DO NOT EDIT.
 // versions:
-// 	protoc-gen-go v1.30.0
-// 	protoc        v3.21.10
-// source: packet_capture/packet_capture.proto
+// 	protoc-gen-go v1.36.2
+// 	protoc        v5.29.3
+// source: github.com/openconfig/gnoi/packet_capture/packet_capture.proto
 
 package pcap
 
@@ -56,11 +56,11 @@ func (x OperatingBand) String() string {
 }
 
 func (OperatingBand) Descriptor() protoreflect.EnumDescriptor {
-	return file_packet_capture_packet_capture_proto_enumTypes[0].Descriptor()
+	return file_github_com_openconfig_gnoi_packet_capture_packet_capture_proto_enumTypes[0].Descriptor()
 }
 
 func (OperatingBand) Type() protoreflect.EnumType {
-	return &file_packet_capture_packet_capture_proto_enumTypes[0]
+	return &file_github_com_openconfig_gnoi_packet_capture_packet_capture_proto_enumTypes[0]
 }
 
 func (x OperatingBand) Number() protoreflect.EnumNumber {
@@ -69,7 +69,7 @@ func (x OperatingBand) Number() protoreflect.EnumNumber {
 
 // Deprecated: Use OperatingBand.Descriptor instead.
 func (OperatingBand) EnumDescriptor() ([]byte, []int) {
-	return file_packet_capture_packet_capture_proto_rawDescGZIP(), []int{0}
+	return file_github_com_openconfig_gnoi_packet_capture_packet_capture_proto_rawDescGZIP(), []int{0}
 }
 
 type Protocol int32
@@ -102,11 +102,11 @@ func (x Protocol) String() string {
 }
 
 func (Protocol) Descriptor() protoreflect.EnumDescriptor {
-	return file_packet_capture_packet_capture_proto_enumTypes[1].Descriptor()
+	return file_github_com_openconfig_gnoi_packet_capture_packet_capture_proto_enumTypes[1].Descriptor()
 }
 
 func (Protocol) Type() protoreflect.EnumType {
-	return &file_packet_capture_packet_capture_proto_enumTypes[1]
+	return &file_github_com_openconfig_gnoi_packet_capture_packet_capture_proto_enumTypes[1]
 }
 
 func (x Protocol) Number() protoreflect.EnumNumber {
@@ -115,7 +115,7 @@ func (x Protocol) Number() protoreflect.EnumNumber {
 
 // Deprecated: Use Protocol.Descriptor instead.
 func (Protocol) EnumDescriptor() ([]byte, []int) {
-	return file_packet_capture_packet_capture_proto_rawDescGZIP(), []int{1}
+	return file_github_com_openconfig_gnoi_packet_capture_packet_capture_proto_rawDescGZIP(), []int{1}
 }
 
 type Direction int32
@@ -151,11 +151,11 @@ func (x Direction) String() string {
 }
 
 func (Direction) Descriptor() protoreflect.EnumDescriptor {
-	return file_packet_capture_packet_capture_proto_enumTypes[2].Descriptor()
+	return file_github_com_openconfig_gnoi_packet_capture_packet_capture_proto_enumTypes[2].Descriptor()
 }
 
 func (Direction) Type() protoreflect.EnumType {
-	return &file_packet_capture_packet_capture_proto_enumTypes[2]
+	return &file_github_com_openconfig_gnoi_packet_capture_packet_capture_proto_enumTypes[2]
 }
 
 func (x Direction) Number() protoreflect.EnumNumber {
@@ -164,7 +164,7 @@ func (x Direction) Number() protoreflect.EnumNumber {
 
 // Deprecated: Use Direction.Descriptor instead.
 func (Direction) EnumDescriptor() ([]byte, []int) {
-	return file_packet_capture_packet_capture_proto_rawDescGZIP(), []int{2}
+	return file_github_com_openconfig_gnoi_packet_capture_packet_capture_proto_rawDescGZIP(), []int{2}
 }
 
 type ChannelWidth int32
@@ -203,11 +203,11 @@ func (x ChannelWidth) String() string {
 }
 
 func (ChannelWidth) Descriptor() protoreflect.EnumDescriptor {
-	return file_packet_capture_packet_capture_proto_enumTypes[3].Descriptor()
+	return file_github_com_openconfig_gnoi_packet_capture_packet_capture_proto_enumTypes[3].Descriptor()
 }
 
 func (ChannelWidth) Type() protoreflect.EnumType {
-	return &file_packet_capture_packet_capture_proto_enumTypes[3]
+	return &file_github_com_openconfig_gnoi_packet_capture_packet_capture_proto_enumTypes[3]
 }
 
 func (x ChannelWidth) Number() protoreflect.EnumNumber {
@@ -216,30 +216,27 @@ func (x ChannelWidth) Number() protoreflect.EnumNumber {
 
 // Deprecated: Use ChannelWidth.Descriptor instead.
 func (ChannelWidth) EnumDescriptor() ([]byte, []int) {
-	return file_packet_capture_packet_capture_proto_rawDescGZIP(), []int{3}
+	return file_github_com_openconfig_gnoi_packet_capture_packet_capture_proto_rawDescGZIP(), []int{3}
 }
 
 type AccessCaptureType struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	OperatingBand []OperatingBand `protobuf:"varint,1,rep,packed,name=operating_band,json=operatingBand,proto3,enum=gnoi.pcap.OperatingBand" json:"operating_band,omitempty"`
-	// Types that are assignable to FilterType:
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	OperatingBand []OperatingBand        `protobuf:"varint,1,rep,packed,name=operating_band,json=operatingBand,proto3,enum=gnoi.pcap.OperatingBand" json:"operating_band,omitempty"`
+	// Types that are valid to be assigned to FilterType:
 	//
 	//	*AccessCaptureType_Ssid
 	//	*AccessCaptureType_Mac
 	FilterType      isAccessCaptureType_FilterType `protobuf_oneof:"filter_type"`
 	PromiscuousMode bool                           `protobuf:"varint,4,opt,name=promiscuous_mode,json=promiscuousMode,proto3" json:"promiscuous_mode,omitempty"`
+	unknownFields   protoimpl.UnknownFields
+	sizeCache       protoimpl.SizeCache
 }
 
 func (x *AccessCaptureType) Reset() {
 	*x = AccessCaptureType{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_packet_capture_packet_capture_proto_msgTypes[0]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_packet_capture_packet_capture_proto_msgTypes[0]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *AccessCaptureType) String() string {
@@ -249,8 +246,8 @@ func (x *AccessCaptureType) String() string {
 func (*AccessCaptureType) ProtoMessage() {}
 
 func (x *AccessCaptureType) ProtoReflect() protoreflect.Message {
-	mi := &file_packet_capture_packet_capture_proto_msgTypes[0]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_packet_capture_packet_capture_proto_msgTypes[0]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -262,7 +259,7 @@ func (x *AccessCaptureType) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use AccessCaptureType.ProtoReflect.Descriptor instead.
 func (*AccessCaptureType) Descriptor() ([]byte, []int) {
-	return file_packet_capture_packet_capture_proto_rawDescGZIP(), []int{0}
+	return file_github_com_openconfig_gnoi_packet_capture_packet_capture_proto_rawDescGZIP(), []int{0}
 }
 
 func (x *AccessCaptureType) GetOperatingBand() []OperatingBand {
@@ -272,23 +269,27 @@ func (x *AccessCaptureType) GetOperatingBand() []OperatingBand {
 	return nil
 }
 
-func (m *AccessCaptureType) GetFilterType() isAccessCaptureType_FilterType {
-	if m != nil {
-		return m.FilterType
+func (x *AccessCaptureType) GetFilterType() isAccessCaptureType_FilterType {
+	if x != nil {
+		return x.FilterType
 	}
 	return nil
 }
 
 func (x *AccessCaptureType) GetSsid() string {
-	if x, ok := x.GetFilterType().(*AccessCaptureType_Ssid); ok {
-		return x.Ssid
+	if x != nil {
+		if x, ok := x.FilterType.(*AccessCaptureType_Ssid); ok {
+			return x.Ssid
+		}
 	}
 	return ""
 }
 
 func (x *AccessCaptureType) GetMac() string {
-	if x, ok := x.GetFilterType().(*AccessCaptureType_Mac); ok {
-		return x.Mac
+	if x != nil {
+		if x, ok := x.FilterType.(*AccessCaptureType_Mac); ok {
+			return x.Mac
+		}
 	}
 	return ""
 }
@@ -317,21 +318,18 @@ func (*AccessCaptureType_Ssid) isAccessCaptureType_FilterType() {}
 func (*AccessCaptureType_Mac) isAccessCaptureType_FilterType() {}
 
 type ChannelInfo struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Channel       string                 `protobuf:"bytes,1,opt,name=channel,proto3" json:"channel,omitempty"`
+	ChannelWidth  ChannelWidth           `protobuf:"varint,2,opt,name=channel_width,json=channelWidth,proto3,enum=gnoi.pcap.ChannelWidth" json:"channel_width,omitempty"`
 	unknownFields protoimpl.UnknownFields
-
-	Channel      string       `protobuf:"bytes,1,opt,name=channel,proto3" json:"channel,omitempty"`
-	ChannelWidth ChannelWidth `protobuf:"varint,2,opt,name=channel_width,json=channelWidth,proto3,enum=gnoi.pcap.ChannelWidth" json:"channel_width,omitempty"`
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *ChannelInfo) Reset() {
 	*x = ChannelInfo{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_packet_capture_packet_capture_proto_msgTypes[1]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_packet_capture_packet_capture_proto_msgTypes[1]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *ChannelInfo) String() string {
@@ -341,8 +339,8 @@ func (x *ChannelInfo) String() string {
 func (*ChannelInfo) ProtoMessage() {}
 
 func (x *ChannelInfo) ProtoReflect() protoreflect.Message {
-	mi := &file_packet_capture_packet_capture_proto_msgTypes[1]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_packet_capture_packet_capture_proto_msgTypes[1]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -354,7 +352,7 @@ func (x *ChannelInfo) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use ChannelInfo.ProtoReflect.Descriptor instead.
 func (*ChannelInfo) Descriptor() ([]byte, []int) {
-	return file_packet_capture_packet_capture_proto_rawDescGZIP(), []int{1}
+	return file_github_com_openconfig_gnoi_packet_capture_packet_capture_proto_rawDescGZIP(), []int{1}
 }
 
 func (x *ChannelInfo) GetChannel() string {
@@ -372,21 +370,18 @@ func (x *ChannelInfo) GetChannelWidth() ChannelWidth {
 }
 
 type BandChannelCombo struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	OperatingBand OperatingBand          `protobuf:"varint,1,opt,name=operating_band,json=operatingBand,proto3,enum=gnoi.pcap.OperatingBand" json:"operating_band,omitempty"`
+	ChannelInfo   []*ChannelInfo         `protobuf:"bytes,2,rep,name=channel_info,json=channelInfo,proto3" json:"channel_info,omitempty"`
 	unknownFields protoimpl.UnknownFields
-
-	OperatingBand OperatingBand  `protobuf:"varint,1,opt,name=operating_band,json=operatingBand,proto3,enum=gnoi.pcap.OperatingBand" json:"operating_band,omitempty"`
-	ChannelInfo   []*ChannelInfo `protobuf:"bytes,2,rep,name=channel_info,json=channelInfo,proto3" json:"channel_info,omitempty"`
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *BandChannelCombo) Reset() {
 	*x = BandChannelCombo{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_packet_capture_packet_capture_proto_msgTypes[2]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_packet_capture_packet_capture_proto_msgTypes[2]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *BandChannelCombo) String() string {
@@ -396,8 +391,8 @@ func (x *BandChannelCombo) String() string {
 func (*BandChannelCombo) ProtoMessage() {}
 
 func (x *BandChannelCombo) ProtoReflect() protoreflect.Message {
-	mi := &file_packet_capture_packet_capture_proto_msgTypes[2]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_packet_capture_packet_capture_proto_msgTypes[2]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -409,7 +404,7 @@ func (x *BandChannelCombo) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use BandChannelCombo.ProtoReflect.Descriptor instead.
 func (*BandChannelCombo) Descriptor() ([]byte, []int) {
-	return file_packet_capture_packet_capture_proto_rawDescGZIP(), []int{2}
+	return file_github_com_openconfig_gnoi_packet_capture_packet_capture_proto_rawDescGZIP(), []int{2}
 }
 
 func (x *BandChannelCombo) GetOperatingBand() OperatingBand {
@@ -427,21 +422,18 @@ func (x *BandChannelCombo) GetChannelInfo() []*ChannelInfo {
 }
 
 type ScanCaptureType struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Combo         []*BandChannelCombo    `protobuf:"bytes,1,rep,name=combo,proto3" json:"combo,omitempty"`
+	DwellTime     uint64                 `protobuf:"varint,2,opt,name=dwell_time,json=dwellTime,proto3" json:"dwell_time,omitempty"`
 	unknownFields protoimpl.UnknownFields
-
-	Combo     []*BandChannelCombo `protobuf:"bytes,1,rep,name=combo,proto3" json:"combo,omitempty"`
-	DwellTime uint64              `protobuf:"varint,2,opt,name=dwell_time,json=dwellTime,proto3" json:"dwell_time,omitempty"`
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *ScanCaptureType) Reset() {
 	*x = ScanCaptureType{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_packet_capture_packet_capture_proto_msgTypes[3]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_packet_capture_packet_capture_proto_msgTypes[3]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *ScanCaptureType) String() string {
@@ -451,8 +443,8 @@ func (x *ScanCaptureType) String() string {
 func (*ScanCaptureType) ProtoMessage() {}
 
 func (x *ScanCaptureType) ProtoReflect() protoreflect.Message {
-	mi := &file_packet_capture_packet_capture_proto_msgTypes[3]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_packet_capture_packet_capture_proto_msgTypes[3]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -464,7 +456,7 @@ func (x *ScanCaptureType) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use ScanCaptureType.ProtoReflect.Descriptor instead.
 func (*ScanCaptureType) Descriptor() ([]byte, []int) {
-	return file_packet_capture_packet_capture_proto_rawDescGZIP(), []int{3}
+	return file_github_com_openconfig_gnoi_packet_capture_packet_capture_proto_rawDescGZIP(), []int{3}
 }
 
 func (x *ScanCaptureType) GetCombo() []*BandChannelCombo {
@@ -482,25 +474,22 @@ func (x *ScanCaptureType) GetDwellTime() uint64 {
 }
 
 type Filter struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	FilterName    string                 `protobuf:"bytes,1,opt,name=filter_name,json=filterName,proto3" json:"filter_name,omitempty"`
+	SrcNet        string                 `protobuf:"bytes,2,opt,name=src_net,json=srcNet,proto3" json:"src_net,omitempty"`
+	DestNet       string                 `protobuf:"bytes,3,opt,name=dest_net,json=destNet,proto3" json:"dest_net,omitempty"`
+	Protocol      []Protocol             `protobuf:"varint,4,rep,packed,name=protocol,proto3,enum=gnoi.pcap.Protocol" json:"protocol,omitempty"`
+	Port          []uint32               `protobuf:"varint,5,rep,packed,name=port,proto3" json:"port,omitempty"`
+	Vlan          []uint32               `protobuf:"varint,6,rep,packed,name=vlan,proto3" json:"vlan,omitempty"`
 	unknownFields protoimpl.UnknownFields
-
-	FilterName string     `protobuf:"bytes,1,opt,name=filter_name,json=filterName,proto3" json:"filter_name,omitempty"`
-	SrcNet     string     `protobuf:"bytes,2,opt,name=src_net,json=srcNet,proto3" json:"src_net,omitempty"`
-	DestNet    string     `protobuf:"bytes,3,opt,name=dest_net,json=destNet,proto3" json:"dest_net,omitempty"`
-	Protocol   []Protocol `protobuf:"varint,4,rep,packed,name=protocol,proto3,enum=gnoi.pcap.Protocol" json:"protocol,omitempty"`
-	Port       []uint32   `protobuf:"varint,5,rep,packed,name=port,proto3" json:"port,omitempty"`
-	Vlan       []uint32   `protobuf:"varint,6,rep,packed,name=vlan,proto3" json:"vlan,omitempty"`
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *Filter) Reset() {
 	*x = Filter{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_packet_capture_packet_capture_proto_msgTypes[4]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_packet_capture_packet_capture_proto_msgTypes[4]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *Filter) String() string {
@@ -510,8 +499,8 @@ func (x *Filter) String() string {
 func (*Filter) ProtoMessage() {}
 
 func (x *Filter) ProtoReflect() protoreflect.Message {
-	mi := &file_packet_capture_packet_capture_proto_msgTypes[4]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_packet_capture_packet_capture_proto_msgTypes[4]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -523,7 +512,7 @@ func (x *Filter) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use Filter.ProtoReflect.Descriptor instead.
 func (*Filter) Descriptor() ([]byte, []int) {
-	return file_packet_capture_packet_capture_proto_rawDescGZIP(), []int{4}
+	return file_github_com_openconfig_gnoi_packet_capture_packet_capture_proto_rawDescGZIP(), []int{4}
 }
 
 func (x *Filter) GetFilterName() string {
@@ -569,26 +558,23 @@ func (x *Filter) GetVlan() []uint32 {
 }
 
 type WiredRequest struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	Ifname    string    `protobuf:"bytes,1,opt,name=ifname,proto3" json:"ifname,omitempty"`
-	Direction Direction `protobuf:"varint,2,opt,name=direction,proto3,enum=gnoi.pcap.Direction" json:"direction,omitempty"`
-	// Types that are assignable to FilterType:
+	state     protoimpl.MessageState `protogen:"open.v1"`
+	Ifname    string                 `protobuf:"bytes,1,opt,name=ifname,proto3" json:"ifname,omitempty"`
+	Direction Direction              `protobuf:"varint,2,opt,name=direction,proto3,enum=gnoi.pcap.Direction" json:"direction,omitempty"`
+	// Types that are valid to be assigned to FilterType:
 	//
 	//	*WiredRequest_TcpdumpExpression
 	//	*WiredRequest_Filter
-	FilterType isWiredRequest_FilterType `protobuf_oneof:"filter_type"`
+	FilterType    isWiredRequest_FilterType `protobuf_oneof:"filter_type"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *WiredRequest) Reset() {
 	*x = WiredRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_packet_capture_packet_capture_proto_msgTypes[5]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_packet_capture_packet_capture_proto_msgTypes[5]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *WiredRequest) String() string {
@@ -598,8 +584,8 @@ func (x *WiredRequest) String() string {
 func (*WiredRequest) ProtoMessage() {}
 
 func (x *WiredRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_packet_capture_packet_capture_proto_msgTypes[5]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_packet_capture_packet_capture_proto_msgTypes[5]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -611,7 +597,7 @@ func (x *WiredRequest) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use WiredRequest.ProtoReflect.Descriptor instead.
 func (*WiredRequest) Descriptor() ([]byte, []int) {
-	return file_packet_capture_packet_capture_proto_rawDescGZIP(), []int{5}
+	return file_github_com_openconfig_gnoi_packet_capture_packet_capture_proto_rawDescGZIP(), []int{5}
 }
 
 func (x *WiredRequest) GetIfname() string {
@@ -628,23 +614,27 @@ func (x *WiredRequest) GetDirection() Direction {
 	return Direction_RX
 }
 
-func (m *WiredRequest) GetFilterType() isWiredRequest_FilterType {
-	if m != nil {
-		return m.FilterType
+func (x *WiredRequest) GetFilterType() isWiredRequest_FilterType {
+	if x != nil {
+		return x.FilterType
 	}
 	return nil
 }
 
 func (x *WiredRequest) GetTcpdumpExpression() string {
-	if x, ok := x.GetFilterType().(*WiredRequest_TcpdumpExpression); ok {
-		return x.TcpdumpExpression
+	if x != nil {
+		if x, ok := x.FilterType.(*WiredRequest_TcpdumpExpression); ok {
+			return x.TcpdumpExpression
+		}
 	}
 	return ""
 }
 
 func (x *WiredRequest) GetFilter() *Filter {
-	if x, ok := x.GetFilterType().(*WiredRequest_Filter); ok {
-		return x.Filter
+	if x != nil {
+		if x, ok := x.FilterType.(*WiredRequest_Filter); ok {
+			return x.Filter
+		}
 	}
 	return nil
 }
@@ -666,24 +656,21 @@ func (*WiredRequest_TcpdumpExpression) isWiredRequest_FilterType() {}
 func (*WiredRequest_Filter) isWiredRequest_FilterType() {}
 
 type WirelessRequest struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	// Types that are assignable to CaptureType:
+	state protoimpl.MessageState `protogen:"open.v1"`
+	// Types that are valid to be assigned to CaptureType:
 	//
 	//	*WirelessRequest_AccessType
 	//	*WirelessRequest_ScanType
-	CaptureType isWirelessRequest_CaptureType `protobuf_oneof:"capture_type"`
+	CaptureType   isWirelessRequest_CaptureType `protobuf_oneof:"capture_type"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *WirelessRequest) Reset() {
 	*x = WirelessRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_packet_capture_packet_capture_proto_msgTypes[6]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_packet_capture_packet_capture_proto_msgTypes[6]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *WirelessRequest) String() string {
@@ -693,8 +680,8 @@ func (x *WirelessRequest) String() string {
 func (*WirelessRequest) ProtoMessage() {}
 
 func (x *WirelessRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_packet_capture_packet_capture_proto_msgTypes[6]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_packet_capture_packet_capture_proto_msgTypes[6]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -706,26 +693,30 @@ func (x *WirelessRequest) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use WirelessRequest.ProtoReflect.Descriptor instead.
 func (*WirelessRequest) Descriptor() ([]byte, []int) {
-	return file_packet_capture_packet_capture_proto_rawDescGZIP(), []int{6}
+	return file_github_com_openconfig_gnoi_packet_capture_packet_capture_proto_rawDescGZIP(), []int{6}
 }
 
-func (m *WirelessRequest) GetCaptureType() isWirelessRequest_CaptureType {
-	if m != nil {
-		return m.CaptureType
+func (x *WirelessRequest) GetCaptureType() isWirelessRequest_CaptureType {
+	if x != nil {
+		return x.CaptureType
 	}
 	return nil
 }
 
 func (x *WirelessRequest) GetAccessType() *AccessCaptureType {
-	if x, ok := x.GetCaptureType().(*WirelessRequest_AccessType); ok {
-		return x.AccessType
+	if x != nil {
+		if x, ok := x.CaptureType.(*WirelessRequest_AccessType); ok {
+			return x.AccessType
+		}
 	}
 	return nil
 }
 
 func (x *WirelessRequest) GetScanType() *ScanCaptureType {
-	if x, ok := x.GetCaptureType().(*WirelessRequest_ScanType); ok {
-		return x.ScanType
+	if x != nil {
+		if x, ok := x.CaptureType.(*WirelessRequest_ScanType); ok {
+			return x.ScanType
+		}
 	}
 	return nil
 }
@@ -747,27 +738,24 @@ func (*WirelessRequest_AccessType) isWirelessRequest_CaptureType() {}
 func (*WirelessRequest_ScanType) isWirelessRequest_CaptureType() {}
 
 type PcapRequest struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	// Types that are assignable to RequestType:
+	state protoimpl.MessageState `protogen:"open.v1"`
+	// Types that are valid to be assigned to RequestType:
 	//
 	//	*PcapRequest_WiredRequest
 	//	*PcapRequest_WirelessRequest
-	RequestType isPcapRequest_RequestType `protobuf_oneof:"request_type"`
-	TrimPayload uint32                    `protobuf:"varint,3,opt,name=trim_payload,json=trimPayload,proto3" json:"trim_payload,omitempty"`
-	PacketCount uint32                    `protobuf:"varint,4,opt,name=packet_count,json=packetCount,proto3" json:"packet_count,omitempty"`
-	Duration    uint64                    `protobuf:"varint,5,opt,name=duration,proto3" json:"duration,omitempty"`
+	RequestType   isPcapRequest_RequestType `protobuf_oneof:"request_type"`
+	TrimPayload   uint32                    `protobuf:"varint,3,opt,name=trim_payload,json=trimPayload,proto3" json:"trim_payload,omitempty"`
+	PacketCount   uint32                    `protobuf:"varint,4,opt,name=packet_count,json=packetCount,proto3" json:"packet_count,omitempty"`
+	Duration      uint64                    `protobuf:"varint,5,opt,name=duration,proto3" json:"duration,omitempty"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *PcapRequest) Reset() {
 	*x = PcapRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_packet_capture_packet_capture_proto_msgTypes[7]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_packet_capture_packet_capture_proto_msgTypes[7]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *PcapRequest) String() string {
@@ -777,8 +765,8 @@ func (x *PcapRequest) String() string {
 func (*PcapRequest) ProtoMessage() {}
 
 func (x *PcapRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_packet_capture_packet_capture_proto_msgTypes[7]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_packet_capture_packet_capture_proto_msgTypes[7]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -790,26 +778,30 @@ func (x *PcapRequest) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use PcapRequest.ProtoReflect.Descriptor instead.
 func (*PcapRequest) Descriptor() ([]byte, []int) {
-	return file_packet_capture_packet_capture_proto_rawDescGZIP(), []int{7}
+	return file_github_com_openconfig_gnoi_packet_capture_packet_capture_proto_rawDescGZIP(), []int{7}
 }
 
-func (m *PcapRequest) GetRequestType() isPcapRequest_RequestType {
-	if m != nil {
-		return m.RequestType
+func (x *PcapRequest) GetRequestType() isPcapRequest_RequestType {
+	if x != nil {
+		return x.RequestType
 	}
 	return nil
 }
 
 func (x *PcapRequest) GetWiredRequest() *WiredRequest {
-	if x, ok := x.GetRequestType().(*PcapRequest_WiredRequest); ok {
-		return x.WiredRequest
+	if x != nil {
+		if x, ok := x.RequestType.(*PcapRequest_WiredRequest); ok {
+			return x.WiredRequest
+		}
 	}
 	return nil
 }
 
 func (x *PcapRequest) GetWirelessRequest() *WirelessRequest {
-	if x, ok := x.GetRequestType().(*PcapRequest_WirelessRequest); ok {
-		return x.WirelessRequest
+	if x != nil {
+		if x, ok := x.RequestType.(*PcapRequest_WirelessRequest); ok {
+			return x.WirelessRequest
+		}
 	}
 	return nil
 }
@@ -852,20 +844,17 @@ func (*PcapRequest_WiredRequest) isPcapRequest_RequestType() {}
 func (*PcapRequest_WirelessRequest) isPcapRequest_RequestType() {}
 
 type Packet struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Data          []byte                 `protobuf:"bytes,1,opt,name=data,proto3" json:"data,omitempty"`
 	unknownFields protoimpl.UnknownFields
-
-	Data []byte `protobuf:"bytes,1,opt,name=data,proto3" json:"data,omitempty"`
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *Packet) Reset() {
 	*x = Packet{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_packet_capture_packet_capture_proto_msgTypes[8]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_packet_capture_packet_capture_proto_msgTypes[8]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *Packet) String() string {
@@ -875,8 +864,8 @@ func (x *Packet) String() string {
 func (*Packet) ProtoMessage() {}
 
 func (x *Packet) ProtoReflect() protoreflect.Message {
-	mi := &file_packet_capture_packet_capture_proto_msgTypes[8]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_packet_capture_packet_capture_proto_msgTypes[8]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -888,7 +877,7 @@ func (x *Packet) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use Packet.ProtoReflect.Descriptor instead.
 func (*Packet) Descriptor() ([]byte, []int) {
-	return file_packet_capture_packet_capture_proto_rawDescGZIP(), []int{8}
+	return file_github_com_openconfig_gnoi_packet_capture_packet_capture_proto_rawDescGZIP(), []int{8}
 }
 
 func (x *Packet) GetData() []byte {
@@ -899,20 +888,17 @@ func (x *Packet) GetData() []byte {
 }
 
 type PcapResponse struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Packets       []*Packet              `protobuf:"bytes,1,rep,name=packets,proto3" json:"packets,omitempty"`
 	unknownFields protoimpl.UnknownFields
-
-	Packets []*Packet `protobuf:"bytes,1,rep,name=packets,proto3" json:"packets,omitempty"`
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *PcapResponse) Reset() {
 	*x = PcapResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_packet_capture_packet_capture_proto_msgTypes[9]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_packet_capture_packet_capture_proto_msgTypes[9]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *PcapResponse) String() string {
@@ -922,8 +908,8 @@ func (x *PcapResponse) String() string {
 func (*PcapResponse) ProtoMessage() {}
 
 func (x *PcapResponse) ProtoReflect() protoreflect.Message {
-	mi := &file_packet_capture_packet_capture_proto_msgTypes[9]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_packet_capture_packet_capture_proto_msgTypes[9]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -935,7 +921,7 @@ func (x *PcapResponse) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use PcapResponse.ProtoReflect.Descriptor instead.
 func (*PcapResponse) Descriptor() ([]byte, []int) {
-	return file_packet_capture_packet_capture_proto_rawDescGZIP(), []int{9}
+	return file_github_com_openconfig_gnoi_packet_capture_packet_capture_proto_rawDescGZIP(), []int{9}
 }
 
 func (x *PcapResponse) GetPackets() []*Packet {
@@ -945,142 +931,144 @@ func (x *PcapResponse) GetPackets() []*Packet {
 	return nil
 }
 
-var File_packet_capture_packet_capture_proto protoreflect.FileDescriptor
-
-var file_packet_capture_packet_capture_proto_rawDesc = []byte{
-	0x0a, 0x23, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x63, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65,
-	0x2f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x63, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x2e,
-	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x09, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x70, 0x63, 0x61, 0x70,
-	0x22, 0xb8, 0x01, 0x0a, 0x11, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x43, 0x61, 0x70, 0x74, 0x75,
-	0x72, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x3f, 0x0a, 0x0e, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74,
-	0x69, 0x6e, 0x67, 0x5f, 0x62, 0x61, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x18,
-	0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x70, 0x63, 0x61, 0x70, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61,
-	0x74, 0x69, 0x6e, 0x67, 0x42, 0x61, 0x6e, 0x64, 0x52, 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74,
-	0x69, 0x6e, 0x67, 0x42, 0x61, 0x6e, 0x64, 0x12, 0x14, 0x0a, 0x04, 0x73, 0x73, 0x69, 0x64, 0x18,
-	0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x73, 0x73, 0x69, 0x64, 0x12, 0x12, 0x0a,
-	0x03, 0x6d, 0x61, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x03, 0x6d, 0x61,
-	0x63, 0x12, 0x29, 0x0a, 0x10, 0x70, 0x72, 0x6f, 0x6d, 0x69, 0x73, 0x63, 0x75, 0x6f, 0x75, 0x73,
-	0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x70, 0x72, 0x6f,
-	0x6d, 0x69, 0x73, 0x63, 0x75, 0x6f, 0x75, 0x73, 0x4d, 0x6f, 0x64, 0x65, 0x42, 0x0d, 0x0a, 0x0b,
-	0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, 0x65, 0x0a, 0x0b, 0x43,
-	0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x68,
-	0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x68, 0x61,
-	0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x3c, 0x0a, 0x0d, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f,
-	0x77, 0x69, 0x64, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x17, 0x2e, 0x67, 0x6e,
-	0x6f, 0x69, 0x2e, 0x70, 0x63, 0x61, 0x70, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x57,
-	0x69, 0x64, 0x74, 0x68, 0x52, 0x0c, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x57, 0x69, 0x64,
-	0x74, 0x68, 0x22, 0x8e, 0x01, 0x0a, 0x10, 0x42, 0x61, 0x6e, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e,
-	0x65, 0x6c, 0x43, 0x6f, 0x6d, 0x62, 0x6f, 0x12, 0x3f, 0x0a, 0x0e, 0x6f, 0x70, 0x65, 0x72, 0x61,
-	0x74, 0x69, 0x6e, 0x67, 0x5f, 0x62, 0x61, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32,
-	0x18, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x70, 0x63, 0x61, 0x70, 0x2e, 0x4f, 0x70, 0x65, 0x72,
-	0x61, 0x74, 0x69, 0x6e, 0x67, 0x42, 0x61, 0x6e, 0x64, 0x52, 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61,
-	0x74, 0x69, 0x6e, 0x67, 0x42, 0x61, 0x6e, 0x64, 0x12, 0x39, 0x0a, 0x0c, 0x63, 0x68, 0x61, 0x6e,
-	0x6e, 0x65, 0x6c, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16,
-	0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x70, 0x63, 0x61, 0x70, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x6e,
-	0x65, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49,
-	0x6e, 0x66, 0x6f, 0x22, 0x63, 0x0a, 0x0f, 0x53, 0x63, 0x61, 0x6e, 0x43, 0x61, 0x70, 0x74, 0x75,
-	0x72, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x31, 0x0a, 0x05, 0x63, 0x6f, 0x6d, 0x62, 0x6f, 0x18,
-	0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x70, 0x63, 0x61,
-	0x70, 0x2e, 0x42, 0x61, 0x6e, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x43, 0x6f, 0x6d,
-	0x62, 0x6f, 0x52, 0x05, 0x63, 0x6f, 0x6d, 0x62, 0x6f, 0x12, 0x1d, 0x0a, 0x0a, 0x64, 0x77, 0x65,
-	0x6c, 0x6c, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x64,
-	0x77, 0x65, 0x6c, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x22, 0xb6, 0x01, 0x0a, 0x06, 0x46, 0x69, 0x6c,
-	0x74, 0x65, 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x5f, 0x6e, 0x61,
-	0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72,
-	0x4e, 0x61, 0x6d, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x73, 0x72, 0x63, 0x5f, 0x6e, 0x65, 0x74, 0x18,
-	0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x72, 0x63, 0x4e, 0x65, 0x74, 0x12, 0x19, 0x0a,
-	0x08, 0x64, 0x65, 0x73, 0x74, 0x5f, 0x6e, 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52,
-	0x07, 0x64, 0x65, 0x73, 0x74, 0x4e, 0x65, 0x74, 0x12, 0x2f, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x74,
-	0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x13, 0x2e, 0x67, 0x6e, 0x6f,
-	0x69, 0x2e, 0x70, 0x63, 0x61, 0x70, 0x2e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x52,
-	0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x6f, 0x72,
-	0x74, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x12, 0x0a,
-	0x04, 0x76, 0x6c, 0x61, 0x6e, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x04, 0x76, 0x6c, 0x61,
-	0x6e, 0x22, 0xc7, 0x01, 0x0a, 0x0c, 0x57, 0x69, 0x72, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65,
-	0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x66, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01,
-	0x28, 0x09, 0x52, 0x06, 0x69, 0x66, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x32, 0x0a, 0x09, 0x64, 0x69,
-	0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x14, 0x2e,
-	0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x70, 0x63, 0x61, 0x70, 0x2e, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74,
-	0x69, 0x6f, 0x6e, 0x52, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2f,
-	0x0a, 0x12, 0x74, 0x63, 0x70, 0x64, 0x75, 0x6d, 0x70, 0x5f, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73,
-	0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x11, 0x74, 0x63,
-	0x70, 0x64, 0x75, 0x6d, 0x70, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12,
-	0x2b, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32,
-	0x11, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x70, 0x63, 0x61, 0x70, 0x2e, 0x46, 0x69, 0x6c, 0x74,
-	0x65, 0x72, 0x48, 0x00, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x42, 0x0d, 0x0a, 0x0b,
-	0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, 0x9d, 0x01, 0x0a, 0x0f,
-	0x57, 0x69, 0x72, 0x65, 0x6c, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12,
-	0x3f, 0x0a, 0x0b, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01,
-	0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x70, 0x63, 0x61, 0x70,
-	0x2e, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x54, 0x79,
-	0x70, 0x65, 0x48, 0x00, 0x52, 0x0a, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65,
-	0x12, 0x39, 0x0a, 0x09, 0x73, 0x63, 0x61, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20,
-	0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x70, 0x63, 0x61, 0x70, 0x2e,
-	0x53, 0x63, 0x61, 0x6e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x54, 0x79, 0x70, 0x65, 0x48,
-	0x00, 0x52, 0x08, 0x73, 0x63, 0x61, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x42, 0x0e, 0x0a, 0x0c, 0x63,
-	0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, 0x88, 0x02, 0x0a, 0x0b,
-	0x50, 0x63, 0x61, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3e, 0x0a, 0x0d, 0x77,
-	0x69, 0x72, 0x65, 0x64, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01,
-	0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x70, 0x63, 0x61, 0x70, 0x2e, 0x57,
-	0x69, 0x72, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x0c, 0x77,
-	0x69, 0x72, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x47, 0x0a, 0x10, 0x77,
-	0x69, 0x72, 0x65, 0x6c, 0x65, 0x73, 0x73, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18,
-	0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x70, 0x63, 0x61,
-	0x70, 0x2e, 0x57, 0x69, 0x72, 0x65, 0x6c, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
-	0x74, 0x48, 0x00, 0x52, 0x0f, 0x77, 0x69, 0x72, 0x65, 0x6c, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71,
-	0x75, 0x65, 0x73, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x74, 0x72, 0x69, 0x6d, 0x5f, 0x70, 0x61, 0x79,
-	0x6c, 0x6f, 0x61, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x74, 0x72, 0x69, 0x6d,
-	0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x61, 0x63, 0x6b, 0x65,
-	0x74, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x70,
-	0x61, 0x63, 0x6b, 0x65, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x75,
-	0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x64, 0x75,
-	0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0e, 0x0a, 0x0c, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73,
-	0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, 0x1c, 0x0a, 0x06, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74,
-	0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04,
-	0x64, 0x61, 0x74, 0x61, 0x22, 0x3b, 0x0a, 0x0c, 0x50, 0x63, 0x61, 0x70, 0x52, 0x65, 0x73, 0x70,
-	0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2b, 0x0a, 0x07, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x18,
-	0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x70, 0x63, 0x61,
-	0x70, 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x52, 0x07, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74,
-	0x73, 0x2a, 0x44, 0x0a, 0x0d, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x42, 0x61,
-	0x6e, 0x64, 0x12, 0x0b, 0x0a, 0x07, 0x42, 0x41, 0x4e, 0x44, 0x5f, 0x32, 0x47, 0x10, 0x00, 0x12,
-	0x0b, 0x0a, 0x07, 0x42, 0x41, 0x4e, 0x44, 0x5f, 0x35, 0x47, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07,
-	0x42, 0x41, 0x4e, 0x44, 0x5f, 0x36, 0x47, 0x10, 0x02, 0x12, 0x0c, 0x0a, 0x08, 0x42, 0x41, 0x4e,
-	0x44, 0x5f, 0x41, 0x4c, 0x4c, 0x10, 0x03, 0x2a, 0x1c, 0x0a, 0x08, 0x50, 0x72, 0x6f, 0x74, 0x6f,
-	0x63, 0x6f, 0x6c, 0x12, 0x07, 0x0a, 0x03, 0x54, 0x43, 0x50, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03,
-	0x55, 0x44, 0x50, 0x10, 0x01, 0x2a, 0x25, 0x0a, 0x09, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69,
-	0x6f, 0x6e, 0x12, 0x06, 0x0a, 0x02, 0x52, 0x58, 0x10, 0x00, 0x12, 0x06, 0x0a, 0x02, 0x54, 0x58,
-	0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x42, 0x4f, 0x54, 0x48, 0x10, 0x02, 0x2a, 0x53, 0x0a, 0x0c,
-	0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x57, 0x69, 0x64, 0x74, 0x68, 0x12, 0x0f, 0x0a, 0x0b,
-	0x57, 0x49, 0x44, 0x54, 0x48, 0x5f, 0x32, 0x30, 0x4d, 0x48, 0x5a, 0x10, 0x00, 0x12, 0x0f, 0x0a,
-	0x0b, 0x57, 0x49, 0x44, 0x54, 0x48, 0x5f, 0x34, 0x30, 0x4d, 0x48, 0x5a, 0x10, 0x01, 0x12, 0x0f,
-	0x0a, 0x0b, 0x57, 0x49, 0x44, 0x54, 0x48, 0x5f, 0x38, 0x30, 0x4d, 0x48, 0x5a, 0x10, 0x02, 0x12,
-	0x10, 0x0a, 0x0c, 0x57, 0x49, 0x44, 0x54, 0x48, 0x5f, 0x31, 0x36, 0x30, 0x4d, 0x48, 0x5a, 0x10,
-	0x03, 0x32, 0x4c, 0x0a, 0x0d, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x43, 0x61, 0x70, 0x74, 0x75,
-	0x72, 0x65, 0x12, 0x3b, 0x0a, 0x04, 0x50, 0x63, 0x61, 0x70, 0x12, 0x16, 0x2e, 0x67, 0x6e, 0x6f,
-	0x69, 0x2e, 0x70, 0x63, 0x61, 0x70, 0x2e, 0x50, 0x63, 0x61, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65,
-	0x73, 0x74, 0x1a, 0x17, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x70, 0x63, 0x61, 0x70, 0x2e, 0x50,
-	0x63, 0x61, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x30, 0x01, 0x42,
-	0x30, 0x5a, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x70,
-	0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x67, 0x6e, 0x6f, 0x69, 0x2f, 0x70, 0x61,
-	0x63, 0x6b, 0x65, 0x74, 0x5f, 0x63, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x3b, 0x70, 0x63, 0x61,
-	0x70, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+var File_github_com_openconfig_gnoi_packet_capture_packet_capture_proto protoreflect.FileDescriptor
+
+var file_github_com_openconfig_gnoi_packet_capture_packet_capture_proto_rawDesc = []byte{
+	0x0a, 0x3e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x70, 0x65,
+	0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x67, 0x6e, 0x6f, 0x69, 0x2f, 0x70, 0x61, 0x63,
+	0x6b, 0x65, 0x74, 0x5f, 0x63, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x2f, 0x70, 0x61, 0x63, 0x6b,
+	0x65, 0x74, 0x5f, 0x63, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
+	0x12, 0x09, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x70, 0x63, 0x61, 0x70, 0x22, 0xb8, 0x01, 0x0a, 0x11,
+	0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x54, 0x79, 0x70,
+	0x65, 0x12, 0x3f, 0x0a, 0x0e, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x62,
+	0x61, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x18, 0x2e, 0x67, 0x6e, 0x6f, 0x69,
+	0x2e, 0x70, 0x63, 0x61, 0x70, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x42,
+	0x61, 0x6e, 0x64, 0x52, 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x42, 0x61,
+	0x6e, 0x64, 0x12, 0x14, 0x0a, 0x04, 0x73, 0x73, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
+	0x48, 0x00, 0x52, 0x04, 0x73, 0x73, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x03, 0x6d, 0x61, 0x63, 0x18,
+	0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x03, 0x6d, 0x61, 0x63, 0x12, 0x29, 0x0a, 0x10,
+	0x70, 0x72, 0x6f, 0x6d, 0x69, 0x73, 0x63, 0x75, 0x6f, 0x75, 0x73, 0x5f, 0x6d, 0x6f, 0x64, 0x65,
+	0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x70, 0x72, 0x6f, 0x6d, 0x69, 0x73, 0x63, 0x75,
+	0x6f, 0x75, 0x73, 0x4d, 0x6f, 0x64, 0x65, 0x42, 0x0d, 0x0a, 0x0b, 0x66, 0x69, 0x6c, 0x74, 0x65,
+	0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, 0x65, 0x0a, 0x0b, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65,
+	0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c,
+	0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12,
+	0x3c, 0x0a, 0x0d, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x77, 0x69, 0x64, 0x74, 0x68,
+	0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x17, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x70, 0x63,
+	0x61, 0x70, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x57, 0x69, 0x64, 0x74, 0x68, 0x52,
+	0x0c, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x57, 0x69, 0x64, 0x74, 0x68, 0x22, 0x8e, 0x01,
+	0x0a, 0x10, 0x42, 0x61, 0x6e, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x43, 0x6f, 0x6d,
+	0x62, 0x6f, 0x12, 0x3f, 0x0a, 0x0e, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x5f,
+	0x62, 0x61, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x18, 0x2e, 0x67, 0x6e, 0x6f,
+	0x69, 0x2e, 0x70, 0x63, 0x61, 0x70, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6e, 0x67,
+	0x42, 0x61, 0x6e, 0x64, 0x52, 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x42,
+	0x61, 0x6e, 0x64, 0x12, 0x39, 0x0a, 0x0c, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x69,
+	0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x6e, 0x6f, 0x69,
+	0x2e, 0x70, 0x63, 0x61, 0x70, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x6e, 0x66,
+	0x6f, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x63,
+	0x0a, 0x0f, 0x53, 0x63, 0x61, 0x6e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x54, 0x79, 0x70,
+	0x65, 0x12, 0x31, 0x0a, 0x05, 0x63, 0x6f, 0x6d, 0x62, 0x6f, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b,
+	0x32, 0x1b, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x70, 0x63, 0x61, 0x70, 0x2e, 0x42, 0x61, 0x6e,
+	0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x43, 0x6f, 0x6d, 0x62, 0x6f, 0x52, 0x05, 0x63,
+	0x6f, 0x6d, 0x62, 0x6f, 0x12, 0x1d, 0x0a, 0x0a, 0x64, 0x77, 0x65, 0x6c, 0x6c, 0x5f, 0x74, 0x69,
+	0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x64, 0x77, 0x65, 0x6c, 0x6c, 0x54,
+	0x69, 0x6d, 0x65, 0x22, 0xb6, 0x01, 0x0a, 0x06, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x1f,
+	0x0a, 0x0b, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20,
+	0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12,
+	0x17, 0x0a, 0x07, 0x73, 0x72, 0x63, 0x5f, 0x6e, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
+	0x52, 0x06, 0x73, 0x72, 0x63, 0x4e, 0x65, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x64, 0x65, 0x73, 0x74,
+	0x5f, 0x6e, 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x64, 0x65, 0x73, 0x74,
+	0x4e, 0x65, 0x74, 0x12, 0x2f, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18,
+	0x04, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x13, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x70, 0x63, 0x61,
+	0x70, 0x2e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x74,
+	0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x05, 0x20, 0x03,
+	0x28, 0x0d, 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x76, 0x6c, 0x61, 0x6e,
+	0x18, 0x06, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x04, 0x76, 0x6c, 0x61, 0x6e, 0x22, 0xc7, 0x01, 0x0a,
+	0x0c, 0x57, 0x69, 0x72, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a,
+	0x06, 0x69, 0x66, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x69,
+	0x66, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x32, 0x0a, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69,
+	0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x14, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e,
+	0x70, 0x63, 0x61, 0x70, 0x2e, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09,
+	0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2f, 0x0a, 0x12, 0x74, 0x63, 0x70,
+	0x64, 0x75, 0x6d, 0x70, 0x5f, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18,
+	0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x11, 0x74, 0x63, 0x70, 0x64, 0x75, 0x6d, 0x70,
+	0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x2b, 0x0a, 0x06, 0x66, 0x69,
+	0x6c, 0x74, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x67, 0x6e, 0x6f,
+	0x69, 0x2e, 0x70, 0x63, 0x61, 0x70, 0x2e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52,
+	0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x42, 0x0d, 0x0a, 0x0b, 0x66, 0x69, 0x6c, 0x74, 0x65,
+	0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, 0x9d, 0x01, 0x0a, 0x0f, 0x57, 0x69, 0x72, 0x65, 0x6c,
+	0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3f, 0x0a, 0x0b, 0x61, 0x63,
+	0x63, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
+	0x1c, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x70, 0x63, 0x61, 0x70, 0x2e, 0x41, 0x63, 0x63, 0x65,
+	0x73, 0x73, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x54, 0x79, 0x70, 0x65, 0x48, 0x00, 0x52,
+	0x0a, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x12, 0x39, 0x0a, 0x09, 0x73,
+	0x63, 0x61, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a,
+	0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x70, 0x63, 0x61, 0x70, 0x2e, 0x53, 0x63, 0x61, 0x6e, 0x43,
+	0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x54, 0x79, 0x70, 0x65, 0x48, 0x00, 0x52, 0x08, 0x73, 0x63,
+	0x61, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x42, 0x0e, 0x0a, 0x0c, 0x63, 0x61, 0x70, 0x74, 0x75, 0x72,
+	0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, 0x88, 0x02, 0x0a, 0x0b, 0x50, 0x63, 0x61, 0x70, 0x52,
+	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3e, 0x0a, 0x0d, 0x77, 0x69, 0x72, 0x65, 0x64, 0x5f,
+	0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e,
+	0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x70, 0x63, 0x61, 0x70, 0x2e, 0x57, 0x69, 0x72, 0x65, 0x64, 0x52,
+	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x0c, 0x77, 0x69, 0x72, 0x65, 0x64, 0x52,
+	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x47, 0x0a, 0x10, 0x77, 0x69, 0x72, 0x65, 0x6c, 0x65,
+	0x73, 0x73, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b,
+	0x32, 0x1a, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x70, 0x63, 0x61, 0x70, 0x2e, 0x57, 0x69, 0x72,
+	0x65, 0x6c, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x0f,
+	0x77, 0x69, 0x72, 0x65, 0x6c, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12,
+	0x21, 0x0a, 0x0c, 0x74, 0x72, 0x69, 0x6d, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18,
+	0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x74, 0x72, 0x69, 0x6d, 0x50, 0x61, 0x79, 0x6c, 0x6f,
+	0x61, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x63, 0x6f, 0x75,
+	0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74,
+	0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f,
+	0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f,
+	0x6e, 0x42, 0x0e, 0x0a, 0x0c, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x74, 0x79, 0x70,
+	0x65, 0x22, 0x1c, 0x0a, 0x06, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x64,
+	0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22,
+	0x3b, 0x0a, 0x0c, 0x50, 0x63, 0x61, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12,
+	0x2b, 0x0a, 0x07, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b,
+	0x32, 0x11, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x70, 0x63, 0x61, 0x70, 0x2e, 0x50, 0x61, 0x63,
+	0x6b, 0x65, 0x74, 0x52, 0x07, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x2a, 0x44, 0x0a, 0x0d,
+	0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x42, 0x61, 0x6e, 0x64, 0x12, 0x0b, 0x0a,
+	0x07, 0x42, 0x41, 0x4e, 0x44, 0x5f, 0x32, 0x47, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x42, 0x41,
+	0x4e, 0x44, 0x5f, 0x35, 0x47, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x42, 0x41, 0x4e, 0x44, 0x5f,
+	0x36, 0x47, 0x10, 0x02, 0x12, 0x0c, 0x0a, 0x08, 0x42, 0x41, 0x4e, 0x44, 0x5f, 0x41, 0x4c, 0x4c,
+	0x10, 0x03, 0x2a, 0x1c, 0x0a, 0x08, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x07,
+	0x0a, 0x03, 0x54, 0x43, 0x50, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x55, 0x44, 0x50, 0x10, 0x01,
+	0x2a, 0x25, 0x0a, 0x09, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x06, 0x0a,
+	0x02, 0x52, 0x58, 0x10, 0x00, 0x12, 0x06, 0x0a, 0x02, 0x54, 0x58, 0x10, 0x01, 0x12, 0x08, 0x0a,
+	0x04, 0x42, 0x4f, 0x54, 0x48, 0x10, 0x02, 0x2a, 0x53, 0x0a, 0x0c, 0x43, 0x68, 0x61, 0x6e, 0x6e,
+	0x65, 0x6c, 0x57, 0x69, 0x64, 0x74, 0x68, 0x12, 0x0f, 0x0a, 0x0b, 0x57, 0x49, 0x44, 0x54, 0x48,
+	0x5f, 0x32, 0x30, 0x4d, 0x48, 0x5a, 0x10, 0x00, 0x12, 0x0f, 0x0a, 0x0b, 0x57, 0x49, 0x44, 0x54,
+	0x48, 0x5f, 0x34, 0x30, 0x4d, 0x48, 0x5a, 0x10, 0x01, 0x12, 0x0f, 0x0a, 0x0b, 0x57, 0x49, 0x44,
+	0x54, 0x48, 0x5f, 0x38, 0x30, 0x4d, 0x48, 0x5a, 0x10, 0x02, 0x12, 0x10, 0x0a, 0x0c, 0x57, 0x49,
+	0x44, 0x54, 0x48, 0x5f, 0x31, 0x36, 0x30, 0x4d, 0x48, 0x5a, 0x10, 0x03, 0x32, 0x4c, 0x0a, 0x0d,
+	0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x12, 0x3b, 0x0a,
+	0x04, 0x50, 0x63, 0x61, 0x70, 0x12, 0x16, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x70, 0x63, 0x61,
+	0x70, 0x2e, 0x50, 0x63, 0x61, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e,
+	0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x70, 0x63, 0x61, 0x70, 0x2e, 0x50, 0x63, 0x61, 0x70, 0x52, 0x65,
+	0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x30, 0x01, 0x42, 0x30, 0x5a, 0x2e, 0x67, 0x69,
+	0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e,
+	0x66, 0x69, 0x67, 0x2f, 0x67, 0x6e, 0x6f, 0x69, 0x2f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f,
+	0x63, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x3b, 0x70, 0x63, 0x61, 0x70, 0x62, 0x06, 0x70, 0x72,
+	0x6f, 0x74, 0x6f, 0x33,
 }
 
 var (
-	file_packet_capture_packet_capture_proto_rawDescOnce sync.Once
-	file_packet_capture_packet_capture_proto_rawDescData = file_packet_capture_packet_capture_proto_rawDesc
+	file_github_com_openconfig_gnoi_packet_capture_packet_capture_proto_rawDescOnce sync.Once
+	file_github_com_openconfig_gnoi_packet_capture_packet_capture_proto_rawDescData = file_github_com_openconfig_gnoi_packet_capture_packet_capture_proto_rawDesc
 )
 
-func file_packet_capture_packet_capture_proto_rawDescGZIP() []byte {
-	file_packet_capture_packet_capture_proto_rawDescOnce.Do(func() {
-		file_packet_capture_packet_capture_proto_rawDescData = protoimpl.X.CompressGZIP(file_packet_capture_packet_capture_proto_rawDescData)
+func file_github_com_openconfig_gnoi_packet_capture_packet_capture_proto_rawDescGZIP() []byte {
+	file_github_com_openconfig_gnoi_packet_capture_packet_capture_proto_rawDescOnce.Do(func() {
+		file_github_com_openconfig_gnoi_packet_capture_packet_capture_proto_rawDescData = protoimpl.X.CompressGZIP(file_github_com_openconfig_gnoi_packet_capture_packet_capture_proto_rawDescData)
 	})
-	return file_packet_capture_packet_capture_proto_rawDescData
+	return file_github_com_openconfig_gnoi_packet_capture_packet_capture_proto_rawDescData
 }
 
-var file_packet_capture_packet_capture_proto_enumTypes = make([]protoimpl.EnumInfo, 4)
-var file_packet_capture_packet_capture_proto_msgTypes = make([]protoimpl.MessageInfo, 10)
-var file_packet_capture_packet_capture_proto_goTypes = []interface{}{
+var file_github_com_openconfig_gnoi_packet_capture_packet_capture_proto_enumTypes = make([]protoimpl.EnumInfo, 4)
+var file_github_com_openconfig_gnoi_packet_capture_packet_capture_proto_msgTypes = make([]protoimpl.MessageInfo, 10)
+var file_github_com_openconfig_gnoi_packet_capture_packet_capture_proto_goTypes = []any{
 	(OperatingBand)(0),        // 0: gnoi.pcap.OperatingBand
 	(Protocol)(0),             // 1: gnoi.pcap.Protocol
 	(Direction)(0),            // 2: gnoi.pcap.Direction
@@ -1096,7 +1084,7 @@ var file_packet_capture_packet_capture_proto_goTypes = []interface{}{
 	(*Packet)(nil),            // 12: gnoi.pcap.Packet
 	(*PcapResponse)(nil),      // 13: gnoi.pcap.PcapResponse
 }
-var file_packet_capture_packet_capture_proto_depIdxs = []int32{
+var file_github_com_openconfig_gnoi_packet_capture_packet_capture_proto_depIdxs = []int32{
 	0,  // 0: gnoi.pcap.AccessCaptureType.operating_band:type_name -> gnoi.pcap.OperatingBand
 	3,  // 1: gnoi.pcap.ChannelInfo.channel_width:type_name -> gnoi.pcap.ChannelWidth
 	0,  // 2: gnoi.pcap.BandChannelCombo.operating_band:type_name -> gnoi.pcap.OperatingBand
@@ -1119,146 +1107,24 @@ var file_packet_capture_packet_capture_proto_depIdxs = []int32{
 	0,  // [0:13] is the sub-list for field type_name
 }
 
-func init() { file_packet_capture_packet_capture_proto_init() }
-func file_packet_capture_packet_capture_proto_init() {
-	if File_packet_capture_packet_capture_proto != nil {
+func init() { file_github_com_openconfig_gnoi_packet_capture_packet_capture_proto_init() }
+func file_github_com_openconfig_gnoi_packet_capture_packet_capture_proto_init() {
+	if File_github_com_openconfig_gnoi_packet_capture_packet_capture_proto != nil {
 		return
 	}
-	if !protoimpl.UnsafeEnabled {
-		file_packet_capture_packet_capture_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*AccessCaptureType); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_packet_capture_packet_capture_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*ChannelInfo); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_packet_capture_packet_capture_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*BandChannelCombo); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_packet_capture_packet_capture_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*ScanCaptureType); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_packet_capture_packet_capture_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*Filter); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_packet_capture_packet_capture_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*WiredRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_packet_capture_packet_capture_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*WirelessRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_packet_capture_packet_capture_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*PcapRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_packet_capture_packet_capture_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*Packet); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_packet_capture_packet_capture_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*PcapResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-	}
-	file_packet_capture_packet_capture_proto_msgTypes[0].OneofWrappers = []interface{}{
+	file_github_com_openconfig_gnoi_packet_capture_packet_capture_proto_msgTypes[0].OneofWrappers = []any{
 		(*AccessCaptureType_Ssid)(nil),
 		(*AccessCaptureType_Mac)(nil),
 	}
-	file_packet_capture_packet_capture_proto_msgTypes[5].OneofWrappers = []interface{}{
+	file_github_com_openconfig_gnoi_packet_capture_packet_capture_proto_msgTypes[5].OneofWrappers = []any{
 		(*WiredRequest_TcpdumpExpression)(nil),
 		(*WiredRequest_Filter)(nil),
 	}
-	file_packet_capture_packet_capture_proto_msgTypes[6].OneofWrappers = []interface{}{
+	file_github_com_openconfig_gnoi_packet_capture_packet_capture_proto_msgTypes[6].OneofWrappers = []any{
 		(*WirelessRequest_AccessType)(nil),
 		(*WirelessRequest_ScanType)(nil),
 	}
-	file_packet_capture_packet_capture_proto_msgTypes[7].OneofWrappers = []interface{}{
+	file_github_com_openconfig_gnoi_packet_capture_packet_capture_proto_msgTypes[7].OneofWrappers = []any{
 		(*PcapRequest_WiredRequest)(nil),
 		(*PcapRequest_WirelessRequest)(nil),
 	}
@@ -1266,19 +1132,19 @@ func file_packet_capture_packet_capture_proto_init() {
 	out := protoimpl.TypeBuilder{
 		File: protoimpl.DescBuilder{
 			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
-			RawDescriptor: file_packet_capture_packet_capture_proto_rawDesc,
+			RawDescriptor: file_github_com_openconfig_gnoi_packet_capture_packet_capture_proto_rawDesc,
 			NumEnums:      4,
 			NumMessages:   10,
 			NumExtensions: 0,
 			NumServices:   1,
 		},
-		GoTypes:           file_packet_capture_packet_capture_proto_goTypes,
-		DependencyIndexes: file_packet_capture_packet_capture_proto_depIdxs,
-		EnumInfos:         file_packet_capture_packet_capture_proto_enumTypes,
-		MessageInfos:      file_packet_capture_packet_capture_proto_msgTypes,
+		GoTypes:           file_github_com_openconfig_gnoi_packet_capture_packet_capture_proto_goTypes,
+		DependencyIndexes: file_github_com_openconfig_gnoi_packet_capture_packet_capture_proto_depIdxs,
+		EnumInfos:         file_github_com_openconfig_gnoi_packet_capture_packet_capture_proto_enumTypes,
+		MessageInfos:      file_github_com_openconfig_gnoi_packet_capture_packet_capture_proto_msgTypes,
 	}.Build()
-	File_packet_capture_packet_capture_proto = out.File
-	file_packet_capture_packet_capture_proto_rawDesc = nil
-	file_packet_capture_packet_capture_proto_goTypes = nil
-	file_packet_capture_packet_capture_proto_depIdxs = nil
+	File_github_com_openconfig_gnoi_packet_capture_packet_capture_proto = out.File
+	file_github_com_openconfig_gnoi_packet_capture_packet_capture_proto_rawDesc = nil
+	file_github_com_openconfig_gnoi_packet_capture_packet_capture_proto_goTypes = nil
+	file_github_com_openconfig_gnoi_packet_capture_packet_capture_proto_depIdxs = nil
 }
diff --git a/packet_capture/packet_capture_grpc.pb.go b/packet_capture/packet_capture_grpc.pb.go
index 903bf46b..0d54a398 100644
--- a/packet_capture/packet_capture_grpc.pb.go
+++ b/packet_capture/packet_capture_grpc.pb.go
@@ -1,8 +1,8 @@
 // Code generated by protoc-gen-go-grpc. DO NOT EDIT.
 // versions:
-// - protoc-gen-go-grpc v1.2.0
-// - protoc             v3.21.10
-// source: packet_capture/packet_capture.proto
+// - protoc-gen-go-grpc v1.5.1
+// - protoc             v5.29.3
+// source: github.com/openconfig/gnoi/packet_capture/packet_capture.proto
 
 package pcap
 
@@ -15,14 +15,18 @@ import (
 
 // This is a compile-time assertion to ensure that this generated file
 // is compatible with the grpc package it is being compiled against.
-// Requires gRPC-Go v1.32.0 or later.
-const _ = grpc.SupportPackageIsVersion7
+// Requires gRPC-Go v1.64.0 or later.
+const _ = grpc.SupportPackageIsVersion9
+
+const (
+	PacketCapture_Pcap_FullMethodName = "/gnoi.pcap.PacketCapture/Pcap"
+)
 
 // PacketCaptureClient is the client API for PacketCapture service.
 //
 // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.
 type PacketCaptureClient interface {
-	Pcap(ctx context.Context, in *PcapRequest, opts ...grpc.CallOption) (PacketCapture_PcapClient, error)
+	Pcap(ctx context.Context, in *PcapRequest, opts ...grpc.CallOption) (grpc.ServerStreamingClient[PcapResponse], error)
 }
 
 type packetCaptureClient struct {
@@ -33,12 +37,13 @@ func NewPacketCaptureClient(cc grpc.ClientConnInterface) PacketCaptureClient {
 	return &packetCaptureClient{cc}
 }
 
-func (c *packetCaptureClient) Pcap(ctx context.Context, in *PcapRequest, opts ...grpc.CallOption) (PacketCapture_PcapClient, error) {
-	stream, err := c.cc.NewStream(ctx, &PacketCapture_ServiceDesc.Streams[0], "/gnoi.pcap.PacketCapture/Pcap", opts...)
+func (c *packetCaptureClient) Pcap(ctx context.Context, in *PcapRequest, opts ...grpc.CallOption) (grpc.ServerStreamingClient[PcapResponse], error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	stream, err := c.cc.NewStream(ctx, &PacketCapture_ServiceDesc.Streams[0], PacketCapture_Pcap_FullMethodName, cOpts...)
 	if err != nil {
 		return nil, err
 	}
-	x := &packetCapturePcapClient{stream}
+	x := &grpc.GenericClientStream[PcapRequest, PcapResponse]{ClientStream: stream}
 	if err := x.ClientStream.SendMsg(in); err != nil {
 		return nil, err
 	}
@@ -48,39 +53,27 @@ func (c *packetCaptureClient) Pcap(ctx context.Context, in *PcapRequest, opts ..
 	return x, nil
 }
 
-type PacketCapture_PcapClient interface {
-	Recv() (*PcapResponse, error)
-	grpc.ClientStream
-}
-
-type packetCapturePcapClient struct {
-	grpc.ClientStream
-}
-
-func (x *packetCapturePcapClient) Recv() (*PcapResponse, error) {
-	m := new(PcapResponse)
-	if err := x.ClientStream.RecvMsg(m); err != nil {
-		return nil, err
-	}
-	return m, nil
-}
+// This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name.
+type PacketCapture_PcapClient = grpc.ServerStreamingClient[PcapResponse]
 
 // PacketCaptureServer is the server API for PacketCapture service.
-// All implementations must embed UnimplementedPacketCaptureServer
-// for forward compatibility
+// All implementations should embed UnimplementedPacketCaptureServer
+// for forward compatibility.
 type PacketCaptureServer interface {
-	Pcap(*PcapRequest, PacketCapture_PcapServer) error
-	mustEmbedUnimplementedPacketCaptureServer()
+	Pcap(*PcapRequest, grpc.ServerStreamingServer[PcapResponse]) error
 }
 
-// UnimplementedPacketCaptureServer must be embedded to have forward compatible implementations.
-type UnimplementedPacketCaptureServer struct {
-}
+// UnimplementedPacketCaptureServer should be embedded to have
+// forward compatible implementations.
+//
+// NOTE: this should be embedded by value instead of pointer to avoid a nil
+// pointer dereference when methods are called.
+type UnimplementedPacketCaptureServer struct{}
 
-func (UnimplementedPacketCaptureServer) Pcap(*PcapRequest, PacketCapture_PcapServer) error {
+func (UnimplementedPacketCaptureServer) Pcap(*PcapRequest, grpc.ServerStreamingServer[PcapResponse]) error {
 	return status.Errorf(codes.Unimplemented, "method Pcap not implemented")
 }
-func (UnimplementedPacketCaptureServer) mustEmbedUnimplementedPacketCaptureServer() {}
+func (UnimplementedPacketCaptureServer) testEmbeddedByValue() {}
 
 // UnsafePacketCaptureServer may be embedded to opt out of forward compatibility for this service.
 // Use of this interface is not recommended, as added methods to PacketCaptureServer will
@@ -90,6 +83,13 @@ type UnsafePacketCaptureServer interface {
 }
 
 func RegisterPacketCaptureServer(s grpc.ServiceRegistrar, srv PacketCaptureServer) {
+	// If the following call pancis, it indicates UnimplementedPacketCaptureServer was
+	// embedded by pointer and is nil.  This will cause panics if an
+	// unimplemented method is ever invoked, so we test this at initialization
+	// time to prevent it from happening at runtime later due to I/O.
+	if t, ok := srv.(interface{ testEmbeddedByValue() }); ok {
+		t.testEmbeddedByValue()
+	}
 	s.RegisterService(&PacketCapture_ServiceDesc, srv)
 }
 
@@ -98,21 +98,11 @@ func _PacketCapture_Pcap_Handler(srv interface{}, stream grpc.ServerStream) erro
 	if err := stream.RecvMsg(m); err != nil {
 		return err
 	}
-	return srv.(PacketCaptureServer).Pcap(m, &packetCapturePcapServer{stream})
+	return srv.(PacketCaptureServer).Pcap(m, &grpc.GenericServerStream[PcapRequest, PcapResponse]{ServerStream: stream})
 }
 
-type PacketCapture_PcapServer interface {
-	Send(*PcapResponse) error
-	grpc.ServerStream
-}
-
-type packetCapturePcapServer struct {
-	grpc.ServerStream
-}
-
-func (x *packetCapturePcapServer) Send(m *PcapResponse) error {
-	return x.ServerStream.SendMsg(m)
-}
+// This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name.
+type PacketCapture_PcapServer = grpc.ServerStreamingServer[PcapResponse]
 
 // PacketCapture_ServiceDesc is the grpc.ServiceDesc for PacketCapture service.
 // It's only intended for direct use with grpc.RegisterService,
@@ -128,5 +118,5 @@ var PacketCapture_ServiceDesc = grpc.ServiceDesc{
 			ServerStreams: true,
 		},
 	},
-	Metadata: "packet_capture/packet_capture.proto",
+	Metadata: "github.com/openconfig/gnoi/packet_capture/packet_capture.proto",
 }
diff --git a/packet_link_qualification/BUILD.bazel b/packet_link_qualification/BUILD.bazel
index 592cac30..75ecdee8 100644
--- a/packet_link_qualification/BUILD.bazel
+++ b/packet_link_qualification/BUILD.bazel
@@ -1,8 +1,8 @@
-load("@rules_proto//proto:defs.bzl", "proto_library")
+load("@com_github_grpc_grpc//bazel:cc_grpc_library.bzl", "cc_grpc_library")
+load("@com_google_protobuf//bazel:cc_proto_library.bzl", "cc_proto_library")
+load("@com_google_protobuf//bazel:proto_library.bzl", "proto_library")
 load("@io_bazel_rules_go//go:def.bzl", "go_library")
 load("@io_bazel_rules_go//proto:def.bzl", "go_proto_library")
-load("@com_github_grpc_grpc//bazel:cc_grpc_library.bzl", "cc_grpc_library")
-load("//:common.bzl", "use_new_compilers")
 
 # Copyright 2024 Google LLC
 #
@@ -23,32 +23,31 @@ package(
     licenses = ["notice"],
 )
 
-use_new_compilers()
-
 proto_library(
     name = "linkqual_proto",
     srcs = ["packet_link_qualification.proto"],
+    import_prefix = "github.com/openconfig/gnoi",
     visibility = ["//visibility:public"],
     deps = [
         "//types:types_proto",
+        "@com_google_googleapis//google/rpc:status_proto",
         "@com_google_protobuf//:duration_proto",
         "@com_google_protobuf//:timestamp_proto",
-        "@go_googleapis//google/rpc:status_proto",
     ],
 )
 
 go_proto_library(
     name = "linkqual_go_proto",
     compilers = [
-        "go_protoc_gen_go",
-        "go_protoc_gen_go_grpc",
+        "@io_bazel_rules_go//proto:go_grpc_v2",
+        "@io_bazel_rules_go//proto:go_proto",
     ],
     importpath = "github.com/openconfig/gnoi/packet_link_qualification",
     proto = ":linkqual_proto",
     visibility = ["//visibility:public"],
     deps = [
         "//types",
-        "@go_googleapis//google/rpc:status_go_proto",
+        "@org_golang_google_genproto_googleapis_rpc//status",
     ],
 )
 
diff --git a/packet_link_qualification/packet_link_qualification.pb.go b/packet_link_qualification/packet_link_qualification.pb.go
index 9433476c..dd6e762c 100644
--- a/packet_link_qualification/packet_link_qualification.pb.go
+++ b/packet_link_qualification/packet_link_qualification.pb.go
@@ -1,8 +1,8 @@
 // Code generated by protoc-gen-go. DO NOT EDIT.
 // versions:
-// 	protoc-gen-go v1.30.0
-// 	protoc        v3.21.10
-// source: packet_link_qualification/packet_link_qualification.proto
+// 	protoc-gen-go v1.36.2
+// 	protoc        v5.29.3
+// source: github.com/openconfig/gnoi/packet_link_qualification/packet_link_qualification.proto
 
 package linkqual
 
@@ -69,11 +69,11 @@ func (x QualificationState) String() string {
 }
 
 func (QualificationState) Descriptor() protoreflect.EnumDescriptor {
-	return file_packet_link_qualification_packet_link_qualification_proto_enumTypes[0].Descriptor()
+	return file_github_com_openconfig_gnoi_packet_link_qualification_packet_link_qualification_proto_enumTypes[0].Descriptor()
 }
 
 func (QualificationState) Type() protoreflect.EnumType {
-	return &file_packet_link_qualification_packet_link_qualification_proto_enumTypes[0]
+	return &file_github_com_openconfig_gnoi_packet_link_qualification_packet_link_qualification_proto_enumTypes[0]
 }
 
 func (x QualificationState) Number() protoreflect.EnumNumber {
@@ -82,7 +82,7 @@ func (x QualificationState) Number() protoreflect.EnumNumber {
 
 // Deprecated: Use QualificationState.Descriptor instead.
 func (QualificationState) EnumDescriptor() ([]byte, []int) {
-	return file_packet_link_qualification_packet_link_qualification_proto_rawDescGZIP(), []int{0}
+	return file_github_com_openconfig_gnoi_packet_link_qualification_packet_link_qualification_proto_rawDescGZIP(), []int{0}
 }
 
 type PacketInjectorLoopbackMode int32
@@ -118,11 +118,11 @@ func (x PacketInjectorLoopbackMode) String() string {
 }
 
 func (PacketInjectorLoopbackMode) Descriptor() protoreflect.EnumDescriptor {
-	return file_packet_link_qualification_packet_link_qualification_proto_enumTypes[1].Descriptor()
+	return file_github_com_openconfig_gnoi_packet_link_qualification_packet_link_qualification_proto_enumTypes[1].Descriptor()
 }
 
 func (PacketInjectorLoopbackMode) Type() protoreflect.EnumType {
-	return &file_packet_link_qualification_packet_link_qualification_proto_enumTypes[1]
+	return &file_github_com_openconfig_gnoi_packet_link_qualification_packet_link_qualification_proto_enumTypes[1]
 }
 
 func (x PacketInjectorLoopbackMode) Number() protoreflect.EnumNumber {
@@ -131,7 +131,7 @@ func (x PacketInjectorLoopbackMode) Number() protoreflect.EnumNumber {
 
 // Deprecated: Use PacketInjectorLoopbackMode.Descriptor instead.
 func (PacketInjectorLoopbackMode) EnumDescriptor() ([]byte, []int) {
-	return file_packet_link_qualification_packet_link_qualification_proto_rawDescGZIP(), []int{1}
+	return file_github_com_openconfig_gnoi_packet_link_qualification_packet_link_qualification_proto_rawDescGZIP(), []int{1}
 }
 
 type HeaderMatchField int32
@@ -170,11 +170,11 @@ func (x HeaderMatchField) String() string {
 }
 
 func (HeaderMatchField) Descriptor() protoreflect.EnumDescriptor {
-	return file_packet_link_qualification_packet_link_qualification_proto_enumTypes[2].Descriptor()
+	return file_github_com_openconfig_gnoi_packet_link_qualification_packet_link_qualification_proto_enumTypes[2].Descriptor()
 }
 
 func (HeaderMatchField) Type() protoreflect.EnumType {
-	return &file_packet_link_qualification_packet_link_qualification_proto_enumTypes[2]
+	return &file_github_com_openconfig_gnoi_packet_link_qualification_packet_link_qualification_proto_enumTypes[2]
 }
 
 func (x HeaderMatchField) Number() protoreflect.EnumNumber {
@@ -183,24 +183,21 @@ func (x HeaderMatchField) Number() protoreflect.EnumNumber {
 
 // Deprecated: Use HeaderMatchField.Descriptor instead.
 func (HeaderMatchField) EnumDescriptor() ([]byte, []int) {
-	return file_packet_link_qualification_packet_link_qualification_proto_rawDescGZIP(), []int{2}
+	return file_github_com_openconfig_gnoi_packet_link_qualification_packet_link_qualification_proto_rawDescGZIP(), []int{2}
 }
 
 type CreateRequest struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState        `protogen:"open.v1"`
+	Interfaces    []*QualificationConfiguration `protobuf:"bytes,1,rep,name=interfaces,proto3" json:"interfaces,omitempty"`
 	unknownFields protoimpl.UnknownFields
-
-	Interfaces []*QualificationConfiguration `protobuf:"bytes,1,rep,name=interfaces,proto3" json:"interfaces,omitempty"`
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *CreateRequest) Reset() {
 	*x = CreateRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_packet_link_qualification_packet_link_qualification_proto_msgTypes[0]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_packet_link_qualification_packet_link_qualification_proto_msgTypes[0]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *CreateRequest) String() string {
@@ -210,8 +207,8 @@ func (x *CreateRequest) String() string {
 func (*CreateRequest) ProtoMessage() {}
 
 func (x *CreateRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_packet_link_qualification_packet_link_qualification_proto_msgTypes[0]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_packet_link_qualification_packet_link_qualification_proto_msgTypes[0]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -223,7 +220,7 @@ func (x *CreateRequest) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use CreateRequest.ProtoReflect.Descriptor instead.
 func (*CreateRequest) Descriptor() ([]byte, []int) {
-	return file_packet_link_qualification_packet_link_qualification_proto_rawDescGZIP(), []int{0}
+	return file_github_com_openconfig_gnoi_packet_link_qualification_packet_link_qualification_proto_rawDescGZIP(), []int{0}
 }
 
 func (x *CreateRequest) GetInterfaces() []*QualificationConfiguration {
@@ -234,20 +231,17 @@ func (x *CreateRequest) GetInterfaces() []*QualificationConfiguration {
 }
 
 type CreateResponse struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState    `protogen:"open.v1"`
+	Status        map[string]*status.Status `protobuf:"bytes,2,rep,name=status,proto3" json:"status,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
 	unknownFields protoimpl.UnknownFields
-
-	Status map[string]*status.Status `protobuf:"bytes,2,rep,name=status,proto3" json:"status,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *CreateResponse) Reset() {
 	*x = CreateResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_packet_link_qualification_packet_link_qualification_proto_msgTypes[1]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_packet_link_qualification_packet_link_qualification_proto_msgTypes[1]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *CreateResponse) String() string {
@@ -257,8 +251,8 @@ func (x *CreateResponse) String() string {
 func (*CreateResponse) ProtoMessage() {}
 
 func (x *CreateResponse) ProtoReflect() protoreflect.Message {
-	mi := &file_packet_link_qualification_packet_link_qualification_proto_msgTypes[1]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_packet_link_qualification_packet_link_qualification_proto_msgTypes[1]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -270,7 +264,7 @@ func (x *CreateResponse) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use CreateResponse.ProtoReflect.Descriptor instead.
 func (*CreateResponse) Descriptor() ([]byte, []int) {
-	return file_packet_link_qualification_packet_link_qualification_proto_rawDescGZIP(), []int{1}
+	return file_github_com_openconfig_gnoi_packet_link_qualification_packet_link_qualification_proto_rawDescGZIP(), []int{1}
 }
 
 func (x *CreateResponse) GetStatus() map[string]*status.Status {
@@ -281,22 +275,19 @@ func (x *CreateResponse) GetStatus() map[string]*status.Status {
 }
 
 type NTPSyncedTiming struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	StartTime     *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"`
+	EndTime       *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"`
+	TeardownTime  *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=teardown_time,json=teardownTime,proto3" json:"teardown_time,omitempty"`
 	unknownFields protoimpl.UnknownFields
-
-	StartTime    *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"`
-	EndTime      *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"`
-	TeardownTime *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=teardown_time,json=teardownTime,proto3" json:"teardown_time,omitempty"`
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *NTPSyncedTiming) Reset() {
 	*x = NTPSyncedTiming{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_packet_link_qualification_packet_link_qualification_proto_msgTypes[2]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_packet_link_qualification_packet_link_qualification_proto_msgTypes[2]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *NTPSyncedTiming) String() string {
@@ -306,8 +297,8 @@ func (x *NTPSyncedTiming) String() string {
 func (*NTPSyncedTiming) ProtoMessage() {}
 
 func (x *NTPSyncedTiming) ProtoReflect() protoreflect.Message {
-	mi := &file_packet_link_qualification_packet_link_qualification_proto_msgTypes[2]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_packet_link_qualification_packet_link_qualification_proto_msgTypes[2]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -319,7 +310,7 @@ func (x *NTPSyncedTiming) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use NTPSyncedTiming.ProtoReflect.Descriptor instead.
 func (*NTPSyncedTiming) Descriptor() ([]byte, []int) {
-	return file_packet_link_qualification_packet_link_qualification_proto_rawDescGZIP(), []int{2}
+	return file_github_com_openconfig_gnoi_packet_link_qualification_packet_link_qualification_proto_rawDescGZIP(), []int{2}
 }
 
 func (x *NTPSyncedTiming) GetStartTime() *timestamppb.Timestamp {
@@ -344,24 +335,21 @@ func (x *NTPSyncedTiming) GetTeardownTime() *timestamppb.Timestamp {
 }
 
 type RPCSyncedTiming struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	PreSyncDuration  *durationpb.Duration `protobuf:"bytes,1,opt,name=pre_sync_duration,json=preSyncDuration,proto3" json:"pre_sync_duration,omitempty"`
-	SetupDuration    *durationpb.Duration `protobuf:"bytes,2,opt,name=setup_duration,json=setupDuration,proto3" json:"setup_duration,omitempty"`
-	Duration         *durationpb.Duration `protobuf:"bytes,3,opt,name=duration,proto3" json:"duration,omitempty"`
-	PostSyncDuration *durationpb.Duration `protobuf:"bytes,4,opt,name=post_sync_duration,json=postSyncDuration,proto3" json:"post_sync_duration,omitempty"`
-	TeardownDuration *durationpb.Duration `protobuf:"bytes,5,opt,name=teardown_duration,json=teardownDuration,proto3" json:"teardown_duration,omitempty"`
+	state            protoimpl.MessageState `protogen:"open.v1"`
+	PreSyncDuration  *durationpb.Duration   `protobuf:"bytes,1,opt,name=pre_sync_duration,json=preSyncDuration,proto3" json:"pre_sync_duration,omitempty"`
+	SetupDuration    *durationpb.Duration   `protobuf:"bytes,2,opt,name=setup_duration,json=setupDuration,proto3" json:"setup_duration,omitempty"`
+	Duration         *durationpb.Duration   `protobuf:"bytes,3,opt,name=duration,proto3" json:"duration,omitempty"`
+	PostSyncDuration *durationpb.Duration   `protobuf:"bytes,4,opt,name=post_sync_duration,json=postSyncDuration,proto3" json:"post_sync_duration,omitempty"`
+	TeardownDuration *durationpb.Duration   `protobuf:"bytes,5,opt,name=teardown_duration,json=teardownDuration,proto3" json:"teardown_duration,omitempty"`
+	unknownFields    protoimpl.UnknownFields
+	sizeCache        protoimpl.SizeCache
 }
 
 func (x *RPCSyncedTiming) Reset() {
 	*x = RPCSyncedTiming{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_packet_link_qualification_packet_link_qualification_proto_msgTypes[3]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_packet_link_qualification_packet_link_qualification_proto_msgTypes[3]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *RPCSyncedTiming) String() string {
@@ -371,8 +359,8 @@ func (x *RPCSyncedTiming) String() string {
 func (*RPCSyncedTiming) ProtoMessage() {}
 
 func (x *RPCSyncedTiming) ProtoReflect() protoreflect.Message {
-	mi := &file_packet_link_qualification_packet_link_qualification_proto_msgTypes[3]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_packet_link_qualification_packet_link_qualification_proto_msgTypes[3]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -384,7 +372,7 @@ func (x *RPCSyncedTiming) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use RPCSyncedTiming.ProtoReflect.Descriptor instead.
 func (*RPCSyncedTiming) Descriptor() ([]byte, []int) {
-	return file_packet_link_qualification_packet_link_qualification_proto_rawDescGZIP(), []int{3}
+	return file_github_com_openconfig_gnoi_packet_link_qualification_packet_link_qualification_proto_rawDescGZIP(), []int{3}
 }
 
 func (x *RPCSyncedTiming) GetPreSyncDuration() *durationpb.Duration {
@@ -423,33 +411,30 @@ func (x *RPCSyncedTiming) GetTeardownDuration() *durationpb.Duration {
 }
 
 type QualificationConfiguration struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	Id            string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
-	InterfaceName string `protobuf:"bytes,2,opt,name=interface_name,json=interfaceName,proto3" json:"interface_name,omitempty"`
-	// Types that are assignable to Timing:
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Id            string                 `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
+	InterfaceName string                 `protobuf:"bytes,2,opt,name=interface_name,json=interfaceName,proto3" json:"interface_name,omitempty"`
+	// Types that are valid to be assigned to Timing:
 	//
 	//	*QualificationConfiguration_Ntp
 	//	*QualificationConfiguration_Rpc
 	Timing isQualificationConfiguration_Timing `protobuf_oneof:"timing"`
-	// Types that are assignable to EndpointType:
+	// Types that are valid to be assigned to EndpointType:
 	//
 	//	*QualificationConfiguration_PacketGenerator
 	//	*QualificationConfiguration_PacketInjector
 	//	*QualificationConfiguration_PmdLoopback
 	//	*QualificationConfiguration_AsicLoopback
-	EndpointType isQualificationConfiguration_EndpointType `protobuf_oneof:"endpoint_type"`
+	EndpointType  isQualificationConfiguration_EndpointType `protobuf_oneof:"endpoint_type"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *QualificationConfiguration) Reset() {
 	*x = QualificationConfiguration{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_packet_link_qualification_packet_link_qualification_proto_msgTypes[4]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_packet_link_qualification_packet_link_qualification_proto_msgTypes[4]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *QualificationConfiguration) String() string {
@@ -459,8 +444,8 @@ func (x *QualificationConfiguration) String() string {
 func (*QualificationConfiguration) ProtoMessage() {}
 
 func (x *QualificationConfiguration) ProtoReflect() protoreflect.Message {
-	mi := &file_packet_link_qualification_packet_link_qualification_proto_msgTypes[4]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_packet_link_qualification_packet_link_qualification_proto_msgTypes[4]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -472,7 +457,7 @@ func (x *QualificationConfiguration) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use QualificationConfiguration.ProtoReflect.Descriptor instead.
 func (*QualificationConfiguration) Descriptor() ([]byte, []int) {
-	return file_packet_link_qualification_packet_link_qualification_proto_rawDescGZIP(), []int{4}
+	return file_github_com_openconfig_gnoi_packet_link_qualification_packet_link_qualification_proto_rawDescGZIP(), []int{4}
 }
 
 func (x *QualificationConfiguration) GetId() string {
@@ -489,58 +474,70 @@ func (x *QualificationConfiguration) GetInterfaceName() string {
 	return ""
 }
 
-func (m *QualificationConfiguration) GetTiming() isQualificationConfiguration_Timing {
-	if m != nil {
-		return m.Timing
+func (x *QualificationConfiguration) GetTiming() isQualificationConfiguration_Timing {
+	if x != nil {
+		return x.Timing
 	}
 	return nil
 }
 
 func (x *QualificationConfiguration) GetNtp() *NTPSyncedTiming {
-	if x, ok := x.GetTiming().(*QualificationConfiguration_Ntp); ok {
-		return x.Ntp
+	if x != nil {
+		if x, ok := x.Timing.(*QualificationConfiguration_Ntp); ok {
+			return x.Ntp
+		}
 	}
 	return nil
 }
 
 func (x *QualificationConfiguration) GetRpc() *RPCSyncedTiming {
-	if x, ok := x.GetTiming().(*QualificationConfiguration_Rpc); ok {
-		return x.Rpc
+	if x != nil {
+		if x, ok := x.Timing.(*QualificationConfiguration_Rpc); ok {
+			return x.Rpc
+		}
 	}
 	return nil
 }
 
-func (m *QualificationConfiguration) GetEndpointType() isQualificationConfiguration_EndpointType {
-	if m != nil {
-		return m.EndpointType
+func (x *QualificationConfiguration) GetEndpointType() isQualificationConfiguration_EndpointType {
+	if x != nil {
+		return x.EndpointType
 	}
 	return nil
 }
 
 func (x *QualificationConfiguration) GetPacketGenerator() *PacketGeneratorConfiguration {
-	if x, ok := x.GetEndpointType().(*QualificationConfiguration_PacketGenerator); ok {
-		return x.PacketGenerator
+	if x != nil {
+		if x, ok := x.EndpointType.(*QualificationConfiguration_PacketGenerator); ok {
+			return x.PacketGenerator
+		}
 	}
 	return nil
 }
 
 func (x *QualificationConfiguration) GetPacketInjector() *PacketInjectorConfiguration {
-	if x, ok := x.GetEndpointType().(*QualificationConfiguration_PacketInjector); ok {
-		return x.PacketInjector
+	if x != nil {
+		if x, ok := x.EndpointType.(*QualificationConfiguration_PacketInjector); ok {
+			return x.PacketInjector
+		}
 	}
 	return nil
 }
 
 func (x *QualificationConfiguration) GetPmdLoopback() *PmdLoopbackConfiguration {
-	if x, ok := x.GetEndpointType().(*QualificationConfiguration_PmdLoopback); ok {
-		return x.PmdLoopback
+	if x != nil {
+		if x, ok := x.EndpointType.(*QualificationConfiguration_PmdLoopback); ok {
+			return x.PmdLoopback
+		}
 	}
 	return nil
 }
 
 func (x *QualificationConfiguration) GetAsicLoopback() *AsicLoopbackConfiguration {
-	if x, ok := x.GetEndpointType().(*QualificationConfiguration_AsicLoopback); ok {
-		return x.AsicLoopback
+	if x != nil {
+		if x, ok := x.EndpointType.(*QualificationConfiguration_AsicLoopback); ok {
+			return x.AsicLoopback
+		}
 	}
 	return nil
 }
@@ -590,21 +587,18 @@ func (*QualificationConfiguration_PmdLoopback) isQualificationConfiguration_Endp
 func (*QualificationConfiguration_AsicLoopback) isQualificationConfiguration_EndpointType() {}
 
 type PacketGeneratorConfiguration struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	PacketRate    uint64                 `protobuf:"varint,1,opt,name=packet_rate,json=packetRate,proto3" json:"packet_rate,omitempty"`
+	PacketSize    uint32                 `protobuf:"varint,2,opt,name=packet_size,json=packetSize,proto3" json:"packet_size,omitempty"`
 	unknownFields protoimpl.UnknownFields
-
-	PacketRate uint64 `protobuf:"varint,1,opt,name=packet_rate,json=packetRate,proto3" json:"packet_rate,omitempty"`
-	PacketSize uint32 `protobuf:"varint,2,opt,name=packet_size,json=packetSize,proto3" json:"packet_size,omitempty"`
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *PacketGeneratorConfiguration) Reset() {
 	*x = PacketGeneratorConfiguration{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_packet_link_qualification_packet_link_qualification_proto_msgTypes[5]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_packet_link_qualification_packet_link_qualification_proto_msgTypes[5]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *PacketGeneratorConfiguration) String() string {
@@ -614,8 +608,8 @@ func (x *PacketGeneratorConfiguration) String() string {
 func (*PacketGeneratorConfiguration) ProtoMessage() {}
 
 func (x *PacketGeneratorConfiguration) ProtoReflect() protoreflect.Message {
-	mi := &file_packet_link_qualification_packet_link_qualification_proto_msgTypes[5]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_packet_link_qualification_packet_link_qualification_proto_msgTypes[5]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -627,7 +621,7 @@ func (x *PacketGeneratorConfiguration) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use PacketGeneratorConfiguration.ProtoReflect.Descriptor instead.
 func (*PacketGeneratorConfiguration) Descriptor() ([]byte, []int) {
-	return file_packet_link_qualification_packet_link_qualification_proto_rawDescGZIP(), []int{5}
+	return file_github_com_openconfig_gnoi_packet_link_qualification_packet_link_qualification_proto_rawDescGZIP(), []int{5}
 }
 
 func (x *PacketGeneratorConfiguration) GetPacketRate() uint64 {
@@ -645,26 +639,23 @@ func (x *PacketGeneratorConfiguration) GetPacketSize() uint32 {
 }
 
 type PacketInjectorConfiguration struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	PacketCount uint32 `protobuf:"varint,1,opt,name=packet_count,json=packetCount,proto3" json:"packet_count,omitempty"`
-	PacketSize  uint32 `protobuf:"varint,2,opt,name=packet_size,json=packetSize,proto3" json:"packet_size,omitempty"`
-	// Types that are assignable to LoopbackMode:
+	state       protoimpl.MessageState `protogen:"open.v1"`
+	PacketCount uint32                 `protobuf:"varint,1,opt,name=packet_count,json=packetCount,proto3" json:"packet_count,omitempty"`
+	PacketSize  uint32                 `protobuf:"varint,2,opt,name=packet_size,json=packetSize,proto3" json:"packet_size,omitempty"`
+	// Types that are valid to be assigned to LoopbackMode:
 	//
 	//	*PacketInjectorConfiguration_PmdLoopback
 	//	*PacketInjectorConfiguration_AsicLoopback
-	LoopbackMode isPacketInjectorConfiguration_LoopbackMode `protobuf_oneof:"loopback_mode"`
+	LoopbackMode  isPacketInjectorConfiguration_LoopbackMode `protobuf_oneof:"loopback_mode"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *PacketInjectorConfiguration) Reset() {
 	*x = PacketInjectorConfiguration{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_packet_link_qualification_packet_link_qualification_proto_msgTypes[6]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_packet_link_qualification_packet_link_qualification_proto_msgTypes[6]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *PacketInjectorConfiguration) String() string {
@@ -674,8 +665,8 @@ func (x *PacketInjectorConfiguration) String() string {
 func (*PacketInjectorConfiguration) ProtoMessage() {}
 
 func (x *PacketInjectorConfiguration) ProtoReflect() protoreflect.Message {
-	mi := &file_packet_link_qualification_packet_link_qualification_proto_msgTypes[6]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_packet_link_qualification_packet_link_qualification_proto_msgTypes[6]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -687,7 +678,7 @@ func (x *PacketInjectorConfiguration) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use PacketInjectorConfiguration.ProtoReflect.Descriptor instead.
 func (*PacketInjectorConfiguration) Descriptor() ([]byte, []int) {
-	return file_packet_link_qualification_packet_link_qualification_proto_rawDescGZIP(), []int{6}
+	return file_github_com_openconfig_gnoi_packet_link_qualification_packet_link_qualification_proto_rawDescGZIP(), []int{6}
 }
 
 func (x *PacketInjectorConfiguration) GetPacketCount() uint32 {
@@ -704,23 +695,27 @@ func (x *PacketInjectorConfiguration) GetPacketSize() uint32 {
 	return 0
 }
 
-func (m *PacketInjectorConfiguration) GetLoopbackMode() isPacketInjectorConfiguration_LoopbackMode {
-	if m != nil {
-		return m.LoopbackMode
+func (x *PacketInjectorConfiguration) GetLoopbackMode() isPacketInjectorConfiguration_LoopbackMode {
+	if x != nil {
+		return x.LoopbackMode
 	}
 	return nil
 }
 
 func (x *PacketInjectorConfiguration) GetPmdLoopback() *PmdLoopbackConfiguration {
-	if x, ok := x.GetLoopbackMode().(*PacketInjectorConfiguration_PmdLoopback); ok {
-		return x.PmdLoopback
+	if x != nil {
+		if x, ok := x.LoopbackMode.(*PacketInjectorConfiguration_PmdLoopback); ok {
+			return x.PmdLoopback
+		}
 	}
 	return nil
 }
 
 func (x *PacketInjectorConfiguration) GetAsicLoopback() *AsicLoopbackConfiguration {
-	if x, ok := x.GetLoopbackMode().(*PacketInjectorConfiguration_AsicLoopback); ok {
-		return x.AsicLoopback
+	if x != nil {
+		if x, ok := x.LoopbackMode.(*PacketInjectorConfiguration_AsicLoopback); ok {
+			return x.AsicLoopback
+		}
 	}
 	return nil
 }
@@ -742,18 +737,16 @@ func (*PacketInjectorConfiguration_PmdLoopback) isPacketInjectorConfiguration_Lo
 func (*PacketInjectorConfiguration_AsicLoopback) isPacketInjectorConfiguration_LoopbackMode() {}
 
 type PmdLoopbackConfiguration struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState `protogen:"open.v1"`
 	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *PmdLoopbackConfiguration) Reset() {
 	*x = PmdLoopbackConfiguration{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_packet_link_qualification_packet_link_qualification_proto_msgTypes[7]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_packet_link_qualification_packet_link_qualification_proto_msgTypes[7]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *PmdLoopbackConfiguration) String() string {
@@ -763,8 +756,8 @@ func (x *PmdLoopbackConfiguration) String() string {
 func (*PmdLoopbackConfiguration) ProtoMessage() {}
 
 func (x *PmdLoopbackConfiguration) ProtoReflect() protoreflect.Message {
-	mi := &file_packet_link_qualification_packet_link_qualification_proto_msgTypes[7]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_packet_link_qualification_packet_link_qualification_proto_msgTypes[7]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -776,22 +769,20 @@ func (x *PmdLoopbackConfiguration) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use PmdLoopbackConfiguration.ProtoReflect.Descriptor instead.
 func (*PmdLoopbackConfiguration) Descriptor() ([]byte, []int) {
-	return file_packet_link_qualification_packet_link_qualification_proto_rawDescGZIP(), []int{7}
+	return file_github_com_openconfig_gnoi_packet_link_qualification_packet_link_qualification_proto_rawDescGZIP(), []int{7}
 }
 
 type AsicLoopbackConfiguration struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState `protogen:"open.v1"`
 	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *AsicLoopbackConfiguration) Reset() {
 	*x = AsicLoopbackConfiguration{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_packet_link_qualification_packet_link_qualification_proto_msgTypes[8]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_packet_link_qualification_packet_link_qualification_proto_msgTypes[8]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *AsicLoopbackConfiguration) String() string {
@@ -801,8 +792,8 @@ func (x *AsicLoopbackConfiguration) String() string {
 func (*AsicLoopbackConfiguration) ProtoMessage() {}
 
 func (x *AsicLoopbackConfiguration) ProtoReflect() protoreflect.Message {
-	mi := &file_packet_link_qualification_packet_link_qualification_proto_msgTypes[8]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_packet_link_qualification_packet_link_qualification_proto_msgTypes[8]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -814,24 +805,21 @@ func (x *AsicLoopbackConfiguration) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use AsicLoopbackConfiguration.ProtoReflect.Descriptor instead.
 func (*AsicLoopbackConfiguration) Descriptor() ([]byte, []int) {
-	return file_packet_link_qualification_packet_link_qualification_proto_rawDescGZIP(), []int{8}
+	return file_github_com_openconfig_gnoi_packet_link_qualification_packet_link_qualification_proto_rawDescGZIP(), []int{8}
 }
 
 type GetRequest struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Ids           []string               `protobuf:"bytes,1,rep,name=ids,proto3" json:"ids,omitempty"`
 	unknownFields protoimpl.UnknownFields
-
-	Ids []string `protobuf:"bytes,1,rep,name=ids,proto3" json:"ids,omitempty"`
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *GetRequest) Reset() {
 	*x = GetRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_packet_link_qualification_packet_link_qualification_proto_msgTypes[9]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_packet_link_qualification_packet_link_qualification_proto_msgTypes[9]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *GetRequest) String() string {
@@ -841,8 +829,8 @@ func (x *GetRequest) String() string {
 func (*GetRequest) ProtoMessage() {}
 
 func (x *GetRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_packet_link_qualification_packet_link_qualification_proto_msgTypes[9]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_packet_link_qualification_packet_link_qualification_proto_msgTypes[9]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -854,7 +842,7 @@ func (x *GetRequest) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use GetRequest.ProtoReflect.Descriptor instead.
 func (*GetRequest) Descriptor() ([]byte, []int) {
-	return file_packet_link_qualification_packet_link_qualification_proto_rawDescGZIP(), []int{9}
+	return file_github_com_openconfig_gnoi_packet_link_qualification_packet_link_qualification_proto_rawDescGZIP(), []int{9}
 }
 
 func (x *GetRequest) GetIds() []string {
@@ -865,20 +853,17 @@ func (x *GetRequest) GetIds() []string {
 }
 
 type GetResponse struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState          `protogen:"open.v1"`
+	Results       map[string]*QualificationResult `protobuf:"bytes,1,rep,name=results,proto3" json:"results,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
 	unknownFields protoimpl.UnknownFields
-
-	Results map[string]*QualificationResult `protobuf:"bytes,1,rep,name=results,proto3" json:"results,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *GetResponse) Reset() {
 	*x = GetResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_packet_link_qualification_packet_link_qualification_proto_msgTypes[10]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_packet_link_qualification_packet_link_qualification_proto_msgTypes[10]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *GetResponse) String() string {
@@ -888,8 +873,8 @@ func (x *GetResponse) String() string {
 func (*GetResponse) ProtoMessage() {}
 
 func (x *GetResponse) ProtoReflect() protoreflect.Message {
-	mi := &file_packet_link_qualification_packet_link_qualification_proto_msgTypes[10]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_packet_link_qualification_packet_link_qualification_proto_msgTypes[10]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -901,7 +886,7 @@ func (x *GetResponse) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use GetResponse.ProtoReflect.Descriptor instead.
 func (*GetResponse) Descriptor() ([]byte, []int) {
-	return file_packet_link_qualification_packet_link_qualification_proto_rawDescGZIP(), []int{10}
+	return file_github_com_openconfig_gnoi_packet_link_qualification_packet_link_qualification_proto_rawDescGZIP(), []int{10}
 }
 
 func (x *GetResponse) GetResults() map[string]*QualificationResult {
@@ -912,10 +897,7 @@ func (x *GetResponse) GetResults() map[string]*QualificationResult {
 }
 
 type QualificationResult struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
+	state                           protoimpl.MessageState `protogen:"open.v1"`
 	Id                              string                 `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
 	InterfaceName                   string                 `protobuf:"bytes,2,opt,name=interface_name,json=interfaceName,proto3" json:"interface_name,omitempty"`
 	State                           QualificationState     `protobuf:"varint,3,opt,name=state,proto3,enum=gnoi.packet_link_qualification.QualificationState" json:"state,omitempty"`
@@ -928,15 +910,15 @@ type QualificationResult struct {
 	ExpectedRateBytesPerSecond      uint64                 `protobuf:"varint,10,opt,name=expected_rate_bytes_per_second,json=expectedRateBytesPerSecond,proto3" json:"expected_rate_bytes_per_second,omitempty"`
 	QualificationRateBytesPerSecond uint64                 `protobuf:"varint,11,opt,name=qualification_rate_bytes_per_second,json=qualificationRateBytesPerSecond,proto3" json:"qualification_rate_bytes_per_second,omitempty"`
 	Status                          *status.Status         `protobuf:"bytes,12,opt,name=status,proto3" json:"status,omitempty"`
+	unknownFields                   protoimpl.UnknownFields
+	sizeCache                       protoimpl.SizeCache
 }
 
 func (x *QualificationResult) Reset() {
 	*x = QualificationResult{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_packet_link_qualification_packet_link_qualification_proto_msgTypes[11]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_packet_link_qualification_packet_link_qualification_proto_msgTypes[11]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *QualificationResult) String() string {
@@ -946,8 +928,8 @@ func (x *QualificationResult) String() string {
 func (*QualificationResult) ProtoMessage() {}
 
 func (x *QualificationResult) ProtoReflect() protoreflect.Message {
-	mi := &file_packet_link_qualification_packet_link_qualification_proto_msgTypes[11]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_packet_link_qualification_packet_link_qualification_proto_msgTypes[11]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -959,7 +941,7 @@ func (x *QualificationResult) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use QualificationResult.ProtoReflect.Descriptor instead.
 func (*QualificationResult) Descriptor() ([]byte, []int) {
-	return file_packet_link_qualification_packet_link_qualification_proto_rawDescGZIP(), []int{11}
+	return file_github_com_openconfig_gnoi_packet_link_qualification_packet_link_qualification_proto_rawDescGZIP(), []int{11}
 }
 
 func (x *QualificationResult) GetId() string {
@@ -1047,20 +1029,17 @@ func (x *QualificationResult) GetStatus() *status.Status {
 }
 
 type DeleteRequest struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Ids           []string               `protobuf:"bytes,1,rep,name=ids,proto3" json:"ids,omitempty"`
 	unknownFields protoimpl.UnknownFields
-
-	Ids []string `protobuf:"bytes,1,rep,name=ids,proto3" json:"ids,omitempty"`
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *DeleteRequest) Reset() {
 	*x = DeleteRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_packet_link_qualification_packet_link_qualification_proto_msgTypes[12]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_packet_link_qualification_packet_link_qualification_proto_msgTypes[12]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *DeleteRequest) String() string {
@@ -1070,8 +1049,8 @@ func (x *DeleteRequest) String() string {
 func (*DeleteRequest) ProtoMessage() {}
 
 func (x *DeleteRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_packet_link_qualification_packet_link_qualification_proto_msgTypes[12]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_packet_link_qualification_packet_link_qualification_proto_msgTypes[12]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -1083,7 +1062,7 @@ func (x *DeleteRequest) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use DeleteRequest.ProtoReflect.Descriptor instead.
 func (*DeleteRequest) Descriptor() ([]byte, []int) {
-	return file_packet_link_qualification_packet_link_qualification_proto_rawDescGZIP(), []int{12}
+	return file_github_com_openconfig_gnoi_packet_link_qualification_packet_link_qualification_proto_rawDescGZIP(), []int{12}
 }
 
 func (x *DeleteRequest) GetIds() []string {
@@ -1094,20 +1073,17 @@ func (x *DeleteRequest) GetIds() []string {
 }
 
 type DeleteResponse struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState    `protogen:"open.v1"`
+	Results       map[string]*status.Status `protobuf:"bytes,1,rep,name=results,proto3" json:"results,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
 	unknownFields protoimpl.UnknownFields
-
-	Results map[string]*status.Status `protobuf:"bytes,1,rep,name=results,proto3" json:"results,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *DeleteResponse) Reset() {
 	*x = DeleteResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_packet_link_qualification_packet_link_qualification_proto_msgTypes[13]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_packet_link_qualification_packet_link_qualification_proto_msgTypes[13]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *DeleteResponse) String() string {
@@ -1117,8 +1093,8 @@ func (x *DeleteResponse) String() string {
 func (*DeleteResponse) ProtoMessage() {}
 
 func (x *DeleteResponse) ProtoReflect() protoreflect.Message {
-	mi := &file_packet_link_qualification_packet_link_qualification_proto_msgTypes[13]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_packet_link_qualification_packet_link_qualification_proto_msgTypes[13]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -1130,7 +1106,7 @@ func (x *DeleteResponse) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use DeleteResponse.ProtoReflect.Descriptor instead.
 func (*DeleteResponse) Descriptor() ([]byte, []int) {
-	return file_packet_link_qualification_packet_link_qualification_proto_rawDescGZIP(), []int{13}
+	return file_github_com_openconfig_gnoi_packet_link_qualification_packet_link_qualification_proto_rawDescGZIP(), []int{13}
 }
 
 func (x *DeleteResponse) GetResults() map[string]*status.Status {
@@ -1141,18 +1117,16 @@ func (x *DeleteResponse) GetResults() map[string]*status.Status {
 }
 
 type CapabilitiesRequest struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState `protogen:"open.v1"`
 	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *CapabilitiesRequest) Reset() {
 	*x = CapabilitiesRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_packet_link_qualification_packet_link_qualification_proto_msgTypes[14]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_packet_link_qualification_packet_link_qualification_proto_msgTypes[14]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *CapabilitiesRequest) String() string {
@@ -1162,8 +1136,8 @@ func (x *CapabilitiesRequest) String() string {
 func (*CapabilitiesRequest) ProtoMessage() {}
 
 func (x *CapabilitiesRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_packet_link_qualification_packet_link_qualification_proto_msgTypes[14]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_packet_link_qualification_packet_link_qualification_proto_msgTypes[14]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -1175,28 +1149,25 @@ func (x *CapabilitiesRequest) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use CapabilitiesRequest.ProtoReflect.Descriptor instead.
 func (*CapabilitiesRequest) Descriptor() ([]byte, []int) {
-	return file_packet_link_qualification_packet_link_qualification_proto_rawDescGZIP(), []int{14}
+	return file_github_com_openconfig_gnoi_packet_link_qualification_packet_link_qualification_proto_rawDescGZIP(), []int{14}
 }
 
 type CapabilitiesResponse struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
+	state                            protoimpl.MessageState `protogen:"open.v1"`
 	Time                             *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=time,proto3" json:"time,omitempty"`
 	NtpSynced                        bool                   `protobuf:"varint,2,opt,name=ntp_synced,json=ntpSynced,proto3" json:"ntp_synced,omitempty"`
 	Generator                        *GeneratorCapabilities `protobuf:"bytes,3,opt,name=generator,proto3" json:"generator,omitempty"`
 	Reflector                        *ReflectorCapabilities `protobuf:"bytes,4,opt,name=reflector,proto3" json:"reflector,omitempty"`
 	MaxHistoricalResultsPerInterface uint64                 `protobuf:"varint,5,opt,name=max_historical_results_per_interface,json=maxHistoricalResultsPerInterface,proto3" json:"max_historical_results_per_interface,omitempty"`
+	unknownFields                    protoimpl.UnknownFields
+	sizeCache                        protoimpl.SizeCache
 }
 
 func (x *CapabilitiesResponse) Reset() {
 	*x = CapabilitiesResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_packet_link_qualification_packet_link_qualification_proto_msgTypes[15]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_packet_link_qualification_packet_link_qualification_proto_msgTypes[15]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *CapabilitiesResponse) String() string {
@@ -1206,8 +1177,8 @@ func (x *CapabilitiesResponse) String() string {
 func (*CapabilitiesResponse) ProtoMessage() {}
 
 func (x *CapabilitiesResponse) ProtoReflect() protoreflect.Message {
-	mi := &file_packet_link_qualification_packet_link_qualification_proto_msgTypes[15]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_packet_link_qualification_packet_link_qualification_proto_msgTypes[15]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -1219,7 +1190,7 @@ func (x *CapabilitiesResponse) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use CapabilitiesResponse.ProtoReflect.Descriptor instead.
 func (*CapabilitiesResponse) Descriptor() ([]byte, []int) {
-	return file_packet_link_qualification_packet_link_qualification_proto_rawDescGZIP(), []int{15}
+	return file_github_com_openconfig_gnoi_packet_link_qualification_packet_link_qualification_proto_rawDescGZIP(), []int{15}
 }
 
 func (x *CapabilitiesResponse) GetTime() *timestamppb.Timestamp {
@@ -1258,26 +1229,23 @@ func (x *CapabilitiesResponse) GetMaxHistoricalResultsPerInterface() uint64 {
 }
 
 type PacketGeneratorCapabilities struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	MaxBps              uint64               `protobuf:"varint,1,opt,name=max_bps,json=maxBps,proto3" json:"max_bps,omitempty"`
-	MaxPps              uint64               `protobuf:"varint,2,opt,name=max_pps,json=maxPps,proto3" json:"max_pps,omitempty"`
-	MinMtu              uint32               `protobuf:"varint,3,opt,name=min_mtu,json=minMtu,proto3" json:"min_mtu,omitempty"`
-	MaxMtu              uint32               `protobuf:"varint,4,opt,name=max_mtu,json=maxMtu,proto3" json:"max_mtu,omitempty"`
-	MinSetupDuration    *durationpb.Duration `protobuf:"bytes,5,opt,name=min_setup_duration,json=minSetupDuration,proto3" json:"min_setup_duration,omitempty"`
-	MinTeardownDuration *durationpb.Duration `protobuf:"bytes,6,opt,name=min_teardown_duration,json=minTeardownDuration,proto3" json:"min_teardown_duration,omitempty"`
-	MinSampleInterval   *durationpb.Duration `protobuf:"bytes,7,opt,name=min_sample_interval,json=minSampleInterval,proto3" json:"min_sample_interval,omitempty"`
+	state               protoimpl.MessageState `protogen:"open.v1"`
+	MaxBps              uint64                 `protobuf:"varint,1,opt,name=max_bps,json=maxBps,proto3" json:"max_bps,omitempty"`
+	MaxPps              uint64                 `protobuf:"varint,2,opt,name=max_pps,json=maxPps,proto3" json:"max_pps,omitempty"`
+	MinMtu              uint32                 `protobuf:"varint,3,opt,name=min_mtu,json=minMtu,proto3" json:"min_mtu,omitempty"`
+	MaxMtu              uint32                 `protobuf:"varint,4,opt,name=max_mtu,json=maxMtu,proto3" json:"max_mtu,omitempty"`
+	MinSetupDuration    *durationpb.Duration   `protobuf:"bytes,5,opt,name=min_setup_duration,json=minSetupDuration,proto3" json:"min_setup_duration,omitempty"`
+	MinTeardownDuration *durationpb.Duration   `protobuf:"bytes,6,opt,name=min_teardown_duration,json=minTeardownDuration,proto3" json:"min_teardown_duration,omitempty"`
+	MinSampleInterval   *durationpb.Duration   `protobuf:"bytes,7,opt,name=min_sample_interval,json=minSampleInterval,proto3" json:"min_sample_interval,omitempty"`
+	unknownFields       protoimpl.UnknownFields
+	sizeCache           protoimpl.SizeCache
 }
 
 func (x *PacketGeneratorCapabilities) Reset() {
 	*x = PacketGeneratorCapabilities{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_packet_link_qualification_packet_link_qualification_proto_msgTypes[16]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_packet_link_qualification_packet_link_qualification_proto_msgTypes[16]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *PacketGeneratorCapabilities) String() string {
@@ -1287,8 +1255,8 @@ func (x *PacketGeneratorCapabilities) String() string {
 func (*PacketGeneratorCapabilities) ProtoMessage() {}
 
 func (x *PacketGeneratorCapabilities) ProtoReflect() protoreflect.Message {
-	mi := &file_packet_link_qualification_packet_link_qualification_proto_msgTypes[16]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_packet_link_qualification_packet_link_qualification_proto_msgTypes[16]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -1300,7 +1268,7 @@ func (x *PacketGeneratorCapabilities) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use PacketGeneratorCapabilities.ProtoReflect.Descriptor instead.
 func (*PacketGeneratorCapabilities) Descriptor() ([]byte, []int) {
-	return file_packet_link_qualification_packet_link_qualification_proto_rawDescGZIP(), []int{16}
+	return file_github_com_openconfig_gnoi_packet_link_qualification_packet_link_qualification_proto_rawDescGZIP(), []int{16}
 }
 
 func (x *PacketGeneratorCapabilities) GetMaxBps() uint64 {
@@ -1353,10 +1321,7 @@ func (x *PacketGeneratorCapabilities) GetMinSampleInterval() *durationpb.Duratio
 }
 
 type PacketInjectorCapabilities struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
+	state               protoimpl.MessageState       `protogen:"open.v1"`
 	MinMtu              uint32                       `protobuf:"varint,1,opt,name=min_mtu,json=minMtu,proto3" json:"min_mtu,omitempty"`
 	MaxMtu              uint32                       `protobuf:"varint,2,opt,name=max_mtu,json=maxMtu,proto3" json:"max_mtu,omitempty"`
 	MinInjectedPackets  uint32                       `protobuf:"varint,3,opt,name=min_injected_packets,json=minInjectedPackets,proto3" json:"min_injected_packets,omitempty"`
@@ -1365,15 +1330,15 @@ type PacketInjectorCapabilities struct {
 	MinTeardownDuration *durationpb.Duration         `protobuf:"bytes,6,opt,name=min_teardown_duration,json=minTeardownDuration,proto3" json:"min_teardown_duration,omitempty"`
 	MinSampleInterval   *durationpb.Duration         `protobuf:"bytes,7,opt,name=min_sample_interval,json=minSampleInterval,proto3" json:"min_sample_interval,omitempty"`
 	LoopbackModes       []PacketInjectorLoopbackMode `protobuf:"varint,8,rep,packed,name=loopback_modes,json=loopbackModes,proto3,enum=gnoi.packet_link_qualification.PacketInjectorLoopbackMode" json:"loopback_modes,omitempty"`
+	unknownFields       protoimpl.UnknownFields
+	sizeCache           protoimpl.SizeCache
 }
 
 func (x *PacketInjectorCapabilities) Reset() {
 	*x = PacketInjectorCapabilities{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_packet_link_qualification_packet_link_qualification_proto_msgTypes[17]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_packet_link_qualification_packet_link_qualification_proto_msgTypes[17]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *PacketInjectorCapabilities) String() string {
@@ -1383,8 +1348,8 @@ func (x *PacketInjectorCapabilities) String() string {
 func (*PacketInjectorCapabilities) ProtoMessage() {}
 
 func (x *PacketInjectorCapabilities) ProtoReflect() protoreflect.Message {
-	mi := &file_packet_link_qualification_packet_link_qualification_proto_msgTypes[17]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_packet_link_qualification_packet_link_qualification_proto_msgTypes[17]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -1396,7 +1361,7 @@ func (x *PacketInjectorCapabilities) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use PacketInjectorCapabilities.ProtoReflect.Descriptor instead.
 func (*PacketInjectorCapabilities) Descriptor() ([]byte, []int) {
-	return file_packet_link_qualification_packet_link_qualification_proto_rawDescGZIP(), []int{17}
+	return file_github_com_openconfig_gnoi_packet_link_qualification_packet_link_qualification_proto_rawDescGZIP(), []int{17}
 }
 
 func (x *PacketInjectorCapabilities) GetMinMtu() uint32 {
@@ -1456,21 +1421,18 @@ func (x *PacketInjectorCapabilities) GetLoopbackModes() []PacketInjectorLoopback
 }
 
 type GeneratorCapabilities struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
+	state           protoimpl.MessageState       `protogen:"open.v1"`
 	PacketGenerator *PacketGeneratorCapabilities `protobuf:"bytes,1,opt,name=packet_generator,json=packetGenerator,proto3" json:"packet_generator,omitempty"`
 	PacketInjector  *PacketInjectorCapabilities  `protobuf:"bytes,2,opt,name=packet_injector,json=packetInjector,proto3" json:"packet_injector,omitempty"`
+	unknownFields   protoimpl.UnknownFields
+	sizeCache       protoimpl.SizeCache
 }
 
 func (x *GeneratorCapabilities) Reset() {
 	*x = GeneratorCapabilities{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_packet_link_qualification_packet_link_qualification_proto_msgTypes[18]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_packet_link_qualification_packet_link_qualification_proto_msgTypes[18]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *GeneratorCapabilities) String() string {
@@ -1480,8 +1442,8 @@ func (x *GeneratorCapabilities) String() string {
 func (*GeneratorCapabilities) ProtoMessage() {}
 
 func (x *GeneratorCapabilities) ProtoReflect() protoreflect.Message {
-	mi := &file_packet_link_qualification_packet_link_qualification_proto_msgTypes[18]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_packet_link_qualification_packet_link_qualification_proto_msgTypes[18]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -1493,7 +1455,7 @@ func (x *GeneratorCapabilities) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use GeneratorCapabilities.ProtoReflect.Descriptor instead.
 func (*GeneratorCapabilities) Descriptor() ([]byte, []int) {
-	return file_packet_link_qualification_packet_link_qualification_proto_rawDescGZIP(), []int{18}
+	return file_github_com_openconfig_gnoi_packet_link_qualification_packet_link_qualification_proto_rawDescGZIP(), []int{18}
 }
 
 func (x *GeneratorCapabilities) GetPacketGenerator() *PacketGeneratorCapabilities {
@@ -1511,21 +1473,18 @@ func (x *GeneratorCapabilities) GetPacketInjector() *PacketInjectorCapabilities
 }
 
 type PmdLoopbackCapabilities struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	MinSetupDuration    *durationpb.Duration `protobuf:"bytes,1,opt,name=min_setup_duration,json=minSetupDuration,proto3" json:"min_setup_duration,omitempty"`
-	MinTeardownDuration *durationpb.Duration `protobuf:"bytes,2,opt,name=min_teardown_duration,json=minTeardownDuration,proto3" json:"min_teardown_duration,omitempty"`
+	state               protoimpl.MessageState `protogen:"open.v1"`
+	MinSetupDuration    *durationpb.Duration   `protobuf:"bytes,1,opt,name=min_setup_duration,json=minSetupDuration,proto3" json:"min_setup_duration,omitempty"`
+	MinTeardownDuration *durationpb.Duration   `protobuf:"bytes,2,opt,name=min_teardown_duration,json=minTeardownDuration,proto3" json:"min_teardown_duration,omitempty"`
+	unknownFields       protoimpl.UnknownFields
+	sizeCache           protoimpl.SizeCache
 }
 
 func (x *PmdLoopbackCapabilities) Reset() {
 	*x = PmdLoopbackCapabilities{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_packet_link_qualification_packet_link_qualification_proto_msgTypes[19]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_packet_link_qualification_packet_link_qualification_proto_msgTypes[19]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *PmdLoopbackCapabilities) String() string {
@@ -1535,8 +1494,8 @@ func (x *PmdLoopbackCapabilities) String() string {
 func (*PmdLoopbackCapabilities) ProtoMessage() {}
 
 func (x *PmdLoopbackCapabilities) ProtoReflect() protoreflect.Message {
-	mi := &file_packet_link_qualification_packet_link_qualification_proto_msgTypes[19]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_packet_link_qualification_packet_link_qualification_proto_msgTypes[19]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -1548,7 +1507,7 @@ func (x *PmdLoopbackCapabilities) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use PmdLoopbackCapabilities.ProtoReflect.Descriptor instead.
 func (*PmdLoopbackCapabilities) Descriptor() ([]byte, []int) {
-	return file_packet_link_qualification_packet_link_qualification_proto_rawDescGZIP(), []int{19}
+	return file_github_com_openconfig_gnoi_packet_link_qualification_packet_link_qualification_proto_rawDescGZIP(), []int{19}
 }
 
 func (x *PmdLoopbackCapabilities) GetMinSetupDuration() *durationpb.Duration {
@@ -1566,22 +1525,19 @@ func (x *PmdLoopbackCapabilities) GetMinTeardownDuration() *durationpb.Duration
 }
 
 type AsicLoopbackCapabilities struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	MinSetupDuration    *durationpb.Duration `protobuf:"bytes,1,opt,name=min_setup_duration,json=minSetupDuration,proto3" json:"min_setup_duration,omitempty"`
-	MinTeardownDuration *durationpb.Duration `protobuf:"bytes,2,opt,name=min_teardown_duration,json=minTeardownDuration,proto3" json:"min_teardown_duration,omitempty"`
-	Fields              []HeaderMatchField   `protobuf:"varint,3,rep,packed,name=fields,proto3,enum=gnoi.packet_link_qualification.HeaderMatchField" json:"fields,omitempty"`
+	state               protoimpl.MessageState `protogen:"open.v1"`
+	MinSetupDuration    *durationpb.Duration   `protobuf:"bytes,1,opt,name=min_setup_duration,json=minSetupDuration,proto3" json:"min_setup_duration,omitempty"`
+	MinTeardownDuration *durationpb.Duration   `protobuf:"bytes,2,opt,name=min_teardown_duration,json=minTeardownDuration,proto3" json:"min_teardown_duration,omitempty"`
+	Fields              []HeaderMatchField     `protobuf:"varint,3,rep,packed,name=fields,proto3,enum=gnoi.packet_link_qualification.HeaderMatchField" json:"fields,omitempty"`
+	unknownFields       protoimpl.UnknownFields
+	sizeCache           protoimpl.SizeCache
 }
 
 func (x *AsicLoopbackCapabilities) Reset() {
 	*x = AsicLoopbackCapabilities{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_packet_link_qualification_packet_link_qualification_proto_msgTypes[20]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_packet_link_qualification_packet_link_qualification_proto_msgTypes[20]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *AsicLoopbackCapabilities) String() string {
@@ -1591,8 +1547,8 @@ func (x *AsicLoopbackCapabilities) String() string {
 func (*AsicLoopbackCapabilities) ProtoMessage() {}
 
 func (x *AsicLoopbackCapabilities) ProtoReflect() protoreflect.Message {
-	mi := &file_packet_link_qualification_packet_link_qualification_proto_msgTypes[20]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_packet_link_qualification_packet_link_qualification_proto_msgTypes[20]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -1604,7 +1560,7 @@ func (x *AsicLoopbackCapabilities) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use AsicLoopbackCapabilities.ProtoReflect.Descriptor instead.
 func (*AsicLoopbackCapabilities) Descriptor() ([]byte, []int) {
-	return file_packet_link_qualification_packet_link_qualification_proto_rawDescGZIP(), []int{20}
+	return file_github_com_openconfig_gnoi_packet_link_qualification_packet_link_qualification_proto_rawDescGZIP(), []int{20}
 }
 
 func (x *AsicLoopbackCapabilities) GetMinSetupDuration() *durationpb.Duration {
@@ -1629,21 +1585,18 @@ func (x *AsicLoopbackCapabilities) GetFields() []HeaderMatchField {
 }
 
 type ReflectorCapabilities struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState    `protogen:"open.v1"`
+	PmdLoopback   *PmdLoopbackCapabilities  `protobuf:"bytes,1,opt,name=pmd_loopback,json=pmdLoopback,proto3" json:"pmd_loopback,omitempty"`
+	AsicLoopback  *AsicLoopbackCapabilities `protobuf:"bytes,2,opt,name=asic_loopback,json=asicLoopback,proto3" json:"asic_loopback,omitempty"`
 	unknownFields protoimpl.UnknownFields
-
-	PmdLoopback  *PmdLoopbackCapabilities  `protobuf:"bytes,1,opt,name=pmd_loopback,json=pmdLoopback,proto3" json:"pmd_loopback,omitempty"`
-	AsicLoopback *AsicLoopbackCapabilities `protobuf:"bytes,2,opt,name=asic_loopback,json=asicLoopback,proto3" json:"asic_loopback,omitempty"`
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *ReflectorCapabilities) Reset() {
 	*x = ReflectorCapabilities{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_packet_link_qualification_packet_link_qualification_proto_msgTypes[21]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_packet_link_qualification_packet_link_qualification_proto_msgTypes[21]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *ReflectorCapabilities) String() string {
@@ -1653,8 +1606,8 @@ func (x *ReflectorCapabilities) String() string {
 func (*ReflectorCapabilities) ProtoMessage() {}
 
 func (x *ReflectorCapabilities) ProtoReflect() protoreflect.Message {
-	mi := &file_packet_link_qualification_packet_link_qualification_proto_msgTypes[21]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_packet_link_qualification_packet_link_qualification_proto_msgTypes[21]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -1666,7 +1619,7 @@ func (x *ReflectorCapabilities) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use ReflectorCapabilities.ProtoReflect.Descriptor instead.
 func (*ReflectorCapabilities) Descriptor() ([]byte, []int) {
-	return file_packet_link_qualification_packet_link_qualification_proto_rawDescGZIP(), []int{21}
+	return file_github_com_openconfig_gnoi_packet_link_qualification_packet_link_qualification_proto_rawDescGZIP(), []int{21}
 }
 
 func (x *ReflectorCapabilities) GetPmdLoopback() *PmdLoopbackCapabilities {
@@ -1684,18 +1637,16 @@ func (x *ReflectorCapabilities) GetAsicLoopback() *AsicLoopbackCapabilities {
 }
 
 type ListRequest struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState `protogen:"open.v1"`
 	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *ListRequest) Reset() {
 	*x = ListRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_packet_link_qualification_packet_link_qualification_proto_msgTypes[22]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_packet_link_qualification_packet_link_qualification_proto_msgTypes[22]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *ListRequest) String() string {
@@ -1705,8 +1656,8 @@ func (x *ListRequest) String() string {
 func (*ListRequest) ProtoMessage() {}
 
 func (x *ListRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_packet_link_qualification_packet_link_qualification_proto_msgTypes[22]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_packet_link_qualification_packet_link_qualification_proto_msgTypes[22]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -1718,24 +1669,21 @@ func (x *ListRequest) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use ListRequest.ProtoReflect.Descriptor instead.
 func (*ListRequest) Descriptor() ([]byte, []int) {
-	return file_packet_link_qualification_packet_link_qualification_proto_rawDescGZIP(), []int{22}
+	return file_github_com_openconfig_gnoi_packet_link_qualification_packet_link_qualification_proto_rawDescGZIP(), []int{22}
 }
 
 type ListResponse struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Results       []*ListResult          `protobuf:"bytes,1,rep,name=results,proto3" json:"results,omitempty"`
 	unknownFields protoimpl.UnknownFields
-
-	Results []*ListResult `protobuf:"bytes,1,rep,name=results,proto3" json:"results,omitempty"`
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *ListResponse) Reset() {
 	*x = ListResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_packet_link_qualification_packet_link_qualification_proto_msgTypes[23]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_packet_link_qualification_packet_link_qualification_proto_msgTypes[23]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *ListResponse) String() string {
@@ -1745,8 +1693,8 @@ func (x *ListResponse) String() string {
 func (*ListResponse) ProtoMessage() {}
 
 func (x *ListResponse) ProtoReflect() protoreflect.Message {
-	mi := &file_packet_link_qualification_packet_link_qualification_proto_msgTypes[23]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_packet_link_qualification_packet_link_qualification_proto_msgTypes[23]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -1758,7 +1706,7 @@ func (x *ListResponse) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use ListResponse.ProtoReflect.Descriptor instead.
 func (*ListResponse) Descriptor() ([]byte, []int) {
-	return file_packet_link_qualification_packet_link_qualification_proto_rawDescGZIP(), []int{23}
+	return file_github_com_openconfig_gnoi_packet_link_qualification_packet_link_qualification_proto_rawDescGZIP(), []int{23}
 }
 
 func (x *ListResponse) GetResults() []*ListResult {
@@ -1769,22 +1717,19 @@ func (x *ListResponse) GetResults() []*ListResult {
 }
 
 type ListResult struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Id            string                 `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
+	State         QualificationState     `protobuf:"varint,2,opt,name=state,proto3,enum=gnoi.packet_link_qualification.QualificationState" json:"state,omitempty"`
+	InterfaceName string                 `protobuf:"bytes,3,opt,name=interface_name,json=interfaceName,proto3" json:"interface_name,omitempty"`
 	unknownFields protoimpl.UnknownFields
-
-	Id            string             `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
-	State         QualificationState `protobuf:"varint,2,opt,name=state,proto3,enum=gnoi.packet_link_qualification.QualificationState" json:"state,omitempty"`
-	InterfaceName string             `protobuf:"bytes,3,opt,name=interface_name,json=interfaceName,proto3" json:"interface_name,omitempty"`
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *ListResult) Reset() {
 	*x = ListResult{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_packet_link_qualification_packet_link_qualification_proto_msgTypes[24]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_packet_link_qualification_packet_link_qualification_proto_msgTypes[24]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *ListResult) String() string {
@@ -1794,8 +1739,8 @@ func (x *ListResult) String() string {
 func (*ListResult) ProtoMessage() {}
 
 func (x *ListResult) ProtoReflect() protoreflect.Message {
-	mi := &file_packet_link_qualification_packet_link_qualification_proto_msgTypes[24]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_packet_link_qualification_packet_link_qualification_proto_msgTypes[24]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -1807,7 +1752,7 @@ func (x *ListResult) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use ListResult.ProtoReflect.Descriptor instead.
 func (*ListResult) Descriptor() ([]byte, []int) {
-	return file_packet_link_qualification_packet_link_qualification_proto_rawDescGZIP(), []int{24}
+	return file_github_com_openconfig_gnoi_packet_link_qualification_packet_link_qualification_proto_rawDescGZIP(), []int{24}
 }
 
 func (x *ListResult) GetId() string {
@@ -1831,307 +1776,320 @@ func (x *ListResult) GetInterfaceName() string {
 	return ""
 }
 
-var File_packet_link_qualification_packet_link_qualification_proto protoreflect.FileDescriptor
+var File_github_com_openconfig_gnoi_packet_link_qualification_packet_link_qualification_proto protoreflect.FileDescriptor
 
-var file_packet_link_qualification_packet_link_qualification_proto_rawDesc = []byte{
-	0x0a, 0x39, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x71, 0x75,
-	0x61, 0x6c, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x70, 0x61, 0x63, 0x6b,
-	0x65, 0x74, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x66, 0x69, 0x63,
-	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x1e, 0x67, 0x6e, 0x6f,
-	0x69, 0x2e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x71, 0x75,
-	0x61, 0x6c, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x2c, 0x67, 0x69, 0x74,
-	0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66,
-	0x69, 0x67, 0x2f, 0x67, 0x6e, 0x6f, 0x69, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2f, 0x74, 0x79,
-	0x70, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
-	0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x75, 0x72, 0x61, 0x74,
-	0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
-	0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73,
-	0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x67, 0x6f, 0x6f, 0x67,
-	0x6c, 0x65, 0x2f, 0x72, 0x70, 0x63, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x70, 0x72,
-	0x6f, 0x74, 0x6f, 0x22, 0x6b, 0x0a, 0x0d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71,
-	0x75, 0x65, 0x73, 0x74, 0x12, 0x5a, 0x0a, 0x0a, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63,
-	0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e,
-	0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x71, 0x75, 0x61, 0x6c,
-	0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x66,
-	0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61,
-	0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73,
-	0x22, 0xb3, 0x01, 0x0a, 0x0e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f,
-	0x6e, 0x73, 0x65, 0x12, 0x52, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20,
+var file_github_com_openconfig_gnoi_packet_link_qualification_packet_link_qualification_proto_rawDesc = []byte{
+	0x0a, 0x54, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x70, 0x65,
+	0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x67, 0x6e, 0x6f, 0x69, 0x2f, 0x70, 0x61, 0x63,
+	0x6b, 0x65, 0x74, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x66, 0x69,
+	0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x6c, 0x69,
+	0x6e, 0x6b, 0x5f, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x1e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x70, 0x61, 0x63,
+	0x6b, 0x65, 0x74, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x66, 0x69,
+	0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x2c, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63,
+	0x6f, 0x6d, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x67, 0x6e,
+	0x6f, 0x69, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x70,
+	0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f,
+	0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70,
+	0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f,
+	0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e,
+	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x72, 0x70,
+	0x63, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x6b,
+	0x0a, 0x0d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12,
+	0x5a, 0x0a, 0x0a, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x18, 0x01, 0x20,
 	0x03, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x70, 0x61, 0x63, 0x6b, 0x65,
 	0x74, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x66, 0x69, 0x63, 0x61,
-	0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f,
-	0x6e, 0x73, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52,
-	0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x1a, 0x4d, 0x0a, 0x0b, 0x53, 0x74, 0x61, 0x74, 0x75,
-	0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20,
-	0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x28, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75,
-	0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
-	0x2e, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x05, 0x76, 0x61, 0x6c,
-	0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xc4, 0x01, 0x0a, 0x0f, 0x4e, 0x54, 0x50, 0x53, 0x79,
-	0x6e, 0x63, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x69, 0x6e, 0x67, 0x12, 0x39, 0x0a, 0x0a, 0x73, 0x74,
-	0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a,
+	0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69,
+	0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52,
+	0x0a, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x22, 0xb3, 0x01, 0x0a, 0x0e,
+	0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x52,
+	0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3a,
+	0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x6c, 0x69, 0x6e,
+	0x6b, 0x5f, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e,
+	0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53,
+	0x74, 0x61, 0x74, 0x75, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74,
+	0x75, 0x73, 0x1a, 0x4d, 0x0a, 0x0b, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x45, 0x6e, 0x74, 0x72,
+	0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03,
+	0x6b, 0x65, 0x79, 0x12, 0x28, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01,
+	0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x72, 0x70, 0x63, 0x2e,
+	0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38,
+	0x01, 0x22, 0xc4, 0x01, 0x0a, 0x0f, 0x4e, 0x54, 0x50, 0x53, 0x79, 0x6e, 0x63, 0x65, 0x64, 0x54,
+	0x69, 0x6d, 0x69, 0x6e, 0x67, 0x12, 0x39, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74,
+	0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
+	0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65,
+	0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65,
+	0x12, 0x35, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01,
+	0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74,
+	0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x07,
+	0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x3f, 0x0a, 0x0d, 0x74, 0x65, 0x61, 0x72, 0x64,
+	0x6f, 0x77, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a,
 	0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66,
-	0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72,
-	0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x35, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d,
-	0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
-	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74,
-	0x61, 0x6d, 0x70, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x3f, 0x0a, 0x0d,
-	0x74, 0x65, 0x61, 0x72, 0x64, 0x6f, 0x77, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20,
-	0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f,
-	0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52,
-	0x0c, 0x74, 0x65, 0x61, 0x72, 0x64, 0x6f, 0x77, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x22, 0xe2, 0x02,
-	0x0a, 0x0f, 0x52, 0x50, 0x43, 0x53, 0x79, 0x6e, 0x63, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x69, 0x6e,
-	0x67, 0x12, 0x45, 0x0a, 0x11, 0x70, 0x72, 0x65, 0x5f, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x64, 0x75,
-	0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67,
-	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44,
-	0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0f, 0x70, 0x72, 0x65, 0x53, 0x79, 0x6e, 0x63,
-	0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x40, 0x0a, 0x0e, 0x73, 0x65, 0x74, 0x75,
-	0x70, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b,
+	0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0c, 0x74, 0x65, 0x61, 0x72,
+	0x64, 0x6f, 0x77, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x22, 0xe2, 0x02, 0x0a, 0x0f, 0x52, 0x50, 0x43,
+	0x53, 0x79, 0x6e, 0x63, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x69, 0x6e, 0x67, 0x12, 0x45, 0x0a, 0x11,
+	0x70, 0x72, 0x65, 0x5f, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f,
+	0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
+	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69,
+	0x6f, 0x6e, 0x52, 0x0f, 0x70, 0x72, 0x65, 0x53, 0x79, 0x6e, 0x63, 0x44, 0x75, 0x72, 0x61, 0x74,
+	0x69, 0x6f, 0x6e, 0x12, 0x40, 0x0a, 0x0e, 0x73, 0x65, 0x74, 0x75, 0x70, 0x5f, 0x64, 0x75, 0x72,
+	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f,
+	0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75,
+	0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0d, 0x73, 0x65, 0x74, 0x75, 0x70, 0x44, 0x75, 0x72,
+	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x35, 0x0a, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f,
+	0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
+	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69,
+	0x6f, 0x6e, 0x52, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x47, 0x0a, 0x12,
+	0x70, 0x6f, 0x73, 0x74, 0x5f, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69,
+	0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
+	0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74,
+	0x69, 0x6f, 0x6e, 0x52, 0x10, 0x70, 0x6f, 0x73, 0x74, 0x53, 0x79, 0x6e, 0x63, 0x44, 0x75, 0x72,
+	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x46, 0x0a, 0x11, 0x74, 0x65, 0x61, 0x72, 0x64, 0x6f, 0x77,
+	0x6e, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b,
 	0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62,
-	0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0d, 0x73, 0x65, 0x74,
-	0x75, 0x70, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x35, 0x0a, 0x08, 0x64, 0x75,
-	0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67,
-	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44,
-	0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f,
-	0x6e, 0x12, 0x47, 0x0a, 0x12, 0x70, 0x6f, 0x73, 0x74, 0x5f, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x64,
-	0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e,
-	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e,
-	0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x10, 0x70, 0x6f, 0x73, 0x74, 0x53, 0x79,
-	0x6e, 0x63, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x46, 0x0a, 0x11, 0x74, 0x65,
-	0x61, 0x72, 0x64, 0x6f, 0x77, 0x6e, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18,
-	0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70,
-	0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e,
-	0x52, 0x10, 0x74, 0x65, 0x61, 0x72, 0x64, 0x6f, 0x77, 0x6e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69,
-	0x6f, 0x6e, 0x22, 0x8c, 0x05, 0x0a, 0x1a, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x66, 0x69, 0x63, 0x61,
-	0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f,
-	0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69,
-	0x64, 0x12, 0x25, 0x0a, 0x0e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x6e,
-	0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x69, 0x6e, 0x74, 0x65, 0x72,
-	0x66, 0x61, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x43, 0x0a, 0x03, 0x6e, 0x74, 0x70, 0x18,
-	0x65, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x70, 0x61, 0x63,
+	0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x10, 0x74, 0x65, 0x61,
+	0x72, 0x64, 0x6f, 0x77, 0x6e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x8c, 0x05,
+	0x0a, 0x1a, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43,
+	0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x0e, 0x0a, 0x02,
+	0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x25, 0x0a, 0x0e,
+	0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02,
+	0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x4e,
+	0x61, 0x6d, 0x65, 0x12, 0x43, 0x0a, 0x03, 0x6e, 0x74, 0x70, 0x18, 0x65, 0x20, 0x01, 0x28, 0x0b,
+	0x32, 0x2f, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x6c,
+	0x69, 0x6e, 0x6b, 0x5f, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+	0x6e, 0x2e, 0x4e, 0x54, 0x50, 0x53, 0x79, 0x6e, 0x63, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x69, 0x6e,
+	0x67, 0x48, 0x00, 0x52, 0x03, 0x6e, 0x74, 0x70, 0x12, 0x43, 0x0a, 0x03, 0x72, 0x70, 0x63, 0x18,
+	0x66, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x70, 0x61, 0x63,
 	0x6b, 0x65, 0x74, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x66, 0x69,
-	0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x4e, 0x54, 0x50, 0x53, 0x79, 0x6e, 0x63, 0x65, 0x64,
-	0x54, 0x69, 0x6d, 0x69, 0x6e, 0x67, 0x48, 0x00, 0x52, 0x03, 0x6e, 0x74, 0x70, 0x12, 0x43, 0x0a,
-	0x03, 0x72, 0x70, 0x63, 0x18, 0x66, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x67, 0x6e, 0x6f,
-	0x69, 0x2e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x71, 0x75,
-	0x61, 0x6c, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x52, 0x50, 0x43, 0x53,
-	0x79, 0x6e, 0x63, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x69, 0x6e, 0x67, 0x48, 0x00, 0x52, 0x03, 0x72,
-	0x70, 0x63, 0x12, 0x69, 0x0a, 0x10, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x67, 0x65, 0x6e,
-	0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x6f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x67,
-	0x6e, 0x6f, 0x69, 0x2e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x5f,
-	0x71, 0x75, 0x61, 0x6c, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x50, 0x61,
-	0x63, 0x6b, 0x65, 0x74, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x43, 0x6f, 0x6e,
-	0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x01, 0x52, 0x0f, 0x70, 0x61,
-	0x63, 0x6b, 0x65, 0x74, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x66, 0x0a,
-	0x0f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72,
-	0x18, 0x70, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x70, 0x61,
+	0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x52, 0x50, 0x43, 0x53, 0x79, 0x6e, 0x63, 0x65, 0x64,
+	0x54, 0x69, 0x6d, 0x69, 0x6e, 0x67, 0x48, 0x00, 0x52, 0x03, 0x72, 0x70, 0x63, 0x12, 0x69, 0x0a,
+	0x10, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x6f,
+	0x72, 0x18, 0x6f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x70,
+	0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x71, 0x75, 0x61, 0x6c, 0x69,
+	0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x47,
+	0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72,
+	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x01, 0x52, 0x0f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x47,
+	0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x66, 0x0a, 0x0f, 0x70, 0x61, 0x63, 0x6b,
+	0x65, 0x74, 0x5f, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x70, 0x20, 0x01, 0x28,
+	0x0b, 0x32, 0x3b, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f,
+	0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69,
+	0x6f, 0x6e, 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x49, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x6f,
+	0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x01,
+	0x52, 0x0e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x49, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72,
+	0x12, 0x5d, 0x0a, 0x0c, 0x70, 0x6d, 0x64, 0x5f, 0x6c, 0x6f, 0x6f, 0x70, 0x62, 0x61, 0x63, 0x6b,
+	0x18, 0x71, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x70, 0x61,
 	0x63, 0x6b, 0x65, 0x74, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x66,
-	0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x49, 0x6e,
-	0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74,
-	0x69, 0x6f, 0x6e, 0x48, 0x01, 0x52, 0x0e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x49, 0x6e, 0x6a,
-	0x65, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x5d, 0x0a, 0x0c, 0x70, 0x6d, 0x64, 0x5f, 0x6c, 0x6f, 0x6f,
-	0x70, 0x62, 0x61, 0x63, 0x6b, 0x18, 0x71, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x67, 0x6e,
-	0x6f, 0x69, 0x2e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x71,
-	0x75, 0x61, 0x6c, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x50, 0x6d, 0x64,
-	0x4c, 0x6f, 0x6f, 0x70, 0x62, 0x61, 0x63, 0x6b, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72,
-	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x01, 0x52, 0x0b, 0x70, 0x6d, 0x64, 0x4c, 0x6f, 0x6f, 0x70,
-	0x62, 0x61, 0x63, 0x6b, 0x12, 0x60, 0x0a, 0x0d, 0x61, 0x73, 0x69, 0x63, 0x5f, 0x6c, 0x6f, 0x6f,
-	0x70, 0x62, 0x61, 0x63, 0x6b, 0x18, 0x72, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x67, 0x6e,
-	0x6f, 0x69, 0x2e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x71,
-	0x75, 0x61, 0x6c, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x41, 0x73, 0x69,
-	0x63, 0x4c, 0x6f, 0x6f, 0x70, 0x62, 0x61, 0x63, 0x6b, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75,
-	0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x01, 0x52, 0x0c, 0x61, 0x73, 0x69, 0x63, 0x4c, 0x6f,
-	0x6f, 0x70, 0x62, 0x61, 0x63, 0x6b, 0x42, 0x08, 0x0a, 0x06, 0x74, 0x69, 0x6d, 0x69, 0x6e, 0x67,
-	0x42, 0x0f, 0x0a, 0x0d, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70,
-	0x65, 0x22, 0x60, 0x0a, 0x1c, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x47, 0x65, 0x6e, 0x65, 0x72,
-	0x61, 0x74, 0x6f, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f,
-	0x6e, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x72, 0x61, 0x74, 0x65,
-	0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x52, 0x61,
-	0x74, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x73, 0x69, 0x7a,
-	0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x53,
-	0x69, 0x7a, 0x65, 0x22, 0xb3, 0x02, 0x0a, 0x1b, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x49, 0x6e,
-	0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74,
-	0x69, 0x6f, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x63, 0x6f,
-	0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x70, 0x61, 0x63, 0x6b, 0x65,
-	0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74,
-	0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x70, 0x61, 0x63,
-	0x6b, 0x65, 0x74, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x5d, 0x0a, 0x0c, 0x70, 0x6d, 0x64, 0x5f, 0x6c,
-	0x6f, 0x6f, 0x70, 0x62, 0x61, 0x63, 0x6b, 0x18, 0x65, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x38, 0x2e,
-	0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x6c, 0x69, 0x6e, 0x6b,
-	0x5f, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x50,
-	0x6d, 0x64, 0x4c, 0x6f, 0x6f, 0x70, 0x62, 0x61, 0x63, 0x6b, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67,
-	0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x0b, 0x70, 0x6d, 0x64, 0x4c, 0x6f,
-	0x6f, 0x70, 0x62, 0x61, 0x63, 0x6b, 0x12, 0x60, 0x0a, 0x0d, 0x61, 0x73, 0x69, 0x63, 0x5f, 0x6c,
-	0x6f, 0x6f, 0x70, 0x62, 0x61, 0x63, 0x6b, 0x18, 0x66, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x39, 0x2e,
-	0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x6c, 0x69, 0x6e, 0x6b,
-	0x5f, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x41,
-	0x73, 0x69, 0x63, 0x4c, 0x6f, 0x6f, 0x70, 0x62, 0x61, 0x63, 0x6b, 0x43, 0x6f, 0x6e, 0x66, 0x69,
-	0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x0c, 0x61, 0x73, 0x69, 0x63,
-	0x4c, 0x6f, 0x6f, 0x70, 0x62, 0x61, 0x63, 0x6b, 0x42, 0x0f, 0x0a, 0x0d, 0x6c, 0x6f, 0x6f, 0x70,
-	0x62, 0x61, 0x63, 0x6b, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x22, 0x1a, 0x0a, 0x18, 0x50, 0x6d, 0x64,
-	0x4c, 0x6f, 0x6f, 0x70, 0x62, 0x61, 0x63, 0x6b, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72,
-	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x1b, 0x0a, 0x19, 0x41, 0x73, 0x69, 0x63, 0x4c, 0x6f, 0x6f,
+	0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x50, 0x6d, 0x64, 0x4c, 0x6f, 0x6f, 0x70, 0x62,
+	0x61, 0x63, 0x6b, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+	0x48, 0x01, 0x52, 0x0b, 0x70, 0x6d, 0x64, 0x4c, 0x6f, 0x6f, 0x70, 0x62, 0x61, 0x63, 0x6b, 0x12,
+	0x60, 0x0a, 0x0d, 0x61, 0x73, 0x69, 0x63, 0x5f, 0x6c, 0x6f, 0x6f, 0x70, 0x62, 0x61, 0x63, 0x6b,
+	0x18, 0x72, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x70, 0x61,
+	0x63, 0x6b, 0x65, 0x74, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x66,
+	0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x41, 0x73, 0x69, 0x63, 0x4c, 0x6f, 0x6f, 0x70,
+	0x62, 0x61, 0x63, 0x6b, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f,
+	0x6e, 0x48, 0x01, 0x52, 0x0c, 0x61, 0x73, 0x69, 0x63, 0x4c, 0x6f, 0x6f, 0x70, 0x62, 0x61, 0x63,
+	0x6b, 0x42, 0x08, 0x0a, 0x06, 0x74, 0x69, 0x6d, 0x69, 0x6e, 0x67, 0x42, 0x0f, 0x0a, 0x0d, 0x65,
+	0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, 0x60, 0x0a, 0x1c,
+	0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x43,
+	0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1f, 0x0a, 0x0b,
+	0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,
+	0x04, 0x52, 0x0a, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x52, 0x61, 0x74, 0x65, 0x12, 0x1f, 0x0a,
+	0x0b, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01,
+	0x28, 0x0d, 0x52, 0x0a, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x53, 0x69, 0x7a, 0x65, 0x22, 0xb3,
+	0x02, 0x0a, 0x1b, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x49, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x6f,
+	0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x21,
+	0x0a, 0x0c, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01,
+	0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x43, 0x6f, 0x75, 0x6e,
+	0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x73, 0x69, 0x7a, 0x65,
+	0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x53, 0x69,
+	0x7a, 0x65, 0x12, 0x5d, 0x0a, 0x0c, 0x70, 0x6d, 0x64, 0x5f, 0x6c, 0x6f, 0x6f, 0x70, 0x62, 0x61,
+	0x63, 0x6b, 0x18, 0x65, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e,
+	0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x71, 0x75, 0x61, 0x6c,
+	0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x50, 0x6d, 0x64, 0x4c, 0x6f, 0x6f,
 	0x70, 0x62, 0x61, 0x63, 0x6b, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69,
-	0x6f, 0x6e, 0x22, 0x1e, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
-	0x12, 0x10, 0x0a, 0x03, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x03, 0x69,
-	0x64, 0x73, 0x22, 0xd2, 0x01, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
-	0x73, 0x65, 0x12, 0x52, 0x0a, 0x07, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x01, 0x20,
-	0x03, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x70, 0x61, 0x63, 0x6b, 0x65,
-	0x74, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x66, 0x69, 0x63, 0x61,
-	0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
-	0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x72,
-	0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x1a, 0x6f, 0x0a, 0x0c, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74,
-	0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20,
-	0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x49, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75,
-	0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x70,
-	0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x71, 0x75, 0x61, 0x6c, 0x69,
-	0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x66, 0x69,
-	0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x05, 0x76, 0x61,
-	0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xe2, 0x04, 0x0a, 0x13, 0x51, 0x75, 0x61, 0x6c,
-	0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12,
-	0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12,
-	0x25, 0x0a, 0x0e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d,
-	0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61,
-	0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x48, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18,
-	0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x32, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x70, 0x61, 0x63,
-	0x6b, 0x65, 0x74, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x66, 0x69,
-	0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x66, 0x69, 0x63, 0x61,
-	0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65,
-	0x12, 0x21, 0x0a, 0x0c, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74,
-	0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x53,
-	0x65, 0x6e, 0x74, 0x12, 0x29, 0x0a, 0x10, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x5f, 0x72,
-	0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, 0x70,
-	0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x12, 0x23,
-	0x0a, 0x0d, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18,
-	0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x45, 0x72,
-	0x72, 0x6f, 0x72, 0x12, 0x27, 0x0a, 0x0f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x5f, 0x64,
-	0x72, 0x6f, 0x70, 0x70, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x70, 0x61,
-	0x63, 0x6b, 0x65, 0x74, 0x73, 0x44, 0x72, 0x6f, 0x70, 0x70, 0x65, 0x64, 0x12, 0x39, 0x0a, 0x0a,
-	0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b,
-	0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62,
-	0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x73, 0x74,
-	0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x35, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74,
-	0x69, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
-	0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65,
-	0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x42,
-	0x0a, 0x1e, 0x65, 0x78, 0x70, 0x65, 0x63, 0x74, 0x65, 0x64, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x5f,
-	0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64,
-	0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x1a, 0x65, 0x78, 0x70, 0x65, 0x63, 0x74, 0x65, 0x64,
-	0x52, 0x61, 0x74, 0x65, 0x42, 0x79, 0x74, 0x65, 0x73, 0x50, 0x65, 0x72, 0x53, 0x65, 0x63, 0x6f,
-	0x6e, 0x64, 0x12, 0x4c, 0x0a, 0x23, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74,
-	0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x70,
-	0x65, 0x72, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x04, 0x52,
-	0x1f, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x61,
-	0x74, 0x65, 0x42, 0x79, 0x74, 0x65, 0x73, 0x50, 0x65, 0x72, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64,
-	0x12, 0x2a, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b,
-	0x32, 0x12, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74,
-	0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x21, 0x0a, 0x0d,
-	0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a,
-	0x03, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x03, 0x69, 0x64, 0x73, 0x22,
-	0xb7, 0x01, 0x0a, 0x0e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
-	0x73, 0x65, 0x12, 0x55, 0x0a, 0x07, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x01, 0x20,
-	0x03, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x70, 0x61, 0x63, 0x6b, 0x65,
-	0x74, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x66, 0x69, 0x63, 0x61,
-	0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f,
-	0x6e, 0x73, 0x65, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79,
-	0x52, 0x07, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x1a, 0x4e, 0x0a, 0x0c, 0x52, 0x65, 0x73,
-	0x75, 0x6c, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79,
-	0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x28, 0x0a, 0x05, 0x76,
-	0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x6f, 0x6f,
-	0x67, 0x6c, 0x65, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x05,
-	0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x15, 0x0a, 0x13, 0x43, 0x61, 0x70,
-	0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
-	0x22, 0xdf, 0x02, 0x0a, 0x14, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65,
-	0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2e, 0x0a, 0x04, 0x74, 0x69, 0x6d,
-	0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
-	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74,
-	0x61, 0x6d, 0x70, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x6e, 0x74, 0x70,
-	0x5f, 0x73, 0x79, 0x6e, 0x63, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x6e,
-	0x74, 0x70, 0x53, 0x79, 0x6e, 0x63, 0x65, 0x64, 0x12, 0x53, 0x0a, 0x09, 0x67, 0x65, 0x6e, 0x65,
-	0x72, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x67, 0x6e,
-	0x6f, 0x69, 0x2e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x71,
-	0x75, 0x61, 0x6c, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x47, 0x65, 0x6e,
-	0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69,
-	0x65, 0x73, 0x52, 0x09, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x53, 0x0a,
-	0x09, 0x72, 0x65, 0x66, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b,
-	0x32, 0x35, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x6c,
+	0x6f, 0x6e, 0x48, 0x00, 0x52, 0x0b, 0x70, 0x6d, 0x64, 0x4c, 0x6f, 0x6f, 0x70, 0x62, 0x61, 0x63,
+	0x6b, 0x12, 0x60, 0x0a, 0x0d, 0x61, 0x73, 0x69, 0x63, 0x5f, 0x6c, 0x6f, 0x6f, 0x70, 0x62, 0x61,
+	0x63, 0x6b, 0x18, 0x66, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e,
+	0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x71, 0x75, 0x61, 0x6c,
+	0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x41, 0x73, 0x69, 0x63, 0x4c, 0x6f,
+	0x6f, 0x70, 0x62, 0x61, 0x63, 0x6b, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74,
+	0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x0c, 0x61, 0x73, 0x69, 0x63, 0x4c, 0x6f, 0x6f, 0x70, 0x62,
+	0x61, 0x63, 0x6b, 0x42, 0x0f, 0x0a, 0x0d, 0x6c, 0x6f, 0x6f, 0x70, 0x62, 0x61, 0x63, 0x6b, 0x5f,
+	0x6d, 0x6f, 0x64, 0x65, 0x22, 0x1a, 0x0a, 0x18, 0x50, 0x6d, 0x64, 0x4c, 0x6f, 0x6f, 0x70, 0x62,
+	0x61, 0x63, 0x6b, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+	0x22, 0x1b, 0x0a, 0x19, 0x41, 0x73, 0x69, 0x63, 0x4c, 0x6f, 0x6f, 0x70, 0x62, 0x61, 0x63, 0x6b,
+	0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x1e, 0x0a,
+	0x0a, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x69,
+	0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x03, 0x69, 0x64, 0x73, 0x22, 0xd2, 0x01,
+	0x0a, 0x0b, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x52, 0x0a,
+	0x07, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x38,
+	0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x6c, 0x69, 0x6e,
+	0x6b, 0x5f, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e,
+	0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x52, 0x65, 0x73, 0x75,
+	0x6c, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74,
+	0x73, 0x1a, 0x6f, 0x0a, 0x0c, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72,
+	0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03,
+	0x6b, 0x65, 0x79, 0x12, 0x49, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01,
+	0x28, 0x0b, 0x32, 0x33, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74,
+	0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74,
+	0x69, 0x6f, 0x6e, 0x2e, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+	0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02,
+	0x38, 0x01, 0x22, 0xe2, 0x04, 0x0a, 0x13, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x66, 0x69, 0x63, 0x61,
+	0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64,
+	0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x69, 0x6e,
+	0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01,
+	0x28, 0x09, 0x52, 0x0d, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x4e, 0x61, 0x6d,
+	0x65, 0x12, 0x48, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e,
+	0x32, 0x32, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x6c,
 	0x69, 0x6e, 0x6b, 0x5f, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
-	0x6e, 0x2e, 0x52, 0x65, 0x66, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x43, 0x61, 0x70, 0x61, 0x62,
-	0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x52, 0x09, 0x72, 0x65, 0x66, 0x6c, 0x65, 0x63, 0x74,
-	0x6f, 0x72, 0x12, 0x4e, 0x0a, 0x24, 0x6d, 0x61, 0x78, 0x5f, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72,
-	0x69, 0x63, 0x61, 0x6c, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x5f, 0x70, 0x65, 0x72,
-	0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04,
-	0x52, 0x20, 0x6d, 0x61, 0x78, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x69, 0x63, 0x61, 0x6c, 0x52,
-	0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x50, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61,
-	0x63, 0x65, 0x22, 0xe4, 0x02, 0x0a, 0x1b, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x47, 0x65, 0x6e,
-	0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69,
-	0x65, 0x73, 0x12, 0x17, 0x0a, 0x07, 0x6d, 0x61, 0x78, 0x5f, 0x62, 0x70, 0x73, 0x18, 0x01, 0x20,
-	0x01, 0x28, 0x04, 0x52, 0x06, 0x6d, 0x61, 0x78, 0x42, 0x70, 0x73, 0x12, 0x17, 0x0a, 0x07, 0x6d,
-	0x61, 0x78, 0x5f, 0x70, 0x70, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x6d, 0x61,
-	0x78, 0x50, 0x70, 0x73, 0x12, 0x17, 0x0a, 0x07, 0x6d, 0x69, 0x6e, 0x5f, 0x6d, 0x74, 0x75, 0x18,
-	0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x6d, 0x69, 0x6e, 0x4d, 0x74, 0x75, 0x12, 0x17, 0x0a,
-	0x07, 0x6d, 0x61, 0x78, 0x5f, 0x6d, 0x74, 0x75, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06,
-	0x6d, 0x61, 0x78, 0x4d, 0x74, 0x75, 0x12, 0x47, 0x0a, 0x12, 0x6d, 0x69, 0x6e, 0x5f, 0x73, 0x65,
-	0x74, 0x75, 0x70, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01,
-	0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74,
-	0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x10, 0x6d,
-	0x69, 0x6e, 0x53, 0x65, 0x74, 0x75, 0x70, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12,
-	0x4d, 0x0a, 0x15, 0x6d, 0x69, 0x6e, 0x5f, 0x74, 0x65, 0x61, 0x72, 0x64, 0x6f, 0x77, 0x6e, 0x5f,
-	0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19,
+	0x6e, 0x2e, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53,
+	0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x70,
+	0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28,
+	0x04, 0x52, 0x0b, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x53, 0x65, 0x6e, 0x74, 0x12, 0x29,
+	0x0a, 0x10, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76,
+	0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74,
+	0x73, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x70, 0x61, 0x63,
+	0x6b, 0x65, 0x74, 0x73, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04,
+	0x52, 0x0c, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x27,
+	0x0a, 0x0f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x5f, 0x64, 0x72, 0x6f, 0x70, 0x70, 0x65,
+	0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73,
+	0x44, 0x72, 0x6f, 0x70, 0x70, 0x65, 0x64, 0x12, 0x39, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74,
+	0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f,
+	0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69,
+	0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69,
+	0x6d, 0x65, 0x12, 0x35, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x09,
+	0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72,
+	0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70,
+	0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x42, 0x0a, 0x1e, 0x65, 0x78, 0x70,
+	0x65, 0x63, 0x74, 0x65, 0x64, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73,
+	0x5f, 0x70, 0x65, 0x72, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28,
+	0x04, 0x52, 0x1a, 0x65, 0x78, 0x70, 0x65, 0x63, 0x74, 0x65, 0x64, 0x52, 0x61, 0x74, 0x65, 0x42,
+	0x79, 0x74, 0x65, 0x73, 0x50, 0x65, 0x72, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x12, 0x4c, 0x0a,
+	0x23, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72,
+	0x61, 0x74, 0x65, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x73, 0x65,
+	0x63, 0x6f, 0x6e, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x04, 0x52, 0x1f, 0x71, 0x75, 0x61, 0x6c,
+	0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x61, 0x74, 0x65, 0x42, 0x79, 0x74,
+	0x65, 0x73, 0x50, 0x65, 0x72, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x12, 0x2a, 0x0a, 0x06, 0x73,
+	0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x6f,
+	0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52,
+	0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x21, 0x0a, 0x0d, 0x44, 0x65, 0x6c, 0x65, 0x74,
+	0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x69, 0x64, 0x73, 0x18,
+	0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x03, 0x69, 0x64, 0x73, 0x22, 0xb7, 0x01, 0x0a, 0x0e, 0x44,
+	0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x55, 0x0a,
+	0x07, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3b,
+	0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x6c, 0x69, 0x6e,
+	0x6b, 0x5f, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e,
+	0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x52,
+	0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x72, 0x65, 0x73,
+	0x75, 0x6c, 0x74, 0x73, 0x1a, 0x4e, 0x0a, 0x0c, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x45,
+	0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28,
+	0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x28, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18,
+	0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x72,
+	0x70, 0x63, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65,
+	0x3a, 0x02, 0x38, 0x01, 0x22, 0x15, 0x0a, 0x13, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69,
+	0x74, 0x69, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0xdf, 0x02, 0x0a, 0x14,
+	0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70,
+	0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2e, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01,
+	0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74,
+	0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x04,
+	0x74, 0x69, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x6e, 0x74, 0x70, 0x5f, 0x73, 0x79, 0x6e, 0x63,
+	0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x6e, 0x74, 0x70, 0x53, 0x79, 0x6e,
+	0x63, 0x65, 0x64, 0x12, 0x53, 0x0a, 0x09, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72,
+	0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x70, 0x61,
+	0x63, 0x6b, 0x65, 0x74, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x66,
+	0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x6f,
+	0x72, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x52, 0x09, 0x67,
+	0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x53, 0x0a, 0x09, 0x72, 0x65, 0x66, 0x6c,
+	0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x67, 0x6e,
+	0x6f, 0x69, 0x2e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x71,
+	0x75, 0x61, 0x6c, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x66,
+	0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69,
+	0x65, 0x73, 0x52, 0x09, 0x72, 0x65, 0x66, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x4e, 0x0a,
+	0x24, 0x6d, 0x61, 0x78, 0x5f, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x69, 0x63, 0x61, 0x6c, 0x5f,
+	0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x74, 0x65,
+	0x72, 0x66, 0x61, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x20, 0x6d, 0x61, 0x78,
+	0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x69, 0x63, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74,
+	0x73, 0x50, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x22, 0xe4, 0x02,
+	0x0a, 0x1b, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x6f,
+	0x72, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x17, 0x0a,
+	0x07, 0x6d, 0x61, 0x78, 0x5f, 0x62, 0x70, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06,
+	0x6d, 0x61, 0x78, 0x42, 0x70, 0x73, 0x12, 0x17, 0x0a, 0x07, 0x6d, 0x61, 0x78, 0x5f, 0x70, 0x70,
+	0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x6d, 0x61, 0x78, 0x50, 0x70, 0x73, 0x12,
+	0x17, 0x0a, 0x07, 0x6d, 0x69, 0x6e, 0x5f, 0x6d, 0x74, 0x75, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d,
+	0x52, 0x06, 0x6d, 0x69, 0x6e, 0x4d, 0x74, 0x75, 0x12, 0x17, 0x0a, 0x07, 0x6d, 0x61, 0x78, 0x5f,
+	0x6d, 0x74, 0x75, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x6d, 0x61, 0x78, 0x4d, 0x74,
+	0x75, 0x12, 0x47, 0x0a, 0x12, 0x6d, 0x69, 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x75, 0x70, 0x5f, 0x64,
+	0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e,
+	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e,
+	0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x10, 0x6d, 0x69, 0x6e, 0x53, 0x65, 0x74,
+	0x75, 0x70, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4d, 0x0a, 0x15, 0x6d, 0x69,
+	0x6e, 0x5f, 0x74, 0x65, 0x61, 0x72, 0x64, 0x6f, 0x77, 0x6e, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74,
+	0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
+	0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61,
+	0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x6d, 0x69, 0x6e, 0x54, 0x65, 0x61, 0x72, 0x64, 0x6f, 0x77,
+	0x6e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x49, 0x0a, 0x13, 0x6d, 0x69, 0x6e,
+	0x5f, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c,
+	0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
+	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f,
+	0x6e, 0x52, 0x11, 0x6d, 0x69, 0x6e, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x49, 0x6e, 0x74, 0x65,
+	0x72, 0x76, 0x61, 0x6c, 0x22, 0xf8, 0x03, 0x0a, 0x1a, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x49,
+	0x6e, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74,
+	0x69, 0x65, 0x73, 0x12, 0x17, 0x0a, 0x07, 0x6d, 0x69, 0x6e, 0x5f, 0x6d, 0x74, 0x75, 0x18, 0x01,
+	0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x6d, 0x69, 0x6e, 0x4d, 0x74, 0x75, 0x12, 0x17, 0x0a, 0x07,
+	0x6d, 0x61, 0x78, 0x5f, 0x6d, 0x74, 0x75, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x6d,
+	0x61, 0x78, 0x4d, 0x74, 0x75, 0x12, 0x30, 0x0a, 0x14, 0x6d, 0x69, 0x6e, 0x5f, 0x69, 0x6e, 0x6a,
+	0x65, 0x63, 0x74, 0x65, 0x64, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x18, 0x03, 0x20,
+	0x01, 0x28, 0x0d, 0x52, 0x12, 0x6d, 0x69, 0x6e, 0x49, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x65, 0x64,
+	0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x12, 0x30, 0x0a, 0x14, 0x6d, 0x61, 0x78, 0x5f, 0x69,
+	0x6e, 0x6a, 0x65, 0x63, 0x74, 0x65, 0x64, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x18,
+	0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x12, 0x6d, 0x61, 0x78, 0x49, 0x6e, 0x6a, 0x65, 0x63, 0x74,
+	0x65, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x12, 0x47, 0x0a, 0x12, 0x6d, 0x69, 0x6e,
+	0x5f, 0x73, 0x65, 0x74, 0x75, 0x70, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18,
+	0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70,
+	0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+	0x52, 0x10, 0x6d, 0x69, 0x6e, 0x53, 0x65, 0x74, 0x75, 0x70, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69,
+	0x6f, 0x6e, 0x12, 0x4d, 0x0a, 0x15, 0x6d, 0x69, 0x6e, 0x5f, 0x74, 0x65, 0x61, 0x72, 0x64, 0x6f,
+	0x77, 0x6e, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28,
+	0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
+	0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x6d, 0x69,
+	0x6e, 0x54, 0x65, 0x61, 0x72, 0x64, 0x6f, 0x77, 0x6e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f,
+	0x6e, 0x12, 0x49, 0x0a, 0x13, 0x6d, 0x69, 0x6e, 0x5f, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x5f,
+	0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19,
 	0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66,
-	0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x6d, 0x69, 0x6e, 0x54, 0x65,
-	0x61, 0x72, 0x64, 0x6f, 0x77, 0x6e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x49,
-	0x0a, 0x13, 0x6d, 0x69, 0x6e, 0x5f, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x5f, 0x69, 0x6e, 0x74,
-	0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f,
-	0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75,
-	0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x11, 0x6d, 0x69, 0x6e, 0x53, 0x61, 0x6d, 0x70, 0x6c,
-	0x65, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x22, 0xf8, 0x03, 0x0a, 0x1a, 0x50, 0x61,
-	0x63, 0x6b, 0x65, 0x74, 0x49, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x43, 0x61, 0x70, 0x61,
-	0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x17, 0x0a, 0x07, 0x6d, 0x69, 0x6e, 0x5f,
-	0x6d, 0x74, 0x75, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x6d, 0x69, 0x6e, 0x4d, 0x74,
-	0x75, 0x12, 0x17, 0x0a, 0x07, 0x6d, 0x61, 0x78, 0x5f, 0x6d, 0x74, 0x75, 0x18, 0x02, 0x20, 0x01,
-	0x28, 0x0d, 0x52, 0x06, 0x6d, 0x61, 0x78, 0x4d, 0x74, 0x75, 0x12, 0x30, 0x0a, 0x14, 0x6d, 0x69,
-	0x6e, 0x5f, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x65, 0x64, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65,
-	0x74, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x12, 0x6d, 0x69, 0x6e, 0x49, 0x6e, 0x6a,
-	0x65, 0x63, 0x74, 0x65, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x12, 0x30, 0x0a, 0x14,
-	0x6d, 0x61, 0x78, 0x5f, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x65, 0x64, 0x5f, 0x70, 0x61, 0x63,
-	0x6b, 0x65, 0x74, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x12, 0x6d, 0x61, 0x78, 0x49,
-	0x6e, 0x6a, 0x65, 0x63, 0x74, 0x65, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x12, 0x47,
-	0x0a, 0x12, 0x6d, 0x69, 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x75, 0x70, 0x5f, 0x64, 0x75, 0x72, 0x61,
-	0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f,
+	0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x11, 0x6d, 0x69, 0x6e, 0x53, 0x61,
+	0x6d, 0x70, 0x6c, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x12, 0x61, 0x0a, 0x0e,
+	0x6c, 0x6f, 0x6f, 0x70, 0x62, 0x61, 0x63, 0x6b, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x08,
+	0x20, 0x03, 0x28, 0x0e, 0x32, 0x3a, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x70, 0x61, 0x63, 0x6b,
+	0x65, 0x74, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x66, 0x69, 0x63,
+	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x49, 0x6e, 0x6a, 0x65,
+	0x63, 0x74, 0x6f, 0x72, 0x4c, 0x6f, 0x6f, 0x70, 0x62, 0x61, 0x63, 0x6b, 0x4d, 0x6f, 0x64, 0x65,
+	0x52, 0x0d, 0x6c, 0x6f, 0x6f, 0x70, 0x62, 0x61, 0x63, 0x6b, 0x4d, 0x6f, 0x64, 0x65, 0x73, 0x22,
+	0xe4, 0x01, 0x0a, 0x15, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x43, 0x61, 0x70,
+	0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x66, 0x0a, 0x10, 0x70, 0x61, 0x63,
+	0x6b, 0x65, 0x74, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x01, 0x20,
+	0x01, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x70, 0x61, 0x63, 0x6b, 0x65,
+	0x74, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x66, 0x69, 0x63, 0x61,
+	0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x47, 0x65, 0x6e, 0x65, 0x72,
+	0x61, 0x74, 0x6f, 0x72, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73,
+	0x52, 0x0f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x6f,
+	0x72, 0x12, 0x63, 0x0a, 0x0f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x6e, 0x6a, 0x65,
+	0x63, 0x74, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x67, 0x6e, 0x6f,
+	0x69, 0x2e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x71, 0x75,
+	0x61, 0x6c, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x50, 0x61, 0x63, 0x6b,
+	0x65, 0x74, 0x49, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69,
+	0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x52, 0x0e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x49, 0x6e,
+	0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x22, 0xb1, 0x01, 0x0a, 0x17, 0x50, 0x6d, 0x64, 0x4c, 0x6f,
+	0x6f, 0x70, 0x62, 0x61, 0x63, 0x6b, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69,
+	0x65, 0x73, 0x12, 0x47, 0x0a, 0x12, 0x6d, 0x69, 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x75, 0x70, 0x5f,
+	0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19,
+	0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66,
+	0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x10, 0x6d, 0x69, 0x6e, 0x53, 0x65,
+	0x74, 0x75, 0x70, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4d, 0x0a, 0x15, 0x6d,
+	0x69, 0x6e, 0x5f, 0x74, 0x65, 0x61, 0x72, 0x64, 0x6f, 0x77, 0x6e, 0x5f, 0x64, 0x75, 0x72, 0x61,
+	0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f,
 	0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72,
-	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x10, 0x6d, 0x69, 0x6e, 0x53, 0x65, 0x74, 0x75, 0x70, 0x44,
-	0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4d, 0x0a, 0x15, 0x6d, 0x69, 0x6e, 0x5f, 0x74,
-	0x65, 0x61, 0x72, 0x64, 0x6f, 0x77, 0x6e, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e,
-	0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
-	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f,
-	0x6e, 0x52, 0x13, 0x6d, 0x69, 0x6e, 0x54, 0x65, 0x61, 0x72, 0x64, 0x6f, 0x77, 0x6e, 0x44, 0x75,
-	0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x49, 0x0a, 0x13, 0x6d, 0x69, 0x6e, 0x5f, 0x73, 0x61,
-	0x6d, 0x70, 0x6c, 0x65, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x07, 0x20,
-	0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f,
-	0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x11,
-	0x6d, 0x69, 0x6e, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61,
-	0x6c, 0x12, 0x61, 0x0a, 0x0e, 0x6c, 0x6f, 0x6f, 0x70, 0x62, 0x61, 0x63, 0x6b, 0x5f, 0x6d, 0x6f,
-	0x64, 0x65, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x3a, 0x2e, 0x67, 0x6e, 0x6f, 0x69,
-	0x2e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x71, 0x75, 0x61,
-	0x6c, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x65,
-	0x74, 0x49, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x4c, 0x6f, 0x6f, 0x70, 0x62, 0x61, 0x63,
-	0x6b, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x0d, 0x6c, 0x6f, 0x6f, 0x70, 0x62, 0x61, 0x63, 0x6b, 0x4d,
-	0x6f, 0x64, 0x65, 0x73, 0x22, 0xe4, 0x01, 0x0a, 0x15, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74,
-	0x6f, 0x72, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x66,
-	0x0a, 0x10, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74,
-	0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e,
-	0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x71, 0x75, 0x61, 0x6c,
-	0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74,
-	0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c,
-	0x69, 0x74, 0x69, 0x65, 0x73, 0x52, 0x0f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x47, 0x65, 0x6e,
-	0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x63, 0x0a, 0x0f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74,
-	0x5f, 0x69, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32,
-	0x3a, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x6c, 0x69,
-	0x6e, 0x6b, 0x5f, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
-	0x2e, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x49, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x43,
-	0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x52, 0x0e, 0x70, 0x61, 0x63,
-	0x6b, 0x65, 0x74, 0x49, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x22, 0xb1, 0x01, 0x0a, 0x17,
-	0x50, 0x6d, 0x64, 0x4c, 0x6f, 0x6f, 0x70, 0x62, 0x61, 0x63, 0x6b, 0x43, 0x61, 0x70, 0x61, 0x62,
+	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x6d, 0x69, 0x6e, 0x54, 0x65, 0x61, 0x72, 0x64, 0x6f,
+	0x77, 0x6e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xfc, 0x01, 0x0a, 0x18, 0x41,
+	0x73, 0x69, 0x63, 0x4c, 0x6f, 0x6f, 0x70, 0x62, 0x61, 0x63, 0x6b, 0x43, 0x61, 0x70, 0x61, 0x62,
 	0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x47, 0x0a, 0x12, 0x6d, 0x69, 0x6e, 0x5f, 0x73,
 	0x65, 0x74, 0x75, 0x70, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20,
 	0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f,
@@ -2141,143 +2099,131 @@ var file_packet_link_qualification_packet_link_qualification_proto_rawDesc = []b
 	0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32,
 	0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75,
 	0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x6d, 0x69, 0x6e, 0x54,
-	0x65, 0x61, 0x72, 0x64, 0x6f, 0x77, 0x6e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22,
-	0xfc, 0x01, 0x0a, 0x18, 0x41, 0x73, 0x69, 0x63, 0x4c, 0x6f, 0x6f, 0x70, 0x62, 0x61, 0x63, 0x6b,
-	0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x47, 0x0a, 0x12,
-	0x6d, 0x69, 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x75, 0x70, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69,
-	0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
-	0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74,
-	0x69, 0x6f, 0x6e, 0x52, 0x10, 0x6d, 0x69, 0x6e, 0x53, 0x65, 0x74, 0x75, 0x70, 0x44, 0x75, 0x72,
-	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4d, 0x0a, 0x15, 0x6d, 0x69, 0x6e, 0x5f, 0x74, 0x65, 0x61,
-	0x72, 0x64, 0x6f, 0x77, 0x6e, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02,
-	0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72,
-	0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52,
-	0x13, 0x6d, 0x69, 0x6e, 0x54, 0x65, 0x61, 0x72, 0x64, 0x6f, 0x77, 0x6e, 0x44, 0x75, 0x72, 0x61,
-	0x74, 0x69, 0x6f, 0x6e, 0x12, 0x48, 0x0a, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x18, 0x03,
-	0x20, 0x03, 0x28, 0x0e, 0x32, 0x30, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x70, 0x61, 0x63, 0x6b,
-	0x65, 0x74, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x66, 0x69, 0x63,
-	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63,
-	0x68, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x22, 0xd2,
-	0x01, 0x0a, 0x15, 0x52, 0x65, 0x66, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x43, 0x61, 0x70, 0x61,
-	0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x5a, 0x0a, 0x0c, 0x70, 0x6d, 0x64, 0x5f,
-	0x6c, 0x6f, 0x6f, 0x70, 0x62, 0x61, 0x63, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37,
+	0x65, 0x61, 0x72, 0x64, 0x6f, 0x77, 0x6e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12,
+	0x48, 0x0a, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0e, 0x32,
+	0x30, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x6c, 0x69,
+	0x6e, 0x6b, 0x5f, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+	0x2e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x46, 0x69, 0x65, 0x6c,
+	0x64, 0x52, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x22, 0xd2, 0x01, 0x0a, 0x15, 0x52, 0x65,
+	0x66, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74,
+	0x69, 0x65, 0x73, 0x12, 0x5a, 0x0a, 0x0c, 0x70, 0x6d, 0x64, 0x5f, 0x6c, 0x6f, 0x6f, 0x70, 0x62,
+	0x61, 0x63, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x67, 0x6e, 0x6f, 0x69,
+	0x2e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x71, 0x75, 0x61,
+	0x6c, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x50, 0x6d, 0x64, 0x4c, 0x6f,
+	0x6f, 0x70, 0x62, 0x61, 0x63, 0x6b, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69,
+	0x65, 0x73, 0x52, 0x0b, 0x70, 0x6d, 0x64, 0x4c, 0x6f, 0x6f, 0x70, 0x62, 0x61, 0x63, 0x6b, 0x12,
+	0x5d, 0x0a, 0x0d, 0x61, 0x73, 0x69, 0x63, 0x5f, 0x6c, 0x6f, 0x6f, 0x70, 0x62, 0x61, 0x63, 0x6b,
+	0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x70, 0x61,
+	0x63, 0x6b, 0x65, 0x74, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x66,
+	0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x41, 0x73, 0x69, 0x63, 0x4c, 0x6f, 0x6f, 0x70,
+	0x62, 0x61, 0x63, 0x6b, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73,
+	0x52, 0x0c, 0x61, 0x73, 0x69, 0x63, 0x4c, 0x6f, 0x6f, 0x70, 0x62, 0x61, 0x63, 0x6b, 0x22, 0x0d,
+	0x0a, 0x0b, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x54, 0x0a,
+	0x0c, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x44, 0x0a,
+	0x07, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a,
 	0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x6c, 0x69, 0x6e,
 	0x6b, 0x5f, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e,
-	0x50, 0x6d, 0x64, 0x4c, 0x6f, 0x6f, 0x70, 0x62, 0x61, 0x63, 0x6b, 0x43, 0x61, 0x70, 0x61, 0x62,
-	0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x52, 0x0b, 0x70, 0x6d, 0x64, 0x4c, 0x6f, 0x6f, 0x70,
-	0x62, 0x61, 0x63, 0x6b, 0x12, 0x5d, 0x0a, 0x0d, 0x61, 0x73, 0x69, 0x63, 0x5f, 0x6c, 0x6f, 0x6f,
-	0x70, 0x62, 0x61, 0x63, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x67, 0x6e,
-	0x6f, 0x69, 0x2e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x71,
-	0x75, 0x61, 0x6c, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x41, 0x73, 0x69,
-	0x63, 0x4c, 0x6f, 0x6f, 0x70, 0x62, 0x61, 0x63, 0x6b, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c,
-	0x69, 0x74, 0x69, 0x65, 0x73, 0x52, 0x0c, 0x61, 0x73, 0x69, 0x63, 0x4c, 0x6f, 0x6f, 0x70, 0x62,
-	0x61, 0x63, 0x6b, 0x22, 0x0d, 0x0a, 0x0b, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65,
-	0x73, 0x74, 0x22, 0x54, 0x0a, 0x0c, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
-	0x73, 0x65, 0x12, 0x44, 0x0a, 0x07, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x01, 0x20,
-	0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x70, 0x61, 0x63, 0x6b, 0x65,
-	0x74, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x66, 0x69, 0x63, 0x61,
-	0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52,
-	0x07, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x22, 0x8d, 0x01, 0x0a, 0x0a, 0x4c, 0x69, 0x73,
-	0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20,
-	0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x48, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65,
-	0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x32, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x70, 0x61,
-	0x63, 0x6b, 0x65, 0x74, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x66,
-	0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x66, 0x69, 0x63,
-	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74,
-	0x65, 0x12, 0x25, 0x0a, 0x0e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x6e,
-	0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x69, 0x6e, 0x74, 0x65, 0x72,
-	0x66, 0x61, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x2a, 0xfb, 0x01, 0x0a, 0x12, 0x51, 0x75, 0x61,
-	0x6c, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12,
-	0x23, 0x0a, 0x1f, 0x51, 0x55, 0x41, 0x4c, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e,
-	0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49,
-	0x45, 0x44, 0x10, 0x00, 0x12, 0x1d, 0x0a, 0x19, 0x51, 0x55, 0x41, 0x4c, 0x49, 0x46, 0x49, 0x43,
-	0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x4f,
-	0x52, 0x10, 0x01, 0x12, 0x1c, 0x0a, 0x18, 0x51, 0x55, 0x41, 0x4c, 0x49, 0x46, 0x49, 0x43, 0x41,
-	0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x49, 0x44, 0x4c, 0x45, 0x10,
-	0x02, 0x12, 0x1d, 0x0a, 0x19, 0x51, 0x55, 0x41, 0x4c, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x49,
-	0x4f, 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x53, 0x45, 0x54, 0x55, 0x50, 0x10, 0x03,
-	0x12, 0x1f, 0x0a, 0x1b, 0x51, 0x55, 0x41, 0x4c, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x49, 0x4f,
-	0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x52, 0x55, 0x4e, 0x4e, 0x49, 0x4e, 0x47, 0x10,
-	0x04, 0x12, 0x20, 0x0a, 0x1c, 0x51, 0x55, 0x41, 0x4c, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x49,
-	0x4f, 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x54, 0x45, 0x41, 0x52, 0x44, 0x4f, 0x57,
-	0x4e, 0x10, 0x05, 0x12, 0x21, 0x0a, 0x1d, 0x51, 0x55, 0x41, 0x4c, 0x49, 0x46, 0x49, 0x43, 0x41,
-	0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x4c,
-	0x45, 0x54, 0x45, 0x44, 0x10, 0x06, 0x2a, 0x9a, 0x01, 0x0a, 0x1a, 0x50, 0x61, 0x63, 0x6b, 0x65,
-	0x74, 0x49, 0x6e, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x4c, 0x6f, 0x6f, 0x70, 0x62, 0x61, 0x63,
-	0x6b, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x2d, 0x0a, 0x29, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f,
-	0x49, 0x4e, 0x4a, 0x45, 0x43, 0x54, 0x4f, 0x52, 0x5f, 0x4c, 0x4f, 0x4f, 0x50, 0x42, 0x41, 0x43,
-	0x4b, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49,
-	0x45, 0x44, 0x10, 0x00, 0x12, 0x25, 0x0a, 0x21, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x49,
-	0x4e, 0x4a, 0x45, 0x43, 0x54, 0x4f, 0x52, 0x5f, 0x4c, 0x4f, 0x4f, 0x50, 0x42, 0x41, 0x43, 0x4b,
-	0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x50, 0x4d, 0x44, 0x10, 0x01, 0x12, 0x26, 0x0a, 0x22, 0x50,
-	0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x49, 0x4e, 0x4a, 0x45, 0x43, 0x54, 0x4f, 0x52, 0x5f, 0x4c,
-	0x4f, 0x4f, 0x50, 0x42, 0x41, 0x43, 0x4b, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x41, 0x53, 0x49,
-	0x43, 0x10, 0x02, 0x2a, 0x87, 0x01, 0x0a, 0x10, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x4d, 0x61,
-	0x74, 0x63, 0x68, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x12, 0x22, 0x0a, 0x1e, 0x48, 0x45, 0x41, 0x44,
-	0x45, 0x52, 0x5f, 0x4d, 0x41, 0x54, 0x43, 0x48, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x55,
-	0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x19, 0x0a, 0x15,
-	0x48, 0x45, 0x41, 0x44, 0x45, 0x52, 0x5f, 0x4d, 0x41, 0x54, 0x43, 0x48, 0x5f, 0x46, 0x49, 0x45,
-	0x4c, 0x44, 0x5f, 0x4c, 0x32, 0x10, 0x01, 0x12, 0x19, 0x0a, 0x15, 0x48, 0x45, 0x41, 0x44, 0x45,
-	0x52, 0x5f, 0x4d, 0x41, 0x54, 0x43, 0x48, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x4c, 0x33,
-	0x10, 0x02, 0x12, 0x19, 0x0a, 0x15, 0x48, 0x45, 0x41, 0x44, 0x45, 0x52, 0x5f, 0x4d, 0x41, 0x54,
-	0x43, 0x48, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x4c, 0x34, 0x10, 0x03, 0x32, 0xa3, 0x04,
-	0x0a, 0x11, 0x4c, 0x69, 0x6e, 0x6b, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74,
-	0x69, 0x6f, 0x6e, 0x12, 0x67, 0x0a, 0x06, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x2d, 0x2e,
-	0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x6c, 0x69, 0x6e, 0x6b,
-	0x5f, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x43,
-	0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x67,
-	0x6e, 0x6f, 0x69, 0x2e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x5f,
-	0x71, 0x75, 0x61, 0x6c, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x72,
-	0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5e, 0x0a, 0x03,
-	0x47, 0x65, 0x74, 0x12, 0x2a, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x70, 0x61, 0x63, 0x6b, 0x65,
-	0x74, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x66, 0x69, 0x63, 0x61,
-	0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
-	0x2b, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x6c, 0x69,
-	0x6e, 0x6b, 0x5f, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
-	0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x79, 0x0a, 0x0c,
-	0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x33, 0x2e, 0x67,
+	0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x07, 0x72, 0x65, 0x73, 0x75,
+	0x6c, 0x74, 0x73, 0x22, 0x8d, 0x01, 0x0a, 0x0a, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x75,
+	0x6c, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02,
+	0x69, 0x64, 0x12, 0x48, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,
+	0x0e, 0x32, 0x32, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f,
+	0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69,
+	0x6f, 0x6e, 0x2e, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+	0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x25, 0x0a, 0x0e,
+	0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03,
+	0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x4e,
+	0x61, 0x6d, 0x65, 0x2a, 0xfb, 0x01, 0x0a, 0x12, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x66, 0x69, 0x63,
+	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x23, 0x0a, 0x1f, 0x51, 0x55,
+	0x41, 0x4c, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54,
+	0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12,
+	0x1d, 0x0a, 0x19, 0x51, 0x55, 0x41, 0x4c, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e,
+	0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x01, 0x12, 0x1c,
+	0x0a, 0x18, 0x51, 0x55, 0x41, 0x4c, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f,
+	0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x49, 0x44, 0x4c, 0x45, 0x10, 0x02, 0x12, 0x1d, 0x0a, 0x19,
+	0x51, 0x55, 0x41, 0x4c, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x54,
+	0x41, 0x54, 0x45, 0x5f, 0x53, 0x45, 0x54, 0x55, 0x50, 0x10, 0x03, 0x12, 0x1f, 0x0a, 0x1b, 0x51,
+	0x55, 0x41, 0x4c, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x54, 0x41,
+	0x54, 0x45, 0x5f, 0x52, 0x55, 0x4e, 0x4e, 0x49, 0x4e, 0x47, 0x10, 0x04, 0x12, 0x20, 0x0a, 0x1c,
+	0x51, 0x55, 0x41, 0x4c, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x54,
+	0x41, 0x54, 0x45, 0x5f, 0x54, 0x45, 0x41, 0x52, 0x44, 0x4f, 0x57, 0x4e, 0x10, 0x05, 0x12, 0x21,
+	0x0a, 0x1d, 0x51, 0x55, 0x41, 0x4c, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f,
+	0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x4c, 0x45, 0x54, 0x45, 0x44, 0x10,
+	0x06, 0x2a, 0x9a, 0x01, 0x0a, 0x1a, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x49, 0x6e, 0x6a, 0x65,
+	0x63, 0x74, 0x6f, 0x72, 0x4c, 0x6f, 0x6f, 0x70, 0x62, 0x61, 0x63, 0x6b, 0x4d, 0x6f, 0x64, 0x65,
+	0x12, 0x2d, 0x0a, 0x29, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x49, 0x4e, 0x4a, 0x45, 0x43,
+	0x54, 0x4f, 0x52, 0x5f, 0x4c, 0x4f, 0x4f, 0x50, 0x42, 0x41, 0x43, 0x4b, 0x5f, 0x4d, 0x4f, 0x44,
+	0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12,
+	0x25, 0x0a, 0x21, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x49, 0x4e, 0x4a, 0x45, 0x43, 0x54,
+	0x4f, 0x52, 0x5f, 0x4c, 0x4f, 0x4f, 0x50, 0x42, 0x41, 0x43, 0x4b, 0x5f, 0x4d, 0x4f, 0x44, 0x45,
+	0x5f, 0x50, 0x4d, 0x44, 0x10, 0x01, 0x12, 0x26, 0x0a, 0x22, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54,
+	0x5f, 0x49, 0x4e, 0x4a, 0x45, 0x43, 0x54, 0x4f, 0x52, 0x5f, 0x4c, 0x4f, 0x4f, 0x50, 0x42, 0x41,
+	0x43, 0x4b, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x41, 0x53, 0x49, 0x43, 0x10, 0x02, 0x2a, 0x87,
+	0x01, 0x0a, 0x10, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x46, 0x69,
+	0x65, 0x6c, 0x64, 0x12, 0x22, 0x0a, 0x1e, 0x48, 0x45, 0x41, 0x44, 0x45, 0x52, 0x5f, 0x4d, 0x41,
+	0x54, 0x43, 0x48, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43,
+	0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x19, 0x0a, 0x15, 0x48, 0x45, 0x41, 0x44, 0x45,
+	0x52, 0x5f, 0x4d, 0x41, 0x54, 0x43, 0x48, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x4c, 0x32,
+	0x10, 0x01, 0x12, 0x19, 0x0a, 0x15, 0x48, 0x45, 0x41, 0x44, 0x45, 0x52, 0x5f, 0x4d, 0x41, 0x54,
+	0x43, 0x48, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x4c, 0x33, 0x10, 0x02, 0x12, 0x19, 0x0a,
+	0x15, 0x48, 0x45, 0x41, 0x44, 0x45, 0x52, 0x5f, 0x4d, 0x41, 0x54, 0x43, 0x48, 0x5f, 0x46, 0x49,
+	0x45, 0x4c, 0x44, 0x5f, 0x4c, 0x34, 0x10, 0x03, 0x32, 0xa3, 0x04, 0x0a, 0x11, 0x4c, 0x69, 0x6e,
+	0x6b, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x67,
+	0x0a, 0x06, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x2d, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e,
+	0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x71, 0x75, 0x61, 0x6c,
+	0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65,
+	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x70,
+	0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x71, 0x75, 0x61, 0x6c, 0x69,
+	0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52,
+	0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5e, 0x0a, 0x03, 0x47, 0x65, 0x74, 0x12, 0x2a,
+	0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x6c, 0x69, 0x6e,
+	0x6b, 0x5f, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e,
+	0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x67, 0x6e, 0x6f,
+	0x69, 0x2e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x71, 0x75,
+	0x61, 0x6c, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x52,
+	0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x79, 0x0a, 0x0c, 0x43, 0x61, 0x70, 0x61, 0x62,
+	0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x33, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x70,
+	0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x71, 0x75, 0x61, 0x6c, 0x69,
+	0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c,
+	0x69, 0x74, 0x69, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x67,
 	0x6e, 0x6f, 0x69, 0x2e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x5f,
 	0x71, 0x75, 0x61, 0x6c, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x61,
-	0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
-	0x74, 0x1a, 0x34, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f,
-	0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69,
-	0x6f, 0x6e, 0x2e, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x52,
-	0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x67, 0x0a, 0x06, 0x44, 0x65, 0x6c, 0x65, 0x74,
-	0x65, 0x12, 0x2d, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f,
-	0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69,
-	0x6f, 0x6e, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
-	0x1a, 0x2e, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x6c,
+	0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
+	0x73, 0x65, 0x12, 0x67, 0x0a, 0x06, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, 0x2d, 0x2e, 0x67,
+	0x6e, 0x6f, 0x69, 0x2e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x5f,
+	0x71, 0x75, 0x61, 0x6c, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x44, 0x65,
+	0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x67, 0x6e,
+	0x6f, 0x69, 0x2e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x71,
+	0x75, 0x61, 0x6c, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x44, 0x65, 0x6c,
+	0x65, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x61, 0x0a, 0x04, 0x4c,
+	0x69, 0x73, 0x74, 0x12, 0x2b, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x70, 0x61, 0x63, 0x6b, 0x65,
+	0x74, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x66, 0x69, 0x63, 0x61,
+	0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
+	0x1a, 0x2c, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x6c,
 	0x69, 0x6e, 0x6b, 0x5f, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
-	0x6e, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
-	0x12, 0x61, 0x0a, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x2b, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e,
-	0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x71, 0x75, 0x61, 0x6c,
-	0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65,
-	0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x70, 0x61, 0x63,
-	0x6b, 0x65, 0x74, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x66, 0x69,
-	0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f,
-	0x6e, 0x73, 0x65, 0x42, 0x47, 0xd2, 0x3e, 0x05, 0x31, 0x2e, 0x31, 0x2e, 0x30, 0x5a, 0x3d, 0x67,
-	0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f,
-	0x6e, 0x66, 0x69, 0x67, 0x2f, 0x67, 0x6e, 0x6f, 0x69, 0x2f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74,
-	0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74,
-	0x69, 0x6f, 0x6e, 0x3b, 0x6c, 0x69, 0x6e, 0x6b, 0x71, 0x75, 0x61, 0x6c, 0x62, 0x06, 0x70, 0x72,
-	0x6f, 0x74, 0x6f, 0x33,
+	0x6e, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x47,
+	0xd2, 0x3e, 0x05, 0x31, 0x2e, 0x31, 0x2e, 0x30, 0x5a, 0x3d, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62,
+	0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f,
+	0x67, 0x6e, 0x6f, 0x69, 0x2f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x6c, 0x69, 0x6e, 0x6b,
+	0x5f, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x3b, 0x6c,
+	0x69, 0x6e, 0x6b, 0x71, 0x75, 0x61, 0x6c, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
 }
 
 var (
-	file_packet_link_qualification_packet_link_qualification_proto_rawDescOnce sync.Once
-	file_packet_link_qualification_packet_link_qualification_proto_rawDescData = file_packet_link_qualification_packet_link_qualification_proto_rawDesc
+	file_github_com_openconfig_gnoi_packet_link_qualification_packet_link_qualification_proto_rawDescOnce sync.Once
+	file_github_com_openconfig_gnoi_packet_link_qualification_packet_link_qualification_proto_rawDescData = file_github_com_openconfig_gnoi_packet_link_qualification_packet_link_qualification_proto_rawDesc
 )
 
-func file_packet_link_qualification_packet_link_qualification_proto_rawDescGZIP() []byte {
-	file_packet_link_qualification_packet_link_qualification_proto_rawDescOnce.Do(func() {
-		file_packet_link_qualification_packet_link_qualification_proto_rawDescData = protoimpl.X.CompressGZIP(file_packet_link_qualification_packet_link_qualification_proto_rawDescData)
+func file_github_com_openconfig_gnoi_packet_link_qualification_packet_link_qualification_proto_rawDescGZIP() []byte {
+	file_github_com_openconfig_gnoi_packet_link_qualification_packet_link_qualification_proto_rawDescOnce.Do(func() {
+		file_github_com_openconfig_gnoi_packet_link_qualification_packet_link_qualification_proto_rawDescData = protoimpl.X.CompressGZIP(file_github_com_openconfig_gnoi_packet_link_qualification_packet_link_qualification_proto_rawDescData)
 	})
-	return file_packet_link_qualification_packet_link_qualification_proto_rawDescData
+	return file_github_com_openconfig_gnoi_packet_link_qualification_packet_link_qualification_proto_rawDescData
 }
 
-var file_packet_link_qualification_packet_link_qualification_proto_enumTypes = make([]protoimpl.EnumInfo, 3)
-var file_packet_link_qualification_packet_link_qualification_proto_msgTypes = make([]protoimpl.MessageInfo, 28)
-var file_packet_link_qualification_packet_link_qualification_proto_goTypes = []interface{}{
+var file_github_com_openconfig_gnoi_packet_link_qualification_packet_link_qualification_proto_enumTypes = make([]protoimpl.EnumInfo, 3)
+var file_github_com_openconfig_gnoi_packet_link_qualification_packet_link_qualification_proto_msgTypes = make([]protoimpl.MessageInfo, 28)
+var file_github_com_openconfig_gnoi_packet_link_qualification_packet_link_qualification_proto_goTypes = []any{
 	(QualificationState)(0),              // 0: gnoi.packet_link_qualification.QualificationState
 	(PacketInjectorLoopbackMode)(0),      // 1: gnoi.packet_link_qualification.PacketInjectorLoopbackMode
 	(HeaderMatchField)(0),                // 2: gnoi.packet_link_qualification.HeaderMatchField
@@ -2313,7 +2259,7 @@ var file_packet_link_qualification_packet_link_qualification_proto_goTypes = []i
 	(*durationpb.Duration)(nil),          // 32: google.protobuf.Duration
 	(*status.Status)(nil),                // 33: google.rpc.Status
 }
-var file_packet_link_qualification_packet_link_qualification_proto_depIdxs = []int32{
+var file_github_com_openconfig_gnoi_packet_link_qualification_packet_link_qualification_proto_depIdxs = []int32{
 	7,  // 0: gnoi.packet_link_qualification.CreateRequest.interfaces:type_name -> gnoi.packet_link_qualification.QualificationConfiguration
 	28, // 1: gnoi.packet_link_qualification.CreateResponse.status:type_name -> gnoi.packet_link_qualification.CreateResponse.StatusEntry
 	31, // 2: gnoi.packet_link_qualification.NTPSyncedTiming.start_time:type_name -> google.protobuf.Timestamp
@@ -2379,314 +2325,14 @@ var file_packet_link_qualification_packet_link_qualification_proto_depIdxs = []i
 	0,  // [0:48] is the sub-list for field type_name
 }
 
-func init() { file_packet_link_qualification_packet_link_qualification_proto_init() }
-func file_packet_link_qualification_packet_link_qualification_proto_init() {
-	if File_packet_link_qualification_packet_link_qualification_proto != nil {
+func init() {
+	file_github_com_openconfig_gnoi_packet_link_qualification_packet_link_qualification_proto_init()
+}
+func file_github_com_openconfig_gnoi_packet_link_qualification_packet_link_qualification_proto_init() {
+	if File_github_com_openconfig_gnoi_packet_link_qualification_packet_link_qualification_proto != nil {
 		return
 	}
-	if !protoimpl.UnsafeEnabled {
-		file_packet_link_qualification_packet_link_qualification_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*CreateRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_packet_link_qualification_packet_link_qualification_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*CreateResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_packet_link_qualification_packet_link_qualification_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*NTPSyncedTiming); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_packet_link_qualification_packet_link_qualification_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*RPCSyncedTiming); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_packet_link_qualification_packet_link_qualification_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*QualificationConfiguration); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_packet_link_qualification_packet_link_qualification_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*PacketGeneratorConfiguration); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_packet_link_qualification_packet_link_qualification_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*PacketInjectorConfiguration); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_packet_link_qualification_packet_link_qualification_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*PmdLoopbackConfiguration); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_packet_link_qualification_packet_link_qualification_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*AsicLoopbackConfiguration); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_packet_link_qualification_packet_link_qualification_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*GetRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_packet_link_qualification_packet_link_qualification_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*GetResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_packet_link_qualification_packet_link_qualification_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*QualificationResult); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_packet_link_qualification_packet_link_qualification_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*DeleteRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_packet_link_qualification_packet_link_qualification_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*DeleteResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_packet_link_qualification_packet_link_qualification_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*CapabilitiesRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_packet_link_qualification_packet_link_qualification_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*CapabilitiesResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_packet_link_qualification_packet_link_qualification_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*PacketGeneratorCapabilities); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_packet_link_qualification_packet_link_qualification_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*PacketInjectorCapabilities); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_packet_link_qualification_packet_link_qualification_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*GeneratorCapabilities); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_packet_link_qualification_packet_link_qualification_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*PmdLoopbackCapabilities); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_packet_link_qualification_packet_link_qualification_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*AsicLoopbackCapabilities); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_packet_link_qualification_packet_link_qualification_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*ReflectorCapabilities); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_packet_link_qualification_packet_link_qualification_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*ListRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_packet_link_qualification_packet_link_qualification_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*ListResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_packet_link_qualification_packet_link_qualification_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*ListResult); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-	}
-	file_packet_link_qualification_packet_link_qualification_proto_msgTypes[4].OneofWrappers = []interface{}{
+	file_github_com_openconfig_gnoi_packet_link_qualification_packet_link_qualification_proto_msgTypes[4].OneofWrappers = []any{
 		(*QualificationConfiguration_Ntp)(nil),
 		(*QualificationConfiguration_Rpc)(nil),
 		(*QualificationConfiguration_PacketGenerator)(nil),
@@ -2694,7 +2340,7 @@ func file_packet_link_qualification_packet_link_qualification_proto_init() {
 		(*QualificationConfiguration_PmdLoopback)(nil),
 		(*QualificationConfiguration_AsicLoopback)(nil),
 	}
-	file_packet_link_qualification_packet_link_qualification_proto_msgTypes[6].OneofWrappers = []interface{}{
+	file_github_com_openconfig_gnoi_packet_link_qualification_packet_link_qualification_proto_msgTypes[6].OneofWrappers = []any{
 		(*PacketInjectorConfiguration_PmdLoopback)(nil),
 		(*PacketInjectorConfiguration_AsicLoopback)(nil),
 	}
@@ -2702,19 +2348,19 @@ func file_packet_link_qualification_packet_link_qualification_proto_init() {
 	out := protoimpl.TypeBuilder{
 		File: protoimpl.DescBuilder{
 			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
-			RawDescriptor: file_packet_link_qualification_packet_link_qualification_proto_rawDesc,
+			RawDescriptor: file_github_com_openconfig_gnoi_packet_link_qualification_packet_link_qualification_proto_rawDesc,
 			NumEnums:      3,
 			NumMessages:   28,
 			NumExtensions: 0,
 			NumServices:   1,
 		},
-		GoTypes:           file_packet_link_qualification_packet_link_qualification_proto_goTypes,
-		DependencyIndexes: file_packet_link_qualification_packet_link_qualification_proto_depIdxs,
-		EnumInfos:         file_packet_link_qualification_packet_link_qualification_proto_enumTypes,
-		MessageInfos:      file_packet_link_qualification_packet_link_qualification_proto_msgTypes,
+		GoTypes:           file_github_com_openconfig_gnoi_packet_link_qualification_packet_link_qualification_proto_goTypes,
+		DependencyIndexes: file_github_com_openconfig_gnoi_packet_link_qualification_packet_link_qualification_proto_depIdxs,
+		EnumInfos:         file_github_com_openconfig_gnoi_packet_link_qualification_packet_link_qualification_proto_enumTypes,
+		MessageInfos:      file_github_com_openconfig_gnoi_packet_link_qualification_packet_link_qualification_proto_msgTypes,
 	}.Build()
-	File_packet_link_qualification_packet_link_qualification_proto = out.File
-	file_packet_link_qualification_packet_link_qualification_proto_rawDesc = nil
-	file_packet_link_qualification_packet_link_qualification_proto_goTypes = nil
-	file_packet_link_qualification_packet_link_qualification_proto_depIdxs = nil
+	File_github_com_openconfig_gnoi_packet_link_qualification_packet_link_qualification_proto = out.File
+	file_github_com_openconfig_gnoi_packet_link_qualification_packet_link_qualification_proto_rawDesc = nil
+	file_github_com_openconfig_gnoi_packet_link_qualification_packet_link_qualification_proto_goTypes = nil
+	file_github_com_openconfig_gnoi_packet_link_qualification_packet_link_qualification_proto_depIdxs = nil
 }
diff --git a/packet_link_qualification/packet_link_qualification_grpc.pb.go b/packet_link_qualification/packet_link_qualification_grpc.pb.go
index 64ac5aca..da8dfb5e 100644
--- a/packet_link_qualification/packet_link_qualification_grpc.pb.go
+++ b/packet_link_qualification/packet_link_qualification_grpc.pb.go
@@ -1,8 +1,8 @@
 // Code generated by protoc-gen-go-grpc. DO NOT EDIT.
 // versions:
-// - protoc-gen-go-grpc v1.2.0
-// - protoc             v3.21.10
-// source: packet_link_qualification/packet_link_qualification.proto
+// - protoc-gen-go-grpc v1.5.1
+// - protoc             v5.29.3
+// source: github.com/openconfig/gnoi/packet_link_qualification/packet_link_qualification.proto
 
 package linkqual
 
@@ -15,8 +15,16 @@ import (
 
 // This is a compile-time assertion to ensure that this generated file
 // is compatible with the grpc package it is being compiled against.
-// Requires gRPC-Go v1.32.0 or later.
-const _ = grpc.SupportPackageIsVersion7
+// Requires gRPC-Go v1.64.0 or later.
+const _ = grpc.SupportPackageIsVersion9
+
+const (
+	LinkQualification_Create_FullMethodName       = "/gnoi.packet_link_qualification.LinkQualification/Create"
+	LinkQualification_Get_FullMethodName          = "/gnoi.packet_link_qualification.LinkQualification/Get"
+	LinkQualification_Capabilities_FullMethodName = "/gnoi.packet_link_qualification.LinkQualification/Capabilities"
+	LinkQualification_Delete_FullMethodName       = "/gnoi.packet_link_qualification.LinkQualification/Delete"
+	LinkQualification_List_FullMethodName         = "/gnoi.packet_link_qualification.LinkQualification/List"
+)
 
 // LinkQualificationClient is the client API for LinkQualification service.
 //
@@ -38,8 +46,9 @@ func NewLinkQualificationClient(cc grpc.ClientConnInterface) LinkQualificationCl
 }
 
 func (c *linkQualificationClient) Create(ctx context.Context, in *CreateRequest, opts ...grpc.CallOption) (*CreateResponse, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
 	out := new(CreateResponse)
-	err := c.cc.Invoke(ctx, "/gnoi.packet_link_qualification.LinkQualification/Create", in, out, opts...)
+	err := c.cc.Invoke(ctx, LinkQualification_Create_FullMethodName, in, out, cOpts...)
 	if err != nil {
 		return nil, err
 	}
@@ -47,8 +56,9 @@ func (c *linkQualificationClient) Create(ctx context.Context, in *CreateRequest,
 }
 
 func (c *linkQualificationClient) Get(ctx context.Context, in *GetRequest, opts ...grpc.CallOption) (*GetResponse, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
 	out := new(GetResponse)
-	err := c.cc.Invoke(ctx, "/gnoi.packet_link_qualification.LinkQualification/Get", in, out, opts...)
+	err := c.cc.Invoke(ctx, LinkQualification_Get_FullMethodName, in, out, cOpts...)
 	if err != nil {
 		return nil, err
 	}
@@ -56,8 +66,9 @@ func (c *linkQualificationClient) Get(ctx context.Context, in *GetRequest, opts
 }
 
 func (c *linkQualificationClient) Capabilities(ctx context.Context, in *CapabilitiesRequest, opts ...grpc.CallOption) (*CapabilitiesResponse, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
 	out := new(CapabilitiesResponse)
-	err := c.cc.Invoke(ctx, "/gnoi.packet_link_qualification.LinkQualification/Capabilities", in, out, opts...)
+	err := c.cc.Invoke(ctx, LinkQualification_Capabilities_FullMethodName, in, out, cOpts...)
 	if err != nil {
 		return nil, err
 	}
@@ -65,8 +76,9 @@ func (c *linkQualificationClient) Capabilities(ctx context.Context, in *Capabili
 }
 
 func (c *linkQualificationClient) Delete(ctx context.Context, in *DeleteRequest, opts ...grpc.CallOption) (*DeleteResponse, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
 	out := new(DeleteResponse)
-	err := c.cc.Invoke(ctx, "/gnoi.packet_link_qualification.LinkQualification/Delete", in, out, opts...)
+	err := c.cc.Invoke(ctx, LinkQualification_Delete_FullMethodName, in, out, cOpts...)
 	if err != nil {
 		return nil, err
 	}
@@ -74,8 +86,9 @@ func (c *linkQualificationClient) Delete(ctx context.Context, in *DeleteRequest,
 }
 
 func (c *linkQualificationClient) List(ctx context.Context, in *ListRequest, opts ...grpc.CallOption) (*ListResponse, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
 	out := new(ListResponse)
-	err := c.cc.Invoke(ctx, "/gnoi.packet_link_qualification.LinkQualification/List", in, out, opts...)
+	err := c.cc.Invoke(ctx, LinkQualification_List_FullMethodName, in, out, cOpts...)
 	if err != nil {
 		return nil, err
 	}
@@ -83,20 +96,22 @@ func (c *linkQualificationClient) List(ctx context.Context, in *ListRequest, opt
 }
 
 // LinkQualificationServer is the server API for LinkQualification service.
-// All implementations must embed UnimplementedLinkQualificationServer
-// for forward compatibility
+// All implementations should embed UnimplementedLinkQualificationServer
+// for forward compatibility.
 type LinkQualificationServer interface {
 	Create(context.Context, *CreateRequest) (*CreateResponse, error)
 	Get(context.Context, *GetRequest) (*GetResponse, error)
 	Capabilities(context.Context, *CapabilitiesRequest) (*CapabilitiesResponse, error)
 	Delete(context.Context, *DeleteRequest) (*DeleteResponse, error)
 	List(context.Context, *ListRequest) (*ListResponse, error)
-	mustEmbedUnimplementedLinkQualificationServer()
 }
 
-// UnimplementedLinkQualificationServer must be embedded to have forward compatible implementations.
-type UnimplementedLinkQualificationServer struct {
-}
+// UnimplementedLinkQualificationServer should be embedded to have
+// forward compatible implementations.
+//
+// NOTE: this should be embedded by value instead of pointer to avoid a nil
+// pointer dereference when methods are called.
+type UnimplementedLinkQualificationServer struct{}
 
 func (UnimplementedLinkQualificationServer) Create(context.Context, *CreateRequest) (*CreateResponse, error) {
 	return nil, status.Errorf(codes.Unimplemented, "method Create not implemented")
@@ -113,7 +128,7 @@ func (UnimplementedLinkQualificationServer) Delete(context.Context, *DeleteReque
 func (UnimplementedLinkQualificationServer) List(context.Context, *ListRequest) (*ListResponse, error) {
 	return nil, status.Errorf(codes.Unimplemented, "method List not implemented")
 }
-func (UnimplementedLinkQualificationServer) mustEmbedUnimplementedLinkQualificationServer() {}
+func (UnimplementedLinkQualificationServer) testEmbeddedByValue() {}
 
 // UnsafeLinkQualificationServer may be embedded to opt out of forward compatibility for this service.
 // Use of this interface is not recommended, as added methods to LinkQualificationServer will
@@ -123,6 +138,13 @@ type UnsafeLinkQualificationServer interface {
 }
 
 func RegisterLinkQualificationServer(s grpc.ServiceRegistrar, srv LinkQualificationServer) {
+	// If the following call pancis, it indicates UnimplementedLinkQualificationServer was
+	// embedded by pointer and is nil.  This will cause panics if an
+	// unimplemented method is ever invoked, so we test this at initialization
+	// time to prevent it from happening at runtime later due to I/O.
+	if t, ok := srv.(interface{ testEmbeddedByValue() }); ok {
+		t.testEmbeddedByValue()
+	}
 	s.RegisterService(&LinkQualification_ServiceDesc, srv)
 }
 
@@ -136,7 +158,7 @@ func _LinkQualification_Create_Handler(srv interface{}, ctx context.Context, dec
 	}
 	info := &grpc.UnaryServerInfo{
 		Server:     srv,
-		FullMethod: "/gnoi.packet_link_qualification.LinkQualification/Create",
+		FullMethod: LinkQualification_Create_FullMethodName,
 	}
 	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
 		return srv.(LinkQualificationServer).Create(ctx, req.(*CreateRequest))
@@ -154,7 +176,7 @@ func _LinkQualification_Get_Handler(srv interface{}, ctx context.Context, dec fu
 	}
 	info := &grpc.UnaryServerInfo{
 		Server:     srv,
-		FullMethod: "/gnoi.packet_link_qualification.LinkQualification/Get",
+		FullMethod: LinkQualification_Get_FullMethodName,
 	}
 	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
 		return srv.(LinkQualificationServer).Get(ctx, req.(*GetRequest))
@@ -172,7 +194,7 @@ func _LinkQualification_Capabilities_Handler(srv interface{}, ctx context.Contex
 	}
 	info := &grpc.UnaryServerInfo{
 		Server:     srv,
-		FullMethod: "/gnoi.packet_link_qualification.LinkQualification/Capabilities",
+		FullMethod: LinkQualification_Capabilities_FullMethodName,
 	}
 	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
 		return srv.(LinkQualificationServer).Capabilities(ctx, req.(*CapabilitiesRequest))
@@ -190,7 +212,7 @@ func _LinkQualification_Delete_Handler(srv interface{}, ctx context.Context, dec
 	}
 	info := &grpc.UnaryServerInfo{
 		Server:     srv,
-		FullMethod: "/gnoi.packet_link_qualification.LinkQualification/Delete",
+		FullMethod: LinkQualification_Delete_FullMethodName,
 	}
 	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
 		return srv.(LinkQualificationServer).Delete(ctx, req.(*DeleteRequest))
@@ -208,7 +230,7 @@ func _LinkQualification_List_Handler(srv interface{}, ctx context.Context, dec f
 	}
 	info := &grpc.UnaryServerInfo{
 		Server:     srv,
-		FullMethod: "/gnoi.packet_link_qualification.LinkQualification/List",
+		FullMethod: LinkQualification_List_FullMethodName,
 	}
 	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
 		return srv.(LinkQualificationServer).List(ctx, req.(*ListRequest))
@@ -245,5 +267,5 @@ var LinkQualification_ServiceDesc = grpc.ServiceDesc{
 		},
 	},
 	Streams:  []grpc.StreamDesc{},
-	Metadata: "packet_link_qualification/packet_link_qualification.proto",
+	Metadata: "github.com/openconfig/gnoi/packet_link_qualification/packet_link_qualification.proto",
 }
diff --git a/system/BUILD.bazel b/system/BUILD.bazel
index 647da9a9..eea3db1b 100644
--- a/system/BUILD.bazel
+++ b/system/BUILD.bazel
@@ -1,8 +1,8 @@
-load("@rules_proto//proto:defs.bzl", "proto_library")
+load("@com_github_grpc_grpc//bazel:cc_grpc_library.bzl", "cc_grpc_library")
+load("@com_google_protobuf//bazel:cc_proto_library.bzl", "cc_proto_library")
+load("@com_google_protobuf//bazel:proto_library.bzl", "proto_library")
 load("@io_bazel_rules_go//go:def.bzl", "go_library")
 load("@io_bazel_rules_go//proto:def.bzl", "go_proto_library")
-load("@com_github_grpc_grpc//bazel:cc_grpc_library.bzl", "cc_grpc_library")
-load("//:common.bzl", "use_new_compilers")
 
 #Copyright 2021 Google LLC
 #
@@ -23,11 +23,10 @@ package(
     licenses = ["notice"],
 )
 
-use_new_compilers()
-
 proto_library(
     name = "system_proto",
     srcs = ["system.proto"],
+    import_prefix = "github.com/openconfig/gnoi",
     deps = [
         "//common:common_proto",
         "//types:types_proto",
@@ -49,8 +48,8 @@ cc_grpc_library(
 go_proto_library(
     name = "system_go_proto",
     compilers = [
-        "go_protoc_gen_go",
-        "go_protoc_gen_go_grpc",
+        "@io_bazel_rules_go//proto:go_grpc_v2",
+        "@io_bazel_rules_go//proto:go_proto",
     ],
     importpath = "github.com/openconfig/gnoi/system",
     proto = ":system_proto",
diff --git a/system/system.pb.go b/system/system.pb.go
index c10ec8cf..6992ec43 100644
--- a/system/system.pb.go
+++ b/system/system.pb.go
@@ -1,8 +1,8 @@
 // Code generated by protoc-gen-go. DO NOT EDIT.
 // versions:
-// 	protoc-gen-go v1.30.0
-// 	protoc        v3.21.10
-// source: system/system.proto
+// 	protoc-gen-go v1.36.2
+// 	protoc        v5.29.3
+// source: github.com/openconfig/gnoi/system/system.proto
 
 package system
 
@@ -67,11 +67,11 @@ func (x RebootMethod) String() string {
 }
 
 func (RebootMethod) Descriptor() protoreflect.EnumDescriptor {
-	return file_system_system_proto_enumTypes[0].Descriptor()
+	return file_github_com_openconfig_gnoi_system_system_proto_enumTypes[0].Descriptor()
 }
 
 func (RebootMethod) Type() protoreflect.EnumType {
-	return &file_system_system_proto_enumTypes[0]
+	return &file_github_com_openconfig_gnoi_system_system_proto_enumTypes[0]
 }
 
 func (x RebootMethod) Number() protoreflect.EnumNumber {
@@ -80,7 +80,7 @@ func (x RebootMethod) Number() protoreflect.EnumNumber {
 
 // Deprecated: Use RebootMethod.Descriptor instead.
 func (RebootMethod) EnumDescriptor() ([]byte, []int) {
-	return file_system_system_proto_rawDescGZIP(), []int{0}
+	return file_github_com_openconfig_gnoi_system_system_proto_rawDescGZIP(), []int{0}
 }
 
 type RebootStatus_Status int32
@@ -119,11 +119,11 @@ func (x RebootStatus_Status) String() string {
 }
 
 func (RebootStatus_Status) Descriptor() protoreflect.EnumDescriptor {
-	return file_system_system_proto_enumTypes[1].Descriptor()
+	return file_github_com_openconfig_gnoi_system_system_proto_enumTypes[1].Descriptor()
 }
 
 func (RebootStatus_Status) Type() protoreflect.EnumType {
-	return &file_system_system_proto_enumTypes[1]
+	return &file_github_com_openconfig_gnoi_system_system_proto_enumTypes[1]
 }
 
 func (x RebootStatus_Status) Number() protoreflect.EnumNumber {
@@ -132,7 +132,7 @@ func (x RebootStatus_Status) Number() protoreflect.EnumNumber {
 
 // Deprecated: Use RebootStatus_Status.Descriptor instead.
 func (RebootStatus_Status) EnumDescriptor() ([]byte, []int) {
-	return file_system_system_proto_rawDescGZIP(), []int{8, 0}
+	return file_github_com_openconfig_gnoi_system_system_proto_rawDescGZIP(), []int{8, 0}
 }
 
 type TracerouteRequest_L4Protocol int32
@@ -168,11 +168,11 @@ func (x TracerouteRequest_L4Protocol) String() string {
 }
 
 func (TracerouteRequest_L4Protocol) Descriptor() protoreflect.EnumDescriptor {
-	return file_system_system_proto_enumTypes[2].Descriptor()
+	return file_github_com_openconfig_gnoi_system_system_proto_enumTypes[2].Descriptor()
 }
 
 func (TracerouteRequest_L4Protocol) Type() protoreflect.EnumType {
-	return &file_system_system_proto_enumTypes[2]
+	return &file_github_com_openconfig_gnoi_system_system_proto_enumTypes[2]
 }
 
 func (x TracerouteRequest_L4Protocol) Number() protoreflect.EnumNumber {
@@ -181,7 +181,7 @@ func (x TracerouteRequest_L4Protocol) Number() protoreflect.EnumNumber {
 
 // Deprecated: Use TracerouteRequest_L4Protocol.Descriptor instead.
 func (TracerouteRequest_L4Protocol) EnumDescriptor() ([]byte, []int) {
-	return file_system_system_proto_rawDescGZIP(), []int{13, 0}
+	return file_github_com_openconfig_gnoi_system_system_proto_rawDescGZIP(), []int{13, 0}
 }
 
 type TracerouteResponse_State int32
@@ -244,11 +244,11 @@ func (x TracerouteResponse_State) String() string {
 }
 
 func (TracerouteResponse_State) Descriptor() protoreflect.EnumDescriptor {
-	return file_system_system_proto_enumTypes[3].Descriptor()
+	return file_github_com_openconfig_gnoi_system_system_proto_enumTypes[3].Descriptor()
 }
 
 func (TracerouteResponse_State) Type() protoreflect.EnumType {
-	return &file_system_system_proto_enumTypes[3]
+	return &file_github_com_openconfig_gnoi_system_system_proto_enumTypes[3]
 }
 
 func (x TracerouteResponse_State) Number() protoreflect.EnumNumber {
@@ -257,7 +257,7 @@ func (x TracerouteResponse_State) Number() protoreflect.EnumNumber {
 
 // Deprecated: Use TracerouteResponse_State.Descriptor instead.
 func (TracerouteResponse_State) EnumDescriptor() ([]byte, []int) {
-	return file_system_system_proto_rawDescGZIP(), []int{14, 0}
+	return file_github_com_openconfig_gnoi_system_system_proto_rawDescGZIP(), []int{14, 0}
 }
 
 type KillProcessRequest_Signal int32
@@ -299,11 +299,11 @@ func (x KillProcessRequest_Signal) String() string {
 }
 
 func (KillProcessRequest_Signal) Descriptor() protoreflect.EnumDescriptor {
-	return file_system_system_proto_enumTypes[4].Descriptor()
+	return file_github_com_openconfig_gnoi_system_system_proto_enumTypes[4].Descriptor()
 }
 
 func (KillProcessRequest_Signal) Type() protoreflect.EnumType {
-	return &file_system_system_proto_enumTypes[4]
+	return &file_github_com_openconfig_gnoi_system_system_proto_enumTypes[4]
 }
 
 func (x KillProcessRequest_Signal) Number() protoreflect.EnumNumber {
@@ -312,24 +312,21 @@ func (x KillProcessRequest_Signal) Number() protoreflect.EnumNumber {
 
 // Deprecated: Use KillProcessRequest_Signal.Descriptor instead.
 func (KillProcessRequest_Signal) EnumDescriptor() ([]byte, []int) {
-	return file_system_system_proto_rawDescGZIP(), []int{18, 0}
+	return file_github_com_openconfig_gnoi_system_system_proto_rawDescGZIP(), []int{18, 0}
 }
 
 type SwitchControlProcessorRequest struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	ControlProcessor *types.Path `protobuf:"bytes,1,opt,name=control_processor,json=controlProcessor,proto3" json:"control_processor,omitempty"`
+	state            protoimpl.MessageState `protogen:"open.v1"`
+	ControlProcessor *types.Path            `protobuf:"bytes,1,opt,name=control_processor,json=controlProcessor,proto3" json:"control_processor,omitempty"`
+	unknownFields    protoimpl.UnknownFields
+	sizeCache        protoimpl.SizeCache
 }
 
 func (x *SwitchControlProcessorRequest) Reset() {
 	*x = SwitchControlProcessorRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_system_system_proto_msgTypes[0]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_system_system_proto_msgTypes[0]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *SwitchControlProcessorRequest) String() string {
@@ -339,8 +336,8 @@ func (x *SwitchControlProcessorRequest) String() string {
 func (*SwitchControlProcessorRequest) ProtoMessage() {}
 
 func (x *SwitchControlProcessorRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_system_system_proto_msgTypes[0]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_system_system_proto_msgTypes[0]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -352,7 +349,7 @@ func (x *SwitchControlProcessorRequest) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use SwitchControlProcessorRequest.ProtoReflect.Descriptor instead.
 func (*SwitchControlProcessorRequest) Descriptor() ([]byte, []int) {
-	return file_system_system_proto_rawDescGZIP(), []int{0}
+	return file_github_com_openconfig_gnoi_system_system_proto_rawDescGZIP(), []int{0}
 }
 
 func (x *SwitchControlProcessorRequest) GetControlProcessor() *types.Path {
@@ -363,22 +360,19 @@ func (x *SwitchControlProcessorRequest) GetControlProcessor() *types.Path {
 }
 
 type SwitchControlProcessorResponse struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	ControlProcessor *types.Path `protobuf:"bytes,1,opt,name=control_processor,json=controlProcessor,proto3" json:"control_processor,omitempty"`
-	Version          string      `protobuf:"bytes,2,opt,name=version,proto3" json:"version,omitempty"`
-	Uptime           int64       `protobuf:"varint,3,opt,name=uptime,proto3" json:"uptime,omitempty"`
+	state            protoimpl.MessageState `protogen:"open.v1"`
+	ControlProcessor *types.Path            `protobuf:"bytes,1,opt,name=control_processor,json=controlProcessor,proto3" json:"control_processor,omitempty"`
+	Version          string                 `protobuf:"bytes,2,opt,name=version,proto3" json:"version,omitempty"`
+	Uptime           int64                  `protobuf:"varint,3,opt,name=uptime,proto3" json:"uptime,omitempty"`
+	unknownFields    protoimpl.UnknownFields
+	sizeCache        protoimpl.SizeCache
 }
 
 func (x *SwitchControlProcessorResponse) Reset() {
 	*x = SwitchControlProcessorResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_system_system_proto_msgTypes[1]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_system_system_proto_msgTypes[1]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *SwitchControlProcessorResponse) String() string {
@@ -388,8 +382,8 @@ func (x *SwitchControlProcessorResponse) String() string {
 func (*SwitchControlProcessorResponse) ProtoMessage() {}
 
 func (x *SwitchControlProcessorResponse) ProtoReflect() protoreflect.Message {
-	mi := &file_system_system_proto_msgTypes[1]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_system_system_proto_msgTypes[1]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -401,7 +395,7 @@ func (x *SwitchControlProcessorResponse) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use SwitchControlProcessorResponse.ProtoReflect.Descriptor instead.
 func (*SwitchControlProcessorResponse) Descriptor() ([]byte, []int) {
-	return file_system_system_proto_rawDescGZIP(), []int{1}
+	return file_github_com_openconfig_gnoi_system_system_proto_rawDescGZIP(), []int{1}
 }
 
 func (x *SwitchControlProcessorResponse) GetControlProcessor() *types.Path {
@@ -426,24 +420,21 @@ func (x *SwitchControlProcessorResponse) GetUptime() int64 {
 }
 
 type RebootRequest struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Method        RebootMethod           `protobuf:"varint,1,opt,name=method,proto3,enum=gnoi.system.RebootMethod" json:"method,omitempty"`
+	Delay         uint64                 `protobuf:"varint,2,opt,name=delay,proto3" json:"delay,omitempty"`
+	Message       string                 `protobuf:"bytes,3,opt,name=message,proto3" json:"message,omitempty"`
+	Subcomponents []*types.Path          `protobuf:"bytes,4,rep,name=subcomponents,proto3" json:"subcomponents,omitempty"`
+	Force         bool                   `protobuf:"varint,5,opt,name=force,proto3" json:"force,omitempty"`
 	unknownFields protoimpl.UnknownFields
-
-	Method        RebootMethod  `protobuf:"varint,1,opt,name=method,proto3,enum=gnoi.system.RebootMethod" json:"method,omitempty"`
-	Delay         uint64        `protobuf:"varint,2,opt,name=delay,proto3" json:"delay,omitempty"`
-	Message       string        `protobuf:"bytes,3,opt,name=message,proto3" json:"message,omitempty"`
-	Subcomponents []*types.Path `protobuf:"bytes,4,rep,name=subcomponents,proto3" json:"subcomponents,omitempty"`
-	Force         bool          `protobuf:"varint,5,opt,name=force,proto3" json:"force,omitempty"`
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *RebootRequest) Reset() {
 	*x = RebootRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_system_system_proto_msgTypes[2]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_system_system_proto_msgTypes[2]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *RebootRequest) String() string {
@@ -453,8 +444,8 @@ func (x *RebootRequest) String() string {
 func (*RebootRequest) ProtoMessage() {}
 
 func (x *RebootRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_system_system_proto_msgTypes[2]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_system_system_proto_msgTypes[2]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -466,7 +457,7 @@ func (x *RebootRequest) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use RebootRequest.ProtoReflect.Descriptor instead.
 func (*RebootRequest) Descriptor() ([]byte, []int) {
-	return file_system_system_proto_rawDescGZIP(), []int{2}
+	return file_github_com_openconfig_gnoi_system_system_proto_rawDescGZIP(), []int{2}
 }
 
 func (x *RebootRequest) GetMethod() RebootMethod {
@@ -505,18 +496,16 @@ func (x *RebootRequest) GetForce() bool {
 }
 
 type RebootResponse struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState `protogen:"open.v1"`
 	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *RebootResponse) Reset() {
 	*x = RebootResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_system_system_proto_msgTypes[3]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_system_system_proto_msgTypes[3]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *RebootResponse) String() string {
@@ -526,8 +515,8 @@ func (x *RebootResponse) String() string {
 func (*RebootResponse) ProtoMessage() {}
 
 func (x *RebootResponse) ProtoReflect() protoreflect.Message {
-	mi := &file_system_system_proto_msgTypes[3]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_system_system_proto_msgTypes[3]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -539,25 +528,22 @@ func (x *RebootResponse) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use RebootResponse.ProtoReflect.Descriptor instead.
 func (*RebootResponse) Descriptor() ([]byte, []int) {
-	return file_system_system_proto_rawDescGZIP(), []int{3}
+	return file_github_com_openconfig_gnoi_system_system_proto_rawDescGZIP(), []int{3}
 }
 
 type CancelRebootRequest struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Message       string                 `protobuf:"bytes,1,opt,name=message,proto3" json:"message,omitempty"`
+	Subcomponents []*types.Path          `protobuf:"bytes,2,rep,name=subcomponents,proto3" json:"subcomponents,omitempty"`
 	unknownFields protoimpl.UnknownFields
-
-	Message       string        `protobuf:"bytes,1,opt,name=message,proto3" json:"message,omitempty"`
-	Subcomponents []*types.Path `protobuf:"bytes,2,rep,name=subcomponents,proto3" json:"subcomponents,omitempty"`
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *CancelRebootRequest) Reset() {
 	*x = CancelRebootRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_system_system_proto_msgTypes[4]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_system_system_proto_msgTypes[4]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *CancelRebootRequest) String() string {
@@ -567,8 +553,8 @@ func (x *CancelRebootRequest) String() string {
 func (*CancelRebootRequest) ProtoMessage() {}
 
 func (x *CancelRebootRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_system_system_proto_msgTypes[4]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_system_system_proto_msgTypes[4]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -580,7 +566,7 @@ func (x *CancelRebootRequest) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use CancelRebootRequest.ProtoReflect.Descriptor instead.
 func (*CancelRebootRequest) Descriptor() ([]byte, []int) {
-	return file_system_system_proto_rawDescGZIP(), []int{4}
+	return file_github_com_openconfig_gnoi_system_system_proto_rawDescGZIP(), []int{4}
 }
 
 func (x *CancelRebootRequest) GetMessage() string {
@@ -598,18 +584,16 @@ func (x *CancelRebootRequest) GetSubcomponents() []*types.Path {
 }
 
 type CancelRebootResponse struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState `protogen:"open.v1"`
 	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *CancelRebootResponse) Reset() {
 	*x = CancelRebootResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_system_system_proto_msgTypes[5]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_system_system_proto_msgTypes[5]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *CancelRebootResponse) String() string {
@@ -619,8 +603,8 @@ func (x *CancelRebootResponse) String() string {
 func (*CancelRebootResponse) ProtoMessage() {}
 
 func (x *CancelRebootResponse) ProtoReflect() protoreflect.Message {
-	mi := &file_system_system_proto_msgTypes[5]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_system_system_proto_msgTypes[5]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -632,24 +616,21 @@ func (x *CancelRebootResponse) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use CancelRebootResponse.ProtoReflect.Descriptor instead.
 func (*CancelRebootResponse) Descriptor() ([]byte, []int) {
-	return file_system_system_proto_rawDescGZIP(), []int{5}
+	return file_github_com_openconfig_gnoi_system_system_proto_rawDescGZIP(), []int{5}
 }
 
 type RebootStatusRequest struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Subcomponents []*types.Path          `protobuf:"bytes,1,rep,name=subcomponents,proto3" json:"subcomponents,omitempty"`
 	unknownFields protoimpl.UnknownFields
-
-	Subcomponents []*types.Path `protobuf:"bytes,1,rep,name=subcomponents,proto3" json:"subcomponents,omitempty"`
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *RebootStatusRequest) Reset() {
 	*x = RebootStatusRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_system_system_proto_msgTypes[6]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_system_system_proto_msgTypes[6]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *RebootStatusRequest) String() string {
@@ -659,8 +640,8 @@ func (x *RebootStatusRequest) String() string {
 func (*RebootStatusRequest) ProtoMessage() {}
 
 func (x *RebootStatusRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_system_system_proto_msgTypes[6]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_system_system_proto_msgTypes[6]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -672,7 +653,7 @@ func (x *RebootStatusRequest) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use RebootStatusRequest.ProtoReflect.Descriptor instead.
 func (*RebootStatusRequest) Descriptor() ([]byte, []int) {
-	return file_system_system_proto_rawDescGZIP(), []int{6}
+	return file_github_com_openconfig_gnoi_system_system_proto_rawDescGZIP(), []int{6}
 }
 
 func (x *RebootStatusRequest) GetSubcomponents() []*types.Path {
@@ -683,26 +664,23 @@ func (x *RebootStatusRequest) GetSubcomponents() []*types.Path {
 }
 
 type RebootStatusResponse struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Active        bool                   `protobuf:"varint,1,opt,name=active,proto3" json:"active,omitempty"`
+	Wait          uint64                 `protobuf:"varint,2,opt,name=wait,proto3" json:"wait,omitempty"`
+	When          uint64                 `protobuf:"varint,3,opt,name=when,proto3" json:"when,omitempty"`
+	Reason        string                 `protobuf:"bytes,4,opt,name=reason,proto3" json:"reason,omitempty"`
+	Count         uint32                 `protobuf:"varint,5,opt,name=count,proto3" json:"count,omitempty"`
+	Method        RebootMethod           `protobuf:"varint,6,opt,name=method,proto3,enum=gnoi.system.RebootMethod" json:"method,omitempty"`
+	Status        *RebootStatus          `protobuf:"bytes,7,opt,name=status,proto3" json:"status,omitempty"`
 	unknownFields protoimpl.UnknownFields
-
-	Active bool          `protobuf:"varint,1,opt,name=active,proto3" json:"active,omitempty"`
-	Wait   uint64        `protobuf:"varint,2,opt,name=wait,proto3" json:"wait,omitempty"`
-	When   uint64        `protobuf:"varint,3,opt,name=when,proto3" json:"when,omitempty"`
-	Reason string        `protobuf:"bytes,4,opt,name=reason,proto3" json:"reason,omitempty"`
-	Count  uint32        `protobuf:"varint,5,opt,name=count,proto3" json:"count,omitempty"`
-	Method RebootMethod  `protobuf:"varint,6,opt,name=method,proto3,enum=gnoi.system.RebootMethod" json:"method,omitempty"`
-	Status *RebootStatus `protobuf:"bytes,7,opt,name=status,proto3" json:"status,omitempty"`
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *RebootStatusResponse) Reset() {
 	*x = RebootStatusResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_system_system_proto_msgTypes[7]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_system_system_proto_msgTypes[7]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *RebootStatusResponse) String() string {
@@ -712,8 +690,8 @@ func (x *RebootStatusResponse) String() string {
 func (*RebootStatusResponse) ProtoMessage() {}
 
 func (x *RebootStatusResponse) ProtoReflect() protoreflect.Message {
-	mi := &file_system_system_proto_msgTypes[7]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_system_system_proto_msgTypes[7]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -725,7 +703,7 @@ func (x *RebootStatusResponse) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use RebootStatusResponse.ProtoReflect.Descriptor instead.
 func (*RebootStatusResponse) Descriptor() ([]byte, []int) {
-	return file_system_system_proto_rawDescGZIP(), []int{7}
+	return file_github_com_openconfig_gnoi_system_system_proto_rawDescGZIP(), []int{7}
 }
 
 func (x *RebootStatusResponse) GetActive() bool {
@@ -778,21 +756,18 @@ func (x *RebootStatusResponse) GetStatus() *RebootStatus {
 }
 
 type RebootStatus struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Status        RebootStatus_Status    `protobuf:"varint,1,opt,name=status,proto3,enum=gnoi.system.RebootStatus_Status" json:"status,omitempty"`
+	Message       string                 `protobuf:"bytes,2,opt,name=message,proto3" json:"message,omitempty"`
 	unknownFields protoimpl.UnknownFields
-
-	Status  RebootStatus_Status `protobuf:"varint,1,opt,name=status,proto3,enum=gnoi.system.RebootStatus_Status" json:"status,omitempty"`
-	Message string              `protobuf:"bytes,2,opt,name=message,proto3" json:"message,omitempty"`
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *RebootStatus) Reset() {
 	*x = RebootStatus{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_system_system_proto_msgTypes[8]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_system_system_proto_msgTypes[8]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *RebootStatus) String() string {
@@ -802,8 +777,8 @@ func (x *RebootStatus) String() string {
 func (*RebootStatus) ProtoMessage() {}
 
 func (x *RebootStatus) ProtoReflect() protoreflect.Message {
-	mi := &file_system_system_proto_msgTypes[8]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_system_system_proto_msgTypes[8]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -815,7 +790,7 @@ func (x *RebootStatus) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use RebootStatus.ProtoReflect.Descriptor instead.
 func (*RebootStatus) Descriptor() ([]byte, []int) {
-	return file_system_system_proto_rawDescGZIP(), []int{8}
+	return file_github_com_openconfig_gnoi_system_system_proto_rawDescGZIP(), []int{8}
 }
 
 func (x *RebootStatus) GetStatus() RebootStatus_Status {
@@ -833,18 +808,16 @@ func (x *RebootStatus) GetMessage() string {
 }
 
 type TimeRequest struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState `protogen:"open.v1"`
 	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *TimeRequest) Reset() {
 	*x = TimeRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_system_system_proto_msgTypes[9]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_system_system_proto_msgTypes[9]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *TimeRequest) String() string {
@@ -854,8 +827,8 @@ func (x *TimeRequest) String() string {
 func (*TimeRequest) ProtoMessage() {}
 
 func (x *TimeRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_system_system_proto_msgTypes[9]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_system_system_proto_msgTypes[9]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -867,24 +840,21 @@ func (x *TimeRequest) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use TimeRequest.ProtoReflect.Descriptor instead.
 func (*TimeRequest) Descriptor() ([]byte, []int) {
-	return file_system_system_proto_rawDescGZIP(), []int{9}
+	return file_github_com_openconfig_gnoi_system_system_proto_rawDescGZIP(), []int{9}
 }
 
 type TimeResponse struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Time          uint64                 `protobuf:"varint,1,opt,name=time,proto3" json:"time,omitempty"`
 	unknownFields protoimpl.UnknownFields
-
-	Time uint64 `protobuf:"varint,1,opt,name=time,proto3" json:"time,omitempty"`
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *TimeResponse) Reset() {
 	*x = TimeResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_system_system_proto_msgTypes[10]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_system_system_proto_msgTypes[10]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *TimeResponse) String() string {
@@ -894,8 +864,8 @@ func (x *TimeResponse) String() string {
 func (*TimeResponse) ProtoMessage() {}
 
 func (x *TimeResponse) ProtoReflect() protoreflect.Message {
-	mi := &file_system_system_proto_msgTypes[10]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_system_system_proto_msgTypes[10]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -907,7 +877,7 @@ func (x *TimeResponse) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use TimeResponse.ProtoReflect.Descriptor instead.
 func (*TimeResponse) Descriptor() ([]byte, []int) {
-	return file_system_system_proto_rawDescGZIP(), []int{10}
+	return file_github_com_openconfig_gnoi_system_system_proto_rawDescGZIP(), []int{10}
 }
 
 func (x *TimeResponse) GetTime() uint64 {
@@ -918,29 +888,26 @@ func (x *TimeResponse) GetTime() uint64 {
 }
 
 type PingRequest struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	Destination     string           `protobuf:"bytes,1,opt,name=destination,proto3" json:"destination,omitempty"`
-	Source          string           `protobuf:"bytes,2,opt,name=source,proto3" json:"source,omitempty"`
-	Count           int32            `protobuf:"varint,3,opt,name=count,proto3" json:"count,omitempty"`
-	Interval        int64            `protobuf:"varint,4,opt,name=interval,proto3" json:"interval,omitempty"`
-	Wait            int64            `protobuf:"varint,5,opt,name=wait,proto3" json:"wait,omitempty"`
-	Size            int32            `protobuf:"varint,6,opt,name=size,proto3" json:"size,omitempty"`
-	DoNotFragment   bool             `protobuf:"varint,7,opt,name=do_not_fragment,json=doNotFragment,proto3" json:"do_not_fragment,omitempty"`
-	DoNotResolve    bool             `protobuf:"varint,8,opt,name=do_not_resolve,json=doNotResolve,proto3" json:"do_not_resolve,omitempty"`
-	L3Protocol      types.L3Protocol `protobuf:"varint,9,opt,name=l3protocol,proto3,enum=gnoi.types.L3Protocol" json:"l3protocol,omitempty"`
-	NetworkInstance string           `protobuf:"bytes,10,opt,name=network_instance,json=networkInstance,proto3" json:"network_instance,omitempty"`
+	state           protoimpl.MessageState `protogen:"open.v1"`
+	Destination     string                 `protobuf:"bytes,1,opt,name=destination,proto3" json:"destination,omitempty"`
+	Source          string                 `protobuf:"bytes,2,opt,name=source,proto3" json:"source,omitempty"`
+	Count           int32                  `protobuf:"varint,3,opt,name=count,proto3" json:"count,omitempty"`
+	Interval        int64                  `protobuf:"varint,4,opt,name=interval,proto3" json:"interval,omitempty"`
+	Wait            int64                  `protobuf:"varint,5,opt,name=wait,proto3" json:"wait,omitempty"`
+	Size            int32                  `protobuf:"varint,6,opt,name=size,proto3" json:"size,omitempty"`
+	DoNotFragment   bool                   `protobuf:"varint,7,opt,name=do_not_fragment,json=doNotFragment,proto3" json:"do_not_fragment,omitempty"`
+	DoNotResolve    bool                   `protobuf:"varint,8,opt,name=do_not_resolve,json=doNotResolve,proto3" json:"do_not_resolve,omitempty"`
+	L3Protocol      types.L3Protocol       `protobuf:"varint,9,opt,name=l3protocol,proto3,enum=gnoi.types.L3Protocol" json:"l3protocol,omitempty"`
+	NetworkInstance string                 `protobuf:"bytes,10,opt,name=network_instance,json=networkInstance,proto3" json:"network_instance,omitempty"`
+	unknownFields   protoimpl.UnknownFields
+	sizeCache       protoimpl.SizeCache
 }
 
 func (x *PingRequest) Reset() {
 	*x = PingRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_system_system_proto_msgTypes[11]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_system_system_proto_msgTypes[11]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *PingRequest) String() string {
@@ -950,8 +917,8 @@ func (x *PingRequest) String() string {
 func (*PingRequest) ProtoMessage() {}
 
 func (x *PingRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_system_system_proto_msgTypes[11]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_system_system_proto_msgTypes[11]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -963,7 +930,7 @@ func (x *PingRequest) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use PingRequest.ProtoReflect.Descriptor instead.
 func (*PingRequest) Descriptor() ([]byte, []int) {
-	return file_system_system_proto_rawDescGZIP(), []int{11}
+	return file_github_com_openconfig_gnoi_system_system_proto_rawDescGZIP(), []int{11}
 }
 
 func (x *PingRequest) GetDestination() string {
@@ -1037,30 +1004,27 @@ func (x *PingRequest) GetNetworkInstance() string {
 }
 
 type PingResponse struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Source        string                 `protobuf:"bytes,1,opt,name=source,proto3" json:"source,omitempty"`
+	Time          int64                  `protobuf:"varint,2,opt,name=time,proto3" json:"time,omitempty"`
+	Sent          int32                  `protobuf:"varint,3,opt,name=sent,proto3" json:"sent,omitempty"`
+	Received      int32                  `protobuf:"varint,4,opt,name=received,proto3" json:"received,omitempty"`
+	MinTime       int64                  `protobuf:"varint,5,opt,name=min_time,json=minTime,proto3" json:"min_time,omitempty"`
+	AvgTime       int64                  `protobuf:"varint,6,opt,name=avg_time,json=avgTime,proto3" json:"avg_time,omitempty"`
+	MaxTime       int64                  `protobuf:"varint,7,opt,name=max_time,json=maxTime,proto3" json:"max_time,omitempty"`
+	StdDev        int64                  `protobuf:"varint,8,opt,name=std_dev,json=stdDev,proto3" json:"std_dev,omitempty"`
+	Bytes         int32                  `protobuf:"varint,11,opt,name=bytes,proto3" json:"bytes,omitempty"`
+	Sequence      int32                  `protobuf:"varint,12,opt,name=sequence,proto3" json:"sequence,omitempty"`
+	Ttl           int32                  `protobuf:"varint,13,opt,name=ttl,proto3" json:"ttl,omitempty"`
 	unknownFields protoimpl.UnknownFields
-
-	Source   string `protobuf:"bytes,1,opt,name=source,proto3" json:"source,omitempty"`
-	Time     int64  `protobuf:"varint,2,opt,name=time,proto3" json:"time,omitempty"`
-	Sent     int32  `protobuf:"varint,3,opt,name=sent,proto3" json:"sent,omitempty"`
-	Received int32  `protobuf:"varint,4,opt,name=received,proto3" json:"received,omitempty"`
-	MinTime  int64  `protobuf:"varint,5,opt,name=min_time,json=minTime,proto3" json:"min_time,omitempty"`
-	AvgTime  int64  `protobuf:"varint,6,opt,name=avg_time,json=avgTime,proto3" json:"avg_time,omitempty"`
-	MaxTime  int64  `protobuf:"varint,7,opt,name=max_time,json=maxTime,proto3" json:"max_time,omitempty"`
-	StdDev   int64  `protobuf:"varint,8,opt,name=std_dev,json=stdDev,proto3" json:"std_dev,omitempty"`
-	Bytes    int32  `protobuf:"varint,11,opt,name=bytes,proto3" json:"bytes,omitempty"`
-	Sequence int32  `protobuf:"varint,12,opt,name=sequence,proto3" json:"sequence,omitempty"`
-	Ttl      int32  `protobuf:"varint,13,opt,name=ttl,proto3" json:"ttl,omitempty"`
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *PingResponse) Reset() {
 	*x = PingResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_system_system_proto_msgTypes[12]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_system_system_proto_msgTypes[12]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *PingResponse) String() string {
@@ -1070,8 +1034,8 @@ func (x *PingResponse) String() string {
 func (*PingResponse) ProtoMessage() {}
 
 func (x *PingResponse) ProtoReflect() protoreflect.Message {
-	mi := &file_system_system_proto_msgTypes[12]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_system_system_proto_msgTypes[12]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -1083,7 +1047,7 @@ func (x *PingResponse) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use PingResponse.ProtoReflect.Descriptor instead.
 func (*PingResponse) Descriptor() ([]byte, []int) {
-	return file_system_system_proto_rawDescGZIP(), []int{12}
+	return file_github_com_openconfig_gnoi_system_system_proto_rawDescGZIP(), []int{12}
 }
 
 func (x *PingResponse) GetSource() string {
@@ -1164,10 +1128,7 @@ func (x *PingResponse) GetTtl() int32 {
 }
 
 type TracerouteRequest struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
+	state           protoimpl.MessageState       `protogen:"open.v1"`
 	Source          string                       `protobuf:"bytes,1,opt,name=source,proto3" json:"source,omitempty"`
 	Destination     string                       `protobuf:"bytes,2,opt,name=destination,proto3" json:"destination,omitempty"`
 	InitialTtl      uint32                       `protobuf:"varint,3,opt,name=initial_ttl,json=initialTtl,proto3" json:"initial_ttl,omitempty"`
@@ -1179,15 +1140,15 @@ type TracerouteRequest struct {
 	L4Protocol      TracerouteRequest_L4Protocol `protobuf:"varint,9,opt,name=l4protocol,proto3,enum=gnoi.system.TracerouteRequest_L4Protocol" json:"l4protocol,omitempty"`
 	DoNotLookupAsn  bool                         `protobuf:"varint,10,opt,name=do_not_lookup_asn,json=doNotLookupAsn,proto3" json:"do_not_lookup_asn,omitempty"`
 	NetworkInstance string                       `protobuf:"bytes,11,opt,name=network_instance,json=networkInstance,proto3" json:"network_instance,omitempty"`
+	unknownFields   protoimpl.UnknownFields
+	sizeCache       protoimpl.SizeCache
 }
 
 func (x *TracerouteRequest) Reset() {
 	*x = TracerouteRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_system_system_proto_msgTypes[13]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_system_system_proto_msgTypes[13]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *TracerouteRequest) String() string {
@@ -1197,8 +1158,8 @@ func (x *TracerouteRequest) String() string {
 func (*TracerouteRequest) ProtoMessage() {}
 
 func (x *TracerouteRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_system_system_proto_msgTypes[13]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_system_system_proto_msgTypes[13]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -1210,7 +1171,7 @@ func (x *TracerouteRequest) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use TracerouteRequest.ProtoReflect.Descriptor instead.
 func (*TracerouteRequest) Descriptor() ([]byte, []int) {
-	return file_system_system_proto_rawDescGZIP(), []int{13}
+	return file_github_com_openconfig_gnoi_system_system_proto_rawDescGZIP(), []int{13}
 }
 
 func (x *TracerouteRequest) GetSource() string {
@@ -1291,10 +1252,7 @@ func (x *TracerouteRequest) GetNetworkInstance() string {
 }
 
 type TracerouteResponse struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
+	state              protoimpl.MessageState            `protogen:"open.v1"`
 	DestinationName    string                            `protobuf:"bytes,1,opt,name=destination_name,json=destinationName,proto3" json:"destination_name,omitempty"`
 	DestinationAddress string                            `protobuf:"bytes,2,opt,name=destination_address,json=destinationAddress,proto3" json:"destination_address,omitempty"`
 	Hops               int32                             `protobuf:"varint,3,opt,name=hops,proto3" json:"hops,omitempty"`
@@ -1305,18 +1263,18 @@ type TracerouteResponse struct {
 	Rtt                int64                             `protobuf:"varint,8,opt,name=rtt,proto3" json:"rtt,omitempty"`
 	State              TracerouteResponse_State          `protobuf:"varint,9,opt,name=state,proto3,enum=gnoi.system.TracerouteResponse_State" json:"state,omitempty"`
 	IcmpCode           int32                             `protobuf:"varint,10,opt,name=icmp_code,json=icmpCode,proto3" json:"icmp_code,omitempty"`
-	Mpls               map[string]string                 `protobuf:"bytes,11,rep,name=mpls,proto3" json:"mpls,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
+	Mpls               map[string]string                 `protobuf:"bytes,11,rep,name=mpls,proto3" json:"mpls,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
 	AsPath             []int32                           `protobuf:"varint,12,rep,packed,name=as_path,json=asPath,proto3" json:"as_path,omitempty"`
 	IcmpExtData        []*TracerouteResponse_IcmpExtData `protobuf:"bytes,13,rep,name=icmp_ext_data,json=icmpExtData,proto3" json:"icmp_ext_data,omitempty"`
+	unknownFields      protoimpl.UnknownFields
+	sizeCache          protoimpl.SizeCache
 }
 
 func (x *TracerouteResponse) Reset() {
 	*x = TracerouteResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_system_system_proto_msgTypes[14]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_system_system_proto_msgTypes[14]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *TracerouteResponse) String() string {
@@ -1326,8 +1284,8 @@ func (x *TracerouteResponse) String() string {
 func (*TracerouteResponse) ProtoMessage() {}
 
 func (x *TracerouteResponse) ProtoReflect() protoreflect.Message {
-	mi := &file_system_system_proto_msgTypes[14]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_system_system_proto_msgTypes[14]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -1339,7 +1297,7 @@ func (x *TracerouteResponse) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use TracerouteResponse.ProtoReflect.Descriptor instead.
 func (*TracerouteResponse) Descriptor() ([]byte, []int) {
-	return file_system_system_proto_rawDescGZIP(), []int{14}
+	return file_github_com_openconfig_gnoi_system_system_proto_rawDescGZIP(), []int{14}
 }
 
 func (x *TracerouteResponse) GetDestinationName() string {
@@ -1434,23 +1392,20 @@ func (x *TracerouteResponse) GetIcmpExtData() []*TracerouteResponse_IcmpExtData
 }
 
 type Package struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
+	state          protoimpl.MessageState `protogen:"open.v1"`
 	Filename       string                 `protobuf:"bytes,1,opt,name=filename,proto3" json:"filename,omitempty"`
 	Version        string                 `protobuf:"bytes,4,opt,name=version,proto3" json:"version,omitempty"`
 	Activate       bool                   `protobuf:"varint,5,opt,name=activate,proto3" json:"activate,omitempty"`
 	RemoteDownload *common.RemoteDownload `protobuf:"bytes,6,opt,name=remote_download,json=remoteDownload,proto3" json:"remote_download,omitempty"`
+	unknownFields  protoimpl.UnknownFields
+	sizeCache      protoimpl.SizeCache
 }
 
 func (x *Package) Reset() {
 	*x = Package{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_system_system_proto_msgTypes[15]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_system_system_proto_msgTypes[15]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *Package) String() string {
@@ -1460,8 +1415,8 @@ func (x *Package) String() string {
 func (*Package) ProtoMessage() {}
 
 func (x *Package) ProtoReflect() protoreflect.Message {
-	mi := &file_system_system_proto_msgTypes[15]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_system_system_proto_msgTypes[15]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -1473,7 +1428,7 @@ func (x *Package) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use Package.ProtoReflect.Descriptor instead.
 func (*Package) Descriptor() ([]byte, []int) {
-	return file_system_system_proto_rawDescGZIP(), []int{15}
+	return file_github_com_openconfig_gnoi_system_system_proto_rawDescGZIP(), []int{15}
 }
 
 func (x *Package) GetFilename() string {
@@ -1505,25 +1460,22 @@ func (x *Package) GetRemoteDownload() *common.RemoteDownload {
 }
 
 type SetPackageRequest struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	// Types that are assignable to Request:
+	state protoimpl.MessageState `protogen:"open.v1"`
+	// Types that are valid to be assigned to Request:
 	//
 	//	*SetPackageRequest_Package
 	//	*SetPackageRequest_Contents
 	//	*SetPackageRequest_Hash
-	Request isSetPackageRequest_Request `protobuf_oneof:"request"`
+	Request       isSetPackageRequest_Request `protobuf_oneof:"request"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *SetPackageRequest) Reset() {
 	*x = SetPackageRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_system_system_proto_msgTypes[16]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_system_system_proto_msgTypes[16]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *SetPackageRequest) String() string {
@@ -1533,8 +1485,8 @@ func (x *SetPackageRequest) String() string {
 func (*SetPackageRequest) ProtoMessage() {}
 
 func (x *SetPackageRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_system_system_proto_msgTypes[16]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_system_system_proto_msgTypes[16]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -1546,33 +1498,39 @@ func (x *SetPackageRequest) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use SetPackageRequest.ProtoReflect.Descriptor instead.
 func (*SetPackageRequest) Descriptor() ([]byte, []int) {
-	return file_system_system_proto_rawDescGZIP(), []int{16}
+	return file_github_com_openconfig_gnoi_system_system_proto_rawDescGZIP(), []int{16}
 }
 
-func (m *SetPackageRequest) GetRequest() isSetPackageRequest_Request {
-	if m != nil {
-		return m.Request
+func (x *SetPackageRequest) GetRequest() isSetPackageRequest_Request {
+	if x != nil {
+		return x.Request
 	}
 	return nil
 }
 
 func (x *SetPackageRequest) GetPackage() *Package {
-	if x, ok := x.GetRequest().(*SetPackageRequest_Package); ok {
-		return x.Package
+	if x != nil {
+		if x, ok := x.Request.(*SetPackageRequest_Package); ok {
+			return x.Package
+		}
 	}
 	return nil
 }
 
 func (x *SetPackageRequest) GetContents() []byte {
-	if x, ok := x.GetRequest().(*SetPackageRequest_Contents); ok {
-		return x.Contents
+	if x != nil {
+		if x, ok := x.Request.(*SetPackageRequest_Contents); ok {
+			return x.Contents
+		}
 	}
 	return nil
 }
 
 func (x *SetPackageRequest) GetHash() *types.HashType {
-	if x, ok := x.GetRequest().(*SetPackageRequest_Hash); ok {
-		return x.Hash
+	if x != nil {
+		if x, ok := x.Request.(*SetPackageRequest_Hash); ok {
+			return x.Hash
+		}
 	}
 	return nil
 }
@@ -1600,18 +1558,16 @@ func (*SetPackageRequest_Contents) isSetPackageRequest_Request() {}
 func (*SetPackageRequest_Hash) isSetPackageRequest_Request() {}
 
 type SetPackageResponse struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState `protogen:"open.v1"`
 	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *SetPackageResponse) Reset() {
 	*x = SetPackageResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_system_system_proto_msgTypes[17]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_system_system_proto_msgTypes[17]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *SetPackageResponse) String() string {
@@ -1621,8 +1577,8 @@ func (x *SetPackageResponse) String() string {
 func (*SetPackageResponse) ProtoMessage() {}
 
 func (x *SetPackageResponse) ProtoReflect() protoreflect.Message {
-	mi := &file_system_system_proto_msgTypes[17]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_system_system_proto_msgTypes[17]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -1634,27 +1590,24 @@ func (x *SetPackageResponse) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use SetPackageResponse.ProtoReflect.Descriptor instead.
 func (*SetPackageResponse) Descriptor() ([]byte, []int) {
-	return file_system_system_proto_rawDescGZIP(), []int{17}
+	return file_github_com_openconfig_gnoi_system_system_proto_rawDescGZIP(), []int{17}
 }
 
 type KillProcessRequest struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState    `protogen:"open.v1"`
+	Pid           uint32                    `protobuf:"varint,1,opt,name=pid,proto3" json:"pid,omitempty"`
+	Name          string                    `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
+	Signal        KillProcessRequest_Signal `protobuf:"varint,3,opt,name=signal,proto3,enum=gnoi.system.KillProcessRequest_Signal" json:"signal,omitempty"`
+	Restart       bool                      `protobuf:"varint,4,opt,name=restart,proto3" json:"restart,omitempty"`
 	unknownFields protoimpl.UnknownFields
-
-	Pid     uint32                    `protobuf:"varint,1,opt,name=pid,proto3" json:"pid,omitempty"`
-	Name    string                    `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
-	Signal  KillProcessRequest_Signal `protobuf:"varint,3,opt,name=signal,proto3,enum=gnoi.system.KillProcessRequest_Signal" json:"signal,omitempty"`
-	Restart bool                      `protobuf:"varint,4,opt,name=restart,proto3" json:"restart,omitempty"`
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *KillProcessRequest) Reset() {
 	*x = KillProcessRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_system_system_proto_msgTypes[18]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_system_system_proto_msgTypes[18]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *KillProcessRequest) String() string {
@@ -1664,8 +1617,8 @@ func (x *KillProcessRequest) String() string {
 func (*KillProcessRequest) ProtoMessage() {}
 
 func (x *KillProcessRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_system_system_proto_msgTypes[18]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_system_system_proto_msgTypes[18]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -1677,7 +1630,7 @@ func (x *KillProcessRequest) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use KillProcessRequest.ProtoReflect.Descriptor instead.
 func (*KillProcessRequest) Descriptor() ([]byte, []int) {
-	return file_system_system_proto_rawDescGZIP(), []int{18}
+	return file_github_com_openconfig_gnoi_system_system_proto_rawDescGZIP(), []int{18}
 }
 
 func (x *KillProcessRequest) GetPid() uint32 {
@@ -1709,18 +1662,16 @@ func (x *KillProcessRequest) GetRestart() bool {
 }
 
 type KillProcessResponse struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState `protogen:"open.v1"`
 	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *KillProcessResponse) Reset() {
 	*x = KillProcessResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_system_system_proto_msgTypes[19]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_system_system_proto_msgTypes[19]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *KillProcessResponse) String() string {
@@ -1730,8 +1681,8 @@ func (x *KillProcessResponse) String() string {
 func (*KillProcessResponse) ProtoMessage() {}
 
 func (x *KillProcessResponse) ProtoReflect() protoreflect.Message {
-	mi := &file_system_system_proto_msgTypes[19]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_system_system_proto_msgTypes[19]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -1743,26 +1694,23 @@ func (x *KillProcessResponse) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use KillProcessResponse.ProtoReflect.Descriptor instead.
 func (*KillProcessResponse) Descriptor() ([]byte, []int) {
-	return file_system_system_proto_rawDescGZIP(), []int{19}
+	return file_github_com_openconfig_gnoi_system_system_proto_rawDescGZIP(), []int{19}
 }
 
 type TracerouteResponse_IcmpExtData struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Class         uint32                 `protobuf:"varint,1,opt,name=class,proto3" json:"class,omitempty"`
+	Type          uint32                 `protobuf:"varint,2,opt,name=type,proto3" json:"type,omitempty"`
+	Data          []uint32               `protobuf:"varint,3,rep,packed,name=data,proto3" json:"data,omitempty"`
 	unknownFields protoimpl.UnknownFields
-
-	Class uint32   `protobuf:"varint,1,opt,name=class,proto3" json:"class,omitempty"`
-	Type  uint32   `protobuf:"varint,2,opt,name=type,proto3" json:"type,omitempty"`
-	Data  []uint32 `protobuf:"varint,3,rep,packed,name=data,proto3" json:"data,omitempty"`
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *TracerouteResponse_IcmpExtData) Reset() {
 	*x = TracerouteResponse_IcmpExtData{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_system_system_proto_msgTypes[20]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_system_system_proto_msgTypes[20]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *TracerouteResponse_IcmpExtData) String() string {
@@ -1772,8 +1720,8 @@ func (x *TracerouteResponse_IcmpExtData) String() string {
 func (*TracerouteResponse_IcmpExtData) ProtoMessage() {}
 
 func (x *TracerouteResponse_IcmpExtData) ProtoReflect() protoreflect.Message {
-	mi := &file_system_system_proto_msgTypes[20]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_system_system_proto_msgTypes[20]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -1785,7 +1733,7 @@ func (x *TracerouteResponse_IcmpExtData) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use TracerouteResponse_IcmpExtData.ProtoReflect.Descriptor instead.
 func (*TracerouteResponse_IcmpExtData) Descriptor() ([]byte, []int) {
-	return file_system_system_proto_rawDescGZIP(), []int{14, 0}
+	return file_github_com_openconfig_gnoi_system_system_proto_rawDescGZIP(), []int{14, 0}
 }
 
 func (x *TracerouteResponse_IcmpExtData) GetClass() uint32 {
@@ -1809,327 +1757,329 @@ func (x *TracerouteResponse_IcmpExtData) GetData() []uint32 {
 	return nil
 }
 
-var File_system_system_proto protoreflect.FileDescriptor
-
-var file_system_system_proto_rawDesc = []byte{
-	0x0a, 0x13, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x2f, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x2e,
-	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0b, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x73, 0x79, 0x73, 0x74,
-	0x65, 0x6d, 0x1a, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f,
-	0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x67, 0x6e, 0x6f, 0x69, 0x2f, 0x63,
-	0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f,
-	0x74, 0x6f, 0x1a, 0x2c, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f,
-	0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x67, 0x6e, 0x6f, 0x69, 0x2f, 0x74,
-	0x79, 0x70, 0x65, 0x73, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
-	0x22, 0x5e, 0x0a, 0x1d, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f,
-	0x6c, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
-	0x74, 0x12, 0x3d, 0x0a, 0x11, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x70, 0x72, 0x6f,
-	0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x67,
-	0x6e, 0x6f, 0x69, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x50, 0x61, 0x74, 0x68, 0x52, 0x10,
-	0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72,
-	0x22, 0x91, 0x01, 0x0a, 0x1e, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x43, 0x6f, 0x6e, 0x74, 0x72,
-	0x6f, 0x6c, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f,
-	0x6e, 0x73, 0x65, 0x12, 0x3d, 0x0a, 0x11, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x70,
-	0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10,
-	0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x50, 0x61, 0x74, 0x68,
-	0x52, 0x10, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73,
-	0x6f, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20,
-	0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06,
-	0x75, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x75, 0x70,
-	0x74, 0x69, 0x6d, 0x65, 0x22, 0xc0, 0x01, 0x0a, 0x0d, 0x52, 0x65, 0x62, 0x6f, 0x6f, 0x74, 0x52,
-	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x31, 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64,
-	0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x73, 0x79,
-	0x73, 0x74, 0x65, 0x6d, 0x2e, 0x52, 0x65, 0x62, 0x6f, 0x6f, 0x74, 0x4d, 0x65, 0x74, 0x68, 0x6f,
-	0x64, 0x52, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x65, 0x6c,
-	0x61, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x12,
-	0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09,
-	0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x36, 0x0a, 0x0d, 0x73, 0x75, 0x62,
-	0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b,
-	0x32, 0x10, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x50, 0x61,
-	0x74, 0x68, 0x52, 0x0d, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74,
-	0x73, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08,
-	0x52, 0x05, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x22, 0x10, 0x0a, 0x0e, 0x52, 0x65, 0x62, 0x6f, 0x6f,
-	0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x67, 0x0a, 0x13, 0x43, 0x61, 0x6e,
-	0x63, 0x65, 0x6c, 0x52, 0x65, 0x62, 0x6f, 0x6f, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
-	0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,
-	0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x36, 0x0a, 0x0d, 0x73, 0x75,
-	0x62, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28,
-	0x0b, 0x32, 0x10, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x50,
-	0x61, 0x74, 0x68, 0x52, 0x0d, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e,
-	0x74, 0x73, 0x22, 0x16, 0x0a, 0x14, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x52, 0x65, 0x62, 0x6f,
-	0x6f, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x4d, 0x0a, 0x13, 0x52, 0x65,
-	0x62, 0x6f, 0x6f, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
-	0x74, 0x12, 0x36, 0x0a, 0x0d, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e,
-	0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e,
-	0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x50, 0x61, 0x74, 0x68, 0x52, 0x0d, 0x73, 0x75, 0x62, 0x63,
-	0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x22, 0xea, 0x01, 0x0a, 0x14, 0x52, 0x65,
-	0x62, 0x6f, 0x6f, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
-	0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, 0x01, 0x20, 0x01,
-	0x28, 0x08, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x77, 0x61,
-	0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x77, 0x61, 0x69, 0x74, 0x12, 0x12,
-	0x0a, 0x04, 0x77, 0x68, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x77, 0x68,
-	0x65, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01,
-	0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f,
-	0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74,
-	0x12, 0x31, 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e,
-	0x32, 0x19, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x2e, 0x52,
-	0x65, 0x62, 0x6f, 0x6f, 0x74, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x52, 0x06, 0x6d, 0x65, 0x74,
-	0x68, 0x6f, 0x64, 0x12, 0x31, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x07, 0x20,
-	0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x73, 0x79, 0x73, 0x74, 0x65,
-	0x6d, 0x2e, 0x52, 0x65, 0x62, 0x6f, 0x6f, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06,
-	0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0xc6, 0x01, 0x0a, 0x0c, 0x52, 0x65, 0x62, 0x6f, 0x6f,
-	0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x38, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75,
-	0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x20, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x73,
-	0x79, 0x73, 0x74, 0x65, 0x6d, 0x2e, 0x52, 0x65, 0x62, 0x6f, 0x6f, 0x74, 0x53, 0x74, 0x61, 0x74,
-	0x75, 0x73, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75,
-	0x73, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01,
-	0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x62, 0x0a, 0x06, 0x53,
-	0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x12, 0x0a, 0x0e, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f,
-	0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x53, 0x54, 0x41,
-	0x54, 0x55, 0x53, 0x5f, 0x53, 0x55, 0x43, 0x43, 0x45, 0x53, 0x53, 0x10, 0x01, 0x12, 0x1c, 0x0a,
-	0x18, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x52, 0x45, 0x54, 0x52, 0x49, 0x41, 0x42, 0x4c,
-	0x45, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x55, 0x52, 0x45, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x53,
-	0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x55, 0x52, 0x45, 0x10, 0x03, 0x22,
-	0x0d, 0x0a, 0x0b, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x22,
-	0x0a, 0x0c, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12,
-	0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x74, 0x69,
-	0x6d, 0x65, 0x22, 0xd2, 0x02, 0x0a, 0x0b, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65,
-	0x73, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f,
-	0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61,
-	0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x02,
-	0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x14, 0x0a, 0x05,
-	0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x63, 0x6f, 0x75,
-	0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x04,
-	0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x12, 0x12,
-	0x0a, 0x04, 0x77, 0x61, 0x69, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x77, 0x61,
-	0x69, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05,
-	0x52, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x26, 0x0a, 0x0f, 0x64, 0x6f, 0x5f, 0x6e, 0x6f, 0x74,
-	0x5f, 0x66, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52,
-	0x0d, 0x64, 0x6f, 0x4e, 0x6f, 0x74, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x24,
-	0x0a, 0x0e, 0x64, 0x6f, 0x5f, 0x6e, 0x6f, 0x74, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65,
-	0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x64, 0x6f, 0x4e, 0x6f, 0x74, 0x52, 0x65, 0x73,
-	0x6f, 0x6c, 0x76, 0x65, 0x12, 0x36, 0x0a, 0x0a, 0x6c, 0x33, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63,
-	0x6f, 0x6c, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e,
-	0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4c, 0x33, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c,
-	0x52, 0x0a, 0x6c, 0x33, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x29, 0x0a, 0x10,
-	0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65,
-	0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x49,
-	0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x22, 0x98, 0x02, 0x0a, 0x0c, 0x50, 0x69, 0x6e, 0x67,
-	0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72,
-	0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65,
-	0x12, 0x12, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04,
-	0x74, 0x69, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01,
-	0x28, 0x05, 0x52, 0x04, 0x73, 0x65, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x63, 0x65,
-	0x69, 0x76, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x72, 0x65, 0x63, 0x65,
-	0x69, 0x76, 0x65, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x6d, 0x69, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65,
-	0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x6d, 0x69, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12,
-	0x19, 0x0a, 0x08, 0x61, 0x76, 0x67, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28,
-	0x03, 0x52, 0x07, 0x61, 0x76, 0x67, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x6d, 0x61,
-	0x78, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x6d, 0x61,
-	0x78, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x73, 0x74, 0x64, 0x5f, 0x64, 0x65, 0x76,
-	0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x73, 0x74, 0x64, 0x44, 0x65, 0x76, 0x12, 0x14,
-	0x0a, 0x05, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x62,
-	0x79, 0x74, 0x65, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65,
-	0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65,
-	0x12, 0x10, 0x0a, 0x03, 0x74, 0x74, 0x6c, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x74,
-	0x74, 0x6c, 0x22, 0xec, 0x03, 0x0a, 0x11, 0x54, 0x72, 0x61, 0x63, 0x65, 0x72, 0x6f, 0x75, 0x74,
-	0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72,
-	0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65,
-	0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18,
-	0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69,
-	0x6f, 0x6e, 0x12, 0x1f, 0x0a, 0x0b, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x5f, 0x74, 0x74,
-	0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c,
-	0x54, 0x74, 0x6c, 0x12, 0x17, 0x0a, 0x07, 0x6d, 0x61, 0x78, 0x5f, 0x74, 0x74, 0x6c, 0x18, 0x04,
-	0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6d, 0x61, 0x78, 0x54, 0x74, 0x6c, 0x12, 0x12, 0x0a, 0x04,
-	0x77, 0x61, 0x69, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x77, 0x61, 0x69, 0x74,
-	0x12, 0x26, 0x0a, 0x0f, 0x64, 0x6f, 0x5f, 0x6e, 0x6f, 0x74, 0x5f, 0x66, 0x72, 0x61, 0x67, 0x6d,
-	0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x64, 0x6f, 0x4e, 0x6f, 0x74,
-	0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x24, 0x0a, 0x0e, 0x64, 0x6f, 0x5f, 0x6e,
-	0x6f, 0x74, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08,
-	0x52, 0x0c, 0x64, 0x6f, 0x4e, 0x6f, 0x74, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x12, 0x36,
-	0x0a, 0x0a, 0x6c, 0x33, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x08, 0x20, 0x01,
-	0x28, 0x0e, 0x32, 0x16, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e,
-	0x4c, 0x33, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x52, 0x0a, 0x6c, 0x33, 0x70, 0x72,
-	0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x49, 0x0a, 0x0a, 0x6c, 0x34, 0x70, 0x72, 0x6f, 0x74,
-	0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x67, 0x6e, 0x6f,
-	0x69, 0x2e, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x72, 0x6f,
-	0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x4c, 0x34, 0x50, 0x72, 0x6f,
-	0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x52, 0x0a, 0x6c, 0x34, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f,
-	0x6c, 0x12, 0x29, 0x0a, 0x11, 0x64, 0x6f, 0x5f, 0x6e, 0x6f, 0x74, 0x5f, 0x6c, 0x6f, 0x6f, 0x6b,
-	0x75, 0x70, 0x5f, 0x61, 0x73, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x64, 0x6f,
-	0x4e, 0x6f, 0x74, 0x4c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x41, 0x73, 0x6e, 0x12, 0x29, 0x0a, 0x10,
-	0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65,
-	0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x49,
-	0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x22, 0x28, 0x0a, 0x0a, 0x4c, 0x34, 0x50, 0x72, 0x6f,
-	0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x08, 0x0a, 0x04, 0x49, 0x43, 0x4d, 0x50, 0x10, 0x00, 0x12,
-	0x07, 0x0a, 0x03, 0x54, 0x43, 0x50, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x55, 0x44, 0x50, 0x10,
-	0x02, 0x22, 0xf5, 0x06, 0x0a, 0x12, 0x54, 0x72, 0x61, 0x63, 0x65, 0x72, 0x6f, 0x75, 0x74, 0x65,
-	0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x29, 0x0a, 0x10, 0x64, 0x65, 0x73, 0x74,
-	0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01,
-	0x28, 0x09, 0x52, 0x0f, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4e,
-	0x61, 0x6d, 0x65, 0x12, 0x2f, 0x0a, 0x13, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69,
-	0x6f, 0x6e, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
-	0x52, 0x12, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x64, 0x64,
-	0x72, 0x65, 0x73, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x6f, 0x70, 0x73, 0x18, 0x03, 0x20, 0x01,
-	0x28, 0x05, 0x52, 0x04, 0x68, 0x6f, 0x70, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x61, 0x63, 0x6b,
-	0x65, 0x74, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x70,
-	0x61, 0x63, 0x6b, 0x65, 0x74, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x68, 0x6f, 0x70,
-	0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x68, 0x6f, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x61,
-	0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64,
-	0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20,
-	0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x72, 0x74, 0x74,
-	0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x72, 0x74, 0x74, 0x12, 0x3b, 0x0a, 0x05, 0x73,
-	0x74, 0x61, 0x74, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x67, 0x6e, 0x6f,
-	0x69, 0x2e, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x72, 0x6f,
-	0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74,
-	0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x63, 0x6d, 0x70,
-	0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x69, 0x63, 0x6d,
-	0x70, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x3d, 0x0a, 0x04, 0x6d, 0x70, 0x6c, 0x73, 0x18, 0x0b, 0x20,
-	0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x73, 0x79, 0x73, 0x74, 0x65,
-	0x6d, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70,
-	0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x4d, 0x70, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04,
-	0x6d, 0x70, 0x6c, 0x73, 0x12, 0x17, 0x0a, 0x07, 0x61, 0x73, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18,
-	0x0c, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x61, 0x73, 0x50, 0x61, 0x74, 0x68, 0x12, 0x4f, 0x0a,
-	0x0d, 0x69, 0x63, 0x6d, 0x70, 0x5f, 0x65, 0x78, 0x74, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x0d,
-	0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x73, 0x79, 0x73, 0x74,
-	0x65, 0x6d, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73,
-	0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x78, 0x74, 0x44, 0x61, 0x74,
-	0x61, 0x52, 0x0b, 0x69, 0x63, 0x6d, 0x70, 0x45, 0x78, 0x74, 0x44, 0x61, 0x74, 0x61, 0x1a, 0x4b,
-	0x0a, 0x0b, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x78, 0x74, 0x44, 0x61, 0x74, 0x61, 0x12, 0x14, 0x0a,
-	0x05, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x63, 0x6c,
-	0x61, 0x73, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,
-	0x0d, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18,
-	0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x37, 0x0a, 0x09, 0x4d,
-	0x70, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18,
-	0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61,
-	0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65,
-	0x3a, 0x02, 0x38, 0x01, 0x22, 0xf2, 0x01, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x0b,
-	0x0a, 0x07, 0x44, 0x45, 0x46, 0x41, 0x55, 0x4c, 0x54, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x4e,
-	0x4f, 0x4e, 0x45, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e,
-	0x10, 0x02, 0x12, 0x08, 0x0a, 0x04, 0x49, 0x43, 0x4d, 0x50, 0x10, 0x03, 0x12, 0x14, 0x0a, 0x10,
-	0x48, 0x4f, 0x53, 0x54, 0x5f, 0x55, 0x4e, 0x52, 0x45, 0x41, 0x43, 0x48, 0x41, 0x42, 0x4c, 0x45,
-	0x10, 0x04, 0x12, 0x17, 0x0a, 0x13, 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b, 0x5f, 0x55, 0x4e,
-	0x52, 0x45, 0x41, 0x43, 0x48, 0x41, 0x42, 0x4c, 0x45, 0x10, 0x05, 0x12, 0x18, 0x0a, 0x14, 0x50,
-	0x52, 0x4f, 0x54, 0x4f, 0x43, 0x4f, 0x4c, 0x5f, 0x55, 0x4e, 0x52, 0x45, 0x41, 0x43, 0x48, 0x41,
-	0x42, 0x4c, 0x45, 0x10, 0x06, 0x12, 0x17, 0x0a, 0x13, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f,
-	0x52, 0x4f, 0x55, 0x54, 0x45, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0x07, 0x12, 0x18,
-	0x0a, 0x14, 0x46, 0x52, 0x41, 0x47, 0x4d, 0x45, 0x4e, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f,
-	0x4e, 0x45, 0x45, 0x44, 0x45, 0x44, 0x10, 0x08, 0x12, 0x0e, 0x0a, 0x0a, 0x50, 0x52, 0x4f, 0x48,
-	0x49, 0x42, 0x49, 0x54, 0x45, 0x44, 0x10, 0x09, 0x12, 0x18, 0x0a, 0x14, 0x50, 0x52, 0x45, 0x43,
-	0x45, 0x44, 0x45, 0x4e, 0x43, 0x45, 0x5f, 0x56, 0x49, 0x4f, 0x4c, 0x41, 0x54, 0x49, 0x4f, 0x4e,
-	0x10, 0x0a, 0x12, 0x15, 0x0a, 0x11, 0x50, 0x52, 0x45, 0x43, 0x45, 0x44, 0x45, 0x4e, 0x43, 0x45,
-	0x5f, 0x43, 0x55, 0x54, 0x4f, 0x46, 0x46, 0x10, 0x0b, 0x22, 0xa1, 0x01, 0x0a, 0x07, 0x50, 0x61,
-	0x63, 0x6b, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d,
-	0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d,
-	0x65, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01,
-	0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x61,
-	0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x61,
-	0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x12, 0x44, 0x0a, 0x0f, 0x72, 0x65, 0x6d, 0x6f, 0x74,
-	0x65, 0x5f, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b,
-	0x32, 0x1b, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x52,
-	0x65, 0x6d, 0x6f, 0x74, 0x65, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x0e, 0x72,
-	0x65, 0x6d, 0x6f, 0x74, 0x65, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x22, 0x9a, 0x01,
-	0x0a, 0x11, 0x53, 0x65, 0x74, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75,
-	0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x07, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x18, 0x01,
-	0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x73, 0x79, 0x73, 0x74,
-	0x65, 0x6d, 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x48, 0x00, 0x52, 0x07, 0x70, 0x61,
-	0x63, 0x6b, 0x61, 0x67, 0x65, 0x12, 0x1c, 0x0a, 0x08, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74,
-	0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x08, 0x63, 0x6f, 0x6e, 0x74, 0x65,
-	0x6e, 0x74, 0x73, 0x12, 0x2a, 0x0a, 0x04, 0x68, 0x61, 0x73, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28,
-	0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x48,
-	0x61, 0x73, 0x68, 0x54, 0x79, 0x70, 0x65, 0x48, 0x00, 0x52, 0x04, 0x68, 0x61, 0x73, 0x68, 0x42,
-	0x09, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x14, 0x0a, 0x12, 0x53, 0x65,
-	0x74, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
-	0x22, 0xf9, 0x01, 0x0a, 0x12, 0x4b, 0x69, 0x6c, 0x6c, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73,
-	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x70, 0x69, 0x64, 0x18, 0x01,
-	0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x70, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d,
-	0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x3e, 0x0a,
-	0x06, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e,
-	0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x2e, 0x4b, 0x69, 0x6c, 0x6c,
-	0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x53,
-	0x69, 0x67, 0x6e, 0x61, 0x6c, 0x52, 0x06, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x12, 0x18, 0x0a,
-	0x07, 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07,
-	0x72, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x22, 0x63, 0x0a, 0x06, 0x53, 0x69, 0x67, 0x6e, 0x61,
-	0x6c, 0x12, 0x16, 0x0a, 0x12, 0x53, 0x49, 0x47, 0x4e, 0x41, 0x4c, 0x5f, 0x55, 0x4e, 0x53, 0x50,
-	0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0f, 0x0a, 0x0b, 0x53, 0x49, 0x47,
-	0x4e, 0x41, 0x4c, 0x5f, 0x54, 0x45, 0x52, 0x4d, 0x10, 0x01, 0x12, 0x0f, 0x0a, 0x0b, 0x53, 0x49,
-	0x47, 0x4e, 0x41, 0x4c, 0x5f, 0x4b, 0x49, 0x4c, 0x4c, 0x10, 0x02, 0x12, 0x0e, 0x0a, 0x0a, 0x53,
-	0x49, 0x47, 0x4e, 0x41, 0x4c, 0x5f, 0x48, 0x55, 0x50, 0x10, 0x03, 0x12, 0x0f, 0x0a, 0x0b, 0x53,
-	0x49, 0x47, 0x4e, 0x41, 0x4c, 0x5f, 0x41, 0x42, 0x52, 0x54, 0x10, 0x04, 0x22, 0x15, 0x0a, 0x13,
-	0x4b, 0x69, 0x6c, 0x6c, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f,
-	0x6e, 0x73, 0x65, 0x2a, 0x64, 0x0a, 0x0c, 0x52, 0x65, 0x62, 0x6f, 0x6f, 0x74, 0x4d, 0x65, 0x74,
-	0x68, 0x6f, 0x64, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00,
-	0x12, 0x08, 0x0a, 0x04, 0x43, 0x4f, 0x4c, 0x44, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x50, 0x4f,
-	0x57, 0x45, 0x52, 0x44, 0x4f, 0x57, 0x4e, 0x10, 0x02, 0x12, 0x08, 0x0a, 0x04, 0x48, 0x41, 0x4c,
-	0x54, 0x10, 0x03, 0x12, 0x08, 0x0a, 0x04, 0x57, 0x41, 0x52, 0x4d, 0x10, 0x04, 0x12, 0x07, 0x0a,
-	0x03, 0x4e, 0x53, 0x46, 0x10, 0x05, 0x12, 0x0b, 0x0a, 0x07, 0x50, 0x4f, 0x57, 0x45, 0x52, 0x55,
-	0x50, 0x10, 0x07, 0x22, 0x04, 0x08, 0x06, 0x10, 0x06, 0x32, 0xea, 0x05, 0x0a, 0x06, 0x53, 0x79,
-	0x73, 0x74, 0x65, 0x6d, 0x12, 0x3f, 0x0a, 0x04, 0x50, 0x69, 0x6e, 0x67, 0x12, 0x18, 0x2e, 0x67,
-	0x6e, 0x6f, 0x69, 0x2e, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x2e, 0x50, 0x69, 0x6e, 0x67, 0x52,
-	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x73, 0x79,
-	0x73, 0x74, 0x65, 0x6d, 0x2e, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
-	0x65, 0x22, 0x00, 0x30, 0x01, 0x12, 0x51, 0x0a, 0x0a, 0x54, 0x72, 0x61, 0x63, 0x65, 0x72, 0x6f,
-	0x75, 0x74, 0x65, 0x12, 0x1e, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x73, 0x79, 0x73, 0x74, 0x65,
-	0x6d, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75,
-	0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x73, 0x79, 0x73, 0x74, 0x65,
-	0x6d, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70,
-	0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x30, 0x01, 0x12, 0x3d, 0x0a, 0x04, 0x54, 0x69, 0x6d, 0x65,
-	0x12, 0x18, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x2e, 0x54,
-	0x69, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x67, 0x6e, 0x6f,
-	0x69, 0x2e, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x65, 0x73,
-	0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x51, 0x0a, 0x0a, 0x53, 0x65, 0x74, 0x50, 0x61,
-	0x63, 0x6b, 0x61, 0x67, 0x65, 0x12, 0x1e, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x73, 0x79, 0x73,
-	0x74, 0x65, 0x6d, 0x2e, 0x53, 0x65, 0x74, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x52, 0x65,
-	0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x73, 0x79, 0x73,
-	0x74, 0x65, 0x6d, 0x2e, 0x53, 0x65, 0x74, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x52, 0x65,
-	0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x28, 0x01, 0x12, 0x73, 0x0a, 0x16, 0x53, 0x77,
-	0x69, 0x74, 0x63, 0x68, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x50, 0x72, 0x6f, 0x63, 0x65,
-	0x73, 0x73, 0x6f, 0x72, 0x12, 0x2a, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x73, 0x79, 0x73, 0x74,
-	0x65, 0x6d, 0x2e, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c,
-	0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
-	0x1a, 0x2b, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x2e, 0x53,
+var File_github_com_openconfig_gnoi_system_system_proto protoreflect.FileDescriptor
+
+var file_github_com_openconfig_gnoi_system_system_proto_rawDesc = []byte{
+	0x0a, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x70, 0x65,
+	0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x67, 0x6e, 0x6f, 0x69, 0x2f, 0x73, 0x79, 0x73,
+	0x74, 0x65, 0x6d, 0x2f, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
+	0x12, 0x0b, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x1a, 0x2e, 0x67,
+	0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f,
+	0x6e, 0x66, 0x69, 0x67, 0x2f, 0x67, 0x6e, 0x6f, 0x69, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e,
+	0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2c, 0x67,
+	0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f,
+	0x6e, 0x66, 0x69, 0x67, 0x2f, 0x67, 0x6e, 0x6f, 0x69, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2f,
+	0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x5e, 0x0a, 0x1d, 0x53,
 	0x77, 0x69, 0x74, 0x63, 0x68, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x50, 0x72, 0x6f, 0x63,
-	0x65, 0x73, 0x73, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12,
-	0x43, 0x0a, 0x06, 0x52, 0x65, 0x62, 0x6f, 0x6f, 0x74, 0x12, 0x1a, 0x2e, 0x67, 0x6e, 0x6f, 0x69,
-	0x2e, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x2e, 0x52, 0x65, 0x62, 0x6f, 0x6f, 0x74, 0x52, 0x65,
-	0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x73, 0x79, 0x73,
-	0x74, 0x65, 0x6d, 0x2e, 0x52, 0x65, 0x62, 0x6f, 0x6f, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
-	0x73, 0x65, 0x22, 0x00, 0x12, 0x55, 0x0a, 0x0c, 0x52, 0x65, 0x62, 0x6f, 0x6f, 0x74, 0x53, 0x74,
-	0x61, 0x74, 0x75, 0x73, 0x12, 0x20, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x73, 0x79, 0x73, 0x74,
-	0x65, 0x6d, 0x2e, 0x52, 0x65, 0x62, 0x6f, 0x6f, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52,
-	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x73, 0x79,
-	0x73, 0x74, 0x65, 0x6d, 0x2e, 0x52, 0x65, 0x62, 0x6f, 0x6f, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75,
-	0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x55, 0x0a, 0x0c, 0x43,
-	0x61, 0x6e, 0x63, 0x65, 0x6c, 0x52, 0x65, 0x62, 0x6f, 0x6f, 0x74, 0x12, 0x20, 0x2e, 0x67, 0x6e,
-	0x6f, 0x69, 0x2e, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x2e, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c,
-	0x52, 0x65, 0x62, 0x6f, 0x6f, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e,
-	0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x2e, 0x43, 0x61, 0x6e, 0x63,
-	0x65, 0x6c, 0x52, 0x65, 0x62, 0x6f, 0x6f, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
-	0x22, 0x00, 0x12, 0x52, 0x0a, 0x0b, 0x4b, 0x69, 0x6c, 0x6c, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73,
-	0x73, 0x12, 0x1f, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x2e,
+	0x65, 0x73, 0x73, 0x6f, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3d, 0x0a, 0x11,
+	0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x6f,
+	0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x74,
+	0x79, 0x70, 0x65, 0x73, 0x2e, 0x50, 0x61, 0x74, 0x68, 0x52, 0x10, 0x63, 0x6f, 0x6e, 0x74, 0x72,
+	0x6f, 0x6c, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x22, 0x91, 0x01, 0x0a, 0x1e,
+	0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x50, 0x72, 0x6f,
+	0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3d,
+	0x0a, 0x11, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73,
+	0x73, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x67, 0x6e, 0x6f, 0x69,
+	0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x50, 0x61, 0x74, 0x68, 0x52, 0x10, 0x63, 0x6f, 0x6e,
+	0x74, 0x72, 0x6f, 0x6c, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x12, 0x18, 0x0a,
+	0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07,
+	0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x70, 0x74, 0x69, 0x6d,
+	0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x75, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x22,
+	0xc0, 0x01, 0x0a, 0x0d, 0x52, 0x65, 0x62, 0x6f, 0x6f, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
+	0x74, 0x12, 0x31, 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
+	0x0e, 0x32, 0x19, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x2e,
+	0x52, 0x65, 0x62, 0x6f, 0x6f, 0x74, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x52, 0x06, 0x6d, 0x65,
+	0x74, 0x68, 0x6f, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x18, 0x02, 0x20,
+	0x01, 0x28, 0x04, 0x52, 0x05, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65,
+	0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73,
+	0x73, 0x61, 0x67, 0x65, 0x12, 0x36, 0x0a, 0x0d, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x6d, 0x70, 0x6f,
+	0x6e, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x67, 0x6e,
+	0x6f, 0x69, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x50, 0x61, 0x74, 0x68, 0x52, 0x0d, 0x73,
+	0x75, 0x62, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x14, 0x0a, 0x05,
+	0x66, 0x6f, 0x72, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x66, 0x6f, 0x72,
+	0x63, 0x65, 0x22, 0x10, 0x0a, 0x0e, 0x52, 0x65, 0x62, 0x6f, 0x6f, 0x74, 0x52, 0x65, 0x73, 0x70,
+	0x6f, 0x6e, 0x73, 0x65, 0x22, 0x67, 0x0a, 0x13, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x52, 0x65,
+	0x62, 0x6f, 0x6f, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x6d,
+	0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65,
+	0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x36, 0x0a, 0x0d, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x6d, 0x70,
+	0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x67,
+	0x6e, 0x6f, 0x69, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x50, 0x61, 0x74, 0x68, 0x52, 0x0d,
+	0x73, 0x75, 0x62, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x22, 0x16, 0x0a,
+	0x14, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x52, 0x65, 0x62, 0x6f, 0x6f, 0x74, 0x52, 0x65, 0x73,
+	0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x4d, 0x0a, 0x13, 0x52, 0x65, 0x62, 0x6f, 0x6f, 0x74, 0x53,
+	0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x36, 0x0a, 0x0d,
+	0x73, 0x75, 0x62, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20,
+	0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73,
+	0x2e, 0x50, 0x61, 0x74, 0x68, 0x52, 0x0d, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e,
+	0x65, 0x6e, 0x74, 0x73, 0x22, 0xea, 0x01, 0x0a, 0x14, 0x52, 0x65, 0x62, 0x6f, 0x6f, 0x74, 0x53,
+	0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a,
+	0x06, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x61,
+	0x63, 0x74, 0x69, 0x76, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x77, 0x61, 0x69, 0x74, 0x18, 0x02, 0x20,
+	0x01, 0x28, 0x04, 0x52, 0x04, 0x77, 0x61, 0x69, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x77, 0x68, 0x65,
+	0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x77, 0x68, 0x65, 0x6e, 0x12, 0x16, 0x0a,
+	0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72,
+	0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05,
+	0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x31, 0x0a, 0x06, 0x6d,
+	0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x67, 0x6e,
+	0x6f, 0x69, 0x2e, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x2e, 0x52, 0x65, 0x62, 0x6f, 0x6f, 0x74,
+	0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x52, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x31,
+	0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19,
+	0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x2e, 0x52, 0x65, 0x62,
+	0x6f, 0x6f, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75,
+	0x73, 0x22, 0xc6, 0x01, 0x0a, 0x0c, 0x52, 0x65, 0x62, 0x6f, 0x6f, 0x74, 0x53, 0x74, 0x61, 0x74,
+	0x75, 0x73, 0x12, 0x38, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01,
+	0x28, 0x0e, 0x32, 0x20, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d,
+	0x2e, 0x52, 0x65, 0x62, 0x6f, 0x6f, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x53, 0x74,
+	0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x18, 0x0a, 0x07,
+	0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d,
+	0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x62, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73,
+	0x12, 0x12, 0x0a, 0x0e, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f,
+	0x57, 0x4e, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x53,
+	0x55, 0x43, 0x43, 0x45, 0x53, 0x53, 0x10, 0x01, 0x12, 0x1c, 0x0a, 0x18, 0x53, 0x54, 0x41, 0x54,
+	0x55, 0x53, 0x5f, 0x52, 0x45, 0x54, 0x52, 0x49, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x46, 0x41, 0x49,
+	0x4c, 0x55, 0x52, 0x45, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53,
+	0x5f, 0x46, 0x41, 0x49, 0x4c, 0x55, 0x52, 0x45, 0x10, 0x03, 0x22, 0x0d, 0x0a, 0x0b, 0x54, 0x69,
+	0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x22, 0x0a, 0x0c, 0x54, 0x69, 0x6d,
+	0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x69, 0x6d,
+	0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x22, 0xd2, 0x02,
+	0x0a, 0x0b, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a,
+	0x0b, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01,
+	0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12,
+	0x16, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
+	0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74,
+	0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1a, 0x0a,
+	0x08, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52,
+	0x08, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x77, 0x61, 0x69,
+	0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x77, 0x61, 0x69, 0x74, 0x12, 0x12, 0x0a,
+	0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x73, 0x69, 0x7a,
+	0x65, 0x12, 0x26, 0x0a, 0x0f, 0x64, 0x6f, 0x5f, 0x6e, 0x6f, 0x74, 0x5f, 0x66, 0x72, 0x61, 0x67,
+	0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x64, 0x6f, 0x4e, 0x6f,
+	0x74, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x24, 0x0a, 0x0e, 0x64, 0x6f, 0x5f,
+	0x6e, 0x6f, 0x74, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28,
+	0x08, 0x52, 0x0c, 0x64, 0x6f, 0x4e, 0x6f, 0x74, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x12,
+	0x36, 0x0a, 0x0a, 0x6c, 0x33, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x09, 0x20,
+	0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73,
+	0x2e, 0x4c, 0x33, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x52, 0x0a, 0x6c, 0x33, 0x70,
+	0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x29, 0x0a, 0x10, 0x6e, 0x65, 0x74, 0x77, 0x6f,
+	0x72, 0x6b, 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28,
+	0x09, 0x52, 0x0f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e,
+	0x63, 0x65, 0x22, 0x98, 0x02, 0x0a, 0x0c, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f,
+	0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x01, 0x20,
+	0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74,
+	0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x12,
+	0x12, 0x0a, 0x04, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x73,
+	0x65, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18,
+	0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x12,
+	0x19, 0x0a, 0x08, 0x6d, 0x69, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28,
+	0x03, 0x52, 0x07, 0x6d, 0x69, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x61, 0x76,
+	0x67, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x61, 0x76,
+	0x67, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x6d, 0x61, 0x78, 0x5f, 0x74, 0x69, 0x6d,
+	0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x6d, 0x61, 0x78, 0x54, 0x69, 0x6d, 0x65,
+	0x12, 0x17, 0x0a, 0x07, 0x73, 0x74, 0x64, 0x5f, 0x64, 0x65, 0x76, 0x18, 0x08, 0x20, 0x01, 0x28,
+	0x03, 0x52, 0x06, 0x73, 0x74, 0x64, 0x44, 0x65, 0x76, 0x12, 0x14, 0x0a, 0x05, 0x62, 0x79, 0x74,
+	0x65, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x62, 0x79, 0x74, 0x65, 0x73, 0x12,
+	0x1a, 0x0a, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28,
+	0x05, 0x52, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x74,
+	0x74, 0x6c, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x74, 0x74, 0x6c, 0x22, 0xec, 0x03,
+	0x0a, 0x11, 0x54, 0x72, 0x61, 0x63, 0x65, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75,
+	0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x01, 0x20,
+	0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64,
+	0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
+	0x52, 0x0b, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1f, 0x0a,
+	0x0b, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x5f, 0x74, 0x74, 0x6c, 0x18, 0x03, 0x20, 0x01,
+	0x28, 0x0d, 0x52, 0x0a, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x54, 0x74, 0x6c, 0x12, 0x17,
+	0x0a, 0x07, 0x6d, 0x61, 0x78, 0x5f, 0x74, 0x74, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52,
+	0x06, 0x6d, 0x61, 0x78, 0x54, 0x74, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x77, 0x61, 0x69, 0x74, 0x18,
+	0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x77, 0x61, 0x69, 0x74, 0x12, 0x26, 0x0a, 0x0f, 0x64,
+	0x6f, 0x5f, 0x6e, 0x6f, 0x74, 0x5f, 0x66, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06,
+	0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x64, 0x6f, 0x4e, 0x6f, 0x74, 0x46, 0x72, 0x61, 0x67, 0x6d,
+	0x65, 0x6e, 0x74, 0x12, 0x24, 0x0a, 0x0e, 0x64, 0x6f, 0x5f, 0x6e, 0x6f, 0x74, 0x5f, 0x72, 0x65,
+	0x73, 0x6f, 0x6c, 0x76, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x64, 0x6f, 0x4e,
+	0x6f, 0x74, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x12, 0x36, 0x0a, 0x0a, 0x6c, 0x33, 0x70,
+	0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e,
+	0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4c, 0x33, 0x50, 0x72, 0x6f,
+	0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x52, 0x0a, 0x6c, 0x33, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f,
+	0x6c, 0x12, 0x49, 0x0a, 0x0a, 0x6c, 0x34, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18,
+	0x09, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x73, 0x79, 0x73,
+	0x74, 0x65, 0x6d, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x65,
+	0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x4c, 0x34, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c,
+	0x52, 0x0a, 0x6c, 0x34, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x29, 0x0a, 0x11,
+	0x64, 0x6f, 0x5f, 0x6e, 0x6f, 0x74, 0x5f, 0x6c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x5f, 0x61, 0x73,
+	0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x64, 0x6f, 0x4e, 0x6f, 0x74, 0x4c, 0x6f,
+	0x6f, 0x6b, 0x75, 0x70, 0x41, 0x73, 0x6e, 0x12, 0x29, 0x0a, 0x10, 0x6e, 0x65, 0x74, 0x77, 0x6f,
+	0x72, 0x6b, 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28,
+	0x09, 0x52, 0x0f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e,
+	0x63, 0x65, 0x22, 0x28, 0x0a, 0x0a, 0x4c, 0x34, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c,
+	0x12, 0x08, 0x0a, 0x04, 0x49, 0x43, 0x4d, 0x50, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x54, 0x43,
+	0x50, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x55, 0x44, 0x50, 0x10, 0x02, 0x22, 0xf5, 0x06, 0x0a,
+	0x12, 0x54, 0x72, 0x61, 0x63, 0x65, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f,
+	0x6e, 0x73, 0x65, 0x12, 0x29, 0x0a, 0x10, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69,
+	0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x64,
+	0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2f,
+	0x0a, 0x13, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x61, 0x64,
+	0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x64, 0x65, 0x73,
+	0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12,
+	0x12, 0x0a, 0x04, 0x68, 0x6f, 0x70, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x68,
+	0x6f, 0x70, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x73, 0x69,
+	0x7a, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74,
+	0x53, 0x69, 0x7a, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x68, 0x6f, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28,
+	0x05, 0x52, 0x03, 0x68, 0x6f, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73,
+	0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73,
+	0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04,
+	0x6e, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x72, 0x74, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28,
+	0x03, 0x52, 0x03, 0x72, 0x74, 0x74, 0x12, 0x3b, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18,
+	0x09, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x73, 0x79, 0x73,
+	0x74, 0x65, 0x6d, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x65, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x65,
+	0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74,
+	0x61, 0x74, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x63, 0x6d, 0x70, 0x5f, 0x63, 0x6f, 0x64, 0x65,
+	0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x69, 0x63, 0x6d, 0x70, 0x43, 0x6f, 0x64, 0x65,
+	0x12, 0x3d, 0x0a, 0x04, 0x6d, 0x70, 0x6c, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29,
+	0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x2e, 0x54, 0x72, 0x61,
+	0x63, 0x65, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e,
+	0x4d, 0x70, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x6d, 0x70, 0x6c, 0x73, 0x12,
+	0x17, 0x0a, 0x07, 0x61, 0x73, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x05,
+	0x52, 0x06, 0x61, 0x73, 0x50, 0x61, 0x74, 0x68, 0x12, 0x4f, 0x0a, 0x0d, 0x69, 0x63, 0x6d, 0x70,
+	0x5f, 0x65, 0x78, 0x74, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32,
+	0x2b, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x2e, 0x54, 0x72,
+	0x61, 0x63, 0x65, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
+	0x2e, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x78, 0x74, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0b, 0x69, 0x63,
+	0x6d, 0x70, 0x45, 0x78, 0x74, 0x44, 0x61, 0x74, 0x61, 0x1a, 0x4b, 0x0a, 0x0b, 0x49, 0x63, 0x6d,
+	0x70, 0x45, 0x78, 0x74, 0x44, 0x61, 0x74, 0x61, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6c, 0x61, 0x73,
+	0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x12, 0x12,
+	0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x74, 0x79,
+	0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d,
+	0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x37, 0x0a, 0x09, 0x4d, 0x70, 0x6c, 0x73, 0x45, 0x6e,
+	0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
+	0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02,
+	0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22,
+	0xf2, 0x01, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x44, 0x45, 0x46,
+	0x41, 0x55, 0x4c, 0x54, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x01,
+	0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x02, 0x12, 0x08, 0x0a,
+	0x04, 0x49, 0x43, 0x4d, 0x50, 0x10, 0x03, 0x12, 0x14, 0x0a, 0x10, 0x48, 0x4f, 0x53, 0x54, 0x5f,
+	0x55, 0x4e, 0x52, 0x45, 0x41, 0x43, 0x48, 0x41, 0x42, 0x4c, 0x45, 0x10, 0x04, 0x12, 0x17, 0x0a,
+	0x13, 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b, 0x5f, 0x55, 0x4e, 0x52, 0x45, 0x41, 0x43, 0x48,
+	0x41, 0x42, 0x4c, 0x45, 0x10, 0x05, 0x12, 0x18, 0x0a, 0x14, 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x43,
+	0x4f, 0x4c, 0x5f, 0x55, 0x4e, 0x52, 0x45, 0x41, 0x43, 0x48, 0x41, 0x42, 0x4c, 0x45, 0x10, 0x06,
+	0x12, 0x17, 0x0a, 0x13, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x52, 0x4f, 0x55, 0x54, 0x45,
+	0x5f, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0x07, 0x12, 0x18, 0x0a, 0x14, 0x46, 0x52, 0x41,
+	0x47, 0x4d, 0x45, 0x4e, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4e, 0x45, 0x45, 0x44, 0x45,
+	0x44, 0x10, 0x08, 0x12, 0x0e, 0x0a, 0x0a, 0x50, 0x52, 0x4f, 0x48, 0x49, 0x42, 0x49, 0x54, 0x45,
+	0x44, 0x10, 0x09, 0x12, 0x18, 0x0a, 0x14, 0x50, 0x52, 0x45, 0x43, 0x45, 0x44, 0x45, 0x4e, 0x43,
+	0x45, 0x5f, 0x56, 0x49, 0x4f, 0x4c, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x0a, 0x12, 0x15, 0x0a,
+	0x11, 0x50, 0x52, 0x45, 0x43, 0x45, 0x44, 0x45, 0x4e, 0x43, 0x45, 0x5f, 0x43, 0x55, 0x54, 0x4f,
+	0x46, 0x46, 0x10, 0x0b, 0x22, 0xa1, 0x01, 0x0a, 0x07, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65,
+	0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01,
+	0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07,
+	0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76,
+	0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x63, 0x74, 0x69, 0x76, 0x61,
+	0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x61, 0x63, 0x74, 0x69, 0x76, 0x61,
+	0x74, 0x65, 0x12, 0x44, 0x0a, 0x0f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x64, 0x6f, 0x77,
+	0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6e,
+	0x6f, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65,
+	0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x0e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65,
+	0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x22, 0x9a, 0x01, 0x0a, 0x11, 0x53, 0x65, 0x74,
+	0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30,
+	0x0a, 0x07, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
+	0x14, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x2e, 0x50, 0x61,
+	0x63, 0x6b, 0x61, 0x67, 0x65, 0x48, 0x00, 0x52, 0x07, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65,
+	0x12, 0x1c, 0x0a, 0x08, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x01,
+	0x28, 0x0c, 0x48, 0x00, 0x52, 0x08, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x2a,
+	0x0a, 0x04, 0x68, 0x61, 0x73, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67,
+	0x6e, 0x6f, 0x69, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x48, 0x61, 0x73, 0x68, 0x54, 0x79,
+	0x70, 0x65, 0x48, 0x00, 0x52, 0x04, 0x68, 0x61, 0x73, 0x68, 0x42, 0x09, 0x0a, 0x07, 0x72, 0x65,
+	0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x14, 0x0a, 0x12, 0x53, 0x65, 0x74, 0x50, 0x61, 0x63, 0x6b,
+	0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xf9, 0x01, 0x0a, 0x12,
 	0x4b, 0x69, 0x6c, 0x6c, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65,
-	0x73, 0x74, 0x1a, 0x20, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d,
-	0x2e, 0x4b, 0x69, 0x6c, 0x6c, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70,
-	0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x2b, 0xd2, 0x3e, 0x05, 0x31, 0x2e, 0x34, 0x2e, 0x30,
-	0x5a, 0x21, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x70, 0x65,
-	0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x67, 0x6e, 0x6f, 0x69, 0x2f, 0x73, 0x79, 0x73,
-	0x74, 0x65, 0x6d, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+	0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x70, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52,
+	0x03, 0x70, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01,
+	0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x3e, 0x0a, 0x06, 0x73, 0x69, 0x67, 0x6e,
+	0x61, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e,
+	0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x2e, 0x4b, 0x69, 0x6c, 0x6c, 0x50, 0x72, 0x6f, 0x63, 0x65,
+	0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c,
+	0x52, 0x06, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x73, 0x74,
+	0x61, 0x72, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x72, 0x65, 0x73, 0x74, 0x61,
+	0x72, 0x74, 0x22, 0x63, 0x0a, 0x06, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x12, 0x16, 0x0a, 0x12,
+	0x53, 0x49, 0x47, 0x4e, 0x41, 0x4c, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49,
+	0x45, 0x44, 0x10, 0x00, 0x12, 0x0f, 0x0a, 0x0b, 0x53, 0x49, 0x47, 0x4e, 0x41, 0x4c, 0x5f, 0x54,
+	0x45, 0x52, 0x4d, 0x10, 0x01, 0x12, 0x0f, 0x0a, 0x0b, 0x53, 0x49, 0x47, 0x4e, 0x41, 0x4c, 0x5f,
+	0x4b, 0x49, 0x4c, 0x4c, 0x10, 0x02, 0x12, 0x0e, 0x0a, 0x0a, 0x53, 0x49, 0x47, 0x4e, 0x41, 0x4c,
+	0x5f, 0x48, 0x55, 0x50, 0x10, 0x03, 0x12, 0x0f, 0x0a, 0x0b, 0x53, 0x49, 0x47, 0x4e, 0x41, 0x4c,
+	0x5f, 0x41, 0x42, 0x52, 0x54, 0x10, 0x04, 0x22, 0x15, 0x0a, 0x13, 0x4b, 0x69, 0x6c, 0x6c, 0x50,
+	0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2a, 0x64,
+	0x0a, 0x0c, 0x52, 0x65, 0x62, 0x6f, 0x6f, 0x74, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x0b,
+	0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x43,
+	0x4f, 0x4c, 0x44, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x50, 0x4f, 0x57, 0x45, 0x52, 0x44, 0x4f,
+	0x57, 0x4e, 0x10, 0x02, 0x12, 0x08, 0x0a, 0x04, 0x48, 0x41, 0x4c, 0x54, 0x10, 0x03, 0x12, 0x08,
+	0x0a, 0x04, 0x57, 0x41, 0x52, 0x4d, 0x10, 0x04, 0x12, 0x07, 0x0a, 0x03, 0x4e, 0x53, 0x46, 0x10,
+	0x05, 0x12, 0x0b, 0x0a, 0x07, 0x50, 0x4f, 0x57, 0x45, 0x52, 0x55, 0x50, 0x10, 0x07, 0x22, 0x04,
+	0x08, 0x06, 0x10, 0x06, 0x32, 0xea, 0x05, 0x0a, 0x06, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x12,
+	0x3f, 0x0a, 0x04, 0x50, 0x69, 0x6e, 0x67, 0x12, 0x18, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x73,
+	0x79, 0x73, 0x74, 0x65, 0x6d, 0x2e, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
+	0x74, 0x1a, 0x19, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x2e,
+	0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x30, 0x01,
+	0x12, 0x51, 0x0a, 0x0a, 0x54, 0x72, 0x61, 0x63, 0x65, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x12, 0x1e,
+	0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x2e, 0x54, 0x72, 0x61,
+	0x63, 0x65, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f,
+	0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x2e, 0x54, 0x72, 0x61,
+	0x63, 0x65, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22,
+	0x00, 0x30, 0x01, 0x12, 0x3d, 0x0a, 0x04, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x2e, 0x67, 0x6e,
+	0x6f, 0x69, 0x2e, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x65,
+	0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x73, 0x79, 0x73,
+	0x74, 0x65, 0x6d, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
+	0x22, 0x00, 0x12, 0x51, 0x0a, 0x0a, 0x53, 0x65, 0x74, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65,
+	0x12, 0x1e, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x2e, 0x53,
+	0x65, 0x74, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
+	0x1a, 0x1f, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x2e, 0x53,
+	0x65, 0x74, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
+	0x65, 0x22, 0x00, 0x28, 0x01, 0x12, 0x73, 0x0a, 0x16, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x43,
+	0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x12,
+	0x2a, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x2e, 0x53, 0x77,
+	0x69, 0x74, 0x63, 0x68, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x50, 0x72, 0x6f, 0x63, 0x65,
+	0x73, 0x73, 0x6f, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x67, 0x6e,
+	0x6f, 0x69, 0x2e, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x2e, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68,
+	0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72,
+	0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x43, 0x0a, 0x06, 0x52, 0x65,
+	0x62, 0x6f, 0x6f, 0x74, 0x12, 0x1a, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x73, 0x79, 0x73, 0x74,
+	0x65, 0x6d, 0x2e, 0x52, 0x65, 0x62, 0x6f, 0x6f, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
+	0x1a, 0x1b, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x2e, 0x52,
+	0x65, 0x62, 0x6f, 0x6f, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12,
+	0x55, 0x0a, 0x0c, 0x52, 0x65, 0x62, 0x6f, 0x6f, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12,
+	0x20, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x2e, 0x52, 0x65,
+	0x62, 0x6f, 0x6f, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
+	0x74, 0x1a, 0x21, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x2e,
+	0x52, 0x65, 0x62, 0x6f, 0x6f, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70,
+	0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x55, 0x0a, 0x0c, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c,
+	0x52, 0x65, 0x62, 0x6f, 0x6f, 0x74, 0x12, 0x20, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x73, 0x79,
+	0x73, 0x74, 0x65, 0x6d, 0x2e, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x52, 0x65, 0x62, 0x6f, 0x6f,
+	0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e,
+	0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x2e, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x52, 0x65, 0x62,
+	0x6f, 0x6f, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x52, 0x0a,
+	0x0b, 0x4b, 0x69, 0x6c, 0x6c, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x12, 0x1f, 0x2e, 0x67,
+	0x6e, 0x6f, 0x69, 0x2e, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x2e, 0x4b, 0x69, 0x6c, 0x6c, 0x50,
+	0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e,
+	0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x2e, 0x4b, 0x69, 0x6c, 0x6c,
+	0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22,
+	0x00, 0x42, 0x2b, 0xd2, 0x3e, 0x05, 0x31, 0x2e, 0x34, 0x2e, 0x30, 0x5a, 0x21, 0x67, 0x69, 0x74,
+	0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66,
+	0x69, 0x67, 0x2f, 0x67, 0x6e, 0x6f, 0x69, 0x2f, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x62, 0x06,
+	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
 }
 
 var (
-	file_system_system_proto_rawDescOnce sync.Once
-	file_system_system_proto_rawDescData = file_system_system_proto_rawDesc
+	file_github_com_openconfig_gnoi_system_system_proto_rawDescOnce sync.Once
+	file_github_com_openconfig_gnoi_system_system_proto_rawDescData = file_github_com_openconfig_gnoi_system_system_proto_rawDesc
 )
 
-func file_system_system_proto_rawDescGZIP() []byte {
-	file_system_system_proto_rawDescOnce.Do(func() {
-		file_system_system_proto_rawDescData = protoimpl.X.CompressGZIP(file_system_system_proto_rawDescData)
+func file_github_com_openconfig_gnoi_system_system_proto_rawDescGZIP() []byte {
+	file_github_com_openconfig_gnoi_system_system_proto_rawDescOnce.Do(func() {
+		file_github_com_openconfig_gnoi_system_system_proto_rawDescData = protoimpl.X.CompressGZIP(file_github_com_openconfig_gnoi_system_system_proto_rawDescData)
 	})
-	return file_system_system_proto_rawDescData
+	return file_github_com_openconfig_gnoi_system_system_proto_rawDescData
 }
 
-var file_system_system_proto_enumTypes = make([]protoimpl.EnumInfo, 5)
-var file_system_system_proto_msgTypes = make([]protoimpl.MessageInfo, 22)
-var file_system_system_proto_goTypes = []interface{}{
+var file_github_com_openconfig_gnoi_system_system_proto_enumTypes = make([]protoimpl.EnumInfo, 5)
+var file_github_com_openconfig_gnoi_system_system_proto_msgTypes = make([]protoimpl.MessageInfo, 22)
+var file_github_com_openconfig_gnoi_system_system_proto_goTypes = []any{
 	(RebootMethod)(0),                      // 0: gnoi.system.RebootMethod
 	(RebootStatus_Status)(0),               // 1: gnoi.system.RebootStatus.Status
 	(TracerouteRequest_L4Protocol)(0),      // 2: gnoi.system.TracerouteRequest.L4Protocol
@@ -2162,7 +2112,7 @@ var file_system_system_proto_goTypes = []interface{}{
 	(*common.RemoteDownload)(nil),          // 29: gnoi.common.RemoteDownload
 	(*types.HashType)(nil),                 // 30: gnoi.types.HashType
 }
-var file_system_system_proto_depIdxs = []int32{
+var file_github_com_openconfig_gnoi_system_system_proto_depIdxs = []int32{
 	27, // 0: gnoi.system.SwitchControlProcessorRequest.control_processor:type_name -> gnoi.types.Path
 	27, // 1: gnoi.system.SwitchControlProcessorResponse.control_processor:type_name -> gnoi.types.Path
 	0,  // 2: gnoi.system.RebootRequest.method:type_name -> gnoi.system.RebootMethod
@@ -2207,266 +2157,12 @@ var file_system_system_proto_depIdxs = []int32{
 	0,  // [0:19] is the sub-list for field type_name
 }
 
-func init() { file_system_system_proto_init() }
-func file_system_system_proto_init() {
-	if File_system_system_proto != nil {
+func init() { file_github_com_openconfig_gnoi_system_system_proto_init() }
+func file_github_com_openconfig_gnoi_system_system_proto_init() {
+	if File_github_com_openconfig_gnoi_system_system_proto != nil {
 		return
 	}
-	if !protoimpl.UnsafeEnabled {
-		file_system_system_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*SwitchControlProcessorRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_system_system_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*SwitchControlProcessorResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_system_system_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*RebootRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_system_system_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*RebootResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_system_system_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*CancelRebootRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_system_system_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*CancelRebootResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_system_system_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*RebootStatusRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_system_system_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*RebootStatusResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_system_system_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*RebootStatus); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_system_system_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*TimeRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_system_system_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*TimeResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_system_system_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*PingRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_system_system_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*PingResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_system_system_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*TracerouteRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_system_system_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*TracerouteResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_system_system_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*Package); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_system_system_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*SetPackageRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_system_system_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*SetPackageResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_system_system_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*KillProcessRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_system_system_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*KillProcessResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_system_system_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*TracerouteResponse_IcmpExtData); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-	}
-	file_system_system_proto_msgTypes[16].OneofWrappers = []interface{}{
+	file_github_com_openconfig_gnoi_system_system_proto_msgTypes[16].OneofWrappers = []any{
 		(*SetPackageRequest_Package)(nil),
 		(*SetPackageRequest_Contents)(nil),
 		(*SetPackageRequest_Hash)(nil),
@@ -2475,19 +2171,19 @@ func file_system_system_proto_init() {
 	out := protoimpl.TypeBuilder{
 		File: protoimpl.DescBuilder{
 			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
-			RawDescriptor: file_system_system_proto_rawDesc,
+			RawDescriptor: file_github_com_openconfig_gnoi_system_system_proto_rawDesc,
 			NumEnums:      5,
 			NumMessages:   22,
 			NumExtensions: 0,
 			NumServices:   1,
 		},
-		GoTypes:           file_system_system_proto_goTypes,
-		DependencyIndexes: file_system_system_proto_depIdxs,
-		EnumInfos:         file_system_system_proto_enumTypes,
-		MessageInfos:      file_system_system_proto_msgTypes,
+		GoTypes:           file_github_com_openconfig_gnoi_system_system_proto_goTypes,
+		DependencyIndexes: file_github_com_openconfig_gnoi_system_system_proto_depIdxs,
+		EnumInfos:         file_github_com_openconfig_gnoi_system_system_proto_enumTypes,
+		MessageInfos:      file_github_com_openconfig_gnoi_system_system_proto_msgTypes,
 	}.Build()
-	File_system_system_proto = out.File
-	file_system_system_proto_rawDesc = nil
-	file_system_system_proto_goTypes = nil
-	file_system_system_proto_depIdxs = nil
+	File_github_com_openconfig_gnoi_system_system_proto = out.File
+	file_github_com_openconfig_gnoi_system_system_proto_rawDesc = nil
+	file_github_com_openconfig_gnoi_system_system_proto_goTypes = nil
+	file_github_com_openconfig_gnoi_system_system_proto_depIdxs = nil
 }
diff --git a/system/system_grpc.pb.go b/system/system_grpc.pb.go
index 628e3347..ed0785c9 100644
--- a/system/system_grpc.pb.go
+++ b/system/system_grpc.pb.go
@@ -1,8 +1,8 @@
 // Code generated by protoc-gen-go-grpc. DO NOT EDIT.
 // versions:
-// - protoc-gen-go-grpc v1.2.0
-// - protoc             v3.21.10
-// source: system/system.proto
+// - protoc-gen-go-grpc v1.5.1
+// - protoc             v5.29.3
+// source: github.com/openconfig/gnoi/system/system.proto
 
 package system
 
@@ -15,17 +15,29 @@ import (
 
 // This is a compile-time assertion to ensure that this generated file
 // is compatible with the grpc package it is being compiled against.
-// Requires gRPC-Go v1.32.0 or later.
-const _ = grpc.SupportPackageIsVersion7
+// Requires gRPC-Go v1.64.0 or later.
+const _ = grpc.SupportPackageIsVersion9
+
+const (
+	System_Ping_FullMethodName                   = "/gnoi.system.System/Ping"
+	System_Traceroute_FullMethodName             = "/gnoi.system.System/Traceroute"
+	System_Time_FullMethodName                   = "/gnoi.system.System/Time"
+	System_SetPackage_FullMethodName             = "/gnoi.system.System/SetPackage"
+	System_SwitchControlProcessor_FullMethodName = "/gnoi.system.System/SwitchControlProcessor"
+	System_Reboot_FullMethodName                 = "/gnoi.system.System/Reboot"
+	System_RebootStatus_FullMethodName           = "/gnoi.system.System/RebootStatus"
+	System_CancelReboot_FullMethodName           = "/gnoi.system.System/CancelReboot"
+	System_KillProcess_FullMethodName            = "/gnoi.system.System/KillProcess"
+)
 
 // SystemClient is the client API for System service.
 //
 // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.
 type SystemClient interface {
-	Ping(ctx context.Context, in *PingRequest, opts ...grpc.CallOption) (System_PingClient, error)
-	Traceroute(ctx context.Context, in *TracerouteRequest, opts ...grpc.CallOption) (System_TracerouteClient, error)
+	Ping(ctx context.Context, in *PingRequest, opts ...grpc.CallOption) (grpc.ServerStreamingClient[PingResponse], error)
+	Traceroute(ctx context.Context, in *TracerouteRequest, opts ...grpc.CallOption) (grpc.ServerStreamingClient[TracerouteResponse], error)
 	Time(ctx context.Context, in *TimeRequest, opts ...grpc.CallOption) (*TimeResponse, error)
-	SetPackage(ctx context.Context, opts ...grpc.CallOption) (System_SetPackageClient, error)
+	SetPackage(ctx context.Context, opts ...grpc.CallOption) (grpc.ClientStreamingClient[SetPackageRequest, SetPackageResponse], error)
 	SwitchControlProcessor(ctx context.Context, in *SwitchControlProcessorRequest, opts ...grpc.CallOption) (*SwitchControlProcessorResponse, error)
 	Reboot(ctx context.Context, in *RebootRequest, opts ...grpc.CallOption) (*RebootResponse, error)
 	RebootStatus(ctx context.Context, in *RebootStatusRequest, opts ...grpc.CallOption) (*RebootStatusResponse, error)
@@ -41,12 +53,13 @@ func NewSystemClient(cc grpc.ClientConnInterface) SystemClient {
 	return &systemClient{cc}
 }
 
-func (c *systemClient) Ping(ctx context.Context, in *PingRequest, opts ...grpc.CallOption) (System_PingClient, error) {
-	stream, err := c.cc.NewStream(ctx, &System_ServiceDesc.Streams[0], "/gnoi.system.System/Ping", opts...)
+func (c *systemClient) Ping(ctx context.Context, in *PingRequest, opts ...grpc.CallOption) (grpc.ServerStreamingClient[PingResponse], error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	stream, err := c.cc.NewStream(ctx, &System_ServiceDesc.Streams[0], System_Ping_FullMethodName, cOpts...)
 	if err != nil {
 		return nil, err
 	}
-	x := &systemPingClient{stream}
+	x := &grpc.GenericClientStream[PingRequest, PingResponse]{ClientStream: stream}
 	if err := x.ClientStream.SendMsg(in); err != nil {
 		return nil, err
 	}
@@ -56,29 +69,16 @@ func (c *systemClient) Ping(ctx context.Context, in *PingRequest, opts ...grpc.C
 	return x, nil
 }
 
-type System_PingClient interface {
-	Recv() (*PingResponse, error)
-	grpc.ClientStream
-}
-
-type systemPingClient struct {
-	grpc.ClientStream
-}
+// This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name.
+type System_PingClient = grpc.ServerStreamingClient[PingResponse]
 
-func (x *systemPingClient) Recv() (*PingResponse, error) {
-	m := new(PingResponse)
-	if err := x.ClientStream.RecvMsg(m); err != nil {
-		return nil, err
-	}
-	return m, nil
-}
-
-func (c *systemClient) Traceroute(ctx context.Context, in *TracerouteRequest, opts ...grpc.CallOption) (System_TracerouteClient, error) {
-	stream, err := c.cc.NewStream(ctx, &System_ServiceDesc.Streams[1], "/gnoi.system.System/Traceroute", opts...)
+func (c *systemClient) Traceroute(ctx context.Context, in *TracerouteRequest, opts ...grpc.CallOption) (grpc.ServerStreamingClient[TracerouteResponse], error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	stream, err := c.cc.NewStream(ctx, &System_ServiceDesc.Streams[1], System_Traceroute_FullMethodName, cOpts...)
 	if err != nil {
 		return nil, err
 	}
-	x := &systemTracerouteClient{stream}
+	x := &grpc.GenericClientStream[TracerouteRequest, TracerouteResponse]{ClientStream: stream}
 	if err := x.ClientStream.SendMsg(in); err != nil {
 		return nil, err
 	}
@@ -88,69 +88,36 @@ func (c *systemClient) Traceroute(ctx context.Context, in *TracerouteRequest, op
 	return x, nil
 }
 
-type System_TracerouteClient interface {
-	Recv() (*TracerouteResponse, error)
-	grpc.ClientStream
-}
-
-type systemTracerouteClient struct {
-	grpc.ClientStream
-}
-
-func (x *systemTracerouteClient) Recv() (*TracerouteResponse, error) {
-	m := new(TracerouteResponse)
-	if err := x.ClientStream.RecvMsg(m); err != nil {
-		return nil, err
-	}
-	return m, nil
-}
+// This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name.
+type System_TracerouteClient = grpc.ServerStreamingClient[TracerouteResponse]
 
 func (c *systemClient) Time(ctx context.Context, in *TimeRequest, opts ...grpc.CallOption) (*TimeResponse, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
 	out := new(TimeResponse)
-	err := c.cc.Invoke(ctx, "/gnoi.system.System/Time", in, out, opts...)
+	err := c.cc.Invoke(ctx, System_Time_FullMethodName, in, out, cOpts...)
 	if err != nil {
 		return nil, err
 	}
 	return out, nil
 }
 
-func (c *systemClient) SetPackage(ctx context.Context, opts ...grpc.CallOption) (System_SetPackageClient, error) {
-	stream, err := c.cc.NewStream(ctx, &System_ServiceDesc.Streams[2], "/gnoi.system.System/SetPackage", opts...)
+func (c *systemClient) SetPackage(ctx context.Context, opts ...grpc.CallOption) (grpc.ClientStreamingClient[SetPackageRequest, SetPackageResponse], error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	stream, err := c.cc.NewStream(ctx, &System_ServiceDesc.Streams[2], System_SetPackage_FullMethodName, cOpts...)
 	if err != nil {
 		return nil, err
 	}
-	x := &systemSetPackageClient{stream}
+	x := &grpc.GenericClientStream[SetPackageRequest, SetPackageResponse]{ClientStream: stream}
 	return x, nil
 }
 
-type System_SetPackageClient interface {
-	Send(*SetPackageRequest) error
-	CloseAndRecv() (*SetPackageResponse, error)
-	grpc.ClientStream
-}
-
-type systemSetPackageClient struct {
-	grpc.ClientStream
-}
-
-func (x *systemSetPackageClient) Send(m *SetPackageRequest) error {
-	return x.ClientStream.SendMsg(m)
-}
-
-func (x *systemSetPackageClient) CloseAndRecv() (*SetPackageResponse, error) {
-	if err := x.ClientStream.CloseSend(); err != nil {
-		return nil, err
-	}
-	m := new(SetPackageResponse)
-	if err := x.ClientStream.RecvMsg(m); err != nil {
-		return nil, err
-	}
-	return m, nil
-}
+// This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name.
+type System_SetPackageClient = grpc.ClientStreamingClient[SetPackageRequest, SetPackageResponse]
 
 func (c *systemClient) SwitchControlProcessor(ctx context.Context, in *SwitchControlProcessorRequest, opts ...grpc.CallOption) (*SwitchControlProcessorResponse, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
 	out := new(SwitchControlProcessorResponse)
-	err := c.cc.Invoke(ctx, "/gnoi.system.System/SwitchControlProcessor", in, out, opts...)
+	err := c.cc.Invoke(ctx, System_SwitchControlProcessor_FullMethodName, in, out, cOpts...)
 	if err != nil {
 		return nil, err
 	}
@@ -158,8 +125,9 @@ func (c *systemClient) SwitchControlProcessor(ctx context.Context, in *SwitchCon
 }
 
 func (c *systemClient) Reboot(ctx context.Context, in *RebootRequest, opts ...grpc.CallOption) (*RebootResponse, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
 	out := new(RebootResponse)
-	err := c.cc.Invoke(ctx, "/gnoi.system.System/Reboot", in, out, opts...)
+	err := c.cc.Invoke(ctx, System_Reboot_FullMethodName, in, out, cOpts...)
 	if err != nil {
 		return nil, err
 	}
@@ -167,8 +135,9 @@ func (c *systemClient) Reboot(ctx context.Context, in *RebootRequest, opts ...gr
 }
 
 func (c *systemClient) RebootStatus(ctx context.Context, in *RebootStatusRequest, opts ...grpc.CallOption) (*RebootStatusResponse, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
 	out := new(RebootStatusResponse)
-	err := c.cc.Invoke(ctx, "/gnoi.system.System/RebootStatus", in, out, opts...)
+	err := c.cc.Invoke(ctx, System_RebootStatus_FullMethodName, in, out, cOpts...)
 	if err != nil {
 		return nil, err
 	}
@@ -176,8 +145,9 @@ func (c *systemClient) RebootStatus(ctx context.Context, in *RebootStatusRequest
 }
 
 func (c *systemClient) CancelReboot(ctx context.Context, in *CancelRebootRequest, opts ...grpc.CallOption) (*CancelRebootResponse, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
 	out := new(CancelRebootResponse)
-	err := c.cc.Invoke(ctx, "/gnoi.system.System/CancelReboot", in, out, opts...)
+	err := c.cc.Invoke(ctx, System_CancelReboot_FullMethodName, in, out, cOpts...)
 	if err != nil {
 		return nil, err
 	}
@@ -185,8 +155,9 @@ func (c *systemClient) CancelReboot(ctx context.Context, in *CancelRebootRequest
 }
 
 func (c *systemClient) KillProcess(ctx context.Context, in *KillProcessRequest, opts ...grpc.CallOption) (*KillProcessResponse, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
 	out := new(KillProcessResponse)
-	err := c.cc.Invoke(ctx, "/gnoi.system.System/KillProcess", in, out, opts...)
+	err := c.cc.Invoke(ctx, System_KillProcess_FullMethodName, in, out, cOpts...)
 	if err != nil {
 		return nil, err
 	}
@@ -194,35 +165,37 @@ func (c *systemClient) KillProcess(ctx context.Context, in *KillProcessRequest,
 }
 
 // SystemServer is the server API for System service.
-// All implementations must embed UnimplementedSystemServer
-// for forward compatibility
+// All implementations should embed UnimplementedSystemServer
+// for forward compatibility.
 type SystemServer interface {
-	Ping(*PingRequest, System_PingServer) error
-	Traceroute(*TracerouteRequest, System_TracerouteServer) error
+	Ping(*PingRequest, grpc.ServerStreamingServer[PingResponse]) error
+	Traceroute(*TracerouteRequest, grpc.ServerStreamingServer[TracerouteResponse]) error
 	Time(context.Context, *TimeRequest) (*TimeResponse, error)
-	SetPackage(System_SetPackageServer) error
+	SetPackage(grpc.ClientStreamingServer[SetPackageRequest, SetPackageResponse]) error
 	SwitchControlProcessor(context.Context, *SwitchControlProcessorRequest) (*SwitchControlProcessorResponse, error)
 	Reboot(context.Context, *RebootRequest) (*RebootResponse, error)
 	RebootStatus(context.Context, *RebootStatusRequest) (*RebootStatusResponse, error)
 	CancelReboot(context.Context, *CancelRebootRequest) (*CancelRebootResponse, error)
 	KillProcess(context.Context, *KillProcessRequest) (*KillProcessResponse, error)
-	mustEmbedUnimplementedSystemServer()
 }
 
-// UnimplementedSystemServer must be embedded to have forward compatible implementations.
-type UnimplementedSystemServer struct {
-}
+// UnimplementedSystemServer should be embedded to have
+// forward compatible implementations.
+//
+// NOTE: this should be embedded by value instead of pointer to avoid a nil
+// pointer dereference when methods are called.
+type UnimplementedSystemServer struct{}
 
-func (UnimplementedSystemServer) Ping(*PingRequest, System_PingServer) error {
+func (UnimplementedSystemServer) Ping(*PingRequest, grpc.ServerStreamingServer[PingResponse]) error {
 	return status.Errorf(codes.Unimplemented, "method Ping not implemented")
 }
-func (UnimplementedSystemServer) Traceroute(*TracerouteRequest, System_TracerouteServer) error {
+func (UnimplementedSystemServer) Traceroute(*TracerouteRequest, grpc.ServerStreamingServer[TracerouteResponse]) error {
 	return status.Errorf(codes.Unimplemented, "method Traceroute not implemented")
 }
 func (UnimplementedSystemServer) Time(context.Context, *TimeRequest) (*TimeResponse, error) {
 	return nil, status.Errorf(codes.Unimplemented, "method Time not implemented")
 }
-func (UnimplementedSystemServer) SetPackage(System_SetPackageServer) error {
+func (UnimplementedSystemServer) SetPackage(grpc.ClientStreamingServer[SetPackageRequest, SetPackageResponse]) error {
 	return status.Errorf(codes.Unimplemented, "method SetPackage not implemented")
 }
 func (UnimplementedSystemServer) SwitchControlProcessor(context.Context, *SwitchControlProcessorRequest) (*SwitchControlProcessorResponse, error) {
@@ -240,7 +213,7 @@ func (UnimplementedSystemServer) CancelReboot(context.Context, *CancelRebootRequ
 func (UnimplementedSystemServer) KillProcess(context.Context, *KillProcessRequest) (*KillProcessResponse, error) {
 	return nil, status.Errorf(codes.Unimplemented, "method KillProcess not implemented")
 }
-func (UnimplementedSystemServer) mustEmbedUnimplementedSystemServer() {}
+func (UnimplementedSystemServer) testEmbeddedByValue() {}
 
 // UnsafeSystemServer may be embedded to opt out of forward compatibility for this service.
 // Use of this interface is not recommended, as added methods to SystemServer will
@@ -250,6 +223,13 @@ type UnsafeSystemServer interface {
 }
 
 func RegisterSystemServer(s grpc.ServiceRegistrar, srv SystemServer) {
+	// If the following call pancis, it indicates UnimplementedSystemServer was
+	// embedded by pointer and is nil.  This will cause panics if an
+	// unimplemented method is ever invoked, so we test this at initialization
+	// time to prevent it from happening at runtime later due to I/O.
+	if t, ok := srv.(interface{ testEmbeddedByValue() }); ok {
+		t.testEmbeddedByValue()
+	}
 	s.RegisterService(&System_ServiceDesc, srv)
 }
 
@@ -258,42 +238,22 @@ func _System_Ping_Handler(srv interface{}, stream grpc.ServerStream) error {
 	if err := stream.RecvMsg(m); err != nil {
 		return err
 	}
-	return srv.(SystemServer).Ping(m, &systemPingServer{stream})
+	return srv.(SystemServer).Ping(m, &grpc.GenericServerStream[PingRequest, PingResponse]{ServerStream: stream})
 }
 
-type System_PingServer interface {
-	Send(*PingResponse) error
-	grpc.ServerStream
-}
-
-type systemPingServer struct {
-	grpc.ServerStream
-}
-
-func (x *systemPingServer) Send(m *PingResponse) error {
-	return x.ServerStream.SendMsg(m)
-}
+// This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name.
+type System_PingServer = grpc.ServerStreamingServer[PingResponse]
 
 func _System_Traceroute_Handler(srv interface{}, stream grpc.ServerStream) error {
 	m := new(TracerouteRequest)
 	if err := stream.RecvMsg(m); err != nil {
 		return err
 	}
-	return srv.(SystemServer).Traceroute(m, &systemTracerouteServer{stream})
+	return srv.(SystemServer).Traceroute(m, &grpc.GenericServerStream[TracerouteRequest, TracerouteResponse]{ServerStream: stream})
 }
 
-type System_TracerouteServer interface {
-	Send(*TracerouteResponse) error
-	grpc.ServerStream
-}
-
-type systemTracerouteServer struct {
-	grpc.ServerStream
-}
-
-func (x *systemTracerouteServer) Send(m *TracerouteResponse) error {
-	return x.ServerStream.SendMsg(m)
-}
+// This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name.
+type System_TracerouteServer = grpc.ServerStreamingServer[TracerouteResponse]
 
 func _System_Time_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
 	in := new(TimeRequest)
@@ -305,7 +265,7 @@ func _System_Time_Handler(srv interface{}, ctx context.Context, dec func(interfa
 	}
 	info := &grpc.UnaryServerInfo{
 		Server:     srv,
-		FullMethod: "/gnoi.system.System/Time",
+		FullMethod: System_Time_FullMethodName,
 	}
 	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
 		return srv.(SystemServer).Time(ctx, req.(*TimeRequest))
@@ -314,30 +274,11 @@ func _System_Time_Handler(srv interface{}, ctx context.Context, dec func(interfa
 }
 
 func _System_SetPackage_Handler(srv interface{}, stream grpc.ServerStream) error {
-	return srv.(SystemServer).SetPackage(&systemSetPackageServer{stream})
-}
-
-type System_SetPackageServer interface {
-	SendAndClose(*SetPackageResponse) error
-	Recv() (*SetPackageRequest, error)
-	grpc.ServerStream
-}
-
-type systemSetPackageServer struct {
-	grpc.ServerStream
-}
-
-func (x *systemSetPackageServer) SendAndClose(m *SetPackageResponse) error {
-	return x.ServerStream.SendMsg(m)
+	return srv.(SystemServer).SetPackage(&grpc.GenericServerStream[SetPackageRequest, SetPackageResponse]{ServerStream: stream})
 }
 
-func (x *systemSetPackageServer) Recv() (*SetPackageRequest, error) {
-	m := new(SetPackageRequest)
-	if err := x.ServerStream.RecvMsg(m); err != nil {
-		return nil, err
-	}
-	return m, nil
-}
+// This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name.
+type System_SetPackageServer = grpc.ClientStreamingServer[SetPackageRequest, SetPackageResponse]
 
 func _System_SwitchControlProcessor_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
 	in := new(SwitchControlProcessorRequest)
@@ -349,7 +290,7 @@ func _System_SwitchControlProcessor_Handler(srv interface{}, ctx context.Context
 	}
 	info := &grpc.UnaryServerInfo{
 		Server:     srv,
-		FullMethod: "/gnoi.system.System/SwitchControlProcessor",
+		FullMethod: System_SwitchControlProcessor_FullMethodName,
 	}
 	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
 		return srv.(SystemServer).SwitchControlProcessor(ctx, req.(*SwitchControlProcessorRequest))
@@ -367,7 +308,7 @@ func _System_Reboot_Handler(srv interface{}, ctx context.Context, dec func(inter
 	}
 	info := &grpc.UnaryServerInfo{
 		Server:     srv,
-		FullMethod: "/gnoi.system.System/Reboot",
+		FullMethod: System_Reboot_FullMethodName,
 	}
 	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
 		return srv.(SystemServer).Reboot(ctx, req.(*RebootRequest))
@@ -385,7 +326,7 @@ func _System_RebootStatus_Handler(srv interface{}, ctx context.Context, dec func
 	}
 	info := &grpc.UnaryServerInfo{
 		Server:     srv,
-		FullMethod: "/gnoi.system.System/RebootStatus",
+		FullMethod: System_RebootStatus_FullMethodName,
 	}
 	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
 		return srv.(SystemServer).RebootStatus(ctx, req.(*RebootStatusRequest))
@@ -403,7 +344,7 @@ func _System_CancelReboot_Handler(srv interface{}, ctx context.Context, dec func
 	}
 	info := &grpc.UnaryServerInfo{
 		Server:     srv,
-		FullMethod: "/gnoi.system.System/CancelReboot",
+		FullMethod: System_CancelReboot_FullMethodName,
 	}
 	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
 		return srv.(SystemServer).CancelReboot(ctx, req.(*CancelRebootRequest))
@@ -421,7 +362,7 @@ func _System_KillProcess_Handler(srv interface{}, ctx context.Context, dec func(
 	}
 	info := &grpc.UnaryServerInfo{
 		Server:     srv,
-		FullMethod: "/gnoi.system.System/KillProcess",
+		FullMethod: System_KillProcess_FullMethodName,
 	}
 	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
 		return srv.(SystemServer).KillProcess(ctx, req.(*KillProcessRequest))
@@ -478,5 +419,5 @@ var System_ServiceDesc = grpc.ServiceDesc{
 			ClientStreams: true,
 		},
 	},
-	Metadata: "system/system.proto",
+	Metadata: "github.com/openconfig/gnoi/system/system.proto",
 }
diff --git a/test/BUILD.bazel b/test/BUILD.bazel
index 2c0c0638..53d62575 100644
--- a/test/BUILD.bazel
+++ b/test/BUILD.bazel
@@ -16,6 +16,6 @@ go_test(
         "//common",
         "//system",
         "//types",
-        "@com_github_golang_protobuf//proto:go_default_library",
+        "@com_github_golang_protobuf//proto",
     ],
 )
diff --git a/types/BUILD.bazel b/types/BUILD.bazel
index 46370cce..57270ce1 100644
--- a/types/BUILD.bazel
+++ b/types/BUILD.bazel
@@ -1,8 +1,8 @@
-load("@rules_proto//proto:defs.bzl", "proto_library")
+load("@com_github_grpc_grpc//bazel:cc_grpc_library.bzl", "cc_grpc_library")
+load("@com_google_protobuf//bazel:cc_proto_library.bzl", "cc_proto_library")
+load("@com_google_protobuf//bazel:proto_library.bzl", "proto_library")
 load("@io_bazel_rules_go//go:def.bzl", "go_library")
 load("@io_bazel_rules_go//proto:def.bzl", "go_proto_library")
-load("@com_github_grpc_grpc//bazel:cc_grpc_library.bzl", "cc_grpc_library")
-load("//:common.bzl", "use_new_compilers")
 
 #Copyright 2021 Google LLC
 #
@@ -23,8 +23,6 @@ package(
     licenses = ["notice"],
 )
 
-use_new_compilers()
-
 proto_library(
     name = "types_proto",
     srcs = ["types.proto"],
@@ -39,10 +37,6 @@ cc_proto_library(
 
 go_proto_library(
     name = "types_go_proto",
-    compilers = [
-        "go_protoc_gen_go",
-        "go_protoc_gen_go_grpc",
-    ],
     importpath = "github.com/openconfig/gnoi/types",
     proto = ":types_proto",
 )
diff --git a/types/types.pb.go b/types/types.pb.go
index ea9499b8..709ddabf 100644
--- a/types/types.pb.go
+++ b/types/types.pb.go
@@ -1,7 +1,7 @@
 // Code generated by protoc-gen-go. DO NOT EDIT.
 // versions:
-// 	protoc-gen-go v1.30.0
-// 	protoc        v3.21.10
+// 	protoc-gen-go v1.36.2
+// 	protoc        v5.29.3
 // source: github.com/openconfig/gnoi/types/types.proto
 
 package types
@@ -123,21 +123,18 @@ func (HashType_HashMethod) EnumDescriptor() ([]byte, []int) {
 }
 
 type HashType struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Method        HashType_HashMethod    `protobuf:"varint,1,opt,name=method,proto3,enum=gnoi.types.HashType_HashMethod" json:"method,omitempty"`
+	Hash          []byte                 `protobuf:"bytes,2,opt,name=hash,proto3" json:"hash,omitempty"`
 	unknownFields protoimpl.UnknownFields
-
-	Method HashType_HashMethod `protobuf:"varint,1,opt,name=method,proto3,enum=gnoi.types.HashType_HashMethod" json:"method,omitempty"`
-	Hash   []byte              `protobuf:"bytes,2,opt,name=hash,proto3" json:"hash,omitempty"`
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *HashType) Reset() {
 	*x = HashType{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_github_com_openconfig_gnoi_types_types_proto_msgTypes[0]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_types_types_proto_msgTypes[0]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *HashType) String() string {
@@ -148,7 +145,7 @@ func (*HashType) ProtoMessage() {}
 
 func (x *HashType) ProtoReflect() protoreflect.Message {
 	mi := &file_github_com_openconfig_gnoi_types_types_proto_msgTypes[0]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -178,21 +175,18 @@ func (x *HashType) GetHash() []byte {
 }
 
 type Path struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Origin        string                 `protobuf:"bytes,2,opt,name=origin,proto3" json:"origin,omitempty"`
+	Elem          []*PathElem            `protobuf:"bytes,3,rep,name=elem,proto3" json:"elem,omitempty"`
 	unknownFields protoimpl.UnknownFields
-
-	Origin string      `protobuf:"bytes,2,opt,name=origin,proto3" json:"origin,omitempty"`
-	Elem   []*PathElem `protobuf:"bytes,3,rep,name=elem,proto3" json:"elem,omitempty"`
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *Path) Reset() {
 	*x = Path{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_github_com_openconfig_gnoi_types_types_proto_msgTypes[1]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_types_types_proto_msgTypes[1]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *Path) String() string {
@@ -203,7 +197,7 @@ func (*Path) ProtoMessage() {}
 
 func (x *Path) ProtoReflect() protoreflect.Message {
 	mi := &file_github_com_openconfig_gnoi_types_types_proto_msgTypes[1]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -233,21 +227,18 @@ func (x *Path) GetElem() []*PathElem {
 }
 
 type PathElem struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Name          string                 `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
+	Key           map[string]string      `protobuf:"bytes,2,rep,name=key,proto3" json:"key,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
 	unknownFields protoimpl.UnknownFields
-
-	Name string            `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
-	Key  map[string]string `protobuf:"bytes,2,rep,name=key,proto3" json:"key,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *PathElem) Reset() {
 	*x = PathElem{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_github_com_openconfig_gnoi_types_types_proto_msgTypes[2]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_types_types_proto_msgTypes[2]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *PathElem) String() string {
@@ -258,7 +249,7 @@ func (*PathElem) ProtoMessage() {}
 
 func (x *PathElem) ProtoReflect() protoreflect.Message {
 	mi := &file_github_com_openconfig_gnoi_types_types_proto_msgTypes[2]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -288,25 +279,22 @@ func (x *PathElem) GetKey() map[string]string {
 }
 
 type Credentials struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	Username string `protobuf:"bytes,1,opt,name=username,proto3" json:"username,omitempty"`
-	// Types that are assignable to Password:
+	state    protoimpl.MessageState `protogen:"open.v1"`
+	Username string                 `protobuf:"bytes,1,opt,name=username,proto3" json:"username,omitempty"`
+	// Types that are valid to be assigned to Password:
 	//
 	//	*Credentials_Cleartext
 	//	*Credentials_Hashed
-	Password isCredentials_Password `protobuf_oneof:"password"`
+	Password      isCredentials_Password `protobuf_oneof:"password"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *Credentials) Reset() {
 	*x = Credentials{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_github_com_openconfig_gnoi_types_types_proto_msgTypes[3]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_types_types_proto_msgTypes[3]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *Credentials) String() string {
@@ -317,7 +305,7 @@ func (*Credentials) ProtoMessage() {}
 
 func (x *Credentials) ProtoReflect() protoreflect.Message {
 	mi := &file_github_com_openconfig_gnoi_types_types_proto_msgTypes[3]
-	if protoimpl.UnsafeEnabled && x != nil {
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -339,23 +327,27 @@ func (x *Credentials) GetUsername() string {
 	return ""
 }
 
-func (m *Credentials) GetPassword() isCredentials_Password {
-	if m != nil {
-		return m.Password
+func (x *Credentials) GetPassword() isCredentials_Password {
+	if x != nil {
+		return x.Password
 	}
 	return nil
 }
 
 func (x *Credentials) GetCleartext() string {
-	if x, ok := x.GetPassword().(*Credentials_Cleartext); ok {
-		return x.Cleartext
+	if x != nil {
+		if x, ok := x.Password.(*Credentials_Cleartext); ok {
+			return x.Cleartext
+		}
 	}
 	return ""
 }
 
 func (x *Credentials) GetHashed() *HashType {
-	if x, ok := x.GetPassword().(*Credentials_Hashed); ok {
-		return x.Hashed
+	if x != nil {
+		if x, ok := x.Password.(*Credentials_Hashed); ok {
+			return x.Hashed
+		}
 	}
 	return nil
 }
@@ -460,7 +452,7 @@ func file_github_com_openconfig_gnoi_types_types_proto_rawDescGZIP() []byte {
 
 var file_github_com_openconfig_gnoi_types_types_proto_enumTypes = make([]protoimpl.EnumInfo, 2)
 var file_github_com_openconfig_gnoi_types_types_proto_msgTypes = make([]protoimpl.MessageInfo, 5)
-var file_github_com_openconfig_gnoi_types_types_proto_goTypes = []interface{}{
+var file_github_com_openconfig_gnoi_types_types_proto_goTypes = []any{
 	(L3Protocol)(0),                  // 0: gnoi.types.L3Protocol
 	(HashType_HashMethod)(0),         // 1: gnoi.types.HashType.HashMethod
 	(*HashType)(nil),                 // 2: gnoi.types.HashType
@@ -488,57 +480,7 @@ func file_github_com_openconfig_gnoi_types_types_proto_init() {
 	if File_github_com_openconfig_gnoi_types_types_proto != nil {
 		return
 	}
-	if !protoimpl.UnsafeEnabled {
-		file_github_com_openconfig_gnoi_types_types_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*HashType); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_github_com_openconfig_gnoi_types_types_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*Path); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_github_com_openconfig_gnoi_types_types_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*PathElem); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_github_com_openconfig_gnoi_types_types_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*Credentials); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-	}
-	file_github_com_openconfig_gnoi_types_types_proto_msgTypes[3].OneofWrappers = []interface{}{
+	file_github_com_openconfig_gnoi_types_types_proto_msgTypes[3].OneofWrappers = []any{
 		(*Credentials_Cleartext)(nil),
 		(*Credentials_Hashed)(nil),
 	}
diff --git a/wavelength_router/BUILD.bazel b/wavelength_router/BUILD.bazel
index da6b62a6..bf614f81 100644
--- a/wavelength_router/BUILD.bazel
+++ b/wavelength_router/BUILD.bazel
@@ -1,8 +1,8 @@
-load("@rules_proto//proto:defs.bzl", "proto_library")
+load("@com_github_grpc_grpc//bazel:cc_grpc_library.bzl", "cc_grpc_library")
+load("@com_google_protobuf//bazel:cc_proto_library.bzl", "cc_proto_library")
+load("@com_google_protobuf//bazel:proto_library.bzl", "proto_library")
 load("@io_bazel_rules_go//go:def.bzl", "go_library")
 load("@io_bazel_rules_go//proto:def.bzl", "go_proto_library")
-load("@com_github_grpc_grpc//bazel:cc_grpc_library.bzl", "cc_grpc_library")
-load("//:common.bzl", "use_new_compilers")
 
 #Copyright 2021 Google LLC
 #
@@ -23,11 +23,10 @@ package(
     licenses = ["notice"],
 )
 
-use_new_compilers()
-
 proto_library(
     name = "wavelength_router_proto",
     srcs = ["wavelength_router.proto"],
+    import_prefix = "github.com/openconfig/gnoi",
     deps = ["//types:types_proto"],
 )
 
@@ -46,8 +45,8 @@ cc_grpc_library(
 go_proto_library(
     name = "wavelength_router_go_proto",
     compilers = [
-        "go_protoc_gen_go",
-        "go_protoc_gen_go_grpc",
+        "@io_bazel_rules_go//proto:go_grpc_v2",
+        "@io_bazel_rules_go//proto:go_proto",
     ],
     importpath = "github.com/openconfig/gnoi/wavelength_router",
     proto = ":wavelength_router_proto",
diff --git a/wavelength_router/wavelength_router.pb.go b/wavelength_router/wavelength_router.pb.go
index 6121d84f..98aa96f2 100644
--- a/wavelength_router/wavelength_router.pb.go
+++ b/wavelength_router/wavelength_router.pb.go
@@ -1,8 +1,8 @@
 // Code generated by protoc-gen-go. DO NOT EDIT.
 // versions:
-// 	protoc-gen-go v1.30.0
-// 	protoc        v3.21.10
-// source: wavelength_router/wavelength_router.proto
+// 	protoc-gen-go v1.36.2
+// 	protoc        v5.29.3
+// source: github.com/openconfig/gnoi/wavelength_router/wavelength_router.proto
 
 package wavelength_router
 
@@ -54,11 +54,11 @@ func (x AdjustPSDRequest_SignalDirection) String() string {
 }
 
 func (AdjustPSDRequest_SignalDirection) Descriptor() protoreflect.EnumDescriptor {
-	return file_wavelength_router_wavelength_router_proto_enumTypes[0].Descriptor()
+	return file_github_com_openconfig_gnoi_wavelength_router_wavelength_router_proto_enumTypes[0].Descriptor()
 }
 
 func (AdjustPSDRequest_SignalDirection) Type() protoreflect.EnumType {
-	return &file_wavelength_router_wavelength_router_proto_enumTypes[0]
+	return &file_github_com_openconfig_gnoi_wavelength_router_wavelength_router_proto_enumTypes[0]
 }
 
 func (x AdjustPSDRequest_SignalDirection) Number() protoreflect.EnumNumber {
@@ -67,7 +67,7 @@ func (x AdjustPSDRequest_SignalDirection) Number() protoreflect.EnumNumber {
 
 // Deprecated: Use AdjustPSDRequest_SignalDirection.Descriptor instead.
 func (AdjustPSDRequest_SignalDirection) EnumDescriptor() ([]byte, []int) {
-	return file_wavelength_router_wavelength_router_proto_rawDescGZIP(), []int{0, 0}
+	return file_github_com_openconfig_gnoi_wavelength_router_wavelength_router_proto_rawDescGZIP(), []int{0, 0}
 }
 
 type AdjustPSDProgress_State int32
@@ -103,11 +103,11 @@ func (x AdjustPSDProgress_State) String() string {
 }
 
 func (AdjustPSDProgress_State) Descriptor() protoreflect.EnumDescriptor {
-	return file_wavelength_router_wavelength_router_proto_enumTypes[1].Descriptor()
+	return file_github_com_openconfig_gnoi_wavelength_router_wavelength_router_proto_enumTypes[1].Descriptor()
 }
 
 func (AdjustPSDProgress_State) Type() protoreflect.EnumType {
-	return &file_wavelength_router_wavelength_router_proto_enumTypes[1]
+	return &file_github_com_openconfig_gnoi_wavelength_router_wavelength_router_proto_enumTypes[1]
 }
 
 func (x AdjustPSDProgress_State) Number() protoreflect.EnumNumber {
@@ -116,7 +116,7 @@ func (x AdjustPSDProgress_State) Number() protoreflect.EnumNumber {
 
 // Deprecated: Use AdjustPSDProgress_State.Descriptor instead.
 func (AdjustPSDProgress_State) EnumDescriptor() ([]byte, []int) {
-	return file_wavelength_router_wavelength_router_proto_rawDescGZIP(), []int{1, 0}
+	return file_github_com_openconfig_gnoi_wavelength_router_wavelength_router_proto_rawDescGZIP(), []int{1, 0}
 }
 
 type AdjustPSDError_Type int32
@@ -152,11 +152,11 @@ func (x AdjustPSDError_Type) String() string {
 }
 
 func (AdjustPSDError_Type) Descriptor() protoreflect.EnumDescriptor {
-	return file_wavelength_router_wavelength_router_proto_enumTypes[2].Descriptor()
+	return file_github_com_openconfig_gnoi_wavelength_router_wavelength_router_proto_enumTypes[2].Descriptor()
 }
 
 func (AdjustPSDError_Type) Type() protoreflect.EnumType {
-	return &file_wavelength_router_wavelength_router_proto_enumTypes[2]
+	return &file_github_com_openconfig_gnoi_wavelength_router_wavelength_router_proto_enumTypes[2]
 }
 
 func (x AdjustPSDError_Type) Number() protoreflect.EnumNumber {
@@ -165,7 +165,7 @@ func (x AdjustPSDError_Type) Number() protoreflect.EnumNumber {
 
 // Deprecated: Use AdjustPSDError_Type.Descriptor instead.
 func (AdjustPSDError_Type) EnumDescriptor() ([]byte, []int) {
-	return file_wavelength_router_wavelength_router_proto_rawDescGZIP(), []int{2, 0}
+	return file_github_com_openconfig_gnoi_wavelength_router_wavelength_router_proto_rawDescGZIP(), []int{2, 0}
 }
 
 type AdjustSpectrumRequest_SignalDirection int32
@@ -201,11 +201,11 @@ func (x AdjustSpectrumRequest_SignalDirection) String() string {
 }
 
 func (AdjustSpectrumRequest_SignalDirection) Descriptor() protoreflect.EnumDescriptor {
-	return file_wavelength_router_wavelength_router_proto_enumTypes[3].Descriptor()
+	return file_github_com_openconfig_gnoi_wavelength_router_wavelength_router_proto_enumTypes[3].Descriptor()
 }
 
 func (AdjustSpectrumRequest_SignalDirection) Type() protoreflect.EnumType {
-	return &file_wavelength_router_wavelength_router_proto_enumTypes[3]
+	return &file_github_com_openconfig_gnoi_wavelength_router_wavelength_router_proto_enumTypes[3]
 }
 
 func (x AdjustSpectrumRequest_SignalDirection) Number() protoreflect.EnumNumber {
@@ -214,7 +214,7 @@ func (x AdjustSpectrumRequest_SignalDirection) Number() protoreflect.EnumNumber
 
 // Deprecated: Use AdjustSpectrumRequest_SignalDirection.Descriptor instead.
 func (AdjustSpectrumRequest_SignalDirection) EnumDescriptor() ([]byte, []int) {
-	return file_wavelength_router_wavelength_router_proto_rawDescGZIP(), []int{5, 0}
+	return file_github_com_openconfig_gnoi_wavelength_router_wavelength_router_proto_rawDescGZIP(), []int{5, 0}
 }
 
 type AdjustSpectrumProgress_State int32
@@ -250,11 +250,11 @@ func (x AdjustSpectrumProgress_State) String() string {
 }
 
 func (AdjustSpectrumProgress_State) Descriptor() protoreflect.EnumDescriptor {
-	return file_wavelength_router_wavelength_router_proto_enumTypes[4].Descriptor()
+	return file_github_com_openconfig_gnoi_wavelength_router_wavelength_router_proto_enumTypes[4].Descriptor()
 }
 
 func (AdjustSpectrumProgress_State) Type() protoreflect.EnumType {
-	return &file_wavelength_router_wavelength_router_proto_enumTypes[4]
+	return &file_github_com_openconfig_gnoi_wavelength_router_wavelength_router_proto_enumTypes[4]
 }
 
 func (x AdjustSpectrumProgress_State) Number() protoreflect.EnumNumber {
@@ -263,7 +263,7 @@ func (x AdjustSpectrumProgress_State) Number() protoreflect.EnumNumber {
 
 // Deprecated: Use AdjustSpectrumProgress_State.Descriptor instead.
 func (AdjustSpectrumProgress_State) EnumDescriptor() ([]byte, []int) {
-	return file_wavelength_router_wavelength_router_proto_rawDescGZIP(), []int{6, 0}
+	return file_github_com_openconfig_gnoi_wavelength_router_wavelength_router_proto_rawDescGZIP(), []int{6, 0}
 }
 
 type AdjustSpectrumError_Type int32
@@ -299,11 +299,11 @@ func (x AdjustSpectrumError_Type) String() string {
 }
 
 func (AdjustSpectrumError_Type) Descriptor() protoreflect.EnumDescriptor {
-	return file_wavelength_router_wavelength_router_proto_enumTypes[5].Descriptor()
+	return file_github_com_openconfig_gnoi_wavelength_router_wavelength_router_proto_enumTypes[5].Descriptor()
 }
 
 func (AdjustSpectrumError_Type) Type() protoreflect.EnumType {
-	return &file_wavelength_router_wavelength_router_proto_enumTypes[5]
+	return &file_github_com_openconfig_gnoi_wavelength_router_wavelength_router_proto_enumTypes[5]
 }
 
 func (x AdjustSpectrumError_Type) Number() protoreflect.EnumNumber {
@@ -312,26 +312,23 @@ func (x AdjustSpectrumError_Type) Number() protoreflect.EnumNumber {
 
 // Deprecated: Use AdjustSpectrumError_Type.Descriptor instead.
 func (AdjustSpectrumError_Type) EnumDescriptor() ([]byte, []int) {
-	return file_wavelength_router_wavelength_router_proto_rawDescGZIP(), []int{7, 0}
+	return file_github_com_openconfig_gnoi_wavelength_router_wavelength_router_proto_rawDescGZIP(), []int{7, 0}
 }
 
-// Deprecated: Marked as deprecated in wavelength_router/wavelength_router.proto.
+// Deprecated: Marked as deprecated in github.com/openconfig/gnoi/wavelength_router/wavelength_router.proto.
 type AdjustPSDRequest struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState           `protogen:"open.v1"`
+	Component     *types.Path                      `protobuf:"bytes,1,opt,name=component,proto3" json:"component,omitempty"`
+	Direction     AdjustPSDRequest_SignalDirection `protobuf:"varint,2,opt,name=direction,proto3,enum=gnoi.optical.AdjustPSDRequest_SignalDirection" json:"direction,omitempty"`
 	unknownFields protoimpl.UnknownFields
-
-	Component *types.Path                      `protobuf:"bytes,1,opt,name=component,proto3" json:"component,omitempty"`
-	Direction AdjustPSDRequest_SignalDirection `protobuf:"varint,2,opt,name=direction,proto3,enum=gnoi.optical.AdjustPSDRequest_SignalDirection" json:"direction,omitempty"`
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *AdjustPSDRequest) Reset() {
 	*x = AdjustPSDRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_wavelength_router_wavelength_router_proto_msgTypes[0]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_wavelength_router_wavelength_router_proto_msgTypes[0]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *AdjustPSDRequest) String() string {
@@ -341,8 +338,8 @@ func (x *AdjustPSDRequest) String() string {
 func (*AdjustPSDRequest) ProtoMessage() {}
 
 func (x *AdjustPSDRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_wavelength_router_wavelength_router_proto_msgTypes[0]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_wavelength_router_wavelength_router_proto_msgTypes[0]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -354,7 +351,7 @@ func (x *AdjustPSDRequest) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use AdjustPSDRequest.ProtoReflect.Descriptor instead.
 func (*AdjustPSDRequest) Descriptor() ([]byte, []int) {
-	return file_wavelength_router_wavelength_router_proto_rawDescGZIP(), []int{0}
+	return file_github_com_openconfig_gnoi_wavelength_router_wavelength_router_proto_rawDescGZIP(), []int{0}
 }
 
 func (x *AdjustPSDRequest) GetComponent() *types.Path {
@@ -371,22 +368,19 @@ func (x *AdjustPSDRequest) GetDirection() AdjustPSDRequest_SignalDirection {
 	return AdjustPSDRequest_DIRECTION_UNKNOWN
 }
 
-// Deprecated: Marked as deprecated in wavelength_router/wavelength_router.proto.
+// Deprecated: Marked as deprecated in github.com/openconfig/gnoi/wavelength_router/wavelength_router.proto.
 type AdjustPSDProgress struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState  `protogen:"open.v1"`
+	State         AdjustPSDProgress_State `protobuf:"varint,1,opt,name=state,proto3,enum=gnoi.optical.AdjustPSDProgress_State" json:"state,omitempty"`
 	unknownFields protoimpl.UnknownFields
-
-	State AdjustPSDProgress_State `protobuf:"varint,1,opt,name=state,proto3,enum=gnoi.optical.AdjustPSDProgress_State" json:"state,omitempty"`
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *AdjustPSDProgress) Reset() {
 	*x = AdjustPSDProgress{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_wavelength_router_wavelength_router_proto_msgTypes[1]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_wavelength_router_wavelength_router_proto_msgTypes[1]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *AdjustPSDProgress) String() string {
@@ -396,8 +390,8 @@ func (x *AdjustPSDProgress) String() string {
 func (*AdjustPSDProgress) ProtoMessage() {}
 
 func (x *AdjustPSDProgress) ProtoReflect() protoreflect.Message {
-	mi := &file_wavelength_router_wavelength_router_proto_msgTypes[1]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_wavelength_router_wavelength_router_proto_msgTypes[1]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -409,7 +403,7 @@ func (x *AdjustPSDProgress) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use AdjustPSDProgress.ProtoReflect.Descriptor instead.
 func (*AdjustPSDProgress) Descriptor() ([]byte, []int) {
-	return file_wavelength_router_wavelength_router_proto_rawDescGZIP(), []int{1}
+	return file_github_com_openconfig_gnoi_wavelength_router_wavelength_router_proto_rawDescGZIP(), []int{1}
 }
 
 func (x *AdjustPSDProgress) GetState() AdjustPSDProgress_State {
@@ -419,23 +413,20 @@ func (x *AdjustPSDProgress) GetState() AdjustPSDProgress_State {
 	return AdjustPSDProgress_UNKNOWN
 }
 
-// Deprecated: Marked as deprecated in wavelength_router/wavelength_router.proto.
+// Deprecated: Marked as deprecated in github.com/openconfig/gnoi/wavelength_router/wavelength_router.proto.
 type AdjustPSDError struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState `protogen:"open.v1"`
+	Type          AdjustPSDError_Type    `protobuf:"varint,1,opt,name=type,proto3,enum=gnoi.optical.AdjustPSDError_Type" json:"type,omitempty"`
+	Detail        string                 `protobuf:"bytes,2,opt,name=detail,proto3" json:"detail,omitempty"`
 	unknownFields protoimpl.UnknownFields
-
-	Type   AdjustPSDError_Type `protobuf:"varint,1,opt,name=type,proto3,enum=gnoi.optical.AdjustPSDError_Type" json:"type,omitempty"`
-	Detail string              `protobuf:"bytes,2,opt,name=detail,proto3" json:"detail,omitempty"`
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *AdjustPSDError) Reset() {
 	*x = AdjustPSDError{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_wavelength_router_wavelength_router_proto_msgTypes[2]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_wavelength_router_wavelength_router_proto_msgTypes[2]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *AdjustPSDError) String() string {
@@ -445,8 +436,8 @@ func (x *AdjustPSDError) String() string {
 func (*AdjustPSDError) ProtoMessage() {}
 
 func (x *AdjustPSDError) ProtoReflect() protoreflect.Message {
-	mi := &file_wavelength_router_wavelength_router_proto_msgTypes[2]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_wavelength_router_wavelength_router_proto_msgTypes[2]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -458,7 +449,7 @@ func (x *AdjustPSDError) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use AdjustPSDError.ProtoReflect.Descriptor instead.
 func (*AdjustPSDError) Descriptor() ([]byte, []int) {
-	return file_wavelength_router_wavelength_router_proto_rawDescGZIP(), []int{2}
+	return file_github_com_openconfig_gnoi_wavelength_router_wavelength_router_proto_rawDescGZIP(), []int{2}
 }
 
 func (x *AdjustPSDError) GetType() AdjustPSDError_Type {
@@ -475,26 +466,23 @@ func (x *AdjustPSDError) GetDetail() string {
 	return ""
 }
 
-// Deprecated: Marked as deprecated in wavelength_router/wavelength_router.proto.
+// Deprecated: Marked as deprecated in github.com/openconfig/gnoi/wavelength_router/wavelength_router.proto.
 type AdjustPSDResponse struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	// Types that are assignable to Response:
+	state protoimpl.MessageState `protogen:"open.v1"`
+	// Types that are valid to be assigned to Response:
 	//
 	//	*AdjustPSDResponse_Progress
 	//	*AdjustPSDResponse_Error
-	Response isAdjustPSDResponse_Response `protobuf_oneof:"response"`
+	Response      isAdjustPSDResponse_Response `protobuf_oneof:"response"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *AdjustPSDResponse) Reset() {
 	*x = AdjustPSDResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_wavelength_router_wavelength_router_proto_msgTypes[3]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_wavelength_router_wavelength_router_proto_msgTypes[3]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *AdjustPSDResponse) String() string {
@@ -504,8 +492,8 @@ func (x *AdjustPSDResponse) String() string {
 func (*AdjustPSDResponse) ProtoMessage() {}
 
 func (x *AdjustPSDResponse) ProtoReflect() protoreflect.Message {
-	mi := &file_wavelength_router_wavelength_router_proto_msgTypes[3]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_wavelength_router_wavelength_router_proto_msgTypes[3]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -517,26 +505,30 @@ func (x *AdjustPSDResponse) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use AdjustPSDResponse.ProtoReflect.Descriptor instead.
 func (*AdjustPSDResponse) Descriptor() ([]byte, []int) {
-	return file_wavelength_router_wavelength_router_proto_rawDescGZIP(), []int{3}
+	return file_github_com_openconfig_gnoi_wavelength_router_wavelength_router_proto_rawDescGZIP(), []int{3}
 }
 
-func (m *AdjustPSDResponse) GetResponse() isAdjustPSDResponse_Response {
-	if m != nil {
-		return m.Response
+func (x *AdjustPSDResponse) GetResponse() isAdjustPSDResponse_Response {
+	if x != nil {
+		return x.Response
 	}
 	return nil
 }
 
 func (x *AdjustPSDResponse) GetProgress() *AdjustPSDProgress {
-	if x, ok := x.GetResponse().(*AdjustPSDResponse_Progress); ok {
-		return x.Progress
+	if x != nil {
+		if x, ok := x.Response.(*AdjustPSDResponse_Progress); ok {
+			return x.Progress
+		}
 	}
 	return nil
 }
 
 func (x *AdjustPSDResponse) GetError() *AdjustPSDError {
-	if x, ok := x.GetResponse().(*AdjustPSDResponse_Error); ok {
-		return x.Error
+	if x != nil {
+		if x, ok := x.Response.(*AdjustPSDResponse_Error); ok {
+			return x.Error
+		}
 	}
 	return nil
 }
@@ -557,20 +549,18 @@ func (*AdjustPSDResponse_Progress) isAdjustPSDResponse_Response() {}
 
 func (*AdjustPSDResponse_Error) isAdjustPSDResponse_Response() {}
 
-// Deprecated: Marked as deprecated in wavelength_router/wavelength_router.proto.
+// Deprecated: Marked as deprecated in github.com/openconfig/gnoi/wavelength_router/wavelength_router.proto.
 type CancelAdjustPSDResponse struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState `protogen:"open.v1"`
 	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *CancelAdjustPSDResponse) Reset() {
 	*x = CancelAdjustPSDResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_wavelength_router_wavelength_router_proto_msgTypes[4]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_wavelength_router_wavelength_router_proto_msgTypes[4]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *CancelAdjustPSDResponse) String() string {
@@ -580,8 +570,8 @@ func (x *CancelAdjustPSDResponse) String() string {
 func (*CancelAdjustPSDResponse) ProtoMessage() {}
 
 func (x *CancelAdjustPSDResponse) ProtoReflect() protoreflect.Message {
-	mi := &file_wavelength_router_wavelength_router_proto_msgTypes[4]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_wavelength_router_wavelength_router_proto_msgTypes[4]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -593,25 +583,22 @@ func (x *CancelAdjustPSDResponse) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use CancelAdjustPSDResponse.ProtoReflect.Descriptor instead.
 func (*CancelAdjustPSDResponse) Descriptor() ([]byte, []int) {
-	return file_wavelength_router_wavelength_router_proto_rawDescGZIP(), []int{4}
+	return file_github_com_openconfig_gnoi_wavelength_router_wavelength_router_proto_rawDescGZIP(), []int{4}
 }
 
 type AdjustSpectrumRequest struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState                `protogen:"open.v1"`
+	Component     *types.Path                           `protobuf:"bytes,1,opt,name=component,proto3" json:"component,omitempty"`
+	Direction     AdjustSpectrumRequest_SignalDirection `protobuf:"varint,2,opt,name=direction,proto3,enum=gnoi.optical.AdjustSpectrumRequest_SignalDirection" json:"direction,omitempty"`
 	unknownFields protoimpl.UnknownFields
-
-	Component *types.Path                           `protobuf:"bytes,1,opt,name=component,proto3" json:"component,omitempty"`
-	Direction AdjustSpectrumRequest_SignalDirection `protobuf:"varint,2,opt,name=direction,proto3,enum=gnoi.optical.AdjustSpectrumRequest_SignalDirection" json:"direction,omitempty"`
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *AdjustSpectrumRequest) Reset() {
 	*x = AdjustSpectrumRequest{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_wavelength_router_wavelength_router_proto_msgTypes[5]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_wavelength_router_wavelength_router_proto_msgTypes[5]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *AdjustSpectrumRequest) String() string {
@@ -621,8 +608,8 @@ func (x *AdjustSpectrumRequest) String() string {
 func (*AdjustSpectrumRequest) ProtoMessage() {}
 
 func (x *AdjustSpectrumRequest) ProtoReflect() protoreflect.Message {
-	mi := &file_wavelength_router_wavelength_router_proto_msgTypes[5]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_wavelength_router_wavelength_router_proto_msgTypes[5]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -634,7 +621,7 @@ func (x *AdjustSpectrumRequest) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use AdjustSpectrumRequest.ProtoReflect.Descriptor instead.
 func (*AdjustSpectrumRequest) Descriptor() ([]byte, []int) {
-	return file_wavelength_router_wavelength_router_proto_rawDescGZIP(), []int{5}
+	return file_github_com_openconfig_gnoi_wavelength_router_wavelength_router_proto_rawDescGZIP(), []int{5}
 }
 
 func (x *AdjustSpectrumRequest) GetComponent() *types.Path {
@@ -652,20 +639,17 @@ func (x *AdjustSpectrumRequest) GetDirection() AdjustSpectrumRequest_SignalDirec
 }
 
 type AdjustSpectrumProgress struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState       `protogen:"open.v1"`
+	State         AdjustSpectrumProgress_State `protobuf:"varint,1,opt,name=state,proto3,enum=gnoi.optical.AdjustSpectrumProgress_State" json:"state,omitempty"`
 	unknownFields protoimpl.UnknownFields
-
-	State AdjustSpectrumProgress_State `protobuf:"varint,1,opt,name=state,proto3,enum=gnoi.optical.AdjustSpectrumProgress_State" json:"state,omitempty"`
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *AdjustSpectrumProgress) Reset() {
 	*x = AdjustSpectrumProgress{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_wavelength_router_wavelength_router_proto_msgTypes[6]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_wavelength_router_wavelength_router_proto_msgTypes[6]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *AdjustSpectrumProgress) String() string {
@@ -675,8 +659,8 @@ func (x *AdjustSpectrumProgress) String() string {
 func (*AdjustSpectrumProgress) ProtoMessage() {}
 
 func (x *AdjustSpectrumProgress) ProtoReflect() protoreflect.Message {
-	mi := &file_wavelength_router_wavelength_router_proto_msgTypes[6]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_wavelength_router_wavelength_router_proto_msgTypes[6]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -688,7 +672,7 @@ func (x *AdjustSpectrumProgress) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use AdjustSpectrumProgress.ProtoReflect.Descriptor instead.
 func (*AdjustSpectrumProgress) Descriptor() ([]byte, []int) {
-	return file_wavelength_router_wavelength_router_proto_rawDescGZIP(), []int{6}
+	return file_github_com_openconfig_gnoi_wavelength_router_wavelength_router_proto_rawDescGZIP(), []int{6}
 }
 
 func (x *AdjustSpectrumProgress) GetState() AdjustSpectrumProgress_State {
@@ -699,21 +683,18 @@ func (x *AdjustSpectrumProgress) GetState() AdjustSpectrumProgress_State {
 }
 
 type AdjustSpectrumError struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState   `protogen:"open.v1"`
+	Type          AdjustSpectrumError_Type `protobuf:"varint,1,opt,name=type,proto3,enum=gnoi.optical.AdjustSpectrumError_Type" json:"type,omitempty"`
+	Detail        string                   `protobuf:"bytes,2,opt,name=detail,proto3" json:"detail,omitempty"`
 	unknownFields protoimpl.UnknownFields
-
-	Type   AdjustSpectrumError_Type `protobuf:"varint,1,opt,name=type,proto3,enum=gnoi.optical.AdjustSpectrumError_Type" json:"type,omitempty"`
-	Detail string                   `protobuf:"bytes,2,opt,name=detail,proto3" json:"detail,omitempty"`
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *AdjustSpectrumError) Reset() {
 	*x = AdjustSpectrumError{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_wavelength_router_wavelength_router_proto_msgTypes[7]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_wavelength_router_wavelength_router_proto_msgTypes[7]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *AdjustSpectrumError) String() string {
@@ -723,8 +704,8 @@ func (x *AdjustSpectrumError) String() string {
 func (*AdjustSpectrumError) ProtoMessage() {}
 
 func (x *AdjustSpectrumError) ProtoReflect() protoreflect.Message {
-	mi := &file_wavelength_router_wavelength_router_proto_msgTypes[7]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_wavelength_router_wavelength_router_proto_msgTypes[7]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -736,7 +717,7 @@ func (x *AdjustSpectrumError) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use AdjustSpectrumError.ProtoReflect.Descriptor instead.
 func (*AdjustSpectrumError) Descriptor() ([]byte, []int) {
-	return file_wavelength_router_wavelength_router_proto_rawDescGZIP(), []int{7}
+	return file_github_com_openconfig_gnoi_wavelength_router_wavelength_router_proto_rawDescGZIP(), []int{7}
 }
 
 func (x *AdjustSpectrumError) GetType() AdjustSpectrumError_Type {
@@ -754,24 +735,21 @@ func (x *AdjustSpectrumError) GetDetail() string {
 }
 
 type AdjustSpectrumResponse struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	// Types that are assignable to Response:
+	state protoimpl.MessageState `protogen:"open.v1"`
+	// Types that are valid to be assigned to Response:
 	//
 	//	*AdjustSpectrumResponse_Progress
 	//	*AdjustSpectrumResponse_Error
-	Response isAdjustSpectrumResponse_Response `protobuf_oneof:"response"`
+	Response      isAdjustSpectrumResponse_Response `protobuf_oneof:"response"`
+	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *AdjustSpectrumResponse) Reset() {
 	*x = AdjustSpectrumResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_wavelength_router_wavelength_router_proto_msgTypes[8]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_wavelength_router_wavelength_router_proto_msgTypes[8]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *AdjustSpectrumResponse) String() string {
@@ -781,8 +759,8 @@ func (x *AdjustSpectrumResponse) String() string {
 func (*AdjustSpectrumResponse) ProtoMessage() {}
 
 func (x *AdjustSpectrumResponse) ProtoReflect() protoreflect.Message {
-	mi := &file_wavelength_router_wavelength_router_proto_msgTypes[8]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_wavelength_router_wavelength_router_proto_msgTypes[8]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -794,26 +772,30 @@ func (x *AdjustSpectrumResponse) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use AdjustSpectrumResponse.ProtoReflect.Descriptor instead.
 func (*AdjustSpectrumResponse) Descriptor() ([]byte, []int) {
-	return file_wavelength_router_wavelength_router_proto_rawDescGZIP(), []int{8}
+	return file_github_com_openconfig_gnoi_wavelength_router_wavelength_router_proto_rawDescGZIP(), []int{8}
 }
 
-func (m *AdjustSpectrumResponse) GetResponse() isAdjustSpectrumResponse_Response {
-	if m != nil {
-		return m.Response
+func (x *AdjustSpectrumResponse) GetResponse() isAdjustSpectrumResponse_Response {
+	if x != nil {
+		return x.Response
 	}
 	return nil
 }
 
 func (x *AdjustSpectrumResponse) GetProgress() *AdjustSpectrumProgress {
-	if x, ok := x.GetResponse().(*AdjustSpectrumResponse_Progress); ok {
-		return x.Progress
+	if x != nil {
+		if x, ok := x.Response.(*AdjustSpectrumResponse_Progress); ok {
+			return x.Progress
+		}
 	}
 	return nil
 }
 
 func (x *AdjustSpectrumResponse) GetError() *AdjustSpectrumError {
-	if x, ok := x.GetResponse().(*AdjustSpectrumResponse_Error); ok {
-		return x.Error
+	if x != nil {
+		if x, ok := x.Response.(*AdjustSpectrumResponse_Error); ok {
+			return x.Error
+		}
 	}
 	return nil
 }
@@ -835,18 +817,16 @@ func (*AdjustSpectrumResponse_Progress) isAdjustSpectrumResponse_Response() {}
 func (*AdjustSpectrumResponse_Error) isAdjustSpectrumResponse_Response() {}
 
 type CancelAdjustSpectrumResponse struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
+	state         protoimpl.MessageState `protogen:"open.v1"`
 	unknownFields protoimpl.UnknownFields
+	sizeCache     protoimpl.SizeCache
 }
 
 func (x *CancelAdjustSpectrumResponse) Reset() {
 	*x = CancelAdjustSpectrumResponse{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_wavelength_router_wavelength_router_proto_msgTypes[9]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
+	mi := &file_github_com_openconfig_gnoi_wavelength_router_wavelength_router_proto_msgTypes[9]
+	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+	ms.StoreMessageInfo(mi)
 }
 
 func (x *CancelAdjustSpectrumResponse) String() string {
@@ -856,8 +836,8 @@ func (x *CancelAdjustSpectrumResponse) String() string {
 func (*CancelAdjustSpectrumResponse) ProtoMessage() {}
 
 func (x *CancelAdjustSpectrumResponse) ProtoReflect() protoreflect.Message {
-	mi := &file_wavelength_router_wavelength_router_proto_msgTypes[9]
-	if protoimpl.UnsafeEnabled && x != nil {
+	mi := &file_github_com_openconfig_gnoi_wavelength_router_wavelength_router_proto_msgTypes[9]
+	if x != nil {
 		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 		if ms.LoadMessageInfo() == nil {
 			ms.StoreMessageInfo(mi)
@@ -869,157 +849,159 @@ func (x *CancelAdjustSpectrumResponse) ProtoReflect() protoreflect.Message {
 
 // Deprecated: Use CancelAdjustSpectrumResponse.ProtoReflect.Descriptor instead.
 func (*CancelAdjustSpectrumResponse) Descriptor() ([]byte, []int) {
-	return file_wavelength_router_wavelength_router_proto_rawDescGZIP(), []int{9}
-}
-
-var File_wavelength_router_wavelength_router_proto protoreflect.FileDescriptor
-
-var file_wavelength_router_wavelength_router_proto_rawDesc = []byte{
-	0x0a, 0x29, 0x77, 0x61, 0x76, 0x65, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x5f, 0x72, 0x6f, 0x75,
-	0x74, 0x65, 0x72, 0x2f, 0x77, 0x61, 0x76, 0x65, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x5f, 0x72,
-	0x6f, 0x75, 0x74, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0c, 0x67, 0x6e, 0x6f,
-	0x69, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x1a, 0x2c, 0x67, 0x69, 0x74, 0x68, 0x75,
-	0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67,
-	0x2f, 0x67, 0x6e, 0x6f, 0x69, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2f, 0x74, 0x79, 0x70, 0x65,
-	0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xe9, 0x01, 0x0a, 0x10, 0x41, 0x64, 0x6a, 0x75,
-	0x73, 0x74, 0x50, 0x53, 0x44, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2e, 0x0a, 0x09,
-	0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
-	0x10, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x50, 0x61, 0x74,
-	0x68, 0x52, 0x09, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x12, 0x4c, 0x0a, 0x09,
-	0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32,
-	0x2e, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x2e, 0x41,
-	0x64, 0x6a, 0x75, 0x73, 0x74, 0x50, 0x53, 0x44, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e,
-	0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52,
-	0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x53, 0x0a, 0x0f, 0x53, 0x69,
-	0x67, 0x6e, 0x61, 0x6c, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x15, 0x0a,
-	0x11, 0x44, 0x49, 0x52, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f,
-	0x57, 0x4e, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x44, 0x49, 0x52, 0x45, 0x43, 0x54, 0x49, 0x4f,
-	0x4e, 0x5f, 0x49, 0x4e, 0x50, 0x55, 0x54, 0x10, 0x01, 0x12, 0x14, 0x0a, 0x10, 0x44, 0x49, 0x52,
-	0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4f, 0x55, 0x54, 0x50, 0x55, 0x54, 0x10, 0x02, 0x3a,
-	0x02, 0x18, 0x01, 0x22, 0x85, 0x01, 0x0a, 0x11, 0x41, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x50, 0x53,
-	0x44, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0x3b, 0x0a, 0x05, 0x73, 0x74, 0x61,
-	0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e,
-	0x6f, 0x70, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x2e, 0x41, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x50, 0x53,
-	0x44, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52,
-	0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x22, 0x2f, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12,
-	0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07,
-	0x52, 0x55, 0x4e, 0x4e, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x43, 0x4f, 0x4d,
-	0x50, 0x4c, 0x45, 0x54, 0x45, 0x10, 0x02, 0x3a, 0x02, 0x18, 0x01, 0x22, 0xa1, 0x01, 0x0a, 0x0e,
-	0x41, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x50, 0x53, 0x44, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x35,
-	0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x67,
-	0x6e, 0x6f, 0x69, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x2e, 0x41, 0x64, 0x6a, 0x75,
-	0x73, 0x74, 0x50, 0x53, 0x44, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52,
-	0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x18,
-	0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x22, 0x3c, 0x0a,
-	0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0f, 0x0a, 0x0b, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49,
-	0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x42,
-	0x55, 0x53, 0x59, 0x10, 0x01, 0x12, 0x14, 0x0a, 0x10, 0x48, 0x41, 0x52, 0x44, 0x57, 0x41, 0x52,
-	0x45, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x55, 0x52, 0x45, 0x10, 0x02, 0x3a, 0x02, 0x18, 0x01, 0x22,
-	0x98, 0x01, 0x0a, 0x11, 0x41, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x50, 0x53, 0x44, 0x52, 0x65, 0x73,
-	0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3d, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73,
-	0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x6f,
+	return file_github_com_openconfig_gnoi_wavelength_router_wavelength_router_proto_rawDescGZIP(), []int{9}
+}
+
+var File_github_com_openconfig_gnoi_wavelength_router_wavelength_router_proto protoreflect.FileDescriptor
+
+var file_github_com_openconfig_gnoi_wavelength_router_wavelength_router_proto_rawDesc = []byte{
+	0x0a, 0x44, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x70, 0x65,
+	0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x67, 0x6e, 0x6f, 0x69, 0x2f, 0x77, 0x61, 0x76,
+	0x65, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x2f, 0x77,
+	0x61, 0x76, 0x65, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72,
+	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0c, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x6f, 0x70, 0x74,
+	0x69, 0x63, 0x61, 0x6c, 0x1a, 0x2c, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d,
+	0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x67, 0x6e, 0x6f, 0x69,
+	0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f,
+	0x74, 0x6f, 0x22, 0xe9, 0x01, 0x0a, 0x10, 0x41, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x50, 0x53, 0x44,
+	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2e, 0x0a, 0x09, 0x63, 0x6f, 0x6d, 0x70, 0x6f,
+	0x6e, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x67, 0x6e, 0x6f,
+	0x69, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x50, 0x61, 0x74, 0x68, 0x52, 0x09, 0x63, 0x6f,
+	0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x12, 0x4c, 0x0a, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63,
+	0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x67, 0x6e, 0x6f,
+	0x69, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x2e, 0x41, 0x64, 0x6a, 0x75, 0x73, 0x74,
+	0x50, 0x53, 0x44, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61,
+	0x6c, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x64, 0x69, 0x72, 0x65,
+	0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x53, 0x0a, 0x0f, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x44,
+	0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x15, 0x0a, 0x11, 0x44, 0x49, 0x52, 0x45,
+	0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12,
+	0x13, 0x0a, 0x0f, 0x44, 0x49, 0x52, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x49, 0x4e, 0x50,
+	0x55, 0x54, 0x10, 0x01, 0x12, 0x14, 0x0a, 0x10, 0x44, 0x49, 0x52, 0x45, 0x43, 0x54, 0x49, 0x4f,
+	0x4e, 0x5f, 0x4f, 0x55, 0x54, 0x50, 0x55, 0x54, 0x10, 0x02, 0x3a, 0x02, 0x18, 0x01, 0x22, 0x85,
+	0x01, 0x0a, 0x11, 0x41, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x50, 0x53, 0x44, 0x50, 0x72, 0x6f, 0x67,
+	0x72, 0x65, 0x73, 0x73, 0x12, 0x3b, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20,
+	0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x63,
+	0x61, 0x6c, 0x2e, 0x41, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x50, 0x53, 0x44, 0x50, 0x72, 0x6f, 0x67,
+	0x72, 0x65, 0x73, 0x73, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74,
+	0x65, 0x22, 0x2f, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e,
+	0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x52, 0x55, 0x4e, 0x4e, 0x49,
+	0x4e, 0x47, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x43, 0x4f, 0x4d, 0x50, 0x4c, 0x45, 0x54, 0x45,
+	0x10, 0x02, 0x3a, 0x02, 0x18, 0x01, 0x22, 0xa1, 0x01, 0x0a, 0x0e, 0x41, 0x64, 0x6a, 0x75, 0x73,
+	0x74, 0x50, 0x53, 0x44, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x35, 0x0a, 0x04, 0x74, 0x79, 0x70,
+	0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x6f,
 	0x70, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x2e, 0x41, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x50, 0x53, 0x44,
-	0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x48, 0x00, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x67,
-	0x72, 0x65, 0x73, 0x73, 0x12, 0x34, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x02, 0x20,
-	0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x63,
-	0x61, 0x6c, 0x2e, 0x41, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x50, 0x53, 0x44, 0x45, 0x72, 0x72, 0x6f,
-	0x72, 0x48, 0x00, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x3a, 0x02, 0x18, 0x01, 0x42, 0x0a,
-	0x0a, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1d, 0x0a, 0x17, 0x43, 0x61,
-	0x6e, 0x63, 0x65, 0x6c, 0x41, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x50, 0x53, 0x44, 0x52, 0x65, 0x73,
-	0x70, 0x6f, 0x6e, 0x73, 0x65, 0x3a, 0x02, 0x18, 0x01, 0x22, 0xef, 0x01, 0x0a, 0x15, 0x41, 0x64,
-	0x6a, 0x75, 0x73, 0x74, 0x53, 0x70, 0x65, 0x63, 0x74, 0x72, 0x75, 0x6d, 0x52, 0x65, 0x71, 0x75,
-	0x65, 0x73, 0x74, 0x12, 0x2e, 0x0a, 0x09, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74,
-	0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x74, 0x79,
-	0x70, 0x65, 0x73, 0x2e, 0x50, 0x61, 0x74, 0x68, 0x52, 0x09, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e,
-	0x65, 0x6e, 0x74, 0x12, 0x51, 0x0a, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e,
-	0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x33, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x6f, 0x70,
-	0x74, 0x69, 0x63, 0x61, 0x6c, 0x2e, 0x41, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x53, 0x70, 0x65, 0x63,
-	0x74, 0x72, 0x75, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x53, 0x69, 0x67, 0x6e,
-	0x61, 0x6c, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x64, 0x69, 0x72,
-	0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x53, 0x0a, 0x0f, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c,
-	0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x15, 0x0a, 0x11, 0x44, 0x49, 0x52,
-	0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00,
-	0x12, 0x13, 0x0a, 0x0f, 0x44, 0x49, 0x52, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x49, 0x4e,
-	0x50, 0x55, 0x54, 0x10, 0x01, 0x12, 0x14, 0x0a, 0x10, 0x44, 0x49, 0x52, 0x45, 0x43, 0x54, 0x49,
-	0x4f, 0x4e, 0x5f, 0x4f, 0x55, 0x54, 0x50, 0x55, 0x54, 0x10, 0x02, 0x22, 0x8b, 0x01, 0x0a, 0x16,
-	0x41, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x53, 0x70, 0x65, 0x63, 0x74, 0x72, 0x75, 0x6d, 0x50, 0x72,
-	0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0x40, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18,
-	0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x6f, 0x70, 0x74,
-	0x69, 0x63, 0x61, 0x6c, 0x2e, 0x41, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x53, 0x70, 0x65, 0x63, 0x74,
-	0x72, 0x75, 0x6d, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x2e, 0x53, 0x74, 0x61, 0x74,
-	0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x22, 0x2f, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74,
-	0x65, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x0b,
-	0x0a, 0x07, 0x52, 0x55, 0x4e, 0x4e, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x43,
-	0x4f, 0x4d, 0x50, 0x4c, 0x45, 0x54, 0x45, 0x10, 0x02, 0x22, 0xa7, 0x01, 0x0a, 0x13, 0x41, 0x64,
-	0x6a, 0x75, 0x73, 0x74, 0x53, 0x70, 0x65, 0x63, 0x74, 0x72, 0x75, 0x6d, 0x45, 0x72, 0x72, 0x6f,
-	0x72, 0x12, 0x3a, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32,
-	0x26, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x2e, 0x41,
-	0x64, 0x6a, 0x75, 0x73, 0x74, 0x53, 0x70, 0x65, 0x63, 0x74, 0x72, 0x75, 0x6d, 0x45, 0x72, 0x72,
-	0x6f, 0x72, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a,
-	0x06, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64,
-	0x65, 0x74, 0x61, 0x69, 0x6c, 0x22, 0x3c, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0f, 0x0a,
-	0x0b, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0d,
-	0x0a, 0x09, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x42, 0x55, 0x53, 0x59, 0x10, 0x01, 0x12, 0x14, 0x0a,
-	0x10, 0x48, 0x41, 0x52, 0x44, 0x57, 0x41, 0x52, 0x45, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x55, 0x52,
-	0x45, 0x10, 0x02, 0x22, 0xa3, 0x01, 0x0a, 0x16, 0x41, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x53, 0x70,
-	0x65, 0x63, 0x74, 0x72, 0x75, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x42,
-	0x0a, 0x08, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,
-	0x32, 0x24, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x2e,
+	0x45, 0x72, 0x72, 0x6f, 0x72, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65,
+	0x12, 0x16, 0x0a, 0x06, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
+	0x52, 0x06, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x22, 0x3c, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65,
+	0x12, 0x0f, 0x0a, 0x0b, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10,
+	0x00, 0x12, 0x0d, 0x0a, 0x09, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x42, 0x55, 0x53, 0x59, 0x10, 0x01,
+	0x12, 0x14, 0x0a, 0x10, 0x48, 0x41, 0x52, 0x44, 0x57, 0x41, 0x52, 0x45, 0x5f, 0x46, 0x41, 0x49,
+	0x4c, 0x55, 0x52, 0x45, 0x10, 0x02, 0x3a, 0x02, 0x18, 0x01, 0x22, 0x98, 0x01, 0x0a, 0x11, 0x41,
+	0x64, 0x6a, 0x75, 0x73, 0x74, 0x50, 0x53, 0x44, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
+	0x12, 0x3d, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01,
+	0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x63, 0x61,
+	0x6c, 0x2e, 0x41, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x50, 0x53, 0x44, 0x50, 0x72, 0x6f, 0x67, 0x72,
+	0x65, 0x73, 0x73, 0x48, 0x00, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12,
+	0x34, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c,
+	0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x2e, 0x41, 0x64,
+	0x6a, 0x75, 0x73, 0x74, 0x50, 0x53, 0x44, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x48, 0x00, 0x52, 0x05,
+	0x65, 0x72, 0x72, 0x6f, 0x72, 0x3a, 0x02, 0x18, 0x01, 0x42, 0x0a, 0x0a, 0x08, 0x72, 0x65, 0x73,
+	0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1d, 0x0a, 0x17, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x41,
+	0x64, 0x6a, 0x75, 0x73, 0x74, 0x50, 0x53, 0x44, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
+	0x3a, 0x02, 0x18, 0x01, 0x22, 0xef, 0x01, 0x0a, 0x15, 0x41, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x53,
+	0x70, 0x65, 0x63, 0x74, 0x72, 0x75, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2e,
+	0x0a, 0x09, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28,
+	0x0b, 0x32, 0x10, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x50,
+	0x61, 0x74, 0x68, 0x52, 0x09, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x12, 0x51,
+	0x0a, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28,
+	0x0e, 0x32, 0x33, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x63, 0x61, 0x6c,
+	0x2e, 0x41, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x53, 0x70, 0x65, 0x63, 0x74, 0x72, 0x75, 0x6d, 0x52,
+	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x44, 0x69, 0x72,
+	0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f,
+	0x6e, 0x22, 0x53, 0x0a, 0x0f, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x44, 0x69, 0x72, 0x65, 0x63,
+	0x74, 0x69, 0x6f, 0x6e, 0x12, 0x15, 0x0a, 0x11, 0x44, 0x49, 0x52, 0x45, 0x43, 0x54, 0x49, 0x4f,
+	0x4e, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x44,
+	0x49, 0x52, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x49, 0x4e, 0x50, 0x55, 0x54, 0x10, 0x01,
+	0x12, 0x14, 0x0a, 0x10, 0x44, 0x49, 0x52, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4f, 0x55,
+	0x54, 0x50, 0x55, 0x54, 0x10, 0x02, 0x22, 0x8b, 0x01, 0x0a, 0x16, 0x41, 0x64, 0x6a, 0x75, 0x73,
+	0x74, 0x53, 0x70, 0x65, 0x63, 0x74, 0x72, 0x75, 0x6d, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73,
+	0x73, 0x12, 0x40, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e,
+	0x32, 0x2a, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x2e,
 	0x41, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x53, 0x70, 0x65, 0x63, 0x74, 0x72, 0x75, 0x6d, 0x50, 0x72,
-	0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x48, 0x00, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65,
-	0x73, 0x73, 0x12, 0x39, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28,
-	0x0b, 0x32, 0x21, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x63, 0x61, 0x6c,
-	0x2e, 0x41, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x53, 0x70, 0x65, 0x63, 0x74, 0x72, 0x75, 0x6d, 0x45,
-	0x72, 0x72, 0x6f, 0x72, 0x48, 0x00, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x42, 0x0a, 0x0a,
-	0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1e, 0x0a, 0x1c, 0x43, 0x61, 0x6e,
-	0x63, 0x65, 0x6c, 0x41, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x53, 0x70, 0x65, 0x63, 0x74, 0x72, 0x75,
-	0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x32, 0x92, 0x03, 0x0a, 0x10, 0x57, 0x61,
-	0x76, 0x65, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x12, 0x53,
-	0x0a, 0x09, 0x41, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x50, 0x53, 0x44, 0x12, 0x1e, 0x2e, 0x67, 0x6e,
+	0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74,
+	0x61, 0x74, 0x65, 0x22, 0x2f, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x0b, 0x0a, 0x07,
+	0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x52, 0x55, 0x4e,
+	0x4e, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x43, 0x4f, 0x4d, 0x50, 0x4c, 0x45,
+	0x54, 0x45, 0x10, 0x02, 0x22, 0xa7, 0x01, 0x0a, 0x13, 0x41, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x53,
+	0x70, 0x65, 0x63, 0x74, 0x72, 0x75, 0x6d, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x3a, 0x0a, 0x04,
+	0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x67, 0x6e, 0x6f,
+	0x69, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x2e, 0x41, 0x64, 0x6a, 0x75, 0x73, 0x74,
+	0x53, 0x70, 0x65, 0x63, 0x74, 0x72, 0x75, 0x6d, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x2e, 0x54, 0x79,
+	0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x65, 0x74, 0x61,
+	0x69, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c,
+	0x22, 0x3c, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0f, 0x0a, 0x0b, 0x55, 0x4e, 0x53, 0x50,
+	0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x50, 0x4f, 0x52,
+	0x54, 0x5f, 0x42, 0x55, 0x53, 0x59, 0x10, 0x01, 0x12, 0x14, 0x0a, 0x10, 0x48, 0x41, 0x52, 0x44,
+	0x57, 0x41, 0x52, 0x45, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x55, 0x52, 0x45, 0x10, 0x02, 0x22, 0xa3,
+	0x01, 0x0a, 0x16, 0x41, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x53, 0x70, 0x65, 0x63, 0x74, 0x72, 0x75,
+	0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x42, 0x0a, 0x08, 0x70, 0x72, 0x6f,
+	0x67, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6e,
 	0x6f, 0x69, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x2e, 0x41, 0x64, 0x6a, 0x75, 0x73,
-	0x74, 0x50, 0x53, 0x44, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x67, 0x6e,
-	0x6f, 0x69, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x2e, 0x41, 0x64, 0x6a, 0x75, 0x73,
-	0x74, 0x50, 0x53, 0x44, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x03, 0x88, 0x02,
-	0x01, 0x30, 0x01, 0x12, 0x5d, 0x0a, 0x0f, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x41, 0x64, 0x6a,
+	0x74, 0x53, 0x70, 0x65, 0x63, 0x74, 0x72, 0x75, 0x6d, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73,
+	0x73, 0x48, 0x00, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0x39, 0x0a,
+	0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x67,
+	0x6e, 0x6f, 0x69, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x2e, 0x41, 0x64, 0x6a, 0x75,
+	0x73, 0x74, 0x53, 0x70, 0x65, 0x63, 0x74, 0x72, 0x75, 0x6d, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x48,
+	0x00, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x42, 0x0a, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x70,
+	0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1e, 0x0a, 0x1c, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x41, 0x64,
+	0x6a, 0x75, 0x73, 0x74, 0x53, 0x70, 0x65, 0x63, 0x74, 0x72, 0x75, 0x6d, 0x52, 0x65, 0x73, 0x70,
+	0x6f, 0x6e, 0x73, 0x65, 0x32, 0x92, 0x03, 0x0a, 0x10, 0x57, 0x61, 0x76, 0x65, 0x6c, 0x65, 0x6e,
+	0x67, 0x74, 0x68, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x12, 0x53, 0x0a, 0x09, 0x41, 0x64, 0x6a,
 	0x75, 0x73, 0x74, 0x50, 0x53, 0x44, 0x12, 0x1e, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x6f, 0x70,
 	0x74, 0x69, 0x63, 0x61, 0x6c, 0x2e, 0x41, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x50, 0x53, 0x44, 0x52,
-	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x6f, 0x70,
-	0x74, 0x69, 0x63, 0x61, 0x6c, 0x2e, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x41, 0x64, 0x6a, 0x75,
-	0x73, 0x74, 0x50, 0x53, 0x44, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x03, 0x88,
-	0x02, 0x01, 0x12, 0x5f, 0x0a, 0x0e, 0x41, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x53, 0x70, 0x65, 0x63,
-	0x74, 0x72, 0x75, 0x6d, 0x12, 0x23, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x6f, 0x70, 0x74, 0x69,
+	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x6f, 0x70,
+	0x74, 0x69, 0x63, 0x61, 0x6c, 0x2e, 0x41, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x50, 0x53, 0x44, 0x52,
+	0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x03, 0x88, 0x02, 0x01, 0x30, 0x01, 0x12, 0x5d,
+	0x0a, 0x0f, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x41, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x50, 0x53,
+	0x44, 0x12, 0x1e, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x63, 0x61, 0x6c,
+	0x2e, 0x41, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x50, 0x53, 0x44, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
+	0x74, 0x1a, 0x25, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x63, 0x61, 0x6c,
+	0x2e, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x41, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x50, 0x53, 0x44,
+	0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x03, 0x88, 0x02, 0x01, 0x12, 0x5f, 0x0a,
+	0x0e, 0x41, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x53, 0x70, 0x65, 0x63, 0x74, 0x72, 0x75, 0x6d, 0x12,
+	0x23, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x2e, 0x41,
+	0x64, 0x6a, 0x75, 0x73, 0x74, 0x53, 0x70, 0x65, 0x63, 0x74, 0x72, 0x75, 0x6d, 0x52, 0x65, 0x71,
+	0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x6f, 0x70, 0x74, 0x69,
 	0x63, 0x61, 0x6c, 0x2e, 0x41, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x53, 0x70, 0x65, 0x63, 0x74, 0x72,
-	0x75, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x67, 0x6e, 0x6f, 0x69,
-	0x2e, 0x6f, 0x70, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x2e, 0x41, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x53,
-	0x70, 0x65, 0x63, 0x74, 0x72, 0x75, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22,
-	0x00, 0x30, 0x01, 0x12, 0x69, 0x0a, 0x14, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x41, 0x64, 0x6a,
-	0x75, 0x73, 0x74, 0x53, 0x70, 0x65, 0x63, 0x74, 0x72, 0x75, 0x6d, 0x12, 0x23, 0x2e, 0x67, 0x6e,
-	0x6f, 0x69, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x2e, 0x41, 0x64, 0x6a, 0x75, 0x73,
-	0x74, 0x53, 0x70, 0x65, 0x63, 0x74, 0x72, 0x75, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
-	0x1a, 0x2a, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x2e,
-	0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x41, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x53, 0x70, 0x65, 0x63,
-	0x74, 0x72, 0x75, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x36,
-	0xd2, 0x3e, 0x05, 0x30, 0x2e, 0x32, 0x2e, 0x30, 0x5a, 0x2c, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62,
-	0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f,
-	0x67, 0x6e, 0x6f, 0x69, 0x2f, 0x77, 0x61, 0x76, 0x65, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x5f,
-	0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+	0x75, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x30, 0x01, 0x12, 0x69,
+	0x0a, 0x14, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x41, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x53, 0x70,
+	0x65, 0x63, 0x74, 0x72, 0x75, 0x6d, 0x12, 0x23, 0x2e, 0x67, 0x6e, 0x6f, 0x69, 0x2e, 0x6f, 0x70,
+	0x74, 0x69, 0x63, 0x61, 0x6c, 0x2e, 0x41, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x53, 0x70, 0x65, 0x63,
+	0x74, 0x72, 0x75, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x67, 0x6e,
+	0x6f, 0x69, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x2e, 0x43, 0x61, 0x6e, 0x63, 0x65,
+	0x6c, 0x41, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x53, 0x70, 0x65, 0x63, 0x74, 0x72, 0x75, 0x6d, 0x52,
+	0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x36, 0xd2, 0x3e, 0x05, 0x30, 0x2e,
+	0x32, 0x2e, 0x30, 0x5a, 0x2c, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f,
+	0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x67, 0x6e, 0x6f, 0x69, 0x2f,
+	0x77, 0x61, 0x76, 0x65, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65,
+	0x72, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
 }
 
 var (
-	file_wavelength_router_wavelength_router_proto_rawDescOnce sync.Once
-	file_wavelength_router_wavelength_router_proto_rawDescData = file_wavelength_router_wavelength_router_proto_rawDesc
+	file_github_com_openconfig_gnoi_wavelength_router_wavelength_router_proto_rawDescOnce sync.Once
+	file_github_com_openconfig_gnoi_wavelength_router_wavelength_router_proto_rawDescData = file_github_com_openconfig_gnoi_wavelength_router_wavelength_router_proto_rawDesc
 )
 
-func file_wavelength_router_wavelength_router_proto_rawDescGZIP() []byte {
-	file_wavelength_router_wavelength_router_proto_rawDescOnce.Do(func() {
-		file_wavelength_router_wavelength_router_proto_rawDescData = protoimpl.X.CompressGZIP(file_wavelength_router_wavelength_router_proto_rawDescData)
+func file_github_com_openconfig_gnoi_wavelength_router_wavelength_router_proto_rawDescGZIP() []byte {
+	file_github_com_openconfig_gnoi_wavelength_router_wavelength_router_proto_rawDescOnce.Do(func() {
+		file_github_com_openconfig_gnoi_wavelength_router_wavelength_router_proto_rawDescData = protoimpl.X.CompressGZIP(file_github_com_openconfig_gnoi_wavelength_router_wavelength_router_proto_rawDescData)
 	})
-	return file_wavelength_router_wavelength_router_proto_rawDescData
+	return file_github_com_openconfig_gnoi_wavelength_router_wavelength_router_proto_rawDescData
 }
 
-var file_wavelength_router_wavelength_router_proto_enumTypes = make([]protoimpl.EnumInfo, 6)
-var file_wavelength_router_wavelength_router_proto_msgTypes = make([]protoimpl.MessageInfo, 10)
-var file_wavelength_router_wavelength_router_proto_goTypes = []interface{}{
+var file_github_com_openconfig_gnoi_wavelength_router_wavelength_router_proto_enumTypes = make([]protoimpl.EnumInfo, 6)
+var file_github_com_openconfig_gnoi_wavelength_router_wavelength_router_proto_msgTypes = make([]protoimpl.MessageInfo, 10)
+var file_github_com_openconfig_gnoi_wavelength_router_wavelength_router_proto_goTypes = []any{
 	(AdjustPSDRequest_SignalDirection)(0),      // 0: gnoi.optical.AdjustPSDRequest.SignalDirection
 	(AdjustPSDProgress_State)(0),               // 1: gnoi.optical.AdjustPSDProgress.State
 	(AdjustPSDError_Type)(0),                   // 2: gnoi.optical.AdjustPSDError.Type
@@ -1038,7 +1020,7 @@ var file_wavelength_router_wavelength_router_proto_goTypes = []interface{}{
 	(*CancelAdjustSpectrumResponse)(nil),       // 15: gnoi.optical.CancelAdjustSpectrumResponse
 	(*types.Path)(nil),                         // 16: gnoi.types.Path
 }
-var file_wavelength_router_wavelength_router_proto_depIdxs = []int32{
+var file_github_com_openconfig_gnoi_wavelength_router_wavelength_router_proto_depIdxs = []int32{
 	16, // 0: gnoi.optical.AdjustPSDRequest.component:type_name -> gnoi.types.Path
 	0,  // 1: gnoi.optical.AdjustPSDRequest.direction:type_name -> gnoi.optical.AdjustPSDRequest.SignalDirection
 	1,  // 2: gnoi.optical.AdjustPSDProgress.state:type_name -> gnoi.optical.AdjustPSDProgress.State
@@ -1066,138 +1048,16 @@ var file_wavelength_router_wavelength_router_proto_depIdxs = []int32{
 	0,  // [0:12] is the sub-list for field type_name
 }
 
-func init() { file_wavelength_router_wavelength_router_proto_init() }
-func file_wavelength_router_wavelength_router_proto_init() {
-	if File_wavelength_router_wavelength_router_proto != nil {
+func init() { file_github_com_openconfig_gnoi_wavelength_router_wavelength_router_proto_init() }
+func file_github_com_openconfig_gnoi_wavelength_router_wavelength_router_proto_init() {
+	if File_github_com_openconfig_gnoi_wavelength_router_wavelength_router_proto != nil {
 		return
 	}
-	if !protoimpl.UnsafeEnabled {
-		file_wavelength_router_wavelength_router_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*AdjustPSDRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_wavelength_router_wavelength_router_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*AdjustPSDProgress); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_wavelength_router_wavelength_router_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*AdjustPSDError); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_wavelength_router_wavelength_router_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*AdjustPSDResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_wavelength_router_wavelength_router_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*CancelAdjustPSDResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_wavelength_router_wavelength_router_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*AdjustSpectrumRequest); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_wavelength_router_wavelength_router_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*AdjustSpectrumProgress); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_wavelength_router_wavelength_router_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*AdjustSpectrumError); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_wavelength_router_wavelength_router_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*AdjustSpectrumResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_wavelength_router_wavelength_router_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*CancelAdjustSpectrumResponse); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-	}
-	file_wavelength_router_wavelength_router_proto_msgTypes[3].OneofWrappers = []interface{}{
+	file_github_com_openconfig_gnoi_wavelength_router_wavelength_router_proto_msgTypes[3].OneofWrappers = []any{
 		(*AdjustPSDResponse_Progress)(nil),
 		(*AdjustPSDResponse_Error)(nil),
 	}
-	file_wavelength_router_wavelength_router_proto_msgTypes[8].OneofWrappers = []interface{}{
+	file_github_com_openconfig_gnoi_wavelength_router_wavelength_router_proto_msgTypes[8].OneofWrappers = []any{
 		(*AdjustSpectrumResponse_Progress)(nil),
 		(*AdjustSpectrumResponse_Error)(nil),
 	}
@@ -1205,19 +1065,19 @@ func file_wavelength_router_wavelength_router_proto_init() {
 	out := protoimpl.TypeBuilder{
 		File: protoimpl.DescBuilder{
 			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
-			RawDescriptor: file_wavelength_router_wavelength_router_proto_rawDesc,
+			RawDescriptor: file_github_com_openconfig_gnoi_wavelength_router_wavelength_router_proto_rawDesc,
 			NumEnums:      6,
 			NumMessages:   10,
 			NumExtensions: 0,
 			NumServices:   1,
 		},
-		GoTypes:           file_wavelength_router_wavelength_router_proto_goTypes,
-		DependencyIndexes: file_wavelength_router_wavelength_router_proto_depIdxs,
-		EnumInfos:         file_wavelength_router_wavelength_router_proto_enumTypes,
-		MessageInfos:      file_wavelength_router_wavelength_router_proto_msgTypes,
+		GoTypes:           file_github_com_openconfig_gnoi_wavelength_router_wavelength_router_proto_goTypes,
+		DependencyIndexes: file_github_com_openconfig_gnoi_wavelength_router_wavelength_router_proto_depIdxs,
+		EnumInfos:         file_github_com_openconfig_gnoi_wavelength_router_wavelength_router_proto_enumTypes,
+		MessageInfos:      file_github_com_openconfig_gnoi_wavelength_router_wavelength_router_proto_msgTypes,
 	}.Build()
-	File_wavelength_router_wavelength_router_proto = out.File
-	file_wavelength_router_wavelength_router_proto_rawDesc = nil
-	file_wavelength_router_wavelength_router_proto_goTypes = nil
-	file_wavelength_router_wavelength_router_proto_depIdxs = nil
+	File_github_com_openconfig_gnoi_wavelength_router_wavelength_router_proto = out.File
+	file_github_com_openconfig_gnoi_wavelength_router_wavelength_router_proto_rawDesc = nil
+	file_github_com_openconfig_gnoi_wavelength_router_wavelength_router_proto_goTypes = nil
+	file_github_com_openconfig_gnoi_wavelength_router_wavelength_router_proto_depIdxs = nil
 }
diff --git a/wavelength_router/wavelength_router_grpc.pb.go b/wavelength_router/wavelength_router_grpc.pb.go
index 88dbc6bf..2a30372e 100644
--- a/wavelength_router/wavelength_router_grpc.pb.go
+++ b/wavelength_router/wavelength_router_grpc.pb.go
@@ -1,8 +1,8 @@
 // Code generated by protoc-gen-go-grpc. DO NOT EDIT.
 // versions:
-// - protoc-gen-go-grpc v1.2.0
-// - protoc             v3.21.10
-// source: wavelength_router/wavelength_router.proto
+// - protoc-gen-go-grpc v1.5.1
+// - protoc             v5.29.3
+// source: github.com/openconfig/gnoi/wavelength_router/wavelength_router.proto
 
 package wavelength_router
 
@@ -15,18 +15,25 @@ import (
 
 // This is a compile-time assertion to ensure that this generated file
 // is compatible with the grpc package it is being compiled against.
-// Requires gRPC-Go v1.32.0 or later.
-const _ = grpc.SupportPackageIsVersion7
+// Requires gRPC-Go v1.64.0 or later.
+const _ = grpc.SupportPackageIsVersion9
+
+const (
+	WavelengthRouter_AdjustPSD_FullMethodName            = "/gnoi.optical.WavelengthRouter/AdjustPSD"
+	WavelengthRouter_CancelAdjustPSD_FullMethodName      = "/gnoi.optical.WavelengthRouter/CancelAdjustPSD"
+	WavelengthRouter_AdjustSpectrum_FullMethodName       = "/gnoi.optical.WavelengthRouter/AdjustSpectrum"
+	WavelengthRouter_CancelAdjustSpectrum_FullMethodName = "/gnoi.optical.WavelengthRouter/CancelAdjustSpectrum"
+)
 
 // WavelengthRouterClient is the client API for WavelengthRouter service.
 //
 // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.
 type WavelengthRouterClient interface {
 	// Deprecated: Do not use.
-	AdjustPSD(ctx context.Context, in *AdjustPSDRequest, opts ...grpc.CallOption) (WavelengthRouter_AdjustPSDClient, error)
+	AdjustPSD(ctx context.Context, in *AdjustPSDRequest, opts ...grpc.CallOption) (grpc.ServerStreamingClient[AdjustPSDResponse], error)
 	// Deprecated: Do not use.
 	CancelAdjustPSD(ctx context.Context, in *AdjustPSDRequest, opts ...grpc.CallOption) (*CancelAdjustPSDResponse, error)
-	AdjustSpectrum(ctx context.Context, in *AdjustSpectrumRequest, opts ...grpc.CallOption) (WavelengthRouter_AdjustSpectrumClient, error)
+	AdjustSpectrum(ctx context.Context, in *AdjustSpectrumRequest, opts ...grpc.CallOption) (grpc.ServerStreamingClient[AdjustSpectrumResponse], error)
 	CancelAdjustSpectrum(ctx context.Context, in *AdjustSpectrumRequest, opts ...grpc.CallOption) (*CancelAdjustSpectrumResponse, error)
 }
 
@@ -39,12 +46,13 @@ func NewWavelengthRouterClient(cc grpc.ClientConnInterface) WavelengthRouterClie
 }
 
 // Deprecated: Do not use.
-func (c *wavelengthRouterClient) AdjustPSD(ctx context.Context, in *AdjustPSDRequest, opts ...grpc.CallOption) (WavelengthRouter_AdjustPSDClient, error) {
-	stream, err := c.cc.NewStream(ctx, &WavelengthRouter_ServiceDesc.Streams[0], "/gnoi.optical.WavelengthRouter/AdjustPSD", opts...)
+func (c *wavelengthRouterClient) AdjustPSD(ctx context.Context, in *AdjustPSDRequest, opts ...grpc.CallOption) (grpc.ServerStreamingClient[AdjustPSDResponse], error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	stream, err := c.cc.NewStream(ctx, &WavelengthRouter_ServiceDesc.Streams[0], WavelengthRouter_AdjustPSD_FullMethodName, cOpts...)
 	if err != nil {
 		return nil, err
 	}
-	x := &wavelengthRouterAdjustPSDClient{stream}
+	x := &grpc.GenericClientStream[AdjustPSDRequest, AdjustPSDResponse]{ClientStream: stream}
 	if err := x.ClientStream.SendMsg(in); err != nil {
 		return nil, err
 	}
@@ -54,39 +62,27 @@ func (c *wavelengthRouterClient) AdjustPSD(ctx context.Context, in *AdjustPSDReq
 	return x, nil
 }
 
-type WavelengthRouter_AdjustPSDClient interface {
-	Recv() (*AdjustPSDResponse, error)
-	grpc.ClientStream
-}
-
-type wavelengthRouterAdjustPSDClient struct {
-	grpc.ClientStream
-}
-
-func (x *wavelengthRouterAdjustPSDClient) Recv() (*AdjustPSDResponse, error) {
-	m := new(AdjustPSDResponse)
-	if err := x.ClientStream.RecvMsg(m); err != nil {
-		return nil, err
-	}
-	return m, nil
-}
+// This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name.
+type WavelengthRouter_AdjustPSDClient = grpc.ServerStreamingClient[AdjustPSDResponse]
 
 // Deprecated: Do not use.
 func (c *wavelengthRouterClient) CancelAdjustPSD(ctx context.Context, in *AdjustPSDRequest, opts ...grpc.CallOption) (*CancelAdjustPSDResponse, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
 	out := new(CancelAdjustPSDResponse)
-	err := c.cc.Invoke(ctx, "/gnoi.optical.WavelengthRouter/CancelAdjustPSD", in, out, opts...)
+	err := c.cc.Invoke(ctx, WavelengthRouter_CancelAdjustPSD_FullMethodName, in, out, cOpts...)
 	if err != nil {
 		return nil, err
 	}
 	return out, nil
 }
 
-func (c *wavelengthRouterClient) AdjustSpectrum(ctx context.Context, in *AdjustSpectrumRequest, opts ...grpc.CallOption) (WavelengthRouter_AdjustSpectrumClient, error) {
-	stream, err := c.cc.NewStream(ctx, &WavelengthRouter_ServiceDesc.Streams[1], "/gnoi.optical.WavelengthRouter/AdjustSpectrum", opts...)
+func (c *wavelengthRouterClient) AdjustSpectrum(ctx context.Context, in *AdjustSpectrumRequest, opts ...grpc.CallOption) (grpc.ServerStreamingClient[AdjustSpectrumResponse], error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+	stream, err := c.cc.NewStream(ctx, &WavelengthRouter_ServiceDesc.Streams[1], WavelengthRouter_AdjustSpectrum_FullMethodName, cOpts...)
 	if err != nil {
 		return nil, err
 	}
-	x := &wavelengthRouterAdjustSpectrumClient{stream}
+	x := &grpc.GenericClientStream[AdjustSpectrumRequest, AdjustSpectrumResponse]{ClientStream: stream}
 	if err := x.ClientStream.SendMsg(in); err != nil {
 		return nil, err
 	}
@@ -96,26 +92,13 @@ func (c *wavelengthRouterClient) AdjustSpectrum(ctx context.Context, in *AdjustS
 	return x, nil
 }
 
-type WavelengthRouter_AdjustSpectrumClient interface {
-	Recv() (*AdjustSpectrumResponse, error)
-	grpc.ClientStream
-}
-
-type wavelengthRouterAdjustSpectrumClient struct {
-	grpc.ClientStream
-}
-
-func (x *wavelengthRouterAdjustSpectrumClient) Recv() (*AdjustSpectrumResponse, error) {
-	m := new(AdjustSpectrumResponse)
-	if err := x.ClientStream.RecvMsg(m); err != nil {
-		return nil, err
-	}
-	return m, nil
-}
+// This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name.
+type WavelengthRouter_AdjustSpectrumClient = grpc.ServerStreamingClient[AdjustSpectrumResponse]
 
 func (c *wavelengthRouterClient) CancelAdjustSpectrum(ctx context.Context, in *AdjustSpectrumRequest, opts ...grpc.CallOption) (*CancelAdjustSpectrumResponse, error) {
+	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
 	out := new(CancelAdjustSpectrumResponse)
-	err := c.cc.Invoke(ctx, "/gnoi.optical.WavelengthRouter/CancelAdjustSpectrum", in, out, opts...)
+	err := c.cc.Invoke(ctx, WavelengthRouter_CancelAdjustSpectrum_FullMethodName, in, out, cOpts...)
 	if err != nil {
 		return nil, err
 	}
@@ -123,35 +106,37 @@ func (c *wavelengthRouterClient) CancelAdjustSpectrum(ctx context.Context, in *A
 }
 
 // WavelengthRouterServer is the server API for WavelengthRouter service.
-// All implementations must embed UnimplementedWavelengthRouterServer
-// for forward compatibility
+// All implementations should embed UnimplementedWavelengthRouterServer
+// for forward compatibility.
 type WavelengthRouterServer interface {
 	// Deprecated: Do not use.
-	AdjustPSD(*AdjustPSDRequest, WavelengthRouter_AdjustPSDServer) error
+	AdjustPSD(*AdjustPSDRequest, grpc.ServerStreamingServer[AdjustPSDResponse]) error
 	// Deprecated: Do not use.
 	CancelAdjustPSD(context.Context, *AdjustPSDRequest) (*CancelAdjustPSDResponse, error)
-	AdjustSpectrum(*AdjustSpectrumRequest, WavelengthRouter_AdjustSpectrumServer) error
+	AdjustSpectrum(*AdjustSpectrumRequest, grpc.ServerStreamingServer[AdjustSpectrumResponse]) error
 	CancelAdjustSpectrum(context.Context, *AdjustSpectrumRequest) (*CancelAdjustSpectrumResponse, error)
-	mustEmbedUnimplementedWavelengthRouterServer()
 }
 
-// UnimplementedWavelengthRouterServer must be embedded to have forward compatible implementations.
-type UnimplementedWavelengthRouterServer struct {
-}
+// UnimplementedWavelengthRouterServer should be embedded to have
+// forward compatible implementations.
+//
+// NOTE: this should be embedded by value instead of pointer to avoid a nil
+// pointer dereference when methods are called.
+type UnimplementedWavelengthRouterServer struct{}
 
-func (UnimplementedWavelengthRouterServer) AdjustPSD(*AdjustPSDRequest, WavelengthRouter_AdjustPSDServer) error {
+func (UnimplementedWavelengthRouterServer) AdjustPSD(*AdjustPSDRequest, grpc.ServerStreamingServer[AdjustPSDResponse]) error {
 	return status.Errorf(codes.Unimplemented, "method AdjustPSD not implemented")
 }
 func (UnimplementedWavelengthRouterServer) CancelAdjustPSD(context.Context, *AdjustPSDRequest) (*CancelAdjustPSDResponse, error) {
 	return nil, status.Errorf(codes.Unimplemented, "method CancelAdjustPSD not implemented")
 }
-func (UnimplementedWavelengthRouterServer) AdjustSpectrum(*AdjustSpectrumRequest, WavelengthRouter_AdjustSpectrumServer) error {
+func (UnimplementedWavelengthRouterServer) AdjustSpectrum(*AdjustSpectrumRequest, grpc.ServerStreamingServer[AdjustSpectrumResponse]) error {
 	return status.Errorf(codes.Unimplemented, "method AdjustSpectrum not implemented")
 }
 func (UnimplementedWavelengthRouterServer) CancelAdjustSpectrum(context.Context, *AdjustSpectrumRequest) (*CancelAdjustSpectrumResponse, error) {
 	return nil, status.Errorf(codes.Unimplemented, "method CancelAdjustSpectrum not implemented")
 }
-func (UnimplementedWavelengthRouterServer) mustEmbedUnimplementedWavelengthRouterServer() {}
+func (UnimplementedWavelengthRouterServer) testEmbeddedByValue() {}
 
 // UnsafeWavelengthRouterServer may be embedded to opt out of forward compatibility for this service.
 // Use of this interface is not recommended, as added methods to WavelengthRouterServer will
@@ -161,6 +146,13 @@ type UnsafeWavelengthRouterServer interface {
 }
 
 func RegisterWavelengthRouterServer(s grpc.ServiceRegistrar, srv WavelengthRouterServer) {
+	// If the following call pancis, it indicates UnimplementedWavelengthRouterServer was
+	// embedded by pointer and is nil.  This will cause panics if an
+	// unimplemented method is ever invoked, so we test this at initialization
+	// time to prevent it from happening at runtime later due to I/O.
+	if t, ok := srv.(interface{ testEmbeddedByValue() }); ok {
+		t.testEmbeddedByValue()
+	}
 	s.RegisterService(&WavelengthRouter_ServiceDesc, srv)
 }
 
@@ -169,21 +161,11 @@ func _WavelengthRouter_AdjustPSD_Handler(srv interface{}, stream grpc.ServerStre
 	if err := stream.RecvMsg(m); err != nil {
 		return err
 	}
-	return srv.(WavelengthRouterServer).AdjustPSD(m, &wavelengthRouterAdjustPSDServer{stream})
-}
-
-type WavelengthRouter_AdjustPSDServer interface {
-	Send(*AdjustPSDResponse) error
-	grpc.ServerStream
-}
-
-type wavelengthRouterAdjustPSDServer struct {
-	grpc.ServerStream
+	return srv.(WavelengthRouterServer).AdjustPSD(m, &grpc.GenericServerStream[AdjustPSDRequest, AdjustPSDResponse]{ServerStream: stream})
 }
 
-func (x *wavelengthRouterAdjustPSDServer) Send(m *AdjustPSDResponse) error {
-	return x.ServerStream.SendMsg(m)
-}
+// This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name.
+type WavelengthRouter_AdjustPSDServer = grpc.ServerStreamingServer[AdjustPSDResponse]
 
 func _WavelengthRouter_CancelAdjustPSD_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
 	in := new(AdjustPSDRequest)
@@ -195,7 +177,7 @@ func _WavelengthRouter_CancelAdjustPSD_Handler(srv interface{}, ctx context.Cont
 	}
 	info := &grpc.UnaryServerInfo{
 		Server:     srv,
-		FullMethod: "/gnoi.optical.WavelengthRouter/CancelAdjustPSD",
+		FullMethod: WavelengthRouter_CancelAdjustPSD_FullMethodName,
 	}
 	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
 		return srv.(WavelengthRouterServer).CancelAdjustPSD(ctx, req.(*AdjustPSDRequest))
@@ -208,21 +190,11 @@ func _WavelengthRouter_AdjustSpectrum_Handler(srv interface{}, stream grpc.Serve
 	if err := stream.RecvMsg(m); err != nil {
 		return err
 	}
-	return srv.(WavelengthRouterServer).AdjustSpectrum(m, &wavelengthRouterAdjustSpectrumServer{stream})
-}
-
-type WavelengthRouter_AdjustSpectrumServer interface {
-	Send(*AdjustSpectrumResponse) error
-	grpc.ServerStream
+	return srv.(WavelengthRouterServer).AdjustSpectrum(m, &grpc.GenericServerStream[AdjustSpectrumRequest, AdjustSpectrumResponse]{ServerStream: stream})
 }
 
-type wavelengthRouterAdjustSpectrumServer struct {
-	grpc.ServerStream
-}
-
-func (x *wavelengthRouterAdjustSpectrumServer) Send(m *AdjustSpectrumResponse) error {
-	return x.ServerStream.SendMsg(m)
-}
+// This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name.
+type WavelengthRouter_AdjustSpectrumServer = grpc.ServerStreamingServer[AdjustSpectrumResponse]
 
 func _WavelengthRouter_CancelAdjustSpectrum_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
 	in := new(AdjustSpectrumRequest)
@@ -234,7 +206,7 @@ func _WavelengthRouter_CancelAdjustSpectrum_Handler(srv interface{}, ctx context
 	}
 	info := &grpc.UnaryServerInfo{
 		Server:     srv,
-		FullMethod: "/gnoi.optical.WavelengthRouter/CancelAdjustSpectrum",
+		FullMethod: WavelengthRouter_CancelAdjustSpectrum_FullMethodName,
 	}
 	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
 		return srv.(WavelengthRouterServer).CancelAdjustSpectrum(ctx, req.(*AdjustSpectrumRequest))
@@ -270,5 +242,5 @@ var WavelengthRouter_ServiceDesc = grpc.ServiceDesc{
 			ServerStreams: true,
 		},
 	},
-	Metadata: "wavelength_router/wavelength_router.proto",
+	Metadata: "github.com/openconfig/gnoi/wavelength_router/wavelength_router.proto",
 }