From fc749d07fdda571db3a4747e56715657da920fd9 Mon Sep 17 00:00:00 2001 From: Artsiom Koltun Date: Fri, 29 Sep 2023 11:39:56 +0200 Subject: [PATCH] chore(storage): auto-generated protos Signed-off-by: Artsiom Koltun --- storage/v1alpha1/autogen.md | 90 +- .../v1alpha1/gen/cpp/backend_nvme_tcp.pb.cc | 195 +-- .../v1alpha1/gen/cpp/backend_nvme_tcp.pb.h | 68 - .../v1alpha1/gen/cpp/frontend_nvme_pcie.pb.cc | 753 ++++++---- .../v1alpha1/gen/cpp/frontend_nvme_pcie.pb.h | 320 +++-- storage/v1alpha1/gen/cpp/opicommon.pb.cc | 421 +++++- storage/v1alpha1/gen/cpp/opicommon.pb.h | 382 +++++- .../v1alpha1/gen/go/backend_nvme_tcp.pb.go | 634 ++++----- .../v1alpha1/gen/go/frontend_nvme_pcie.pb.go | 1215 +++++++++-------- storage/v1alpha1/gen/go/opicommon.pb.go | 422 ++++-- .../storage/v1/BackendNvmeTcpProto.java | 153 +-- .../opi_api/storage/v1/FabricsEndpoint.java | 885 ++++++++++++ .../storage/v1/FabricsEndpointOrBuilder.java | 68 + .../storage/v1/FrontendNvmePcieProto.java | 388 +++--- .../opi_api/storage/v1/NvmeAddressFamily.java | 4 +- .../storage/v1/NvmeControllerSpec.java | 809 ++++++++--- .../v1/NvmeControllerSpecOrBuilder.java | 85 +- .../opi_api/storage/v1/NvmeMultipath.java | 2 +- .../opi_api/storage/v1/NvmeTransportType.java | 4 +- .../opi_api/storage/v1/OpiCommonProto.java | 71 +- .../gen/python/backend_nvme_tcp_pb2.py | 14 +- .../gen/python/frontend_nvme_pcie_pb2.py | 134 +- storage/v1alpha1/gen/python/opicommon_pb2.py | 26 +- 23 files changed, 4882 insertions(+), 2261 deletions(-) create mode 100644 storage/v1alpha1/gen/java/opi_api/storage/v1/FabricsEndpoint.java create mode 100644 storage/v1alpha1/gen/java/opi_api/storage/v1/FabricsEndpointOrBuilder.java diff --git a/storage/v1alpha1/autogen.md b/storage/v1alpha1/autogen.md index b1112732..afd2813f 100644 --- a/storage/v1alpha1/autogen.md +++ b/storage/v1alpha1/autogen.md @@ -58,9 +58,7 @@ - [UpdateNvmePathRequest](#opi_api-storage-v1-UpdateNvmePathRequest) - [UpdateNvmeRemoteControllerRequest](#opi_api-storage-v1-UpdateNvmeRemoteControllerRequest) - - [NvmeAddressFamily](#opi_api-storage-v1-NvmeAddressFamily) - [NvmeMultipath](#opi_api-storage-v1-NvmeMultipath) - - [NvmeTransportType](#opi_api-storage-v1-NvmeTransportType) - [NvmeRemoteControllerService](#opi_api-storage-v1-NvmeRemoteControllerService) @@ -177,11 +175,14 @@ - [MiddleendQosVolumeService](#opi_api-storage-v1-MiddleendQosVolumeService) - [opicommon.proto](#opicommon-proto) + - [FabricsEndpoint](#opi_api-storage-v1-FabricsEndpoint) - [PciEndpoint](#opi_api-storage-v1-PciEndpoint) - [QosLimit](#opi_api-storage-v1-QosLimit) - [VolumeStats](#opi_api-storage-v1-VolumeStats) - [EncryptionType](#opi_api-storage-v1-EncryptionType) + - [NvmeAddressFamily](#opi_api-storage-v1-NvmeAddressFamily) + - [NvmeTransportType](#opi_api-storage-v1-NvmeTransportType) - [inventory.proto](#inventory-proto) - [BIOSInfo](#opi_api-inventory-v1-BIOSInfo) @@ -1009,22 +1010,6 @@ Represents a request to update an Nvme Remote Controller. - - -### NvmeAddressFamily -Address family value options - -| Name | Number | Description | -| ---- | ------ | ----------- | -| NVME_ADDRESS_FAMILY_UNSPECIFIED | 0 | Address family is not specified | -| NVME_ADRFAM_IPV4 | 1 | IPv4 address family | -| NVME_ADRFAM_IPV6 | 2 | IPv6 address family | -| NVME_ADRFAM_IB | 3 | InfiniBand address family | -| NVME_ADRFAM_FC | 4 | Fibre channel address family | -| NVME_ADRFAM_INTRA_HOST | 5 | Intra host address family | - - - ### NvmeMultipath @@ -1038,22 +1023,6 @@ Multipath mode value options | NVME_MULTIPATH_MULTIPATH | 3 | Multipath mode where active connections are maintained for every path | - - - -### NvmeTransportType -Transport type value options - -| Name | Number | Description | -| ---- | ------ | ----------- | -| NVME_TRANSPORT_TYPE_UNSPECIFIED | 0 | Transport type is not specified | -| NVME_TRANSPORT_FC | 1 | Fibre channel transport type | -| NVME_TRANSPORT_PCIE | 2 | Pcie transport type | -| NVME_TRANSPORT_RDMA | 3 | RDMA transport type | -| NVME_TRANSPORT_TCP | 4 | TCP transport type | -| NVME_TRANSPORT_CUSTOM | 5 | Custom transport type | - - @@ -1360,7 +1329,9 @@ Represents Nvme Controller configuration | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | nvme_controller_id | [int32](#int32) | optional | subsystem controller id range: 0 to 65535. must not be reused under the same subsystem | -| pcie_id | [PciEndpoint](#opi_api-storage-v1-PciEndpoint) | | xPU's PCI ID for the controller | +| trtype | [NvmeTransportType](#opi_api-storage-v1-NvmeTransportType) | | transport type | +| pcie_id | [PciEndpoint](#opi_api-storage-v1-PciEndpoint) | | Required for pcie transport type to expose emulated Pcie Nvme controllers to Host | +| fabrics_id | [FabricsEndpoint](#opi_api-storage-v1-FabricsEndpoint) | | Required for Nvme over fabrics transport types to create Nvme over Fabrics controllers to expose for example local SSDs over a network | | max_nsq | [int32](#int32) | | maximum number of host submission queues allowed. If not set, the xPU will provide a default. | | max_ncq | [int32](#int32) | | maximum number of host completion queues allowed. If not set, the xPU will provide a default. | | sqes | [int32](#int32) | | maximum number of submission queue entries per submission queue, as a power of 2. default value as per spec is 6 | @@ -2740,6 +2711,23 @@ Middle End (Storage Services) APIs. For example, encryption, compression, raid, + + +### FabricsEndpoint +Represents Fabrics Endpoint + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| traddr | [string](#string) | | ip address for TCP and RDMA | +| trsvcid | [string](#string) | | port for TCP and RDMA | +| adrfam | [NvmeAddressFamily](#opi_api-storage-v1-NvmeAddressFamily) | | address family | + + + + + + ### PciEndpoint @@ -2825,6 +2813,38 @@ AES encryption types | ENCRYPTION_TYPE_AES_XTS_256 | 6 | AES XTS 256 encryption type | + + + +### NvmeAddressFamily +Address family value options + +| Name | Number | Description | +| ---- | ------ | ----------- | +| NVME_ADDRESS_FAMILY_UNSPECIFIED | 0 | Address family is not specified | +| NVME_ADRFAM_IPV4 | 1 | IPv4 address family | +| NVME_ADRFAM_IPV6 | 2 | IPv6 address family | +| NVME_ADRFAM_IB | 3 | InfiniBand address family | +| NVME_ADRFAM_FC | 4 | Fibre channel address family | +| NVME_ADRFAM_INTRA_HOST | 5 | Intra host address family | + + + + + +### NvmeTransportType +Transport type value options + +| Name | Number | Description | +| ---- | ------ | ----------- | +| NVME_TRANSPORT_TYPE_UNSPECIFIED | 0 | Transport type is not specified | +| NVME_TRANSPORT_FC | 1 | Fibre channel transport type | +| NVME_TRANSPORT_PCIE | 2 | Pcie transport type | +| NVME_TRANSPORT_RDMA | 3 | RDMA transport type | +| NVME_TRANSPORT_TCP | 4 | TCP transport type | +| NVME_TRANSPORT_CUSTOM | 5 | Custom transport type | + + diff --git a/storage/v1alpha1/gen/cpp/backend_nvme_tcp.pb.cc b/storage/v1alpha1/gen/cpp/backend_nvme_tcp.pb.cc index 99095537..c0a3baf5 100644 --- a/storage/v1alpha1/gen/cpp/backend_nvme_tcp.pb.cc +++ b/storage/v1alpha1/gen/cpp/backend_nvme_tcp.pb.cc @@ -389,7 +389,7 @@ PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORIT } // namespace storage } // namespace opi_api static ::_pb::Metadata file_level_metadata_backend_5fnvme_5ftcp_2eproto[25]; -static const ::_pb::EnumDescriptor* file_level_enum_descriptors_backend_5fnvme_5ftcp_2eproto[3]; +static const ::_pb::EnumDescriptor* file_level_enum_descriptors_backend_5fnvme_5ftcp_2eproto[1]; static constexpr ::_pb::ServiceDescriptor const** file_level_service_descriptors_backend_5fnvme_5ftcp_2eproto = nullptr; const uint32_t TableStruct_backend_5fnvme_5ftcp_2eproto::offsets[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = { @@ -763,87 +763,78 @@ const char descriptor_table_protodef_backend_5fnvme_5ftcp_2eproto[] PROTOBUF_SEC "thRequest\0221\n\004name\030\001 \001(\tB#\340A\002\372A\035\n\033opi_api" ".storage.v1/NvmePath\"G\n\025StatsNvmePathRes" "ponse\022.\n\005stats\030\001 \001(\0132\037.opi_api.storage.v" - "1.VolumeStats*\264\001\n\021NvmeTransportType\022#\n\037N" - "VME_TRANSPORT_TYPE_UNSPECIFIED\020\000\022\025\n\021NVME" - "_TRANSPORT_FC\020\001\022\027\n\023NVME_TRANSPORT_PCIE\020\002" - "\022\027\n\023NVME_TRANSPORT_RDMA\020\003\022\026\n\022NVME_TRANSP" - "ORT_TCP\020\004\022\031\n\025NVME_TRANSPORT_CUSTOM\020\005*\250\001\n" - "\021NvmeAddressFamily\022#\n\037NVME_ADDRESS_FAMIL" - "Y_UNSPECIFIED\020\000\022\024\n\020NVME_ADRFAM_IPV4\020\001\022\024\n" - "\020NVME_ADRFAM_IPV6\020\002\022\022\n\016NVME_ADRFAM_IB\020\003\022" - "\022\n\016NVME_ADRFAM_FC\020\004\022\032\n\026NVME_ADRFAM_INTRA" - "_HOST\020\005*\206\001\n\rNvmeMultipath\022\036\n\032NVME_MULTIP" - "ATH_UNSPECIFIED\020\000\022\032\n\026NVME_MULTIPATH_DISA" - "BLE\020\001\022\033\n\027NVME_MULTIPATH_FAILOVER\020\002\022\034\n\030NV" - "ME_MULTIPATH_MULTIPATH\020\0032\262\024\n\033NvmeRemoteC" - "ontrollerService\022\353\001\n\032CreateNvmeRemoteCon" - "troller\0225.opi_api.storage.v1.CreateNvmeR" - "emoteControllerRequest\032(.opi_api.storage" - ".v1.NvmeRemoteController\"l\202\323\344\223\0023\"\031/v1/nv" - "meRemoteControllers:\026nvme_remote_control" - "ler\332A0nvme_remote_controller,nvme_remote" - "_controller_id\022\236\001\n\032DeleteNvmeRemoteContr" - "oller\0225.opi_api.storage.v1.DeleteNvmeRem" - "oteControllerRequest\032\026.google.protobuf.E" - "mpty\"1\202\323\344\223\002$*\"/v1/{name=nvmeRemoteContro" - "llers/*}\332A\004name\022\375\001\n\032UpdateNvmeRemoteCont" - "roller\0225.opi_api.storage.v1.UpdateNvmeRe" - "moteControllerRequest\032(.opi_api.storage." - "v1.NvmeRemoteController\"~\202\323\344\223\002S29/v1/{nv" - "me_remote_controller.name=nvmeRemoteCont" - "rollers/*}:\026nvme_remote_controller\332A\"nvm" - "e_remote_controller,update_mask\022\262\001\n\031List" - "NvmeRemoteControllers\0224.opi_api.storage." - "v1.ListNvmeRemoteControllersRequest\0325.op" - "i_api.storage.v1.ListNvmeRemoteControlle" - "rsResponse\"(\202\323\344\223\002\031\022\027/v1/{parent=subsyste" - "ms}\332A\006parent\022\252\001\n\027GetNvmeRemoteController" - "\0222.opi_api.storage.v1.GetNvmeRemoteContr" - "ollerRequest\032(.opi_api.storage.v1.NvmeRe" - "moteController\"1\202\323\344\223\002$\022\"/v1/{name=nvmeRe" - "moteControllers/*}\332A\004name\022\245\001\n\031ResetNvmeR" - "emoteController\0224.opi_api.storage.v1.Res" - "etNvmeRemoteControllerRequest\032\026.google.p" - "rotobuf.Empty\":\202\323\344\223\002-\"(/v1/{name=nvmeRem" - "oteControllers/*}:reset:\001*\332A\004name\022\301\001\n\031St" - "atsNvmeRemoteController\0224.opi_api.storag" - "e.v1.StatsNvmeRemoteControllerRequest\0325." - "opi_api.storage.v1.StatsNvmeRemoteContro" - "llerResponse\"7\202\323\344\223\002*\022(/v1/{name=nvmeRemo" - "teControllers/*}:stats\332A\004name\022\257\001\n\030ListNv" - "meRemoteNamespaces\0223.opi_api.storage.v1." - "ListNvmeRemoteNamespacesRequest\0324.opi_ap" - "i.storage.v1.ListNvmeRemoteNamespacesRes" - "ponse\"(\202\323\344\223\002\031\022\027/v1/{parent=subsystems}\332A" - "\006parent\022\246\001\n\026GetNvmeRemoteNamespace\0221.opi" - "_api.storage.v1.GetNvmeRemoteNamespaceRe" - "quest\032\'.opi_api.storage.v1.NvmeRemoteNam" - "espace\"0\202\323\344\223\002#\022!/v1/{name=nvmeRemoteName" - "spaces/*}\332A\004name\022\224\001\n\016CreateNvmePath\022).op" - "i_api.storage.v1.CreateNvmePathRequest\032\034" - ".opi_api.storage.v1.NvmePath\"9\202\323\344\223\002\032\"\r/v" - "1/nvmePaths:\tnvme_path\332A\026nvme_path,nvme_" - "path_id\022z\n\016DeleteNvmePath\022).opi_api.stor" - "age.v1.DeleteNvmePathRequest\032\026.google.pr" - "otobuf.Empty\"%\202\323\344\223\002\030*\026/v1/{name=nvmePath" - "s/*}\332A\004name\022\246\001\n\016UpdateNvmePath\022).opi_api" - ".storage.v1.UpdateNvmePathRequest\032\034.opi_" - "api.storage.v1.NvmePath\"K\202\323\344\223\002-2 /v1/{nv" - "me_path.name=nvmePaths/*}:\tnvme_path\332A\025n" - "vme_path,update_mask\022\216\001\n\rListNvmePaths\022(" - ".opi_api.storage.v1.ListNvmePathsRequest" - "\032).opi_api.storage.v1.ListNvmePathsRespo" - "nse\"(\202\323\344\223\002\031\022\027/v1/{parent=subsystems}\332A\006p" - "arent\022z\n\013GetNvmePath\022&.opi_api.storage.v" - "1.GetNvmePathRequest\032\034.opi_api.storage.v" - "1.NvmePath\"%\202\323\344\223\002\030\022\026/v1/{name=nvmePaths/" - "*}\332A\004name\022\221\001\n\rStatsNvmePath\022(.opi_api.st" - "orage.v1.StatsNvmePathRequest\032).opi_api." - "storage.v1.StatsNvmePathResponse\"+\202\323\344\223\002\036" - "\022\034/v1/{name=nvmePaths/*}:stats\332A\004nameBb\n" - "\022opi_api.storage.v1B\023BackendNvmeTcpProto" - "P\001Z5github.com/opiproject/opi-api/storag" - "e/v1alpha1/gen/gob\006proto3" + "1.VolumeStats*\206\001\n\rNvmeMultipath\022\036\n\032NVME_" + "MULTIPATH_UNSPECIFIED\020\000\022\032\n\026NVME_MULTIPAT" + "H_DISABLE\020\001\022\033\n\027NVME_MULTIPATH_FAILOVER\020\002" + "\022\034\n\030NVME_MULTIPATH_MULTIPATH\020\0032\262\024\n\033NvmeR" + "emoteControllerService\022\353\001\n\032CreateNvmeRem" + "oteController\0225.opi_api.storage.v1.Creat" + "eNvmeRemoteControllerRequest\032(.opi_api.s" + "torage.v1.NvmeRemoteController\"l\202\323\344\223\0023\"\031" + "/v1/nvmeRemoteControllers:\026nvme_remote_c" + "ontroller\332A0nvme_remote_controller,nvme_" + "remote_controller_id\022\236\001\n\032DeleteNvmeRemot" + "eController\0225.opi_api.storage.v1.DeleteN" + "vmeRemoteControllerRequest\032\026.google.prot" + "obuf.Empty\"1\202\323\344\223\002$*\"/v1/{name=nvmeRemote" + "Controllers/*}\332A\004name\022\375\001\n\032UpdateNvmeRemo" + "teController\0225.opi_api.storage.v1.Update" + "NvmeRemoteControllerRequest\032(.opi_api.st" + "orage.v1.NvmeRemoteController\"~\202\323\344\223\002S29/" + "v1/{nvme_remote_controller.name=nvmeRemo" + "teControllers/*}:\026nvme_remote_controller" + "\332A\"nvme_remote_controller,update_mask\022\262\001" + "\n\031ListNvmeRemoteControllers\0224.opi_api.st" + "orage.v1.ListNvmeRemoteControllersReques" + "t\0325.opi_api.storage.v1.ListNvmeRemoteCon" + "trollersResponse\"(\202\323\344\223\002\031\022\027/v1/{parent=su" + "bsystems}\332A\006parent\022\252\001\n\027GetNvmeRemoteCont" + "roller\0222.opi_api.storage.v1.GetNvmeRemot" + "eControllerRequest\032(.opi_api.storage.v1." + "NvmeRemoteController\"1\202\323\344\223\002$\022\"/v1/{name=" + "nvmeRemoteControllers/*}\332A\004name\022\245\001\n\031Rese" + "tNvmeRemoteController\0224.opi_api.storage." + "v1.ResetNvmeRemoteControllerRequest\032\026.go" + "ogle.protobuf.Empty\":\202\323\344\223\002-\"(/v1/{name=n" + "vmeRemoteControllers/*}:reset:\001*\332A\004name\022" + "\301\001\n\031StatsNvmeRemoteController\0224.opi_api." + "storage.v1.StatsNvmeRemoteControllerRequ" + "est\0325.opi_api.storage.v1.StatsNvmeRemote" + "ControllerResponse\"7\202\323\344\223\002*\022(/v1/{name=nv" + "meRemoteControllers/*}:stats\332A\004name\022\257\001\n\030" + "ListNvmeRemoteNamespaces\0223.opi_api.stora" + "ge.v1.ListNvmeRemoteNamespacesRequest\0324." + "opi_api.storage.v1.ListNvmeRemoteNamespa" + "cesResponse\"(\202\323\344\223\002\031\022\027/v1/{parent=subsyst" + "ems}\332A\006parent\022\246\001\n\026GetNvmeRemoteNamespace" + "\0221.opi_api.storage.v1.GetNvmeRemoteNames" + "paceRequest\032\'.opi_api.storage.v1.NvmeRem" + "oteNamespace\"0\202\323\344\223\002#\022!/v1/{name=nvmeRemo" + "teNamespaces/*}\332A\004name\022\224\001\n\016CreateNvmePat" + "h\022).opi_api.storage.v1.CreateNvmePathReq" + "uest\032\034.opi_api.storage.v1.NvmePath\"9\202\323\344\223" + "\002\032\"\r/v1/nvmePaths:\tnvme_path\332A\026nvme_path" + ",nvme_path_id\022z\n\016DeleteNvmePath\022).opi_ap" + "i.storage.v1.DeleteNvmePathRequest\032\026.goo" + "gle.protobuf.Empty\"%\202\323\344\223\002\030*\026/v1/{name=nv" + "mePaths/*}\332A\004name\022\246\001\n\016UpdateNvmePath\022).o" + "pi_api.storage.v1.UpdateNvmePathRequest\032" + "\034.opi_api.storage.v1.NvmePath\"K\202\323\344\223\002-2 /" + "v1/{nvme_path.name=nvmePaths/*}:\tnvme_pa" + "th\332A\025nvme_path,update_mask\022\216\001\n\rListNvmeP" + "aths\022(.opi_api.storage.v1.ListNvmePathsR" + "equest\032).opi_api.storage.v1.ListNvmePath" + "sResponse\"(\202\323\344\223\002\031\022\027/v1/{parent=subsystem" + "s}\332A\006parent\022z\n\013GetNvmePath\022&.opi_api.sto" + "rage.v1.GetNvmePathRequest\032\034.opi_api.sto" + "rage.v1.NvmePath\"%\202\323\344\223\002\030\022\026/v1/{name=nvme" + "Paths/*}\332A\004name\022\221\001\n\rStatsNvmePath\022(.opi_" + "api.storage.v1.StatsNvmePathRequest\032).op" + "i_api.storage.v1.StatsNvmePathResponse\"+" + "\202\323\344\223\002\036\022\034/v1/{name=nvmePaths/*}:stats\332A\004n" + "ameBb\n\022opi_api.storage.v1B\023BackendNvmeTc" + "pProtoP\001Z5github.com/opiproject/opi-api/" + "storage/v1alpha1/gen/gob\006proto3" ; static const ::_pbi::DescriptorTable* const descriptor_table_backend_5fnvme_5ftcp_2eproto_deps[8] = { &::descriptor_table_google_2fapi_2fannotations_2eproto, @@ -857,7 +848,7 @@ static const ::_pbi::DescriptorTable* const descriptor_table_backend_5fnvme_5ftc }; static ::_pbi::once_flag descriptor_table_backend_5fnvme_5ftcp_2eproto_once; const ::_pbi::DescriptorTable descriptor_table_backend_5fnvme_5ftcp_2eproto = { - false, false, 7225, descriptor_table_protodef_backend_5fnvme_5ftcp_2eproto, + false, false, 6871, descriptor_table_protodef_backend_5fnvme_5ftcp_2eproto, "backend_nvme_tcp.proto", &descriptor_table_backend_5fnvme_5ftcp_2eproto_once, descriptor_table_backend_5fnvme_5ftcp_2eproto_deps, 8, 25, schemas, file_default_instances, TableStruct_backend_5fnvme_5ftcp_2eproto::offsets, @@ -873,45 +864,9 @@ PROTOBUF_ATTRIBUTE_INIT_PRIORITY2 static ::_pbi::AddDescriptorsRunner dynamic_in namespace opi_api { namespace storage { namespace v1 { -const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* NvmeTransportType_descriptor() { - ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_backend_5fnvme_5ftcp_2eproto); - return file_level_enum_descriptors_backend_5fnvme_5ftcp_2eproto[0]; -} -bool NvmeTransportType_IsValid(int value) { - switch (value) { - case 0: - case 1: - case 2: - case 3: - case 4: - case 5: - return true; - default: - return false; - } -} - -const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* NvmeAddressFamily_descriptor() { - ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_backend_5fnvme_5ftcp_2eproto); - return file_level_enum_descriptors_backend_5fnvme_5ftcp_2eproto[1]; -} -bool NvmeAddressFamily_IsValid(int value) { - switch (value) { - case 0: - case 1: - case 2: - case 3: - case 4: - case 5: - return true; - default: - return false; - } -} - const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* NvmeMultipath_descriptor() { ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_backend_5fnvme_5ftcp_2eproto); - return file_level_enum_descriptors_backend_5fnvme_5ftcp_2eproto[2]; + return file_level_enum_descriptors_backend_5fnvme_5ftcp_2eproto[0]; } bool NvmeMultipath_IsValid(int value) { switch (value) { diff --git a/storage/v1alpha1/gen/cpp/backend_nvme_tcp.pb.h b/storage/v1alpha1/gen/cpp/backend_nvme_tcp.pb.h index 8415f216..4d03a324 100644 --- a/storage/v1alpha1/gen/cpp/backend_nvme_tcp.pb.h +++ b/storage/v1alpha1/gen/cpp/backend_nvme_tcp.pb.h @@ -165,64 +165,6 @@ namespace opi_api { namespace storage { namespace v1 { -enum NvmeTransportType : int { - NVME_TRANSPORT_TYPE_UNSPECIFIED = 0, - NVME_TRANSPORT_FC = 1, - NVME_TRANSPORT_PCIE = 2, - NVME_TRANSPORT_RDMA = 3, - NVME_TRANSPORT_TCP = 4, - NVME_TRANSPORT_CUSTOM = 5, - NvmeTransportType_INT_MIN_SENTINEL_DO_NOT_USE_ = std::numeric_limits::min(), - NvmeTransportType_INT_MAX_SENTINEL_DO_NOT_USE_ = std::numeric_limits::max() -}; -bool NvmeTransportType_IsValid(int value); -constexpr NvmeTransportType NvmeTransportType_MIN = NVME_TRANSPORT_TYPE_UNSPECIFIED; -constexpr NvmeTransportType NvmeTransportType_MAX = NVME_TRANSPORT_CUSTOM; -constexpr int NvmeTransportType_ARRAYSIZE = NvmeTransportType_MAX + 1; - -const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* NvmeTransportType_descriptor(); -template -inline const std::string& NvmeTransportType_Name(T enum_t_value) { - static_assert(::std::is_same::value || - ::std::is_integral::value, - "Incorrect type passed to function NvmeTransportType_Name."); - return ::PROTOBUF_NAMESPACE_ID::internal::NameOfEnum( - NvmeTransportType_descriptor(), enum_t_value); -} -inline bool NvmeTransportType_Parse( - ::PROTOBUF_NAMESPACE_ID::ConstStringParam name, NvmeTransportType* value) { - return ::PROTOBUF_NAMESPACE_ID::internal::ParseNamedEnum( - NvmeTransportType_descriptor(), name, value); -} -enum NvmeAddressFamily : int { - NVME_ADDRESS_FAMILY_UNSPECIFIED = 0, - NVME_ADRFAM_IPV4 = 1, - NVME_ADRFAM_IPV6 = 2, - NVME_ADRFAM_IB = 3, - NVME_ADRFAM_FC = 4, - NVME_ADRFAM_INTRA_HOST = 5, - NvmeAddressFamily_INT_MIN_SENTINEL_DO_NOT_USE_ = std::numeric_limits::min(), - NvmeAddressFamily_INT_MAX_SENTINEL_DO_NOT_USE_ = std::numeric_limits::max() -}; -bool NvmeAddressFamily_IsValid(int value); -constexpr NvmeAddressFamily NvmeAddressFamily_MIN = NVME_ADDRESS_FAMILY_UNSPECIFIED; -constexpr NvmeAddressFamily NvmeAddressFamily_MAX = NVME_ADRFAM_INTRA_HOST; -constexpr int NvmeAddressFamily_ARRAYSIZE = NvmeAddressFamily_MAX + 1; - -const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* NvmeAddressFamily_descriptor(); -template -inline const std::string& NvmeAddressFamily_Name(T enum_t_value) { - static_assert(::std::is_same::value || - ::std::is_integral::value, - "Incorrect type passed to function NvmeAddressFamily_Name."); - return ::PROTOBUF_NAMESPACE_ID::internal::NameOfEnum( - NvmeAddressFamily_descriptor(), enum_t_value); -} -inline bool NvmeAddressFamily_Parse( - ::PROTOBUF_NAMESPACE_ID::ConstStringParam name, NvmeAddressFamily* value) { - return ::PROTOBUF_NAMESPACE_ID::internal::ParseNamedEnum( - NvmeAddressFamily_descriptor(), name, value); -} enum NvmeMultipath : int { NVME_MULTIPATH_UNSPECIFIED = 0, NVME_MULTIPATH_DISABLE = 1, @@ -7745,16 +7687,6 @@ inline void StatsNvmePathResponse::set_allocated_stats(::opi_api::storage::v1::V PROTOBUF_NAMESPACE_OPEN -template <> struct is_proto_enum< ::opi_api::storage::v1::NvmeTransportType> : ::std::true_type {}; -template <> -inline const EnumDescriptor* GetEnumDescriptor< ::opi_api::storage::v1::NvmeTransportType>() { - return ::opi_api::storage::v1::NvmeTransportType_descriptor(); -} -template <> struct is_proto_enum< ::opi_api::storage::v1::NvmeAddressFamily> : ::std::true_type {}; -template <> -inline const EnumDescriptor* GetEnumDescriptor< ::opi_api::storage::v1::NvmeAddressFamily>() { - return ::opi_api::storage::v1::NvmeAddressFamily_descriptor(); -} template <> struct is_proto_enum< ::opi_api::storage::v1::NvmeMultipath> : ::std::true_type {}; template <> inline const EnumDescriptor* GetEnumDescriptor< ::opi_api::storage::v1::NvmeMultipath>() { diff --git a/storage/v1alpha1/gen/cpp/frontend_nvme_pcie.pb.cc b/storage/v1alpha1/gen/cpp/frontend_nvme_pcie.pb.cc index 78daf78a..0aef9995 100644 --- a/storage/v1alpha1/gen/cpp/frontend_nvme_pcie.pb.cc +++ b/storage/v1alpha1/gen/cpp/frontend_nvme_pcie.pb.cc @@ -87,15 +87,17 @@ PROTOBUF_CONSTEXPR NvmeControllerSpec::NvmeControllerSpec( ::_pbi::ConstantInitialized): _impl_{ /*decltype(_impl_._has_bits_)*/{} , /*decltype(_impl_._cached_size_)*/{} - , /*decltype(_impl_.pcie_id_)*/nullptr , /*decltype(_impl_.min_limit_)*/nullptr , /*decltype(_impl_.max_limit_)*/nullptr , /*decltype(_impl_.nvme_controller_id_)*/0 + , /*decltype(_impl_.trtype_)*/0 , /*decltype(_impl_.max_nsq_)*/0 , /*decltype(_impl_.max_ncq_)*/0 , /*decltype(_impl_.sqes_)*/0 , /*decltype(_impl_.cqes_)*/0 - , /*decltype(_impl_.max_namespaces_)*/0} {} + , /*decltype(_impl_.max_namespaces_)*/0 + , /*decltype(_impl_.endpoint_)*/{} + , /*decltype(_impl_._oneof_case_)*/{}} {} struct NvmeControllerSpecDefaultTypeInternal { PROTOBUF_CONSTEXPR NvmeControllerSpecDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {} @@ -545,11 +547,13 @@ const uint32_t TableStruct_frontend_5fnvme_5fpcie_2eproto::offsets[] PROTOBUF_SE PROTOBUF_FIELD_OFFSET(::opi_api::storage::v1::NvmeControllerSpec, _impl_._has_bits_), PROTOBUF_FIELD_OFFSET(::opi_api::storage::v1::NvmeControllerSpec, _internal_metadata_), ~0u, // no _extensions_ - ~0u, // no _oneof_case_ + PROTOBUF_FIELD_OFFSET(::opi_api::storage::v1::NvmeControllerSpec, _impl_._oneof_case_[0]), ~0u, // no _weak_field_map_ ~0u, // no _inlined_string_donated_ PROTOBUF_FIELD_OFFSET(::opi_api::storage::v1::NvmeControllerSpec, _impl_.nvme_controller_id_), - PROTOBUF_FIELD_OFFSET(::opi_api::storage::v1::NvmeControllerSpec, _impl_.pcie_id_), + PROTOBUF_FIELD_OFFSET(::opi_api::storage::v1::NvmeControllerSpec, _impl_.trtype_), + ::_pbi::kInvalidFieldOffsetTag, + ::_pbi::kInvalidFieldOffsetTag, PROTOBUF_FIELD_OFFSET(::opi_api::storage::v1::NvmeControllerSpec, _impl_.max_nsq_), PROTOBUF_FIELD_OFFSET(::opi_api::storage::v1::NvmeControllerSpec, _impl_.max_ncq_), PROTOBUF_FIELD_OFFSET(::opi_api::storage::v1::NvmeControllerSpec, _impl_.sqes_), @@ -557,6 +561,7 @@ const uint32_t TableStruct_frontend_5fnvme_5fpcie_2eproto::offsets[] PROTOBUF_SE PROTOBUF_FIELD_OFFSET(::opi_api::storage::v1::NvmeControllerSpec, _impl_.max_namespaces_), PROTOBUF_FIELD_OFFSET(::opi_api::storage::v1::NvmeControllerSpec, _impl_.min_limit_), PROTOBUF_FIELD_OFFSET(::opi_api::storage::v1::NvmeControllerSpec, _impl_.max_limit_), + PROTOBUF_FIELD_OFFSET(::opi_api::storage::v1::NvmeControllerSpec, _impl_.endpoint_), 0, ~0u, ~0u, @@ -566,6 +571,8 @@ const uint32_t TableStruct_frontend_5fnvme_5fpcie_2eproto::offsets[] PROTOBUF_SE ~0u, ~0u, ~0u, + ~0u, + ~0u, ~0u, // no _has_bits_ PROTOBUF_FIELD_OFFSET(::opi_api::storage::v1::NvmeControllerStatus, _internal_metadata_), ~0u, // no _extensions_ @@ -797,35 +804,35 @@ static const ::_pbi::MigrationSchema schemas[] PROTOBUF_SECTION_VARIABLE(protode { 9, -1, -1, sizeof(::opi_api::storage::v1::NvmeSubsystemSpec)}, { 19, -1, -1, sizeof(::opi_api::storage::v1::NvmeSubsystemStatus)}, { 27, -1, -1, sizeof(::opi_api::storage::v1::NvmeController)}, - { 36, 51, -1, sizeof(::opi_api::storage::v1::NvmeControllerSpec)}, - { 60, -1, -1, sizeof(::opi_api::storage::v1::NvmeControllerStatus)}, - { 67, -1, -1, sizeof(::opi_api::storage::v1::NvmeNamespace)}, - { 76, -1, -1, sizeof(::opi_api::storage::v1::NvmeNamespaceSpec)}, - { 87, -1, -1, sizeof(::opi_api::storage::v1::NvmeNamespaceStatus)}, - { 95, -1, -1, sizeof(::opi_api::storage::v1::CreateNvmeSubsystemRequest)}, - { 103, -1, -1, sizeof(::opi_api::storage::v1::DeleteNvmeSubsystemRequest)}, - { 111, -1, -1, sizeof(::opi_api::storage::v1::UpdateNvmeSubsystemRequest)}, - { 120, -1, -1, sizeof(::opi_api::storage::v1::ListNvmeSubsystemsRequest)}, - { 128, -1, -1, sizeof(::opi_api::storage::v1::ListNvmeSubsystemsResponse)}, - { 136, -1, -1, sizeof(::opi_api::storage::v1::GetNvmeSubsystemRequest)}, - { 143, -1, -1, sizeof(::opi_api::storage::v1::StatsNvmeSubsystemRequest)}, - { 150, -1, -1, sizeof(::opi_api::storage::v1::StatsNvmeSubsystemResponse)}, - { 157, -1, -1, sizeof(::opi_api::storage::v1::CreateNvmeControllerRequest)}, - { 166, -1, -1, sizeof(::opi_api::storage::v1::DeleteNvmeControllerRequest)}, - { 174, -1, -1, sizeof(::opi_api::storage::v1::UpdateNvmeControllerRequest)}, - { 183, -1, -1, sizeof(::opi_api::storage::v1::ListNvmeControllersRequest)}, - { 192, -1, -1, sizeof(::opi_api::storage::v1::ListNvmeControllersResponse)}, - { 200, -1, -1, sizeof(::opi_api::storage::v1::GetNvmeControllerRequest)}, - { 207, -1, -1, sizeof(::opi_api::storage::v1::StatsNvmeControllerRequest)}, - { 214, -1, -1, sizeof(::opi_api::storage::v1::StatsNvmeControllerResponse)}, - { 221, -1, -1, sizeof(::opi_api::storage::v1::CreateNvmeNamespaceRequest)}, - { 230, -1, -1, sizeof(::opi_api::storage::v1::DeleteNvmeNamespaceRequest)}, - { 238, -1, -1, sizeof(::opi_api::storage::v1::UpdateNvmeNamespaceRequest)}, - { 247, -1, -1, sizeof(::opi_api::storage::v1::ListNvmeNamespacesRequest)}, - { 256, -1, -1, sizeof(::opi_api::storage::v1::ListNvmeNamespacesResponse)}, - { 264, -1, -1, sizeof(::opi_api::storage::v1::GetNvmeNamespaceRequest)}, - { 271, -1, -1, sizeof(::opi_api::storage::v1::StatsNvmeNamespaceRequest)}, - { 278, -1, -1, sizeof(::opi_api::storage::v1::StatsNvmeNamespaceResponse)}, + { 36, 54, -1, sizeof(::opi_api::storage::v1::NvmeControllerSpec)}, + { 65, -1, -1, sizeof(::opi_api::storage::v1::NvmeControllerStatus)}, + { 72, -1, -1, sizeof(::opi_api::storage::v1::NvmeNamespace)}, + { 81, -1, -1, sizeof(::opi_api::storage::v1::NvmeNamespaceSpec)}, + { 92, -1, -1, sizeof(::opi_api::storage::v1::NvmeNamespaceStatus)}, + { 100, -1, -1, sizeof(::opi_api::storage::v1::CreateNvmeSubsystemRequest)}, + { 108, -1, -1, sizeof(::opi_api::storage::v1::DeleteNvmeSubsystemRequest)}, + { 116, -1, -1, sizeof(::opi_api::storage::v1::UpdateNvmeSubsystemRequest)}, + { 125, -1, -1, sizeof(::opi_api::storage::v1::ListNvmeSubsystemsRequest)}, + { 133, -1, -1, sizeof(::opi_api::storage::v1::ListNvmeSubsystemsResponse)}, + { 141, -1, -1, sizeof(::opi_api::storage::v1::GetNvmeSubsystemRequest)}, + { 148, -1, -1, sizeof(::opi_api::storage::v1::StatsNvmeSubsystemRequest)}, + { 155, -1, -1, sizeof(::opi_api::storage::v1::StatsNvmeSubsystemResponse)}, + { 162, -1, -1, sizeof(::opi_api::storage::v1::CreateNvmeControllerRequest)}, + { 171, -1, -1, sizeof(::opi_api::storage::v1::DeleteNvmeControllerRequest)}, + { 179, -1, -1, sizeof(::opi_api::storage::v1::UpdateNvmeControllerRequest)}, + { 188, -1, -1, sizeof(::opi_api::storage::v1::ListNvmeControllersRequest)}, + { 197, -1, -1, sizeof(::opi_api::storage::v1::ListNvmeControllersResponse)}, + { 205, -1, -1, sizeof(::opi_api::storage::v1::GetNvmeControllerRequest)}, + { 212, -1, -1, sizeof(::opi_api::storage::v1::StatsNvmeControllerRequest)}, + { 219, -1, -1, sizeof(::opi_api::storage::v1::StatsNvmeControllerResponse)}, + { 226, -1, -1, sizeof(::opi_api::storage::v1::CreateNvmeNamespaceRequest)}, + { 235, -1, -1, sizeof(::opi_api::storage::v1::DeleteNvmeNamespaceRequest)}, + { 243, -1, -1, sizeof(::opi_api::storage::v1::UpdateNvmeNamespaceRequest)}, + { 252, -1, -1, sizeof(::opi_api::storage::v1::ListNvmeNamespacesRequest)}, + { 261, -1, -1, sizeof(::opi_api::storage::v1::ListNvmeNamespacesResponse)}, + { 269, -1, -1, sizeof(::opi_api::storage::v1::GetNvmeNamespaceRequest)}, + { 276, -1, -1, sizeof(::opi_api::storage::v1::StatsNvmeNamespaceRequest)}, + { 283, -1, -1, sizeof(::opi_api::storage::v1::StatsNvmeNamespaceResponse)}, }; static const ::_pb::Message* const file_default_instances[] = { @@ -892,197 +899,201 @@ const char descriptor_table_protodef_frontend_5fnvme_5fpcie_2eproto[] PROTOBUF_S "\001\n%storage.opiproject.org/NvmeController" "\0227nvmeSubsystems/{subsystem}/nvmeControl" "lers/{controller}*\017nvmeControllers2\016nvme" - "Controller\"\343\002\n\022NvmeControllerSpec\022$\n\022nvm" - "e_controller_id\030\001 \001(\005B\003\340A\001H\000\210\001\001\0225\n\007pcie_" - "id\030\003 \001(\0132\037.opi_api.storage.v1.PciEndpoin" - "tB\003\340A\002\022\024\n\007max_nsq\030\004 \001(\005B\003\340A\001\022\024\n\007max_ncq\030" - "\005 \001(\005B\003\340A\001\022\021\n\004sqes\030\006 \001(\005B\003\340A\001\022\021\n\004cqes\030\007 " - "\001(\005B\003\340A\001\022\033\n\016max_namespaces\030\010 \001(\005B\003\340A\001\0224\n" - "\tmin_limit\030\t \001(\0132\034.opi_api.storage.v1.Qo" - "sLimitB\003\340A\001\0224\n\tmax_limit\030\n \001(\0132\034.opi_api" - ".storage.v1.QosLimitB\003\340A\001B\025\n\023_nvme_contr" - "oller_id\"+\n\024NvmeControllerStatus\022\023\n\006acti" - "ve\030\001 \001(\010B\003\340A\003\"\303\002\n\rNvmeNamespace\0229\n\004name\030" - "\001 \001(\tB+\340A\003\340A\005\372A\"\n opi_api.storage.v1/Nvm" - "eNamespace\0228\n\004spec\030\002 \001(\0132%.opi_api.stora" - "ge.v1.NvmeNamespaceSpecB\003\340A\002\022<\n\006status\030\003" - " \001(\0132\'.opi_api.storage.v1.NvmeNamespaceS" - "tatusB\003\340A\003:\177\352A|\n$storage.opiproject.org/" - "NvmeNamespace\0225nvmeSubsystems/{subsystem" - "}/nvmeNamespaces/{namespace}*\016nvmeNamesp" - "aces2\rnvmeNamespace\"\235\001\n\021NvmeNamespaceSpe" - "c\022\026\n\thost_nsid\030\002 \001(\005B\003\340A\001\022\022\n\005nguid\030\003 \001(\t" - "B\003\340A\001\022\022\n\005eui64\030\004 \001(\003B\003\340A\001\022*\n\004uuid\030\005 \001(\0132" - "\027.opi_api.common.v1.UuidB\003\340A\001\022\034\n\017volume_" - "name_ref\030\006 \001(\tB\003\340A\002\"\244\001\n\023NvmeNamespaceSta" - "tus\022A\n\tpci_state\030\001 \001(\0162).opi_api.storage" - ".v1.NvmeNamespacePciStateB\003\340A\003\022J\n\016pci_op" - "er_state\030\002 \001(\0162-.opi_api.storage.v1.Nvme" - "NamespacePciOperStateB\003\340A\003\"|\n\032CreateNvme" - "SubsystemRequest\022>\n\016nvme_subsystem\030\001 \001(\013" - "2!.opi_api.storage.v1.NvmeSubsystemB\003\340A\002" - "\022\036\n\021nvme_subsystem_id\030\002 \001(\tB\003\340A\001\"p\n\032Dele" - "teNvmeSubsystemRequest\0226\n\004name\030\001 \001(\tB(\340A" - "\002\372A\"\n opi_api.storage.v1/NvmeSubsystem\022\032" - "\n\rallow_missing\030\002 \001(\010B\003\340A\001\"\256\001\n\032UpdateNvm" - "eSubsystemRequest\022>\n\016nvme_subsystem\030\001 \001(" - "\0132!.opi_api.storage.v1.NvmeSubsystemB\003\340A" - "\002\0224\n\013update_mask\030\002 \001(\0132\032.google.protobuf" - ".FieldMaskB\003\340A\001\022\032\n\rallow_missing\030\003 \001(\010B\003" - "\340A\001\"L\n\031ListNvmeSubsystemsRequest\022\026\n\tpage" - "_size\030\002 \001(\005B\003\340A\001\022\027\n\npage_token\030\003 \001(\tB\003\340A" - "\001\"q\n\032ListNvmeSubsystemsResponse\022:\n\017nvme_" - "subsystems\030\001 \003(\0132!.opi_api.storage.v1.Nv" - "meSubsystem\022\027\n\017next_page_token\030\002 \001(\t\"Q\n\027" - "GetNvmeSubsystemRequest\0226\n\004name\030\001 \001(\tB(\340" - "A\002\372A\"\n opi_api.storage.v1/NvmeSubsystem\"" - "S\n\031StatsNvmeSubsystemRequest\0226\n\004name\030\001 \001" - "(\tB(\340A\002\372A\"\n opi_api.storage.v1/NvmeSubsy" - "stem\"L\n\032StatsNvmeSubsystemResponse\022.\n\005st" - "ats\030\001 \001(\0132\037.opi_api.storage.v1.VolumeSta" - "ts\"\272\001\n\033CreateNvmeControllerRequest\0228\n\006pa" - "rent\030\001 \001(\tB(\340A\002\372A\"\n opi_api.storage.v1/N" - "vmeSubsystem\022@\n\017nvme_controller\030\002 \001(\0132\"." - "opi_api.storage.v1.NvmeControllerB\003\340A\002\022\037" - "\n\022nvme_controller_id\030\003 \001(\tB\003\340A\001\"r\n\033Delet" - "eNvmeControllerRequest\0227\n\004name\030\001 \001(\tB)\340A" - "\002\372A#\n!opi_api.storage.v1/NvmeController\022" - "\032\n\rallow_missing\030\002 \001(\010B\003\340A\001\"\261\001\n\033UpdateNv" - "meControllerRequest\022@\n\017nvme_controller\030\001" - " \001(\0132\".opi_api.storage.v1.NvmeController" - "B\003\340A\002\0224\n\013update_mask\030\002 \001(\0132\032.google.prot" - "obuf.FieldMaskB\003\340A\001\022\032\n\rallow_missing\030\003 \001" - "(\010B\003\340A\001\"\210\001\n\032ListNvmeControllersRequest\0229" - "\n\006parent\030\001 \001(\tB)\340A\002\372A#\n!opi_api.storage." - "v1/NvmeController\022\026\n\tpage_size\030\002 \001(\005B\003\340A" - "\001\022\027\n\npage_token\030\003 \001(\tB\003\340A\001\"t\n\033ListNvmeCo" - "ntrollersResponse\022<\n\020nvme_controllers\030\001 " - "\003(\0132\".opi_api.storage.v1.NvmeController\022" - "\027\n\017next_page_token\030\002 \001(\t\"S\n\030GetNvmeContr" - "ollerRequest\0227\n\004name\030\001 \001(\tB)\340A\002\372A#\n!opi_" - "api.storage.v1/NvmeController\"U\n\032StatsNv" - "meControllerRequest\0227\n\004name\030\001 \001(\tB)\340A\002\372A" - "#\n!opi_api.storage.v1/NvmeController\"M\n\033" - "StatsNvmeControllerResponse\022.\n\005stats\030\001 \001" - "(\0132\037.opi_api.storage.v1.VolumeStats\"\266\001\n\032" - "CreateNvmeNamespaceRequest\0228\n\006parent\030\001 \001" - "(\tB(\340A\002\372A\"\n opi_api.storage.v1/NvmeSubsy" - "stem\022>\n\016nvme_namespace\030\002 \001(\0132!.opi_api.s" - "torage.v1.NvmeNamespaceB\003\340A\002\022\036\n\021nvme_nam" - "espace_id\030\003 \001(\tB\003\340A\001\"p\n\032DeleteNvmeNamesp" - "aceRequest\0226\n\004name\030\001 \001(\tB(\340A\002\372A\"\n opi_ap" - "i.storage.v1/NvmeNamespace\022\032\n\rallow_miss" - "ing\030\002 \001(\010B\003\340A\001\"\256\001\n\032UpdateNvmeNamespaceRe" - "quest\022>\n\016nvme_namespace\030\001 \001(\0132!.opi_api." - "storage.v1.NvmeNamespaceB\003\340A\002\0224\n\013update_" - "mask\030\002 \001(\0132\032.google.protobuf.FieldMaskB\003" - "\340A\001\022\032\n\rallow_missing\030\003 \001(\010B\003\340A\001\"\206\001\n\031List" - "NvmeNamespacesRequest\0228\n\006parent\030\001 \001(\tB(\340" - "A\002\372A\"\n opi_api.storage.v1/NvmeNamespace\022" - "\026\n\tpage_size\030\002 \001(\005B\003\340A\001\022\027\n\npage_token\030\003 " - "\001(\tB\003\340A\001\"q\n\032ListNvmeNamespacesResponse\022:" - "\n\017nvme_namespaces\030\001 \003(\0132!.opi_api.storag" - "e.v1.NvmeNamespace\022\027\n\017next_page_token\030\002 " - "\001(\t\"Q\n\027GetNvmeNamespaceRequest\0226\n\004name\030\001" - " \001(\tB(\340A\002\372A\"\n opi_api.storage.v1/NvmeNam" - "espace\"S\n\031StatsNvmeNamespaceRequest\0226\n\004n" - "ame\030\001 \001(\tB(\340A\002\372A\"\n opi_api.storage.v1/Nv" - "meNamespace\"L\n\032StatsNvmeNamespaceRespons" - "e\022.\n\005stats\030\001 \001(\0132\037.opi_api.storage.v1.Vo" - "lumeStats*\265\001\n\025NvmeNamespacePciState\022(\n$N" - "VME_NAMESPACE_PCI_STATE_UNSPECIFIED\020\000\022%\n" - "!NVME_NAMESPACE_PCI_STATE_DISABLED\020\001\022$\n " - "NVME_NAMESPACE_PCI_STATE_ENABLED\020\002\022%\n!NV" - "ME_NAMESPACE_PCI_STATE_DELETING\020\003*\237\001\n\031Nv" - "meNamespacePciOperState\022-\n)NVME_NAMESPAC" - "E_PCI_OPER_STATE_UNSPECIFIED\020\000\022(\n$NVME_N" - "AMESPACE_PCI_OPER_STATE_ONLINE\020\001\022)\n%NVME" - "_NAMESPACE_PCI_OPER_STATE_OFFLINE\020\0022\331\031\n\023" - "FrontendNvmeService\022\267\001\n\023CreateNvmeSubsys" - "tem\022..opi_api.storage.v1.CreateNvmeSubsy" - "stemRequest\032!.opi_api.storage.v1.NvmeSub" - "system\"M\202\323\344\223\002$\"\022/v1/nvmeSubsystems:\016nvme" - "_subsystem\332A nvme_subsystem,nvme_subsyst" - "em_id\022\211\001\n\023DeleteNvmeSubsystem\022..opi_api." - "storage.v1.DeleteNvmeSubsystemRequest\032\026." - "google.protobuf.Empty\"*\202\323\344\223\002\035*\033/v1/{name" - "=nvmeSubsystems/*}\332A\004name\022\311\001\n\023UpdateNvme" - "Subsystem\022..opi_api.storage.v1.UpdateNvm" - "eSubsystemRequest\032!.opi_api.storage.v1.N" - "vmeSubsystem\"_\202\323\344\223\002<2*/v1/{nvme_subsyste" - "m.name=nvmeSubsystems/*}:\016nvme_subsystem" - "\332A\032nvme_subsystem,update_mask\022\217\001\n\022ListNv" - "meSubsystems\022-.opi_api.storage.v1.ListNv" - "meSubsystemsRequest\032..opi_api.storage.v1" - ".ListNvmeSubsystemsResponse\"\032\202\323\344\223\002\024\022\022/v1" - "/nvmeSubsystems\022\216\001\n\020GetNvmeSubsystem\022+.o" - "pi_api.storage.v1.GetNvmeSubsystemReques" - "t\032!.opi_api.storage.v1.NvmeSubsystem\"*\202\323" - "\344\223\002\035\022\033/v1/{name=nvmeSubsystems/*}\332A\004name" - "\022\245\001\n\022StatsNvmeSubsystem\022-.opi_api.storag" - "e.v1.StatsNvmeSubsystemRequest\032..opi_api" - ".storage.v1.StatsNvmeSubsystemResponse\"0" - "\202\323\344\223\002#\022!/v1/{name=nvmeSubsystems/*}:stat" - "s\332A\004name\022\337\001\n\024CreateNvmeController\022/.opi_" - "api.storage.v1.CreateNvmeControllerReque" - "st\032\".opi_api.storage.v1.NvmeController\"r" - "\202\323\344\223\002@\"-/v1/{parent=nvmeSubsystems/*}/nv" - "meControllers:\017nvme_controller\332A)parent," - "nvme_controller,nvme_controller_id\022\235\001\n\024D" - "eleteNvmeController\022/.opi_api.storage.v1" - ".DeleteNvmeControllerRequest\032\026.google.pr" - "otobuf.Empty\"<\202\323\344\223\002/*-/v1/{name=nvmeSubs" - "ystems/*/nvmeControllers/*}\332A\004name\022\341\001\n\024U" - "pdateNvmeController\022/.opi_api.storage.v1" - ".UpdateNvmeControllerRequest\032\".opi_api.s" - "torage.v1.NvmeController\"t\202\323\344\223\002P2=/v1/{n" - "vme_controller.name=nvmeSubsystems/*/nvm" - "eControllers/*}:\017nvme_controller\332A\033nvme_" - "controller,update_mask\022\266\001\n\023ListNvmeContr" - "ollers\022..opi_api.storage.v1.ListNvmeCont" - "rollersRequest\032/.opi_api.storage.v1.List" - "NvmeControllersResponse\">\202\323\344\223\002/\022-/v1/{pa" - "rent=nvmeSubsystems/*}/nvmeControllers\332A" - "\006parent\022\243\001\n\021GetNvmeController\022,.opi_api." - "storage.v1.GetNvmeControllerRequest\032\".op" - "i_api.storage.v1.NvmeController\"<\202\323\344\223\002/\022" - "-/v1/{name=nvmeSubsystems/*/nvmeControll" - "ers/*}\332A\004name\022\272\001\n\023StatsNvmeController\022.." - "opi_api.storage.v1.StatsNvmeControllerRe" - "quest\032/.opi_api.storage.v1.StatsNvmeCont" - "rollerResponse\"B\202\323\344\223\0025\0223/v1/{name=nvmeSu" - "bsystems/*/nvmeControllers/*}:stats\332A\004na" - "me\022\330\001\n\023CreateNvmeNamespace\022..opi_api.sto" - "rage.v1.CreateNvmeNamespaceRequest\032!.opi" - "_api.storage.v1.NvmeNamespace\"n\202\323\344\223\002>\",/" - "v1/{parent=nvmeSubsystems/*}/nvmeNamespa" - "ces:\016nvme_namespace\332A\'parent,nvme_namesp" - "ace,nvme_namespace_id\022\232\001\n\023DeleteNvmeName" - "space\022..opi_api.storage.v1.DeleteNvmeNam" - "espaceRequest\032\026.google.protobuf.Empty\";\202" - "\323\344\223\002.*,/v1/{name=nvmeSubsystems/*/nvmeNa" - "mespaces/*}\332A\004name\022\332\001\n\023UpdateNvmeNamespa" - "ce\022..opi_api.storage.v1.UpdateNvmeNamesp" - "aceRequest\032!.opi_api.storage.v1.NvmeName" - "space\"p\202\323\344\223\002M2;/v1/{nvme_namespace.name=" - "nvmeSubsystems/*/nvmeNamespaces/*}:\016nvme" - "_namespace\332A\032nvme_namespace,update_mask\022" - "\262\001\n\022ListNvmeNamespaces\022-.opi_api.storage" - ".v1.ListNvmeNamespacesRequest\032..opi_api." - "storage.v1.ListNvmeNamespacesResponse\"=\202" - "\323\344\223\002.\022,/v1/{parent=nvmeSubsystems/*}/nvm" - "eNamespaces\332A\006parent\022\237\001\n\020GetNvmeNamespac" - "e\022+.opi_api.storage.v1.GetNvmeNamespaceR" - "equest\032!.opi_api.storage.v1.NvmeNamespac" - "e\";\202\323\344\223\002.\022,/v1/{name=nvmeSubsystems/*/nv" - "meNamespaces/*}\332A\004name\022\266\001\n\022StatsNvmeName" - "space\022-.opi_api.storage.v1.StatsNvmeName" - "spaceRequest\032..opi_api.storage.v1.StatsN" - "vmeNamespaceResponse\"A\202\323\344\223\0024\0222/v1/{name=" - "nvmeSubsystems/*/nvmeNamespaces/*}:stats" - "\332A\004nameBd\n\022opi_api.storage.v1B\025FrontendN" - "vmePcieProtoP\001Z5github.com/opiproject/op" - "i-api/storage/v1alpha1/gen/gob\006proto3" + "Controller\"\355\003\n\022NvmeControllerSpec\022$\n\022nvm" + "e_controller_id\030\001 \001(\005B\003\340A\001H\001\210\001\001\022:\n\006trtyp" + "e\030\002 \001(\0162%.opi_api.storage.v1.NvmeTranspo" + "rtTypeB\003\340A\002\0227\n\007pcie_id\030\003 \001(\0132\037.opi_api.s" + "torage.v1.PciEndpointB\003\340A\001H\000\022>\n\nfabrics_" + "id\030\004 \001(\0132#.opi_api.storage.v1.FabricsEnd" + "pointB\003\340A\001H\000\022\024\n\007max_nsq\030\005 \001(\005B\003\340A\001\022\024\n\007ma" + "x_ncq\030\006 \001(\005B\003\340A\001\022\021\n\004sqes\030\007 \001(\005B\003\340A\001\022\021\n\004c" + "qes\030\010 \001(\005B\003\340A\001\022\033\n\016max_namespaces\030\t \001(\005B\003" + "\340A\001\0224\n\tmin_limit\030\n \001(\0132\034.opi_api.storage" + ".v1.QosLimitB\003\340A\001\0224\n\tmax_limit\030\013 \001(\0132\034.o" + "pi_api.storage.v1.QosLimitB\003\340A\001B\n\n\010endpo" + "intB\025\n\023_nvme_controller_id\"+\n\024NvmeContro" + "llerStatus\022\023\n\006active\030\001 \001(\010B\003\340A\003\"\303\002\n\rNvme" + "Namespace\0229\n\004name\030\001 \001(\tB+\340A\003\340A\005\372A\"\n opi_" + "api.storage.v1/NvmeNamespace\0228\n\004spec\030\002 \001" + "(\0132%.opi_api.storage.v1.NvmeNamespaceSpe" + "cB\003\340A\002\022<\n\006status\030\003 \001(\0132\'.opi_api.storage" + ".v1.NvmeNamespaceStatusB\003\340A\003:\177\352A|\n$stora" + "ge.opiproject.org/NvmeNamespace\0225nvmeSub" + "systems/{subsystem}/nvmeNamespaces/{name" + "space}*\016nvmeNamespaces2\rnvmeNamespace\"\235\001" + "\n\021NvmeNamespaceSpec\022\026\n\thost_nsid\030\002 \001(\005B\003" + "\340A\001\022\022\n\005nguid\030\003 \001(\tB\003\340A\001\022\022\n\005eui64\030\004 \001(\003B\003" + "\340A\001\022*\n\004uuid\030\005 \001(\0132\027.opi_api.common.v1.Uu" + "idB\003\340A\001\022\034\n\017volume_name_ref\030\006 \001(\tB\003\340A\002\"\244\001" + "\n\023NvmeNamespaceStatus\022A\n\tpci_state\030\001 \001(\016" + "2).opi_api.storage.v1.NvmeNamespacePciSt" + "ateB\003\340A\003\022J\n\016pci_oper_state\030\002 \001(\0162-.opi_a" + "pi.storage.v1.NvmeNamespacePciOperStateB" + "\003\340A\003\"|\n\032CreateNvmeSubsystemRequest\022>\n\016nv" + "me_subsystem\030\001 \001(\0132!.opi_api.storage.v1." + "NvmeSubsystemB\003\340A\002\022\036\n\021nvme_subsystem_id\030" + "\002 \001(\tB\003\340A\001\"p\n\032DeleteNvmeSubsystemRequest" + "\0226\n\004name\030\001 \001(\tB(\340A\002\372A\"\n opi_api.storage." + "v1/NvmeSubsystem\022\032\n\rallow_missing\030\002 \001(\010B" + "\003\340A\001\"\256\001\n\032UpdateNvmeSubsystemRequest\022>\n\016n" + "vme_subsystem\030\001 \001(\0132!.opi_api.storage.v1" + ".NvmeSubsystemB\003\340A\002\0224\n\013update_mask\030\002 \001(\013" + "2\032.google.protobuf.FieldMaskB\003\340A\001\022\032\n\rall" + "ow_missing\030\003 \001(\010B\003\340A\001\"L\n\031ListNvmeSubsyst" + "emsRequest\022\026\n\tpage_size\030\002 \001(\005B\003\340A\001\022\027\n\npa" + "ge_token\030\003 \001(\tB\003\340A\001\"q\n\032ListNvmeSubsystem" + "sResponse\022:\n\017nvme_subsystems\030\001 \003(\0132!.opi" + "_api.storage.v1.NvmeSubsystem\022\027\n\017next_pa" + "ge_token\030\002 \001(\t\"Q\n\027GetNvmeSubsystemReques" + "t\0226\n\004name\030\001 \001(\tB(\340A\002\372A\"\n opi_api.storage" + ".v1/NvmeSubsystem\"S\n\031StatsNvmeSubsystemR" + "equest\0226\n\004name\030\001 \001(\tB(\340A\002\372A\"\n opi_api.st" + "orage.v1/NvmeSubsystem\"L\n\032StatsNvmeSubsy" + "stemResponse\022.\n\005stats\030\001 \001(\0132\037.opi_api.st" + "orage.v1.VolumeStats\"\272\001\n\033CreateNvmeContr" + "ollerRequest\0228\n\006parent\030\001 \001(\tB(\340A\002\372A\"\n op" + "i_api.storage.v1/NvmeSubsystem\022@\n\017nvme_c" + "ontroller\030\002 \001(\0132\".opi_api.storage.v1.Nvm" + "eControllerB\003\340A\002\022\037\n\022nvme_controller_id\030\003" + " \001(\tB\003\340A\001\"r\n\033DeleteNvmeControllerRequest" + "\0227\n\004name\030\001 \001(\tB)\340A\002\372A#\n!opi_api.storage." + "v1/NvmeController\022\032\n\rallow_missing\030\002 \001(\010" + "B\003\340A\001\"\261\001\n\033UpdateNvmeControllerRequest\022@\n" + "\017nvme_controller\030\001 \001(\0132\".opi_api.storage" + ".v1.NvmeControllerB\003\340A\002\0224\n\013update_mask\030\002" + " \001(\0132\032.google.protobuf.FieldMaskB\003\340A\001\022\032\n" + "\rallow_missing\030\003 \001(\010B\003\340A\001\"\210\001\n\032ListNvmeCo" + "ntrollersRequest\0229\n\006parent\030\001 \001(\tB)\340A\002\372A#" + "\n!opi_api.storage.v1/NvmeController\022\026\n\tp" + "age_size\030\002 \001(\005B\003\340A\001\022\027\n\npage_token\030\003 \001(\tB" + "\003\340A\001\"t\n\033ListNvmeControllersResponse\022<\n\020n" + "vme_controllers\030\001 \003(\0132\".opi_api.storage." + "v1.NvmeController\022\027\n\017next_page_token\030\002 \001" + "(\t\"S\n\030GetNvmeControllerRequest\0227\n\004name\030\001" + " \001(\tB)\340A\002\372A#\n!opi_api.storage.v1/NvmeCon" + "troller\"U\n\032StatsNvmeControllerRequest\0227\n" + "\004name\030\001 \001(\tB)\340A\002\372A#\n!opi_api.storage.v1/" + "NvmeController\"M\n\033StatsNvmeControllerRes" + "ponse\022.\n\005stats\030\001 \001(\0132\037.opi_api.storage.v" + "1.VolumeStats\"\266\001\n\032CreateNvmeNamespaceReq" + "uest\0228\n\006parent\030\001 \001(\tB(\340A\002\372A\"\n opi_api.st" + "orage.v1/NvmeSubsystem\022>\n\016nvme_namespace" + "\030\002 \001(\0132!.opi_api.storage.v1.NvmeNamespac" + "eB\003\340A\002\022\036\n\021nvme_namespace_id\030\003 \001(\tB\003\340A\001\"p" + "\n\032DeleteNvmeNamespaceRequest\0226\n\004name\030\001 \001" + "(\tB(\340A\002\372A\"\n opi_api.storage.v1/NvmeNames" + "pace\022\032\n\rallow_missing\030\002 \001(\010B\003\340A\001\"\256\001\n\032Upd" + "ateNvmeNamespaceRequest\022>\n\016nvme_namespac" + "e\030\001 \001(\0132!.opi_api.storage.v1.NvmeNamespa" + "ceB\003\340A\002\0224\n\013update_mask\030\002 \001(\0132\032.google.pr" + "otobuf.FieldMaskB\003\340A\001\022\032\n\rallow_missing\030\003" + " \001(\010B\003\340A\001\"\206\001\n\031ListNvmeNamespacesRequest\022" + "8\n\006parent\030\001 \001(\tB(\340A\002\372A\"\n opi_api.storage" + ".v1/NvmeNamespace\022\026\n\tpage_size\030\002 \001(\005B\003\340A" + "\001\022\027\n\npage_token\030\003 \001(\tB\003\340A\001\"q\n\032ListNvmeNa" + "mespacesResponse\022:\n\017nvme_namespaces\030\001 \003(" + "\0132!.opi_api.storage.v1.NvmeNamespace\022\027\n\017" + "next_page_token\030\002 \001(\t\"Q\n\027GetNvmeNamespac" + "eRequest\0226\n\004name\030\001 \001(\tB(\340A\002\372A\"\n opi_api." + "storage.v1/NvmeNamespace\"S\n\031StatsNvmeNam" + "espaceRequest\0226\n\004name\030\001 \001(\tB(\340A\002\372A\"\n opi" + "_api.storage.v1/NvmeNamespace\"L\n\032StatsNv" + "meNamespaceResponse\022.\n\005stats\030\001 \001(\0132\037.opi" + "_api.storage.v1.VolumeStats*\265\001\n\025NvmeName" + "spacePciState\022(\n$NVME_NAMESPACE_PCI_STAT" + "E_UNSPECIFIED\020\000\022%\n!NVME_NAMESPACE_PCI_ST" + "ATE_DISABLED\020\001\022$\n NVME_NAMESPACE_PCI_STA" + "TE_ENABLED\020\002\022%\n!NVME_NAMESPACE_PCI_STATE" + "_DELETING\020\003*\237\001\n\031NvmeNamespacePciOperStat" + "e\022-\n)NVME_NAMESPACE_PCI_OPER_STATE_UNSPE" + "CIFIED\020\000\022(\n$NVME_NAMESPACE_PCI_OPER_STAT" + "E_ONLINE\020\001\022)\n%NVME_NAMESPACE_PCI_OPER_ST" + "ATE_OFFLINE\020\0022\331\031\n\023FrontendNvmeService\022\267\001" + "\n\023CreateNvmeSubsystem\022..opi_api.storage." + "v1.CreateNvmeSubsystemRequest\032!.opi_api." + "storage.v1.NvmeSubsystem\"M\202\323\344\223\002$\"\022/v1/nv" + "meSubsystems:\016nvme_subsystem\332A nvme_subs" + "ystem,nvme_subsystem_id\022\211\001\n\023DeleteNvmeSu" + "bsystem\022..opi_api.storage.v1.DeleteNvmeS" + "ubsystemRequest\032\026.google.protobuf.Empty\"" + "*\202\323\344\223\002\035*\033/v1/{name=nvmeSubsystems/*}\332A\004n" + "ame\022\311\001\n\023UpdateNvmeSubsystem\022..opi_api.st" + "orage.v1.UpdateNvmeSubsystemRequest\032!.op" + "i_api.storage.v1.NvmeSubsystem\"_\202\323\344\223\002<2*" + "/v1/{nvme_subsystem.name=nvmeSubsystems/" + "*}:\016nvme_subsystem\332A\032nvme_subsystem,upda" + "te_mask\022\217\001\n\022ListNvmeSubsystems\022-.opi_api" + ".storage.v1.ListNvmeSubsystemsRequest\032.." + "opi_api.storage.v1.ListNvmeSubsystemsRes" + "ponse\"\032\202\323\344\223\002\024\022\022/v1/nvmeSubsystems\022\216\001\n\020Ge" + "tNvmeSubsystem\022+.opi_api.storage.v1.GetN" + "vmeSubsystemRequest\032!.opi_api.storage.v1" + ".NvmeSubsystem\"*\202\323\344\223\002\035\022\033/v1/{name=nvmeSu" + "bsystems/*}\332A\004name\022\245\001\n\022StatsNvmeSubsyste" + "m\022-.opi_api.storage.v1.StatsNvmeSubsyste" + "mRequest\032..opi_api.storage.v1.StatsNvmeS" + "ubsystemResponse\"0\202\323\344\223\002#\022!/v1/{name=nvme" + "Subsystems/*}:stats\332A\004name\022\337\001\n\024CreateNvm" + "eController\022/.opi_api.storage.v1.CreateN" + "vmeControllerRequest\032\".opi_api.storage.v" + "1.NvmeController\"r\202\323\344\223\002@\"-/v1/{parent=nv" + "meSubsystems/*}/nvmeControllers:\017nvme_co" + "ntroller\332A)parent,nvme_controller,nvme_c" + "ontroller_id\022\235\001\n\024DeleteNvmeController\022/." + "opi_api.storage.v1.DeleteNvmeControllerR" + "equest\032\026.google.protobuf.Empty\"<\202\323\344\223\002/*-" + "/v1/{name=nvmeSubsystems/*/nvmeControlle" + "rs/*}\332A\004name\022\341\001\n\024UpdateNvmeController\022/." + "opi_api.storage.v1.UpdateNvmeControllerR" + "equest\032\".opi_api.storage.v1.NvmeControll" + "er\"t\202\323\344\223\002P2=/v1/{nvme_controller.name=nv" + "meSubsystems/*/nvmeControllers/*}:\017nvme_" + "controller\332A\033nvme_controller,update_mask" + "\022\266\001\n\023ListNvmeControllers\022..opi_api.stora" + "ge.v1.ListNvmeControllersRequest\032/.opi_a" + "pi.storage.v1.ListNvmeControllersRespons" + "e\">\202\323\344\223\002/\022-/v1/{parent=nvmeSubsystems/*}" + "/nvmeControllers\332A\006parent\022\243\001\n\021GetNvmeCon" + "troller\022,.opi_api.storage.v1.GetNvmeCont" + "rollerRequest\032\".opi_api.storage.v1.NvmeC" + "ontroller\"<\202\323\344\223\002/\022-/v1/{name=nvmeSubsyst" + "ems/*/nvmeControllers/*}\332A\004name\022\272\001\n\023Stat" + "sNvmeController\022..opi_api.storage.v1.Sta" + "tsNvmeControllerRequest\032/.opi_api.storag" + "e.v1.StatsNvmeControllerResponse\"B\202\323\344\223\0025" + "\0223/v1/{name=nvmeSubsystems/*/nvmeControl" + "lers/*}:stats\332A\004name\022\330\001\n\023CreateNvmeNames" + "pace\022..opi_api.storage.v1.CreateNvmeName" + "spaceRequest\032!.opi_api.storage.v1.NvmeNa" + "mespace\"n\202\323\344\223\002>\",/v1/{parent=nvmeSubsyst" + "ems/*}/nvmeNamespaces:\016nvme_namespace\332A\'" + "parent,nvme_namespace,nvme_namespace_id\022" + "\232\001\n\023DeleteNvmeNamespace\022..opi_api.storag" + "e.v1.DeleteNvmeNamespaceRequest\032\026.google" + ".protobuf.Empty\";\202\323\344\223\002.*,/v1/{name=nvmeS" + "ubsystems/*/nvmeNamespaces/*}\332A\004name\022\332\001\n" + "\023UpdateNvmeNamespace\022..opi_api.storage.v" + "1.UpdateNvmeNamespaceRequest\032!.opi_api.s" + "torage.v1.NvmeNamespace\"p\202\323\344\223\002M2;/v1/{nv" + "me_namespace.name=nvmeSubsystems/*/nvmeN" + "amespaces/*}:\016nvme_namespace\332A\032nvme_name" + "space,update_mask\022\262\001\n\022ListNvmeNamespaces" + "\022-.opi_api.storage.v1.ListNvmeNamespaces" + "Request\032..opi_api.storage.v1.ListNvmeNam" + "espacesResponse\"=\202\323\344\223\002.\022,/v1/{parent=nvm" + "eSubsystems/*}/nvmeNamespaces\332A\006parent\022\237" + "\001\n\020GetNvmeNamespace\022+.opi_api.storage.v1" + ".GetNvmeNamespaceRequest\032!.opi_api.stora" + "ge.v1.NvmeNamespace\";\202\323\344\223\002.\022,/v1/{name=n" + "vmeSubsystems/*/nvmeNamespaces/*}\332A\004name" + "\022\266\001\n\022StatsNvmeNamespace\022-.opi_api.storag" + "e.v1.StatsNvmeNamespaceRequest\032..opi_api" + ".storage.v1.StatsNvmeNamespaceResponse\"A" + "\202\323\344\223\0024\0222/v1/{name=nvmeSubsystems/*/nvmeN" + "amespaces/*}:stats\332A\004nameBd\n\022opi_api.sto" + "rage.v1B\025FrontendNvmePcieProtoP\001Z5github" + ".com/opiproject/opi-api/storage/v1alpha1" + "/gen/gob\006proto3" ; static const ::_pbi::DescriptorTable* const descriptor_table_frontend_5fnvme_5fpcie_2eproto_deps[8] = { &::descriptor_table_google_2fapi_2fannotations_2eproto, @@ -1096,7 +1107,7 @@ static const ::_pbi::DescriptorTable* const descriptor_table_frontend_5fnvme_5fp }; static ::_pbi::once_flag descriptor_table_frontend_5fnvme_5fpcie_2eproto_once; const ::_pbi::DescriptorTable descriptor_table_frontend_5fnvme_5fpcie_2eproto = { - false, false, 8717, descriptor_table_protodef_frontend_5fnvme_5fpcie_2eproto, + false, false, 8855, descriptor_table_protodef_frontend_5fnvme_5fpcie_2eproto, "frontend_nvme_pcie.proto", &descriptor_table_frontend_5fnvme_5fpcie_2eproto_once, descriptor_table_frontend_5fnvme_5fpcie_2eproto_deps, 8, 33, schemas, file_default_instances, TableStruct_frontend_5fnvme_5fpcie_2eproto::offsets, @@ -2313,13 +2324,18 @@ class NvmeControllerSpec::_Internal { (*has_bits)[0] |= 1u; } static const ::opi_api::storage::v1::PciEndpoint& pcie_id(const NvmeControllerSpec* msg); + static const ::opi_api::storage::v1::FabricsEndpoint& fabrics_id(const NvmeControllerSpec* msg); static const ::opi_api::storage::v1::QosLimit& min_limit(const NvmeControllerSpec* msg); static const ::opi_api::storage::v1::QosLimit& max_limit(const NvmeControllerSpec* msg); }; const ::opi_api::storage::v1::PciEndpoint& NvmeControllerSpec::_Internal::pcie_id(const NvmeControllerSpec* msg) { - return *msg->_impl_.pcie_id_; + return *msg->_impl_.endpoint_.pcie_id_; +} +const ::opi_api::storage::v1::FabricsEndpoint& +NvmeControllerSpec::_Internal::fabrics_id(const NvmeControllerSpec* msg) { + return *msg->_impl_.endpoint_.fabrics_id_; } const ::opi_api::storage::v1::QosLimit& NvmeControllerSpec::_Internal::min_limit(const NvmeControllerSpec* msg) { @@ -2329,11 +2345,53 @@ const ::opi_api::storage::v1::QosLimit& NvmeControllerSpec::_Internal::max_limit(const NvmeControllerSpec* msg) { return *msg->_impl_.max_limit_; } +void NvmeControllerSpec::set_allocated_pcie_id(::opi_api::storage::v1::PciEndpoint* pcie_id) { + ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation(); + clear_endpoint(); + if (pcie_id) { + ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena = + ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena( + reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(pcie_id)); + if (message_arena != submessage_arena) { + pcie_id = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage( + message_arena, pcie_id, submessage_arena); + } + set_has_pcie_id(); + _impl_.endpoint_.pcie_id_ = pcie_id; + } + // @@protoc_insertion_point(field_set_allocated:opi_api.storage.v1.NvmeControllerSpec.pcie_id) +} void NvmeControllerSpec::clear_pcie_id() { - if (GetArenaForAllocation() == nullptr && _impl_.pcie_id_ != nullptr) { - delete _impl_.pcie_id_; + if (_internal_has_pcie_id()) { + if (GetArenaForAllocation() == nullptr) { + delete _impl_.endpoint_.pcie_id_; + } + clear_has_endpoint(); + } +} +void NvmeControllerSpec::set_allocated_fabrics_id(::opi_api::storage::v1::FabricsEndpoint* fabrics_id) { + ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation(); + clear_endpoint(); + if (fabrics_id) { + ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena = + ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena( + reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(fabrics_id)); + if (message_arena != submessage_arena) { + fabrics_id = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage( + message_arena, fabrics_id, submessage_arena); + } + set_has_fabrics_id(); + _impl_.endpoint_.fabrics_id_ = fabrics_id; + } + // @@protoc_insertion_point(field_set_allocated:opi_api.storage.v1.NvmeControllerSpec.fabrics_id) +} +void NvmeControllerSpec::clear_fabrics_id() { + if (_internal_has_fabrics_id()) { + if (GetArenaForAllocation() == nullptr) { + delete _impl_.endpoint_.fabrics_id_; + } + clear_has_endpoint(); } - _impl_.pcie_id_ = nullptr; } void NvmeControllerSpec::clear_min_limit() { if (GetArenaForAllocation() == nullptr && _impl_.min_limit_ != nullptr) { @@ -2359,20 +2417,19 @@ NvmeControllerSpec::NvmeControllerSpec(const NvmeControllerSpec& from) new (&_impl_) Impl_{ decltype(_impl_._has_bits_){from._impl_._has_bits_} , /*decltype(_impl_._cached_size_)*/{} - , decltype(_impl_.pcie_id_){nullptr} , decltype(_impl_.min_limit_){nullptr} , decltype(_impl_.max_limit_){nullptr} , decltype(_impl_.nvme_controller_id_){} + , decltype(_impl_.trtype_){} , decltype(_impl_.max_nsq_){} , decltype(_impl_.max_ncq_){} , decltype(_impl_.sqes_){} , decltype(_impl_.cqes_){} - , decltype(_impl_.max_namespaces_){}}; + , decltype(_impl_.max_namespaces_){} + , decltype(_impl_.endpoint_){} + , /*decltype(_impl_._oneof_case_)*/{}}; _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); - if (from._internal_has_pcie_id()) { - _this->_impl_.pcie_id_ = new ::opi_api::storage::v1::PciEndpoint(*from._impl_.pcie_id_); - } if (from._internal_has_min_limit()) { _this->_impl_.min_limit_ = new ::opi_api::storage::v1::QosLimit(*from._impl_.min_limit_); } @@ -2382,6 +2439,22 @@ NvmeControllerSpec::NvmeControllerSpec(const NvmeControllerSpec& from) ::memcpy(&_impl_.nvme_controller_id_, &from._impl_.nvme_controller_id_, static_cast(reinterpret_cast(&_impl_.max_namespaces_) - reinterpret_cast(&_impl_.nvme_controller_id_)) + sizeof(_impl_.max_namespaces_)); + clear_has_endpoint(); + switch (from.endpoint_case()) { + case kPcieId: { + _this->_internal_mutable_pcie_id()->::opi_api::storage::v1::PciEndpoint::MergeFrom( + from._internal_pcie_id()); + break; + } + case kFabricsId: { + _this->_internal_mutable_fabrics_id()->::opi_api::storage::v1::FabricsEndpoint::MergeFrom( + from._internal_fabrics_id()); + break; + } + case ENDPOINT_NOT_SET: { + break; + } + } // @@protoc_insertion_point(copy_constructor:opi_api.storage.v1.NvmeControllerSpec) } @@ -2392,16 +2465,19 @@ inline void NvmeControllerSpec::SharedCtor( new (&_impl_) Impl_{ decltype(_impl_._has_bits_){} , /*decltype(_impl_._cached_size_)*/{} - , decltype(_impl_.pcie_id_){nullptr} , decltype(_impl_.min_limit_){nullptr} , decltype(_impl_.max_limit_){nullptr} , decltype(_impl_.nvme_controller_id_){0} + , decltype(_impl_.trtype_){0} , decltype(_impl_.max_nsq_){0} , decltype(_impl_.max_ncq_){0} , decltype(_impl_.sqes_){0} , decltype(_impl_.cqes_){0} , decltype(_impl_.max_namespaces_){0} + , decltype(_impl_.endpoint_){} + , /*decltype(_impl_._oneof_case_)*/{} }; + clear_has_endpoint(); } NvmeControllerSpec::~NvmeControllerSpec() { @@ -2415,25 +2491,46 @@ NvmeControllerSpec::~NvmeControllerSpec() { inline void NvmeControllerSpec::SharedDtor() { GOOGLE_DCHECK(GetArenaForAllocation() == nullptr); - if (this != internal_default_instance()) delete _impl_.pcie_id_; if (this != internal_default_instance()) delete _impl_.min_limit_; if (this != internal_default_instance()) delete _impl_.max_limit_; + if (has_endpoint()) { + clear_endpoint(); + } } void NvmeControllerSpec::SetCachedSize(int size) const { _impl_._cached_size_.Set(size); } +void NvmeControllerSpec::clear_endpoint() { +// @@protoc_insertion_point(one_of_clear_start:opi_api.storage.v1.NvmeControllerSpec) + switch (endpoint_case()) { + case kPcieId: { + if (GetArenaForAllocation() == nullptr) { + delete _impl_.endpoint_.pcie_id_; + } + break; + } + case kFabricsId: { + if (GetArenaForAllocation() == nullptr) { + delete _impl_.endpoint_.fabrics_id_; + } + break; + } + case ENDPOINT_NOT_SET: { + break; + } + } + _impl_._oneof_case_[0] = ENDPOINT_NOT_SET; +} + + void NvmeControllerSpec::Clear() { // @@protoc_insertion_point(message_clear_start:opi_api.storage.v1.NvmeControllerSpec) uint32_t cached_has_bits = 0; // Prevent compiler warnings about cached_has_bits being unused (void) cached_has_bits; - if (GetArenaForAllocation() == nullptr && _impl_.pcie_id_ != nullptr) { - delete _impl_.pcie_id_; - } - _impl_.pcie_id_ = nullptr; if (GetArenaForAllocation() == nullptr && _impl_.min_limit_ != nullptr) { delete _impl_.min_limit_; } @@ -2443,9 +2540,10 @@ void NvmeControllerSpec::Clear() { } _impl_.max_limit_ = nullptr; _impl_.nvme_controller_id_ = 0; - ::memset(&_impl_.max_nsq_, 0, static_cast( + ::memset(&_impl_.trtype_, 0, static_cast( reinterpret_cast(&_impl_.max_namespaces_) - - reinterpret_cast(&_impl_.max_nsq_)) + sizeof(_impl_.max_namespaces_)); + reinterpret_cast(&_impl_.trtype_)) + sizeof(_impl_.max_namespaces_)); + clear_endpoint(); _impl_._has_bits_.Clear(); _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(); } @@ -2466,7 +2564,16 @@ const char* NvmeControllerSpec::_InternalParse(const char* ptr, ::_pbi::ParseCon } else goto handle_unusual; continue; - // .opi_api.storage.v1.PciEndpoint pcie_id = 3 [(.google.api.field_behavior) = REQUIRED]; + // .opi_api.storage.v1.NvmeTransportType trtype = 2 [(.google.api.field_behavior) = REQUIRED]; + case 2: + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 16)) { + uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr); + CHK_(ptr); + _internal_set_trtype(static_cast<::opi_api::storage::v1::NvmeTransportType>(val)); + } else + goto handle_unusual; + continue; + // .opi_api.storage.v1.PciEndpoint pcie_id = 3 [(.google.api.field_behavior) = OPTIONAL]; case 3: if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 26)) { ptr = ctx->ParseMessage(_internal_mutable_pcie_id(), ptr); @@ -2474,57 +2581,65 @@ const char* NvmeControllerSpec::_InternalParse(const char* ptr, ::_pbi::ParseCon } else goto handle_unusual; continue; - // int32 max_nsq = 4 [(.google.api.field_behavior) = OPTIONAL]; + // .opi_api.storage.v1.FabricsEndpoint fabrics_id = 4 [(.google.api.field_behavior) = OPTIONAL]; case 4: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 32)) { - _impl_.max_nsq_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr); + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 34)) { + ptr = ctx->ParseMessage(_internal_mutable_fabrics_id(), ptr); CHK_(ptr); } else goto handle_unusual; continue; - // int32 max_ncq = 5 [(.google.api.field_behavior) = OPTIONAL]; + // int32 max_nsq = 5 [(.google.api.field_behavior) = OPTIONAL]; case 5: if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 40)) { - _impl_.max_ncq_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr); + _impl_.max_nsq_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr); CHK_(ptr); } else goto handle_unusual; continue; - // int32 sqes = 6 [(.google.api.field_behavior) = OPTIONAL]; + // int32 max_ncq = 6 [(.google.api.field_behavior) = OPTIONAL]; case 6: if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 48)) { - _impl_.sqes_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr); + _impl_.max_ncq_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr); CHK_(ptr); } else goto handle_unusual; continue; - // int32 cqes = 7 [(.google.api.field_behavior) = OPTIONAL]; + // int32 sqes = 7 [(.google.api.field_behavior) = OPTIONAL]; case 7: if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 56)) { - _impl_.cqes_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr); + _impl_.sqes_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr); CHK_(ptr); } else goto handle_unusual; continue; - // int32 max_namespaces = 8 [(.google.api.field_behavior) = OPTIONAL]; + // int32 cqes = 8 [(.google.api.field_behavior) = OPTIONAL]; case 8: if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 64)) { - _impl_.max_namespaces_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr); + _impl_.cqes_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr); CHK_(ptr); } else goto handle_unusual; continue; - // .opi_api.storage.v1.QosLimit min_limit = 9 [(.google.api.field_behavior) = OPTIONAL]; + // int32 max_namespaces = 9 [(.google.api.field_behavior) = OPTIONAL]; case 9: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 74)) { - ptr = ctx->ParseMessage(_internal_mutable_min_limit(), ptr); + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 72)) { + _impl_.max_namespaces_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr); CHK_(ptr); } else goto handle_unusual; continue; - // .opi_api.storage.v1.QosLimit max_limit = 10 [(.google.api.field_behavior) = OPTIONAL]; + // .opi_api.storage.v1.QosLimit min_limit = 10 [(.google.api.field_behavior) = OPTIONAL]; case 10: if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 82)) { + ptr = ctx->ParseMessage(_internal_mutable_min_limit(), ptr); + CHK_(ptr); + } else + goto handle_unusual; + continue; + // .opi_api.storage.v1.QosLimit max_limit = 11 [(.google.api.field_behavior) = OPTIONAL]; + case 11: + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 90)) { ptr = ctx->ParseMessage(_internal_mutable_max_limit(), ptr); CHK_(ptr); } else @@ -2566,54 +2681,68 @@ uint8_t* NvmeControllerSpec::_InternalSerialize( target = ::_pbi::WireFormatLite::WriteInt32ToArray(1, this->_internal_nvme_controller_id(), target); } - // .opi_api.storage.v1.PciEndpoint pcie_id = 3 [(.google.api.field_behavior) = REQUIRED]; - if (this->_internal_has_pcie_id()) { + // .opi_api.storage.v1.NvmeTransportType trtype = 2 [(.google.api.field_behavior) = REQUIRED]; + if (this->_internal_trtype() != 0) { + target = stream->EnsureSpace(target); + target = ::_pbi::WireFormatLite::WriteEnumToArray( + 2, this->_internal_trtype(), target); + } + + // .opi_api.storage.v1.PciEndpoint pcie_id = 3 [(.google.api.field_behavior) = OPTIONAL]; + if (_internal_has_pcie_id()) { target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite:: InternalWriteMessage(3, _Internal::pcie_id(this), _Internal::pcie_id(this).GetCachedSize(), target, stream); } - // int32 max_nsq = 4 [(.google.api.field_behavior) = OPTIONAL]; + // .opi_api.storage.v1.FabricsEndpoint fabrics_id = 4 [(.google.api.field_behavior) = OPTIONAL]; + if (_internal_has_fabrics_id()) { + target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite:: + InternalWriteMessage(4, _Internal::fabrics_id(this), + _Internal::fabrics_id(this).GetCachedSize(), target, stream); + } + + // int32 max_nsq = 5 [(.google.api.field_behavior) = OPTIONAL]; if (this->_internal_max_nsq() != 0) { target = stream->EnsureSpace(target); - target = ::_pbi::WireFormatLite::WriteInt32ToArray(4, this->_internal_max_nsq(), target); + target = ::_pbi::WireFormatLite::WriteInt32ToArray(5, this->_internal_max_nsq(), target); } - // int32 max_ncq = 5 [(.google.api.field_behavior) = OPTIONAL]; + // int32 max_ncq = 6 [(.google.api.field_behavior) = OPTIONAL]; if (this->_internal_max_ncq() != 0) { target = stream->EnsureSpace(target); - target = ::_pbi::WireFormatLite::WriteInt32ToArray(5, this->_internal_max_ncq(), target); + target = ::_pbi::WireFormatLite::WriteInt32ToArray(6, this->_internal_max_ncq(), target); } - // int32 sqes = 6 [(.google.api.field_behavior) = OPTIONAL]; + // int32 sqes = 7 [(.google.api.field_behavior) = OPTIONAL]; if (this->_internal_sqes() != 0) { target = stream->EnsureSpace(target); - target = ::_pbi::WireFormatLite::WriteInt32ToArray(6, this->_internal_sqes(), target); + target = ::_pbi::WireFormatLite::WriteInt32ToArray(7, this->_internal_sqes(), target); } - // int32 cqes = 7 [(.google.api.field_behavior) = OPTIONAL]; + // int32 cqes = 8 [(.google.api.field_behavior) = OPTIONAL]; if (this->_internal_cqes() != 0) { target = stream->EnsureSpace(target); - target = ::_pbi::WireFormatLite::WriteInt32ToArray(7, this->_internal_cqes(), target); + target = ::_pbi::WireFormatLite::WriteInt32ToArray(8, this->_internal_cqes(), target); } - // int32 max_namespaces = 8 [(.google.api.field_behavior) = OPTIONAL]; + // int32 max_namespaces = 9 [(.google.api.field_behavior) = OPTIONAL]; if (this->_internal_max_namespaces() != 0) { target = stream->EnsureSpace(target); - target = ::_pbi::WireFormatLite::WriteInt32ToArray(8, this->_internal_max_namespaces(), target); + target = ::_pbi::WireFormatLite::WriteInt32ToArray(9, this->_internal_max_namespaces(), target); } - // .opi_api.storage.v1.QosLimit min_limit = 9 [(.google.api.field_behavior) = OPTIONAL]; + // .opi_api.storage.v1.QosLimit min_limit = 10 [(.google.api.field_behavior) = OPTIONAL]; if (this->_internal_has_min_limit()) { target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite:: - InternalWriteMessage(9, _Internal::min_limit(this), + InternalWriteMessage(10, _Internal::min_limit(this), _Internal::min_limit(this).GetCachedSize(), target, stream); } - // .opi_api.storage.v1.QosLimit max_limit = 10 [(.google.api.field_behavior) = OPTIONAL]; + // .opi_api.storage.v1.QosLimit max_limit = 11 [(.google.api.field_behavior) = OPTIONAL]; if (this->_internal_has_max_limit()) { target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite:: - InternalWriteMessage(10, _Internal::max_limit(this), + InternalWriteMessage(11, _Internal::max_limit(this), _Internal::max_limit(this).GetCachedSize(), target, stream); } @@ -2633,21 +2762,14 @@ size_t NvmeControllerSpec::ByteSizeLong() const { // Prevent compiler warnings about cached_has_bits being unused (void) cached_has_bits; - // .opi_api.storage.v1.PciEndpoint pcie_id = 3 [(.google.api.field_behavior) = REQUIRED]; - if (this->_internal_has_pcie_id()) { - total_size += 1 + - ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize( - *_impl_.pcie_id_); - } - - // .opi_api.storage.v1.QosLimit min_limit = 9 [(.google.api.field_behavior) = OPTIONAL]; + // .opi_api.storage.v1.QosLimit min_limit = 10 [(.google.api.field_behavior) = OPTIONAL]; if (this->_internal_has_min_limit()) { total_size += 1 + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize( *_impl_.min_limit_); } - // .opi_api.storage.v1.QosLimit max_limit = 10 [(.google.api.field_behavior) = OPTIONAL]; + // .opi_api.storage.v1.QosLimit max_limit = 11 [(.google.api.field_behavior) = OPTIONAL]; if (this->_internal_has_max_limit()) { total_size += 1 + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize( @@ -2660,31 +2782,56 @@ size_t NvmeControllerSpec::ByteSizeLong() const { total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(this->_internal_nvme_controller_id()); } - // int32 max_nsq = 4 [(.google.api.field_behavior) = OPTIONAL]; + // .opi_api.storage.v1.NvmeTransportType trtype = 2 [(.google.api.field_behavior) = REQUIRED]; + if (this->_internal_trtype() != 0) { + total_size += 1 + + ::_pbi::WireFormatLite::EnumSize(this->_internal_trtype()); + } + + // int32 max_nsq = 5 [(.google.api.field_behavior) = OPTIONAL]; if (this->_internal_max_nsq() != 0) { total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(this->_internal_max_nsq()); } - // int32 max_ncq = 5 [(.google.api.field_behavior) = OPTIONAL]; + // int32 max_ncq = 6 [(.google.api.field_behavior) = OPTIONAL]; if (this->_internal_max_ncq() != 0) { total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(this->_internal_max_ncq()); } - // int32 sqes = 6 [(.google.api.field_behavior) = OPTIONAL]; + // int32 sqes = 7 [(.google.api.field_behavior) = OPTIONAL]; if (this->_internal_sqes() != 0) { total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(this->_internal_sqes()); } - // int32 cqes = 7 [(.google.api.field_behavior) = OPTIONAL]; + // int32 cqes = 8 [(.google.api.field_behavior) = OPTIONAL]; if (this->_internal_cqes() != 0) { total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(this->_internal_cqes()); } - // int32 max_namespaces = 8 [(.google.api.field_behavior) = OPTIONAL]; + // int32 max_namespaces = 9 [(.google.api.field_behavior) = OPTIONAL]; if (this->_internal_max_namespaces() != 0) { total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(this->_internal_max_namespaces()); } + switch (endpoint_case()) { + // .opi_api.storage.v1.PciEndpoint pcie_id = 3 [(.google.api.field_behavior) = OPTIONAL]; + case kPcieId: { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize( + *_impl_.endpoint_.pcie_id_); + break; + } + // .opi_api.storage.v1.FabricsEndpoint fabrics_id = 4 [(.google.api.field_behavior) = OPTIONAL]; + case kFabricsId: { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize( + *_impl_.endpoint_.fabrics_id_); + break; + } + case ENDPOINT_NOT_SET: { + break; + } + } return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_); } @@ -2703,10 +2850,6 @@ void NvmeControllerSpec::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, con uint32_t cached_has_bits = 0; (void) cached_has_bits; - if (from._internal_has_pcie_id()) { - _this->_internal_mutable_pcie_id()->::opi_api::storage::v1::PciEndpoint::MergeFrom( - from._internal_pcie_id()); - } if (from._internal_has_min_limit()) { _this->_internal_mutable_min_limit()->::opi_api::storage::v1::QosLimit::MergeFrom( from._internal_min_limit()); @@ -2718,6 +2861,9 @@ void NvmeControllerSpec::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, con if (from._internal_has_nvme_controller_id()) { _this->_internal_set_nvme_controller_id(from._internal_nvme_controller_id()); } + if (from._internal_trtype() != 0) { + _this->_internal_set_trtype(from._internal_trtype()); + } if (from._internal_max_nsq() != 0) { _this->_internal_set_max_nsq(from._internal_max_nsq()); } @@ -2733,6 +2879,21 @@ void NvmeControllerSpec::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, con if (from._internal_max_namespaces() != 0) { _this->_internal_set_max_namespaces(from._internal_max_namespaces()); } + switch (from.endpoint_case()) { + case kPcieId: { + _this->_internal_mutable_pcie_id()->::opi_api::storage::v1::PciEndpoint::MergeFrom( + from._internal_pcie_id()); + break; + } + case kFabricsId: { + _this->_internal_mutable_fabrics_id()->::opi_api::storage::v1::FabricsEndpoint::MergeFrom( + from._internal_fabrics_id()); + break; + } + case ENDPOINT_NOT_SET: { + break; + } + } _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); } @@ -2754,9 +2915,11 @@ void NvmeControllerSpec::InternalSwap(NvmeControllerSpec* other) { ::PROTOBUF_NAMESPACE_ID::internal::memswap< PROTOBUF_FIELD_OFFSET(NvmeControllerSpec, _impl_.max_namespaces_) + sizeof(NvmeControllerSpec::_impl_.max_namespaces_) - - PROTOBUF_FIELD_OFFSET(NvmeControllerSpec, _impl_.pcie_id_)>( - reinterpret_cast(&_impl_.pcie_id_), - reinterpret_cast(&other->_impl_.pcie_id_)); + - PROTOBUF_FIELD_OFFSET(NvmeControllerSpec, _impl_.min_limit_)>( + reinterpret_cast(&_impl_.min_limit_), + reinterpret_cast(&other->_impl_.min_limit_)); + swap(_impl_.endpoint_, other->_impl_.endpoint_); + swap(_impl_._oneof_case_[0], other->_impl_._oneof_case_[0]); } ::PROTOBUF_NAMESPACE_ID::Metadata NvmeControllerSpec::GetMetadata() const { diff --git a/storage/v1alpha1/gen/cpp/frontend_nvme_pcie.pb.h b/storage/v1alpha1/gen/cpp/frontend_nvme_pcie.pb.h index 3464faa5..78cb0658 100644 --- a/storage/v1alpha1/gen/cpp/frontend_nvme_pcie.pb.h +++ b/storage/v1alpha1/gen/cpp/frontend_nvme_pcie.pb.h @@ -1046,6 +1046,12 @@ class NvmeControllerSpec final : static const NvmeControllerSpec& default_instance() { return *internal_default_instance(); } + enum EndpointCase { + kPcieId = 3, + kFabricsId = 4, + ENDPOINT_NOT_SET = 0, + }; + static inline const NvmeControllerSpec* internal_default_instance() { return reinterpret_cast( &_NvmeControllerSpec_default_instance_); @@ -1124,35 +1130,19 @@ class NvmeControllerSpec final : // accessors ------------------------------------------------------- enum : int { - kPcieIdFieldNumber = 3, - kMinLimitFieldNumber = 9, - kMaxLimitFieldNumber = 10, + kMinLimitFieldNumber = 10, + kMaxLimitFieldNumber = 11, kNvmeControllerIdFieldNumber = 1, - kMaxNsqFieldNumber = 4, - kMaxNcqFieldNumber = 5, - kSqesFieldNumber = 6, - kCqesFieldNumber = 7, - kMaxNamespacesFieldNumber = 8, + kTrtypeFieldNumber = 2, + kMaxNsqFieldNumber = 5, + kMaxNcqFieldNumber = 6, + kSqesFieldNumber = 7, + kCqesFieldNumber = 8, + kMaxNamespacesFieldNumber = 9, + kPcieIdFieldNumber = 3, + kFabricsIdFieldNumber = 4, }; - // .opi_api.storage.v1.PciEndpoint pcie_id = 3 [(.google.api.field_behavior) = REQUIRED]; - bool has_pcie_id() const; - private: - bool _internal_has_pcie_id() const; - public: - void clear_pcie_id(); - const ::opi_api::storage::v1::PciEndpoint& pcie_id() const; - PROTOBUF_NODISCARD ::opi_api::storage::v1::PciEndpoint* release_pcie_id(); - ::opi_api::storage::v1::PciEndpoint* mutable_pcie_id(); - void set_allocated_pcie_id(::opi_api::storage::v1::PciEndpoint* pcie_id); - private: - const ::opi_api::storage::v1::PciEndpoint& _internal_pcie_id() const; - ::opi_api::storage::v1::PciEndpoint* _internal_mutable_pcie_id(); - public: - void unsafe_arena_set_allocated_pcie_id( - ::opi_api::storage::v1::PciEndpoint* pcie_id); - ::opi_api::storage::v1::PciEndpoint* unsafe_arena_release_pcie_id(); - - // .opi_api.storage.v1.QosLimit min_limit = 9 [(.google.api.field_behavior) = OPTIONAL]; + // .opi_api.storage.v1.QosLimit min_limit = 10 [(.google.api.field_behavior) = OPTIONAL]; bool has_min_limit() const; private: bool _internal_has_min_limit() const; @@ -1170,7 +1160,7 @@ class NvmeControllerSpec final : ::opi_api::storage::v1::QosLimit* min_limit); ::opi_api::storage::v1::QosLimit* unsafe_arena_release_min_limit(); - // .opi_api.storage.v1.QosLimit max_limit = 10 [(.google.api.field_behavior) = OPTIONAL]; + // .opi_api.storage.v1.QosLimit max_limit = 11 [(.google.api.field_behavior) = OPTIONAL]; bool has_max_limit() const; private: bool _internal_has_max_limit() const; @@ -1201,7 +1191,16 @@ class NvmeControllerSpec final : void _internal_set_nvme_controller_id(int32_t value); public: - // int32 max_nsq = 4 [(.google.api.field_behavior) = OPTIONAL]; + // .opi_api.storage.v1.NvmeTransportType trtype = 2 [(.google.api.field_behavior) = REQUIRED]; + void clear_trtype(); + ::opi_api::storage::v1::NvmeTransportType trtype() const; + void set_trtype(::opi_api::storage::v1::NvmeTransportType value); + private: + ::opi_api::storage::v1::NvmeTransportType _internal_trtype() const; + void _internal_set_trtype(::opi_api::storage::v1::NvmeTransportType value); + public: + + // int32 max_nsq = 5 [(.google.api.field_behavior) = OPTIONAL]; void clear_max_nsq(); int32_t max_nsq() const; void set_max_nsq(int32_t value); @@ -1210,7 +1209,7 @@ class NvmeControllerSpec final : void _internal_set_max_nsq(int32_t value); public: - // int32 max_ncq = 5 [(.google.api.field_behavior) = OPTIONAL]; + // int32 max_ncq = 6 [(.google.api.field_behavior) = OPTIONAL]; void clear_max_ncq(); int32_t max_ncq() const; void set_max_ncq(int32_t value); @@ -1219,7 +1218,7 @@ class NvmeControllerSpec final : void _internal_set_max_ncq(int32_t value); public: - // int32 sqes = 6 [(.google.api.field_behavior) = OPTIONAL]; + // int32 sqes = 7 [(.google.api.field_behavior) = OPTIONAL]; void clear_sqes(); int32_t sqes() const; void set_sqes(int32_t value); @@ -1228,7 +1227,7 @@ class NvmeControllerSpec final : void _internal_set_sqes(int32_t value); public: - // int32 cqes = 7 [(.google.api.field_behavior) = OPTIONAL]; + // int32 cqes = 8 [(.google.api.field_behavior) = OPTIONAL]; void clear_cqes(); int32_t cqes() const; void set_cqes(int32_t value); @@ -1237,7 +1236,7 @@ class NvmeControllerSpec final : void _internal_set_cqes(int32_t value); public: - // int32 max_namespaces = 8 [(.google.api.field_behavior) = OPTIONAL]; + // int32 max_namespaces = 9 [(.google.api.field_behavior) = OPTIONAL]; void clear_max_namespaces(); int32_t max_namespaces() const; void set_max_namespaces(int32_t value); @@ -1246,9 +1245,52 @@ class NvmeControllerSpec final : void _internal_set_max_namespaces(int32_t value); public: + // .opi_api.storage.v1.PciEndpoint pcie_id = 3 [(.google.api.field_behavior) = OPTIONAL]; + bool has_pcie_id() const; + private: + bool _internal_has_pcie_id() const; + public: + void clear_pcie_id(); + const ::opi_api::storage::v1::PciEndpoint& pcie_id() const; + PROTOBUF_NODISCARD ::opi_api::storage::v1::PciEndpoint* release_pcie_id(); + ::opi_api::storage::v1::PciEndpoint* mutable_pcie_id(); + void set_allocated_pcie_id(::opi_api::storage::v1::PciEndpoint* pcie_id); + private: + const ::opi_api::storage::v1::PciEndpoint& _internal_pcie_id() const; + ::opi_api::storage::v1::PciEndpoint* _internal_mutable_pcie_id(); + public: + void unsafe_arena_set_allocated_pcie_id( + ::opi_api::storage::v1::PciEndpoint* pcie_id); + ::opi_api::storage::v1::PciEndpoint* unsafe_arena_release_pcie_id(); + + // .opi_api.storage.v1.FabricsEndpoint fabrics_id = 4 [(.google.api.field_behavior) = OPTIONAL]; + bool has_fabrics_id() const; + private: + bool _internal_has_fabrics_id() const; + public: + void clear_fabrics_id(); + const ::opi_api::storage::v1::FabricsEndpoint& fabrics_id() const; + PROTOBUF_NODISCARD ::opi_api::storage::v1::FabricsEndpoint* release_fabrics_id(); + ::opi_api::storage::v1::FabricsEndpoint* mutable_fabrics_id(); + void set_allocated_fabrics_id(::opi_api::storage::v1::FabricsEndpoint* fabrics_id); + private: + const ::opi_api::storage::v1::FabricsEndpoint& _internal_fabrics_id() const; + ::opi_api::storage::v1::FabricsEndpoint* _internal_mutable_fabrics_id(); + public: + void unsafe_arena_set_allocated_fabrics_id( + ::opi_api::storage::v1::FabricsEndpoint* fabrics_id); + ::opi_api::storage::v1::FabricsEndpoint* unsafe_arena_release_fabrics_id(); + + void clear_endpoint(); + EndpointCase endpoint_case() const; // @@protoc_insertion_point(class_scope:opi_api.storage.v1.NvmeControllerSpec) private: class _Internal; + void set_has_pcie_id(); + void set_has_fabrics_id(); + + inline bool has_endpoint() const; + inline void clear_has_endpoint(); template friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper; typedef void InternalArenaConstructable_; @@ -1256,15 +1298,23 @@ class NvmeControllerSpec final : struct Impl_ { ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_; mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_; - ::opi_api::storage::v1::PciEndpoint* pcie_id_; ::opi_api::storage::v1::QosLimit* min_limit_; ::opi_api::storage::v1::QosLimit* max_limit_; int32_t nvme_controller_id_; + int trtype_; int32_t max_nsq_; int32_t max_ncq_; int32_t sqes_; int32_t cqes_; int32_t max_namespaces_; + union EndpointUnion { + constexpr EndpointUnion() : _constinit_{} {} + ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized _constinit_; + ::opi_api::storage::v1::PciEndpoint* pcie_id_; + ::opi_api::storage::v1::FabricsEndpoint* fabrics_id_; + } endpoint_; + uint32_t _oneof_case_[1]; + }; union { Impl_ _impl_; }; friend struct ::TableStruct_frontend_5fnvme_5fpcie_2eproto; @@ -6804,92 +6854,159 @@ inline void NvmeControllerSpec::set_nvme_controller_id(int32_t value) { // @@protoc_insertion_point(field_set:opi_api.storage.v1.NvmeControllerSpec.nvme_controller_id) } -// .opi_api.storage.v1.PciEndpoint pcie_id = 3 [(.google.api.field_behavior) = REQUIRED]; +// .opi_api.storage.v1.NvmeTransportType trtype = 2 [(.google.api.field_behavior) = REQUIRED]; +inline void NvmeControllerSpec::clear_trtype() { + _impl_.trtype_ = 0; +} +inline ::opi_api::storage::v1::NvmeTransportType NvmeControllerSpec::_internal_trtype() const { + return static_cast< ::opi_api::storage::v1::NvmeTransportType >(_impl_.trtype_); +} +inline ::opi_api::storage::v1::NvmeTransportType NvmeControllerSpec::trtype() const { + // @@protoc_insertion_point(field_get:opi_api.storage.v1.NvmeControllerSpec.trtype) + return _internal_trtype(); +} +inline void NvmeControllerSpec::_internal_set_trtype(::opi_api::storage::v1::NvmeTransportType value) { + + _impl_.trtype_ = value; +} +inline void NvmeControllerSpec::set_trtype(::opi_api::storage::v1::NvmeTransportType value) { + _internal_set_trtype(value); + // @@protoc_insertion_point(field_set:opi_api.storage.v1.NvmeControllerSpec.trtype) +} + +// .opi_api.storage.v1.PciEndpoint pcie_id = 3 [(.google.api.field_behavior) = OPTIONAL]; inline bool NvmeControllerSpec::_internal_has_pcie_id() const { - return this != internal_default_instance() && _impl_.pcie_id_ != nullptr; + return endpoint_case() == kPcieId; } inline bool NvmeControllerSpec::has_pcie_id() const { return _internal_has_pcie_id(); } +inline void NvmeControllerSpec::set_has_pcie_id() { + _impl_._oneof_case_[0] = kPcieId; +} +inline ::opi_api::storage::v1::PciEndpoint* NvmeControllerSpec::release_pcie_id() { + // @@protoc_insertion_point(field_release:opi_api.storage.v1.NvmeControllerSpec.pcie_id) + if (_internal_has_pcie_id()) { + clear_has_endpoint(); + ::opi_api::storage::v1::PciEndpoint* temp = _impl_.endpoint_.pcie_id_; + if (GetArenaForAllocation() != nullptr) { + temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp); + } + _impl_.endpoint_.pcie_id_ = nullptr; + return temp; + } else { + return nullptr; + } +} inline const ::opi_api::storage::v1::PciEndpoint& NvmeControllerSpec::_internal_pcie_id() const { - const ::opi_api::storage::v1::PciEndpoint* p = _impl_.pcie_id_; - return p != nullptr ? *p : reinterpret_cast( - ::opi_api::storage::v1::_PciEndpoint_default_instance_); + return _internal_has_pcie_id() + ? *_impl_.endpoint_.pcie_id_ + : reinterpret_cast< ::opi_api::storage::v1::PciEndpoint&>(::opi_api::storage::v1::_PciEndpoint_default_instance_); } inline const ::opi_api::storage::v1::PciEndpoint& NvmeControllerSpec::pcie_id() const { // @@protoc_insertion_point(field_get:opi_api.storage.v1.NvmeControllerSpec.pcie_id) return _internal_pcie_id(); } -inline void NvmeControllerSpec::unsafe_arena_set_allocated_pcie_id( - ::opi_api::storage::v1::PciEndpoint* pcie_id) { - if (GetArenaForAllocation() == nullptr) { - delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.pcie_id_); - } - _impl_.pcie_id_ = pcie_id; - if (pcie_id) { - +inline ::opi_api::storage::v1::PciEndpoint* NvmeControllerSpec::unsafe_arena_release_pcie_id() { + // @@protoc_insertion_point(field_unsafe_arena_release:opi_api.storage.v1.NvmeControllerSpec.pcie_id) + if (_internal_has_pcie_id()) { + clear_has_endpoint(); + ::opi_api::storage::v1::PciEndpoint* temp = _impl_.endpoint_.pcie_id_; + _impl_.endpoint_.pcie_id_ = nullptr; + return temp; } else { - + return nullptr; } - // @@protoc_insertion_point(field_unsafe_arena_set_allocated:opi_api.storage.v1.NvmeControllerSpec.pcie_id) } -inline ::opi_api::storage::v1::PciEndpoint* NvmeControllerSpec::release_pcie_id() { - - ::opi_api::storage::v1::PciEndpoint* temp = _impl_.pcie_id_; - _impl_.pcie_id_ = nullptr; -#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE - auto* old = reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp); - temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp); - if (GetArenaForAllocation() == nullptr) { delete old; } -#else // PROTOBUF_FORCE_COPY_IN_RELEASE - if (GetArenaForAllocation() != nullptr) { - temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp); +inline void NvmeControllerSpec::unsafe_arena_set_allocated_pcie_id(::opi_api::storage::v1::PciEndpoint* pcie_id) { + clear_endpoint(); + if (pcie_id) { + set_has_pcie_id(); + _impl_.endpoint_.pcie_id_ = pcie_id; } -#endif // !PROTOBUF_FORCE_COPY_IN_RELEASE - return temp; -} -inline ::opi_api::storage::v1::PciEndpoint* NvmeControllerSpec::unsafe_arena_release_pcie_id() { - // @@protoc_insertion_point(field_release:opi_api.storage.v1.NvmeControllerSpec.pcie_id) - - ::opi_api::storage::v1::PciEndpoint* temp = _impl_.pcie_id_; - _impl_.pcie_id_ = nullptr; - return temp; + // @@protoc_insertion_point(field_unsafe_arena_set_allocated:opi_api.storage.v1.NvmeControllerSpec.pcie_id) } inline ::opi_api::storage::v1::PciEndpoint* NvmeControllerSpec::_internal_mutable_pcie_id() { - - if (_impl_.pcie_id_ == nullptr) { - auto* p = CreateMaybeMessage<::opi_api::storage::v1::PciEndpoint>(GetArenaForAllocation()); - _impl_.pcie_id_ = p; + if (!_internal_has_pcie_id()) { + clear_endpoint(); + set_has_pcie_id(); + _impl_.endpoint_.pcie_id_ = CreateMaybeMessage< ::opi_api::storage::v1::PciEndpoint >(GetArenaForAllocation()); } - return _impl_.pcie_id_; + return _impl_.endpoint_.pcie_id_; } inline ::opi_api::storage::v1::PciEndpoint* NvmeControllerSpec::mutable_pcie_id() { ::opi_api::storage::v1::PciEndpoint* _msg = _internal_mutable_pcie_id(); // @@protoc_insertion_point(field_mutable:opi_api.storage.v1.NvmeControllerSpec.pcie_id) return _msg; } -inline void NvmeControllerSpec::set_allocated_pcie_id(::opi_api::storage::v1::PciEndpoint* pcie_id) { - ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation(); - if (message_arena == nullptr) { - delete reinterpret_cast< ::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.pcie_id_); - } - if (pcie_id) { - ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena = - ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena( - reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(pcie_id)); - if (message_arena != submessage_arena) { - pcie_id = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage( - message_arena, pcie_id, submessage_arena); + +// .opi_api.storage.v1.FabricsEndpoint fabrics_id = 4 [(.google.api.field_behavior) = OPTIONAL]; +inline bool NvmeControllerSpec::_internal_has_fabrics_id() const { + return endpoint_case() == kFabricsId; +} +inline bool NvmeControllerSpec::has_fabrics_id() const { + return _internal_has_fabrics_id(); +} +inline void NvmeControllerSpec::set_has_fabrics_id() { + _impl_._oneof_case_[0] = kFabricsId; +} +inline ::opi_api::storage::v1::FabricsEndpoint* NvmeControllerSpec::release_fabrics_id() { + // @@protoc_insertion_point(field_release:opi_api.storage.v1.NvmeControllerSpec.fabrics_id) + if (_internal_has_fabrics_id()) { + clear_has_endpoint(); + ::opi_api::storage::v1::FabricsEndpoint* temp = _impl_.endpoint_.fabrics_id_; + if (GetArenaForAllocation() != nullptr) { + temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp); } - + _impl_.endpoint_.fabrics_id_ = nullptr; + return temp; } else { - + return nullptr; } - _impl_.pcie_id_ = pcie_id; - // @@protoc_insertion_point(field_set_allocated:opi_api.storage.v1.NvmeControllerSpec.pcie_id) +} +inline const ::opi_api::storage::v1::FabricsEndpoint& NvmeControllerSpec::_internal_fabrics_id() const { + return _internal_has_fabrics_id() + ? *_impl_.endpoint_.fabrics_id_ + : reinterpret_cast< ::opi_api::storage::v1::FabricsEndpoint&>(::opi_api::storage::v1::_FabricsEndpoint_default_instance_); +} +inline const ::opi_api::storage::v1::FabricsEndpoint& NvmeControllerSpec::fabrics_id() const { + // @@protoc_insertion_point(field_get:opi_api.storage.v1.NvmeControllerSpec.fabrics_id) + return _internal_fabrics_id(); +} +inline ::opi_api::storage::v1::FabricsEndpoint* NvmeControllerSpec::unsafe_arena_release_fabrics_id() { + // @@protoc_insertion_point(field_unsafe_arena_release:opi_api.storage.v1.NvmeControllerSpec.fabrics_id) + if (_internal_has_fabrics_id()) { + clear_has_endpoint(); + ::opi_api::storage::v1::FabricsEndpoint* temp = _impl_.endpoint_.fabrics_id_; + _impl_.endpoint_.fabrics_id_ = nullptr; + return temp; + } else { + return nullptr; + } +} +inline void NvmeControllerSpec::unsafe_arena_set_allocated_fabrics_id(::opi_api::storage::v1::FabricsEndpoint* fabrics_id) { + clear_endpoint(); + if (fabrics_id) { + set_has_fabrics_id(); + _impl_.endpoint_.fabrics_id_ = fabrics_id; + } + // @@protoc_insertion_point(field_unsafe_arena_set_allocated:opi_api.storage.v1.NvmeControllerSpec.fabrics_id) +} +inline ::opi_api::storage::v1::FabricsEndpoint* NvmeControllerSpec::_internal_mutable_fabrics_id() { + if (!_internal_has_fabrics_id()) { + clear_endpoint(); + set_has_fabrics_id(); + _impl_.endpoint_.fabrics_id_ = CreateMaybeMessage< ::opi_api::storage::v1::FabricsEndpoint >(GetArenaForAllocation()); + } + return _impl_.endpoint_.fabrics_id_; +} +inline ::opi_api::storage::v1::FabricsEndpoint* NvmeControllerSpec::mutable_fabrics_id() { + ::opi_api::storage::v1::FabricsEndpoint* _msg = _internal_mutable_fabrics_id(); + // @@protoc_insertion_point(field_mutable:opi_api.storage.v1.NvmeControllerSpec.fabrics_id) + return _msg; } -// int32 max_nsq = 4 [(.google.api.field_behavior) = OPTIONAL]; +// int32 max_nsq = 5 [(.google.api.field_behavior) = OPTIONAL]; inline void NvmeControllerSpec::clear_max_nsq() { _impl_.max_nsq_ = 0; } @@ -6909,7 +7026,7 @@ inline void NvmeControllerSpec::set_max_nsq(int32_t value) { // @@protoc_insertion_point(field_set:opi_api.storage.v1.NvmeControllerSpec.max_nsq) } -// int32 max_ncq = 5 [(.google.api.field_behavior) = OPTIONAL]; +// int32 max_ncq = 6 [(.google.api.field_behavior) = OPTIONAL]; inline void NvmeControllerSpec::clear_max_ncq() { _impl_.max_ncq_ = 0; } @@ -6929,7 +7046,7 @@ inline void NvmeControllerSpec::set_max_ncq(int32_t value) { // @@protoc_insertion_point(field_set:opi_api.storage.v1.NvmeControllerSpec.max_ncq) } -// int32 sqes = 6 [(.google.api.field_behavior) = OPTIONAL]; +// int32 sqes = 7 [(.google.api.field_behavior) = OPTIONAL]; inline void NvmeControllerSpec::clear_sqes() { _impl_.sqes_ = 0; } @@ -6949,7 +7066,7 @@ inline void NvmeControllerSpec::set_sqes(int32_t value) { // @@protoc_insertion_point(field_set:opi_api.storage.v1.NvmeControllerSpec.sqes) } -// int32 cqes = 7 [(.google.api.field_behavior) = OPTIONAL]; +// int32 cqes = 8 [(.google.api.field_behavior) = OPTIONAL]; inline void NvmeControllerSpec::clear_cqes() { _impl_.cqes_ = 0; } @@ -6969,7 +7086,7 @@ inline void NvmeControllerSpec::set_cqes(int32_t value) { // @@protoc_insertion_point(field_set:opi_api.storage.v1.NvmeControllerSpec.cqes) } -// int32 max_namespaces = 8 [(.google.api.field_behavior) = OPTIONAL]; +// int32 max_namespaces = 9 [(.google.api.field_behavior) = OPTIONAL]; inline void NvmeControllerSpec::clear_max_namespaces() { _impl_.max_namespaces_ = 0; } @@ -6989,7 +7106,7 @@ inline void NvmeControllerSpec::set_max_namespaces(int32_t value) { // @@protoc_insertion_point(field_set:opi_api.storage.v1.NvmeControllerSpec.max_namespaces) } -// .opi_api.storage.v1.QosLimit min_limit = 9 [(.google.api.field_behavior) = OPTIONAL]; +// .opi_api.storage.v1.QosLimit min_limit = 10 [(.google.api.field_behavior) = OPTIONAL]; inline bool NvmeControllerSpec::_internal_has_min_limit() const { return this != internal_default_instance() && _impl_.min_limit_ != nullptr; } @@ -7074,7 +7191,7 @@ inline void NvmeControllerSpec::set_allocated_min_limit(::opi_api::storage::v1:: // @@protoc_insertion_point(field_set_allocated:opi_api.storage.v1.NvmeControllerSpec.min_limit) } -// .opi_api.storage.v1.QosLimit max_limit = 10 [(.google.api.field_behavior) = OPTIONAL]; +// .opi_api.storage.v1.QosLimit max_limit = 11 [(.google.api.field_behavior) = OPTIONAL]; inline bool NvmeControllerSpec::_internal_has_max_limit() const { return this != internal_default_instance() && _impl_.max_limit_ != nullptr; } @@ -7159,6 +7276,15 @@ inline void NvmeControllerSpec::set_allocated_max_limit(::opi_api::storage::v1:: // @@protoc_insertion_point(field_set_allocated:opi_api.storage.v1.NvmeControllerSpec.max_limit) } +inline bool NvmeControllerSpec::has_endpoint() const { + return endpoint_case() != ENDPOINT_NOT_SET; +} +inline void NvmeControllerSpec::clear_has_endpoint() { + _impl_._oneof_case_[0] = ENDPOINT_NOT_SET; +} +inline NvmeControllerSpec::EndpointCase NvmeControllerSpec::endpoint_case() const { + return NvmeControllerSpec::EndpointCase(_impl_._oneof_case_[0]); +} // ------------------------------------------------------------------- // NvmeControllerStatus diff --git a/storage/v1alpha1/gen/cpp/opicommon.pb.cc b/storage/v1alpha1/gen/cpp/opicommon.pb.cc index a5f01378..fda8701e 100644 --- a/storage/v1alpha1/gen/cpp/opicommon.pb.cc +++ b/storage/v1alpha1/gen/cpp/opicommon.pb.cc @@ -38,6 +38,21 @@ struct PciEndpointDefaultTypeInternal { }; }; PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PciEndpointDefaultTypeInternal _PciEndpoint_default_instance_; +PROTOBUF_CONSTEXPR FabricsEndpoint::FabricsEndpoint( + ::_pbi::ConstantInitialized): _impl_{ + /*decltype(_impl_.traddr_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}} + , /*decltype(_impl_.trsvcid_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}} + , /*decltype(_impl_.adrfam_)*/0 + , /*decltype(_impl_._cached_size_)*/{}} {} +struct FabricsEndpointDefaultTypeInternal { + PROTOBUF_CONSTEXPR FabricsEndpointDefaultTypeInternal() + : _instance(::_pbi::ConstantInitialized{}) {} + ~FabricsEndpointDefaultTypeInternal() {} + union { + FabricsEndpoint _instance; + }; +}; +PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 FabricsEndpointDefaultTypeInternal _FabricsEndpoint_default_instance_; PROTOBUF_CONSTEXPR VolumeStats::VolumeStats( ::_pbi::ConstantInitialized): _impl_{ /*decltype(_impl_.read_bytes_count_)*/0 @@ -80,8 +95,8 @@ PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORIT } // namespace v1 } // namespace storage } // namespace opi_api -static ::_pb::Metadata file_level_metadata_opicommon_2eproto[3]; -static const ::_pb::EnumDescriptor* file_level_enum_descriptors_opicommon_2eproto[1]; +static ::_pb::Metadata file_level_metadata_opicommon_2eproto[4]; +static const ::_pb::EnumDescriptor* file_level_enum_descriptors_opicommon_2eproto[3]; static constexpr ::_pb::ServiceDescriptor const** file_level_service_descriptors_opicommon_2eproto = nullptr; const uint32_t TableStruct_opicommon_2eproto::offsets[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = { @@ -95,6 +110,15 @@ const uint32_t TableStruct_opicommon_2eproto::offsets[] PROTOBUF_SECTION_VARIABL PROTOBUF_FIELD_OFFSET(::opi_api::storage::v1::PciEndpoint, _impl_.physical_function_), PROTOBUF_FIELD_OFFSET(::opi_api::storage::v1::PciEndpoint, _impl_.virtual_function_), ~0u, // no _has_bits_ + PROTOBUF_FIELD_OFFSET(::opi_api::storage::v1::FabricsEndpoint, _internal_metadata_), + ~0u, // no _extensions_ + ~0u, // no _oneof_case_ + ~0u, // no _weak_field_map_ + ~0u, // no _inlined_string_donated_ + PROTOBUF_FIELD_OFFSET(::opi_api::storage::v1::FabricsEndpoint, _impl_.traddr_), + PROTOBUF_FIELD_OFFSET(::opi_api::storage::v1::FabricsEndpoint, _impl_.trsvcid_), + PROTOBUF_FIELD_OFFSET(::opi_api::storage::v1::FabricsEndpoint, _impl_.adrfam_), + ~0u, // no _has_bits_ PROTOBUF_FIELD_OFFSET(::opi_api::storage::v1::VolumeStats, _internal_metadata_), ~0u, // no _extensions_ ~0u, // no _oneof_case_ @@ -124,12 +148,14 @@ const uint32_t TableStruct_opicommon_2eproto::offsets[] PROTOBUF_SECTION_VARIABL }; static const ::_pbi::MigrationSchema schemas[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = { { 0, -1, -1, sizeof(::opi_api::storage::v1::PciEndpoint)}, - { 9, -1, -1, sizeof(::opi_api::storage::v1::VolumeStats)}, - { 24, -1, -1, sizeof(::opi_api::storage::v1::QosLimit)}, + { 9, -1, -1, sizeof(::opi_api::storage::v1::FabricsEndpoint)}, + { 18, -1, -1, sizeof(::opi_api::storage::v1::VolumeStats)}, + { 33, -1, -1, sizeof(::opi_api::storage::v1::QosLimit)}, }; static const ::_pb::Message* const file_default_instances[] = { &::opi_api::storage::v1::_PciEndpoint_default_instance_._instance, + &::opi_api::storage::v1::_FabricsEndpoint_default_instance_._instance, &::opi_api::storage::v1::_VolumeStats_default_instance_._instance, &::opi_api::storage::v1::_QosLimit_default_instance_._instance, }; @@ -142,28 +168,40 @@ const char descriptor_table_protodef_opicommon_2eproto[] PROTOBUF_SECTION_VARIAB "alueB\003\340A\002\022;\n\021physical_function\030\002 \001(\0132\033.g" "oogle.protobuf.Int32ValueB\003\340A\002\022:\n\020virtua" "l_function\030\003 \001(\0132\033.google.protobuf.Int32" - "ValueB\003\340A\002\"\252\002\n\013VolumeStats\022\035\n\020read_bytes" - "_count\030\001 \001(\005B\003\340A\003\022\033\n\016read_ops_count\030\002 \001(" - "\005B\003\340A\003\022\036\n\021write_bytes_count\030\003 \001(\005B\003\340A\003\022\034" - "\n\017write_ops_count\030\004 \001(\005B\003\340A\003\022\036\n\021unmap_by" - "tes_count\030\005 \001(\005B\003\340A\003\022\034\n\017unmap_ops_count\030" - "\006 \001(\005B\003\340A\003\022\037\n\022read_latency_ticks\030\007 \001(\005B\003" - "\340A\003\022 \n\023write_latency_ticks\030\010 \001(\005B\003\340A\003\022 \n" - "\023unmap_latency_ticks\030\t \001(\005B\003\340A\003\"\273\001\n\010QosL" - "imit\022\032\n\rrd_iops_kiops\030\001 \001(\003B\003\340A\001\022\032\n\rwr_i" - "ops_kiops\030\002 \001(\003B\003\340A\001\022\032\n\rrw_iops_kiops\030\003 " - "\001(\003B\003\340A\001\022\035\n\020rd_bandwidth_mbs\030\004 \001(\003B\003\340A\001\022" - "\035\n\020wr_bandwidth_mbs\030\005 \001(\003B\003\340A\001\022\035\n\020rw_ban" - "dwidth_mbs\030\006 \001(\003B\003\340A\001*\367\001\n\016EncryptionType" - "\022\037\n\033ENCRYPTION_TYPE_UNSPECIFIED\020\000\022\037\n\033ENC" - "RYPTION_TYPE_AES_CBC_128\020\001\022\037\n\033ENCRYPTION" - "_TYPE_AES_CBC_192\020\002\022\037\n\033ENCRYPTION_TYPE_A" - "ES_CBC_256\020\003\022\037\n\033ENCRYPTION_TYPE_AES_XTS_" - "128\020\004\022\037\n\033ENCRYPTION_TYPE_AES_XTS_192\020\005\022\037" - "\n\033ENCRYPTION_TYPE_AES_XTS_256\020\006B]\n\022opi_a" - "pi.storage.v1B\016OpiCommonProtoP\001Z5github." - "com/opiproject/opi-api/storage/v1alpha1/" - "gen/gob\006proto3" + "ValueB\003\340A\002\"x\n\017FabricsEndpoint\022\023\n\006traddr\030" + "\001 \001(\tB\003\340A\002\022\024\n\007trsvcid\030\002 \001(\tB\003\340A\002\022:\n\006adrf" + "am\030\003 \001(\0162%.opi_api.storage.v1.NvmeAddres" + "sFamilyB\003\340A\002\"\252\002\n\013VolumeStats\022\035\n\020read_byt" + "es_count\030\001 \001(\005B\003\340A\003\022\033\n\016read_ops_count\030\002 " + "\001(\005B\003\340A\003\022\036\n\021write_bytes_count\030\003 \001(\005B\003\340A\003" + "\022\034\n\017write_ops_count\030\004 \001(\005B\003\340A\003\022\036\n\021unmap_" + "bytes_count\030\005 \001(\005B\003\340A\003\022\034\n\017unmap_ops_coun" + "t\030\006 \001(\005B\003\340A\003\022\037\n\022read_latency_ticks\030\007 \001(\005" + "B\003\340A\003\022 \n\023write_latency_ticks\030\010 \001(\005B\003\340A\003\022" + " \n\023unmap_latency_ticks\030\t \001(\005B\003\340A\003\"\273\001\n\010Qo" + "sLimit\022\032\n\rrd_iops_kiops\030\001 \001(\003B\003\340A\001\022\032\n\rwr" + "_iops_kiops\030\002 \001(\003B\003\340A\001\022\032\n\rrw_iops_kiops\030" + "\003 \001(\003B\003\340A\001\022\035\n\020rd_bandwidth_mbs\030\004 \001(\003B\003\340A" + "\001\022\035\n\020wr_bandwidth_mbs\030\005 \001(\003B\003\340A\001\022\035\n\020rw_b" + "andwidth_mbs\030\006 \001(\003B\003\340A\001*\367\001\n\016EncryptionTy" + "pe\022\037\n\033ENCRYPTION_TYPE_UNSPECIFIED\020\000\022\037\n\033E" + "NCRYPTION_TYPE_AES_CBC_128\020\001\022\037\n\033ENCRYPTI" + "ON_TYPE_AES_CBC_192\020\002\022\037\n\033ENCRYPTION_TYPE" + "_AES_CBC_256\020\003\022\037\n\033ENCRYPTION_TYPE_AES_XT" + "S_128\020\004\022\037\n\033ENCRYPTION_TYPE_AES_XTS_192\020\005" + "\022\037\n\033ENCRYPTION_TYPE_AES_XTS_256\020\006*\264\001\n\021Nv" + "meTransportType\022#\n\037NVME_TRANSPORT_TYPE_U" + "NSPECIFIED\020\000\022\025\n\021NVME_TRANSPORT_FC\020\001\022\027\n\023N" + "VME_TRANSPORT_PCIE\020\002\022\027\n\023NVME_TRANSPORT_R" + "DMA\020\003\022\026\n\022NVME_TRANSPORT_TCP\020\004\022\031\n\025NVME_TR" + "ANSPORT_CUSTOM\020\005*\250\001\n\021NvmeAddressFamily\022#" + "\n\037NVME_ADDRESS_FAMILY_UNSPECIFIED\020\000\022\024\n\020N" + "VME_ADRFAM_IPV4\020\001\022\024\n\020NVME_ADRFAM_IPV6\020\002\022" + "\022\n\016NVME_ADRFAM_IB\020\003\022\022\n\016NVME_ADRFAM_FC\020\004\022" + "\032\n\026NVME_ADRFAM_INTRA_HOST\020\005B]\n\022opi_api.s" + "torage.v1B\016OpiCommonProtoP\001Z5github.com/" + "opiproject/opi-api/storage/v1alpha1/gen/" + "gob\006proto3" ; static const ::_pbi::DescriptorTable* const descriptor_table_opicommon_2eproto_deps[2] = { &::descriptor_table_google_2fapi_2ffield_5fbehavior_2eproto, @@ -171,9 +209,9 @@ static const ::_pbi::DescriptorTable* const descriptor_table_opicommon_2eproto_d }; static ::_pbi::once_flag descriptor_table_opicommon_2eproto_once; const ::_pbi::DescriptorTable descriptor_table_opicommon_2eproto = { - false, false, 1134, descriptor_table_protodef_opicommon_2eproto, + false, false, 1610, descriptor_table_protodef_opicommon_2eproto, "opicommon.proto", - &descriptor_table_opicommon_2eproto_once, descriptor_table_opicommon_2eproto_deps, 2, 3, + &descriptor_table_opicommon_2eproto_once, descriptor_table_opicommon_2eproto_deps, 2, 4, schemas, file_default_instances, TableStruct_opicommon_2eproto::offsets, file_level_metadata_opicommon_2eproto, file_level_enum_descriptors_opicommon_2eproto, file_level_service_descriptors_opicommon_2eproto, @@ -206,6 +244,42 @@ bool EncryptionType_IsValid(int value) { } } +const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* NvmeTransportType_descriptor() { + ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_opicommon_2eproto); + return file_level_enum_descriptors_opicommon_2eproto[1]; +} +bool NvmeTransportType_IsValid(int value) { + switch (value) { + case 0: + case 1: + case 2: + case 3: + case 4: + case 5: + return true; + default: + return false; + } +} + +const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* NvmeAddressFamily_descriptor() { + ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_opicommon_2eproto); + return file_level_enum_descriptors_opicommon_2eproto[2]; +} +bool NvmeAddressFamily_IsValid(int value) { + switch (value) { + case 0: + case 1: + case 2: + case 3: + case 4: + case 5: + return true; + default: + return false; + } +} + // =================================================================== @@ -507,6 +581,289 @@ ::PROTOBUF_NAMESPACE_ID::Metadata PciEndpoint::GetMetadata() const { // =================================================================== +class FabricsEndpoint::_Internal { + public: +}; + +FabricsEndpoint::FabricsEndpoint(::PROTOBUF_NAMESPACE_ID::Arena* arena, + bool is_message_owned) + : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) { + SharedCtor(arena, is_message_owned); + // @@protoc_insertion_point(arena_constructor:opi_api.storage.v1.FabricsEndpoint) +} +FabricsEndpoint::FabricsEndpoint(const FabricsEndpoint& from) + : ::PROTOBUF_NAMESPACE_ID::Message() { + FabricsEndpoint* const _this = this; (void)_this; + new (&_impl_) Impl_{ + decltype(_impl_.traddr_){} + , decltype(_impl_.trsvcid_){} + , decltype(_impl_.adrfam_){} + , /*decltype(_impl_._cached_size_)*/{}}; + + _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); + _impl_.traddr_.InitDefault(); + #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + _impl_.traddr_.Set("", GetArenaForAllocation()); + #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING + if (!from._internal_traddr().empty()) { + _this->_impl_.traddr_.Set(from._internal_traddr(), + _this->GetArenaForAllocation()); + } + _impl_.trsvcid_.InitDefault(); + #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + _impl_.trsvcid_.Set("", GetArenaForAllocation()); + #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING + if (!from._internal_trsvcid().empty()) { + _this->_impl_.trsvcid_.Set(from._internal_trsvcid(), + _this->GetArenaForAllocation()); + } + _this->_impl_.adrfam_ = from._impl_.adrfam_; + // @@protoc_insertion_point(copy_constructor:opi_api.storage.v1.FabricsEndpoint) +} + +inline void FabricsEndpoint::SharedCtor( + ::_pb::Arena* arena, bool is_message_owned) { + (void)arena; + (void)is_message_owned; + new (&_impl_) Impl_{ + decltype(_impl_.traddr_){} + , decltype(_impl_.trsvcid_){} + , decltype(_impl_.adrfam_){0} + , /*decltype(_impl_._cached_size_)*/{} + }; + _impl_.traddr_.InitDefault(); + #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + _impl_.traddr_.Set("", GetArenaForAllocation()); + #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING + _impl_.trsvcid_.InitDefault(); + #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + _impl_.trsvcid_.Set("", GetArenaForAllocation()); + #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING +} + +FabricsEndpoint::~FabricsEndpoint() { + // @@protoc_insertion_point(destructor:opi_api.storage.v1.FabricsEndpoint) + if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) { + (void)arena; + return; + } + SharedDtor(); +} + +inline void FabricsEndpoint::SharedDtor() { + GOOGLE_DCHECK(GetArenaForAllocation() == nullptr); + _impl_.traddr_.Destroy(); + _impl_.trsvcid_.Destroy(); +} + +void FabricsEndpoint::SetCachedSize(int size) const { + _impl_._cached_size_.Set(size); +} + +void FabricsEndpoint::Clear() { +// @@protoc_insertion_point(message_clear_start:opi_api.storage.v1.FabricsEndpoint) + uint32_t cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + _impl_.traddr_.ClearToEmpty(); + _impl_.trsvcid_.ClearToEmpty(); + _impl_.adrfam_ = 0; + _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(); +} + +const char* FabricsEndpoint::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) { +#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure + while (!ctx->Done(&ptr)) { + uint32_t tag; + ptr = ::_pbi::ReadTag(ptr, &tag); + switch (tag >> 3) { + // string traddr = 1 [(.google.api.field_behavior) = REQUIRED]; + case 1: + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 10)) { + auto str = _internal_mutable_traddr(); + ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx); + CHK_(ptr); + CHK_(::_pbi::VerifyUTF8(str, "opi_api.storage.v1.FabricsEndpoint.traddr")); + } else + goto handle_unusual; + continue; + // string trsvcid = 2 [(.google.api.field_behavior) = REQUIRED]; + case 2: + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 18)) { + auto str = _internal_mutable_trsvcid(); + ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx); + CHK_(ptr); + CHK_(::_pbi::VerifyUTF8(str, "opi_api.storage.v1.FabricsEndpoint.trsvcid")); + } else + goto handle_unusual; + continue; + // .opi_api.storage.v1.NvmeAddressFamily adrfam = 3 [(.google.api.field_behavior) = REQUIRED]; + case 3: + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 24)) { + uint64_t val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr); + CHK_(ptr); + _internal_set_adrfam(static_cast<::opi_api::storage::v1::NvmeAddressFamily>(val)); + } else + goto handle_unusual; + continue; + default: + goto handle_unusual; + } // switch + handle_unusual: + if ((tag == 0) || ((tag & 7) == 4)) { + CHK_(ptr); + ctx->SetLastTag(tag); + goto message_done; + } + ptr = UnknownFieldParse( + tag, + _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(), + ptr, ctx); + CHK_(ptr != nullptr); + } // while +message_done: + return ptr; +failure: + ptr = nullptr; + goto message_done; +#undef CHK_ +} + +uint8_t* FabricsEndpoint::_InternalSerialize( + uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const { + // @@protoc_insertion_point(serialize_to_array_start:opi_api.storage.v1.FabricsEndpoint) + uint32_t cached_has_bits = 0; + (void) cached_has_bits; + + // string traddr = 1 [(.google.api.field_behavior) = REQUIRED]; + if (!this->_internal_traddr().empty()) { + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + this->_internal_traddr().data(), static_cast(this->_internal_traddr().length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "opi_api.storage.v1.FabricsEndpoint.traddr"); + target = stream->WriteStringMaybeAliased( + 1, this->_internal_traddr(), target); + } + + // string trsvcid = 2 [(.google.api.field_behavior) = REQUIRED]; + if (!this->_internal_trsvcid().empty()) { + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + this->_internal_trsvcid().data(), static_cast(this->_internal_trsvcid().length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "opi_api.storage.v1.FabricsEndpoint.trsvcid"); + target = stream->WriteStringMaybeAliased( + 2, this->_internal_trsvcid(), target); + } + + // .opi_api.storage.v1.NvmeAddressFamily adrfam = 3 [(.google.api.field_behavior) = REQUIRED]; + if (this->_internal_adrfam() != 0) { + target = stream->EnsureSpace(target); + target = ::_pbi::WireFormatLite::WriteEnumToArray( + 3, this->_internal_adrfam(), target); + } + + if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { + target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray( + _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream); + } + // @@protoc_insertion_point(serialize_to_array_end:opi_api.storage.v1.FabricsEndpoint) + return target; +} + +size_t FabricsEndpoint::ByteSizeLong() const { +// @@protoc_insertion_point(message_byte_size_start:opi_api.storage.v1.FabricsEndpoint) + size_t total_size = 0; + + uint32_t cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + // string traddr = 1 [(.google.api.field_behavior) = REQUIRED]; + if (!this->_internal_traddr().empty()) { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize( + this->_internal_traddr()); + } + + // string trsvcid = 2 [(.google.api.field_behavior) = REQUIRED]; + if (!this->_internal_trsvcid().empty()) { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize( + this->_internal_trsvcid()); + } + + // .opi_api.storage.v1.NvmeAddressFamily adrfam = 3 [(.google.api.field_behavior) = REQUIRED]; + if (this->_internal_adrfam() != 0) { + total_size += 1 + + ::_pbi::WireFormatLite::EnumSize(this->_internal_adrfam()); + } + + return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_); +} + +const ::PROTOBUF_NAMESPACE_ID::Message::ClassData FabricsEndpoint::_class_data_ = { + ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck, + FabricsEndpoint::MergeImpl +}; +const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*FabricsEndpoint::GetClassData() const { return &_class_data_; } + + +void FabricsEndpoint::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) { + auto* const _this = static_cast(&to_msg); + auto& from = static_cast(from_msg); + // @@protoc_insertion_point(class_specific_merge_from_start:opi_api.storage.v1.FabricsEndpoint) + GOOGLE_DCHECK_NE(&from, _this); + uint32_t cached_has_bits = 0; + (void) cached_has_bits; + + if (!from._internal_traddr().empty()) { + _this->_internal_set_traddr(from._internal_traddr()); + } + if (!from._internal_trsvcid().empty()) { + _this->_internal_set_trsvcid(from._internal_trsvcid()); + } + if (from._internal_adrfam() != 0) { + _this->_internal_set_adrfam(from._internal_adrfam()); + } + _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); +} + +void FabricsEndpoint::CopyFrom(const FabricsEndpoint& from) { +// @@protoc_insertion_point(class_specific_copy_from_start:opi_api.storage.v1.FabricsEndpoint) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +bool FabricsEndpoint::IsInitialized() const { + return true; +} + +void FabricsEndpoint::InternalSwap(FabricsEndpoint* other) { + using std::swap; + auto* lhs_arena = GetArenaForAllocation(); + auto* rhs_arena = other->GetArenaForAllocation(); + _internal_metadata_.InternalSwap(&other->_internal_metadata_); + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap( + &_impl_.traddr_, lhs_arena, + &other->_impl_.traddr_, rhs_arena + ); + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap( + &_impl_.trsvcid_, lhs_arena, + &other->_impl_.trsvcid_, rhs_arena + ); + swap(_impl_.adrfam_, other->_impl_.adrfam_); +} + +::PROTOBUF_NAMESPACE_ID::Metadata FabricsEndpoint::GetMetadata() const { + return ::_pbi::AssignDescriptors( + &descriptor_table_opicommon_2eproto_getter, &descriptor_table_opicommon_2eproto_once, + file_level_metadata_opicommon_2eproto[1]); +} + +// =================================================================== + class VolumeStats::_Internal { public: }; @@ -881,7 +1238,7 @@ void VolumeStats::InternalSwap(VolumeStats* other) { ::PROTOBUF_NAMESPACE_ID::Metadata VolumeStats::GetMetadata() const { return ::_pbi::AssignDescriptors( &descriptor_table_opicommon_2eproto_getter, &descriptor_table_opicommon_2eproto_once, - file_level_metadata_opicommon_2eproto[1]); + file_level_metadata_opicommon_2eproto[2]); } // =================================================================== @@ -1188,7 +1545,7 @@ void QosLimit::InternalSwap(QosLimit* other) { ::PROTOBUF_NAMESPACE_ID::Metadata QosLimit::GetMetadata() const { return ::_pbi::AssignDescriptors( &descriptor_table_opicommon_2eproto_getter, &descriptor_table_opicommon_2eproto_once, - file_level_metadata_opicommon_2eproto[2]); + file_level_metadata_opicommon_2eproto[3]); } // @@protoc_insertion_point(namespace_scope) @@ -1200,6 +1557,10 @@ template<> PROTOBUF_NOINLINE ::opi_api::storage::v1::PciEndpoint* Arena::CreateMaybeMessage< ::opi_api::storage::v1::PciEndpoint >(Arena* arena) { return Arena::CreateMessageInternal< ::opi_api::storage::v1::PciEndpoint >(arena); } +template<> PROTOBUF_NOINLINE ::opi_api::storage::v1::FabricsEndpoint* +Arena::CreateMaybeMessage< ::opi_api::storage::v1::FabricsEndpoint >(Arena* arena) { + return Arena::CreateMessageInternal< ::opi_api::storage::v1::FabricsEndpoint >(arena); +} template<> PROTOBUF_NOINLINE ::opi_api::storage::v1::VolumeStats* Arena::CreateMaybeMessage< ::opi_api::storage::v1::VolumeStats >(Arena* arena) { return Arena::CreateMessageInternal< ::opi_api::storage::v1::VolumeStats >(arena); diff --git a/storage/v1alpha1/gen/cpp/opicommon.pb.h b/storage/v1alpha1/gen/cpp/opicommon.pb.h index 741b0b12..82bb5152 100644 --- a/storage/v1alpha1/gen/cpp/opicommon.pb.h +++ b/storage/v1alpha1/gen/cpp/opicommon.pb.h @@ -50,6 +50,9 @@ extern const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table namespace opi_api { namespace storage { namespace v1 { +class FabricsEndpoint; +struct FabricsEndpointDefaultTypeInternal; +extern FabricsEndpointDefaultTypeInternal _FabricsEndpoint_default_instance_; class PciEndpoint; struct PciEndpointDefaultTypeInternal; extern PciEndpointDefaultTypeInternal _PciEndpoint_default_instance_; @@ -63,6 +66,7 @@ extern VolumeStatsDefaultTypeInternal _VolumeStats_default_instance_; } // namespace storage } // namespace opi_api PROTOBUF_NAMESPACE_OPEN +template<> ::opi_api::storage::v1::FabricsEndpoint* Arena::CreateMaybeMessage<::opi_api::storage::v1::FabricsEndpoint>(Arena*); template<> ::opi_api::storage::v1::PciEndpoint* Arena::CreateMaybeMessage<::opi_api::storage::v1::PciEndpoint>(Arena*); template<> ::opi_api::storage::v1::QosLimit* Arena::CreateMaybeMessage<::opi_api::storage::v1::QosLimit>(Arena*); template<> ::opi_api::storage::v1::VolumeStats* Arena::CreateMaybeMessage<::opi_api::storage::v1::VolumeStats>(Arena*); @@ -101,6 +105,64 @@ inline bool EncryptionType_Parse( return ::PROTOBUF_NAMESPACE_ID::internal::ParseNamedEnum( EncryptionType_descriptor(), name, value); } +enum NvmeTransportType : int { + NVME_TRANSPORT_TYPE_UNSPECIFIED = 0, + NVME_TRANSPORT_FC = 1, + NVME_TRANSPORT_PCIE = 2, + NVME_TRANSPORT_RDMA = 3, + NVME_TRANSPORT_TCP = 4, + NVME_TRANSPORT_CUSTOM = 5, + NvmeTransportType_INT_MIN_SENTINEL_DO_NOT_USE_ = std::numeric_limits::min(), + NvmeTransportType_INT_MAX_SENTINEL_DO_NOT_USE_ = std::numeric_limits::max() +}; +bool NvmeTransportType_IsValid(int value); +constexpr NvmeTransportType NvmeTransportType_MIN = NVME_TRANSPORT_TYPE_UNSPECIFIED; +constexpr NvmeTransportType NvmeTransportType_MAX = NVME_TRANSPORT_CUSTOM; +constexpr int NvmeTransportType_ARRAYSIZE = NvmeTransportType_MAX + 1; + +const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* NvmeTransportType_descriptor(); +template +inline const std::string& NvmeTransportType_Name(T enum_t_value) { + static_assert(::std::is_same::value || + ::std::is_integral::value, + "Incorrect type passed to function NvmeTransportType_Name."); + return ::PROTOBUF_NAMESPACE_ID::internal::NameOfEnum( + NvmeTransportType_descriptor(), enum_t_value); +} +inline bool NvmeTransportType_Parse( + ::PROTOBUF_NAMESPACE_ID::ConstStringParam name, NvmeTransportType* value) { + return ::PROTOBUF_NAMESPACE_ID::internal::ParseNamedEnum( + NvmeTransportType_descriptor(), name, value); +} +enum NvmeAddressFamily : int { + NVME_ADDRESS_FAMILY_UNSPECIFIED = 0, + NVME_ADRFAM_IPV4 = 1, + NVME_ADRFAM_IPV6 = 2, + NVME_ADRFAM_IB = 3, + NVME_ADRFAM_FC = 4, + NVME_ADRFAM_INTRA_HOST = 5, + NvmeAddressFamily_INT_MIN_SENTINEL_DO_NOT_USE_ = std::numeric_limits::min(), + NvmeAddressFamily_INT_MAX_SENTINEL_DO_NOT_USE_ = std::numeric_limits::max() +}; +bool NvmeAddressFamily_IsValid(int value); +constexpr NvmeAddressFamily NvmeAddressFamily_MIN = NVME_ADDRESS_FAMILY_UNSPECIFIED; +constexpr NvmeAddressFamily NvmeAddressFamily_MAX = NVME_ADRFAM_INTRA_HOST; +constexpr int NvmeAddressFamily_ARRAYSIZE = NvmeAddressFamily_MAX + 1; + +const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* NvmeAddressFamily_descriptor(); +template +inline const std::string& NvmeAddressFamily_Name(T enum_t_value) { + static_assert(::std::is_same::value || + ::std::is_integral::value, + "Incorrect type passed to function NvmeAddressFamily_Name."); + return ::PROTOBUF_NAMESPACE_ID::internal::NameOfEnum( + NvmeAddressFamily_descriptor(), enum_t_value); +} +inline bool NvmeAddressFamily_Parse( + ::PROTOBUF_NAMESPACE_ID::ConstStringParam name, NvmeAddressFamily* value) { + return ::PROTOBUF_NAMESPACE_ID::internal::ParseNamedEnum( + NvmeAddressFamily_descriptor(), name, value); +} // =================================================================== class PciEndpoint final : @@ -300,6 +362,186 @@ class PciEndpoint final : }; // ------------------------------------------------------------------- +class FabricsEndpoint final : + public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:opi_api.storage.v1.FabricsEndpoint) */ { + public: + inline FabricsEndpoint() : FabricsEndpoint(nullptr) {} + ~FabricsEndpoint() override; + explicit PROTOBUF_CONSTEXPR FabricsEndpoint(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized); + + FabricsEndpoint(const FabricsEndpoint& from); + FabricsEndpoint(FabricsEndpoint&& from) noexcept + : FabricsEndpoint() { + *this = ::std::move(from); + } + + inline FabricsEndpoint& operator=(const FabricsEndpoint& from) { + CopyFrom(from); + return *this; + } + inline FabricsEndpoint& operator=(FabricsEndpoint&& from) noexcept { + if (this == &from) return *this; + if (GetOwningArena() == from.GetOwningArena() + #ifdef PROTOBUF_FORCE_COPY_IN_MOVE + && GetOwningArena() != nullptr + #endif // !PROTOBUF_FORCE_COPY_IN_MOVE + ) { + InternalSwap(&from); + } else { + CopyFrom(from); + } + return *this; + } + + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() { + return GetDescriptor(); + } + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() { + return default_instance().GetMetadata().descriptor; + } + static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() { + return default_instance().GetMetadata().reflection; + } + static const FabricsEndpoint& default_instance() { + return *internal_default_instance(); + } + static inline const FabricsEndpoint* internal_default_instance() { + return reinterpret_cast( + &_FabricsEndpoint_default_instance_); + } + static constexpr int kIndexInFileMessages = + 1; + + friend void swap(FabricsEndpoint& a, FabricsEndpoint& b) { + a.Swap(&b); + } + inline void Swap(FabricsEndpoint* other) { + if (other == this) return; + #ifdef PROTOBUF_FORCE_COPY_IN_SWAP + if (GetOwningArena() != nullptr && + GetOwningArena() == other->GetOwningArena()) { + #else // PROTOBUF_FORCE_COPY_IN_SWAP + if (GetOwningArena() == other->GetOwningArena()) { + #endif // !PROTOBUF_FORCE_COPY_IN_SWAP + InternalSwap(other); + } else { + ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other); + } + } + void UnsafeArenaSwap(FabricsEndpoint* other) { + if (other == this) return; + GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena()); + InternalSwap(other); + } + + // implements Message ---------------------------------------------- + + FabricsEndpoint* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final { + return CreateMaybeMessage(arena); + } + using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom; + void CopyFrom(const FabricsEndpoint& from); + using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom; + void MergeFrom( const FabricsEndpoint& from) { + FabricsEndpoint::MergeImpl(*this, from); + } + private: + static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg); + public: + PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final; + bool IsInitialized() const final; + + size_t ByteSizeLong() const final; + const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final; + uint8_t* _InternalSerialize( + uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final; + int GetCachedSize() const final { return _impl_._cached_size_.Get(); } + + private: + void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned); + void SharedDtor(); + void SetCachedSize(int size) const final; + void InternalSwap(FabricsEndpoint* other); + + private: + friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata; + static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() { + return "opi_api.storage.v1.FabricsEndpoint"; + } + protected: + explicit FabricsEndpoint(::PROTOBUF_NAMESPACE_ID::Arena* arena, + bool is_message_owned = false); + public: + + static const ClassData _class_data_; + const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final; + + ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; + + // nested types ---------------------------------------------------- + + // accessors ------------------------------------------------------- + + enum : int { + kTraddrFieldNumber = 1, + kTrsvcidFieldNumber = 2, + kAdrfamFieldNumber = 3, + }; + // string traddr = 1 [(.google.api.field_behavior) = REQUIRED]; + void clear_traddr(); + const std::string& traddr() const; + template + void set_traddr(ArgT0&& arg0, ArgT... args); + std::string* mutable_traddr(); + PROTOBUF_NODISCARD std::string* release_traddr(); + void set_allocated_traddr(std::string* traddr); + private: + const std::string& _internal_traddr() const; + inline PROTOBUF_ALWAYS_INLINE void _internal_set_traddr(const std::string& value); + std::string* _internal_mutable_traddr(); + public: + + // string trsvcid = 2 [(.google.api.field_behavior) = REQUIRED]; + void clear_trsvcid(); + const std::string& trsvcid() const; + template + void set_trsvcid(ArgT0&& arg0, ArgT... args); + std::string* mutable_trsvcid(); + PROTOBUF_NODISCARD std::string* release_trsvcid(); + void set_allocated_trsvcid(std::string* trsvcid); + private: + const std::string& _internal_trsvcid() const; + inline PROTOBUF_ALWAYS_INLINE void _internal_set_trsvcid(const std::string& value); + std::string* _internal_mutable_trsvcid(); + public: + + // .opi_api.storage.v1.NvmeAddressFamily adrfam = 3 [(.google.api.field_behavior) = REQUIRED]; + void clear_adrfam(); + ::opi_api::storage::v1::NvmeAddressFamily adrfam() const; + void set_adrfam(::opi_api::storage::v1::NvmeAddressFamily value); + private: + ::opi_api::storage::v1::NvmeAddressFamily _internal_adrfam() const; + void _internal_set_adrfam(::opi_api::storage::v1::NvmeAddressFamily value); + public: + + // @@protoc_insertion_point(class_scope:opi_api.storage.v1.FabricsEndpoint) + private: + class _Internal; + + template friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper; + typedef void InternalArenaConstructable_; + typedef void DestructorSkippable_; + struct Impl_ { + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr traddr_; + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr trsvcid_; + int adrfam_; + mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_; + }; + union { Impl_ _impl_; }; + friend struct ::TableStruct_opicommon_2eproto; +}; +// ------------------------------------------------------------------- + class VolumeStats final : public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:opi_api.storage.v1.VolumeStats) */ { public: @@ -348,7 +590,7 @@ class VolumeStats final : &_VolumeStats_default_instance_); } static constexpr int kIndexInFileMessages = - 1; + 2; friend void swap(VolumeStats& a, VolumeStats& b) { a.Swap(&b); @@ -584,7 +826,7 @@ class QosLimit final : &_QosLimit_default_instance_); } static constexpr int kIndexInFileMessages = - 2; + 3; friend void swap(QosLimit& a, QosLimit& b) { a.Swap(&b); @@ -1005,6 +1247,130 @@ inline void PciEndpoint::set_allocated_virtual_function(::PROTOBUF_NAMESPACE_ID: // ------------------------------------------------------------------- +// FabricsEndpoint + +// string traddr = 1 [(.google.api.field_behavior) = REQUIRED]; +inline void FabricsEndpoint::clear_traddr() { + _impl_.traddr_.ClearToEmpty(); +} +inline const std::string& FabricsEndpoint::traddr() const { + // @@protoc_insertion_point(field_get:opi_api.storage.v1.FabricsEndpoint.traddr) + return _internal_traddr(); +} +template +inline PROTOBUF_ALWAYS_INLINE +void FabricsEndpoint::set_traddr(ArgT0&& arg0, ArgT... args) { + + _impl_.traddr_.Set(static_cast(arg0), args..., GetArenaForAllocation()); + // @@protoc_insertion_point(field_set:opi_api.storage.v1.FabricsEndpoint.traddr) +} +inline std::string* FabricsEndpoint::mutable_traddr() { + std::string* _s = _internal_mutable_traddr(); + // @@protoc_insertion_point(field_mutable:opi_api.storage.v1.FabricsEndpoint.traddr) + return _s; +} +inline const std::string& FabricsEndpoint::_internal_traddr() const { + return _impl_.traddr_.Get(); +} +inline void FabricsEndpoint::_internal_set_traddr(const std::string& value) { + + _impl_.traddr_.Set(value, GetArenaForAllocation()); +} +inline std::string* FabricsEndpoint::_internal_mutable_traddr() { + + return _impl_.traddr_.Mutable(GetArenaForAllocation()); +} +inline std::string* FabricsEndpoint::release_traddr() { + // @@protoc_insertion_point(field_release:opi_api.storage.v1.FabricsEndpoint.traddr) + return _impl_.traddr_.Release(); +} +inline void FabricsEndpoint::set_allocated_traddr(std::string* traddr) { + if (traddr != nullptr) { + + } else { + + } + _impl_.traddr_.SetAllocated(traddr, GetArenaForAllocation()); +#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + if (_impl_.traddr_.IsDefault()) { + _impl_.traddr_.Set("", GetArenaForAllocation()); + } +#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING + // @@protoc_insertion_point(field_set_allocated:opi_api.storage.v1.FabricsEndpoint.traddr) +} + +// string trsvcid = 2 [(.google.api.field_behavior) = REQUIRED]; +inline void FabricsEndpoint::clear_trsvcid() { + _impl_.trsvcid_.ClearToEmpty(); +} +inline const std::string& FabricsEndpoint::trsvcid() const { + // @@protoc_insertion_point(field_get:opi_api.storage.v1.FabricsEndpoint.trsvcid) + return _internal_trsvcid(); +} +template +inline PROTOBUF_ALWAYS_INLINE +void FabricsEndpoint::set_trsvcid(ArgT0&& arg0, ArgT... args) { + + _impl_.trsvcid_.Set(static_cast(arg0), args..., GetArenaForAllocation()); + // @@protoc_insertion_point(field_set:opi_api.storage.v1.FabricsEndpoint.trsvcid) +} +inline std::string* FabricsEndpoint::mutable_trsvcid() { + std::string* _s = _internal_mutable_trsvcid(); + // @@protoc_insertion_point(field_mutable:opi_api.storage.v1.FabricsEndpoint.trsvcid) + return _s; +} +inline const std::string& FabricsEndpoint::_internal_trsvcid() const { + return _impl_.trsvcid_.Get(); +} +inline void FabricsEndpoint::_internal_set_trsvcid(const std::string& value) { + + _impl_.trsvcid_.Set(value, GetArenaForAllocation()); +} +inline std::string* FabricsEndpoint::_internal_mutable_trsvcid() { + + return _impl_.trsvcid_.Mutable(GetArenaForAllocation()); +} +inline std::string* FabricsEndpoint::release_trsvcid() { + // @@protoc_insertion_point(field_release:opi_api.storage.v1.FabricsEndpoint.trsvcid) + return _impl_.trsvcid_.Release(); +} +inline void FabricsEndpoint::set_allocated_trsvcid(std::string* trsvcid) { + if (trsvcid != nullptr) { + + } else { + + } + _impl_.trsvcid_.SetAllocated(trsvcid, GetArenaForAllocation()); +#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + if (_impl_.trsvcid_.IsDefault()) { + _impl_.trsvcid_.Set("", GetArenaForAllocation()); + } +#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING + // @@protoc_insertion_point(field_set_allocated:opi_api.storage.v1.FabricsEndpoint.trsvcid) +} + +// .opi_api.storage.v1.NvmeAddressFamily adrfam = 3 [(.google.api.field_behavior) = REQUIRED]; +inline void FabricsEndpoint::clear_adrfam() { + _impl_.adrfam_ = 0; +} +inline ::opi_api::storage::v1::NvmeAddressFamily FabricsEndpoint::_internal_adrfam() const { + return static_cast< ::opi_api::storage::v1::NvmeAddressFamily >(_impl_.adrfam_); +} +inline ::opi_api::storage::v1::NvmeAddressFamily FabricsEndpoint::adrfam() const { + // @@protoc_insertion_point(field_get:opi_api.storage.v1.FabricsEndpoint.adrfam) + return _internal_adrfam(); +} +inline void FabricsEndpoint::_internal_set_adrfam(::opi_api::storage::v1::NvmeAddressFamily value) { + + _impl_.adrfam_ = value; +} +inline void FabricsEndpoint::set_adrfam(::opi_api::storage::v1::NvmeAddressFamily value) { + _internal_set_adrfam(value); + // @@protoc_insertion_point(field_set:opi_api.storage.v1.FabricsEndpoint.adrfam) +} + +// ------------------------------------------------------------------- + // VolumeStats // int32 read_bytes_count = 1 [(.google.api.field_behavior) = OUTPUT_ONLY]; @@ -1318,6 +1684,8 @@ inline void QosLimit::set_rw_bandwidth_mbs(int64_t value) { // ------------------------------------------------------------------- +// ------------------------------------------------------------------- + // @@protoc_insertion_point(namespace_scope) @@ -1332,6 +1700,16 @@ template <> inline const EnumDescriptor* GetEnumDescriptor< ::opi_api::storage::v1::EncryptionType>() { return ::opi_api::storage::v1::EncryptionType_descriptor(); } +template <> struct is_proto_enum< ::opi_api::storage::v1::NvmeTransportType> : ::std::true_type {}; +template <> +inline const EnumDescriptor* GetEnumDescriptor< ::opi_api::storage::v1::NvmeTransportType>() { + return ::opi_api::storage::v1::NvmeTransportType_descriptor(); +} +template <> struct is_proto_enum< ::opi_api::storage::v1::NvmeAddressFamily> : ::std::true_type {}; +template <> +inline const EnumDescriptor* GetEnumDescriptor< ::opi_api::storage::v1::NvmeAddressFamily>() { + return ::opi_api::storage::v1::NvmeAddressFamily_descriptor(); +} PROTOBUF_NAMESPACE_CLOSE diff --git a/storage/v1alpha1/gen/go/backend_nvme_tcp.pb.go b/storage/v1alpha1/gen/go/backend_nvme_tcp.pb.go index 84a1b7bf..5341c57c 100644 --- a/storage/v1alpha1/gen/go/backend_nvme_tcp.pb.go +++ b/storage/v1alpha1/gen/go/backend_nvme_tcp.pb.go @@ -28,136 +28,6 @@ const ( _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) ) -// Transport type value options -type NvmeTransportType int32 - -const ( - // Transport type is not specified - NvmeTransportType_NVME_TRANSPORT_TYPE_UNSPECIFIED NvmeTransportType = 0 - // Fibre channel transport type - NvmeTransportType_NVME_TRANSPORT_FC NvmeTransportType = 1 - // Pcie transport type - NvmeTransportType_NVME_TRANSPORT_PCIE NvmeTransportType = 2 - // RDMA transport type - NvmeTransportType_NVME_TRANSPORT_RDMA NvmeTransportType = 3 - // TCP transport type - NvmeTransportType_NVME_TRANSPORT_TCP NvmeTransportType = 4 - // Custom transport type - NvmeTransportType_NVME_TRANSPORT_CUSTOM NvmeTransportType = 5 -) - -// Enum value maps for NvmeTransportType. -var ( - NvmeTransportType_name = map[int32]string{ - 0: "NVME_TRANSPORT_TYPE_UNSPECIFIED", - 1: "NVME_TRANSPORT_FC", - 2: "NVME_TRANSPORT_PCIE", - 3: "NVME_TRANSPORT_RDMA", - 4: "NVME_TRANSPORT_TCP", - 5: "NVME_TRANSPORT_CUSTOM", - } - NvmeTransportType_value = map[string]int32{ - "NVME_TRANSPORT_TYPE_UNSPECIFIED": 0, - "NVME_TRANSPORT_FC": 1, - "NVME_TRANSPORT_PCIE": 2, - "NVME_TRANSPORT_RDMA": 3, - "NVME_TRANSPORT_TCP": 4, - "NVME_TRANSPORT_CUSTOM": 5, - } -) - -func (x NvmeTransportType) Enum() *NvmeTransportType { - p := new(NvmeTransportType) - *p = x - return p -} - -func (x NvmeTransportType) String() string { - return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) -} - -func (NvmeTransportType) Descriptor() protoreflect.EnumDescriptor { - return file_backend_nvme_tcp_proto_enumTypes[0].Descriptor() -} - -func (NvmeTransportType) Type() protoreflect.EnumType { - return &file_backend_nvme_tcp_proto_enumTypes[0] -} - -func (x NvmeTransportType) Number() protoreflect.EnumNumber { - return protoreflect.EnumNumber(x) -} - -// Deprecated: Use NvmeTransportType.Descriptor instead. -func (NvmeTransportType) EnumDescriptor() ([]byte, []int) { - return file_backend_nvme_tcp_proto_rawDescGZIP(), []int{0} -} - -// Address family value options -type NvmeAddressFamily int32 - -const ( - // Address family is not specified - NvmeAddressFamily_NVME_ADDRESS_FAMILY_UNSPECIFIED NvmeAddressFamily = 0 - // IPv4 address family - NvmeAddressFamily_NVME_ADRFAM_IPV4 NvmeAddressFamily = 1 - // IPv6 address family - NvmeAddressFamily_NVME_ADRFAM_IPV6 NvmeAddressFamily = 2 - // InfiniBand address family - NvmeAddressFamily_NVME_ADRFAM_IB NvmeAddressFamily = 3 - // Fibre channel address family - NvmeAddressFamily_NVME_ADRFAM_FC NvmeAddressFamily = 4 - // Intra host address family - NvmeAddressFamily_NVME_ADRFAM_INTRA_HOST NvmeAddressFamily = 5 -) - -// Enum value maps for NvmeAddressFamily. -var ( - NvmeAddressFamily_name = map[int32]string{ - 0: "NVME_ADDRESS_FAMILY_UNSPECIFIED", - 1: "NVME_ADRFAM_IPV4", - 2: "NVME_ADRFAM_IPV6", - 3: "NVME_ADRFAM_IB", - 4: "NVME_ADRFAM_FC", - 5: "NVME_ADRFAM_INTRA_HOST", - } - NvmeAddressFamily_value = map[string]int32{ - "NVME_ADDRESS_FAMILY_UNSPECIFIED": 0, - "NVME_ADRFAM_IPV4": 1, - "NVME_ADRFAM_IPV6": 2, - "NVME_ADRFAM_IB": 3, - "NVME_ADRFAM_FC": 4, - "NVME_ADRFAM_INTRA_HOST": 5, - } -) - -func (x NvmeAddressFamily) Enum() *NvmeAddressFamily { - p := new(NvmeAddressFamily) - *p = x - return p -} - -func (x NvmeAddressFamily) String() string { - return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) -} - -func (NvmeAddressFamily) Descriptor() protoreflect.EnumDescriptor { - return file_backend_nvme_tcp_proto_enumTypes[1].Descriptor() -} - -func (NvmeAddressFamily) Type() protoreflect.EnumType { - return &file_backend_nvme_tcp_proto_enumTypes[1] -} - -func (x NvmeAddressFamily) Number() protoreflect.EnumNumber { - return protoreflect.EnumNumber(x) -} - -// Deprecated: Use NvmeAddressFamily.Descriptor instead. -func (NvmeAddressFamily) EnumDescriptor() ([]byte, []int) { - return file_backend_nvme_tcp_proto_rawDescGZIP(), []int{1} -} - // Multipath mode value options type NvmeMultipath int32 @@ -200,11 +70,11 @@ func (x NvmeMultipath) String() string { } func (NvmeMultipath) Descriptor() protoreflect.EnumDescriptor { - return file_backend_nvme_tcp_proto_enumTypes[2].Descriptor() + return file_backend_nvme_tcp_proto_enumTypes[0].Descriptor() } func (NvmeMultipath) Type() protoreflect.EnumType { - return &file_backend_nvme_tcp_proto_enumTypes[2] + return &file_backend_nvme_tcp_proto_enumTypes[0] } func (x NvmeMultipath) Number() protoreflect.EnumNumber { @@ -213,7 +83,7 @@ func (x NvmeMultipath) Number() protoreflect.EnumNumber { // Deprecated: Use NvmeMultipath.Descriptor instead. func (NvmeMultipath) EnumDescriptor() ([]byte, []int) { - return file_backend_nvme_tcp_proto_rawDescGZIP(), []int{2} + return file_backend_nvme_tcp_proto_rawDescGZIP(), []int{0} } // Represents a target controller @@ -2091,207 +1961,185 @@ var file_backend_nvme_tcp_proto_rawDesc = []byte{ 0x05, 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x05, 0x73, - 0x74, 0x61, 0x74, 0x73, 0x2a, 0xb4, 0x01, 0x0a, 0x11, 0x4e, 0x76, 0x6d, 0x65, 0x54, 0x72, 0x61, - 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x23, 0x0a, 0x1f, 0x4e, 0x56, - 0x4d, 0x45, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x54, 0x59, 0x50, - 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, - 0x15, 0x0a, 0x11, 0x4e, 0x56, 0x4d, 0x45, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x50, 0x4f, 0x52, - 0x54, 0x5f, 0x46, 0x43, 0x10, 0x01, 0x12, 0x17, 0x0a, 0x13, 0x4e, 0x56, 0x4d, 0x45, 0x5f, 0x54, - 0x52, 0x41, 0x4e, 0x53, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x50, 0x43, 0x49, 0x45, 0x10, 0x02, 0x12, - 0x17, 0x0a, 0x13, 0x4e, 0x56, 0x4d, 0x45, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x50, 0x4f, 0x52, - 0x54, 0x5f, 0x52, 0x44, 0x4d, 0x41, 0x10, 0x03, 0x12, 0x16, 0x0a, 0x12, 0x4e, 0x56, 0x4d, 0x45, - 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x54, 0x43, 0x50, 0x10, 0x04, - 0x12, 0x19, 0x0a, 0x15, 0x4e, 0x56, 0x4d, 0x45, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x50, 0x4f, - 0x52, 0x54, 0x5f, 0x43, 0x55, 0x53, 0x54, 0x4f, 0x4d, 0x10, 0x05, 0x2a, 0xa8, 0x01, 0x0a, 0x11, - 0x4e, 0x76, 0x6d, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x46, 0x61, 0x6d, 0x69, 0x6c, - 0x79, 0x12, 0x23, 0x0a, 0x1f, 0x4e, 0x56, 0x4d, 0x45, 0x5f, 0x41, 0x44, 0x44, 0x52, 0x45, 0x53, - 0x53, 0x5f, 0x46, 0x41, 0x4d, 0x49, 0x4c, 0x59, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, - 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x14, 0x0a, 0x10, 0x4e, 0x56, 0x4d, 0x45, 0x5f, 0x41, - 0x44, 0x52, 0x46, 0x41, 0x4d, 0x5f, 0x49, 0x50, 0x56, 0x34, 0x10, 0x01, 0x12, 0x14, 0x0a, 0x10, - 0x4e, 0x56, 0x4d, 0x45, 0x5f, 0x41, 0x44, 0x52, 0x46, 0x41, 0x4d, 0x5f, 0x49, 0x50, 0x56, 0x36, - 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x4e, 0x56, 0x4d, 0x45, 0x5f, 0x41, 0x44, 0x52, 0x46, 0x41, - 0x4d, 0x5f, 0x49, 0x42, 0x10, 0x03, 0x12, 0x12, 0x0a, 0x0e, 0x4e, 0x56, 0x4d, 0x45, 0x5f, 0x41, - 0x44, 0x52, 0x46, 0x41, 0x4d, 0x5f, 0x46, 0x43, 0x10, 0x04, 0x12, 0x1a, 0x0a, 0x16, 0x4e, 0x56, - 0x4d, 0x45, 0x5f, 0x41, 0x44, 0x52, 0x46, 0x41, 0x4d, 0x5f, 0x49, 0x4e, 0x54, 0x52, 0x41, 0x5f, - 0x48, 0x4f, 0x53, 0x54, 0x10, 0x05, 0x2a, 0x86, 0x01, 0x0a, 0x0d, 0x4e, 0x76, 0x6d, 0x65, 0x4d, - 0x75, 0x6c, 0x74, 0x69, 0x70, 0x61, 0x74, 0x68, 0x12, 0x1e, 0x0a, 0x1a, 0x4e, 0x56, 0x4d, 0x45, - 0x5f, 0x4d, 0x55, 0x4c, 0x54, 0x49, 0x50, 0x41, 0x54, 0x48, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, - 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1a, 0x0a, 0x16, 0x4e, 0x56, 0x4d, 0x45, - 0x5f, 0x4d, 0x55, 0x4c, 0x54, 0x49, 0x50, 0x41, 0x54, 0x48, 0x5f, 0x44, 0x49, 0x53, 0x41, 0x42, - 0x4c, 0x45, 0x10, 0x01, 0x12, 0x1b, 0x0a, 0x17, 0x4e, 0x56, 0x4d, 0x45, 0x5f, 0x4d, 0x55, 0x4c, - 0x54, 0x49, 0x50, 0x41, 0x54, 0x48, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x4f, 0x56, 0x45, 0x52, 0x10, - 0x02, 0x12, 0x1c, 0x0a, 0x18, 0x4e, 0x56, 0x4d, 0x45, 0x5f, 0x4d, 0x55, 0x4c, 0x54, 0x49, 0x50, - 0x41, 0x54, 0x48, 0x5f, 0x4d, 0x55, 0x4c, 0x54, 0x49, 0x50, 0x41, 0x54, 0x48, 0x10, 0x03, 0x32, - 0xb2, 0x14, 0x0a, 0x1b, 0x4e, 0x76, 0x6d, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x43, 0x6f, - 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, - 0xeb, 0x01, 0x0a, 0x1a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x76, 0x6d, 0x65, 0x52, 0x65, - 0x6d, 0x6f, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x12, 0x35, - 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, - 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x76, 0x6d, 0x65, 0x52, 0x65, - 0x6d, 0x6f, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, - 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x76, 0x6d, 0x65, 0x52, - 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x22, - 0x6c, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x33, 0x22, 0x19, 0x2f, 0x76, 0x31, 0x2f, 0x6e, 0x76, 0x6d, - 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, - 0x72, 0x73, 0x3a, 0x16, 0x6e, 0x76, 0x6d, 0x65, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, - 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0xda, 0x41, 0x30, 0x6e, 0x76, 0x6d, - 0x65, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, - 0x6c, 0x65, 0x72, 0x2c, 0x6e, 0x76, 0x6d, 0x65, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, - 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x12, 0x9e, 0x01, - 0x0a, 0x1a, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4e, 0x76, 0x6d, 0x65, 0x52, 0x65, 0x6d, 0x6f, + 0x74, 0x61, 0x74, 0x73, 0x2a, 0x86, 0x01, 0x0a, 0x0d, 0x4e, 0x76, 0x6d, 0x65, 0x4d, 0x75, 0x6c, + 0x74, 0x69, 0x70, 0x61, 0x74, 0x68, 0x12, 0x1e, 0x0a, 0x1a, 0x4e, 0x56, 0x4d, 0x45, 0x5f, 0x4d, + 0x55, 0x4c, 0x54, 0x49, 0x50, 0x41, 0x54, 0x48, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, + 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1a, 0x0a, 0x16, 0x4e, 0x56, 0x4d, 0x45, 0x5f, 0x4d, + 0x55, 0x4c, 0x54, 0x49, 0x50, 0x41, 0x54, 0x48, 0x5f, 0x44, 0x49, 0x53, 0x41, 0x42, 0x4c, 0x45, + 0x10, 0x01, 0x12, 0x1b, 0x0a, 0x17, 0x4e, 0x56, 0x4d, 0x45, 0x5f, 0x4d, 0x55, 0x4c, 0x54, 0x49, + 0x50, 0x41, 0x54, 0x48, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x4f, 0x56, 0x45, 0x52, 0x10, 0x02, 0x12, + 0x1c, 0x0a, 0x18, 0x4e, 0x56, 0x4d, 0x45, 0x5f, 0x4d, 0x55, 0x4c, 0x54, 0x49, 0x50, 0x41, 0x54, + 0x48, 0x5f, 0x4d, 0x55, 0x4c, 0x54, 0x49, 0x50, 0x41, 0x54, 0x48, 0x10, 0x03, 0x32, 0xb2, 0x14, + 0x0a, 0x1b, 0x4e, 0x76, 0x6d, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, + 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0xeb, 0x01, + 0x0a, 0x1a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x76, 0x6d, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x12, 0x35, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, - 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4e, 0x76, 0x6d, 0x65, 0x52, 0x65, 0x6d, 0x6f, - 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x31, 0x82, 0xd3, 0xe4, - 0x93, 0x02, 0x24, 0x2a, 0x22, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x6e, - 0x76, 0x6d, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, - 0x6c, 0x65, 0x72, 0x73, 0x2f, 0x2a, 0x7d, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0xfd, - 0x01, 0x0a, 0x1a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x76, 0x6d, 0x65, 0x52, 0x65, 0x6d, - 0x6f, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x12, 0x35, 0x2e, - 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, - 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x76, 0x6d, 0x65, 0x52, 0x65, 0x6d, - 0x6f, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, - 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x76, 0x6d, 0x65, 0x52, 0x65, - 0x6d, 0x6f, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x22, 0x7e, - 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x53, 0x32, 0x39, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x76, 0x6d, - 0x65, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, - 0x6c, 0x65, 0x72, 0x2e, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x6e, 0x76, 0x6d, 0x65, 0x52, 0x65, 0x6d, - 0x6f, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x73, 0x2f, 0x2a, - 0x7d, 0x3a, 0x16, 0x6e, 0x76, 0x6d, 0x65, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x63, - 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0xda, 0x41, 0x22, 0x6e, 0x76, 0x6d, 0x65, - 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, - 0x65, 0x72, 0x2c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x12, 0xb2, - 0x01, 0x0a, 0x19, 0x4c, 0x69, 0x73, 0x74, 0x4e, 0x76, 0x6d, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x74, - 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x73, 0x12, 0x34, 0x2e, 0x6f, - 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, - 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4e, 0x76, 0x6d, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, - 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, - 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4e, 0x76, 0x6d, 0x65, - 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, - 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x28, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x19, 0x12, 0x17, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x73, - 0x75, 0x62, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x73, 0x7d, 0xda, 0x41, 0x06, 0x70, 0x61, 0x72, - 0x65, 0x6e, 0x74, 0x12, 0xaa, 0x01, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x4e, 0x76, 0x6d, 0x65, 0x52, - 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x12, - 0x32, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, - 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4e, 0x76, 0x6d, 0x65, 0x52, 0x65, 0x6d, 0x6f, + 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x76, 0x6d, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x76, 0x6d, 0x65, 0x52, 0x65, 0x6d, - 0x6f, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x22, 0x31, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x24, 0x12, 0x22, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, - 0x3d, 0x6e, 0x76, 0x6d, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, - 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x73, 0x2f, 0x2a, 0x7d, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x12, 0xa5, 0x01, 0x0a, 0x19, 0x52, 0x65, 0x73, 0x65, 0x74, 0x4e, 0x76, 0x6d, 0x65, 0x52, 0x65, - 0x6d, 0x6f, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x12, 0x34, - 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, - 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x65, 0x74, 0x4e, 0x76, 0x6d, 0x65, 0x52, 0x65, 0x6d, - 0x6f, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x3a, 0x82, 0xd3, - 0xe4, 0x93, 0x02, 0x2d, 0x22, 0x28, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, - 0x6e, 0x76, 0x6d, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, - 0x6c, 0x6c, 0x65, 0x72, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x72, 0x65, 0x73, 0x65, 0x74, 0x3a, 0x01, - 0x2a, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0xc1, 0x01, 0x0a, 0x19, 0x53, 0x74, 0x61, - 0x74, 0x73, 0x4e, 0x76, 0x6d, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, - 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x12, 0x34, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, - 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x61, 0x74, - 0x73, 0x4e, 0x76, 0x6d, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, - 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x6f, - 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, - 0x31, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x73, 0x4e, 0x76, 0x6d, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x74, - 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x37, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2a, 0x12, 0x28, 0x2f, 0x76, 0x31, - 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x6e, 0x76, 0x6d, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x74, + 0x6f, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x22, 0x6c, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x33, 0x22, 0x19, 0x2f, 0x76, 0x31, 0x2f, 0x6e, 0x76, 0x6d, 0x65, 0x52, + 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x73, + 0x3a, 0x16, 0x6e, 0x76, 0x6d, 0x65, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x63, 0x6f, + 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0xda, 0x41, 0x30, 0x6e, 0x76, 0x6d, 0x65, 0x5f, + 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, + 0x72, 0x2c, 0x6e, 0x76, 0x6d, 0x65, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x63, 0x6f, + 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x12, 0x9e, 0x01, 0x0a, 0x1a, + 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4e, 0x76, 0x6d, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, + 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x12, 0x35, 0x2e, 0x6f, 0x70, 0x69, + 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, + 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4e, 0x76, 0x6d, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, + 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x31, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x24, 0x2a, 0x22, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x6e, 0x76, 0x6d, + 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, + 0x72, 0x73, 0x2f, 0x2a, 0x7d, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0xfd, 0x01, 0x0a, + 0x1a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x76, 0x6d, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x74, + 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x12, 0x35, 0x2e, 0x6f, 0x70, + 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, + 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x76, 0x6d, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x74, + 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, + 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x76, 0x6d, 0x65, 0x52, 0x65, 0x6d, 0x6f, + 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x22, 0x7e, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x53, 0x32, 0x39, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x76, 0x6d, 0x65, 0x5f, + 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, + 0x72, 0x2e, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x6e, 0x76, 0x6d, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, - 0x73, 0x74, 0x61, 0x74, 0x73, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0xaf, 0x01, 0x0a, - 0x18, 0x4c, 0x69, 0x73, 0x74, 0x4e, 0x76, 0x6d, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x4e, - 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x12, 0x33, 0x2e, 0x6f, 0x70, 0x69, 0x5f, - 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4c, + 0x16, 0x6e, 0x76, 0x6d, 0x65, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x63, 0x6f, 0x6e, + 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0xda, 0x41, 0x22, 0x6e, 0x76, 0x6d, 0x65, 0x5f, 0x72, + 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, + 0x2c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x12, 0xb2, 0x01, 0x0a, + 0x19, 0x4c, 0x69, 0x73, 0x74, 0x4e, 0x76, 0x6d, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x43, + 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x73, 0x12, 0x34, 0x2e, 0x6f, 0x70, 0x69, + 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, + 0x4c, 0x69, 0x73, 0x74, 0x4e, 0x76, 0x6d, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x43, 0x6f, + 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x35, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, + 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4e, 0x76, 0x6d, 0x65, 0x52, 0x65, + 0x6d, 0x6f, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x28, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x19, 0x12, + 0x17, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x73, 0x75, 0x62, + 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x73, 0x7d, 0xda, 0x41, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, + 0x74, 0x12, 0xaa, 0x01, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x4e, 0x76, 0x6d, 0x65, 0x52, 0x65, 0x6d, + 0x6f, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x12, 0x32, 0x2e, + 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, + 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4e, 0x76, 0x6d, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, + 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x28, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, + 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x76, 0x6d, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x74, + 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x22, 0x31, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x24, 0x12, 0x22, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x6e, + 0x76, 0x6d, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, + 0x6c, 0x65, 0x72, 0x73, 0x2f, 0x2a, 0x7d, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0xa5, + 0x01, 0x0a, 0x19, 0x52, 0x65, 0x73, 0x65, 0x74, 0x4e, 0x76, 0x6d, 0x65, 0x52, 0x65, 0x6d, 0x6f, + 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x12, 0x34, 0x2e, 0x6f, + 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, + 0x31, 0x2e, 0x52, 0x65, 0x73, 0x65, 0x74, 0x4e, 0x76, 0x6d, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x74, + 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x3a, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x2d, 0x22, 0x28, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x6e, 0x76, + 0x6d, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, + 0x65, 0x72, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x72, 0x65, 0x73, 0x65, 0x74, 0x3a, 0x01, 0x2a, 0xda, + 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0xc1, 0x01, 0x0a, 0x19, 0x53, 0x74, 0x61, 0x74, 0x73, + 0x4e, 0x76, 0x6d, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, + 0x6c, 0x6c, 0x65, 0x72, 0x12, 0x34, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, + 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x73, 0x4e, + 0x76, 0x6d, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, + 0x6c, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x6f, 0x70, 0x69, + 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, + 0x53, 0x74, 0x61, 0x74, 0x73, 0x4e, 0x76, 0x6d, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x43, + 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x37, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2a, 0x12, 0x28, 0x2f, 0x76, 0x31, 0x2f, 0x7b, + 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x6e, 0x76, 0x6d, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x43, + 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x73, 0x74, + 0x61, 0x74, 0x73, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0xaf, 0x01, 0x0a, 0x18, 0x4c, 0x69, 0x73, 0x74, 0x4e, 0x76, 0x6d, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x4e, 0x61, 0x6d, - 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, - 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, - 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4e, 0x76, 0x6d, 0x65, 0x52, 0x65, 0x6d, 0x6f, - 0x74, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x28, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x19, 0x12, 0x17, 0x2f, 0x76, - 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x73, 0x75, 0x62, 0x73, 0x79, 0x73, - 0x74, 0x65, 0x6d, 0x73, 0x7d, 0xda, 0x41, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0xa6, - 0x01, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x4e, 0x76, 0x6d, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, - 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x31, 0x2e, 0x6f, 0x70, 0x69, 0x5f, - 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, - 0x65, 0x74, 0x4e, 0x76, 0x6d, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x4e, 0x61, 0x6d, 0x65, - 0x73, 0x70, 0x61, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x6f, + 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x12, 0x33, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, + 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, + 0x74, 0x4e, 0x76, 0x6d, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, + 0x70, 0x61, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, - 0x31, 0x2e, 0x4e, 0x76, 0x6d, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x4e, 0x61, 0x6d, 0x65, - 0x73, 0x70, 0x61, 0x63, 0x65, 0x22, 0x30, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x23, 0x12, 0x21, 0x2f, - 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x6e, 0x76, 0x6d, 0x65, 0x52, 0x65, 0x6d, - 0x6f, 0x74, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x2a, 0x7d, - 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x94, 0x01, 0x0a, 0x0e, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x4e, 0x76, 0x6d, 0x65, 0x50, 0x61, 0x74, 0x68, 0x12, 0x29, 0x2e, 0x6f, 0x70, 0x69, + 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4e, 0x76, 0x6d, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, + 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x28, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x19, 0x12, 0x17, 0x2f, 0x76, 0x31, 0x2f, + 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x73, 0x75, 0x62, 0x73, 0x79, 0x73, 0x74, 0x65, + 0x6d, 0x73, 0x7d, 0xda, 0x41, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0xa6, 0x01, 0x0a, + 0x16, 0x47, 0x65, 0x74, 0x4e, 0x76, 0x6d, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x4e, 0x61, + 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x31, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, + 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, + 0x4e, 0x76, 0x6d, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, + 0x61, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, - 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x76, 0x6d, 0x65, 0x50, 0x61, 0x74, 0x68, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, - 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x76, 0x6d, 0x65, 0x50, - 0x61, 0x74, 0x68, 0x22, 0x39, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1a, 0x22, 0x0d, 0x2f, 0x76, 0x31, - 0x2f, 0x6e, 0x76, 0x6d, 0x65, 0x50, 0x61, 0x74, 0x68, 0x73, 0x3a, 0x09, 0x6e, 0x76, 0x6d, 0x65, - 0x5f, 0x70, 0x61, 0x74, 0x68, 0xda, 0x41, 0x16, 0x6e, 0x76, 0x6d, 0x65, 0x5f, 0x70, 0x61, 0x74, - 0x68, 0x2c, 0x6e, 0x76, 0x6d, 0x65, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x69, 0x64, 0x12, 0x7a, - 0x0a, 0x0e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4e, 0x76, 0x6d, 0x65, 0x50, 0x61, 0x74, 0x68, - 0x12, 0x29, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, - 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4e, 0x76, 0x6d, 0x65, - 0x50, 0x61, 0x74, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, - 0x70, 0x74, 0x79, 0x22, 0x25, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x18, 0x2a, 0x16, 0x2f, 0x76, 0x31, - 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x6e, 0x76, 0x6d, 0x65, 0x50, 0x61, 0x74, 0x68, 0x73, - 0x2f, 0x2a, 0x7d, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0xa6, 0x01, 0x0a, 0x0e, 0x55, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x76, 0x6d, 0x65, 0x50, 0x61, 0x74, 0x68, 0x12, 0x29, 0x2e, - 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, - 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x76, 0x6d, 0x65, 0x50, 0x61, 0x74, - 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, - 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x76, - 0x6d, 0x65, 0x50, 0x61, 0x74, 0x68, 0x22, 0x4b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2d, 0x32, 0x20, - 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x76, 0x6d, 0x65, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x2e, 0x6e, - 0x61, 0x6d, 0x65, 0x3d, 0x6e, 0x76, 0x6d, 0x65, 0x50, 0x61, 0x74, 0x68, 0x73, 0x2f, 0x2a, 0x7d, - 0x3a, 0x09, 0x6e, 0x76, 0x6d, 0x65, 0x5f, 0x70, 0x61, 0x74, 0x68, 0xda, 0x41, 0x15, 0x6e, 0x76, - 0x6d, 0x65, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x2c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, - 0x61, 0x73, 0x6b, 0x12, 0x8e, 0x01, 0x0a, 0x0d, 0x4c, 0x69, 0x73, 0x74, 0x4e, 0x76, 0x6d, 0x65, - 0x50, 0x61, 0x74, 0x68, 0x73, 0x12, 0x28, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, - 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4e, - 0x76, 0x6d, 0x65, 0x50, 0x61, 0x74, 0x68, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x29, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, - 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4e, 0x76, 0x6d, 0x65, 0x50, 0x61, 0x74, - 0x68, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x28, 0x82, 0xd3, 0xe4, 0x93, - 0x02, 0x19, 0x12, 0x17, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, - 0x73, 0x75, 0x62, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x73, 0x7d, 0xda, 0x41, 0x06, 0x70, 0x61, - 0x72, 0x65, 0x6e, 0x74, 0x12, 0x7a, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x4e, 0x76, 0x6d, 0x65, 0x50, - 0x61, 0x74, 0x68, 0x12, 0x26, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, - 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4e, 0x76, 0x6d, 0x65, - 0x50, 0x61, 0x74, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x6f, 0x70, + 0x4e, 0x76, 0x6d, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, + 0x61, 0x63, 0x65, 0x22, 0x30, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x23, 0x12, 0x21, 0x2f, 0x76, 0x31, + 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x6e, 0x76, 0x6d, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x74, + 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0xda, 0x41, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x94, 0x01, 0x0a, 0x0e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x4e, 0x76, 0x6d, 0x65, 0x50, 0x61, 0x74, 0x68, 0x12, 0x29, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, + 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x4e, 0x76, 0x6d, 0x65, 0x50, 0x61, 0x74, 0x68, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, + 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x76, 0x6d, 0x65, 0x50, 0x61, 0x74, + 0x68, 0x22, 0x39, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1a, 0x22, 0x0d, 0x2f, 0x76, 0x31, 0x2f, 0x6e, + 0x76, 0x6d, 0x65, 0x50, 0x61, 0x74, 0x68, 0x73, 0x3a, 0x09, 0x6e, 0x76, 0x6d, 0x65, 0x5f, 0x70, + 0x61, 0x74, 0x68, 0xda, 0x41, 0x16, 0x6e, 0x76, 0x6d, 0x65, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x2c, + 0x6e, 0x76, 0x6d, 0x65, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x69, 0x64, 0x12, 0x7a, 0x0a, 0x0e, + 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4e, 0x76, 0x6d, 0x65, 0x50, 0x61, 0x74, 0x68, 0x12, 0x29, + 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, + 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4e, 0x76, 0x6d, 0x65, 0x50, 0x61, + 0x74, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, + 0x79, 0x22, 0x25, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x18, 0x2a, 0x16, 0x2f, 0x76, 0x31, 0x2f, 0x7b, + 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x6e, 0x76, 0x6d, 0x65, 0x50, 0x61, 0x74, 0x68, 0x73, 0x2f, 0x2a, + 0x7d, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0xa6, 0x01, 0x0a, 0x0e, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x4e, 0x76, 0x6d, 0x65, 0x50, 0x61, 0x74, 0x68, 0x12, 0x29, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, - 0x2e, 0x4e, 0x76, 0x6d, 0x65, 0x50, 0x61, 0x74, 0x68, 0x22, 0x25, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x18, 0x12, 0x16, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x6e, 0x76, 0x6d, - 0x65, 0x50, 0x61, 0x74, 0x68, 0x73, 0x2f, 0x2a, 0x7d, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x12, 0x91, 0x01, 0x0a, 0x0d, 0x53, 0x74, 0x61, 0x74, 0x73, 0x4e, 0x76, 0x6d, 0x65, 0x50, 0x61, - 0x74, 0x68, 0x12, 0x28, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, - 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x73, 0x4e, 0x76, 0x6d, - 0x65, 0x50, 0x61, 0x74, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x6f, - 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, - 0x31, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x73, 0x4e, 0x76, 0x6d, 0x65, 0x50, 0x61, 0x74, 0x68, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1e, 0x12, - 0x1c, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x6e, 0x76, 0x6d, 0x65, 0x50, - 0x61, 0x74, 0x68, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x73, 0x74, 0x61, 0x74, 0x73, 0xda, 0x41, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x62, 0x0a, 0x12, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, - 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x42, 0x13, 0x42, 0x61, 0x63, 0x6b, - 0x65, 0x6e, 0x64, 0x4e, 0x76, 0x6d, 0x65, 0x54, 0x63, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, - 0x01, 0x5a, 0x35, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x70, - 0x69, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x2f, 0x6f, 0x70, 0x69, 0x2d, 0x61, 0x70, 0x69, - 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, - 0x31, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x67, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x76, 0x6d, 0x65, 0x50, 0x61, 0x74, 0x68, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, + 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x76, 0x6d, 0x65, + 0x50, 0x61, 0x74, 0x68, 0x22, 0x4b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2d, 0x32, 0x20, 0x2f, 0x76, + 0x31, 0x2f, 0x7b, 0x6e, 0x76, 0x6d, 0x65, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x2e, 0x6e, 0x61, 0x6d, + 0x65, 0x3d, 0x6e, 0x76, 0x6d, 0x65, 0x50, 0x61, 0x74, 0x68, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x09, + 0x6e, 0x76, 0x6d, 0x65, 0x5f, 0x70, 0x61, 0x74, 0x68, 0xda, 0x41, 0x15, 0x6e, 0x76, 0x6d, 0x65, + 0x5f, 0x70, 0x61, 0x74, 0x68, 0x2c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, + 0x6b, 0x12, 0x8e, 0x01, 0x0a, 0x0d, 0x4c, 0x69, 0x73, 0x74, 0x4e, 0x76, 0x6d, 0x65, 0x50, 0x61, + 0x74, 0x68, 0x73, 0x12, 0x28, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, + 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4e, 0x76, 0x6d, + 0x65, 0x50, 0x61, 0x74, 0x68, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, + 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, + 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4e, 0x76, 0x6d, 0x65, 0x50, 0x61, 0x74, 0x68, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x28, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x19, + 0x12, 0x17, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x73, 0x75, + 0x62, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x73, 0x7d, 0xda, 0x41, 0x06, 0x70, 0x61, 0x72, 0x65, + 0x6e, 0x74, 0x12, 0x7a, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x4e, 0x76, 0x6d, 0x65, 0x50, 0x61, 0x74, + 0x68, 0x12, 0x26, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, + 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4e, 0x76, 0x6d, 0x65, 0x50, 0x61, + 0x74, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x6f, 0x70, 0x69, 0x5f, + 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4e, + 0x76, 0x6d, 0x65, 0x50, 0x61, 0x74, 0x68, 0x22, 0x25, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x18, 0x12, + 0x16, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x6e, 0x76, 0x6d, 0x65, 0x50, + 0x61, 0x74, 0x68, 0x73, 0x2f, 0x2a, 0x7d, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x91, + 0x01, 0x0a, 0x0d, 0x53, 0x74, 0x61, 0x74, 0x73, 0x4e, 0x76, 0x6d, 0x65, 0x50, 0x61, 0x74, 0x68, + 0x12, 0x28, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, + 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x73, 0x4e, 0x76, 0x6d, 0x65, 0x50, + 0x61, 0x74, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x6f, 0x70, 0x69, + 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, + 0x53, 0x74, 0x61, 0x74, 0x73, 0x4e, 0x76, 0x6d, 0x65, 0x50, 0x61, 0x74, 0x68, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1e, 0x12, 0x1c, 0x2f, + 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x6e, 0x76, 0x6d, 0x65, 0x50, 0x61, 0x74, + 0x68, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x73, 0x74, 0x61, 0x74, 0x73, 0xda, 0x41, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x42, 0x62, 0x0a, 0x12, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, + 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x42, 0x13, 0x42, 0x61, 0x63, 0x6b, 0x65, 0x6e, + 0x64, 0x4e, 0x76, 0x6d, 0x65, 0x54, 0x63, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, + 0x35, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x70, 0x69, 0x70, + 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x2f, 0x6f, 0x70, 0x69, 0x2d, 0x61, 0x70, 0x69, 0x2f, 0x73, + 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2f, + 0x67, 0x65, 0x6e, 0x2f, 0x67, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -2306,90 +2154,90 @@ func file_backend_nvme_tcp_proto_rawDescGZIP() []byte { return file_backend_nvme_tcp_proto_rawDescData } -var file_backend_nvme_tcp_proto_enumTypes = make([]protoimpl.EnumInfo, 3) +var file_backend_nvme_tcp_proto_enumTypes = make([]protoimpl.EnumInfo, 1) var file_backend_nvme_tcp_proto_msgTypes = make([]protoimpl.MessageInfo, 25) var file_backend_nvme_tcp_proto_goTypes = []interface{}{ - (NvmeTransportType)(0), // 0: opi_api.storage.v1.NvmeTransportType - (NvmeAddressFamily)(0), // 1: opi_api.storage.v1.NvmeAddressFamily - (NvmeMultipath)(0), // 2: opi_api.storage.v1.NvmeMultipath - (*NvmeRemoteController)(nil), // 3: opi_api.storage.v1.NvmeRemoteController - (*TcpController)(nil), // 4: opi_api.storage.v1.TcpController - (*NvmePath)(nil), // 5: opi_api.storage.v1.NvmePath - (*FabricsPath)(nil), // 6: opi_api.storage.v1.FabricsPath - (*NvmeRemoteNamespace)(nil), // 7: opi_api.storage.v1.NvmeRemoteNamespace - (*CreateNvmeRemoteControllerRequest)(nil), // 8: opi_api.storage.v1.CreateNvmeRemoteControllerRequest - (*DeleteNvmeRemoteControllerRequest)(nil), // 9: opi_api.storage.v1.DeleteNvmeRemoteControllerRequest - (*UpdateNvmeRemoteControllerRequest)(nil), // 10: opi_api.storage.v1.UpdateNvmeRemoteControllerRequest - (*ListNvmeRemoteControllersRequest)(nil), // 11: opi_api.storage.v1.ListNvmeRemoteControllersRequest - (*ListNvmeRemoteControllersResponse)(nil), // 12: opi_api.storage.v1.ListNvmeRemoteControllersResponse - (*GetNvmeRemoteControllerRequest)(nil), // 13: opi_api.storage.v1.GetNvmeRemoteControllerRequest - (*ResetNvmeRemoteControllerRequest)(nil), // 14: opi_api.storage.v1.ResetNvmeRemoteControllerRequest - (*StatsNvmeRemoteControllerRequest)(nil), // 15: opi_api.storage.v1.StatsNvmeRemoteControllerRequest - (*StatsNvmeRemoteControllerResponse)(nil), // 16: opi_api.storage.v1.StatsNvmeRemoteControllerResponse - (*ListNvmeRemoteNamespacesRequest)(nil), // 17: opi_api.storage.v1.ListNvmeRemoteNamespacesRequest - (*ListNvmeRemoteNamespacesResponse)(nil), // 18: opi_api.storage.v1.ListNvmeRemoteNamespacesResponse - (*GetNvmeRemoteNamespaceRequest)(nil), // 19: opi_api.storage.v1.GetNvmeRemoteNamespaceRequest - (*CreateNvmePathRequest)(nil), // 20: opi_api.storage.v1.CreateNvmePathRequest - (*DeleteNvmePathRequest)(nil), // 21: opi_api.storage.v1.DeleteNvmePathRequest - (*UpdateNvmePathRequest)(nil), // 22: opi_api.storage.v1.UpdateNvmePathRequest - (*ListNvmePathsRequest)(nil), // 23: opi_api.storage.v1.ListNvmePathsRequest - (*ListNvmePathsResponse)(nil), // 24: opi_api.storage.v1.ListNvmePathsResponse - (*GetNvmePathRequest)(nil), // 25: opi_api.storage.v1.GetNvmePathRequest - (*StatsNvmePathRequest)(nil), // 26: opi_api.storage.v1.StatsNvmePathRequest - (*StatsNvmePathResponse)(nil), // 27: opi_api.storage.v1.StatsNvmePathResponse + (NvmeMultipath)(0), // 0: opi_api.storage.v1.NvmeMultipath + (*NvmeRemoteController)(nil), // 1: opi_api.storage.v1.NvmeRemoteController + (*TcpController)(nil), // 2: opi_api.storage.v1.TcpController + (*NvmePath)(nil), // 3: opi_api.storage.v1.NvmePath + (*FabricsPath)(nil), // 4: opi_api.storage.v1.FabricsPath + (*NvmeRemoteNamespace)(nil), // 5: opi_api.storage.v1.NvmeRemoteNamespace + (*CreateNvmeRemoteControllerRequest)(nil), // 6: opi_api.storage.v1.CreateNvmeRemoteControllerRequest + (*DeleteNvmeRemoteControllerRequest)(nil), // 7: opi_api.storage.v1.DeleteNvmeRemoteControllerRequest + (*UpdateNvmeRemoteControllerRequest)(nil), // 8: opi_api.storage.v1.UpdateNvmeRemoteControllerRequest + (*ListNvmeRemoteControllersRequest)(nil), // 9: opi_api.storage.v1.ListNvmeRemoteControllersRequest + (*ListNvmeRemoteControllersResponse)(nil), // 10: opi_api.storage.v1.ListNvmeRemoteControllersResponse + (*GetNvmeRemoteControllerRequest)(nil), // 11: opi_api.storage.v1.GetNvmeRemoteControllerRequest + (*ResetNvmeRemoteControllerRequest)(nil), // 12: opi_api.storage.v1.ResetNvmeRemoteControllerRequest + (*StatsNvmeRemoteControllerRequest)(nil), // 13: opi_api.storage.v1.StatsNvmeRemoteControllerRequest + (*StatsNvmeRemoteControllerResponse)(nil), // 14: opi_api.storage.v1.StatsNvmeRemoteControllerResponse + (*ListNvmeRemoteNamespacesRequest)(nil), // 15: opi_api.storage.v1.ListNvmeRemoteNamespacesRequest + (*ListNvmeRemoteNamespacesResponse)(nil), // 16: opi_api.storage.v1.ListNvmeRemoteNamespacesResponse + (*GetNvmeRemoteNamespaceRequest)(nil), // 17: opi_api.storage.v1.GetNvmeRemoteNamespaceRequest + (*CreateNvmePathRequest)(nil), // 18: opi_api.storage.v1.CreateNvmePathRequest + (*DeleteNvmePathRequest)(nil), // 19: opi_api.storage.v1.DeleteNvmePathRequest + (*UpdateNvmePathRequest)(nil), // 20: opi_api.storage.v1.UpdateNvmePathRequest + (*ListNvmePathsRequest)(nil), // 21: opi_api.storage.v1.ListNvmePathsRequest + (*ListNvmePathsResponse)(nil), // 22: opi_api.storage.v1.ListNvmePathsResponse + (*GetNvmePathRequest)(nil), // 23: opi_api.storage.v1.GetNvmePathRequest + (*StatsNvmePathRequest)(nil), // 24: opi_api.storage.v1.StatsNvmePathRequest + (*StatsNvmePathResponse)(nil), // 25: opi_api.storage.v1.StatsNvmePathResponse + (NvmeTransportType)(0), // 26: opi_api.storage.v1.NvmeTransportType + (NvmeAddressFamily)(0), // 27: opi_api.storage.v1.NvmeAddressFamily (*_go.Uuid)(nil), // 28: opi_api.common.v1.Uuid (*fieldmaskpb.FieldMask)(nil), // 29: google.protobuf.FieldMask (*VolumeStats)(nil), // 30: opi_api.storage.v1.VolumeStats (*emptypb.Empty)(nil), // 31: google.protobuf.Empty } var file_backend_nvme_tcp_proto_depIdxs = []int32{ - 2, // 0: opi_api.storage.v1.NvmeRemoteController.multipath:type_name -> opi_api.storage.v1.NvmeMultipath - 4, // 1: opi_api.storage.v1.NvmeRemoteController.tcp:type_name -> opi_api.storage.v1.TcpController - 0, // 2: opi_api.storage.v1.NvmePath.trtype:type_name -> opi_api.storage.v1.NvmeTransportType - 6, // 3: opi_api.storage.v1.NvmePath.fabrics:type_name -> opi_api.storage.v1.FabricsPath - 1, // 4: opi_api.storage.v1.FabricsPath.adrfam:type_name -> opi_api.storage.v1.NvmeAddressFamily + 0, // 0: opi_api.storage.v1.NvmeRemoteController.multipath:type_name -> opi_api.storage.v1.NvmeMultipath + 2, // 1: opi_api.storage.v1.NvmeRemoteController.tcp:type_name -> opi_api.storage.v1.TcpController + 26, // 2: opi_api.storage.v1.NvmePath.trtype:type_name -> opi_api.storage.v1.NvmeTransportType + 4, // 3: opi_api.storage.v1.NvmePath.fabrics:type_name -> opi_api.storage.v1.FabricsPath + 27, // 4: opi_api.storage.v1.FabricsPath.adrfam:type_name -> opi_api.storage.v1.NvmeAddressFamily 28, // 5: opi_api.storage.v1.NvmeRemoteNamespace.uuid:type_name -> opi_api.common.v1.Uuid - 3, // 6: opi_api.storage.v1.CreateNvmeRemoteControllerRequest.nvme_remote_controller:type_name -> opi_api.storage.v1.NvmeRemoteController - 3, // 7: opi_api.storage.v1.UpdateNvmeRemoteControllerRequest.nvme_remote_controller:type_name -> opi_api.storage.v1.NvmeRemoteController + 1, // 6: opi_api.storage.v1.CreateNvmeRemoteControllerRequest.nvme_remote_controller:type_name -> opi_api.storage.v1.NvmeRemoteController + 1, // 7: opi_api.storage.v1.UpdateNvmeRemoteControllerRequest.nvme_remote_controller:type_name -> opi_api.storage.v1.NvmeRemoteController 29, // 8: opi_api.storage.v1.UpdateNvmeRemoteControllerRequest.update_mask:type_name -> google.protobuf.FieldMask - 3, // 9: opi_api.storage.v1.ListNvmeRemoteControllersResponse.nvme_remote_controllers:type_name -> opi_api.storage.v1.NvmeRemoteController + 1, // 9: opi_api.storage.v1.ListNvmeRemoteControllersResponse.nvme_remote_controllers:type_name -> opi_api.storage.v1.NvmeRemoteController 30, // 10: opi_api.storage.v1.StatsNvmeRemoteControllerResponse.stats:type_name -> opi_api.storage.v1.VolumeStats - 7, // 11: opi_api.storage.v1.ListNvmeRemoteNamespacesResponse.nvme_remote_namespaces:type_name -> opi_api.storage.v1.NvmeRemoteNamespace - 5, // 12: opi_api.storage.v1.CreateNvmePathRequest.nvme_path:type_name -> opi_api.storage.v1.NvmePath - 5, // 13: opi_api.storage.v1.UpdateNvmePathRequest.nvme_path:type_name -> opi_api.storage.v1.NvmePath + 5, // 11: opi_api.storage.v1.ListNvmeRemoteNamespacesResponse.nvme_remote_namespaces:type_name -> opi_api.storage.v1.NvmeRemoteNamespace + 3, // 12: opi_api.storage.v1.CreateNvmePathRequest.nvme_path:type_name -> opi_api.storage.v1.NvmePath + 3, // 13: opi_api.storage.v1.UpdateNvmePathRequest.nvme_path:type_name -> opi_api.storage.v1.NvmePath 29, // 14: opi_api.storage.v1.UpdateNvmePathRequest.update_mask:type_name -> google.protobuf.FieldMask - 5, // 15: opi_api.storage.v1.ListNvmePathsResponse.nvme_paths:type_name -> opi_api.storage.v1.NvmePath + 3, // 15: opi_api.storage.v1.ListNvmePathsResponse.nvme_paths:type_name -> opi_api.storage.v1.NvmePath 30, // 16: opi_api.storage.v1.StatsNvmePathResponse.stats:type_name -> opi_api.storage.v1.VolumeStats - 8, // 17: opi_api.storage.v1.NvmeRemoteControllerService.CreateNvmeRemoteController:input_type -> opi_api.storage.v1.CreateNvmeRemoteControllerRequest - 9, // 18: opi_api.storage.v1.NvmeRemoteControllerService.DeleteNvmeRemoteController:input_type -> opi_api.storage.v1.DeleteNvmeRemoteControllerRequest - 10, // 19: opi_api.storage.v1.NvmeRemoteControllerService.UpdateNvmeRemoteController:input_type -> opi_api.storage.v1.UpdateNvmeRemoteControllerRequest - 11, // 20: opi_api.storage.v1.NvmeRemoteControllerService.ListNvmeRemoteControllers:input_type -> opi_api.storage.v1.ListNvmeRemoteControllersRequest - 13, // 21: opi_api.storage.v1.NvmeRemoteControllerService.GetNvmeRemoteController:input_type -> opi_api.storage.v1.GetNvmeRemoteControllerRequest - 14, // 22: opi_api.storage.v1.NvmeRemoteControllerService.ResetNvmeRemoteController:input_type -> opi_api.storage.v1.ResetNvmeRemoteControllerRequest - 15, // 23: opi_api.storage.v1.NvmeRemoteControllerService.StatsNvmeRemoteController:input_type -> opi_api.storage.v1.StatsNvmeRemoteControllerRequest - 17, // 24: opi_api.storage.v1.NvmeRemoteControllerService.ListNvmeRemoteNamespaces:input_type -> opi_api.storage.v1.ListNvmeRemoteNamespacesRequest - 19, // 25: opi_api.storage.v1.NvmeRemoteControllerService.GetNvmeRemoteNamespace:input_type -> opi_api.storage.v1.GetNvmeRemoteNamespaceRequest - 20, // 26: opi_api.storage.v1.NvmeRemoteControllerService.CreateNvmePath:input_type -> opi_api.storage.v1.CreateNvmePathRequest - 21, // 27: opi_api.storage.v1.NvmeRemoteControllerService.DeleteNvmePath:input_type -> opi_api.storage.v1.DeleteNvmePathRequest - 22, // 28: opi_api.storage.v1.NvmeRemoteControllerService.UpdateNvmePath:input_type -> opi_api.storage.v1.UpdateNvmePathRequest - 23, // 29: opi_api.storage.v1.NvmeRemoteControllerService.ListNvmePaths:input_type -> opi_api.storage.v1.ListNvmePathsRequest - 25, // 30: opi_api.storage.v1.NvmeRemoteControllerService.GetNvmePath:input_type -> opi_api.storage.v1.GetNvmePathRequest - 26, // 31: opi_api.storage.v1.NvmeRemoteControllerService.StatsNvmePath:input_type -> opi_api.storage.v1.StatsNvmePathRequest - 3, // 32: opi_api.storage.v1.NvmeRemoteControllerService.CreateNvmeRemoteController:output_type -> opi_api.storage.v1.NvmeRemoteController + 6, // 17: opi_api.storage.v1.NvmeRemoteControllerService.CreateNvmeRemoteController:input_type -> opi_api.storage.v1.CreateNvmeRemoteControllerRequest + 7, // 18: opi_api.storage.v1.NvmeRemoteControllerService.DeleteNvmeRemoteController:input_type -> opi_api.storage.v1.DeleteNvmeRemoteControllerRequest + 8, // 19: opi_api.storage.v1.NvmeRemoteControllerService.UpdateNvmeRemoteController:input_type -> opi_api.storage.v1.UpdateNvmeRemoteControllerRequest + 9, // 20: opi_api.storage.v1.NvmeRemoteControllerService.ListNvmeRemoteControllers:input_type -> opi_api.storage.v1.ListNvmeRemoteControllersRequest + 11, // 21: opi_api.storage.v1.NvmeRemoteControllerService.GetNvmeRemoteController:input_type -> opi_api.storage.v1.GetNvmeRemoteControllerRequest + 12, // 22: opi_api.storage.v1.NvmeRemoteControllerService.ResetNvmeRemoteController:input_type -> opi_api.storage.v1.ResetNvmeRemoteControllerRequest + 13, // 23: opi_api.storage.v1.NvmeRemoteControllerService.StatsNvmeRemoteController:input_type -> opi_api.storage.v1.StatsNvmeRemoteControllerRequest + 15, // 24: opi_api.storage.v1.NvmeRemoteControllerService.ListNvmeRemoteNamespaces:input_type -> opi_api.storage.v1.ListNvmeRemoteNamespacesRequest + 17, // 25: opi_api.storage.v1.NvmeRemoteControllerService.GetNvmeRemoteNamespace:input_type -> opi_api.storage.v1.GetNvmeRemoteNamespaceRequest + 18, // 26: opi_api.storage.v1.NvmeRemoteControllerService.CreateNvmePath:input_type -> opi_api.storage.v1.CreateNvmePathRequest + 19, // 27: opi_api.storage.v1.NvmeRemoteControllerService.DeleteNvmePath:input_type -> opi_api.storage.v1.DeleteNvmePathRequest + 20, // 28: opi_api.storage.v1.NvmeRemoteControllerService.UpdateNvmePath:input_type -> opi_api.storage.v1.UpdateNvmePathRequest + 21, // 29: opi_api.storage.v1.NvmeRemoteControllerService.ListNvmePaths:input_type -> opi_api.storage.v1.ListNvmePathsRequest + 23, // 30: opi_api.storage.v1.NvmeRemoteControllerService.GetNvmePath:input_type -> opi_api.storage.v1.GetNvmePathRequest + 24, // 31: opi_api.storage.v1.NvmeRemoteControllerService.StatsNvmePath:input_type -> opi_api.storage.v1.StatsNvmePathRequest + 1, // 32: opi_api.storage.v1.NvmeRemoteControllerService.CreateNvmeRemoteController:output_type -> opi_api.storage.v1.NvmeRemoteController 31, // 33: opi_api.storage.v1.NvmeRemoteControllerService.DeleteNvmeRemoteController:output_type -> google.protobuf.Empty - 3, // 34: opi_api.storage.v1.NvmeRemoteControllerService.UpdateNvmeRemoteController:output_type -> opi_api.storage.v1.NvmeRemoteController - 12, // 35: opi_api.storage.v1.NvmeRemoteControllerService.ListNvmeRemoteControllers:output_type -> opi_api.storage.v1.ListNvmeRemoteControllersResponse - 3, // 36: opi_api.storage.v1.NvmeRemoteControllerService.GetNvmeRemoteController:output_type -> opi_api.storage.v1.NvmeRemoteController + 1, // 34: opi_api.storage.v1.NvmeRemoteControllerService.UpdateNvmeRemoteController:output_type -> opi_api.storage.v1.NvmeRemoteController + 10, // 35: opi_api.storage.v1.NvmeRemoteControllerService.ListNvmeRemoteControllers:output_type -> opi_api.storage.v1.ListNvmeRemoteControllersResponse + 1, // 36: opi_api.storage.v1.NvmeRemoteControllerService.GetNvmeRemoteController:output_type -> opi_api.storage.v1.NvmeRemoteController 31, // 37: opi_api.storage.v1.NvmeRemoteControllerService.ResetNvmeRemoteController:output_type -> google.protobuf.Empty - 16, // 38: opi_api.storage.v1.NvmeRemoteControllerService.StatsNvmeRemoteController:output_type -> opi_api.storage.v1.StatsNvmeRemoteControllerResponse - 18, // 39: opi_api.storage.v1.NvmeRemoteControllerService.ListNvmeRemoteNamespaces:output_type -> opi_api.storage.v1.ListNvmeRemoteNamespacesResponse - 7, // 40: opi_api.storage.v1.NvmeRemoteControllerService.GetNvmeRemoteNamespace:output_type -> opi_api.storage.v1.NvmeRemoteNamespace - 5, // 41: opi_api.storage.v1.NvmeRemoteControllerService.CreateNvmePath:output_type -> opi_api.storage.v1.NvmePath + 14, // 38: opi_api.storage.v1.NvmeRemoteControllerService.StatsNvmeRemoteController:output_type -> opi_api.storage.v1.StatsNvmeRemoteControllerResponse + 16, // 39: opi_api.storage.v1.NvmeRemoteControllerService.ListNvmeRemoteNamespaces:output_type -> opi_api.storage.v1.ListNvmeRemoteNamespacesResponse + 5, // 40: opi_api.storage.v1.NvmeRemoteControllerService.GetNvmeRemoteNamespace:output_type -> opi_api.storage.v1.NvmeRemoteNamespace + 3, // 41: opi_api.storage.v1.NvmeRemoteControllerService.CreateNvmePath:output_type -> opi_api.storage.v1.NvmePath 31, // 42: opi_api.storage.v1.NvmeRemoteControllerService.DeleteNvmePath:output_type -> google.protobuf.Empty - 5, // 43: opi_api.storage.v1.NvmeRemoteControllerService.UpdateNvmePath:output_type -> opi_api.storage.v1.NvmePath - 24, // 44: opi_api.storage.v1.NvmeRemoteControllerService.ListNvmePaths:output_type -> opi_api.storage.v1.ListNvmePathsResponse - 5, // 45: opi_api.storage.v1.NvmeRemoteControllerService.GetNvmePath:output_type -> opi_api.storage.v1.NvmePath - 27, // 46: opi_api.storage.v1.NvmeRemoteControllerService.StatsNvmePath:output_type -> opi_api.storage.v1.StatsNvmePathResponse + 3, // 43: opi_api.storage.v1.NvmeRemoteControllerService.UpdateNvmePath:output_type -> opi_api.storage.v1.NvmePath + 22, // 44: opi_api.storage.v1.NvmeRemoteControllerService.ListNvmePaths:output_type -> opi_api.storage.v1.ListNvmePathsResponse + 3, // 45: opi_api.storage.v1.NvmeRemoteControllerService.GetNvmePath:output_type -> opi_api.storage.v1.NvmePath + 25, // 46: opi_api.storage.v1.NvmeRemoteControllerService.StatsNvmePath:output_type -> opi_api.storage.v1.StatsNvmePathResponse 32, // [32:47] is the sub-list for method output_type 17, // [17:32] is the sub-list for method input_type 17, // [17:17] is the sub-list for extension type_name @@ -2710,7 +2558,7 @@ func file_backend_nvme_tcp_proto_init() { File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_backend_nvme_tcp_proto_rawDesc, - NumEnums: 3, + NumEnums: 1, NumMessages: 25, NumExtensions: 0, NumServices: 1, diff --git a/storage/v1alpha1/gen/go/frontend_nvme_pcie.pb.go b/storage/v1alpha1/gen/go/frontend_nvme_pcie.pb.go index cdc64dbe..f092a695 100644 --- a/storage/v1alpha1/gen/go/frontend_nvme_pcie.pb.go +++ b/storage/v1alpha1/gen/go/frontend_nvme_pcie.pb.go @@ -422,27 +422,36 @@ type NvmeControllerSpec struct { // subsystem controller id range: 0 to 65535. // must not be reused under the same subsystem NvmeControllerId *int32 `protobuf:"varint,1,opt,name=nvme_controller_id,json=nvmeControllerId,proto3,oneof" json:"nvme_controller_id,omitempty"` - // xPU's PCI ID for the controller - PcieId *PciEndpoint `protobuf:"bytes,3,opt,name=pcie_id,json=pcieId,proto3" json:"pcie_id,omitempty"` + // transport type + Trtype NvmeTransportType `protobuf:"varint,2,opt,name=trtype,proto3,enum=opi_api.storage.v1.NvmeTransportType" json:"trtype,omitempty"` + // xPU's PCI/Fabrics endpoint for the controller. + // One of the values is required + // see https://github.com/aip-dev/google.aip.dev/issues/1147 for field_behavior annotations + // + // Types that are assignable to Endpoint: + // + // *NvmeControllerSpec_PcieId + // *NvmeControllerSpec_FabricsId + Endpoint isNvmeControllerSpec_Endpoint `protobuf_oneof:"endpoint"` // maximum number of host submission queues allowed. // If not set, the xPU will provide a default. - MaxNsq int32 `protobuf:"varint,4,opt,name=max_nsq,json=maxNsq,proto3" json:"max_nsq,omitempty"` + MaxNsq int32 `protobuf:"varint,5,opt,name=max_nsq,json=maxNsq,proto3" json:"max_nsq,omitempty"` // maximum number of host completion queues allowed. // If not set, the xPU will provide a default. - MaxNcq int32 `protobuf:"varint,5,opt,name=max_ncq,json=maxNcq,proto3" json:"max_ncq,omitempty"` + MaxNcq int32 `protobuf:"varint,6,opt,name=max_ncq,json=maxNcq,proto3" json:"max_ncq,omitempty"` // maximum number of submission queue entries per submission queue, as a power of 2. // default value as per spec is 6 - Sqes int32 `protobuf:"varint,6,opt,name=sqes,proto3" json:"sqes,omitempty"` + Sqes int32 `protobuf:"varint,7,opt,name=sqes,proto3" json:"sqes,omitempty"` // maximum number of completion queue entries per completion queue, as a power of 2. // default value as per spec is 4 - Cqes int32 `protobuf:"varint,7,opt,name=cqes,proto3" json:"cqes,omitempty"` + Cqes int32 `protobuf:"varint,8,opt,name=cqes,proto3" json:"cqes,omitempty"` // maximum Number of namespaces that will be provisioned under // the controller. - MaxNamespaces int32 `protobuf:"varint,8,opt,name=max_namespaces,json=maxNamespaces,proto3" json:"max_namespaces,omitempty"` + MaxNamespaces int32 `protobuf:"varint,9,opt,name=max_namespaces,json=maxNamespaces,proto3" json:"max_namespaces,omitempty"` // min QoS limits for the controller - MinLimit *QosLimit `protobuf:"bytes,9,opt,name=min_limit,json=minLimit,proto3" json:"min_limit,omitempty"` + MinLimit *QosLimit `protobuf:"bytes,10,opt,name=min_limit,json=minLimit,proto3" json:"min_limit,omitempty"` // max QoS limits for the controller - MaxLimit *QosLimit `protobuf:"bytes,10,opt,name=max_limit,json=maxLimit,proto3" json:"max_limit,omitempty"` + MaxLimit *QosLimit `protobuf:"bytes,11,opt,name=max_limit,json=maxLimit,proto3" json:"max_limit,omitempty"` } func (x *NvmeControllerSpec) Reset() { @@ -484,13 +493,34 @@ func (x *NvmeControllerSpec) GetNvmeControllerId() int32 { return 0 } -func (x *NvmeControllerSpec) GetPcieId() *PciEndpoint { +func (x *NvmeControllerSpec) GetTrtype() NvmeTransportType { if x != nil { + return x.Trtype + } + return NvmeTransportType_NVME_TRANSPORT_TYPE_UNSPECIFIED +} + +func (m *NvmeControllerSpec) GetEndpoint() isNvmeControllerSpec_Endpoint { + if m != nil { + return m.Endpoint + } + return nil +} + +func (x *NvmeControllerSpec) GetPcieId() *PciEndpoint { + if x, ok := x.GetEndpoint().(*NvmeControllerSpec_PcieId); ok { return x.PcieId } return nil } +func (x *NvmeControllerSpec) GetFabricsId() *FabricsEndpoint { + if x, ok := x.GetEndpoint().(*NvmeControllerSpec_FabricsId); ok { + return x.FabricsId + } + return nil +} + func (x *NvmeControllerSpec) GetMaxNsq() int32 { if x != nil { return x.MaxNsq @@ -540,6 +570,25 @@ func (x *NvmeControllerSpec) GetMaxLimit() *QosLimit { return nil } +type isNvmeControllerSpec_Endpoint interface { + isNvmeControllerSpec_Endpoint() +} + +type NvmeControllerSpec_PcieId struct { + // Required for pcie transport type to expose emulated Pcie Nvme controllers to Host + PcieId *PciEndpoint `protobuf:"bytes,3,opt,name=pcie_id,json=pcieId,proto3,oneof"` +} + +type NvmeControllerSpec_FabricsId struct { + // Required for Nvme over fabrics transport types to create + // Nvme over Fabrics controllers to expose for example local SSDs over a network + FabricsId *FabricsEndpoint `protobuf:"bytes,4,opt,name=fabrics_id,json=fabricsId,proto3,oneof"` +} + +func (*NvmeControllerSpec_PcieId) isNvmeControllerSpec_Endpoint() {} + +func (*NvmeControllerSpec_FabricsId) isNvmeControllerSpec_Endpoint() {} + // Represents Nvme Controller status type NvmeControllerStatus struct { state protoimpl.MessageState @@ -2266,529 +2315,538 @@ var file_frontend_nvme_pcie_proto_rawDesc = []byte{ 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x7d, 0x2a, 0x0f, 0x6e, 0x76, 0x6d, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x73, 0x32, 0x0e, 0x6e, 0x76, 0x6d, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, - 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x22, 0xbc, 0x03, 0x0a, 0x12, 0x4e, 0x76, 0x6d, 0x65, 0x43, 0x6f, + 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x22, 0xd9, 0x04, 0x0a, 0x12, 0x4e, 0x76, 0x6d, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x53, 0x70, 0x65, 0x63, 0x12, 0x36, 0x0a, 0x12, 0x6e, 0x76, 0x6d, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x5f, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x00, 0x52, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x01, 0x52, 0x10, 0x6e, 0x76, 0x6d, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x49, - 0x64, 0x88, 0x01, 0x01, 0x12, 0x3d, 0x0a, 0x07, 0x70, 0x63, 0x69, 0x65, 0x5f, 0x69, 0x64, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, - 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x63, 0x69, 0x45, 0x6e, - 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x70, 0x63, 0x69, - 0x65, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x07, 0x6d, 0x61, 0x78, 0x5f, 0x6e, 0x73, 0x71, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x06, 0x6d, 0x61, 0x78, 0x4e, 0x73, - 0x71, 0x12, 0x1c, 0x0a, 0x07, 0x6d, 0x61, 0x78, 0x5f, 0x6e, 0x63, 0x71, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x06, 0x6d, 0x61, 0x78, 0x4e, 0x63, 0x71, 0x12, - 0x17, 0x0a, 0x04, 0x73, 0x71, 0x65, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, - 0x41, 0x01, 0x52, 0x04, 0x73, 0x71, 0x65, 0x73, 0x12, 0x17, 0x0a, 0x04, 0x63, 0x71, 0x65, 0x73, - 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x04, 0x63, 0x71, 0x65, - 0x73, 0x12, 0x2a, 0x0a, 0x0e, 0x6d, 0x61, 0x78, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, - 0x63, 0x65, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0d, - 0x6d, 0x61, 0x78, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x12, 0x3e, 0x0a, - 0x09, 0x6d, 0x69, 0x6e, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1c, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, - 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x6f, 0x73, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x42, 0x03, - 0xe0, 0x41, 0x01, 0x52, 0x08, 0x6d, 0x69, 0x6e, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x3e, 0x0a, - 0x09, 0x6d, 0x61, 0x78, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1c, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, - 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x6f, 0x73, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x42, 0x03, - 0xe0, 0x41, 0x01, 0x52, 0x08, 0x6d, 0x61, 0x78, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x42, 0x15, 0x0a, - 0x13, 0x5f, 0x6e, 0x76, 0x6d, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, - 0x72, 0x5f, 0x69, 0x64, 0x22, 0x33, 0x0a, 0x14, 0x4e, 0x76, 0x6d, 0x65, 0x43, 0x6f, 0x6e, 0x74, - 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1b, 0x0a, 0x06, - 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, - 0x03, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x22, 0xd7, 0x02, 0x0a, 0x0d, 0x4e, 0x76, - 0x6d, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x3f, 0x0a, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2b, 0xe0, 0x41, 0x03, 0xe0, 0x41, - 0x05, 0xfa, 0x41, 0x22, 0x0a, 0x20, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, - 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2f, 0x4e, 0x76, 0x6d, 0x65, 0x4e, 0x61, 0x6d, - 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x3e, 0x0a, 0x04, - 0x73, 0x70, 0x65, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x70, 0x69, - 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, - 0x4e, 0x76, 0x6d, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x53, 0x70, 0x65, - 0x63, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x04, 0x73, 0x70, 0x65, 0x63, 0x12, 0x44, 0x0a, 0x06, - 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, - 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, - 0x31, 0x2e, 0x4e, 0x76, 0x6d, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x53, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x3a, 0x7f, 0xea, 0x41, 0x7c, 0x0a, 0x24, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, - 0x2e, 0x6f, 0x70, 0x69, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x6f, 0x72, 0x67, 0x2f, - 0x4e, 0x76, 0x6d, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x35, 0x6e, - 0x76, 0x6d, 0x65, 0x53, 0x75, 0x62, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x73, 0x2f, 0x7b, 0x73, - 0x75, 0x62, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x7d, 0x2f, 0x6e, 0x76, 0x6d, 0x65, 0x4e, 0x61, - 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, - 0x61, 0x63, 0x65, 0x7d, 0x2a, 0x0e, 0x6e, 0x76, 0x6d, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, - 0x61, 0x63, 0x65, 0x73, 0x32, 0x0d, 0x6e, 0x76, 0x6d, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, - 0x61, 0x63, 0x65, 0x22, 0xca, 0x01, 0x0a, 0x11, 0x4e, 0x76, 0x6d, 0x65, 0x4e, 0x61, 0x6d, 0x65, - 0x73, 0x70, 0x61, 0x63, 0x65, 0x53, 0x70, 0x65, 0x63, 0x12, 0x20, 0x0a, 0x09, 0x68, 0x6f, 0x73, - 0x74, 0x5f, 0x6e, 0x73, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, - 0x01, 0x52, 0x08, 0x68, 0x6f, 0x73, 0x74, 0x4e, 0x73, 0x69, 0x64, 0x12, 0x19, 0x0a, 0x05, 0x6e, - 0x67, 0x75, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, - 0x05, 0x6e, 0x67, 0x75, 0x69, 0x64, 0x12, 0x19, 0x0a, 0x05, 0x65, 0x75, 0x69, 0x36, 0x34, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x03, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x05, 0x65, 0x75, 0x69, 0x36, - 0x34, 0x12, 0x30, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x17, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, - 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x75, 0x69, 0x64, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x04, 0x75, - 0x75, 0x69, 0x64, 0x12, 0x2b, 0x0a, 0x0f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x6e, 0x61, - 0x6d, 0x65, 0x5f, 0x72, 0x65, 0x66, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, - 0x02, 0x52, 0x0d, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x66, - 0x22, 0xbc, 0x01, 0x0a, 0x13, 0x4e, 0x76, 0x6d, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, - 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x4b, 0x0a, 0x09, 0x70, 0x63, 0x69, 0x5f, - 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x6f, 0x70, - 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, - 0x2e, 0x4e, 0x76, 0x6d, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x50, 0x63, - 0x69, 0x53, 0x74, 0x61, 0x74, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x08, 0x70, 0x63, 0x69, - 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x58, 0x0a, 0x0e, 0x70, 0x63, 0x69, 0x5f, 0x6f, 0x70, 0x65, - 0x72, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, + 0x64, 0x88, 0x01, 0x01, 0x12, 0x42, 0x0a, 0x06, 0x74, 0x72, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, + 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x76, 0x6d, 0x65, 0x54, 0x72, + 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x79, 0x70, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, + 0x52, 0x06, 0x74, 0x72, 0x74, 0x79, 0x70, 0x65, 0x12, 0x3f, 0x0a, 0x07, 0x70, 0x63, 0x69, 0x65, + 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x70, 0x69, 0x5f, + 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x50, + 0x63, 0x69, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, + 0x00, 0x52, 0x06, 0x70, 0x63, 0x69, 0x65, 0x49, 0x64, 0x12, 0x49, 0x0a, 0x0a, 0x66, 0x61, 0x62, + 0x72, 0x69, 0x63, 0x73, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, - 0x76, 0x31, 0x2e, 0x4e, 0x76, 0x6d, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, - 0x50, 0x63, 0x69, 0x4f, 0x70, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x42, 0x03, 0xe0, 0x41, - 0x03, 0x52, 0x0c, 0x70, 0x63, 0x69, 0x4f, 0x70, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x22, - 0x9c, 0x01, 0x0a, 0x1a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x76, 0x6d, 0x65, 0x53, 0x75, - 0x62, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x4d, - 0x0a, 0x0e, 0x6e, 0x76, 0x6d, 0x65, 0x5f, 0x73, 0x75, 0x62, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, - 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x76, 0x6d, 0x65, - 0x53, 0x75, 0x62, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0d, - 0x6e, 0x76, 0x6d, 0x65, 0x53, 0x75, 0x62, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x12, 0x2f, 0x0a, - 0x11, 0x6e, 0x76, 0x6d, 0x65, 0x5f, 0x73, 0x75, 0x62, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, - 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0f, 0x6e, - 0x76, 0x6d, 0x65, 0x53, 0x75, 0x62, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x22, 0x84, - 0x01, 0x0a, 0x1a, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4e, 0x76, 0x6d, 0x65, 0x53, 0x75, 0x62, - 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3c, 0x0a, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x28, 0xe0, 0x41, 0x02, - 0xfa, 0x41, 0x22, 0x0a, 0x20, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, - 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2f, 0x4e, 0x76, 0x6d, 0x65, 0x53, 0x75, 0x62, 0x73, - 0x79, 0x73, 0x74, 0x65, 0x6d, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x28, 0x0a, 0x0d, 0x61, - 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0c, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x4d, 0x69, - 0x73, 0x73, 0x69, 0x6e, 0x67, 0x22, 0xd7, 0x01, 0x0a, 0x1a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x4e, 0x76, 0x6d, 0x65, 0x53, 0x75, 0x62, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x4d, 0x0a, 0x0e, 0x6e, 0x76, 0x6d, 0x65, 0x5f, 0x73, 0x75, 0x62, - 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, - 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, - 0x31, 0x2e, 0x4e, 0x76, 0x6d, 0x65, 0x53, 0x75, 0x62, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x42, - 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0d, 0x6e, 0x76, 0x6d, 0x65, 0x53, 0x75, 0x62, 0x73, 0x79, 0x73, - 0x74, 0x65, 0x6d, 0x12, 0x40, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, - 0x73, 0x6b, 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, 0x46, 0x69, 0x65, 0x6c, 0x64, - 0x4d, 0x61, 0x73, 0x6b, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x4d, 0x61, 0x73, 0x6b, 0x12, 0x28, 0x0a, 0x0d, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x6d, - 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, - 0x01, 0x52, 0x0c, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x4d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x22, - 0x61, 0x0a, 0x19, 0x4c, 0x69, 0x73, 0x74, 0x4e, 0x76, 0x6d, 0x65, 0x53, 0x75, 0x62, 0x73, 0x79, - 0x73, 0x74, 0x65, 0x6d, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x09, - 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x42, - 0x03, 0xe0, 0x41, 0x01, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x22, - 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, - 0x65, 0x6e, 0x22, 0x90, 0x01, 0x0a, 0x1a, 0x4c, 0x69, 0x73, 0x74, 0x4e, 0x76, 0x6d, 0x65, 0x53, - 0x75, 0x62, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x4a, 0x0a, 0x0f, 0x6e, 0x76, 0x6d, 0x65, 0x5f, 0x73, 0x75, 0x62, 0x73, 0x79, 0x73, - 0x74, 0x65, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x70, 0x69, - 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, - 0x4e, 0x76, 0x6d, 0x65, 0x53, 0x75, 0x62, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x52, 0x0e, 0x6e, - 0x76, 0x6d, 0x65, 0x53, 0x75, 0x62, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x26, 0x0a, - 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, - 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x57, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x4e, 0x76, 0x6d, 0x65, - 0x53, 0x75, 0x62, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x3c, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x28, - 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x22, 0x0a, 0x20, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, - 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2f, 0x4e, 0x76, 0x6d, 0x65, 0x53, - 0x75, 0x62, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x59, - 0x0a, 0x19, 0x53, 0x74, 0x61, 0x74, 0x73, 0x4e, 0x76, 0x6d, 0x65, 0x53, 0x75, 0x62, 0x73, 0x79, - 0x73, 0x74, 0x65, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3c, 0x0a, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x28, 0xe0, 0x41, 0x02, 0xfa, 0x41, + 0x76, 0x31, 0x2e, 0x46, 0x61, 0x62, 0x72, 0x69, 0x63, 0x73, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, + 0x6e, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x00, 0x52, 0x09, 0x66, 0x61, 0x62, 0x72, 0x69, + 0x63, 0x73, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x07, 0x6d, 0x61, 0x78, 0x5f, 0x6e, 0x73, 0x71, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x06, 0x6d, 0x61, 0x78, 0x4e, + 0x73, 0x71, 0x12, 0x1c, 0x0a, 0x07, 0x6d, 0x61, 0x78, 0x5f, 0x6e, 0x63, 0x71, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x06, 0x6d, 0x61, 0x78, 0x4e, 0x63, 0x71, + 0x12, 0x17, 0x0a, 0x04, 0x73, 0x71, 0x65, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, + 0xe0, 0x41, 0x01, 0x52, 0x04, 0x73, 0x71, 0x65, 0x73, 0x12, 0x17, 0x0a, 0x04, 0x63, 0x71, 0x65, + 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x04, 0x63, 0x71, + 0x65, 0x73, 0x12, 0x2a, 0x0a, 0x0e, 0x6d, 0x61, 0x78, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, + 0x61, 0x63, 0x65, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, + 0x0d, 0x6d, 0x61, 0x78, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x12, 0x3e, + 0x0a, 0x09, 0x6d, 0x69, 0x6e, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, + 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x6f, 0x73, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x42, + 0x03, 0xe0, 0x41, 0x01, 0x52, 0x08, 0x6d, 0x69, 0x6e, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x3e, + 0x0a, 0x09, 0x6d, 0x61, 0x78, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, + 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x6f, 0x73, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x42, + 0x03, 0xe0, 0x41, 0x01, 0x52, 0x08, 0x6d, 0x61, 0x78, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x42, 0x0a, + 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x6e, + 0x76, 0x6d, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x5f, 0x69, + 0x64, 0x22, 0x33, 0x0a, 0x14, 0x4e, 0x76, 0x6d, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, + 0x6c, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1b, 0x0a, 0x06, 0x61, 0x63, 0x74, + 0x69, 0x76, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x06, + 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x22, 0xd7, 0x02, 0x0a, 0x0d, 0x4e, 0x76, 0x6d, 0x65, 0x4e, + 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x3f, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2b, 0xe0, 0x41, 0x03, 0xe0, 0x41, 0x05, 0xfa, 0x41, 0x22, 0x0a, 0x20, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, - 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2f, 0x4e, 0x76, 0x6d, 0x65, 0x53, 0x75, 0x62, 0x73, 0x79, 0x73, - 0x74, 0x65, 0x6d, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x53, 0x0a, 0x1a, 0x53, 0x74, 0x61, - 0x74, 0x73, 0x4e, 0x76, 0x6d, 0x65, 0x53, 0x75, 0x62, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x35, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x73, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, - 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x6f, 0x6c, 0x75, - 0x6d, 0x65, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x73, 0x22, 0xe4, - 0x01, 0x0a, 0x1b, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x76, 0x6d, 0x65, 0x43, 0x6f, 0x6e, - 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x40, - 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x28, - 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x22, 0x0a, 0x20, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, - 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2f, 0x4e, 0x76, 0x6d, 0x65, 0x53, - 0x75, 0x62, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, - 0x12, 0x50, 0x0a, 0x0f, 0x6e, 0x76, 0x6d, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, - 0x6c, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x70, 0x69, 0x5f, - 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4e, - 0x76, 0x6d, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x42, 0x03, 0xe0, - 0x41, 0x02, 0x52, 0x0e, 0x6e, 0x76, 0x6d, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, - 0x65, 0x72, 0x12, 0x31, 0x0a, 0x12, 0x6e, 0x76, 0x6d, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, - 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, - 0xe0, 0x41, 0x01, 0x52, 0x10, 0x6e, 0x76, 0x6d, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, - 0x6c, 0x65, 0x72, 0x49, 0x64, 0x22, 0x86, 0x01, 0x0a, 0x1b, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, - 0x4e, 0x76, 0x6d, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3d, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x42, 0x29, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x23, 0x0a, 0x21, 0x6f, 0x70, 0x69, - 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2f, - 0x4e, 0x76, 0x6d, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x52, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x28, 0x0a, 0x0d, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x6d, 0x69, - 0x73, 0x73, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x01, - 0x52, 0x0c, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x4d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x22, 0xdb, - 0x01, 0x0a, 0x1b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x76, 0x6d, 0x65, 0x43, 0x6f, 0x6e, - 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x50, - 0x0a, 0x0f, 0x6e, 0x76, 0x6d, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, - 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, + 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2f, 0x4e, 0x76, 0x6d, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, + 0x61, 0x63, 0x65, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x3e, 0x0a, 0x04, 0x73, 0x70, 0x65, + 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x76, 0x6d, - 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x42, 0x03, 0xe0, 0x41, 0x02, - 0x52, 0x0e, 0x6e, 0x76, 0x6d, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, + 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x53, 0x70, 0x65, 0x63, 0x42, 0x03, + 0xe0, 0x41, 0x02, 0x52, 0x04, 0x73, 0x70, 0x65, 0x63, 0x12, 0x44, 0x0a, 0x06, 0x73, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x70, 0x69, 0x5f, + 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4e, + 0x76, 0x6d, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x3a, + 0x7f, 0xea, 0x41, 0x7c, 0x0a, 0x24, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x6f, 0x70, + 0x69, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x4e, 0x76, 0x6d, + 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x35, 0x6e, 0x76, 0x6d, 0x65, + 0x53, 0x75, 0x62, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x73, 0x2f, 0x7b, 0x73, 0x75, 0x62, 0x73, + 0x79, 0x73, 0x74, 0x65, 0x6d, 0x7d, 0x2f, 0x6e, 0x76, 0x6d, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, + 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, + 0x7d, 0x2a, 0x0e, 0x6e, 0x76, 0x6d, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, + 0x73, 0x32, 0x0d, 0x6e, 0x76, 0x6d, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, + 0x22, 0xca, 0x01, 0x0a, 0x11, 0x4e, 0x76, 0x6d, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, + 0x63, 0x65, 0x53, 0x70, 0x65, 0x63, 0x12, 0x20, 0x0a, 0x09, 0x68, 0x6f, 0x73, 0x74, 0x5f, 0x6e, + 0x73, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x08, + 0x68, 0x6f, 0x73, 0x74, 0x4e, 0x73, 0x69, 0x64, 0x12, 0x19, 0x0a, 0x05, 0x6e, 0x67, 0x75, 0x69, + 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x05, 0x6e, 0x67, + 0x75, 0x69, 0x64, 0x12, 0x19, 0x0a, 0x05, 0x65, 0x75, 0x69, 0x36, 0x34, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x03, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x05, 0x65, 0x75, 0x69, 0x36, 0x34, 0x12, 0x30, + 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, + 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x31, + 0x2e, 0x55, 0x75, 0x69, 0x64, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, + 0x12, 0x2b, 0x0a, 0x0f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x5f, + 0x72, 0x65, 0x66, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0d, + 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x66, 0x22, 0xbc, 0x01, + 0x0a, 0x13, 0x4e, 0x76, 0x6d, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x4b, 0x0a, 0x09, 0x70, 0x63, 0x69, 0x5f, 0x73, 0x74, 0x61, + 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, + 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x76, + 0x6d, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x50, 0x63, 0x69, 0x53, 0x74, + 0x61, 0x74, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x08, 0x70, 0x63, 0x69, 0x53, 0x74, 0x61, + 0x74, 0x65, 0x12, 0x58, 0x0a, 0x0e, 0x70, 0x63, 0x69, 0x5f, 0x6f, 0x70, 0x65, 0x72, 0x5f, 0x73, + 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x6f, 0x70, 0x69, + 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, + 0x4e, 0x76, 0x6d, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x50, 0x63, 0x69, + 0x4f, 0x70, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0c, + 0x70, 0x63, 0x69, 0x4f, 0x70, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x22, 0x9c, 0x01, 0x0a, + 0x1a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x76, 0x6d, 0x65, 0x53, 0x75, 0x62, 0x73, 0x79, + 0x73, 0x74, 0x65, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x4d, 0x0a, 0x0e, 0x6e, + 0x76, 0x6d, 0x65, 0x5f, 0x73, 0x75, 0x62, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, + 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x76, 0x6d, 0x65, 0x53, 0x75, 0x62, + 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0d, 0x6e, 0x76, 0x6d, + 0x65, 0x53, 0x75, 0x62, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x12, 0x2f, 0x0a, 0x11, 0x6e, 0x76, + 0x6d, 0x65, 0x5f, 0x73, 0x75, 0x62, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x69, 0x64, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0f, 0x6e, 0x76, 0x6d, 0x65, + 0x53, 0x75, 0x62, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x22, 0x84, 0x01, 0x0a, 0x1a, + 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4e, 0x76, 0x6d, 0x65, 0x53, 0x75, 0x62, 0x73, 0x79, 0x73, + 0x74, 0x65, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3c, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x28, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x22, + 0x0a, 0x20, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, + 0x65, 0x2e, 0x76, 0x31, 0x2f, 0x4e, 0x76, 0x6d, 0x65, 0x53, 0x75, 0x62, 0x73, 0x79, 0x73, 0x74, + 0x65, 0x6d, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x28, 0x0a, 0x0d, 0x61, 0x6c, 0x6c, 0x6f, + 0x77, 0x5f, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x42, + 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0c, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x4d, 0x69, 0x73, 0x73, 0x69, + 0x6e, 0x67, 0x22, 0xd7, 0x01, 0x0a, 0x1a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x76, 0x6d, + 0x65, 0x53, 0x75, 0x62, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x4d, 0x0a, 0x0e, 0x6e, 0x76, 0x6d, 0x65, 0x5f, 0x73, 0x75, 0x62, 0x73, 0x79, 0x73, + 0x74, 0x65, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x70, 0x69, 0x5f, + 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4e, + 0x76, 0x6d, 0x65, 0x53, 0x75, 0x62, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x42, 0x03, 0xe0, 0x41, + 0x02, 0x52, 0x0d, 0x6e, 0x76, 0x6d, 0x65, 0x53, 0x75, 0x62, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x12, 0x40, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 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, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x73, 0x6b, 0x12, 0x28, 0x0a, 0x0d, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0c, - 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x4d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x22, 0xa5, 0x01, 0x0a, - 0x1a, 0x4c, 0x69, 0x73, 0x74, 0x4e, 0x76, 0x6d, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, - 0x6c, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x41, 0x0a, 0x06, 0x70, - 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x29, 0xe0, 0x41, 0x02, - 0xfa, 0x41, 0x23, 0x0a, 0x21, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, - 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2f, 0x4e, 0x76, 0x6d, 0x65, 0x43, 0x6f, 0x6e, 0x74, - 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x20, - 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x05, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, - 0x12, 0x22, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, - 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x94, 0x01, 0x0a, 0x1b, 0x4c, 0x69, 0x73, 0x74, 0x4e, 0x76, 0x6d, - 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4d, 0x0a, 0x10, 0x6e, 0x76, 0x6d, 0x65, 0x5f, 0x63, 0x6f, 0x6e, - 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, - 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, - 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x76, 0x6d, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, - 0x65, 0x72, 0x52, 0x0f, 0x6e, 0x76, 0x6d, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, - 0x65, 0x72, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, - 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, - 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x59, 0x0a, 0x18, 0x47, - 0x65, 0x74, 0x4e, 0x76, 0x6d, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3d, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x29, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x23, 0x0a, 0x21, 0x6f, - 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, - 0x31, 0x2f, 0x4e, 0x76, 0x6d, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, - 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x5b, 0x0a, 0x1a, 0x53, 0x74, 0x61, 0x74, 0x73, 0x4e, + 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x4d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x22, 0x61, 0x0a, 0x19, + 0x4c, 0x69, 0x73, 0x74, 0x4e, 0x76, 0x6d, 0x65, 0x53, 0x75, 0x62, 0x73, 0x79, 0x73, 0x74, 0x65, + 0x6d, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x09, 0x70, 0x61, 0x67, + 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, + 0x01, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x22, 0x0a, 0x0a, 0x70, + 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, + 0x90, 0x01, 0x0a, 0x1a, 0x4c, 0x69, 0x73, 0x74, 0x4e, 0x76, 0x6d, 0x65, 0x53, 0x75, 0x62, 0x73, + 0x79, 0x73, 0x74, 0x65, 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4a, + 0x0a, 0x0f, 0x6e, 0x76, 0x6d, 0x65, 0x5f, 0x73, 0x75, 0x62, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, + 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, + 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x76, 0x6d, + 0x65, 0x53, 0x75, 0x62, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x52, 0x0e, 0x6e, 0x76, 0x6d, 0x65, + 0x53, 0x75, 0x62, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, + 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, + 0x65, 0x6e, 0x22, 0x57, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x4e, 0x76, 0x6d, 0x65, 0x53, 0x75, 0x62, + 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3c, 0x0a, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x28, 0xe0, 0x41, 0x02, + 0xfa, 0x41, 0x22, 0x0a, 0x20, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, + 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2f, 0x4e, 0x76, 0x6d, 0x65, 0x53, 0x75, 0x62, 0x73, + 0x79, 0x73, 0x74, 0x65, 0x6d, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x59, 0x0a, 0x19, 0x53, + 0x74, 0x61, 0x74, 0x73, 0x4e, 0x76, 0x6d, 0x65, 0x53, 0x75, 0x62, 0x73, 0x79, 0x73, 0x74, 0x65, + 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3c, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x28, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x22, 0x0a, 0x20, + 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, + 0x76, 0x31, 0x2f, 0x4e, 0x76, 0x6d, 0x65, 0x53, 0x75, 0x62, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, + 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x53, 0x0a, 0x1a, 0x53, 0x74, 0x61, 0x74, 0x73, 0x4e, + 0x76, 0x6d, 0x65, 0x53, 0x75, 0x62, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x35, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, + 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x53, + 0x74, 0x61, 0x74, 0x73, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x73, 0x22, 0xe4, 0x01, 0x0a, 0x1b, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x76, 0x6d, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, + 0x6c, 0x6c, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x40, 0x0a, 0x06, 0x70, + 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x28, 0xe0, 0x41, 0x02, + 0xfa, 0x41, 0x22, 0x0a, 0x20, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, + 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2f, 0x4e, 0x76, 0x6d, 0x65, 0x53, 0x75, 0x62, 0x73, + 0x79, 0x73, 0x74, 0x65, 0x6d, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x50, 0x0a, + 0x0f, 0x6e, 0x76, 0x6d, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, + 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x76, 0x6d, 0x65, + 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, + 0x0e, 0x6e, 0x76, 0x6d, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x12, + 0x31, 0x0a, 0x12, 0x6e, 0x76, 0x6d, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, + 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, + 0x52, 0x10, 0x6e, 0x76, 0x6d, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, + 0x49, 0x64, 0x22, 0x86, 0x01, 0x0a, 0x1b, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4e, 0x76, 0x6d, + 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x3d, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x29, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x23, 0x0a, 0x21, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, + 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2f, 0x4e, 0x76, 0x6d, + 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x52, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x12, 0x28, 0x0a, 0x0d, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x6d, 0x69, 0x73, 0x73, 0x69, + 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0c, 0x61, + 0x6c, 0x6c, 0x6f, 0x77, 0x4d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x22, 0xdb, 0x01, 0x0a, 0x1b, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x76, 0x6d, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, + 0x6c, 0x6c, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x50, 0x0a, 0x0f, 0x6e, + 0x76, 0x6d, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, + 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x76, 0x6d, 0x65, 0x43, 0x6f, + 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0e, 0x6e, + 0x76, 0x6d, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x12, 0x40, 0x0a, + 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 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, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x42, 0x03, + 0xe0, 0x41, 0x01, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x73, 0x6b, 0x12, + 0x28, 0x0a, 0x0d, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0c, 0x61, 0x6c, 0x6c, + 0x6f, 0x77, 0x4d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x22, 0xa5, 0x01, 0x0a, 0x1a, 0x4c, 0x69, + 0x73, 0x74, 0x4e, 0x76, 0x6d, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x41, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, + 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x29, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x23, + 0x0a, 0x21, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, + 0x65, 0x2e, 0x76, 0x31, 0x2f, 0x4e, 0x76, 0x6d, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, + 0x6c, 0x65, 0x72, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x20, 0x0a, 0x09, 0x70, + 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, + 0xe0, 0x41, 0x01, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x22, 0x0a, + 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, + 0x6e, 0x22, 0x94, 0x01, 0x0a, 0x1b, 0x4c, 0x69, 0x73, 0x74, 0x4e, 0x76, 0x6d, 0x65, 0x43, 0x6f, + 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x4d, 0x0a, 0x10, 0x6e, 0x76, 0x6d, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, + 0x6c, 0x6c, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x70, + 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, + 0x2e, 0x4e, 0x76, 0x6d, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x52, + 0x0f, 0x6e, 0x76, 0x6d, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x73, + 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, + 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, + 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x59, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x4e, 0x76, 0x6d, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3d, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x29, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x23, 0x0a, 0x21, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2f, 0x4e, 0x76, 0x6d, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x52, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x22, 0x54, 0x0a, 0x1b, 0x53, 0x74, 0x61, 0x74, 0x73, 0x4e, 0x76, 0x6d, 0x65, - 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x35, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, - 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x53, 0x74, 0x61, - 0x74, 0x73, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x73, 0x22, 0xde, 0x01, 0x0a, 0x1a, 0x43, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x4e, 0x76, 0x6d, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, - 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x40, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, - 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x28, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x22, - 0x0a, 0x20, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, - 0x65, 0x2e, 0x76, 0x31, 0x2f, 0x4e, 0x76, 0x6d, 0x65, 0x53, 0x75, 0x62, 0x73, 0x79, 0x73, 0x74, - 0x65, 0x6d, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x4d, 0x0a, 0x0e, 0x6e, 0x76, - 0x6d, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, - 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x76, 0x6d, 0x65, 0x4e, 0x61, 0x6d, 0x65, - 0x73, 0x70, 0x61, 0x63, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0d, 0x6e, 0x76, 0x6d, 0x65, - 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x2f, 0x0a, 0x11, 0x6e, 0x76, 0x6d, - 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0f, 0x6e, 0x76, 0x6d, 0x65, 0x4e, - 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x49, 0x64, 0x22, 0x84, 0x01, 0x0a, 0x1a, 0x44, - 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4e, 0x76, 0x6d, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, - 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3c, 0x0a, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x28, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x22, 0x0a, - 0x20, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, - 0x2e, 0x76, 0x31, 0x2f, 0x4e, 0x76, 0x6d, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, - 0x65, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x28, 0x0a, 0x0d, 0x61, 0x6c, 0x6c, 0x6f, 0x77, - 0x5f, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, - 0xe0, 0x41, 0x01, 0x52, 0x0c, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x4d, 0x69, 0x73, 0x73, 0x69, 0x6e, - 0x67, 0x22, 0xd7, 0x01, 0x0a, 0x1a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x76, 0x6d, 0x65, - 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x4d, 0x0a, 0x0e, 0x6e, 0x76, 0x6d, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, - 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, - 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x76, - 0x6d, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, - 0x52, 0x0d, 0x6e, 0x76, 0x6d, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, - 0x40, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 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, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, - 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x73, - 0x6b, 0x12, 0x28, 0x0a, 0x0d, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x6d, 0x69, 0x73, 0x73, 0x69, - 0x6e, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0c, 0x61, - 0x6c, 0x6c, 0x6f, 0x77, 0x4d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x22, 0xa3, 0x01, 0x0a, 0x19, - 0x4c, 0x69, 0x73, 0x74, 0x4e, 0x76, 0x6d, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, - 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x40, 0x0a, 0x06, 0x70, 0x61, 0x72, - 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x28, 0xe0, 0x41, 0x02, 0xfa, 0x41, - 0x22, 0x0a, 0x20, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, - 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2f, 0x4e, 0x76, 0x6d, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, - 0x61, 0x63, 0x65, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x20, 0x0a, 0x09, 0x70, - 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, - 0xe0, 0x41, 0x01, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x22, 0x0a, - 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, - 0x6e, 0x22, 0x90, 0x01, 0x0a, 0x1a, 0x4c, 0x69, 0x73, 0x74, 0x4e, 0x76, 0x6d, 0x65, 0x4e, 0x61, - 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x4a, 0x0a, 0x0f, 0x6e, 0x76, 0x6d, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, - 0x63, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x70, 0x69, 0x5f, - 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4e, - 0x76, 0x6d, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x52, 0x0e, 0x6e, 0x76, - 0x6d, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x12, 0x26, 0x0a, 0x0f, - 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, - 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x57, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x4e, 0x76, 0x6d, 0x65, 0x4e, - 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x3c, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x28, 0xe0, - 0x41, 0x02, 0xfa, 0x41, 0x22, 0x0a, 0x20, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, - 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2f, 0x4e, 0x76, 0x6d, 0x65, 0x4e, 0x61, - 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x59, 0x0a, - 0x19, 0x53, 0x74, 0x61, 0x74, 0x73, 0x4e, 0x76, 0x6d, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, - 0x61, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3c, 0x0a, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x28, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x22, - 0x0a, 0x20, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, - 0x65, 0x2e, 0x76, 0x31, 0x2f, 0x4e, 0x76, 0x6d, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, - 0x63, 0x65, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x53, 0x0a, 0x1a, 0x53, 0x74, 0x61, 0x74, - 0x73, 0x4e, 0x76, 0x6d, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x35, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, - 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x6f, 0x6c, 0x75, 0x6d, - 0x65, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x73, 0x2a, 0xb5, 0x01, - 0x0a, 0x15, 0x4e, 0x76, 0x6d, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x50, - 0x63, 0x69, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x28, 0x0a, 0x24, 0x4e, 0x56, 0x4d, 0x45, 0x5f, - 0x4e, 0x41, 0x4d, 0x45, 0x53, 0x50, 0x41, 0x43, 0x45, 0x5f, 0x50, 0x43, 0x49, 0x5f, 0x53, 0x54, - 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, - 0x00, 0x12, 0x25, 0x0a, 0x21, 0x4e, 0x56, 0x4d, 0x45, 0x5f, 0x4e, 0x41, 0x4d, 0x45, 0x53, 0x50, - 0x41, 0x43, 0x45, 0x5f, 0x50, 0x43, 0x49, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x44, 0x49, - 0x53, 0x41, 0x42, 0x4c, 0x45, 0x44, 0x10, 0x01, 0x12, 0x24, 0x0a, 0x20, 0x4e, 0x56, 0x4d, 0x45, - 0x5f, 0x4e, 0x41, 0x4d, 0x45, 0x53, 0x50, 0x41, 0x43, 0x45, 0x5f, 0x50, 0x43, 0x49, 0x5f, 0x53, - 0x54, 0x41, 0x54, 0x45, 0x5f, 0x45, 0x4e, 0x41, 0x42, 0x4c, 0x45, 0x44, 0x10, 0x02, 0x12, 0x25, - 0x0a, 0x21, 0x4e, 0x56, 0x4d, 0x45, 0x5f, 0x4e, 0x41, 0x4d, 0x45, 0x53, 0x50, 0x41, 0x43, 0x45, - 0x5f, 0x50, 0x43, 0x49, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x44, 0x45, 0x4c, 0x45, 0x54, - 0x49, 0x4e, 0x47, 0x10, 0x03, 0x2a, 0x9f, 0x01, 0x0a, 0x19, 0x4e, 0x76, 0x6d, 0x65, 0x4e, 0x61, - 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x50, 0x63, 0x69, 0x4f, 0x70, 0x65, 0x72, 0x53, 0x74, - 0x61, 0x74, 0x65, 0x12, 0x2d, 0x0a, 0x29, 0x4e, 0x56, 0x4d, 0x45, 0x5f, 0x4e, 0x41, 0x4d, 0x45, - 0x53, 0x50, 0x41, 0x43, 0x45, 0x5f, 0x50, 0x43, 0x49, 0x5f, 0x4f, 0x50, 0x45, 0x52, 0x5f, 0x53, - 0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, - 0x10, 0x00, 0x12, 0x28, 0x0a, 0x24, 0x4e, 0x56, 0x4d, 0x45, 0x5f, 0x4e, 0x41, 0x4d, 0x45, 0x53, - 0x50, 0x41, 0x43, 0x45, 0x5f, 0x50, 0x43, 0x49, 0x5f, 0x4f, 0x50, 0x45, 0x52, 0x5f, 0x53, 0x54, - 0x41, 0x54, 0x45, 0x5f, 0x4f, 0x4e, 0x4c, 0x49, 0x4e, 0x45, 0x10, 0x01, 0x12, 0x29, 0x0a, 0x25, - 0x4e, 0x56, 0x4d, 0x45, 0x5f, 0x4e, 0x41, 0x4d, 0x45, 0x53, 0x50, 0x41, 0x43, 0x45, 0x5f, 0x50, - 0x43, 0x49, 0x5f, 0x4f, 0x50, 0x45, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x4f, 0x46, - 0x46, 0x4c, 0x49, 0x4e, 0x45, 0x10, 0x02, 0x32, 0xd9, 0x19, 0x0a, 0x13, 0x46, 0x72, 0x6f, 0x6e, - 0x74, 0x65, 0x6e, 0x64, 0x4e, 0x76, 0x6d, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, - 0xb7, 0x01, 0x0a, 0x13, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x76, 0x6d, 0x65, 0x53, 0x75, - 0x62, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x12, 0x2e, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, - 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x4e, 0x76, 0x6d, 0x65, 0x53, 0x75, 0x62, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, - 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x76, 0x6d, - 0x65, 0x53, 0x75, 0x62, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x22, 0x4d, 0x82, 0xd3, 0xe4, 0x93, - 0x02, 0x24, 0x22, 0x12, 0x2f, 0x76, 0x31, 0x2f, 0x6e, 0x76, 0x6d, 0x65, 0x53, 0x75, 0x62, 0x73, - 0x79, 0x73, 0x74, 0x65, 0x6d, 0x73, 0x3a, 0x0e, 0x6e, 0x76, 0x6d, 0x65, 0x5f, 0x73, 0x75, 0x62, - 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0xda, 0x41, 0x20, 0x6e, 0x76, 0x6d, 0x65, 0x5f, 0x73, 0x75, - 0x62, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x2c, 0x6e, 0x76, 0x6d, 0x65, 0x5f, 0x73, 0x75, 0x62, - 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x69, 0x64, 0x12, 0x89, 0x01, 0x0a, 0x13, 0x44, 0x65, - 0x6c, 0x65, 0x74, 0x65, 0x4e, 0x76, 0x6d, 0x65, 0x53, 0x75, 0x62, 0x73, 0x79, 0x73, 0x74, 0x65, - 0x6d, 0x12, 0x2e, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, - 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4e, 0x76, 0x6d, - 0x65, 0x53, 0x75, 0x62, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x2a, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x1d, 0x2a, 0x1b, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x6e, 0x76, 0x6d, - 0x65, 0x53, 0x75, 0x62, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x73, 0x2f, 0x2a, 0x7d, 0xda, 0x41, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0xc9, 0x01, 0x0a, 0x13, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x4e, 0x76, 0x6d, 0x65, 0x53, 0x75, 0x62, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x12, 0x2e, 0x2e, - 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, - 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x76, 0x6d, 0x65, 0x53, 0x75, 0x62, - 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, - 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, - 0x76, 0x31, 0x2e, 0x4e, 0x76, 0x6d, 0x65, 0x53, 0x75, 0x62, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, - 0x22, 0x5f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3c, 0x32, 0x2a, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, - 0x76, 0x6d, 0x65, 0x5f, 0x73, 0x75, 0x62, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x2e, 0x6e, 0x61, - 0x6d, 0x65, 0x3d, 0x6e, 0x76, 0x6d, 0x65, 0x53, 0x75, 0x62, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, - 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x0e, 0x6e, 0x76, 0x6d, 0x65, 0x5f, 0x73, 0x75, 0x62, 0x73, 0x79, - 0x73, 0x74, 0x65, 0x6d, 0xda, 0x41, 0x1a, 0x6e, 0x76, 0x6d, 0x65, 0x5f, 0x73, 0x75, 0x62, 0x73, - 0x79, 0x73, 0x74, 0x65, 0x6d, 0x2c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, - 0x6b, 0x12, 0x8f, 0x01, 0x0a, 0x12, 0x4c, 0x69, 0x73, 0x74, 0x4e, 0x76, 0x6d, 0x65, 0x53, 0x75, - 0x62, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x2d, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, - 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, - 0x73, 0x74, 0x4e, 0x76, 0x6d, 0x65, 0x53, 0x75, 0x62, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x73, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, - 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, - 0x74, 0x4e, 0x76, 0x6d, 0x65, 0x53, 0x75, 0x62, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1a, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x14, 0x12, - 0x12, 0x2f, 0x76, 0x31, 0x2f, 0x6e, 0x76, 0x6d, 0x65, 0x53, 0x75, 0x62, 0x73, 0x79, 0x73, 0x74, - 0x65, 0x6d, 0x73, 0x12, 0x8e, 0x01, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x4e, 0x76, 0x6d, 0x65, 0x53, - 0x75, 0x62, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x12, 0x2b, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, - 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, - 0x74, 0x4e, 0x76, 0x6d, 0x65, 0x53, 0x75, 0x62, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, - 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x76, 0x6d, 0x65, 0x53, - 0x75, 0x62, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x22, 0x2a, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1d, - 0x12, 0x1b, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x6e, 0x76, 0x6d, 0x65, - 0x53, 0x75, 0x62, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x73, 0x2f, 0x2a, 0x7d, 0xda, 0x41, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x12, 0xa5, 0x01, 0x0a, 0x12, 0x53, 0x74, 0x61, 0x74, 0x73, 0x4e, 0x76, - 0x6d, 0x65, 0x53, 0x75, 0x62, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x12, 0x2d, 0x2e, 0x6f, 0x70, + 0x61, 0x6d, 0x65, 0x22, 0x5b, 0x0a, 0x1a, 0x53, 0x74, 0x61, 0x74, 0x73, 0x4e, 0x76, 0x6d, 0x65, + 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x3d, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x29, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x23, 0x0a, 0x21, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, + 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2f, 0x4e, 0x76, 0x6d, 0x65, + 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x22, 0x54, 0x0a, 0x1b, 0x53, 0x74, 0x61, 0x74, 0x73, 0x4e, 0x76, 0x6d, 0x65, 0x43, 0x6f, 0x6e, + 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x35, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, + 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, + 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, + 0x05, 0x73, 0x74, 0x61, 0x74, 0x73, 0x22, 0xde, 0x01, 0x0a, 0x1a, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x4e, 0x76, 0x6d, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x40, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x28, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x22, 0x0a, 0x20, 0x6f, + 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, + 0x31, 0x2f, 0x4e, 0x76, 0x6d, 0x65, 0x53, 0x75, 0x62, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x52, + 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x4d, 0x0a, 0x0e, 0x6e, 0x76, 0x6d, 0x65, 0x5f, + 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x21, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, + 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x76, 0x6d, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, + 0x63, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0d, 0x6e, 0x76, 0x6d, 0x65, 0x4e, 0x61, 0x6d, + 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x2f, 0x0a, 0x11, 0x6e, 0x76, 0x6d, 0x65, 0x5f, 0x6e, + 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0f, 0x6e, 0x76, 0x6d, 0x65, 0x4e, 0x61, 0x6d, 0x65, + 0x73, 0x70, 0x61, 0x63, 0x65, 0x49, 0x64, 0x22, 0x84, 0x01, 0x0a, 0x1a, 0x44, 0x65, 0x6c, 0x65, + 0x74, 0x65, 0x4e, 0x76, 0x6d, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3c, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x28, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x22, 0x0a, 0x20, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, - 0x2e, 0x53, 0x74, 0x61, 0x74, 0x73, 0x4e, 0x76, 0x6d, 0x65, 0x53, 0x75, 0x62, 0x73, 0x79, 0x73, - 0x74, 0x65, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x6f, 0x70, 0x69, - 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, - 0x53, 0x74, 0x61, 0x74, 0x73, 0x4e, 0x76, 0x6d, 0x65, 0x53, 0x75, 0x62, 0x73, 0x79, 0x73, 0x74, - 0x65, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x30, 0x82, 0xd3, 0xe4, 0x93, - 0x02, 0x23, 0x12, 0x21, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x6e, 0x76, - 0x6d, 0x65, 0x53, 0x75, 0x62, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, - 0x73, 0x74, 0x61, 0x74, 0x73, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0xdf, 0x01, 0x0a, - 0x14, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x76, 0x6d, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, - 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x12, 0x2f, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, - 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x4e, 0x76, 0x6d, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, + 0x2f, 0x4e, 0x76, 0x6d, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x52, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x28, 0x0a, 0x0d, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x6d, 0x69, + 0x73, 0x73, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x01, + 0x52, 0x0c, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x4d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x22, 0xd7, + 0x01, 0x0a, 0x1a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x76, 0x6d, 0x65, 0x4e, 0x61, 0x6d, + 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x4d, 0x0a, + 0x0e, 0x6e, 0x76, 0x6d, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, + 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x76, 0x6d, 0x65, 0x4e, + 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0d, 0x6e, + 0x76, 0x6d, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x40, 0x0a, 0x0b, + 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 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, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x42, 0x03, 0xe0, + 0x41, 0x01, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x73, 0x6b, 0x12, 0x28, + 0x0a, 0x0d, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0c, 0x61, 0x6c, 0x6c, 0x6f, + 0x77, 0x4d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x22, 0xa3, 0x01, 0x0a, 0x19, 0x4c, 0x69, 0x73, + 0x74, 0x4e, 0x76, 0x6d, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x40, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x28, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x22, 0x0a, 0x20, + 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, + 0x76, 0x31, 0x2f, 0x4e, 0x76, 0x6d, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, + 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x20, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, + 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x01, + 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x22, 0x0a, 0x0a, 0x70, 0x61, + 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, + 0xe0, 0x41, 0x01, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x90, + 0x01, 0x0a, 0x1a, 0x4c, 0x69, 0x73, 0x74, 0x4e, 0x76, 0x6d, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, + 0x70, 0x61, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4a, 0x0a, + 0x0f, 0x6e, 0x76, 0x6d, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x76, 0x6d, 0x65, - 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x22, 0x72, 0x82, 0xd3, 0xe4, 0x93, - 0x02, 0x40, 0x22, 0x2d, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, - 0x6e, 0x76, 0x6d, 0x65, 0x53, 0x75, 0x62, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x73, 0x2f, 0x2a, - 0x7d, 0x2f, 0x6e, 0x76, 0x6d, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, - 0x73, 0x3a, 0x0f, 0x6e, 0x76, 0x6d, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, - 0x65, 0x72, 0xda, 0x41, 0x29, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x2c, 0x6e, 0x76, 0x6d, 0x65, - 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x2c, 0x6e, 0x76, 0x6d, 0x65, - 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x12, 0x9d, - 0x01, 0x0a, 0x14, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4e, 0x76, 0x6d, 0x65, 0x43, 0x6f, 0x6e, - 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x12, 0x2f, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, - 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, - 0x65, 0x74, 0x65, 0x4e, 0x76, 0x6d, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, - 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, - 0x22, 0x3c, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2f, 0x2a, 0x2d, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, - 0x61, 0x6d, 0x65, 0x3d, 0x6e, 0x76, 0x6d, 0x65, 0x53, 0x75, 0x62, 0x73, 0x79, 0x73, 0x74, 0x65, - 0x6d, 0x73, 0x2f, 0x2a, 0x2f, 0x6e, 0x76, 0x6d, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, - 0x6c, 0x65, 0x72, 0x73, 0x2f, 0x2a, 0x7d, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0xe1, - 0x01, 0x0a, 0x14, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x76, 0x6d, 0x65, 0x43, 0x6f, 0x6e, - 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x12, 0x2f, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, - 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x4e, 0x76, 0x6d, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, - 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, - 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x76, - 0x6d, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x22, 0x74, 0x82, 0xd3, - 0xe4, 0x93, 0x02, 0x50, 0x32, 0x3d, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x76, 0x6d, 0x65, 0x5f, - 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x2e, 0x6e, 0x61, 0x6d, 0x65, 0x3d, - 0x6e, 0x76, 0x6d, 0x65, 0x53, 0x75, 0x62, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x73, 0x2f, 0x2a, - 0x2f, 0x6e, 0x76, 0x6d, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x73, - 0x2f, 0x2a, 0x7d, 0x3a, 0x0f, 0x6e, 0x76, 0x6d, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, - 0x6c, 0x6c, 0x65, 0x72, 0xda, 0x41, 0x1b, 0x6e, 0x76, 0x6d, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x74, - 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x2c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, - 0x73, 0x6b, 0x12, 0xb6, 0x01, 0x0a, 0x13, 0x4c, 0x69, 0x73, 0x74, 0x4e, 0x76, 0x6d, 0x65, 0x43, - 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x73, 0x12, 0x2e, 0x2e, 0x6f, 0x70, 0x69, + 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x52, 0x0e, 0x6e, 0x76, 0x6d, 0x65, 0x4e, + 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, + 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, + 0x6e, 0x22, 0x57, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x4e, 0x76, 0x6d, 0x65, 0x4e, 0x61, 0x6d, 0x65, + 0x73, 0x70, 0x61, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3c, 0x0a, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x28, 0xe0, 0x41, 0x02, 0xfa, + 0x41, 0x22, 0x0a, 0x20, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, + 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2f, 0x4e, 0x76, 0x6d, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, + 0x70, 0x61, 0x63, 0x65, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x59, 0x0a, 0x19, 0x53, 0x74, + 0x61, 0x74, 0x73, 0x4e, 0x76, 0x6d, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3c, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x28, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x22, 0x0a, 0x20, 0x6f, + 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, + 0x31, 0x2f, 0x4e, 0x76, 0x6d, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x52, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x53, 0x0a, 0x1a, 0x53, 0x74, 0x61, 0x74, 0x73, 0x4e, 0x76, + 0x6d, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x35, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, + 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x53, 0x74, + 0x61, 0x74, 0x73, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x73, 0x2a, 0xb5, 0x01, 0x0a, 0x15, 0x4e, + 0x76, 0x6d, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x50, 0x63, 0x69, 0x53, + 0x74, 0x61, 0x74, 0x65, 0x12, 0x28, 0x0a, 0x24, 0x4e, 0x56, 0x4d, 0x45, 0x5f, 0x4e, 0x41, 0x4d, + 0x45, 0x53, 0x50, 0x41, 0x43, 0x45, 0x5f, 0x50, 0x43, 0x49, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, + 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x25, + 0x0a, 0x21, 0x4e, 0x56, 0x4d, 0x45, 0x5f, 0x4e, 0x41, 0x4d, 0x45, 0x53, 0x50, 0x41, 0x43, 0x45, + 0x5f, 0x50, 0x43, 0x49, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x44, 0x49, 0x53, 0x41, 0x42, + 0x4c, 0x45, 0x44, 0x10, 0x01, 0x12, 0x24, 0x0a, 0x20, 0x4e, 0x56, 0x4d, 0x45, 0x5f, 0x4e, 0x41, + 0x4d, 0x45, 0x53, 0x50, 0x41, 0x43, 0x45, 0x5f, 0x50, 0x43, 0x49, 0x5f, 0x53, 0x54, 0x41, 0x54, + 0x45, 0x5f, 0x45, 0x4e, 0x41, 0x42, 0x4c, 0x45, 0x44, 0x10, 0x02, 0x12, 0x25, 0x0a, 0x21, 0x4e, + 0x56, 0x4d, 0x45, 0x5f, 0x4e, 0x41, 0x4d, 0x45, 0x53, 0x50, 0x41, 0x43, 0x45, 0x5f, 0x50, 0x43, + 0x49, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x44, 0x45, 0x4c, 0x45, 0x54, 0x49, 0x4e, 0x47, + 0x10, 0x03, 0x2a, 0x9f, 0x01, 0x0a, 0x19, 0x4e, 0x76, 0x6d, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, + 0x70, 0x61, 0x63, 0x65, 0x50, 0x63, 0x69, 0x4f, 0x70, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, + 0x12, 0x2d, 0x0a, 0x29, 0x4e, 0x56, 0x4d, 0x45, 0x5f, 0x4e, 0x41, 0x4d, 0x45, 0x53, 0x50, 0x41, + 0x43, 0x45, 0x5f, 0x50, 0x43, 0x49, 0x5f, 0x4f, 0x50, 0x45, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, + 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, + 0x28, 0x0a, 0x24, 0x4e, 0x56, 0x4d, 0x45, 0x5f, 0x4e, 0x41, 0x4d, 0x45, 0x53, 0x50, 0x41, 0x43, + 0x45, 0x5f, 0x50, 0x43, 0x49, 0x5f, 0x4f, 0x50, 0x45, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, + 0x5f, 0x4f, 0x4e, 0x4c, 0x49, 0x4e, 0x45, 0x10, 0x01, 0x12, 0x29, 0x0a, 0x25, 0x4e, 0x56, 0x4d, + 0x45, 0x5f, 0x4e, 0x41, 0x4d, 0x45, 0x53, 0x50, 0x41, 0x43, 0x45, 0x5f, 0x50, 0x43, 0x49, 0x5f, + 0x4f, 0x50, 0x45, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x4f, 0x46, 0x46, 0x4c, 0x49, + 0x4e, 0x45, 0x10, 0x02, 0x32, 0xd9, 0x19, 0x0a, 0x13, 0x46, 0x72, 0x6f, 0x6e, 0x74, 0x65, 0x6e, + 0x64, 0x4e, 0x76, 0x6d, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0xb7, 0x01, 0x0a, + 0x13, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x76, 0x6d, 0x65, 0x53, 0x75, 0x62, 0x73, 0x79, + 0x73, 0x74, 0x65, 0x6d, 0x12, 0x2e, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, + 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x4e, 0x76, 0x6d, 0x65, 0x53, 0x75, 0x62, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, + 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x76, 0x6d, 0x65, 0x53, 0x75, + 0x62, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x22, 0x4d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x24, 0x22, + 0x12, 0x2f, 0x76, 0x31, 0x2f, 0x6e, 0x76, 0x6d, 0x65, 0x53, 0x75, 0x62, 0x73, 0x79, 0x73, 0x74, + 0x65, 0x6d, 0x73, 0x3a, 0x0e, 0x6e, 0x76, 0x6d, 0x65, 0x5f, 0x73, 0x75, 0x62, 0x73, 0x79, 0x73, + 0x74, 0x65, 0x6d, 0xda, 0x41, 0x20, 0x6e, 0x76, 0x6d, 0x65, 0x5f, 0x73, 0x75, 0x62, 0x73, 0x79, + 0x73, 0x74, 0x65, 0x6d, 0x2c, 0x6e, 0x76, 0x6d, 0x65, 0x5f, 0x73, 0x75, 0x62, 0x73, 0x79, 0x73, + 0x74, 0x65, 0x6d, 0x5f, 0x69, 0x64, 0x12, 0x89, 0x01, 0x0a, 0x13, 0x44, 0x65, 0x6c, 0x65, 0x74, + 0x65, 0x4e, 0x76, 0x6d, 0x65, 0x53, 0x75, 0x62, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x12, 0x2e, + 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, + 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4e, 0x76, 0x6d, 0x65, 0x53, 0x75, + 0x62, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x2a, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1d, 0x2a, 0x1b, + 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x6e, 0x76, 0x6d, 0x65, 0x53, 0x75, + 0x62, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x73, 0x2f, 0x2a, 0x7d, 0xda, 0x41, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x12, 0xc9, 0x01, 0x0a, 0x13, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x76, 0x6d, + 0x65, 0x53, 0x75, 0x62, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x12, 0x2e, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, - 0x4c, 0x69, 0x73, 0x74, 0x4e, 0x76, 0x6d, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, - 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x6f, 0x70, 0x69, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x76, 0x6d, 0x65, 0x53, 0x75, 0x62, 0x73, 0x79, 0x73, + 0x74, 0x65, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, - 0x4c, 0x69, 0x73, 0x74, 0x4e, 0x76, 0x6d, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, - 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3e, 0x82, 0xd3, 0xe4, - 0x93, 0x02, 0x2f, 0x12, 0x2d, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, + 0x4e, 0x76, 0x6d, 0x65, 0x53, 0x75, 0x62, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x22, 0x5f, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x3c, 0x32, 0x2a, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x76, 0x6d, 0x65, + 0x5f, 0x73, 0x75, 0x62, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x2e, 0x6e, 0x61, 0x6d, 0x65, 0x3d, + 0x6e, 0x76, 0x6d, 0x65, 0x53, 0x75, 0x62, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x73, 0x2f, 0x2a, + 0x7d, 0x3a, 0x0e, 0x6e, 0x76, 0x6d, 0x65, 0x5f, 0x73, 0x75, 0x62, 0x73, 0x79, 0x73, 0x74, 0x65, + 0x6d, 0xda, 0x41, 0x1a, 0x6e, 0x76, 0x6d, 0x65, 0x5f, 0x73, 0x75, 0x62, 0x73, 0x79, 0x73, 0x74, + 0x65, 0x6d, 0x2c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x12, 0x8f, + 0x01, 0x0a, 0x12, 0x4c, 0x69, 0x73, 0x74, 0x4e, 0x76, 0x6d, 0x65, 0x53, 0x75, 0x62, 0x73, 0x79, + 0x73, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x2d, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, + 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4e, + 0x76, 0x6d, 0x65, 0x53, 0x75, 0x62, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, + 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4e, 0x76, + 0x6d, 0x65, 0x53, 0x75, 0x62, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1a, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x14, 0x12, 0x12, 0x2f, 0x76, + 0x31, 0x2f, 0x6e, 0x76, 0x6d, 0x65, 0x53, 0x75, 0x62, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x73, + 0x12, 0x8e, 0x01, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x4e, 0x76, 0x6d, 0x65, 0x53, 0x75, 0x62, 0x73, + 0x79, 0x73, 0x74, 0x65, 0x6d, 0x12, 0x2b, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, + 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4e, 0x76, + 0x6d, 0x65, 0x53, 0x75, 0x62, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, + 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x76, 0x6d, 0x65, 0x53, 0x75, 0x62, 0x73, + 0x79, 0x73, 0x74, 0x65, 0x6d, 0x22, 0x2a, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1d, 0x12, 0x1b, 0x2f, + 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x6e, 0x76, 0x6d, 0x65, 0x53, 0x75, 0x62, + 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x73, 0x2f, 0x2a, 0x7d, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x12, 0xa5, 0x01, 0x0a, 0x12, 0x53, 0x74, 0x61, 0x74, 0x73, 0x4e, 0x76, 0x6d, 0x65, 0x53, + 0x75, 0x62, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x12, 0x2d, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, + 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, + 0x61, 0x74, 0x73, 0x4e, 0x76, 0x6d, 0x65, 0x53, 0x75, 0x62, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, + 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x61, + 0x74, 0x73, 0x4e, 0x76, 0x6d, 0x65, 0x53, 0x75, 0x62, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x30, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x23, 0x12, + 0x21, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x6e, 0x76, 0x6d, 0x65, 0x53, + 0x75, 0x62, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x73, 0x74, 0x61, + 0x74, 0x73, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0xdf, 0x01, 0x0a, 0x14, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x4e, 0x76, 0x6d, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, + 0x65, 0x72, 0x12, 0x2f, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, + 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x76, + 0x6d, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, + 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x76, 0x6d, 0x65, 0x43, 0x6f, 0x6e, + 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x22, 0x72, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x40, 0x22, + 0x2d, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x6e, 0x76, 0x6d, + 0x65, 0x53, 0x75, 0x62, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x6e, + 0x76, 0x6d, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x73, 0x3a, 0x0f, + 0x6e, 0x76, 0x6d, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0xda, + 0x41, 0x29, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x2c, 0x6e, 0x76, 0x6d, 0x65, 0x5f, 0x63, 0x6f, + 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x2c, 0x6e, 0x76, 0x6d, 0x65, 0x5f, 0x63, 0x6f, + 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x12, 0x9d, 0x01, 0x0a, 0x14, + 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4e, 0x76, 0x6d, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, + 0x6c, 0x6c, 0x65, 0x72, 0x12, 0x2f, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, + 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, + 0x4e, 0x76, 0x6d, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x3c, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x2f, 0x2a, 0x2d, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x6e, 0x76, 0x6d, 0x65, 0x53, 0x75, 0x62, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x73, 0x2f, - 0x2a, 0x7d, 0x2f, 0x6e, 0x76, 0x6d, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, - 0x72, 0x73, 0xda, 0x41, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0xa3, 0x01, 0x0a, 0x11, - 0x47, 0x65, 0x74, 0x4e, 0x76, 0x6d, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, - 0x72, 0x12, 0x2c, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, - 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4e, 0x76, 0x6d, 0x65, 0x43, 0x6f, - 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x22, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, - 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x76, 0x6d, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, - 0x6c, 0x65, 0x72, 0x22, 0x3c, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2f, 0x12, 0x2d, 0x2f, 0x76, 0x31, - 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x6e, 0x76, 0x6d, 0x65, 0x53, 0x75, 0x62, 0x73, 0x79, - 0x73, 0x74, 0x65, 0x6d, 0x73, 0x2f, 0x2a, 0x2f, 0x6e, 0x76, 0x6d, 0x65, 0x43, 0x6f, 0x6e, 0x74, - 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x73, 0x2f, 0x2a, 0x7d, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x12, 0xba, 0x01, 0x0a, 0x13, 0x53, 0x74, 0x61, 0x74, 0x73, 0x4e, 0x76, 0x6d, 0x65, 0x43, - 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x12, 0x2e, 0x2e, 0x6f, 0x70, 0x69, 0x5f, - 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, - 0x74, 0x61, 0x74, 0x73, 0x4e, 0x76, 0x6d, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, - 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x6f, 0x70, 0x69, 0x5f, - 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, - 0x74, 0x61, 0x74, 0x73, 0x4e, 0x76, 0x6d, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, - 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x42, 0x82, 0xd3, 0xe4, 0x93, - 0x02, 0x35, 0x12, 0x33, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x6e, 0x76, - 0x6d, 0x65, 0x53, 0x75, 0x62, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x73, 0x2f, 0x2a, 0x2f, 0x6e, - 0x76, 0x6d, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x73, 0x2f, 0x2a, - 0x7d, 0x3a, 0x73, 0x74, 0x61, 0x74, 0x73, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0xd8, - 0x01, 0x0a, 0x13, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x76, 0x6d, 0x65, 0x4e, 0x61, 0x6d, - 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x2e, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, - 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x4e, 0x76, 0x6d, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, - 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x76, 0x6d, 0x65, - 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x22, 0x6e, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x3e, 0x22, 0x2c, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x6e, - 0x76, 0x6d, 0x65, 0x53, 0x75, 0x62, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x73, 0x2f, 0x2a, 0x7d, - 0x2f, 0x6e, 0x76, 0x6d, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x3a, - 0x0e, 0x6e, 0x76, 0x6d, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0xda, - 0x41, 0x27, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x2c, 0x6e, 0x76, 0x6d, 0x65, 0x5f, 0x6e, 0x61, - 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x2c, 0x6e, 0x76, 0x6d, 0x65, 0x5f, 0x6e, 0x61, 0x6d, - 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x12, 0x9a, 0x01, 0x0a, 0x13, 0x44, 0x65, - 0x6c, 0x65, 0x74, 0x65, 0x4e, 0x76, 0x6d, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, - 0x65, 0x12, 0x2e, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, - 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4e, 0x76, 0x6d, - 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x3b, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x2e, 0x2a, 0x2c, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x6e, 0x76, 0x6d, + 0x2a, 0x2f, 0x6e, 0x76, 0x6d, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, + 0x73, 0x2f, 0x2a, 0x7d, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0xe1, 0x01, 0x0a, 0x14, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x76, 0x6d, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, + 0x6c, 0x6c, 0x65, 0x72, 0x12, 0x2f, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, + 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x4e, 0x76, 0x6d, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, + 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x76, 0x6d, 0x65, 0x43, + 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x22, 0x74, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x50, 0x32, 0x3d, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x76, 0x6d, 0x65, 0x5f, 0x63, 0x6f, 0x6e, + 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x2e, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x6e, 0x76, 0x6d, 0x65, 0x53, 0x75, 0x62, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x73, 0x2f, 0x2a, 0x2f, 0x6e, 0x76, - 0x6d, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0xda, - 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0xda, 0x01, 0x0a, 0x13, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x4e, 0x76, 0x6d, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x2e, - 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, - 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x76, 0x6d, 0x65, 0x4e, 0x61, - 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, + 0x6d, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x73, 0x2f, 0x2a, 0x7d, + 0x3a, 0x0f, 0x6e, 0x76, 0x6d, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, + 0x72, 0xda, 0x41, 0x1b, 0x6e, 0x76, 0x6d, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, + 0x6c, 0x65, 0x72, 0x2c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x12, + 0xb6, 0x01, 0x0a, 0x13, 0x4c, 0x69, 0x73, 0x74, 0x4e, 0x76, 0x6d, 0x65, 0x43, 0x6f, 0x6e, 0x74, + 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x73, 0x12, 0x2e, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, + 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, + 0x74, 0x4e, 0x76, 0x6d, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, + 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, + 0x74, 0x4e, 0x76, 0x6d, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2f, + 0x12, 0x2d, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x6e, 0x76, + 0x6d, 0x65, 0x53, 0x75, 0x62, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, + 0x6e, 0x76, 0x6d, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x73, 0xda, + 0x41, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0xa3, 0x01, 0x0a, 0x11, 0x47, 0x65, 0x74, + 0x4e, 0x76, 0x6d, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x12, 0x2c, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, - 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x76, 0x6d, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, - 0x65, 0x22, 0x70, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x4d, 0x32, 0x3b, 0x2f, 0x76, 0x31, 0x2f, 0x7b, - 0x6e, 0x76, 0x6d, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x2e, 0x6e, + 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4e, 0x76, 0x6d, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, + 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x6f, + 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, + 0x31, 0x2e, 0x4e, 0x76, 0x6d, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, + 0x22, 0x3c, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2f, 0x12, 0x2d, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x6e, 0x76, 0x6d, 0x65, 0x53, 0x75, 0x62, 0x73, 0x79, 0x73, 0x74, 0x65, - 0x6d, 0x73, 0x2f, 0x2a, 0x2f, 0x6e, 0x76, 0x6d, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, - 0x63, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x0e, 0x6e, 0x76, 0x6d, 0x65, 0x5f, 0x6e, 0x61, 0x6d, - 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0xda, 0x41, 0x1a, 0x6e, 0x76, 0x6d, 0x65, 0x5f, 0x6e, 0x61, - 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x2c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, - 0x61, 0x73, 0x6b, 0x12, 0xb2, 0x01, 0x0a, 0x12, 0x4c, 0x69, 0x73, 0x74, 0x4e, 0x76, 0x6d, 0x65, - 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x12, 0x2d, 0x2e, 0x6f, 0x70, 0x69, + 0x6d, 0x73, 0x2f, 0x2a, 0x2f, 0x6e, 0x76, 0x6d, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, + 0x6c, 0x65, 0x72, 0x73, 0x2f, 0x2a, 0x7d, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0xba, + 0x01, 0x0a, 0x13, 0x53, 0x74, 0x61, 0x74, 0x73, 0x4e, 0x76, 0x6d, 0x65, 0x43, 0x6f, 0x6e, 0x74, + 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x12, 0x2e, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, + 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x61, 0x74, + 0x73, 0x4e, 0x76, 0x6d, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, + 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x61, 0x74, + 0x73, 0x4e, 0x76, 0x6d, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x42, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x35, 0x12, + 0x33, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x6e, 0x76, 0x6d, 0x65, 0x53, + 0x75, 0x62, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x73, 0x2f, 0x2a, 0x2f, 0x6e, 0x76, 0x6d, 0x65, + 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x73, + 0x74, 0x61, 0x74, 0x73, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0xd8, 0x01, 0x0a, 0x13, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x76, 0x6d, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, + 0x61, 0x63, 0x65, 0x12, 0x2e, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, + 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, + 0x76, 0x6d, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, + 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x76, 0x6d, 0x65, 0x4e, 0x61, 0x6d, + 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x22, 0x6e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3e, 0x22, 0x2c, + 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x6e, 0x76, 0x6d, 0x65, + 0x53, 0x75, 0x62, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x6e, 0x76, + 0x6d, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x3a, 0x0e, 0x6e, 0x76, + 0x6d, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0xda, 0x41, 0x27, 0x70, + 0x61, 0x72, 0x65, 0x6e, 0x74, 0x2c, 0x6e, 0x76, 0x6d, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, + 0x70, 0x61, 0x63, 0x65, 0x2c, 0x6e, 0x76, 0x6d, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, + 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x12, 0x9a, 0x01, 0x0a, 0x13, 0x44, 0x65, 0x6c, 0x65, 0x74, + 0x65, 0x4e, 0x76, 0x6d, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x2e, + 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, + 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4e, 0x76, 0x6d, 0x65, 0x4e, 0x61, + 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x3b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2e, 0x2a, 0x2c, + 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x6e, 0x76, 0x6d, 0x65, 0x53, 0x75, + 0x62, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x73, 0x2f, 0x2a, 0x2f, 0x6e, 0x76, 0x6d, 0x65, 0x4e, + 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0xda, 0x41, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x12, 0xda, 0x01, 0x0a, 0x13, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x76, + 0x6d, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x2e, 0x2e, 0x6f, 0x70, + 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, + 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x76, 0x6d, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, + 0x70, 0x61, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x6f, 0x70, + 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, + 0x2e, 0x4e, 0x76, 0x6d, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x22, 0x70, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x4d, 0x32, 0x3b, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x76, 0x6d, + 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x2e, 0x6e, 0x61, 0x6d, 0x65, + 0x3d, 0x6e, 0x76, 0x6d, 0x65, 0x53, 0x75, 0x62, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x73, 0x2f, + 0x2a, 0x2f, 0x6e, 0x76, 0x6d, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, + 0x2f, 0x2a, 0x7d, 0x3a, 0x0e, 0x6e, 0x76, 0x6d, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, + 0x61, 0x63, 0x65, 0xda, 0x41, 0x1a, 0x6e, 0x76, 0x6d, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, + 0x70, 0x61, 0x63, 0x65, 0x2c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, + 0x12, 0xb2, 0x01, 0x0a, 0x12, 0x4c, 0x69, 0x73, 0x74, 0x4e, 0x76, 0x6d, 0x65, 0x4e, 0x61, 0x6d, + 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x12, 0x2d, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, + 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, + 0x74, 0x4e, 0x76, 0x6d, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, + 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, + 0x4e, 0x76, 0x6d, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2e, 0x12, 0x2c, + 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x6e, 0x76, 0x6d, 0x65, + 0x53, 0x75, 0x62, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x6e, 0x76, + 0x6d, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0xda, 0x41, 0x06, 0x70, + 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x9f, 0x01, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x4e, 0x76, 0x6d, + 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x2b, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, - 0x4c, 0x69, 0x73, 0x74, 0x4e, 0x76, 0x6d, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, - 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x6f, 0x70, 0x69, 0x5f, - 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4c, - 0x69, 0x73, 0x74, 0x4e, 0x76, 0x6d, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, - 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3d, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x2e, 0x12, 0x2c, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x6e, - 0x76, 0x6d, 0x65, 0x53, 0x75, 0x62, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x73, 0x2f, 0x2a, 0x7d, - 0x2f, 0x6e, 0x76, 0x6d, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0xda, - 0x41, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x9f, 0x01, 0x0a, 0x10, 0x47, 0x65, 0x74, - 0x4e, 0x76, 0x6d, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x2b, 0x2e, + 0x47, 0x65, 0x74, 0x4e, 0x76, 0x6d, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, + 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x76, 0x6d, + 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x22, 0x3b, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x2e, 0x12, 0x2c, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x6e, 0x76, + 0x6d, 0x65, 0x53, 0x75, 0x62, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x73, 0x2f, 0x2a, 0x2f, 0x6e, + 0x76, 0x6d, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x2a, 0x7d, + 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0xb6, 0x01, 0x0a, 0x12, 0x53, 0x74, 0x61, 0x74, + 0x73, 0x4e, 0x76, 0x6d, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x2d, + 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, + 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x73, 0x4e, 0x76, 0x6d, 0x65, 0x4e, 0x61, 0x6d, + 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, - 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4e, 0x76, 0x6d, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, - 0x61, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x6f, 0x70, 0x69, - 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, - 0x4e, 0x76, 0x6d, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x22, 0x3b, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x2e, 0x12, 0x2c, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, + 0x76, 0x31, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x73, 0x4e, 0x76, 0x6d, 0x65, 0x4e, 0x61, 0x6d, 0x65, + 0x73, 0x70, 0x61, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x41, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x34, 0x12, 0x32, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x6e, 0x76, 0x6d, 0x65, 0x53, 0x75, 0x62, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x73, 0x2f, 0x2a, 0x2f, 0x6e, 0x76, 0x6d, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, - 0x2f, 0x2a, 0x7d, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0xb6, 0x01, 0x0a, 0x12, 0x53, - 0x74, 0x61, 0x74, 0x73, 0x4e, 0x76, 0x6d, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, - 0x65, 0x12, 0x2d, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, - 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x73, 0x4e, 0x76, 0x6d, 0x65, - 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x2e, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, - 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x73, 0x4e, 0x76, 0x6d, 0x65, 0x4e, - 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x41, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x34, 0x12, 0x32, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, - 0x61, 0x6d, 0x65, 0x3d, 0x6e, 0x76, 0x6d, 0x65, 0x53, 0x75, 0x62, 0x73, 0x79, 0x73, 0x74, 0x65, - 0x6d, 0x73, 0x2f, 0x2a, 0x2f, 0x6e, 0x76, 0x6d, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, - 0x63, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x73, 0x74, 0x61, 0x74, 0x73, 0xda, 0x41, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x42, 0x64, 0x0a, 0x12, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, - 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x42, 0x15, 0x46, 0x72, 0x6f, 0x6e, 0x74, - 0x65, 0x6e, 0x64, 0x4e, 0x76, 0x6d, 0x65, 0x50, 0x63, 0x69, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, - 0x50, 0x01, 0x5a, 0x35, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f, - 0x70, 0x69, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x2f, 0x6f, 0x70, 0x69, 0x2d, 0x61, 0x70, - 0x69, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, - 0x61, 0x31, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x67, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x33, + 0x2f, 0x2a, 0x7d, 0x3a, 0x73, 0x74, 0x61, 0x74, 0x73, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x42, 0x64, 0x0a, 0x12, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, + 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x42, 0x15, 0x46, 0x72, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x64, + 0x4e, 0x76, 0x6d, 0x65, 0x50, 0x63, 0x69, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, + 0x35, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x70, 0x69, 0x70, + 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x2f, 0x6f, 0x70, 0x69, 0x2d, 0x61, 0x70, 0x69, 0x2f, 0x73, + 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2f, + 0x67, 0x65, 0x6e, 0x2f, 0x67, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -2841,82 +2899,86 @@ var file_frontend_nvme_pcie_proto_goTypes = []interface{}{ (*GetNvmeNamespaceRequest)(nil), // 32: opi_api.storage.v1.GetNvmeNamespaceRequest (*StatsNvmeNamespaceRequest)(nil), // 33: opi_api.storage.v1.StatsNvmeNamespaceRequest (*StatsNvmeNamespaceResponse)(nil), // 34: opi_api.storage.v1.StatsNvmeNamespaceResponse - (*PciEndpoint)(nil), // 35: opi_api.storage.v1.PciEndpoint - (*QosLimit)(nil), // 36: opi_api.storage.v1.QosLimit - (*_go.Uuid)(nil), // 37: opi_api.common.v1.Uuid - (*fieldmaskpb.FieldMask)(nil), // 38: google.protobuf.FieldMask - (*VolumeStats)(nil), // 39: opi_api.storage.v1.VolumeStats - (*emptypb.Empty)(nil), // 40: google.protobuf.Empty + (NvmeTransportType)(0), // 35: opi_api.storage.v1.NvmeTransportType + (*PciEndpoint)(nil), // 36: opi_api.storage.v1.PciEndpoint + (*FabricsEndpoint)(nil), // 37: opi_api.storage.v1.FabricsEndpoint + (*QosLimit)(nil), // 38: opi_api.storage.v1.QosLimit + (*_go.Uuid)(nil), // 39: opi_api.common.v1.Uuid + (*fieldmaskpb.FieldMask)(nil), // 40: google.protobuf.FieldMask + (*VolumeStats)(nil), // 41: opi_api.storage.v1.VolumeStats + (*emptypb.Empty)(nil), // 42: google.protobuf.Empty } var file_frontend_nvme_pcie_proto_depIdxs = []int32{ 3, // 0: opi_api.storage.v1.NvmeSubsystem.spec:type_name -> opi_api.storage.v1.NvmeSubsystemSpec 4, // 1: opi_api.storage.v1.NvmeSubsystem.status:type_name -> opi_api.storage.v1.NvmeSubsystemStatus 6, // 2: opi_api.storage.v1.NvmeController.spec:type_name -> opi_api.storage.v1.NvmeControllerSpec 7, // 3: opi_api.storage.v1.NvmeController.status:type_name -> opi_api.storage.v1.NvmeControllerStatus - 35, // 4: opi_api.storage.v1.NvmeControllerSpec.pcie_id:type_name -> opi_api.storage.v1.PciEndpoint - 36, // 5: opi_api.storage.v1.NvmeControllerSpec.min_limit:type_name -> opi_api.storage.v1.QosLimit - 36, // 6: opi_api.storage.v1.NvmeControllerSpec.max_limit:type_name -> opi_api.storage.v1.QosLimit - 9, // 7: opi_api.storage.v1.NvmeNamespace.spec:type_name -> opi_api.storage.v1.NvmeNamespaceSpec - 10, // 8: opi_api.storage.v1.NvmeNamespace.status:type_name -> opi_api.storage.v1.NvmeNamespaceStatus - 37, // 9: opi_api.storage.v1.NvmeNamespaceSpec.uuid:type_name -> opi_api.common.v1.Uuid - 0, // 10: opi_api.storage.v1.NvmeNamespaceStatus.pci_state:type_name -> opi_api.storage.v1.NvmeNamespacePciState - 1, // 11: opi_api.storage.v1.NvmeNamespaceStatus.pci_oper_state:type_name -> opi_api.storage.v1.NvmeNamespacePciOperState - 2, // 12: opi_api.storage.v1.CreateNvmeSubsystemRequest.nvme_subsystem:type_name -> opi_api.storage.v1.NvmeSubsystem - 2, // 13: opi_api.storage.v1.UpdateNvmeSubsystemRequest.nvme_subsystem:type_name -> opi_api.storage.v1.NvmeSubsystem - 38, // 14: opi_api.storage.v1.UpdateNvmeSubsystemRequest.update_mask:type_name -> google.protobuf.FieldMask - 2, // 15: opi_api.storage.v1.ListNvmeSubsystemsResponse.nvme_subsystems:type_name -> opi_api.storage.v1.NvmeSubsystem - 39, // 16: opi_api.storage.v1.StatsNvmeSubsystemResponse.stats:type_name -> opi_api.storage.v1.VolumeStats - 5, // 17: opi_api.storage.v1.CreateNvmeControllerRequest.nvme_controller:type_name -> opi_api.storage.v1.NvmeController - 5, // 18: opi_api.storage.v1.UpdateNvmeControllerRequest.nvme_controller:type_name -> opi_api.storage.v1.NvmeController - 38, // 19: opi_api.storage.v1.UpdateNvmeControllerRequest.update_mask:type_name -> google.protobuf.FieldMask - 5, // 20: opi_api.storage.v1.ListNvmeControllersResponse.nvme_controllers:type_name -> opi_api.storage.v1.NvmeController - 39, // 21: opi_api.storage.v1.StatsNvmeControllerResponse.stats:type_name -> opi_api.storage.v1.VolumeStats - 8, // 22: opi_api.storage.v1.CreateNvmeNamespaceRequest.nvme_namespace:type_name -> opi_api.storage.v1.NvmeNamespace - 8, // 23: opi_api.storage.v1.UpdateNvmeNamespaceRequest.nvme_namespace:type_name -> opi_api.storage.v1.NvmeNamespace - 38, // 24: opi_api.storage.v1.UpdateNvmeNamespaceRequest.update_mask:type_name -> google.protobuf.FieldMask - 8, // 25: opi_api.storage.v1.ListNvmeNamespacesResponse.nvme_namespaces:type_name -> opi_api.storage.v1.NvmeNamespace - 39, // 26: opi_api.storage.v1.StatsNvmeNamespaceResponse.stats:type_name -> opi_api.storage.v1.VolumeStats - 11, // 27: opi_api.storage.v1.FrontendNvmeService.CreateNvmeSubsystem:input_type -> opi_api.storage.v1.CreateNvmeSubsystemRequest - 12, // 28: opi_api.storage.v1.FrontendNvmeService.DeleteNvmeSubsystem:input_type -> opi_api.storage.v1.DeleteNvmeSubsystemRequest - 13, // 29: opi_api.storage.v1.FrontendNvmeService.UpdateNvmeSubsystem:input_type -> opi_api.storage.v1.UpdateNvmeSubsystemRequest - 14, // 30: opi_api.storage.v1.FrontendNvmeService.ListNvmeSubsystems:input_type -> opi_api.storage.v1.ListNvmeSubsystemsRequest - 16, // 31: opi_api.storage.v1.FrontendNvmeService.GetNvmeSubsystem:input_type -> opi_api.storage.v1.GetNvmeSubsystemRequest - 17, // 32: opi_api.storage.v1.FrontendNvmeService.StatsNvmeSubsystem:input_type -> opi_api.storage.v1.StatsNvmeSubsystemRequest - 19, // 33: opi_api.storage.v1.FrontendNvmeService.CreateNvmeController:input_type -> opi_api.storage.v1.CreateNvmeControllerRequest - 20, // 34: opi_api.storage.v1.FrontendNvmeService.DeleteNvmeController:input_type -> opi_api.storage.v1.DeleteNvmeControllerRequest - 21, // 35: opi_api.storage.v1.FrontendNvmeService.UpdateNvmeController:input_type -> opi_api.storage.v1.UpdateNvmeControllerRequest - 22, // 36: opi_api.storage.v1.FrontendNvmeService.ListNvmeControllers:input_type -> opi_api.storage.v1.ListNvmeControllersRequest - 24, // 37: opi_api.storage.v1.FrontendNvmeService.GetNvmeController:input_type -> opi_api.storage.v1.GetNvmeControllerRequest - 25, // 38: opi_api.storage.v1.FrontendNvmeService.StatsNvmeController:input_type -> opi_api.storage.v1.StatsNvmeControllerRequest - 27, // 39: opi_api.storage.v1.FrontendNvmeService.CreateNvmeNamespace:input_type -> opi_api.storage.v1.CreateNvmeNamespaceRequest - 28, // 40: opi_api.storage.v1.FrontendNvmeService.DeleteNvmeNamespace:input_type -> opi_api.storage.v1.DeleteNvmeNamespaceRequest - 29, // 41: opi_api.storage.v1.FrontendNvmeService.UpdateNvmeNamespace:input_type -> opi_api.storage.v1.UpdateNvmeNamespaceRequest - 30, // 42: opi_api.storage.v1.FrontendNvmeService.ListNvmeNamespaces:input_type -> opi_api.storage.v1.ListNvmeNamespacesRequest - 32, // 43: opi_api.storage.v1.FrontendNvmeService.GetNvmeNamespace:input_type -> opi_api.storage.v1.GetNvmeNamespaceRequest - 33, // 44: opi_api.storage.v1.FrontendNvmeService.StatsNvmeNamespace:input_type -> opi_api.storage.v1.StatsNvmeNamespaceRequest - 2, // 45: opi_api.storage.v1.FrontendNvmeService.CreateNvmeSubsystem:output_type -> opi_api.storage.v1.NvmeSubsystem - 40, // 46: opi_api.storage.v1.FrontendNvmeService.DeleteNvmeSubsystem:output_type -> google.protobuf.Empty - 2, // 47: opi_api.storage.v1.FrontendNvmeService.UpdateNvmeSubsystem:output_type -> opi_api.storage.v1.NvmeSubsystem - 15, // 48: opi_api.storage.v1.FrontendNvmeService.ListNvmeSubsystems:output_type -> opi_api.storage.v1.ListNvmeSubsystemsResponse - 2, // 49: opi_api.storage.v1.FrontendNvmeService.GetNvmeSubsystem:output_type -> opi_api.storage.v1.NvmeSubsystem - 18, // 50: opi_api.storage.v1.FrontendNvmeService.StatsNvmeSubsystem:output_type -> opi_api.storage.v1.StatsNvmeSubsystemResponse - 5, // 51: opi_api.storage.v1.FrontendNvmeService.CreateNvmeController:output_type -> opi_api.storage.v1.NvmeController - 40, // 52: opi_api.storage.v1.FrontendNvmeService.DeleteNvmeController:output_type -> google.protobuf.Empty - 5, // 53: opi_api.storage.v1.FrontendNvmeService.UpdateNvmeController:output_type -> opi_api.storage.v1.NvmeController - 23, // 54: opi_api.storage.v1.FrontendNvmeService.ListNvmeControllers:output_type -> opi_api.storage.v1.ListNvmeControllersResponse - 5, // 55: opi_api.storage.v1.FrontendNvmeService.GetNvmeController:output_type -> opi_api.storage.v1.NvmeController - 26, // 56: opi_api.storage.v1.FrontendNvmeService.StatsNvmeController:output_type -> opi_api.storage.v1.StatsNvmeControllerResponse - 8, // 57: opi_api.storage.v1.FrontendNvmeService.CreateNvmeNamespace:output_type -> opi_api.storage.v1.NvmeNamespace - 40, // 58: opi_api.storage.v1.FrontendNvmeService.DeleteNvmeNamespace:output_type -> google.protobuf.Empty - 8, // 59: opi_api.storage.v1.FrontendNvmeService.UpdateNvmeNamespace:output_type -> opi_api.storage.v1.NvmeNamespace - 31, // 60: opi_api.storage.v1.FrontendNvmeService.ListNvmeNamespaces:output_type -> opi_api.storage.v1.ListNvmeNamespacesResponse - 8, // 61: opi_api.storage.v1.FrontendNvmeService.GetNvmeNamespace:output_type -> opi_api.storage.v1.NvmeNamespace - 34, // 62: opi_api.storage.v1.FrontendNvmeService.StatsNvmeNamespace:output_type -> opi_api.storage.v1.StatsNvmeNamespaceResponse - 45, // [45:63] is the sub-list for method output_type - 27, // [27:45] is the sub-list for method input_type - 27, // [27:27] is the sub-list for extension type_name - 27, // [27:27] is the sub-list for extension extendee - 0, // [0:27] is the sub-list for field type_name + 35, // 4: opi_api.storage.v1.NvmeControllerSpec.trtype:type_name -> opi_api.storage.v1.NvmeTransportType + 36, // 5: opi_api.storage.v1.NvmeControllerSpec.pcie_id:type_name -> opi_api.storage.v1.PciEndpoint + 37, // 6: opi_api.storage.v1.NvmeControllerSpec.fabrics_id:type_name -> opi_api.storage.v1.FabricsEndpoint + 38, // 7: opi_api.storage.v1.NvmeControllerSpec.min_limit:type_name -> opi_api.storage.v1.QosLimit + 38, // 8: opi_api.storage.v1.NvmeControllerSpec.max_limit:type_name -> opi_api.storage.v1.QosLimit + 9, // 9: opi_api.storage.v1.NvmeNamespace.spec:type_name -> opi_api.storage.v1.NvmeNamespaceSpec + 10, // 10: opi_api.storage.v1.NvmeNamespace.status:type_name -> opi_api.storage.v1.NvmeNamespaceStatus + 39, // 11: opi_api.storage.v1.NvmeNamespaceSpec.uuid:type_name -> opi_api.common.v1.Uuid + 0, // 12: opi_api.storage.v1.NvmeNamespaceStatus.pci_state:type_name -> opi_api.storage.v1.NvmeNamespacePciState + 1, // 13: opi_api.storage.v1.NvmeNamespaceStatus.pci_oper_state:type_name -> opi_api.storage.v1.NvmeNamespacePciOperState + 2, // 14: opi_api.storage.v1.CreateNvmeSubsystemRequest.nvme_subsystem:type_name -> opi_api.storage.v1.NvmeSubsystem + 2, // 15: opi_api.storage.v1.UpdateNvmeSubsystemRequest.nvme_subsystem:type_name -> opi_api.storage.v1.NvmeSubsystem + 40, // 16: opi_api.storage.v1.UpdateNvmeSubsystemRequest.update_mask:type_name -> google.protobuf.FieldMask + 2, // 17: opi_api.storage.v1.ListNvmeSubsystemsResponse.nvme_subsystems:type_name -> opi_api.storage.v1.NvmeSubsystem + 41, // 18: opi_api.storage.v1.StatsNvmeSubsystemResponse.stats:type_name -> opi_api.storage.v1.VolumeStats + 5, // 19: opi_api.storage.v1.CreateNvmeControllerRequest.nvme_controller:type_name -> opi_api.storage.v1.NvmeController + 5, // 20: opi_api.storage.v1.UpdateNvmeControllerRequest.nvme_controller:type_name -> opi_api.storage.v1.NvmeController + 40, // 21: opi_api.storage.v1.UpdateNvmeControllerRequest.update_mask:type_name -> google.protobuf.FieldMask + 5, // 22: opi_api.storage.v1.ListNvmeControllersResponse.nvme_controllers:type_name -> opi_api.storage.v1.NvmeController + 41, // 23: opi_api.storage.v1.StatsNvmeControllerResponse.stats:type_name -> opi_api.storage.v1.VolumeStats + 8, // 24: opi_api.storage.v1.CreateNvmeNamespaceRequest.nvme_namespace:type_name -> opi_api.storage.v1.NvmeNamespace + 8, // 25: opi_api.storage.v1.UpdateNvmeNamespaceRequest.nvme_namespace:type_name -> opi_api.storage.v1.NvmeNamespace + 40, // 26: opi_api.storage.v1.UpdateNvmeNamespaceRequest.update_mask:type_name -> google.protobuf.FieldMask + 8, // 27: opi_api.storage.v1.ListNvmeNamespacesResponse.nvme_namespaces:type_name -> opi_api.storage.v1.NvmeNamespace + 41, // 28: opi_api.storage.v1.StatsNvmeNamespaceResponse.stats:type_name -> opi_api.storage.v1.VolumeStats + 11, // 29: opi_api.storage.v1.FrontendNvmeService.CreateNvmeSubsystem:input_type -> opi_api.storage.v1.CreateNvmeSubsystemRequest + 12, // 30: opi_api.storage.v1.FrontendNvmeService.DeleteNvmeSubsystem:input_type -> opi_api.storage.v1.DeleteNvmeSubsystemRequest + 13, // 31: opi_api.storage.v1.FrontendNvmeService.UpdateNvmeSubsystem:input_type -> opi_api.storage.v1.UpdateNvmeSubsystemRequest + 14, // 32: opi_api.storage.v1.FrontendNvmeService.ListNvmeSubsystems:input_type -> opi_api.storage.v1.ListNvmeSubsystemsRequest + 16, // 33: opi_api.storage.v1.FrontendNvmeService.GetNvmeSubsystem:input_type -> opi_api.storage.v1.GetNvmeSubsystemRequest + 17, // 34: opi_api.storage.v1.FrontendNvmeService.StatsNvmeSubsystem:input_type -> opi_api.storage.v1.StatsNvmeSubsystemRequest + 19, // 35: opi_api.storage.v1.FrontendNvmeService.CreateNvmeController:input_type -> opi_api.storage.v1.CreateNvmeControllerRequest + 20, // 36: opi_api.storage.v1.FrontendNvmeService.DeleteNvmeController:input_type -> opi_api.storage.v1.DeleteNvmeControllerRequest + 21, // 37: opi_api.storage.v1.FrontendNvmeService.UpdateNvmeController:input_type -> opi_api.storage.v1.UpdateNvmeControllerRequest + 22, // 38: opi_api.storage.v1.FrontendNvmeService.ListNvmeControllers:input_type -> opi_api.storage.v1.ListNvmeControllersRequest + 24, // 39: opi_api.storage.v1.FrontendNvmeService.GetNvmeController:input_type -> opi_api.storage.v1.GetNvmeControllerRequest + 25, // 40: opi_api.storage.v1.FrontendNvmeService.StatsNvmeController:input_type -> opi_api.storage.v1.StatsNvmeControllerRequest + 27, // 41: opi_api.storage.v1.FrontendNvmeService.CreateNvmeNamespace:input_type -> opi_api.storage.v1.CreateNvmeNamespaceRequest + 28, // 42: opi_api.storage.v1.FrontendNvmeService.DeleteNvmeNamespace:input_type -> opi_api.storage.v1.DeleteNvmeNamespaceRequest + 29, // 43: opi_api.storage.v1.FrontendNvmeService.UpdateNvmeNamespace:input_type -> opi_api.storage.v1.UpdateNvmeNamespaceRequest + 30, // 44: opi_api.storage.v1.FrontendNvmeService.ListNvmeNamespaces:input_type -> opi_api.storage.v1.ListNvmeNamespacesRequest + 32, // 45: opi_api.storage.v1.FrontendNvmeService.GetNvmeNamespace:input_type -> opi_api.storage.v1.GetNvmeNamespaceRequest + 33, // 46: opi_api.storage.v1.FrontendNvmeService.StatsNvmeNamespace:input_type -> opi_api.storage.v1.StatsNvmeNamespaceRequest + 2, // 47: opi_api.storage.v1.FrontendNvmeService.CreateNvmeSubsystem:output_type -> opi_api.storage.v1.NvmeSubsystem + 42, // 48: opi_api.storage.v1.FrontendNvmeService.DeleteNvmeSubsystem:output_type -> google.protobuf.Empty + 2, // 49: opi_api.storage.v1.FrontendNvmeService.UpdateNvmeSubsystem:output_type -> opi_api.storage.v1.NvmeSubsystem + 15, // 50: opi_api.storage.v1.FrontendNvmeService.ListNvmeSubsystems:output_type -> opi_api.storage.v1.ListNvmeSubsystemsResponse + 2, // 51: opi_api.storage.v1.FrontendNvmeService.GetNvmeSubsystem:output_type -> opi_api.storage.v1.NvmeSubsystem + 18, // 52: opi_api.storage.v1.FrontendNvmeService.StatsNvmeSubsystem:output_type -> opi_api.storage.v1.StatsNvmeSubsystemResponse + 5, // 53: opi_api.storage.v1.FrontendNvmeService.CreateNvmeController:output_type -> opi_api.storage.v1.NvmeController + 42, // 54: opi_api.storage.v1.FrontendNvmeService.DeleteNvmeController:output_type -> google.protobuf.Empty + 5, // 55: opi_api.storage.v1.FrontendNvmeService.UpdateNvmeController:output_type -> opi_api.storage.v1.NvmeController + 23, // 56: opi_api.storage.v1.FrontendNvmeService.ListNvmeControllers:output_type -> opi_api.storage.v1.ListNvmeControllersResponse + 5, // 57: opi_api.storage.v1.FrontendNvmeService.GetNvmeController:output_type -> opi_api.storage.v1.NvmeController + 26, // 58: opi_api.storage.v1.FrontendNvmeService.StatsNvmeController:output_type -> opi_api.storage.v1.StatsNvmeControllerResponse + 8, // 59: opi_api.storage.v1.FrontendNvmeService.CreateNvmeNamespace:output_type -> opi_api.storage.v1.NvmeNamespace + 42, // 60: opi_api.storage.v1.FrontendNvmeService.DeleteNvmeNamespace:output_type -> google.protobuf.Empty + 8, // 61: opi_api.storage.v1.FrontendNvmeService.UpdateNvmeNamespace:output_type -> opi_api.storage.v1.NvmeNamespace + 31, // 62: opi_api.storage.v1.FrontendNvmeService.ListNvmeNamespaces:output_type -> opi_api.storage.v1.ListNvmeNamespacesResponse + 8, // 63: opi_api.storage.v1.FrontendNvmeService.GetNvmeNamespace:output_type -> opi_api.storage.v1.NvmeNamespace + 34, // 64: opi_api.storage.v1.FrontendNvmeService.StatsNvmeNamespace:output_type -> opi_api.storage.v1.StatsNvmeNamespaceResponse + 47, // [47:65] is the sub-list for method output_type + 29, // [29:47] is the sub-list for method input_type + 29, // [29:29] is the sub-list for extension type_name + 29, // [29:29] is the sub-list for extension extendee + 0, // [0:29] is the sub-list for field type_name } func init() { file_frontend_nvme_pcie_proto_init() } @@ -3323,7 +3385,10 @@ func file_frontend_nvme_pcie_proto_init() { } } } - file_frontend_nvme_pcie_proto_msgTypes[4].OneofWrappers = []interface{}{} + file_frontend_nvme_pcie_proto_msgTypes[4].OneofWrappers = []interface{}{ + (*NvmeControllerSpec_PcieId)(nil), + (*NvmeControllerSpec_FabricsId)(nil), + } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ diff --git a/storage/v1alpha1/gen/go/opicommon.pb.go b/storage/v1alpha1/gen/go/opicommon.pb.go index c74f1c76..c9eb632a 100644 --- a/storage/v1alpha1/gen/go/opicommon.pb.go +++ b/storage/v1alpha1/gen/go/opicommon.pb.go @@ -96,6 +96,136 @@ func (EncryptionType) EnumDescriptor() ([]byte, []int) { return file_opicommon_proto_rawDescGZIP(), []int{0} } +// Transport type value options +type NvmeTransportType int32 + +const ( + // Transport type is not specified + NvmeTransportType_NVME_TRANSPORT_TYPE_UNSPECIFIED NvmeTransportType = 0 + // Fibre channel transport type + NvmeTransportType_NVME_TRANSPORT_FC NvmeTransportType = 1 + // Pcie transport type + NvmeTransportType_NVME_TRANSPORT_PCIE NvmeTransportType = 2 + // RDMA transport type + NvmeTransportType_NVME_TRANSPORT_RDMA NvmeTransportType = 3 + // TCP transport type + NvmeTransportType_NVME_TRANSPORT_TCP NvmeTransportType = 4 + // Custom transport type + NvmeTransportType_NVME_TRANSPORT_CUSTOM NvmeTransportType = 5 +) + +// Enum value maps for NvmeTransportType. +var ( + NvmeTransportType_name = map[int32]string{ + 0: "NVME_TRANSPORT_TYPE_UNSPECIFIED", + 1: "NVME_TRANSPORT_FC", + 2: "NVME_TRANSPORT_PCIE", + 3: "NVME_TRANSPORT_RDMA", + 4: "NVME_TRANSPORT_TCP", + 5: "NVME_TRANSPORT_CUSTOM", + } + NvmeTransportType_value = map[string]int32{ + "NVME_TRANSPORT_TYPE_UNSPECIFIED": 0, + "NVME_TRANSPORT_FC": 1, + "NVME_TRANSPORT_PCIE": 2, + "NVME_TRANSPORT_RDMA": 3, + "NVME_TRANSPORT_TCP": 4, + "NVME_TRANSPORT_CUSTOM": 5, + } +) + +func (x NvmeTransportType) Enum() *NvmeTransportType { + p := new(NvmeTransportType) + *p = x + return p +} + +func (x NvmeTransportType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (NvmeTransportType) Descriptor() protoreflect.EnumDescriptor { + return file_opicommon_proto_enumTypes[1].Descriptor() +} + +func (NvmeTransportType) Type() protoreflect.EnumType { + return &file_opicommon_proto_enumTypes[1] +} + +func (x NvmeTransportType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use NvmeTransportType.Descriptor instead. +func (NvmeTransportType) EnumDescriptor() ([]byte, []int) { + return file_opicommon_proto_rawDescGZIP(), []int{1} +} + +// Address family value options +type NvmeAddressFamily int32 + +const ( + // Address family is not specified + NvmeAddressFamily_NVME_ADDRESS_FAMILY_UNSPECIFIED NvmeAddressFamily = 0 + // IPv4 address family + NvmeAddressFamily_NVME_ADRFAM_IPV4 NvmeAddressFamily = 1 + // IPv6 address family + NvmeAddressFamily_NVME_ADRFAM_IPV6 NvmeAddressFamily = 2 + // InfiniBand address family + NvmeAddressFamily_NVME_ADRFAM_IB NvmeAddressFamily = 3 + // Fibre channel address family + NvmeAddressFamily_NVME_ADRFAM_FC NvmeAddressFamily = 4 + // Intra host address family + NvmeAddressFamily_NVME_ADRFAM_INTRA_HOST NvmeAddressFamily = 5 +) + +// Enum value maps for NvmeAddressFamily. +var ( + NvmeAddressFamily_name = map[int32]string{ + 0: "NVME_ADDRESS_FAMILY_UNSPECIFIED", + 1: "NVME_ADRFAM_IPV4", + 2: "NVME_ADRFAM_IPV6", + 3: "NVME_ADRFAM_IB", + 4: "NVME_ADRFAM_FC", + 5: "NVME_ADRFAM_INTRA_HOST", + } + NvmeAddressFamily_value = map[string]int32{ + "NVME_ADDRESS_FAMILY_UNSPECIFIED": 0, + "NVME_ADRFAM_IPV4": 1, + "NVME_ADRFAM_IPV6": 2, + "NVME_ADRFAM_IB": 3, + "NVME_ADRFAM_FC": 4, + "NVME_ADRFAM_INTRA_HOST": 5, + } +) + +func (x NvmeAddressFamily) Enum() *NvmeAddressFamily { + p := new(NvmeAddressFamily) + *p = x + return p +} + +func (x NvmeAddressFamily) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (NvmeAddressFamily) Descriptor() protoreflect.EnumDescriptor { + return file_opicommon_proto_enumTypes[2].Descriptor() +} + +func (NvmeAddressFamily) Type() protoreflect.EnumType { + return &file_opicommon_proto_enumTypes[2] +} + +func (x NvmeAddressFamily) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use NvmeAddressFamily.Descriptor instead. +func (NvmeAddressFamily) EnumDescriptor() ([]byte, []int) { + return file_opicommon_proto_rawDescGZIP(), []int{2} +} + // Many front-ends expose PCI devices to the host. This represents that endpoint. // This device will ultimately be surfaced by the operating system at some // Bus:Device:Function, but note that the values set here are not necessarily @@ -179,6 +309,73 @@ func (x *PciEndpoint) GetVirtualFunction() *wrapperspb.Int32Value { return nil } +// Represents Fabrics Endpoint +type FabricsEndpoint struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // ip address for TCP and RDMA + Traddr string `protobuf:"bytes,1,opt,name=traddr,proto3" json:"traddr,omitempty"` + // port for TCP and RDMA + Trsvcid string `protobuf:"bytes,2,opt,name=trsvcid,proto3" json:"trsvcid,omitempty"` + // address family + Adrfam NvmeAddressFamily `protobuf:"varint,3,opt,name=adrfam,proto3,enum=opi_api.storage.v1.NvmeAddressFamily" json:"adrfam,omitempty"` +} + +func (x *FabricsEndpoint) Reset() { + *x = FabricsEndpoint{} + if protoimpl.UnsafeEnabled { + mi := &file_opicommon_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FabricsEndpoint) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FabricsEndpoint) ProtoMessage() {} + +func (x *FabricsEndpoint) ProtoReflect() protoreflect.Message { + mi := &file_opicommon_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FabricsEndpoint.ProtoReflect.Descriptor instead. +func (*FabricsEndpoint) Descriptor() ([]byte, []int) { + return file_opicommon_proto_rawDescGZIP(), []int{1} +} + +func (x *FabricsEndpoint) GetTraddr() string { + if x != nil { + return x.Traddr + } + return "" +} + +func (x *FabricsEndpoint) GetTrsvcid() string { + if x != nil { + return x.Trsvcid + } + return "" +} + +func (x *FabricsEndpoint) GetAdrfam() NvmeAddressFamily { + if x != nil { + return x.Adrfam + } + return NvmeAddressFamily_NVME_ADDRESS_FAMILY_UNSPECIFIED +} + // Represents Volume statistics type VolumeStats struct { state protoimpl.MessageState @@ -208,7 +405,7 @@ type VolumeStats struct { func (x *VolumeStats) Reset() { *x = VolumeStats{} if protoimpl.UnsafeEnabled { - mi := &file_opicommon_proto_msgTypes[1] + mi := &file_opicommon_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -221,7 +418,7 @@ func (x *VolumeStats) String() string { func (*VolumeStats) ProtoMessage() {} func (x *VolumeStats) ProtoReflect() protoreflect.Message { - mi := &file_opicommon_proto_msgTypes[1] + mi := &file_opicommon_proto_msgTypes[2] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -234,7 +431,7 @@ func (x *VolumeStats) ProtoReflect() protoreflect.Message { // Deprecated: Use VolumeStats.ProtoReflect.Descriptor instead. func (*VolumeStats) Descriptor() ([]byte, []int) { - return file_opicommon_proto_rawDescGZIP(), []int{1} + return file_opicommon_proto_rawDescGZIP(), []int{2} } func (x *VolumeStats) GetReadBytesCount() int32 { @@ -323,7 +520,7 @@ type QosLimit struct { func (x *QosLimit) Reset() { *x = QosLimit{} if protoimpl.UnsafeEnabled { - mi := &file_opicommon_proto_msgTypes[2] + mi := &file_opicommon_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -336,7 +533,7 @@ func (x *QosLimit) String() string { func (*QosLimit) ProtoMessage() {} func (x *QosLimit) ProtoReflect() protoreflect.Message { - mi := &file_opicommon_proto_msgTypes[2] + mi := &file_opicommon_proto_msgTypes[3] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -349,7 +546,7 @@ func (x *QosLimit) ProtoReflect() protoreflect.Message { // Deprecated: Use QosLimit.ProtoReflect.Descriptor instead. func (*QosLimit) Descriptor() ([]byte, []int) { - return file_opicommon_proto_rawDescGZIP(), []int{2} + return file_opicommon_proto_rawDescGZIP(), []int{3} } func (x *QosLimit) GetRdIopsKiops() int64 { @@ -417,75 +614,106 @@ var file_opicommon_proto_rawDesc = []byte{ 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0f, 0x76, 0x69, - 0x72, 0x74, 0x75, 0x61, 0x6c, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xc0, 0x03, - 0x0a, 0x0b, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x2d, 0x0a, - 0x10, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0e, 0x72, 0x65, - 0x61, 0x64, 0x42, 0x79, 0x74, 0x65, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x29, 0x0a, 0x0e, - 0x72, 0x65, 0x61, 0x64, 0x5f, 0x6f, 0x70, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0c, 0x72, 0x65, 0x61, 0x64, 0x4f, - 0x70, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2f, 0x0a, 0x11, 0x77, 0x72, 0x69, 0x74, 0x65, - 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0f, 0x77, 0x72, 0x69, 0x74, 0x65, 0x42, 0x79, - 0x74, 0x65, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2b, 0x0a, 0x0f, 0x77, 0x72, 0x69, 0x74, - 0x65, 0x5f, 0x6f, 0x70, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x05, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0d, 0x77, 0x72, 0x69, 0x74, 0x65, 0x4f, 0x70, 0x73, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2f, 0x0a, 0x11, 0x75, 0x6e, 0x6d, 0x61, 0x70, 0x5f, 0x62, - 0x79, 0x74, 0x65, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, - 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0f, 0x75, 0x6e, 0x6d, 0x61, 0x70, 0x42, 0x79, 0x74, 0x65, - 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2b, 0x0a, 0x0f, 0x75, 0x6e, 0x6d, 0x61, 0x70, 0x5f, - 0x6f, 0x70, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x42, - 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0d, 0x75, 0x6e, 0x6d, 0x61, 0x70, 0x4f, 0x70, 0x73, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x12, 0x31, 0x0a, 0x12, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x6c, 0x61, 0x74, 0x65, - 0x6e, 0x63, 0x79, 0x5f, 0x74, 0x69, 0x63, 0x6b, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x42, - 0x03, 0xe0, 0x41, 0x03, 0x52, 0x10, 0x72, 0x65, 0x61, 0x64, 0x4c, 0x61, 0x74, 0x65, 0x6e, 0x63, - 0x79, 0x54, 0x69, 0x63, 0x6b, 0x73, 0x12, 0x33, 0x0a, 0x13, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, - 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x74, 0x69, 0x63, 0x6b, 0x73, 0x18, 0x08, 0x20, - 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x11, 0x77, 0x72, 0x69, 0x74, 0x65, 0x4c, - 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x54, 0x69, 0x63, 0x6b, 0x73, 0x12, 0x33, 0x0a, 0x13, 0x75, - 0x6e, 0x6d, 0x61, 0x70, 0x5f, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x74, 0x69, 0x63, - 0x6b, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x11, 0x75, - 0x6e, 0x6d, 0x61, 0x70, 0x4c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x54, 0x69, 0x63, 0x6b, 0x73, - 0x22, 0x92, 0x02, 0x0a, 0x08, 0x51, 0x6f, 0x73, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x27, 0x0a, - 0x0d, 0x72, 0x64, 0x5f, 0x69, 0x6f, 0x70, 0x73, 0x5f, 0x6b, 0x69, 0x6f, 0x70, 0x73, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x03, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0b, 0x72, 0x64, 0x49, 0x6f, 0x70, - 0x73, 0x4b, 0x69, 0x6f, 0x70, 0x73, 0x12, 0x27, 0x0a, 0x0d, 0x77, 0x72, 0x5f, 0x69, 0x6f, 0x70, - 0x73, 0x5f, 0x6b, 0x69, 0x6f, 0x70, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x42, 0x03, 0xe0, - 0x41, 0x01, 0x52, 0x0b, 0x77, 0x72, 0x49, 0x6f, 0x70, 0x73, 0x4b, 0x69, 0x6f, 0x70, 0x73, 0x12, - 0x27, 0x0a, 0x0d, 0x72, 0x77, 0x5f, 0x69, 0x6f, 0x70, 0x73, 0x5f, 0x6b, 0x69, 0x6f, 0x70, 0x73, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0b, 0x72, 0x77, 0x49, - 0x6f, 0x70, 0x73, 0x4b, 0x69, 0x6f, 0x70, 0x73, 0x12, 0x2d, 0x0a, 0x10, 0x72, 0x64, 0x5f, 0x62, - 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x5f, 0x6d, 0x62, 0x73, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x03, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0e, 0x72, 0x64, 0x42, 0x61, 0x6e, 0x64, 0x77, - 0x69, 0x64, 0x74, 0x68, 0x4d, 0x62, 0x73, 0x12, 0x2d, 0x0a, 0x10, 0x77, 0x72, 0x5f, 0x62, 0x61, - 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x5f, 0x6d, 0x62, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x03, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0e, 0x77, 0x72, 0x42, 0x61, 0x6e, 0x64, 0x77, 0x69, - 0x64, 0x74, 0x68, 0x4d, 0x62, 0x73, 0x12, 0x2d, 0x0a, 0x10, 0x72, 0x77, 0x5f, 0x62, 0x61, 0x6e, - 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x5f, 0x6d, 0x62, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, - 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0e, 0x72, 0x77, 0x42, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, - 0x74, 0x68, 0x4d, 0x62, 0x73, 0x2a, 0xf7, 0x01, 0x0a, 0x0e, 0x45, 0x6e, 0x63, 0x72, 0x79, 0x70, - 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1f, 0x0a, 0x1b, 0x45, 0x4e, 0x43, 0x52, - 0x59, 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, - 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1f, 0x0a, 0x1b, 0x45, 0x4e, 0x43, - 0x52, 0x59, 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x41, 0x45, 0x53, - 0x5f, 0x43, 0x42, 0x43, 0x5f, 0x31, 0x32, 0x38, 0x10, 0x01, 0x12, 0x1f, 0x0a, 0x1b, 0x45, 0x4e, - 0x43, 0x52, 0x59, 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x41, 0x45, - 0x53, 0x5f, 0x43, 0x42, 0x43, 0x5f, 0x31, 0x39, 0x32, 0x10, 0x02, 0x12, 0x1f, 0x0a, 0x1b, 0x45, - 0x4e, 0x43, 0x52, 0x59, 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x41, - 0x45, 0x53, 0x5f, 0x43, 0x42, 0x43, 0x5f, 0x32, 0x35, 0x36, 0x10, 0x03, 0x12, 0x1f, 0x0a, 0x1b, + 0x72, 0x74, 0x75, 0x61, 0x6c, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x91, 0x01, + 0x0a, 0x0f, 0x46, 0x61, 0x62, 0x72, 0x69, 0x63, 0x73, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, + 0x74, 0x12, 0x1b, 0x0a, 0x06, 0x74, 0x72, 0x61, 0x64, 0x64, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x74, 0x72, 0x61, 0x64, 0x64, 0x72, 0x12, 0x1d, + 0x0a, 0x07, 0x74, 0x72, 0x73, 0x76, 0x63, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, 0x74, 0x72, 0x73, 0x76, 0x63, 0x69, 0x64, 0x12, 0x42, 0x0a, + 0x06, 0x61, 0x64, 0x72, 0x66, 0x61, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, + 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, + 0x76, 0x31, 0x2e, 0x4e, 0x76, 0x6d, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x46, 0x61, + 0x6d, 0x69, 0x6c, 0x79, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x61, 0x64, 0x72, 0x66, 0x61, + 0x6d, 0x22, 0xc0, 0x03, 0x0a, 0x0b, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x74, + 0x73, 0x12, 0x2d, 0x0a, 0x10, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x03, + 0x52, 0x0e, 0x72, 0x65, 0x61, 0x64, 0x42, 0x79, 0x74, 0x65, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x12, 0x29, 0x0a, 0x0e, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x6f, 0x70, 0x73, 0x5f, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0c, 0x72, + 0x65, 0x61, 0x64, 0x4f, 0x70, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2f, 0x0a, 0x11, 0x77, + 0x72, 0x69, 0x74, 0x65, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0f, 0x77, 0x72, 0x69, + 0x74, 0x65, 0x42, 0x79, 0x74, 0x65, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2b, 0x0a, 0x0f, + 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x6f, 0x70, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0d, 0x77, 0x72, 0x69, 0x74, + 0x65, 0x4f, 0x70, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2f, 0x0a, 0x11, 0x75, 0x6e, 0x6d, + 0x61, 0x70, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0f, 0x75, 0x6e, 0x6d, 0x61, 0x70, + 0x42, 0x79, 0x74, 0x65, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2b, 0x0a, 0x0f, 0x75, 0x6e, + 0x6d, 0x61, 0x70, 0x5f, 0x6f, 0x70, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0d, 0x75, 0x6e, 0x6d, 0x61, 0x70, 0x4f, + 0x70, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x31, 0x0a, 0x12, 0x72, 0x65, 0x61, 0x64, 0x5f, + 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x74, 0x69, 0x63, 0x6b, 0x73, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x10, 0x72, 0x65, 0x61, 0x64, 0x4c, 0x61, + 0x74, 0x65, 0x6e, 0x63, 0x79, 0x54, 0x69, 0x63, 0x6b, 0x73, 0x12, 0x33, 0x0a, 0x13, 0x77, 0x72, + 0x69, 0x74, 0x65, 0x5f, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x74, 0x69, 0x63, 0x6b, + 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x11, 0x77, 0x72, + 0x69, 0x74, 0x65, 0x4c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x54, 0x69, 0x63, 0x6b, 0x73, 0x12, + 0x33, 0x0a, 0x13, 0x75, 0x6e, 0x6d, 0x61, 0x70, 0x5f, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, + 0x5f, 0x74, 0x69, 0x63, 0x6b, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, + 0x03, 0x52, 0x11, 0x75, 0x6e, 0x6d, 0x61, 0x70, 0x4c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x54, + 0x69, 0x63, 0x6b, 0x73, 0x22, 0x92, 0x02, 0x0a, 0x08, 0x51, 0x6f, 0x73, 0x4c, 0x69, 0x6d, 0x69, + 0x74, 0x12, 0x27, 0x0a, 0x0d, 0x72, 0x64, 0x5f, 0x69, 0x6f, 0x70, 0x73, 0x5f, 0x6b, 0x69, 0x6f, + 0x70, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0b, 0x72, + 0x64, 0x49, 0x6f, 0x70, 0x73, 0x4b, 0x69, 0x6f, 0x70, 0x73, 0x12, 0x27, 0x0a, 0x0d, 0x77, 0x72, + 0x5f, 0x69, 0x6f, 0x70, 0x73, 0x5f, 0x6b, 0x69, 0x6f, 0x70, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x03, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0b, 0x77, 0x72, 0x49, 0x6f, 0x70, 0x73, 0x4b, 0x69, + 0x6f, 0x70, 0x73, 0x12, 0x27, 0x0a, 0x0d, 0x72, 0x77, 0x5f, 0x69, 0x6f, 0x70, 0x73, 0x5f, 0x6b, + 0x69, 0x6f, 0x70, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, + 0x0b, 0x72, 0x77, 0x49, 0x6f, 0x70, 0x73, 0x4b, 0x69, 0x6f, 0x70, 0x73, 0x12, 0x2d, 0x0a, 0x10, + 0x72, 0x64, 0x5f, 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x5f, 0x6d, 0x62, 0x73, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0e, 0x72, 0x64, 0x42, + 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x4d, 0x62, 0x73, 0x12, 0x2d, 0x0a, 0x10, 0x77, + 0x72, 0x5f, 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x5f, 0x6d, 0x62, 0x73, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x03, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0e, 0x77, 0x72, 0x42, 0x61, + 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x4d, 0x62, 0x73, 0x12, 0x2d, 0x0a, 0x10, 0x72, 0x77, + 0x5f, 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x5f, 0x6d, 0x62, 0x73, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x03, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0e, 0x72, 0x77, 0x42, 0x61, 0x6e, + 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x4d, 0x62, 0x73, 0x2a, 0xf7, 0x01, 0x0a, 0x0e, 0x45, 0x6e, + 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1f, 0x0a, 0x1b, 0x45, 0x4e, 0x43, 0x52, 0x59, 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, - 0x41, 0x45, 0x53, 0x5f, 0x58, 0x54, 0x53, 0x5f, 0x31, 0x32, 0x38, 0x10, 0x04, 0x12, 0x1f, 0x0a, + 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1f, 0x0a, 0x1b, 0x45, 0x4e, 0x43, 0x52, 0x59, 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, - 0x5f, 0x41, 0x45, 0x53, 0x5f, 0x58, 0x54, 0x53, 0x5f, 0x31, 0x39, 0x32, 0x10, 0x05, 0x12, 0x1f, + 0x5f, 0x41, 0x45, 0x53, 0x5f, 0x43, 0x42, 0x43, 0x5f, 0x31, 0x32, 0x38, 0x10, 0x01, 0x12, 0x1f, 0x0a, 0x1b, 0x45, 0x4e, 0x43, 0x52, 0x59, 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, - 0x45, 0x5f, 0x41, 0x45, 0x53, 0x5f, 0x58, 0x54, 0x53, 0x5f, 0x32, 0x35, 0x36, 0x10, 0x06, 0x42, - 0x5d, 0x0a, 0x12, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, - 0x67, 0x65, 0x2e, 0x76, 0x31, 0x42, 0x0e, 0x4f, 0x70, 0x69, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, - 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x35, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, - 0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x70, 0x69, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x2f, 0x6f, - 0x70, 0x69, 0x2d, 0x61, 0x70, 0x69, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2f, 0x76, - 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x67, 0x6f, 0x62, 0x06, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x45, 0x5f, 0x41, 0x45, 0x53, 0x5f, 0x43, 0x42, 0x43, 0x5f, 0x31, 0x39, 0x32, 0x10, 0x02, 0x12, + 0x1f, 0x0a, 0x1b, 0x45, 0x4e, 0x43, 0x52, 0x59, 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, + 0x50, 0x45, 0x5f, 0x41, 0x45, 0x53, 0x5f, 0x43, 0x42, 0x43, 0x5f, 0x32, 0x35, 0x36, 0x10, 0x03, + 0x12, 0x1f, 0x0a, 0x1b, 0x45, 0x4e, 0x43, 0x52, 0x59, 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, + 0x59, 0x50, 0x45, 0x5f, 0x41, 0x45, 0x53, 0x5f, 0x58, 0x54, 0x53, 0x5f, 0x31, 0x32, 0x38, 0x10, + 0x04, 0x12, 0x1f, 0x0a, 0x1b, 0x45, 0x4e, 0x43, 0x52, 0x59, 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x5f, + 0x54, 0x59, 0x50, 0x45, 0x5f, 0x41, 0x45, 0x53, 0x5f, 0x58, 0x54, 0x53, 0x5f, 0x31, 0x39, 0x32, + 0x10, 0x05, 0x12, 0x1f, 0x0a, 0x1b, 0x45, 0x4e, 0x43, 0x52, 0x59, 0x50, 0x54, 0x49, 0x4f, 0x4e, + 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x41, 0x45, 0x53, 0x5f, 0x58, 0x54, 0x53, 0x5f, 0x32, 0x35, + 0x36, 0x10, 0x06, 0x2a, 0xb4, 0x01, 0x0a, 0x11, 0x4e, 0x76, 0x6d, 0x65, 0x54, 0x72, 0x61, 0x6e, + 0x73, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x23, 0x0a, 0x1f, 0x4e, 0x56, 0x4d, + 0x45, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, + 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x15, + 0x0a, 0x11, 0x4e, 0x56, 0x4d, 0x45, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x50, 0x4f, 0x52, 0x54, + 0x5f, 0x46, 0x43, 0x10, 0x01, 0x12, 0x17, 0x0a, 0x13, 0x4e, 0x56, 0x4d, 0x45, 0x5f, 0x54, 0x52, + 0x41, 0x4e, 0x53, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x50, 0x43, 0x49, 0x45, 0x10, 0x02, 0x12, 0x17, + 0x0a, 0x13, 0x4e, 0x56, 0x4d, 0x45, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x50, 0x4f, 0x52, 0x54, + 0x5f, 0x52, 0x44, 0x4d, 0x41, 0x10, 0x03, 0x12, 0x16, 0x0a, 0x12, 0x4e, 0x56, 0x4d, 0x45, 0x5f, + 0x54, 0x52, 0x41, 0x4e, 0x53, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x54, 0x43, 0x50, 0x10, 0x04, 0x12, + 0x19, 0x0a, 0x15, 0x4e, 0x56, 0x4d, 0x45, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x50, 0x4f, 0x52, + 0x54, 0x5f, 0x43, 0x55, 0x53, 0x54, 0x4f, 0x4d, 0x10, 0x05, 0x2a, 0xa8, 0x01, 0x0a, 0x11, 0x4e, + 0x76, 0x6d, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, + 0x12, 0x23, 0x0a, 0x1f, 0x4e, 0x56, 0x4d, 0x45, 0x5f, 0x41, 0x44, 0x44, 0x52, 0x45, 0x53, 0x53, + 0x5f, 0x46, 0x41, 0x4d, 0x49, 0x4c, 0x59, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, + 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x14, 0x0a, 0x10, 0x4e, 0x56, 0x4d, 0x45, 0x5f, 0x41, 0x44, + 0x52, 0x46, 0x41, 0x4d, 0x5f, 0x49, 0x50, 0x56, 0x34, 0x10, 0x01, 0x12, 0x14, 0x0a, 0x10, 0x4e, + 0x56, 0x4d, 0x45, 0x5f, 0x41, 0x44, 0x52, 0x46, 0x41, 0x4d, 0x5f, 0x49, 0x50, 0x56, 0x36, 0x10, + 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x4e, 0x56, 0x4d, 0x45, 0x5f, 0x41, 0x44, 0x52, 0x46, 0x41, 0x4d, + 0x5f, 0x49, 0x42, 0x10, 0x03, 0x12, 0x12, 0x0a, 0x0e, 0x4e, 0x56, 0x4d, 0x45, 0x5f, 0x41, 0x44, + 0x52, 0x46, 0x41, 0x4d, 0x5f, 0x46, 0x43, 0x10, 0x04, 0x12, 0x1a, 0x0a, 0x16, 0x4e, 0x56, 0x4d, + 0x45, 0x5f, 0x41, 0x44, 0x52, 0x46, 0x41, 0x4d, 0x5f, 0x49, 0x4e, 0x54, 0x52, 0x41, 0x5f, 0x48, + 0x4f, 0x53, 0x54, 0x10, 0x05, 0x42, 0x5d, 0x0a, 0x12, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, + 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x42, 0x0e, 0x4f, 0x70, 0x69, + 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x35, 0x67, + 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x70, 0x69, 0x70, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x2f, 0x6f, 0x70, 0x69, 0x2d, 0x61, 0x70, 0x69, 0x2f, 0x73, 0x74, 0x6f, + 0x72, 0x61, 0x67, 0x65, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2f, 0x67, 0x65, + 0x6e, 0x2f, 0x67, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -500,24 +728,28 @@ func file_opicommon_proto_rawDescGZIP() []byte { return file_opicommon_proto_rawDescData } -var file_opicommon_proto_enumTypes = make([]protoimpl.EnumInfo, 1) -var file_opicommon_proto_msgTypes = make([]protoimpl.MessageInfo, 3) +var file_opicommon_proto_enumTypes = make([]protoimpl.EnumInfo, 3) +var file_opicommon_proto_msgTypes = make([]protoimpl.MessageInfo, 4) var file_opicommon_proto_goTypes = []interface{}{ (EncryptionType)(0), // 0: opi_api.storage.v1.EncryptionType - (*PciEndpoint)(nil), // 1: opi_api.storage.v1.PciEndpoint - (*VolumeStats)(nil), // 2: opi_api.storage.v1.VolumeStats - (*QosLimit)(nil), // 3: opi_api.storage.v1.QosLimit - (*wrapperspb.Int32Value)(nil), // 4: google.protobuf.Int32Value + (NvmeTransportType)(0), // 1: opi_api.storage.v1.NvmeTransportType + (NvmeAddressFamily)(0), // 2: opi_api.storage.v1.NvmeAddressFamily + (*PciEndpoint)(nil), // 3: opi_api.storage.v1.PciEndpoint + (*FabricsEndpoint)(nil), // 4: opi_api.storage.v1.FabricsEndpoint + (*VolumeStats)(nil), // 5: opi_api.storage.v1.VolumeStats + (*QosLimit)(nil), // 6: opi_api.storage.v1.QosLimit + (*wrapperspb.Int32Value)(nil), // 7: google.protobuf.Int32Value } var file_opicommon_proto_depIdxs = []int32{ - 4, // 0: opi_api.storage.v1.PciEndpoint.port_id:type_name -> google.protobuf.Int32Value - 4, // 1: opi_api.storage.v1.PciEndpoint.physical_function:type_name -> google.protobuf.Int32Value - 4, // 2: opi_api.storage.v1.PciEndpoint.virtual_function:type_name -> google.protobuf.Int32Value - 3, // [3:3] is the sub-list for method output_type - 3, // [3:3] is the sub-list for method input_type - 3, // [3:3] is the sub-list for extension type_name - 3, // [3:3] is the sub-list for extension extendee - 0, // [0:3] is the sub-list for field type_name + 7, // 0: opi_api.storage.v1.PciEndpoint.port_id:type_name -> google.protobuf.Int32Value + 7, // 1: opi_api.storage.v1.PciEndpoint.physical_function:type_name -> google.protobuf.Int32Value + 7, // 2: opi_api.storage.v1.PciEndpoint.virtual_function:type_name -> google.protobuf.Int32Value + 2, // 3: opi_api.storage.v1.FabricsEndpoint.adrfam:type_name -> opi_api.storage.v1.NvmeAddressFamily + 4, // [4:4] is the sub-list for method output_type + 4, // [4:4] is the sub-list for method input_type + 4, // [4:4] is the sub-list for extension type_name + 4, // [4:4] is the sub-list for extension extendee + 0, // [0:4] is the sub-list for field type_name } func init() { file_opicommon_proto_init() } @@ -539,7 +771,7 @@ func file_opicommon_proto_init() { } } file_opicommon_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*VolumeStats); i { + switch v := v.(*FabricsEndpoint); i { case 0: return &v.state case 1: @@ -551,6 +783,18 @@ func file_opicommon_proto_init() { } } file_opicommon_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*VolumeStats); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_opicommon_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*QosLimit); i { case 0: return &v.state @@ -568,8 +812,8 @@ func file_opicommon_proto_init() { File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_opicommon_proto_rawDesc, - NumEnums: 1, - NumMessages: 3, + NumEnums: 3, + NumMessages: 4, NumExtensions: 0, NumServices: 0, }, diff --git a/storage/v1alpha1/gen/java/opi_api/storage/v1/BackendNvmeTcpProto.java b/storage/v1alpha1/gen/java/opi_api/storage/v1/BackendNvmeTcpProto.java index e90b4af8..1fb385f7 100644 --- a/storage/v1alpha1/gen/java/opi_api/storage/v1/BackendNvmeTcpProto.java +++ b/storage/v1alpha1/gen/java/opi_api/storage/v1/BackendNvmeTcpProto.java @@ -248,87 +248,78 @@ public static void registerAllExtensions( "thRequest\0221\n\004name\030\001 \001(\tB#\340A\002\372A\035\n\033opi_api" + ".storage.v1/NvmePath\"G\n\025StatsNvmePathRes" + "ponse\022.\n\005stats\030\001 \001(\0132\037.opi_api.storage.v" + - "1.VolumeStats*\264\001\n\021NvmeTransportType\022#\n\037N" + - "VME_TRANSPORT_TYPE_UNSPECIFIED\020\000\022\025\n\021NVME" + - "_TRANSPORT_FC\020\001\022\027\n\023NVME_TRANSPORT_PCIE\020\002" + - "\022\027\n\023NVME_TRANSPORT_RDMA\020\003\022\026\n\022NVME_TRANSP" + - "ORT_TCP\020\004\022\031\n\025NVME_TRANSPORT_CUSTOM\020\005*\250\001\n" + - "\021NvmeAddressFamily\022#\n\037NVME_ADDRESS_FAMIL" + - "Y_UNSPECIFIED\020\000\022\024\n\020NVME_ADRFAM_IPV4\020\001\022\024\n" + - "\020NVME_ADRFAM_IPV6\020\002\022\022\n\016NVME_ADRFAM_IB\020\003\022" + - "\022\n\016NVME_ADRFAM_FC\020\004\022\032\n\026NVME_ADRFAM_INTRA" + - "_HOST\020\005*\206\001\n\rNvmeMultipath\022\036\n\032NVME_MULTIP" + - "ATH_UNSPECIFIED\020\000\022\032\n\026NVME_MULTIPATH_DISA" + - "BLE\020\001\022\033\n\027NVME_MULTIPATH_FAILOVER\020\002\022\034\n\030NV" + - "ME_MULTIPATH_MULTIPATH\020\0032\262\024\n\033NvmeRemoteC" + - "ontrollerService\022\353\001\n\032CreateNvmeRemoteCon" + - "troller\0225.opi_api.storage.v1.CreateNvmeR" + - "emoteControllerRequest\032(.opi_api.storage" + - ".v1.NvmeRemoteController\"l\202\323\344\223\0023\"\031/v1/nv" + - "meRemoteControllers:\026nvme_remote_control" + - "ler\332A0nvme_remote_controller,nvme_remote" + - "_controller_id\022\236\001\n\032DeleteNvmeRemoteContr" + - "oller\0225.opi_api.storage.v1.DeleteNvmeRem" + - "oteControllerRequest\032\026.google.protobuf.E" + - "mpty\"1\202\323\344\223\002$*\"/v1/{name=nvmeRemoteContro" + - "llers/*}\332A\004name\022\375\001\n\032UpdateNvmeRemoteCont" + - "roller\0225.opi_api.storage.v1.UpdateNvmeRe" + - "moteControllerRequest\032(.opi_api.storage." + - "v1.NvmeRemoteController\"~\202\323\344\223\002S29/v1/{nv" + - "me_remote_controller.name=nvmeRemoteCont" + - "rollers/*}:\026nvme_remote_controller\332A\"nvm" + - "e_remote_controller,update_mask\022\262\001\n\031List" + - "NvmeRemoteControllers\0224.opi_api.storage." + - "v1.ListNvmeRemoteControllersRequest\0325.op" + - "i_api.storage.v1.ListNvmeRemoteControlle" + - "rsResponse\"(\202\323\344\223\002\031\022\027/v1/{parent=subsyste" + - "ms}\332A\006parent\022\252\001\n\027GetNvmeRemoteController" + - "\0222.opi_api.storage.v1.GetNvmeRemoteContr" + - "ollerRequest\032(.opi_api.storage.v1.NvmeRe" + - "moteController\"1\202\323\344\223\002$\022\"/v1/{name=nvmeRe" + - "moteControllers/*}\332A\004name\022\245\001\n\031ResetNvmeR" + - "emoteController\0224.opi_api.storage.v1.Res" + - "etNvmeRemoteControllerRequest\032\026.google.p" + - "rotobuf.Empty\":\202\323\344\223\002-\"(/v1/{name=nvmeRem" + - "oteControllers/*}:reset:\001*\332A\004name\022\301\001\n\031St" + - "atsNvmeRemoteController\0224.opi_api.storag" + - "e.v1.StatsNvmeRemoteControllerRequest\0325." + - "opi_api.storage.v1.StatsNvmeRemoteContro" + - "llerResponse\"7\202\323\344\223\002*\022(/v1/{name=nvmeRemo" + - "teControllers/*}:stats\332A\004name\022\257\001\n\030ListNv" + - "meRemoteNamespaces\0223.opi_api.storage.v1." + - "ListNvmeRemoteNamespacesRequest\0324.opi_ap" + - "i.storage.v1.ListNvmeRemoteNamespacesRes" + - "ponse\"(\202\323\344\223\002\031\022\027/v1/{parent=subsystems}\332A" + - "\006parent\022\246\001\n\026GetNvmeRemoteNamespace\0221.opi" + - "_api.storage.v1.GetNvmeRemoteNamespaceRe" + - "quest\032\'.opi_api.storage.v1.NvmeRemoteNam" + - "espace\"0\202\323\344\223\002#\022!/v1/{name=nvmeRemoteName" + - "spaces/*}\332A\004name\022\224\001\n\016CreateNvmePath\022).op" + - "i_api.storage.v1.CreateNvmePathRequest\032\034" + - ".opi_api.storage.v1.NvmePath\"9\202\323\344\223\002\032\"\r/v" + - "1/nvmePaths:\tnvme_path\332A\026nvme_path,nvme_" + - "path_id\022z\n\016DeleteNvmePath\022).opi_api.stor" + - "age.v1.DeleteNvmePathRequest\032\026.google.pr" + - "otobuf.Empty\"%\202\323\344\223\002\030*\026/v1/{name=nvmePath" + - "s/*}\332A\004name\022\246\001\n\016UpdateNvmePath\022).opi_api" + - ".storage.v1.UpdateNvmePathRequest\032\034.opi_" + - "api.storage.v1.NvmePath\"K\202\323\344\223\002-2 /v1/{nv" + - "me_path.name=nvmePaths/*}:\tnvme_path\332A\025n" + - "vme_path,update_mask\022\216\001\n\rListNvmePaths\022(" + - ".opi_api.storage.v1.ListNvmePathsRequest" + - "\032).opi_api.storage.v1.ListNvmePathsRespo" + - "nse\"(\202\323\344\223\002\031\022\027/v1/{parent=subsystems}\332A\006p" + - "arent\022z\n\013GetNvmePath\022&.opi_api.storage.v" + - "1.GetNvmePathRequest\032\034.opi_api.storage.v" + - "1.NvmePath\"%\202\323\344\223\002\030\022\026/v1/{name=nvmePaths/" + - "*}\332A\004name\022\221\001\n\rStatsNvmePath\022(.opi_api.st" + - "orage.v1.StatsNvmePathRequest\032).opi_api." + - "storage.v1.StatsNvmePathResponse\"+\202\323\344\223\002\036" + - "\022\034/v1/{name=nvmePaths/*}:stats\332A\004nameBb\n" + - "\022opi_api.storage.v1B\023BackendNvmeTcpProto" + - "P\001Z5github.com/opiproject/opi-api/storag" + - "e/v1alpha1/gen/gob\006proto3" + "1.VolumeStats*\206\001\n\rNvmeMultipath\022\036\n\032NVME_" + + "MULTIPATH_UNSPECIFIED\020\000\022\032\n\026NVME_MULTIPAT" + + "H_DISABLE\020\001\022\033\n\027NVME_MULTIPATH_FAILOVER\020\002" + + "\022\034\n\030NVME_MULTIPATH_MULTIPATH\020\0032\262\024\n\033NvmeR" + + "emoteControllerService\022\353\001\n\032CreateNvmeRem" + + "oteController\0225.opi_api.storage.v1.Creat" + + "eNvmeRemoteControllerRequest\032(.opi_api.s" + + "torage.v1.NvmeRemoteController\"l\202\323\344\223\0023\"\031" + + "/v1/nvmeRemoteControllers:\026nvme_remote_c" + + "ontroller\332A0nvme_remote_controller,nvme_" + + "remote_controller_id\022\236\001\n\032DeleteNvmeRemot" + + "eController\0225.opi_api.storage.v1.DeleteN" + + "vmeRemoteControllerRequest\032\026.google.prot" + + "obuf.Empty\"1\202\323\344\223\002$*\"/v1/{name=nvmeRemote" + + "Controllers/*}\332A\004name\022\375\001\n\032UpdateNvmeRemo" + + "teController\0225.opi_api.storage.v1.Update" + + "NvmeRemoteControllerRequest\032(.opi_api.st" + + "orage.v1.NvmeRemoteController\"~\202\323\344\223\002S29/" + + "v1/{nvme_remote_controller.name=nvmeRemo" + + "teControllers/*}:\026nvme_remote_controller" + + "\332A\"nvme_remote_controller,update_mask\022\262\001" + + "\n\031ListNvmeRemoteControllers\0224.opi_api.st" + + "orage.v1.ListNvmeRemoteControllersReques" + + "t\0325.opi_api.storage.v1.ListNvmeRemoteCon" + + "trollersResponse\"(\202\323\344\223\002\031\022\027/v1/{parent=su" + + "bsystems}\332A\006parent\022\252\001\n\027GetNvmeRemoteCont" + + "roller\0222.opi_api.storage.v1.GetNvmeRemot" + + "eControllerRequest\032(.opi_api.storage.v1." + + "NvmeRemoteController\"1\202\323\344\223\002$\022\"/v1/{name=" + + "nvmeRemoteControllers/*}\332A\004name\022\245\001\n\031Rese" + + "tNvmeRemoteController\0224.opi_api.storage." + + "v1.ResetNvmeRemoteControllerRequest\032\026.go" + + "ogle.protobuf.Empty\":\202\323\344\223\002-\"(/v1/{name=n" + + "vmeRemoteControllers/*}:reset:\001*\332A\004name\022" + + "\301\001\n\031StatsNvmeRemoteController\0224.opi_api." + + "storage.v1.StatsNvmeRemoteControllerRequ" + + "est\0325.opi_api.storage.v1.StatsNvmeRemote" + + "ControllerResponse\"7\202\323\344\223\002*\022(/v1/{name=nv" + + "meRemoteControllers/*}:stats\332A\004name\022\257\001\n\030" + + "ListNvmeRemoteNamespaces\0223.opi_api.stora" + + "ge.v1.ListNvmeRemoteNamespacesRequest\0324." + + "opi_api.storage.v1.ListNvmeRemoteNamespa" + + "cesResponse\"(\202\323\344\223\002\031\022\027/v1/{parent=subsyst" + + "ems}\332A\006parent\022\246\001\n\026GetNvmeRemoteNamespace" + + "\0221.opi_api.storage.v1.GetNvmeRemoteNames" + + "paceRequest\032\'.opi_api.storage.v1.NvmeRem" + + "oteNamespace\"0\202\323\344\223\002#\022!/v1/{name=nvmeRemo" + + "teNamespaces/*}\332A\004name\022\224\001\n\016CreateNvmePat" + + "h\022).opi_api.storage.v1.CreateNvmePathReq" + + "uest\032\034.opi_api.storage.v1.NvmePath\"9\202\323\344\223" + + "\002\032\"\r/v1/nvmePaths:\tnvme_path\332A\026nvme_path" + + ",nvme_path_id\022z\n\016DeleteNvmePath\022).opi_ap" + + "i.storage.v1.DeleteNvmePathRequest\032\026.goo" + + "gle.protobuf.Empty\"%\202\323\344\223\002\030*\026/v1/{name=nv" + + "mePaths/*}\332A\004name\022\246\001\n\016UpdateNvmePath\022).o" + + "pi_api.storage.v1.UpdateNvmePathRequest\032" + + "\034.opi_api.storage.v1.NvmePath\"K\202\323\344\223\002-2 /" + + "v1/{nvme_path.name=nvmePaths/*}:\tnvme_pa" + + "th\332A\025nvme_path,update_mask\022\216\001\n\rListNvmeP" + + "aths\022(.opi_api.storage.v1.ListNvmePathsR" + + "equest\032).opi_api.storage.v1.ListNvmePath" + + "sResponse\"(\202\323\344\223\002\031\022\027/v1/{parent=subsystem" + + "s}\332A\006parent\022z\n\013GetNvmePath\022&.opi_api.sto" + + "rage.v1.GetNvmePathRequest\032\034.opi_api.sto" + + "rage.v1.NvmePath\"%\202\323\344\223\002\030\022\026/v1/{name=nvme" + + "Paths/*}\332A\004name\022\221\001\n\rStatsNvmePath\022(.opi_" + + "api.storage.v1.StatsNvmePathRequest\032).op" + + "i_api.storage.v1.StatsNvmePathResponse\"+" + + "\202\323\344\223\002\036\022\034/v1/{name=nvmePaths/*}:stats\332A\004n" + + "ameBb\n\022opi_api.storage.v1B\023BackendNvmeTc" + + "pProtoP\001Z5github.com/opiproject/opi-api/" + + "storage/v1alpha1/gen/gob\006proto3" }; descriptor = com.google.protobuf.Descriptors.FileDescriptor .internalBuildGeneratedFileFrom(descriptorData, diff --git a/storage/v1alpha1/gen/java/opi_api/storage/v1/FabricsEndpoint.java b/storage/v1alpha1/gen/java/opi_api/storage/v1/FabricsEndpoint.java new file mode 100644 index 00000000..f87ce517 --- /dev/null +++ b/storage/v1alpha1/gen/java/opi_api/storage/v1/FabricsEndpoint.java @@ -0,0 +1,885 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: opicommon.proto + +package opi_api.storage.v1; + +/** + *
+ * Represents Fabrics Endpoint
+ * 
+ * + * Protobuf type {@code opi_api.storage.v1.FabricsEndpoint} + */ +public final class FabricsEndpoint extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:opi_api.storage.v1.FabricsEndpoint) + FabricsEndpointOrBuilder { +private static final long serialVersionUID = 0L; + // Use FabricsEndpoint.newBuilder() to construct. + private FabricsEndpoint(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private FabricsEndpoint() { + traddr_ = ""; + trsvcid_ = ""; + adrfam_ = 0; + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new FabricsEndpoint(); + } + + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet + getUnknownFields() { + return this.unknownFields; + } + private FabricsEndpoint( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + this(); + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + com.google.protobuf.UnknownFieldSet.Builder unknownFields = + com.google.protobuf.UnknownFieldSet.newBuilder(); + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + java.lang.String s = input.readStringRequireUtf8(); + + traddr_ = s; + break; + } + case 18: { + java.lang.String s = input.readStringRequireUtf8(); + + trsvcid_ = s; + break; + } + case 24: { + int rawValue = input.readEnum(); + + adrfam_ = rawValue; + break; + } + default: { + if (!parseUnknownField( + input, unknownFields, extensionRegistry, tag)) { + done = true; + } + break; + } + } + } + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(this); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException( + e).setUnfinishedMessage(this); + } finally { + this.unknownFields = unknownFields.build(); + makeExtensionsImmutable(); + } + } + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return opi_api.storage.v1.OpiCommonProto.internal_static_opi_api_storage_v1_FabricsEndpoint_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return opi_api.storage.v1.OpiCommonProto.internal_static_opi_api_storage_v1_FabricsEndpoint_fieldAccessorTable + .ensureFieldAccessorsInitialized( + opi_api.storage.v1.FabricsEndpoint.class, opi_api.storage.v1.FabricsEndpoint.Builder.class); + } + + public static final int TRADDR_FIELD_NUMBER = 1; + private volatile java.lang.Object traddr_; + /** + *
+   * ip address for TCP and RDMA
+   * 
+ * + * string traddr = 1 [(.google.api.field_behavior) = REQUIRED]; + * @return The traddr. + */ + @java.lang.Override + public java.lang.String getTraddr() { + java.lang.Object ref = traddr_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + traddr_ = s; + return s; + } + } + /** + *
+   * ip address for TCP and RDMA
+   * 
+ * + * string traddr = 1 [(.google.api.field_behavior) = REQUIRED]; + * @return The bytes for traddr. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getTraddrBytes() { + java.lang.Object ref = traddr_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + traddr_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int TRSVCID_FIELD_NUMBER = 2; + private volatile java.lang.Object trsvcid_; + /** + *
+   * port for TCP and RDMA
+   * 
+ * + * string trsvcid = 2 [(.google.api.field_behavior) = REQUIRED]; + * @return The trsvcid. + */ + @java.lang.Override + public java.lang.String getTrsvcid() { + java.lang.Object ref = trsvcid_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + trsvcid_ = s; + return s; + } + } + /** + *
+   * port for TCP and RDMA
+   * 
+ * + * string trsvcid = 2 [(.google.api.field_behavior) = REQUIRED]; + * @return The bytes for trsvcid. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getTrsvcidBytes() { + java.lang.Object ref = trsvcid_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + trsvcid_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int ADRFAM_FIELD_NUMBER = 3; + private int adrfam_; + /** + *
+   * address family
+   * 
+ * + * .opi_api.storage.v1.NvmeAddressFamily adrfam = 3 [(.google.api.field_behavior) = REQUIRED]; + * @return The enum numeric value on the wire for adrfam. + */ + @java.lang.Override public int getAdrfamValue() { + return adrfam_; + } + /** + *
+   * address family
+   * 
+ * + * .opi_api.storage.v1.NvmeAddressFamily adrfam = 3 [(.google.api.field_behavior) = REQUIRED]; + * @return The adrfam. + */ + @java.lang.Override public opi_api.storage.v1.NvmeAddressFamily getAdrfam() { + @SuppressWarnings("deprecation") + opi_api.storage.v1.NvmeAddressFamily result = opi_api.storage.v1.NvmeAddressFamily.valueOf(adrfam_); + return result == null ? opi_api.storage.v1.NvmeAddressFamily.UNRECOGNIZED : result; + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(traddr_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 1, traddr_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(trsvcid_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 2, trsvcid_); + } + if (adrfam_ != opi_api.storage.v1.NvmeAddressFamily.NVME_ADDRESS_FAMILY_UNSPECIFIED.getNumber()) { + output.writeEnum(3, adrfam_); + } + unknownFields.writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(traddr_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, traddr_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(trsvcid_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, trsvcid_); + } + if (adrfam_ != opi_api.storage.v1.NvmeAddressFamily.NVME_ADDRESS_FAMILY_UNSPECIFIED.getNumber()) { + size += com.google.protobuf.CodedOutputStream + .computeEnumSize(3, adrfam_); + } + size += unknownFields.getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof opi_api.storage.v1.FabricsEndpoint)) { + return super.equals(obj); + } + opi_api.storage.v1.FabricsEndpoint other = (opi_api.storage.v1.FabricsEndpoint) obj; + + if (!getTraddr() + .equals(other.getTraddr())) return false; + if (!getTrsvcid() + .equals(other.getTrsvcid())) return false; + if (adrfam_ != other.adrfam_) return false; + if (!unknownFields.equals(other.unknownFields)) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + TRADDR_FIELD_NUMBER; + hash = (53 * hash) + getTraddr().hashCode(); + hash = (37 * hash) + TRSVCID_FIELD_NUMBER; + hash = (53 * hash) + getTrsvcid().hashCode(); + hash = (37 * hash) + ADRFAM_FIELD_NUMBER; + hash = (53 * hash) + adrfam_; + hash = (29 * hash) + unknownFields.hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static opi_api.storage.v1.FabricsEndpoint parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static opi_api.storage.v1.FabricsEndpoint parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static opi_api.storage.v1.FabricsEndpoint parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static opi_api.storage.v1.FabricsEndpoint parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static opi_api.storage.v1.FabricsEndpoint parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static opi_api.storage.v1.FabricsEndpoint parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static opi_api.storage.v1.FabricsEndpoint parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static opi_api.storage.v1.FabricsEndpoint parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + public static opi_api.storage.v1.FabricsEndpoint parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + public static opi_api.storage.v1.FabricsEndpoint parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static opi_api.storage.v1.FabricsEndpoint parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static opi_api.storage.v1.FabricsEndpoint parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(opi_api.storage.v1.FabricsEndpoint prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + *
+   * Represents Fabrics Endpoint
+   * 
+ * + * Protobuf type {@code opi_api.storage.v1.FabricsEndpoint} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:opi_api.storage.v1.FabricsEndpoint) + opi_api.storage.v1.FabricsEndpointOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return opi_api.storage.v1.OpiCommonProto.internal_static_opi_api_storage_v1_FabricsEndpoint_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return opi_api.storage.v1.OpiCommonProto.internal_static_opi_api_storage_v1_FabricsEndpoint_fieldAccessorTable + .ensureFieldAccessorsInitialized( + opi_api.storage.v1.FabricsEndpoint.class, opi_api.storage.v1.FabricsEndpoint.Builder.class); + } + + // Construct using opi_api.storage.v1.FabricsEndpoint.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessageV3 + .alwaysUseFieldBuilders) { + } + } + @java.lang.Override + public Builder clear() { + super.clear(); + traddr_ = ""; + + trsvcid_ = ""; + + adrfam_ = 0; + + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return opi_api.storage.v1.OpiCommonProto.internal_static_opi_api_storage_v1_FabricsEndpoint_descriptor; + } + + @java.lang.Override + public opi_api.storage.v1.FabricsEndpoint getDefaultInstanceForType() { + return opi_api.storage.v1.FabricsEndpoint.getDefaultInstance(); + } + + @java.lang.Override + public opi_api.storage.v1.FabricsEndpoint build() { + opi_api.storage.v1.FabricsEndpoint result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public opi_api.storage.v1.FabricsEndpoint buildPartial() { + opi_api.storage.v1.FabricsEndpoint result = new opi_api.storage.v1.FabricsEndpoint(this); + result.traddr_ = traddr_; + result.trsvcid_ = trsvcid_; + result.adrfam_ = adrfam_; + onBuilt(); + return result; + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); + } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); + } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof opi_api.storage.v1.FabricsEndpoint) { + return mergeFrom((opi_api.storage.v1.FabricsEndpoint)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(opi_api.storage.v1.FabricsEndpoint other) { + if (other == opi_api.storage.v1.FabricsEndpoint.getDefaultInstance()) return this; + if (!other.getTraddr().isEmpty()) { + traddr_ = other.traddr_; + onChanged(); + } + if (!other.getTrsvcid().isEmpty()) { + trsvcid_ = other.trsvcid_; + onChanged(); + } + if (other.adrfam_ != 0) { + setAdrfamValue(other.getAdrfamValue()); + } + this.mergeUnknownFields(other.unknownFields); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + opi_api.storage.v1.FabricsEndpoint parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + parsedMessage = (opi_api.storage.v1.FabricsEndpoint) e.getUnfinishedMessage(); + throw e.unwrapIOException(); + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + return this; + } + + private java.lang.Object traddr_ = ""; + /** + *
+     * ip address for TCP and RDMA
+     * 
+ * + * string traddr = 1 [(.google.api.field_behavior) = REQUIRED]; + * @return The traddr. + */ + public java.lang.String getTraddr() { + java.lang.Object ref = traddr_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + traddr_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + *
+     * ip address for TCP and RDMA
+     * 
+ * + * string traddr = 1 [(.google.api.field_behavior) = REQUIRED]; + * @return The bytes for traddr. + */ + public com.google.protobuf.ByteString + getTraddrBytes() { + java.lang.Object ref = traddr_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + traddr_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + *
+     * ip address for TCP and RDMA
+     * 
+ * + * string traddr = 1 [(.google.api.field_behavior) = REQUIRED]; + * @param value The traddr to set. + * @return This builder for chaining. + */ + public Builder setTraddr( + java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + + traddr_ = value; + onChanged(); + return this; + } + /** + *
+     * ip address for TCP and RDMA
+     * 
+ * + * string traddr = 1 [(.google.api.field_behavior) = REQUIRED]; + * @return This builder for chaining. + */ + public Builder clearTraddr() { + + traddr_ = getDefaultInstance().getTraddr(); + onChanged(); + return this; + } + /** + *
+     * ip address for TCP and RDMA
+     * 
+ * + * string traddr = 1 [(.google.api.field_behavior) = REQUIRED]; + * @param value The bytes for traddr to set. + * @return This builder for chaining. + */ + public Builder setTraddrBytes( + com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + + traddr_ = value; + onChanged(); + return this; + } + + private java.lang.Object trsvcid_ = ""; + /** + *
+     * port for TCP and RDMA
+     * 
+ * + * string trsvcid = 2 [(.google.api.field_behavior) = REQUIRED]; + * @return The trsvcid. + */ + public java.lang.String getTrsvcid() { + java.lang.Object ref = trsvcid_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + trsvcid_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + *
+     * port for TCP and RDMA
+     * 
+ * + * string trsvcid = 2 [(.google.api.field_behavior) = REQUIRED]; + * @return The bytes for trsvcid. + */ + public com.google.protobuf.ByteString + getTrsvcidBytes() { + java.lang.Object ref = trsvcid_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + trsvcid_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + *
+     * port for TCP and RDMA
+     * 
+ * + * string trsvcid = 2 [(.google.api.field_behavior) = REQUIRED]; + * @param value The trsvcid to set. + * @return This builder for chaining. + */ + public Builder setTrsvcid( + java.lang.String value) { + if (value == null) { + throw new NullPointerException(); + } + + trsvcid_ = value; + onChanged(); + return this; + } + /** + *
+     * port for TCP and RDMA
+     * 
+ * + * string trsvcid = 2 [(.google.api.field_behavior) = REQUIRED]; + * @return This builder for chaining. + */ + public Builder clearTrsvcid() { + + trsvcid_ = getDefaultInstance().getTrsvcid(); + onChanged(); + return this; + } + /** + *
+     * port for TCP and RDMA
+     * 
+ * + * string trsvcid = 2 [(.google.api.field_behavior) = REQUIRED]; + * @param value The bytes for trsvcid to set. + * @return This builder for chaining. + */ + public Builder setTrsvcidBytes( + com.google.protobuf.ByteString value) { + if (value == null) { + throw new NullPointerException(); + } + checkByteStringIsUtf8(value); + + trsvcid_ = value; + onChanged(); + return this; + } + + private int adrfam_ = 0; + /** + *
+     * address family
+     * 
+ * + * .opi_api.storage.v1.NvmeAddressFamily adrfam = 3 [(.google.api.field_behavior) = REQUIRED]; + * @return The enum numeric value on the wire for adrfam. + */ + @java.lang.Override public int getAdrfamValue() { + return adrfam_; + } + /** + *
+     * address family
+     * 
+ * + * .opi_api.storage.v1.NvmeAddressFamily adrfam = 3 [(.google.api.field_behavior) = REQUIRED]; + * @param value The enum numeric value on the wire for adrfam to set. + * @return This builder for chaining. + */ + public Builder setAdrfamValue(int value) { + + adrfam_ = value; + onChanged(); + return this; + } + /** + *
+     * address family
+     * 
+ * + * .opi_api.storage.v1.NvmeAddressFamily adrfam = 3 [(.google.api.field_behavior) = REQUIRED]; + * @return The adrfam. + */ + @java.lang.Override + public opi_api.storage.v1.NvmeAddressFamily getAdrfam() { + @SuppressWarnings("deprecation") + opi_api.storage.v1.NvmeAddressFamily result = opi_api.storage.v1.NvmeAddressFamily.valueOf(adrfam_); + return result == null ? opi_api.storage.v1.NvmeAddressFamily.UNRECOGNIZED : result; + } + /** + *
+     * address family
+     * 
+ * + * .opi_api.storage.v1.NvmeAddressFamily adrfam = 3 [(.google.api.field_behavior) = REQUIRED]; + * @param value The adrfam to set. + * @return This builder for chaining. + */ + public Builder setAdrfam(opi_api.storage.v1.NvmeAddressFamily value) { + if (value == null) { + throw new NullPointerException(); + } + + adrfam_ = value.getNumber(); + onChanged(); + return this; + } + /** + *
+     * address family
+     * 
+ * + * .opi_api.storage.v1.NvmeAddressFamily adrfam = 3 [(.google.api.field_behavior) = REQUIRED]; + * @return This builder for chaining. + */ + public Builder clearAdrfam() { + + adrfam_ = 0; + onChanged(); + return this; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:opi_api.storage.v1.FabricsEndpoint) + } + + // @@protoc_insertion_point(class_scope:opi_api.storage.v1.FabricsEndpoint) + private static final opi_api.storage.v1.FabricsEndpoint DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new opi_api.storage.v1.FabricsEndpoint(); + } + + public static opi_api.storage.v1.FabricsEndpoint getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public FabricsEndpoint parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return new FabricsEndpoint(input, extensionRegistry); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public opi_api.storage.v1.FabricsEndpoint getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + +} + diff --git a/storage/v1alpha1/gen/java/opi_api/storage/v1/FabricsEndpointOrBuilder.java b/storage/v1alpha1/gen/java/opi_api/storage/v1/FabricsEndpointOrBuilder.java new file mode 100644 index 00000000..76c19ae0 --- /dev/null +++ b/storage/v1alpha1/gen/java/opi_api/storage/v1/FabricsEndpointOrBuilder.java @@ -0,0 +1,68 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: opicommon.proto + +package opi_api.storage.v1; + +public interface FabricsEndpointOrBuilder extends + // @@protoc_insertion_point(interface_extends:opi_api.storage.v1.FabricsEndpoint) + com.google.protobuf.MessageOrBuilder { + + /** + *
+   * ip address for TCP and RDMA
+   * 
+ * + * string traddr = 1 [(.google.api.field_behavior) = REQUIRED]; + * @return The traddr. + */ + java.lang.String getTraddr(); + /** + *
+   * ip address for TCP and RDMA
+   * 
+ * + * string traddr = 1 [(.google.api.field_behavior) = REQUIRED]; + * @return The bytes for traddr. + */ + com.google.protobuf.ByteString + getTraddrBytes(); + + /** + *
+   * port for TCP and RDMA
+   * 
+ * + * string trsvcid = 2 [(.google.api.field_behavior) = REQUIRED]; + * @return The trsvcid. + */ + java.lang.String getTrsvcid(); + /** + *
+   * port for TCP and RDMA
+   * 
+ * + * string trsvcid = 2 [(.google.api.field_behavior) = REQUIRED]; + * @return The bytes for trsvcid. + */ + com.google.protobuf.ByteString + getTrsvcidBytes(); + + /** + *
+   * address family
+   * 
+ * + * .opi_api.storage.v1.NvmeAddressFamily adrfam = 3 [(.google.api.field_behavior) = REQUIRED]; + * @return The enum numeric value on the wire for adrfam. + */ + int getAdrfamValue(); + /** + *
+   * address family
+   * 
+ * + * .opi_api.storage.v1.NvmeAddressFamily adrfam = 3 [(.google.api.field_behavior) = REQUIRED]; + * @return The adrfam. + */ + opi_api.storage.v1.NvmeAddressFamily getAdrfam(); +} diff --git a/storage/v1alpha1/gen/java/opi_api/storage/v1/FrontendNvmePcieProto.java b/storage/v1alpha1/gen/java/opi_api/storage/v1/FrontendNvmePcieProto.java index 6f798695..8146aae8 100644 --- a/storage/v1alpha1/gen/java/opi_api/storage/v1/FrontendNvmePcieProto.java +++ b/storage/v1alpha1/gen/java/opi_api/storage/v1/FrontendNvmePcieProto.java @@ -215,197 +215,201 @@ public static void registerAllExtensions( "\001\n%storage.opiproject.org/NvmeController" + "\0227nvmeSubsystems/{subsystem}/nvmeControl" + "lers/{controller}*\017nvmeControllers2\016nvme" + - "Controller\"\343\002\n\022NvmeControllerSpec\022$\n\022nvm" + - "e_controller_id\030\001 \001(\005B\003\340A\001H\000\210\001\001\0225\n\007pcie_" + - "id\030\003 \001(\0132\037.opi_api.storage.v1.PciEndpoin" + - "tB\003\340A\002\022\024\n\007max_nsq\030\004 \001(\005B\003\340A\001\022\024\n\007max_ncq\030" + - "\005 \001(\005B\003\340A\001\022\021\n\004sqes\030\006 \001(\005B\003\340A\001\022\021\n\004cqes\030\007 " + - "\001(\005B\003\340A\001\022\033\n\016max_namespaces\030\010 \001(\005B\003\340A\001\0224\n" + - "\tmin_limit\030\t \001(\0132\034.opi_api.storage.v1.Qo" + - "sLimitB\003\340A\001\0224\n\tmax_limit\030\n \001(\0132\034.opi_api" + - ".storage.v1.QosLimitB\003\340A\001B\025\n\023_nvme_contr" + - "oller_id\"+\n\024NvmeControllerStatus\022\023\n\006acti" + - "ve\030\001 \001(\010B\003\340A\003\"\303\002\n\rNvmeNamespace\0229\n\004name\030" + - "\001 \001(\tB+\340A\003\340A\005\372A\"\n opi_api.storage.v1/Nvm" + - "eNamespace\0228\n\004spec\030\002 \001(\0132%.opi_api.stora" + - "ge.v1.NvmeNamespaceSpecB\003\340A\002\022<\n\006status\030\003" + - " \001(\0132\'.opi_api.storage.v1.NvmeNamespaceS" + - "tatusB\003\340A\003:\177\352A|\n$storage.opiproject.org/" + - "NvmeNamespace\0225nvmeSubsystems/{subsystem" + - "}/nvmeNamespaces/{namespace}*\016nvmeNamesp" + - "aces2\rnvmeNamespace\"\235\001\n\021NvmeNamespaceSpe" + - "c\022\026\n\thost_nsid\030\002 \001(\005B\003\340A\001\022\022\n\005nguid\030\003 \001(\t" + - "B\003\340A\001\022\022\n\005eui64\030\004 \001(\003B\003\340A\001\022*\n\004uuid\030\005 \001(\0132" + - "\027.opi_api.common.v1.UuidB\003\340A\001\022\034\n\017volume_" + - "name_ref\030\006 \001(\tB\003\340A\002\"\244\001\n\023NvmeNamespaceSta" + - "tus\022A\n\tpci_state\030\001 \001(\0162).opi_api.storage" + - ".v1.NvmeNamespacePciStateB\003\340A\003\022J\n\016pci_op" + - "er_state\030\002 \001(\0162-.opi_api.storage.v1.Nvme" + - "NamespacePciOperStateB\003\340A\003\"|\n\032CreateNvme" + - "SubsystemRequest\022>\n\016nvme_subsystem\030\001 \001(\013" + - "2!.opi_api.storage.v1.NvmeSubsystemB\003\340A\002" + - "\022\036\n\021nvme_subsystem_id\030\002 \001(\tB\003\340A\001\"p\n\032Dele" + - "teNvmeSubsystemRequest\0226\n\004name\030\001 \001(\tB(\340A" + - "\002\372A\"\n opi_api.storage.v1/NvmeSubsystem\022\032" + - "\n\rallow_missing\030\002 \001(\010B\003\340A\001\"\256\001\n\032UpdateNvm" + - "eSubsystemRequest\022>\n\016nvme_subsystem\030\001 \001(" + - "\0132!.opi_api.storage.v1.NvmeSubsystemB\003\340A" + - "\002\0224\n\013update_mask\030\002 \001(\0132\032.google.protobuf" + - ".FieldMaskB\003\340A\001\022\032\n\rallow_missing\030\003 \001(\010B\003" + - "\340A\001\"L\n\031ListNvmeSubsystemsRequest\022\026\n\tpage" + - "_size\030\002 \001(\005B\003\340A\001\022\027\n\npage_token\030\003 \001(\tB\003\340A" + - "\001\"q\n\032ListNvmeSubsystemsResponse\022:\n\017nvme_" + - "subsystems\030\001 \003(\0132!.opi_api.storage.v1.Nv" + - "meSubsystem\022\027\n\017next_page_token\030\002 \001(\t\"Q\n\027" + - "GetNvmeSubsystemRequest\0226\n\004name\030\001 \001(\tB(\340" + - "A\002\372A\"\n opi_api.storage.v1/NvmeSubsystem\"" + - "S\n\031StatsNvmeSubsystemRequest\0226\n\004name\030\001 \001" + - "(\tB(\340A\002\372A\"\n opi_api.storage.v1/NvmeSubsy" + - "stem\"L\n\032StatsNvmeSubsystemResponse\022.\n\005st" + - "ats\030\001 \001(\0132\037.opi_api.storage.v1.VolumeSta" + - "ts\"\272\001\n\033CreateNvmeControllerRequest\0228\n\006pa" + - "rent\030\001 \001(\tB(\340A\002\372A\"\n opi_api.storage.v1/N" + - "vmeSubsystem\022@\n\017nvme_controller\030\002 \001(\0132\"." + - "opi_api.storage.v1.NvmeControllerB\003\340A\002\022\037" + - "\n\022nvme_controller_id\030\003 \001(\tB\003\340A\001\"r\n\033Delet" + - "eNvmeControllerRequest\0227\n\004name\030\001 \001(\tB)\340A" + - "\002\372A#\n!opi_api.storage.v1/NvmeController\022" + - "\032\n\rallow_missing\030\002 \001(\010B\003\340A\001\"\261\001\n\033UpdateNv" + - "meControllerRequest\022@\n\017nvme_controller\030\001" + - " \001(\0132\".opi_api.storage.v1.NvmeController" + - "B\003\340A\002\0224\n\013update_mask\030\002 \001(\0132\032.google.prot" + - "obuf.FieldMaskB\003\340A\001\022\032\n\rallow_missing\030\003 \001" + - "(\010B\003\340A\001\"\210\001\n\032ListNvmeControllersRequest\0229" + - "\n\006parent\030\001 \001(\tB)\340A\002\372A#\n!opi_api.storage." + - "v1/NvmeController\022\026\n\tpage_size\030\002 \001(\005B\003\340A" + - "\001\022\027\n\npage_token\030\003 \001(\tB\003\340A\001\"t\n\033ListNvmeCo" + - "ntrollersResponse\022<\n\020nvme_controllers\030\001 " + - "\003(\0132\".opi_api.storage.v1.NvmeController\022" + - "\027\n\017next_page_token\030\002 \001(\t\"S\n\030GetNvmeContr" + - "ollerRequest\0227\n\004name\030\001 \001(\tB)\340A\002\372A#\n!opi_" + - "api.storage.v1/NvmeController\"U\n\032StatsNv" + - "meControllerRequest\0227\n\004name\030\001 \001(\tB)\340A\002\372A" + - "#\n!opi_api.storage.v1/NvmeController\"M\n\033" + - "StatsNvmeControllerResponse\022.\n\005stats\030\001 \001" + - "(\0132\037.opi_api.storage.v1.VolumeStats\"\266\001\n\032" + - "CreateNvmeNamespaceRequest\0228\n\006parent\030\001 \001" + - "(\tB(\340A\002\372A\"\n opi_api.storage.v1/NvmeSubsy" + - "stem\022>\n\016nvme_namespace\030\002 \001(\0132!.opi_api.s" + - "torage.v1.NvmeNamespaceB\003\340A\002\022\036\n\021nvme_nam" + - "espace_id\030\003 \001(\tB\003\340A\001\"p\n\032DeleteNvmeNamesp" + - "aceRequest\0226\n\004name\030\001 \001(\tB(\340A\002\372A\"\n opi_ap" + - "i.storage.v1/NvmeNamespace\022\032\n\rallow_miss" + - "ing\030\002 \001(\010B\003\340A\001\"\256\001\n\032UpdateNvmeNamespaceRe" + - "quest\022>\n\016nvme_namespace\030\001 \001(\0132!.opi_api." + - "storage.v1.NvmeNamespaceB\003\340A\002\0224\n\013update_" + - "mask\030\002 \001(\0132\032.google.protobuf.FieldMaskB\003" + - "\340A\001\022\032\n\rallow_missing\030\003 \001(\010B\003\340A\001\"\206\001\n\031List" + - "NvmeNamespacesRequest\0228\n\006parent\030\001 \001(\tB(\340" + - "A\002\372A\"\n opi_api.storage.v1/NvmeNamespace\022" + - "\026\n\tpage_size\030\002 \001(\005B\003\340A\001\022\027\n\npage_token\030\003 " + - "\001(\tB\003\340A\001\"q\n\032ListNvmeNamespacesResponse\022:" + - "\n\017nvme_namespaces\030\001 \003(\0132!.opi_api.storag" + - "e.v1.NvmeNamespace\022\027\n\017next_page_token\030\002 " + - "\001(\t\"Q\n\027GetNvmeNamespaceRequest\0226\n\004name\030\001" + - " \001(\tB(\340A\002\372A\"\n opi_api.storage.v1/NvmeNam" + - "espace\"S\n\031StatsNvmeNamespaceRequest\0226\n\004n" + - "ame\030\001 \001(\tB(\340A\002\372A\"\n opi_api.storage.v1/Nv" + - "meNamespace\"L\n\032StatsNvmeNamespaceRespons" + - "e\022.\n\005stats\030\001 \001(\0132\037.opi_api.storage.v1.Vo" + - "lumeStats*\265\001\n\025NvmeNamespacePciState\022(\n$N" + - "VME_NAMESPACE_PCI_STATE_UNSPECIFIED\020\000\022%\n" + - "!NVME_NAMESPACE_PCI_STATE_DISABLED\020\001\022$\n " + - "NVME_NAMESPACE_PCI_STATE_ENABLED\020\002\022%\n!NV" + - "ME_NAMESPACE_PCI_STATE_DELETING\020\003*\237\001\n\031Nv" + - "meNamespacePciOperState\022-\n)NVME_NAMESPAC" + - "E_PCI_OPER_STATE_UNSPECIFIED\020\000\022(\n$NVME_N" + - "AMESPACE_PCI_OPER_STATE_ONLINE\020\001\022)\n%NVME" + - "_NAMESPACE_PCI_OPER_STATE_OFFLINE\020\0022\331\031\n\023" + - "FrontendNvmeService\022\267\001\n\023CreateNvmeSubsys" + - "tem\022..opi_api.storage.v1.CreateNvmeSubsy" + - "stemRequest\032!.opi_api.storage.v1.NvmeSub" + - "system\"M\202\323\344\223\002$\"\022/v1/nvmeSubsystems:\016nvme" + - "_subsystem\332A nvme_subsystem,nvme_subsyst" + - "em_id\022\211\001\n\023DeleteNvmeSubsystem\022..opi_api." + - "storage.v1.DeleteNvmeSubsystemRequest\032\026." + - "google.protobuf.Empty\"*\202\323\344\223\002\035*\033/v1/{name" + - "=nvmeSubsystems/*}\332A\004name\022\311\001\n\023UpdateNvme" + - "Subsystem\022..opi_api.storage.v1.UpdateNvm" + - "eSubsystemRequest\032!.opi_api.storage.v1.N" + - "vmeSubsystem\"_\202\323\344\223\002<2*/v1/{nvme_subsyste" + - "m.name=nvmeSubsystems/*}:\016nvme_subsystem" + - "\332A\032nvme_subsystem,update_mask\022\217\001\n\022ListNv" + - "meSubsystems\022-.opi_api.storage.v1.ListNv" + - "meSubsystemsRequest\032..opi_api.storage.v1" + - ".ListNvmeSubsystemsResponse\"\032\202\323\344\223\002\024\022\022/v1" + - "/nvmeSubsystems\022\216\001\n\020GetNvmeSubsystem\022+.o" + - "pi_api.storage.v1.GetNvmeSubsystemReques" + - "t\032!.opi_api.storage.v1.NvmeSubsystem\"*\202\323" + - "\344\223\002\035\022\033/v1/{name=nvmeSubsystems/*}\332A\004name" + - "\022\245\001\n\022StatsNvmeSubsystem\022-.opi_api.storag" + - "e.v1.StatsNvmeSubsystemRequest\032..opi_api" + - ".storage.v1.StatsNvmeSubsystemResponse\"0" + - "\202\323\344\223\002#\022!/v1/{name=nvmeSubsystems/*}:stat" + - "s\332A\004name\022\337\001\n\024CreateNvmeController\022/.opi_" + - "api.storage.v1.CreateNvmeControllerReque" + - "st\032\".opi_api.storage.v1.NvmeController\"r" + - "\202\323\344\223\002@\"-/v1/{parent=nvmeSubsystems/*}/nv" + - "meControllers:\017nvme_controller\332A)parent," + - "nvme_controller,nvme_controller_id\022\235\001\n\024D" + - "eleteNvmeController\022/.opi_api.storage.v1" + - ".DeleteNvmeControllerRequest\032\026.google.pr" + - "otobuf.Empty\"<\202\323\344\223\002/*-/v1/{name=nvmeSubs" + - "ystems/*/nvmeControllers/*}\332A\004name\022\341\001\n\024U" + - "pdateNvmeController\022/.opi_api.storage.v1" + - ".UpdateNvmeControllerRequest\032\".opi_api.s" + - "torage.v1.NvmeController\"t\202\323\344\223\002P2=/v1/{n" + - "vme_controller.name=nvmeSubsystems/*/nvm" + - "eControllers/*}:\017nvme_controller\332A\033nvme_" + - "controller,update_mask\022\266\001\n\023ListNvmeContr" + - "ollers\022..opi_api.storage.v1.ListNvmeCont" + - "rollersRequest\032/.opi_api.storage.v1.List" + - "NvmeControllersResponse\">\202\323\344\223\002/\022-/v1/{pa" + - "rent=nvmeSubsystems/*}/nvmeControllers\332A" + - "\006parent\022\243\001\n\021GetNvmeController\022,.opi_api." + - "storage.v1.GetNvmeControllerRequest\032\".op" + - "i_api.storage.v1.NvmeController\"<\202\323\344\223\002/\022" + - "-/v1/{name=nvmeSubsystems/*/nvmeControll" + - "ers/*}\332A\004name\022\272\001\n\023StatsNvmeController\022.." + - "opi_api.storage.v1.StatsNvmeControllerRe" + - "quest\032/.opi_api.storage.v1.StatsNvmeCont" + - "rollerResponse\"B\202\323\344\223\0025\0223/v1/{name=nvmeSu" + - "bsystems/*/nvmeControllers/*}:stats\332A\004na" + - "me\022\330\001\n\023CreateNvmeNamespace\022..opi_api.sto" + - "rage.v1.CreateNvmeNamespaceRequest\032!.opi" + - "_api.storage.v1.NvmeNamespace\"n\202\323\344\223\002>\",/" + - "v1/{parent=nvmeSubsystems/*}/nvmeNamespa" + - "ces:\016nvme_namespace\332A\'parent,nvme_namesp" + - "ace,nvme_namespace_id\022\232\001\n\023DeleteNvmeName" + - "space\022..opi_api.storage.v1.DeleteNvmeNam" + - "espaceRequest\032\026.google.protobuf.Empty\";\202" + - "\323\344\223\002.*,/v1/{name=nvmeSubsystems/*/nvmeNa" + - "mespaces/*}\332A\004name\022\332\001\n\023UpdateNvmeNamespa" + - "ce\022..opi_api.storage.v1.UpdateNvmeNamesp" + - "aceRequest\032!.opi_api.storage.v1.NvmeName" + - "space\"p\202\323\344\223\002M2;/v1/{nvme_namespace.name=" + - "nvmeSubsystems/*/nvmeNamespaces/*}:\016nvme" + - "_namespace\332A\032nvme_namespace,update_mask\022" + - "\262\001\n\022ListNvmeNamespaces\022-.opi_api.storage" + - ".v1.ListNvmeNamespacesRequest\032..opi_api." + - "storage.v1.ListNvmeNamespacesResponse\"=\202" + - "\323\344\223\002.\022,/v1/{parent=nvmeSubsystems/*}/nvm" + - "eNamespaces\332A\006parent\022\237\001\n\020GetNvmeNamespac" + - "e\022+.opi_api.storage.v1.GetNvmeNamespaceR" + - "equest\032!.opi_api.storage.v1.NvmeNamespac" + - "e\";\202\323\344\223\002.\022,/v1/{name=nvmeSubsystems/*/nv" + - "meNamespaces/*}\332A\004name\022\266\001\n\022StatsNvmeName" + - "space\022-.opi_api.storage.v1.StatsNvmeName" + - "spaceRequest\032..opi_api.storage.v1.StatsN" + - "vmeNamespaceResponse\"A\202\323\344\223\0024\0222/v1/{name=" + - "nvmeSubsystems/*/nvmeNamespaces/*}:stats" + - "\332A\004nameBd\n\022opi_api.storage.v1B\025FrontendN" + - "vmePcieProtoP\001Z5github.com/opiproject/op" + - "i-api/storage/v1alpha1/gen/gob\006proto3" + "Controller\"\355\003\n\022NvmeControllerSpec\022$\n\022nvm" + + "e_controller_id\030\001 \001(\005B\003\340A\001H\001\210\001\001\022:\n\006trtyp" + + "e\030\002 \001(\0162%.opi_api.storage.v1.NvmeTranspo" + + "rtTypeB\003\340A\002\0227\n\007pcie_id\030\003 \001(\0132\037.opi_api.s" + + "torage.v1.PciEndpointB\003\340A\001H\000\022>\n\nfabrics_" + + "id\030\004 \001(\0132#.opi_api.storage.v1.FabricsEnd" + + "pointB\003\340A\001H\000\022\024\n\007max_nsq\030\005 \001(\005B\003\340A\001\022\024\n\007ma" + + "x_ncq\030\006 \001(\005B\003\340A\001\022\021\n\004sqes\030\007 \001(\005B\003\340A\001\022\021\n\004c" + + "qes\030\010 \001(\005B\003\340A\001\022\033\n\016max_namespaces\030\t \001(\005B\003" + + "\340A\001\0224\n\tmin_limit\030\n \001(\0132\034.opi_api.storage" + + ".v1.QosLimitB\003\340A\001\0224\n\tmax_limit\030\013 \001(\0132\034.o" + + "pi_api.storage.v1.QosLimitB\003\340A\001B\n\n\010endpo" + + "intB\025\n\023_nvme_controller_id\"+\n\024NvmeContro" + + "llerStatus\022\023\n\006active\030\001 \001(\010B\003\340A\003\"\303\002\n\rNvme" + + "Namespace\0229\n\004name\030\001 \001(\tB+\340A\003\340A\005\372A\"\n opi_" + + "api.storage.v1/NvmeNamespace\0228\n\004spec\030\002 \001" + + "(\0132%.opi_api.storage.v1.NvmeNamespaceSpe" + + "cB\003\340A\002\022<\n\006status\030\003 \001(\0132\'.opi_api.storage" + + ".v1.NvmeNamespaceStatusB\003\340A\003:\177\352A|\n$stora" + + "ge.opiproject.org/NvmeNamespace\0225nvmeSub" + + "systems/{subsystem}/nvmeNamespaces/{name" + + "space}*\016nvmeNamespaces2\rnvmeNamespace\"\235\001" + + "\n\021NvmeNamespaceSpec\022\026\n\thost_nsid\030\002 \001(\005B\003" + + "\340A\001\022\022\n\005nguid\030\003 \001(\tB\003\340A\001\022\022\n\005eui64\030\004 \001(\003B\003" + + "\340A\001\022*\n\004uuid\030\005 \001(\0132\027.opi_api.common.v1.Uu" + + "idB\003\340A\001\022\034\n\017volume_name_ref\030\006 \001(\tB\003\340A\002\"\244\001" + + "\n\023NvmeNamespaceStatus\022A\n\tpci_state\030\001 \001(\016" + + "2).opi_api.storage.v1.NvmeNamespacePciSt" + + "ateB\003\340A\003\022J\n\016pci_oper_state\030\002 \001(\0162-.opi_a" + + "pi.storage.v1.NvmeNamespacePciOperStateB" + + "\003\340A\003\"|\n\032CreateNvmeSubsystemRequest\022>\n\016nv" + + "me_subsystem\030\001 \001(\0132!.opi_api.storage.v1." + + "NvmeSubsystemB\003\340A\002\022\036\n\021nvme_subsystem_id\030" + + "\002 \001(\tB\003\340A\001\"p\n\032DeleteNvmeSubsystemRequest" + + "\0226\n\004name\030\001 \001(\tB(\340A\002\372A\"\n opi_api.storage." + + "v1/NvmeSubsystem\022\032\n\rallow_missing\030\002 \001(\010B" + + "\003\340A\001\"\256\001\n\032UpdateNvmeSubsystemRequest\022>\n\016n" + + "vme_subsystem\030\001 \001(\0132!.opi_api.storage.v1" + + ".NvmeSubsystemB\003\340A\002\0224\n\013update_mask\030\002 \001(\013" + + "2\032.google.protobuf.FieldMaskB\003\340A\001\022\032\n\rall" + + "ow_missing\030\003 \001(\010B\003\340A\001\"L\n\031ListNvmeSubsyst" + + "emsRequest\022\026\n\tpage_size\030\002 \001(\005B\003\340A\001\022\027\n\npa" + + "ge_token\030\003 \001(\tB\003\340A\001\"q\n\032ListNvmeSubsystem" + + "sResponse\022:\n\017nvme_subsystems\030\001 \003(\0132!.opi" + + "_api.storage.v1.NvmeSubsystem\022\027\n\017next_pa" + + "ge_token\030\002 \001(\t\"Q\n\027GetNvmeSubsystemReques" + + "t\0226\n\004name\030\001 \001(\tB(\340A\002\372A\"\n opi_api.storage" + + ".v1/NvmeSubsystem\"S\n\031StatsNvmeSubsystemR" + + "equest\0226\n\004name\030\001 \001(\tB(\340A\002\372A\"\n opi_api.st" + + "orage.v1/NvmeSubsystem\"L\n\032StatsNvmeSubsy" + + "stemResponse\022.\n\005stats\030\001 \001(\0132\037.opi_api.st" + + "orage.v1.VolumeStats\"\272\001\n\033CreateNvmeContr" + + "ollerRequest\0228\n\006parent\030\001 \001(\tB(\340A\002\372A\"\n op" + + "i_api.storage.v1/NvmeSubsystem\022@\n\017nvme_c" + + "ontroller\030\002 \001(\0132\".opi_api.storage.v1.Nvm" + + "eControllerB\003\340A\002\022\037\n\022nvme_controller_id\030\003" + + " \001(\tB\003\340A\001\"r\n\033DeleteNvmeControllerRequest" + + "\0227\n\004name\030\001 \001(\tB)\340A\002\372A#\n!opi_api.storage." + + "v1/NvmeController\022\032\n\rallow_missing\030\002 \001(\010" + + "B\003\340A\001\"\261\001\n\033UpdateNvmeControllerRequest\022@\n" + + "\017nvme_controller\030\001 \001(\0132\".opi_api.storage" + + ".v1.NvmeControllerB\003\340A\002\0224\n\013update_mask\030\002" + + " \001(\0132\032.google.protobuf.FieldMaskB\003\340A\001\022\032\n" + + "\rallow_missing\030\003 \001(\010B\003\340A\001\"\210\001\n\032ListNvmeCo" + + "ntrollersRequest\0229\n\006parent\030\001 \001(\tB)\340A\002\372A#" + + "\n!opi_api.storage.v1/NvmeController\022\026\n\tp" + + "age_size\030\002 \001(\005B\003\340A\001\022\027\n\npage_token\030\003 \001(\tB" + + "\003\340A\001\"t\n\033ListNvmeControllersResponse\022<\n\020n" + + "vme_controllers\030\001 \003(\0132\".opi_api.storage." + + "v1.NvmeController\022\027\n\017next_page_token\030\002 \001" + + "(\t\"S\n\030GetNvmeControllerRequest\0227\n\004name\030\001" + + " \001(\tB)\340A\002\372A#\n!opi_api.storage.v1/NvmeCon" + + "troller\"U\n\032StatsNvmeControllerRequest\0227\n" + + "\004name\030\001 \001(\tB)\340A\002\372A#\n!opi_api.storage.v1/" + + "NvmeController\"M\n\033StatsNvmeControllerRes" + + "ponse\022.\n\005stats\030\001 \001(\0132\037.opi_api.storage.v" + + "1.VolumeStats\"\266\001\n\032CreateNvmeNamespaceReq" + + "uest\0228\n\006parent\030\001 \001(\tB(\340A\002\372A\"\n opi_api.st" + + "orage.v1/NvmeSubsystem\022>\n\016nvme_namespace" + + "\030\002 \001(\0132!.opi_api.storage.v1.NvmeNamespac" + + "eB\003\340A\002\022\036\n\021nvme_namespace_id\030\003 \001(\tB\003\340A\001\"p" + + "\n\032DeleteNvmeNamespaceRequest\0226\n\004name\030\001 \001" + + "(\tB(\340A\002\372A\"\n opi_api.storage.v1/NvmeNames" + + "pace\022\032\n\rallow_missing\030\002 \001(\010B\003\340A\001\"\256\001\n\032Upd" + + "ateNvmeNamespaceRequest\022>\n\016nvme_namespac" + + "e\030\001 \001(\0132!.opi_api.storage.v1.NvmeNamespa" + + "ceB\003\340A\002\0224\n\013update_mask\030\002 \001(\0132\032.google.pr" + + "otobuf.FieldMaskB\003\340A\001\022\032\n\rallow_missing\030\003" + + " \001(\010B\003\340A\001\"\206\001\n\031ListNvmeNamespacesRequest\022" + + "8\n\006parent\030\001 \001(\tB(\340A\002\372A\"\n opi_api.storage" + + ".v1/NvmeNamespace\022\026\n\tpage_size\030\002 \001(\005B\003\340A" + + "\001\022\027\n\npage_token\030\003 \001(\tB\003\340A\001\"q\n\032ListNvmeNa" + + "mespacesResponse\022:\n\017nvme_namespaces\030\001 \003(" + + "\0132!.opi_api.storage.v1.NvmeNamespace\022\027\n\017" + + "next_page_token\030\002 \001(\t\"Q\n\027GetNvmeNamespac" + + "eRequest\0226\n\004name\030\001 \001(\tB(\340A\002\372A\"\n opi_api." + + "storage.v1/NvmeNamespace\"S\n\031StatsNvmeNam" + + "espaceRequest\0226\n\004name\030\001 \001(\tB(\340A\002\372A\"\n opi" + + "_api.storage.v1/NvmeNamespace\"L\n\032StatsNv" + + "meNamespaceResponse\022.\n\005stats\030\001 \001(\0132\037.opi" + + "_api.storage.v1.VolumeStats*\265\001\n\025NvmeName" + + "spacePciState\022(\n$NVME_NAMESPACE_PCI_STAT" + + "E_UNSPECIFIED\020\000\022%\n!NVME_NAMESPACE_PCI_ST" + + "ATE_DISABLED\020\001\022$\n NVME_NAMESPACE_PCI_STA" + + "TE_ENABLED\020\002\022%\n!NVME_NAMESPACE_PCI_STATE" + + "_DELETING\020\003*\237\001\n\031NvmeNamespacePciOperStat" + + "e\022-\n)NVME_NAMESPACE_PCI_OPER_STATE_UNSPE" + + "CIFIED\020\000\022(\n$NVME_NAMESPACE_PCI_OPER_STAT" + + "E_ONLINE\020\001\022)\n%NVME_NAMESPACE_PCI_OPER_ST" + + "ATE_OFFLINE\020\0022\331\031\n\023FrontendNvmeService\022\267\001" + + "\n\023CreateNvmeSubsystem\022..opi_api.storage." + + "v1.CreateNvmeSubsystemRequest\032!.opi_api." + + "storage.v1.NvmeSubsystem\"M\202\323\344\223\002$\"\022/v1/nv" + + "meSubsystems:\016nvme_subsystem\332A nvme_subs" + + "ystem,nvme_subsystem_id\022\211\001\n\023DeleteNvmeSu" + + "bsystem\022..opi_api.storage.v1.DeleteNvmeS" + + "ubsystemRequest\032\026.google.protobuf.Empty\"" + + "*\202\323\344\223\002\035*\033/v1/{name=nvmeSubsystems/*}\332A\004n" + + "ame\022\311\001\n\023UpdateNvmeSubsystem\022..opi_api.st" + + "orage.v1.UpdateNvmeSubsystemRequest\032!.op" + + "i_api.storage.v1.NvmeSubsystem\"_\202\323\344\223\002<2*" + + "/v1/{nvme_subsystem.name=nvmeSubsystems/" + + "*}:\016nvme_subsystem\332A\032nvme_subsystem,upda" + + "te_mask\022\217\001\n\022ListNvmeSubsystems\022-.opi_api" + + ".storage.v1.ListNvmeSubsystemsRequest\032.." + + "opi_api.storage.v1.ListNvmeSubsystemsRes" + + "ponse\"\032\202\323\344\223\002\024\022\022/v1/nvmeSubsystems\022\216\001\n\020Ge" + + "tNvmeSubsystem\022+.opi_api.storage.v1.GetN" + + "vmeSubsystemRequest\032!.opi_api.storage.v1" + + ".NvmeSubsystem\"*\202\323\344\223\002\035\022\033/v1/{name=nvmeSu" + + "bsystems/*}\332A\004name\022\245\001\n\022StatsNvmeSubsyste" + + "m\022-.opi_api.storage.v1.StatsNvmeSubsyste" + + "mRequest\032..opi_api.storage.v1.StatsNvmeS" + + "ubsystemResponse\"0\202\323\344\223\002#\022!/v1/{name=nvme" + + "Subsystems/*}:stats\332A\004name\022\337\001\n\024CreateNvm" + + "eController\022/.opi_api.storage.v1.CreateN" + + "vmeControllerRequest\032\".opi_api.storage.v" + + "1.NvmeController\"r\202\323\344\223\002@\"-/v1/{parent=nv" + + "meSubsystems/*}/nvmeControllers:\017nvme_co" + + "ntroller\332A)parent,nvme_controller,nvme_c" + + "ontroller_id\022\235\001\n\024DeleteNvmeController\022/." + + "opi_api.storage.v1.DeleteNvmeControllerR" + + "equest\032\026.google.protobuf.Empty\"<\202\323\344\223\002/*-" + + "/v1/{name=nvmeSubsystems/*/nvmeControlle" + + "rs/*}\332A\004name\022\341\001\n\024UpdateNvmeController\022/." + + "opi_api.storage.v1.UpdateNvmeControllerR" + + "equest\032\".opi_api.storage.v1.NvmeControll" + + "er\"t\202\323\344\223\002P2=/v1/{nvme_controller.name=nv" + + "meSubsystems/*/nvmeControllers/*}:\017nvme_" + + "controller\332A\033nvme_controller,update_mask" + + "\022\266\001\n\023ListNvmeControllers\022..opi_api.stora" + + "ge.v1.ListNvmeControllersRequest\032/.opi_a" + + "pi.storage.v1.ListNvmeControllersRespons" + + "e\">\202\323\344\223\002/\022-/v1/{parent=nvmeSubsystems/*}" + + "/nvmeControllers\332A\006parent\022\243\001\n\021GetNvmeCon" + + "troller\022,.opi_api.storage.v1.GetNvmeCont" + + "rollerRequest\032\".opi_api.storage.v1.NvmeC" + + "ontroller\"<\202\323\344\223\002/\022-/v1/{name=nvmeSubsyst" + + "ems/*/nvmeControllers/*}\332A\004name\022\272\001\n\023Stat" + + "sNvmeController\022..opi_api.storage.v1.Sta" + + "tsNvmeControllerRequest\032/.opi_api.storag" + + "e.v1.StatsNvmeControllerResponse\"B\202\323\344\223\0025" + + "\0223/v1/{name=nvmeSubsystems/*/nvmeControl" + + "lers/*}:stats\332A\004name\022\330\001\n\023CreateNvmeNames" + + "pace\022..opi_api.storage.v1.CreateNvmeName" + + "spaceRequest\032!.opi_api.storage.v1.NvmeNa" + + "mespace\"n\202\323\344\223\002>\",/v1/{parent=nvmeSubsyst" + + "ems/*}/nvmeNamespaces:\016nvme_namespace\332A\'" + + "parent,nvme_namespace,nvme_namespace_id\022" + + "\232\001\n\023DeleteNvmeNamespace\022..opi_api.storag" + + "e.v1.DeleteNvmeNamespaceRequest\032\026.google" + + ".protobuf.Empty\";\202\323\344\223\002.*,/v1/{name=nvmeS" + + "ubsystems/*/nvmeNamespaces/*}\332A\004name\022\332\001\n" + + "\023UpdateNvmeNamespace\022..opi_api.storage.v" + + "1.UpdateNvmeNamespaceRequest\032!.opi_api.s" + + "torage.v1.NvmeNamespace\"p\202\323\344\223\002M2;/v1/{nv" + + "me_namespace.name=nvmeSubsystems/*/nvmeN" + + "amespaces/*}:\016nvme_namespace\332A\032nvme_name" + + "space,update_mask\022\262\001\n\022ListNvmeNamespaces" + + "\022-.opi_api.storage.v1.ListNvmeNamespaces" + + "Request\032..opi_api.storage.v1.ListNvmeNam" + + "espacesResponse\"=\202\323\344\223\002.\022,/v1/{parent=nvm" + + "eSubsystems/*}/nvmeNamespaces\332A\006parent\022\237" + + "\001\n\020GetNvmeNamespace\022+.opi_api.storage.v1" + + ".GetNvmeNamespaceRequest\032!.opi_api.stora" + + "ge.v1.NvmeNamespace\";\202\323\344\223\002.\022,/v1/{name=n" + + "vmeSubsystems/*/nvmeNamespaces/*}\332A\004name" + + "\022\266\001\n\022StatsNvmeNamespace\022-.opi_api.storag" + + "e.v1.StatsNvmeNamespaceRequest\032..opi_api" + + ".storage.v1.StatsNvmeNamespaceResponse\"A" + + "\202\323\344\223\0024\0222/v1/{name=nvmeSubsystems/*/nvmeN" + + "amespaces/*}:stats\332A\004nameBd\n\022opi_api.sto" + + "rage.v1B\025FrontendNvmePcieProtoP\001Z5github" + + ".com/opiproject/opi-api/storage/v1alpha1" + + "/gen/gob\006proto3" }; descriptor = com.google.protobuf.Descriptors.FileDescriptor .internalBuildGeneratedFileFrom(descriptorData, @@ -448,7 +452,7 @@ public static void registerAllExtensions( internal_static_opi_api_storage_v1_NvmeControllerSpec_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_opi_api_storage_v1_NvmeControllerSpec_descriptor, - new java.lang.String[] { "NvmeControllerId", "PcieId", "MaxNsq", "MaxNcq", "Sqes", "Cqes", "MaxNamespaces", "MinLimit", "MaxLimit", "NvmeControllerId", }); + new java.lang.String[] { "NvmeControllerId", "Trtype", "PcieId", "FabricsId", "MaxNsq", "MaxNcq", "Sqes", "Cqes", "MaxNamespaces", "MinLimit", "MaxLimit", "Endpoint", "NvmeControllerId", }); internal_static_opi_api_storage_v1_NvmeControllerStatus_descriptor = getDescriptor().getMessageTypes().get(5); internal_static_opi_api_storage_v1_NvmeControllerStatus_fieldAccessorTable = new diff --git a/storage/v1alpha1/gen/java/opi_api/storage/v1/NvmeAddressFamily.java b/storage/v1alpha1/gen/java/opi_api/storage/v1/NvmeAddressFamily.java index 0f09b271..ee0b1902 100644 --- a/storage/v1alpha1/gen/java/opi_api/storage/v1/NvmeAddressFamily.java +++ b/storage/v1alpha1/gen/java/opi_api/storage/v1/NvmeAddressFamily.java @@ -1,5 +1,5 @@ // Generated by the protocol buffer compiler. DO NOT EDIT! -// source: backend_nvme_tcp.proto +// source: opicommon.proto package opi_api.storage.v1; @@ -173,7 +173,7 @@ public NvmeAddressFamily findValueByNumber(int number) { } public static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor() { - return opi_api.storage.v1.BackendNvmeTcpProto.getDescriptor().getEnumTypes().get(1); + return opi_api.storage.v1.OpiCommonProto.getDescriptor().getEnumTypes().get(2); } private static final NvmeAddressFamily[] VALUES = values(); diff --git a/storage/v1alpha1/gen/java/opi_api/storage/v1/NvmeControllerSpec.java b/storage/v1alpha1/gen/java/opi_api/storage/v1/NvmeControllerSpec.java index ee6df350..14f644a2 100644 --- a/storage/v1alpha1/gen/java/opi_api/storage/v1/NvmeControllerSpec.java +++ b/storage/v1alpha1/gen/java/opi_api/storage/v1/NvmeControllerSpec.java @@ -20,6 +20,7 @@ private NvmeControllerSpec(com.google.protobuf.GeneratedMessageV3.Builder bui super(builder); } private NvmeControllerSpec() { + trtype_ = 0; } @java.lang.Override @@ -58,45 +59,66 @@ private NvmeControllerSpec( nvmeControllerId_ = input.readInt32(); break; } + case 16: { + int rawValue = input.readEnum(); + + trtype_ = rawValue; + break; + } case 26: { opi_api.storage.v1.PciEndpoint.Builder subBuilder = null; - if (pcieId_ != null) { - subBuilder = pcieId_.toBuilder(); + if (endpointCase_ == 3) { + subBuilder = ((opi_api.storage.v1.PciEndpoint) endpoint_).toBuilder(); } - pcieId_ = input.readMessage(opi_api.storage.v1.PciEndpoint.parser(), extensionRegistry); + endpoint_ = + input.readMessage(opi_api.storage.v1.PciEndpoint.parser(), extensionRegistry); if (subBuilder != null) { - subBuilder.mergeFrom(pcieId_); - pcieId_ = subBuilder.buildPartial(); + subBuilder.mergeFrom((opi_api.storage.v1.PciEndpoint) endpoint_); + endpoint_ = subBuilder.buildPartial(); } - + endpointCase_ = 3; + break; + } + case 34: { + opi_api.storage.v1.FabricsEndpoint.Builder subBuilder = null; + if (endpointCase_ == 4) { + subBuilder = ((opi_api.storage.v1.FabricsEndpoint) endpoint_).toBuilder(); + } + endpoint_ = + input.readMessage(opi_api.storage.v1.FabricsEndpoint.parser(), extensionRegistry); + if (subBuilder != null) { + subBuilder.mergeFrom((opi_api.storage.v1.FabricsEndpoint) endpoint_); + endpoint_ = subBuilder.buildPartial(); + } + endpointCase_ = 4; break; } - case 32: { + case 40: { maxNsq_ = input.readInt32(); break; } - case 40: { + case 48: { maxNcq_ = input.readInt32(); break; } - case 48: { + case 56: { sqes_ = input.readInt32(); break; } - case 56: { + case 64: { cqes_ = input.readInt32(); break; } - case 64: { + case 72: { maxNamespaces_ = input.readInt32(); break; } - case 74: { + case 82: { opi_api.storage.v1.QosLimit.Builder subBuilder = null; if (minLimit_ != null) { subBuilder = minLimit_.toBuilder(); @@ -109,7 +131,7 @@ private NvmeControllerSpec( break; } - case 82: { + case 90: { opi_api.storage.v1.QosLimit.Builder subBuilder = null; if (maxLimit_ != null) { subBuilder = maxLimit_.toBuilder(); @@ -157,6 +179,47 @@ private NvmeControllerSpec( } private int bitField0_; + private int endpointCase_ = 0; + private java.lang.Object endpoint_; + public enum EndpointCase + implements com.google.protobuf.Internal.EnumLite, + com.google.protobuf.AbstractMessage.InternalOneOfEnum { + PCIE_ID(3), + FABRICS_ID(4), + ENDPOINT_NOT_SET(0); + private final int value; + private EndpointCase(int value) { + this.value = value; + } + /** + * @param value The number of the enum to look for. + * @return The enum associated with the given number. + * @deprecated Use {@link #forNumber(int)} instead. + */ + @java.lang.Deprecated + public static EndpointCase valueOf(int value) { + return forNumber(value); + } + + public static EndpointCase forNumber(int value) { + switch (value) { + case 3: return PCIE_ID; + case 4: return FABRICS_ID; + case 0: return ENDPOINT_NOT_SET; + default: return null; + } + } + public int getNumber() { + return this.value; + } + }; + + public EndpointCase + getEndpointCase() { + return EndpointCase.forNumber( + endpointCase_); + } + public static final int NVME_CONTROLLER_ID_FIELD_NUMBER = 1; private int nvmeControllerId_; /** @@ -186,45 +249,123 @@ public int getNvmeControllerId() { return nvmeControllerId_; } + public static final int TRTYPE_FIELD_NUMBER = 2; + private int trtype_; + /** + *
+   * transport type
+   * 
+ * + * .opi_api.storage.v1.NvmeTransportType trtype = 2 [(.google.api.field_behavior) = REQUIRED]; + * @return The enum numeric value on the wire for trtype. + */ + @java.lang.Override public int getTrtypeValue() { + return trtype_; + } + /** + *
+   * transport type
+   * 
+ * + * .opi_api.storage.v1.NvmeTransportType trtype = 2 [(.google.api.field_behavior) = REQUIRED]; + * @return The trtype. + */ + @java.lang.Override public opi_api.storage.v1.NvmeTransportType getTrtype() { + @SuppressWarnings("deprecation") + opi_api.storage.v1.NvmeTransportType result = opi_api.storage.v1.NvmeTransportType.valueOf(trtype_); + return result == null ? opi_api.storage.v1.NvmeTransportType.UNRECOGNIZED : result; + } + public static final int PCIE_ID_FIELD_NUMBER = 3; - private opi_api.storage.v1.PciEndpoint pcieId_; /** *
-   * xPU's PCI ID for the controller
+   * Required for pcie transport type to expose emulated Pcie Nvme controllers to Host
    * 
* - * .opi_api.storage.v1.PciEndpoint pcie_id = 3 [(.google.api.field_behavior) = REQUIRED]; + * .opi_api.storage.v1.PciEndpoint pcie_id = 3 [(.google.api.field_behavior) = OPTIONAL]; * @return Whether the pcieId field is set. */ @java.lang.Override public boolean hasPcieId() { - return pcieId_ != null; + return endpointCase_ == 3; } /** *
-   * xPU's PCI ID for the controller
+   * Required for pcie transport type to expose emulated Pcie Nvme controllers to Host
    * 
* - * .opi_api.storage.v1.PciEndpoint pcie_id = 3 [(.google.api.field_behavior) = REQUIRED]; + * .opi_api.storage.v1.PciEndpoint pcie_id = 3 [(.google.api.field_behavior) = OPTIONAL]; * @return The pcieId. */ @java.lang.Override public opi_api.storage.v1.PciEndpoint getPcieId() { - return pcieId_ == null ? opi_api.storage.v1.PciEndpoint.getDefaultInstance() : pcieId_; + if (endpointCase_ == 3) { + return (opi_api.storage.v1.PciEndpoint) endpoint_; + } + return opi_api.storage.v1.PciEndpoint.getDefaultInstance(); } /** *
-   * xPU's PCI ID for the controller
+   * Required for pcie transport type to expose emulated Pcie Nvme controllers to Host
    * 
* - * .opi_api.storage.v1.PciEndpoint pcie_id = 3 [(.google.api.field_behavior) = REQUIRED]; + * .opi_api.storage.v1.PciEndpoint pcie_id = 3 [(.google.api.field_behavior) = OPTIONAL]; */ @java.lang.Override public opi_api.storage.v1.PciEndpointOrBuilder getPcieIdOrBuilder() { - return getPcieId(); + if (endpointCase_ == 3) { + return (opi_api.storage.v1.PciEndpoint) endpoint_; + } + return opi_api.storage.v1.PciEndpoint.getDefaultInstance(); + } + + public static final int FABRICS_ID_FIELD_NUMBER = 4; + /** + *
+   * Required for Nvme over fabrics transport types to create
+   * Nvme over Fabrics controllers to expose for example local SSDs over a network
+   * 
+ * + * .opi_api.storage.v1.FabricsEndpoint fabrics_id = 4 [(.google.api.field_behavior) = OPTIONAL]; + * @return Whether the fabricsId field is set. + */ + @java.lang.Override + public boolean hasFabricsId() { + return endpointCase_ == 4; + } + /** + *
+   * Required for Nvme over fabrics transport types to create
+   * Nvme over Fabrics controllers to expose for example local SSDs over a network
+   * 
+ * + * .opi_api.storage.v1.FabricsEndpoint fabrics_id = 4 [(.google.api.field_behavior) = OPTIONAL]; + * @return The fabricsId. + */ + @java.lang.Override + public opi_api.storage.v1.FabricsEndpoint getFabricsId() { + if (endpointCase_ == 4) { + return (opi_api.storage.v1.FabricsEndpoint) endpoint_; + } + return opi_api.storage.v1.FabricsEndpoint.getDefaultInstance(); + } + /** + *
+   * Required for Nvme over fabrics transport types to create
+   * Nvme over Fabrics controllers to expose for example local SSDs over a network
+   * 
+ * + * .opi_api.storage.v1.FabricsEndpoint fabrics_id = 4 [(.google.api.field_behavior) = OPTIONAL]; + */ + @java.lang.Override + public opi_api.storage.v1.FabricsEndpointOrBuilder getFabricsIdOrBuilder() { + if (endpointCase_ == 4) { + return (opi_api.storage.v1.FabricsEndpoint) endpoint_; + } + return opi_api.storage.v1.FabricsEndpoint.getDefaultInstance(); } - public static final int MAX_NSQ_FIELD_NUMBER = 4; + public static final int MAX_NSQ_FIELD_NUMBER = 5; private int maxNsq_; /** *
@@ -232,7 +373,7 @@ public opi_api.storage.v1.PciEndpointOrBuilder getPcieIdOrBuilder() {
    * If not set, the xPU will provide a default.
    * 
* - * int32 max_nsq = 4 [(.google.api.field_behavior) = OPTIONAL]; + * int32 max_nsq = 5 [(.google.api.field_behavior) = OPTIONAL]; * @return The maxNsq. */ @java.lang.Override @@ -240,7 +381,7 @@ public int getMaxNsq() { return maxNsq_; } - public static final int MAX_NCQ_FIELD_NUMBER = 5; + public static final int MAX_NCQ_FIELD_NUMBER = 6; private int maxNcq_; /** *
@@ -248,7 +389,7 @@ public int getMaxNsq() {
    * If not set, the xPU will provide a default.
    * 
* - * int32 max_ncq = 5 [(.google.api.field_behavior) = OPTIONAL]; + * int32 max_ncq = 6 [(.google.api.field_behavior) = OPTIONAL]; * @return The maxNcq. */ @java.lang.Override @@ -256,7 +397,7 @@ public int getMaxNcq() { return maxNcq_; } - public static final int SQES_FIELD_NUMBER = 6; + public static final int SQES_FIELD_NUMBER = 7; private int sqes_; /** *
@@ -264,7 +405,7 @@ public int getMaxNcq() {
    * default value as per spec is 6
    * 
* - * int32 sqes = 6 [(.google.api.field_behavior) = OPTIONAL]; + * int32 sqes = 7 [(.google.api.field_behavior) = OPTIONAL]; * @return The sqes. */ @java.lang.Override @@ -272,7 +413,7 @@ public int getSqes() { return sqes_; } - public static final int CQES_FIELD_NUMBER = 7; + public static final int CQES_FIELD_NUMBER = 8; private int cqes_; /** *
@@ -280,7 +421,7 @@ public int getSqes() {
    * default value as per spec is 4
    * 
* - * int32 cqes = 7 [(.google.api.field_behavior) = OPTIONAL]; + * int32 cqes = 8 [(.google.api.field_behavior) = OPTIONAL]; * @return The cqes. */ @java.lang.Override @@ -288,7 +429,7 @@ public int getCqes() { return cqes_; } - public static final int MAX_NAMESPACES_FIELD_NUMBER = 8; + public static final int MAX_NAMESPACES_FIELD_NUMBER = 9; private int maxNamespaces_; /** *
@@ -296,7 +437,7 @@ public int getCqes() {
    * the controller.
    * 
* - * int32 max_namespaces = 8 [(.google.api.field_behavior) = OPTIONAL]; + * int32 max_namespaces = 9 [(.google.api.field_behavior) = OPTIONAL]; * @return The maxNamespaces. */ @java.lang.Override @@ -304,14 +445,14 @@ public int getMaxNamespaces() { return maxNamespaces_; } - public static final int MIN_LIMIT_FIELD_NUMBER = 9; + public static final int MIN_LIMIT_FIELD_NUMBER = 10; private opi_api.storage.v1.QosLimit minLimit_; /** *
    * min QoS limits for the controller
    * 
* - * .opi_api.storage.v1.QosLimit min_limit = 9 [(.google.api.field_behavior) = OPTIONAL]; + * .opi_api.storage.v1.QosLimit min_limit = 10 [(.google.api.field_behavior) = OPTIONAL]; * @return Whether the minLimit field is set. */ @java.lang.Override @@ -323,7 +464,7 @@ public boolean hasMinLimit() { * min QoS limits for the controller * * - * .opi_api.storage.v1.QosLimit min_limit = 9 [(.google.api.field_behavior) = OPTIONAL]; + * .opi_api.storage.v1.QosLimit min_limit = 10 [(.google.api.field_behavior) = OPTIONAL]; * @return The minLimit. */ @java.lang.Override @@ -335,21 +476,21 @@ public opi_api.storage.v1.QosLimit getMinLimit() { * min QoS limits for the controller * * - * .opi_api.storage.v1.QosLimit min_limit = 9 [(.google.api.field_behavior) = OPTIONAL]; + * .opi_api.storage.v1.QosLimit min_limit = 10 [(.google.api.field_behavior) = OPTIONAL]; */ @java.lang.Override public opi_api.storage.v1.QosLimitOrBuilder getMinLimitOrBuilder() { return getMinLimit(); } - public static final int MAX_LIMIT_FIELD_NUMBER = 10; + public static final int MAX_LIMIT_FIELD_NUMBER = 11; private opi_api.storage.v1.QosLimit maxLimit_; /** *
    * max QoS limits for the controller
    * 
* - * .opi_api.storage.v1.QosLimit max_limit = 10 [(.google.api.field_behavior) = OPTIONAL]; + * .opi_api.storage.v1.QosLimit max_limit = 11 [(.google.api.field_behavior) = OPTIONAL]; * @return Whether the maxLimit field is set. */ @java.lang.Override @@ -361,7 +502,7 @@ public boolean hasMaxLimit() { * max QoS limits for the controller * * - * .opi_api.storage.v1.QosLimit max_limit = 10 [(.google.api.field_behavior) = OPTIONAL]; + * .opi_api.storage.v1.QosLimit max_limit = 11 [(.google.api.field_behavior) = OPTIONAL]; * @return The maxLimit. */ @java.lang.Override @@ -373,7 +514,7 @@ public opi_api.storage.v1.QosLimit getMaxLimit() { * max QoS limits for the controller * * - * .opi_api.storage.v1.QosLimit max_limit = 10 [(.google.api.field_behavior) = OPTIONAL]; + * .opi_api.storage.v1.QosLimit max_limit = 11 [(.google.api.field_behavior) = OPTIONAL]; */ @java.lang.Override public opi_api.storage.v1.QosLimitOrBuilder getMaxLimitOrBuilder() { @@ -397,29 +538,35 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) if (((bitField0_ & 0x00000001) != 0)) { output.writeInt32(1, nvmeControllerId_); } - if (pcieId_ != null) { - output.writeMessage(3, getPcieId()); + if (trtype_ != opi_api.storage.v1.NvmeTransportType.NVME_TRANSPORT_TYPE_UNSPECIFIED.getNumber()) { + output.writeEnum(2, trtype_); + } + if (endpointCase_ == 3) { + output.writeMessage(3, (opi_api.storage.v1.PciEndpoint) endpoint_); + } + if (endpointCase_ == 4) { + output.writeMessage(4, (opi_api.storage.v1.FabricsEndpoint) endpoint_); } if (maxNsq_ != 0) { - output.writeInt32(4, maxNsq_); + output.writeInt32(5, maxNsq_); } if (maxNcq_ != 0) { - output.writeInt32(5, maxNcq_); + output.writeInt32(6, maxNcq_); } if (sqes_ != 0) { - output.writeInt32(6, sqes_); + output.writeInt32(7, sqes_); } if (cqes_ != 0) { - output.writeInt32(7, cqes_); + output.writeInt32(8, cqes_); } if (maxNamespaces_ != 0) { - output.writeInt32(8, maxNamespaces_); + output.writeInt32(9, maxNamespaces_); } if (minLimit_ != null) { - output.writeMessage(9, getMinLimit()); + output.writeMessage(10, getMinLimit()); } if (maxLimit_ != null) { - output.writeMessage(10, getMaxLimit()); + output.writeMessage(11, getMaxLimit()); } unknownFields.writeTo(output); } @@ -434,37 +581,45 @@ public int getSerializedSize() { size += com.google.protobuf.CodedOutputStream .computeInt32Size(1, nvmeControllerId_); } - if (pcieId_ != null) { + if (trtype_ != opi_api.storage.v1.NvmeTransportType.NVME_TRANSPORT_TYPE_UNSPECIFIED.getNumber()) { + size += com.google.protobuf.CodedOutputStream + .computeEnumSize(2, trtype_); + } + if (endpointCase_ == 3) { size += com.google.protobuf.CodedOutputStream - .computeMessageSize(3, getPcieId()); + .computeMessageSize(3, (opi_api.storage.v1.PciEndpoint) endpoint_); + } + if (endpointCase_ == 4) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(4, (opi_api.storage.v1.FabricsEndpoint) endpoint_); } if (maxNsq_ != 0) { size += com.google.protobuf.CodedOutputStream - .computeInt32Size(4, maxNsq_); + .computeInt32Size(5, maxNsq_); } if (maxNcq_ != 0) { size += com.google.protobuf.CodedOutputStream - .computeInt32Size(5, maxNcq_); + .computeInt32Size(6, maxNcq_); } if (sqes_ != 0) { size += com.google.protobuf.CodedOutputStream - .computeInt32Size(6, sqes_); + .computeInt32Size(7, sqes_); } if (cqes_ != 0) { size += com.google.protobuf.CodedOutputStream - .computeInt32Size(7, cqes_); + .computeInt32Size(8, cqes_); } if (maxNamespaces_ != 0) { size += com.google.protobuf.CodedOutputStream - .computeInt32Size(8, maxNamespaces_); + .computeInt32Size(9, maxNamespaces_); } if (minLimit_ != null) { size += com.google.protobuf.CodedOutputStream - .computeMessageSize(9, getMinLimit()); + .computeMessageSize(10, getMinLimit()); } if (maxLimit_ != null) { size += com.google.protobuf.CodedOutputStream - .computeMessageSize(10, getMaxLimit()); + .computeMessageSize(11, getMaxLimit()); } size += unknownFields.getSerializedSize(); memoizedSize = size; @@ -486,11 +641,7 @@ public boolean equals(final java.lang.Object obj) { if (getNvmeControllerId() != other.getNvmeControllerId()) return false; } - if (hasPcieId() != other.hasPcieId()) return false; - if (hasPcieId()) { - if (!getPcieId() - .equals(other.getPcieId())) return false; - } + if (trtype_ != other.trtype_) return false; if (getMaxNsq() != other.getMaxNsq()) return false; if (getMaxNcq() @@ -511,6 +662,19 @@ public boolean equals(final java.lang.Object obj) { if (!getMaxLimit() .equals(other.getMaxLimit())) return false; } + if (!getEndpointCase().equals(other.getEndpointCase())) return false; + switch (endpointCase_) { + case 3: + if (!getPcieId() + .equals(other.getPcieId())) return false; + break; + case 4: + if (!getFabricsId() + .equals(other.getFabricsId())) return false; + break; + case 0: + default: + } if (!unknownFields.equals(other.unknownFields)) return false; return true; } @@ -526,10 +690,8 @@ public int hashCode() { hash = (37 * hash) + NVME_CONTROLLER_ID_FIELD_NUMBER; hash = (53 * hash) + getNvmeControllerId(); } - if (hasPcieId()) { - hash = (37 * hash) + PCIE_ID_FIELD_NUMBER; - hash = (53 * hash) + getPcieId().hashCode(); - } + hash = (37 * hash) + TRTYPE_FIELD_NUMBER; + hash = (53 * hash) + trtype_; hash = (37 * hash) + MAX_NSQ_FIELD_NUMBER; hash = (53 * hash) + getMaxNsq(); hash = (37 * hash) + MAX_NCQ_FIELD_NUMBER; @@ -548,6 +710,18 @@ public int hashCode() { hash = (37 * hash) + MAX_LIMIT_FIELD_NUMBER; hash = (53 * hash) + getMaxLimit().hashCode(); } + switch (endpointCase_) { + case 3: + hash = (37 * hash) + PCIE_ID_FIELD_NUMBER; + hash = (53 * hash) + getPcieId().hashCode(); + break; + case 4: + hash = (37 * hash) + FABRICS_ID_FIELD_NUMBER; + hash = (53 * hash) + getFabricsId().hashCode(); + break; + case 0: + default: + } hash = (29 * hash) + unknownFields.hashCode(); memoizedHashCode = hash; return hash; @@ -687,12 +861,8 @@ public Builder clear() { super.clear(); nvmeControllerId_ = 0; bitField0_ = (bitField0_ & ~0x00000001); - if (pcieIdBuilder_ == null) { - pcieId_ = null; - } else { - pcieId_ = null; - pcieIdBuilder_ = null; - } + trtype_ = 0; + maxNsq_ = 0; maxNcq_ = 0; @@ -715,6 +885,8 @@ public Builder clear() { maxLimit_ = null; maxLimitBuilder_ = null; } + endpointCase_ = 0; + endpoint_ = null; return this; } @@ -747,10 +919,20 @@ public opi_api.storage.v1.NvmeControllerSpec buildPartial() { result.nvmeControllerId_ = nvmeControllerId_; to_bitField0_ |= 0x00000001; } - if (pcieIdBuilder_ == null) { - result.pcieId_ = pcieId_; - } else { - result.pcieId_ = pcieIdBuilder_.build(); + result.trtype_ = trtype_; + if (endpointCase_ == 3) { + if (pcieIdBuilder_ == null) { + result.endpoint_ = endpoint_; + } else { + result.endpoint_ = pcieIdBuilder_.build(); + } + } + if (endpointCase_ == 4) { + if (fabricsIdBuilder_ == null) { + result.endpoint_ = endpoint_; + } else { + result.endpoint_ = fabricsIdBuilder_.build(); + } } result.maxNsq_ = maxNsq_; result.maxNcq_ = maxNcq_; @@ -768,6 +950,7 @@ public opi_api.storage.v1.NvmeControllerSpec buildPartial() { result.maxLimit_ = maxLimitBuilder_.build(); } result.bitField0_ = to_bitField0_; + result.endpointCase_ = endpointCase_; onBuilt(); return result; } @@ -819,8 +1002,8 @@ public Builder mergeFrom(opi_api.storage.v1.NvmeControllerSpec other) { if (other.hasNvmeControllerId()) { setNvmeControllerId(other.getNvmeControllerId()); } - if (other.hasPcieId()) { - mergePcieId(other.getPcieId()); + if (other.trtype_ != 0) { + setTrtypeValue(other.getTrtypeValue()); } if (other.getMaxNsq() != 0) { setMaxNsq(other.getMaxNsq()); @@ -843,6 +1026,19 @@ public Builder mergeFrom(opi_api.storage.v1.NvmeControllerSpec other) { if (other.hasMaxLimit()) { mergeMaxLimit(other.getMaxLimit()); } + switch (other.getEndpointCase()) { + case PCIE_ID: { + mergePcieId(other.getPcieId()); + break; + } + case FABRICS_ID: { + mergeFabricsId(other.getFabricsId()); + break; + } + case ENDPOINT_NOT_SET: { + break; + } + } this.mergeUnknownFields(other.unknownFields); onChanged(); return this; @@ -871,6 +1067,21 @@ public Builder mergeFrom( } return this; } + private int endpointCase_ = 0; + private java.lang.Object endpoint_; + public EndpointCase + getEndpointCase() { + return EndpointCase.forNumber( + endpointCase_); + } + + public Builder clearEndpoint() { + endpointCase_ = 0; + endpoint_ = null; + onChanged(); + return this; + } + private int bitField0_; private int nvmeControllerId_ ; @@ -932,161 +1143,445 @@ public Builder clearNvmeControllerId() { return this; } - private opi_api.storage.v1.PciEndpoint pcieId_; + private int trtype_ = 0; + /** + *
+     * transport type
+     * 
+ * + * .opi_api.storage.v1.NvmeTransportType trtype = 2 [(.google.api.field_behavior) = REQUIRED]; + * @return The enum numeric value on the wire for trtype. + */ + @java.lang.Override public int getTrtypeValue() { + return trtype_; + } + /** + *
+     * transport type
+     * 
+ * + * .opi_api.storage.v1.NvmeTransportType trtype = 2 [(.google.api.field_behavior) = REQUIRED]; + * @param value The enum numeric value on the wire for trtype to set. + * @return This builder for chaining. + */ + public Builder setTrtypeValue(int value) { + + trtype_ = value; + onChanged(); + return this; + } + /** + *
+     * transport type
+     * 
+ * + * .opi_api.storage.v1.NvmeTransportType trtype = 2 [(.google.api.field_behavior) = REQUIRED]; + * @return The trtype. + */ + @java.lang.Override + public opi_api.storage.v1.NvmeTransportType getTrtype() { + @SuppressWarnings("deprecation") + opi_api.storage.v1.NvmeTransportType result = opi_api.storage.v1.NvmeTransportType.valueOf(trtype_); + return result == null ? opi_api.storage.v1.NvmeTransportType.UNRECOGNIZED : result; + } + /** + *
+     * transport type
+     * 
+ * + * .opi_api.storage.v1.NvmeTransportType trtype = 2 [(.google.api.field_behavior) = REQUIRED]; + * @param value The trtype to set. + * @return This builder for chaining. + */ + public Builder setTrtype(opi_api.storage.v1.NvmeTransportType value) { + if (value == null) { + throw new NullPointerException(); + } + + trtype_ = value.getNumber(); + onChanged(); + return this; + } + /** + *
+     * transport type
+     * 
+ * + * .opi_api.storage.v1.NvmeTransportType trtype = 2 [(.google.api.field_behavior) = REQUIRED]; + * @return This builder for chaining. + */ + public Builder clearTrtype() { + + trtype_ = 0; + onChanged(); + return this; + } + private com.google.protobuf.SingleFieldBuilderV3< opi_api.storage.v1.PciEndpoint, opi_api.storage.v1.PciEndpoint.Builder, opi_api.storage.v1.PciEndpointOrBuilder> pcieIdBuilder_; /** *
-     * xPU's PCI ID for the controller
+     * Required for pcie transport type to expose emulated Pcie Nvme controllers to Host
      * 
* - * .opi_api.storage.v1.PciEndpoint pcie_id = 3 [(.google.api.field_behavior) = REQUIRED]; + * .opi_api.storage.v1.PciEndpoint pcie_id = 3 [(.google.api.field_behavior) = OPTIONAL]; * @return Whether the pcieId field is set. */ + @java.lang.Override public boolean hasPcieId() { - return pcieIdBuilder_ != null || pcieId_ != null; + return endpointCase_ == 3; } /** *
-     * xPU's PCI ID for the controller
+     * Required for pcie transport type to expose emulated Pcie Nvme controllers to Host
      * 
* - * .opi_api.storage.v1.PciEndpoint pcie_id = 3 [(.google.api.field_behavior) = REQUIRED]; + * .opi_api.storage.v1.PciEndpoint pcie_id = 3 [(.google.api.field_behavior) = OPTIONAL]; * @return The pcieId. */ + @java.lang.Override public opi_api.storage.v1.PciEndpoint getPcieId() { if (pcieIdBuilder_ == null) { - return pcieId_ == null ? opi_api.storage.v1.PciEndpoint.getDefaultInstance() : pcieId_; + if (endpointCase_ == 3) { + return (opi_api.storage.v1.PciEndpoint) endpoint_; + } + return opi_api.storage.v1.PciEndpoint.getDefaultInstance(); } else { - return pcieIdBuilder_.getMessage(); + if (endpointCase_ == 3) { + return pcieIdBuilder_.getMessage(); + } + return opi_api.storage.v1.PciEndpoint.getDefaultInstance(); } } /** *
-     * xPU's PCI ID for the controller
+     * Required for pcie transport type to expose emulated Pcie Nvme controllers to Host
      * 
* - * .opi_api.storage.v1.PciEndpoint pcie_id = 3 [(.google.api.field_behavior) = REQUIRED]; + * .opi_api.storage.v1.PciEndpoint pcie_id = 3 [(.google.api.field_behavior) = OPTIONAL]; */ public Builder setPcieId(opi_api.storage.v1.PciEndpoint value) { if (pcieIdBuilder_ == null) { if (value == null) { throw new NullPointerException(); } - pcieId_ = value; + endpoint_ = value; onChanged(); } else { pcieIdBuilder_.setMessage(value); } - + endpointCase_ = 3; return this; } /** *
-     * xPU's PCI ID for the controller
+     * Required for pcie transport type to expose emulated Pcie Nvme controllers to Host
      * 
* - * .opi_api.storage.v1.PciEndpoint pcie_id = 3 [(.google.api.field_behavior) = REQUIRED]; + * .opi_api.storage.v1.PciEndpoint pcie_id = 3 [(.google.api.field_behavior) = OPTIONAL]; */ public Builder setPcieId( opi_api.storage.v1.PciEndpoint.Builder builderForValue) { if (pcieIdBuilder_ == null) { - pcieId_ = builderForValue.build(); + endpoint_ = builderForValue.build(); onChanged(); } else { pcieIdBuilder_.setMessage(builderForValue.build()); } - + endpointCase_ = 3; return this; } /** *
-     * xPU's PCI ID for the controller
+     * Required for pcie transport type to expose emulated Pcie Nvme controllers to Host
      * 
* - * .opi_api.storage.v1.PciEndpoint pcie_id = 3 [(.google.api.field_behavior) = REQUIRED]; + * .opi_api.storage.v1.PciEndpoint pcie_id = 3 [(.google.api.field_behavior) = OPTIONAL]; */ public Builder mergePcieId(opi_api.storage.v1.PciEndpoint value) { if (pcieIdBuilder_ == null) { - if (pcieId_ != null) { - pcieId_ = - opi_api.storage.v1.PciEndpoint.newBuilder(pcieId_).mergeFrom(value).buildPartial(); + if (endpointCase_ == 3 && + endpoint_ != opi_api.storage.v1.PciEndpoint.getDefaultInstance()) { + endpoint_ = opi_api.storage.v1.PciEndpoint.newBuilder((opi_api.storage.v1.PciEndpoint) endpoint_) + .mergeFrom(value).buildPartial(); } else { - pcieId_ = value; + endpoint_ = value; } onChanged(); } else { - pcieIdBuilder_.mergeFrom(value); + if (endpointCase_ == 3) { + pcieIdBuilder_.mergeFrom(value); + } else { + pcieIdBuilder_.setMessage(value); + } } - + endpointCase_ = 3; return this; } /** *
-     * xPU's PCI ID for the controller
+     * Required for pcie transport type to expose emulated Pcie Nvme controllers to Host
      * 
* - * .opi_api.storage.v1.PciEndpoint pcie_id = 3 [(.google.api.field_behavior) = REQUIRED]; + * .opi_api.storage.v1.PciEndpoint pcie_id = 3 [(.google.api.field_behavior) = OPTIONAL]; */ public Builder clearPcieId() { if (pcieIdBuilder_ == null) { - pcieId_ = null; - onChanged(); + if (endpointCase_ == 3) { + endpointCase_ = 0; + endpoint_ = null; + onChanged(); + } } else { - pcieId_ = null; - pcieIdBuilder_ = null; + if (endpointCase_ == 3) { + endpointCase_ = 0; + endpoint_ = null; + } + pcieIdBuilder_.clear(); } - return this; } /** *
-     * xPU's PCI ID for the controller
+     * Required for pcie transport type to expose emulated Pcie Nvme controllers to Host
      * 
* - * .opi_api.storage.v1.PciEndpoint pcie_id = 3 [(.google.api.field_behavior) = REQUIRED]; + * .opi_api.storage.v1.PciEndpoint pcie_id = 3 [(.google.api.field_behavior) = OPTIONAL]; */ public opi_api.storage.v1.PciEndpoint.Builder getPcieIdBuilder() { - - onChanged(); return getPcieIdFieldBuilder().getBuilder(); } /** *
-     * xPU's PCI ID for the controller
+     * Required for pcie transport type to expose emulated Pcie Nvme controllers to Host
      * 
* - * .opi_api.storage.v1.PciEndpoint pcie_id = 3 [(.google.api.field_behavior) = REQUIRED]; + * .opi_api.storage.v1.PciEndpoint pcie_id = 3 [(.google.api.field_behavior) = OPTIONAL]; */ + @java.lang.Override public opi_api.storage.v1.PciEndpointOrBuilder getPcieIdOrBuilder() { - if (pcieIdBuilder_ != null) { + if ((endpointCase_ == 3) && (pcieIdBuilder_ != null)) { return pcieIdBuilder_.getMessageOrBuilder(); } else { - return pcieId_ == null ? - opi_api.storage.v1.PciEndpoint.getDefaultInstance() : pcieId_; + if (endpointCase_ == 3) { + return (opi_api.storage.v1.PciEndpoint) endpoint_; + } + return opi_api.storage.v1.PciEndpoint.getDefaultInstance(); } } /** *
-     * xPU's PCI ID for the controller
+     * Required for pcie transport type to expose emulated Pcie Nvme controllers to Host
      * 
* - * .opi_api.storage.v1.PciEndpoint pcie_id = 3 [(.google.api.field_behavior) = REQUIRED]; + * .opi_api.storage.v1.PciEndpoint pcie_id = 3 [(.google.api.field_behavior) = OPTIONAL]; */ private com.google.protobuf.SingleFieldBuilderV3< opi_api.storage.v1.PciEndpoint, opi_api.storage.v1.PciEndpoint.Builder, opi_api.storage.v1.PciEndpointOrBuilder> getPcieIdFieldBuilder() { if (pcieIdBuilder_ == null) { + if (!(endpointCase_ == 3)) { + endpoint_ = opi_api.storage.v1.PciEndpoint.getDefaultInstance(); + } pcieIdBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< opi_api.storage.v1.PciEndpoint, opi_api.storage.v1.PciEndpoint.Builder, opi_api.storage.v1.PciEndpointOrBuilder>( - getPcieId(), + (opi_api.storage.v1.PciEndpoint) endpoint_, getParentForChildren(), isClean()); - pcieId_ = null; + endpoint_ = null; } + endpointCase_ = 3; + onChanged();; return pcieIdBuilder_; } + private com.google.protobuf.SingleFieldBuilderV3< + opi_api.storage.v1.FabricsEndpoint, opi_api.storage.v1.FabricsEndpoint.Builder, opi_api.storage.v1.FabricsEndpointOrBuilder> fabricsIdBuilder_; + /** + *
+     * Required for Nvme over fabrics transport types to create
+     * Nvme over Fabrics controllers to expose for example local SSDs over a network
+     * 
+ * + * .opi_api.storage.v1.FabricsEndpoint fabrics_id = 4 [(.google.api.field_behavior) = OPTIONAL]; + * @return Whether the fabricsId field is set. + */ + @java.lang.Override + public boolean hasFabricsId() { + return endpointCase_ == 4; + } + /** + *
+     * Required for Nvme over fabrics transport types to create
+     * Nvme over Fabrics controllers to expose for example local SSDs over a network
+     * 
+ * + * .opi_api.storage.v1.FabricsEndpoint fabrics_id = 4 [(.google.api.field_behavior) = OPTIONAL]; + * @return The fabricsId. + */ + @java.lang.Override + public opi_api.storage.v1.FabricsEndpoint getFabricsId() { + if (fabricsIdBuilder_ == null) { + if (endpointCase_ == 4) { + return (opi_api.storage.v1.FabricsEndpoint) endpoint_; + } + return opi_api.storage.v1.FabricsEndpoint.getDefaultInstance(); + } else { + if (endpointCase_ == 4) { + return fabricsIdBuilder_.getMessage(); + } + return opi_api.storage.v1.FabricsEndpoint.getDefaultInstance(); + } + } + /** + *
+     * Required for Nvme over fabrics transport types to create
+     * Nvme over Fabrics controllers to expose for example local SSDs over a network
+     * 
+ * + * .opi_api.storage.v1.FabricsEndpoint fabrics_id = 4 [(.google.api.field_behavior) = OPTIONAL]; + */ + public Builder setFabricsId(opi_api.storage.v1.FabricsEndpoint value) { + if (fabricsIdBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + endpoint_ = value; + onChanged(); + } else { + fabricsIdBuilder_.setMessage(value); + } + endpointCase_ = 4; + return this; + } + /** + *
+     * Required for Nvme over fabrics transport types to create
+     * Nvme over Fabrics controllers to expose for example local SSDs over a network
+     * 
+ * + * .opi_api.storage.v1.FabricsEndpoint fabrics_id = 4 [(.google.api.field_behavior) = OPTIONAL]; + */ + public Builder setFabricsId( + opi_api.storage.v1.FabricsEndpoint.Builder builderForValue) { + if (fabricsIdBuilder_ == null) { + endpoint_ = builderForValue.build(); + onChanged(); + } else { + fabricsIdBuilder_.setMessage(builderForValue.build()); + } + endpointCase_ = 4; + return this; + } + /** + *
+     * Required for Nvme over fabrics transport types to create
+     * Nvme over Fabrics controllers to expose for example local SSDs over a network
+     * 
+ * + * .opi_api.storage.v1.FabricsEndpoint fabrics_id = 4 [(.google.api.field_behavior) = OPTIONAL]; + */ + public Builder mergeFabricsId(opi_api.storage.v1.FabricsEndpoint value) { + if (fabricsIdBuilder_ == null) { + if (endpointCase_ == 4 && + endpoint_ != opi_api.storage.v1.FabricsEndpoint.getDefaultInstance()) { + endpoint_ = opi_api.storage.v1.FabricsEndpoint.newBuilder((opi_api.storage.v1.FabricsEndpoint) endpoint_) + .mergeFrom(value).buildPartial(); + } else { + endpoint_ = value; + } + onChanged(); + } else { + if (endpointCase_ == 4) { + fabricsIdBuilder_.mergeFrom(value); + } else { + fabricsIdBuilder_.setMessage(value); + } + } + endpointCase_ = 4; + return this; + } + /** + *
+     * Required for Nvme over fabrics transport types to create
+     * Nvme over Fabrics controllers to expose for example local SSDs over a network
+     * 
+ * + * .opi_api.storage.v1.FabricsEndpoint fabrics_id = 4 [(.google.api.field_behavior) = OPTIONAL]; + */ + public Builder clearFabricsId() { + if (fabricsIdBuilder_ == null) { + if (endpointCase_ == 4) { + endpointCase_ = 0; + endpoint_ = null; + onChanged(); + } + } else { + if (endpointCase_ == 4) { + endpointCase_ = 0; + endpoint_ = null; + } + fabricsIdBuilder_.clear(); + } + return this; + } + /** + *
+     * Required for Nvme over fabrics transport types to create
+     * Nvme over Fabrics controllers to expose for example local SSDs over a network
+     * 
+ * + * .opi_api.storage.v1.FabricsEndpoint fabrics_id = 4 [(.google.api.field_behavior) = OPTIONAL]; + */ + public opi_api.storage.v1.FabricsEndpoint.Builder getFabricsIdBuilder() { + return getFabricsIdFieldBuilder().getBuilder(); + } + /** + *
+     * Required for Nvme over fabrics transport types to create
+     * Nvme over Fabrics controllers to expose for example local SSDs over a network
+     * 
+ * + * .opi_api.storage.v1.FabricsEndpoint fabrics_id = 4 [(.google.api.field_behavior) = OPTIONAL]; + */ + @java.lang.Override + public opi_api.storage.v1.FabricsEndpointOrBuilder getFabricsIdOrBuilder() { + if ((endpointCase_ == 4) && (fabricsIdBuilder_ != null)) { + return fabricsIdBuilder_.getMessageOrBuilder(); + } else { + if (endpointCase_ == 4) { + return (opi_api.storage.v1.FabricsEndpoint) endpoint_; + } + return opi_api.storage.v1.FabricsEndpoint.getDefaultInstance(); + } + } + /** + *
+     * Required for Nvme over fabrics transport types to create
+     * Nvme over Fabrics controllers to expose for example local SSDs over a network
+     * 
+ * + * .opi_api.storage.v1.FabricsEndpoint fabrics_id = 4 [(.google.api.field_behavior) = OPTIONAL]; + */ + private com.google.protobuf.SingleFieldBuilderV3< + opi_api.storage.v1.FabricsEndpoint, opi_api.storage.v1.FabricsEndpoint.Builder, opi_api.storage.v1.FabricsEndpointOrBuilder> + getFabricsIdFieldBuilder() { + if (fabricsIdBuilder_ == null) { + if (!(endpointCase_ == 4)) { + endpoint_ = opi_api.storage.v1.FabricsEndpoint.getDefaultInstance(); + } + fabricsIdBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + opi_api.storage.v1.FabricsEndpoint, opi_api.storage.v1.FabricsEndpoint.Builder, opi_api.storage.v1.FabricsEndpointOrBuilder>( + (opi_api.storage.v1.FabricsEndpoint) endpoint_, + getParentForChildren(), + isClean()); + endpoint_ = null; + } + endpointCase_ = 4; + onChanged();; + return fabricsIdBuilder_; + } + private int maxNsq_ ; /** *
@@ -1094,7 +1589,7 @@ public opi_api.storage.v1.PciEndpointOrBuilder getPcieIdOrBuilder() {
      * If not set, the xPU will provide a default.
      * 
* - * int32 max_nsq = 4 [(.google.api.field_behavior) = OPTIONAL]; + * int32 max_nsq = 5 [(.google.api.field_behavior) = OPTIONAL]; * @return The maxNsq. */ @java.lang.Override @@ -1107,7 +1602,7 @@ public int getMaxNsq() { * If not set, the xPU will provide a default. * * - * int32 max_nsq = 4 [(.google.api.field_behavior) = OPTIONAL]; + * int32 max_nsq = 5 [(.google.api.field_behavior) = OPTIONAL]; * @param value The maxNsq to set. * @return This builder for chaining. */ @@ -1123,7 +1618,7 @@ public Builder setMaxNsq(int value) { * If not set, the xPU will provide a default. * * - * int32 max_nsq = 4 [(.google.api.field_behavior) = OPTIONAL]; + * int32 max_nsq = 5 [(.google.api.field_behavior) = OPTIONAL]; * @return This builder for chaining. */ public Builder clearMaxNsq() { @@ -1140,7 +1635,7 @@ public Builder clearMaxNsq() { * If not set, the xPU will provide a default. * * - * int32 max_ncq = 5 [(.google.api.field_behavior) = OPTIONAL]; + * int32 max_ncq = 6 [(.google.api.field_behavior) = OPTIONAL]; * @return The maxNcq. */ @java.lang.Override @@ -1153,7 +1648,7 @@ public int getMaxNcq() { * If not set, the xPU will provide a default. * * - * int32 max_ncq = 5 [(.google.api.field_behavior) = OPTIONAL]; + * int32 max_ncq = 6 [(.google.api.field_behavior) = OPTIONAL]; * @param value The maxNcq to set. * @return This builder for chaining. */ @@ -1169,7 +1664,7 @@ public Builder setMaxNcq(int value) { * If not set, the xPU will provide a default. * * - * int32 max_ncq = 5 [(.google.api.field_behavior) = OPTIONAL]; + * int32 max_ncq = 6 [(.google.api.field_behavior) = OPTIONAL]; * @return This builder for chaining. */ public Builder clearMaxNcq() { @@ -1186,7 +1681,7 @@ public Builder clearMaxNcq() { * default value as per spec is 6 * * - * int32 sqes = 6 [(.google.api.field_behavior) = OPTIONAL]; + * int32 sqes = 7 [(.google.api.field_behavior) = OPTIONAL]; * @return The sqes. */ @java.lang.Override @@ -1199,7 +1694,7 @@ public int getSqes() { * default value as per spec is 6 * * - * int32 sqes = 6 [(.google.api.field_behavior) = OPTIONAL]; + * int32 sqes = 7 [(.google.api.field_behavior) = OPTIONAL]; * @param value The sqes to set. * @return This builder for chaining. */ @@ -1215,7 +1710,7 @@ public Builder setSqes(int value) { * default value as per spec is 6 * * - * int32 sqes = 6 [(.google.api.field_behavior) = OPTIONAL]; + * int32 sqes = 7 [(.google.api.field_behavior) = OPTIONAL]; * @return This builder for chaining. */ public Builder clearSqes() { @@ -1232,7 +1727,7 @@ public Builder clearSqes() { * default value as per spec is 4 * * - * int32 cqes = 7 [(.google.api.field_behavior) = OPTIONAL]; + * int32 cqes = 8 [(.google.api.field_behavior) = OPTIONAL]; * @return The cqes. */ @java.lang.Override @@ -1245,7 +1740,7 @@ public int getCqes() { * default value as per spec is 4 * * - * int32 cqes = 7 [(.google.api.field_behavior) = OPTIONAL]; + * int32 cqes = 8 [(.google.api.field_behavior) = OPTIONAL]; * @param value The cqes to set. * @return This builder for chaining. */ @@ -1261,7 +1756,7 @@ public Builder setCqes(int value) { * default value as per spec is 4 * * - * int32 cqes = 7 [(.google.api.field_behavior) = OPTIONAL]; + * int32 cqes = 8 [(.google.api.field_behavior) = OPTIONAL]; * @return This builder for chaining. */ public Builder clearCqes() { @@ -1278,7 +1773,7 @@ public Builder clearCqes() { * the controller. * * - * int32 max_namespaces = 8 [(.google.api.field_behavior) = OPTIONAL]; + * int32 max_namespaces = 9 [(.google.api.field_behavior) = OPTIONAL]; * @return The maxNamespaces. */ @java.lang.Override @@ -1291,7 +1786,7 @@ public int getMaxNamespaces() { * the controller. * * - * int32 max_namespaces = 8 [(.google.api.field_behavior) = OPTIONAL]; + * int32 max_namespaces = 9 [(.google.api.field_behavior) = OPTIONAL]; * @param value The maxNamespaces to set. * @return This builder for chaining. */ @@ -1307,7 +1802,7 @@ public Builder setMaxNamespaces(int value) { * the controller. * * - * int32 max_namespaces = 8 [(.google.api.field_behavior) = OPTIONAL]; + * int32 max_namespaces = 9 [(.google.api.field_behavior) = OPTIONAL]; * @return This builder for chaining. */ public Builder clearMaxNamespaces() { @@ -1325,7 +1820,7 @@ public Builder clearMaxNamespaces() { * min QoS limits for the controller * * - * .opi_api.storage.v1.QosLimit min_limit = 9 [(.google.api.field_behavior) = OPTIONAL]; + * .opi_api.storage.v1.QosLimit min_limit = 10 [(.google.api.field_behavior) = OPTIONAL]; * @return Whether the minLimit field is set. */ public boolean hasMinLimit() { @@ -1336,7 +1831,7 @@ public boolean hasMinLimit() { * min QoS limits for the controller * * - * .opi_api.storage.v1.QosLimit min_limit = 9 [(.google.api.field_behavior) = OPTIONAL]; + * .opi_api.storage.v1.QosLimit min_limit = 10 [(.google.api.field_behavior) = OPTIONAL]; * @return The minLimit. */ public opi_api.storage.v1.QosLimit getMinLimit() { @@ -1351,7 +1846,7 @@ public opi_api.storage.v1.QosLimit getMinLimit() { * min QoS limits for the controller * * - * .opi_api.storage.v1.QosLimit min_limit = 9 [(.google.api.field_behavior) = OPTIONAL]; + * .opi_api.storage.v1.QosLimit min_limit = 10 [(.google.api.field_behavior) = OPTIONAL]; */ public Builder setMinLimit(opi_api.storage.v1.QosLimit value) { if (minLimitBuilder_ == null) { @@ -1371,7 +1866,7 @@ public Builder setMinLimit(opi_api.storage.v1.QosLimit value) { * min QoS limits for the controller * * - * .opi_api.storage.v1.QosLimit min_limit = 9 [(.google.api.field_behavior) = OPTIONAL]; + * .opi_api.storage.v1.QosLimit min_limit = 10 [(.google.api.field_behavior) = OPTIONAL]; */ public Builder setMinLimit( opi_api.storage.v1.QosLimit.Builder builderForValue) { @@ -1389,7 +1884,7 @@ public Builder setMinLimit( * min QoS limits for the controller * * - * .opi_api.storage.v1.QosLimit min_limit = 9 [(.google.api.field_behavior) = OPTIONAL]; + * .opi_api.storage.v1.QosLimit min_limit = 10 [(.google.api.field_behavior) = OPTIONAL]; */ public Builder mergeMinLimit(opi_api.storage.v1.QosLimit value) { if (minLimitBuilder_ == null) { @@ -1411,7 +1906,7 @@ public Builder mergeMinLimit(opi_api.storage.v1.QosLimit value) { * min QoS limits for the controller * * - * .opi_api.storage.v1.QosLimit min_limit = 9 [(.google.api.field_behavior) = OPTIONAL]; + * .opi_api.storage.v1.QosLimit min_limit = 10 [(.google.api.field_behavior) = OPTIONAL]; */ public Builder clearMinLimit() { if (minLimitBuilder_ == null) { @@ -1429,7 +1924,7 @@ public Builder clearMinLimit() { * min QoS limits for the controller * * - * .opi_api.storage.v1.QosLimit min_limit = 9 [(.google.api.field_behavior) = OPTIONAL]; + * .opi_api.storage.v1.QosLimit min_limit = 10 [(.google.api.field_behavior) = OPTIONAL]; */ public opi_api.storage.v1.QosLimit.Builder getMinLimitBuilder() { @@ -1441,7 +1936,7 @@ public opi_api.storage.v1.QosLimit.Builder getMinLimitBuilder() { * min QoS limits for the controller * * - * .opi_api.storage.v1.QosLimit min_limit = 9 [(.google.api.field_behavior) = OPTIONAL]; + * .opi_api.storage.v1.QosLimit min_limit = 10 [(.google.api.field_behavior) = OPTIONAL]; */ public opi_api.storage.v1.QosLimitOrBuilder getMinLimitOrBuilder() { if (minLimitBuilder_ != null) { @@ -1456,7 +1951,7 @@ public opi_api.storage.v1.QosLimitOrBuilder getMinLimitOrBuilder() { * min QoS limits for the controller * * - * .opi_api.storage.v1.QosLimit min_limit = 9 [(.google.api.field_behavior) = OPTIONAL]; + * .opi_api.storage.v1.QosLimit min_limit = 10 [(.google.api.field_behavior) = OPTIONAL]; */ private com.google.protobuf.SingleFieldBuilderV3< opi_api.storage.v1.QosLimit, opi_api.storage.v1.QosLimit.Builder, opi_api.storage.v1.QosLimitOrBuilder> @@ -1480,7 +1975,7 @@ public opi_api.storage.v1.QosLimitOrBuilder getMinLimitOrBuilder() { * max QoS limits for the controller * * - * .opi_api.storage.v1.QosLimit max_limit = 10 [(.google.api.field_behavior) = OPTIONAL]; + * .opi_api.storage.v1.QosLimit max_limit = 11 [(.google.api.field_behavior) = OPTIONAL]; * @return Whether the maxLimit field is set. */ public boolean hasMaxLimit() { @@ -1491,7 +1986,7 @@ public boolean hasMaxLimit() { * max QoS limits for the controller * * - * .opi_api.storage.v1.QosLimit max_limit = 10 [(.google.api.field_behavior) = OPTIONAL]; + * .opi_api.storage.v1.QosLimit max_limit = 11 [(.google.api.field_behavior) = OPTIONAL]; * @return The maxLimit. */ public opi_api.storage.v1.QosLimit getMaxLimit() { @@ -1506,7 +2001,7 @@ public opi_api.storage.v1.QosLimit getMaxLimit() { * max QoS limits for the controller * * - * .opi_api.storage.v1.QosLimit max_limit = 10 [(.google.api.field_behavior) = OPTIONAL]; + * .opi_api.storage.v1.QosLimit max_limit = 11 [(.google.api.field_behavior) = OPTIONAL]; */ public Builder setMaxLimit(opi_api.storage.v1.QosLimit value) { if (maxLimitBuilder_ == null) { @@ -1526,7 +2021,7 @@ public Builder setMaxLimit(opi_api.storage.v1.QosLimit value) { * max QoS limits for the controller * * - * .opi_api.storage.v1.QosLimit max_limit = 10 [(.google.api.field_behavior) = OPTIONAL]; + * .opi_api.storage.v1.QosLimit max_limit = 11 [(.google.api.field_behavior) = OPTIONAL]; */ public Builder setMaxLimit( opi_api.storage.v1.QosLimit.Builder builderForValue) { @@ -1544,7 +2039,7 @@ public Builder setMaxLimit( * max QoS limits for the controller * * - * .opi_api.storage.v1.QosLimit max_limit = 10 [(.google.api.field_behavior) = OPTIONAL]; + * .opi_api.storage.v1.QosLimit max_limit = 11 [(.google.api.field_behavior) = OPTIONAL]; */ public Builder mergeMaxLimit(opi_api.storage.v1.QosLimit value) { if (maxLimitBuilder_ == null) { @@ -1566,7 +2061,7 @@ public Builder mergeMaxLimit(opi_api.storage.v1.QosLimit value) { * max QoS limits for the controller * * - * .opi_api.storage.v1.QosLimit max_limit = 10 [(.google.api.field_behavior) = OPTIONAL]; + * .opi_api.storage.v1.QosLimit max_limit = 11 [(.google.api.field_behavior) = OPTIONAL]; */ public Builder clearMaxLimit() { if (maxLimitBuilder_ == null) { @@ -1584,7 +2079,7 @@ public Builder clearMaxLimit() { * max QoS limits for the controller * * - * .opi_api.storage.v1.QosLimit max_limit = 10 [(.google.api.field_behavior) = OPTIONAL]; + * .opi_api.storage.v1.QosLimit max_limit = 11 [(.google.api.field_behavior) = OPTIONAL]; */ public opi_api.storage.v1.QosLimit.Builder getMaxLimitBuilder() { @@ -1596,7 +2091,7 @@ public opi_api.storage.v1.QosLimit.Builder getMaxLimitBuilder() { * max QoS limits for the controller * * - * .opi_api.storage.v1.QosLimit max_limit = 10 [(.google.api.field_behavior) = OPTIONAL]; + * .opi_api.storage.v1.QosLimit max_limit = 11 [(.google.api.field_behavior) = OPTIONAL]; */ public opi_api.storage.v1.QosLimitOrBuilder getMaxLimitOrBuilder() { if (maxLimitBuilder_ != null) { @@ -1611,7 +2106,7 @@ public opi_api.storage.v1.QosLimitOrBuilder getMaxLimitOrBuilder() { * max QoS limits for the controller * * - * .opi_api.storage.v1.QosLimit max_limit = 10 [(.google.api.field_behavior) = OPTIONAL]; + * .opi_api.storage.v1.QosLimit max_limit = 11 [(.google.api.field_behavior) = OPTIONAL]; */ private com.google.protobuf.SingleFieldBuilderV3< opi_api.storage.v1.QosLimit, opi_api.storage.v1.QosLimit.Builder, opi_api.storage.v1.QosLimitOrBuilder> diff --git a/storage/v1alpha1/gen/java/opi_api/storage/v1/NvmeControllerSpecOrBuilder.java b/storage/v1alpha1/gen/java/opi_api/storage/v1/NvmeControllerSpecOrBuilder.java index 7ceaeb27..a2c38b8f 100644 --- a/storage/v1alpha1/gen/java/opi_api/storage/v1/NvmeControllerSpecOrBuilder.java +++ b/storage/v1alpha1/gen/java/opi_api/storage/v1/NvmeControllerSpecOrBuilder.java @@ -30,38 +30,87 @@ public interface NvmeControllerSpecOrBuilder extends /** *
-   * xPU's PCI ID for the controller
+   * transport type
    * 
* - * .opi_api.storage.v1.PciEndpoint pcie_id = 3 [(.google.api.field_behavior) = REQUIRED]; + * .opi_api.storage.v1.NvmeTransportType trtype = 2 [(.google.api.field_behavior) = REQUIRED]; + * @return The enum numeric value on the wire for trtype. + */ + int getTrtypeValue(); + /** + *
+   * transport type
+   * 
+ * + * .opi_api.storage.v1.NvmeTransportType trtype = 2 [(.google.api.field_behavior) = REQUIRED]; + * @return The trtype. + */ + opi_api.storage.v1.NvmeTransportType getTrtype(); + + /** + *
+   * Required for pcie transport type to expose emulated Pcie Nvme controllers to Host
+   * 
+ * + * .opi_api.storage.v1.PciEndpoint pcie_id = 3 [(.google.api.field_behavior) = OPTIONAL]; * @return Whether the pcieId field is set. */ boolean hasPcieId(); /** *
-   * xPU's PCI ID for the controller
+   * Required for pcie transport type to expose emulated Pcie Nvme controllers to Host
    * 
* - * .opi_api.storage.v1.PciEndpoint pcie_id = 3 [(.google.api.field_behavior) = REQUIRED]; + * .opi_api.storage.v1.PciEndpoint pcie_id = 3 [(.google.api.field_behavior) = OPTIONAL]; * @return The pcieId. */ opi_api.storage.v1.PciEndpoint getPcieId(); /** *
-   * xPU's PCI ID for the controller
+   * Required for pcie transport type to expose emulated Pcie Nvme controllers to Host
    * 
* - * .opi_api.storage.v1.PciEndpoint pcie_id = 3 [(.google.api.field_behavior) = REQUIRED]; + * .opi_api.storage.v1.PciEndpoint pcie_id = 3 [(.google.api.field_behavior) = OPTIONAL]; */ opi_api.storage.v1.PciEndpointOrBuilder getPcieIdOrBuilder(); + /** + *
+   * Required for Nvme over fabrics transport types to create
+   * Nvme over Fabrics controllers to expose for example local SSDs over a network
+   * 
+ * + * .opi_api.storage.v1.FabricsEndpoint fabrics_id = 4 [(.google.api.field_behavior) = OPTIONAL]; + * @return Whether the fabricsId field is set. + */ + boolean hasFabricsId(); + /** + *
+   * Required for Nvme over fabrics transport types to create
+   * Nvme over Fabrics controllers to expose for example local SSDs over a network
+   * 
+ * + * .opi_api.storage.v1.FabricsEndpoint fabrics_id = 4 [(.google.api.field_behavior) = OPTIONAL]; + * @return The fabricsId. + */ + opi_api.storage.v1.FabricsEndpoint getFabricsId(); + /** + *
+   * Required for Nvme over fabrics transport types to create
+   * Nvme over Fabrics controllers to expose for example local SSDs over a network
+   * 
+ * + * .opi_api.storage.v1.FabricsEndpoint fabrics_id = 4 [(.google.api.field_behavior) = OPTIONAL]; + */ + opi_api.storage.v1.FabricsEndpointOrBuilder getFabricsIdOrBuilder(); + /** *
    * maximum number of host submission queues allowed.
    * If not set, the xPU will provide a default.
    * 
* - * int32 max_nsq = 4 [(.google.api.field_behavior) = OPTIONAL]; + * int32 max_nsq = 5 [(.google.api.field_behavior) = OPTIONAL]; * @return The maxNsq. */ int getMaxNsq(); @@ -72,7 +121,7 @@ public interface NvmeControllerSpecOrBuilder extends * If not set, the xPU will provide a default. * * - * int32 max_ncq = 5 [(.google.api.field_behavior) = OPTIONAL]; + * int32 max_ncq = 6 [(.google.api.field_behavior) = OPTIONAL]; * @return The maxNcq. */ int getMaxNcq(); @@ -83,7 +132,7 @@ public interface NvmeControllerSpecOrBuilder extends * default value as per spec is 6 * * - * int32 sqes = 6 [(.google.api.field_behavior) = OPTIONAL]; + * int32 sqes = 7 [(.google.api.field_behavior) = OPTIONAL]; * @return The sqes. */ int getSqes(); @@ -94,7 +143,7 @@ public interface NvmeControllerSpecOrBuilder extends * default value as per spec is 4 * * - * int32 cqes = 7 [(.google.api.field_behavior) = OPTIONAL]; + * int32 cqes = 8 [(.google.api.field_behavior) = OPTIONAL]; * @return The cqes. */ int getCqes(); @@ -105,7 +154,7 @@ public interface NvmeControllerSpecOrBuilder extends * the controller. * * - * int32 max_namespaces = 8 [(.google.api.field_behavior) = OPTIONAL]; + * int32 max_namespaces = 9 [(.google.api.field_behavior) = OPTIONAL]; * @return The maxNamespaces. */ int getMaxNamespaces(); @@ -115,7 +164,7 @@ public interface NvmeControllerSpecOrBuilder extends * min QoS limits for the controller * * - * .opi_api.storage.v1.QosLimit min_limit = 9 [(.google.api.field_behavior) = OPTIONAL]; + * .opi_api.storage.v1.QosLimit min_limit = 10 [(.google.api.field_behavior) = OPTIONAL]; * @return Whether the minLimit field is set. */ boolean hasMinLimit(); @@ -124,7 +173,7 @@ public interface NvmeControllerSpecOrBuilder extends * min QoS limits for the controller * * - * .opi_api.storage.v1.QosLimit min_limit = 9 [(.google.api.field_behavior) = OPTIONAL]; + * .opi_api.storage.v1.QosLimit min_limit = 10 [(.google.api.field_behavior) = OPTIONAL]; * @return The minLimit. */ opi_api.storage.v1.QosLimit getMinLimit(); @@ -133,7 +182,7 @@ public interface NvmeControllerSpecOrBuilder extends * min QoS limits for the controller * * - * .opi_api.storage.v1.QosLimit min_limit = 9 [(.google.api.field_behavior) = OPTIONAL]; + * .opi_api.storage.v1.QosLimit min_limit = 10 [(.google.api.field_behavior) = OPTIONAL]; */ opi_api.storage.v1.QosLimitOrBuilder getMinLimitOrBuilder(); @@ -142,7 +191,7 @@ public interface NvmeControllerSpecOrBuilder extends * max QoS limits for the controller * * - * .opi_api.storage.v1.QosLimit max_limit = 10 [(.google.api.field_behavior) = OPTIONAL]; + * .opi_api.storage.v1.QosLimit max_limit = 11 [(.google.api.field_behavior) = OPTIONAL]; * @return Whether the maxLimit field is set. */ boolean hasMaxLimit(); @@ -151,7 +200,7 @@ public interface NvmeControllerSpecOrBuilder extends * max QoS limits for the controller * * - * .opi_api.storage.v1.QosLimit max_limit = 10 [(.google.api.field_behavior) = OPTIONAL]; + * .opi_api.storage.v1.QosLimit max_limit = 11 [(.google.api.field_behavior) = OPTIONAL]; * @return The maxLimit. */ opi_api.storage.v1.QosLimit getMaxLimit(); @@ -160,7 +209,9 @@ public interface NvmeControllerSpecOrBuilder extends * max QoS limits for the controller * * - * .opi_api.storage.v1.QosLimit max_limit = 10 [(.google.api.field_behavior) = OPTIONAL]; + * .opi_api.storage.v1.QosLimit max_limit = 11 [(.google.api.field_behavior) = OPTIONAL]; */ opi_api.storage.v1.QosLimitOrBuilder getMaxLimitOrBuilder(); + + public opi_api.storage.v1.NvmeControllerSpec.EndpointCase getEndpointCase(); } diff --git a/storage/v1alpha1/gen/java/opi_api/storage/v1/NvmeMultipath.java b/storage/v1alpha1/gen/java/opi_api/storage/v1/NvmeMultipath.java index 011ebd8b..abc3a911 100644 --- a/storage/v1alpha1/gen/java/opi_api/storage/v1/NvmeMultipath.java +++ b/storage/v1alpha1/gen/java/opi_api/storage/v1/NvmeMultipath.java @@ -141,7 +141,7 @@ public NvmeMultipath findValueByNumber(int number) { } public static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor() { - return opi_api.storage.v1.BackendNvmeTcpProto.getDescriptor().getEnumTypes().get(2); + return opi_api.storage.v1.BackendNvmeTcpProto.getDescriptor().getEnumTypes().get(0); } private static final NvmeMultipath[] VALUES = values(); diff --git a/storage/v1alpha1/gen/java/opi_api/storage/v1/NvmeTransportType.java b/storage/v1alpha1/gen/java/opi_api/storage/v1/NvmeTransportType.java index 8290e767..0166c38f 100644 --- a/storage/v1alpha1/gen/java/opi_api/storage/v1/NvmeTransportType.java +++ b/storage/v1alpha1/gen/java/opi_api/storage/v1/NvmeTransportType.java @@ -1,5 +1,5 @@ // Generated by the protocol buffer compiler. DO NOT EDIT! -// source: backend_nvme_tcp.proto +// source: opicommon.proto package opi_api.storage.v1; @@ -173,7 +173,7 @@ public NvmeTransportType findValueByNumber(int number) { } public static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor() { - return opi_api.storage.v1.BackendNvmeTcpProto.getDescriptor().getEnumTypes().get(0); + return opi_api.storage.v1.OpiCommonProto.getDescriptor().getEnumTypes().get(1); } private static final NvmeTransportType[] VALUES = values(); diff --git a/storage/v1alpha1/gen/java/opi_api/storage/v1/OpiCommonProto.java b/storage/v1alpha1/gen/java/opi_api/storage/v1/OpiCommonProto.java index 13413199..f8b8c89f 100644 --- a/storage/v1alpha1/gen/java/opi_api/storage/v1/OpiCommonProto.java +++ b/storage/v1alpha1/gen/java/opi_api/storage/v1/OpiCommonProto.java @@ -19,6 +19,11 @@ public static void registerAllExtensions( static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_opi_api_storage_v1_PciEndpoint_fieldAccessorTable; + static final com.google.protobuf.Descriptors.Descriptor + internal_static_opi_api_storage_v1_FabricsEndpoint_descriptor; + static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_opi_api_storage_v1_FabricsEndpoint_fieldAccessorTable; static final com.google.protobuf.Descriptors.Descriptor internal_static_opi_api_storage_v1_VolumeStats_descriptor; static final @@ -45,28 +50,40 @@ public static void registerAllExtensions( "alueB\003\340A\002\022;\n\021physical_function\030\002 \001(\0132\033.g" + "oogle.protobuf.Int32ValueB\003\340A\002\022:\n\020virtua" + "l_function\030\003 \001(\0132\033.google.protobuf.Int32" + - "ValueB\003\340A\002\"\252\002\n\013VolumeStats\022\035\n\020read_bytes" + - "_count\030\001 \001(\005B\003\340A\003\022\033\n\016read_ops_count\030\002 \001(" + - "\005B\003\340A\003\022\036\n\021write_bytes_count\030\003 \001(\005B\003\340A\003\022\034" + - "\n\017write_ops_count\030\004 \001(\005B\003\340A\003\022\036\n\021unmap_by" + - "tes_count\030\005 \001(\005B\003\340A\003\022\034\n\017unmap_ops_count\030" + - "\006 \001(\005B\003\340A\003\022\037\n\022read_latency_ticks\030\007 \001(\005B\003" + - "\340A\003\022 \n\023write_latency_ticks\030\010 \001(\005B\003\340A\003\022 \n" + - "\023unmap_latency_ticks\030\t \001(\005B\003\340A\003\"\273\001\n\010QosL" + - "imit\022\032\n\rrd_iops_kiops\030\001 \001(\003B\003\340A\001\022\032\n\rwr_i" + - "ops_kiops\030\002 \001(\003B\003\340A\001\022\032\n\rrw_iops_kiops\030\003 " + - "\001(\003B\003\340A\001\022\035\n\020rd_bandwidth_mbs\030\004 \001(\003B\003\340A\001\022" + - "\035\n\020wr_bandwidth_mbs\030\005 \001(\003B\003\340A\001\022\035\n\020rw_ban" + - "dwidth_mbs\030\006 \001(\003B\003\340A\001*\367\001\n\016EncryptionType" + - "\022\037\n\033ENCRYPTION_TYPE_UNSPECIFIED\020\000\022\037\n\033ENC" + - "RYPTION_TYPE_AES_CBC_128\020\001\022\037\n\033ENCRYPTION" + - "_TYPE_AES_CBC_192\020\002\022\037\n\033ENCRYPTION_TYPE_A" + - "ES_CBC_256\020\003\022\037\n\033ENCRYPTION_TYPE_AES_XTS_" + - "128\020\004\022\037\n\033ENCRYPTION_TYPE_AES_XTS_192\020\005\022\037" + - "\n\033ENCRYPTION_TYPE_AES_XTS_256\020\006B]\n\022opi_a" + - "pi.storage.v1B\016OpiCommonProtoP\001Z5github." + - "com/opiproject/opi-api/storage/v1alpha1/" + - "gen/gob\006proto3" + "ValueB\003\340A\002\"x\n\017FabricsEndpoint\022\023\n\006traddr\030" + + "\001 \001(\tB\003\340A\002\022\024\n\007trsvcid\030\002 \001(\tB\003\340A\002\022:\n\006adrf" + + "am\030\003 \001(\0162%.opi_api.storage.v1.NvmeAddres" + + "sFamilyB\003\340A\002\"\252\002\n\013VolumeStats\022\035\n\020read_byt" + + "es_count\030\001 \001(\005B\003\340A\003\022\033\n\016read_ops_count\030\002 " + + "\001(\005B\003\340A\003\022\036\n\021write_bytes_count\030\003 \001(\005B\003\340A\003" + + "\022\034\n\017write_ops_count\030\004 \001(\005B\003\340A\003\022\036\n\021unmap_" + + "bytes_count\030\005 \001(\005B\003\340A\003\022\034\n\017unmap_ops_coun" + + "t\030\006 \001(\005B\003\340A\003\022\037\n\022read_latency_ticks\030\007 \001(\005" + + "B\003\340A\003\022 \n\023write_latency_ticks\030\010 \001(\005B\003\340A\003\022" + + " \n\023unmap_latency_ticks\030\t \001(\005B\003\340A\003\"\273\001\n\010Qo" + + "sLimit\022\032\n\rrd_iops_kiops\030\001 \001(\003B\003\340A\001\022\032\n\rwr" + + "_iops_kiops\030\002 \001(\003B\003\340A\001\022\032\n\rrw_iops_kiops\030" + + "\003 \001(\003B\003\340A\001\022\035\n\020rd_bandwidth_mbs\030\004 \001(\003B\003\340A" + + "\001\022\035\n\020wr_bandwidth_mbs\030\005 \001(\003B\003\340A\001\022\035\n\020rw_b" + + "andwidth_mbs\030\006 \001(\003B\003\340A\001*\367\001\n\016EncryptionTy" + + "pe\022\037\n\033ENCRYPTION_TYPE_UNSPECIFIED\020\000\022\037\n\033E" + + "NCRYPTION_TYPE_AES_CBC_128\020\001\022\037\n\033ENCRYPTI" + + "ON_TYPE_AES_CBC_192\020\002\022\037\n\033ENCRYPTION_TYPE" + + "_AES_CBC_256\020\003\022\037\n\033ENCRYPTION_TYPE_AES_XT" + + "S_128\020\004\022\037\n\033ENCRYPTION_TYPE_AES_XTS_192\020\005" + + "\022\037\n\033ENCRYPTION_TYPE_AES_XTS_256\020\006*\264\001\n\021Nv" + + "meTransportType\022#\n\037NVME_TRANSPORT_TYPE_U" + + "NSPECIFIED\020\000\022\025\n\021NVME_TRANSPORT_FC\020\001\022\027\n\023N" + + "VME_TRANSPORT_PCIE\020\002\022\027\n\023NVME_TRANSPORT_R" + + "DMA\020\003\022\026\n\022NVME_TRANSPORT_TCP\020\004\022\031\n\025NVME_TR" + + "ANSPORT_CUSTOM\020\005*\250\001\n\021NvmeAddressFamily\022#" + + "\n\037NVME_ADDRESS_FAMILY_UNSPECIFIED\020\000\022\024\n\020N" + + "VME_ADRFAM_IPV4\020\001\022\024\n\020NVME_ADRFAM_IPV6\020\002\022" + + "\022\n\016NVME_ADRFAM_IB\020\003\022\022\n\016NVME_ADRFAM_FC\020\004\022" + + "\032\n\026NVME_ADRFAM_INTRA_HOST\020\005B]\n\022opi_api.s" + + "torage.v1B\016OpiCommonProtoP\001Z5github.com/" + + "opiproject/opi-api/storage/v1alpha1/gen/" + + "gob\006proto3" }; descriptor = com.google.protobuf.Descriptors.FileDescriptor .internalBuildGeneratedFileFrom(descriptorData, @@ -80,14 +97,20 @@ public static void registerAllExtensions( com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_opi_api_storage_v1_PciEndpoint_descriptor, new java.lang.String[] { "PortId", "PhysicalFunction", "VirtualFunction", }); - internal_static_opi_api_storage_v1_VolumeStats_descriptor = + internal_static_opi_api_storage_v1_FabricsEndpoint_descriptor = getDescriptor().getMessageTypes().get(1); + internal_static_opi_api_storage_v1_FabricsEndpoint_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_opi_api_storage_v1_FabricsEndpoint_descriptor, + new java.lang.String[] { "Traddr", "Trsvcid", "Adrfam", }); + internal_static_opi_api_storage_v1_VolumeStats_descriptor = + getDescriptor().getMessageTypes().get(2); internal_static_opi_api_storage_v1_VolumeStats_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_opi_api_storage_v1_VolumeStats_descriptor, new java.lang.String[] { "ReadBytesCount", "ReadOpsCount", "WriteBytesCount", "WriteOpsCount", "UnmapBytesCount", "UnmapOpsCount", "ReadLatencyTicks", "WriteLatencyTicks", "UnmapLatencyTicks", }); internal_static_opi_api_storage_v1_QosLimit_descriptor = - getDescriptor().getMessageTypes().get(2); + getDescriptor().getMessageTypes().get(3); internal_static_opi_api_storage_v1_QosLimit_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_opi_api_storage_v1_QosLimit_descriptor, diff --git a/storage/v1alpha1/gen/python/backend_nvme_tcp_pb2.py b/storage/v1alpha1/gen/python/backend_nvme_tcp_pb2.py index abdf09e3..95e3b47c 100644 --- a/storage/v1alpha1/gen/python/backend_nvme_tcp_pb2.py +++ b/storage/v1alpha1/gen/python/backend_nvme_tcp_pb2.py @@ -21,7 +21,7 @@ import uuid_pb2 as uuid__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x16\x62\x61\x63kend_nvme_tcp.proto\x12\x12opi_api.storage.v1\x1a\x17google/api/client.proto\x1a\x19google/api/resource.proto\x1a\x1bgoogle/protobuf/empty.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a google/protobuf/field_mask.proto\x1a\x0fopicommon.proto\x1a\nuuid.proto\"\xfe\x02\n\x14NvmeRemoteController\x12@\n\x04name\x18\x01 \x01(\tB2\xe0\x41\x03\xe0\x41\x05\xfa\x41)\n\'opi_api.storage.v1/NvmeRemoteController\x12\x39\n\tmultipath\x18\x02 \x01(\x0e\x32!.opi_api.storage.v1.NvmeMultipathB\x03\xe0\x41\x02\x12\x1c\n\x0fio_queues_count\x18\x03 \x01(\x03\x42\x03\xe0\x41\x01\x12\x17\n\nqueue_size\x18\x04 \x01(\x03\x42\x03\xe0\x41\x01\x12\x33\n\x03tcp\x18\x05 \x01(\x0b\x32!.opi_api.storage.v1.TcpControllerB\x03\xe0\x41\x01:}\xea\x41z\n+storage.opiproject.org/NvmeRemoteController\x12\x1envmeRemoteControllers/{volume}*\x15nvmeRemoteControllers2\x14nvmeRemoteController\"I\n\rTcpController\x12\x12\n\x05hdgst\x18\x01 \x01(\x08\x42\x03\xe0\x41\x01\x12\x12\n\x05\x64\x64gst\x18\x02 \x01(\x08\x42\x03\xe0\x41\x01\x12\x10\n\x03psk\x18\x03 \x01(\x0c\x42\x03\xe0\x41\x01\"\xe5\x02\n\x08NvmePath\x12\x34\n\x04name\x18\x01 \x01(\tB&\xe0\x41\x03\xe0\x41\x05\xfa\x41\x1d\n\x1bopi_api.storage.v1/NvmePath\x12L\n\x13\x63ontroller_name_ref\x18\x02 \x01(\tB/\xe0\x41\x02\xfa\x41)\n\'opi_api.storage.v1/NvmeRemoteController\x12:\n\x06trtype\x18\x03 \x01(\x0e\x32%.opi_api.storage.v1.NvmeTransportTypeB\x03\xe0\x41\x02\x12\x13\n\x06traddr\x18\x04 \x01(\tB\x03\xe0\x41\x02\x12\x35\n\x07\x66\x61\x62rics\x18\x05 \x01(\x0b\x32\x1f.opi_api.storage.v1.FabricsPathB\x03\xe0\x41\x01:M\xea\x41J\n\x1fstorage.opiproject.org/NvmePath\x12\x12nvmePaths/{volume}*\tnvmePaths2\x08nvmePath\"\xc3\x01\n\x0b\x46\x61\x62ricsPath\x12\x14\n\x07trsvcid\x18\x01 \x01(\x03\x42\x03\xe0\x41\x02\x12\x13\n\x06subnqn\x18\x02 \x01(\tB\x03\xe0\x41\x02\x12:\n\x06\x61\x64rfam\x18\x03 \x01(\x0e\x32%.opi_api.storage.v1.NvmeAddressFamilyB\x03\xe0\x41\x02\x12\x1a\n\rsource_traddr\x18\x04 \x01(\tB\x03\xe0\x41\x01\x12\x1b\n\x0esource_trsvcid\x18\x05 \x01(\x03\x42\x03\xe0\x41\x01\x12\x14\n\x07hostnqn\x18\x06 \x01(\tB\x03\xe0\x41\x01\"\x86\x03\n\x13NvmeRemoteNamespace\x12?\n\x04name\x18\x01 \x01(\tB1\xe0\x41\x03\xe0\x41\x05\xfa\x41(\n&opi_api.storage.v1/NvmeRemoteNamespace\x12L\n\x13\x63ontroller_name_ref\x18\x02 \x01(\tB/\xe0\x41\x03\xfa\x41)\n\'opi_api.storage.v1/NvmeRemoteController\x12\x11\n\x04nsid\x18\x03 \x01(\x05\x42\x03\xe0\x41\x03\x12\x12\n\x05nguid\x18\x04 \x01(\tB\x03\xe0\x41\x03\x12\x12\n\x05\x65ui64\x18\x05 \x01(\x03\x42\x03\xe0\x41\x03\x12*\n\x04uuid\x18\x06 \x01(\x0b\x32\x17.opi_api.common.v1.UuidB\x03\xe0\x41\x03:y\xea\x41v\n*storage.opiproject.org/NvmeRemoteNamespace\x12\x1dnvmeRemoteNamespaces/{volume}*\x14nvmeRemoteNamespaces2\x13nvmeRemoteNamespace\"\x9a\x01\n!CreateNvmeRemoteControllerRequest\x12M\n\x16nvme_remote_controller\x18\x01 \x01(\x0b\x32(.opi_api.storage.v1.NvmeRemoteControllerB\x03\xe0\x41\x02\x12&\n\x19nvme_remote_controller_id\x18\x02 \x01(\tB\x03\xe0\x41\x01\"~\n!DeleteNvmeRemoteControllerRequest\x12=\n\x04name\x18\x01 \x01(\tB/\xe0\x41\x02\xfa\x41)\n\'opi_api.storage.v1/NvmeRemoteController\x12\x1a\n\rallow_missing\x18\x02 \x01(\x08\x42\x03\xe0\x41\x01\"\xc4\x01\n!UpdateNvmeRemoteControllerRequest\x12M\n\x16nvme_remote_controller\x18\x01 \x01(\x0b\x32(.opi_api.storage.v1.NvmeRemoteControllerB\x03\xe0\x41\x02\x12\x34\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x03\xe0\x41\x01\x12\x1a\n\rallow_missing\x18\x03 \x01(\x08\x42\x03\xe0\x41\x01\"\x94\x01\n ListNvmeRemoteControllersRequest\x12?\n\x06parent\x18\x01 \x01(\tB/\xe0\x41\x02\xfa\x41)\n\'opi_api.storage.v1/NvmeRemoteController\x12\x16\n\tpage_size\x18\x02 \x01(\x05\x42\x03\xe0\x41\x01\x12\x17\n\npage_token\x18\x03 \x01(\tB\x03\xe0\x41\x01\"\x87\x01\n!ListNvmeRemoteControllersResponse\x12I\n\x17nvme_remote_controllers\x18\x01 \x03(\x0b\x32(.opi_api.storage.v1.NvmeRemoteController\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"_\n\x1eGetNvmeRemoteControllerRequest\x12=\n\x04name\x18\x01 \x01(\tB/\xe0\x41\x02\xfa\x41)\n\'opi_api.storage.v1/NvmeRemoteController\"a\n ResetNvmeRemoteControllerRequest\x12=\n\x04name\x18\x01 \x01(\tB/\xe0\x41\x02\xfa\x41)\n\'opi_api.storage.v1/NvmeRemoteController\"a\n StatsNvmeRemoteControllerRequest\x12=\n\x04name\x18\x01 \x01(\tB/\xe0\x41\x02\xfa\x41)\n\'opi_api.storage.v1/NvmeRemoteController\"S\n!StatsNvmeRemoteControllerResponse\x12.\n\x05stats\x18\x01 \x01(\x0b\x32\x1f.opi_api.storage.v1.VolumeStats\"\x92\x01\n\x1fListNvmeRemoteNamespacesRequest\x12>\n\x06parent\x18\x01 \x01(\tB.\xe0\x41\x02\xfa\x41(\n&opi_api.storage.v1/NvmeRemoteNamespace\x12\x16\n\tpage_size\x18\x02 \x01(\x05\x42\x03\xe0\x41\x01\x12\x17\n\npage_token\x18\x03 \x01(\tB\x03\xe0\x41\x01\"\x84\x01\n ListNvmeRemoteNamespacesResponse\x12G\n\x16nvme_remote_namespaces\x18\x01 \x03(\x0b\x32\'.opi_api.storage.v1.NvmeRemoteNamespace\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"]\n\x1dGetNvmeRemoteNamespaceRequest\x12<\n\x04name\x18\x01 \x01(\tB.\xe0\x41\x02\xfa\x41(\n&opi_api.storage.v1/NvmeRemoteNamespace\"h\n\x15\x43reateNvmePathRequest\x12\x34\n\tnvme_path\x18\x01 \x01(\x0b\x32\x1c.opi_api.storage.v1.NvmePathB\x03\xe0\x41\x02\x12\x19\n\x0cnvme_path_id\x18\x02 \x01(\tB\x03\xe0\x41\x01\"f\n\x15\x44\x65leteNvmePathRequest\x12\x31\n\x04name\x18\x01 \x01(\tB#\xe0\x41\x02\xfa\x41\x1d\n\x1bopi_api.storage.v1/NvmePath\x12\x1a\n\rallow_missing\x18\x02 \x01(\x08\x42\x03\xe0\x41\x01\"\x9f\x01\n\x15UpdateNvmePathRequest\x12\x34\n\tnvme_path\x18\x01 \x01(\x0b\x32\x1c.opi_api.storage.v1.NvmePathB\x03\xe0\x41\x02\x12\x34\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x03\xe0\x41\x01\x12\x1a\n\rallow_missing\x18\x03 \x01(\x08\x42\x03\xe0\x41\x01\"|\n\x14ListNvmePathsRequest\x12\x33\n\x06parent\x18\x01 \x01(\tB#\xe0\x41\x02\xfa\x41\x1d\n\x1bopi_api.storage.v1/NvmePath\x12\x16\n\tpage_size\x18\x02 \x01(\x05\x42\x03\xe0\x41\x01\x12\x17\n\npage_token\x18\x03 \x01(\tB\x03\xe0\x41\x01\"b\n\x15ListNvmePathsResponse\x12\x30\n\nnvme_paths\x18\x01 \x03(\x0b\x32\x1c.opi_api.storage.v1.NvmePath\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"G\n\x12GetNvmePathRequest\x12\x31\n\x04name\x18\x01 \x01(\tB#\xe0\x41\x02\xfa\x41\x1d\n\x1bopi_api.storage.v1/NvmePath\"I\n\x14StatsNvmePathRequest\x12\x31\n\x04name\x18\x01 \x01(\tB#\xe0\x41\x02\xfa\x41\x1d\n\x1bopi_api.storage.v1/NvmePath\"G\n\x15StatsNvmePathResponse\x12.\n\x05stats\x18\x01 \x01(\x0b\x32\x1f.opi_api.storage.v1.VolumeStats*\xb4\x01\n\x11NvmeTransportType\x12#\n\x1fNVME_TRANSPORT_TYPE_UNSPECIFIED\x10\x00\x12\x15\n\x11NVME_TRANSPORT_FC\x10\x01\x12\x17\n\x13NVME_TRANSPORT_PCIE\x10\x02\x12\x17\n\x13NVME_TRANSPORT_RDMA\x10\x03\x12\x16\n\x12NVME_TRANSPORT_TCP\x10\x04\x12\x19\n\x15NVME_TRANSPORT_CUSTOM\x10\x05*\xa8\x01\n\x11NvmeAddressFamily\x12#\n\x1fNVME_ADDRESS_FAMILY_UNSPECIFIED\x10\x00\x12\x14\n\x10NVME_ADRFAM_IPV4\x10\x01\x12\x14\n\x10NVME_ADRFAM_IPV6\x10\x02\x12\x12\n\x0eNVME_ADRFAM_IB\x10\x03\x12\x12\n\x0eNVME_ADRFAM_FC\x10\x04\x12\x1a\n\x16NVME_ADRFAM_INTRA_HOST\x10\x05*\x86\x01\n\rNvmeMultipath\x12\x1e\n\x1aNVME_MULTIPATH_UNSPECIFIED\x10\x00\x12\x1a\n\x16NVME_MULTIPATH_DISABLE\x10\x01\x12\x1b\n\x17NVME_MULTIPATH_FAILOVER\x10\x02\x12\x1c\n\x18NVME_MULTIPATH_MULTIPATH\x10\x03\x32\xb2\x14\n\x1bNvmeRemoteControllerService\x12\xeb\x01\n\x1a\x43reateNvmeRemoteController\x12\x35.opi_api.storage.v1.CreateNvmeRemoteControllerRequest\x1a(.opi_api.storage.v1.NvmeRemoteController\"l\x82\xd3\xe4\x93\x02\x33\"\x19/v1/nvmeRemoteControllers:\x16nvme_remote_controller\xda\x41\x30nvme_remote_controller,nvme_remote_controller_id\x12\x9e\x01\n\x1a\x44\x65leteNvmeRemoteController\x12\x35.opi_api.storage.v1.DeleteNvmeRemoteControllerRequest\x1a\x16.google.protobuf.Empty\"1\x82\xd3\xe4\x93\x02$*\"/v1/{name=nvmeRemoteControllers/*}\xda\x41\x04name\x12\xfd\x01\n\x1aUpdateNvmeRemoteController\x12\x35.opi_api.storage.v1.UpdateNvmeRemoteControllerRequest\x1a(.opi_api.storage.v1.NvmeRemoteController\"~\x82\xd3\xe4\x93\x02S29/v1/{nvme_remote_controller.name=nvmeRemoteControllers/*}:\x16nvme_remote_controller\xda\x41\"nvme_remote_controller,update_mask\x12\xb2\x01\n\x19ListNvmeRemoteControllers\x12\x34.opi_api.storage.v1.ListNvmeRemoteControllersRequest\x1a\x35.opi_api.storage.v1.ListNvmeRemoteControllersResponse\"(\x82\xd3\xe4\x93\x02\x19\x12\x17/v1/{parent=subsystems}\xda\x41\x06parent\x12\xaa\x01\n\x17GetNvmeRemoteController\x12\x32.opi_api.storage.v1.GetNvmeRemoteControllerRequest\x1a(.opi_api.storage.v1.NvmeRemoteController\"1\x82\xd3\xe4\x93\x02$\x12\"/v1/{name=nvmeRemoteControllers/*}\xda\x41\x04name\x12\xa5\x01\n\x19ResetNvmeRemoteController\x12\x34.opi_api.storage.v1.ResetNvmeRemoteControllerRequest\x1a\x16.google.protobuf.Empty\":\x82\xd3\xe4\x93\x02-\"(/v1/{name=nvmeRemoteControllers/*}:reset:\x01*\xda\x41\x04name\x12\xc1\x01\n\x19StatsNvmeRemoteController\x12\x34.opi_api.storage.v1.StatsNvmeRemoteControllerRequest\x1a\x35.opi_api.storage.v1.StatsNvmeRemoteControllerResponse\"7\x82\xd3\xe4\x93\x02*\x12(/v1/{name=nvmeRemoteControllers/*}:stats\xda\x41\x04name\x12\xaf\x01\n\x18ListNvmeRemoteNamespaces\x12\x33.opi_api.storage.v1.ListNvmeRemoteNamespacesRequest\x1a\x34.opi_api.storage.v1.ListNvmeRemoteNamespacesResponse\"(\x82\xd3\xe4\x93\x02\x19\x12\x17/v1/{parent=subsystems}\xda\x41\x06parent\x12\xa6\x01\n\x16GetNvmeRemoteNamespace\x12\x31.opi_api.storage.v1.GetNvmeRemoteNamespaceRequest\x1a\'.opi_api.storage.v1.NvmeRemoteNamespace\"0\x82\xd3\xe4\x93\x02#\x12!/v1/{name=nvmeRemoteNamespaces/*}\xda\x41\x04name\x12\x94\x01\n\x0e\x43reateNvmePath\x12).opi_api.storage.v1.CreateNvmePathRequest\x1a\x1c.opi_api.storage.v1.NvmePath\"9\x82\xd3\xe4\x93\x02\x1a\"\r/v1/nvmePaths:\tnvme_path\xda\x41\x16nvme_path,nvme_path_id\x12z\n\x0e\x44\x65leteNvmePath\x12).opi_api.storage.v1.DeleteNvmePathRequest\x1a\x16.google.protobuf.Empty\"%\x82\xd3\xe4\x93\x02\x18*\x16/v1/{name=nvmePaths/*}\xda\x41\x04name\x12\xa6\x01\n\x0eUpdateNvmePath\x12).opi_api.storage.v1.UpdateNvmePathRequest\x1a\x1c.opi_api.storage.v1.NvmePath\"K\x82\xd3\xe4\x93\x02-2 /v1/{nvme_path.name=nvmePaths/*}:\tnvme_path\xda\x41\x15nvme_path,update_mask\x12\x8e\x01\n\rListNvmePaths\x12(.opi_api.storage.v1.ListNvmePathsRequest\x1a).opi_api.storage.v1.ListNvmePathsResponse\"(\x82\xd3\xe4\x93\x02\x19\x12\x17/v1/{parent=subsystems}\xda\x41\x06parent\x12z\n\x0bGetNvmePath\x12&.opi_api.storage.v1.GetNvmePathRequest\x1a\x1c.opi_api.storage.v1.NvmePath\"%\x82\xd3\xe4\x93\x02\x18\x12\x16/v1/{name=nvmePaths/*}\xda\x41\x04name\x12\x91\x01\n\rStatsNvmePath\x12(.opi_api.storage.v1.StatsNvmePathRequest\x1a).opi_api.storage.v1.StatsNvmePathResponse\"+\x82\xd3\xe4\x93\x02\x1e\x12\x1c/v1/{name=nvmePaths/*}:stats\xda\x41\x04nameBb\n\x12opi_api.storage.v1B\x13\x42\x61\x63kendNvmeTcpProtoP\x01Z5github.com/opiproject/opi-api/storage/v1alpha1/gen/gob\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x16\x62\x61\x63kend_nvme_tcp.proto\x12\x12opi_api.storage.v1\x1a\x17google/api/client.proto\x1a\x19google/api/resource.proto\x1a\x1bgoogle/protobuf/empty.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a google/protobuf/field_mask.proto\x1a\x0fopicommon.proto\x1a\nuuid.proto\"\xfe\x02\n\x14NvmeRemoteController\x12@\n\x04name\x18\x01 \x01(\tB2\xe0\x41\x03\xe0\x41\x05\xfa\x41)\n\'opi_api.storage.v1/NvmeRemoteController\x12\x39\n\tmultipath\x18\x02 \x01(\x0e\x32!.opi_api.storage.v1.NvmeMultipathB\x03\xe0\x41\x02\x12\x1c\n\x0fio_queues_count\x18\x03 \x01(\x03\x42\x03\xe0\x41\x01\x12\x17\n\nqueue_size\x18\x04 \x01(\x03\x42\x03\xe0\x41\x01\x12\x33\n\x03tcp\x18\x05 \x01(\x0b\x32!.opi_api.storage.v1.TcpControllerB\x03\xe0\x41\x01:}\xea\x41z\n+storage.opiproject.org/NvmeRemoteController\x12\x1envmeRemoteControllers/{volume}*\x15nvmeRemoteControllers2\x14nvmeRemoteController\"I\n\rTcpController\x12\x12\n\x05hdgst\x18\x01 \x01(\x08\x42\x03\xe0\x41\x01\x12\x12\n\x05\x64\x64gst\x18\x02 \x01(\x08\x42\x03\xe0\x41\x01\x12\x10\n\x03psk\x18\x03 \x01(\x0c\x42\x03\xe0\x41\x01\"\xe5\x02\n\x08NvmePath\x12\x34\n\x04name\x18\x01 \x01(\tB&\xe0\x41\x03\xe0\x41\x05\xfa\x41\x1d\n\x1bopi_api.storage.v1/NvmePath\x12L\n\x13\x63ontroller_name_ref\x18\x02 \x01(\tB/\xe0\x41\x02\xfa\x41)\n\'opi_api.storage.v1/NvmeRemoteController\x12:\n\x06trtype\x18\x03 \x01(\x0e\x32%.opi_api.storage.v1.NvmeTransportTypeB\x03\xe0\x41\x02\x12\x13\n\x06traddr\x18\x04 \x01(\tB\x03\xe0\x41\x02\x12\x35\n\x07\x66\x61\x62rics\x18\x05 \x01(\x0b\x32\x1f.opi_api.storage.v1.FabricsPathB\x03\xe0\x41\x01:M\xea\x41J\n\x1fstorage.opiproject.org/NvmePath\x12\x12nvmePaths/{volume}*\tnvmePaths2\x08nvmePath\"\xc3\x01\n\x0b\x46\x61\x62ricsPath\x12\x14\n\x07trsvcid\x18\x01 \x01(\x03\x42\x03\xe0\x41\x02\x12\x13\n\x06subnqn\x18\x02 \x01(\tB\x03\xe0\x41\x02\x12:\n\x06\x61\x64rfam\x18\x03 \x01(\x0e\x32%.opi_api.storage.v1.NvmeAddressFamilyB\x03\xe0\x41\x02\x12\x1a\n\rsource_traddr\x18\x04 \x01(\tB\x03\xe0\x41\x01\x12\x1b\n\x0esource_trsvcid\x18\x05 \x01(\x03\x42\x03\xe0\x41\x01\x12\x14\n\x07hostnqn\x18\x06 \x01(\tB\x03\xe0\x41\x01\"\x86\x03\n\x13NvmeRemoteNamespace\x12?\n\x04name\x18\x01 \x01(\tB1\xe0\x41\x03\xe0\x41\x05\xfa\x41(\n&opi_api.storage.v1/NvmeRemoteNamespace\x12L\n\x13\x63ontroller_name_ref\x18\x02 \x01(\tB/\xe0\x41\x03\xfa\x41)\n\'opi_api.storage.v1/NvmeRemoteController\x12\x11\n\x04nsid\x18\x03 \x01(\x05\x42\x03\xe0\x41\x03\x12\x12\n\x05nguid\x18\x04 \x01(\tB\x03\xe0\x41\x03\x12\x12\n\x05\x65ui64\x18\x05 \x01(\x03\x42\x03\xe0\x41\x03\x12*\n\x04uuid\x18\x06 \x01(\x0b\x32\x17.opi_api.common.v1.UuidB\x03\xe0\x41\x03:y\xea\x41v\n*storage.opiproject.org/NvmeRemoteNamespace\x12\x1dnvmeRemoteNamespaces/{volume}*\x14nvmeRemoteNamespaces2\x13nvmeRemoteNamespace\"\x9a\x01\n!CreateNvmeRemoteControllerRequest\x12M\n\x16nvme_remote_controller\x18\x01 \x01(\x0b\x32(.opi_api.storage.v1.NvmeRemoteControllerB\x03\xe0\x41\x02\x12&\n\x19nvme_remote_controller_id\x18\x02 \x01(\tB\x03\xe0\x41\x01\"~\n!DeleteNvmeRemoteControllerRequest\x12=\n\x04name\x18\x01 \x01(\tB/\xe0\x41\x02\xfa\x41)\n\'opi_api.storage.v1/NvmeRemoteController\x12\x1a\n\rallow_missing\x18\x02 \x01(\x08\x42\x03\xe0\x41\x01\"\xc4\x01\n!UpdateNvmeRemoteControllerRequest\x12M\n\x16nvme_remote_controller\x18\x01 \x01(\x0b\x32(.opi_api.storage.v1.NvmeRemoteControllerB\x03\xe0\x41\x02\x12\x34\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x03\xe0\x41\x01\x12\x1a\n\rallow_missing\x18\x03 \x01(\x08\x42\x03\xe0\x41\x01\"\x94\x01\n ListNvmeRemoteControllersRequest\x12?\n\x06parent\x18\x01 \x01(\tB/\xe0\x41\x02\xfa\x41)\n\'opi_api.storage.v1/NvmeRemoteController\x12\x16\n\tpage_size\x18\x02 \x01(\x05\x42\x03\xe0\x41\x01\x12\x17\n\npage_token\x18\x03 \x01(\tB\x03\xe0\x41\x01\"\x87\x01\n!ListNvmeRemoteControllersResponse\x12I\n\x17nvme_remote_controllers\x18\x01 \x03(\x0b\x32(.opi_api.storage.v1.NvmeRemoteController\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"_\n\x1eGetNvmeRemoteControllerRequest\x12=\n\x04name\x18\x01 \x01(\tB/\xe0\x41\x02\xfa\x41)\n\'opi_api.storage.v1/NvmeRemoteController\"a\n ResetNvmeRemoteControllerRequest\x12=\n\x04name\x18\x01 \x01(\tB/\xe0\x41\x02\xfa\x41)\n\'opi_api.storage.v1/NvmeRemoteController\"a\n StatsNvmeRemoteControllerRequest\x12=\n\x04name\x18\x01 \x01(\tB/\xe0\x41\x02\xfa\x41)\n\'opi_api.storage.v1/NvmeRemoteController\"S\n!StatsNvmeRemoteControllerResponse\x12.\n\x05stats\x18\x01 \x01(\x0b\x32\x1f.opi_api.storage.v1.VolumeStats\"\x92\x01\n\x1fListNvmeRemoteNamespacesRequest\x12>\n\x06parent\x18\x01 \x01(\tB.\xe0\x41\x02\xfa\x41(\n&opi_api.storage.v1/NvmeRemoteNamespace\x12\x16\n\tpage_size\x18\x02 \x01(\x05\x42\x03\xe0\x41\x01\x12\x17\n\npage_token\x18\x03 \x01(\tB\x03\xe0\x41\x01\"\x84\x01\n ListNvmeRemoteNamespacesResponse\x12G\n\x16nvme_remote_namespaces\x18\x01 \x03(\x0b\x32\'.opi_api.storage.v1.NvmeRemoteNamespace\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"]\n\x1dGetNvmeRemoteNamespaceRequest\x12<\n\x04name\x18\x01 \x01(\tB.\xe0\x41\x02\xfa\x41(\n&opi_api.storage.v1/NvmeRemoteNamespace\"h\n\x15\x43reateNvmePathRequest\x12\x34\n\tnvme_path\x18\x01 \x01(\x0b\x32\x1c.opi_api.storage.v1.NvmePathB\x03\xe0\x41\x02\x12\x19\n\x0cnvme_path_id\x18\x02 \x01(\tB\x03\xe0\x41\x01\"f\n\x15\x44\x65leteNvmePathRequest\x12\x31\n\x04name\x18\x01 \x01(\tB#\xe0\x41\x02\xfa\x41\x1d\n\x1bopi_api.storage.v1/NvmePath\x12\x1a\n\rallow_missing\x18\x02 \x01(\x08\x42\x03\xe0\x41\x01\"\x9f\x01\n\x15UpdateNvmePathRequest\x12\x34\n\tnvme_path\x18\x01 \x01(\x0b\x32\x1c.opi_api.storage.v1.NvmePathB\x03\xe0\x41\x02\x12\x34\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x03\xe0\x41\x01\x12\x1a\n\rallow_missing\x18\x03 \x01(\x08\x42\x03\xe0\x41\x01\"|\n\x14ListNvmePathsRequest\x12\x33\n\x06parent\x18\x01 \x01(\tB#\xe0\x41\x02\xfa\x41\x1d\n\x1bopi_api.storage.v1/NvmePath\x12\x16\n\tpage_size\x18\x02 \x01(\x05\x42\x03\xe0\x41\x01\x12\x17\n\npage_token\x18\x03 \x01(\tB\x03\xe0\x41\x01\"b\n\x15ListNvmePathsResponse\x12\x30\n\nnvme_paths\x18\x01 \x03(\x0b\x32\x1c.opi_api.storage.v1.NvmePath\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"G\n\x12GetNvmePathRequest\x12\x31\n\x04name\x18\x01 \x01(\tB#\xe0\x41\x02\xfa\x41\x1d\n\x1bopi_api.storage.v1/NvmePath\"I\n\x14StatsNvmePathRequest\x12\x31\n\x04name\x18\x01 \x01(\tB#\xe0\x41\x02\xfa\x41\x1d\n\x1bopi_api.storage.v1/NvmePath\"G\n\x15StatsNvmePathResponse\x12.\n\x05stats\x18\x01 \x01(\x0b\x32\x1f.opi_api.storage.v1.VolumeStats*\x86\x01\n\rNvmeMultipath\x12\x1e\n\x1aNVME_MULTIPATH_UNSPECIFIED\x10\x00\x12\x1a\n\x16NVME_MULTIPATH_DISABLE\x10\x01\x12\x1b\n\x17NVME_MULTIPATH_FAILOVER\x10\x02\x12\x1c\n\x18NVME_MULTIPATH_MULTIPATH\x10\x03\x32\xb2\x14\n\x1bNvmeRemoteControllerService\x12\xeb\x01\n\x1a\x43reateNvmeRemoteController\x12\x35.opi_api.storage.v1.CreateNvmeRemoteControllerRequest\x1a(.opi_api.storage.v1.NvmeRemoteController\"l\x82\xd3\xe4\x93\x02\x33\"\x19/v1/nvmeRemoteControllers:\x16nvme_remote_controller\xda\x41\x30nvme_remote_controller,nvme_remote_controller_id\x12\x9e\x01\n\x1a\x44\x65leteNvmeRemoteController\x12\x35.opi_api.storage.v1.DeleteNvmeRemoteControllerRequest\x1a\x16.google.protobuf.Empty\"1\x82\xd3\xe4\x93\x02$*\"/v1/{name=nvmeRemoteControllers/*}\xda\x41\x04name\x12\xfd\x01\n\x1aUpdateNvmeRemoteController\x12\x35.opi_api.storage.v1.UpdateNvmeRemoteControllerRequest\x1a(.opi_api.storage.v1.NvmeRemoteController\"~\x82\xd3\xe4\x93\x02S29/v1/{nvme_remote_controller.name=nvmeRemoteControllers/*}:\x16nvme_remote_controller\xda\x41\"nvme_remote_controller,update_mask\x12\xb2\x01\n\x19ListNvmeRemoteControllers\x12\x34.opi_api.storage.v1.ListNvmeRemoteControllersRequest\x1a\x35.opi_api.storage.v1.ListNvmeRemoteControllersResponse\"(\x82\xd3\xe4\x93\x02\x19\x12\x17/v1/{parent=subsystems}\xda\x41\x06parent\x12\xaa\x01\n\x17GetNvmeRemoteController\x12\x32.opi_api.storage.v1.GetNvmeRemoteControllerRequest\x1a(.opi_api.storage.v1.NvmeRemoteController\"1\x82\xd3\xe4\x93\x02$\x12\"/v1/{name=nvmeRemoteControllers/*}\xda\x41\x04name\x12\xa5\x01\n\x19ResetNvmeRemoteController\x12\x34.opi_api.storage.v1.ResetNvmeRemoteControllerRequest\x1a\x16.google.protobuf.Empty\":\x82\xd3\xe4\x93\x02-\"(/v1/{name=nvmeRemoteControllers/*}:reset:\x01*\xda\x41\x04name\x12\xc1\x01\n\x19StatsNvmeRemoteController\x12\x34.opi_api.storage.v1.StatsNvmeRemoteControllerRequest\x1a\x35.opi_api.storage.v1.StatsNvmeRemoteControllerResponse\"7\x82\xd3\xe4\x93\x02*\x12(/v1/{name=nvmeRemoteControllers/*}:stats\xda\x41\x04name\x12\xaf\x01\n\x18ListNvmeRemoteNamespaces\x12\x33.opi_api.storage.v1.ListNvmeRemoteNamespacesRequest\x1a\x34.opi_api.storage.v1.ListNvmeRemoteNamespacesResponse\"(\x82\xd3\xe4\x93\x02\x19\x12\x17/v1/{parent=subsystems}\xda\x41\x06parent\x12\xa6\x01\n\x16GetNvmeRemoteNamespace\x12\x31.opi_api.storage.v1.GetNvmeRemoteNamespaceRequest\x1a\'.opi_api.storage.v1.NvmeRemoteNamespace\"0\x82\xd3\xe4\x93\x02#\x12!/v1/{name=nvmeRemoteNamespaces/*}\xda\x41\x04name\x12\x94\x01\n\x0e\x43reateNvmePath\x12).opi_api.storage.v1.CreateNvmePathRequest\x1a\x1c.opi_api.storage.v1.NvmePath\"9\x82\xd3\xe4\x93\x02\x1a\"\r/v1/nvmePaths:\tnvme_path\xda\x41\x16nvme_path,nvme_path_id\x12z\n\x0e\x44\x65leteNvmePath\x12).opi_api.storage.v1.DeleteNvmePathRequest\x1a\x16.google.protobuf.Empty\"%\x82\xd3\xe4\x93\x02\x18*\x16/v1/{name=nvmePaths/*}\xda\x41\x04name\x12\xa6\x01\n\x0eUpdateNvmePath\x12).opi_api.storage.v1.UpdateNvmePathRequest\x1a\x1c.opi_api.storage.v1.NvmePath\"K\x82\xd3\xe4\x93\x02-2 /v1/{nvme_path.name=nvmePaths/*}:\tnvme_path\xda\x41\x15nvme_path,update_mask\x12\x8e\x01\n\rListNvmePaths\x12(.opi_api.storage.v1.ListNvmePathsRequest\x1a).opi_api.storage.v1.ListNvmePathsResponse\"(\x82\xd3\xe4\x93\x02\x19\x12\x17/v1/{parent=subsystems}\xda\x41\x06parent\x12z\n\x0bGetNvmePath\x12&.opi_api.storage.v1.GetNvmePathRequest\x1a\x1c.opi_api.storage.v1.NvmePath\"%\x82\xd3\xe4\x93\x02\x18\x12\x16/v1/{name=nvmePaths/*}\xda\x41\x04name\x12\x91\x01\n\rStatsNvmePath\x12(.opi_api.storage.v1.StatsNvmePathRequest\x1a).opi_api.storage.v1.StatsNvmePathResponse\"+\x82\xd3\xe4\x93\x02\x1e\x12\x1c/v1/{name=nvmePaths/*}:stats\xda\x41\x04nameBb\n\x12opi_api.storage.v1B\x13\x42\x61\x63kendNvmeTcpProtoP\x01Z5github.com/opiproject/opi-api/storage/v1alpha1/gen/gob\x06proto3') _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals()) _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'backend_nvme_tcp_pb2', globals()) @@ -173,12 +173,8 @@ _NVMEREMOTECONTROLLERSERVICE.methods_by_name['GetNvmePath']._serialized_options = b'\202\323\344\223\002\030\022\026/v1/{name=nvmePaths/*}\332A\004name' _NVMEREMOTECONTROLLERSERVICE.methods_by_name['StatsNvmePath']._options = None _NVMEREMOTECONTROLLERSERVICE.methods_by_name['StatsNvmePath']._serialized_options = b'\202\323\344\223\002\036\022\034/v1/{name=nvmePaths/*}:stats\332A\004name' - _NVMETRANSPORTTYPE._serialized_start=4016 - _NVMETRANSPORTTYPE._serialized_end=4196 - _NVMEADDRESSFAMILY._serialized_start=4199 - _NVMEADDRESSFAMILY._serialized_end=4367 - _NVMEMULTIPATH._serialized_start=4370 - _NVMEMULTIPATH._serialized_end=4504 + _NVMEMULTIPATH._serialized_start=4016 + _NVMEMULTIPATH._serialized_end=4150 _NVMEREMOTECONTROLLER._serialized_start=254 _NVMEREMOTECONTROLLER._serialized_end=636 _TCPCONTROLLER._serialized_start=638 @@ -229,6 +225,6 @@ _STATSNVMEPATHREQUEST._serialized_end=3940 _STATSNVMEPATHRESPONSE._serialized_start=3942 _STATSNVMEPATHRESPONSE._serialized_end=4013 - _NVMEREMOTECONTROLLERSERVICE._serialized_start=4507 - _NVMEREMOTECONTROLLERSERVICE._serialized_end=7117 + _NVMEREMOTECONTROLLERSERVICE._serialized_start=4153 + _NVMEREMOTECONTROLLERSERVICE._serialized_end=6763 # @@protoc_insertion_point(module_scope) diff --git a/storage/v1alpha1/gen/python/frontend_nvme_pcie_pb2.py b/storage/v1alpha1/gen/python/frontend_nvme_pcie_pb2.py index c845aec2..9a2dab63 100644 --- a/storage/v1alpha1/gen/python/frontend_nvme_pcie_pb2.py +++ b/storage/v1alpha1/gen/python/frontend_nvme_pcie_pb2.py @@ -21,7 +21,7 @@ from google.protobuf import field_mask_pb2 as google_dot_protobuf_dot_field__mask__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x18\x66rontend_nvme_pcie.proto\x12\x12opi_api.storage.v1\x1a\x0fopicommon.proto\x1a\nuuid.proto\x1a\x17google/api/client.proto\x1a\x19google/api/resource.proto\x1a\x1bgoogle/protobuf/empty.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a google/protobuf/field_mask.proto\"\xa8\x02\n\rNvmeSubsystem\x12\x39\n\x04name\x18\x01 \x01(\tB+\xe0\x41\x03\xe0\x41\x05\xfa\x41\"\n opi_api.storage.v1/NvmeSubsystem\x12\x38\n\x04spec\x18\x02 \x01(\x0b\x32%.opi_api.storage.v1.NvmeSubsystemSpecB\x03\xe0\x41\x02\x12<\n\x06status\x18\x03 \x01(\x0b\x32\'.opi_api.storage.v1.NvmeSubsystemStatusB\x03\xe0\x41\x03:d\xea\x41\x61\n$storage.opiproject.org/NvmeSubsystem\x12\x1anvmeSubsystems/{subsystem}*\x0envmeSubsystems2\rnvmeSubsystem\"y\n\x11NvmeSubsystemSpec\x12\x10\n\x03nqn\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12\x1a\n\rserial_number\x18\x02 \x01(\tB\x03\xe0\x41\x01\x12\x19\n\x0cmodel_number\x18\x03 \x01(\tB\x03\xe0\x41\x01\x12\x1b\n\x0emax_namespaces\x18\x04 \x01(\x03\x42\x03\xe0\x41\x01\"L\n\x13NvmeSubsystemStatus\x12\x1e\n\x11\x66irmware_revision\x18\x01 \x01(\tB\x03\xe0\x41\x03\x12\x15\n\x08\x66ru_guid\x18\x02 \x01(\x0c\x42\x03\xe0\x41\x03\"\xce\x02\n\x0eNvmeController\x12:\n\x04name\x18\x01 \x01(\tB,\xe0\x41\x03\xe0\x41\x05\xfa\x41#\n!opi_api.storage.v1/NvmeController\x12\x39\n\x04spec\x18\x02 \x01(\x0b\x32&.opi_api.storage.v1.NvmeControllerSpecB\x03\xe0\x41\x02\x12=\n\x06status\x18\x03 \x01(\x0b\x32(.opi_api.storage.v1.NvmeControllerStatusB\x03\xe0\x41\x03:\x85\x01\xea\x41\x81\x01\n%storage.opiproject.org/NvmeController\x12\x37nvmeSubsystems/{subsystem}/nvmeControllers/{controller}*\x0fnvmeControllers2\x0envmeController\"\xe3\x02\n\x12NvmeControllerSpec\x12$\n\x12nvme_controller_id\x18\x01 \x01(\x05\x42\x03\xe0\x41\x01H\x00\x88\x01\x01\x12\x35\n\x07pcie_id\x18\x03 \x01(\x0b\x32\x1f.opi_api.storage.v1.PciEndpointB\x03\xe0\x41\x02\x12\x14\n\x07max_nsq\x18\x04 \x01(\x05\x42\x03\xe0\x41\x01\x12\x14\n\x07max_ncq\x18\x05 \x01(\x05\x42\x03\xe0\x41\x01\x12\x11\n\x04sqes\x18\x06 \x01(\x05\x42\x03\xe0\x41\x01\x12\x11\n\x04\x63qes\x18\x07 \x01(\x05\x42\x03\xe0\x41\x01\x12\x1b\n\x0emax_namespaces\x18\x08 \x01(\x05\x42\x03\xe0\x41\x01\x12\x34\n\tmin_limit\x18\t \x01(\x0b\x32\x1c.opi_api.storage.v1.QosLimitB\x03\xe0\x41\x01\x12\x34\n\tmax_limit\x18\n \x01(\x0b\x32\x1c.opi_api.storage.v1.QosLimitB\x03\xe0\x41\x01\x42\x15\n\x13_nvme_controller_id\"+\n\x14NvmeControllerStatus\x12\x13\n\x06\x61\x63tive\x18\x01 \x01(\x08\x42\x03\xe0\x41\x03\"\xc3\x02\n\rNvmeNamespace\x12\x39\n\x04name\x18\x01 \x01(\tB+\xe0\x41\x03\xe0\x41\x05\xfa\x41\"\n opi_api.storage.v1/NvmeNamespace\x12\x38\n\x04spec\x18\x02 \x01(\x0b\x32%.opi_api.storage.v1.NvmeNamespaceSpecB\x03\xe0\x41\x02\x12<\n\x06status\x18\x03 \x01(\x0b\x32\'.opi_api.storage.v1.NvmeNamespaceStatusB\x03\xe0\x41\x03:\x7f\xea\x41|\n$storage.opiproject.org/NvmeNamespace\x12\x35nvmeSubsystems/{subsystem}/nvmeNamespaces/{namespace}*\x0envmeNamespaces2\rnvmeNamespace\"\x9d\x01\n\x11NvmeNamespaceSpec\x12\x16\n\thost_nsid\x18\x02 \x01(\x05\x42\x03\xe0\x41\x01\x12\x12\n\x05nguid\x18\x03 \x01(\tB\x03\xe0\x41\x01\x12\x12\n\x05\x65ui64\x18\x04 \x01(\x03\x42\x03\xe0\x41\x01\x12*\n\x04uuid\x18\x05 \x01(\x0b\x32\x17.opi_api.common.v1.UuidB\x03\xe0\x41\x01\x12\x1c\n\x0fvolume_name_ref\x18\x06 \x01(\tB\x03\xe0\x41\x02\"\xa4\x01\n\x13NvmeNamespaceStatus\x12\x41\n\tpci_state\x18\x01 \x01(\x0e\x32).opi_api.storage.v1.NvmeNamespacePciStateB\x03\xe0\x41\x03\x12J\n\x0epci_oper_state\x18\x02 \x01(\x0e\x32-.opi_api.storage.v1.NvmeNamespacePciOperStateB\x03\xe0\x41\x03\"|\n\x1a\x43reateNvmeSubsystemRequest\x12>\n\x0envme_subsystem\x18\x01 \x01(\x0b\x32!.opi_api.storage.v1.NvmeSubsystemB\x03\xe0\x41\x02\x12\x1e\n\x11nvme_subsystem_id\x18\x02 \x01(\tB\x03\xe0\x41\x01\"p\n\x1a\x44\x65leteNvmeSubsystemRequest\x12\x36\n\x04name\x18\x01 \x01(\tB(\xe0\x41\x02\xfa\x41\"\n opi_api.storage.v1/NvmeSubsystem\x12\x1a\n\rallow_missing\x18\x02 \x01(\x08\x42\x03\xe0\x41\x01\"\xae\x01\n\x1aUpdateNvmeSubsystemRequest\x12>\n\x0envme_subsystem\x18\x01 \x01(\x0b\x32!.opi_api.storage.v1.NvmeSubsystemB\x03\xe0\x41\x02\x12\x34\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x03\xe0\x41\x01\x12\x1a\n\rallow_missing\x18\x03 \x01(\x08\x42\x03\xe0\x41\x01\"L\n\x19ListNvmeSubsystemsRequest\x12\x16\n\tpage_size\x18\x02 \x01(\x05\x42\x03\xe0\x41\x01\x12\x17\n\npage_token\x18\x03 \x01(\tB\x03\xe0\x41\x01\"q\n\x1aListNvmeSubsystemsResponse\x12:\n\x0fnvme_subsystems\x18\x01 \x03(\x0b\x32!.opi_api.storage.v1.NvmeSubsystem\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"Q\n\x17GetNvmeSubsystemRequest\x12\x36\n\x04name\x18\x01 \x01(\tB(\xe0\x41\x02\xfa\x41\"\n opi_api.storage.v1/NvmeSubsystem\"S\n\x19StatsNvmeSubsystemRequest\x12\x36\n\x04name\x18\x01 \x01(\tB(\xe0\x41\x02\xfa\x41\"\n opi_api.storage.v1/NvmeSubsystem\"L\n\x1aStatsNvmeSubsystemResponse\x12.\n\x05stats\x18\x01 \x01(\x0b\x32\x1f.opi_api.storage.v1.VolumeStats\"\xba\x01\n\x1b\x43reateNvmeControllerRequest\x12\x38\n\x06parent\x18\x01 \x01(\tB(\xe0\x41\x02\xfa\x41\"\n opi_api.storage.v1/NvmeSubsystem\x12@\n\x0fnvme_controller\x18\x02 \x01(\x0b\x32\".opi_api.storage.v1.NvmeControllerB\x03\xe0\x41\x02\x12\x1f\n\x12nvme_controller_id\x18\x03 \x01(\tB\x03\xe0\x41\x01\"r\n\x1b\x44\x65leteNvmeControllerRequest\x12\x37\n\x04name\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\n!opi_api.storage.v1/NvmeController\x12\x1a\n\rallow_missing\x18\x02 \x01(\x08\x42\x03\xe0\x41\x01\"\xb1\x01\n\x1bUpdateNvmeControllerRequest\x12@\n\x0fnvme_controller\x18\x01 \x01(\x0b\x32\".opi_api.storage.v1.NvmeControllerB\x03\xe0\x41\x02\x12\x34\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x03\xe0\x41\x01\x12\x1a\n\rallow_missing\x18\x03 \x01(\x08\x42\x03\xe0\x41\x01\"\x88\x01\n\x1aListNvmeControllersRequest\x12\x39\n\x06parent\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\n!opi_api.storage.v1/NvmeController\x12\x16\n\tpage_size\x18\x02 \x01(\x05\x42\x03\xe0\x41\x01\x12\x17\n\npage_token\x18\x03 \x01(\tB\x03\xe0\x41\x01\"t\n\x1bListNvmeControllersResponse\x12<\n\x10nvme_controllers\x18\x01 \x03(\x0b\x32\".opi_api.storage.v1.NvmeController\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"S\n\x18GetNvmeControllerRequest\x12\x37\n\x04name\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\n!opi_api.storage.v1/NvmeController\"U\n\x1aStatsNvmeControllerRequest\x12\x37\n\x04name\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\n!opi_api.storage.v1/NvmeController\"M\n\x1bStatsNvmeControllerResponse\x12.\n\x05stats\x18\x01 \x01(\x0b\x32\x1f.opi_api.storage.v1.VolumeStats\"\xb6\x01\n\x1a\x43reateNvmeNamespaceRequest\x12\x38\n\x06parent\x18\x01 \x01(\tB(\xe0\x41\x02\xfa\x41\"\n opi_api.storage.v1/NvmeSubsystem\x12>\n\x0envme_namespace\x18\x02 \x01(\x0b\x32!.opi_api.storage.v1.NvmeNamespaceB\x03\xe0\x41\x02\x12\x1e\n\x11nvme_namespace_id\x18\x03 \x01(\tB\x03\xe0\x41\x01\"p\n\x1a\x44\x65leteNvmeNamespaceRequest\x12\x36\n\x04name\x18\x01 \x01(\tB(\xe0\x41\x02\xfa\x41\"\n opi_api.storage.v1/NvmeNamespace\x12\x1a\n\rallow_missing\x18\x02 \x01(\x08\x42\x03\xe0\x41\x01\"\xae\x01\n\x1aUpdateNvmeNamespaceRequest\x12>\n\x0envme_namespace\x18\x01 \x01(\x0b\x32!.opi_api.storage.v1.NvmeNamespaceB\x03\xe0\x41\x02\x12\x34\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x03\xe0\x41\x01\x12\x1a\n\rallow_missing\x18\x03 \x01(\x08\x42\x03\xe0\x41\x01\"\x86\x01\n\x19ListNvmeNamespacesRequest\x12\x38\n\x06parent\x18\x01 \x01(\tB(\xe0\x41\x02\xfa\x41\"\n opi_api.storage.v1/NvmeNamespace\x12\x16\n\tpage_size\x18\x02 \x01(\x05\x42\x03\xe0\x41\x01\x12\x17\n\npage_token\x18\x03 \x01(\tB\x03\xe0\x41\x01\"q\n\x1aListNvmeNamespacesResponse\x12:\n\x0fnvme_namespaces\x18\x01 \x03(\x0b\x32!.opi_api.storage.v1.NvmeNamespace\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"Q\n\x17GetNvmeNamespaceRequest\x12\x36\n\x04name\x18\x01 \x01(\tB(\xe0\x41\x02\xfa\x41\"\n opi_api.storage.v1/NvmeNamespace\"S\n\x19StatsNvmeNamespaceRequest\x12\x36\n\x04name\x18\x01 \x01(\tB(\xe0\x41\x02\xfa\x41\"\n opi_api.storage.v1/NvmeNamespace\"L\n\x1aStatsNvmeNamespaceResponse\x12.\n\x05stats\x18\x01 \x01(\x0b\x32\x1f.opi_api.storage.v1.VolumeStats*\xb5\x01\n\x15NvmeNamespacePciState\x12(\n$NVME_NAMESPACE_PCI_STATE_UNSPECIFIED\x10\x00\x12%\n!NVME_NAMESPACE_PCI_STATE_DISABLED\x10\x01\x12$\n NVME_NAMESPACE_PCI_STATE_ENABLED\x10\x02\x12%\n!NVME_NAMESPACE_PCI_STATE_DELETING\x10\x03*\x9f\x01\n\x19NvmeNamespacePciOperState\x12-\n)NVME_NAMESPACE_PCI_OPER_STATE_UNSPECIFIED\x10\x00\x12(\n$NVME_NAMESPACE_PCI_OPER_STATE_ONLINE\x10\x01\x12)\n%NVME_NAMESPACE_PCI_OPER_STATE_OFFLINE\x10\x02\x32\xd9\x19\n\x13\x46rontendNvmeService\x12\xb7\x01\n\x13\x43reateNvmeSubsystem\x12..opi_api.storage.v1.CreateNvmeSubsystemRequest\x1a!.opi_api.storage.v1.NvmeSubsystem\"M\x82\xd3\xe4\x93\x02$\"\x12/v1/nvmeSubsystems:\x0envme_subsystem\xda\x41 nvme_subsystem,nvme_subsystem_id\x12\x89\x01\n\x13\x44\x65leteNvmeSubsystem\x12..opi_api.storage.v1.DeleteNvmeSubsystemRequest\x1a\x16.google.protobuf.Empty\"*\x82\xd3\xe4\x93\x02\x1d*\x1b/v1/{name=nvmeSubsystems/*}\xda\x41\x04name\x12\xc9\x01\n\x13UpdateNvmeSubsystem\x12..opi_api.storage.v1.UpdateNvmeSubsystemRequest\x1a!.opi_api.storage.v1.NvmeSubsystem\"_\x82\xd3\xe4\x93\x02<2*/v1/{nvme_subsystem.name=nvmeSubsystems/*}:\x0envme_subsystem\xda\x41\x1anvme_subsystem,update_mask\x12\x8f\x01\n\x12ListNvmeSubsystems\x12-.opi_api.storage.v1.ListNvmeSubsystemsRequest\x1a..opi_api.storage.v1.ListNvmeSubsystemsResponse\"\x1a\x82\xd3\xe4\x93\x02\x14\x12\x12/v1/nvmeSubsystems\x12\x8e\x01\n\x10GetNvmeSubsystem\x12+.opi_api.storage.v1.GetNvmeSubsystemRequest\x1a!.opi_api.storage.v1.NvmeSubsystem\"*\x82\xd3\xe4\x93\x02\x1d\x12\x1b/v1/{name=nvmeSubsystems/*}\xda\x41\x04name\x12\xa5\x01\n\x12StatsNvmeSubsystem\x12-.opi_api.storage.v1.StatsNvmeSubsystemRequest\x1a..opi_api.storage.v1.StatsNvmeSubsystemResponse\"0\x82\xd3\xe4\x93\x02#\x12!/v1/{name=nvmeSubsystems/*}:stats\xda\x41\x04name\x12\xdf\x01\n\x14\x43reateNvmeController\x12/.opi_api.storage.v1.CreateNvmeControllerRequest\x1a\".opi_api.storage.v1.NvmeController\"r\x82\xd3\xe4\x93\x02@\"-/v1/{parent=nvmeSubsystems/*}/nvmeControllers:\x0fnvme_controller\xda\x41)parent,nvme_controller,nvme_controller_id\x12\x9d\x01\n\x14\x44\x65leteNvmeController\x12/.opi_api.storage.v1.DeleteNvmeControllerRequest\x1a\x16.google.protobuf.Empty\"<\x82\xd3\xe4\x93\x02/*-/v1/{name=nvmeSubsystems/*/nvmeControllers/*}\xda\x41\x04name\x12\xe1\x01\n\x14UpdateNvmeController\x12/.opi_api.storage.v1.UpdateNvmeControllerRequest\x1a\".opi_api.storage.v1.NvmeController\"t\x82\xd3\xe4\x93\x02P2=/v1/{nvme_controller.name=nvmeSubsystems/*/nvmeControllers/*}:\x0fnvme_controller\xda\x41\x1bnvme_controller,update_mask\x12\xb6\x01\n\x13ListNvmeControllers\x12..opi_api.storage.v1.ListNvmeControllersRequest\x1a/.opi_api.storage.v1.ListNvmeControllersResponse\">\x82\xd3\xe4\x93\x02/\x12-/v1/{parent=nvmeSubsystems/*}/nvmeControllers\xda\x41\x06parent\x12\xa3\x01\n\x11GetNvmeController\x12,.opi_api.storage.v1.GetNvmeControllerRequest\x1a\".opi_api.storage.v1.NvmeController\"<\x82\xd3\xe4\x93\x02/\x12-/v1/{name=nvmeSubsystems/*/nvmeControllers/*}\xda\x41\x04name\x12\xba\x01\n\x13StatsNvmeController\x12..opi_api.storage.v1.StatsNvmeControllerRequest\x1a/.opi_api.storage.v1.StatsNvmeControllerResponse\"B\x82\xd3\xe4\x93\x02\x35\x12\x33/v1/{name=nvmeSubsystems/*/nvmeControllers/*}:stats\xda\x41\x04name\x12\xd8\x01\n\x13\x43reateNvmeNamespace\x12..opi_api.storage.v1.CreateNvmeNamespaceRequest\x1a!.opi_api.storage.v1.NvmeNamespace\"n\x82\xd3\xe4\x93\x02>\",/v1/{parent=nvmeSubsystems/*}/nvmeNamespaces:\x0envme_namespace\xda\x41\'parent,nvme_namespace,nvme_namespace_id\x12\x9a\x01\n\x13\x44\x65leteNvmeNamespace\x12..opi_api.storage.v1.DeleteNvmeNamespaceRequest\x1a\x16.google.protobuf.Empty\";\x82\xd3\xe4\x93\x02.*,/v1/{name=nvmeSubsystems/*/nvmeNamespaces/*}\xda\x41\x04name\x12\xda\x01\n\x13UpdateNvmeNamespace\x12..opi_api.storage.v1.UpdateNvmeNamespaceRequest\x1a!.opi_api.storage.v1.NvmeNamespace\"p\x82\xd3\xe4\x93\x02M2;/v1/{nvme_namespace.name=nvmeSubsystems/*/nvmeNamespaces/*}:\x0envme_namespace\xda\x41\x1anvme_namespace,update_mask\x12\xb2\x01\n\x12ListNvmeNamespaces\x12-.opi_api.storage.v1.ListNvmeNamespacesRequest\x1a..opi_api.storage.v1.ListNvmeNamespacesResponse\"=\x82\xd3\xe4\x93\x02.\x12,/v1/{parent=nvmeSubsystems/*}/nvmeNamespaces\xda\x41\x06parent\x12\x9f\x01\n\x10GetNvmeNamespace\x12+.opi_api.storage.v1.GetNvmeNamespaceRequest\x1a!.opi_api.storage.v1.NvmeNamespace\";\x82\xd3\xe4\x93\x02.\x12,/v1/{name=nvmeSubsystems/*/nvmeNamespaces/*}\xda\x41\x04name\x12\xb6\x01\n\x12StatsNvmeNamespace\x12-.opi_api.storage.v1.StatsNvmeNamespaceRequest\x1a..opi_api.storage.v1.StatsNvmeNamespaceResponse\"A\x82\xd3\xe4\x93\x02\x34\x12\x32/v1/{name=nvmeSubsystems/*/nvmeNamespaces/*}:stats\xda\x41\x04nameBd\n\x12opi_api.storage.v1B\x15\x46rontendNvmePcieProtoP\x01Z5github.com/opiproject/opi-api/storage/v1alpha1/gen/gob\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x18\x66rontend_nvme_pcie.proto\x12\x12opi_api.storage.v1\x1a\x0fopicommon.proto\x1a\nuuid.proto\x1a\x17google/api/client.proto\x1a\x19google/api/resource.proto\x1a\x1bgoogle/protobuf/empty.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a google/protobuf/field_mask.proto\"\xa8\x02\n\rNvmeSubsystem\x12\x39\n\x04name\x18\x01 \x01(\tB+\xe0\x41\x03\xe0\x41\x05\xfa\x41\"\n opi_api.storage.v1/NvmeSubsystem\x12\x38\n\x04spec\x18\x02 \x01(\x0b\x32%.opi_api.storage.v1.NvmeSubsystemSpecB\x03\xe0\x41\x02\x12<\n\x06status\x18\x03 \x01(\x0b\x32\'.opi_api.storage.v1.NvmeSubsystemStatusB\x03\xe0\x41\x03:d\xea\x41\x61\n$storage.opiproject.org/NvmeSubsystem\x12\x1anvmeSubsystems/{subsystem}*\x0envmeSubsystems2\rnvmeSubsystem\"y\n\x11NvmeSubsystemSpec\x12\x10\n\x03nqn\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12\x1a\n\rserial_number\x18\x02 \x01(\tB\x03\xe0\x41\x01\x12\x19\n\x0cmodel_number\x18\x03 \x01(\tB\x03\xe0\x41\x01\x12\x1b\n\x0emax_namespaces\x18\x04 \x01(\x03\x42\x03\xe0\x41\x01\"L\n\x13NvmeSubsystemStatus\x12\x1e\n\x11\x66irmware_revision\x18\x01 \x01(\tB\x03\xe0\x41\x03\x12\x15\n\x08\x66ru_guid\x18\x02 \x01(\x0c\x42\x03\xe0\x41\x03\"\xce\x02\n\x0eNvmeController\x12:\n\x04name\x18\x01 \x01(\tB,\xe0\x41\x03\xe0\x41\x05\xfa\x41#\n!opi_api.storage.v1/NvmeController\x12\x39\n\x04spec\x18\x02 \x01(\x0b\x32&.opi_api.storage.v1.NvmeControllerSpecB\x03\xe0\x41\x02\x12=\n\x06status\x18\x03 \x01(\x0b\x32(.opi_api.storage.v1.NvmeControllerStatusB\x03\xe0\x41\x03:\x85\x01\xea\x41\x81\x01\n%storage.opiproject.org/NvmeController\x12\x37nvmeSubsystems/{subsystem}/nvmeControllers/{controller}*\x0fnvmeControllers2\x0envmeController\"\xed\x03\n\x12NvmeControllerSpec\x12$\n\x12nvme_controller_id\x18\x01 \x01(\x05\x42\x03\xe0\x41\x01H\x01\x88\x01\x01\x12:\n\x06trtype\x18\x02 \x01(\x0e\x32%.opi_api.storage.v1.NvmeTransportTypeB\x03\xe0\x41\x02\x12\x37\n\x07pcie_id\x18\x03 \x01(\x0b\x32\x1f.opi_api.storage.v1.PciEndpointB\x03\xe0\x41\x01H\x00\x12>\n\nfabrics_id\x18\x04 \x01(\x0b\x32#.opi_api.storage.v1.FabricsEndpointB\x03\xe0\x41\x01H\x00\x12\x14\n\x07max_nsq\x18\x05 \x01(\x05\x42\x03\xe0\x41\x01\x12\x14\n\x07max_ncq\x18\x06 \x01(\x05\x42\x03\xe0\x41\x01\x12\x11\n\x04sqes\x18\x07 \x01(\x05\x42\x03\xe0\x41\x01\x12\x11\n\x04\x63qes\x18\x08 \x01(\x05\x42\x03\xe0\x41\x01\x12\x1b\n\x0emax_namespaces\x18\t \x01(\x05\x42\x03\xe0\x41\x01\x12\x34\n\tmin_limit\x18\n \x01(\x0b\x32\x1c.opi_api.storage.v1.QosLimitB\x03\xe0\x41\x01\x12\x34\n\tmax_limit\x18\x0b \x01(\x0b\x32\x1c.opi_api.storage.v1.QosLimitB\x03\xe0\x41\x01\x42\n\n\x08\x65ndpointB\x15\n\x13_nvme_controller_id\"+\n\x14NvmeControllerStatus\x12\x13\n\x06\x61\x63tive\x18\x01 \x01(\x08\x42\x03\xe0\x41\x03\"\xc3\x02\n\rNvmeNamespace\x12\x39\n\x04name\x18\x01 \x01(\tB+\xe0\x41\x03\xe0\x41\x05\xfa\x41\"\n opi_api.storage.v1/NvmeNamespace\x12\x38\n\x04spec\x18\x02 \x01(\x0b\x32%.opi_api.storage.v1.NvmeNamespaceSpecB\x03\xe0\x41\x02\x12<\n\x06status\x18\x03 \x01(\x0b\x32\'.opi_api.storage.v1.NvmeNamespaceStatusB\x03\xe0\x41\x03:\x7f\xea\x41|\n$storage.opiproject.org/NvmeNamespace\x12\x35nvmeSubsystems/{subsystem}/nvmeNamespaces/{namespace}*\x0envmeNamespaces2\rnvmeNamespace\"\x9d\x01\n\x11NvmeNamespaceSpec\x12\x16\n\thost_nsid\x18\x02 \x01(\x05\x42\x03\xe0\x41\x01\x12\x12\n\x05nguid\x18\x03 \x01(\tB\x03\xe0\x41\x01\x12\x12\n\x05\x65ui64\x18\x04 \x01(\x03\x42\x03\xe0\x41\x01\x12*\n\x04uuid\x18\x05 \x01(\x0b\x32\x17.opi_api.common.v1.UuidB\x03\xe0\x41\x01\x12\x1c\n\x0fvolume_name_ref\x18\x06 \x01(\tB\x03\xe0\x41\x02\"\xa4\x01\n\x13NvmeNamespaceStatus\x12\x41\n\tpci_state\x18\x01 \x01(\x0e\x32).opi_api.storage.v1.NvmeNamespacePciStateB\x03\xe0\x41\x03\x12J\n\x0epci_oper_state\x18\x02 \x01(\x0e\x32-.opi_api.storage.v1.NvmeNamespacePciOperStateB\x03\xe0\x41\x03\"|\n\x1a\x43reateNvmeSubsystemRequest\x12>\n\x0envme_subsystem\x18\x01 \x01(\x0b\x32!.opi_api.storage.v1.NvmeSubsystemB\x03\xe0\x41\x02\x12\x1e\n\x11nvme_subsystem_id\x18\x02 \x01(\tB\x03\xe0\x41\x01\"p\n\x1a\x44\x65leteNvmeSubsystemRequest\x12\x36\n\x04name\x18\x01 \x01(\tB(\xe0\x41\x02\xfa\x41\"\n opi_api.storage.v1/NvmeSubsystem\x12\x1a\n\rallow_missing\x18\x02 \x01(\x08\x42\x03\xe0\x41\x01\"\xae\x01\n\x1aUpdateNvmeSubsystemRequest\x12>\n\x0envme_subsystem\x18\x01 \x01(\x0b\x32!.opi_api.storage.v1.NvmeSubsystemB\x03\xe0\x41\x02\x12\x34\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x03\xe0\x41\x01\x12\x1a\n\rallow_missing\x18\x03 \x01(\x08\x42\x03\xe0\x41\x01\"L\n\x19ListNvmeSubsystemsRequest\x12\x16\n\tpage_size\x18\x02 \x01(\x05\x42\x03\xe0\x41\x01\x12\x17\n\npage_token\x18\x03 \x01(\tB\x03\xe0\x41\x01\"q\n\x1aListNvmeSubsystemsResponse\x12:\n\x0fnvme_subsystems\x18\x01 \x03(\x0b\x32!.opi_api.storage.v1.NvmeSubsystem\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"Q\n\x17GetNvmeSubsystemRequest\x12\x36\n\x04name\x18\x01 \x01(\tB(\xe0\x41\x02\xfa\x41\"\n opi_api.storage.v1/NvmeSubsystem\"S\n\x19StatsNvmeSubsystemRequest\x12\x36\n\x04name\x18\x01 \x01(\tB(\xe0\x41\x02\xfa\x41\"\n opi_api.storage.v1/NvmeSubsystem\"L\n\x1aStatsNvmeSubsystemResponse\x12.\n\x05stats\x18\x01 \x01(\x0b\x32\x1f.opi_api.storage.v1.VolumeStats\"\xba\x01\n\x1b\x43reateNvmeControllerRequest\x12\x38\n\x06parent\x18\x01 \x01(\tB(\xe0\x41\x02\xfa\x41\"\n opi_api.storage.v1/NvmeSubsystem\x12@\n\x0fnvme_controller\x18\x02 \x01(\x0b\x32\".opi_api.storage.v1.NvmeControllerB\x03\xe0\x41\x02\x12\x1f\n\x12nvme_controller_id\x18\x03 \x01(\tB\x03\xe0\x41\x01\"r\n\x1b\x44\x65leteNvmeControllerRequest\x12\x37\n\x04name\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\n!opi_api.storage.v1/NvmeController\x12\x1a\n\rallow_missing\x18\x02 \x01(\x08\x42\x03\xe0\x41\x01\"\xb1\x01\n\x1bUpdateNvmeControllerRequest\x12@\n\x0fnvme_controller\x18\x01 \x01(\x0b\x32\".opi_api.storage.v1.NvmeControllerB\x03\xe0\x41\x02\x12\x34\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x03\xe0\x41\x01\x12\x1a\n\rallow_missing\x18\x03 \x01(\x08\x42\x03\xe0\x41\x01\"\x88\x01\n\x1aListNvmeControllersRequest\x12\x39\n\x06parent\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\n!opi_api.storage.v1/NvmeController\x12\x16\n\tpage_size\x18\x02 \x01(\x05\x42\x03\xe0\x41\x01\x12\x17\n\npage_token\x18\x03 \x01(\tB\x03\xe0\x41\x01\"t\n\x1bListNvmeControllersResponse\x12<\n\x10nvme_controllers\x18\x01 \x03(\x0b\x32\".opi_api.storage.v1.NvmeController\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"S\n\x18GetNvmeControllerRequest\x12\x37\n\x04name\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\n!opi_api.storage.v1/NvmeController\"U\n\x1aStatsNvmeControllerRequest\x12\x37\n\x04name\x18\x01 \x01(\tB)\xe0\x41\x02\xfa\x41#\n!opi_api.storage.v1/NvmeController\"M\n\x1bStatsNvmeControllerResponse\x12.\n\x05stats\x18\x01 \x01(\x0b\x32\x1f.opi_api.storage.v1.VolumeStats\"\xb6\x01\n\x1a\x43reateNvmeNamespaceRequest\x12\x38\n\x06parent\x18\x01 \x01(\tB(\xe0\x41\x02\xfa\x41\"\n opi_api.storage.v1/NvmeSubsystem\x12>\n\x0envme_namespace\x18\x02 \x01(\x0b\x32!.opi_api.storage.v1.NvmeNamespaceB\x03\xe0\x41\x02\x12\x1e\n\x11nvme_namespace_id\x18\x03 \x01(\tB\x03\xe0\x41\x01\"p\n\x1a\x44\x65leteNvmeNamespaceRequest\x12\x36\n\x04name\x18\x01 \x01(\tB(\xe0\x41\x02\xfa\x41\"\n opi_api.storage.v1/NvmeNamespace\x12\x1a\n\rallow_missing\x18\x02 \x01(\x08\x42\x03\xe0\x41\x01\"\xae\x01\n\x1aUpdateNvmeNamespaceRequest\x12>\n\x0envme_namespace\x18\x01 \x01(\x0b\x32!.opi_api.storage.v1.NvmeNamespaceB\x03\xe0\x41\x02\x12\x34\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x03\xe0\x41\x01\x12\x1a\n\rallow_missing\x18\x03 \x01(\x08\x42\x03\xe0\x41\x01\"\x86\x01\n\x19ListNvmeNamespacesRequest\x12\x38\n\x06parent\x18\x01 \x01(\tB(\xe0\x41\x02\xfa\x41\"\n opi_api.storage.v1/NvmeNamespace\x12\x16\n\tpage_size\x18\x02 \x01(\x05\x42\x03\xe0\x41\x01\x12\x17\n\npage_token\x18\x03 \x01(\tB\x03\xe0\x41\x01\"q\n\x1aListNvmeNamespacesResponse\x12:\n\x0fnvme_namespaces\x18\x01 \x03(\x0b\x32!.opi_api.storage.v1.NvmeNamespace\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"Q\n\x17GetNvmeNamespaceRequest\x12\x36\n\x04name\x18\x01 \x01(\tB(\xe0\x41\x02\xfa\x41\"\n opi_api.storage.v1/NvmeNamespace\"S\n\x19StatsNvmeNamespaceRequest\x12\x36\n\x04name\x18\x01 \x01(\tB(\xe0\x41\x02\xfa\x41\"\n opi_api.storage.v1/NvmeNamespace\"L\n\x1aStatsNvmeNamespaceResponse\x12.\n\x05stats\x18\x01 \x01(\x0b\x32\x1f.opi_api.storage.v1.VolumeStats*\xb5\x01\n\x15NvmeNamespacePciState\x12(\n$NVME_NAMESPACE_PCI_STATE_UNSPECIFIED\x10\x00\x12%\n!NVME_NAMESPACE_PCI_STATE_DISABLED\x10\x01\x12$\n NVME_NAMESPACE_PCI_STATE_ENABLED\x10\x02\x12%\n!NVME_NAMESPACE_PCI_STATE_DELETING\x10\x03*\x9f\x01\n\x19NvmeNamespacePciOperState\x12-\n)NVME_NAMESPACE_PCI_OPER_STATE_UNSPECIFIED\x10\x00\x12(\n$NVME_NAMESPACE_PCI_OPER_STATE_ONLINE\x10\x01\x12)\n%NVME_NAMESPACE_PCI_OPER_STATE_OFFLINE\x10\x02\x32\xd9\x19\n\x13\x46rontendNvmeService\x12\xb7\x01\n\x13\x43reateNvmeSubsystem\x12..opi_api.storage.v1.CreateNvmeSubsystemRequest\x1a!.opi_api.storage.v1.NvmeSubsystem\"M\x82\xd3\xe4\x93\x02$\"\x12/v1/nvmeSubsystems:\x0envme_subsystem\xda\x41 nvme_subsystem,nvme_subsystem_id\x12\x89\x01\n\x13\x44\x65leteNvmeSubsystem\x12..opi_api.storage.v1.DeleteNvmeSubsystemRequest\x1a\x16.google.protobuf.Empty\"*\x82\xd3\xe4\x93\x02\x1d*\x1b/v1/{name=nvmeSubsystems/*}\xda\x41\x04name\x12\xc9\x01\n\x13UpdateNvmeSubsystem\x12..opi_api.storage.v1.UpdateNvmeSubsystemRequest\x1a!.opi_api.storage.v1.NvmeSubsystem\"_\x82\xd3\xe4\x93\x02<2*/v1/{nvme_subsystem.name=nvmeSubsystems/*}:\x0envme_subsystem\xda\x41\x1anvme_subsystem,update_mask\x12\x8f\x01\n\x12ListNvmeSubsystems\x12-.opi_api.storage.v1.ListNvmeSubsystemsRequest\x1a..opi_api.storage.v1.ListNvmeSubsystemsResponse\"\x1a\x82\xd3\xe4\x93\x02\x14\x12\x12/v1/nvmeSubsystems\x12\x8e\x01\n\x10GetNvmeSubsystem\x12+.opi_api.storage.v1.GetNvmeSubsystemRequest\x1a!.opi_api.storage.v1.NvmeSubsystem\"*\x82\xd3\xe4\x93\x02\x1d\x12\x1b/v1/{name=nvmeSubsystems/*}\xda\x41\x04name\x12\xa5\x01\n\x12StatsNvmeSubsystem\x12-.opi_api.storage.v1.StatsNvmeSubsystemRequest\x1a..opi_api.storage.v1.StatsNvmeSubsystemResponse\"0\x82\xd3\xe4\x93\x02#\x12!/v1/{name=nvmeSubsystems/*}:stats\xda\x41\x04name\x12\xdf\x01\n\x14\x43reateNvmeController\x12/.opi_api.storage.v1.CreateNvmeControllerRequest\x1a\".opi_api.storage.v1.NvmeController\"r\x82\xd3\xe4\x93\x02@\"-/v1/{parent=nvmeSubsystems/*}/nvmeControllers:\x0fnvme_controller\xda\x41)parent,nvme_controller,nvme_controller_id\x12\x9d\x01\n\x14\x44\x65leteNvmeController\x12/.opi_api.storage.v1.DeleteNvmeControllerRequest\x1a\x16.google.protobuf.Empty\"<\x82\xd3\xe4\x93\x02/*-/v1/{name=nvmeSubsystems/*/nvmeControllers/*}\xda\x41\x04name\x12\xe1\x01\n\x14UpdateNvmeController\x12/.opi_api.storage.v1.UpdateNvmeControllerRequest\x1a\".opi_api.storage.v1.NvmeController\"t\x82\xd3\xe4\x93\x02P2=/v1/{nvme_controller.name=nvmeSubsystems/*/nvmeControllers/*}:\x0fnvme_controller\xda\x41\x1bnvme_controller,update_mask\x12\xb6\x01\n\x13ListNvmeControllers\x12..opi_api.storage.v1.ListNvmeControllersRequest\x1a/.opi_api.storage.v1.ListNvmeControllersResponse\">\x82\xd3\xe4\x93\x02/\x12-/v1/{parent=nvmeSubsystems/*}/nvmeControllers\xda\x41\x06parent\x12\xa3\x01\n\x11GetNvmeController\x12,.opi_api.storage.v1.GetNvmeControllerRequest\x1a\".opi_api.storage.v1.NvmeController\"<\x82\xd3\xe4\x93\x02/\x12-/v1/{name=nvmeSubsystems/*/nvmeControllers/*}\xda\x41\x04name\x12\xba\x01\n\x13StatsNvmeController\x12..opi_api.storage.v1.StatsNvmeControllerRequest\x1a/.opi_api.storage.v1.StatsNvmeControllerResponse\"B\x82\xd3\xe4\x93\x02\x35\x12\x33/v1/{name=nvmeSubsystems/*/nvmeControllers/*}:stats\xda\x41\x04name\x12\xd8\x01\n\x13\x43reateNvmeNamespace\x12..opi_api.storage.v1.CreateNvmeNamespaceRequest\x1a!.opi_api.storage.v1.NvmeNamespace\"n\x82\xd3\xe4\x93\x02>\",/v1/{parent=nvmeSubsystems/*}/nvmeNamespaces:\x0envme_namespace\xda\x41\'parent,nvme_namespace,nvme_namespace_id\x12\x9a\x01\n\x13\x44\x65leteNvmeNamespace\x12..opi_api.storage.v1.DeleteNvmeNamespaceRequest\x1a\x16.google.protobuf.Empty\";\x82\xd3\xe4\x93\x02.*,/v1/{name=nvmeSubsystems/*/nvmeNamespaces/*}\xda\x41\x04name\x12\xda\x01\n\x13UpdateNvmeNamespace\x12..opi_api.storage.v1.UpdateNvmeNamespaceRequest\x1a!.opi_api.storage.v1.NvmeNamespace\"p\x82\xd3\xe4\x93\x02M2;/v1/{nvme_namespace.name=nvmeSubsystems/*/nvmeNamespaces/*}:\x0envme_namespace\xda\x41\x1anvme_namespace,update_mask\x12\xb2\x01\n\x12ListNvmeNamespaces\x12-.opi_api.storage.v1.ListNvmeNamespacesRequest\x1a..opi_api.storage.v1.ListNvmeNamespacesResponse\"=\x82\xd3\xe4\x93\x02.\x12,/v1/{parent=nvmeSubsystems/*}/nvmeNamespaces\xda\x41\x06parent\x12\x9f\x01\n\x10GetNvmeNamespace\x12+.opi_api.storage.v1.GetNvmeNamespaceRequest\x1a!.opi_api.storage.v1.NvmeNamespace\";\x82\xd3\xe4\x93\x02.\x12,/v1/{name=nvmeSubsystems/*/nvmeNamespaces/*}\xda\x41\x04name\x12\xb6\x01\n\x12StatsNvmeNamespace\x12-.opi_api.storage.v1.StatsNvmeNamespaceRequest\x1a..opi_api.storage.v1.StatsNvmeNamespaceResponse\"A\x82\xd3\xe4\x93\x02\x34\x12\x32/v1/{name=nvmeSubsystems/*/nvmeNamespaces/*}:stats\xda\x41\x04nameBd\n\x12opi_api.storage.v1B\x15\x46rontendNvmePcieProtoP\x01Z5github.com/opiproject/opi-api/storage/v1alpha1/gen/gob\x06proto3') _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals()) _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'frontend_nvme_pcie_pb2', globals()) @@ -59,8 +59,12 @@ _NVMECONTROLLER._serialized_options = b'\352A\201\001\n%storage.opiproject.org/NvmeController\0227nvmeSubsystems/{subsystem}/nvmeControllers/{controller}*\017nvmeControllers2\016nvmeController' _NVMECONTROLLERSPEC.fields_by_name['nvme_controller_id']._options = None _NVMECONTROLLERSPEC.fields_by_name['nvme_controller_id']._serialized_options = b'\340A\001' + _NVMECONTROLLERSPEC.fields_by_name['trtype']._options = None + _NVMECONTROLLERSPEC.fields_by_name['trtype']._serialized_options = b'\340A\002' _NVMECONTROLLERSPEC.fields_by_name['pcie_id']._options = None - _NVMECONTROLLERSPEC.fields_by_name['pcie_id']._serialized_options = b'\340A\002' + _NVMECONTROLLERSPEC.fields_by_name['pcie_id']._serialized_options = b'\340A\001' + _NVMECONTROLLERSPEC.fields_by_name['fabrics_id']._options = None + _NVMECONTROLLERSPEC.fields_by_name['fabrics_id']._serialized_options = b'\340A\001' _NVMECONTROLLERSPEC.fields_by_name['max_nsq']._options = None _NVMECONTROLLERSPEC.fields_by_name['max_nsq']._serialized_options = b'\340A\001' _NVMECONTROLLERSPEC.fields_by_name['max_ncq']._options = None @@ -209,10 +213,10 @@ _FRONTENDNVMESERVICE.methods_by_name['GetNvmeNamespace']._serialized_options = b'\202\323\344\223\002.\022,/v1/{name=nvmeSubsystems/*/nvmeNamespaces/*}\332A\004name' _FRONTENDNVMESERVICE.methods_by_name['StatsNvmeNamespace']._options = None _FRONTENDNVMESERVICE.methods_by_name['StatsNvmeNamespace']._serialized_options = b'\202\323\344\223\0024\0222/v1/{name=nvmeSubsystems/*/nvmeNamespaces/*}:stats\332A\004name' - _NVMENAMESPACEPCISTATE._serialized_start=4972 - _NVMENAMESPACEPCISTATE._serialized_end=5153 - _NVMENAMESPACEPCIOPERSTATE._serialized_start=5156 - _NVMENAMESPACEPCIOPERSTATE._serialized_end=5315 + _NVMENAMESPACEPCISTATE._serialized_start=5110 + _NVMENAMESPACEPCISTATE._serialized_end=5291 + _NVMENAMESPACEPCIOPERSTATE._serialized_start=5294 + _NVMENAMESPACEPCIOPERSTATE._serialized_end=5453 _NVMESUBSYSTEM._serialized_start=256 _NVMESUBSYSTEM._serialized_end=552 _NVMESUBSYSTEMSPEC._serialized_start=554 @@ -222,63 +226,63 @@ _NVMECONTROLLER._serialized_start=756 _NVMECONTROLLER._serialized_end=1090 _NVMECONTROLLERSPEC._serialized_start=1093 - _NVMECONTROLLERSPEC._serialized_end=1448 - _NVMECONTROLLERSTATUS._serialized_start=1450 - _NVMECONTROLLERSTATUS._serialized_end=1493 - _NVMENAMESPACE._serialized_start=1496 - _NVMENAMESPACE._serialized_end=1819 - _NVMENAMESPACESPEC._serialized_start=1822 - _NVMENAMESPACESPEC._serialized_end=1979 - _NVMENAMESPACESTATUS._serialized_start=1982 - _NVMENAMESPACESTATUS._serialized_end=2146 - _CREATENVMESUBSYSTEMREQUEST._serialized_start=2148 - _CREATENVMESUBSYSTEMREQUEST._serialized_end=2272 - _DELETENVMESUBSYSTEMREQUEST._serialized_start=2274 - _DELETENVMESUBSYSTEMREQUEST._serialized_end=2386 - _UPDATENVMESUBSYSTEMREQUEST._serialized_start=2389 - _UPDATENVMESUBSYSTEMREQUEST._serialized_end=2563 - _LISTNVMESUBSYSTEMSREQUEST._serialized_start=2565 - _LISTNVMESUBSYSTEMSREQUEST._serialized_end=2641 - _LISTNVMESUBSYSTEMSRESPONSE._serialized_start=2643 - _LISTNVMESUBSYSTEMSRESPONSE._serialized_end=2756 - _GETNVMESUBSYSTEMREQUEST._serialized_start=2758 - _GETNVMESUBSYSTEMREQUEST._serialized_end=2839 - _STATSNVMESUBSYSTEMREQUEST._serialized_start=2841 - _STATSNVMESUBSYSTEMREQUEST._serialized_end=2924 - _STATSNVMESUBSYSTEMRESPONSE._serialized_start=2926 - _STATSNVMESUBSYSTEMRESPONSE._serialized_end=3002 - _CREATENVMECONTROLLERREQUEST._serialized_start=3005 - _CREATENVMECONTROLLERREQUEST._serialized_end=3191 - _DELETENVMECONTROLLERREQUEST._serialized_start=3193 - _DELETENVMECONTROLLERREQUEST._serialized_end=3307 - _UPDATENVMECONTROLLERREQUEST._serialized_start=3310 - _UPDATENVMECONTROLLERREQUEST._serialized_end=3487 - _LISTNVMECONTROLLERSREQUEST._serialized_start=3490 - _LISTNVMECONTROLLERSREQUEST._serialized_end=3626 - _LISTNVMECONTROLLERSRESPONSE._serialized_start=3628 - _LISTNVMECONTROLLERSRESPONSE._serialized_end=3744 - _GETNVMECONTROLLERREQUEST._serialized_start=3746 - _GETNVMECONTROLLERREQUEST._serialized_end=3829 - _STATSNVMECONTROLLERREQUEST._serialized_start=3831 - _STATSNVMECONTROLLERREQUEST._serialized_end=3916 - _STATSNVMECONTROLLERRESPONSE._serialized_start=3918 - _STATSNVMECONTROLLERRESPONSE._serialized_end=3995 - _CREATENVMENAMESPACEREQUEST._serialized_start=3998 - _CREATENVMENAMESPACEREQUEST._serialized_end=4180 - _DELETENVMENAMESPACEREQUEST._serialized_start=4182 - _DELETENVMENAMESPACEREQUEST._serialized_end=4294 - _UPDATENVMENAMESPACEREQUEST._serialized_start=4297 - _UPDATENVMENAMESPACEREQUEST._serialized_end=4471 - _LISTNVMENAMESPACESREQUEST._serialized_start=4474 - _LISTNVMENAMESPACESREQUEST._serialized_end=4608 - _LISTNVMENAMESPACESRESPONSE._serialized_start=4610 - _LISTNVMENAMESPACESRESPONSE._serialized_end=4723 - _GETNVMENAMESPACEREQUEST._serialized_start=4725 - _GETNVMENAMESPACEREQUEST._serialized_end=4806 - _STATSNVMENAMESPACEREQUEST._serialized_start=4808 - _STATSNVMENAMESPACEREQUEST._serialized_end=4891 - _STATSNVMENAMESPACERESPONSE._serialized_start=4893 - _STATSNVMENAMESPACERESPONSE._serialized_end=4969 - _FRONTENDNVMESERVICE._serialized_start=5318 - _FRONTENDNVMESERVICE._serialized_end=8607 + _NVMECONTROLLERSPEC._serialized_end=1586 + _NVMECONTROLLERSTATUS._serialized_start=1588 + _NVMECONTROLLERSTATUS._serialized_end=1631 + _NVMENAMESPACE._serialized_start=1634 + _NVMENAMESPACE._serialized_end=1957 + _NVMENAMESPACESPEC._serialized_start=1960 + _NVMENAMESPACESPEC._serialized_end=2117 + _NVMENAMESPACESTATUS._serialized_start=2120 + _NVMENAMESPACESTATUS._serialized_end=2284 + _CREATENVMESUBSYSTEMREQUEST._serialized_start=2286 + _CREATENVMESUBSYSTEMREQUEST._serialized_end=2410 + _DELETENVMESUBSYSTEMREQUEST._serialized_start=2412 + _DELETENVMESUBSYSTEMREQUEST._serialized_end=2524 + _UPDATENVMESUBSYSTEMREQUEST._serialized_start=2527 + _UPDATENVMESUBSYSTEMREQUEST._serialized_end=2701 + _LISTNVMESUBSYSTEMSREQUEST._serialized_start=2703 + _LISTNVMESUBSYSTEMSREQUEST._serialized_end=2779 + _LISTNVMESUBSYSTEMSRESPONSE._serialized_start=2781 + _LISTNVMESUBSYSTEMSRESPONSE._serialized_end=2894 + _GETNVMESUBSYSTEMREQUEST._serialized_start=2896 + _GETNVMESUBSYSTEMREQUEST._serialized_end=2977 + _STATSNVMESUBSYSTEMREQUEST._serialized_start=2979 + _STATSNVMESUBSYSTEMREQUEST._serialized_end=3062 + _STATSNVMESUBSYSTEMRESPONSE._serialized_start=3064 + _STATSNVMESUBSYSTEMRESPONSE._serialized_end=3140 + _CREATENVMECONTROLLERREQUEST._serialized_start=3143 + _CREATENVMECONTROLLERREQUEST._serialized_end=3329 + _DELETENVMECONTROLLERREQUEST._serialized_start=3331 + _DELETENVMECONTROLLERREQUEST._serialized_end=3445 + _UPDATENVMECONTROLLERREQUEST._serialized_start=3448 + _UPDATENVMECONTROLLERREQUEST._serialized_end=3625 + _LISTNVMECONTROLLERSREQUEST._serialized_start=3628 + _LISTNVMECONTROLLERSREQUEST._serialized_end=3764 + _LISTNVMECONTROLLERSRESPONSE._serialized_start=3766 + _LISTNVMECONTROLLERSRESPONSE._serialized_end=3882 + _GETNVMECONTROLLERREQUEST._serialized_start=3884 + _GETNVMECONTROLLERREQUEST._serialized_end=3967 + _STATSNVMECONTROLLERREQUEST._serialized_start=3969 + _STATSNVMECONTROLLERREQUEST._serialized_end=4054 + _STATSNVMECONTROLLERRESPONSE._serialized_start=4056 + _STATSNVMECONTROLLERRESPONSE._serialized_end=4133 + _CREATENVMENAMESPACEREQUEST._serialized_start=4136 + _CREATENVMENAMESPACEREQUEST._serialized_end=4318 + _DELETENVMENAMESPACEREQUEST._serialized_start=4320 + _DELETENVMENAMESPACEREQUEST._serialized_end=4432 + _UPDATENVMENAMESPACEREQUEST._serialized_start=4435 + _UPDATENVMENAMESPACEREQUEST._serialized_end=4609 + _LISTNVMENAMESPACESREQUEST._serialized_start=4612 + _LISTNVMENAMESPACESREQUEST._serialized_end=4746 + _LISTNVMENAMESPACESRESPONSE._serialized_start=4748 + _LISTNVMENAMESPACESRESPONSE._serialized_end=4861 + _GETNVMENAMESPACEREQUEST._serialized_start=4863 + _GETNVMENAMESPACEREQUEST._serialized_end=4944 + _STATSNVMENAMESPACEREQUEST._serialized_start=4946 + _STATSNVMENAMESPACEREQUEST._serialized_end=5029 + _STATSNVMENAMESPACERESPONSE._serialized_start=5031 + _STATSNVMENAMESPACERESPONSE._serialized_end=5107 + _FRONTENDNVMESERVICE._serialized_start=5456 + _FRONTENDNVMESERVICE._serialized_end=8745 # @@protoc_insertion_point(module_scope) diff --git a/storage/v1alpha1/gen/python/opicommon_pb2.py b/storage/v1alpha1/gen/python/opicommon_pb2.py index 6a7bf617..035daac4 100644 --- a/storage/v1alpha1/gen/python/opicommon_pb2.py +++ b/storage/v1alpha1/gen/python/opicommon_pb2.py @@ -15,7 +15,7 @@ from google.protobuf import wrappers_pb2 as google_dot_protobuf_dot_wrappers__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0fopicommon.proto\x12\x12opi_api.storage.v1\x1a\x1fgoogle/api/field_behavior.proto\x1a\x1egoogle/protobuf/wrappers.proto\"\xb9\x01\n\x0bPciEndpoint\x12\x31\n\x07port_id\x18\x01 \x01(\x0b\x32\x1b.google.protobuf.Int32ValueB\x03\xe0\x41\x02\x12;\n\x11physical_function\x18\x02 \x01(\x0b\x32\x1b.google.protobuf.Int32ValueB\x03\xe0\x41\x02\x12:\n\x10virtual_function\x18\x03 \x01(\x0b\x32\x1b.google.protobuf.Int32ValueB\x03\xe0\x41\x02\"\xaa\x02\n\x0bVolumeStats\x12\x1d\n\x10read_bytes_count\x18\x01 \x01(\x05\x42\x03\xe0\x41\x03\x12\x1b\n\x0eread_ops_count\x18\x02 \x01(\x05\x42\x03\xe0\x41\x03\x12\x1e\n\x11write_bytes_count\x18\x03 \x01(\x05\x42\x03\xe0\x41\x03\x12\x1c\n\x0fwrite_ops_count\x18\x04 \x01(\x05\x42\x03\xe0\x41\x03\x12\x1e\n\x11unmap_bytes_count\x18\x05 \x01(\x05\x42\x03\xe0\x41\x03\x12\x1c\n\x0funmap_ops_count\x18\x06 \x01(\x05\x42\x03\xe0\x41\x03\x12\x1f\n\x12read_latency_ticks\x18\x07 \x01(\x05\x42\x03\xe0\x41\x03\x12 \n\x13write_latency_ticks\x18\x08 \x01(\x05\x42\x03\xe0\x41\x03\x12 \n\x13unmap_latency_ticks\x18\t \x01(\x05\x42\x03\xe0\x41\x03\"\xbb\x01\n\x08QosLimit\x12\x1a\n\rrd_iops_kiops\x18\x01 \x01(\x03\x42\x03\xe0\x41\x01\x12\x1a\n\rwr_iops_kiops\x18\x02 \x01(\x03\x42\x03\xe0\x41\x01\x12\x1a\n\rrw_iops_kiops\x18\x03 \x01(\x03\x42\x03\xe0\x41\x01\x12\x1d\n\x10rd_bandwidth_mbs\x18\x04 \x01(\x03\x42\x03\xe0\x41\x01\x12\x1d\n\x10wr_bandwidth_mbs\x18\x05 \x01(\x03\x42\x03\xe0\x41\x01\x12\x1d\n\x10rw_bandwidth_mbs\x18\x06 \x01(\x03\x42\x03\xe0\x41\x01*\xf7\x01\n\x0e\x45ncryptionType\x12\x1f\n\x1b\x45NCRYPTION_TYPE_UNSPECIFIED\x10\x00\x12\x1f\n\x1b\x45NCRYPTION_TYPE_AES_CBC_128\x10\x01\x12\x1f\n\x1b\x45NCRYPTION_TYPE_AES_CBC_192\x10\x02\x12\x1f\n\x1b\x45NCRYPTION_TYPE_AES_CBC_256\x10\x03\x12\x1f\n\x1b\x45NCRYPTION_TYPE_AES_XTS_128\x10\x04\x12\x1f\n\x1b\x45NCRYPTION_TYPE_AES_XTS_192\x10\x05\x12\x1f\n\x1b\x45NCRYPTION_TYPE_AES_XTS_256\x10\x06\x42]\n\x12opi_api.storage.v1B\x0eOpiCommonProtoP\x01Z5github.com/opiproject/opi-api/storage/v1alpha1/gen/gob\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0fopicommon.proto\x12\x12opi_api.storage.v1\x1a\x1fgoogle/api/field_behavior.proto\x1a\x1egoogle/protobuf/wrappers.proto\"\xb9\x01\n\x0bPciEndpoint\x12\x31\n\x07port_id\x18\x01 \x01(\x0b\x32\x1b.google.protobuf.Int32ValueB\x03\xe0\x41\x02\x12;\n\x11physical_function\x18\x02 \x01(\x0b\x32\x1b.google.protobuf.Int32ValueB\x03\xe0\x41\x02\x12:\n\x10virtual_function\x18\x03 \x01(\x0b\x32\x1b.google.protobuf.Int32ValueB\x03\xe0\x41\x02\"x\n\x0f\x46\x61\x62ricsEndpoint\x12\x13\n\x06traddr\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12\x14\n\x07trsvcid\x18\x02 \x01(\tB\x03\xe0\x41\x02\x12:\n\x06\x61\x64rfam\x18\x03 \x01(\x0e\x32%.opi_api.storage.v1.NvmeAddressFamilyB\x03\xe0\x41\x02\"\xaa\x02\n\x0bVolumeStats\x12\x1d\n\x10read_bytes_count\x18\x01 \x01(\x05\x42\x03\xe0\x41\x03\x12\x1b\n\x0eread_ops_count\x18\x02 \x01(\x05\x42\x03\xe0\x41\x03\x12\x1e\n\x11write_bytes_count\x18\x03 \x01(\x05\x42\x03\xe0\x41\x03\x12\x1c\n\x0fwrite_ops_count\x18\x04 \x01(\x05\x42\x03\xe0\x41\x03\x12\x1e\n\x11unmap_bytes_count\x18\x05 \x01(\x05\x42\x03\xe0\x41\x03\x12\x1c\n\x0funmap_ops_count\x18\x06 \x01(\x05\x42\x03\xe0\x41\x03\x12\x1f\n\x12read_latency_ticks\x18\x07 \x01(\x05\x42\x03\xe0\x41\x03\x12 \n\x13write_latency_ticks\x18\x08 \x01(\x05\x42\x03\xe0\x41\x03\x12 \n\x13unmap_latency_ticks\x18\t \x01(\x05\x42\x03\xe0\x41\x03\"\xbb\x01\n\x08QosLimit\x12\x1a\n\rrd_iops_kiops\x18\x01 \x01(\x03\x42\x03\xe0\x41\x01\x12\x1a\n\rwr_iops_kiops\x18\x02 \x01(\x03\x42\x03\xe0\x41\x01\x12\x1a\n\rrw_iops_kiops\x18\x03 \x01(\x03\x42\x03\xe0\x41\x01\x12\x1d\n\x10rd_bandwidth_mbs\x18\x04 \x01(\x03\x42\x03\xe0\x41\x01\x12\x1d\n\x10wr_bandwidth_mbs\x18\x05 \x01(\x03\x42\x03\xe0\x41\x01\x12\x1d\n\x10rw_bandwidth_mbs\x18\x06 \x01(\x03\x42\x03\xe0\x41\x01*\xf7\x01\n\x0e\x45ncryptionType\x12\x1f\n\x1b\x45NCRYPTION_TYPE_UNSPECIFIED\x10\x00\x12\x1f\n\x1b\x45NCRYPTION_TYPE_AES_CBC_128\x10\x01\x12\x1f\n\x1b\x45NCRYPTION_TYPE_AES_CBC_192\x10\x02\x12\x1f\n\x1b\x45NCRYPTION_TYPE_AES_CBC_256\x10\x03\x12\x1f\n\x1b\x45NCRYPTION_TYPE_AES_XTS_128\x10\x04\x12\x1f\n\x1b\x45NCRYPTION_TYPE_AES_XTS_192\x10\x05\x12\x1f\n\x1b\x45NCRYPTION_TYPE_AES_XTS_256\x10\x06*\xb4\x01\n\x11NvmeTransportType\x12#\n\x1fNVME_TRANSPORT_TYPE_UNSPECIFIED\x10\x00\x12\x15\n\x11NVME_TRANSPORT_FC\x10\x01\x12\x17\n\x13NVME_TRANSPORT_PCIE\x10\x02\x12\x17\n\x13NVME_TRANSPORT_RDMA\x10\x03\x12\x16\n\x12NVME_TRANSPORT_TCP\x10\x04\x12\x19\n\x15NVME_TRANSPORT_CUSTOM\x10\x05*\xa8\x01\n\x11NvmeAddressFamily\x12#\n\x1fNVME_ADDRESS_FAMILY_UNSPECIFIED\x10\x00\x12\x14\n\x10NVME_ADRFAM_IPV4\x10\x01\x12\x14\n\x10NVME_ADRFAM_IPV6\x10\x02\x12\x12\n\x0eNVME_ADRFAM_IB\x10\x03\x12\x12\n\x0eNVME_ADRFAM_FC\x10\x04\x12\x1a\n\x16NVME_ADRFAM_INTRA_HOST\x10\x05\x42]\n\x12opi_api.storage.v1B\x0eOpiCommonProtoP\x01Z5github.com/opiproject/opi-api/storage/v1alpha1/gen/gob\x06proto3') _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals()) _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'opicommon_pb2', globals()) @@ -29,6 +29,12 @@ _PCIENDPOINT.fields_by_name['physical_function']._serialized_options = b'\340A\002' _PCIENDPOINT.fields_by_name['virtual_function']._options = None _PCIENDPOINT.fields_by_name['virtual_function']._serialized_options = b'\340A\002' + _FABRICSENDPOINT.fields_by_name['traddr']._options = None + _FABRICSENDPOINT.fields_by_name['traddr']._serialized_options = b'\340A\002' + _FABRICSENDPOINT.fields_by_name['trsvcid']._options = None + _FABRICSENDPOINT.fields_by_name['trsvcid']._serialized_options = b'\340A\002' + _FABRICSENDPOINT.fields_by_name['adrfam']._options = None + _FABRICSENDPOINT.fields_by_name['adrfam']._serialized_options = b'\340A\002' _VOLUMESTATS.fields_by_name['read_bytes_count']._options = None _VOLUMESTATS.fields_by_name['read_bytes_count']._serialized_options = b'\340A\003' _VOLUMESTATS.fields_by_name['read_ops_count']._options = None @@ -59,12 +65,18 @@ _QOSLIMIT.fields_by_name['wr_bandwidth_mbs']._serialized_options = b'\340A\001' _QOSLIMIT.fields_by_name['rw_bandwidth_mbs']._options = None _QOSLIMIT.fields_by_name['rw_bandwidth_mbs']._serialized_options = b'\340A\001' - _ENCRYPTIONTYPE._serialized_start=784 - _ENCRYPTIONTYPE._serialized_end=1031 + _ENCRYPTIONTYPE._serialized_start=906 + _ENCRYPTIONTYPE._serialized_end=1153 + _NVMETRANSPORTTYPE._serialized_start=1156 + _NVMETRANSPORTTYPE._serialized_end=1336 + _NVMEADDRESSFAMILY._serialized_start=1339 + _NVMEADDRESSFAMILY._serialized_end=1507 _PCIENDPOINT._serialized_start=105 _PCIENDPOINT._serialized_end=290 - _VOLUMESTATS._serialized_start=293 - _VOLUMESTATS._serialized_end=591 - _QOSLIMIT._serialized_start=594 - _QOSLIMIT._serialized_end=781 + _FABRICSENDPOINT._serialized_start=292 + _FABRICSENDPOINT._serialized_end=412 + _VOLUMESTATS._serialized_start=415 + _VOLUMESTATS._serialized_end=713 + _QOSLIMIT._serialized_start=716 + _QOSLIMIT._serialized_end=903 # @@protoc_insertion_point(module_scope)