From 972ce8a563bf59876a06dc405e411fd1de99cffc Mon Sep 17 00:00:00 2001 From: Artsiom Koltun Date: Thu, 18 Jan 2024 10:41:24 +0100 Subject: [PATCH] chore(storage): auto-generated protos Signed-off-by: Artsiom Koltun --- storage/v1alpha1/autogen.md | 66 +- storage/v1alpha1/gen/go/backend_aio.pb.go | 342 ++- storage/v1alpha1/gen/go/backend_aio.pb.gw.go | 754 ++++++ .../v1alpha1/gen/go/backend_aio_grpc.pb.go | 47 +- storage/v1alpha1/gen/go/backend_iscsi.pb.go | 4 +- storage/v1alpha1/gen/go/backend_null.pb.go | 350 ++- storage/v1alpha1/gen/go/backend_null.pb.gw.go | 754 ++++++ .../v1alpha1/gen/go/backend_null_grpc.pb.go | 47 +- storage/v1alpha1/gen/go/backend_nvme.pb.go | 975 ++++---- storage/v1alpha1/gen/go/backend_nvme.pb.gw.go | 1833 ++++++++++++++ .../v1alpha1/gen/go/backend_nvme_grpc.pb.go | 93 +- storage/v1alpha1/gen/go/frontend_nvme.pb.go | 1267 +++++----- .../v1alpha1/gen/go/frontend_nvme.pb.gw.go | 2226 +++++++++++++++++ .../v1alpha1/gen/go/frontend_nvme_grpc.pb.go | 108 +- .../v1alpha1/gen/go/frontend_virtio_blk.pb.go | 193 +- .../gen/go/frontend_virtio_blk.pb.gw.go | 754 ++++++ .../gen/go/frontend_virtio_blk_grpc.pb.go | 48 +- .../v1alpha1/gen/go/frontend_virtio_fs.pb.go | 4 +- .../gen/go/frontend_virtio_scsi.pb.go | 355 +-- .../gen/go/frontend_virtio_scsi.pb.gw.go | 2210 ++++++++++++++++ .../gen/go/frontend_virtio_scsi_grpc.pb.go | 108 +- .../gen/go/middleend_encryption.pb.go | 64 +- .../gen/go/middleend_encryption.pb.gw.go | 788 ++++++ .../gen/go/middleend_encryption_grpc.pb.go | 49 +- .../gen/go/middleend_qos_volume.pb.go | 56 +- .../gen/go/middleend_qos_volume.pb.gw.go | 788 ++++++ .../gen/go/middleend_qos_volume_grpc.pb.go | 47 +- storage/v1alpha1/gen/go/opicommon.pb.go | 122 +- .../v1alpha1/gen/python/backend_aio_pb2.py | 150 +- .../v1alpha1/gen/python/backend_iscsi_pb2.py | 13 +- .../v1alpha1/gen/python/backend_null_pb2.py | 146 +- .../v1alpha1/gen/python/backend_nvme_pb2.py | 404 +-- .../v1alpha1/gen/python/frontend_nvme_pb2.py | 536 ++-- .../gen/python/frontend_virtio_blk_pb2.py | 153 +- .../gen/python/frontend_virtio_fs_pb2.py | 13 +- .../gen/python/frontend_virtio_scsi_pb2.py | 395 +-- .../gen/python/middleend_encryption_pb2.py | 147 +- .../gen/python/middleend_qos_volume_pb2.py | 155 +- storage/v1alpha1/gen/python/opicommon_pb2.py | 127 +- 39 files changed, 13430 insertions(+), 3261 deletions(-) create mode 100644 storage/v1alpha1/gen/go/backend_aio.pb.gw.go create mode 100644 storage/v1alpha1/gen/go/backend_null.pb.gw.go create mode 100644 storage/v1alpha1/gen/go/backend_nvme.pb.gw.go create mode 100644 storage/v1alpha1/gen/go/frontend_nvme.pb.gw.go create mode 100644 storage/v1alpha1/gen/go/frontend_virtio_blk.pb.gw.go create mode 100644 storage/v1alpha1/gen/go/frontend_virtio_scsi.pb.gw.go create mode 100644 storage/v1alpha1/gen/go/middleend_encryption.pb.gw.go create mode 100644 storage/v1alpha1/gen/go/middleend_qos_volume.pb.gw.go diff --git a/storage/v1alpha1/autogen.md b/storage/v1alpha1/autogen.md index 7351feb1..081cd396 100644 --- a/storage/v1alpha1/autogen.md +++ b/storage/v1alpha1/autogen.md @@ -183,9 +183,6 @@ - [NvmeAddressFamily](#opi_api-storage-v1-NvmeAddressFamily) - [NvmeTransportType](#opi_api-storage-v1-NvmeTransportType) -- [uuid.proto](#uuid-proto) - - [Uuid](#opi_api-common-v1-Uuid) - - [Scalar Value Types](#scalar-value-types) @@ -208,7 +205,7 @@ Volume represented by Linux kernel block device or a file on a Linux filesystem | name | [string](#string) | | name is an opaque object handle that is not user settable. name will be returned with created object user can only set {resource}_id on the Create request object | | block_size | [int64](#int64) | | The size of each block in the AioVolume. | | blocks_count | [int64](#int64) | | The total number of blocks in the AioVolume. | -| uuid | [opi_api.common.v1.Uuid](#opi_api-common-v1-Uuid) | | The UUID (Universally Unique Identifier) of the AioVolume. | +| uuid | [string](#string) | | The UUID (Universally Unique Identifier) of the AioVolume. | | filename | [string](#string) | | The filename associated with the AioVolume. | @@ -271,7 +268,6 @@ Represents a request to list all Aio Volumes. | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | -| parent | [string](#string) | | Parent's object unique identifier | | page_size | [int32](#int32) | | page size of list request | | page_token | [string](#string) | | page token of list request | @@ -445,7 +441,6 @@ Represents a request to list all Null Volumes. | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | -| parent | [string](#string) | | Parent's object unique identifier | | page_size | [int32](#int32) | | page size of list request | | page_token | [string](#string) | | page token of list request | @@ -481,7 +476,7 @@ Null volume which discards writes and returns random reads | name | [string](#string) | | name is an opaque object handle that is not user settable. name will be returned with created object user can only set {resource}_id on the Create request object | | block_size | [int64](#int64) | | The block size of the NullVolume. This field is required. | | blocks_count | [int64](#int64) | | The number of blocks in the NullVolume. This field is required. | -| uuid | [opi_api.common.v1.Uuid](#opi_api-common-v1-Uuid) | | The UUID of the NullVolume. This field is optional. | +| uuid | [string](#string) | | The UUID of the NullVolume. This field is optional. | @@ -848,7 +843,7 @@ Represent Nvme namespace created on bridge after connection to a target | nsid | [int32](#int32) | | NSID | | nguid | [string](#string) | | Globally unique identifier for the namespace | | eui64 | [int64](#int64) | | 64bit Extended unique identifier for the namespace mandatory if guid is not specified | -| uuid | [opi_api.common.v1.Uuid](#opi_api-common-v1-Uuid) | | Globally unique identifier for the namespace | +| uuid | [string](#string) | | Globally unique identifier for the namespace | @@ -1367,7 +1362,7 @@ Represents Nvme Namespace configuration | host_nsid | [int32](#int32) | | NSID presented by the Nvme controller. If not provided, then the controller will assign an unused NSID within the max namespace range - auto assigned nsid may not work for live migration | | nguid | [string](#string) | | Globally unique identifier for the namespace | | eui64 | [int64](#int64) | | 64bit Extended unique identifier for the namespace mandatory if guid is not specified | -| uuid | [opi_api.common.v1.Uuid](#opi_api-common-v1-Uuid) | | Globally unique identifier for the namespace | +| uuid | [string](#string) | | Globally unique identifier for the namespace | | volume_name_ref | [string](#string) | | The back/middle-end volume to back this namespace. | @@ -1712,7 +1707,6 @@ Represents a request to list all Virtio Blks. | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | -| parent | [string](#string) | | Parent's object unique identifier | | page_size | [int32](#int32) | | page size of list request | | page_token | [string](#string) | | page token of list request | @@ -2805,11 +2799,11 @@ 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 | +| NVME_ADDRESS_FAMILY_IPV4 | 1 | IPv4 address family | +| NVME_ADDRESS_FAMILY_IPV6 | 2 | IPv6 address family | +| NVME_ADDRESS_FAMILY_IB | 3 | InfiniBand address family | +| NVME_ADDRESS_FAMILY_FC | 4 | Fibre channel address family | +| NVME_ADDRESS_FAMILY_INTRA_HOST | 5 | Intra host address family | @@ -2821,44 +2815,12 @@ 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 | - - - - - - - - - - - -

Top

+| NVME_TRANSPORT_TYPE_FC | 1 | Fibre channel transport type | +| NVME_TRANSPORT_TYPE_PCIE | 2 | Pcie transport type | +| NVME_TRANSPORT_TYPE_RDMA | 3 | RDMA transport type | +| NVME_TRANSPORT_TYPE_TCP | 4 | TCP transport type | +| NVME_TRANSPORT_TYPE_CUSTOM | 5 | Custom transport type | -## uuid.proto - - - - - -### Uuid -A universally unique identifier (UUID) is a 128-bit label -When generated according to the standard methods, UUIDs are, for practical purposes, unique. - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| value | [string](#string) | | The value of the UUID | - - - - - - diff --git a/storage/v1alpha1/gen/go/backend_aio.pb.go b/storage/v1alpha1/gen/go/backend_aio.pb.go index 0ef8f77a..6ba0c23f 100644 --- a/storage/v1alpha1/gen/go/backend_aio.pb.go +++ b/storage/v1alpha1/gen/go/backend_aio.pb.go @@ -4,14 +4,13 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.1 -// protoc v3.21.6 +// protoc-gen-go v1.31.0 +// protoc (unknown) // source: backend_aio.proto package _go import ( - _go "github.com/opiproject/opi-api/common/v1/gen/go" _ "google.golang.org/genproto/googleapis/api/annotations" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" @@ -43,7 +42,7 @@ type AioVolume struct { // The total number of blocks in the AioVolume. BlocksCount int64 `protobuf:"varint,3,opt,name=blocks_count,json=blocksCount,proto3" json:"blocks_count,omitempty"` // The UUID (Universally Unique Identifier) of the AioVolume. - Uuid *_go.Uuid `protobuf:"bytes,4,opt,name=uuid,proto3" json:"uuid,omitempty"` + Uuid string `protobuf:"bytes,4,opt,name=uuid,proto3" json:"uuid,omitempty"` // The filename associated with the AioVolume. Filename string `protobuf:"bytes,5,opt,name=filename,proto3" json:"filename,omitempty"` } @@ -101,11 +100,11 @@ func (x *AioVolume) GetBlocksCount() int64 { return 0 } -func (x *AioVolume) GetUuid() *_go.Uuid { +func (x *AioVolume) GetUuid() string { if x != nil { return x.Uuid } - return nil + return "" } func (x *AioVolume) GetFilename() string { @@ -307,12 +306,10 @@ type ListAioVolumesRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Parent's object unique identifier - Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` // page size of list request - PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` + PageSize int32 `protobuf:"varint,1,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` // page token of list request - PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` + PageToken string `protobuf:"bytes,2,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` } func (x *ListAioVolumesRequest) Reset() { @@ -347,13 +344,6 @@ func (*ListAioVolumesRequest) Descriptor() ([]byte, []int) { return file_backend_aio_proto_rawDescGZIP(), []int{4} } -func (x *ListAioVolumesRequest) GetParent() string { - if x != nil { - return x.Parent - } - return "" -} - func (x *ListAioVolumesRequest) GetPageSize() int32 { if x != nil { return x.PageSize @@ -590,151 +580,143 @@ var file_backend_aio_proto_rawDesc = []byte{ 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x20, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x0f, 0x6f, 0x70, 0x69, 0x63, 0x6f, - 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x0a, 0x75, 0x75, 0x69, 0x64, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x92, 0x02, 0x0a, 0x09, 0x41, 0x69, 0x6f, 0x56, 0x6f, - 0x6c, 0x75, 0x6d, 0x65, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x08, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, - 0x0a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x03, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x53, 0x69, 0x7a, - 0x65, 0x12, 0x26, 0x0a, 0x0c, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0b, 0x62, 0x6c, - 0x6f, 0x63, 0x6b, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x30, 0x0a, 0x04, 0x75, 0x75, 0x69, - 0x64, 0x18, 0x04, 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, 0x1f, 0x0a, 0x08, 0x66, - 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, - 0x41, 0x02, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x3a, 0x4d, 0xea, 0x41, - 0x4a, 0x0a, 0x1c, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, - 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2f, 0x41, 0x69, 0x6f, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x12, - 0x13, 0x61, 0x69, 0x6f, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x2f, 0x7b, 0x76, 0x6f, 0x6c, - 0x75, 0x6d, 0x65, 0x7d, 0x2a, 0x0a, 0x61, 0x69, 0x6f, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, - 0x32, 0x09, 0x61, 0x69, 0x6f, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x22, 0x84, 0x01, 0x0a, 0x16, - 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x69, 0x6f, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, + 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xf9, 0x01, 0x0a, 0x09, 0x41, + 0x69, 0x6f, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x08, 0x52, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x12, 0x22, 0x0a, 0x0a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x03, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x62, 0x6c, 0x6f, 0x63, + 0x6b, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x26, 0x0a, 0x0c, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x5f, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x42, 0x03, 0xe0, 0x41, 0x01, + 0x52, 0x0b, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x17, 0x0a, + 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, + 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, 0x1f, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x66, + 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x3a, 0x4d, 0xea, 0x41, 0x4a, 0x0a, 0x1c, 0x6f, 0x70, + 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, + 0x2f, 0x41, 0x69, 0x6f, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x12, 0x13, 0x61, 0x69, 0x6f, 0x56, + 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x2f, 0x7b, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x7d, 0x2a, + 0x0a, 0x61, 0x69, 0x6f, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x32, 0x09, 0x61, 0x69, 0x6f, + 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x22, 0x84, 0x01, 0x0a, 0x16, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x41, 0x69, 0x6f, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x41, 0x0a, 0x0a, 0x61, 0x69, 0x6f, 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, + 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x69, 0x6f, 0x56, 0x6f, + 0x6c, 0x75, 0x6d, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x61, 0x69, 0x6f, 0x56, 0x6f, + 0x6c, 0x75, 0x6d, 0x65, 0x12, 0x27, 0x0a, 0x0d, 0x61, 0x69, 0x6f, 0x5f, 0x76, 0x6f, 0x6c, 0x75, + 0x6d, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, + 0x52, 0x0b, 0x61, 0x69, 0x6f, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x49, 0x64, 0x22, 0x7c, 0x0a, + 0x16, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x69, 0x6f, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x38, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x24, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x1e, 0x0a, 0x1c, 0x6f, + 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, + 0x31, 0x2f, 0x41, 0x69, 0x6f, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 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, 0xc7, 0x01, 0x0a, 0x16, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x69, 0x6f, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x41, 0x0a, 0x0a, 0x61, 0x69, 0x6f, 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x69, 0x6f, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, - 0x61, 0x69, 0x6f, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x12, 0x27, 0x0a, 0x0d, 0x61, 0x69, 0x6f, - 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0b, 0x61, 0x69, 0x6f, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, - 0x49, 0x64, 0x22, 0x7c, 0x0a, 0x16, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x69, 0x6f, 0x56, - 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x38, 0x0a, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x24, 0xe0, 0x41, 0x02, 0xfa, - 0x41, 0x1e, 0x0a, 0x1c, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, - 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2f, 0x41, 0x69, 0x6f, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 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, 0xc7, 0x01, 0x0a, 0x16, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x69, 0x6f, 0x56, 0x6f, - 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x41, 0x0a, 0x0a, 0x61, - 0x69, 0x6f, 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1d, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, - 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x69, 0x6f, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x42, 0x03, - 0xe0, 0x41, 0x02, 0x52, 0x09, 0x61, 0x69, 0x6f, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 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, 0x9b, 0x01, 0x0a, 0x15, 0x4c, - 0x69, 0x73, 0x74, 0x41, 0x69, 0x6f, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x3c, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x42, 0x24, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x1e, 0x12, 0x1c, 0x6f, 0x70, + 0x61, 0x69, 0x6f, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 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, 0x5d, 0x0a, 0x15, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x69, 0x6f, + 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, + 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x01, 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, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, + 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x80, 0x01, 0x0a, 0x16, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x69, 0x6f, + 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x3e, 0x0a, 0x0b, 0x61, 0x69, 0x6f, 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, + 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x69, 0x6f, 0x56, 0x6f, 0x6c, + 0x75, 0x6d, 0x65, 0x52, 0x0a, 0x61, 0x69, 0x6f, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 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, 0x4f, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x41, 0x69, + 0x6f, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x38, + 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x24, 0xe0, 0x41, + 0x02, 0xfa, 0x41, 0x1e, 0x0a, 0x1c, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, + 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2f, 0x41, 0x69, 0x6f, 0x56, 0x6f, 0x6c, 0x75, + 0x6d, 0x65, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x51, 0x0a, 0x15, 0x53, 0x74, 0x61, 0x74, + 0x73, 0x41, 0x69, 0x6f, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x38, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x24, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x1e, 0x0a, 0x1c, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, + 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2f, 0x41, 0x69, 0x6f, 0x56, + 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x4f, 0x0a, 0x16, 0x53, + 0x74, 0x61, 0x74, 0x73, 0x41, 0x69, 0x6f, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 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, 0x32, 0xf8, 0x06, 0x0a, + 0x10, 0x41, 0x69, 0x6f, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x12, 0x9b, 0x01, 0x0a, 0x0f, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x69, 0x6f, 0x56, + 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x12, 0x2a, 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, 0x41, 0x69, 0x6f, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x1d, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, + 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x69, 0x6f, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, + 0x22, 0x3d, 0xda, 0x41, 0x18, 0x61, 0x69, 0x6f, 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x2c, + 0x61, 0x69, 0x6f, 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x69, 0x64, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x1c, 0x3a, 0x0a, 0x61, 0x69, 0x6f, 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x22, + 0x0e, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x69, 0x6f, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x12, + 0x7d, 0x0a, 0x0f, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x69, 0x6f, 0x56, 0x6f, 0x6c, 0x75, + 0x6d, 0x65, 0x12, 0x2a, 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, 0x41, 0x69, + 0x6f, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 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, 0x26, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x19, 0x2a, 0x17, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, + 0x3d, 0x61, 0x69, 0x6f, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xad, + 0x01, 0x0a, 0x0f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x69, 0x6f, 0x56, 0x6f, 0x6c, 0x75, + 0x6d, 0x65, 0x12, 0x2a, 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, 0x41, 0x69, + 0x6f, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, + 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, + 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x69, 0x6f, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x22, 0x4f, 0xda, + 0x41, 0x16, 0x61, 0x69, 0x6f, 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x2c, 0x75, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x30, 0x3a, 0x0a, + 0x61, 0x69, 0x6f, 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x32, 0x22, 0x2f, 0x76, 0x31, 0x2f, + 0x7b, 0x61, 0x69, 0x6f, 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x2e, 0x6e, 0x61, 0x6d, 0x65, + 0x3d, 0x61, 0x69, 0x6f, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0x7f, + 0x0a, 0x0e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x69, 0x6f, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, + 0x12, 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, 0x41, 0x69, 0x6f, 0x56, 0x6f, 0x6c, + 0x75, 0x6d, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, - 0x2f, 0x41, 0x69, 0x6f, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 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, 0x80, 0x01, 0x0a, 0x16, 0x4c, 0x69, 0x73, - 0x74, 0x41, 0x69, 0x6f, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x3e, 0x0a, 0x0b, 0x61, 0x69, 0x6f, 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, - 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, + 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x69, 0x6f, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x16, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x10, 0x12, + 0x0e, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x69, 0x6f, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x12, + 0x7e, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x41, 0x69, 0x6f, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x12, + 0x27, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, + 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x69, 0x6f, 0x56, 0x6f, 0x6c, 0x75, 0x6d, + 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x69, - 0x6f, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x0a, 0x61, 0x69, 0x6f, 0x56, 0x6f, 0x6c, 0x75, - 0x6d, 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, 0x4f, 0x0a, 0x13, 0x47, - 0x65, 0x74, 0x41, 0x69, 0x6f, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x38, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x42, 0x24, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x1e, 0x0a, 0x1c, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, - 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2f, 0x41, 0x69, 0x6f, - 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x51, 0x0a, 0x15, - 0x53, 0x74, 0x61, 0x74, 0x73, 0x41, 0x69, 0x6f, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x38, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x42, 0x24, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x1e, 0x0a, 0x1c, 0x6f, 0x70, 0x69, - 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2f, - 0x41, 0x69, 0x6f, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, - 0x4f, 0x0a, 0x16, 0x53, 0x74, 0x61, 0x74, 0x73, 0x41, 0x69, 0x6f, 0x56, 0x6f, 0x6c, 0x75, 0x6d, - 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, - 0x32, 0x8b, 0x07, 0x0a, 0x10, 0x41, 0x69, 0x6f, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x53, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x9b, 0x01, 0x0a, 0x0f, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x41, 0x69, 0x6f, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x12, 0x2a, 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, 0x41, 0x69, 0x6f, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, - 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x69, 0x6f, 0x56, 0x6f, - 0x6c, 0x75, 0x6d, 0x65, 0x22, 0x3d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1c, 0x22, 0x0e, 0x2f, 0x76, - 0x31, 0x2f, 0x61, 0x69, 0x6f, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x3a, 0x0a, 0x61, 0x69, - 0x6f, 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0xda, 0x41, 0x18, 0x61, 0x69, 0x6f, 0x5f, 0x76, - 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x2c, 0x61, 0x69, 0x6f, 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, - 0x5f, 0x69, 0x64, 0x12, 0x7d, 0x0a, 0x0f, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x69, 0x6f, - 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x12, 0x2a, 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, 0x41, 0x69, 0x6f, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 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, 0x26, 0x82, 0xd3, 0xe4, 0x93, - 0x02, 0x19, 0x2a, 0x17, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x61, 0x69, - 0x6f, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0xda, 0x41, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x12, 0xad, 0x01, 0x0a, 0x0f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x69, 0x6f, - 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x12, 0x2a, 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, 0x41, 0x69, 0x6f, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, - 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x69, 0x6f, 0x56, 0x6f, 0x6c, 0x75, 0x6d, - 0x65, 0x22, 0x4f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x30, 0x32, 0x22, 0x2f, 0x76, 0x31, 0x2f, 0x7b, - 0x61, 0x69, 0x6f, 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x2e, 0x6e, 0x61, 0x6d, 0x65, 0x3d, - 0x61, 0x69, 0x6f, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x0a, 0x61, - 0x69, 0x6f, 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0xda, 0x41, 0x16, 0x61, 0x69, 0x6f, 0x5f, - 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x2c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, - 0x73, 0x6b, 0x12, 0x91, 0x01, 0x0a, 0x0e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x69, 0x6f, 0x56, 0x6f, - 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x12, 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, 0x41, - 0x69, 0x6f, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x2a, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, - 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x69, 0x6f, 0x56, 0x6f, 0x6c, - 0x75, 0x6d, 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, 0x7e, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x41, 0x69, 0x6f, - 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x12, 0x27, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, - 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x41, - 0x69, 0x6f, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x1d, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, - 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x69, 0x6f, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x22, 0x26, + 0x6f, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x22, 0x26, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x19, 0x12, 0x17, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, - 0x65, 0x3d, 0x61, 0x69, 0x6f, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0xda, - 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x95, 0x01, 0x0a, 0x0e, 0x53, 0x74, 0x61, 0x74, 0x73, - 0x41, 0x69, 0x6f, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x12, 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, 0x41, 0x69, 0x6f, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 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, 0x41, - 0x69, 0x6f, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x2c, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1f, 0x12, 0x1d, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, + 0x65, 0x3d, 0x61, 0x69, 0x6f, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x12, + 0x95, 0x01, 0x0a, 0x0e, 0x53, 0x74, 0x61, 0x74, 0x73, 0x41, 0x69, 0x6f, 0x56, 0x6f, 0x6c, 0x75, + 0x6d, 0x65, 0x12, 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, 0x41, 0x69, 0x6f, + 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 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, 0x41, 0x69, 0x6f, 0x56, 0x6f, 0x6c, 0x75, 0x6d, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2c, 0xda, 0x41, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1f, 0x12, 0x1d, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x61, 0x69, 0x6f, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x2f, 0x2a, - 0x7d, 0x3a, 0x73, 0x74, 0x61, 0x74, 0x73, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x5e, - 0x0a, 0x12, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, - 0x65, 0x2e, 0x76, 0x31, 0x42, 0x0f, 0x42, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x41, 0x69, 0x6f, - 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, + 0x7d, 0x3a, 0x73, 0x74, 0x61, 0x74, 0x73, 0x42, 0x5e, 0x0a, 0x12, 0x6f, 0x70, 0x69, 0x5f, 0x61, + 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x42, 0x0f, 0x42, + 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x41, 0x69, 0x6f, 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 ( @@ -760,35 +742,33 @@ var file_backend_aio_proto_goTypes = []interface{}{ (*GetAioVolumeRequest)(nil), // 6: opi_api.storage.v1.GetAioVolumeRequest (*StatsAioVolumeRequest)(nil), // 7: opi_api.storage.v1.StatsAioVolumeRequest (*StatsAioVolumeResponse)(nil), // 8: opi_api.storage.v1.StatsAioVolumeResponse - (*_go.Uuid)(nil), // 9: opi_api.common.v1.Uuid - (*fieldmaskpb.FieldMask)(nil), // 10: google.protobuf.FieldMask - (*VolumeStats)(nil), // 11: opi_api.storage.v1.VolumeStats - (*emptypb.Empty)(nil), // 12: google.protobuf.Empty + (*fieldmaskpb.FieldMask)(nil), // 9: google.protobuf.FieldMask + (*VolumeStats)(nil), // 10: opi_api.storage.v1.VolumeStats + (*emptypb.Empty)(nil), // 11: google.protobuf.Empty } var file_backend_aio_proto_depIdxs = []int32{ - 9, // 0: opi_api.storage.v1.AioVolume.uuid:type_name -> opi_api.common.v1.Uuid - 0, // 1: opi_api.storage.v1.CreateAioVolumeRequest.aio_volume:type_name -> opi_api.storage.v1.AioVolume - 0, // 2: opi_api.storage.v1.UpdateAioVolumeRequest.aio_volume:type_name -> opi_api.storage.v1.AioVolume - 10, // 3: opi_api.storage.v1.UpdateAioVolumeRequest.update_mask:type_name -> google.protobuf.FieldMask - 0, // 4: opi_api.storage.v1.ListAioVolumesResponse.aio_volumes:type_name -> opi_api.storage.v1.AioVolume - 11, // 5: opi_api.storage.v1.StatsAioVolumeResponse.stats:type_name -> opi_api.storage.v1.VolumeStats - 1, // 6: opi_api.storage.v1.AioVolumeService.CreateAioVolume:input_type -> opi_api.storage.v1.CreateAioVolumeRequest - 2, // 7: opi_api.storage.v1.AioVolumeService.DeleteAioVolume:input_type -> opi_api.storage.v1.DeleteAioVolumeRequest - 3, // 8: opi_api.storage.v1.AioVolumeService.UpdateAioVolume:input_type -> opi_api.storage.v1.UpdateAioVolumeRequest - 4, // 9: opi_api.storage.v1.AioVolumeService.ListAioVolumes:input_type -> opi_api.storage.v1.ListAioVolumesRequest - 6, // 10: opi_api.storage.v1.AioVolumeService.GetAioVolume:input_type -> opi_api.storage.v1.GetAioVolumeRequest - 7, // 11: opi_api.storage.v1.AioVolumeService.StatsAioVolume:input_type -> opi_api.storage.v1.StatsAioVolumeRequest - 0, // 12: opi_api.storage.v1.AioVolumeService.CreateAioVolume:output_type -> opi_api.storage.v1.AioVolume - 12, // 13: opi_api.storage.v1.AioVolumeService.DeleteAioVolume:output_type -> google.protobuf.Empty - 0, // 14: opi_api.storage.v1.AioVolumeService.UpdateAioVolume:output_type -> opi_api.storage.v1.AioVolume - 5, // 15: opi_api.storage.v1.AioVolumeService.ListAioVolumes:output_type -> opi_api.storage.v1.ListAioVolumesResponse - 0, // 16: opi_api.storage.v1.AioVolumeService.GetAioVolume:output_type -> opi_api.storage.v1.AioVolume - 8, // 17: opi_api.storage.v1.AioVolumeService.StatsAioVolume:output_type -> opi_api.storage.v1.StatsAioVolumeResponse - 12, // [12:18] is the sub-list for method output_type - 6, // [6:12] is the sub-list for method input_type - 6, // [6:6] is the sub-list for extension type_name - 6, // [6:6] is the sub-list for extension extendee - 0, // [0:6] is the sub-list for field type_name + 0, // 0: opi_api.storage.v1.CreateAioVolumeRequest.aio_volume:type_name -> opi_api.storage.v1.AioVolume + 0, // 1: opi_api.storage.v1.UpdateAioVolumeRequest.aio_volume:type_name -> opi_api.storage.v1.AioVolume + 9, // 2: opi_api.storage.v1.UpdateAioVolumeRequest.update_mask:type_name -> google.protobuf.FieldMask + 0, // 3: opi_api.storage.v1.ListAioVolumesResponse.aio_volumes:type_name -> opi_api.storage.v1.AioVolume + 10, // 4: opi_api.storage.v1.StatsAioVolumeResponse.stats:type_name -> opi_api.storage.v1.VolumeStats + 1, // 5: opi_api.storage.v1.AioVolumeService.CreateAioVolume:input_type -> opi_api.storage.v1.CreateAioVolumeRequest + 2, // 6: opi_api.storage.v1.AioVolumeService.DeleteAioVolume:input_type -> opi_api.storage.v1.DeleteAioVolumeRequest + 3, // 7: opi_api.storage.v1.AioVolumeService.UpdateAioVolume:input_type -> opi_api.storage.v1.UpdateAioVolumeRequest + 4, // 8: opi_api.storage.v1.AioVolumeService.ListAioVolumes:input_type -> opi_api.storage.v1.ListAioVolumesRequest + 6, // 9: opi_api.storage.v1.AioVolumeService.GetAioVolume:input_type -> opi_api.storage.v1.GetAioVolumeRequest + 7, // 10: opi_api.storage.v1.AioVolumeService.StatsAioVolume:input_type -> opi_api.storage.v1.StatsAioVolumeRequest + 0, // 11: opi_api.storage.v1.AioVolumeService.CreateAioVolume:output_type -> opi_api.storage.v1.AioVolume + 11, // 12: opi_api.storage.v1.AioVolumeService.DeleteAioVolume:output_type -> google.protobuf.Empty + 0, // 13: opi_api.storage.v1.AioVolumeService.UpdateAioVolume:output_type -> opi_api.storage.v1.AioVolume + 5, // 14: opi_api.storage.v1.AioVolumeService.ListAioVolumes:output_type -> opi_api.storage.v1.ListAioVolumesResponse + 0, // 15: opi_api.storage.v1.AioVolumeService.GetAioVolume:output_type -> opi_api.storage.v1.AioVolume + 8, // 16: opi_api.storage.v1.AioVolumeService.StatsAioVolume:output_type -> opi_api.storage.v1.StatsAioVolumeResponse + 11, // [11:17] is the sub-list for method output_type + 5, // [5:11] is the sub-list for method input_type + 5, // [5:5] is the sub-list for extension type_name + 5, // [5:5] is the sub-list for extension extendee + 0, // [0:5] is the sub-list for field type_name } func init() { file_backend_aio_proto_init() } diff --git a/storage/v1alpha1/gen/go/backend_aio.pb.gw.go b/storage/v1alpha1/gen/go/backend_aio.pb.gw.go new file mode 100644 index 00000000..5660f0d7 --- /dev/null +++ b/storage/v1alpha1/gen/go/backend_aio.pb.gw.go @@ -0,0 +1,754 @@ +// Code generated by protoc-gen-grpc-gateway. DO NOT EDIT. +// source: backend_aio.proto + +/* +Package _go is a reverse proxy. + +It translates gRPC into RESTful JSON APIs. +*/ +package _go + +import ( + "context" + "io" + "net/http" + + "github.com/grpc-ecosystem/grpc-gateway/v2/runtime" + "github.com/grpc-ecosystem/grpc-gateway/v2/utilities" + "google.golang.org/grpc" + "google.golang.org/grpc/codes" + "google.golang.org/grpc/grpclog" + "google.golang.org/grpc/metadata" + "google.golang.org/grpc/status" + "google.golang.org/protobuf/proto" +) + +// Suppress "imported and not used" errors +var _ codes.Code +var _ io.Reader +var _ status.Status +var _ = runtime.String +var _ = utilities.NewDoubleArray +var _ = metadata.Join + +var ( + filter_AioVolumeService_CreateAioVolume_0 = &utilities.DoubleArray{Encoding: map[string]int{"aio_volume": 0, "aioVolume": 1}, Base: []int{1, 1, 2, 0, 0}, Check: []int{0, 1, 1, 2, 3}} +) + +func request_AioVolumeService_CreateAioVolume_0(ctx context.Context, marshaler runtime.Marshaler, client AioVolumeServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq CreateAioVolumeRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq.AioVolume); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_AioVolumeService_CreateAioVolume_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.CreateAioVolume(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_AioVolumeService_CreateAioVolume_0(ctx context.Context, marshaler runtime.Marshaler, server AioVolumeServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq CreateAioVolumeRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq.AioVolume); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_AioVolumeService_CreateAioVolume_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.CreateAioVolume(ctx, &protoReq) + return msg, metadata, err + +} + +var ( + filter_AioVolumeService_DeleteAioVolume_0 = &utilities.DoubleArray{Encoding: map[string]int{"name": 0}, Base: []int{1, 2, 0, 0}, Check: []int{0, 1, 2, 2}} +) + +func request_AioVolumeService_DeleteAioVolume_0(ctx context.Context, marshaler runtime.Marshaler, client AioVolumeServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq DeleteAioVolumeRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") + } + + protoReq.Name, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_AioVolumeService_DeleteAioVolume_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.DeleteAioVolume(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_AioVolumeService_DeleteAioVolume_0(ctx context.Context, marshaler runtime.Marshaler, server AioVolumeServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq DeleteAioVolumeRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") + } + + protoReq.Name, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_AioVolumeService_DeleteAioVolume_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.DeleteAioVolume(ctx, &protoReq) + return msg, metadata, err + +} + +var ( + filter_AioVolumeService_UpdateAioVolume_0 = &utilities.DoubleArray{Encoding: map[string]int{"aio_volume": 0, "aioVolume": 1, "name": 2}, Base: []int{1, 3, 4, 5, 2, 0, 0, 0, 0}, Check: []int{0, 1, 1, 1, 2, 5, 2, 3, 4}} +) + +func request_AioVolumeService_UpdateAioVolume_0(ctx context.Context, marshaler runtime.Marshaler, client AioVolumeServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq UpdateAioVolumeRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq.AioVolume); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if protoReq.UpdateMask == nil || len(protoReq.UpdateMask.GetPaths()) == 0 { + if fieldMask, err := runtime.FieldMaskFromRequestBody(newReader(), protoReq.AioVolume); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } else { + protoReq.UpdateMask = fieldMask + } + } + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["aio_volume.name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "aio_volume.name") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "aio_volume.name", val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "aio_volume.name", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_AioVolumeService_UpdateAioVolume_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.UpdateAioVolume(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_AioVolumeService_UpdateAioVolume_0(ctx context.Context, marshaler runtime.Marshaler, server AioVolumeServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq UpdateAioVolumeRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq.AioVolume); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if protoReq.UpdateMask == nil || len(protoReq.UpdateMask.GetPaths()) == 0 { + if fieldMask, err := runtime.FieldMaskFromRequestBody(newReader(), protoReq.AioVolume); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } else { + protoReq.UpdateMask = fieldMask + } + } + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["aio_volume.name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "aio_volume.name") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "aio_volume.name", val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "aio_volume.name", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_AioVolumeService_UpdateAioVolume_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.UpdateAioVolume(ctx, &protoReq) + return msg, metadata, err + +} + +var ( + filter_AioVolumeService_ListAioVolumes_0 = &utilities.DoubleArray{Encoding: map[string]int{}, Base: []int(nil), Check: []int(nil)} +) + +func request_AioVolumeService_ListAioVolumes_0(ctx context.Context, marshaler runtime.Marshaler, client AioVolumeServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq ListAioVolumesRequest + var metadata runtime.ServerMetadata + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_AioVolumeService_ListAioVolumes_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.ListAioVolumes(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_AioVolumeService_ListAioVolumes_0(ctx context.Context, marshaler runtime.Marshaler, server AioVolumeServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq ListAioVolumesRequest + var metadata runtime.ServerMetadata + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_AioVolumeService_ListAioVolumes_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.ListAioVolumes(ctx, &protoReq) + return msg, metadata, err + +} + +func request_AioVolumeService_GetAioVolume_0(ctx context.Context, marshaler runtime.Marshaler, client AioVolumeServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetAioVolumeRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") + } + + protoReq.Name, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) + } + + msg, err := client.GetAioVolume(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_AioVolumeService_GetAioVolume_0(ctx context.Context, marshaler runtime.Marshaler, server AioVolumeServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetAioVolumeRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") + } + + protoReq.Name, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) + } + + msg, err := server.GetAioVolume(ctx, &protoReq) + return msg, metadata, err + +} + +func request_AioVolumeService_StatsAioVolume_0(ctx context.Context, marshaler runtime.Marshaler, client AioVolumeServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq StatsAioVolumeRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") + } + + protoReq.Name, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) + } + + msg, err := client.StatsAioVolume(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_AioVolumeService_StatsAioVolume_0(ctx context.Context, marshaler runtime.Marshaler, server AioVolumeServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq StatsAioVolumeRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") + } + + protoReq.Name, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) + } + + msg, err := server.StatsAioVolume(ctx, &protoReq) + return msg, metadata, err + +} + +// RegisterAioVolumeServiceHandlerServer registers the http handlers for service AioVolumeService to "mux". +// UnaryRPC :call AioVolumeServiceServer directly. +// StreamingRPC :currently unsupported pending https://github.com/grpc/grpc-go/issues/906. +// Note that using this registration option will cause many gRPC library features to stop working. Consider using RegisterAioVolumeServiceHandlerFromEndpoint instead. +func RegisterAioVolumeServiceHandlerServer(ctx context.Context, mux *runtime.ServeMux, server AioVolumeServiceServer) error { + + mux.Handle("POST", pattern_AioVolumeService_CreateAioVolume_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/opi_api.storage.v1.AioVolumeService/CreateAioVolume", runtime.WithHTTPPathPattern("/v1/aioVolumes")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_AioVolumeService_CreateAioVolume_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_AioVolumeService_CreateAioVolume_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("DELETE", pattern_AioVolumeService_DeleteAioVolume_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/opi_api.storage.v1.AioVolumeService/DeleteAioVolume", runtime.WithHTTPPathPattern("/v1/{name=aioVolumes/*}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_AioVolumeService_DeleteAioVolume_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_AioVolumeService_DeleteAioVolume_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("PATCH", pattern_AioVolumeService_UpdateAioVolume_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/opi_api.storage.v1.AioVolumeService/UpdateAioVolume", runtime.WithHTTPPathPattern("/v1/{aio_volume.name=aioVolumes/*}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_AioVolumeService_UpdateAioVolume_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_AioVolumeService_UpdateAioVolume_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_AioVolumeService_ListAioVolumes_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/opi_api.storage.v1.AioVolumeService/ListAioVolumes", runtime.WithHTTPPathPattern("/v1/aioVolumes")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_AioVolumeService_ListAioVolumes_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_AioVolumeService_ListAioVolumes_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_AioVolumeService_GetAioVolume_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/opi_api.storage.v1.AioVolumeService/GetAioVolume", runtime.WithHTTPPathPattern("/v1/{name=aioVolumes/*}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_AioVolumeService_GetAioVolume_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_AioVolumeService_GetAioVolume_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_AioVolumeService_StatsAioVolume_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/opi_api.storage.v1.AioVolumeService/StatsAioVolume", runtime.WithHTTPPathPattern("/v1/{name=aioVolumes/*}:stats")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_AioVolumeService_StatsAioVolume_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_AioVolumeService_StatsAioVolume_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + return nil +} + +// RegisterAioVolumeServiceHandlerFromEndpoint is same as RegisterAioVolumeServiceHandler but +// automatically dials to "endpoint" and closes the connection when "ctx" gets done. +func RegisterAioVolumeServiceHandlerFromEndpoint(ctx context.Context, mux *runtime.ServeMux, endpoint string, opts []grpc.DialOption) (err error) { + conn, err := grpc.DialContext(ctx, endpoint, opts...) + if err != nil { + return err + } + defer func() { + if err != nil { + if cerr := conn.Close(); cerr != nil { + grpclog.Infof("Failed to close conn to %s: %v", endpoint, cerr) + } + return + } + go func() { + <-ctx.Done() + if cerr := conn.Close(); cerr != nil { + grpclog.Infof("Failed to close conn to %s: %v", endpoint, cerr) + } + }() + }() + + return RegisterAioVolumeServiceHandler(ctx, mux, conn) +} + +// RegisterAioVolumeServiceHandler registers the http handlers for service AioVolumeService to "mux". +// The handlers forward requests to the grpc endpoint over "conn". +func RegisterAioVolumeServiceHandler(ctx context.Context, mux *runtime.ServeMux, conn *grpc.ClientConn) error { + return RegisterAioVolumeServiceHandlerClient(ctx, mux, NewAioVolumeServiceClient(conn)) +} + +// RegisterAioVolumeServiceHandlerClient registers the http handlers for service AioVolumeService +// to "mux". The handlers forward requests to the grpc endpoint over the given implementation of "AioVolumeServiceClient". +// Note: the gRPC framework executes interceptors within the gRPC handler. If the passed in "AioVolumeServiceClient" +// doesn't go through the normal gRPC flow (creating a gRPC client etc.) then it will be up to the passed in +// "AioVolumeServiceClient" to call the correct interceptors. +func RegisterAioVolumeServiceHandlerClient(ctx context.Context, mux *runtime.ServeMux, client AioVolumeServiceClient) error { + + mux.Handle("POST", pattern_AioVolumeService_CreateAioVolume_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/opi_api.storage.v1.AioVolumeService/CreateAioVolume", runtime.WithHTTPPathPattern("/v1/aioVolumes")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_AioVolumeService_CreateAioVolume_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_AioVolumeService_CreateAioVolume_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("DELETE", pattern_AioVolumeService_DeleteAioVolume_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/opi_api.storage.v1.AioVolumeService/DeleteAioVolume", runtime.WithHTTPPathPattern("/v1/{name=aioVolumes/*}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_AioVolumeService_DeleteAioVolume_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_AioVolumeService_DeleteAioVolume_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("PATCH", pattern_AioVolumeService_UpdateAioVolume_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/opi_api.storage.v1.AioVolumeService/UpdateAioVolume", runtime.WithHTTPPathPattern("/v1/{aio_volume.name=aioVolumes/*}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_AioVolumeService_UpdateAioVolume_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_AioVolumeService_UpdateAioVolume_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_AioVolumeService_ListAioVolumes_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/opi_api.storage.v1.AioVolumeService/ListAioVolumes", runtime.WithHTTPPathPattern("/v1/aioVolumes")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_AioVolumeService_ListAioVolumes_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_AioVolumeService_ListAioVolumes_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_AioVolumeService_GetAioVolume_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/opi_api.storage.v1.AioVolumeService/GetAioVolume", runtime.WithHTTPPathPattern("/v1/{name=aioVolumes/*}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_AioVolumeService_GetAioVolume_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_AioVolumeService_GetAioVolume_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_AioVolumeService_StatsAioVolume_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/opi_api.storage.v1.AioVolumeService/StatsAioVolume", runtime.WithHTTPPathPattern("/v1/{name=aioVolumes/*}:stats")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_AioVolumeService_StatsAioVolume_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_AioVolumeService_StatsAioVolume_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + return nil +} + +var ( + pattern_AioVolumeService_CreateAioVolume_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"v1", "aioVolumes"}, "")) + + pattern_AioVolumeService_DeleteAioVolume_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 2, 5, 2}, []string{"v1", "aioVolumes", "name"}, "")) + + pattern_AioVolumeService_UpdateAioVolume_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 2, 5, 2}, []string{"v1", "aioVolumes", "aio_volume.name"}, "")) + + pattern_AioVolumeService_ListAioVolumes_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"v1", "aioVolumes"}, "")) + + pattern_AioVolumeService_GetAioVolume_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 2, 5, 2}, []string{"v1", "aioVolumes", "name"}, "")) + + pattern_AioVolumeService_StatsAioVolume_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 2, 5, 2}, []string{"v1", "aioVolumes", "name"}, "stats")) +) + +var ( + forward_AioVolumeService_CreateAioVolume_0 = runtime.ForwardResponseMessage + + forward_AioVolumeService_DeleteAioVolume_0 = runtime.ForwardResponseMessage + + forward_AioVolumeService_UpdateAioVolume_0 = runtime.ForwardResponseMessage + + forward_AioVolumeService_ListAioVolumes_0 = runtime.ForwardResponseMessage + + forward_AioVolumeService_GetAioVolume_0 = runtime.ForwardResponseMessage + + forward_AioVolumeService_StatsAioVolume_0 = runtime.ForwardResponseMessage +) diff --git a/storage/v1alpha1/gen/go/backend_aio_grpc.pb.go b/storage/v1alpha1/gen/go/backend_aio_grpc.pb.go index ef127e21..6a707f37 100644 --- a/storage/v1alpha1/gen/go/backend_aio_grpc.pb.go +++ b/storage/v1alpha1/gen/go/backend_aio_grpc.pb.go @@ -1,7 +1,11 @@ +// SPDX-License-Identifier: Apache-2.0 +// Copyright (c) 2022 Dell Inc, or its subsidiaries. +// Copyright (C) 2023 Intel Corporation + // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: -// - protoc-gen-go-grpc v1.2.0 -// - protoc v3.21.6 +// - protoc-gen-go-grpc v1.3.0 +// - protoc (unknown) // source: backend_aio.proto package _go @@ -19,6 +23,15 @@ import ( // Requires gRPC-Go v1.32.0 or later. const _ = grpc.SupportPackageIsVersion7 +const ( + AioVolumeService_CreateAioVolume_FullMethodName = "/opi_api.storage.v1.AioVolumeService/CreateAioVolume" + AioVolumeService_DeleteAioVolume_FullMethodName = "/opi_api.storage.v1.AioVolumeService/DeleteAioVolume" + AioVolumeService_UpdateAioVolume_FullMethodName = "/opi_api.storage.v1.AioVolumeService/UpdateAioVolume" + AioVolumeService_ListAioVolumes_FullMethodName = "/opi_api.storage.v1.AioVolumeService/ListAioVolumes" + AioVolumeService_GetAioVolume_FullMethodName = "/opi_api.storage.v1.AioVolumeService/GetAioVolume" + AioVolumeService_StatsAioVolume_FullMethodName = "/opi_api.storage.v1.AioVolumeService/StatsAioVolume" +) + // AioVolumeServiceClient is the client API for AioVolumeService service. // // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. @@ -47,7 +60,7 @@ func NewAioVolumeServiceClient(cc grpc.ClientConnInterface) AioVolumeServiceClie func (c *aioVolumeServiceClient) CreateAioVolume(ctx context.Context, in *CreateAioVolumeRequest, opts ...grpc.CallOption) (*AioVolume, error) { out := new(AioVolume) - err := c.cc.Invoke(ctx, "/opi_api.storage.v1.AioVolumeService/CreateAioVolume", in, out, opts...) + err := c.cc.Invoke(ctx, AioVolumeService_CreateAioVolume_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -56,7 +69,7 @@ func (c *aioVolumeServiceClient) CreateAioVolume(ctx context.Context, in *Create func (c *aioVolumeServiceClient) DeleteAioVolume(ctx context.Context, in *DeleteAioVolumeRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) { out := new(emptypb.Empty) - err := c.cc.Invoke(ctx, "/opi_api.storage.v1.AioVolumeService/DeleteAioVolume", in, out, opts...) + err := c.cc.Invoke(ctx, AioVolumeService_DeleteAioVolume_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -65,7 +78,7 @@ func (c *aioVolumeServiceClient) DeleteAioVolume(ctx context.Context, in *Delete func (c *aioVolumeServiceClient) UpdateAioVolume(ctx context.Context, in *UpdateAioVolumeRequest, opts ...grpc.CallOption) (*AioVolume, error) { out := new(AioVolume) - err := c.cc.Invoke(ctx, "/opi_api.storage.v1.AioVolumeService/UpdateAioVolume", in, out, opts...) + err := c.cc.Invoke(ctx, AioVolumeService_UpdateAioVolume_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -74,7 +87,7 @@ func (c *aioVolumeServiceClient) UpdateAioVolume(ctx context.Context, in *Update func (c *aioVolumeServiceClient) ListAioVolumes(ctx context.Context, in *ListAioVolumesRequest, opts ...grpc.CallOption) (*ListAioVolumesResponse, error) { out := new(ListAioVolumesResponse) - err := c.cc.Invoke(ctx, "/opi_api.storage.v1.AioVolumeService/ListAioVolumes", in, out, opts...) + err := c.cc.Invoke(ctx, AioVolumeService_ListAioVolumes_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -83,7 +96,7 @@ func (c *aioVolumeServiceClient) ListAioVolumes(ctx context.Context, in *ListAio func (c *aioVolumeServiceClient) GetAioVolume(ctx context.Context, in *GetAioVolumeRequest, opts ...grpc.CallOption) (*AioVolume, error) { out := new(AioVolume) - err := c.cc.Invoke(ctx, "/opi_api.storage.v1.AioVolumeService/GetAioVolume", in, out, opts...) + err := c.cc.Invoke(ctx, AioVolumeService_GetAioVolume_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -92,7 +105,7 @@ func (c *aioVolumeServiceClient) GetAioVolume(ctx context.Context, in *GetAioVol func (c *aioVolumeServiceClient) StatsAioVolume(ctx context.Context, in *StatsAioVolumeRequest, opts ...grpc.CallOption) (*StatsAioVolumeResponse, error) { out := new(StatsAioVolumeResponse) - err := c.cc.Invoke(ctx, "/opi_api.storage.v1.AioVolumeService/StatsAioVolume", in, out, opts...) + err := c.cc.Invoke(ctx, AioVolumeService_StatsAioVolume_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -100,7 +113,7 @@ func (c *aioVolumeServiceClient) StatsAioVolume(ctx context.Context, in *StatsAi } // AioVolumeServiceServer is the server API for AioVolumeService service. -// All implementations should embed UnimplementedAioVolumeServiceServer +// All implementations must embed UnimplementedAioVolumeServiceServer // for forward compatibility type AioVolumeServiceServer interface { // Create an Aio Volume @@ -115,9 +128,10 @@ type AioVolumeServiceServer interface { GetAioVolume(context.Context, *GetAioVolumeRequest) (*AioVolume, error) // Get an Aio Volume statistics StatsAioVolume(context.Context, *StatsAioVolumeRequest) (*StatsAioVolumeResponse, error) + mustEmbedUnimplementedAioVolumeServiceServer() } -// UnimplementedAioVolumeServiceServer should be embedded to have forward compatible implementations. +// UnimplementedAioVolumeServiceServer must be embedded to have forward compatible implementations. type UnimplementedAioVolumeServiceServer struct { } @@ -139,6 +153,7 @@ func (UnimplementedAioVolumeServiceServer) GetAioVolume(context.Context, *GetAio func (UnimplementedAioVolumeServiceServer) StatsAioVolume(context.Context, *StatsAioVolumeRequest) (*StatsAioVolumeResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method StatsAioVolume not implemented") } +func (UnimplementedAioVolumeServiceServer) mustEmbedUnimplementedAioVolumeServiceServer() {} // UnsafeAioVolumeServiceServer may be embedded to opt out of forward compatibility for this service. // Use of this interface is not recommended, as added methods to AioVolumeServiceServer will @@ -161,7 +176,7 @@ func _AioVolumeService_CreateAioVolume_Handler(srv interface{}, ctx context.Cont } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/opi_api.storage.v1.AioVolumeService/CreateAioVolume", + FullMethod: AioVolumeService_CreateAioVolume_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(AioVolumeServiceServer).CreateAioVolume(ctx, req.(*CreateAioVolumeRequest)) @@ -179,7 +194,7 @@ func _AioVolumeService_DeleteAioVolume_Handler(srv interface{}, ctx context.Cont } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/opi_api.storage.v1.AioVolumeService/DeleteAioVolume", + FullMethod: AioVolumeService_DeleteAioVolume_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(AioVolumeServiceServer).DeleteAioVolume(ctx, req.(*DeleteAioVolumeRequest)) @@ -197,7 +212,7 @@ func _AioVolumeService_UpdateAioVolume_Handler(srv interface{}, ctx context.Cont } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/opi_api.storage.v1.AioVolumeService/UpdateAioVolume", + FullMethod: AioVolumeService_UpdateAioVolume_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(AioVolumeServiceServer).UpdateAioVolume(ctx, req.(*UpdateAioVolumeRequest)) @@ -215,7 +230,7 @@ func _AioVolumeService_ListAioVolumes_Handler(srv interface{}, ctx context.Conte } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/opi_api.storage.v1.AioVolumeService/ListAioVolumes", + FullMethod: AioVolumeService_ListAioVolumes_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(AioVolumeServiceServer).ListAioVolumes(ctx, req.(*ListAioVolumesRequest)) @@ -233,7 +248,7 @@ func _AioVolumeService_GetAioVolume_Handler(srv interface{}, ctx context.Context } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/opi_api.storage.v1.AioVolumeService/GetAioVolume", + FullMethod: AioVolumeService_GetAioVolume_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(AioVolumeServiceServer).GetAioVolume(ctx, req.(*GetAioVolumeRequest)) @@ -251,7 +266,7 @@ func _AioVolumeService_StatsAioVolume_Handler(srv interface{}, ctx context.Conte } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/opi_api.storage.v1.AioVolumeService/StatsAioVolume", + FullMethod: AioVolumeService_StatsAioVolume_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(AioVolumeServiceServer).StatsAioVolume(ctx, req.(*StatsAioVolumeRequest)) diff --git a/storage/v1alpha1/gen/go/backend_iscsi.pb.go b/storage/v1alpha1/gen/go/backend_iscsi.pb.go index 68490930..2e9efd40 100644 --- a/storage/v1alpha1/gen/go/backend_iscsi.pb.go +++ b/storage/v1alpha1/gen/go/backend_iscsi.pb.go @@ -3,8 +3,8 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.1 -// protoc v3.21.6 +// protoc-gen-go v1.31.0 +// protoc (unknown) // source: backend_iscsi.proto package _go diff --git a/storage/v1alpha1/gen/go/backend_null.pb.go b/storage/v1alpha1/gen/go/backend_null.pb.go index bbdddcbd..95abfa78 100644 --- a/storage/v1alpha1/gen/go/backend_null.pb.go +++ b/storage/v1alpha1/gen/go/backend_null.pb.go @@ -4,14 +4,13 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.1 -// protoc v3.21.6 +// protoc-gen-go v1.31.0 +// protoc (unknown) // source: backend_null.proto package _go import ( - _go "github.com/opiproject/opi-api/common/v1/gen/go" _ "google.golang.org/genproto/googleapis/api/annotations" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" @@ -43,7 +42,7 @@ type NullVolume struct { // The number of blocks in the NullVolume. This field is required. BlocksCount int64 `protobuf:"varint,3,opt,name=blocks_count,json=blocksCount,proto3" json:"blocks_count,omitempty"` // The UUID of the NullVolume. This field is optional. - Uuid *_go.Uuid `protobuf:"bytes,4,opt,name=uuid,proto3" json:"uuid,omitempty"` + Uuid string `protobuf:"bytes,4,opt,name=uuid,proto3" json:"uuid,omitempty"` } func (x *NullVolume) Reset() { @@ -99,11 +98,11 @@ func (x *NullVolume) GetBlocksCount() int64 { return 0 } -func (x *NullVolume) GetUuid() *_go.Uuid { +func (x *NullVolume) GetUuid() string { if x != nil { return x.Uuid } - return nil + return "" } // Represents a request to create an Null Volume. @@ -298,12 +297,10 @@ type ListNullVolumesRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Parent's object unique identifier - Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` // page size of list request - PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` + PageSize int32 `protobuf:"varint,1,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` // page token of list request - PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` + PageToken string `protobuf:"bytes,2,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` } func (x *ListNullVolumesRequest) Reset() { @@ -338,13 +335,6 @@ func (*ListNullVolumesRequest) Descriptor() ([]byte, []int) { return file_backend_null_proto_rawDescGZIP(), []int{4} } -func (x *ListNullVolumesRequest) GetParent() string { - if x != nil { - return x.Parent - } - return "" -} - func (x *ListNullVolumesRequest) GetPageSize() int32 { if x != nil { return x.PageSize @@ -581,153 +571,145 @@ var file_backend_null_proto_rawDesc = []byte{ 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x20, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x0f, 0x6f, 0x70, 0x69, 0x63, - 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x0a, 0x75, 0x75, 0x69, - 0x64, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xf6, 0x01, 0x0a, 0x0a, 0x4e, 0x75, 0x6c, 0x6c, - 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x08, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, - 0x22, 0x0a, 0x0a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x03, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x53, - 0x69, 0x7a, 0x65, 0x12, 0x26, 0x0a, 0x0c, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x5f, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0b, - 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x30, 0x0a, 0x04, 0x75, - 0x75, 0x69, 0x64, 0x18, 0x04, 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, 0x3a, 0x51, 0xea, - 0x41, 0x4e, 0x0a, 0x1d, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, - 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2f, 0x4e, 0x75, 0x6c, 0x6c, 0x56, 0x6f, 0x6c, 0x75, 0x6d, - 0x65, 0x12, 0x14, 0x6e, 0x75, 0x6c, 0x6c, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x2f, 0x7b, - 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x7d, 0x2a, 0x0b, 0x6e, 0x75, 0x6c, 0x6c, 0x56, 0x6f, 0x6c, - 0x75, 0x6d, 0x65, 0x73, 0x32, 0x0a, 0x6e, 0x75, 0x6c, 0x6c, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, - 0x22, 0x8a, 0x01, 0x0a, 0x17, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x75, 0x6c, 0x6c, 0x56, - 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x44, 0x0a, 0x0b, - 0x6e, 0x75, 0x6c, 0x6c, 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, - 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x75, 0x6c, 0x6c, 0x56, 0x6f, 0x6c, 0x75, 0x6d, - 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x6e, 0x75, 0x6c, 0x6c, 0x56, 0x6f, 0x6c, 0x75, - 0x6d, 0x65, 0x12, 0x29, 0x0a, 0x0e, 0x6e, 0x75, 0x6c, 0x6c, 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, - 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, - 0x0c, 0x6e, 0x75, 0x6c, 0x6c, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x49, 0x64, 0x22, 0x7e, 0x0a, - 0x17, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4e, 0x75, 0x6c, 0x6c, 0x56, 0x6f, 0x6c, 0x75, 0x6d, - 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x39, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x25, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x1f, 0x0a, 0x1d, - 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, - 0x76, 0x31, 0x2f, 0x4e, 0x75, 0x6c, 0x6c, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 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, 0xcb, 0x01, - 0x0a, 0x17, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x75, 0x6c, 0x6c, 0x56, 0x6f, 0x6c, 0x75, - 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x44, 0x0a, 0x0b, 0x6e, 0x75, 0x6c, - 0x6c, 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, - 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, - 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x75, 0x6c, 0x6c, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x42, 0x03, - 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x6e, 0x75, 0x6c, 0x6c, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 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, 0x9d, 0x01, 0x0a, 0x16, - 0x4c, 0x69, 0x73, 0x74, 0x4e, 0x75, 0x6c, 0x6c, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3d, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x25, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x1f, 0x12, 0x1d, - 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, - 0x76, 0x31, 0x2f, 0x4e, 0x75, 0x6c, 0x6c, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 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, 0x84, 0x01, 0x0a, 0x17, - 0x4c, 0x69, 0x73, 0x74, 0x4e, 0x75, 0x6c, 0x6c, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x41, 0x0a, 0x0c, 0x6e, 0x75, 0x6c, 0x6c, 0x5f, - 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, - 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, - 0x76, 0x31, 0x2e, 0x4e, 0x75, 0x6c, 0x6c, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x0b, 0x6e, - 0x75, 0x6c, 0x6c, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 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, 0x51, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x4e, 0x75, 0x6c, 0x6c, 0x56, 0x6f, 0x6c, + 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xdd, 0x01, 0x0a, 0x0a, + 0x4e, 0x75, 0x6c, 0x6c, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x08, 0x52, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x73, 0x69, 0x7a, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x62, 0x6c, + 0x6f, 0x63, 0x6b, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x26, 0x0a, 0x0c, 0x62, 0x6c, 0x6f, 0x63, 0x6b, + 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x42, 0x03, 0xe0, + 0x41, 0x02, 0x52, 0x0b, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, + 0x17, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, + 0x41, 0x01, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x3a, 0x51, 0xea, 0x41, 0x4e, 0x0a, 0x1d, 0x6f, + 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, + 0x31, 0x2f, 0x4e, 0x75, 0x6c, 0x6c, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x12, 0x14, 0x6e, 0x75, + 0x6c, 0x6c, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x2f, 0x7b, 0x76, 0x6f, 0x6c, 0x75, 0x6d, + 0x65, 0x7d, 0x2a, 0x0b, 0x6e, 0x75, 0x6c, 0x6c, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x32, + 0x0a, 0x6e, 0x75, 0x6c, 0x6c, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x22, 0x8a, 0x01, 0x0a, 0x17, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x75, 0x6c, 0x6c, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x44, 0x0a, 0x0b, 0x6e, 0x75, 0x6c, 0x6c, 0x5f, + 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, + 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, + 0x31, 0x2e, 0x4e, 0x75, 0x6c, 0x6c, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x42, 0x03, 0xe0, 0x41, + 0x02, 0x52, 0x0a, 0x6e, 0x75, 0x6c, 0x6c, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x12, 0x29, 0x0a, + 0x0e, 0x6e, 0x75, 0x6c, 0x6c, 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x69, 0x64, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0c, 0x6e, 0x75, 0x6c, 0x6c, + 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x49, 0x64, 0x22, 0x7e, 0x0a, 0x17, 0x44, 0x65, 0x6c, 0x65, + 0x74, 0x65, 0x4e, 0x75, 0x6c, 0x6c, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x39, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x25, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x1f, 0x0a, 0x1d, 0x6f, 0x70, 0x69, 0x5f, 0x61, + 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2f, 0x4e, 0x75, + 0x6c, 0x6c, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 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, 0xcb, 0x01, 0x0a, 0x17, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x4e, 0x75, 0x6c, 0x6c, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x44, 0x0a, 0x0b, 0x6e, 0x75, 0x6c, 0x6c, 0x5f, 0x76, 0x6f, 0x6c, + 0x75, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x70, 0x69, 0x5f, + 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4e, + 0x75, 0x6c, 0x6c, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, + 0x6e, 0x75, 0x6c, 0x6c, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 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, 0x5e, 0x0a, 0x16, 0x4c, 0x69, 0x73, 0x74, 0x4e, 0x75, + 0x6c, 0x6c, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x20, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x01, 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, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x70, 0x61, 0x67, + 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x84, 0x01, 0x0a, 0x17, 0x4c, 0x69, 0x73, 0x74, 0x4e, + 0x75, 0x6c, 0x6c, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x41, 0x0a, 0x0c, 0x6e, 0x75, 0x6c, 0x6c, 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, + 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, + 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x75, + 0x6c, 0x6c, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x0b, 0x6e, 0x75, 0x6c, 0x6c, 0x56, 0x6f, + 0x6c, 0x75, 0x6d, 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, 0x51, 0x0a, + 0x14, 0x47, 0x65, 0x74, 0x4e, 0x75, 0x6c, 0x6c, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x39, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x25, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x1f, 0x0a, 0x1d, 0x6f, 0x70, 0x69, + 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2f, + 0x4e, 0x75, 0x6c, 0x6c, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x22, 0x53, 0x0a, 0x16, 0x53, 0x74, 0x61, 0x74, 0x73, 0x4e, 0x75, 0x6c, 0x6c, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x39, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x25, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x1f, 0x0a, 0x1d, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2f, 0x4e, 0x75, 0x6c, 0x6c, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x53, 0x0a, 0x16, 0x53, 0x74, 0x61, 0x74, 0x73, 0x4e, 0x75, - 0x6c, 0x6c, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x39, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x25, 0xe0, - 0x41, 0x02, 0xfa, 0x41, 0x1f, 0x0a, 0x1d, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, - 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2f, 0x4e, 0x75, 0x6c, 0x6c, 0x56, 0x6f, - 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x50, 0x0a, 0x17, 0x53, 0x74, - 0x61, 0x74, 0x73, 0x4e, 0x75, 0x6c, 0x6c, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 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, 0x32, 0xaa, 0x07, 0x0a, - 0x11, 0x4e, 0x75, 0x6c, 0x6c, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x12, 0xa2, 0x01, 0x0a, 0x10, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x75, 0x6c, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x50, 0x0a, 0x17, 0x53, 0x74, 0x61, 0x74, 0x73, 0x4e, 0x75, + 0x6c, 0x6c, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 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, 0x32, 0x99, 0x07, 0x0a, 0x11, 0x4e, 0x75, 0x6c, 0x6c, + 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0xa2, 0x01, + 0x0a, 0x10, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x75, 0x6c, 0x6c, 0x56, 0x6f, 0x6c, 0x75, + 0x6d, 0x65, 0x12, 0x2b, 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, 0x75, + 0x6c, 0x6c, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x1e, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, + 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x75, 0x6c, 0x6c, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x22, + 0x41, 0xda, 0x41, 0x1a, 0x6e, 0x75, 0x6c, 0x6c, 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x2c, + 0x6e, 0x75, 0x6c, 0x6c, 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x69, 0x64, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x1e, 0x3a, 0x0b, 0x6e, 0x75, 0x6c, 0x6c, 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, + 0x65, 0x22, 0x0f, 0x2f, 0x76, 0x31, 0x2f, 0x6e, 0x75, 0x6c, 0x6c, 0x56, 0x6f, 0x6c, 0x75, 0x6d, + 0x65, 0x73, 0x12, 0x80, 0x01, 0x0a, 0x10, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4e, 0x75, 0x6c, 0x6c, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x12, 0x2b, 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, 0x75, 0x6c, 0x6c, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, - 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x75, 0x6c, 0x6c, 0x56, 0x6f, - 0x6c, 0x75, 0x6d, 0x65, 0x22, 0x41, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1e, 0x22, 0x0f, 0x2f, 0x76, - 0x31, 0x2f, 0x6e, 0x75, 0x6c, 0x6c, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x3a, 0x0b, 0x6e, - 0x75, 0x6c, 0x6c, 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0xda, 0x41, 0x1a, 0x6e, 0x75, 0x6c, - 0x6c, 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x2c, 0x6e, 0x75, 0x6c, 0x6c, 0x5f, 0x76, 0x6f, - 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x69, 0x64, 0x12, 0x80, 0x01, 0x0a, 0x10, 0x44, 0x65, 0x6c, 0x65, - 0x74, 0x65, 0x4e, 0x75, 0x6c, 0x6c, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x12, 0x2b, 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, 0x75, 0x6c, 0x6c, 0x56, 0x6f, 0x6c, 0x75, - 0x6d, 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, 0x27, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1a, 0x2a, 0x18, 0x2f, 0x76, 0x31, 0x2f, 0x7b, - 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x6e, 0x75, 0x6c, 0x6c, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, - 0x2f, 0x2a, 0x7d, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0xb4, 0x01, 0x0a, 0x10, 0x55, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x75, 0x6c, 0x6c, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x12, - 0x2b, 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, 0x75, 0x6c, 0x6c, 0x56, - 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x6f, - 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, - 0x31, 0x2e, 0x4e, 0x75, 0x6c, 0x6c, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x22, 0x53, 0x82, 0xd3, - 0xe4, 0x93, 0x02, 0x33, 0x32, 0x24, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x75, 0x6c, 0x6c, 0x5f, - 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x2e, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x6e, 0x75, 0x6c, 0x6c, - 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x0b, 0x6e, 0x75, 0x6c, 0x6c, - 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0xda, 0x41, 0x17, 0x6e, 0x75, 0x6c, 0x6c, 0x5f, 0x76, - 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x2c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, - 0x6b, 0x12, 0x94, 0x01, 0x0a, 0x0f, 0x4c, 0x69, 0x73, 0x74, 0x4e, 0x75, 0x6c, 0x6c, 0x56, 0x6f, - 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x12, 0x2a, 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, - 0x75, 0x6c, 0x6c, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 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, 0x75, 0x6c, 0x6c, 0x56, - 0x6f, 0x6c, 0x75, 0x6d, 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, 0x82, 0x01, 0x0a, 0x0d, 0x47, 0x65, 0x74, - 0x4e, 0x75, 0x6c, 0x6c, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x12, 0x28, 0x2e, 0x6f, 0x70, 0x69, + 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, + 0x65, 0x74, 0x65, 0x4e, 0x75, 0x6c, 0x6c, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 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, 0x27, 0xda, 0x41, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1a, 0x2a, 0x18, 0x2f, 0x76, 0x31, + 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x6e, 0x75, 0x6c, 0x6c, 0x56, 0x6f, 0x6c, 0x75, 0x6d, + 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xb4, 0x01, 0x0a, 0x10, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x4e, 0x75, 0x6c, 0x6c, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 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, 0x75, 0x6c, 0x6c, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, - 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x75, 0x6c, 0x6c, 0x56, 0x6f, - 0x6c, 0x75, 0x6d, 0x65, 0x22, 0x27, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1a, 0x12, 0x18, 0x2f, 0x76, - 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x6e, 0x75, 0x6c, 0x6c, 0x56, 0x6f, 0x6c, 0x75, - 0x6d, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x99, 0x01, - 0x0a, 0x0f, 0x53, 0x74, 0x61, 0x74, 0x73, 0x4e, 0x75, 0x6c, 0x6c, 0x56, 0x6f, 0x6c, 0x75, 0x6d, - 0x65, 0x12, 0x2a, 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, 0x75, 0x6c, 0x6c, - 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 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, 0x75, 0x6c, 0x6c, 0x56, 0x6f, 0x6c, 0x75, - 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2d, 0x82, 0xd3, 0xe4, 0x93, - 0x02, 0x20, 0x12, 0x1e, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x6e, 0x75, - 0x6c, 0x6c, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x73, 0x74, 0x61, - 0x74, 0x73, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x5f, 0x0a, 0x12, 0x6f, 0x70, 0x69, - 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x42, - 0x10, 0x42, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x4e, 0x75, 0x6c, 0x6c, 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, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x75, 0x6c, 0x6c, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, + 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x75, 0x6c, + 0x6c, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x22, 0x53, 0xda, 0x41, 0x17, 0x6e, 0x75, 0x6c, 0x6c, + 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x2c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, + 0x61, 0x73, 0x6b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x33, 0x3a, 0x0b, 0x6e, 0x75, 0x6c, 0x6c, 0x5f, + 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x32, 0x24, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x75, 0x6c, + 0x6c, 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x2e, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x6e, 0x75, + 0x6c, 0x6c, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0x83, 0x01, 0x0a, + 0x0f, 0x4c, 0x69, 0x73, 0x74, 0x4e, 0x75, 0x6c, 0x6c, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, + 0x12, 0x2a, 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, 0x75, 0x6c, 0x6c, 0x56, 0x6f, + 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 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, 0x75, 0x6c, 0x6c, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x17, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x11, 0x12, 0x0f, 0x2f, 0x76, 0x31, 0x2f, 0x6e, 0x75, 0x6c, 0x6c, 0x56, 0x6f, 0x6c, 0x75, 0x6d, + 0x65, 0x73, 0x12, 0x82, 0x01, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x4e, 0x75, 0x6c, 0x6c, 0x56, 0x6f, + 0x6c, 0x75, 0x6d, 0x65, 0x12, 0x28, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, + 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4e, 0x75, 0x6c, + 0x6c, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, + 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, + 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x75, 0x6c, 0x6c, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x22, 0x27, + 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1a, 0x12, 0x18, 0x2f, + 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x6e, 0x75, 0x6c, 0x6c, 0x56, 0x6f, 0x6c, + 0x75, 0x6d, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0x99, 0x01, 0x0a, 0x0f, 0x53, 0x74, 0x61, 0x74, + 0x73, 0x4e, 0x75, 0x6c, 0x6c, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x12, 0x2a, 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, 0x75, 0x6c, 0x6c, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 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, 0x75, 0x6c, 0x6c, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2d, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x20, 0x12, 0x1e, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x6e, + 0x75, 0x6c, 0x6c, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x73, 0x74, + 0x61, 0x74, 0x73, 0x42, 0x5f, 0x0a, 0x12, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, + 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x42, 0x10, 0x42, 0x61, 0x63, 0x6b, 0x65, + 0x6e, 0x64, 0x4e, 0x75, 0x6c, 0x6c, 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 ( @@ -753,35 +735,33 @@ var file_backend_null_proto_goTypes = []interface{}{ (*GetNullVolumeRequest)(nil), // 6: opi_api.storage.v1.GetNullVolumeRequest (*StatsNullVolumeRequest)(nil), // 7: opi_api.storage.v1.StatsNullVolumeRequest (*StatsNullVolumeResponse)(nil), // 8: opi_api.storage.v1.StatsNullVolumeResponse - (*_go.Uuid)(nil), // 9: opi_api.common.v1.Uuid - (*fieldmaskpb.FieldMask)(nil), // 10: google.protobuf.FieldMask - (*VolumeStats)(nil), // 11: opi_api.storage.v1.VolumeStats - (*emptypb.Empty)(nil), // 12: google.protobuf.Empty + (*fieldmaskpb.FieldMask)(nil), // 9: google.protobuf.FieldMask + (*VolumeStats)(nil), // 10: opi_api.storage.v1.VolumeStats + (*emptypb.Empty)(nil), // 11: google.protobuf.Empty } var file_backend_null_proto_depIdxs = []int32{ - 9, // 0: opi_api.storage.v1.NullVolume.uuid:type_name -> opi_api.common.v1.Uuid - 0, // 1: opi_api.storage.v1.CreateNullVolumeRequest.null_volume:type_name -> opi_api.storage.v1.NullVolume - 0, // 2: opi_api.storage.v1.UpdateNullVolumeRequest.null_volume:type_name -> opi_api.storage.v1.NullVolume - 10, // 3: opi_api.storage.v1.UpdateNullVolumeRequest.update_mask:type_name -> google.protobuf.FieldMask - 0, // 4: opi_api.storage.v1.ListNullVolumesResponse.null_volumes:type_name -> opi_api.storage.v1.NullVolume - 11, // 5: opi_api.storage.v1.StatsNullVolumeResponse.stats:type_name -> opi_api.storage.v1.VolumeStats - 1, // 6: opi_api.storage.v1.NullVolumeService.CreateNullVolume:input_type -> opi_api.storage.v1.CreateNullVolumeRequest - 2, // 7: opi_api.storage.v1.NullVolumeService.DeleteNullVolume:input_type -> opi_api.storage.v1.DeleteNullVolumeRequest - 3, // 8: opi_api.storage.v1.NullVolumeService.UpdateNullVolume:input_type -> opi_api.storage.v1.UpdateNullVolumeRequest - 4, // 9: opi_api.storage.v1.NullVolumeService.ListNullVolumes:input_type -> opi_api.storage.v1.ListNullVolumesRequest - 6, // 10: opi_api.storage.v1.NullVolumeService.GetNullVolume:input_type -> opi_api.storage.v1.GetNullVolumeRequest - 7, // 11: opi_api.storage.v1.NullVolumeService.StatsNullVolume:input_type -> opi_api.storage.v1.StatsNullVolumeRequest - 0, // 12: opi_api.storage.v1.NullVolumeService.CreateNullVolume:output_type -> opi_api.storage.v1.NullVolume - 12, // 13: opi_api.storage.v1.NullVolumeService.DeleteNullVolume:output_type -> google.protobuf.Empty - 0, // 14: opi_api.storage.v1.NullVolumeService.UpdateNullVolume:output_type -> opi_api.storage.v1.NullVolume - 5, // 15: opi_api.storage.v1.NullVolumeService.ListNullVolumes:output_type -> opi_api.storage.v1.ListNullVolumesResponse - 0, // 16: opi_api.storage.v1.NullVolumeService.GetNullVolume:output_type -> opi_api.storage.v1.NullVolume - 8, // 17: opi_api.storage.v1.NullVolumeService.StatsNullVolume:output_type -> opi_api.storage.v1.StatsNullVolumeResponse - 12, // [12:18] is the sub-list for method output_type - 6, // [6:12] is the sub-list for method input_type - 6, // [6:6] is the sub-list for extension type_name - 6, // [6:6] is the sub-list for extension extendee - 0, // [0:6] is the sub-list for field type_name + 0, // 0: opi_api.storage.v1.CreateNullVolumeRequest.null_volume:type_name -> opi_api.storage.v1.NullVolume + 0, // 1: opi_api.storage.v1.UpdateNullVolumeRequest.null_volume:type_name -> opi_api.storage.v1.NullVolume + 9, // 2: opi_api.storage.v1.UpdateNullVolumeRequest.update_mask:type_name -> google.protobuf.FieldMask + 0, // 3: opi_api.storage.v1.ListNullVolumesResponse.null_volumes:type_name -> opi_api.storage.v1.NullVolume + 10, // 4: opi_api.storage.v1.StatsNullVolumeResponse.stats:type_name -> opi_api.storage.v1.VolumeStats + 1, // 5: opi_api.storage.v1.NullVolumeService.CreateNullVolume:input_type -> opi_api.storage.v1.CreateNullVolumeRequest + 2, // 6: opi_api.storage.v1.NullVolumeService.DeleteNullVolume:input_type -> opi_api.storage.v1.DeleteNullVolumeRequest + 3, // 7: opi_api.storage.v1.NullVolumeService.UpdateNullVolume:input_type -> opi_api.storage.v1.UpdateNullVolumeRequest + 4, // 8: opi_api.storage.v1.NullVolumeService.ListNullVolumes:input_type -> opi_api.storage.v1.ListNullVolumesRequest + 6, // 9: opi_api.storage.v1.NullVolumeService.GetNullVolume:input_type -> opi_api.storage.v1.GetNullVolumeRequest + 7, // 10: opi_api.storage.v1.NullVolumeService.StatsNullVolume:input_type -> opi_api.storage.v1.StatsNullVolumeRequest + 0, // 11: opi_api.storage.v1.NullVolumeService.CreateNullVolume:output_type -> opi_api.storage.v1.NullVolume + 11, // 12: opi_api.storage.v1.NullVolumeService.DeleteNullVolume:output_type -> google.protobuf.Empty + 0, // 13: opi_api.storage.v1.NullVolumeService.UpdateNullVolume:output_type -> opi_api.storage.v1.NullVolume + 5, // 14: opi_api.storage.v1.NullVolumeService.ListNullVolumes:output_type -> opi_api.storage.v1.ListNullVolumesResponse + 0, // 15: opi_api.storage.v1.NullVolumeService.GetNullVolume:output_type -> opi_api.storage.v1.NullVolume + 8, // 16: opi_api.storage.v1.NullVolumeService.StatsNullVolume:output_type -> opi_api.storage.v1.StatsNullVolumeResponse + 11, // [11:17] is the sub-list for method output_type + 5, // [5:11] is the sub-list for method input_type + 5, // [5:5] is the sub-list for extension type_name + 5, // [5:5] is the sub-list for extension extendee + 0, // [0:5] is the sub-list for field type_name } func init() { file_backend_null_proto_init() } diff --git a/storage/v1alpha1/gen/go/backend_null.pb.gw.go b/storage/v1alpha1/gen/go/backend_null.pb.gw.go new file mode 100644 index 00000000..5effc6da --- /dev/null +++ b/storage/v1alpha1/gen/go/backend_null.pb.gw.go @@ -0,0 +1,754 @@ +// Code generated by protoc-gen-grpc-gateway. DO NOT EDIT. +// source: backend_null.proto + +/* +Package _go is a reverse proxy. + +It translates gRPC into RESTful JSON APIs. +*/ +package _go + +import ( + "context" + "io" + "net/http" + + "github.com/grpc-ecosystem/grpc-gateway/v2/runtime" + "github.com/grpc-ecosystem/grpc-gateway/v2/utilities" + "google.golang.org/grpc" + "google.golang.org/grpc/codes" + "google.golang.org/grpc/grpclog" + "google.golang.org/grpc/metadata" + "google.golang.org/grpc/status" + "google.golang.org/protobuf/proto" +) + +// Suppress "imported and not used" errors +var _ codes.Code +var _ io.Reader +var _ status.Status +var _ = runtime.String +var _ = utilities.NewDoubleArray +var _ = metadata.Join + +var ( + filter_NullVolumeService_CreateNullVolume_0 = &utilities.DoubleArray{Encoding: map[string]int{"null_volume": 0, "nullVolume": 1}, Base: []int{1, 1, 2, 0, 0}, Check: []int{0, 1, 1, 2, 3}} +) + +func request_NullVolumeService_CreateNullVolume_0(ctx context.Context, marshaler runtime.Marshaler, client NullVolumeServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq CreateNullVolumeRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq.NullVolume); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_NullVolumeService_CreateNullVolume_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.CreateNullVolume(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_NullVolumeService_CreateNullVolume_0(ctx context.Context, marshaler runtime.Marshaler, server NullVolumeServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq CreateNullVolumeRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq.NullVolume); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_NullVolumeService_CreateNullVolume_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.CreateNullVolume(ctx, &protoReq) + return msg, metadata, err + +} + +var ( + filter_NullVolumeService_DeleteNullVolume_0 = &utilities.DoubleArray{Encoding: map[string]int{"name": 0}, Base: []int{1, 2, 0, 0}, Check: []int{0, 1, 2, 2}} +) + +func request_NullVolumeService_DeleteNullVolume_0(ctx context.Context, marshaler runtime.Marshaler, client NullVolumeServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq DeleteNullVolumeRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") + } + + protoReq.Name, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_NullVolumeService_DeleteNullVolume_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.DeleteNullVolume(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_NullVolumeService_DeleteNullVolume_0(ctx context.Context, marshaler runtime.Marshaler, server NullVolumeServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq DeleteNullVolumeRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") + } + + protoReq.Name, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_NullVolumeService_DeleteNullVolume_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.DeleteNullVolume(ctx, &protoReq) + return msg, metadata, err + +} + +var ( + filter_NullVolumeService_UpdateNullVolume_0 = &utilities.DoubleArray{Encoding: map[string]int{"null_volume": 0, "nullVolume": 1, "name": 2}, Base: []int{1, 3, 4, 5, 2, 0, 0, 0, 0}, Check: []int{0, 1, 1, 1, 2, 5, 2, 3, 4}} +) + +func request_NullVolumeService_UpdateNullVolume_0(ctx context.Context, marshaler runtime.Marshaler, client NullVolumeServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq UpdateNullVolumeRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq.NullVolume); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if protoReq.UpdateMask == nil || len(protoReq.UpdateMask.GetPaths()) == 0 { + if fieldMask, err := runtime.FieldMaskFromRequestBody(newReader(), protoReq.NullVolume); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } else { + protoReq.UpdateMask = fieldMask + } + } + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["null_volume.name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "null_volume.name") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "null_volume.name", val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "null_volume.name", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_NullVolumeService_UpdateNullVolume_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.UpdateNullVolume(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_NullVolumeService_UpdateNullVolume_0(ctx context.Context, marshaler runtime.Marshaler, server NullVolumeServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq UpdateNullVolumeRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq.NullVolume); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if protoReq.UpdateMask == nil || len(protoReq.UpdateMask.GetPaths()) == 0 { + if fieldMask, err := runtime.FieldMaskFromRequestBody(newReader(), protoReq.NullVolume); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } else { + protoReq.UpdateMask = fieldMask + } + } + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["null_volume.name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "null_volume.name") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "null_volume.name", val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "null_volume.name", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_NullVolumeService_UpdateNullVolume_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.UpdateNullVolume(ctx, &protoReq) + return msg, metadata, err + +} + +var ( + filter_NullVolumeService_ListNullVolumes_0 = &utilities.DoubleArray{Encoding: map[string]int{}, Base: []int(nil), Check: []int(nil)} +) + +func request_NullVolumeService_ListNullVolumes_0(ctx context.Context, marshaler runtime.Marshaler, client NullVolumeServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq ListNullVolumesRequest + var metadata runtime.ServerMetadata + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_NullVolumeService_ListNullVolumes_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.ListNullVolumes(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_NullVolumeService_ListNullVolumes_0(ctx context.Context, marshaler runtime.Marshaler, server NullVolumeServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq ListNullVolumesRequest + var metadata runtime.ServerMetadata + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_NullVolumeService_ListNullVolumes_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.ListNullVolumes(ctx, &protoReq) + return msg, metadata, err + +} + +func request_NullVolumeService_GetNullVolume_0(ctx context.Context, marshaler runtime.Marshaler, client NullVolumeServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetNullVolumeRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") + } + + protoReq.Name, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) + } + + msg, err := client.GetNullVolume(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_NullVolumeService_GetNullVolume_0(ctx context.Context, marshaler runtime.Marshaler, server NullVolumeServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetNullVolumeRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") + } + + protoReq.Name, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) + } + + msg, err := server.GetNullVolume(ctx, &protoReq) + return msg, metadata, err + +} + +func request_NullVolumeService_StatsNullVolume_0(ctx context.Context, marshaler runtime.Marshaler, client NullVolumeServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq StatsNullVolumeRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") + } + + protoReq.Name, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) + } + + msg, err := client.StatsNullVolume(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_NullVolumeService_StatsNullVolume_0(ctx context.Context, marshaler runtime.Marshaler, server NullVolumeServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq StatsNullVolumeRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") + } + + protoReq.Name, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) + } + + msg, err := server.StatsNullVolume(ctx, &protoReq) + return msg, metadata, err + +} + +// RegisterNullVolumeServiceHandlerServer registers the http handlers for service NullVolumeService to "mux". +// UnaryRPC :call NullVolumeServiceServer directly. +// StreamingRPC :currently unsupported pending https://github.com/grpc/grpc-go/issues/906. +// Note that using this registration option will cause many gRPC library features to stop working. Consider using RegisterNullVolumeServiceHandlerFromEndpoint instead. +func RegisterNullVolumeServiceHandlerServer(ctx context.Context, mux *runtime.ServeMux, server NullVolumeServiceServer) error { + + mux.Handle("POST", pattern_NullVolumeService_CreateNullVolume_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/opi_api.storage.v1.NullVolumeService/CreateNullVolume", runtime.WithHTTPPathPattern("/v1/nullVolumes")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_NullVolumeService_CreateNullVolume_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_NullVolumeService_CreateNullVolume_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("DELETE", pattern_NullVolumeService_DeleteNullVolume_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/opi_api.storage.v1.NullVolumeService/DeleteNullVolume", runtime.WithHTTPPathPattern("/v1/{name=nullVolumes/*}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_NullVolumeService_DeleteNullVolume_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_NullVolumeService_DeleteNullVolume_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("PATCH", pattern_NullVolumeService_UpdateNullVolume_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/opi_api.storage.v1.NullVolumeService/UpdateNullVolume", runtime.WithHTTPPathPattern("/v1/{null_volume.name=nullVolumes/*}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_NullVolumeService_UpdateNullVolume_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_NullVolumeService_UpdateNullVolume_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_NullVolumeService_ListNullVolumes_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/opi_api.storage.v1.NullVolumeService/ListNullVolumes", runtime.WithHTTPPathPattern("/v1/nullVolumes")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_NullVolumeService_ListNullVolumes_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_NullVolumeService_ListNullVolumes_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_NullVolumeService_GetNullVolume_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/opi_api.storage.v1.NullVolumeService/GetNullVolume", runtime.WithHTTPPathPattern("/v1/{name=nullVolumes/*}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_NullVolumeService_GetNullVolume_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_NullVolumeService_GetNullVolume_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_NullVolumeService_StatsNullVolume_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/opi_api.storage.v1.NullVolumeService/StatsNullVolume", runtime.WithHTTPPathPattern("/v1/{name=nullVolumes/*}:stats")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_NullVolumeService_StatsNullVolume_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_NullVolumeService_StatsNullVolume_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + return nil +} + +// RegisterNullVolumeServiceHandlerFromEndpoint is same as RegisterNullVolumeServiceHandler but +// automatically dials to "endpoint" and closes the connection when "ctx" gets done. +func RegisterNullVolumeServiceHandlerFromEndpoint(ctx context.Context, mux *runtime.ServeMux, endpoint string, opts []grpc.DialOption) (err error) { + conn, err := grpc.DialContext(ctx, endpoint, opts...) + if err != nil { + return err + } + defer func() { + if err != nil { + if cerr := conn.Close(); cerr != nil { + grpclog.Infof("Failed to close conn to %s: %v", endpoint, cerr) + } + return + } + go func() { + <-ctx.Done() + if cerr := conn.Close(); cerr != nil { + grpclog.Infof("Failed to close conn to %s: %v", endpoint, cerr) + } + }() + }() + + return RegisterNullVolumeServiceHandler(ctx, mux, conn) +} + +// RegisterNullVolumeServiceHandler registers the http handlers for service NullVolumeService to "mux". +// The handlers forward requests to the grpc endpoint over "conn". +func RegisterNullVolumeServiceHandler(ctx context.Context, mux *runtime.ServeMux, conn *grpc.ClientConn) error { + return RegisterNullVolumeServiceHandlerClient(ctx, mux, NewNullVolumeServiceClient(conn)) +} + +// RegisterNullVolumeServiceHandlerClient registers the http handlers for service NullVolumeService +// to "mux". The handlers forward requests to the grpc endpoint over the given implementation of "NullVolumeServiceClient". +// Note: the gRPC framework executes interceptors within the gRPC handler. If the passed in "NullVolumeServiceClient" +// doesn't go through the normal gRPC flow (creating a gRPC client etc.) then it will be up to the passed in +// "NullVolumeServiceClient" to call the correct interceptors. +func RegisterNullVolumeServiceHandlerClient(ctx context.Context, mux *runtime.ServeMux, client NullVolumeServiceClient) error { + + mux.Handle("POST", pattern_NullVolumeService_CreateNullVolume_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/opi_api.storage.v1.NullVolumeService/CreateNullVolume", runtime.WithHTTPPathPattern("/v1/nullVolumes")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_NullVolumeService_CreateNullVolume_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_NullVolumeService_CreateNullVolume_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("DELETE", pattern_NullVolumeService_DeleteNullVolume_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/opi_api.storage.v1.NullVolumeService/DeleteNullVolume", runtime.WithHTTPPathPattern("/v1/{name=nullVolumes/*}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_NullVolumeService_DeleteNullVolume_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_NullVolumeService_DeleteNullVolume_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("PATCH", pattern_NullVolumeService_UpdateNullVolume_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/opi_api.storage.v1.NullVolumeService/UpdateNullVolume", runtime.WithHTTPPathPattern("/v1/{null_volume.name=nullVolumes/*}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_NullVolumeService_UpdateNullVolume_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_NullVolumeService_UpdateNullVolume_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_NullVolumeService_ListNullVolumes_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/opi_api.storage.v1.NullVolumeService/ListNullVolumes", runtime.WithHTTPPathPattern("/v1/nullVolumes")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_NullVolumeService_ListNullVolumes_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_NullVolumeService_ListNullVolumes_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_NullVolumeService_GetNullVolume_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/opi_api.storage.v1.NullVolumeService/GetNullVolume", runtime.WithHTTPPathPattern("/v1/{name=nullVolumes/*}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_NullVolumeService_GetNullVolume_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_NullVolumeService_GetNullVolume_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_NullVolumeService_StatsNullVolume_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/opi_api.storage.v1.NullVolumeService/StatsNullVolume", runtime.WithHTTPPathPattern("/v1/{name=nullVolumes/*}:stats")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_NullVolumeService_StatsNullVolume_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_NullVolumeService_StatsNullVolume_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + return nil +} + +var ( + pattern_NullVolumeService_CreateNullVolume_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"v1", "nullVolumes"}, "")) + + pattern_NullVolumeService_DeleteNullVolume_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 2, 5, 2}, []string{"v1", "nullVolumes", "name"}, "")) + + pattern_NullVolumeService_UpdateNullVolume_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 2, 5, 2}, []string{"v1", "nullVolumes", "null_volume.name"}, "")) + + pattern_NullVolumeService_ListNullVolumes_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"v1", "nullVolumes"}, "")) + + pattern_NullVolumeService_GetNullVolume_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 2, 5, 2}, []string{"v1", "nullVolumes", "name"}, "")) + + pattern_NullVolumeService_StatsNullVolume_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 2, 5, 2}, []string{"v1", "nullVolumes", "name"}, "stats")) +) + +var ( + forward_NullVolumeService_CreateNullVolume_0 = runtime.ForwardResponseMessage + + forward_NullVolumeService_DeleteNullVolume_0 = runtime.ForwardResponseMessage + + forward_NullVolumeService_UpdateNullVolume_0 = runtime.ForwardResponseMessage + + forward_NullVolumeService_ListNullVolumes_0 = runtime.ForwardResponseMessage + + forward_NullVolumeService_GetNullVolume_0 = runtime.ForwardResponseMessage + + forward_NullVolumeService_StatsNullVolume_0 = runtime.ForwardResponseMessage +) diff --git a/storage/v1alpha1/gen/go/backend_null_grpc.pb.go b/storage/v1alpha1/gen/go/backend_null_grpc.pb.go index 87fc36c9..08446942 100644 --- a/storage/v1alpha1/gen/go/backend_null_grpc.pb.go +++ b/storage/v1alpha1/gen/go/backend_null_grpc.pb.go @@ -1,7 +1,11 @@ +// SPDX-License-Identifier: Apache-2.0 +// Copyright (c) 2022 Dell Inc, or its subsidiaries. +// Copyright (C) 2023 Intel Corporation + // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: -// - protoc-gen-go-grpc v1.2.0 -// - protoc v3.21.6 +// - protoc-gen-go-grpc v1.3.0 +// - protoc (unknown) // source: backend_null.proto package _go @@ -19,6 +23,15 @@ import ( // Requires gRPC-Go v1.32.0 or later. const _ = grpc.SupportPackageIsVersion7 +const ( + NullVolumeService_CreateNullVolume_FullMethodName = "/opi_api.storage.v1.NullVolumeService/CreateNullVolume" + NullVolumeService_DeleteNullVolume_FullMethodName = "/opi_api.storage.v1.NullVolumeService/DeleteNullVolume" + NullVolumeService_UpdateNullVolume_FullMethodName = "/opi_api.storage.v1.NullVolumeService/UpdateNullVolume" + NullVolumeService_ListNullVolumes_FullMethodName = "/opi_api.storage.v1.NullVolumeService/ListNullVolumes" + NullVolumeService_GetNullVolume_FullMethodName = "/opi_api.storage.v1.NullVolumeService/GetNullVolume" + NullVolumeService_StatsNullVolume_FullMethodName = "/opi_api.storage.v1.NullVolumeService/StatsNullVolume" +) + // NullVolumeServiceClient is the client API for NullVolumeService service. // // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. @@ -47,7 +60,7 @@ func NewNullVolumeServiceClient(cc grpc.ClientConnInterface) NullVolumeServiceCl func (c *nullVolumeServiceClient) CreateNullVolume(ctx context.Context, in *CreateNullVolumeRequest, opts ...grpc.CallOption) (*NullVolume, error) { out := new(NullVolume) - err := c.cc.Invoke(ctx, "/opi_api.storage.v1.NullVolumeService/CreateNullVolume", in, out, opts...) + err := c.cc.Invoke(ctx, NullVolumeService_CreateNullVolume_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -56,7 +69,7 @@ func (c *nullVolumeServiceClient) CreateNullVolume(ctx context.Context, in *Crea func (c *nullVolumeServiceClient) DeleteNullVolume(ctx context.Context, in *DeleteNullVolumeRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) { out := new(emptypb.Empty) - err := c.cc.Invoke(ctx, "/opi_api.storage.v1.NullVolumeService/DeleteNullVolume", in, out, opts...) + err := c.cc.Invoke(ctx, NullVolumeService_DeleteNullVolume_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -65,7 +78,7 @@ func (c *nullVolumeServiceClient) DeleteNullVolume(ctx context.Context, in *Dele func (c *nullVolumeServiceClient) UpdateNullVolume(ctx context.Context, in *UpdateNullVolumeRequest, opts ...grpc.CallOption) (*NullVolume, error) { out := new(NullVolume) - err := c.cc.Invoke(ctx, "/opi_api.storage.v1.NullVolumeService/UpdateNullVolume", in, out, opts...) + err := c.cc.Invoke(ctx, NullVolumeService_UpdateNullVolume_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -74,7 +87,7 @@ func (c *nullVolumeServiceClient) UpdateNullVolume(ctx context.Context, in *Upda func (c *nullVolumeServiceClient) ListNullVolumes(ctx context.Context, in *ListNullVolumesRequest, opts ...grpc.CallOption) (*ListNullVolumesResponse, error) { out := new(ListNullVolumesResponse) - err := c.cc.Invoke(ctx, "/opi_api.storage.v1.NullVolumeService/ListNullVolumes", in, out, opts...) + err := c.cc.Invoke(ctx, NullVolumeService_ListNullVolumes_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -83,7 +96,7 @@ func (c *nullVolumeServiceClient) ListNullVolumes(ctx context.Context, in *ListN func (c *nullVolumeServiceClient) GetNullVolume(ctx context.Context, in *GetNullVolumeRequest, opts ...grpc.CallOption) (*NullVolume, error) { out := new(NullVolume) - err := c.cc.Invoke(ctx, "/opi_api.storage.v1.NullVolumeService/GetNullVolume", in, out, opts...) + err := c.cc.Invoke(ctx, NullVolumeService_GetNullVolume_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -92,7 +105,7 @@ func (c *nullVolumeServiceClient) GetNullVolume(ctx context.Context, in *GetNull func (c *nullVolumeServiceClient) StatsNullVolume(ctx context.Context, in *StatsNullVolumeRequest, opts ...grpc.CallOption) (*StatsNullVolumeResponse, error) { out := new(StatsNullVolumeResponse) - err := c.cc.Invoke(ctx, "/opi_api.storage.v1.NullVolumeService/StatsNullVolume", in, out, opts...) + err := c.cc.Invoke(ctx, NullVolumeService_StatsNullVolume_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -100,7 +113,7 @@ func (c *nullVolumeServiceClient) StatsNullVolume(ctx context.Context, in *Stats } // NullVolumeServiceServer is the server API for NullVolumeService service. -// All implementations should embed UnimplementedNullVolumeServiceServer +// All implementations must embed UnimplementedNullVolumeServiceServer // for forward compatibility type NullVolumeServiceServer interface { // Create an Null Volume @@ -115,9 +128,10 @@ type NullVolumeServiceServer interface { GetNullVolume(context.Context, *GetNullVolumeRequest) (*NullVolume, error) // Get an Null Volume statistics StatsNullVolume(context.Context, *StatsNullVolumeRequest) (*StatsNullVolumeResponse, error) + mustEmbedUnimplementedNullVolumeServiceServer() } -// UnimplementedNullVolumeServiceServer should be embedded to have forward compatible implementations. +// UnimplementedNullVolumeServiceServer must be embedded to have forward compatible implementations. type UnimplementedNullVolumeServiceServer struct { } @@ -139,6 +153,7 @@ func (UnimplementedNullVolumeServiceServer) GetNullVolume(context.Context, *GetN func (UnimplementedNullVolumeServiceServer) StatsNullVolume(context.Context, *StatsNullVolumeRequest) (*StatsNullVolumeResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method StatsNullVolume not implemented") } +func (UnimplementedNullVolumeServiceServer) mustEmbedUnimplementedNullVolumeServiceServer() {} // UnsafeNullVolumeServiceServer may be embedded to opt out of forward compatibility for this service. // Use of this interface is not recommended, as added methods to NullVolumeServiceServer will @@ -161,7 +176,7 @@ func _NullVolumeService_CreateNullVolume_Handler(srv interface{}, ctx context.Co } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/opi_api.storage.v1.NullVolumeService/CreateNullVolume", + FullMethod: NullVolumeService_CreateNullVolume_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(NullVolumeServiceServer).CreateNullVolume(ctx, req.(*CreateNullVolumeRequest)) @@ -179,7 +194,7 @@ func _NullVolumeService_DeleteNullVolume_Handler(srv interface{}, ctx context.Co } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/opi_api.storage.v1.NullVolumeService/DeleteNullVolume", + FullMethod: NullVolumeService_DeleteNullVolume_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(NullVolumeServiceServer).DeleteNullVolume(ctx, req.(*DeleteNullVolumeRequest)) @@ -197,7 +212,7 @@ func _NullVolumeService_UpdateNullVolume_Handler(srv interface{}, ctx context.Co } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/opi_api.storage.v1.NullVolumeService/UpdateNullVolume", + FullMethod: NullVolumeService_UpdateNullVolume_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(NullVolumeServiceServer).UpdateNullVolume(ctx, req.(*UpdateNullVolumeRequest)) @@ -215,7 +230,7 @@ func _NullVolumeService_ListNullVolumes_Handler(srv interface{}, ctx context.Con } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/opi_api.storage.v1.NullVolumeService/ListNullVolumes", + FullMethod: NullVolumeService_ListNullVolumes_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(NullVolumeServiceServer).ListNullVolumes(ctx, req.(*ListNullVolumesRequest)) @@ -233,7 +248,7 @@ func _NullVolumeService_GetNullVolume_Handler(srv interface{}, ctx context.Conte } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/opi_api.storage.v1.NullVolumeService/GetNullVolume", + FullMethod: NullVolumeService_GetNullVolume_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(NullVolumeServiceServer).GetNullVolume(ctx, req.(*GetNullVolumeRequest)) @@ -251,7 +266,7 @@ func _NullVolumeService_StatsNullVolume_Handler(srv interface{}, ctx context.Con } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/opi_api.storage.v1.NullVolumeService/StatsNullVolume", + FullMethod: NullVolumeService_StatsNullVolume_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(NullVolumeServiceServer).StatsNullVolume(ctx, req.(*StatsNullVolumeRequest)) diff --git a/storage/v1alpha1/gen/go/backend_nvme.pb.go b/storage/v1alpha1/gen/go/backend_nvme.pb.go index 02087928..872dad0a 100644 --- a/storage/v1alpha1/gen/go/backend_nvme.pb.go +++ b/storage/v1alpha1/gen/go/backend_nvme.pb.go @@ -4,14 +4,13 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.1 -// protoc v3.21.6 +// protoc-gen-go v1.31.0 +// protoc (unknown) // source: backend_nvme.proto package _go import ( - _go "github.com/opiproject/opi-api/common/v1/gen/go" _ "google.golang.org/genproto/googleapis/api/annotations" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" @@ -438,7 +437,7 @@ type NvmeRemoteNamespace struct { // mandatory if guid is not specified Eui64 int64 `protobuf:"varint,4,opt,name=eui64,proto3" json:"eui64,omitempty"` // Globally unique identifier for the namespace - Uuid *_go.Uuid `protobuf:"bytes,5,opt,name=uuid,proto3" json:"uuid,omitempty"` + Uuid string `protobuf:"bytes,5,opt,name=uuid,proto3" json:"uuid,omitempty"` } func (x *NvmeRemoteNamespace) Reset() { @@ -501,11 +500,11 @@ func (x *NvmeRemoteNamespace) GetEui64() int64 { return 0 } -func (x *NvmeRemoteNamespace) GetUuid() *_go.Uuid { +func (x *NvmeRemoteNamespace) GetUuid() string { if x != nil { return x.Uuid } - return nil + return "" } // Represents a request to create an Nvme Remote Controller. @@ -1672,460 +1671,458 @@ var file_backend_nvme_proto_rawDesc = []byte{ 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x20, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x0f, 0x6f, 0x70, 0x69, 0x63, - 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x0a, 0x75, 0x75, 0x69, - 0x64, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xff, 0x02, 0x0a, 0x14, 0x4e, 0x76, 0x6d, 0x65, - 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, - 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, - 0xe0, 0x41, 0x08, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x44, 0x0a, 0x09, 0x6d, 0x75, 0x6c, - 0x74, 0x69, 0x70, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 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, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x61, 0x74, 0x68, 0x42, - 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x61, 0x74, 0x68, 0x12, - 0x2b, 0x0a, 0x0f, 0x69, 0x6f, 0x5f, 0x71, 0x75, 0x65, 0x75, 0x65, 0x73, 0x5f, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0d, 0x69, - 0x6f, 0x51, 0x75, 0x65, 0x75, 0x65, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x22, 0x0a, 0x0a, - 0x71, 0x75, 0x65, 0x75, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, - 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x71, 0x75, 0x65, 0x75, 0x65, 0x53, 0x69, 0x7a, 0x65, - 0x12, 0x38, 0x0a, 0x03, 0x74, 0x63, 0x70, 0x18, 0x05, 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, 0x54, 0x63, 0x70, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, - 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x03, 0x74, 0x63, 0x70, 0x3a, 0x7d, 0xea, 0x41, 0x7a, 0x0a, - 0x27, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, - 0x2e, 0x76, 0x31, 0x2f, 0x4e, 0x76, 0x6d, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x43, 0x6f, - 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x12, 0x22, 0x6e, 0x76, 0x6d, 0x65, 0x52, 0x65, - 0x6d, 0x6f, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x73, 0x2f, - 0x7b, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x7d, 0x2a, 0x15, 0x6e, 0x76, + 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xff, 0x02, 0x0a, 0x14, + 0x4e, 0x76, 0x6d, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, + 0x6c, 0x6c, 0x65, 0x72, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x08, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x44, 0x0a, + 0x09, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, + 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, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x70, + 0x61, 0x74, 0x68, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, + 0x61, 0x74, 0x68, 0x12, 0x2b, 0x0a, 0x0f, 0x69, 0x6f, 0x5f, 0x71, 0x75, 0x65, 0x75, 0x65, 0x73, + 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x42, 0x03, 0xe0, 0x41, + 0x01, 0x52, 0x0d, 0x69, 0x6f, 0x51, 0x75, 0x65, 0x75, 0x65, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x12, 0x22, 0x0a, 0x0a, 0x71, 0x75, 0x65, 0x75, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x03, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x71, 0x75, 0x65, 0x75, 0x65, + 0x53, 0x69, 0x7a, 0x65, 0x12, 0x38, 0x0a, 0x03, 0x74, 0x63, 0x70, 0x18, 0x05, 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, 0x54, 0x63, 0x70, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, + 0x6c, 0x6c, 0x65, 0x72, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x03, 0x74, 0x63, 0x70, 0x3a, 0x7d, + 0xea, 0x41, 0x7a, 0x0a, 0x27, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, + 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2f, 0x4e, 0x76, 0x6d, 0x65, 0x52, 0x65, 0x6d, 0x6f, + 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x12, 0x22, 0x6e, 0x76, 0x6d, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, - 0x65, 0x72, 0x73, 0x32, 0x14, 0x6e, 0x76, 0x6d, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x43, - 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x22, 0x5c, 0x0a, 0x0d, 0x54, 0x63, 0x70, - 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x68, 0x64, - 0x67, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x05, - 0x68, 0x64, 0x67, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x05, 0x64, 0x64, 0x67, 0x73, 0x74, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x05, 0x64, 0x64, 0x67, 0x73, 0x74, - 0x12, 0x15, 0x0a, 0x03, 0x70, 0x73, 0x6b, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x03, 0xe0, - 0x41, 0x01, 0x52, 0x03, 0x70, 0x73, 0x6b, 0x22, 0xb0, 0x02, 0x0a, 0x08, 0x4e, 0x76, 0x6d, 0x65, - 0x50, 0x61, 0x74, 0x68, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x08, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 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, 0x1b, 0x0a, 0x06, 0x74, 0x72, 0x61, 0x64, 0x64, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x74, 0x72, 0x61, 0x64, 0x64, 0x72, 0x12, 0x3e, - 0x0a, 0x07, 0x66, 0x61, 0x62, 0x72, 0x69, 0x63, 0x73, 0x18, 0x04, 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, 0x46, 0x61, 0x62, 0x72, 0x69, 0x63, 0x73, 0x50, 0x61, 0x74, 0x68, - 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x07, 0x66, 0x61, 0x62, 0x72, 0x69, 0x63, 0x73, 0x3a, 0x6a, - 0xea, 0x41, 0x67, 0x0a, 0x1b, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, - 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2f, 0x4e, 0x76, 0x6d, 0x65, 0x50, 0x61, 0x74, 0x68, - 0x12, 0x33, 0x6e, 0x76, 0x6d, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, - 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, - 0x6c, 0x65, 0x72, 0x7d, 0x2f, 0x6e, 0x76, 0x6d, 0x65, 0x50, 0x61, 0x74, 0x68, 0x73, 0x2f, 0x7b, - 0x70, 0x61, 0x74, 0x68, 0x7d, 0x2a, 0x09, 0x6e, 0x76, 0x6d, 0x65, 0x50, 0x61, 0x74, 0x68, 0x73, - 0x32, 0x08, 0x6e, 0x76, 0x6d, 0x65, 0x50, 0x61, 0x74, 0x68, 0x22, 0x82, 0x02, 0x0a, 0x0b, 0x46, - 0x61, 0x62, 0x72, 0x69, 0x63, 0x73, 0x50, 0x61, 0x74, 0x68, 0x12, 0x1d, 0x0a, 0x07, 0x74, 0x72, - 0x73, 0x76, 0x63, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x42, 0x03, 0xe0, 0x41, 0x02, - 0x52, 0x07, 0x74, 0x72, 0x73, 0x76, 0x63, 0x69, 0x64, 0x12, 0x1b, 0x0a, 0x06, 0x73, 0x75, 0x62, - 0x6e, 0x71, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, - 0x73, 0x75, 0x62, 0x6e, 0x71, 0x6e, 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, 0x12, 0x28, 0x0a, 0x0d, 0x73, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x5f, 0x74, 0x72, 0x61, 0x64, 0x64, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0c, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x54, 0x72, - 0x61, 0x64, 0x64, 0x72, 0x12, 0x2a, 0x0a, 0x0e, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x74, - 0x72, 0x73, 0x76, 0x63, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x42, 0x03, 0xe0, 0x41, - 0x01, 0x52, 0x0d, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x54, 0x72, 0x73, 0x76, 0x63, 0x69, 0x64, - 0x12, 0x1d, 0x0a, 0x07, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x71, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x07, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x71, 0x6e, 0x22, - 0xce, 0x02, 0x0a, 0x13, 0x4e, 0x76, 0x6d, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x4e, 0x61, - 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x08, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x73, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, - 0xe0, 0x41, 0x03, 0x52, 0x04, 0x6e, 0x73, 0x69, 0x64, 0x12, 0x19, 0x0a, 0x05, 0x6e, 0x67, 0x75, - 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 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, 0x03, 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, 0x03, 0x52, 0x04, 0x75, 0x75, 0x69, - 0x64, 0x3a, 0x9c, 0x01, 0xea, 0x41, 0x98, 0x01, 0x0a, 0x26, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, - 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2f, 0x4e, 0x76, 0x6d, - 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, - 0x12, 0x43, 0x6e, 0x76, 0x6d, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, - 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, - 0x6c, 0x65, 0x72, 0x7d, 0x2f, 0x6e, 0x76, 0x6d, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x4e, - 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, - 0x70, 0x61, 0x63, 0x65, 0x7d, 0x2a, 0x14, 0x6e, 0x76, 0x6d, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x74, - 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x32, 0x13, 0x6e, 0x76, 0x6d, - 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, - 0x22, 0xc8, 0x01, 0x0a, 0x21, 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, 0x12, 0x63, 0x0a, 0x16, 0x6e, 0x76, 0x6d, 0x65, 0x5f, 0x72, - 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 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, - 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x14, 0x6e, 0x76, 0x6d, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x74, - 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x12, 0x3e, 0x0a, 0x19, 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, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, - 0xe0, 0x41, 0x01, 0x52, 0x16, 0x6e, 0x76, 0x6d, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x43, - 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x49, 0x64, 0x22, 0x92, 0x01, 0x0a, 0x21, - 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, 0x12, 0x43, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, - 0x2f, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x29, 0x0a, 0x27, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, + 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x7d, + 0x2a, 0x15, 0x6e, 0x76, 0x6d, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, + 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x73, 0x32, 0x14, 0x6e, 0x76, 0x6d, 0x65, 0x52, 0x65, 0x6d, + 0x6f, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x22, 0x5c, 0x0a, + 0x0d, 0x54, 0x63, 0x70, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x12, 0x19, + 0x0a, 0x05, 0x68, 0x64, 0x67, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, + 0x41, 0x01, 0x52, 0x05, 0x68, 0x64, 0x67, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x05, 0x64, 0x64, 0x67, + 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x05, 0x64, + 0x64, 0x67, 0x73, 0x74, 0x12, 0x15, 0x0a, 0x03, 0x70, 0x73, 0x6b, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0c, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x03, 0x70, 0x73, 0x6b, 0x22, 0xb0, 0x02, 0x0a, 0x08, + 0x4e, 0x76, 0x6d, 0x65, 0x50, 0x61, 0x74, 0x68, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x08, 0x52, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 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, 0x1b, 0x0a, 0x06, 0x74, 0x72, 0x61, 0x64, 0x64, 0x72, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x74, 0x72, 0x61, 0x64, + 0x64, 0x72, 0x12, 0x3e, 0x0a, 0x07, 0x66, 0x61, 0x62, 0x72, 0x69, 0x63, 0x73, 0x18, 0x04, 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, 0x46, 0x61, 0x62, 0x72, 0x69, 0x63, 0x73, + 0x50, 0x61, 0x74, 0x68, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x07, 0x66, 0x61, 0x62, 0x72, 0x69, + 0x63, 0x73, 0x3a, 0x6a, 0xea, 0x41, 0x67, 0x0a, 0x1b, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2f, 0x4e, 0x76, 0x6d, 0x65, - 0x52, 0x65, 0x6d, 0x6f, 0x74, 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, 0xf4, 0x01, 0x0a, 0x21, 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, 0x12, 0x63, 0x0a, 0x16, 0x6e, 0x76, 0x6d, 0x65, 0x5f, 0x72, + 0x50, 0x61, 0x74, 0x68, 0x12, 0x33, 0x6e, 0x76, 0x6d, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, + 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6f, 0x6e, + 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x7d, 0x2f, 0x6e, 0x76, 0x6d, 0x65, 0x50, 0x61, 0x74, + 0x68, 0x73, 0x2f, 0x7b, 0x70, 0x61, 0x74, 0x68, 0x7d, 0x2a, 0x09, 0x6e, 0x76, 0x6d, 0x65, 0x50, + 0x61, 0x74, 0x68, 0x73, 0x32, 0x08, 0x6e, 0x76, 0x6d, 0x65, 0x50, 0x61, 0x74, 0x68, 0x22, 0x82, + 0x02, 0x0a, 0x0b, 0x46, 0x61, 0x62, 0x72, 0x69, 0x63, 0x73, 0x50, 0x61, 0x74, 0x68, 0x12, 0x1d, + 0x0a, 0x07, 0x74, 0x72, 0x73, 0x76, 0x63, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x42, + 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, 0x74, 0x72, 0x73, 0x76, 0x63, 0x69, 0x64, 0x12, 0x1b, 0x0a, + 0x06, 0x73, 0x75, 0x62, 0x6e, 0x71, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, + 0x41, 0x02, 0x52, 0x06, 0x73, 0x75, 0x62, 0x6e, 0x71, 0x6e, 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, 0x12, 0x28, + 0x0a, 0x0d, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x74, 0x72, 0x61, 0x64, 0x64, 0x72, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0c, 0x73, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x54, 0x72, 0x61, 0x64, 0x64, 0x72, 0x12, 0x2a, 0x0a, 0x0e, 0x73, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x5f, 0x74, 0x72, 0x73, 0x76, 0x63, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, + 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0d, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x54, 0x72, 0x73, + 0x76, 0x63, 0x69, 0x64, 0x12, 0x1d, 0x0a, 0x07, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x71, 0x6e, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x07, 0x68, 0x6f, 0x73, 0x74, + 0x6e, 0x71, 0x6e, 0x22, 0xb5, 0x02, 0x0a, 0x13, 0x4e, 0x76, 0x6d, 0x65, 0x52, 0x65, 0x6d, 0x6f, + 0x74, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x17, 0x0a, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x08, 0x52, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x73, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x04, 0x6e, 0x73, 0x69, 0x64, 0x12, 0x19, 0x0a, + 0x05, 0x6e, 0x67, 0x75, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, + 0x03, 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, 0x03, 0x52, 0x05, 0x65, 0x75, + 0x69, 0x36, 0x34, 0x12, 0x17, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x3a, 0x9c, 0x01, 0xea, + 0x41, 0x98, 0x01, 0x0a, 0x26, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, + 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2f, 0x4e, 0x76, 0x6d, 0x65, 0x52, 0x65, 0x6d, 0x6f, + 0x74, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x43, 0x6e, 0x76, 0x6d, + 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, + 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x7d, 0x2f, + 0x6e, 0x76, 0x6d, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, + 0x61, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x7d, + 0x2a, 0x14, 0x6e, 0x76, 0x6d, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x4e, 0x61, 0x6d, 0x65, + 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x32, 0x13, 0x6e, 0x76, 0x6d, 0x65, 0x52, 0x65, 0x6d, 0x6f, + 0x74, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x22, 0xc8, 0x01, 0x0a, 0x21, + 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, 0x12, 0x63, 0x0a, 0x16, 0x6e, 0x76, 0x6d, 0x65, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, + 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 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, 0x42, 0x03, 0xe0, 0x41, 0x02, + 0x52, 0x14, 0x6e, 0x76, 0x6d, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, + 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x12, 0x3e, 0x0a, 0x19, 0x6e, 0x76, 0x6d, 0x65, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 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, - 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x14, 0x6e, 0x76, 0x6d, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x74, - 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, 0x68, 0x0a, 0x20, 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, 0x12, 0x20, 0x0a, 0x09, 0x70, - 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x01, 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, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, - 0x6e, 0x22, 0xad, 0x01, 0x0a, 0x21, 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, 0x12, 0x60, 0x0a, 0x17, 0x6e, 0x76, 0x6d, 0x65, 0x5f, - 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, - 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 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, 0x52, 0x15, 0x6e, 0x76, 0x6d, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x74, 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, 0x65, 0x0a, 0x1e, 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, 0x12, 0x43, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x42, 0x2f, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x29, 0x0a, 0x27, 0x6f, 0x70, 0x69, 0x5f, 0x61, - 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2f, 0x4e, 0x76, - 0x6d, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, - 0x65, 0x72, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x67, 0x0a, 0x20, 0x52, 0x65, 0x73, 0x65, - 0x74, 0x4e, 0x76, 0x6d, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, + 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x16, + 0x6e, 0x76, 0x6d, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, + 0x6c, 0x6c, 0x65, 0x72, 0x49, 0x64, 0x22, 0x92, 0x01, 0x0a, 0x21, 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, 0x12, 0x43, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2f, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x29, 0x0a, 0x27, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2f, 0x4e, 0x76, 0x6d, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x52, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x22, 0x67, 0x0a, 0x20, 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, 0x12, 0x43, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x42, 0x2f, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x29, 0x0a, 0x27, 0x6f, 0x70, 0x69, - 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2f, - 0x4e, 0x76, 0x6d, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, - 0x6c, 0x6c, 0x65, 0x72, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x5a, 0x0a, 0x21, 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, 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, 0xaf, 0x01, 0x0a, 0x1f, 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, 0x12, 0x46, 0x0a, 0x06, 0x70, 0x61, - 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2e, 0xe0, 0x41, 0x02, 0xfa, - 0x41, 0x28, 0x12, 0x26, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, - 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2f, 0x4e, 0x76, 0x6d, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x74, - 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, 0xa9, 0x01, 0x0a, 0x20, 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, 0x12, 0x5d, 0x0a, - 0x16, 0x6e, 0x76, 0x6d, 0x65, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x6e, 0x61, 0x6d, - 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 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, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x4e, 0x61, 0x6d, - 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x52, 0x14, 0x6e, 0x76, 0x6d, 0x65, 0x52, 0x65, 0x6d, 0x6f, - 0x74, 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, 0x63, 0x0a, 0x1d, 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, 0x12, 0x42, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x42, 0x2e, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x28, 0x0a, 0x26, 0x6f, 0x70, 0x69, - 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2f, - 0x4e, 0x76, 0x6d, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, - 0x61, 0x63, 0x65, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xc7, 0x01, 0x0a, 0x15, 0x43, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x4e, 0x76, 0x6d, 0x65, 0x50, 0x61, 0x74, 0x68, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x47, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x42, 0x2f, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x29, 0x0a, 0x27, 0x6f, 0x70, 0x69, - 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2f, - 0x4e, 0x76, 0x6d, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, - 0x6c, 0x6c, 0x65, 0x72, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x3e, 0x0a, 0x09, - 0x6e, 0x76, 0x6d, 0x65, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x02, 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, 0x4e, 0x76, 0x6d, 0x65, 0x50, 0x61, 0x74, 0x68, 0x42, 0x03, 0xe0, - 0x41, 0x02, 0x52, 0x08, 0x6e, 0x76, 0x6d, 0x65, 0x50, 0x61, 0x74, 0x68, 0x12, 0x25, 0x0a, 0x0c, - 0x6e, 0x76, 0x6d, 0x65, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0a, 0x6e, 0x76, 0x6d, 0x65, 0x50, 0x61, 0x74, - 0x68, 0x49, 0x64, 0x22, 0x7a, 0x0a, 0x15, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4e, 0x76, 0x6d, - 0x65, 0x50, 0x61, 0x74, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x37, 0x0a, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x23, 0xe0, 0x41, 0x02, 0xfa, - 0x41, 0x1d, 0x0a, 0x1b, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, - 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2f, 0x4e, 0x76, 0x6d, 0x65, 0x50, 0x61, 0x74, 0x68, 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, - 0xc3, 0x01, 0x0a, 0x15, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x76, 0x6d, 0x65, 0x50, 0x61, - 0x74, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3e, 0x0a, 0x09, 0x6e, 0x76, 0x6d, - 0x65, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, + 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, 0xf4, 0x01, 0x0a, 0x21, + 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, 0x12, 0x63, 0x0a, 0x16, 0x6e, 0x76, 0x6d, 0x65, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, + 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 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, 0x42, 0x03, 0xe0, 0x41, 0x02, + 0x52, 0x14, 0x6e, 0x76, 0x6d, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x74, 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, 0x68, 0x0a, 0x20, 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, 0x12, 0x20, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, + 0x69, 0x7a, 0x65, 0x18, 0x01, 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, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, + 0x01, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0xad, 0x01, 0x0a, + 0x21, 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, 0x12, 0x60, 0x0a, 0x17, 0x6e, 0x76, 0x6d, 0x65, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x74, + 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x0b, 0x32, 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, 0x52, 0x15, 0x6e, + 0x76, 0x6d, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x74, 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, 0x65, 0x0a, 0x1e, + 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, 0x12, 0x43, + 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2f, 0xe0, 0x41, + 0x02, 0xfa, 0x41, 0x29, 0x0a, 0x27, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, + 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2f, 0x4e, 0x76, 0x6d, 0x65, 0x52, 0x65, 0x6d, + 0x6f, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x52, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x22, 0x67, 0x0a, 0x20, 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, 0x12, 0x43, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2f, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x29, 0x0a, 0x27, 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, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, - 0x08, 0x6e, 0x76, 0x6d, 0x65, 0x50, 0x61, 0x74, 0x68, 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, 0x99, 0x01, 0x0a, 0x14, 0x4c, 0x69, 0x73, 0x74, 0x4e, 0x76, - 0x6d, 0x65, 0x50, 0x61, 0x74, 0x68, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3b, - 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x23, - 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x1d, 0x12, 0x1b, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, - 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2f, 0x4e, 0x76, 0x6d, 0x65, 0x50, - 0x61, 0x74, 0x68, 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, 0x7c, 0x0a, 0x15, 0x4c, 0x69, 0x73, 0x74, 0x4e, 0x76, 0x6d, 0x65, 0x50, 0x61, 0x74, - 0x68, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3b, 0x0a, 0x0a, 0x6e, 0x76, - 0x6d, 0x65, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 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, 0x52, 0x09, 0x6e, 0x76, - 0x6d, 0x65, 0x50, 0x61, 0x74, 0x68, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, + 0x31, 0x2f, 0x4e, 0x76, 0x6d, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, + 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x67, 0x0a, 0x20, + 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, + 0x12, 0x43, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2f, + 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x29, 0x0a, 0x27, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, + 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2f, 0x4e, 0x76, 0x6d, 0x65, 0x52, + 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x52, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x5a, 0x0a, 0x21, 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, 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, 0xaf, 0x01, 0x0a, 0x1f, 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, 0x12, 0x46, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2e, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x28, 0x12, 0x26, 0x6f, + 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, + 0x31, 0x2f, 0x4e, 0x76, 0x6d, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x74, 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, 0xa9, 0x01, 0x0a, 0x20, 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, 0x12, 0x5d, 0x0a, 0x16, 0x6e, 0x76, 0x6d, 0x65, + 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, + 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 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, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, + 0x65, 0x52, 0x14, 0x6e, 0x76, 0x6d, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x74, 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, - 0x4d, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x4e, 0x76, 0x6d, 0x65, 0x50, 0x61, 0x74, 0x68, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x37, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x42, 0x23, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x1d, 0x0a, 0x1b, 0x6f, 0x70, 0x69, - 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2f, - 0x4e, 0x76, 0x6d, 0x65, 0x50, 0x61, 0x74, 0x68, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x4f, - 0x0a, 0x14, 0x53, 0x74, 0x61, 0x74, 0x73, 0x4e, 0x76, 0x6d, 0x65, 0x50, 0x61, 0x74, 0x68, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x37, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x42, 0x23, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x1d, 0x0a, 0x1b, 0x6f, 0x70, - 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, - 0x2f, 0x4e, 0x76, 0x6d, 0x65, 0x50, 0x61, 0x74, 0x68, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, - 0x4e, 0x0a, 0x15, 0x53, 0x74, 0x61, 0x74, 0x73, 0x4e, 0x76, 0x6d, 0x65, 0x50, 0x61, 0x74, 0x68, - 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, - 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, 0x86, 0x16, 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, 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, 0xab, 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, + 0x63, 0x0a, 0x1d, 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, + 0x12, 0x42, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2e, + 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x28, 0x0a, 0x26, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, + 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2f, 0x4e, 0x76, 0x6d, 0x65, 0x52, + 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x52, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xc7, 0x01, 0x0a, 0x15, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, + 0x76, 0x6d, 0x65, 0x50, 0x61, 0x74, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x47, + 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2f, + 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x29, 0x0a, 0x27, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, + 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2f, 0x4e, 0x76, 0x6d, 0x65, 0x52, + 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x52, + 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x3e, 0x0a, 0x09, 0x6e, 0x76, 0x6d, 0x65, 0x5f, + 0x70, 0x61, 0x74, 0x68, 0x18, 0x02, 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, + 0x4e, 0x76, 0x6d, 0x65, 0x50, 0x61, 0x74, 0x68, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x6e, + 0x76, 0x6d, 0x65, 0x50, 0x61, 0x74, 0x68, 0x12, 0x25, 0x0a, 0x0c, 0x6e, 0x76, 0x6d, 0x65, 0x5f, + 0x70, 0x61, 0x74, 0x68, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, + 0x41, 0x01, 0x52, 0x0a, 0x6e, 0x76, 0x6d, 0x65, 0x50, 0x61, 0x74, 0x68, 0x49, 0x64, 0x22, 0x7a, + 0x0a, 0x15, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4e, 0x76, 0x6d, 0x65, 0x50, 0x61, 0x74, 0x68, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x37, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x23, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x1d, 0x0a, 0x1b, 0x6f, + 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, + 0x31, 0x2f, 0x4e, 0x76, 0x6d, 0x65, 0x50, 0x61, 0x74, 0x68, 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, 0xc3, 0x01, 0x0a, 0x15, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x76, 0x6d, 0x65, 0x50, 0x61, 0x74, 0x68, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x3e, 0x0a, 0x09, 0x6e, 0x76, 0x6d, 0x65, 0x5f, 0x70, 0x61, 0x74, + 0x68, 0x18, 0x01, 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, 0x4e, 0x76, 0x6d, + 0x65, 0x50, 0x61, 0x74, 0x68, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x6e, 0x76, 0x6d, 0x65, + 0x50, 0x61, 0x74, 0x68, 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, 0x99, 0x01, 0x0a, 0x14, 0x4c, 0x69, 0x73, 0x74, 0x4e, 0x76, 0x6d, 0x65, 0x50, 0x61, 0x74, + 0x68, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3b, 0x0a, 0x06, 0x70, 0x61, 0x72, + 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x23, 0xe0, 0x41, 0x02, 0xfa, 0x41, + 0x1d, 0x12, 0x1b, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, + 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2f, 0x4e, 0x76, 0x6d, 0x65, 0x50, 0x61, 0x74, 0x68, 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, 0x7c, 0x0a, 0x15, + 0x4c, 0x69, 0x73, 0x74, 0x4e, 0x76, 0x6d, 0x65, 0x50, 0x61, 0x74, 0x68, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3b, 0x0a, 0x0a, 0x6e, 0x76, 0x6d, 0x65, 0x5f, 0x70, 0x61, + 0x74, 0x68, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 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, 0x52, 0x09, 0x6e, 0x76, 0x6d, 0x65, 0x50, 0x61, 0x74, + 0x68, 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, 0x4d, 0x0a, 0x12, 0x47, 0x65, + 0x74, 0x4e, 0x76, 0x6d, 0x65, 0x50, 0x61, 0x74, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x37, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x23, + 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x1d, 0x0a, 0x1b, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, + 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2f, 0x4e, 0x76, 0x6d, 0x65, 0x50, + 0x61, 0x74, 0x68, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x4f, 0x0a, 0x14, 0x53, 0x74, 0x61, + 0x74, 0x73, 0x4e, 0x76, 0x6d, 0x65, 0x50, 0x61, 0x74, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x37, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x23, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x1d, 0x0a, 0x1b, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, + 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2f, 0x4e, 0x76, 0x6d, 0x65, + 0x50, 0x61, 0x74, 0x68, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x4e, 0x0a, 0x15, 0x53, 0x74, + 0x61, 0x74, 0x73, 0x4e, 0x76, 0x6d, 0x65, 0x50, 0x61, 0x74, 0x68, 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, 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, 0x86, 0x16, 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, 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, 0x21, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1b, 0x12, 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, 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, + 0x6c, 0x65, 0x72, 0x22, 0x6c, 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, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x33, 0x3a, 0x16, + 0x6e, 0x76, 0x6d, 0x65, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x74, + 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 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, 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, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 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, 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, 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, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x53, 0x3a, + 0x16, 0x6e, 0x76, 0x6d, 0x65, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x63, 0x6f, 0x6e, + 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 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, 0x12, 0xab, 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, 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, + 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, 0x21, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x1b, 0x12, 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, + 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, 0xda, 0x41, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 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, 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, 0xda, 0x41, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2d, 0x3a, 0x01, 0x2a, 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, 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, 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, 0xd1, - 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, + 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x37, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 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, 0x12, 0xd1, 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, 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, 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, 0x4a, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3b, 0x12, 0x39, - 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 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, 0x2f, 0x6e, 0x76, 0x6d, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x4e, - 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0xda, 0x41, 0x06, 0x70, 0x61, 0x72, 0x65, - 0x6e, 0x74, 0x12, 0xbe, 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, 0x4e, 0x76, 0x6d, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, - 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x22, 0x48, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x3b, 0x12, 0x39, 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, 0x2f, 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, 0xbc, 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, - 0x61, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3b, 0x22, 0x2e, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, - 0x72, 0x65, 0x6e, 0x74, 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, 0x2f, 0x6e, 0x76, - 0x6d, 0x65, 0x50, 0x61, 0x74, 0x68, 0x73, 0x3a, 0x09, 0x6e, 0x76, 0x6d, 0x65, 0x5f, 0x70, 0x61, - 0x74, 0x68, 0xda, 0x41, 0x1d, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x2c, 0x6e, 0x76, 0x6d, 0x65, - 0x5f, 0x70, 0x61, 0x74, 0x68, 0x2c, 0x6e, 0x76, 0x6d, 0x65, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x5f, - 0x69, 0x64, 0x12, 0x92, 0x01, 0x0a, 0x0e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4e, 0x76, 0x6d, + 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x4a, 0xda, 0x41, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x3b, 0x12, 0x39, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 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, 0x2f, 0x6e, 0x76, 0x6d, 0x65, 0x52, 0x65, 0x6d, + 0x6f, 0x74, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x12, 0xbe, 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, 0x4e, 0x76, 0x6d, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, + 0x70, 0x61, 0x63, 0x65, 0x22, 0x48, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x3b, 0x12, 0x39, 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, 0x2f, 0x6e, 0x76, 0x6d, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x74, + 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xbc, + 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, 0x61, 0xda, 0x41, 0x1d, 0x70, + 0x61, 0x72, 0x65, 0x6e, 0x74, 0x2c, 0x6e, 0x76, 0x6d, 0x65, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x2c, + 0x6e, 0x76, 0x6d, 0x65, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x69, 0x64, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x3b, 0x3a, 0x09, 0x6e, 0x76, 0x6d, 0x65, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x22, 0x2e, 0x2f, + 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 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, 0x2f, 0x6e, 0x76, 0x6d, 0x65, 0x50, 0x61, 0x74, 0x68, 0x73, 0x12, 0x92, 0x01, + 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, 0x3d, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x30, 0x2a, 0x2e, 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, 0x2f, 0x6e, 0x76, 0x6d, 0x65, 0x50, 0x61, 0x74, 0x68, 0x73, 0x2f, + 0x2a, 0x7d, 0x12, 0xbe, 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, 0x44, 0x65, 0x6c, 0x65, 0x74, + 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, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x3d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x30, - 0x2a, 0x2e, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x6e, 0x76, 0x6d, 0x65, + 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, 0x63, + 0xda, 0x41, 0x15, 0x6e, 0x76, 0x6d, 0x65, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x2c, 0x75, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x45, 0x3a, 0x09, + 0x6e, 0x76, 0x6d, 0x65, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x32, 0x38, 0x2f, 0x76, 0x31, 0x2f, 0x7b, + 0x6e, 0x76, 0x6d, 0x65, 0x5f, 0x70, 0x61, 0x74, 0x68, 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, 0x2f, 0x6e, 0x76, 0x6d, 0x65, 0x50, 0x61, 0x74, 0x68, 0x73, + 0x2f, 0x2a, 0x7d, 0x12, 0xa5, 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, 0x3f, 0xda, 0x41, 0x06, 0x70, + 0x61, 0x72, 0x65, 0x6e, 0x74, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x30, 0x12, 0x2e, 0x2f, 0x76, 0x31, + 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 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, 0x2f, 0x6e, 0x76, 0x6d, 0x65, 0x50, 0x61, 0x74, 0x68, 0x73, 0x12, 0x92, 0x01, 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, 0x3d, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x30, + 0x12, 0x2e, 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, 0x2f, 0x6e, 0x76, 0x6d, 0x65, 0x50, 0x61, 0x74, 0x68, 0x73, 0x2f, 0x2a, 0x7d, - 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0xbe, 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, 0x63, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x45, 0x32, 0x38, 0x2f, 0x76, 0x31, - 0x2f, 0x7b, 0x6e, 0x76, 0x6d, 0x65, 0x5f, 0x70, 0x61, 0x74, 0x68, 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, 0x2f, 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, 0xa5, 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, - 0x3f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x30, 0x12, 0x2e, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, - 0x72, 0x65, 0x6e, 0x74, 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, 0x2f, 0x6e, 0x76, - 0x6d, 0x65, 0x50, 0x61, 0x74, 0x68, 0x73, 0xda, 0x41, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, - 0x12, 0x92, 0x01, 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, 0x3d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x30, 0x12, 0x2e, - 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, 0x2f, 0x6e, 0x76, 0x6d, 0x65, 0x50, 0x61, 0x74, 0x68, 0x73, 0x2f, 0x2a, 0x7d, 0xda, 0x41, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0xa9, 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, 0x43, 0x82, 0xd3, - 0xe4, 0x93, 0x02, 0x36, 0x12, 0x34, 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, 0x2f, 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, 0x5f, 0x0a, 0x12, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, - 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x42, 0x10, 0x42, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, - 0x4e, 0x76, 0x6d, 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, + 0x12, 0xa9, 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, 0x43, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x36, 0x12, 0x34, 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, 0x2f, 0x6e, 0x76, 0x6d, 0x65, 0x50, 0x61, + 0x74, 0x68, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x73, 0x74, 0x61, 0x74, 0x73, 0x42, 0x5f, 0x0a, 0x12, + 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, + 0x76, 0x31, 0x42, 0x10, 0x42, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x4e, 0x76, 0x6d, 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 ( @@ -2171,10 +2168,9 @@ var file_backend_nvme_proto_goTypes = []interface{}{ (*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 + (*fieldmaskpb.FieldMask)(nil), // 28: google.protobuf.FieldMask + (*VolumeStats)(nil), // 29: opi_api.storage.v1.VolumeStats + (*emptypb.Empty)(nil), // 30: google.protobuf.Empty } var file_backend_nvme_proto_depIdxs = []int32{ 0, // 0: opi_api.storage.v1.NvmeRemoteController.multipath:type_name -> opi_api.storage.v1.NvmeMultipath @@ -2182,53 +2178,52 @@ var file_backend_nvme_proto_depIdxs = []int32{ 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 - 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 - 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 - 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 - 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 - 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 - 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 - 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 - 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 - 17, // [17:17] is the sub-list for extension extendee - 0, // [0:17] is the sub-list for field type_name + 1, // 5: opi_api.storage.v1.CreateNvmeRemoteControllerRequest.nvme_remote_controller:type_name -> opi_api.storage.v1.NvmeRemoteController + 1, // 6: opi_api.storage.v1.UpdateNvmeRemoteControllerRequest.nvme_remote_controller:type_name -> opi_api.storage.v1.NvmeRemoteController + 28, // 7: opi_api.storage.v1.UpdateNvmeRemoteControllerRequest.update_mask:type_name -> google.protobuf.FieldMask + 1, // 8: opi_api.storage.v1.ListNvmeRemoteControllersResponse.nvme_remote_controllers:type_name -> opi_api.storage.v1.NvmeRemoteController + 29, // 9: opi_api.storage.v1.StatsNvmeRemoteControllerResponse.stats:type_name -> opi_api.storage.v1.VolumeStats + 5, // 10: opi_api.storage.v1.ListNvmeRemoteNamespacesResponse.nvme_remote_namespaces:type_name -> opi_api.storage.v1.NvmeRemoteNamespace + 3, // 11: opi_api.storage.v1.CreateNvmePathRequest.nvme_path:type_name -> opi_api.storage.v1.NvmePath + 3, // 12: opi_api.storage.v1.UpdateNvmePathRequest.nvme_path:type_name -> opi_api.storage.v1.NvmePath + 28, // 13: opi_api.storage.v1.UpdateNvmePathRequest.update_mask:type_name -> google.protobuf.FieldMask + 3, // 14: opi_api.storage.v1.ListNvmePathsResponse.nvme_paths:type_name -> opi_api.storage.v1.NvmePath + 29, // 15: opi_api.storage.v1.StatsNvmePathResponse.stats:type_name -> opi_api.storage.v1.VolumeStats + 6, // 16: opi_api.storage.v1.NvmeRemoteControllerService.CreateNvmeRemoteController:input_type -> opi_api.storage.v1.CreateNvmeRemoteControllerRequest + 7, // 17: opi_api.storage.v1.NvmeRemoteControllerService.DeleteNvmeRemoteController:input_type -> opi_api.storage.v1.DeleteNvmeRemoteControllerRequest + 8, // 18: opi_api.storage.v1.NvmeRemoteControllerService.UpdateNvmeRemoteController:input_type -> opi_api.storage.v1.UpdateNvmeRemoteControllerRequest + 9, // 19: opi_api.storage.v1.NvmeRemoteControllerService.ListNvmeRemoteControllers:input_type -> opi_api.storage.v1.ListNvmeRemoteControllersRequest + 11, // 20: opi_api.storage.v1.NvmeRemoteControllerService.GetNvmeRemoteController:input_type -> opi_api.storage.v1.GetNvmeRemoteControllerRequest + 12, // 21: opi_api.storage.v1.NvmeRemoteControllerService.ResetNvmeRemoteController:input_type -> opi_api.storage.v1.ResetNvmeRemoteControllerRequest + 13, // 22: opi_api.storage.v1.NvmeRemoteControllerService.StatsNvmeRemoteController:input_type -> opi_api.storage.v1.StatsNvmeRemoteControllerRequest + 15, // 23: opi_api.storage.v1.NvmeRemoteControllerService.ListNvmeRemoteNamespaces:input_type -> opi_api.storage.v1.ListNvmeRemoteNamespacesRequest + 17, // 24: opi_api.storage.v1.NvmeRemoteControllerService.GetNvmeRemoteNamespace:input_type -> opi_api.storage.v1.GetNvmeRemoteNamespaceRequest + 18, // 25: opi_api.storage.v1.NvmeRemoteControllerService.CreateNvmePath:input_type -> opi_api.storage.v1.CreateNvmePathRequest + 19, // 26: opi_api.storage.v1.NvmeRemoteControllerService.DeleteNvmePath:input_type -> opi_api.storage.v1.DeleteNvmePathRequest + 20, // 27: opi_api.storage.v1.NvmeRemoteControllerService.UpdateNvmePath:input_type -> opi_api.storage.v1.UpdateNvmePathRequest + 21, // 28: opi_api.storage.v1.NvmeRemoteControllerService.ListNvmePaths:input_type -> opi_api.storage.v1.ListNvmePathsRequest + 23, // 29: opi_api.storage.v1.NvmeRemoteControllerService.GetNvmePath:input_type -> opi_api.storage.v1.GetNvmePathRequest + 24, // 30: opi_api.storage.v1.NvmeRemoteControllerService.StatsNvmePath:input_type -> opi_api.storage.v1.StatsNvmePathRequest + 1, // 31: opi_api.storage.v1.NvmeRemoteControllerService.CreateNvmeRemoteController:output_type -> opi_api.storage.v1.NvmeRemoteController + 30, // 32: opi_api.storage.v1.NvmeRemoteControllerService.DeleteNvmeRemoteController:output_type -> google.protobuf.Empty + 1, // 33: opi_api.storage.v1.NvmeRemoteControllerService.UpdateNvmeRemoteController:output_type -> opi_api.storage.v1.NvmeRemoteController + 10, // 34: opi_api.storage.v1.NvmeRemoteControllerService.ListNvmeRemoteControllers:output_type -> opi_api.storage.v1.ListNvmeRemoteControllersResponse + 1, // 35: opi_api.storage.v1.NvmeRemoteControllerService.GetNvmeRemoteController:output_type -> opi_api.storage.v1.NvmeRemoteController + 30, // 36: opi_api.storage.v1.NvmeRemoteControllerService.ResetNvmeRemoteController:output_type -> google.protobuf.Empty + 14, // 37: opi_api.storage.v1.NvmeRemoteControllerService.StatsNvmeRemoteController:output_type -> opi_api.storage.v1.StatsNvmeRemoteControllerResponse + 16, // 38: opi_api.storage.v1.NvmeRemoteControllerService.ListNvmeRemoteNamespaces:output_type -> opi_api.storage.v1.ListNvmeRemoteNamespacesResponse + 5, // 39: opi_api.storage.v1.NvmeRemoteControllerService.GetNvmeRemoteNamespace:output_type -> opi_api.storage.v1.NvmeRemoteNamespace + 3, // 40: opi_api.storage.v1.NvmeRemoteControllerService.CreateNvmePath:output_type -> opi_api.storage.v1.NvmePath + 30, // 41: opi_api.storage.v1.NvmeRemoteControllerService.DeleteNvmePath:output_type -> google.protobuf.Empty + 3, // 42: opi_api.storage.v1.NvmeRemoteControllerService.UpdateNvmePath:output_type -> opi_api.storage.v1.NvmePath + 22, // 43: opi_api.storage.v1.NvmeRemoteControllerService.ListNvmePaths:output_type -> opi_api.storage.v1.ListNvmePathsResponse + 3, // 44: opi_api.storage.v1.NvmeRemoteControllerService.GetNvmePath:output_type -> opi_api.storage.v1.NvmePath + 25, // 45: opi_api.storage.v1.NvmeRemoteControllerService.StatsNvmePath:output_type -> opi_api.storage.v1.StatsNvmePathResponse + 31, // [31:46] is the sub-list for method output_type + 16, // [16:31] is the sub-list for method input_type + 16, // [16:16] is the sub-list for extension type_name + 16, // [16:16] is the sub-list for extension extendee + 0, // [0:16] is the sub-list for field type_name } func init() { file_backend_nvme_proto_init() } diff --git a/storage/v1alpha1/gen/go/backend_nvme.pb.gw.go b/storage/v1alpha1/gen/go/backend_nvme.pb.gw.go new file mode 100644 index 00000000..22d4c0e0 --- /dev/null +++ b/storage/v1alpha1/gen/go/backend_nvme.pb.gw.go @@ -0,0 +1,1833 @@ +// Code generated by protoc-gen-grpc-gateway. DO NOT EDIT. +// source: backend_nvme.proto + +/* +Package _go is a reverse proxy. + +It translates gRPC into RESTful JSON APIs. +*/ +package _go + +import ( + "context" + "io" + "net/http" + + "github.com/grpc-ecosystem/grpc-gateway/v2/runtime" + "github.com/grpc-ecosystem/grpc-gateway/v2/utilities" + "google.golang.org/grpc" + "google.golang.org/grpc/codes" + "google.golang.org/grpc/grpclog" + "google.golang.org/grpc/metadata" + "google.golang.org/grpc/status" + "google.golang.org/protobuf/proto" +) + +// Suppress "imported and not used" errors +var _ codes.Code +var _ io.Reader +var _ status.Status +var _ = runtime.String +var _ = utilities.NewDoubleArray +var _ = metadata.Join + +var ( + filter_NvmeRemoteControllerService_CreateNvmeRemoteController_0 = &utilities.DoubleArray{Encoding: map[string]int{"nvme_remote_controller": 0, "nvmeRemoteController": 1}, Base: []int{1, 1, 2, 0, 0}, Check: []int{0, 1, 1, 2, 3}} +) + +func request_NvmeRemoteControllerService_CreateNvmeRemoteController_0(ctx context.Context, marshaler runtime.Marshaler, client NvmeRemoteControllerServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq CreateNvmeRemoteControllerRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq.NvmeRemoteController); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_NvmeRemoteControllerService_CreateNvmeRemoteController_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.CreateNvmeRemoteController(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_NvmeRemoteControllerService_CreateNvmeRemoteController_0(ctx context.Context, marshaler runtime.Marshaler, server NvmeRemoteControllerServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq CreateNvmeRemoteControllerRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq.NvmeRemoteController); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_NvmeRemoteControllerService_CreateNvmeRemoteController_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.CreateNvmeRemoteController(ctx, &protoReq) + return msg, metadata, err + +} + +var ( + filter_NvmeRemoteControllerService_DeleteNvmeRemoteController_0 = &utilities.DoubleArray{Encoding: map[string]int{"name": 0}, Base: []int{1, 2, 0, 0}, Check: []int{0, 1, 2, 2}} +) + +func request_NvmeRemoteControllerService_DeleteNvmeRemoteController_0(ctx context.Context, marshaler runtime.Marshaler, client NvmeRemoteControllerServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq DeleteNvmeRemoteControllerRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") + } + + protoReq.Name, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_NvmeRemoteControllerService_DeleteNvmeRemoteController_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.DeleteNvmeRemoteController(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_NvmeRemoteControllerService_DeleteNvmeRemoteController_0(ctx context.Context, marshaler runtime.Marshaler, server NvmeRemoteControllerServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq DeleteNvmeRemoteControllerRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") + } + + protoReq.Name, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_NvmeRemoteControllerService_DeleteNvmeRemoteController_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.DeleteNvmeRemoteController(ctx, &protoReq) + return msg, metadata, err + +} + +var ( + filter_NvmeRemoteControllerService_UpdateNvmeRemoteController_0 = &utilities.DoubleArray{Encoding: map[string]int{"nvme_remote_controller": 0, "nvmeRemoteController": 1, "name": 2}, Base: []int{1, 3, 4, 5, 2, 0, 0, 0, 0}, Check: []int{0, 1, 1, 1, 2, 5, 2, 3, 4}} +) + +func request_NvmeRemoteControllerService_UpdateNvmeRemoteController_0(ctx context.Context, marshaler runtime.Marshaler, client NvmeRemoteControllerServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq UpdateNvmeRemoteControllerRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq.NvmeRemoteController); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if protoReq.UpdateMask == nil || len(protoReq.UpdateMask.GetPaths()) == 0 { + if fieldMask, err := runtime.FieldMaskFromRequestBody(newReader(), protoReq.NvmeRemoteController); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } else { + protoReq.UpdateMask = fieldMask + } + } + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["nvme_remote_controller.name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "nvme_remote_controller.name") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "nvme_remote_controller.name", val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "nvme_remote_controller.name", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_NvmeRemoteControllerService_UpdateNvmeRemoteController_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.UpdateNvmeRemoteController(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_NvmeRemoteControllerService_UpdateNvmeRemoteController_0(ctx context.Context, marshaler runtime.Marshaler, server NvmeRemoteControllerServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq UpdateNvmeRemoteControllerRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq.NvmeRemoteController); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if protoReq.UpdateMask == nil || len(protoReq.UpdateMask.GetPaths()) == 0 { + if fieldMask, err := runtime.FieldMaskFromRequestBody(newReader(), protoReq.NvmeRemoteController); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } else { + protoReq.UpdateMask = fieldMask + } + } + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["nvme_remote_controller.name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "nvme_remote_controller.name") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "nvme_remote_controller.name", val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "nvme_remote_controller.name", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_NvmeRemoteControllerService_UpdateNvmeRemoteController_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.UpdateNvmeRemoteController(ctx, &protoReq) + return msg, metadata, err + +} + +var ( + filter_NvmeRemoteControllerService_ListNvmeRemoteControllers_0 = &utilities.DoubleArray{Encoding: map[string]int{}, Base: []int(nil), Check: []int(nil)} +) + +func request_NvmeRemoteControllerService_ListNvmeRemoteControllers_0(ctx context.Context, marshaler runtime.Marshaler, client NvmeRemoteControllerServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq ListNvmeRemoteControllersRequest + var metadata runtime.ServerMetadata + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_NvmeRemoteControllerService_ListNvmeRemoteControllers_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.ListNvmeRemoteControllers(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_NvmeRemoteControllerService_ListNvmeRemoteControllers_0(ctx context.Context, marshaler runtime.Marshaler, server NvmeRemoteControllerServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq ListNvmeRemoteControllersRequest + var metadata runtime.ServerMetadata + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_NvmeRemoteControllerService_ListNvmeRemoteControllers_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.ListNvmeRemoteControllers(ctx, &protoReq) + return msg, metadata, err + +} + +func request_NvmeRemoteControllerService_GetNvmeRemoteController_0(ctx context.Context, marshaler runtime.Marshaler, client NvmeRemoteControllerServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetNvmeRemoteControllerRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") + } + + protoReq.Name, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) + } + + msg, err := client.GetNvmeRemoteController(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_NvmeRemoteControllerService_GetNvmeRemoteController_0(ctx context.Context, marshaler runtime.Marshaler, server NvmeRemoteControllerServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetNvmeRemoteControllerRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") + } + + protoReq.Name, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) + } + + msg, err := server.GetNvmeRemoteController(ctx, &protoReq) + return msg, metadata, err + +} + +func request_NvmeRemoteControllerService_ResetNvmeRemoteController_0(ctx context.Context, marshaler runtime.Marshaler, client NvmeRemoteControllerServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq ResetNvmeRemoteControllerRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") + } + + protoReq.Name, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) + } + + msg, err := client.ResetNvmeRemoteController(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_NvmeRemoteControllerService_ResetNvmeRemoteController_0(ctx context.Context, marshaler runtime.Marshaler, server NvmeRemoteControllerServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq ResetNvmeRemoteControllerRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") + } + + protoReq.Name, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) + } + + msg, err := server.ResetNvmeRemoteController(ctx, &protoReq) + return msg, metadata, err + +} + +func request_NvmeRemoteControllerService_StatsNvmeRemoteController_0(ctx context.Context, marshaler runtime.Marshaler, client NvmeRemoteControllerServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq StatsNvmeRemoteControllerRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") + } + + protoReq.Name, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) + } + + msg, err := client.StatsNvmeRemoteController(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_NvmeRemoteControllerService_StatsNvmeRemoteController_0(ctx context.Context, marshaler runtime.Marshaler, server NvmeRemoteControllerServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq StatsNvmeRemoteControllerRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") + } + + protoReq.Name, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) + } + + msg, err := server.StatsNvmeRemoteController(ctx, &protoReq) + return msg, metadata, err + +} + +var ( + filter_NvmeRemoteControllerService_ListNvmeRemoteNamespaces_0 = &utilities.DoubleArray{Encoding: map[string]int{"parent": 0}, Base: []int{1, 2, 0, 0}, Check: []int{0, 1, 2, 2}} +) + +func request_NvmeRemoteControllerService_ListNvmeRemoteNamespaces_0(ctx context.Context, marshaler runtime.Marshaler, client NvmeRemoteControllerServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq ListNvmeRemoteNamespacesRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["parent"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "parent") + } + + protoReq.Parent, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "parent", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_NvmeRemoteControllerService_ListNvmeRemoteNamespaces_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.ListNvmeRemoteNamespaces(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_NvmeRemoteControllerService_ListNvmeRemoteNamespaces_0(ctx context.Context, marshaler runtime.Marshaler, server NvmeRemoteControllerServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq ListNvmeRemoteNamespacesRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["parent"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "parent") + } + + protoReq.Parent, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "parent", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_NvmeRemoteControllerService_ListNvmeRemoteNamespaces_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.ListNvmeRemoteNamespaces(ctx, &protoReq) + return msg, metadata, err + +} + +func request_NvmeRemoteControllerService_GetNvmeRemoteNamespace_0(ctx context.Context, marshaler runtime.Marshaler, client NvmeRemoteControllerServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetNvmeRemoteNamespaceRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") + } + + protoReq.Name, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) + } + + msg, err := client.GetNvmeRemoteNamespace(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_NvmeRemoteControllerService_GetNvmeRemoteNamespace_0(ctx context.Context, marshaler runtime.Marshaler, server NvmeRemoteControllerServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetNvmeRemoteNamespaceRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") + } + + protoReq.Name, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) + } + + msg, err := server.GetNvmeRemoteNamespace(ctx, &protoReq) + return msg, metadata, err + +} + +var ( + filter_NvmeRemoteControllerService_CreateNvmePath_0 = &utilities.DoubleArray{Encoding: map[string]int{"nvme_path": 0, "nvmePath": 1, "parent": 2}, Base: []int{1, 1, 2, 4, 0, 0, 0, 0}, Check: []int{0, 1, 1, 1, 2, 3, 4, 4}} +) + +func request_NvmeRemoteControllerService_CreateNvmePath_0(ctx context.Context, marshaler runtime.Marshaler, client NvmeRemoteControllerServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq CreateNvmePathRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq.NvmePath); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["parent"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "parent") + } + + protoReq.Parent, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "parent", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_NvmeRemoteControllerService_CreateNvmePath_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.CreateNvmePath(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_NvmeRemoteControllerService_CreateNvmePath_0(ctx context.Context, marshaler runtime.Marshaler, server NvmeRemoteControllerServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq CreateNvmePathRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq.NvmePath); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["parent"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "parent") + } + + protoReq.Parent, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "parent", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_NvmeRemoteControllerService_CreateNvmePath_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.CreateNvmePath(ctx, &protoReq) + return msg, metadata, err + +} + +var ( + filter_NvmeRemoteControllerService_DeleteNvmePath_0 = &utilities.DoubleArray{Encoding: map[string]int{"name": 0}, Base: []int{1, 2, 0, 0}, Check: []int{0, 1, 2, 2}} +) + +func request_NvmeRemoteControllerService_DeleteNvmePath_0(ctx context.Context, marshaler runtime.Marshaler, client NvmeRemoteControllerServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq DeleteNvmePathRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") + } + + protoReq.Name, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_NvmeRemoteControllerService_DeleteNvmePath_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.DeleteNvmePath(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_NvmeRemoteControllerService_DeleteNvmePath_0(ctx context.Context, marshaler runtime.Marshaler, server NvmeRemoteControllerServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq DeleteNvmePathRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") + } + + protoReq.Name, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_NvmeRemoteControllerService_DeleteNvmePath_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.DeleteNvmePath(ctx, &protoReq) + return msg, metadata, err + +} + +var ( + filter_NvmeRemoteControllerService_UpdateNvmePath_0 = &utilities.DoubleArray{Encoding: map[string]int{"nvme_path": 0, "nvmePath": 1, "name": 2}, Base: []int{1, 3, 4, 5, 2, 0, 0, 0, 0}, Check: []int{0, 1, 1, 1, 2, 5, 2, 3, 4}} +) + +func request_NvmeRemoteControllerService_UpdateNvmePath_0(ctx context.Context, marshaler runtime.Marshaler, client NvmeRemoteControllerServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq UpdateNvmePathRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq.NvmePath); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if protoReq.UpdateMask == nil || len(protoReq.UpdateMask.GetPaths()) == 0 { + if fieldMask, err := runtime.FieldMaskFromRequestBody(newReader(), protoReq.NvmePath); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } else { + protoReq.UpdateMask = fieldMask + } + } + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["nvme_path.name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "nvme_path.name") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "nvme_path.name", val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "nvme_path.name", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_NvmeRemoteControllerService_UpdateNvmePath_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.UpdateNvmePath(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_NvmeRemoteControllerService_UpdateNvmePath_0(ctx context.Context, marshaler runtime.Marshaler, server NvmeRemoteControllerServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq UpdateNvmePathRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq.NvmePath); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if protoReq.UpdateMask == nil || len(protoReq.UpdateMask.GetPaths()) == 0 { + if fieldMask, err := runtime.FieldMaskFromRequestBody(newReader(), protoReq.NvmePath); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } else { + protoReq.UpdateMask = fieldMask + } + } + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["nvme_path.name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "nvme_path.name") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "nvme_path.name", val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "nvme_path.name", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_NvmeRemoteControllerService_UpdateNvmePath_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.UpdateNvmePath(ctx, &protoReq) + return msg, metadata, err + +} + +var ( + filter_NvmeRemoteControllerService_ListNvmePaths_0 = &utilities.DoubleArray{Encoding: map[string]int{"parent": 0}, Base: []int{1, 2, 0, 0}, Check: []int{0, 1, 2, 2}} +) + +func request_NvmeRemoteControllerService_ListNvmePaths_0(ctx context.Context, marshaler runtime.Marshaler, client NvmeRemoteControllerServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq ListNvmePathsRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["parent"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "parent") + } + + protoReq.Parent, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "parent", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_NvmeRemoteControllerService_ListNvmePaths_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.ListNvmePaths(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_NvmeRemoteControllerService_ListNvmePaths_0(ctx context.Context, marshaler runtime.Marshaler, server NvmeRemoteControllerServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq ListNvmePathsRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["parent"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "parent") + } + + protoReq.Parent, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "parent", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_NvmeRemoteControllerService_ListNvmePaths_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.ListNvmePaths(ctx, &protoReq) + return msg, metadata, err + +} + +func request_NvmeRemoteControllerService_GetNvmePath_0(ctx context.Context, marshaler runtime.Marshaler, client NvmeRemoteControllerServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetNvmePathRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") + } + + protoReq.Name, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) + } + + msg, err := client.GetNvmePath(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_NvmeRemoteControllerService_GetNvmePath_0(ctx context.Context, marshaler runtime.Marshaler, server NvmeRemoteControllerServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetNvmePathRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") + } + + protoReq.Name, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) + } + + msg, err := server.GetNvmePath(ctx, &protoReq) + return msg, metadata, err + +} + +func request_NvmeRemoteControllerService_StatsNvmePath_0(ctx context.Context, marshaler runtime.Marshaler, client NvmeRemoteControllerServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq StatsNvmePathRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") + } + + protoReq.Name, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) + } + + msg, err := client.StatsNvmePath(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_NvmeRemoteControllerService_StatsNvmePath_0(ctx context.Context, marshaler runtime.Marshaler, server NvmeRemoteControllerServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq StatsNvmePathRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") + } + + protoReq.Name, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) + } + + msg, err := server.StatsNvmePath(ctx, &protoReq) + return msg, metadata, err + +} + +// RegisterNvmeRemoteControllerServiceHandlerServer registers the http handlers for service NvmeRemoteControllerService to "mux". +// UnaryRPC :call NvmeRemoteControllerServiceServer directly. +// StreamingRPC :currently unsupported pending https://github.com/grpc/grpc-go/issues/906. +// Note that using this registration option will cause many gRPC library features to stop working. Consider using RegisterNvmeRemoteControllerServiceHandlerFromEndpoint instead. +func RegisterNvmeRemoteControllerServiceHandlerServer(ctx context.Context, mux *runtime.ServeMux, server NvmeRemoteControllerServiceServer) error { + + mux.Handle("POST", pattern_NvmeRemoteControllerService_CreateNvmeRemoteController_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/opi_api.storage.v1.NvmeRemoteControllerService/CreateNvmeRemoteController", runtime.WithHTTPPathPattern("/v1/nvmeRemoteControllers")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_NvmeRemoteControllerService_CreateNvmeRemoteController_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_NvmeRemoteControllerService_CreateNvmeRemoteController_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("DELETE", pattern_NvmeRemoteControllerService_DeleteNvmeRemoteController_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/opi_api.storage.v1.NvmeRemoteControllerService/DeleteNvmeRemoteController", runtime.WithHTTPPathPattern("/v1/{name=nvmeRemoteControllers/*}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_NvmeRemoteControllerService_DeleteNvmeRemoteController_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_NvmeRemoteControllerService_DeleteNvmeRemoteController_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("PATCH", pattern_NvmeRemoteControllerService_UpdateNvmeRemoteController_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/opi_api.storage.v1.NvmeRemoteControllerService/UpdateNvmeRemoteController", runtime.WithHTTPPathPattern("/v1/{nvme_remote_controller.name=nvmeRemoteControllers/*}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_NvmeRemoteControllerService_UpdateNvmeRemoteController_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_NvmeRemoteControllerService_UpdateNvmeRemoteController_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_NvmeRemoteControllerService_ListNvmeRemoteControllers_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/opi_api.storage.v1.NvmeRemoteControllerService/ListNvmeRemoteControllers", runtime.WithHTTPPathPattern("/v1/nvmeRemoteControllers")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_NvmeRemoteControllerService_ListNvmeRemoteControllers_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_NvmeRemoteControllerService_ListNvmeRemoteControllers_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_NvmeRemoteControllerService_GetNvmeRemoteController_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/opi_api.storage.v1.NvmeRemoteControllerService/GetNvmeRemoteController", runtime.WithHTTPPathPattern("/v1/{name=nvmeRemoteControllers/*}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_NvmeRemoteControllerService_GetNvmeRemoteController_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_NvmeRemoteControllerService_GetNvmeRemoteController_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("POST", pattern_NvmeRemoteControllerService_ResetNvmeRemoteController_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/opi_api.storage.v1.NvmeRemoteControllerService/ResetNvmeRemoteController", runtime.WithHTTPPathPattern("/v1/{name=nvmeRemoteControllers/*}:reset")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_NvmeRemoteControllerService_ResetNvmeRemoteController_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_NvmeRemoteControllerService_ResetNvmeRemoteController_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_NvmeRemoteControllerService_StatsNvmeRemoteController_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/opi_api.storage.v1.NvmeRemoteControllerService/StatsNvmeRemoteController", runtime.WithHTTPPathPattern("/v1/{name=nvmeRemoteControllers/*}:stats")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_NvmeRemoteControllerService_StatsNvmeRemoteController_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_NvmeRemoteControllerService_StatsNvmeRemoteController_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_NvmeRemoteControllerService_ListNvmeRemoteNamespaces_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/opi_api.storage.v1.NvmeRemoteControllerService/ListNvmeRemoteNamespaces", runtime.WithHTTPPathPattern("/v1/{parent=nvmeRemoteControllers/*}/nvmeRemoteNamespaces")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_NvmeRemoteControllerService_ListNvmeRemoteNamespaces_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_NvmeRemoteControllerService_ListNvmeRemoteNamespaces_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_NvmeRemoteControllerService_GetNvmeRemoteNamespace_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/opi_api.storage.v1.NvmeRemoteControllerService/GetNvmeRemoteNamespace", runtime.WithHTTPPathPattern("/v1/{name=nvmeRemoteControllers/*/nvmeRemoteNamespaces/*}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_NvmeRemoteControllerService_GetNvmeRemoteNamespace_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_NvmeRemoteControllerService_GetNvmeRemoteNamespace_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("POST", pattern_NvmeRemoteControllerService_CreateNvmePath_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/opi_api.storage.v1.NvmeRemoteControllerService/CreateNvmePath", runtime.WithHTTPPathPattern("/v1/{parent=nvmeRemoteControllers/*}/nvmePaths")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_NvmeRemoteControllerService_CreateNvmePath_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_NvmeRemoteControllerService_CreateNvmePath_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("DELETE", pattern_NvmeRemoteControllerService_DeleteNvmePath_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/opi_api.storage.v1.NvmeRemoteControllerService/DeleteNvmePath", runtime.WithHTTPPathPattern("/v1/{name=nvmeRemoteControllers/*/nvmePaths/*}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_NvmeRemoteControllerService_DeleteNvmePath_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_NvmeRemoteControllerService_DeleteNvmePath_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("PATCH", pattern_NvmeRemoteControllerService_UpdateNvmePath_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/opi_api.storage.v1.NvmeRemoteControllerService/UpdateNvmePath", runtime.WithHTTPPathPattern("/v1/{nvme_path.name=nvmeRemoteControllers/*/nvmePaths/*}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_NvmeRemoteControllerService_UpdateNvmePath_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_NvmeRemoteControllerService_UpdateNvmePath_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_NvmeRemoteControllerService_ListNvmePaths_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/opi_api.storage.v1.NvmeRemoteControllerService/ListNvmePaths", runtime.WithHTTPPathPattern("/v1/{parent=nvmeRemoteControllers/*}/nvmePaths")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_NvmeRemoteControllerService_ListNvmePaths_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_NvmeRemoteControllerService_ListNvmePaths_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_NvmeRemoteControllerService_GetNvmePath_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/opi_api.storage.v1.NvmeRemoteControllerService/GetNvmePath", runtime.WithHTTPPathPattern("/v1/{name=nvmeRemoteControllers/*/nvmePaths/*}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_NvmeRemoteControllerService_GetNvmePath_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_NvmeRemoteControllerService_GetNvmePath_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_NvmeRemoteControllerService_StatsNvmePath_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/opi_api.storage.v1.NvmeRemoteControllerService/StatsNvmePath", runtime.WithHTTPPathPattern("/v1/{name=nvmeRemoteControllers/*/nvmePaths/*}:stats")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_NvmeRemoteControllerService_StatsNvmePath_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_NvmeRemoteControllerService_StatsNvmePath_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + return nil +} + +// RegisterNvmeRemoteControllerServiceHandlerFromEndpoint is same as RegisterNvmeRemoteControllerServiceHandler but +// automatically dials to "endpoint" and closes the connection when "ctx" gets done. +func RegisterNvmeRemoteControllerServiceHandlerFromEndpoint(ctx context.Context, mux *runtime.ServeMux, endpoint string, opts []grpc.DialOption) (err error) { + conn, err := grpc.DialContext(ctx, endpoint, opts...) + if err != nil { + return err + } + defer func() { + if err != nil { + if cerr := conn.Close(); cerr != nil { + grpclog.Infof("Failed to close conn to %s: %v", endpoint, cerr) + } + return + } + go func() { + <-ctx.Done() + if cerr := conn.Close(); cerr != nil { + grpclog.Infof("Failed to close conn to %s: %v", endpoint, cerr) + } + }() + }() + + return RegisterNvmeRemoteControllerServiceHandler(ctx, mux, conn) +} + +// RegisterNvmeRemoteControllerServiceHandler registers the http handlers for service NvmeRemoteControllerService to "mux". +// The handlers forward requests to the grpc endpoint over "conn". +func RegisterNvmeRemoteControllerServiceHandler(ctx context.Context, mux *runtime.ServeMux, conn *grpc.ClientConn) error { + return RegisterNvmeRemoteControllerServiceHandlerClient(ctx, mux, NewNvmeRemoteControllerServiceClient(conn)) +} + +// RegisterNvmeRemoteControllerServiceHandlerClient registers the http handlers for service NvmeRemoteControllerService +// to "mux". The handlers forward requests to the grpc endpoint over the given implementation of "NvmeRemoteControllerServiceClient". +// Note: the gRPC framework executes interceptors within the gRPC handler. If the passed in "NvmeRemoteControllerServiceClient" +// doesn't go through the normal gRPC flow (creating a gRPC client etc.) then it will be up to the passed in +// "NvmeRemoteControllerServiceClient" to call the correct interceptors. +func RegisterNvmeRemoteControllerServiceHandlerClient(ctx context.Context, mux *runtime.ServeMux, client NvmeRemoteControllerServiceClient) error { + + mux.Handle("POST", pattern_NvmeRemoteControllerService_CreateNvmeRemoteController_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/opi_api.storage.v1.NvmeRemoteControllerService/CreateNvmeRemoteController", runtime.WithHTTPPathPattern("/v1/nvmeRemoteControllers")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_NvmeRemoteControllerService_CreateNvmeRemoteController_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_NvmeRemoteControllerService_CreateNvmeRemoteController_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("DELETE", pattern_NvmeRemoteControllerService_DeleteNvmeRemoteController_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/opi_api.storage.v1.NvmeRemoteControllerService/DeleteNvmeRemoteController", runtime.WithHTTPPathPattern("/v1/{name=nvmeRemoteControllers/*}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_NvmeRemoteControllerService_DeleteNvmeRemoteController_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_NvmeRemoteControllerService_DeleteNvmeRemoteController_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("PATCH", pattern_NvmeRemoteControllerService_UpdateNvmeRemoteController_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/opi_api.storage.v1.NvmeRemoteControllerService/UpdateNvmeRemoteController", runtime.WithHTTPPathPattern("/v1/{nvme_remote_controller.name=nvmeRemoteControllers/*}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_NvmeRemoteControllerService_UpdateNvmeRemoteController_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_NvmeRemoteControllerService_UpdateNvmeRemoteController_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_NvmeRemoteControllerService_ListNvmeRemoteControllers_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/opi_api.storage.v1.NvmeRemoteControllerService/ListNvmeRemoteControllers", runtime.WithHTTPPathPattern("/v1/nvmeRemoteControllers")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_NvmeRemoteControllerService_ListNvmeRemoteControllers_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_NvmeRemoteControllerService_ListNvmeRemoteControllers_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_NvmeRemoteControllerService_GetNvmeRemoteController_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/opi_api.storage.v1.NvmeRemoteControllerService/GetNvmeRemoteController", runtime.WithHTTPPathPattern("/v1/{name=nvmeRemoteControllers/*}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_NvmeRemoteControllerService_GetNvmeRemoteController_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_NvmeRemoteControllerService_GetNvmeRemoteController_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("POST", pattern_NvmeRemoteControllerService_ResetNvmeRemoteController_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/opi_api.storage.v1.NvmeRemoteControllerService/ResetNvmeRemoteController", runtime.WithHTTPPathPattern("/v1/{name=nvmeRemoteControllers/*}:reset")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_NvmeRemoteControllerService_ResetNvmeRemoteController_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_NvmeRemoteControllerService_ResetNvmeRemoteController_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_NvmeRemoteControllerService_StatsNvmeRemoteController_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/opi_api.storage.v1.NvmeRemoteControllerService/StatsNvmeRemoteController", runtime.WithHTTPPathPattern("/v1/{name=nvmeRemoteControllers/*}:stats")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_NvmeRemoteControllerService_StatsNvmeRemoteController_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_NvmeRemoteControllerService_StatsNvmeRemoteController_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_NvmeRemoteControllerService_ListNvmeRemoteNamespaces_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/opi_api.storage.v1.NvmeRemoteControllerService/ListNvmeRemoteNamespaces", runtime.WithHTTPPathPattern("/v1/{parent=nvmeRemoteControllers/*}/nvmeRemoteNamespaces")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_NvmeRemoteControllerService_ListNvmeRemoteNamespaces_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_NvmeRemoteControllerService_ListNvmeRemoteNamespaces_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_NvmeRemoteControllerService_GetNvmeRemoteNamespace_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/opi_api.storage.v1.NvmeRemoteControllerService/GetNvmeRemoteNamespace", runtime.WithHTTPPathPattern("/v1/{name=nvmeRemoteControllers/*/nvmeRemoteNamespaces/*}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_NvmeRemoteControllerService_GetNvmeRemoteNamespace_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_NvmeRemoteControllerService_GetNvmeRemoteNamespace_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("POST", pattern_NvmeRemoteControllerService_CreateNvmePath_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/opi_api.storage.v1.NvmeRemoteControllerService/CreateNvmePath", runtime.WithHTTPPathPattern("/v1/{parent=nvmeRemoteControllers/*}/nvmePaths")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_NvmeRemoteControllerService_CreateNvmePath_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_NvmeRemoteControllerService_CreateNvmePath_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("DELETE", pattern_NvmeRemoteControllerService_DeleteNvmePath_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/opi_api.storage.v1.NvmeRemoteControllerService/DeleteNvmePath", runtime.WithHTTPPathPattern("/v1/{name=nvmeRemoteControllers/*/nvmePaths/*}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_NvmeRemoteControllerService_DeleteNvmePath_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_NvmeRemoteControllerService_DeleteNvmePath_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("PATCH", pattern_NvmeRemoteControllerService_UpdateNvmePath_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/opi_api.storage.v1.NvmeRemoteControllerService/UpdateNvmePath", runtime.WithHTTPPathPattern("/v1/{nvme_path.name=nvmeRemoteControllers/*/nvmePaths/*}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_NvmeRemoteControllerService_UpdateNvmePath_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_NvmeRemoteControllerService_UpdateNvmePath_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_NvmeRemoteControllerService_ListNvmePaths_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/opi_api.storage.v1.NvmeRemoteControllerService/ListNvmePaths", runtime.WithHTTPPathPattern("/v1/{parent=nvmeRemoteControllers/*}/nvmePaths")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_NvmeRemoteControllerService_ListNvmePaths_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_NvmeRemoteControllerService_ListNvmePaths_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_NvmeRemoteControllerService_GetNvmePath_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/opi_api.storage.v1.NvmeRemoteControllerService/GetNvmePath", runtime.WithHTTPPathPattern("/v1/{name=nvmeRemoteControllers/*/nvmePaths/*}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_NvmeRemoteControllerService_GetNvmePath_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_NvmeRemoteControllerService_GetNvmePath_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_NvmeRemoteControllerService_StatsNvmePath_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/opi_api.storage.v1.NvmeRemoteControllerService/StatsNvmePath", runtime.WithHTTPPathPattern("/v1/{name=nvmeRemoteControllers/*/nvmePaths/*}:stats")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_NvmeRemoteControllerService_StatsNvmePath_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_NvmeRemoteControllerService_StatsNvmePath_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + return nil +} + +var ( + pattern_NvmeRemoteControllerService_CreateNvmeRemoteController_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"v1", "nvmeRemoteControllers"}, "")) + + pattern_NvmeRemoteControllerService_DeleteNvmeRemoteController_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 2, 5, 2}, []string{"v1", "nvmeRemoteControllers", "name"}, "")) + + pattern_NvmeRemoteControllerService_UpdateNvmeRemoteController_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 2, 5, 2}, []string{"v1", "nvmeRemoteControllers", "nvme_remote_controller.name"}, "")) + + pattern_NvmeRemoteControllerService_ListNvmeRemoteControllers_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"v1", "nvmeRemoteControllers"}, "")) + + pattern_NvmeRemoteControllerService_GetNvmeRemoteController_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 2, 5, 2}, []string{"v1", "nvmeRemoteControllers", "name"}, "")) + + pattern_NvmeRemoteControllerService_ResetNvmeRemoteController_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 2, 5, 2}, []string{"v1", "nvmeRemoteControllers", "name"}, "reset")) + + pattern_NvmeRemoteControllerService_StatsNvmeRemoteController_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 2, 5, 2}, []string{"v1", "nvmeRemoteControllers", "name"}, "stats")) + + pattern_NvmeRemoteControllerService_ListNvmeRemoteNamespaces_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 2, 5, 2, 2, 3}, []string{"v1", "nvmeRemoteControllers", "parent", "nvmeRemoteNamespaces"}, "")) + + pattern_NvmeRemoteControllerService_GetNvmeRemoteNamespace_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 2, 2, 1, 0, 4, 4, 5, 3}, []string{"v1", "nvmeRemoteControllers", "nvmeRemoteNamespaces", "name"}, "")) + + pattern_NvmeRemoteControllerService_CreateNvmePath_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 2, 5, 2, 2, 3}, []string{"v1", "nvmeRemoteControllers", "parent", "nvmePaths"}, "")) + + pattern_NvmeRemoteControllerService_DeleteNvmePath_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 2, 2, 1, 0, 4, 4, 5, 3}, []string{"v1", "nvmeRemoteControllers", "nvmePaths", "name"}, "")) + + pattern_NvmeRemoteControllerService_UpdateNvmePath_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 2, 2, 1, 0, 4, 4, 5, 3}, []string{"v1", "nvmeRemoteControllers", "nvmePaths", "nvme_path.name"}, "")) + + pattern_NvmeRemoteControllerService_ListNvmePaths_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 2, 5, 2, 2, 3}, []string{"v1", "nvmeRemoteControllers", "parent", "nvmePaths"}, "")) + + pattern_NvmeRemoteControllerService_GetNvmePath_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 2, 2, 1, 0, 4, 4, 5, 3}, []string{"v1", "nvmeRemoteControllers", "nvmePaths", "name"}, "")) + + pattern_NvmeRemoteControllerService_StatsNvmePath_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 2, 2, 1, 0, 4, 4, 5, 3}, []string{"v1", "nvmeRemoteControllers", "nvmePaths", "name"}, "stats")) +) + +var ( + forward_NvmeRemoteControllerService_CreateNvmeRemoteController_0 = runtime.ForwardResponseMessage + + forward_NvmeRemoteControllerService_DeleteNvmeRemoteController_0 = runtime.ForwardResponseMessage + + forward_NvmeRemoteControllerService_UpdateNvmeRemoteController_0 = runtime.ForwardResponseMessage + + forward_NvmeRemoteControllerService_ListNvmeRemoteControllers_0 = runtime.ForwardResponseMessage + + forward_NvmeRemoteControllerService_GetNvmeRemoteController_0 = runtime.ForwardResponseMessage + + forward_NvmeRemoteControllerService_ResetNvmeRemoteController_0 = runtime.ForwardResponseMessage + + forward_NvmeRemoteControllerService_StatsNvmeRemoteController_0 = runtime.ForwardResponseMessage + + forward_NvmeRemoteControllerService_ListNvmeRemoteNamespaces_0 = runtime.ForwardResponseMessage + + forward_NvmeRemoteControllerService_GetNvmeRemoteNamespace_0 = runtime.ForwardResponseMessage + + forward_NvmeRemoteControllerService_CreateNvmePath_0 = runtime.ForwardResponseMessage + + forward_NvmeRemoteControllerService_DeleteNvmePath_0 = runtime.ForwardResponseMessage + + forward_NvmeRemoteControllerService_UpdateNvmePath_0 = runtime.ForwardResponseMessage + + forward_NvmeRemoteControllerService_ListNvmePaths_0 = runtime.ForwardResponseMessage + + forward_NvmeRemoteControllerService_GetNvmePath_0 = runtime.ForwardResponseMessage + + forward_NvmeRemoteControllerService_StatsNvmePath_0 = runtime.ForwardResponseMessage +) diff --git a/storage/v1alpha1/gen/go/backend_nvme_grpc.pb.go b/storage/v1alpha1/gen/go/backend_nvme_grpc.pb.go index f6a79130..0d7371ef 100644 --- a/storage/v1alpha1/gen/go/backend_nvme_grpc.pb.go +++ b/storage/v1alpha1/gen/go/backend_nvme_grpc.pb.go @@ -1,7 +1,11 @@ +// SPDX-License-Identifier: Apache-2.0 +// Copyright (c) 2022 Dell Inc, or its subsidiaries. +// Copyright (C) 2023 Intel Corporation + // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: -// - protoc-gen-go-grpc v1.2.0 -// - protoc v3.21.6 +// - protoc-gen-go-grpc v1.3.0 +// - protoc (unknown) // source: backend_nvme.proto package _go @@ -19,6 +23,24 @@ import ( // Requires gRPC-Go v1.32.0 or later. const _ = grpc.SupportPackageIsVersion7 +const ( + NvmeRemoteControllerService_CreateNvmeRemoteController_FullMethodName = "/opi_api.storage.v1.NvmeRemoteControllerService/CreateNvmeRemoteController" + NvmeRemoteControllerService_DeleteNvmeRemoteController_FullMethodName = "/opi_api.storage.v1.NvmeRemoteControllerService/DeleteNvmeRemoteController" + NvmeRemoteControllerService_UpdateNvmeRemoteController_FullMethodName = "/opi_api.storage.v1.NvmeRemoteControllerService/UpdateNvmeRemoteController" + NvmeRemoteControllerService_ListNvmeRemoteControllers_FullMethodName = "/opi_api.storage.v1.NvmeRemoteControllerService/ListNvmeRemoteControllers" + NvmeRemoteControllerService_GetNvmeRemoteController_FullMethodName = "/opi_api.storage.v1.NvmeRemoteControllerService/GetNvmeRemoteController" + NvmeRemoteControllerService_ResetNvmeRemoteController_FullMethodName = "/opi_api.storage.v1.NvmeRemoteControllerService/ResetNvmeRemoteController" + NvmeRemoteControllerService_StatsNvmeRemoteController_FullMethodName = "/opi_api.storage.v1.NvmeRemoteControllerService/StatsNvmeRemoteController" + NvmeRemoteControllerService_ListNvmeRemoteNamespaces_FullMethodName = "/opi_api.storage.v1.NvmeRemoteControllerService/ListNvmeRemoteNamespaces" + NvmeRemoteControllerService_GetNvmeRemoteNamespace_FullMethodName = "/opi_api.storage.v1.NvmeRemoteControllerService/GetNvmeRemoteNamespace" + NvmeRemoteControllerService_CreateNvmePath_FullMethodName = "/opi_api.storage.v1.NvmeRemoteControllerService/CreateNvmePath" + NvmeRemoteControllerService_DeleteNvmePath_FullMethodName = "/opi_api.storage.v1.NvmeRemoteControllerService/DeleteNvmePath" + NvmeRemoteControllerService_UpdateNvmePath_FullMethodName = "/opi_api.storage.v1.NvmeRemoteControllerService/UpdateNvmePath" + NvmeRemoteControllerService_ListNvmePaths_FullMethodName = "/opi_api.storage.v1.NvmeRemoteControllerService/ListNvmePaths" + NvmeRemoteControllerService_GetNvmePath_FullMethodName = "/opi_api.storage.v1.NvmeRemoteControllerService/GetNvmePath" + NvmeRemoteControllerService_StatsNvmePath_FullMethodName = "/opi_api.storage.v1.NvmeRemoteControllerService/StatsNvmePath" +) + // NvmeRemoteControllerServiceClient is the client API for NvmeRemoteControllerService service. // // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. @@ -65,7 +87,7 @@ func NewNvmeRemoteControllerServiceClient(cc grpc.ClientConnInterface) NvmeRemot func (c *nvmeRemoteControllerServiceClient) CreateNvmeRemoteController(ctx context.Context, in *CreateNvmeRemoteControllerRequest, opts ...grpc.CallOption) (*NvmeRemoteController, error) { out := new(NvmeRemoteController) - err := c.cc.Invoke(ctx, "/opi_api.storage.v1.NvmeRemoteControllerService/CreateNvmeRemoteController", in, out, opts...) + err := c.cc.Invoke(ctx, NvmeRemoteControllerService_CreateNvmeRemoteController_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -74,7 +96,7 @@ func (c *nvmeRemoteControllerServiceClient) CreateNvmeRemoteController(ctx conte func (c *nvmeRemoteControllerServiceClient) DeleteNvmeRemoteController(ctx context.Context, in *DeleteNvmeRemoteControllerRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) { out := new(emptypb.Empty) - err := c.cc.Invoke(ctx, "/opi_api.storage.v1.NvmeRemoteControllerService/DeleteNvmeRemoteController", in, out, opts...) + err := c.cc.Invoke(ctx, NvmeRemoteControllerService_DeleteNvmeRemoteController_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -83,7 +105,7 @@ func (c *nvmeRemoteControllerServiceClient) DeleteNvmeRemoteController(ctx conte func (c *nvmeRemoteControllerServiceClient) UpdateNvmeRemoteController(ctx context.Context, in *UpdateNvmeRemoteControllerRequest, opts ...grpc.CallOption) (*NvmeRemoteController, error) { out := new(NvmeRemoteController) - err := c.cc.Invoke(ctx, "/opi_api.storage.v1.NvmeRemoteControllerService/UpdateNvmeRemoteController", in, out, opts...) + err := c.cc.Invoke(ctx, NvmeRemoteControllerService_UpdateNvmeRemoteController_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -92,7 +114,7 @@ func (c *nvmeRemoteControllerServiceClient) UpdateNvmeRemoteController(ctx conte func (c *nvmeRemoteControllerServiceClient) ListNvmeRemoteControllers(ctx context.Context, in *ListNvmeRemoteControllersRequest, opts ...grpc.CallOption) (*ListNvmeRemoteControllersResponse, error) { out := new(ListNvmeRemoteControllersResponse) - err := c.cc.Invoke(ctx, "/opi_api.storage.v1.NvmeRemoteControllerService/ListNvmeRemoteControllers", in, out, opts...) + err := c.cc.Invoke(ctx, NvmeRemoteControllerService_ListNvmeRemoteControllers_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -101,7 +123,7 @@ func (c *nvmeRemoteControllerServiceClient) ListNvmeRemoteControllers(ctx contex func (c *nvmeRemoteControllerServiceClient) GetNvmeRemoteController(ctx context.Context, in *GetNvmeRemoteControllerRequest, opts ...grpc.CallOption) (*NvmeRemoteController, error) { out := new(NvmeRemoteController) - err := c.cc.Invoke(ctx, "/opi_api.storage.v1.NvmeRemoteControllerService/GetNvmeRemoteController", in, out, opts...) + err := c.cc.Invoke(ctx, NvmeRemoteControllerService_GetNvmeRemoteController_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -110,7 +132,7 @@ func (c *nvmeRemoteControllerServiceClient) GetNvmeRemoteController(ctx context. func (c *nvmeRemoteControllerServiceClient) ResetNvmeRemoteController(ctx context.Context, in *ResetNvmeRemoteControllerRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) { out := new(emptypb.Empty) - err := c.cc.Invoke(ctx, "/opi_api.storage.v1.NvmeRemoteControllerService/ResetNvmeRemoteController", in, out, opts...) + err := c.cc.Invoke(ctx, NvmeRemoteControllerService_ResetNvmeRemoteController_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -119,7 +141,7 @@ func (c *nvmeRemoteControllerServiceClient) ResetNvmeRemoteController(ctx contex func (c *nvmeRemoteControllerServiceClient) StatsNvmeRemoteController(ctx context.Context, in *StatsNvmeRemoteControllerRequest, opts ...grpc.CallOption) (*StatsNvmeRemoteControllerResponse, error) { out := new(StatsNvmeRemoteControllerResponse) - err := c.cc.Invoke(ctx, "/opi_api.storage.v1.NvmeRemoteControllerService/StatsNvmeRemoteController", in, out, opts...) + err := c.cc.Invoke(ctx, NvmeRemoteControllerService_StatsNvmeRemoteController_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -128,7 +150,7 @@ func (c *nvmeRemoteControllerServiceClient) StatsNvmeRemoteController(ctx contex func (c *nvmeRemoteControllerServiceClient) ListNvmeRemoteNamespaces(ctx context.Context, in *ListNvmeRemoteNamespacesRequest, opts ...grpc.CallOption) (*ListNvmeRemoteNamespacesResponse, error) { out := new(ListNvmeRemoteNamespacesResponse) - err := c.cc.Invoke(ctx, "/opi_api.storage.v1.NvmeRemoteControllerService/ListNvmeRemoteNamespaces", in, out, opts...) + err := c.cc.Invoke(ctx, NvmeRemoteControllerService_ListNvmeRemoteNamespaces_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -137,7 +159,7 @@ func (c *nvmeRemoteControllerServiceClient) ListNvmeRemoteNamespaces(ctx context func (c *nvmeRemoteControllerServiceClient) GetNvmeRemoteNamespace(ctx context.Context, in *GetNvmeRemoteNamespaceRequest, opts ...grpc.CallOption) (*NvmeRemoteNamespace, error) { out := new(NvmeRemoteNamespace) - err := c.cc.Invoke(ctx, "/opi_api.storage.v1.NvmeRemoteControllerService/GetNvmeRemoteNamespace", in, out, opts...) + err := c.cc.Invoke(ctx, NvmeRemoteControllerService_GetNvmeRemoteNamespace_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -146,7 +168,7 @@ func (c *nvmeRemoteControllerServiceClient) GetNvmeRemoteNamespace(ctx context.C func (c *nvmeRemoteControllerServiceClient) CreateNvmePath(ctx context.Context, in *CreateNvmePathRequest, opts ...grpc.CallOption) (*NvmePath, error) { out := new(NvmePath) - err := c.cc.Invoke(ctx, "/opi_api.storage.v1.NvmeRemoteControllerService/CreateNvmePath", in, out, opts...) + err := c.cc.Invoke(ctx, NvmeRemoteControllerService_CreateNvmePath_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -155,7 +177,7 @@ func (c *nvmeRemoteControllerServiceClient) CreateNvmePath(ctx context.Context, func (c *nvmeRemoteControllerServiceClient) DeleteNvmePath(ctx context.Context, in *DeleteNvmePathRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) { out := new(emptypb.Empty) - err := c.cc.Invoke(ctx, "/opi_api.storage.v1.NvmeRemoteControllerService/DeleteNvmePath", in, out, opts...) + err := c.cc.Invoke(ctx, NvmeRemoteControllerService_DeleteNvmePath_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -164,7 +186,7 @@ func (c *nvmeRemoteControllerServiceClient) DeleteNvmePath(ctx context.Context, func (c *nvmeRemoteControllerServiceClient) UpdateNvmePath(ctx context.Context, in *UpdateNvmePathRequest, opts ...grpc.CallOption) (*NvmePath, error) { out := new(NvmePath) - err := c.cc.Invoke(ctx, "/opi_api.storage.v1.NvmeRemoteControllerService/UpdateNvmePath", in, out, opts...) + err := c.cc.Invoke(ctx, NvmeRemoteControllerService_UpdateNvmePath_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -173,7 +195,7 @@ func (c *nvmeRemoteControllerServiceClient) UpdateNvmePath(ctx context.Context, func (c *nvmeRemoteControllerServiceClient) ListNvmePaths(ctx context.Context, in *ListNvmePathsRequest, opts ...grpc.CallOption) (*ListNvmePathsResponse, error) { out := new(ListNvmePathsResponse) - err := c.cc.Invoke(ctx, "/opi_api.storage.v1.NvmeRemoteControllerService/ListNvmePaths", in, out, opts...) + err := c.cc.Invoke(ctx, NvmeRemoteControllerService_ListNvmePaths_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -182,7 +204,7 @@ func (c *nvmeRemoteControllerServiceClient) ListNvmePaths(ctx context.Context, i func (c *nvmeRemoteControllerServiceClient) GetNvmePath(ctx context.Context, in *GetNvmePathRequest, opts ...grpc.CallOption) (*NvmePath, error) { out := new(NvmePath) - err := c.cc.Invoke(ctx, "/opi_api.storage.v1.NvmeRemoteControllerService/GetNvmePath", in, out, opts...) + err := c.cc.Invoke(ctx, NvmeRemoteControllerService_GetNvmePath_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -191,7 +213,7 @@ func (c *nvmeRemoteControllerServiceClient) GetNvmePath(ctx context.Context, in func (c *nvmeRemoteControllerServiceClient) StatsNvmePath(ctx context.Context, in *StatsNvmePathRequest, opts ...grpc.CallOption) (*StatsNvmePathResponse, error) { out := new(StatsNvmePathResponse) - err := c.cc.Invoke(ctx, "/opi_api.storage.v1.NvmeRemoteControllerService/StatsNvmePath", in, out, opts...) + err := c.cc.Invoke(ctx, NvmeRemoteControllerService_StatsNvmePath_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -199,7 +221,7 @@ func (c *nvmeRemoteControllerServiceClient) StatsNvmePath(ctx context.Context, i } // NvmeRemoteControllerServiceServer is the server API for NvmeRemoteControllerService service. -// All implementations should embed UnimplementedNvmeRemoteControllerServiceServer +// All implementations must embed UnimplementedNvmeRemoteControllerServiceServer // for forward compatibility type NvmeRemoteControllerServiceServer interface { // Create an Nvme Remote Controller @@ -232,9 +254,10 @@ type NvmeRemoteControllerServiceServer interface { GetNvmePath(context.Context, *GetNvmePathRequest) (*NvmePath, error) // Get an Nvme Path statistics StatsNvmePath(context.Context, *StatsNvmePathRequest) (*StatsNvmePathResponse, error) + mustEmbedUnimplementedNvmeRemoteControllerServiceServer() } -// UnimplementedNvmeRemoteControllerServiceServer should be embedded to have forward compatible implementations. +// UnimplementedNvmeRemoteControllerServiceServer must be embedded to have forward compatible implementations. type UnimplementedNvmeRemoteControllerServiceServer struct { } @@ -283,6 +306,8 @@ func (UnimplementedNvmeRemoteControllerServiceServer) GetNvmePath(context.Contex func (UnimplementedNvmeRemoteControllerServiceServer) StatsNvmePath(context.Context, *StatsNvmePathRequest) (*StatsNvmePathResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method StatsNvmePath not implemented") } +func (UnimplementedNvmeRemoteControllerServiceServer) mustEmbedUnimplementedNvmeRemoteControllerServiceServer() { +} // UnsafeNvmeRemoteControllerServiceServer may be embedded to opt out of forward compatibility for this service. // Use of this interface is not recommended, as added methods to NvmeRemoteControllerServiceServer will @@ -305,7 +330,7 @@ func _NvmeRemoteControllerService_CreateNvmeRemoteController_Handler(srv interfa } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/opi_api.storage.v1.NvmeRemoteControllerService/CreateNvmeRemoteController", + FullMethod: NvmeRemoteControllerService_CreateNvmeRemoteController_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(NvmeRemoteControllerServiceServer).CreateNvmeRemoteController(ctx, req.(*CreateNvmeRemoteControllerRequest)) @@ -323,7 +348,7 @@ func _NvmeRemoteControllerService_DeleteNvmeRemoteController_Handler(srv interfa } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/opi_api.storage.v1.NvmeRemoteControllerService/DeleteNvmeRemoteController", + FullMethod: NvmeRemoteControllerService_DeleteNvmeRemoteController_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(NvmeRemoteControllerServiceServer).DeleteNvmeRemoteController(ctx, req.(*DeleteNvmeRemoteControllerRequest)) @@ -341,7 +366,7 @@ func _NvmeRemoteControllerService_UpdateNvmeRemoteController_Handler(srv interfa } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/opi_api.storage.v1.NvmeRemoteControllerService/UpdateNvmeRemoteController", + FullMethod: NvmeRemoteControllerService_UpdateNvmeRemoteController_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(NvmeRemoteControllerServiceServer).UpdateNvmeRemoteController(ctx, req.(*UpdateNvmeRemoteControllerRequest)) @@ -359,7 +384,7 @@ func _NvmeRemoteControllerService_ListNvmeRemoteControllers_Handler(srv interfac } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/opi_api.storage.v1.NvmeRemoteControllerService/ListNvmeRemoteControllers", + FullMethod: NvmeRemoteControllerService_ListNvmeRemoteControllers_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(NvmeRemoteControllerServiceServer).ListNvmeRemoteControllers(ctx, req.(*ListNvmeRemoteControllersRequest)) @@ -377,7 +402,7 @@ func _NvmeRemoteControllerService_GetNvmeRemoteController_Handler(srv interface{ } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/opi_api.storage.v1.NvmeRemoteControllerService/GetNvmeRemoteController", + FullMethod: NvmeRemoteControllerService_GetNvmeRemoteController_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(NvmeRemoteControllerServiceServer).GetNvmeRemoteController(ctx, req.(*GetNvmeRemoteControllerRequest)) @@ -395,7 +420,7 @@ func _NvmeRemoteControllerService_ResetNvmeRemoteController_Handler(srv interfac } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/opi_api.storage.v1.NvmeRemoteControllerService/ResetNvmeRemoteController", + FullMethod: NvmeRemoteControllerService_ResetNvmeRemoteController_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(NvmeRemoteControllerServiceServer).ResetNvmeRemoteController(ctx, req.(*ResetNvmeRemoteControllerRequest)) @@ -413,7 +438,7 @@ func _NvmeRemoteControllerService_StatsNvmeRemoteController_Handler(srv interfac } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/opi_api.storage.v1.NvmeRemoteControllerService/StatsNvmeRemoteController", + FullMethod: NvmeRemoteControllerService_StatsNvmeRemoteController_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(NvmeRemoteControllerServiceServer).StatsNvmeRemoteController(ctx, req.(*StatsNvmeRemoteControllerRequest)) @@ -431,7 +456,7 @@ func _NvmeRemoteControllerService_ListNvmeRemoteNamespaces_Handler(srv interface } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/opi_api.storage.v1.NvmeRemoteControllerService/ListNvmeRemoteNamespaces", + FullMethod: NvmeRemoteControllerService_ListNvmeRemoteNamespaces_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(NvmeRemoteControllerServiceServer).ListNvmeRemoteNamespaces(ctx, req.(*ListNvmeRemoteNamespacesRequest)) @@ -449,7 +474,7 @@ func _NvmeRemoteControllerService_GetNvmeRemoteNamespace_Handler(srv interface{} } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/opi_api.storage.v1.NvmeRemoteControllerService/GetNvmeRemoteNamespace", + FullMethod: NvmeRemoteControllerService_GetNvmeRemoteNamespace_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(NvmeRemoteControllerServiceServer).GetNvmeRemoteNamespace(ctx, req.(*GetNvmeRemoteNamespaceRequest)) @@ -467,7 +492,7 @@ func _NvmeRemoteControllerService_CreateNvmePath_Handler(srv interface{}, ctx co } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/opi_api.storage.v1.NvmeRemoteControllerService/CreateNvmePath", + FullMethod: NvmeRemoteControllerService_CreateNvmePath_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(NvmeRemoteControllerServiceServer).CreateNvmePath(ctx, req.(*CreateNvmePathRequest)) @@ -485,7 +510,7 @@ func _NvmeRemoteControllerService_DeleteNvmePath_Handler(srv interface{}, ctx co } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/opi_api.storage.v1.NvmeRemoteControllerService/DeleteNvmePath", + FullMethod: NvmeRemoteControllerService_DeleteNvmePath_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(NvmeRemoteControllerServiceServer).DeleteNvmePath(ctx, req.(*DeleteNvmePathRequest)) @@ -503,7 +528,7 @@ func _NvmeRemoteControllerService_UpdateNvmePath_Handler(srv interface{}, ctx co } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/opi_api.storage.v1.NvmeRemoteControllerService/UpdateNvmePath", + FullMethod: NvmeRemoteControllerService_UpdateNvmePath_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(NvmeRemoteControllerServiceServer).UpdateNvmePath(ctx, req.(*UpdateNvmePathRequest)) @@ -521,7 +546,7 @@ func _NvmeRemoteControllerService_ListNvmePaths_Handler(srv interface{}, ctx con } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/opi_api.storage.v1.NvmeRemoteControllerService/ListNvmePaths", + FullMethod: NvmeRemoteControllerService_ListNvmePaths_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(NvmeRemoteControllerServiceServer).ListNvmePaths(ctx, req.(*ListNvmePathsRequest)) @@ -539,7 +564,7 @@ func _NvmeRemoteControllerService_GetNvmePath_Handler(srv interface{}, ctx conte } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/opi_api.storage.v1.NvmeRemoteControllerService/GetNvmePath", + FullMethod: NvmeRemoteControllerService_GetNvmePath_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(NvmeRemoteControllerServiceServer).GetNvmePath(ctx, req.(*GetNvmePathRequest)) @@ -557,7 +582,7 @@ func _NvmeRemoteControllerService_StatsNvmePath_Handler(srv interface{}, ctx con } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/opi_api.storage.v1.NvmeRemoteControllerService/StatsNvmePath", + FullMethod: NvmeRemoteControllerService_StatsNvmePath_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(NvmeRemoteControllerServiceServer).StatsNvmePath(ctx, req.(*StatsNvmePathRequest)) diff --git a/storage/v1alpha1/gen/go/frontend_nvme.pb.go b/storage/v1alpha1/gen/go/frontend_nvme.pb.go index 280022d9..aacfe646 100644 --- a/storage/v1alpha1/gen/go/frontend_nvme.pb.go +++ b/storage/v1alpha1/gen/go/frontend_nvme.pb.go @@ -5,14 +5,13 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.1 -// protoc v3.21.6 +// protoc-gen-go v1.31.0 +// protoc (unknown) // source: frontend_nvme.proto package _go import ( - _go "github.com/opiproject/opi-api/common/v1/gen/go" _ "google.golang.org/genproto/googleapis/api/annotations" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" @@ -742,7 +741,7 @@ type NvmeNamespaceSpec struct { // mandatory if guid is not specified Eui64 int64 `protobuf:"varint,4,opt,name=eui64,proto3" json:"eui64,omitempty"` // Globally unique identifier for the namespace - Uuid *_go.Uuid `protobuf:"bytes,5,opt,name=uuid,proto3" json:"uuid,omitempty"` + Uuid string `protobuf:"bytes,5,opt,name=uuid,proto3" json:"uuid,omitempty"` // The back/middle-end volume to back this namespace. VolumeNameRef string `protobuf:"bytes,6,opt,name=volume_name_ref,json=volumeNameRef,proto3" json:"volume_name_ref,omitempty"` } @@ -800,11 +799,11 @@ func (x *NvmeNamespaceSpec) GetEui64() int64 { return 0 } -func (x *NvmeNamespaceSpec) GetUuid() *_go.Uuid { +func (x *NvmeNamespaceSpec) GetUuid() string { if x != nil { return x.Uuid } - return nil + return "" } func (x *NvmeNamespaceSpec) GetVolumeNameRef() string { @@ -2268,594 +2267,592 @@ var file_frontend_nvme_proto_rawDesc = []byte{ 0x0a, 0x13, 0x66, 0x72, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x64, 0x5f, 0x6e, 0x76, 0x6d, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x1a, 0x0f, 0x6f, 0x70, 0x69, 0x63, 0x6f, - 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x0a, 0x75, 0x75, 0x69, 0x64, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, - 0x70, 0x69, 0x2f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, - 0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x72, 0x65, 0x73, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1b, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x65, 0x6d, 0x70, 0x74, - 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, - 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, - 0x69, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x20, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x61, - 0x73, 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x90, 0x02, 0x0a, 0x0d, 0x4e, 0x76, 0x6d, - 0x65, 0x53, 0x75, 0x62, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x08, 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, 0x53, 0x75, 0x62, 0x73, 0x79, - 0x73, 0x74, 0x65, 0x6d, 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, 0x53, 0x75, 0x62, - 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, 0x03, 0xe0, 0x41, - 0x03, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x3a, 0x60, 0xea, 0x41, 0x5d, 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, - 0x12, 0x1a, 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, 0x2a, 0x0e, 0x6e, 0x76, - 0x6d, 0x65, 0x53, 0x75, 0x62, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x73, 0x32, 0x0d, 0x6e, 0x76, - 0x6d, 0x65, 0x53, 0x75, 0x62, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x22, 0xde, 0x01, 0x0a, 0x11, - 0x4e, 0x76, 0x6d, 0x65, 0x53, 0x75, 0x62, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x53, 0x70, 0x65, - 0x63, 0x12, 0x15, 0x0a, 0x03, 0x6e, 0x71, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, - 0xe0, 0x41, 0x02, 0x52, 0x03, 0x6e, 0x71, 0x6e, 0x12, 0x28, 0x0a, 0x0d, 0x73, 0x65, 0x72, 0x69, - 0x61, 0x6c, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, - 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0c, 0x73, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x4e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x12, 0x26, 0x0a, 0x0c, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x6e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0b, 0x6d, - 0x6f, 0x64, 0x65, 0x6c, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x2a, 0x0a, 0x0e, 0x6d, 0x61, - 0x78, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x03, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0d, 0x6d, 0x61, 0x78, 0x4e, 0x61, 0x6d, 0x65, - 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x12, 0x1d, 0x0a, 0x07, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x71, - 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x07, 0x68, 0x6f, - 0x73, 0x74, 0x6e, 0x71, 0x6e, 0x12, 0x15, 0x0a, 0x03, 0x70, 0x73, 0x6b, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x0c, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x03, 0x70, 0x73, 0x6b, 0x22, 0x67, 0x0a, 0x13, - 0x4e, 0x76, 0x6d, 0x65, 0x53, 0x75, 0x62, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x53, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x12, 0x30, 0x0a, 0x11, 0x66, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x5f, - 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, - 0xe0, 0x41, 0x03, 0x52, 0x10, 0x66, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x52, 0x65, 0x76, - 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1e, 0x0a, 0x08, 0x66, 0x72, 0x75, 0x5f, 0x67, 0x75, 0x69, - 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x07, 0x66, 0x72, - 0x75, 0x47, 0x75, 0x69, 0x64, 0x22, 0xb4, 0x02, 0x0a, 0x0e, 0x4e, 0x76, 0x6d, 0x65, 0x43, 0x6f, - 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x08, 0x52, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x12, 0x3f, 0x0a, 0x04, 0x73, 0x70, 0x65, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x26, 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, 0x53, 0x70, 0x65, 0x63, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x04, 0x73, 0x70, - 0x65, 0x63, 0x12, 0x45, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0b, 0x32, 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, 0x43, 0x6f, 0x6e, 0x74, - 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, 0x03, 0xe0, 0x41, - 0x03, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x3a, 0x80, 0x01, 0xea, 0x41, 0x7d, 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, 0x12, 0x37, 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, 0x43, 0x6f, 0x6e, 0x74, 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, 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, 0x01, 0x52, 0x10, 0x6e, 0x76, 0x6d, 0x65, 0x43, 0x6f, 0x6e, 0x74, - 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x49, 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, 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, 0xab, 0x02, - 0x0a, 0x0d, 0x4e, 0x76, 0x6d, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, - 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, - 0x41, 0x08, 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, + 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, + 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1b, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, + 0x65, 0x6d, 0x70, 0x74, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x62, 0x65, 0x68, 0x61, + 0x76, 0x69, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x20, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x66, 0x69, 0x65, 0x6c, + 0x64, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x90, 0x02, 0x0a, + 0x0d, 0x4e, 0x76, 0x6d, 0x65, 0x53, 0x75, 0x62, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x12, 0x17, + 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, + 0x08, 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, 0x53, + 0x75, 0x62, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 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, 0x53, 0x75, 0x62, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x3a, 0x60, 0xea, + 0x41, 0x5d, 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, 0x12, 0x1a, 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, + 0x2a, 0x0e, 0x6e, 0x76, 0x6d, 0x65, 0x53, 0x75, 0x62, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x73, + 0x32, 0x0d, 0x6e, 0x76, 0x6d, 0x65, 0x53, 0x75, 0x62, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x22, + 0xde, 0x01, 0x0a, 0x11, 0x4e, 0x76, 0x6d, 0x65, 0x53, 0x75, 0x62, 0x73, 0x79, 0x73, 0x74, 0x65, + 0x6d, 0x53, 0x70, 0x65, 0x63, 0x12, 0x15, 0x0a, 0x03, 0x6e, 0x71, 0x6e, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x03, 0x6e, 0x71, 0x6e, 0x12, 0x28, 0x0a, 0x0d, + 0x73, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0c, 0x73, 0x65, 0x72, 0x69, 0x61, 0x6c, + 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x26, 0x0a, 0x0c, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, + 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, + 0x01, 0x52, 0x0b, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x2a, + 0x0a, 0x0e, 0x6d, 0x61, 0x78, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0d, 0x6d, 0x61, 0x78, + 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x12, 0x1d, 0x0a, 0x07, 0x68, 0x6f, + 0x73, 0x74, 0x6e, 0x71, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, + 0x52, 0x07, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x71, 0x6e, 0x12, 0x15, 0x0a, 0x03, 0x70, 0x73, 0x6b, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x03, 0x70, 0x73, 0x6b, + 0x22, 0x67, 0x0a, 0x13, 0x4e, 0x76, 0x6d, 0x65, 0x53, 0x75, 0x62, 0x73, 0x79, 0x73, 0x74, 0x65, + 0x6d, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x30, 0x0a, 0x11, 0x66, 0x69, 0x72, 0x6d, 0x77, + 0x61, 0x72, 0x65, 0x5f, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x10, 0x66, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, + 0x65, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1e, 0x0a, 0x08, 0x66, 0x72, 0x75, + 0x5f, 0x67, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x03, 0xe0, 0x41, 0x03, + 0x52, 0x07, 0x66, 0x72, 0x75, 0x47, 0x75, 0x69, 0x64, 0x22, 0xb4, 0x02, 0x0a, 0x0e, 0x4e, 0x76, + 0x6d, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x12, 0x17, 0x0a, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x08, 0x52, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x3f, 0x0a, 0x04, 0x73, 0x70, 0x65, 0x63, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x26, 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, 0x53, 0x70, 0x65, 0x63, 0x42, 0x03, 0xe0, 0x41, 0x02, + 0x52, 0x04, 0x73, 0x70, 0x65, 0x63, 0x12, 0x45, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 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, - 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, 0x7b, - 0xea, 0x41, 0x78, 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, 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, + 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x3a, 0x80, 0x01, + 0xea, 0x41, 0x7d, 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, 0x12, 0x37, 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, 0x43, 0x6f, 0x6e, 0x74, 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, 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, 0x01, 0x52, 0x10, 0x6e, 0x76, 0x6d, 0x65, + 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x49, 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, 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, 0xab, 0x02, 0x0a, 0x0d, 0x4e, 0x76, 0x6d, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, + 0x61, 0x63, 0x65, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x03, 0xe0, 0x41, 0x08, 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, 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, 0xe9, 0x02, 0x0a, 0x13, 0x4e, 0x76, 0x6d, - 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x12, 0x48, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 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, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x42, 0x03, - 0xe0, 0x41, 0x03, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x55, 0x0a, 0x0a, 0x6f, 0x70, - 0x65, 0x72, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x31, - 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, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, - 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x09, 0x6f, 0x70, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, - 0x65, 0x22, 0x59, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x15, 0x0a, 0x11, 0x53, 0x54, - 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, - 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x44, 0x49, 0x53, 0x41, 0x42, - 0x4c, 0x45, 0x44, 0x10, 0x01, 0x12, 0x11, 0x0a, 0x0d, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x45, - 0x4e, 0x41, 0x42, 0x4c, 0x45, 0x44, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x53, 0x54, 0x41, 0x54, - 0x45, 0x5f, 0x44, 0x45, 0x4c, 0x45, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x03, 0x22, 0x56, 0x0a, 0x09, - 0x4f, 0x70, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1a, 0x0a, 0x16, 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, 0x15, 0x0a, 0x11, 0x4f, 0x50, 0x45, 0x52, 0x5f, 0x53, 0x54, - 0x41, 0x54, 0x45, 0x5f, 0x4f, 0x4e, 0x4c, 0x49, 0x4e, 0x45, 0x10, 0x01, 0x12, 0x16, 0x0a, 0x12, - 0x4f, 0x50, 0x45, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x4f, 0x46, 0x46, 0x4c, 0x49, - 0x4e, 0x45, 0x10, 0x02, 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, + 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, 0x7b, 0xea, 0x41, 0x78, 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, 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, + 0xb1, 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, 0x17, 0x0a, + 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 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, 0xe9, 0x02, 0x0a, 0x13, 0x4e, 0x76, 0x6d, 0x65, 0x4e, 0x61, 0x6d, 0x65, + 0x73, 0x70, 0x61, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x48, 0x0a, 0x05, 0x73, + 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 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, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x05, + 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x55, 0x0a, 0x0a, 0x6f, 0x70, 0x65, 0x72, 0x5f, 0x73, 0x74, + 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x31, 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, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x42, 0x03, 0xe0, 0x41, + 0x03, 0x52, 0x09, 0x6f, 0x70, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x22, 0x59, 0x0a, 0x05, + 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x15, 0x0a, 0x11, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, + 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, + 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x44, 0x49, 0x53, 0x41, 0x42, 0x4c, 0x45, 0x44, 0x10, 0x01, + 0x12, 0x11, 0x0a, 0x0d, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x45, 0x4e, 0x41, 0x42, 0x4c, 0x45, + 0x44, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x44, 0x45, 0x4c, + 0x45, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x03, 0x22, 0x56, 0x0a, 0x09, 0x4f, 0x70, 0x65, 0x72, 0x53, + 0x74, 0x61, 0x74, 0x65, 0x12, 0x1a, 0x0a, 0x16, 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, 0x15, 0x0a, 0x11, 0x4f, 0x50, 0x45, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x4f, + 0x4e, 0x4c, 0x49, 0x4e, 0x45, 0x10, 0x01, 0x12, 0x16, 0x0a, 0x12, 0x4f, 0x50, 0x45, 0x52, 0x5f, + 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x4f, 0x46, 0x46, 0x4c, 0x49, 0x4e, 0x45, 0x10, 0x02, 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, 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, 0x12, 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, 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, + 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, 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, + 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, 0x12, 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, + 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, 0x12, 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, 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, + 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, + 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, 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, + 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, 0x12, 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, 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, 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, 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, + 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, 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, 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, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x24, 0x3a, 0x0e, 0x6e, 0x76, 0x6d, + 0x65, 0x5f, 0x73, 0x75, 0x62, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x22, 0x12, 0x2f, 0x76, 0x31, + 0x2f, 0x6e, 0x76, 0x6d, 0x65, 0x53, 0x75, 0x62, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x73, 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, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 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, 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, 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, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3c, 0x3a, 0x0e, 0x6e, 0x76, 0x6d, + 0x65, 0x5f, 0x73, 0x75, 0x62, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 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, 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, + 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 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, 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, 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, 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, + 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x73, 0x2f, 0x2a, 0x7d, 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, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 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, 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, 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, + 0x31, 0x2e, 0x4e, 0x76, 0x6d, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, + 0x22, 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, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x40, 0x3a, 0x0f, 0x6e, 0x76, 0x6d, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, + 0x6f, 0x6c, 0x6c, 0x65, 0x72, 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, 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, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 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, 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, 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, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x50, 0x3a, 0x0f, 0x6e, 0x76, 0x6d, 0x65, 0x5f, 0x63, + 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 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, 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, 0xda, 0x41, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 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, 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, 0xda, 0x41, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 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, 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, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 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, 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, 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, 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, + 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, 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, 0x60, - 0x0a, 0x12, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, - 0x65, 0x2e, 0x76, 0x31, 0x42, 0x11, 0x46, 0x72, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x64, 0x4e, 0x76, - 0x6d, 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, + 0x31, 0x2e, 0x4e, 0x76, 0x6d, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x22, + 0x6e, 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, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x3e, 0x3a, 0x0e, 0x6e, 0x76, 0x6d, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, + 0x65, 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, 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, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 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, 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, 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, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x4d, 0x3a, 0x0e, 0x6e, 0x76, + 0x6d, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 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, 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, 0xda, 0x41, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 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, 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, 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, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 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, + 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, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 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, 0x42, 0x60, 0x0a, 0x12, 0x6f, 0x70, 0x69, + 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x42, + 0x11, 0x46, 0x72, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x64, 0x4e, 0x76, 0x6d, 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 ( @@ -2912,10 +2909,9 @@ var file_frontend_nvme_proto_goTypes = []interface{}{ (*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 + (*fieldmaskpb.FieldMask)(nil), // 39: google.protobuf.FieldMask + (*VolumeStats)(nil), // 40: opi_api.storage.v1.VolumeStats + (*emptypb.Empty)(nil), // 41: google.protobuf.Empty } var file_frontend_nvme_proto_depIdxs = []int32{ 3, // 0: opi_api.storage.v1.NvmeSubsystem.spec:type_name -> opi_api.storage.v1.NvmeSubsystemSpec @@ -2929,65 +2925,64 @@ var file_frontend_nvme_proto_depIdxs = []int32{ 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.state:type_name -> opi_api.storage.v1.NvmeNamespaceStatus.State - 1, // 13: opi_api.storage.v1.NvmeNamespaceStatus.oper_state:type_name -> opi_api.storage.v1.NvmeNamespaceStatus.OperState - 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 + 0, // 11: opi_api.storage.v1.NvmeNamespaceStatus.state:type_name -> opi_api.storage.v1.NvmeNamespaceStatus.State + 1, // 12: opi_api.storage.v1.NvmeNamespaceStatus.oper_state:type_name -> opi_api.storage.v1.NvmeNamespaceStatus.OperState + 2, // 13: opi_api.storage.v1.CreateNvmeSubsystemRequest.nvme_subsystem:type_name -> opi_api.storage.v1.NvmeSubsystem + 2, // 14: opi_api.storage.v1.UpdateNvmeSubsystemRequest.nvme_subsystem:type_name -> opi_api.storage.v1.NvmeSubsystem + 39, // 15: opi_api.storage.v1.UpdateNvmeSubsystemRequest.update_mask:type_name -> google.protobuf.FieldMask + 2, // 16: opi_api.storage.v1.ListNvmeSubsystemsResponse.nvme_subsystems:type_name -> opi_api.storage.v1.NvmeSubsystem + 40, // 17: opi_api.storage.v1.StatsNvmeSubsystemResponse.stats:type_name -> opi_api.storage.v1.VolumeStats + 5, // 18: opi_api.storage.v1.CreateNvmeControllerRequest.nvme_controller:type_name -> opi_api.storage.v1.NvmeController + 5, // 19: opi_api.storage.v1.UpdateNvmeControllerRequest.nvme_controller:type_name -> opi_api.storage.v1.NvmeController + 39, // 20: opi_api.storage.v1.UpdateNvmeControllerRequest.update_mask:type_name -> google.protobuf.FieldMask + 5, // 21: opi_api.storage.v1.ListNvmeControllersResponse.nvme_controllers:type_name -> opi_api.storage.v1.NvmeController + 40, // 22: opi_api.storage.v1.StatsNvmeControllerResponse.stats:type_name -> opi_api.storage.v1.VolumeStats + 8, // 23: opi_api.storage.v1.CreateNvmeNamespaceRequest.nvme_namespace:type_name -> opi_api.storage.v1.NvmeNamespace + 8, // 24: opi_api.storage.v1.UpdateNvmeNamespaceRequest.nvme_namespace:type_name -> opi_api.storage.v1.NvmeNamespace + 39, // 25: opi_api.storage.v1.UpdateNvmeNamespaceRequest.update_mask:type_name -> google.protobuf.FieldMask + 8, // 26: opi_api.storage.v1.ListNvmeNamespacesResponse.nvme_namespaces:type_name -> opi_api.storage.v1.NvmeNamespace + 40, // 27: opi_api.storage.v1.StatsNvmeNamespaceResponse.stats:type_name -> opi_api.storage.v1.VolumeStats + 11, // 28: opi_api.storage.v1.FrontendNvmeService.CreateNvmeSubsystem:input_type -> opi_api.storage.v1.CreateNvmeSubsystemRequest + 12, // 29: opi_api.storage.v1.FrontendNvmeService.DeleteNvmeSubsystem:input_type -> opi_api.storage.v1.DeleteNvmeSubsystemRequest + 13, // 30: opi_api.storage.v1.FrontendNvmeService.UpdateNvmeSubsystem:input_type -> opi_api.storage.v1.UpdateNvmeSubsystemRequest + 14, // 31: opi_api.storage.v1.FrontendNvmeService.ListNvmeSubsystems:input_type -> opi_api.storage.v1.ListNvmeSubsystemsRequest + 16, // 32: opi_api.storage.v1.FrontendNvmeService.GetNvmeSubsystem:input_type -> opi_api.storage.v1.GetNvmeSubsystemRequest + 17, // 33: opi_api.storage.v1.FrontendNvmeService.StatsNvmeSubsystem:input_type -> opi_api.storage.v1.StatsNvmeSubsystemRequest + 19, // 34: opi_api.storage.v1.FrontendNvmeService.CreateNvmeController:input_type -> opi_api.storage.v1.CreateNvmeControllerRequest + 20, // 35: opi_api.storage.v1.FrontendNvmeService.DeleteNvmeController:input_type -> opi_api.storage.v1.DeleteNvmeControllerRequest + 21, // 36: opi_api.storage.v1.FrontendNvmeService.UpdateNvmeController:input_type -> opi_api.storage.v1.UpdateNvmeControllerRequest + 22, // 37: opi_api.storage.v1.FrontendNvmeService.ListNvmeControllers:input_type -> opi_api.storage.v1.ListNvmeControllersRequest + 24, // 38: opi_api.storage.v1.FrontendNvmeService.GetNvmeController:input_type -> opi_api.storage.v1.GetNvmeControllerRequest + 25, // 39: opi_api.storage.v1.FrontendNvmeService.StatsNvmeController:input_type -> opi_api.storage.v1.StatsNvmeControllerRequest + 27, // 40: opi_api.storage.v1.FrontendNvmeService.CreateNvmeNamespace:input_type -> opi_api.storage.v1.CreateNvmeNamespaceRequest + 28, // 41: opi_api.storage.v1.FrontendNvmeService.DeleteNvmeNamespace:input_type -> opi_api.storage.v1.DeleteNvmeNamespaceRequest + 29, // 42: opi_api.storage.v1.FrontendNvmeService.UpdateNvmeNamespace:input_type -> opi_api.storage.v1.UpdateNvmeNamespaceRequest + 30, // 43: opi_api.storage.v1.FrontendNvmeService.ListNvmeNamespaces:input_type -> opi_api.storage.v1.ListNvmeNamespacesRequest + 32, // 44: opi_api.storage.v1.FrontendNvmeService.GetNvmeNamespace:input_type -> opi_api.storage.v1.GetNvmeNamespaceRequest + 33, // 45: opi_api.storage.v1.FrontendNvmeService.StatsNvmeNamespace:input_type -> opi_api.storage.v1.StatsNvmeNamespaceRequest + 2, // 46: opi_api.storage.v1.FrontendNvmeService.CreateNvmeSubsystem:output_type -> opi_api.storage.v1.NvmeSubsystem + 41, // 47: opi_api.storage.v1.FrontendNvmeService.DeleteNvmeSubsystem:output_type -> google.protobuf.Empty + 2, // 48: opi_api.storage.v1.FrontendNvmeService.UpdateNvmeSubsystem:output_type -> opi_api.storage.v1.NvmeSubsystem + 15, // 49: opi_api.storage.v1.FrontendNvmeService.ListNvmeSubsystems:output_type -> opi_api.storage.v1.ListNvmeSubsystemsResponse + 2, // 50: opi_api.storage.v1.FrontendNvmeService.GetNvmeSubsystem:output_type -> opi_api.storage.v1.NvmeSubsystem + 18, // 51: opi_api.storage.v1.FrontendNvmeService.StatsNvmeSubsystem:output_type -> opi_api.storage.v1.StatsNvmeSubsystemResponse + 5, // 52: opi_api.storage.v1.FrontendNvmeService.CreateNvmeController:output_type -> opi_api.storage.v1.NvmeController + 41, // 53: opi_api.storage.v1.FrontendNvmeService.DeleteNvmeController:output_type -> google.protobuf.Empty + 5, // 54: opi_api.storage.v1.FrontendNvmeService.UpdateNvmeController:output_type -> opi_api.storage.v1.NvmeController + 23, // 55: opi_api.storage.v1.FrontendNvmeService.ListNvmeControllers:output_type -> opi_api.storage.v1.ListNvmeControllersResponse + 5, // 56: opi_api.storage.v1.FrontendNvmeService.GetNvmeController:output_type -> opi_api.storage.v1.NvmeController + 26, // 57: opi_api.storage.v1.FrontendNvmeService.StatsNvmeController:output_type -> opi_api.storage.v1.StatsNvmeControllerResponse + 8, // 58: opi_api.storage.v1.FrontendNvmeService.CreateNvmeNamespace:output_type -> opi_api.storage.v1.NvmeNamespace + 41, // 59: opi_api.storage.v1.FrontendNvmeService.DeleteNvmeNamespace:output_type -> google.protobuf.Empty + 8, // 60: opi_api.storage.v1.FrontendNvmeService.UpdateNvmeNamespace:output_type -> opi_api.storage.v1.NvmeNamespace + 31, // 61: opi_api.storage.v1.FrontendNvmeService.ListNvmeNamespaces:output_type -> opi_api.storage.v1.ListNvmeNamespacesResponse + 8, // 62: opi_api.storage.v1.FrontendNvmeService.GetNvmeNamespace:output_type -> opi_api.storage.v1.NvmeNamespace + 34, // 63: opi_api.storage.v1.FrontendNvmeService.StatsNvmeNamespace:output_type -> opi_api.storage.v1.StatsNvmeNamespaceResponse + 46, // [46:64] is the sub-list for method output_type + 28, // [28:46] is the sub-list for method input_type + 28, // [28:28] is the sub-list for extension type_name + 28, // [28:28] is the sub-list for extension extendee + 0, // [0:28] is the sub-list for field type_name } func init() { file_frontend_nvme_proto_init() } diff --git a/storage/v1alpha1/gen/go/frontend_nvme.pb.gw.go b/storage/v1alpha1/gen/go/frontend_nvme.pb.gw.go new file mode 100644 index 00000000..823eb56c --- /dev/null +++ b/storage/v1alpha1/gen/go/frontend_nvme.pb.gw.go @@ -0,0 +1,2226 @@ +// Code generated by protoc-gen-grpc-gateway. DO NOT EDIT. +// source: frontend_nvme.proto + +/* +Package _go is a reverse proxy. + +It translates gRPC into RESTful JSON APIs. +*/ +package _go + +import ( + "context" + "io" + "net/http" + + "github.com/grpc-ecosystem/grpc-gateway/v2/runtime" + "github.com/grpc-ecosystem/grpc-gateway/v2/utilities" + "google.golang.org/grpc" + "google.golang.org/grpc/codes" + "google.golang.org/grpc/grpclog" + "google.golang.org/grpc/metadata" + "google.golang.org/grpc/status" + "google.golang.org/protobuf/proto" +) + +// Suppress "imported and not used" errors +var _ codes.Code +var _ io.Reader +var _ status.Status +var _ = runtime.String +var _ = utilities.NewDoubleArray +var _ = metadata.Join + +var ( + filter_FrontendNvmeService_CreateNvmeSubsystem_0 = &utilities.DoubleArray{Encoding: map[string]int{"nvme_subsystem": 0, "nvmeSubsystem": 1}, Base: []int{1, 1, 2, 0, 0}, Check: []int{0, 1, 1, 2, 3}} +) + +func request_FrontendNvmeService_CreateNvmeSubsystem_0(ctx context.Context, marshaler runtime.Marshaler, client FrontendNvmeServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq CreateNvmeSubsystemRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq.NvmeSubsystem); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_FrontendNvmeService_CreateNvmeSubsystem_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.CreateNvmeSubsystem(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_FrontendNvmeService_CreateNvmeSubsystem_0(ctx context.Context, marshaler runtime.Marshaler, server FrontendNvmeServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq CreateNvmeSubsystemRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq.NvmeSubsystem); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_FrontendNvmeService_CreateNvmeSubsystem_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.CreateNvmeSubsystem(ctx, &protoReq) + return msg, metadata, err + +} + +var ( + filter_FrontendNvmeService_DeleteNvmeSubsystem_0 = &utilities.DoubleArray{Encoding: map[string]int{"name": 0}, Base: []int{1, 2, 0, 0}, Check: []int{0, 1, 2, 2}} +) + +func request_FrontendNvmeService_DeleteNvmeSubsystem_0(ctx context.Context, marshaler runtime.Marshaler, client FrontendNvmeServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq DeleteNvmeSubsystemRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") + } + + protoReq.Name, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_FrontendNvmeService_DeleteNvmeSubsystem_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.DeleteNvmeSubsystem(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_FrontendNvmeService_DeleteNvmeSubsystem_0(ctx context.Context, marshaler runtime.Marshaler, server FrontendNvmeServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq DeleteNvmeSubsystemRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") + } + + protoReq.Name, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_FrontendNvmeService_DeleteNvmeSubsystem_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.DeleteNvmeSubsystem(ctx, &protoReq) + return msg, metadata, err + +} + +var ( + filter_FrontendNvmeService_UpdateNvmeSubsystem_0 = &utilities.DoubleArray{Encoding: map[string]int{"nvme_subsystem": 0, "nvmeSubsystem": 1, "name": 2}, Base: []int{1, 3, 4, 5, 2, 0, 0, 0, 0}, Check: []int{0, 1, 1, 1, 2, 5, 2, 3, 4}} +) + +func request_FrontendNvmeService_UpdateNvmeSubsystem_0(ctx context.Context, marshaler runtime.Marshaler, client FrontendNvmeServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq UpdateNvmeSubsystemRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq.NvmeSubsystem); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if protoReq.UpdateMask == nil || len(protoReq.UpdateMask.GetPaths()) == 0 { + if fieldMask, err := runtime.FieldMaskFromRequestBody(newReader(), protoReq.NvmeSubsystem); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } else { + protoReq.UpdateMask = fieldMask + } + } + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["nvme_subsystem.name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "nvme_subsystem.name") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "nvme_subsystem.name", val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "nvme_subsystem.name", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_FrontendNvmeService_UpdateNvmeSubsystem_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.UpdateNvmeSubsystem(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_FrontendNvmeService_UpdateNvmeSubsystem_0(ctx context.Context, marshaler runtime.Marshaler, server FrontendNvmeServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq UpdateNvmeSubsystemRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq.NvmeSubsystem); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if protoReq.UpdateMask == nil || len(protoReq.UpdateMask.GetPaths()) == 0 { + if fieldMask, err := runtime.FieldMaskFromRequestBody(newReader(), protoReq.NvmeSubsystem); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } else { + protoReq.UpdateMask = fieldMask + } + } + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["nvme_subsystem.name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "nvme_subsystem.name") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "nvme_subsystem.name", val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "nvme_subsystem.name", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_FrontendNvmeService_UpdateNvmeSubsystem_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.UpdateNvmeSubsystem(ctx, &protoReq) + return msg, metadata, err + +} + +var ( + filter_FrontendNvmeService_ListNvmeSubsystems_0 = &utilities.DoubleArray{Encoding: map[string]int{}, Base: []int(nil), Check: []int(nil)} +) + +func request_FrontendNvmeService_ListNvmeSubsystems_0(ctx context.Context, marshaler runtime.Marshaler, client FrontendNvmeServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq ListNvmeSubsystemsRequest + var metadata runtime.ServerMetadata + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_FrontendNvmeService_ListNvmeSubsystems_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.ListNvmeSubsystems(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_FrontendNvmeService_ListNvmeSubsystems_0(ctx context.Context, marshaler runtime.Marshaler, server FrontendNvmeServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq ListNvmeSubsystemsRequest + var metadata runtime.ServerMetadata + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_FrontendNvmeService_ListNvmeSubsystems_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.ListNvmeSubsystems(ctx, &protoReq) + return msg, metadata, err + +} + +func request_FrontendNvmeService_GetNvmeSubsystem_0(ctx context.Context, marshaler runtime.Marshaler, client FrontendNvmeServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetNvmeSubsystemRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") + } + + protoReq.Name, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) + } + + msg, err := client.GetNvmeSubsystem(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_FrontendNvmeService_GetNvmeSubsystem_0(ctx context.Context, marshaler runtime.Marshaler, server FrontendNvmeServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetNvmeSubsystemRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") + } + + protoReq.Name, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) + } + + msg, err := server.GetNvmeSubsystem(ctx, &protoReq) + return msg, metadata, err + +} + +func request_FrontendNvmeService_StatsNvmeSubsystem_0(ctx context.Context, marshaler runtime.Marshaler, client FrontendNvmeServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq StatsNvmeSubsystemRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") + } + + protoReq.Name, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) + } + + msg, err := client.StatsNvmeSubsystem(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_FrontendNvmeService_StatsNvmeSubsystem_0(ctx context.Context, marshaler runtime.Marshaler, server FrontendNvmeServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq StatsNvmeSubsystemRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") + } + + protoReq.Name, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) + } + + msg, err := server.StatsNvmeSubsystem(ctx, &protoReq) + return msg, metadata, err + +} + +var ( + filter_FrontendNvmeService_CreateNvmeController_0 = &utilities.DoubleArray{Encoding: map[string]int{"nvme_controller": 0, "nvmeController": 1, "parent": 2}, Base: []int{1, 1, 2, 4, 0, 0, 0, 0}, Check: []int{0, 1, 1, 1, 2, 3, 4, 4}} +) + +func request_FrontendNvmeService_CreateNvmeController_0(ctx context.Context, marshaler runtime.Marshaler, client FrontendNvmeServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq CreateNvmeControllerRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq.NvmeController); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["parent"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "parent") + } + + protoReq.Parent, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "parent", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_FrontendNvmeService_CreateNvmeController_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.CreateNvmeController(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_FrontendNvmeService_CreateNvmeController_0(ctx context.Context, marshaler runtime.Marshaler, server FrontendNvmeServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq CreateNvmeControllerRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq.NvmeController); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["parent"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "parent") + } + + protoReq.Parent, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "parent", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_FrontendNvmeService_CreateNvmeController_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.CreateNvmeController(ctx, &protoReq) + return msg, metadata, err + +} + +var ( + filter_FrontendNvmeService_DeleteNvmeController_0 = &utilities.DoubleArray{Encoding: map[string]int{"name": 0}, Base: []int{1, 2, 0, 0}, Check: []int{0, 1, 2, 2}} +) + +func request_FrontendNvmeService_DeleteNvmeController_0(ctx context.Context, marshaler runtime.Marshaler, client FrontendNvmeServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq DeleteNvmeControllerRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") + } + + protoReq.Name, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_FrontendNvmeService_DeleteNvmeController_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.DeleteNvmeController(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_FrontendNvmeService_DeleteNvmeController_0(ctx context.Context, marshaler runtime.Marshaler, server FrontendNvmeServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq DeleteNvmeControllerRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") + } + + protoReq.Name, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_FrontendNvmeService_DeleteNvmeController_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.DeleteNvmeController(ctx, &protoReq) + return msg, metadata, err + +} + +var ( + filter_FrontendNvmeService_UpdateNvmeController_0 = &utilities.DoubleArray{Encoding: map[string]int{"nvme_controller": 0, "nvmeController": 1, "name": 2}, Base: []int{1, 3, 4, 5, 2, 0, 0, 0, 0}, Check: []int{0, 1, 1, 1, 2, 5, 2, 3, 4}} +) + +func request_FrontendNvmeService_UpdateNvmeController_0(ctx context.Context, marshaler runtime.Marshaler, client FrontendNvmeServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq UpdateNvmeControllerRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq.NvmeController); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if protoReq.UpdateMask == nil || len(protoReq.UpdateMask.GetPaths()) == 0 { + if fieldMask, err := runtime.FieldMaskFromRequestBody(newReader(), protoReq.NvmeController); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } else { + protoReq.UpdateMask = fieldMask + } + } + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["nvme_controller.name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "nvme_controller.name") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "nvme_controller.name", val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "nvme_controller.name", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_FrontendNvmeService_UpdateNvmeController_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.UpdateNvmeController(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_FrontendNvmeService_UpdateNvmeController_0(ctx context.Context, marshaler runtime.Marshaler, server FrontendNvmeServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq UpdateNvmeControllerRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq.NvmeController); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if protoReq.UpdateMask == nil || len(protoReq.UpdateMask.GetPaths()) == 0 { + if fieldMask, err := runtime.FieldMaskFromRequestBody(newReader(), protoReq.NvmeController); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } else { + protoReq.UpdateMask = fieldMask + } + } + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["nvme_controller.name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "nvme_controller.name") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "nvme_controller.name", val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "nvme_controller.name", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_FrontendNvmeService_UpdateNvmeController_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.UpdateNvmeController(ctx, &protoReq) + return msg, metadata, err + +} + +var ( + filter_FrontendNvmeService_ListNvmeControllers_0 = &utilities.DoubleArray{Encoding: map[string]int{"parent": 0}, Base: []int{1, 2, 0, 0}, Check: []int{0, 1, 2, 2}} +) + +func request_FrontendNvmeService_ListNvmeControllers_0(ctx context.Context, marshaler runtime.Marshaler, client FrontendNvmeServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq ListNvmeControllersRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["parent"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "parent") + } + + protoReq.Parent, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "parent", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_FrontendNvmeService_ListNvmeControllers_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.ListNvmeControllers(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_FrontendNvmeService_ListNvmeControllers_0(ctx context.Context, marshaler runtime.Marshaler, server FrontendNvmeServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq ListNvmeControllersRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["parent"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "parent") + } + + protoReq.Parent, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "parent", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_FrontendNvmeService_ListNvmeControllers_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.ListNvmeControllers(ctx, &protoReq) + return msg, metadata, err + +} + +func request_FrontendNvmeService_GetNvmeController_0(ctx context.Context, marshaler runtime.Marshaler, client FrontendNvmeServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetNvmeControllerRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") + } + + protoReq.Name, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) + } + + msg, err := client.GetNvmeController(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_FrontendNvmeService_GetNvmeController_0(ctx context.Context, marshaler runtime.Marshaler, server FrontendNvmeServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetNvmeControllerRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") + } + + protoReq.Name, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) + } + + msg, err := server.GetNvmeController(ctx, &protoReq) + return msg, metadata, err + +} + +func request_FrontendNvmeService_StatsNvmeController_0(ctx context.Context, marshaler runtime.Marshaler, client FrontendNvmeServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq StatsNvmeControllerRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") + } + + protoReq.Name, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) + } + + msg, err := client.StatsNvmeController(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_FrontendNvmeService_StatsNvmeController_0(ctx context.Context, marshaler runtime.Marshaler, server FrontendNvmeServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq StatsNvmeControllerRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") + } + + protoReq.Name, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) + } + + msg, err := server.StatsNvmeController(ctx, &protoReq) + return msg, metadata, err + +} + +var ( + filter_FrontendNvmeService_CreateNvmeNamespace_0 = &utilities.DoubleArray{Encoding: map[string]int{"nvme_namespace": 0, "nvmeNamespace": 1, "parent": 2}, Base: []int{1, 1, 2, 4, 0, 0, 0, 0}, Check: []int{0, 1, 1, 1, 2, 3, 4, 4}} +) + +func request_FrontendNvmeService_CreateNvmeNamespace_0(ctx context.Context, marshaler runtime.Marshaler, client FrontendNvmeServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq CreateNvmeNamespaceRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq.NvmeNamespace); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["parent"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "parent") + } + + protoReq.Parent, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "parent", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_FrontendNvmeService_CreateNvmeNamespace_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.CreateNvmeNamespace(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_FrontendNvmeService_CreateNvmeNamespace_0(ctx context.Context, marshaler runtime.Marshaler, server FrontendNvmeServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq CreateNvmeNamespaceRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq.NvmeNamespace); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["parent"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "parent") + } + + protoReq.Parent, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "parent", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_FrontendNvmeService_CreateNvmeNamespace_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.CreateNvmeNamespace(ctx, &protoReq) + return msg, metadata, err + +} + +var ( + filter_FrontendNvmeService_DeleteNvmeNamespace_0 = &utilities.DoubleArray{Encoding: map[string]int{"name": 0}, Base: []int{1, 2, 0, 0}, Check: []int{0, 1, 2, 2}} +) + +func request_FrontendNvmeService_DeleteNvmeNamespace_0(ctx context.Context, marshaler runtime.Marshaler, client FrontendNvmeServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq DeleteNvmeNamespaceRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") + } + + protoReq.Name, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_FrontendNvmeService_DeleteNvmeNamespace_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.DeleteNvmeNamespace(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_FrontendNvmeService_DeleteNvmeNamespace_0(ctx context.Context, marshaler runtime.Marshaler, server FrontendNvmeServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq DeleteNvmeNamespaceRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") + } + + protoReq.Name, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_FrontendNvmeService_DeleteNvmeNamespace_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.DeleteNvmeNamespace(ctx, &protoReq) + return msg, metadata, err + +} + +var ( + filter_FrontendNvmeService_UpdateNvmeNamespace_0 = &utilities.DoubleArray{Encoding: map[string]int{"nvme_namespace": 0, "nvmeNamespace": 1, "name": 2}, Base: []int{1, 3, 4, 5, 2, 0, 0, 0, 0}, Check: []int{0, 1, 1, 1, 2, 5, 2, 3, 4}} +) + +func request_FrontendNvmeService_UpdateNvmeNamespace_0(ctx context.Context, marshaler runtime.Marshaler, client FrontendNvmeServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq UpdateNvmeNamespaceRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq.NvmeNamespace); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if protoReq.UpdateMask == nil || len(protoReq.UpdateMask.GetPaths()) == 0 { + if fieldMask, err := runtime.FieldMaskFromRequestBody(newReader(), protoReq.NvmeNamespace); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } else { + protoReq.UpdateMask = fieldMask + } + } + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["nvme_namespace.name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "nvme_namespace.name") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "nvme_namespace.name", val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "nvme_namespace.name", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_FrontendNvmeService_UpdateNvmeNamespace_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.UpdateNvmeNamespace(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_FrontendNvmeService_UpdateNvmeNamespace_0(ctx context.Context, marshaler runtime.Marshaler, server FrontendNvmeServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq UpdateNvmeNamespaceRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq.NvmeNamespace); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if protoReq.UpdateMask == nil || len(protoReq.UpdateMask.GetPaths()) == 0 { + if fieldMask, err := runtime.FieldMaskFromRequestBody(newReader(), protoReq.NvmeNamespace); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } else { + protoReq.UpdateMask = fieldMask + } + } + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["nvme_namespace.name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "nvme_namespace.name") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "nvme_namespace.name", val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "nvme_namespace.name", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_FrontendNvmeService_UpdateNvmeNamespace_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.UpdateNvmeNamespace(ctx, &protoReq) + return msg, metadata, err + +} + +var ( + filter_FrontendNvmeService_ListNvmeNamespaces_0 = &utilities.DoubleArray{Encoding: map[string]int{"parent": 0}, Base: []int{1, 2, 0, 0}, Check: []int{0, 1, 2, 2}} +) + +func request_FrontendNvmeService_ListNvmeNamespaces_0(ctx context.Context, marshaler runtime.Marshaler, client FrontendNvmeServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq ListNvmeNamespacesRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["parent"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "parent") + } + + protoReq.Parent, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "parent", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_FrontendNvmeService_ListNvmeNamespaces_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.ListNvmeNamespaces(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_FrontendNvmeService_ListNvmeNamespaces_0(ctx context.Context, marshaler runtime.Marshaler, server FrontendNvmeServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq ListNvmeNamespacesRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["parent"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "parent") + } + + protoReq.Parent, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "parent", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_FrontendNvmeService_ListNvmeNamespaces_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.ListNvmeNamespaces(ctx, &protoReq) + return msg, metadata, err + +} + +func request_FrontendNvmeService_GetNvmeNamespace_0(ctx context.Context, marshaler runtime.Marshaler, client FrontendNvmeServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetNvmeNamespaceRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") + } + + protoReq.Name, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) + } + + msg, err := client.GetNvmeNamespace(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_FrontendNvmeService_GetNvmeNamespace_0(ctx context.Context, marshaler runtime.Marshaler, server FrontendNvmeServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetNvmeNamespaceRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") + } + + protoReq.Name, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) + } + + msg, err := server.GetNvmeNamespace(ctx, &protoReq) + return msg, metadata, err + +} + +func request_FrontendNvmeService_StatsNvmeNamespace_0(ctx context.Context, marshaler runtime.Marshaler, client FrontendNvmeServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq StatsNvmeNamespaceRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") + } + + protoReq.Name, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) + } + + msg, err := client.StatsNvmeNamespace(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_FrontendNvmeService_StatsNvmeNamespace_0(ctx context.Context, marshaler runtime.Marshaler, server FrontendNvmeServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq StatsNvmeNamespaceRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") + } + + protoReq.Name, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) + } + + msg, err := server.StatsNvmeNamespace(ctx, &protoReq) + return msg, metadata, err + +} + +// RegisterFrontendNvmeServiceHandlerServer registers the http handlers for service FrontendNvmeService to "mux". +// UnaryRPC :call FrontendNvmeServiceServer directly. +// StreamingRPC :currently unsupported pending https://github.com/grpc/grpc-go/issues/906. +// Note that using this registration option will cause many gRPC library features to stop working. Consider using RegisterFrontendNvmeServiceHandlerFromEndpoint instead. +func RegisterFrontendNvmeServiceHandlerServer(ctx context.Context, mux *runtime.ServeMux, server FrontendNvmeServiceServer) error { + + mux.Handle("POST", pattern_FrontendNvmeService_CreateNvmeSubsystem_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/opi_api.storage.v1.FrontendNvmeService/CreateNvmeSubsystem", runtime.WithHTTPPathPattern("/v1/nvmeSubsystems")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_FrontendNvmeService_CreateNvmeSubsystem_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FrontendNvmeService_CreateNvmeSubsystem_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("DELETE", pattern_FrontendNvmeService_DeleteNvmeSubsystem_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/opi_api.storage.v1.FrontendNvmeService/DeleteNvmeSubsystem", runtime.WithHTTPPathPattern("/v1/{name=nvmeSubsystems/*}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_FrontendNvmeService_DeleteNvmeSubsystem_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FrontendNvmeService_DeleteNvmeSubsystem_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("PATCH", pattern_FrontendNvmeService_UpdateNvmeSubsystem_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/opi_api.storage.v1.FrontendNvmeService/UpdateNvmeSubsystem", runtime.WithHTTPPathPattern("/v1/{nvme_subsystem.name=nvmeSubsystems/*}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_FrontendNvmeService_UpdateNvmeSubsystem_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FrontendNvmeService_UpdateNvmeSubsystem_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_FrontendNvmeService_ListNvmeSubsystems_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/opi_api.storage.v1.FrontendNvmeService/ListNvmeSubsystems", runtime.WithHTTPPathPattern("/v1/nvmeSubsystems")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_FrontendNvmeService_ListNvmeSubsystems_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FrontendNvmeService_ListNvmeSubsystems_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_FrontendNvmeService_GetNvmeSubsystem_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/opi_api.storage.v1.FrontendNvmeService/GetNvmeSubsystem", runtime.WithHTTPPathPattern("/v1/{name=nvmeSubsystems/*}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_FrontendNvmeService_GetNvmeSubsystem_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FrontendNvmeService_GetNvmeSubsystem_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_FrontendNvmeService_StatsNvmeSubsystem_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/opi_api.storage.v1.FrontendNvmeService/StatsNvmeSubsystem", runtime.WithHTTPPathPattern("/v1/{name=nvmeSubsystems/*}:stats")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_FrontendNvmeService_StatsNvmeSubsystem_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FrontendNvmeService_StatsNvmeSubsystem_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("POST", pattern_FrontendNvmeService_CreateNvmeController_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/opi_api.storage.v1.FrontendNvmeService/CreateNvmeController", runtime.WithHTTPPathPattern("/v1/{parent=nvmeSubsystems/*}/nvmeControllers")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_FrontendNvmeService_CreateNvmeController_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FrontendNvmeService_CreateNvmeController_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("DELETE", pattern_FrontendNvmeService_DeleteNvmeController_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/opi_api.storage.v1.FrontendNvmeService/DeleteNvmeController", runtime.WithHTTPPathPattern("/v1/{name=nvmeSubsystems/*/nvmeControllers/*}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_FrontendNvmeService_DeleteNvmeController_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FrontendNvmeService_DeleteNvmeController_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("PATCH", pattern_FrontendNvmeService_UpdateNvmeController_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/opi_api.storage.v1.FrontendNvmeService/UpdateNvmeController", runtime.WithHTTPPathPattern("/v1/{nvme_controller.name=nvmeSubsystems/*/nvmeControllers/*}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_FrontendNvmeService_UpdateNvmeController_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FrontendNvmeService_UpdateNvmeController_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_FrontendNvmeService_ListNvmeControllers_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/opi_api.storage.v1.FrontendNvmeService/ListNvmeControllers", runtime.WithHTTPPathPattern("/v1/{parent=nvmeSubsystems/*}/nvmeControllers")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_FrontendNvmeService_ListNvmeControllers_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FrontendNvmeService_ListNvmeControllers_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_FrontendNvmeService_GetNvmeController_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/opi_api.storage.v1.FrontendNvmeService/GetNvmeController", runtime.WithHTTPPathPattern("/v1/{name=nvmeSubsystems/*/nvmeControllers/*}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_FrontendNvmeService_GetNvmeController_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FrontendNvmeService_GetNvmeController_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_FrontendNvmeService_StatsNvmeController_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/opi_api.storage.v1.FrontendNvmeService/StatsNvmeController", runtime.WithHTTPPathPattern("/v1/{name=nvmeSubsystems/*/nvmeControllers/*}:stats")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_FrontendNvmeService_StatsNvmeController_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FrontendNvmeService_StatsNvmeController_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("POST", pattern_FrontendNvmeService_CreateNvmeNamespace_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/opi_api.storage.v1.FrontendNvmeService/CreateNvmeNamespace", runtime.WithHTTPPathPattern("/v1/{parent=nvmeSubsystems/*}/nvmeNamespaces")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_FrontendNvmeService_CreateNvmeNamespace_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FrontendNvmeService_CreateNvmeNamespace_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("DELETE", pattern_FrontendNvmeService_DeleteNvmeNamespace_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/opi_api.storage.v1.FrontendNvmeService/DeleteNvmeNamespace", runtime.WithHTTPPathPattern("/v1/{name=nvmeSubsystems/*/nvmeNamespaces/*}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_FrontendNvmeService_DeleteNvmeNamespace_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FrontendNvmeService_DeleteNvmeNamespace_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("PATCH", pattern_FrontendNvmeService_UpdateNvmeNamespace_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/opi_api.storage.v1.FrontendNvmeService/UpdateNvmeNamespace", runtime.WithHTTPPathPattern("/v1/{nvme_namespace.name=nvmeSubsystems/*/nvmeNamespaces/*}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_FrontendNvmeService_UpdateNvmeNamespace_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FrontendNvmeService_UpdateNvmeNamespace_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_FrontendNvmeService_ListNvmeNamespaces_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/opi_api.storage.v1.FrontendNvmeService/ListNvmeNamespaces", runtime.WithHTTPPathPattern("/v1/{parent=nvmeSubsystems/*}/nvmeNamespaces")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_FrontendNvmeService_ListNvmeNamespaces_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FrontendNvmeService_ListNvmeNamespaces_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_FrontendNvmeService_GetNvmeNamespace_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/opi_api.storage.v1.FrontendNvmeService/GetNvmeNamespace", runtime.WithHTTPPathPattern("/v1/{name=nvmeSubsystems/*/nvmeNamespaces/*}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_FrontendNvmeService_GetNvmeNamespace_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FrontendNvmeService_GetNvmeNamespace_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_FrontendNvmeService_StatsNvmeNamespace_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/opi_api.storage.v1.FrontendNvmeService/StatsNvmeNamespace", runtime.WithHTTPPathPattern("/v1/{name=nvmeSubsystems/*/nvmeNamespaces/*}:stats")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_FrontendNvmeService_StatsNvmeNamespace_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FrontendNvmeService_StatsNvmeNamespace_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + return nil +} + +// RegisterFrontendNvmeServiceHandlerFromEndpoint is same as RegisterFrontendNvmeServiceHandler but +// automatically dials to "endpoint" and closes the connection when "ctx" gets done. +func RegisterFrontendNvmeServiceHandlerFromEndpoint(ctx context.Context, mux *runtime.ServeMux, endpoint string, opts []grpc.DialOption) (err error) { + conn, err := grpc.DialContext(ctx, endpoint, opts...) + if err != nil { + return err + } + defer func() { + if err != nil { + if cerr := conn.Close(); cerr != nil { + grpclog.Infof("Failed to close conn to %s: %v", endpoint, cerr) + } + return + } + go func() { + <-ctx.Done() + if cerr := conn.Close(); cerr != nil { + grpclog.Infof("Failed to close conn to %s: %v", endpoint, cerr) + } + }() + }() + + return RegisterFrontendNvmeServiceHandler(ctx, mux, conn) +} + +// RegisterFrontendNvmeServiceHandler registers the http handlers for service FrontendNvmeService to "mux". +// The handlers forward requests to the grpc endpoint over "conn". +func RegisterFrontendNvmeServiceHandler(ctx context.Context, mux *runtime.ServeMux, conn *grpc.ClientConn) error { + return RegisterFrontendNvmeServiceHandlerClient(ctx, mux, NewFrontendNvmeServiceClient(conn)) +} + +// RegisterFrontendNvmeServiceHandlerClient registers the http handlers for service FrontendNvmeService +// to "mux". The handlers forward requests to the grpc endpoint over the given implementation of "FrontendNvmeServiceClient". +// Note: the gRPC framework executes interceptors within the gRPC handler. If the passed in "FrontendNvmeServiceClient" +// doesn't go through the normal gRPC flow (creating a gRPC client etc.) then it will be up to the passed in +// "FrontendNvmeServiceClient" to call the correct interceptors. +func RegisterFrontendNvmeServiceHandlerClient(ctx context.Context, mux *runtime.ServeMux, client FrontendNvmeServiceClient) error { + + mux.Handle("POST", pattern_FrontendNvmeService_CreateNvmeSubsystem_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/opi_api.storage.v1.FrontendNvmeService/CreateNvmeSubsystem", runtime.WithHTTPPathPattern("/v1/nvmeSubsystems")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_FrontendNvmeService_CreateNvmeSubsystem_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FrontendNvmeService_CreateNvmeSubsystem_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("DELETE", pattern_FrontendNvmeService_DeleteNvmeSubsystem_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/opi_api.storage.v1.FrontendNvmeService/DeleteNvmeSubsystem", runtime.WithHTTPPathPattern("/v1/{name=nvmeSubsystems/*}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_FrontendNvmeService_DeleteNvmeSubsystem_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FrontendNvmeService_DeleteNvmeSubsystem_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("PATCH", pattern_FrontendNvmeService_UpdateNvmeSubsystem_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/opi_api.storage.v1.FrontendNvmeService/UpdateNvmeSubsystem", runtime.WithHTTPPathPattern("/v1/{nvme_subsystem.name=nvmeSubsystems/*}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_FrontendNvmeService_UpdateNvmeSubsystem_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FrontendNvmeService_UpdateNvmeSubsystem_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_FrontendNvmeService_ListNvmeSubsystems_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/opi_api.storage.v1.FrontendNvmeService/ListNvmeSubsystems", runtime.WithHTTPPathPattern("/v1/nvmeSubsystems")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_FrontendNvmeService_ListNvmeSubsystems_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FrontendNvmeService_ListNvmeSubsystems_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_FrontendNvmeService_GetNvmeSubsystem_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/opi_api.storage.v1.FrontendNvmeService/GetNvmeSubsystem", runtime.WithHTTPPathPattern("/v1/{name=nvmeSubsystems/*}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_FrontendNvmeService_GetNvmeSubsystem_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FrontendNvmeService_GetNvmeSubsystem_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_FrontendNvmeService_StatsNvmeSubsystem_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/opi_api.storage.v1.FrontendNvmeService/StatsNvmeSubsystem", runtime.WithHTTPPathPattern("/v1/{name=nvmeSubsystems/*}:stats")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_FrontendNvmeService_StatsNvmeSubsystem_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FrontendNvmeService_StatsNvmeSubsystem_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("POST", pattern_FrontendNvmeService_CreateNvmeController_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/opi_api.storage.v1.FrontendNvmeService/CreateNvmeController", runtime.WithHTTPPathPattern("/v1/{parent=nvmeSubsystems/*}/nvmeControllers")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_FrontendNvmeService_CreateNvmeController_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FrontendNvmeService_CreateNvmeController_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("DELETE", pattern_FrontendNvmeService_DeleteNvmeController_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/opi_api.storage.v1.FrontendNvmeService/DeleteNvmeController", runtime.WithHTTPPathPattern("/v1/{name=nvmeSubsystems/*/nvmeControllers/*}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_FrontendNvmeService_DeleteNvmeController_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FrontendNvmeService_DeleteNvmeController_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("PATCH", pattern_FrontendNvmeService_UpdateNvmeController_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/opi_api.storage.v1.FrontendNvmeService/UpdateNvmeController", runtime.WithHTTPPathPattern("/v1/{nvme_controller.name=nvmeSubsystems/*/nvmeControllers/*}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_FrontendNvmeService_UpdateNvmeController_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FrontendNvmeService_UpdateNvmeController_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_FrontendNvmeService_ListNvmeControllers_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/opi_api.storage.v1.FrontendNvmeService/ListNvmeControllers", runtime.WithHTTPPathPattern("/v1/{parent=nvmeSubsystems/*}/nvmeControllers")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_FrontendNvmeService_ListNvmeControllers_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FrontendNvmeService_ListNvmeControllers_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_FrontendNvmeService_GetNvmeController_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/opi_api.storage.v1.FrontendNvmeService/GetNvmeController", runtime.WithHTTPPathPattern("/v1/{name=nvmeSubsystems/*/nvmeControllers/*}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_FrontendNvmeService_GetNvmeController_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FrontendNvmeService_GetNvmeController_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_FrontendNvmeService_StatsNvmeController_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/opi_api.storage.v1.FrontendNvmeService/StatsNvmeController", runtime.WithHTTPPathPattern("/v1/{name=nvmeSubsystems/*/nvmeControllers/*}:stats")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_FrontendNvmeService_StatsNvmeController_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FrontendNvmeService_StatsNvmeController_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("POST", pattern_FrontendNvmeService_CreateNvmeNamespace_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/opi_api.storage.v1.FrontendNvmeService/CreateNvmeNamespace", runtime.WithHTTPPathPattern("/v1/{parent=nvmeSubsystems/*}/nvmeNamespaces")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_FrontendNvmeService_CreateNvmeNamespace_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FrontendNvmeService_CreateNvmeNamespace_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("DELETE", pattern_FrontendNvmeService_DeleteNvmeNamespace_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/opi_api.storage.v1.FrontendNvmeService/DeleteNvmeNamespace", runtime.WithHTTPPathPattern("/v1/{name=nvmeSubsystems/*/nvmeNamespaces/*}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_FrontendNvmeService_DeleteNvmeNamespace_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FrontendNvmeService_DeleteNvmeNamespace_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("PATCH", pattern_FrontendNvmeService_UpdateNvmeNamespace_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/opi_api.storage.v1.FrontendNvmeService/UpdateNvmeNamespace", runtime.WithHTTPPathPattern("/v1/{nvme_namespace.name=nvmeSubsystems/*/nvmeNamespaces/*}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_FrontendNvmeService_UpdateNvmeNamespace_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FrontendNvmeService_UpdateNvmeNamespace_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_FrontendNvmeService_ListNvmeNamespaces_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/opi_api.storage.v1.FrontendNvmeService/ListNvmeNamespaces", runtime.WithHTTPPathPattern("/v1/{parent=nvmeSubsystems/*}/nvmeNamespaces")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_FrontendNvmeService_ListNvmeNamespaces_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FrontendNvmeService_ListNvmeNamespaces_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_FrontendNvmeService_GetNvmeNamespace_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/opi_api.storage.v1.FrontendNvmeService/GetNvmeNamespace", runtime.WithHTTPPathPattern("/v1/{name=nvmeSubsystems/*/nvmeNamespaces/*}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_FrontendNvmeService_GetNvmeNamespace_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FrontendNvmeService_GetNvmeNamespace_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_FrontendNvmeService_StatsNvmeNamespace_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/opi_api.storage.v1.FrontendNvmeService/StatsNvmeNamespace", runtime.WithHTTPPathPattern("/v1/{name=nvmeSubsystems/*/nvmeNamespaces/*}:stats")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_FrontendNvmeService_StatsNvmeNamespace_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FrontendNvmeService_StatsNvmeNamespace_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + return nil +} + +var ( + pattern_FrontendNvmeService_CreateNvmeSubsystem_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"v1", "nvmeSubsystems"}, "")) + + pattern_FrontendNvmeService_DeleteNvmeSubsystem_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 2, 5, 2}, []string{"v1", "nvmeSubsystems", "name"}, "")) + + pattern_FrontendNvmeService_UpdateNvmeSubsystem_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 2, 5, 2}, []string{"v1", "nvmeSubsystems", "nvme_subsystem.name"}, "")) + + pattern_FrontendNvmeService_ListNvmeSubsystems_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"v1", "nvmeSubsystems"}, "")) + + pattern_FrontendNvmeService_GetNvmeSubsystem_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 2, 5, 2}, []string{"v1", "nvmeSubsystems", "name"}, "")) + + pattern_FrontendNvmeService_StatsNvmeSubsystem_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 2, 5, 2}, []string{"v1", "nvmeSubsystems", "name"}, "stats")) + + pattern_FrontendNvmeService_CreateNvmeController_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 2, 5, 2, 2, 3}, []string{"v1", "nvmeSubsystems", "parent", "nvmeControllers"}, "")) + + pattern_FrontendNvmeService_DeleteNvmeController_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 2, 2, 1, 0, 4, 4, 5, 3}, []string{"v1", "nvmeSubsystems", "nvmeControllers", "name"}, "")) + + pattern_FrontendNvmeService_UpdateNvmeController_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 2, 2, 1, 0, 4, 4, 5, 3}, []string{"v1", "nvmeSubsystems", "nvmeControllers", "nvme_controller.name"}, "")) + + pattern_FrontendNvmeService_ListNvmeControllers_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 2, 5, 2, 2, 3}, []string{"v1", "nvmeSubsystems", "parent", "nvmeControllers"}, "")) + + pattern_FrontendNvmeService_GetNvmeController_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 2, 2, 1, 0, 4, 4, 5, 3}, []string{"v1", "nvmeSubsystems", "nvmeControllers", "name"}, "")) + + pattern_FrontendNvmeService_StatsNvmeController_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 2, 2, 1, 0, 4, 4, 5, 3}, []string{"v1", "nvmeSubsystems", "nvmeControllers", "name"}, "stats")) + + pattern_FrontendNvmeService_CreateNvmeNamespace_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 2, 5, 2, 2, 3}, []string{"v1", "nvmeSubsystems", "parent", "nvmeNamespaces"}, "")) + + pattern_FrontendNvmeService_DeleteNvmeNamespace_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 2, 2, 1, 0, 4, 4, 5, 3}, []string{"v1", "nvmeSubsystems", "nvmeNamespaces", "name"}, "")) + + pattern_FrontendNvmeService_UpdateNvmeNamespace_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 2, 2, 1, 0, 4, 4, 5, 3}, []string{"v1", "nvmeSubsystems", "nvmeNamespaces", "nvme_namespace.name"}, "")) + + pattern_FrontendNvmeService_ListNvmeNamespaces_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 2, 5, 2, 2, 3}, []string{"v1", "nvmeSubsystems", "parent", "nvmeNamespaces"}, "")) + + pattern_FrontendNvmeService_GetNvmeNamespace_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 2, 2, 1, 0, 4, 4, 5, 3}, []string{"v1", "nvmeSubsystems", "nvmeNamespaces", "name"}, "")) + + pattern_FrontendNvmeService_StatsNvmeNamespace_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 2, 2, 1, 0, 4, 4, 5, 3}, []string{"v1", "nvmeSubsystems", "nvmeNamespaces", "name"}, "stats")) +) + +var ( + forward_FrontendNvmeService_CreateNvmeSubsystem_0 = runtime.ForwardResponseMessage + + forward_FrontendNvmeService_DeleteNvmeSubsystem_0 = runtime.ForwardResponseMessage + + forward_FrontendNvmeService_UpdateNvmeSubsystem_0 = runtime.ForwardResponseMessage + + forward_FrontendNvmeService_ListNvmeSubsystems_0 = runtime.ForwardResponseMessage + + forward_FrontendNvmeService_GetNvmeSubsystem_0 = runtime.ForwardResponseMessage + + forward_FrontendNvmeService_StatsNvmeSubsystem_0 = runtime.ForwardResponseMessage + + forward_FrontendNvmeService_CreateNvmeController_0 = runtime.ForwardResponseMessage + + forward_FrontendNvmeService_DeleteNvmeController_0 = runtime.ForwardResponseMessage + + forward_FrontendNvmeService_UpdateNvmeController_0 = runtime.ForwardResponseMessage + + forward_FrontendNvmeService_ListNvmeControllers_0 = runtime.ForwardResponseMessage + + forward_FrontendNvmeService_GetNvmeController_0 = runtime.ForwardResponseMessage + + forward_FrontendNvmeService_StatsNvmeController_0 = runtime.ForwardResponseMessage + + forward_FrontendNvmeService_CreateNvmeNamespace_0 = runtime.ForwardResponseMessage + + forward_FrontendNvmeService_DeleteNvmeNamespace_0 = runtime.ForwardResponseMessage + + forward_FrontendNvmeService_UpdateNvmeNamespace_0 = runtime.ForwardResponseMessage + + forward_FrontendNvmeService_ListNvmeNamespaces_0 = runtime.ForwardResponseMessage + + forward_FrontendNvmeService_GetNvmeNamespace_0 = runtime.ForwardResponseMessage + + forward_FrontendNvmeService_StatsNvmeNamespace_0 = runtime.ForwardResponseMessage +) diff --git a/storage/v1alpha1/gen/go/frontend_nvme_grpc.pb.go b/storage/v1alpha1/gen/go/frontend_nvme_grpc.pb.go index 7007d081..8320f914 100644 --- a/storage/v1alpha1/gen/go/frontend_nvme_grpc.pb.go +++ b/storage/v1alpha1/gen/go/frontend_nvme_grpc.pb.go @@ -1,7 +1,12 @@ +// SPDX-License-Identifier: Apache-2.0 +// Copyright (c) 2022 Dell Inc, or its subsidiaries. +// {C} Copyright 2022 Pensando Systems Inc. All rights reserved +// Copyright (C) 2023 Intel Corporation + // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: -// - protoc-gen-go-grpc v1.2.0 -// - protoc v3.21.6 +// - protoc-gen-go-grpc v1.3.0 +// - protoc (unknown) // source: frontend_nvme.proto package _go @@ -19,6 +24,27 @@ import ( // Requires gRPC-Go v1.32.0 or later. const _ = grpc.SupportPackageIsVersion7 +const ( + FrontendNvmeService_CreateNvmeSubsystem_FullMethodName = "/opi_api.storage.v1.FrontendNvmeService/CreateNvmeSubsystem" + FrontendNvmeService_DeleteNvmeSubsystem_FullMethodName = "/opi_api.storage.v1.FrontendNvmeService/DeleteNvmeSubsystem" + FrontendNvmeService_UpdateNvmeSubsystem_FullMethodName = "/opi_api.storage.v1.FrontendNvmeService/UpdateNvmeSubsystem" + FrontendNvmeService_ListNvmeSubsystems_FullMethodName = "/opi_api.storage.v1.FrontendNvmeService/ListNvmeSubsystems" + FrontendNvmeService_GetNvmeSubsystem_FullMethodName = "/opi_api.storage.v1.FrontendNvmeService/GetNvmeSubsystem" + FrontendNvmeService_StatsNvmeSubsystem_FullMethodName = "/opi_api.storage.v1.FrontendNvmeService/StatsNvmeSubsystem" + FrontendNvmeService_CreateNvmeController_FullMethodName = "/opi_api.storage.v1.FrontendNvmeService/CreateNvmeController" + FrontendNvmeService_DeleteNvmeController_FullMethodName = "/opi_api.storage.v1.FrontendNvmeService/DeleteNvmeController" + FrontendNvmeService_UpdateNvmeController_FullMethodName = "/opi_api.storage.v1.FrontendNvmeService/UpdateNvmeController" + FrontendNvmeService_ListNvmeControllers_FullMethodName = "/opi_api.storage.v1.FrontendNvmeService/ListNvmeControllers" + FrontendNvmeService_GetNvmeController_FullMethodName = "/opi_api.storage.v1.FrontendNvmeService/GetNvmeController" + FrontendNvmeService_StatsNvmeController_FullMethodName = "/opi_api.storage.v1.FrontendNvmeService/StatsNvmeController" + FrontendNvmeService_CreateNvmeNamespace_FullMethodName = "/opi_api.storage.v1.FrontendNvmeService/CreateNvmeNamespace" + FrontendNvmeService_DeleteNvmeNamespace_FullMethodName = "/opi_api.storage.v1.FrontendNvmeService/DeleteNvmeNamespace" + FrontendNvmeService_UpdateNvmeNamespace_FullMethodName = "/opi_api.storage.v1.FrontendNvmeService/UpdateNvmeNamespace" + FrontendNvmeService_ListNvmeNamespaces_FullMethodName = "/opi_api.storage.v1.FrontendNvmeService/ListNvmeNamespaces" + FrontendNvmeService_GetNvmeNamespace_FullMethodName = "/opi_api.storage.v1.FrontendNvmeService/GetNvmeNamespace" + FrontendNvmeService_StatsNvmeNamespace_FullMethodName = "/opi_api.storage.v1.FrontendNvmeService/StatsNvmeNamespace" +) + // FrontendNvmeServiceClient is the client API for FrontendNvmeService service. // // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. @@ -73,7 +99,7 @@ func NewFrontendNvmeServiceClient(cc grpc.ClientConnInterface) FrontendNvmeServi func (c *frontendNvmeServiceClient) CreateNvmeSubsystem(ctx context.Context, in *CreateNvmeSubsystemRequest, opts ...grpc.CallOption) (*NvmeSubsystem, error) { out := new(NvmeSubsystem) - err := c.cc.Invoke(ctx, "/opi_api.storage.v1.FrontendNvmeService/CreateNvmeSubsystem", in, out, opts...) + err := c.cc.Invoke(ctx, FrontendNvmeService_CreateNvmeSubsystem_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -82,7 +108,7 @@ func (c *frontendNvmeServiceClient) CreateNvmeSubsystem(ctx context.Context, in func (c *frontendNvmeServiceClient) DeleteNvmeSubsystem(ctx context.Context, in *DeleteNvmeSubsystemRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) { out := new(emptypb.Empty) - err := c.cc.Invoke(ctx, "/opi_api.storage.v1.FrontendNvmeService/DeleteNvmeSubsystem", in, out, opts...) + err := c.cc.Invoke(ctx, FrontendNvmeService_DeleteNvmeSubsystem_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -91,7 +117,7 @@ func (c *frontendNvmeServiceClient) DeleteNvmeSubsystem(ctx context.Context, in func (c *frontendNvmeServiceClient) UpdateNvmeSubsystem(ctx context.Context, in *UpdateNvmeSubsystemRequest, opts ...grpc.CallOption) (*NvmeSubsystem, error) { out := new(NvmeSubsystem) - err := c.cc.Invoke(ctx, "/opi_api.storage.v1.FrontendNvmeService/UpdateNvmeSubsystem", in, out, opts...) + err := c.cc.Invoke(ctx, FrontendNvmeService_UpdateNvmeSubsystem_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -100,7 +126,7 @@ func (c *frontendNvmeServiceClient) UpdateNvmeSubsystem(ctx context.Context, in func (c *frontendNvmeServiceClient) ListNvmeSubsystems(ctx context.Context, in *ListNvmeSubsystemsRequest, opts ...grpc.CallOption) (*ListNvmeSubsystemsResponse, error) { out := new(ListNvmeSubsystemsResponse) - err := c.cc.Invoke(ctx, "/opi_api.storage.v1.FrontendNvmeService/ListNvmeSubsystems", in, out, opts...) + err := c.cc.Invoke(ctx, FrontendNvmeService_ListNvmeSubsystems_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -109,7 +135,7 @@ func (c *frontendNvmeServiceClient) ListNvmeSubsystems(ctx context.Context, in * func (c *frontendNvmeServiceClient) GetNvmeSubsystem(ctx context.Context, in *GetNvmeSubsystemRequest, opts ...grpc.CallOption) (*NvmeSubsystem, error) { out := new(NvmeSubsystem) - err := c.cc.Invoke(ctx, "/opi_api.storage.v1.FrontendNvmeService/GetNvmeSubsystem", in, out, opts...) + err := c.cc.Invoke(ctx, FrontendNvmeService_GetNvmeSubsystem_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -118,7 +144,7 @@ func (c *frontendNvmeServiceClient) GetNvmeSubsystem(ctx context.Context, in *Ge func (c *frontendNvmeServiceClient) StatsNvmeSubsystem(ctx context.Context, in *StatsNvmeSubsystemRequest, opts ...grpc.CallOption) (*StatsNvmeSubsystemResponse, error) { out := new(StatsNvmeSubsystemResponse) - err := c.cc.Invoke(ctx, "/opi_api.storage.v1.FrontendNvmeService/StatsNvmeSubsystem", in, out, opts...) + err := c.cc.Invoke(ctx, FrontendNvmeService_StatsNvmeSubsystem_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -127,7 +153,7 @@ func (c *frontendNvmeServiceClient) StatsNvmeSubsystem(ctx context.Context, in * func (c *frontendNvmeServiceClient) CreateNvmeController(ctx context.Context, in *CreateNvmeControllerRequest, opts ...grpc.CallOption) (*NvmeController, error) { out := new(NvmeController) - err := c.cc.Invoke(ctx, "/opi_api.storage.v1.FrontendNvmeService/CreateNvmeController", in, out, opts...) + err := c.cc.Invoke(ctx, FrontendNvmeService_CreateNvmeController_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -136,7 +162,7 @@ func (c *frontendNvmeServiceClient) CreateNvmeController(ctx context.Context, in func (c *frontendNvmeServiceClient) DeleteNvmeController(ctx context.Context, in *DeleteNvmeControllerRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) { out := new(emptypb.Empty) - err := c.cc.Invoke(ctx, "/opi_api.storage.v1.FrontendNvmeService/DeleteNvmeController", in, out, opts...) + err := c.cc.Invoke(ctx, FrontendNvmeService_DeleteNvmeController_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -145,7 +171,7 @@ func (c *frontendNvmeServiceClient) DeleteNvmeController(ctx context.Context, in func (c *frontendNvmeServiceClient) UpdateNvmeController(ctx context.Context, in *UpdateNvmeControllerRequest, opts ...grpc.CallOption) (*NvmeController, error) { out := new(NvmeController) - err := c.cc.Invoke(ctx, "/opi_api.storage.v1.FrontendNvmeService/UpdateNvmeController", in, out, opts...) + err := c.cc.Invoke(ctx, FrontendNvmeService_UpdateNvmeController_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -154,7 +180,7 @@ func (c *frontendNvmeServiceClient) UpdateNvmeController(ctx context.Context, in func (c *frontendNvmeServiceClient) ListNvmeControllers(ctx context.Context, in *ListNvmeControllersRequest, opts ...grpc.CallOption) (*ListNvmeControllersResponse, error) { out := new(ListNvmeControllersResponse) - err := c.cc.Invoke(ctx, "/opi_api.storage.v1.FrontendNvmeService/ListNvmeControllers", in, out, opts...) + err := c.cc.Invoke(ctx, FrontendNvmeService_ListNvmeControllers_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -163,7 +189,7 @@ func (c *frontendNvmeServiceClient) ListNvmeControllers(ctx context.Context, in func (c *frontendNvmeServiceClient) GetNvmeController(ctx context.Context, in *GetNvmeControllerRequest, opts ...grpc.CallOption) (*NvmeController, error) { out := new(NvmeController) - err := c.cc.Invoke(ctx, "/opi_api.storage.v1.FrontendNvmeService/GetNvmeController", in, out, opts...) + err := c.cc.Invoke(ctx, FrontendNvmeService_GetNvmeController_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -172,7 +198,7 @@ func (c *frontendNvmeServiceClient) GetNvmeController(ctx context.Context, in *G func (c *frontendNvmeServiceClient) StatsNvmeController(ctx context.Context, in *StatsNvmeControllerRequest, opts ...grpc.CallOption) (*StatsNvmeControllerResponse, error) { out := new(StatsNvmeControllerResponse) - err := c.cc.Invoke(ctx, "/opi_api.storage.v1.FrontendNvmeService/StatsNvmeController", in, out, opts...) + err := c.cc.Invoke(ctx, FrontendNvmeService_StatsNvmeController_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -181,7 +207,7 @@ func (c *frontendNvmeServiceClient) StatsNvmeController(ctx context.Context, in func (c *frontendNvmeServiceClient) CreateNvmeNamespace(ctx context.Context, in *CreateNvmeNamespaceRequest, opts ...grpc.CallOption) (*NvmeNamespace, error) { out := new(NvmeNamespace) - err := c.cc.Invoke(ctx, "/opi_api.storage.v1.FrontendNvmeService/CreateNvmeNamespace", in, out, opts...) + err := c.cc.Invoke(ctx, FrontendNvmeService_CreateNvmeNamespace_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -190,7 +216,7 @@ func (c *frontendNvmeServiceClient) CreateNvmeNamespace(ctx context.Context, in func (c *frontendNvmeServiceClient) DeleteNvmeNamespace(ctx context.Context, in *DeleteNvmeNamespaceRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) { out := new(emptypb.Empty) - err := c.cc.Invoke(ctx, "/opi_api.storage.v1.FrontendNvmeService/DeleteNvmeNamespace", in, out, opts...) + err := c.cc.Invoke(ctx, FrontendNvmeService_DeleteNvmeNamespace_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -199,7 +225,7 @@ func (c *frontendNvmeServiceClient) DeleteNvmeNamespace(ctx context.Context, in func (c *frontendNvmeServiceClient) UpdateNvmeNamespace(ctx context.Context, in *UpdateNvmeNamespaceRequest, opts ...grpc.CallOption) (*NvmeNamespace, error) { out := new(NvmeNamespace) - err := c.cc.Invoke(ctx, "/opi_api.storage.v1.FrontendNvmeService/UpdateNvmeNamespace", in, out, opts...) + err := c.cc.Invoke(ctx, FrontendNvmeService_UpdateNvmeNamespace_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -208,7 +234,7 @@ func (c *frontendNvmeServiceClient) UpdateNvmeNamespace(ctx context.Context, in func (c *frontendNvmeServiceClient) ListNvmeNamespaces(ctx context.Context, in *ListNvmeNamespacesRequest, opts ...grpc.CallOption) (*ListNvmeNamespacesResponse, error) { out := new(ListNvmeNamespacesResponse) - err := c.cc.Invoke(ctx, "/opi_api.storage.v1.FrontendNvmeService/ListNvmeNamespaces", in, out, opts...) + err := c.cc.Invoke(ctx, FrontendNvmeService_ListNvmeNamespaces_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -217,7 +243,7 @@ func (c *frontendNvmeServiceClient) ListNvmeNamespaces(ctx context.Context, in * func (c *frontendNvmeServiceClient) GetNvmeNamespace(ctx context.Context, in *GetNvmeNamespaceRequest, opts ...grpc.CallOption) (*NvmeNamespace, error) { out := new(NvmeNamespace) - err := c.cc.Invoke(ctx, "/opi_api.storage.v1.FrontendNvmeService/GetNvmeNamespace", in, out, opts...) + err := c.cc.Invoke(ctx, FrontendNvmeService_GetNvmeNamespace_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -226,7 +252,7 @@ func (c *frontendNvmeServiceClient) GetNvmeNamespace(ctx context.Context, in *Ge func (c *frontendNvmeServiceClient) StatsNvmeNamespace(ctx context.Context, in *StatsNvmeNamespaceRequest, opts ...grpc.CallOption) (*StatsNvmeNamespaceResponse, error) { out := new(StatsNvmeNamespaceResponse) - err := c.cc.Invoke(ctx, "/opi_api.storage.v1.FrontendNvmeService/StatsNvmeNamespace", in, out, opts...) + err := c.cc.Invoke(ctx, FrontendNvmeService_StatsNvmeNamespace_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -234,7 +260,7 @@ func (c *frontendNvmeServiceClient) StatsNvmeNamespace(ctx context.Context, in * } // FrontendNvmeServiceServer is the server API for FrontendNvmeService service. -// All implementations should embed UnimplementedFrontendNvmeServiceServer +// All implementations must embed UnimplementedFrontendNvmeServiceServer // for forward compatibility type FrontendNvmeServiceServer interface { // Create an Nvme Subsystem @@ -275,9 +301,10 @@ type FrontendNvmeServiceServer interface { GetNvmeNamespace(context.Context, *GetNvmeNamespaceRequest) (*NvmeNamespace, error) // Get an Nvme Namespace statistics StatsNvmeNamespace(context.Context, *StatsNvmeNamespaceRequest) (*StatsNvmeNamespaceResponse, error) + mustEmbedUnimplementedFrontendNvmeServiceServer() } -// UnimplementedFrontendNvmeServiceServer should be embedded to have forward compatible implementations. +// UnimplementedFrontendNvmeServiceServer must be embedded to have forward compatible implementations. type UnimplementedFrontendNvmeServiceServer struct { } @@ -335,6 +362,7 @@ func (UnimplementedFrontendNvmeServiceServer) GetNvmeNamespace(context.Context, func (UnimplementedFrontendNvmeServiceServer) StatsNvmeNamespace(context.Context, *StatsNvmeNamespaceRequest) (*StatsNvmeNamespaceResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method StatsNvmeNamespace not implemented") } +func (UnimplementedFrontendNvmeServiceServer) mustEmbedUnimplementedFrontendNvmeServiceServer() {} // UnsafeFrontendNvmeServiceServer may be embedded to opt out of forward compatibility for this service. // Use of this interface is not recommended, as added methods to FrontendNvmeServiceServer will @@ -357,7 +385,7 @@ func _FrontendNvmeService_CreateNvmeSubsystem_Handler(srv interface{}, ctx conte } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/opi_api.storage.v1.FrontendNvmeService/CreateNvmeSubsystem", + FullMethod: FrontendNvmeService_CreateNvmeSubsystem_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(FrontendNvmeServiceServer).CreateNvmeSubsystem(ctx, req.(*CreateNvmeSubsystemRequest)) @@ -375,7 +403,7 @@ func _FrontendNvmeService_DeleteNvmeSubsystem_Handler(srv interface{}, ctx conte } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/opi_api.storage.v1.FrontendNvmeService/DeleteNvmeSubsystem", + FullMethod: FrontendNvmeService_DeleteNvmeSubsystem_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(FrontendNvmeServiceServer).DeleteNvmeSubsystem(ctx, req.(*DeleteNvmeSubsystemRequest)) @@ -393,7 +421,7 @@ func _FrontendNvmeService_UpdateNvmeSubsystem_Handler(srv interface{}, ctx conte } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/opi_api.storage.v1.FrontendNvmeService/UpdateNvmeSubsystem", + FullMethod: FrontendNvmeService_UpdateNvmeSubsystem_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(FrontendNvmeServiceServer).UpdateNvmeSubsystem(ctx, req.(*UpdateNvmeSubsystemRequest)) @@ -411,7 +439,7 @@ func _FrontendNvmeService_ListNvmeSubsystems_Handler(srv interface{}, ctx contex } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/opi_api.storage.v1.FrontendNvmeService/ListNvmeSubsystems", + FullMethod: FrontendNvmeService_ListNvmeSubsystems_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(FrontendNvmeServiceServer).ListNvmeSubsystems(ctx, req.(*ListNvmeSubsystemsRequest)) @@ -429,7 +457,7 @@ func _FrontendNvmeService_GetNvmeSubsystem_Handler(srv interface{}, ctx context. } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/opi_api.storage.v1.FrontendNvmeService/GetNvmeSubsystem", + FullMethod: FrontendNvmeService_GetNvmeSubsystem_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(FrontendNvmeServiceServer).GetNvmeSubsystem(ctx, req.(*GetNvmeSubsystemRequest)) @@ -447,7 +475,7 @@ func _FrontendNvmeService_StatsNvmeSubsystem_Handler(srv interface{}, ctx contex } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/opi_api.storage.v1.FrontendNvmeService/StatsNvmeSubsystem", + FullMethod: FrontendNvmeService_StatsNvmeSubsystem_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(FrontendNvmeServiceServer).StatsNvmeSubsystem(ctx, req.(*StatsNvmeSubsystemRequest)) @@ -465,7 +493,7 @@ func _FrontendNvmeService_CreateNvmeController_Handler(srv interface{}, ctx cont } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/opi_api.storage.v1.FrontendNvmeService/CreateNvmeController", + FullMethod: FrontendNvmeService_CreateNvmeController_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(FrontendNvmeServiceServer).CreateNvmeController(ctx, req.(*CreateNvmeControllerRequest)) @@ -483,7 +511,7 @@ func _FrontendNvmeService_DeleteNvmeController_Handler(srv interface{}, ctx cont } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/opi_api.storage.v1.FrontendNvmeService/DeleteNvmeController", + FullMethod: FrontendNvmeService_DeleteNvmeController_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(FrontendNvmeServiceServer).DeleteNvmeController(ctx, req.(*DeleteNvmeControllerRequest)) @@ -501,7 +529,7 @@ func _FrontendNvmeService_UpdateNvmeController_Handler(srv interface{}, ctx cont } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/opi_api.storage.v1.FrontendNvmeService/UpdateNvmeController", + FullMethod: FrontendNvmeService_UpdateNvmeController_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(FrontendNvmeServiceServer).UpdateNvmeController(ctx, req.(*UpdateNvmeControllerRequest)) @@ -519,7 +547,7 @@ func _FrontendNvmeService_ListNvmeControllers_Handler(srv interface{}, ctx conte } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/opi_api.storage.v1.FrontendNvmeService/ListNvmeControllers", + FullMethod: FrontendNvmeService_ListNvmeControllers_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(FrontendNvmeServiceServer).ListNvmeControllers(ctx, req.(*ListNvmeControllersRequest)) @@ -537,7 +565,7 @@ func _FrontendNvmeService_GetNvmeController_Handler(srv interface{}, ctx context } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/opi_api.storage.v1.FrontendNvmeService/GetNvmeController", + FullMethod: FrontendNvmeService_GetNvmeController_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(FrontendNvmeServiceServer).GetNvmeController(ctx, req.(*GetNvmeControllerRequest)) @@ -555,7 +583,7 @@ func _FrontendNvmeService_StatsNvmeController_Handler(srv interface{}, ctx conte } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/opi_api.storage.v1.FrontendNvmeService/StatsNvmeController", + FullMethod: FrontendNvmeService_StatsNvmeController_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(FrontendNvmeServiceServer).StatsNvmeController(ctx, req.(*StatsNvmeControllerRequest)) @@ -573,7 +601,7 @@ func _FrontendNvmeService_CreateNvmeNamespace_Handler(srv interface{}, ctx conte } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/opi_api.storage.v1.FrontendNvmeService/CreateNvmeNamespace", + FullMethod: FrontendNvmeService_CreateNvmeNamespace_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(FrontendNvmeServiceServer).CreateNvmeNamespace(ctx, req.(*CreateNvmeNamespaceRequest)) @@ -591,7 +619,7 @@ func _FrontendNvmeService_DeleteNvmeNamespace_Handler(srv interface{}, ctx conte } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/opi_api.storage.v1.FrontendNvmeService/DeleteNvmeNamespace", + FullMethod: FrontendNvmeService_DeleteNvmeNamespace_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(FrontendNvmeServiceServer).DeleteNvmeNamespace(ctx, req.(*DeleteNvmeNamespaceRequest)) @@ -609,7 +637,7 @@ func _FrontendNvmeService_UpdateNvmeNamespace_Handler(srv interface{}, ctx conte } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/opi_api.storage.v1.FrontendNvmeService/UpdateNvmeNamespace", + FullMethod: FrontendNvmeService_UpdateNvmeNamespace_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(FrontendNvmeServiceServer).UpdateNvmeNamespace(ctx, req.(*UpdateNvmeNamespaceRequest)) @@ -627,7 +655,7 @@ func _FrontendNvmeService_ListNvmeNamespaces_Handler(srv interface{}, ctx contex } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/opi_api.storage.v1.FrontendNvmeService/ListNvmeNamespaces", + FullMethod: FrontendNvmeService_ListNvmeNamespaces_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(FrontendNvmeServiceServer).ListNvmeNamespaces(ctx, req.(*ListNvmeNamespacesRequest)) @@ -645,7 +673,7 @@ func _FrontendNvmeService_GetNvmeNamespace_Handler(srv interface{}, ctx context. } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/opi_api.storage.v1.FrontendNvmeService/GetNvmeNamespace", + FullMethod: FrontendNvmeService_GetNvmeNamespace_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(FrontendNvmeServiceServer).GetNvmeNamespace(ctx, req.(*GetNvmeNamespaceRequest)) @@ -663,7 +691,7 @@ func _FrontendNvmeService_StatsNvmeNamespace_Handler(srv interface{}, ctx contex } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/opi_api.storage.v1.FrontendNvmeService/StatsNvmeNamespace", + FullMethod: FrontendNvmeService_StatsNvmeNamespace_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(FrontendNvmeServiceServer).StatsNvmeNamespace(ctx, req.(*StatsNvmeNamespaceRequest)) diff --git a/storage/v1alpha1/gen/go/frontend_virtio_blk.pb.go b/storage/v1alpha1/gen/go/frontend_virtio_blk.pb.go index b1ded289..d3d9a86b 100644 --- a/storage/v1alpha1/gen/go/frontend_virtio_blk.pb.go +++ b/storage/v1alpha1/gen/go/frontend_virtio_blk.pb.go @@ -4,8 +4,8 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.1 -// protoc v3.21.6 +// protoc-gen-go v1.31.0 +// protoc (unknown) // source: frontend_virtio_blk.proto package _go @@ -315,12 +315,10 @@ type ListVirtioBlksRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Parent's object unique identifier - Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` // page size of list request - PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` + PageSize int32 `protobuf:"varint,1,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` // page token of list request - PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` + PageToken string `protobuf:"bytes,2,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` } func (x *ListVirtioBlksRequest) Reset() { @@ -355,13 +353,6 @@ func (*ListVirtioBlksRequest) Descriptor() ([]byte, []int) { return file_frontend_virtio_blk_proto_rawDescGZIP(), []int{4} } -func (x *ListVirtioBlksRequest) GetParent() string { - if x != nil { - return x.Parent - } - return "" -} - func (x *ListVirtioBlksRequest) GetPageSize() int32 { if x != nil { return x.PageSize @@ -652,105 +643,99 @@ var file_frontend_virtio_blk_proto_rawDesc = []byte{ 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, 0x9b, 0x01, 0x0a, 0x15, 0x4c, 0x69, 0x73, 0x74, 0x56, - 0x69, 0x72, 0x74, 0x69, 0x6f, 0x42, 0x6c, 0x6b, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x3c, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x42, 0x24, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x1e, 0x12, 0x1c, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, + 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x22, 0x5d, 0x0a, 0x15, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x69, + 0x72, 0x74, 0x69, 0x6f, 0x42, 0x6c, 0x6b, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x20, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x01, 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, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, + 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x80, 0x01, 0x0a, 0x16, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x69, + 0x72, 0x74, 0x69, 0x6f, 0x42, 0x6c, 0x6b, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x3e, 0x0a, 0x0b, 0x76, 0x69, 0x72, 0x74, 0x69, 0x6f, 0x5f, 0x62, 0x6c, 0x6b, 0x73, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, + 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x69, 0x72, 0x74, 0x69, + 0x6f, 0x42, 0x6c, 0x6b, 0x52, 0x0a, 0x76, 0x69, 0x72, 0x74, 0x69, 0x6f, 0x42, 0x6c, 0x6b, 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, 0x4f, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x56, + 0x69, 0x72, 0x74, 0x69, 0x6f, 0x42, 0x6c, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x38, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x24, 0xe0, + 0x41, 0x02, 0xfa, 0x41, 0x1e, 0x0a, 0x1c, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, + 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2f, 0x56, 0x69, 0x72, 0x74, 0x69, 0x6f, + 0x42, 0x6c, 0x6b, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x51, 0x0a, 0x15, 0x53, 0x74, 0x61, + 0x74, 0x73, 0x56, 0x69, 0x72, 0x74, 0x69, 0x6f, 0x42, 0x6c, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x38, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x24, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x1e, 0x0a, 0x1c, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2f, 0x56, 0x69, 0x72, - 0x74, 0x69, 0x6f, 0x42, 0x6c, 0x6b, 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, 0x80, 0x01, 0x0a, 0x16, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x69, 0x72, - 0x74, 0x69, 0x6f, 0x42, 0x6c, 0x6b, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x3e, 0x0a, 0x0b, 0x76, 0x69, 0x72, 0x74, 0x69, 0x6f, 0x5f, 0x62, 0x6c, 0x6b, 0x73, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, - 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x69, 0x72, 0x74, 0x69, 0x6f, - 0x42, 0x6c, 0x6b, 0x52, 0x0a, 0x76, 0x69, 0x72, 0x74, 0x69, 0x6f, 0x42, 0x6c, 0x6b, 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, 0x4f, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x56, 0x69, - 0x72, 0x74, 0x69, 0x6f, 0x42, 0x6c, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x38, - 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x24, 0xe0, 0x41, - 0x02, 0xfa, 0x41, 0x1e, 0x0a, 0x1c, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, - 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2f, 0x56, 0x69, 0x72, 0x74, 0x69, 0x6f, 0x42, - 0x6c, 0x6b, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x51, 0x0a, 0x15, 0x53, 0x74, 0x61, 0x74, - 0x73, 0x56, 0x69, 0x72, 0x74, 0x69, 0x6f, 0x42, 0x6c, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x38, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, - 0x24, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x1e, 0x0a, 0x1c, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, - 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2f, 0x56, 0x69, 0x72, 0x74, - 0x69, 0x6f, 0x42, 0x6c, 0x6b, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x4f, 0x0a, 0x16, 0x53, - 0x74, 0x61, 0x74, 0x73, 0x56, 0x69, 0x72, 0x74, 0x69, 0x6f, 0x42, 0x6c, 0x6b, 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, 0x32, 0x93, 0x07, 0x0a, - 0x18, 0x46, 0x72, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x64, 0x56, 0x69, 0x72, 0x74, 0x69, 0x6f, 0x42, - 0x6c, 0x6b, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x9b, 0x01, 0x0a, 0x0f, 0x43, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x56, 0x69, 0x72, 0x74, 0x69, 0x6f, 0x42, 0x6c, 0x6b, 0x12, 0x2a, 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, 0x56, 0x69, 0x72, 0x74, 0x69, 0x6f, 0x42, - 0x6c, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x6f, 0x70, 0x69, 0x5f, - 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x56, - 0x69, 0x72, 0x74, 0x69, 0x6f, 0x42, 0x6c, 0x6b, 0x22, 0x3d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1c, - 0x22, 0x0e, 0x2f, 0x76, 0x31, 0x2f, 0x76, 0x69, 0x72, 0x74, 0x69, 0x6f, 0x42, 0x6c, 0x6b, 0x73, - 0x3a, 0x0a, 0x76, 0x69, 0x72, 0x74, 0x69, 0x6f, 0x5f, 0x62, 0x6c, 0x6b, 0xda, 0x41, 0x18, 0x76, - 0x69, 0x72, 0x74, 0x69, 0x6f, 0x5f, 0x62, 0x6c, 0x6b, 0x2c, 0x76, 0x69, 0x72, 0x74, 0x69, 0x6f, - 0x5f, 0x62, 0x6c, 0x6b, 0x5f, 0x69, 0x64, 0x12, 0x7d, 0x0a, 0x0f, 0x44, 0x65, 0x6c, 0x65, 0x74, - 0x65, 0x56, 0x69, 0x72, 0x74, 0x69, 0x6f, 0x42, 0x6c, 0x6b, 0x12, 0x2a, 0x2e, 0x6f, 0x70, 0x69, + 0x74, 0x69, 0x6f, 0x42, 0x6c, 0x6b, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x4f, 0x0a, 0x16, + 0x53, 0x74, 0x61, 0x74, 0x73, 0x56, 0x69, 0x72, 0x74, 0x69, 0x6f, 0x42, 0x6c, 0x6b, 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, 0x32, 0x80, 0x07, + 0x0a, 0x18, 0x46, 0x72, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x64, 0x56, 0x69, 0x72, 0x74, 0x69, 0x6f, + 0x42, 0x6c, 0x6b, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x9b, 0x01, 0x0a, 0x0f, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x56, 0x69, 0x72, 0x74, 0x69, 0x6f, 0x42, 0x6c, 0x6b, 0x12, 0x2a, + 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, 0x56, 0x69, 0x72, 0x74, 0x69, 0x6f, + 0x42, 0x6c, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 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, 0x56, 0x69, 0x72, 0x74, 0x69, 0x6f, 0x42, 0x6c, 0x6b, 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, 0x26, - 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x19, 0x2a, 0x17, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, - 0x65, 0x3d, 0x76, 0x69, 0x72, 0x74, 0x69, 0x6f, 0x42, 0x6c, 0x6b, 0x73, 0x2f, 0x2a, 0x7d, 0xda, - 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0xad, 0x01, 0x0a, 0x0f, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x56, 0x69, 0x72, 0x74, 0x69, 0x6f, 0x42, 0x6c, 0x6b, 0x12, 0x2a, 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, 0x56, 0x69, 0x72, 0x74, 0x69, 0x6f, 0x42, 0x6c, 0x6b, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, - 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x69, 0x72, 0x74, - 0x69, 0x6f, 0x42, 0x6c, 0x6b, 0x22, 0x4f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x30, 0x32, 0x22, 0x2f, - 0x76, 0x31, 0x2f, 0x7b, 0x76, 0x69, 0x72, 0x74, 0x69, 0x6f, 0x5f, 0x62, 0x6c, 0x6b, 0x2e, 0x6e, - 0x61, 0x6d, 0x65, 0x3d, 0x76, 0x69, 0x72, 0x74, 0x69, 0x6f, 0x42, 0x6c, 0x6b, 0x73, 0x2f, 0x2a, - 0x7d, 0x3a, 0x0a, 0x76, 0x69, 0x72, 0x74, 0x69, 0x6f, 0x5f, 0x62, 0x6c, 0x6b, 0xda, 0x41, 0x16, - 0x76, 0x69, 0x72, 0x74, 0x69, 0x6f, 0x5f, 0x62, 0x6c, 0x6b, 0x2c, 0x75, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x12, 0x91, 0x01, 0x0a, 0x0e, 0x4c, 0x69, 0x73, 0x74, 0x56, + 0x56, 0x69, 0x72, 0x74, 0x69, 0x6f, 0x42, 0x6c, 0x6b, 0x22, 0x3d, 0xda, 0x41, 0x18, 0x76, 0x69, + 0x72, 0x74, 0x69, 0x6f, 0x5f, 0x62, 0x6c, 0x6b, 0x2c, 0x76, 0x69, 0x72, 0x74, 0x69, 0x6f, 0x5f, + 0x62, 0x6c, 0x6b, 0x5f, 0x69, 0x64, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1c, 0x3a, 0x0a, 0x76, 0x69, + 0x72, 0x74, 0x69, 0x6f, 0x5f, 0x62, 0x6c, 0x6b, 0x22, 0x0e, 0x2f, 0x76, 0x31, 0x2f, 0x76, 0x69, + 0x72, 0x74, 0x69, 0x6f, 0x42, 0x6c, 0x6b, 0x73, 0x12, 0x7d, 0x0a, 0x0f, 0x44, 0x65, 0x6c, 0x65, + 0x74, 0x65, 0x56, 0x69, 0x72, 0x74, 0x69, 0x6f, 0x42, 0x6c, 0x6b, 0x12, 0x2a, 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, 0x56, 0x69, 0x72, 0x74, 0x69, 0x6f, 0x42, 0x6c, 0x6b, + 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, + 0x26, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x19, 0x2a, 0x17, + 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x76, 0x69, 0x72, 0x74, 0x69, 0x6f, + 0x42, 0x6c, 0x6b, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xad, 0x01, 0x0a, 0x0f, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x56, 0x69, 0x72, 0x74, 0x69, 0x6f, 0x42, 0x6c, 0x6b, 0x12, 0x2a, 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, 0x56, 0x69, 0x72, 0x74, 0x69, 0x6f, 0x42, 0x6c, 0x6b, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, + 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x69, 0x72, + 0x74, 0x69, 0x6f, 0x42, 0x6c, 0x6b, 0x22, 0x4f, 0xda, 0x41, 0x16, 0x76, 0x69, 0x72, 0x74, 0x69, + 0x6f, 0x5f, 0x62, 0x6c, 0x6b, 0x2c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, + 0x6b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x30, 0x3a, 0x0a, 0x76, 0x69, 0x72, 0x74, 0x69, 0x6f, 0x5f, + 0x62, 0x6c, 0x6b, 0x32, 0x22, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x76, 0x69, 0x72, 0x74, 0x69, 0x6f, + 0x5f, 0x62, 0x6c, 0x6b, 0x2e, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x76, 0x69, 0x72, 0x74, 0x69, 0x6f, + 0x42, 0x6c, 0x6b, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0x7f, 0x0a, 0x0e, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x69, 0x72, 0x74, 0x69, 0x6f, 0x42, 0x6c, 0x6b, 0x73, 0x12, 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, 0x56, 0x69, 0x72, 0x74, 0x69, 0x6f, 0x42, 0x6c, 0x6b, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x69, 0x72, 0x74, 0x69, 0x6f, 0x42, 0x6c, 0x6b, 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, 0x7e, 0x0a, 0x0c, 0x47, 0x65, - 0x74, 0x56, 0x69, 0x72, 0x74, 0x69, 0x6f, 0x42, 0x6c, 0x6b, 0x12, 0x27, 0x2e, 0x6f, 0x70, 0x69, - 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, - 0x47, 0x65, 0x74, 0x56, 0x69, 0x72, 0x74, 0x69, 0x6f, 0x42, 0x6c, 0x6b, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, - 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x69, 0x72, 0x74, 0x69, 0x6f, 0x42, - 0x6c, 0x6b, 0x22, 0x26, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x19, 0x12, 0x17, 0x2f, 0x76, 0x31, 0x2f, - 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x76, 0x69, 0x72, 0x74, 0x69, 0x6f, 0x42, 0x6c, 0x6b, 0x73, - 0x2f, 0x2a, 0x7d, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x95, 0x01, 0x0a, 0x0e, 0x53, - 0x74, 0x61, 0x74, 0x73, 0x56, 0x69, 0x72, 0x74, 0x69, 0x6f, 0x42, 0x6c, 0x6b, 0x12, 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, 0x56, 0x69, 0x72, 0x74, 0x69, 0x6f, 0x42, 0x6c, - 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 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, 0x56, 0x69, 0x72, 0x74, 0x69, 0x6f, 0x42, 0x6c, 0x6b, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2c, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1f, 0x12, 0x1d, 0x2f, 0x76, - 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x76, 0x69, 0x72, 0x74, 0x69, 0x6f, 0x42, 0x6c, - 0x6b, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x73, 0x74, 0x61, 0x74, 0x73, 0xda, 0x41, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x42, 0x65, 0x0a, 0x12, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, - 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x42, 0x16, 0x46, 0x72, 0x6f, 0x6e, 0x74, 0x65, - 0x6e, 0x64, 0x56, 0x69, 0x72, 0x74, 0x69, 0x6f, 0x42, 0x6c, 0x6b, 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, + 0x22, 0x16, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x10, 0x12, 0x0e, 0x2f, 0x76, 0x31, 0x2f, 0x76, 0x69, + 0x72, 0x74, 0x69, 0x6f, 0x42, 0x6c, 0x6b, 0x73, 0x12, 0x7e, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x56, + 0x69, 0x72, 0x74, 0x69, 0x6f, 0x42, 0x6c, 0x6b, 0x12, 0x27, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, + 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, + 0x74, 0x56, 0x69, 0x72, 0x74, 0x69, 0x6f, 0x42, 0x6c, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x1d, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, + 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x69, 0x72, 0x74, 0x69, 0x6f, 0x42, 0x6c, 0x6b, + 0x22, 0x26, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x19, 0x12, + 0x17, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x76, 0x69, 0x72, 0x74, 0x69, + 0x6f, 0x42, 0x6c, 0x6b, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0x95, 0x01, 0x0a, 0x0e, 0x53, 0x74, 0x61, + 0x74, 0x73, 0x56, 0x69, 0x72, 0x74, 0x69, 0x6f, 0x42, 0x6c, 0x6b, 0x12, 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, 0x56, 0x69, 0x72, 0x74, 0x69, 0x6f, 0x42, 0x6c, 0x6b, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 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, 0x56, 0x69, 0x72, 0x74, 0x69, 0x6f, 0x42, 0x6c, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x2c, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x1f, 0x12, 0x1d, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x76, 0x69, 0x72, + 0x74, 0x69, 0x6f, 0x42, 0x6c, 0x6b, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x73, 0x74, 0x61, 0x74, 0x73, + 0x42, 0x65, 0x0a, 0x12, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, + 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x42, 0x16, 0x46, 0x72, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x64, + 0x56, 0x69, 0x72, 0x74, 0x69, 0x6f, 0x42, 0x6c, 0x6b, 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 ( diff --git a/storage/v1alpha1/gen/go/frontend_virtio_blk.pb.gw.go b/storage/v1alpha1/gen/go/frontend_virtio_blk.pb.gw.go new file mode 100644 index 00000000..595dc802 --- /dev/null +++ b/storage/v1alpha1/gen/go/frontend_virtio_blk.pb.gw.go @@ -0,0 +1,754 @@ +// Code generated by protoc-gen-grpc-gateway. DO NOT EDIT. +// source: frontend_virtio_blk.proto + +/* +Package _go is a reverse proxy. + +It translates gRPC into RESTful JSON APIs. +*/ +package _go + +import ( + "context" + "io" + "net/http" + + "github.com/grpc-ecosystem/grpc-gateway/v2/runtime" + "github.com/grpc-ecosystem/grpc-gateway/v2/utilities" + "google.golang.org/grpc" + "google.golang.org/grpc/codes" + "google.golang.org/grpc/grpclog" + "google.golang.org/grpc/metadata" + "google.golang.org/grpc/status" + "google.golang.org/protobuf/proto" +) + +// Suppress "imported and not used" errors +var _ codes.Code +var _ io.Reader +var _ status.Status +var _ = runtime.String +var _ = utilities.NewDoubleArray +var _ = metadata.Join + +var ( + filter_FrontendVirtioBlkService_CreateVirtioBlk_0 = &utilities.DoubleArray{Encoding: map[string]int{"virtio_blk": 0, "virtioBlk": 1}, Base: []int{1, 1, 2, 0, 0}, Check: []int{0, 1, 1, 2, 3}} +) + +func request_FrontendVirtioBlkService_CreateVirtioBlk_0(ctx context.Context, marshaler runtime.Marshaler, client FrontendVirtioBlkServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq CreateVirtioBlkRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq.VirtioBlk); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_FrontendVirtioBlkService_CreateVirtioBlk_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.CreateVirtioBlk(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_FrontendVirtioBlkService_CreateVirtioBlk_0(ctx context.Context, marshaler runtime.Marshaler, server FrontendVirtioBlkServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq CreateVirtioBlkRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq.VirtioBlk); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_FrontendVirtioBlkService_CreateVirtioBlk_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.CreateVirtioBlk(ctx, &protoReq) + return msg, metadata, err + +} + +var ( + filter_FrontendVirtioBlkService_DeleteVirtioBlk_0 = &utilities.DoubleArray{Encoding: map[string]int{"name": 0}, Base: []int{1, 2, 0, 0}, Check: []int{0, 1, 2, 2}} +) + +func request_FrontendVirtioBlkService_DeleteVirtioBlk_0(ctx context.Context, marshaler runtime.Marshaler, client FrontendVirtioBlkServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq DeleteVirtioBlkRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") + } + + protoReq.Name, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_FrontendVirtioBlkService_DeleteVirtioBlk_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.DeleteVirtioBlk(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_FrontendVirtioBlkService_DeleteVirtioBlk_0(ctx context.Context, marshaler runtime.Marshaler, server FrontendVirtioBlkServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq DeleteVirtioBlkRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") + } + + protoReq.Name, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_FrontendVirtioBlkService_DeleteVirtioBlk_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.DeleteVirtioBlk(ctx, &protoReq) + return msg, metadata, err + +} + +var ( + filter_FrontendVirtioBlkService_UpdateVirtioBlk_0 = &utilities.DoubleArray{Encoding: map[string]int{"virtio_blk": 0, "virtioBlk": 1, "name": 2}, Base: []int{1, 3, 4, 5, 2, 0, 0, 0, 0}, Check: []int{0, 1, 1, 1, 2, 5, 2, 3, 4}} +) + +func request_FrontendVirtioBlkService_UpdateVirtioBlk_0(ctx context.Context, marshaler runtime.Marshaler, client FrontendVirtioBlkServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq UpdateVirtioBlkRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq.VirtioBlk); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if protoReq.UpdateMask == nil || len(protoReq.UpdateMask.GetPaths()) == 0 { + if fieldMask, err := runtime.FieldMaskFromRequestBody(newReader(), protoReq.VirtioBlk); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } else { + protoReq.UpdateMask = fieldMask + } + } + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["virtio_blk.name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "virtio_blk.name") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "virtio_blk.name", val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "virtio_blk.name", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_FrontendVirtioBlkService_UpdateVirtioBlk_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.UpdateVirtioBlk(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_FrontendVirtioBlkService_UpdateVirtioBlk_0(ctx context.Context, marshaler runtime.Marshaler, server FrontendVirtioBlkServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq UpdateVirtioBlkRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq.VirtioBlk); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if protoReq.UpdateMask == nil || len(protoReq.UpdateMask.GetPaths()) == 0 { + if fieldMask, err := runtime.FieldMaskFromRequestBody(newReader(), protoReq.VirtioBlk); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } else { + protoReq.UpdateMask = fieldMask + } + } + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["virtio_blk.name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "virtio_blk.name") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "virtio_blk.name", val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "virtio_blk.name", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_FrontendVirtioBlkService_UpdateVirtioBlk_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.UpdateVirtioBlk(ctx, &protoReq) + return msg, metadata, err + +} + +var ( + filter_FrontendVirtioBlkService_ListVirtioBlks_0 = &utilities.DoubleArray{Encoding: map[string]int{}, Base: []int(nil), Check: []int(nil)} +) + +func request_FrontendVirtioBlkService_ListVirtioBlks_0(ctx context.Context, marshaler runtime.Marshaler, client FrontendVirtioBlkServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq ListVirtioBlksRequest + var metadata runtime.ServerMetadata + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_FrontendVirtioBlkService_ListVirtioBlks_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.ListVirtioBlks(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_FrontendVirtioBlkService_ListVirtioBlks_0(ctx context.Context, marshaler runtime.Marshaler, server FrontendVirtioBlkServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq ListVirtioBlksRequest + var metadata runtime.ServerMetadata + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_FrontendVirtioBlkService_ListVirtioBlks_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.ListVirtioBlks(ctx, &protoReq) + return msg, metadata, err + +} + +func request_FrontendVirtioBlkService_GetVirtioBlk_0(ctx context.Context, marshaler runtime.Marshaler, client FrontendVirtioBlkServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetVirtioBlkRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") + } + + protoReq.Name, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) + } + + msg, err := client.GetVirtioBlk(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_FrontendVirtioBlkService_GetVirtioBlk_0(ctx context.Context, marshaler runtime.Marshaler, server FrontendVirtioBlkServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetVirtioBlkRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") + } + + protoReq.Name, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) + } + + msg, err := server.GetVirtioBlk(ctx, &protoReq) + return msg, metadata, err + +} + +func request_FrontendVirtioBlkService_StatsVirtioBlk_0(ctx context.Context, marshaler runtime.Marshaler, client FrontendVirtioBlkServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq StatsVirtioBlkRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") + } + + protoReq.Name, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) + } + + msg, err := client.StatsVirtioBlk(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_FrontendVirtioBlkService_StatsVirtioBlk_0(ctx context.Context, marshaler runtime.Marshaler, server FrontendVirtioBlkServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq StatsVirtioBlkRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") + } + + protoReq.Name, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) + } + + msg, err := server.StatsVirtioBlk(ctx, &protoReq) + return msg, metadata, err + +} + +// RegisterFrontendVirtioBlkServiceHandlerServer registers the http handlers for service FrontendVirtioBlkService to "mux". +// UnaryRPC :call FrontendVirtioBlkServiceServer directly. +// StreamingRPC :currently unsupported pending https://github.com/grpc/grpc-go/issues/906. +// Note that using this registration option will cause many gRPC library features to stop working. Consider using RegisterFrontendVirtioBlkServiceHandlerFromEndpoint instead. +func RegisterFrontendVirtioBlkServiceHandlerServer(ctx context.Context, mux *runtime.ServeMux, server FrontendVirtioBlkServiceServer) error { + + mux.Handle("POST", pattern_FrontendVirtioBlkService_CreateVirtioBlk_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/opi_api.storage.v1.FrontendVirtioBlkService/CreateVirtioBlk", runtime.WithHTTPPathPattern("/v1/virtioBlks")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_FrontendVirtioBlkService_CreateVirtioBlk_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FrontendVirtioBlkService_CreateVirtioBlk_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("DELETE", pattern_FrontendVirtioBlkService_DeleteVirtioBlk_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/opi_api.storage.v1.FrontendVirtioBlkService/DeleteVirtioBlk", runtime.WithHTTPPathPattern("/v1/{name=virtioBlks/*}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_FrontendVirtioBlkService_DeleteVirtioBlk_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FrontendVirtioBlkService_DeleteVirtioBlk_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("PATCH", pattern_FrontendVirtioBlkService_UpdateVirtioBlk_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/opi_api.storage.v1.FrontendVirtioBlkService/UpdateVirtioBlk", runtime.WithHTTPPathPattern("/v1/{virtio_blk.name=virtioBlks/*}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_FrontendVirtioBlkService_UpdateVirtioBlk_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FrontendVirtioBlkService_UpdateVirtioBlk_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_FrontendVirtioBlkService_ListVirtioBlks_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/opi_api.storage.v1.FrontendVirtioBlkService/ListVirtioBlks", runtime.WithHTTPPathPattern("/v1/virtioBlks")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_FrontendVirtioBlkService_ListVirtioBlks_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FrontendVirtioBlkService_ListVirtioBlks_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_FrontendVirtioBlkService_GetVirtioBlk_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/opi_api.storage.v1.FrontendVirtioBlkService/GetVirtioBlk", runtime.WithHTTPPathPattern("/v1/{name=virtioBlks/*}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_FrontendVirtioBlkService_GetVirtioBlk_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FrontendVirtioBlkService_GetVirtioBlk_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_FrontendVirtioBlkService_StatsVirtioBlk_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/opi_api.storage.v1.FrontendVirtioBlkService/StatsVirtioBlk", runtime.WithHTTPPathPattern("/v1/{name=virtioBlks/*}:stats")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_FrontendVirtioBlkService_StatsVirtioBlk_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FrontendVirtioBlkService_StatsVirtioBlk_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + return nil +} + +// RegisterFrontendVirtioBlkServiceHandlerFromEndpoint is same as RegisterFrontendVirtioBlkServiceHandler but +// automatically dials to "endpoint" and closes the connection when "ctx" gets done. +func RegisterFrontendVirtioBlkServiceHandlerFromEndpoint(ctx context.Context, mux *runtime.ServeMux, endpoint string, opts []grpc.DialOption) (err error) { + conn, err := grpc.DialContext(ctx, endpoint, opts...) + if err != nil { + return err + } + defer func() { + if err != nil { + if cerr := conn.Close(); cerr != nil { + grpclog.Infof("Failed to close conn to %s: %v", endpoint, cerr) + } + return + } + go func() { + <-ctx.Done() + if cerr := conn.Close(); cerr != nil { + grpclog.Infof("Failed to close conn to %s: %v", endpoint, cerr) + } + }() + }() + + return RegisterFrontendVirtioBlkServiceHandler(ctx, mux, conn) +} + +// RegisterFrontendVirtioBlkServiceHandler registers the http handlers for service FrontendVirtioBlkService to "mux". +// The handlers forward requests to the grpc endpoint over "conn". +func RegisterFrontendVirtioBlkServiceHandler(ctx context.Context, mux *runtime.ServeMux, conn *grpc.ClientConn) error { + return RegisterFrontendVirtioBlkServiceHandlerClient(ctx, mux, NewFrontendVirtioBlkServiceClient(conn)) +} + +// RegisterFrontendVirtioBlkServiceHandlerClient registers the http handlers for service FrontendVirtioBlkService +// to "mux". The handlers forward requests to the grpc endpoint over the given implementation of "FrontendVirtioBlkServiceClient". +// Note: the gRPC framework executes interceptors within the gRPC handler. If the passed in "FrontendVirtioBlkServiceClient" +// doesn't go through the normal gRPC flow (creating a gRPC client etc.) then it will be up to the passed in +// "FrontendVirtioBlkServiceClient" to call the correct interceptors. +func RegisterFrontendVirtioBlkServiceHandlerClient(ctx context.Context, mux *runtime.ServeMux, client FrontendVirtioBlkServiceClient) error { + + mux.Handle("POST", pattern_FrontendVirtioBlkService_CreateVirtioBlk_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/opi_api.storage.v1.FrontendVirtioBlkService/CreateVirtioBlk", runtime.WithHTTPPathPattern("/v1/virtioBlks")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_FrontendVirtioBlkService_CreateVirtioBlk_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FrontendVirtioBlkService_CreateVirtioBlk_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("DELETE", pattern_FrontendVirtioBlkService_DeleteVirtioBlk_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/opi_api.storage.v1.FrontendVirtioBlkService/DeleteVirtioBlk", runtime.WithHTTPPathPattern("/v1/{name=virtioBlks/*}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_FrontendVirtioBlkService_DeleteVirtioBlk_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FrontendVirtioBlkService_DeleteVirtioBlk_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("PATCH", pattern_FrontendVirtioBlkService_UpdateVirtioBlk_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/opi_api.storage.v1.FrontendVirtioBlkService/UpdateVirtioBlk", runtime.WithHTTPPathPattern("/v1/{virtio_blk.name=virtioBlks/*}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_FrontendVirtioBlkService_UpdateVirtioBlk_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FrontendVirtioBlkService_UpdateVirtioBlk_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_FrontendVirtioBlkService_ListVirtioBlks_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/opi_api.storage.v1.FrontendVirtioBlkService/ListVirtioBlks", runtime.WithHTTPPathPattern("/v1/virtioBlks")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_FrontendVirtioBlkService_ListVirtioBlks_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FrontendVirtioBlkService_ListVirtioBlks_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_FrontendVirtioBlkService_GetVirtioBlk_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/opi_api.storage.v1.FrontendVirtioBlkService/GetVirtioBlk", runtime.WithHTTPPathPattern("/v1/{name=virtioBlks/*}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_FrontendVirtioBlkService_GetVirtioBlk_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FrontendVirtioBlkService_GetVirtioBlk_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_FrontendVirtioBlkService_StatsVirtioBlk_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/opi_api.storage.v1.FrontendVirtioBlkService/StatsVirtioBlk", runtime.WithHTTPPathPattern("/v1/{name=virtioBlks/*}:stats")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_FrontendVirtioBlkService_StatsVirtioBlk_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FrontendVirtioBlkService_StatsVirtioBlk_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + return nil +} + +var ( + pattern_FrontendVirtioBlkService_CreateVirtioBlk_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"v1", "virtioBlks"}, "")) + + pattern_FrontendVirtioBlkService_DeleteVirtioBlk_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 2, 5, 2}, []string{"v1", "virtioBlks", "name"}, "")) + + pattern_FrontendVirtioBlkService_UpdateVirtioBlk_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 2, 5, 2}, []string{"v1", "virtioBlks", "virtio_blk.name"}, "")) + + pattern_FrontendVirtioBlkService_ListVirtioBlks_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"v1", "virtioBlks"}, "")) + + pattern_FrontendVirtioBlkService_GetVirtioBlk_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 2, 5, 2}, []string{"v1", "virtioBlks", "name"}, "")) + + pattern_FrontendVirtioBlkService_StatsVirtioBlk_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 2, 5, 2}, []string{"v1", "virtioBlks", "name"}, "stats")) +) + +var ( + forward_FrontendVirtioBlkService_CreateVirtioBlk_0 = runtime.ForwardResponseMessage + + forward_FrontendVirtioBlkService_DeleteVirtioBlk_0 = runtime.ForwardResponseMessage + + forward_FrontendVirtioBlkService_UpdateVirtioBlk_0 = runtime.ForwardResponseMessage + + forward_FrontendVirtioBlkService_ListVirtioBlks_0 = runtime.ForwardResponseMessage + + forward_FrontendVirtioBlkService_GetVirtioBlk_0 = runtime.ForwardResponseMessage + + forward_FrontendVirtioBlkService_StatsVirtioBlk_0 = runtime.ForwardResponseMessage +) diff --git a/storage/v1alpha1/gen/go/frontend_virtio_blk_grpc.pb.go b/storage/v1alpha1/gen/go/frontend_virtio_blk_grpc.pb.go index 990314a3..f974c3f2 100644 --- a/storage/v1alpha1/gen/go/frontend_virtio_blk_grpc.pb.go +++ b/storage/v1alpha1/gen/go/frontend_virtio_blk_grpc.pb.go @@ -1,7 +1,11 @@ +// SPDX-License-Identifier: Apache-2.0 +// Copyright (c) 2022 Dell Inc, or its subsidiaries. +// Copyright (C) 2023 Intel Corporation + // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: -// - protoc-gen-go-grpc v1.2.0 -// - protoc v3.21.6 +// - protoc-gen-go-grpc v1.3.0 +// - protoc (unknown) // source: frontend_virtio_blk.proto package _go @@ -19,6 +23,15 @@ import ( // Requires gRPC-Go v1.32.0 or later. const _ = grpc.SupportPackageIsVersion7 +const ( + FrontendVirtioBlkService_CreateVirtioBlk_FullMethodName = "/opi_api.storage.v1.FrontendVirtioBlkService/CreateVirtioBlk" + FrontendVirtioBlkService_DeleteVirtioBlk_FullMethodName = "/opi_api.storage.v1.FrontendVirtioBlkService/DeleteVirtioBlk" + FrontendVirtioBlkService_UpdateVirtioBlk_FullMethodName = "/opi_api.storage.v1.FrontendVirtioBlkService/UpdateVirtioBlk" + FrontendVirtioBlkService_ListVirtioBlks_FullMethodName = "/opi_api.storage.v1.FrontendVirtioBlkService/ListVirtioBlks" + FrontendVirtioBlkService_GetVirtioBlk_FullMethodName = "/opi_api.storage.v1.FrontendVirtioBlkService/GetVirtioBlk" + FrontendVirtioBlkService_StatsVirtioBlk_FullMethodName = "/opi_api.storage.v1.FrontendVirtioBlkService/StatsVirtioBlk" +) + // FrontendVirtioBlkServiceClient is the client API for FrontendVirtioBlkService service. // // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. @@ -47,7 +60,7 @@ func NewFrontendVirtioBlkServiceClient(cc grpc.ClientConnInterface) FrontendVirt func (c *frontendVirtioBlkServiceClient) CreateVirtioBlk(ctx context.Context, in *CreateVirtioBlkRequest, opts ...grpc.CallOption) (*VirtioBlk, error) { out := new(VirtioBlk) - err := c.cc.Invoke(ctx, "/opi_api.storage.v1.FrontendVirtioBlkService/CreateVirtioBlk", in, out, opts...) + err := c.cc.Invoke(ctx, FrontendVirtioBlkService_CreateVirtioBlk_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -56,7 +69,7 @@ func (c *frontendVirtioBlkServiceClient) CreateVirtioBlk(ctx context.Context, in func (c *frontendVirtioBlkServiceClient) DeleteVirtioBlk(ctx context.Context, in *DeleteVirtioBlkRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) { out := new(emptypb.Empty) - err := c.cc.Invoke(ctx, "/opi_api.storage.v1.FrontendVirtioBlkService/DeleteVirtioBlk", in, out, opts...) + err := c.cc.Invoke(ctx, FrontendVirtioBlkService_DeleteVirtioBlk_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -65,7 +78,7 @@ func (c *frontendVirtioBlkServiceClient) DeleteVirtioBlk(ctx context.Context, in func (c *frontendVirtioBlkServiceClient) UpdateVirtioBlk(ctx context.Context, in *UpdateVirtioBlkRequest, opts ...grpc.CallOption) (*VirtioBlk, error) { out := new(VirtioBlk) - err := c.cc.Invoke(ctx, "/opi_api.storage.v1.FrontendVirtioBlkService/UpdateVirtioBlk", in, out, opts...) + err := c.cc.Invoke(ctx, FrontendVirtioBlkService_UpdateVirtioBlk_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -74,7 +87,7 @@ func (c *frontendVirtioBlkServiceClient) UpdateVirtioBlk(ctx context.Context, in func (c *frontendVirtioBlkServiceClient) ListVirtioBlks(ctx context.Context, in *ListVirtioBlksRequest, opts ...grpc.CallOption) (*ListVirtioBlksResponse, error) { out := new(ListVirtioBlksResponse) - err := c.cc.Invoke(ctx, "/opi_api.storage.v1.FrontendVirtioBlkService/ListVirtioBlks", in, out, opts...) + err := c.cc.Invoke(ctx, FrontendVirtioBlkService_ListVirtioBlks_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -83,7 +96,7 @@ func (c *frontendVirtioBlkServiceClient) ListVirtioBlks(ctx context.Context, in func (c *frontendVirtioBlkServiceClient) GetVirtioBlk(ctx context.Context, in *GetVirtioBlkRequest, opts ...grpc.CallOption) (*VirtioBlk, error) { out := new(VirtioBlk) - err := c.cc.Invoke(ctx, "/opi_api.storage.v1.FrontendVirtioBlkService/GetVirtioBlk", in, out, opts...) + err := c.cc.Invoke(ctx, FrontendVirtioBlkService_GetVirtioBlk_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -92,7 +105,7 @@ func (c *frontendVirtioBlkServiceClient) GetVirtioBlk(ctx context.Context, in *G func (c *frontendVirtioBlkServiceClient) StatsVirtioBlk(ctx context.Context, in *StatsVirtioBlkRequest, opts ...grpc.CallOption) (*StatsVirtioBlkResponse, error) { out := new(StatsVirtioBlkResponse) - err := c.cc.Invoke(ctx, "/opi_api.storage.v1.FrontendVirtioBlkService/StatsVirtioBlk", in, out, opts...) + err := c.cc.Invoke(ctx, FrontendVirtioBlkService_StatsVirtioBlk_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -100,7 +113,7 @@ func (c *frontendVirtioBlkServiceClient) StatsVirtioBlk(ctx context.Context, in } // FrontendVirtioBlkServiceServer is the server API for FrontendVirtioBlkService service. -// All implementations should embed UnimplementedFrontendVirtioBlkServiceServer +// All implementations must embed UnimplementedFrontendVirtioBlkServiceServer // for forward compatibility type FrontendVirtioBlkServiceServer interface { // Create an Virtio Blk @@ -115,9 +128,10 @@ type FrontendVirtioBlkServiceServer interface { GetVirtioBlk(context.Context, *GetVirtioBlkRequest) (*VirtioBlk, error) // Get an Virtio Blk statistics StatsVirtioBlk(context.Context, *StatsVirtioBlkRequest) (*StatsVirtioBlkResponse, error) + mustEmbedUnimplementedFrontendVirtioBlkServiceServer() } -// UnimplementedFrontendVirtioBlkServiceServer should be embedded to have forward compatible implementations. +// UnimplementedFrontendVirtioBlkServiceServer must be embedded to have forward compatible implementations. type UnimplementedFrontendVirtioBlkServiceServer struct { } @@ -139,6 +153,8 @@ func (UnimplementedFrontendVirtioBlkServiceServer) GetVirtioBlk(context.Context, func (UnimplementedFrontendVirtioBlkServiceServer) StatsVirtioBlk(context.Context, *StatsVirtioBlkRequest) (*StatsVirtioBlkResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method StatsVirtioBlk not implemented") } +func (UnimplementedFrontendVirtioBlkServiceServer) mustEmbedUnimplementedFrontendVirtioBlkServiceServer() { +} // UnsafeFrontendVirtioBlkServiceServer may be embedded to opt out of forward compatibility for this service. // Use of this interface is not recommended, as added methods to FrontendVirtioBlkServiceServer will @@ -161,7 +177,7 @@ func _FrontendVirtioBlkService_CreateVirtioBlk_Handler(srv interface{}, ctx cont } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/opi_api.storage.v1.FrontendVirtioBlkService/CreateVirtioBlk", + FullMethod: FrontendVirtioBlkService_CreateVirtioBlk_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(FrontendVirtioBlkServiceServer).CreateVirtioBlk(ctx, req.(*CreateVirtioBlkRequest)) @@ -179,7 +195,7 @@ func _FrontendVirtioBlkService_DeleteVirtioBlk_Handler(srv interface{}, ctx cont } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/opi_api.storage.v1.FrontendVirtioBlkService/DeleteVirtioBlk", + FullMethod: FrontendVirtioBlkService_DeleteVirtioBlk_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(FrontendVirtioBlkServiceServer).DeleteVirtioBlk(ctx, req.(*DeleteVirtioBlkRequest)) @@ -197,7 +213,7 @@ func _FrontendVirtioBlkService_UpdateVirtioBlk_Handler(srv interface{}, ctx cont } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/opi_api.storage.v1.FrontendVirtioBlkService/UpdateVirtioBlk", + FullMethod: FrontendVirtioBlkService_UpdateVirtioBlk_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(FrontendVirtioBlkServiceServer).UpdateVirtioBlk(ctx, req.(*UpdateVirtioBlkRequest)) @@ -215,7 +231,7 @@ func _FrontendVirtioBlkService_ListVirtioBlks_Handler(srv interface{}, ctx conte } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/opi_api.storage.v1.FrontendVirtioBlkService/ListVirtioBlks", + FullMethod: FrontendVirtioBlkService_ListVirtioBlks_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(FrontendVirtioBlkServiceServer).ListVirtioBlks(ctx, req.(*ListVirtioBlksRequest)) @@ -233,7 +249,7 @@ func _FrontendVirtioBlkService_GetVirtioBlk_Handler(srv interface{}, ctx context } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/opi_api.storage.v1.FrontendVirtioBlkService/GetVirtioBlk", + FullMethod: FrontendVirtioBlkService_GetVirtioBlk_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(FrontendVirtioBlkServiceServer).GetVirtioBlk(ctx, req.(*GetVirtioBlkRequest)) @@ -251,7 +267,7 @@ func _FrontendVirtioBlkService_StatsVirtioBlk_Handler(srv interface{}, ctx conte } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/opi_api.storage.v1.FrontendVirtioBlkService/StatsVirtioBlk", + FullMethod: FrontendVirtioBlkService_StatsVirtioBlk_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(FrontendVirtioBlkServiceServer).StatsVirtioBlk(ctx, req.(*StatsVirtioBlkRequest)) diff --git a/storage/v1alpha1/gen/go/frontend_virtio_fs.pb.go b/storage/v1alpha1/gen/go/frontend_virtio_fs.pb.go index 8796152b..ad40dd1d 100644 --- a/storage/v1alpha1/gen/go/frontend_virtio_fs.pb.go +++ b/storage/v1alpha1/gen/go/frontend_virtio_fs.pb.go @@ -3,8 +3,8 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.1 -// protoc v3.21.6 +// protoc-gen-go v1.31.0 +// protoc (unknown) // source: frontend_virtio_fs.proto package _go diff --git a/storage/v1alpha1/gen/go/frontend_virtio_scsi.pb.go b/storage/v1alpha1/gen/go/frontend_virtio_scsi.pb.go index 3e893bac..44063f84 100644 --- a/storage/v1alpha1/gen/go/frontend_virtio_scsi.pb.go +++ b/storage/v1alpha1/gen/go/frontend_virtio_scsi.pb.go @@ -4,8 +4,8 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.1 -// protoc v3.21.6 +// protoc-gen-go v1.31.0 +// protoc (unknown) // source: frontend_virtio_scsi.proto package _go @@ -1906,7 +1906,7 @@ var file_frontend_virtio_scsi_proto_rawDesc = []byte{ 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, 0x32, 0x91, 0x1a, 0x0a, 0x19, 0x46, + 0x61, 0x74, 0x73, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x73, 0x32, 0x9c, 0x1a, 0x0a, 0x19, 0x46, 0x72, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x64, 0x56, 0x69, 0x72, 0x74, 0x69, 0x6f, 0x53, 0x63, 0x73, 0x69, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0xcf, 0x01, 0x0a, 0x16, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x56, 0x69, 0x72, 0x74, 0x69, 0x6f, 0x53, 0x63, 0x73, 0x69, 0x54, 0x61, 0x72, @@ -1915,22 +1915,22 @@ var file_frontend_virtio_scsi_proto_rawDesc = []byte{ 0x69, 0x72, 0x74, 0x69, 0x6f, 0x53, 0x63, 0x73, 0x69, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x69, 0x72, 0x74, - 0x69, 0x6f, 0x53, 0x63, 0x73, 0x69, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x22, 0x5c, 0x82, 0xd3, - 0xe4, 0x93, 0x02, 0x2b, 0x22, 0x15, 0x2f, 0x76, 0x31, 0x2f, 0x76, 0x69, 0x72, 0x74, 0x69, 0x6f, - 0x53, 0x63, 0x73, 0x69, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x3a, 0x12, 0x76, 0x69, 0x72, - 0x74, 0x69, 0x6f, 0x5f, 0x73, 0x63, 0x73, 0x69, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0xda, - 0x41, 0x28, 0x76, 0x69, 0x72, 0x74, 0x69, 0x6f, 0x5f, 0x73, 0x63, 0x73, 0x69, 0x5f, 0x74, 0x61, - 0x72, 0x67, 0x65, 0x74, 0x2c, 0x76, 0x69, 0x72, 0x74, 0x69, 0x6f, 0x5f, 0x73, 0x63, 0x73, 0x69, - 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x12, 0x92, 0x01, 0x0a, 0x16, 0x44, + 0x69, 0x6f, 0x53, 0x63, 0x73, 0x69, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x22, 0x5c, 0xda, 0x41, + 0x28, 0x76, 0x69, 0x72, 0x74, 0x69, 0x6f, 0x5f, 0x73, 0x63, 0x73, 0x69, 0x5f, 0x74, 0x61, 0x72, + 0x67, 0x65, 0x74, 0x2c, 0x76, 0x69, 0x72, 0x74, 0x69, 0x6f, 0x5f, 0x73, 0x63, 0x73, 0x69, 0x5f, + 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2b, 0x3a, + 0x12, 0x76, 0x69, 0x72, 0x74, 0x69, 0x6f, 0x5f, 0x73, 0x63, 0x73, 0x69, 0x5f, 0x74, 0x61, 0x72, + 0x67, 0x65, 0x74, 0x22, 0x15, 0x2f, 0x76, 0x31, 0x2f, 0x76, 0x69, 0x72, 0x74, 0x69, 0x6f, 0x53, + 0x63, 0x73, 0x69, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x12, 0x92, 0x01, 0x0a, 0x16, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x56, 0x69, 0x72, 0x74, 0x69, 0x6f, 0x53, 0x63, 0x73, 0x69, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x31, 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, 0x56, 0x69, 0x72, 0x74, 0x69, 0x6f, 0x53, 0x63, 0x73, 0x69, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 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, 0x2d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x20, 0x2a, 0x1e, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, - 0x61, 0x6d, 0x65, 0x3d, 0x76, 0x69, 0x72, 0x74, 0x69, 0x6f, 0x53, 0x63, 0x73, 0x69, 0x54, 0x61, - 0x72, 0x67, 0x65, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, + 0x22, 0x2d, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x20, 0x2a, + 0x1e, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x76, 0x69, 0x72, 0x74, 0x69, + 0x6f, 0x53, 0x63, 0x73, 0x69, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xe1, 0x01, 0x0a, 0x16, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x56, 0x69, 0x72, 0x74, 0x69, 0x6f, 0x53, 0x63, 0x73, 0x69, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x31, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, @@ -1938,14 +1938,14 @@ var file_frontend_virtio_scsi_proto_rawDesc = []byte{ 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x69, 0x72, 0x74, 0x69, 0x6f, 0x53, 0x63, 0x73, 0x69, 0x54, 0x61, 0x72, - 0x67, 0x65, 0x74, 0x22, 0x6e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x47, 0x32, 0x31, 0x2f, 0x76, 0x31, - 0x2f, 0x7b, 0x76, 0x69, 0x72, 0x74, 0x69, 0x6f, 0x5f, 0x73, 0x63, 0x73, 0x69, 0x5f, 0x74, 0x61, - 0x72, 0x67, 0x65, 0x74, 0x2e, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x76, 0x69, 0x72, 0x74, 0x69, 0x6f, - 0x53, 0x63, 0x73, 0x69, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x12, - 0x76, 0x69, 0x72, 0x74, 0x69, 0x6f, 0x5f, 0x73, 0x63, 0x73, 0x69, 0x5f, 0x74, 0x61, 0x72, 0x67, - 0x65, 0x74, 0xda, 0x41, 0x1e, 0x76, 0x69, 0x72, 0x74, 0x69, 0x6f, 0x5f, 0x73, 0x63, 0x73, 0x69, - 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x2c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, - 0x61, 0x73, 0x6b, 0x12, 0xa6, 0x01, 0x0a, 0x15, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x69, 0x72, 0x74, + 0x67, 0x65, 0x74, 0x22, 0x6e, 0xda, 0x41, 0x1e, 0x76, 0x69, 0x72, 0x74, 0x69, 0x6f, 0x5f, 0x73, + 0x63, 0x73, 0x69, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x2c, 0x75, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x47, 0x3a, 0x12, 0x76, 0x69, + 0x72, 0x74, 0x69, 0x6f, 0x5f, 0x73, 0x63, 0x73, 0x69, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, + 0x32, 0x31, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x76, 0x69, 0x72, 0x74, 0x69, 0x6f, 0x5f, 0x73, 0x63, + 0x73, 0x69, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x2e, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x76, + 0x69, 0x72, 0x74, 0x69, 0x6f, 0x53, 0x63, 0x73, 0x69, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, + 0x2f, 0x2a, 0x7d, 0x12, 0xad, 0x01, 0x0a, 0x15, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x69, 0x72, 0x74, 0x69, 0x6f, 0x53, 0x63, 0x73, 0x69, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x12, 0x30, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x69, 0x72, 0x74, 0x69, 0x6f, 0x53, 0x63, 0x73, @@ -1953,176 +1953,177 @@ var file_frontend_virtio_scsi_proto_rawDesc = []byte{ 0x31, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x69, 0x72, 0x74, 0x69, 0x6f, 0x53, 0x63, 0x73, 0x69, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 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, 0x9a, 0x01, 0x0a, - 0x13, 0x47, 0x65, 0x74, 0x56, 0x69, 0x72, 0x74, 0x69, 0x6f, 0x53, 0x63, 0x73, 0x69, 0x54, 0x61, - 0x72, 0x67, 0x65, 0x74, 0x12, 0x2e, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, - 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x56, 0x69, 0x72, - 0x74, 0x69, 0x6f, 0x53, 0x63, 0x73, 0x69, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, - 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x69, 0x72, 0x74, 0x69, 0x6f, - 0x53, 0x63, 0x73, 0x69, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x22, 0x2d, 0x82, 0xd3, 0xe4, 0x93, - 0x02, 0x20, 0x12, 0x1e, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x76, 0x69, - 0x72, 0x74, 0x69, 0x6f, 0x53, 0x63, 0x73, 0x69, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x2f, - 0x2a, 0x7d, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0xb1, 0x01, 0x0a, 0x15, 0x53, 0x74, - 0x61, 0x74, 0x73, 0x56, 0x69, 0x72, 0x74, 0x69, 0x6f, 0x53, 0x63, 0x73, 0x69, 0x54, 0x61, 0x72, - 0x67, 0x65, 0x74, 0x12, 0x30, 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, 0x56, 0x69, - 0x72, 0x74, 0x69, 0x6f, 0x53, 0x63, 0x73, 0x69, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 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, - 0x56, 0x69, 0x72, 0x74, 0x69, 0x6f, 0x53, 0x63, 0x73, 0x69, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x33, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x26, - 0x12, 0x24, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x76, 0x69, 0x72, 0x74, + 0x73, 0x65, 0x22, 0x2f, 0xda, 0x41, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x20, 0x12, 0x1e, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, + 0x3d, 0x76, 0x69, 0x72, 0x74, 0x69, 0x6f, 0x53, 0x63, 0x73, 0x69, 0x54, 0x61, 0x72, 0x67, 0x65, + 0x74, 0x73, 0x7d, 0x12, 0x9a, 0x01, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x56, 0x69, 0x72, 0x74, 0x69, + 0x6f, 0x53, 0x63, 0x73, 0x69, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x2e, 0x2e, 0x6f, 0x70, + 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, + 0x2e, 0x47, 0x65, 0x74, 0x56, 0x69, 0x72, 0x74, 0x69, 0x6f, 0x53, 0x63, 0x73, 0x69, 0x54, 0x61, + 0x72, 0x67, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x6f, 0x70, + 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, + 0x2e, 0x56, 0x69, 0x72, 0x74, 0x69, 0x6f, 0x53, 0x63, 0x73, 0x69, 0x54, 0x61, 0x72, 0x67, 0x65, + 0x74, 0x22, 0x2d, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x20, + 0x12, 0x1e, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x76, 0x69, 0x72, 0x74, 0x69, 0x6f, 0x53, 0x63, 0x73, 0x69, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x2f, 0x2a, 0x7d, - 0x3a, 0x73, 0x74, 0x61, 0x74, 0x73, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0xeb, 0x01, - 0x0a, 0x1a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x56, 0x69, 0x72, 0x74, 0x69, 0x6f, 0x53, 0x63, - 0x73, 0x69, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x12, 0x35, 0x2e, 0x6f, + 0x12, 0xb1, 0x01, 0x0a, 0x15, 0x53, 0x74, 0x61, 0x74, 0x73, 0x56, 0x69, 0x72, 0x74, 0x69, 0x6f, + 0x53, 0x63, 0x73, 0x69, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x30, 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, 0x56, 0x69, 0x72, 0x74, 0x69, 0x6f, 0x53, 0x63, 0x73, 0x69, 0x54, + 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 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, 0x56, 0x69, 0x72, 0x74, 0x69, 0x6f, 0x53, 0x63, - 0x73, 0x69, 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, 0x56, 0x69, 0x72, 0x74, 0x69, 0x6f, 0x53, - 0x63, 0x73, 0x69, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x22, 0x6c, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x33, 0x22, 0x19, 0x2f, 0x76, 0x31, 0x2f, 0x76, 0x69, 0x72, 0x74, 0x69, - 0x6f, 0x53, 0x63, 0x73, 0x69, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x73, - 0x3a, 0x16, 0x76, 0x69, 0x72, 0x74, 0x69, 0x6f, 0x5f, 0x73, 0x63, 0x73, 0x69, 0x5f, 0x63, 0x6f, - 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0xda, 0x41, 0x30, 0x76, 0x69, 0x72, 0x74, 0x69, - 0x6f, 0x5f, 0x73, 0x63, 0x73, 0x69, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, - 0x72, 0x2c, 0x76, 0x69, 0x72, 0x74, 0x69, 0x6f, 0x5f, 0x73, 0x63, 0x73, 0x69, 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, 0x56, 0x69, 0x72, 0x74, 0x69, 0x6f, 0x53, 0x63, 0x73, 0x69, - 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x12, 0x35, 0x2e, 0x6f, 0x70, 0x69, + 0x31, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x73, 0x56, 0x69, 0x72, 0x74, 0x69, 0x6f, 0x53, 0x63, 0x73, + 0x69, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x33, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x26, 0x12, 0x24, + 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x76, 0x69, 0x72, 0x74, 0x69, 0x6f, + 0x53, 0x63, 0x73, 0x69, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x73, + 0x74, 0x61, 0x74, 0x73, 0x12, 0xeb, 0x01, 0x0a, 0x1a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x56, + 0x69, 0x72, 0x74, 0x69, 0x6f, 0x53, 0x63, 0x73, 0x69, 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, 0x56, + 0x69, 0x72, 0x74, 0x69, 0x6f, 0x53, 0x63, 0x73, 0x69, 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, - 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x56, 0x69, 0x72, 0x74, 0x69, 0x6f, 0x53, 0x63, 0x73, 0x69, - 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, 0x76, 0x69, 0x72, - 0x74, 0x69, 0x6f, 0x53, 0x63, 0x73, 0x69, 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, 0x56, 0x69, 0x72, 0x74, 0x69, 0x6f, 0x53, 0x63, 0x73, - 0x69, 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, 0x56, 0x69, 0x72, 0x74, 0x69, 0x6f, 0x53, 0x63, 0x73, - 0x69, 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, 0x56, 0x69, 0x72, 0x74, 0x69, 0x6f, 0x53, 0x63, - 0x73, 0x69, 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, 0x76, 0x69, 0x72, 0x74, 0x69, - 0x6f, 0x5f, 0x73, 0x63, 0x73, 0x69, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, - 0x72, 0x2e, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x76, 0x69, 0x72, 0x74, 0x69, 0x6f, 0x53, 0x63, 0x73, - 0x69, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, + 0x56, 0x69, 0x72, 0x74, 0x69, 0x6f, 0x53, 0x63, 0x73, 0x69, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, + 0x6c, 0x6c, 0x65, 0x72, 0x22, 0x6c, 0xda, 0x41, 0x30, 0x76, 0x69, 0x72, 0x74, 0x69, 0x6f, 0x5f, + 0x73, 0x63, 0x73, 0x69, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x2c, + 0x76, 0x69, 0x72, 0x74, 0x69, 0x6f, 0x5f, 0x73, 0x63, 0x73, 0x69, 0x5f, 0x63, 0x6f, 0x6e, 0x74, + 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x33, 0x3a, 0x16, 0x76, 0x69, 0x72, 0x74, 0x69, 0x6f, 0x5f, 0x73, 0x63, 0x73, 0x69, 0x5f, 0x63, 0x6f, 0x6e, - 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0xda, 0x41, 0x22, 0x76, 0x69, 0x72, 0x74, 0x69, 0x6f, - 0x5f, 0x73, 0x63, 0x73, 0x69, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, - 0x2c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x12, 0xbd, 0x01, 0x0a, - 0x19, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x69, 0x72, 0x74, 0x69, 0x6f, 0x53, 0x63, 0x73, 0x69, 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, 0x56, 0x69, 0x72, 0x74, 0x69, 0x6f, 0x53, 0x63, 0x73, 0x69, 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, 0x56, 0x69, 0x72, 0x74, 0x69, 0x6f, - 0x53, 0x63, 0x73, 0x69, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x33, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x24, 0x12, - 0x22, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x76, 0x69, 0x72, + 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x22, 0x19, 0x2f, 0x76, 0x31, 0x2f, 0x76, 0x69, 0x72, + 0x74, 0x69, 0x6f, 0x53, 0x63, 0x73, 0x69, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, + 0x72, 0x73, 0x12, 0x9e, 0x01, 0x0a, 0x1a, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x56, 0x69, 0x72, 0x74, 0x69, 0x6f, 0x53, 0x63, 0x73, 0x69, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, - 0x72, 0x73, 0x7d, 0xda, 0x41, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0xaa, 0x01, 0x0a, - 0x17, 0x47, 0x65, 0x74, 0x56, 0x69, 0x72, 0x74, 0x69, 0x6f, 0x53, 0x63, 0x73, 0x69, 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, + 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, 0x56, 0x69, 0x72, + 0x74, 0x69, 0x6f, 0x53, 0x63, 0x73, 0x69, 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, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x24, 0x2a, + 0x22, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x76, 0x69, 0x72, 0x74, 0x69, + 0x6f, 0x53, 0x63, 0x73, 0x69, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x73, + 0x2f, 0x2a, 0x7d, 0x12, 0xfd, 0x01, 0x0a, 0x1a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x56, 0x69, + 0x72, 0x74, 0x69, 0x6f, 0x53, 0x63, 0x73, 0x69, 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, 0x56, 0x69, + 0x72, 0x74, 0x69, 0x6f, 0x53, 0x63, 0x73, 0x69, 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, 0x56, + 0x69, 0x72, 0x74, 0x69, 0x6f, 0x53, 0x63, 0x73, 0x69, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, + 0x6c, 0x65, 0x72, 0x22, 0x7e, 0xda, 0x41, 0x22, 0x76, 0x69, 0x72, 0x74, 0x69, 0x6f, 0x5f, 0x73, + 0x63, 0x73, 0x69, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x2c, 0x75, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x53, + 0x3a, 0x16, 0x76, 0x69, 0x72, 0x74, 0x69, 0x6f, 0x5f, 0x73, 0x63, 0x73, 0x69, 0x5f, 0x63, 0x6f, + 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x32, 0x39, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x76, + 0x69, 0x72, 0x74, 0x69, 0x6f, 0x5f, 0x73, 0x63, 0x73, 0x69, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, + 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x2e, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x76, 0x69, 0x72, 0x74, 0x69, + 0x6f, 0x53, 0x63, 0x73, 0x69, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x73, + 0x2f, 0x2a, 0x7d, 0x12, 0xbd, 0x01, 0x0a, 0x19, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x69, 0x72, 0x74, + 0x69, 0x6f, 0x53, 0x63, 0x73, 0x69, 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, 0x56, 0x69, 0x72, 0x74, 0x69, + 0x6f, 0x53, 0x63, 0x73, 0x69, 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, 0x56, 0x69, 0x72, 0x74, 0x69, 0x6f, 0x53, 0x63, 0x73, 0x69, 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, 0x56, 0x69, 0x72, 0x74, 0x69, 0x6f, 0x53, 0x63, 0x73, 0x69, 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, 0x76, 0x69, 0x72, 0x74, 0x69, 0x6f, - 0x53, 0x63, 0x73, 0x69, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x73, 0x2f, - 0x2a, 0x7d, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0xc1, 0x01, 0x0a, 0x19, 0x53, 0x74, - 0x61, 0x74, 0x73, 0x56, 0x69, 0x72, 0x74, 0x69, 0x6f, 0x53, 0x63, 0x73, 0x69, 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, 0x56, 0x69, 0x72, 0x74, 0x69, 0x6f, 0x53, 0x63, 0x73, 0x69, 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, 0x56, 0x69, 0x72, 0x74, 0x69, 0x6f, 0x53, 0x63, - 0x73, 0x69, 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, + 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x33, + 0xda, 0x41, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x24, 0x12, + 0x22, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x76, 0x69, 0x72, + 0x74, 0x69, 0x6f, 0x53, 0x63, 0x73, 0x69, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, + 0x72, 0x73, 0x7d, 0x12, 0xaa, 0x01, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x56, 0x69, 0x72, 0x74, 0x69, + 0x6f, 0x53, 0x63, 0x73, 0x69, 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, 0x56, 0x69, 0x72, 0x74, 0x69, 0x6f, 0x53, 0x63, + 0x73, 0x69, 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, 0x56, 0x69, 0x72, 0x74, 0x69, 0x6f, 0x53, + 0x63, 0x73, 0x69, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x22, 0x31, 0xda, + 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x24, 0x12, 0x22, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x76, 0x69, 0x72, 0x74, 0x69, 0x6f, 0x53, 0x63, 0x73, 0x69, 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, 0xba, 0x01, - 0x0a, 0x13, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x56, 0x69, 0x72, 0x74, 0x69, 0x6f, 0x53, 0x63, + 0x12, 0xc1, 0x01, 0x0a, 0x19, 0x53, 0x74, 0x61, 0x74, 0x73, 0x56, 0x69, 0x72, 0x74, 0x69, 0x6f, + 0x53, 0x63, 0x73, 0x69, 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, 0x56, 0x69, 0x72, 0x74, 0x69, 0x6f, 0x53, + 0x63, 0x73, 0x69, 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, 0x56, + 0x69, 0x72, 0x74, 0x69, 0x6f, 0x53, 0x63, 0x73, 0x69, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, + 0x6c, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x37, 0xda, 0x41, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2a, 0x12, 0x28, 0x2f, 0x76, 0x31, 0x2f, + 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x76, 0x69, 0x72, 0x74, 0x69, 0x6f, 0x53, 0x63, 0x73, 0x69, + 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x73, + 0x74, 0x61, 0x74, 0x73, 0x12, 0xba, 0x01, 0x0a, 0x13, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x56, + 0x69, 0x72, 0x74, 0x69, 0x6f, 0x53, 0x63, 0x73, 0x69, 0x4c, 0x75, 0x6e, 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, 0x56, 0x69, 0x72, 0x74, 0x69, 0x6f, 0x53, 0x63, + 0x73, 0x69, 0x4c, 0x75, 0x6e, 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, 0x56, 0x69, 0x72, 0x74, 0x69, 0x6f, 0x53, 0x63, 0x73, 0x69, 0x4c, 0x75, 0x6e, 0x22, + 0x50, 0xda, 0x41, 0x22, 0x76, 0x69, 0x72, 0x74, 0x69, 0x6f, 0x5f, 0x73, 0x63, 0x73, 0x69, 0x5f, + 0x6c, 0x75, 0x6e, 0x2c, 0x76, 0x69, 0x72, 0x74, 0x69, 0x6f, 0x5f, 0x73, 0x63, 0x73, 0x69, 0x5f, + 0x6c, 0x75, 0x6e, 0x5f, 0x69, 0x64, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x25, 0x3a, 0x0f, 0x76, 0x69, + 0x72, 0x74, 0x69, 0x6f, 0x5f, 0x73, 0x63, 0x73, 0x69, 0x5f, 0x6c, 0x75, 0x6e, 0x22, 0x12, 0x2f, + 0x76, 0x31, 0x2f, 0x76, 0x69, 0x72, 0x74, 0x69, 0x6f, 0x53, 0x63, 0x73, 0x69, 0x4c, 0x75, 0x6e, + 0x73, 0x12, 0x89, 0x01, 0x0a, 0x13, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x56, 0x69, 0x72, 0x74, + 0x69, 0x6f, 0x53, 0x63, 0x73, 0x69, 0x4c, 0x75, 0x6e, 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, 0x56, 0x69, 0x72, 0x74, 0x69, 0x6f, 0x53, 0x63, 0x73, 0x69, 0x4c, + 0x75, 0x6e, 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, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1d, + 0x2a, 0x1b, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x76, 0x69, 0x72, 0x74, + 0x69, 0x6f, 0x53, 0x63, 0x73, 0x69, 0x4c, 0x75, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xcc, 0x01, + 0x0a, 0x13, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x56, 0x69, 0x72, 0x74, 0x69, 0x6f, 0x53, 0x63, 0x73, 0x69, 0x4c, 0x75, 0x6e, 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, + 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x56, 0x69, 0x72, 0x74, 0x69, 0x6f, 0x53, 0x63, 0x73, 0x69, 0x4c, 0x75, 0x6e, 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, 0x56, 0x69, 0x72, 0x74, 0x69, - 0x6f, 0x53, 0x63, 0x73, 0x69, 0x4c, 0x75, 0x6e, 0x22, 0x50, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x25, - 0x22, 0x12, 0x2f, 0x76, 0x31, 0x2f, 0x76, 0x69, 0x72, 0x74, 0x69, 0x6f, 0x53, 0x63, 0x73, 0x69, - 0x4c, 0x75, 0x6e, 0x73, 0x3a, 0x0f, 0x76, 0x69, 0x72, 0x74, 0x69, 0x6f, 0x5f, 0x73, 0x63, 0x73, - 0x69, 0x5f, 0x6c, 0x75, 0x6e, 0xda, 0x41, 0x22, 0x76, 0x69, 0x72, 0x74, 0x69, 0x6f, 0x5f, 0x73, - 0x63, 0x73, 0x69, 0x5f, 0x6c, 0x75, 0x6e, 0x2c, 0x76, 0x69, 0x72, 0x74, 0x69, 0x6f, 0x5f, 0x73, - 0x63, 0x73, 0x69, 0x5f, 0x6c, 0x75, 0x6e, 0x5f, 0x69, 0x64, 0x12, 0x89, 0x01, 0x0a, 0x13, 0x44, - 0x65, 0x6c, 0x65, 0x74, 0x65, 0x56, 0x69, 0x72, 0x74, 0x69, 0x6f, 0x53, 0x63, 0x73, 0x69, 0x4c, - 0x75, 0x6e, 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, 0x56, 0x69, + 0x6f, 0x53, 0x63, 0x73, 0x69, 0x4c, 0x75, 0x6e, 0x22, 0x62, 0xda, 0x41, 0x1b, 0x76, 0x69, 0x72, + 0x74, 0x69, 0x6f, 0x5f, 0x73, 0x63, 0x73, 0x69, 0x5f, 0x6c, 0x75, 0x6e, 0x2c, 0x75, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3e, 0x3a, 0x0f, + 0x76, 0x69, 0x72, 0x74, 0x69, 0x6f, 0x5f, 0x73, 0x63, 0x73, 0x69, 0x5f, 0x6c, 0x75, 0x6e, 0x32, + 0x2b, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x76, 0x69, 0x72, 0x74, 0x69, 0x6f, 0x5f, 0x73, 0x63, 0x73, + 0x69, 0x5f, 0x6c, 0x75, 0x6e, 0x2e, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x76, 0x69, 0x72, 0x74, 0x69, + 0x6f, 0x53, 0x63, 0x73, 0x69, 0x4c, 0x75, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xa1, 0x01, 0x0a, + 0x12, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x69, 0x72, 0x74, 0x69, 0x6f, 0x53, 0x63, 0x73, 0x69, 0x4c, + 0x75, 0x6e, 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, 0x56, 0x69, 0x72, + 0x74, 0x69, 0x6f, 0x53, 0x63, 0x73, 0x69, 0x4c, 0x75, 0x6e, 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, 0x56, 0x69, 0x72, 0x74, + 0x69, 0x6f, 0x53, 0x63, 0x73, 0x69, 0x4c, 0x75, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x2c, 0xda, 0x41, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x1d, 0x12, 0x1b, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, + 0x3d, 0x76, 0x69, 0x72, 0x74, 0x69, 0x6f, 0x53, 0x63, 0x73, 0x69, 0x4c, 0x75, 0x6e, 0x73, 0x7d, + 0x12, 0x8e, 0x01, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x56, 0x69, 0x72, 0x74, 0x69, 0x6f, 0x53, 0x63, + 0x73, 0x69, 0x4c, 0x75, 0x6e, 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, 0x56, 0x69, 0x72, 0x74, 0x69, 0x6f, 0x53, 0x63, 0x73, 0x69, 0x4c, 0x75, 0x6e, 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, 0x76, 0x69, - 0x72, 0x74, 0x69, 0x6f, 0x53, 0x63, 0x73, 0x69, 0x4c, 0x75, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0xda, - 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0xcc, 0x01, 0x0a, 0x13, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x56, 0x69, 0x72, 0x74, 0x69, 0x6f, 0x53, 0x63, 0x73, 0x69, 0x4c, 0x75, 0x6e, 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, 0x56, 0x69, 0x72, 0x74, 0x69, 0x6f, - 0x53, 0x63, 0x73, 0x69, 0x4c, 0x75, 0x6e, 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, 0x56, 0x69, 0x72, 0x74, 0x69, 0x6f, 0x53, 0x63, 0x73, 0x69, 0x4c, 0x75, - 0x6e, 0x22, 0x62, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3e, 0x32, 0x2b, 0x2f, 0x76, 0x31, 0x2f, 0x7b, - 0x76, 0x69, 0x72, 0x74, 0x69, 0x6f, 0x5f, 0x73, 0x63, 0x73, 0x69, 0x5f, 0x6c, 0x75, 0x6e, 0x2e, - 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x76, 0x69, 0x72, 0x74, 0x69, 0x6f, 0x53, 0x63, 0x73, 0x69, 0x4c, - 0x75, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x0f, 0x76, 0x69, 0x72, 0x74, 0x69, 0x6f, 0x5f, 0x73, - 0x63, 0x73, 0x69, 0x5f, 0x6c, 0x75, 0x6e, 0xda, 0x41, 0x1b, 0x76, 0x69, 0x72, 0x74, 0x69, 0x6f, - 0x5f, 0x73, 0x63, 0x73, 0x69, 0x5f, 0x6c, 0x75, 0x6e, 0x2c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x12, 0x9d, 0x01, 0x0a, 0x12, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x69, - 0x72, 0x74, 0x69, 0x6f, 0x53, 0x63, 0x73, 0x69, 0x4c, 0x75, 0x6e, 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, 0x56, 0x69, 0x72, 0x74, 0x69, 0x6f, 0x53, 0x63, 0x73, 0x69, - 0x4c, 0x75, 0x6e, 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, 0x56, 0x69, 0x72, 0x74, 0x69, 0x6f, 0x53, 0x63, 0x73, 0x69, 0x4c, - 0x75, 0x6e, 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, 0x8e, 0x01, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x56, 0x69, 0x72, - 0x74, 0x69, 0x6f, 0x53, 0x63, 0x73, 0x69, 0x4c, 0x75, 0x6e, 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, 0x56, 0x69, 0x72, 0x74, 0x69, 0x6f, 0x53, 0x63, 0x73, 0x69, 0x4c, 0x75, 0x6e, - 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, 0x56, 0x69, 0x72, - 0x74, 0x69, 0x6f, 0x53, 0x63, 0x73, 0x69, 0x4c, 0x75, 0x6e, 0x22, 0x2a, 0x82, 0xd3, 0xe4, 0x93, - 0x02, 0x1d, 0x12, 0x1b, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x76, 0x69, - 0x72, 0x74, 0x69, 0x6f, 0x53, 0x63, 0x73, 0x69, 0x4c, 0x75, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0xda, - 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0xa5, 0x01, 0x0a, 0x12, 0x53, 0x74, 0x61, 0x74, 0x73, - 0x56, 0x69, 0x72, 0x74, 0x69, 0x6f, 0x53, 0x63, 0x73, 0x69, 0x4c, 0x75, 0x6e, 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, 0x56, 0x69, 0x72, 0x74, 0x69, 0x6f, 0x53, 0x63, - 0x73, 0x69, 0x4c, 0x75, 0x6e, 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, 0x56, 0x69, 0x72, 0x74, 0x69, 0x6f, 0x53, 0x63, 0x73, - 0x69, 0x4c, 0x75, 0x6e, 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, + 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, + 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x69, 0x72, 0x74, 0x69, 0x6f, 0x53, 0x63, + 0x73, 0x69, 0x4c, 0x75, 0x6e, 0x22, 0x2a, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x1d, 0x12, 0x1b, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x76, 0x69, 0x72, 0x74, 0x69, 0x6f, 0x53, 0x63, 0x73, 0x69, 0x4c, 0x75, 0x6e, 0x73, 0x2f, 0x2a, - 0x7d, 0x3a, 0x73, 0x74, 0x61, 0x74, 0x73, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x66, - 0x0a, 0x12, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, - 0x65, 0x2e, 0x76, 0x31, 0x42, 0x17, 0x46, 0x72, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x64, 0x56, 0x69, - 0x72, 0x74, 0x69, 0x6f, 0x53, 0x63, 0x73, 0x69, 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, + 0x7d, 0x12, 0xa5, 0x01, 0x0a, 0x12, 0x53, 0x74, 0x61, 0x74, 0x73, 0x56, 0x69, 0x72, 0x74, 0x69, + 0x6f, 0x53, 0x63, 0x73, 0x69, 0x4c, 0x75, 0x6e, 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, 0x56, 0x69, 0x72, 0x74, 0x69, 0x6f, 0x53, 0x63, 0x73, 0x69, 0x4c, 0x75, 0x6e, + 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, 0x56, 0x69, 0x72, 0x74, 0x69, 0x6f, 0x53, 0x63, 0x73, 0x69, 0x4c, 0x75, 0x6e, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x30, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x23, 0x12, 0x21, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, + 0x65, 0x3d, 0x76, 0x69, 0x72, 0x74, 0x69, 0x6f, 0x53, 0x63, 0x73, 0x69, 0x4c, 0x75, 0x6e, 0x73, + 0x2f, 0x2a, 0x7d, 0x3a, 0x73, 0x74, 0x61, 0x74, 0x73, 0x42, 0x66, 0x0a, 0x12, 0x6f, 0x70, 0x69, + 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x42, + 0x17, 0x46, 0x72, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x64, 0x56, 0x69, 0x72, 0x74, 0x69, 0x6f, 0x53, + 0x63, 0x73, 0x69, 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 ( diff --git a/storage/v1alpha1/gen/go/frontend_virtio_scsi.pb.gw.go b/storage/v1alpha1/gen/go/frontend_virtio_scsi.pb.gw.go new file mode 100644 index 00000000..e5ab1069 --- /dev/null +++ b/storage/v1alpha1/gen/go/frontend_virtio_scsi.pb.gw.go @@ -0,0 +1,2210 @@ +// Code generated by protoc-gen-grpc-gateway. DO NOT EDIT. +// source: frontend_virtio_scsi.proto + +/* +Package _go is a reverse proxy. + +It translates gRPC into RESTful JSON APIs. +*/ +package _go + +import ( + "context" + "io" + "net/http" + + "github.com/grpc-ecosystem/grpc-gateway/v2/runtime" + "github.com/grpc-ecosystem/grpc-gateway/v2/utilities" + "google.golang.org/grpc" + "google.golang.org/grpc/codes" + "google.golang.org/grpc/grpclog" + "google.golang.org/grpc/metadata" + "google.golang.org/grpc/status" + "google.golang.org/protobuf/proto" +) + +// Suppress "imported and not used" errors +var _ codes.Code +var _ io.Reader +var _ status.Status +var _ = runtime.String +var _ = utilities.NewDoubleArray +var _ = metadata.Join + +var ( + filter_FrontendVirtioScsiService_CreateVirtioScsiTarget_0 = &utilities.DoubleArray{Encoding: map[string]int{"virtio_scsi_target": 0, "virtioScsiTarget": 1}, Base: []int{1, 1, 2, 0, 0}, Check: []int{0, 1, 1, 2, 3}} +) + +func request_FrontendVirtioScsiService_CreateVirtioScsiTarget_0(ctx context.Context, marshaler runtime.Marshaler, client FrontendVirtioScsiServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq CreateVirtioScsiTargetRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq.VirtioScsiTarget); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_FrontendVirtioScsiService_CreateVirtioScsiTarget_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.CreateVirtioScsiTarget(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_FrontendVirtioScsiService_CreateVirtioScsiTarget_0(ctx context.Context, marshaler runtime.Marshaler, server FrontendVirtioScsiServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq CreateVirtioScsiTargetRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq.VirtioScsiTarget); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_FrontendVirtioScsiService_CreateVirtioScsiTarget_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.CreateVirtioScsiTarget(ctx, &protoReq) + return msg, metadata, err + +} + +var ( + filter_FrontendVirtioScsiService_DeleteVirtioScsiTarget_0 = &utilities.DoubleArray{Encoding: map[string]int{"name": 0}, Base: []int{1, 2, 0, 0}, Check: []int{0, 1, 2, 2}} +) + +func request_FrontendVirtioScsiService_DeleteVirtioScsiTarget_0(ctx context.Context, marshaler runtime.Marshaler, client FrontendVirtioScsiServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq DeleteVirtioScsiTargetRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") + } + + protoReq.Name, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_FrontendVirtioScsiService_DeleteVirtioScsiTarget_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.DeleteVirtioScsiTarget(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_FrontendVirtioScsiService_DeleteVirtioScsiTarget_0(ctx context.Context, marshaler runtime.Marshaler, server FrontendVirtioScsiServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq DeleteVirtioScsiTargetRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") + } + + protoReq.Name, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_FrontendVirtioScsiService_DeleteVirtioScsiTarget_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.DeleteVirtioScsiTarget(ctx, &protoReq) + return msg, metadata, err + +} + +var ( + filter_FrontendVirtioScsiService_UpdateVirtioScsiTarget_0 = &utilities.DoubleArray{Encoding: map[string]int{"virtio_scsi_target": 0, "virtioScsiTarget": 1, "name": 2}, Base: []int{1, 3, 4, 5, 2, 0, 0, 0, 0}, Check: []int{0, 1, 1, 1, 2, 5, 2, 3, 4}} +) + +func request_FrontendVirtioScsiService_UpdateVirtioScsiTarget_0(ctx context.Context, marshaler runtime.Marshaler, client FrontendVirtioScsiServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq UpdateVirtioScsiTargetRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq.VirtioScsiTarget); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if protoReq.UpdateMask == nil || len(protoReq.UpdateMask.GetPaths()) == 0 { + if fieldMask, err := runtime.FieldMaskFromRequestBody(newReader(), protoReq.VirtioScsiTarget); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } else { + protoReq.UpdateMask = fieldMask + } + } + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["virtio_scsi_target.name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "virtio_scsi_target.name") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "virtio_scsi_target.name", val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "virtio_scsi_target.name", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_FrontendVirtioScsiService_UpdateVirtioScsiTarget_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.UpdateVirtioScsiTarget(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_FrontendVirtioScsiService_UpdateVirtioScsiTarget_0(ctx context.Context, marshaler runtime.Marshaler, server FrontendVirtioScsiServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq UpdateVirtioScsiTargetRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq.VirtioScsiTarget); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if protoReq.UpdateMask == nil || len(protoReq.UpdateMask.GetPaths()) == 0 { + if fieldMask, err := runtime.FieldMaskFromRequestBody(newReader(), protoReq.VirtioScsiTarget); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } else { + protoReq.UpdateMask = fieldMask + } + } + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["virtio_scsi_target.name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "virtio_scsi_target.name") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "virtio_scsi_target.name", val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "virtio_scsi_target.name", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_FrontendVirtioScsiService_UpdateVirtioScsiTarget_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.UpdateVirtioScsiTarget(ctx, &protoReq) + return msg, metadata, err + +} + +var ( + filter_FrontendVirtioScsiService_ListVirtioScsiTargets_0 = &utilities.DoubleArray{Encoding: map[string]int{"parent": 0}, Base: []int{1, 2, 0, 0}, Check: []int{0, 1, 2, 2}} +) + +func request_FrontendVirtioScsiService_ListVirtioScsiTargets_0(ctx context.Context, marshaler runtime.Marshaler, client FrontendVirtioScsiServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq ListVirtioScsiTargetsRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["parent"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "parent") + } + + protoReq.Parent, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "parent", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_FrontendVirtioScsiService_ListVirtioScsiTargets_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.ListVirtioScsiTargets(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_FrontendVirtioScsiService_ListVirtioScsiTargets_0(ctx context.Context, marshaler runtime.Marshaler, server FrontendVirtioScsiServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq ListVirtioScsiTargetsRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["parent"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "parent") + } + + protoReq.Parent, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "parent", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_FrontendVirtioScsiService_ListVirtioScsiTargets_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.ListVirtioScsiTargets(ctx, &protoReq) + return msg, metadata, err + +} + +func request_FrontendVirtioScsiService_GetVirtioScsiTarget_0(ctx context.Context, marshaler runtime.Marshaler, client FrontendVirtioScsiServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetVirtioScsiTargetRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") + } + + protoReq.Name, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) + } + + msg, err := client.GetVirtioScsiTarget(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_FrontendVirtioScsiService_GetVirtioScsiTarget_0(ctx context.Context, marshaler runtime.Marshaler, server FrontendVirtioScsiServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetVirtioScsiTargetRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") + } + + protoReq.Name, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) + } + + msg, err := server.GetVirtioScsiTarget(ctx, &protoReq) + return msg, metadata, err + +} + +func request_FrontendVirtioScsiService_StatsVirtioScsiTarget_0(ctx context.Context, marshaler runtime.Marshaler, client FrontendVirtioScsiServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq StatsVirtioScsiTargetRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") + } + + protoReq.Name, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) + } + + msg, err := client.StatsVirtioScsiTarget(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_FrontendVirtioScsiService_StatsVirtioScsiTarget_0(ctx context.Context, marshaler runtime.Marshaler, server FrontendVirtioScsiServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq StatsVirtioScsiTargetRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") + } + + protoReq.Name, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) + } + + msg, err := server.StatsVirtioScsiTarget(ctx, &protoReq) + return msg, metadata, err + +} + +var ( + filter_FrontendVirtioScsiService_CreateVirtioScsiController_0 = &utilities.DoubleArray{Encoding: map[string]int{"virtio_scsi_controller": 0, "virtioScsiController": 1}, Base: []int{1, 1, 2, 0, 0}, Check: []int{0, 1, 1, 2, 3}} +) + +func request_FrontendVirtioScsiService_CreateVirtioScsiController_0(ctx context.Context, marshaler runtime.Marshaler, client FrontendVirtioScsiServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq CreateVirtioScsiControllerRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq.VirtioScsiController); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_FrontendVirtioScsiService_CreateVirtioScsiController_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.CreateVirtioScsiController(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_FrontendVirtioScsiService_CreateVirtioScsiController_0(ctx context.Context, marshaler runtime.Marshaler, server FrontendVirtioScsiServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq CreateVirtioScsiControllerRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq.VirtioScsiController); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_FrontendVirtioScsiService_CreateVirtioScsiController_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.CreateVirtioScsiController(ctx, &protoReq) + return msg, metadata, err + +} + +var ( + filter_FrontendVirtioScsiService_DeleteVirtioScsiController_0 = &utilities.DoubleArray{Encoding: map[string]int{"name": 0}, Base: []int{1, 2, 0, 0}, Check: []int{0, 1, 2, 2}} +) + +func request_FrontendVirtioScsiService_DeleteVirtioScsiController_0(ctx context.Context, marshaler runtime.Marshaler, client FrontendVirtioScsiServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq DeleteVirtioScsiControllerRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") + } + + protoReq.Name, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_FrontendVirtioScsiService_DeleteVirtioScsiController_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.DeleteVirtioScsiController(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_FrontendVirtioScsiService_DeleteVirtioScsiController_0(ctx context.Context, marshaler runtime.Marshaler, server FrontendVirtioScsiServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq DeleteVirtioScsiControllerRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") + } + + protoReq.Name, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_FrontendVirtioScsiService_DeleteVirtioScsiController_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.DeleteVirtioScsiController(ctx, &protoReq) + return msg, metadata, err + +} + +var ( + filter_FrontendVirtioScsiService_UpdateVirtioScsiController_0 = &utilities.DoubleArray{Encoding: map[string]int{"virtio_scsi_controller": 0, "virtioScsiController": 1, "name": 2}, Base: []int{1, 3, 4, 5, 2, 0, 0, 0, 0}, Check: []int{0, 1, 1, 1, 2, 5, 2, 3, 4}} +) + +func request_FrontendVirtioScsiService_UpdateVirtioScsiController_0(ctx context.Context, marshaler runtime.Marshaler, client FrontendVirtioScsiServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq UpdateVirtioScsiControllerRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq.VirtioScsiController); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if protoReq.UpdateMask == nil || len(protoReq.UpdateMask.GetPaths()) == 0 { + if fieldMask, err := runtime.FieldMaskFromRequestBody(newReader(), protoReq.VirtioScsiController); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } else { + protoReq.UpdateMask = fieldMask + } + } + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["virtio_scsi_controller.name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "virtio_scsi_controller.name") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "virtio_scsi_controller.name", val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "virtio_scsi_controller.name", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_FrontendVirtioScsiService_UpdateVirtioScsiController_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.UpdateVirtioScsiController(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_FrontendVirtioScsiService_UpdateVirtioScsiController_0(ctx context.Context, marshaler runtime.Marshaler, server FrontendVirtioScsiServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq UpdateVirtioScsiControllerRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq.VirtioScsiController); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if protoReq.UpdateMask == nil || len(protoReq.UpdateMask.GetPaths()) == 0 { + if fieldMask, err := runtime.FieldMaskFromRequestBody(newReader(), protoReq.VirtioScsiController); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } else { + protoReq.UpdateMask = fieldMask + } + } + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["virtio_scsi_controller.name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "virtio_scsi_controller.name") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "virtio_scsi_controller.name", val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "virtio_scsi_controller.name", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_FrontendVirtioScsiService_UpdateVirtioScsiController_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.UpdateVirtioScsiController(ctx, &protoReq) + return msg, metadata, err + +} + +var ( + filter_FrontendVirtioScsiService_ListVirtioScsiControllers_0 = &utilities.DoubleArray{Encoding: map[string]int{"parent": 0}, Base: []int{1, 2, 0, 0}, Check: []int{0, 1, 2, 2}} +) + +func request_FrontendVirtioScsiService_ListVirtioScsiControllers_0(ctx context.Context, marshaler runtime.Marshaler, client FrontendVirtioScsiServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq ListVirtioScsiControllersRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["parent"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "parent") + } + + protoReq.Parent, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "parent", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_FrontendVirtioScsiService_ListVirtioScsiControllers_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.ListVirtioScsiControllers(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_FrontendVirtioScsiService_ListVirtioScsiControllers_0(ctx context.Context, marshaler runtime.Marshaler, server FrontendVirtioScsiServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq ListVirtioScsiControllersRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["parent"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "parent") + } + + protoReq.Parent, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "parent", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_FrontendVirtioScsiService_ListVirtioScsiControllers_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.ListVirtioScsiControllers(ctx, &protoReq) + return msg, metadata, err + +} + +func request_FrontendVirtioScsiService_GetVirtioScsiController_0(ctx context.Context, marshaler runtime.Marshaler, client FrontendVirtioScsiServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetVirtioScsiControllerRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") + } + + protoReq.Name, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) + } + + msg, err := client.GetVirtioScsiController(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_FrontendVirtioScsiService_GetVirtioScsiController_0(ctx context.Context, marshaler runtime.Marshaler, server FrontendVirtioScsiServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetVirtioScsiControllerRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") + } + + protoReq.Name, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) + } + + msg, err := server.GetVirtioScsiController(ctx, &protoReq) + return msg, metadata, err + +} + +func request_FrontendVirtioScsiService_StatsVirtioScsiController_0(ctx context.Context, marshaler runtime.Marshaler, client FrontendVirtioScsiServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq StatsVirtioScsiControllerRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") + } + + protoReq.Name, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) + } + + msg, err := client.StatsVirtioScsiController(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_FrontendVirtioScsiService_StatsVirtioScsiController_0(ctx context.Context, marshaler runtime.Marshaler, server FrontendVirtioScsiServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq StatsVirtioScsiControllerRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") + } + + protoReq.Name, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) + } + + msg, err := server.StatsVirtioScsiController(ctx, &protoReq) + return msg, metadata, err + +} + +var ( + filter_FrontendVirtioScsiService_CreateVirtioScsiLun_0 = &utilities.DoubleArray{Encoding: map[string]int{"virtio_scsi_lun": 0, "virtioScsiLun": 1}, Base: []int{1, 1, 2, 0, 0}, Check: []int{0, 1, 1, 2, 3}} +) + +func request_FrontendVirtioScsiService_CreateVirtioScsiLun_0(ctx context.Context, marshaler runtime.Marshaler, client FrontendVirtioScsiServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq CreateVirtioScsiLunRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq.VirtioScsiLun); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_FrontendVirtioScsiService_CreateVirtioScsiLun_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.CreateVirtioScsiLun(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_FrontendVirtioScsiService_CreateVirtioScsiLun_0(ctx context.Context, marshaler runtime.Marshaler, server FrontendVirtioScsiServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq CreateVirtioScsiLunRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq.VirtioScsiLun); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_FrontendVirtioScsiService_CreateVirtioScsiLun_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.CreateVirtioScsiLun(ctx, &protoReq) + return msg, metadata, err + +} + +var ( + filter_FrontendVirtioScsiService_DeleteVirtioScsiLun_0 = &utilities.DoubleArray{Encoding: map[string]int{"name": 0}, Base: []int{1, 2, 0, 0}, Check: []int{0, 1, 2, 2}} +) + +func request_FrontendVirtioScsiService_DeleteVirtioScsiLun_0(ctx context.Context, marshaler runtime.Marshaler, client FrontendVirtioScsiServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq DeleteVirtioScsiLunRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") + } + + protoReq.Name, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_FrontendVirtioScsiService_DeleteVirtioScsiLun_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.DeleteVirtioScsiLun(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_FrontendVirtioScsiService_DeleteVirtioScsiLun_0(ctx context.Context, marshaler runtime.Marshaler, server FrontendVirtioScsiServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq DeleteVirtioScsiLunRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") + } + + protoReq.Name, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_FrontendVirtioScsiService_DeleteVirtioScsiLun_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.DeleteVirtioScsiLun(ctx, &protoReq) + return msg, metadata, err + +} + +var ( + filter_FrontendVirtioScsiService_UpdateVirtioScsiLun_0 = &utilities.DoubleArray{Encoding: map[string]int{"virtio_scsi_lun": 0, "virtioScsiLun": 1, "name": 2}, Base: []int{1, 3, 4, 5, 2, 0, 0, 0, 0}, Check: []int{0, 1, 1, 1, 2, 5, 2, 3, 4}} +) + +func request_FrontendVirtioScsiService_UpdateVirtioScsiLun_0(ctx context.Context, marshaler runtime.Marshaler, client FrontendVirtioScsiServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq UpdateVirtioScsiLunRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq.VirtioScsiLun); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if protoReq.UpdateMask == nil || len(protoReq.UpdateMask.GetPaths()) == 0 { + if fieldMask, err := runtime.FieldMaskFromRequestBody(newReader(), protoReq.VirtioScsiLun); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } else { + protoReq.UpdateMask = fieldMask + } + } + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["virtio_scsi_lun.name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "virtio_scsi_lun.name") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "virtio_scsi_lun.name", val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "virtio_scsi_lun.name", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_FrontendVirtioScsiService_UpdateVirtioScsiLun_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.UpdateVirtioScsiLun(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_FrontendVirtioScsiService_UpdateVirtioScsiLun_0(ctx context.Context, marshaler runtime.Marshaler, server FrontendVirtioScsiServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq UpdateVirtioScsiLunRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq.VirtioScsiLun); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if protoReq.UpdateMask == nil || len(protoReq.UpdateMask.GetPaths()) == 0 { + if fieldMask, err := runtime.FieldMaskFromRequestBody(newReader(), protoReq.VirtioScsiLun); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } else { + protoReq.UpdateMask = fieldMask + } + } + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["virtio_scsi_lun.name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "virtio_scsi_lun.name") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "virtio_scsi_lun.name", val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "virtio_scsi_lun.name", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_FrontendVirtioScsiService_UpdateVirtioScsiLun_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.UpdateVirtioScsiLun(ctx, &protoReq) + return msg, metadata, err + +} + +var ( + filter_FrontendVirtioScsiService_ListVirtioScsiLuns_0 = &utilities.DoubleArray{Encoding: map[string]int{"parent": 0}, Base: []int{1, 2, 0, 0}, Check: []int{0, 1, 2, 2}} +) + +func request_FrontendVirtioScsiService_ListVirtioScsiLuns_0(ctx context.Context, marshaler runtime.Marshaler, client FrontendVirtioScsiServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq ListVirtioScsiLunsRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["parent"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "parent") + } + + protoReq.Parent, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "parent", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_FrontendVirtioScsiService_ListVirtioScsiLuns_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.ListVirtioScsiLuns(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_FrontendVirtioScsiService_ListVirtioScsiLuns_0(ctx context.Context, marshaler runtime.Marshaler, server FrontendVirtioScsiServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq ListVirtioScsiLunsRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["parent"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "parent") + } + + protoReq.Parent, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "parent", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_FrontendVirtioScsiService_ListVirtioScsiLuns_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.ListVirtioScsiLuns(ctx, &protoReq) + return msg, metadata, err + +} + +func request_FrontendVirtioScsiService_GetVirtioScsiLun_0(ctx context.Context, marshaler runtime.Marshaler, client FrontendVirtioScsiServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetVirtioScsiLunRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") + } + + protoReq.Name, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) + } + + msg, err := client.GetVirtioScsiLun(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_FrontendVirtioScsiService_GetVirtioScsiLun_0(ctx context.Context, marshaler runtime.Marshaler, server FrontendVirtioScsiServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetVirtioScsiLunRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") + } + + protoReq.Name, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) + } + + msg, err := server.GetVirtioScsiLun(ctx, &protoReq) + return msg, metadata, err + +} + +var ( + filter_FrontendVirtioScsiService_StatsVirtioScsiLun_0 = &utilities.DoubleArray{Encoding: map[string]int{"name": 0}, Base: []int{1, 2, 0, 0}, Check: []int{0, 1, 2, 2}} +) + +func request_FrontendVirtioScsiService_StatsVirtioScsiLun_0(ctx context.Context, marshaler runtime.Marshaler, client FrontendVirtioScsiServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq StatsVirtioScsiLunRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") + } + + protoReq.Name, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_FrontendVirtioScsiService_StatsVirtioScsiLun_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.StatsVirtioScsiLun(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_FrontendVirtioScsiService_StatsVirtioScsiLun_0(ctx context.Context, marshaler runtime.Marshaler, server FrontendVirtioScsiServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq StatsVirtioScsiLunRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") + } + + protoReq.Name, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_FrontendVirtioScsiService_StatsVirtioScsiLun_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.StatsVirtioScsiLun(ctx, &protoReq) + return msg, metadata, err + +} + +// RegisterFrontendVirtioScsiServiceHandlerServer registers the http handlers for service FrontendVirtioScsiService to "mux". +// UnaryRPC :call FrontendVirtioScsiServiceServer directly. +// StreamingRPC :currently unsupported pending https://github.com/grpc/grpc-go/issues/906. +// Note that using this registration option will cause many gRPC library features to stop working. Consider using RegisterFrontendVirtioScsiServiceHandlerFromEndpoint instead. +func RegisterFrontendVirtioScsiServiceHandlerServer(ctx context.Context, mux *runtime.ServeMux, server FrontendVirtioScsiServiceServer) error { + + mux.Handle("POST", pattern_FrontendVirtioScsiService_CreateVirtioScsiTarget_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/opi_api.storage.v1.FrontendVirtioScsiService/CreateVirtioScsiTarget", runtime.WithHTTPPathPattern("/v1/virtioScsiTargets")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_FrontendVirtioScsiService_CreateVirtioScsiTarget_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FrontendVirtioScsiService_CreateVirtioScsiTarget_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("DELETE", pattern_FrontendVirtioScsiService_DeleteVirtioScsiTarget_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/opi_api.storage.v1.FrontendVirtioScsiService/DeleteVirtioScsiTarget", runtime.WithHTTPPathPattern("/v1/{name=virtioScsiTargets/*}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_FrontendVirtioScsiService_DeleteVirtioScsiTarget_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FrontendVirtioScsiService_DeleteVirtioScsiTarget_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("PATCH", pattern_FrontendVirtioScsiService_UpdateVirtioScsiTarget_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/opi_api.storage.v1.FrontendVirtioScsiService/UpdateVirtioScsiTarget", runtime.WithHTTPPathPattern("/v1/{virtio_scsi_target.name=virtioScsiTargets/*}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_FrontendVirtioScsiService_UpdateVirtioScsiTarget_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FrontendVirtioScsiService_UpdateVirtioScsiTarget_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_FrontendVirtioScsiService_ListVirtioScsiTargets_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/opi_api.storage.v1.FrontendVirtioScsiService/ListVirtioScsiTargets", runtime.WithHTTPPathPattern("/v1/{parent=virtioScsiTargets}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_FrontendVirtioScsiService_ListVirtioScsiTargets_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FrontendVirtioScsiService_ListVirtioScsiTargets_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_FrontendVirtioScsiService_GetVirtioScsiTarget_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/opi_api.storage.v1.FrontendVirtioScsiService/GetVirtioScsiTarget", runtime.WithHTTPPathPattern("/v1/{name=virtioScsiTargets/*}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_FrontendVirtioScsiService_GetVirtioScsiTarget_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FrontendVirtioScsiService_GetVirtioScsiTarget_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_FrontendVirtioScsiService_StatsVirtioScsiTarget_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/opi_api.storage.v1.FrontendVirtioScsiService/StatsVirtioScsiTarget", runtime.WithHTTPPathPattern("/v1/{name=virtioScsiTargets/*}:stats")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_FrontendVirtioScsiService_StatsVirtioScsiTarget_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FrontendVirtioScsiService_StatsVirtioScsiTarget_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("POST", pattern_FrontendVirtioScsiService_CreateVirtioScsiController_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/opi_api.storage.v1.FrontendVirtioScsiService/CreateVirtioScsiController", runtime.WithHTTPPathPattern("/v1/virtioScsiControllers")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_FrontendVirtioScsiService_CreateVirtioScsiController_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FrontendVirtioScsiService_CreateVirtioScsiController_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("DELETE", pattern_FrontendVirtioScsiService_DeleteVirtioScsiController_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/opi_api.storage.v1.FrontendVirtioScsiService/DeleteVirtioScsiController", runtime.WithHTTPPathPattern("/v1/{name=virtioScsiControllers/*}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_FrontendVirtioScsiService_DeleteVirtioScsiController_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FrontendVirtioScsiService_DeleteVirtioScsiController_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("PATCH", pattern_FrontendVirtioScsiService_UpdateVirtioScsiController_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/opi_api.storage.v1.FrontendVirtioScsiService/UpdateVirtioScsiController", runtime.WithHTTPPathPattern("/v1/{virtio_scsi_controller.name=virtioScsiControllers/*}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_FrontendVirtioScsiService_UpdateVirtioScsiController_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FrontendVirtioScsiService_UpdateVirtioScsiController_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_FrontendVirtioScsiService_ListVirtioScsiControllers_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/opi_api.storage.v1.FrontendVirtioScsiService/ListVirtioScsiControllers", runtime.WithHTTPPathPattern("/v1/{parent=virtioScsiControllers}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_FrontendVirtioScsiService_ListVirtioScsiControllers_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FrontendVirtioScsiService_ListVirtioScsiControllers_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_FrontendVirtioScsiService_GetVirtioScsiController_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/opi_api.storage.v1.FrontendVirtioScsiService/GetVirtioScsiController", runtime.WithHTTPPathPattern("/v1/{name=virtioScsiControllers/*}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_FrontendVirtioScsiService_GetVirtioScsiController_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FrontendVirtioScsiService_GetVirtioScsiController_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_FrontendVirtioScsiService_StatsVirtioScsiController_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/opi_api.storage.v1.FrontendVirtioScsiService/StatsVirtioScsiController", runtime.WithHTTPPathPattern("/v1/{name=virtioScsiControllers/*}:stats")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_FrontendVirtioScsiService_StatsVirtioScsiController_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FrontendVirtioScsiService_StatsVirtioScsiController_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("POST", pattern_FrontendVirtioScsiService_CreateVirtioScsiLun_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/opi_api.storage.v1.FrontendVirtioScsiService/CreateVirtioScsiLun", runtime.WithHTTPPathPattern("/v1/virtioScsiLuns")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_FrontendVirtioScsiService_CreateVirtioScsiLun_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FrontendVirtioScsiService_CreateVirtioScsiLun_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("DELETE", pattern_FrontendVirtioScsiService_DeleteVirtioScsiLun_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/opi_api.storage.v1.FrontendVirtioScsiService/DeleteVirtioScsiLun", runtime.WithHTTPPathPattern("/v1/{name=virtioScsiLuns/*}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_FrontendVirtioScsiService_DeleteVirtioScsiLun_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FrontendVirtioScsiService_DeleteVirtioScsiLun_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("PATCH", pattern_FrontendVirtioScsiService_UpdateVirtioScsiLun_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/opi_api.storage.v1.FrontendVirtioScsiService/UpdateVirtioScsiLun", runtime.WithHTTPPathPattern("/v1/{virtio_scsi_lun.name=virtioScsiLuns/*}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_FrontendVirtioScsiService_UpdateVirtioScsiLun_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FrontendVirtioScsiService_UpdateVirtioScsiLun_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_FrontendVirtioScsiService_ListVirtioScsiLuns_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/opi_api.storage.v1.FrontendVirtioScsiService/ListVirtioScsiLuns", runtime.WithHTTPPathPattern("/v1/{parent=virtioScsiLuns}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_FrontendVirtioScsiService_ListVirtioScsiLuns_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FrontendVirtioScsiService_ListVirtioScsiLuns_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_FrontendVirtioScsiService_GetVirtioScsiLun_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/opi_api.storage.v1.FrontendVirtioScsiService/GetVirtioScsiLun", runtime.WithHTTPPathPattern("/v1/{name=virtioScsiLuns/*}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_FrontendVirtioScsiService_GetVirtioScsiLun_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FrontendVirtioScsiService_GetVirtioScsiLun_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_FrontendVirtioScsiService_StatsVirtioScsiLun_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/opi_api.storage.v1.FrontendVirtioScsiService/StatsVirtioScsiLun", runtime.WithHTTPPathPattern("/v1/{name=virtioScsiLuns/*}:stats")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_FrontendVirtioScsiService_StatsVirtioScsiLun_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FrontendVirtioScsiService_StatsVirtioScsiLun_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + return nil +} + +// RegisterFrontendVirtioScsiServiceHandlerFromEndpoint is same as RegisterFrontendVirtioScsiServiceHandler but +// automatically dials to "endpoint" and closes the connection when "ctx" gets done. +func RegisterFrontendVirtioScsiServiceHandlerFromEndpoint(ctx context.Context, mux *runtime.ServeMux, endpoint string, opts []grpc.DialOption) (err error) { + conn, err := grpc.DialContext(ctx, endpoint, opts...) + if err != nil { + return err + } + defer func() { + if err != nil { + if cerr := conn.Close(); cerr != nil { + grpclog.Infof("Failed to close conn to %s: %v", endpoint, cerr) + } + return + } + go func() { + <-ctx.Done() + if cerr := conn.Close(); cerr != nil { + grpclog.Infof("Failed to close conn to %s: %v", endpoint, cerr) + } + }() + }() + + return RegisterFrontendVirtioScsiServiceHandler(ctx, mux, conn) +} + +// RegisterFrontendVirtioScsiServiceHandler registers the http handlers for service FrontendVirtioScsiService to "mux". +// The handlers forward requests to the grpc endpoint over "conn". +func RegisterFrontendVirtioScsiServiceHandler(ctx context.Context, mux *runtime.ServeMux, conn *grpc.ClientConn) error { + return RegisterFrontendVirtioScsiServiceHandlerClient(ctx, mux, NewFrontendVirtioScsiServiceClient(conn)) +} + +// RegisterFrontendVirtioScsiServiceHandlerClient registers the http handlers for service FrontendVirtioScsiService +// to "mux". The handlers forward requests to the grpc endpoint over the given implementation of "FrontendVirtioScsiServiceClient". +// Note: the gRPC framework executes interceptors within the gRPC handler. If the passed in "FrontendVirtioScsiServiceClient" +// doesn't go through the normal gRPC flow (creating a gRPC client etc.) then it will be up to the passed in +// "FrontendVirtioScsiServiceClient" to call the correct interceptors. +func RegisterFrontendVirtioScsiServiceHandlerClient(ctx context.Context, mux *runtime.ServeMux, client FrontendVirtioScsiServiceClient) error { + + mux.Handle("POST", pattern_FrontendVirtioScsiService_CreateVirtioScsiTarget_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/opi_api.storage.v1.FrontendVirtioScsiService/CreateVirtioScsiTarget", runtime.WithHTTPPathPattern("/v1/virtioScsiTargets")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_FrontendVirtioScsiService_CreateVirtioScsiTarget_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FrontendVirtioScsiService_CreateVirtioScsiTarget_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("DELETE", pattern_FrontendVirtioScsiService_DeleteVirtioScsiTarget_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/opi_api.storage.v1.FrontendVirtioScsiService/DeleteVirtioScsiTarget", runtime.WithHTTPPathPattern("/v1/{name=virtioScsiTargets/*}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_FrontendVirtioScsiService_DeleteVirtioScsiTarget_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FrontendVirtioScsiService_DeleteVirtioScsiTarget_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("PATCH", pattern_FrontendVirtioScsiService_UpdateVirtioScsiTarget_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/opi_api.storage.v1.FrontendVirtioScsiService/UpdateVirtioScsiTarget", runtime.WithHTTPPathPattern("/v1/{virtio_scsi_target.name=virtioScsiTargets/*}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_FrontendVirtioScsiService_UpdateVirtioScsiTarget_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FrontendVirtioScsiService_UpdateVirtioScsiTarget_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_FrontendVirtioScsiService_ListVirtioScsiTargets_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/opi_api.storage.v1.FrontendVirtioScsiService/ListVirtioScsiTargets", runtime.WithHTTPPathPattern("/v1/{parent=virtioScsiTargets}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_FrontendVirtioScsiService_ListVirtioScsiTargets_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FrontendVirtioScsiService_ListVirtioScsiTargets_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_FrontendVirtioScsiService_GetVirtioScsiTarget_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/opi_api.storage.v1.FrontendVirtioScsiService/GetVirtioScsiTarget", runtime.WithHTTPPathPattern("/v1/{name=virtioScsiTargets/*}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_FrontendVirtioScsiService_GetVirtioScsiTarget_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FrontendVirtioScsiService_GetVirtioScsiTarget_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_FrontendVirtioScsiService_StatsVirtioScsiTarget_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/opi_api.storage.v1.FrontendVirtioScsiService/StatsVirtioScsiTarget", runtime.WithHTTPPathPattern("/v1/{name=virtioScsiTargets/*}:stats")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_FrontendVirtioScsiService_StatsVirtioScsiTarget_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FrontendVirtioScsiService_StatsVirtioScsiTarget_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("POST", pattern_FrontendVirtioScsiService_CreateVirtioScsiController_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/opi_api.storage.v1.FrontendVirtioScsiService/CreateVirtioScsiController", runtime.WithHTTPPathPattern("/v1/virtioScsiControllers")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_FrontendVirtioScsiService_CreateVirtioScsiController_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FrontendVirtioScsiService_CreateVirtioScsiController_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("DELETE", pattern_FrontendVirtioScsiService_DeleteVirtioScsiController_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/opi_api.storage.v1.FrontendVirtioScsiService/DeleteVirtioScsiController", runtime.WithHTTPPathPattern("/v1/{name=virtioScsiControllers/*}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_FrontendVirtioScsiService_DeleteVirtioScsiController_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FrontendVirtioScsiService_DeleteVirtioScsiController_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("PATCH", pattern_FrontendVirtioScsiService_UpdateVirtioScsiController_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/opi_api.storage.v1.FrontendVirtioScsiService/UpdateVirtioScsiController", runtime.WithHTTPPathPattern("/v1/{virtio_scsi_controller.name=virtioScsiControllers/*}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_FrontendVirtioScsiService_UpdateVirtioScsiController_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FrontendVirtioScsiService_UpdateVirtioScsiController_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_FrontendVirtioScsiService_ListVirtioScsiControllers_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/opi_api.storage.v1.FrontendVirtioScsiService/ListVirtioScsiControllers", runtime.WithHTTPPathPattern("/v1/{parent=virtioScsiControllers}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_FrontendVirtioScsiService_ListVirtioScsiControllers_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FrontendVirtioScsiService_ListVirtioScsiControllers_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_FrontendVirtioScsiService_GetVirtioScsiController_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/opi_api.storage.v1.FrontendVirtioScsiService/GetVirtioScsiController", runtime.WithHTTPPathPattern("/v1/{name=virtioScsiControllers/*}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_FrontendVirtioScsiService_GetVirtioScsiController_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FrontendVirtioScsiService_GetVirtioScsiController_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_FrontendVirtioScsiService_StatsVirtioScsiController_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/opi_api.storage.v1.FrontendVirtioScsiService/StatsVirtioScsiController", runtime.WithHTTPPathPattern("/v1/{name=virtioScsiControllers/*}:stats")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_FrontendVirtioScsiService_StatsVirtioScsiController_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FrontendVirtioScsiService_StatsVirtioScsiController_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("POST", pattern_FrontendVirtioScsiService_CreateVirtioScsiLun_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/opi_api.storage.v1.FrontendVirtioScsiService/CreateVirtioScsiLun", runtime.WithHTTPPathPattern("/v1/virtioScsiLuns")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_FrontendVirtioScsiService_CreateVirtioScsiLun_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FrontendVirtioScsiService_CreateVirtioScsiLun_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("DELETE", pattern_FrontendVirtioScsiService_DeleteVirtioScsiLun_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/opi_api.storage.v1.FrontendVirtioScsiService/DeleteVirtioScsiLun", runtime.WithHTTPPathPattern("/v1/{name=virtioScsiLuns/*}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_FrontendVirtioScsiService_DeleteVirtioScsiLun_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FrontendVirtioScsiService_DeleteVirtioScsiLun_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("PATCH", pattern_FrontendVirtioScsiService_UpdateVirtioScsiLun_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/opi_api.storage.v1.FrontendVirtioScsiService/UpdateVirtioScsiLun", runtime.WithHTTPPathPattern("/v1/{virtio_scsi_lun.name=virtioScsiLuns/*}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_FrontendVirtioScsiService_UpdateVirtioScsiLun_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FrontendVirtioScsiService_UpdateVirtioScsiLun_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_FrontendVirtioScsiService_ListVirtioScsiLuns_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/opi_api.storage.v1.FrontendVirtioScsiService/ListVirtioScsiLuns", runtime.WithHTTPPathPattern("/v1/{parent=virtioScsiLuns}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_FrontendVirtioScsiService_ListVirtioScsiLuns_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FrontendVirtioScsiService_ListVirtioScsiLuns_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_FrontendVirtioScsiService_GetVirtioScsiLun_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/opi_api.storage.v1.FrontendVirtioScsiService/GetVirtioScsiLun", runtime.WithHTTPPathPattern("/v1/{name=virtioScsiLuns/*}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_FrontendVirtioScsiService_GetVirtioScsiLun_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FrontendVirtioScsiService_GetVirtioScsiLun_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_FrontendVirtioScsiService_StatsVirtioScsiLun_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/opi_api.storage.v1.FrontendVirtioScsiService/StatsVirtioScsiLun", runtime.WithHTTPPathPattern("/v1/{name=virtioScsiLuns/*}:stats")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_FrontendVirtioScsiService_StatsVirtioScsiLun_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_FrontendVirtioScsiService_StatsVirtioScsiLun_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + return nil +} + +var ( + pattern_FrontendVirtioScsiService_CreateVirtioScsiTarget_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"v1", "virtioScsiTargets"}, "")) + + pattern_FrontendVirtioScsiService_DeleteVirtioScsiTarget_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 2, 5, 2}, []string{"v1", "virtioScsiTargets", "name"}, "")) + + pattern_FrontendVirtioScsiService_UpdateVirtioScsiTarget_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 2, 5, 2}, []string{"v1", "virtioScsiTargets", "virtio_scsi_target.name"}, "")) + + pattern_FrontendVirtioScsiService_ListVirtioScsiTargets_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 4, 1, 5, 2}, []string{"v1", "virtioScsiTargets", "parent"}, "")) + + pattern_FrontendVirtioScsiService_GetVirtioScsiTarget_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 2, 5, 2}, []string{"v1", "virtioScsiTargets", "name"}, "")) + + pattern_FrontendVirtioScsiService_StatsVirtioScsiTarget_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 2, 5, 2}, []string{"v1", "virtioScsiTargets", "name"}, "stats")) + + pattern_FrontendVirtioScsiService_CreateVirtioScsiController_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"v1", "virtioScsiControllers"}, "")) + + pattern_FrontendVirtioScsiService_DeleteVirtioScsiController_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 2, 5, 2}, []string{"v1", "virtioScsiControllers", "name"}, "")) + + pattern_FrontendVirtioScsiService_UpdateVirtioScsiController_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 2, 5, 2}, []string{"v1", "virtioScsiControllers", "virtio_scsi_controller.name"}, "")) + + pattern_FrontendVirtioScsiService_ListVirtioScsiControllers_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 4, 1, 5, 2}, []string{"v1", "virtioScsiControllers", "parent"}, "")) + + pattern_FrontendVirtioScsiService_GetVirtioScsiController_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 2, 5, 2}, []string{"v1", "virtioScsiControllers", "name"}, "")) + + pattern_FrontendVirtioScsiService_StatsVirtioScsiController_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 2, 5, 2}, []string{"v1", "virtioScsiControllers", "name"}, "stats")) + + pattern_FrontendVirtioScsiService_CreateVirtioScsiLun_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"v1", "virtioScsiLuns"}, "")) + + pattern_FrontendVirtioScsiService_DeleteVirtioScsiLun_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 2, 5, 2}, []string{"v1", "virtioScsiLuns", "name"}, "")) + + pattern_FrontendVirtioScsiService_UpdateVirtioScsiLun_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 2, 5, 2}, []string{"v1", "virtioScsiLuns", "virtio_scsi_lun.name"}, "")) + + pattern_FrontendVirtioScsiService_ListVirtioScsiLuns_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 4, 1, 5, 2}, []string{"v1", "virtioScsiLuns", "parent"}, "")) + + pattern_FrontendVirtioScsiService_GetVirtioScsiLun_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 2, 5, 2}, []string{"v1", "virtioScsiLuns", "name"}, "")) + + pattern_FrontendVirtioScsiService_StatsVirtioScsiLun_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 2, 5, 2}, []string{"v1", "virtioScsiLuns", "name"}, "stats")) +) + +var ( + forward_FrontendVirtioScsiService_CreateVirtioScsiTarget_0 = runtime.ForwardResponseMessage + + forward_FrontendVirtioScsiService_DeleteVirtioScsiTarget_0 = runtime.ForwardResponseMessage + + forward_FrontendVirtioScsiService_UpdateVirtioScsiTarget_0 = runtime.ForwardResponseMessage + + forward_FrontendVirtioScsiService_ListVirtioScsiTargets_0 = runtime.ForwardResponseMessage + + forward_FrontendVirtioScsiService_GetVirtioScsiTarget_0 = runtime.ForwardResponseMessage + + forward_FrontendVirtioScsiService_StatsVirtioScsiTarget_0 = runtime.ForwardResponseMessage + + forward_FrontendVirtioScsiService_CreateVirtioScsiController_0 = runtime.ForwardResponseMessage + + forward_FrontendVirtioScsiService_DeleteVirtioScsiController_0 = runtime.ForwardResponseMessage + + forward_FrontendVirtioScsiService_UpdateVirtioScsiController_0 = runtime.ForwardResponseMessage + + forward_FrontendVirtioScsiService_ListVirtioScsiControllers_0 = runtime.ForwardResponseMessage + + forward_FrontendVirtioScsiService_GetVirtioScsiController_0 = runtime.ForwardResponseMessage + + forward_FrontendVirtioScsiService_StatsVirtioScsiController_0 = runtime.ForwardResponseMessage + + forward_FrontendVirtioScsiService_CreateVirtioScsiLun_0 = runtime.ForwardResponseMessage + + forward_FrontendVirtioScsiService_DeleteVirtioScsiLun_0 = runtime.ForwardResponseMessage + + forward_FrontendVirtioScsiService_UpdateVirtioScsiLun_0 = runtime.ForwardResponseMessage + + forward_FrontendVirtioScsiService_ListVirtioScsiLuns_0 = runtime.ForwardResponseMessage + + forward_FrontendVirtioScsiService_GetVirtioScsiLun_0 = runtime.ForwardResponseMessage + + forward_FrontendVirtioScsiService_StatsVirtioScsiLun_0 = runtime.ForwardResponseMessage +) diff --git a/storage/v1alpha1/gen/go/frontend_virtio_scsi_grpc.pb.go b/storage/v1alpha1/gen/go/frontend_virtio_scsi_grpc.pb.go index 86e13fa2..98bf4e19 100644 --- a/storage/v1alpha1/gen/go/frontend_virtio_scsi_grpc.pb.go +++ b/storage/v1alpha1/gen/go/frontend_virtio_scsi_grpc.pb.go @@ -1,7 +1,11 @@ +// SPDX-License-Identifier: Apache-2.0 +// Copyright (c) 2022 Dell Inc, or its subsidiaries. +// Copyright (C) 2023 Intel Corporation + // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: -// - protoc-gen-go-grpc v1.2.0 -// - protoc v3.21.6 +// - protoc-gen-go-grpc v1.3.0 +// - protoc (unknown) // source: frontend_virtio_scsi.proto package _go @@ -19,6 +23,27 @@ import ( // Requires gRPC-Go v1.32.0 or later. const _ = grpc.SupportPackageIsVersion7 +const ( + FrontendVirtioScsiService_CreateVirtioScsiTarget_FullMethodName = "/opi_api.storage.v1.FrontendVirtioScsiService/CreateVirtioScsiTarget" + FrontendVirtioScsiService_DeleteVirtioScsiTarget_FullMethodName = "/opi_api.storage.v1.FrontendVirtioScsiService/DeleteVirtioScsiTarget" + FrontendVirtioScsiService_UpdateVirtioScsiTarget_FullMethodName = "/opi_api.storage.v1.FrontendVirtioScsiService/UpdateVirtioScsiTarget" + FrontendVirtioScsiService_ListVirtioScsiTargets_FullMethodName = "/opi_api.storage.v1.FrontendVirtioScsiService/ListVirtioScsiTargets" + FrontendVirtioScsiService_GetVirtioScsiTarget_FullMethodName = "/opi_api.storage.v1.FrontendVirtioScsiService/GetVirtioScsiTarget" + FrontendVirtioScsiService_StatsVirtioScsiTarget_FullMethodName = "/opi_api.storage.v1.FrontendVirtioScsiService/StatsVirtioScsiTarget" + FrontendVirtioScsiService_CreateVirtioScsiController_FullMethodName = "/opi_api.storage.v1.FrontendVirtioScsiService/CreateVirtioScsiController" + FrontendVirtioScsiService_DeleteVirtioScsiController_FullMethodName = "/opi_api.storage.v1.FrontendVirtioScsiService/DeleteVirtioScsiController" + FrontendVirtioScsiService_UpdateVirtioScsiController_FullMethodName = "/opi_api.storage.v1.FrontendVirtioScsiService/UpdateVirtioScsiController" + FrontendVirtioScsiService_ListVirtioScsiControllers_FullMethodName = "/opi_api.storage.v1.FrontendVirtioScsiService/ListVirtioScsiControllers" + FrontendVirtioScsiService_GetVirtioScsiController_FullMethodName = "/opi_api.storage.v1.FrontendVirtioScsiService/GetVirtioScsiController" + FrontendVirtioScsiService_StatsVirtioScsiController_FullMethodName = "/opi_api.storage.v1.FrontendVirtioScsiService/StatsVirtioScsiController" + FrontendVirtioScsiService_CreateVirtioScsiLun_FullMethodName = "/opi_api.storage.v1.FrontendVirtioScsiService/CreateVirtioScsiLun" + FrontendVirtioScsiService_DeleteVirtioScsiLun_FullMethodName = "/opi_api.storage.v1.FrontendVirtioScsiService/DeleteVirtioScsiLun" + FrontendVirtioScsiService_UpdateVirtioScsiLun_FullMethodName = "/opi_api.storage.v1.FrontendVirtioScsiService/UpdateVirtioScsiLun" + FrontendVirtioScsiService_ListVirtioScsiLuns_FullMethodName = "/opi_api.storage.v1.FrontendVirtioScsiService/ListVirtioScsiLuns" + FrontendVirtioScsiService_GetVirtioScsiLun_FullMethodName = "/opi_api.storage.v1.FrontendVirtioScsiService/GetVirtioScsiLun" + FrontendVirtioScsiService_StatsVirtioScsiLun_FullMethodName = "/opi_api.storage.v1.FrontendVirtioScsiService/StatsVirtioScsiLun" +) + // FrontendVirtioScsiServiceClient is the client API for FrontendVirtioScsiService service. // // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. @@ -71,7 +96,7 @@ func NewFrontendVirtioScsiServiceClient(cc grpc.ClientConnInterface) FrontendVir func (c *frontendVirtioScsiServiceClient) CreateVirtioScsiTarget(ctx context.Context, in *CreateVirtioScsiTargetRequest, opts ...grpc.CallOption) (*VirtioScsiTarget, error) { out := new(VirtioScsiTarget) - err := c.cc.Invoke(ctx, "/opi_api.storage.v1.FrontendVirtioScsiService/CreateVirtioScsiTarget", in, out, opts...) + err := c.cc.Invoke(ctx, FrontendVirtioScsiService_CreateVirtioScsiTarget_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -80,7 +105,7 @@ func (c *frontendVirtioScsiServiceClient) CreateVirtioScsiTarget(ctx context.Con func (c *frontendVirtioScsiServiceClient) DeleteVirtioScsiTarget(ctx context.Context, in *DeleteVirtioScsiTargetRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) { out := new(emptypb.Empty) - err := c.cc.Invoke(ctx, "/opi_api.storage.v1.FrontendVirtioScsiService/DeleteVirtioScsiTarget", in, out, opts...) + err := c.cc.Invoke(ctx, FrontendVirtioScsiService_DeleteVirtioScsiTarget_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -89,7 +114,7 @@ func (c *frontendVirtioScsiServiceClient) DeleteVirtioScsiTarget(ctx context.Con func (c *frontendVirtioScsiServiceClient) UpdateVirtioScsiTarget(ctx context.Context, in *UpdateVirtioScsiTargetRequest, opts ...grpc.CallOption) (*VirtioScsiTarget, error) { out := new(VirtioScsiTarget) - err := c.cc.Invoke(ctx, "/opi_api.storage.v1.FrontendVirtioScsiService/UpdateVirtioScsiTarget", in, out, opts...) + err := c.cc.Invoke(ctx, FrontendVirtioScsiService_UpdateVirtioScsiTarget_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -98,7 +123,7 @@ func (c *frontendVirtioScsiServiceClient) UpdateVirtioScsiTarget(ctx context.Con func (c *frontendVirtioScsiServiceClient) ListVirtioScsiTargets(ctx context.Context, in *ListVirtioScsiTargetsRequest, opts ...grpc.CallOption) (*ListVirtioScsiTargetsResponse, error) { out := new(ListVirtioScsiTargetsResponse) - err := c.cc.Invoke(ctx, "/opi_api.storage.v1.FrontendVirtioScsiService/ListVirtioScsiTargets", in, out, opts...) + err := c.cc.Invoke(ctx, FrontendVirtioScsiService_ListVirtioScsiTargets_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -107,7 +132,7 @@ func (c *frontendVirtioScsiServiceClient) ListVirtioScsiTargets(ctx context.Cont func (c *frontendVirtioScsiServiceClient) GetVirtioScsiTarget(ctx context.Context, in *GetVirtioScsiTargetRequest, opts ...grpc.CallOption) (*VirtioScsiTarget, error) { out := new(VirtioScsiTarget) - err := c.cc.Invoke(ctx, "/opi_api.storage.v1.FrontendVirtioScsiService/GetVirtioScsiTarget", in, out, opts...) + err := c.cc.Invoke(ctx, FrontendVirtioScsiService_GetVirtioScsiTarget_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -116,7 +141,7 @@ func (c *frontendVirtioScsiServiceClient) GetVirtioScsiTarget(ctx context.Contex func (c *frontendVirtioScsiServiceClient) StatsVirtioScsiTarget(ctx context.Context, in *StatsVirtioScsiTargetRequest, opts ...grpc.CallOption) (*StatsVirtioScsiTargetResponse, error) { out := new(StatsVirtioScsiTargetResponse) - err := c.cc.Invoke(ctx, "/opi_api.storage.v1.FrontendVirtioScsiService/StatsVirtioScsiTarget", in, out, opts...) + err := c.cc.Invoke(ctx, FrontendVirtioScsiService_StatsVirtioScsiTarget_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -125,7 +150,7 @@ func (c *frontendVirtioScsiServiceClient) StatsVirtioScsiTarget(ctx context.Cont func (c *frontendVirtioScsiServiceClient) CreateVirtioScsiController(ctx context.Context, in *CreateVirtioScsiControllerRequest, opts ...grpc.CallOption) (*VirtioScsiController, error) { out := new(VirtioScsiController) - err := c.cc.Invoke(ctx, "/opi_api.storage.v1.FrontendVirtioScsiService/CreateVirtioScsiController", in, out, opts...) + err := c.cc.Invoke(ctx, FrontendVirtioScsiService_CreateVirtioScsiController_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -134,7 +159,7 @@ func (c *frontendVirtioScsiServiceClient) CreateVirtioScsiController(ctx context func (c *frontendVirtioScsiServiceClient) DeleteVirtioScsiController(ctx context.Context, in *DeleteVirtioScsiControllerRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) { out := new(emptypb.Empty) - err := c.cc.Invoke(ctx, "/opi_api.storage.v1.FrontendVirtioScsiService/DeleteVirtioScsiController", in, out, opts...) + err := c.cc.Invoke(ctx, FrontendVirtioScsiService_DeleteVirtioScsiController_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -143,7 +168,7 @@ func (c *frontendVirtioScsiServiceClient) DeleteVirtioScsiController(ctx context func (c *frontendVirtioScsiServiceClient) UpdateVirtioScsiController(ctx context.Context, in *UpdateVirtioScsiControllerRequest, opts ...grpc.CallOption) (*VirtioScsiController, error) { out := new(VirtioScsiController) - err := c.cc.Invoke(ctx, "/opi_api.storage.v1.FrontendVirtioScsiService/UpdateVirtioScsiController", in, out, opts...) + err := c.cc.Invoke(ctx, FrontendVirtioScsiService_UpdateVirtioScsiController_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -152,7 +177,7 @@ func (c *frontendVirtioScsiServiceClient) UpdateVirtioScsiController(ctx context func (c *frontendVirtioScsiServiceClient) ListVirtioScsiControllers(ctx context.Context, in *ListVirtioScsiControllersRequest, opts ...grpc.CallOption) (*ListVirtioScsiControllersResponse, error) { out := new(ListVirtioScsiControllersResponse) - err := c.cc.Invoke(ctx, "/opi_api.storage.v1.FrontendVirtioScsiService/ListVirtioScsiControllers", in, out, opts...) + err := c.cc.Invoke(ctx, FrontendVirtioScsiService_ListVirtioScsiControllers_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -161,7 +186,7 @@ func (c *frontendVirtioScsiServiceClient) ListVirtioScsiControllers(ctx context. func (c *frontendVirtioScsiServiceClient) GetVirtioScsiController(ctx context.Context, in *GetVirtioScsiControllerRequest, opts ...grpc.CallOption) (*VirtioScsiController, error) { out := new(VirtioScsiController) - err := c.cc.Invoke(ctx, "/opi_api.storage.v1.FrontendVirtioScsiService/GetVirtioScsiController", in, out, opts...) + err := c.cc.Invoke(ctx, FrontendVirtioScsiService_GetVirtioScsiController_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -170,7 +195,7 @@ func (c *frontendVirtioScsiServiceClient) GetVirtioScsiController(ctx context.Co func (c *frontendVirtioScsiServiceClient) StatsVirtioScsiController(ctx context.Context, in *StatsVirtioScsiControllerRequest, opts ...grpc.CallOption) (*StatsVirtioScsiControllerResponse, error) { out := new(StatsVirtioScsiControllerResponse) - err := c.cc.Invoke(ctx, "/opi_api.storage.v1.FrontendVirtioScsiService/StatsVirtioScsiController", in, out, opts...) + err := c.cc.Invoke(ctx, FrontendVirtioScsiService_StatsVirtioScsiController_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -179,7 +204,7 @@ func (c *frontendVirtioScsiServiceClient) StatsVirtioScsiController(ctx context. func (c *frontendVirtioScsiServiceClient) CreateVirtioScsiLun(ctx context.Context, in *CreateVirtioScsiLunRequest, opts ...grpc.CallOption) (*VirtioScsiLun, error) { out := new(VirtioScsiLun) - err := c.cc.Invoke(ctx, "/opi_api.storage.v1.FrontendVirtioScsiService/CreateVirtioScsiLun", in, out, opts...) + err := c.cc.Invoke(ctx, FrontendVirtioScsiService_CreateVirtioScsiLun_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -188,7 +213,7 @@ func (c *frontendVirtioScsiServiceClient) CreateVirtioScsiLun(ctx context.Contex func (c *frontendVirtioScsiServiceClient) DeleteVirtioScsiLun(ctx context.Context, in *DeleteVirtioScsiLunRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) { out := new(emptypb.Empty) - err := c.cc.Invoke(ctx, "/opi_api.storage.v1.FrontendVirtioScsiService/DeleteVirtioScsiLun", in, out, opts...) + err := c.cc.Invoke(ctx, FrontendVirtioScsiService_DeleteVirtioScsiLun_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -197,7 +222,7 @@ func (c *frontendVirtioScsiServiceClient) DeleteVirtioScsiLun(ctx context.Contex func (c *frontendVirtioScsiServiceClient) UpdateVirtioScsiLun(ctx context.Context, in *UpdateVirtioScsiLunRequest, opts ...grpc.CallOption) (*VirtioScsiLun, error) { out := new(VirtioScsiLun) - err := c.cc.Invoke(ctx, "/opi_api.storage.v1.FrontendVirtioScsiService/UpdateVirtioScsiLun", in, out, opts...) + err := c.cc.Invoke(ctx, FrontendVirtioScsiService_UpdateVirtioScsiLun_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -206,7 +231,7 @@ func (c *frontendVirtioScsiServiceClient) UpdateVirtioScsiLun(ctx context.Contex func (c *frontendVirtioScsiServiceClient) ListVirtioScsiLuns(ctx context.Context, in *ListVirtioScsiLunsRequest, opts ...grpc.CallOption) (*ListVirtioScsiLunsResponse, error) { out := new(ListVirtioScsiLunsResponse) - err := c.cc.Invoke(ctx, "/opi_api.storage.v1.FrontendVirtioScsiService/ListVirtioScsiLuns", in, out, opts...) + err := c.cc.Invoke(ctx, FrontendVirtioScsiService_ListVirtioScsiLuns_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -215,7 +240,7 @@ func (c *frontendVirtioScsiServiceClient) ListVirtioScsiLuns(ctx context.Context func (c *frontendVirtioScsiServiceClient) GetVirtioScsiLun(ctx context.Context, in *GetVirtioScsiLunRequest, opts ...grpc.CallOption) (*VirtioScsiLun, error) { out := new(VirtioScsiLun) - err := c.cc.Invoke(ctx, "/opi_api.storage.v1.FrontendVirtioScsiService/GetVirtioScsiLun", in, out, opts...) + err := c.cc.Invoke(ctx, FrontendVirtioScsiService_GetVirtioScsiLun_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -224,7 +249,7 @@ func (c *frontendVirtioScsiServiceClient) GetVirtioScsiLun(ctx context.Context, func (c *frontendVirtioScsiServiceClient) StatsVirtioScsiLun(ctx context.Context, in *StatsVirtioScsiLunRequest, opts ...grpc.CallOption) (*StatsVirtioScsiLunResponse, error) { out := new(StatsVirtioScsiLunResponse) - err := c.cc.Invoke(ctx, "/opi_api.storage.v1.FrontendVirtioScsiService/StatsVirtioScsiLun", in, out, opts...) + err := c.cc.Invoke(ctx, FrontendVirtioScsiService_StatsVirtioScsiLun_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -232,7 +257,7 @@ func (c *frontendVirtioScsiServiceClient) StatsVirtioScsiLun(ctx context.Context } // FrontendVirtioScsiServiceServer is the server API for FrontendVirtioScsiService service. -// All implementations should embed UnimplementedFrontendVirtioScsiServiceServer +// All implementations must embed UnimplementedFrontendVirtioScsiServiceServer // for forward compatibility type FrontendVirtioScsiServiceServer interface { // Create an Virtio Scsi Target @@ -271,9 +296,10 @@ type FrontendVirtioScsiServiceServer interface { GetVirtioScsiLun(context.Context, *GetVirtioScsiLunRequest) (*VirtioScsiLun, error) // Get an Virtio Scsi Lun statistics StatsVirtioScsiLun(context.Context, *StatsVirtioScsiLunRequest) (*StatsVirtioScsiLunResponse, error) + mustEmbedUnimplementedFrontendVirtioScsiServiceServer() } -// UnimplementedFrontendVirtioScsiServiceServer should be embedded to have forward compatible implementations. +// UnimplementedFrontendVirtioScsiServiceServer must be embedded to have forward compatible implementations. type UnimplementedFrontendVirtioScsiServiceServer struct { } @@ -331,6 +357,8 @@ func (UnimplementedFrontendVirtioScsiServiceServer) GetVirtioScsiLun(context.Con func (UnimplementedFrontendVirtioScsiServiceServer) StatsVirtioScsiLun(context.Context, *StatsVirtioScsiLunRequest) (*StatsVirtioScsiLunResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method StatsVirtioScsiLun not implemented") } +func (UnimplementedFrontendVirtioScsiServiceServer) mustEmbedUnimplementedFrontendVirtioScsiServiceServer() { +} // UnsafeFrontendVirtioScsiServiceServer may be embedded to opt out of forward compatibility for this service. // Use of this interface is not recommended, as added methods to FrontendVirtioScsiServiceServer will @@ -353,7 +381,7 @@ func _FrontendVirtioScsiService_CreateVirtioScsiTarget_Handler(srv interface{}, } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/opi_api.storage.v1.FrontendVirtioScsiService/CreateVirtioScsiTarget", + FullMethod: FrontendVirtioScsiService_CreateVirtioScsiTarget_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(FrontendVirtioScsiServiceServer).CreateVirtioScsiTarget(ctx, req.(*CreateVirtioScsiTargetRequest)) @@ -371,7 +399,7 @@ func _FrontendVirtioScsiService_DeleteVirtioScsiTarget_Handler(srv interface{}, } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/opi_api.storage.v1.FrontendVirtioScsiService/DeleteVirtioScsiTarget", + FullMethod: FrontendVirtioScsiService_DeleteVirtioScsiTarget_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(FrontendVirtioScsiServiceServer).DeleteVirtioScsiTarget(ctx, req.(*DeleteVirtioScsiTargetRequest)) @@ -389,7 +417,7 @@ func _FrontendVirtioScsiService_UpdateVirtioScsiTarget_Handler(srv interface{}, } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/opi_api.storage.v1.FrontendVirtioScsiService/UpdateVirtioScsiTarget", + FullMethod: FrontendVirtioScsiService_UpdateVirtioScsiTarget_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(FrontendVirtioScsiServiceServer).UpdateVirtioScsiTarget(ctx, req.(*UpdateVirtioScsiTargetRequest)) @@ -407,7 +435,7 @@ func _FrontendVirtioScsiService_ListVirtioScsiTargets_Handler(srv interface{}, c } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/opi_api.storage.v1.FrontendVirtioScsiService/ListVirtioScsiTargets", + FullMethod: FrontendVirtioScsiService_ListVirtioScsiTargets_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(FrontendVirtioScsiServiceServer).ListVirtioScsiTargets(ctx, req.(*ListVirtioScsiTargetsRequest)) @@ -425,7 +453,7 @@ func _FrontendVirtioScsiService_GetVirtioScsiTarget_Handler(srv interface{}, ctx } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/opi_api.storage.v1.FrontendVirtioScsiService/GetVirtioScsiTarget", + FullMethod: FrontendVirtioScsiService_GetVirtioScsiTarget_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(FrontendVirtioScsiServiceServer).GetVirtioScsiTarget(ctx, req.(*GetVirtioScsiTargetRequest)) @@ -443,7 +471,7 @@ func _FrontendVirtioScsiService_StatsVirtioScsiTarget_Handler(srv interface{}, c } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/opi_api.storage.v1.FrontendVirtioScsiService/StatsVirtioScsiTarget", + FullMethod: FrontendVirtioScsiService_StatsVirtioScsiTarget_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(FrontendVirtioScsiServiceServer).StatsVirtioScsiTarget(ctx, req.(*StatsVirtioScsiTargetRequest)) @@ -461,7 +489,7 @@ func _FrontendVirtioScsiService_CreateVirtioScsiController_Handler(srv interface } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/opi_api.storage.v1.FrontendVirtioScsiService/CreateVirtioScsiController", + FullMethod: FrontendVirtioScsiService_CreateVirtioScsiController_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(FrontendVirtioScsiServiceServer).CreateVirtioScsiController(ctx, req.(*CreateVirtioScsiControllerRequest)) @@ -479,7 +507,7 @@ func _FrontendVirtioScsiService_DeleteVirtioScsiController_Handler(srv interface } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/opi_api.storage.v1.FrontendVirtioScsiService/DeleteVirtioScsiController", + FullMethod: FrontendVirtioScsiService_DeleteVirtioScsiController_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(FrontendVirtioScsiServiceServer).DeleteVirtioScsiController(ctx, req.(*DeleteVirtioScsiControllerRequest)) @@ -497,7 +525,7 @@ func _FrontendVirtioScsiService_UpdateVirtioScsiController_Handler(srv interface } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/opi_api.storage.v1.FrontendVirtioScsiService/UpdateVirtioScsiController", + FullMethod: FrontendVirtioScsiService_UpdateVirtioScsiController_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(FrontendVirtioScsiServiceServer).UpdateVirtioScsiController(ctx, req.(*UpdateVirtioScsiControllerRequest)) @@ -515,7 +543,7 @@ func _FrontendVirtioScsiService_ListVirtioScsiControllers_Handler(srv interface{ } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/opi_api.storage.v1.FrontendVirtioScsiService/ListVirtioScsiControllers", + FullMethod: FrontendVirtioScsiService_ListVirtioScsiControllers_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(FrontendVirtioScsiServiceServer).ListVirtioScsiControllers(ctx, req.(*ListVirtioScsiControllersRequest)) @@ -533,7 +561,7 @@ func _FrontendVirtioScsiService_GetVirtioScsiController_Handler(srv interface{}, } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/opi_api.storage.v1.FrontendVirtioScsiService/GetVirtioScsiController", + FullMethod: FrontendVirtioScsiService_GetVirtioScsiController_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(FrontendVirtioScsiServiceServer).GetVirtioScsiController(ctx, req.(*GetVirtioScsiControllerRequest)) @@ -551,7 +579,7 @@ func _FrontendVirtioScsiService_StatsVirtioScsiController_Handler(srv interface{ } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/opi_api.storage.v1.FrontendVirtioScsiService/StatsVirtioScsiController", + FullMethod: FrontendVirtioScsiService_StatsVirtioScsiController_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(FrontendVirtioScsiServiceServer).StatsVirtioScsiController(ctx, req.(*StatsVirtioScsiControllerRequest)) @@ -569,7 +597,7 @@ func _FrontendVirtioScsiService_CreateVirtioScsiLun_Handler(srv interface{}, ctx } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/opi_api.storage.v1.FrontendVirtioScsiService/CreateVirtioScsiLun", + FullMethod: FrontendVirtioScsiService_CreateVirtioScsiLun_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(FrontendVirtioScsiServiceServer).CreateVirtioScsiLun(ctx, req.(*CreateVirtioScsiLunRequest)) @@ -587,7 +615,7 @@ func _FrontendVirtioScsiService_DeleteVirtioScsiLun_Handler(srv interface{}, ctx } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/opi_api.storage.v1.FrontendVirtioScsiService/DeleteVirtioScsiLun", + FullMethod: FrontendVirtioScsiService_DeleteVirtioScsiLun_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(FrontendVirtioScsiServiceServer).DeleteVirtioScsiLun(ctx, req.(*DeleteVirtioScsiLunRequest)) @@ -605,7 +633,7 @@ func _FrontendVirtioScsiService_UpdateVirtioScsiLun_Handler(srv interface{}, ctx } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/opi_api.storage.v1.FrontendVirtioScsiService/UpdateVirtioScsiLun", + FullMethod: FrontendVirtioScsiService_UpdateVirtioScsiLun_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(FrontendVirtioScsiServiceServer).UpdateVirtioScsiLun(ctx, req.(*UpdateVirtioScsiLunRequest)) @@ -623,7 +651,7 @@ func _FrontendVirtioScsiService_ListVirtioScsiLuns_Handler(srv interface{}, ctx } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/opi_api.storage.v1.FrontendVirtioScsiService/ListVirtioScsiLuns", + FullMethod: FrontendVirtioScsiService_ListVirtioScsiLuns_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(FrontendVirtioScsiServiceServer).ListVirtioScsiLuns(ctx, req.(*ListVirtioScsiLunsRequest)) @@ -641,7 +669,7 @@ func _FrontendVirtioScsiService_GetVirtioScsiLun_Handler(srv interface{}, ctx co } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/opi_api.storage.v1.FrontendVirtioScsiService/GetVirtioScsiLun", + FullMethod: FrontendVirtioScsiService_GetVirtioScsiLun_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(FrontendVirtioScsiServiceServer).GetVirtioScsiLun(ctx, req.(*GetVirtioScsiLunRequest)) @@ -659,7 +687,7 @@ func _FrontendVirtioScsiService_StatsVirtioScsiLun_Handler(srv interface{}, ctx } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/opi_api.storage.v1.FrontendVirtioScsiService/StatsVirtioScsiLun", + FullMethod: FrontendVirtioScsiService_StatsVirtioScsiLun_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(FrontendVirtioScsiServiceServer).StatsVirtioScsiLun(ctx, req.(*StatsVirtioScsiLunRequest)) diff --git a/storage/v1alpha1/gen/go/middleend_encryption.pb.go b/storage/v1alpha1/gen/go/middleend_encryption.pb.go index 95c4e059..41ae53b2 100644 --- a/storage/v1alpha1/gen/go/middleend_encryption.pb.go +++ b/storage/v1alpha1/gen/go/middleend_encryption.pb.go @@ -5,8 +5,8 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.1 -// protoc v3.21.6 +// protoc-gen-go v1.31.0 +// protoc (unknown) // source: middleend_encryption.proto package _go @@ -679,35 +679,35 @@ var file_middleend_encryption_proto_rawDesc = []byte{ 0x65, 0x45, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x6e, 0x63, - 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x22, 0x55, 0x82, 0xd3, - 0xe4, 0x93, 0x02, 0x28, 0x22, 0x14, 0x2f, 0x76, 0x31, 0x2f, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, - 0x74, 0x65, 0x64, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x3a, 0x10, 0x65, 0x6e, 0x63, 0x72, - 0x79, 0x70, 0x74, 0x65, 0x64, 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0xda, 0x41, 0x24, 0x65, - 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x2c, - 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, - 0x5f, 0x69, 0x64, 0x12, 0x8f, 0x01, 0x0a, 0x15, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x45, 0x6e, + 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x22, 0x55, 0xda, 0x41, + 0x24, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, + 0x65, 0x2c, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x5f, 0x76, 0x6f, 0x6c, 0x75, + 0x6d, 0x65, 0x5f, 0x69, 0x64, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x28, 0x3a, 0x10, 0x65, 0x6e, 0x63, + 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x22, 0x14, 0x2f, + 0x76, 0x31, 0x2f, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x56, 0x6f, 0x6c, 0x75, + 0x6d, 0x65, 0x73, 0x12, 0x8f, 0x01, 0x0a, 0x15, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x45, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x12, 0x30, 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, 0x45, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 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, 0x2c, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1f, 0x2a, - 0x1d, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x65, 0x6e, 0x63, 0x72, 0x79, - 0x70, 0x74, 0x65, 0x64, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0xda, 0x41, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0xd7, 0x01, 0x0a, 0x15, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x2c, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1f, 0x2a, 0x1d, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, + 0x65, 0x3d, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x56, 0x6f, 0x6c, 0x75, 0x6d, + 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xd7, 0x01, 0x0a, 0x15, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x45, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x12, 0x30, 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, 0x45, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, - 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x22, 0x67, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x42, 0x32, 0x2e, - 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x5f, 0x76, - 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x2e, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x65, 0x6e, 0x63, 0x72, 0x79, - 0x70, 0x74, 0x65, 0x64, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x10, - 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, - 0xda, 0x41, 0x1c, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x5f, 0x76, 0x6f, 0x6c, - 0x75, 0x6d, 0x65, 0x2c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x12, + 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x22, 0x67, 0xda, 0x41, 0x1c, 0x65, 0x6e, 0x63, 0x72, 0x79, + 0x70, 0x74, 0x65, 0x64, 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x2c, 0x75, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x42, 0x3a, 0x10, 0x65, + 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x32, + 0x2e, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x5f, + 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x2e, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x65, 0x6e, 0x63, 0x72, + 0x79, 0x70, 0x74, 0x65, 0x64, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xa0, 0x01, 0x0a, 0x14, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x12, 0x2f, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, @@ -715,19 +715,19 @@ var file_middleend_encryption_proto_rawDesc = []byte{ 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x56, 0x6f, 0x6c, 0x75, - 0x6d, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x25, 0x82, 0xd3, 0xe4, - 0x93, 0x02, 0x16, 0x12, 0x14, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, - 0x3d, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x7d, 0xda, 0x41, 0x06, 0x70, 0x61, 0x72, 0x65, - 0x6e, 0x74, 0x12, 0x96, 0x01, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x45, 0x6e, 0x63, 0x72, 0x79, 0x70, + 0x6d, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x25, 0xda, 0x41, 0x06, + 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x16, 0x12, 0x14, 0x2f, 0x76, + 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, + 0x73, 0x7d, 0x12, 0x96, 0x01, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x45, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x12, 0x2d, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x45, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x6e, - 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x22, 0x2c, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x1f, 0x12, 0x1d, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, - 0x3d, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, - 0x73, 0x2f, 0x2a, 0x7d, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0xad, 0x01, 0x0a, 0x14, + 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x22, 0x2c, 0xda, + 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1f, 0x12, 0x1d, 0x2f, 0x76, + 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, + 0x64, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xad, 0x01, 0x0a, 0x14, 0x53, 0x74, 0x61, 0x74, 0x73, 0x45, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x12, 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, 0x45, @@ -735,10 +735,10 @@ var file_middleend_encryption_proto_rawDesc = []byte{ 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 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, 0x45, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x32, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x25, 0x12, - 0x23, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x65, 0x6e, 0x63, 0x72, 0x79, - 0x70, 0x74, 0x65, 0x64, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x73, - 0x74, 0x61, 0x74, 0x73, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x67, 0x0a, 0x12, 0x6f, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x32, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x25, 0x12, 0x23, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, + 0x65, 0x3d, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x56, 0x6f, 0x6c, 0x75, 0x6d, + 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x73, 0x74, 0x61, 0x74, 0x73, 0x42, 0x67, 0x0a, 0x12, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x42, 0x18, 0x4d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x45, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x35, 0x67, diff --git a/storage/v1alpha1/gen/go/middleend_encryption.pb.gw.go b/storage/v1alpha1/gen/go/middleend_encryption.pb.gw.go new file mode 100644 index 00000000..b0547778 --- /dev/null +++ b/storage/v1alpha1/gen/go/middleend_encryption.pb.gw.go @@ -0,0 +1,788 @@ +// Code generated by protoc-gen-grpc-gateway. DO NOT EDIT. +// source: middleend_encryption.proto + +/* +Package _go is a reverse proxy. + +It translates gRPC into RESTful JSON APIs. +*/ +package _go + +import ( + "context" + "io" + "net/http" + + "github.com/grpc-ecosystem/grpc-gateway/v2/runtime" + "github.com/grpc-ecosystem/grpc-gateway/v2/utilities" + "google.golang.org/grpc" + "google.golang.org/grpc/codes" + "google.golang.org/grpc/grpclog" + "google.golang.org/grpc/metadata" + "google.golang.org/grpc/status" + "google.golang.org/protobuf/proto" +) + +// Suppress "imported and not used" errors +var _ codes.Code +var _ io.Reader +var _ status.Status +var _ = runtime.String +var _ = utilities.NewDoubleArray +var _ = metadata.Join + +var ( + filter_MiddleendEncryptionService_CreateEncryptedVolume_0 = &utilities.DoubleArray{Encoding: map[string]int{"encrypted_volume": 0, "encryptedVolume": 1}, Base: []int{1, 1, 2, 0, 0}, Check: []int{0, 1, 1, 2, 3}} +) + +func request_MiddleendEncryptionService_CreateEncryptedVolume_0(ctx context.Context, marshaler runtime.Marshaler, client MiddleendEncryptionServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq CreateEncryptedVolumeRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq.EncryptedVolume); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_MiddleendEncryptionService_CreateEncryptedVolume_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.CreateEncryptedVolume(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_MiddleendEncryptionService_CreateEncryptedVolume_0(ctx context.Context, marshaler runtime.Marshaler, server MiddleendEncryptionServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq CreateEncryptedVolumeRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq.EncryptedVolume); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_MiddleendEncryptionService_CreateEncryptedVolume_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.CreateEncryptedVolume(ctx, &protoReq) + return msg, metadata, err + +} + +var ( + filter_MiddleendEncryptionService_DeleteEncryptedVolume_0 = &utilities.DoubleArray{Encoding: map[string]int{"name": 0}, Base: []int{1, 2, 0, 0}, Check: []int{0, 1, 2, 2}} +) + +func request_MiddleendEncryptionService_DeleteEncryptedVolume_0(ctx context.Context, marshaler runtime.Marshaler, client MiddleendEncryptionServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq DeleteEncryptedVolumeRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") + } + + protoReq.Name, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_MiddleendEncryptionService_DeleteEncryptedVolume_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.DeleteEncryptedVolume(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_MiddleendEncryptionService_DeleteEncryptedVolume_0(ctx context.Context, marshaler runtime.Marshaler, server MiddleendEncryptionServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq DeleteEncryptedVolumeRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") + } + + protoReq.Name, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_MiddleendEncryptionService_DeleteEncryptedVolume_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.DeleteEncryptedVolume(ctx, &protoReq) + return msg, metadata, err + +} + +var ( + filter_MiddleendEncryptionService_UpdateEncryptedVolume_0 = &utilities.DoubleArray{Encoding: map[string]int{"encrypted_volume": 0, "encryptedVolume": 1, "name": 2}, Base: []int{1, 3, 4, 5, 2, 0, 0, 0, 0}, Check: []int{0, 1, 1, 1, 2, 5, 2, 3, 4}} +) + +func request_MiddleendEncryptionService_UpdateEncryptedVolume_0(ctx context.Context, marshaler runtime.Marshaler, client MiddleendEncryptionServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq UpdateEncryptedVolumeRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq.EncryptedVolume); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if protoReq.UpdateMask == nil || len(protoReq.UpdateMask.GetPaths()) == 0 { + if fieldMask, err := runtime.FieldMaskFromRequestBody(newReader(), protoReq.EncryptedVolume); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } else { + protoReq.UpdateMask = fieldMask + } + } + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["encrypted_volume.name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "encrypted_volume.name") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "encrypted_volume.name", val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "encrypted_volume.name", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_MiddleendEncryptionService_UpdateEncryptedVolume_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.UpdateEncryptedVolume(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_MiddleendEncryptionService_UpdateEncryptedVolume_0(ctx context.Context, marshaler runtime.Marshaler, server MiddleendEncryptionServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq UpdateEncryptedVolumeRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq.EncryptedVolume); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if protoReq.UpdateMask == nil || len(protoReq.UpdateMask.GetPaths()) == 0 { + if fieldMask, err := runtime.FieldMaskFromRequestBody(newReader(), protoReq.EncryptedVolume); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } else { + protoReq.UpdateMask = fieldMask + } + } + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["encrypted_volume.name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "encrypted_volume.name") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "encrypted_volume.name", val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "encrypted_volume.name", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_MiddleendEncryptionService_UpdateEncryptedVolume_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.UpdateEncryptedVolume(ctx, &protoReq) + return msg, metadata, err + +} + +var ( + filter_MiddleendEncryptionService_ListEncryptedVolumes_0 = &utilities.DoubleArray{Encoding: map[string]int{"parent": 0}, Base: []int{1, 2, 0, 0}, Check: []int{0, 1, 2, 2}} +) + +func request_MiddleendEncryptionService_ListEncryptedVolumes_0(ctx context.Context, marshaler runtime.Marshaler, client MiddleendEncryptionServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq ListEncryptedVolumesRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["parent"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "parent") + } + + protoReq.Parent, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "parent", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_MiddleendEncryptionService_ListEncryptedVolumes_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.ListEncryptedVolumes(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_MiddleendEncryptionService_ListEncryptedVolumes_0(ctx context.Context, marshaler runtime.Marshaler, server MiddleendEncryptionServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq ListEncryptedVolumesRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["parent"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "parent") + } + + protoReq.Parent, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "parent", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_MiddleendEncryptionService_ListEncryptedVolumes_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.ListEncryptedVolumes(ctx, &protoReq) + return msg, metadata, err + +} + +func request_MiddleendEncryptionService_GetEncryptedVolume_0(ctx context.Context, marshaler runtime.Marshaler, client MiddleendEncryptionServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetEncryptedVolumeRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") + } + + protoReq.Name, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) + } + + msg, err := client.GetEncryptedVolume(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_MiddleendEncryptionService_GetEncryptedVolume_0(ctx context.Context, marshaler runtime.Marshaler, server MiddleendEncryptionServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetEncryptedVolumeRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") + } + + protoReq.Name, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) + } + + msg, err := server.GetEncryptedVolume(ctx, &protoReq) + return msg, metadata, err + +} + +func request_MiddleendEncryptionService_StatsEncryptedVolume_0(ctx context.Context, marshaler runtime.Marshaler, client MiddleendEncryptionServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq StatsEncryptedVolumeRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") + } + + protoReq.Name, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) + } + + msg, err := client.StatsEncryptedVolume(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_MiddleendEncryptionService_StatsEncryptedVolume_0(ctx context.Context, marshaler runtime.Marshaler, server MiddleendEncryptionServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq StatsEncryptedVolumeRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") + } + + protoReq.Name, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) + } + + msg, err := server.StatsEncryptedVolume(ctx, &protoReq) + return msg, metadata, err + +} + +// RegisterMiddleendEncryptionServiceHandlerServer registers the http handlers for service MiddleendEncryptionService to "mux". +// UnaryRPC :call MiddleendEncryptionServiceServer directly. +// StreamingRPC :currently unsupported pending https://github.com/grpc/grpc-go/issues/906. +// Note that using this registration option will cause many gRPC library features to stop working. Consider using RegisterMiddleendEncryptionServiceHandlerFromEndpoint instead. +func RegisterMiddleendEncryptionServiceHandlerServer(ctx context.Context, mux *runtime.ServeMux, server MiddleendEncryptionServiceServer) error { + + mux.Handle("POST", pattern_MiddleendEncryptionService_CreateEncryptedVolume_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/opi_api.storage.v1.MiddleendEncryptionService/CreateEncryptedVolume", runtime.WithHTTPPathPattern("/v1/encryptedVolumes")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_MiddleendEncryptionService_CreateEncryptedVolume_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_MiddleendEncryptionService_CreateEncryptedVolume_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("DELETE", pattern_MiddleendEncryptionService_DeleteEncryptedVolume_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/opi_api.storage.v1.MiddleendEncryptionService/DeleteEncryptedVolume", runtime.WithHTTPPathPattern("/v1/{name=encryptedVolumes/*}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_MiddleendEncryptionService_DeleteEncryptedVolume_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_MiddleendEncryptionService_DeleteEncryptedVolume_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("PATCH", pattern_MiddleendEncryptionService_UpdateEncryptedVolume_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/opi_api.storage.v1.MiddleendEncryptionService/UpdateEncryptedVolume", runtime.WithHTTPPathPattern("/v1/{encrypted_volume.name=encryptedVolumes/*}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_MiddleendEncryptionService_UpdateEncryptedVolume_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_MiddleendEncryptionService_UpdateEncryptedVolume_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_MiddleendEncryptionService_ListEncryptedVolumes_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/opi_api.storage.v1.MiddleendEncryptionService/ListEncryptedVolumes", runtime.WithHTTPPathPattern("/v1/{parent=volumes}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_MiddleendEncryptionService_ListEncryptedVolumes_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_MiddleendEncryptionService_ListEncryptedVolumes_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_MiddleendEncryptionService_GetEncryptedVolume_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/opi_api.storage.v1.MiddleendEncryptionService/GetEncryptedVolume", runtime.WithHTTPPathPattern("/v1/{name=encryptedVolumes/*}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_MiddleendEncryptionService_GetEncryptedVolume_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_MiddleendEncryptionService_GetEncryptedVolume_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_MiddleendEncryptionService_StatsEncryptedVolume_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/opi_api.storage.v1.MiddleendEncryptionService/StatsEncryptedVolume", runtime.WithHTTPPathPattern("/v1/{name=encryptedVolumes/*}:stats")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_MiddleendEncryptionService_StatsEncryptedVolume_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_MiddleendEncryptionService_StatsEncryptedVolume_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + return nil +} + +// RegisterMiddleendEncryptionServiceHandlerFromEndpoint is same as RegisterMiddleendEncryptionServiceHandler but +// automatically dials to "endpoint" and closes the connection when "ctx" gets done. +func RegisterMiddleendEncryptionServiceHandlerFromEndpoint(ctx context.Context, mux *runtime.ServeMux, endpoint string, opts []grpc.DialOption) (err error) { + conn, err := grpc.DialContext(ctx, endpoint, opts...) + if err != nil { + return err + } + defer func() { + if err != nil { + if cerr := conn.Close(); cerr != nil { + grpclog.Infof("Failed to close conn to %s: %v", endpoint, cerr) + } + return + } + go func() { + <-ctx.Done() + if cerr := conn.Close(); cerr != nil { + grpclog.Infof("Failed to close conn to %s: %v", endpoint, cerr) + } + }() + }() + + return RegisterMiddleendEncryptionServiceHandler(ctx, mux, conn) +} + +// RegisterMiddleendEncryptionServiceHandler registers the http handlers for service MiddleendEncryptionService to "mux". +// The handlers forward requests to the grpc endpoint over "conn". +func RegisterMiddleendEncryptionServiceHandler(ctx context.Context, mux *runtime.ServeMux, conn *grpc.ClientConn) error { + return RegisterMiddleendEncryptionServiceHandlerClient(ctx, mux, NewMiddleendEncryptionServiceClient(conn)) +} + +// RegisterMiddleendEncryptionServiceHandlerClient registers the http handlers for service MiddleendEncryptionService +// to "mux". The handlers forward requests to the grpc endpoint over the given implementation of "MiddleendEncryptionServiceClient". +// Note: the gRPC framework executes interceptors within the gRPC handler. If the passed in "MiddleendEncryptionServiceClient" +// doesn't go through the normal gRPC flow (creating a gRPC client etc.) then it will be up to the passed in +// "MiddleendEncryptionServiceClient" to call the correct interceptors. +func RegisterMiddleendEncryptionServiceHandlerClient(ctx context.Context, mux *runtime.ServeMux, client MiddleendEncryptionServiceClient) error { + + mux.Handle("POST", pattern_MiddleendEncryptionService_CreateEncryptedVolume_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/opi_api.storage.v1.MiddleendEncryptionService/CreateEncryptedVolume", runtime.WithHTTPPathPattern("/v1/encryptedVolumes")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_MiddleendEncryptionService_CreateEncryptedVolume_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_MiddleendEncryptionService_CreateEncryptedVolume_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("DELETE", pattern_MiddleendEncryptionService_DeleteEncryptedVolume_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/opi_api.storage.v1.MiddleendEncryptionService/DeleteEncryptedVolume", runtime.WithHTTPPathPattern("/v1/{name=encryptedVolumes/*}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_MiddleendEncryptionService_DeleteEncryptedVolume_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_MiddleendEncryptionService_DeleteEncryptedVolume_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("PATCH", pattern_MiddleendEncryptionService_UpdateEncryptedVolume_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/opi_api.storage.v1.MiddleendEncryptionService/UpdateEncryptedVolume", runtime.WithHTTPPathPattern("/v1/{encrypted_volume.name=encryptedVolumes/*}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_MiddleendEncryptionService_UpdateEncryptedVolume_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_MiddleendEncryptionService_UpdateEncryptedVolume_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_MiddleendEncryptionService_ListEncryptedVolumes_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/opi_api.storage.v1.MiddleendEncryptionService/ListEncryptedVolumes", runtime.WithHTTPPathPattern("/v1/{parent=volumes}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_MiddleendEncryptionService_ListEncryptedVolumes_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_MiddleendEncryptionService_ListEncryptedVolumes_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_MiddleendEncryptionService_GetEncryptedVolume_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/opi_api.storage.v1.MiddleendEncryptionService/GetEncryptedVolume", runtime.WithHTTPPathPattern("/v1/{name=encryptedVolumes/*}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_MiddleendEncryptionService_GetEncryptedVolume_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_MiddleendEncryptionService_GetEncryptedVolume_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_MiddleendEncryptionService_StatsEncryptedVolume_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/opi_api.storage.v1.MiddleendEncryptionService/StatsEncryptedVolume", runtime.WithHTTPPathPattern("/v1/{name=encryptedVolumes/*}:stats")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_MiddleendEncryptionService_StatsEncryptedVolume_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_MiddleendEncryptionService_StatsEncryptedVolume_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + return nil +} + +var ( + pattern_MiddleendEncryptionService_CreateEncryptedVolume_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"v1", "encryptedVolumes"}, "")) + + pattern_MiddleendEncryptionService_DeleteEncryptedVolume_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 2, 5, 2}, []string{"v1", "encryptedVolumes", "name"}, "")) + + pattern_MiddleendEncryptionService_UpdateEncryptedVolume_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 2, 5, 2}, []string{"v1", "encryptedVolumes", "encrypted_volume.name"}, "")) + + pattern_MiddleendEncryptionService_ListEncryptedVolumes_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 4, 1, 5, 2}, []string{"v1", "volumes", "parent"}, "")) + + pattern_MiddleendEncryptionService_GetEncryptedVolume_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 2, 5, 2}, []string{"v1", "encryptedVolumes", "name"}, "")) + + pattern_MiddleendEncryptionService_StatsEncryptedVolume_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 2, 5, 2}, []string{"v1", "encryptedVolumes", "name"}, "stats")) +) + +var ( + forward_MiddleendEncryptionService_CreateEncryptedVolume_0 = runtime.ForwardResponseMessage + + forward_MiddleendEncryptionService_DeleteEncryptedVolume_0 = runtime.ForwardResponseMessage + + forward_MiddleendEncryptionService_UpdateEncryptedVolume_0 = runtime.ForwardResponseMessage + + forward_MiddleendEncryptionService_ListEncryptedVolumes_0 = runtime.ForwardResponseMessage + + forward_MiddleendEncryptionService_GetEncryptedVolume_0 = runtime.ForwardResponseMessage + + forward_MiddleendEncryptionService_StatsEncryptedVolume_0 = runtime.ForwardResponseMessage +) diff --git a/storage/v1alpha1/gen/go/middleend_encryption_grpc.pb.go b/storage/v1alpha1/gen/go/middleend_encryption_grpc.pb.go index 51f39cee..e3572221 100644 --- a/storage/v1alpha1/gen/go/middleend_encryption_grpc.pb.go +++ b/storage/v1alpha1/gen/go/middleend_encryption_grpc.pb.go @@ -1,7 +1,12 @@ +// SPDX-License-Identifier: Apache-2.0 +// Copyright (c) 2022 Dell Inc, or its subsidiaries. +// {C} Copyright 2022 Pensando Systems Inc. All rights reserved +// Copyright (C) 2023 Intel Corporation + // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: -// - protoc-gen-go-grpc v1.2.0 -// - protoc v3.21.6 +// - protoc-gen-go-grpc v1.3.0 +// - protoc (unknown) // source: middleend_encryption.proto package _go @@ -19,6 +24,15 @@ import ( // Requires gRPC-Go v1.32.0 or later. const _ = grpc.SupportPackageIsVersion7 +const ( + MiddleendEncryptionService_CreateEncryptedVolume_FullMethodName = "/opi_api.storage.v1.MiddleendEncryptionService/CreateEncryptedVolume" + MiddleendEncryptionService_DeleteEncryptedVolume_FullMethodName = "/opi_api.storage.v1.MiddleendEncryptionService/DeleteEncryptedVolume" + MiddleendEncryptionService_UpdateEncryptedVolume_FullMethodName = "/opi_api.storage.v1.MiddleendEncryptionService/UpdateEncryptedVolume" + MiddleendEncryptionService_ListEncryptedVolumes_FullMethodName = "/opi_api.storage.v1.MiddleendEncryptionService/ListEncryptedVolumes" + MiddleendEncryptionService_GetEncryptedVolume_FullMethodName = "/opi_api.storage.v1.MiddleendEncryptionService/GetEncryptedVolume" + MiddleendEncryptionService_StatsEncryptedVolume_FullMethodName = "/opi_api.storage.v1.MiddleendEncryptionService/StatsEncryptedVolume" +) + // MiddleendEncryptionServiceClient is the client API for MiddleendEncryptionService service. // // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. @@ -47,7 +61,7 @@ func NewMiddleendEncryptionServiceClient(cc grpc.ClientConnInterface) MiddleendE func (c *middleendEncryptionServiceClient) CreateEncryptedVolume(ctx context.Context, in *CreateEncryptedVolumeRequest, opts ...grpc.CallOption) (*EncryptedVolume, error) { out := new(EncryptedVolume) - err := c.cc.Invoke(ctx, "/opi_api.storage.v1.MiddleendEncryptionService/CreateEncryptedVolume", in, out, opts...) + err := c.cc.Invoke(ctx, MiddleendEncryptionService_CreateEncryptedVolume_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -56,7 +70,7 @@ func (c *middleendEncryptionServiceClient) CreateEncryptedVolume(ctx context.Con func (c *middleendEncryptionServiceClient) DeleteEncryptedVolume(ctx context.Context, in *DeleteEncryptedVolumeRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) { out := new(emptypb.Empty) - err := c.cc.Invoke(ctx, "/opi_api.storage.v1.MiddleendEncryptionService/DeleteEncryptedVolume", in, out, opts...) + err := c.cc.Invoke(ctx, MiddleendEncryptionService_DeleteEncryptedVolume_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -65,7 +79,7 @@ func (c *middleendEncryptionServiceClient) DeleteEncryptedVolume(ctx context.Con func (c *middleendEncryptionServiceClient) UpdateEncryptedVolume(ctx context.Context, in *UpdateEncryptedVolumeRequest, opts ...grpc.CallOption) (*EncryptedVolume, error) { out := new(EncryptedVolume) - err := c.cc.Invoke(ctx, "/opi_api.storage.v1.MiddleendEncryptionService/UpdateEncryptedVolume", in, out, opts...) + err := c.cc.Invoke(ctx, MiddleendEncryptionService_UpdateEncryptedVolume_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -74,7 +88,7 @@ func (c *middleendEncryptionServiceClient) UpdateEncryptedVolume(ctx context.Con func (c *middleendEncryptionServiceClient) ListEncryptedVolumes(ctx context.Context, in *ListEncryptedVolumesRequest, opts ...grpc.CallOption) (*ListEncryptedVolumesResponse, error) { out := new(ListEncryptedVolumesResponse) - err := c.cc.Invoke(ctx, "/opi_api.storage.v1.MiddleendEncryptionService/ListEncryptedVolumes", in, out, opts...) + err := c.cc.Invoke(ctx, MiddleendEncryptionService_ListEncryptedVolumes_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -83,7 +97,7 @@ func (c *middleendEncryptionServiceClient) ListEncryptedVolumes(ctx context.Cont func (c *middleendEncryptionServiceClient) GetEncryptedVolume(ctx context.Context, in *GetEncryptedVolumeRequest, opts ...grpc.CallOption) (*EncryptedVolume, error) { out := new(EncryptedVolume) - err := c.cc.Invoke(ctx, "/opi_api.storage.v1.MiddleendEncryptionService/GetEncryptedVolume", in, out, opts...) + err := c.cc.Invoke(ctx, MiddleendEncryptionService_GetEncryptedVolume_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -92,7 +106,7 @@ func (c *middleendEncryptionServiceClient) GetEncryptedVolume(ctx context.Contex func (c *middleendEncryptionServiceClient) StatsEncryptedVolume(ctx context.Context, in *StatsEncryptedVolumeRequest, opts ...grpc.CallOption) (*StatsEncryptedVolumeResponse, error) { out := new(StatsEncryptedVolumeResponse) - err := c.cc.Invoke(ctx, "/opi_api.storage.v1.MiddleendEncryptionService/StatsEncryptedVolume", in, out, opts...) + err := c.cc.Invoke(ctx, MiddleendEncryptionService_StatsEncryptedVolume_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -100,7 +114,7 @@ func (c *middleendEncryptionServiceClient) StatsEncryptedVolume(ctx context.Cont } // MiddleendEncryptionServiceServer is the server API for MiddleendEncryptionService service. -// All implementations should embed UnimplementedMiddleendEncryptionServiceServer +// All implementations must embed UnimplementedMiddleendEncryptionServiceServer // for forward compatibility type MiddleendEncryptionServiceServer interface { // Create an Encrypted Volume @@ -115,9 +129,10 @@ type MiddleendEncryptionServiceServer interface { GetEncryptedVolume(context.Context, *GetEncryptedVolumeRequest) (*EncryptedVolume, error) // Get an Encrypted Volume statistics StatsEncryptedVolume(context.Context, *StatsEncryptedVolumeRequest) (*StatsEncryptedVolumeResponse, error) + mustEmbedUnimplementedMiddleendEncryptionServiceServer() } -// UnimplementedMiddleendEncryptionServiceServer should be embedded to have forward compatible implementations. +// UnimplementedMiddleendEncryptionServiceServer must be embedded to have forward compatible implementations. type UnimplementedMiddleendEncryptionServiceServer struct { } @@ -139,6 +154,8 @@ func (UnimplementedMiddleendEncryptionServiceServer) GetEncryptedVolume(context. func (UnimplementedMiddleendEncryptionServiceServer) StatsEncryptedVolume(context.Context, *StatsEncryptedVolumeRequest) (*StatsEncryptedVolumeResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method StatsEncryptedVolume not implemented") } +func (UnimplementedMiddleendEncryptionServiceServer) mustEmbedUnimplementedMiddleendEncryptionServiceServer() { +} // UnsafeMiddleendEncryptionServiceServer may be embedded to opt out of forward compatibility for this service. // Use of this interface is not recommended, as added methods to MiddleendEncryptionServiceServer will @@ -161,7 +178,7 @@ func _MiddleendEncryptionService_CreateEncryptedVolume_Handler(srv interface{}, } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/opi_api.storage.v1.MiddleendEncryptionService/CreateEncryptedVolume", + FullMethod: MiddleendEncryptionService_CreateEncryptedVolume_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(MiddleendEncryptionServiceServer).CreateEncryptedVolume(ctx, req.(*CreateEncryptedVolumeRequest)) @@ -179,7 +196,7 @@ func _MiddleendEncryptionService_DeleteEncryptedVolume_Handler(srv interface{}, } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/opi_api.storage.v1.MiddleendEncryptionService/DeleteEncryptedVolume", + FullMethod: MiddleendEncryptionService_DeleteEncryptedVolume_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(MiddleendEncryptionServiceServer).DeleteEncryptedVolume(ctx, req.(*DeleteEncryptedVolumeRequest)) @@ -197,7 +214,7 @@ func _MiddleendEncryptionService_UpdateEncryptedVolume_Handler(srv interface{}, } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/opi_api.storage.v1.MiddleendEncryptionService/UpdateEncryptedVolume", + FullMethod: MiddleendEncryptionService_UpdateEncryptedVolume_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(MiddleendEncryptionServiceServer).UpdateEncryptedVolume(ctx, req.(*UpdateEncryptedVolumeRequest)) @@ -215,7 +232,7 @@ func _MiddleendEncryptionService_ListEncryptedVolumes_Handler(srv interface{}, c } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/opi_api.storage.v1.MiddleendEncryptionService/ListEncryptedVolumes", + FullMethod: MiddleendEncryptionService_ListEncryptedVolumes_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(MiddleendEncryptionServiceServer).ListEncryptedVolumes(ctx, req.(*ListEncryptedVolumesRequest)) @@ -233,7 +250,7 @@ func _MiddleendEncryptionService_GetEncryptedVolume_Handler(srv interface{}, ctx } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/opi_api.storage.v1.MiddleendEncryptionService/GetEncryptedVolume", + FullMethod: MiddleendEncryptionService_GetEncryptedVolume_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(MiddleendEncryptionServiceServer).GetEncryptedVolume(ctx, req.(*GetEncryptedVolumeRequest)) @@ -251,7 +268,7 @@ func _MiddleendEncryptionService_StatsEncryptedVolume_Handler(srv interface{}, c } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/opi_api.storage.v1.MiddleendEncryptionService/StatsEncryptedVolume", + FullMethod: MiddleendEncryptionService_StatsEncryptedVolume_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(MiddleendEncryptionServiceServer).StatsEncryptedVolume(ctx, req.(*StatsEncryptedVolumeRequest)) diff --git a/storage/v1alpha1/gen/go/middleend_qos_volume.pb.go b/storage/v1alpha1/gen/go/middleend_qos_volume.pb.go index 7eba39fc..0739dd11 100644 --- a/storage/v1alpha1/gen/go/middleend_qos_volume.pb.go +++ b/storage/v1alpha1/gen/go/middleend_qos_volume.pb.go @@ -3,8 +3,8 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.1 -// protoc v3.21.6 +// protoc-gen-go v1.31.0 +// protoc (unknown) // source: middleend_qos_volume.proto package _go @@ -732,56 +732,56 @@ var file_middleend_qos_volume_proto_rawDesc = []byte{ 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x51, 0x6f, 0x73, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x6f, 0x73, 0x56, - 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x22, 0x3d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1c, 0x22, 0x0e, 0x2f, - 0x76, 0x31, 0x2f, 0x71, 0x6f, 0x73, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x3a, 0x0a, 0x71, - 0x6f, 0x73, 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0xda, 0x41, 0x18, 0x71, 0x6f, 0x73, 0x5f, - 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x2c, 0x71, 0x6f, 0x73, 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, - 0x65, 0x5f, 0x69, 0x64, 0x12, 0x7d, 0x0a, 0x0f, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x51, 0x6f, + 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x22, 0x3d, 0xda, 0x41, 0x18, 0x71, 0x6f, 0x73, 0x5f, 0x76, 0x6f, + 0x6c, 0x75, 0x6d, 0x65, 0x2c, 0x71, 0x6f, 0x73, 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, + 0x69, 0x64, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1c, 0x3a, 0x0a, 0x71, 0x6f, 0x73, 0x5f, 0x76, 0x6f, + 0x6c, 0x75, 0x6d, 0x65, 0x22, 0x0e, 0x2f, 0x76, 0x31, 0x2f, 0x71, 0x6f, 0x73, 0x56, 0x6f, 0x6c, + 0x75, 0x6d, 0x65, 0x73, 0x12, 0x7d, 0x0a, 0x0f, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x51, 0x6f, 0x73, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x12, 0x2a, 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, 0x51, 0x6f, 0x73, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 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, 0x26, 0x82, 0xd3, 0xe4, - 0x93, 0x02, 0x19, 0x2a, 0x17, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x71, - 0x6f, 0x73, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0xda, 0x41, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x12, 0xad, 0x01, 0x0a, 0x0f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x51, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x26, 0xda, 0x41, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x19, 0x2a, 0x17, 0x2f, 0x76, 0x31, 0x2f, + 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x71, 0x6f, 0x73, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, + 0x2f, 0x2a, 0x7d, 0x12, 0xad, 0x01, 0x0a, 0x0f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x51, 0x6f, 0x73, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x12, 0x2a, 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, 0x51, 0x6f, 0x73, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x6f, 0x73, 0x56, 0x6f, 0x6c, 0x75, - 0x6d, 0x65, 0x22, 0x4f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x30, 0x32, 0x22, 0x2f, 0x76, 0x31, 0x2f, - 0x7b, 0x71, 0x6f, 0x73, 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x2e, 0x6e, 0x61, 0x6d, 0x65, - 0x3d, 0x71, 0x6f, 0x73, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x0a, - 0x71, 0x6f, 0x73, 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0xda, 0x41, 0x16, 0x71, 0x6f, 0x73, - 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x2c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, - 0x61, 0x73, 0x6b, 0x12, 0x8e, 0x01, 0x0a, 0x0e, 0x4c, 0x69, 0x73, 0x74, 0x51, 0x6f, 0x73, 0x56, + 0x6d, 0x65, 0x22, 0x4f, 0xda, 0x41, 0x16, 0x71, 0x6f, 0x73, 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, + 0x65, 0x2c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x30, 0x3a, 0x0a, 0x71, 0x6f, 0x73, 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x32, + 0x22, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x71, 0x6f, 0x73, 0x5f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, + 0x2e, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x71, 0x6f, 0x73, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, + 0x2f, 0x2a, 0x7d, 0x12, 0x8e, 0x01, 0x0a, 0x0e, 0x4c, 0x69, 0x73, 0x74, 0x51, 0x6f, 0x73, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x12, 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, 0x51, 0x6f, 0x73, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x51, 0x6f, 0x73, 0x56, 0x6f, - 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x25, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x16, 0x12, 0x14, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, - 0x6e, 0x74, 0x3d, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x7d, 0xda, 0x41, 0x06, 0x70, 0x61, - 0x72, 0x65, 0x6e, 0x74, 0x12, 0x7e, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x51, 0x6f, 0x73, 0x56, 0x6f, + 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x25, 0xda, + 0x41, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x16, 0x12, 0x14, + 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x76, 0x6f, 0x6c, 0x75, + 0x6d, 0x65, 0x73, 0x7d, 0x12, 0x7e, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x51, 0x6f, 0x73, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x12, 0x27, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x51, 0x6f, 0x73, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, - 0x76, 0x31, 0x2e, 0x51, 0x6f, 0x73, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x22, 0x26, 0x82, 0xd3, - 0xe4, 0x93, 0x02, 0x19, 0x12, 0x17, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, - 0x71, 0x6f, 0x73, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0xda, 0x41, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x95, 0x01, 0x0a, 0x0e, 0x53, 0x74, 0x61, 0x74, 0x73, 0x51, 0x6f, + 0x76, 0x31, 0x2e, 0x51, 0x6f, 0x73, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x22, 0x26, 0xda, 0x41, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x19, 0x12, 0x17, 0x2f, 0x76, 0x31, + 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x71, 0x6f, 0x73, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, + 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0x95, 0x01, 0x0a, 0x0e, 0x53, 0x74, 0x61, 0x74, 0x73, 0x51, 0x6f, 0x73, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x12, 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, 0x51, 0x6f, 0x73, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 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, 0x51, 0x6f, 0x73, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2c, - 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1f, 0x12, 0x1d, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, - 0x65, 0x3d, 0x71, 0x6f, 0x73, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, - 0x73, 0x74, 0x61, 0x74, 0x73, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x66, 0x0a, 0x12, + 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1f, 0x12, 0x1d, 0x2f, + 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x71, 0x6f, 0x73, 0x56, 0x6f, 0x6c, 0x75, + 0x6d, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x73, 0x74, 0x61, 0x74, 0x73, 0x42, 0x66, 0x0a, 0x12, 0x6f, 0x70, 0x69, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x31, 0x42, 0x17, 0x4d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x65, 0x6e, 0x64, 0x51, 0x6f, 0x73, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x35, 0x67, diff --git a/storage/v1alpha1/gen/go/middleend_qos_volume.pb.gw.go b/storage/v1alpha1/gen/go/middleend_qos_volume.pb.gw.go new file mode 100644 index 00000000..a51eb36c --- /dev/null +++ b/storage/v1alpha1/gen/go/middleend_qos_volume.pb.gw.go @@ -0,0 +1,788 @@ +// Code generated by protoc-gen-grpc-gateway. DO NOT EDIT. +// source: middleend_qos_volume.proto + +/* +Package _go is a reverse proxy. + +It translates gRPC into RESTful JSON APIs. +*/ +package _go + +import ( + "context" + "io" + "net/http" + + "github.com/grpc-ecosystem/grpc-gateway/v2/runtime" + "github.com/grpc-ecosystem/grpc-gateway/v2/utilities" + "google.golang.org/grpc" + "google.golang.org/grpc/codes" + "google.golang.org/grpc/grpclog" + "google.golang.org/grpc/metadata" + "google.golang.org/grpc/status" + "google.golang.org/protobuf/proto" +) + +// Suppress "imported and not used" errors +var _ codes.Code +var _ io.Reader +var _ status.Status +var _ = runtime.String +var _ = utilities.NewDoubleArray +var _ = metadata.Join + +var ( + filter_MiddleendQosVolumeService_CreateQosVolume_0 = &utilities.DoubleArray{Encoding: map[string]int{"qos_volume": 0, "qosVolume": 1}, Base: []int{1, 1, 2, 0, 0}, Check: []int{0, 1, 1, 2, 3}} +) + +func request_MiddleendQosVolumeService_CreateQosVolume_0(ctx context.Context, marshaler runtime.Marshaler, client MiddleendQosVolumeServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq CreateQosVolumeRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq.QosVolume); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_MiddleendQosVolumeService_CreateQosVolume_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.CreateQosVolume(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_MiddleendQosVolumeService_CreateQosVolume_0(ctx context.Context, marshaler runtime.Marshaler, server MiddleendQosVolumeServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq CreateQosVolumeRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq.QosVolume); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_MiddleendQosVolumeService_CreateQosVolume_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.CreateQosVolume(ctx, &protoReq) + return msg, metadata, err + +} + +var ( + filter_MiddleendQosVolumeService_DeleteQosVolume_0 = &utilities.DoubleArray{Encoding: map[string]int{"name": 0}, Base: []int{1, 2, 0, 0}, Check: []int{0, 1, 2, 2}} +) + +func request_MiddleendQosVolumeService_DeleteQosVolume_0(ctx context.Context, marshaler runtime.Marshaler, client MiddleendQosVolumeServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq DeleteQosVolumeRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") + } + + protoReq.Name, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_MiddleendQosVolumeService_DeleteQosVolume_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.DeleteQosVolume(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_MiddleendQosVolumeService_DeleteQosVolume_0(ctx context.Context, marshaler runtime.Marshaler, server MiddleendQosVolumeServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq DeleteQosVolumeRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") + } + + protoReq.Name, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_MiddleendQosVolumeService_DeleteQosVolume_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.DeleteQosVolume(ctx, &protoReq) + return msg, metadata, err + +} + +var ( + filter_MiddleendQosVolumeService_UpdateQosVolume_0 = &utilities.DoubleArray{Encoding: map[string]int{"qos_volume": 0, "qosVolume": 1, "name": 2}, Base: []int{1, 3, 4, 5, 2, 0, 0, 0, 0}, Check: []int{0, 1, 1, 1, 2, 5, 2, 3, 4}} +) + +func request_MiddleendQosVolumeService_UpdateQosVolume_0(ctx context.Context, marshaler runtime.Marshaler, client MiddleendQosVolumeServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq UpdateQosVolumeRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq.QosVolume); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if protoReq.UpdateMask == nil || len(protoReq.UpdateMask.GetPaths()) == 0 { + if fieldMask, err := runtime.FieldMaskFromRequestBody(newReader(), protoReq.QosVolume); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } else { + protoReq.UpdateMask = fieldMask + } + } + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["qos_volume.name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "qos_volume.name") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "qos_volume.name", val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "qos_volume.name", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_MiddleendQosVolumeService_UpdateQosVolume_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.UpdateQosVolume(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_MiddleendQosVolumeService_UpdateQosVolume_0(ctx context.Context, marshaler runtime.Marshaler, server MiddleendQosVolumeServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq UpdateQosVolumeRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq.QosVolume); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if protoReq.UpdateMask == nil || len(protoReq.UpdateMask.GetPaths()) == 0 { + if fieldMask, err := runtime.FieldMaskFromRequestBody(newReader(), protoReq.QosVolume); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } else { + protoReq.UpdateMask = fieldMask + } + } + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["qos_volume.name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "qos_volume.name") + } + + err = runtime.PopulateFieldFromPath(&protoReq, "qos_volume.name", val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "qos_volume.name", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_MiddleendQosVolumeService_UpdateQosVolume_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.UpdateQosVolume(ctx, &protoReq) + return msg, metadata, err + +} + +var ( + filter_MiddleendQosVolumeService_ListQosVolumes_0 = &utilities.DoubleArray{Encoding: map[string]int{"parent": 0}, Base: []int{1, 2, 0, 0}, Check: []int{0, 1, 2, 2}} +) + +func request_MiddleendQosVolumeService_ListQosVolumes_0(ctx context.Context, marshaler runtime.Marshaler, client MiddleendQosVolumeServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq ListQosVolumesRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["parent"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "parent") + } + + protoReq.Parent, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "parent", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_MiddleendQosVolumeService_ListQosVolumes_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.ListQosVolumes(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_MiddleendQosVolumeService_ListQosVolumes_0(ctx context.Context, marshaler runtime.Marshaler, server MiddleendQosVolumeServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq ListQosVolumesRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["parent"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "parent") + } + + protoReq.Parent, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "parent", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_MiddleendQosVolumeService_ListQosVolumes_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.ListQosVolumes(ctx, &protoReq) + return msg, metadata, err + +} + +func request_MiddleendQosVolumeService_GetQosVolume_0(ctx context.Context, marshaler runtime.Marshaler, client MiddleendQosVolumeServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetQosVolumeRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") + } + + protoReq.Name, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) + } + + msg, err := client.GetQosVolume(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_MiddleendQosVolumeService_GetQosVolume_0(ctx context.Context, marshaler runtime.Marshaler, server MiddleendQosVolumeServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetQosVolumeRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") + } + + protoReq.Name, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) + } + + msg, err := server.GetQosVolume(ctx, &protoReq) + return msg, metadata, err + +} + +func request_MiddleendQosVolumeService_StatsQosVolume_0(ctx context.Context, marshaler runtime.Marshaler, client MiddleendQosVolumeServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq StatsQosVolumeRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") + } + + protoReq.Name, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) + } + + msg, err := client.StatsQosVolume(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_MiddleendQosVolumeService_StatsQosVolume_0(ctx context.Context, marshaler runtime.Marshaler, server MiddleendQosVolumeServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq StatsQosVolumeRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") + } + + protoReq.Name, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) + } + + msg, err := server.StatsQosVolume(ctx, &protoReq) + return msg, metadata, err + +} + +// RegisterMiddleendQosVolumeServiceHandlerServer registers the http handlers for service MiddleendQosVolumeService to "mux". +// UnaryRPC :call MiddleendQosVolumeServiceServer directly. +// StreamingRPC :currently unsupported pending https://github.com/grpc/grpc-go/issues/906. +// Note that using this registration option will cause many gRPC library features to stop working. Consider using RegisterMiddleendQosVolumeServiceHandlerFromEndpoint instead. +func RegisterMiddleendQosVolumeServiceHandlerServer(ctx context.Context, mux *runtime.ServeMux, server MiddleendQosVolumeServiceServer) error { + + mux.Handle("POST", pattern_MiddleendQosVolumeService_CreateQosVolume_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/opi_api.storage.v1.MiddleendQosVolumeService/CreateQosVolume", runtime.WithHTTPPathPattern("/v1/qosVolumes")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_MiddleendQosVolumeService_CreateQosVolume_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_MiddleendQosVolumeService_CreateQosVolume_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("DELETE", pattern_MiddleendQosVolumeService_DeleteQosVolume_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/opi_api.storage.v1.MiddleendQosVolumeService/DeleteQosVolume", runtime.WithHTTPPathPattern("/v1/{name=qosVolumes/*}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_MiddleendQosVolumeService_DeleteQosVolume_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_MiddleendQosVolumeService_DeleteQosVolume_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("PATCH", pattern_MiddleendQosVolumeService_UpdateQosVolume_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/opi_api.storage.v1.MiddleendQosVolumeService/UpdateQosVolume", runtime.WithHTTPPathPattern("/v1/{qos_volume.name=qosVolumes/*}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_MiddleendQosVolumeService_UpdateQosVolume_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_MiddleendQosVolumeService_UpdateQosVolume_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_MiddleendQosVolumeService_ListQosVolumes_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/opi_api.storage.v1.MiddleendQosVolumeService/ListQosVolumes", runtime.WithHTTPPathPattern("/v1/{parent=volumes}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_MiddleendQosVolumeService_ListQosVolumes_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_MiddleendQosVolumeService_ListQosVolumes_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_MiddleendQosVolumeService_GetQosVolume_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/opi_api.storage.v1.MiddleendQosVolumeService/GetQosVolume", runtime.WithHTTPPathPattern("/v1/{name=qosVolumes/*}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_MiddleendQosVolumeService_GetQosVolume_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_MiddleendQosVolumeService_GetQosVolume_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_MiddleendQosVolumeService_StatsQosVolume_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/opi_api.storage.v1.MiddleendQosVolumeService/StatsQosVolume", runtime.WithHTTPPathPattern("/v1/{name=qosVolumes/*}:stats")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_MiddleendQosVolumeService_StatsQosVolume_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_MiddleendQosVolumeService_StatsQosVolume_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + return nil +} + +// RegisterMiddleendQosVolumeServiceHandlerFromEndpoint is same as RegisterMiddleendQosVolumeServiceHandler but +// automatically dials to "endpoint" and closes the connection when "ctx" gets done. +func RegisterMiddleendQosVolumeServiceHandlerFromEndpoint(ctx context.Context, mux *runtime.ServeMux, endpoint string, opts []grpc.DialOption) (err error) { + conn, err := grpc.DialContext(ctx, endpoint, opts...) + if err != nil { + return err + } + defer func() { + if err != nil { + if cerr := conn.Close(); cerr != nil { + grpclog.Infof("Failed to close conn to %s: %v", endpoint, cerr) + } + return + } + go func() { + <-ctx.Done() + if cerr := conn.Close(); cerr != nil { + grpclog.Infof("Failed to close conn to %s: %v", endpoint, cerr) + } + }() + }() + + return RegisterMiddleendQosVolumeServiceHandler(ctx, mux, conn) +} + +// RegisterMiddleendQosVolumeServiceHandler registers the http handlers for service MiddleendQosVolumeService to "mux". +// The handlers forward requests to the grpc endpoint over "conn". +func RegisterMiddleendQosVolumeServiceHandler(ctx context.Context, mux *runtime.ServeMux, conn *grpc.ClientConn) error { + return RegisterMiddleendQosVolumeServiceHandlerClient(ctx, mux, NewMiddleendQosVolumeServiceClient(conn)) +} + +// RegisterMiddleendQosVolumeServiceHandlerClient registers the http handlers for service MiddleendQosVolumeService +// to "mux". The handlers forward requests to the grpc endpoint over the given implementation of "MiddleendQosVolumeServiceClient". +// Note: the gRPC framework executes interceptors within the gRPC handler. If the passed in "MiddleendQosVolumeServiceClient" +// doesn't go through the normal gRPC flow (creating a gRPC client etc.) then it will be up to the passed in +// "MiddleendQosVolumeServiceClient" to call the correct interceptors. +func RegisterMiddleendQosVolumeServiceHandlerClient(ctx context.Context, mux *runtime.ServeMux, client MiddleendQosVolumeServiceClient) error { + + mux.Handle("POST", pattern_MiddleendQosVolumeService_CreateQosVolume_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/opi_api.storage.v1.MiddleendQosVolumeService/CreateQosVolume", runtime.WithHTTPPathPattern("/v1/qosVolumes")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_MiddleendQosVolumeService_CreateQosVolume_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_MiddleendQosVolumeService_CreateQosVolume_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("DELETE", pattern_MiddleendQosVolumeService_DeleteQosVolume_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/opi_api.storage.v1.MiddleendQosVolumeService/DeleteQosVolume", runtime.WithHTTPPathPattern("/v1/{name=qosVolumes/*}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_MiddleendQosVolumeService_DeleteQosVolume_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_MiddleendQosVolumeService_DeleteQosVolume_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("PATCH", pattern_MiddleendQosVolumeService_UpdateQosVolume_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/opi_api.storage.v1.MiddleendQosVolumeService/UpdateQosVolume", runtime.WithHTTPPathPattern("/v1/{qos_volume.name=qosVolumes/*}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_MiddleendQosVolumeService_UpdateQosVolume_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_MiddleendQosVolumeService_UpdateQosVolume_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_MiddleendQosVolumeService_ListQosVolumes_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/opi_api.storage.v1.MiddleendQosVolumeService/ListQosVolumes", runtime.WithHTTPPathPattern("/v1/{parent=volumes}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_MiddleendQosVolumeService_ListQosVolumes_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_MiddleendQosVolumeService_ListQosVolumes_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_MiddleendQosVolumeService_GetQosVolume_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/opi_api.storage.v1.MiddleendQosVolumeService/GetQosVolume", runtime.WithHTTPPathPattern("/v1/{name=qosVolumes/*}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_MiddleendQosVolumeService_GetQosVolume_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_MiddleendQosVolumeService_GetQosVolume_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_MiddleendQosVolumeService_StatsQosVolume_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/opi_api.storage.v1.MiddleendQosVolumeService/StatsQosVolume", runtime.WithHTTPPathPattern("/v1/{name=qosVolumes/*}:stats")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_MiddleendQosVolumeService_StatsQosVolume_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_MiddleendQosVolumeService_StatsQosVolume_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + return nil +} + +var ( + pattern_MiddleendQosVolumeService_CreateQosVolume_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"v1", "qosVolumes"}, "")) + + pattern_MiddleendQosVolumeService_DeleteQosVolume_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 2, 5, 2}, []string{"v1", "qosVolumes", "name"}, "")) + + pattern_MiddleendQosVolumeService_UpdateQosVolume_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 2, 5, 2}, []string{"v1", "qosVolumes", "qos_volume.name"}, "")) + + pattern_MiddleendQosVolumeService_ListQosVolumes_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 4, 1, 5, 2}, []string{"v1", "volumes", "parent"}, "")) + + pattern_MiddleendQosVolumeService_GetQosVolume_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 2, 5, 2}, []string{"v1", "qosVolumes", "name"}, "")) + + pattern_MiddleendQosVolumeService_StatsQosVolume_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 2, 5, 2}, []string{"v1", "qosVolumes", "name"}, "stats")) +) + +var ( + forward_MiddleendQosVolumeService_CreateQosVolume_0 = runtime.ForwardResponseMessage + + forward_MiddleendQosVolumeService_DeleteQosVolume_0 = runtime.ForwardResponseMessage + + forward_MiddleendQosVolumeService_UpdateQosVolume_0 = runtime.ForwardResponseMessage + + forward_MiddleendQosVolumeService_ListQosVolumes_0 = runtime.ForwardResponseMessage + + forward_MiddleendQosVolumeService_GetQosVolume_0 = runtime.ForwardResponseMessage + + forward_MiddleendQosVolumeService_StatsQosVolume_0 = runtime.ForwardResponseMessage +) diff --git a/storage/v1alpha1/gen/go/middleend_qos_volume_grpc.pb.go b/storage/v1alpha1/gen/go/middleend_qos_volume_grpc.pb.go index 3c4d640f..6660f2fe 100644 --- a/storage/v1alpha1/gen/go/middleend_qos_volume_grpc.pb.go +++ b/storage/v1alpha1/gen/go/middleend_qos_volume_grpc.pb.go @@ -1,7 +1,10 @@ +// SPDX-License-Identifier: Apache-2.0 +// Copyright (C) 2023 Intel Corporation + // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: -// - protoc-gen-go-grpc v1.2.0 -// - protoc v3.21.6 +// - protoc-gen-go-grpc v1.3.0 +// - protoc (unknown) // source: middleend_qos_volume.proto package _go @@ -19,6 +22,15 @@ import ( // Requires gRPC-Go v1.32.0 or later. const _ = grpc.SupportPackageIsVersion7 +const ( + MiddleendQosVolumeService_CreateQosVolume_FullMethodName = "/opi_api.storage.v1.MiddleendQosVolumeService/CreateQosVolume" + MiddleendQosVolumeService_DeleteQosVolume_FullMethodName = "/opi_api.storage.v1.MiddleendQosVolumeService/DeleteQosVolume" + MiddleendQosVolumeService_UpdateQosVolume_FullMethodName = "/opi_api.storage.v1.MiddleendQosVolumeService/UpdateQosVolume" + MiddleendQosVolumeService_ListQosVolumes_FullMethodName = "/opi_api.storage.v1.MiddleendQosVolumeService/ListQosVolumes" + MiddleendQosVolumeService_GetQosVolume_FullMethodName = "/opi_api.storage.v1.MiddleendQosVolumeService/GetQosVolume" + MiddleendQosVolumeService_StatsQosVolume_FullMethodName = "/opi_api.storage.v1.MiddleendQosVolumeService/StatsQosVolume" +) + // MiddleendQosVolumeServiceClient is the client API for MiddleendQosVolumeService service. // // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. @@ -47,7 +59,7 @@ func NewMiddleendQosVolumeServiceClient(cc grpc.ClientConnInterface) MiddleendQo func (c *middleendQosVolumeServiceClient) CreateQosVolume(ctx context.Context, in *CreateQosVolumeRequest, opts ...grpc.CallOption) (*QosVolume, error) { out := new(QosVolume) - err := c.cc.Invoke(ctx, "/opi_api.storage.v1.MiddleendQosVolumeService/CreateQosVolume", in, out, opts...) + err := c.cc.Invoke(ctx, MiddleendQosVolumeService_CreateQosVolume_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -56,7 +68,7 @@ func (c *middleendQosVolumeServiceClient) CreateQosVolume(ctx context.Context, i func (c *middleendQosVolumeServiceClient) DeleteQosVolume(ctx context.Context, in *DeleteQosVolumeRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) { out := new(emptypb.Empty) - err := c.cc.Invoke(ctx, "/opi_api.storage.v1.MiddleendQosVolumeService/DeleteQosVolume", in, out, opts...) + err := c.cc.Invoke(ctx, MiddleendQosVolumeService_DeleteQosVolume_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -65,7 +77,7 @@ func (c *middleendQosVolumeServiceClient) DeleteQosVolume(ctx context.Context, i func (c *middleendQosVolumeServiceClient) UpdateQosVolume(ctx context.Context, in *UpdateQosVolumeRequest, opts ...grpc.CallOption) (*QosVolume, error) { out := new(QosVolume) - err := c.cc.Invoke(ctx, "/opi_api.storage.v1.MiddleendQosVolumeService/UpdateQosVolume", in, out, opts...) + err := c.cc.Invoke(ctx, MiddleendQosVolumeService_UpdateQosVolume_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -74,7 +86,7 @@ func (c *middleendQosVolumeServiceClient) UpdateQosVolume(ctx context.Context, i func (c *middleendQosVolumeServiceClient) ListQosVolumes(ctx context.Context, in *ListQosVolumesRequest, opts ...grpc.CallOption) (*ListQosVolumesResponse, error) { out := new(ListQosVolumesResponse) - err := c.cc.Invoke(ctx, "/opi_api.storage.v1.MiddleendQosVolumeService/ListQosVolumes", in, out, opts...) + err := c.cc.Invoke(ctx, MiddleendQosVolumeService_ListQosVolumes_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -83,7 +95,7 @@ func (c *middleendQosVolumeServiceClient) ListQosVolumes(ctx context.Context, in func (c *middleendQosVolumeServiceClient) GetQosVolume(ctx context.Context, in *GetQosVolumeRequest, opts ...grpc.CallOption) (*QosVolume, error) { out := new(QosVolume) - err := c.cc.Invoke(ctx, "/opi_api.storage.v1.MiddleendQosVolumeService/GetQosVolume", in, out, opts...) + err := c.cc.Invoke(ctx, MiddleendQosVolumeService_GetQosVolume_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -92,7 +104,7 @@ func (c *middleendQosVolumeServiceClient) GetQosVolume(ctx context.Context, in * func (c *middleendQosVolumeServiceClient) StatsQosVolume(ctx context.Context, in *StatsQosVolumeRequest, opts ...grpc.CallOption) (*StatsQosVolumeResponse, error) { out := new(StatsQosVolumeResponse) - err := c.cc.Invoke(ctx, "/opi_api.storage.v1.MiddleendQosVolumeService/StatsQosVolume", in, out, opts...) + err := c.cc.Invoke(ctx, MiddleendQosVolumeService_StatsQosVolume_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -100,7 +112,7 @@ func (c *middleendQosVolumeServiceClient) StatsQosVolume(ctx context.Context, in } // MiddleendQosVolumeServiceServer is the server API for MiddleendQosVolumeService service. -// All implementations should embed UnimplementedMiddleendQosVolumeServiceServer +// All implementations must embed UnimplementedMiddleendQosVolumeServiceServer // for forward compatibility type MiddleendQosVolumeServiceServer interface { // Create an Qos Volume @@ -115,9 +127,10 @@ type MiddleendQosVolumeServiceServer interface { GetQosVolume(context.Context, *GetQosVolumeRequest) (*QosVolume, error) // Get an Qos Volume statistics StatsQosVolume(context.Context, *StatsQosVolumeRequest) (*StatsQosVolumeResponse, error) + mustEmbedUnimplementedMiddleendQosVolumeServiceServer() } -// UnimplementedMiddleendQosVolumeServiceServer should be embedded to have forward compatible implementations. +// UnimplementedMiddleendQosVolumeServiceServer must be embedded to have forward compatible implementations. type UnimplementedMiddleendQosVolumeServiceServer struct { } @@ -139,6 +152,8 @@ func (UnimplementedMiddleendQosVolumeServiceServer) GetQosVolume(context.Context func (UnimplementedMiddleendQosVolumeServiceServer) StatsQosVolume(context.Context, *StatsQosVolumeRequest) (*StatsQosVolumeResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method StatsQosVolume not implemented") } +func (UnimplementedMiddleendQosVolumeServiceServer) mustEmbedUnimplementedMiddleendQosVolumeServiceServer() { +} // UnsafeMiddleendQosVolumeServiceServer may be embedded to opt out of forward compatibility for this service. // Use of this interface is not recommended, as added methods to MiddleendQosVolumeServiceServer will @@ -161,7 +176,7 @@ func _MiddleendQosVolumeService_CreateQosVolume_Handler(srv interface{}, ctx con } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/opi_api.storage.v1.MiddleendQosVolumeService/CreateQosVolume", + FullMethod: MiddleendQosVolumeService_CreateQosVolume_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(MiddleendQosVolumeServiceServer).CreateQosVolume(ctx, req.(*CreateQosVolumeRequest)) @@ -179,7 +194,7 @@ func _MiddleendQosVolumeService_DeleteQosVolume_Handler(srv interface{}, ctx con } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/opi_api.storage.v1.MiddleendQosVolumeService/DeleteQosVolume", + FullMethod: MiddleendQosVolumeService_DeleteQosVolume_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(MiddleendQosVolumeServiceServer).DeleteQosVolume(ctx, req.(*DeleteQosVolumeRequest)) @@ -197,7 +212,7 @@ func _MiddleendQosVolumeService_UpdateQosVolume_Handler(srv interface{}, ctx con } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/opi_api.storage.v1.MiddleendQosVolumeService/UpdateQosVolume", + FullMethod: MiddleendQosVolumeService_UpdateQosVolume_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(MiddleendQosVolumeServiceServer).UpdateQosVolume(ctx, req.(*UpdateQosVolumeRequest)) @@ -215,7 +230,7 @@ func _MiddleendQosVolumeService_ListQosVolumes_Handler(srv interface{}, ctx cont } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/opi_api.storage.v1.MiddleendQosVolumeService/ListQosVolumes", + FullMethod: MiddleendQosVolumeService_ListQosVolumes_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(MiddleendQosVolumeServiceServer).ListQosVolumes(ctx, req.(*ListQosVolumesRequest)) @@ -233,7 +248,7 @@ func _MiddleendQosVolumeService_GetQosVolume_Handler(srv interface{}, ctx contex } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/opi_api.storage.v1.MiddleendQosVolumeService/GetQosVolume", + FullMethod: MiddleendQosVolumeService_GetQosVolume_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(MiddleendQosVolumeServiceServer).GetQosVolume(ctx, req.(*GetQosVolumeRequest)) @@ -251,7 +266,7 @@ func _MiddleendQosVolumeService_StatsQosVolume_Handler(srv interface{}, ctx cont } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/opi_api.storage.v1.MiddleendQosVolumeService/StatsQosVolume", + FullMethod: MiddleendQosVolumeService_StatsQosVolume_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(MiddleendQosVolumeServiceServer).StatsQosVolume(ctx, req.(*StatsQosVolumeRequest)) diff --git a/storage/v1alpha1/gen/go/opicommon.pb.go b/storage/v1alpha1/gen/go/opicommon.pb.go index c9eb632a..99532c2c 100644 --- a/storage/v1alpha1/gen/go/opicommon.pb.go +++ b/storage/v1alpha1/gen/go/opicommon.pb.go @@ -5,8 +5,8 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.1 -// protoc v3.21.6 +// protoc-gen-go v1.31.0 +// protoc (unknown) // source: opicommon.proto package _go @@ -103,34 +103,34 @@ const ( // Transport type is not specified NvmeTransportType_NVME_TRANSPORT_TYPE_UNSPECIFIED NvmeTransportType = 0 // Fibre channel transport type - NvmeTransportType_NVME_TRANSPORT_FC NvmeTransportType = 1 + NvmeTransportType_NVME_TRANSPORT_TYPE_FC NvmeTransportType = 1 // Pcie transport type - NvmeTransportType_NVME_TRANSPORT_PCIE NvmeTransportType = 2 + NvmeTransportType_NVME_TRANSPORT_TYPE_PCIE NvmeTransportType = 2 // RDMA transport type - NvmeTransportType_NVME_TRANSPORT_RDMA NvmeTransportType = 3 + NvmeTransportType_NVME_TRANSPORT_TYPE_RDMA NvmeTransportType = 3 // TCP transport type - NvmeTransportType_NVME_TRANSPORT_TCP NvmeTransportType = 4 + NvmeTransportType_NVME_TRANSPORT_TYPE_TCP NvmeTransportType = 4 // Custom transport type - NvmeTransportType_NVME_TRANSPORT_CUSTOM NvmeTransportType = 5 + NvmeTransportType_NVME_TRANSPORT_TYPE_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", + 1: "NVME_TRANSPORT_TYPE_FC", + 2: "NVME_TRANSPORT_TYPE_PCIE", + 3: "NVME_TRANSPORT_TYPE_RDMA", + 4: "NVME_TRANSPORT_TYPE_TCP", + 5: "NVME_TRANSPORT_TYPE_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, + "NVME_TRANSPORT_TYPE_FC": 1, + "NVME_TRANSPORT_TYPE_PCIE": 2, + "NVME_TRANSPORT_TYPE_RDMA": 3, + "NVME_TRANSPORT_TYPE_TCP": 4, + "NVME_TRANSPORT_TYPE_CUSTOM": 5, } ) @@ -168,34 +168,34 @@ const ( // Address family is not specified NvmeAddressFamily_NVME_ADDRESS_FAMILY_UNSPECIFIED NvmeAddressFamily = 0 // IPv4 address family - NvmeAddressFamily_NVME_ADRFAM_IPV4 NvmeAddressFamily = 1 + NvmeAddressFamily_NVME_ADDRESS_FAMILY_IPV4 NvmeAddressFamily = 1 // IPv6 address family - NvmeAddressFamily_NVME_ADRFAM_IPV6 NvmeAddressFamily = 2 + NvmeAddressFamily_NVME_ADDRESS_FAMILY_IPV6 NvmeAddressFamily = 2 // InfiniBand address family - NvmeAddressFamily_NVME_ADRFAM_IB NvmeAddressFamily = 3 + NvmeAddressFamily_NVME_ADDRESS_FAMILY_IB NvmeAddressFamily = 3 // Fibre channel address family - NvmeAddressFamily_NVME_ADRFAM_FC NvmeAddressFamily = 4 + NvmeAddressFamily_NVME_ADDRESS_FAMILY_FC NvmeAddressFamily = 4 // Intra host address family - NvmeAddressFamily_NVME_ADRFAM_INTRA_HOST NvmeAddressFamily = 5 + NvmeAddressFamily_NVME_ADDRESS_FAMILY_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", + 1: "NVME_ADDRESS_FAMILY_IPV4", + 2: "NVME_ADDRESS_FAMILY_IPV6", + 3: "NVME_ADDRESS_FAMILY_IB", + 4: "NVME_ADDRESS_FAMILY_FC", + 5: "NVME_ADDRESS_FAMILY_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, + "NVME_ADDRESS_FAMILY_IPV4": 1, + "NVME_ADDRESS_FAMILY_IPV6": 2, + "NVME_ADDRESS_FAMILY_IB": 3, + "NVME_ADDRESS_FAMILY_FC": 4, + "NVME_ADDRESS_FAMILY_INTRA_HOST": 5, } ) @@ -685,35 +685,39 @@ var file_opicommon_proto_rawDesc = []byte{ 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, + 0x36, 0x10, 0x06, 0x2a, 0xcd, 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, + 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1a, + 0x0a, 0x16, 0x4e, 0x56, 0x4d, 0x45, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x50, 0x4f, 0x52, 0x54, + 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x46, 0x43, 0x10, 0x01, 0x12, 0x1c, 0x0a, 0x18, 0x4e, 0x56, + 0x4d, 0x45, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x54, 0x59, 0x50, + 0x45, 0x5f, 0x50, 0x43, 0x49, 0x45, 0x10, 0x02, 0x12, 0x1c, 0x0a, 0x18, 0x4e, 0x56, 0x4d, 0x45, + 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, + 0x52, 0x44, 0x4d, 0x41, 0x10, 0x03, 0x12, 0x1b, 0x0a, 0x17, 0x4e, 0x56, 0x4d, 0x45, 0x5f, 0x54, + 0x52, 0x41, 0x4e, 0x53, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x54, 0x43, + 0x50, 0x10, 0x04, 0x12, 0x1e, 0x0a, 0x1a, 0x4e, 0x56, 0x4d, 0x45, 0x5f, 0x54, 0x52, 0x41, 0x4e, + 0x53, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x43, 0x55, 0x53, 0x54, 0x4f, + 0x4d, 0x10, 0x05, 0x2a, 0xd0, 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, 0x1c, + 0x0a, 0x18, 0x4e, 0x56, 0x4d, 0x45, 0x5f, 0x41, 0x44, 0x44, 0x52, 0x45, 0x53, 0x53, 0x5f, 0x46, + 0x41, 0x4d, 0x49, 0x4c, 0x59, 0x5f, 0x49, 0x50, 0x56, 0x34, 0x10, 0x01, 0x12, 0x1c, 0x0a, 0x18, + 0x4e, 0x56, 0x4d, 0x45, 0x5f, 0x41, 0x44, 0x44, 0x52, 0x45, 0x53, 0x53, 0x5f, 0x46, 0x41, 0x4d, + 0x49, 0x4c, 0x59, 0x5f, 0x49, 0x50, 0x56, 0x36, 0x10, 0x02, 0x12, 0x1a, 0x0a, 0x16, 0x4e, 0x56, + 0x4d, 0x45, 0x5f, 0x41, 0x44, 0x44, 0x52, 0x45, 0x53, 0x53, 0x5f, 0x46, 0x41, 0x4d, 0x49, 0x4c, + 0x59, 0x5f, 0x49, 0x42, 0x10, 0x03, 0x12, 0x1a, 0x0a, 0x16, 0x4e, 0x56, 0x4d, 0x45, 0x5f, 0x41, + 0x44, 0x44, 0x52, 0x45, 0x53, 0x53, 0x5f, 0x46, 0x41, 0x4d, 0x49, 0x4c, 0x59, 0x5f, 0x46, 0x43, + 0x10, 0x04, 0x12, 0x22, 0x0a, 0x1e, 0x4e, 0x56, 0x4d, 0x45, 0x5f, 0x41, 0x44, 0x44, 0x52, 0x45, + 0x53, 0x53, 0x5f, 0x46, 0x41, 0x4d, 0x49, 0x4c, 0x59, 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 ( diff --git a/storage/v1alpha1/gen/python/backend_aio_pb2.py b/storage/v1alpha1/gen/python/backend_aio_pb2.py index d8b29447..a4e8e79a 100644 --- a/storage/v1alpha1/gen/python/backend_aio_pb2.py +++ b/storage/v1alpha1/gen/python/backend_aio_pb2.py @@ -1,11 +1,12 @@ # -*- coding: utf-8 -*- # Generated by the protocol buffer compiler. DO NOT EDIT! # source: backend_aio.proto +# Protobuf Python Version: 4.25.2 """Generated protocol buffer code.""" -from google.protobuf.internal import builder as _builder from google.protobuf import descriptor as _descriptor from google.protobuf import descriptor_pool as _descriptor_pool from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder # @@protoc_insertion_point(imports) _sym_db = _symbol_database.Default() @@ -18,83 +19,80 @@ from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 from google.protobuf import field_mask_pb2 as google_dot_protobuf_dot_field__mask__pb2 import opicommon_pb2 as opicommon__pb2 -import uuid_pb2 as uuid__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x11\x62\x61\x63kend_aio.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\"\xe4\x01\n\tAioVolume\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x08\x12\x17\n\nblock_size\x18\x02 \x01(\x03\x42\x03\xe0\x41\x01\x12\x19\n\x0c\x62locks_count\x18\x03 \x01(\x03\x42\x03\xe0\x41\x01\x12*\n\x04uuid\x18\x04 \x01(\x0b\x32\x17.opi_api.common.v1.UuidB\x03\xe0\x41\x01\x12\x15\n\x08\x66ilename\x18\x05 \x01(\tB\x03\xe0\x41\x02:M\xea\x41J\n\x1copi_api.storage.v1/AioVolume\x12\x13\x61ioVolumes/{volume}*\naioVolumes2\taioVolume\"l\n\x16\x43reateAioVolumeRequest\x12\x36\n\naio_volume\x18\x01 \x01(\x0b\x32\x1d.opi_api.storage.v1.AioVolumeB\x03\xe0\x41\x02\x12\x1a\n\raio_volume_id\x18\x02 \x01(\tB\x03\xe0\x41\x01\"h\n\x16\x44\x65leteAioVolumeRequest\x12\x32\n\x04name\x18\x01 \x01(\tB$\xe0\x41\x02\xfa\x41\x1e\n\x1copi_api.storage.v1/AioVolume\x12\x1a\n\rallow_missing\x18\x02 \x01(\x08\x42\x03\xe0\x41\x01\"\xa2\x01\n\x16UpdateAioVolumeRequest\x12\x36\n\naio_volume\x18\x01 \x01(\x0b\x32\x1d.opi_api.storage.v1.AioVolumeB\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\x15ListAioVolumesRequest\x12\x34\n\x06parent\x18\x01 \x01(\tB$\xe0\x41\x02\xfa\x41\x1e\x12\x1copi_api.storage.v1/AioVolume\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\"e\n\x16ListAioVolumesResponse\x12\x32\n\x0b\x61io_volumes\x18\x01 \x03(\x0b\x32\x1d.opi_api.storage.v1.AioVolume\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"I\n\x13GetAioVolumeRequest\x12\x32\n\x04name\x18\x01 \x01(\tB$\xe0\x41\x02\xfa\x41\x1e\n\x1copi_api.storage.v1/AioVolume\"K\n\x15StatsAioVolumeRequest\x12\x32\n\x04name\x18\x01 \x01(\tB$\xe0\x41\x02\xfa\x41\x1e\n\x1copi_api.storage.v1/AioVolume\"H\n\x16StatsAioVolumeResponse\x12.\n\x05stats\x18\x01 \x01(\x0b\x32\x1f.opi_api.storage.v1.VolumeStats2\x8b\x07\n\x10\x41ioVolumeService\x12\x9b\x01\n\x0f\x43reateAioVolume\x12*.opi_api.storage.v1.CreateAioVolumeRequest\x1a\x1d.opi_api.storage.v1.AioVolume\"=\x82\xd3\xe4\x93\x02\x1c\"\x0e/v1/aioVolumes:\naio_volume\xda\x41\x18\x61io_volume,aio_volume_id\x12}\n\x0f\x44\x65leteAioVolume\x12*.opi_api.storage.v1.DeleteAioVolumeRequest\x1a\x16.google.protobuf.Empty\"&\x82\xd3\xe4\x93\x02\x19*\x17/v1/{name=aioVolumes/*}\xda\x41\x04name\x12\xad\x01\n\x0fUpdateAioVolume\x12*.opi_api.storage.v1.UpdateAioVolumeRequest\x1a\x1d.opi_api.storage.v1.AioVolume\"O\x82\xd3\xe4\x93\x02\x30\x32\"/v1/{aio_volume.name=aioVolumes/*}:\naio_volume\xda\x41\x16\x61io_volume,update_mask\x12\x91\x01\n\x0eListAioVolumes\x12).opi_api.storage.v1.ListAioVolumesRequest\x1a*.opi_api.storage.v1.ListAioVolumesResponse\"(\x82\xd3\xe4\x93\x02\x19\x12\x17/v1/{parent=subsystems}\xda\x41\x06parent\x12~\n\x0cGetAioVolume\x12\'.opi_api.storage.v1.GetAioVolumeRequest\x1a\x1d.opi_api.storage.v1.AioVolume\"&\x82\xd3\xe4\x93\x02\x19\x12\x17/v1/{name=aioVolumes/*}\xda\x41\x04name\x12\x95\x01\n\x0eStatsAioVolume\x12).opi_api.storage.v1.StatsAioVolumeRequest\x1a*.opi_api.storage.v1.StatsAioVolumeResponse\",\x82\xd3\xe4\x93\x02\x1f\x12\x1d/v1/{name=aioVolumes/*}:stats\xda\x41\x04nameB^\n\x12opi_api.storage.v1B\x0f\x42\x61\x63kendAioProtoP\x01Z5github.com/opiproject/opi-api/storage/v1alpha1/gen/gob\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x11\x62\x61\x63kend_aio.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\"\xfe\x01\n\tAioVolume\x12\x18\n\x04name\x18\x01 \x01(\tB\x04\xe2\x41\x01\x08R\x04name\x12#\n\nblock_size\x18\x02 \x01(\x03\x42\x04\xe2\x41\x01\x01R\tblockSize\x12\'\n\x0c\x62locks_count\x18\x03 \x01(\x03\x42\x04\xe2\x41\x01\x01R\x0b\x62locksCount\x12\x18\n\x04uuid\x18\x04 \x01(\tB\x04\xe2\x41\x01\x01R\x04uuid\x12 \n\x08\x66ilename\x18\x05 \x01(\tB\x04\xe2\x41\x01\x02R\x08\x66ilename:M\xea\x41J\n\x1copi_api.storage.v1/AioVolume\x12\x13\x61ioVolumes/{volume}*\naioVolumes2\taioVolume\"\x86\x01\n\x16\x43reateAioVolumeRequest\x12\x42\n\naio_volume\x18\x01 \x01(\x0b\x32\x1d.opi_api.storage.v1.AioVolumeB\x04\xe2\x41\x01\x02R\taioVolume\x12(\n\raio_volume_id\x18\x02 \x01(\tB\x04\xe2\x41\x01\x01R\x0b\x61ioVolumeId\"~\n\x16\x44\x65leteAioVolumeRequest\x12\x39\n\x04name\x18\x01 \x01(\tB%\xe2\x41\x01\x02\xfa\x41\x1e\n\x1copi_api.storage.v1/AioVolumeR\x04name\x12)\n\rallow_missing\x18\x02 \x01(\x08\x42\x04\xe2\x41\x01\x01R\x0c\x61llowMissing\"\xca\x01\n\x16UpdateAioVolumeRequest\x12\x42\n\naio_volume\x18\x01 \x01(\x0b\x32\x1d.opi_api.storage.v1.AioVolumeB\x04\xe2\x41\x01\x02R\taioVolume\x12\x41\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x04\xe2\x41\x01\x01R\nupdateMask\x12)\n\rallow_missing\x18\x03 \x01(\x08\x42\x04\xe2\x41\x01\x01R\x0c\x61llowMissing\"_\n\x15ListAioVolumesRequest\x12!\n\tpage_size\x18\x01 \x01(\x05\x42\x04\xe2\x41\x01\x01R\x08pageSize\x12#\n\npage_token\x18\x02 \x01(\tB\x04\xe2\x41\x01\x01R\tpageToken\"\x80\x01\n\x16ListAioVolumesResponse\x12>\n\x0b\x61io_volumes\x18\x01 \x03(\x0b\x32\x1d.opi_api.storage.v1.AioVolumeR\naioVolumes\x12&\n\x0fnext_page_token\x18\x02 \x01(\tR\rnextPageToken\"P\n\x13GetAioVolumeRequest\x12\x39\n\x04name\x18\x01 \x01(\tB%\xe2\x41\x01\x02\xfa\x41\x1e\n\x1copi_api.storage.v1/AioVolumeR\x04name\"R\n\x15StatsAioVolumeRequest\x12\x39\n\x04name\x18\x01 \x01(\tB%\xe2\x41\x01\x02\xfa\x41\x1e\n\x1copi_api.storage.v1/AioVolumeR\x04name\"O\n\x16StatsAioVolumeResponse\x12\x35\n\x05stats\x18\x01 \x01(\x0b\x32\x1f.opi_api.storage.v1.VolumeStatsR\x05stats2\xf8\x06\n\x10\x41ioVolumeService\x12\x9b\x01\n\x0f\x43reateAioVolume\x12*.opi_api.storage.v1.CreateAioVolumeRequest\x1a\x1d.opi_api.storage.v1.AioVolume\"=\xda\x41\x18\x61io_volume,aio_volume_id\x82\xd3\xe4\x93\x02\x1c\"\x0e/v1/aioVolumes:\naio_volume\x12}\n\x0f\x44\x65leteAioVolume\x12*.opi_api.storage.v1.DeleteAioVolumeRequest\x1a\x16.google.protobuf.Empty\"&\xda\x41\x04name\x82\xd3\xe4\x93\x02\x19*\x17/v1/{name=aioVolumes/*}\x12\xad\x01\n\x0fUpdateAioVolume\x12*.opi_api.storage.v1.UpdateAioVolumeRequest\x1a\x1d.opi_api.storage.v1.AioVolume\"O\xda\x41\x16\x61io_volume,update_mask\x82\xd3\xe4\x93\x02\x30\x32\"/v1/{aio_volume.name=aioVolumes/*}:\naio_volume\x12\x7f\n\x0eListAioVolumes\x12).opi_api.storage.v1.ListAioVolumesRequest\x1a*.opi_api.storage.v1.ListAioVolumesResponse\"\x16\x82\xd3\xe4\x93\x02\x10\x12\x0e/v1/aioVolumes\x12~\n\x0cGetAioVolume\x12\'.opi_api.storage.v1.GetAioVolumeRequest\x1a\x1d.opi_api.storage.v1.AioVolume\"&\xda\x41\x04name\x82\xd3\xe4\x93\x02\x19\x12\x17/v1/{name=aioVolumes/*}\x12\x95\x01\n\x0eStatsAioVolume\x12).opi_api.storage.v1.StatsAioVolumeRequest\x1a*.opi_api.storage.v1.StatsAioVolumeResponse\",\xda\x41\x04name\x82\xd3\xe4\x93\x02\x1f\x12\x1d/v1/{name=aioVolumes/*}:statsB^\n\x12opi_api.storage.v1B\x0f\x42\x61\x63kendAioProtoP\x01Z5github.com/opiproject/opi-api/storage/v1alpha1/gen/gob\x06proto3') -_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals()) -_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'backend_aio_pb2', globals()) +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'backend_aio_pb2', _globals) if _descriptor._USE_C_DESCRIPTORS == False: - - DESCRIPTOR._options = None - DESCRIPTOR._serialized_options = b'\n\022opi_api.storage.v1B\017BackendAioProtoP\001Z5github.com/opiproject/opi-api/storage/v1alpha1/gen/go' - _AIOVOLUME.fields_by_name['name']._options = None - _AIOVOLUME.fields_by_name['name']._serialized_options = b'\340A\010' - _AIOVOLUME.fields_by_name['block_size']._options = None - _AIOVOLUME.fields_by_name['block_size']._serialized_options = b'\340A\001' - _AIOVOLUME.fields_by_name['blocks_count']._options = None - _AIOVOLUME.fields_by_name['blocks_count']._serialized_options = b'\340A\001' - _AIOVOLUME.fields_by_name['uuid']._options = None - _AIOVOLUME.fields_by_name['uuid']._serialized_options = b'\340A\001' - _AIOVOLUME.fields_by_name['filename']._options = None - _AIOVOLUME.fields_by_name['filename']._serialized_options = b'\340A\002' - _AIOVOLUME._options = None - _AIOVOLUME._serialized_options = b'\352AJ\n\034opi_api.storage.v1/AioVolume\022\023aioVolumes/{volume}*\naioVolumes2\taioVolume' - _CREATEAIOVOLUMEREQUEST.fields_by_name['aio_volume']._options = None - _CREATEAIOVOLUMEREQUEST.fields_by_name['aio_volume']._serialized_options = b'\340A\002' - _CREATEAIOVOLUMEREQUEST.fields_by_name['aio_volume_id']._options = None - _CREATEAIOVOLUMEREQUEST.fields_by_name['aio_volume_id']._serialized_options = b'\340A\001' - _DELETEAIOVOLUMEREQUEST.fields_by_name['name']._options = None - _DELETEAIOVOLUMEREQUEST.fields_by_name['name']._serialized_options = b'\340A\002\372A\036\n\034opi_api.storage.v1/AioVolume' - _DELETEAIOVOLUMEREQUEST.fields_by_name['allow_missing']._options = None - _DELETEAIOVOLUMEREQUEST.fields_by_name['allow_missing']._serialized_options = b'\340A\001' - _UPDATEAIOVOLUMEREQUEST.fields_by_name['aio_volume']._options = None - _UPDATEAIOVOLUMEREQUEST.fields_by_name['aio_volume']._serialized_options = b'\340A\002' - _UPDATEAIOVOLUMEREQUEST.fields_by_name['update_mask']._options = None - _UPDATEAIOVOLUMEREQUEST.fields_by_name['update_mask']._serialized_options = b'\340A\001' - _UPDATEAIOVOLUMEREQUEST.fields_by_name['allow_missing']._options = None - _UPDATEAIOVOLUMEREQUEST.fields_by_name['allow_missing']._serialized_options = b'\340A\001' - _LISTAIOVOLUMESREQUEST.fields_by_name['parent']._options = None - _LISTAIOVOLUMESREQUEST.fields_by_name['parent']._serialized_options = b'\340A\002\372A\036\022\034opi_api.storage.v1/AioVolume' - _LISTAIOVOLUMESREQUEST.fields_by_name['page_size']._options = None - _LISTAIOVOLUMESREQUEST.fields_by_name['page_size']._serialized_options = b'\340A\001' - _LISTAIOVOLUMESREQUEST.fields_by_name['page_token']._options = None - _LISTAIOVOLUMESREQUEST.fields_by_name['page_token']._serialized_options = b'\340A\001' - _GETAIOVOLUMEREQUEST.fields_by_name['name']._options = None - _GETAIOVOLUMEREQUEST.fields_by_name['name']._serialized_options = b'\340A\002\372A\036\n\034opi_api.storage.v1/AioVolume' - _STATSAIOVOLUMEREQUEST.fields_by_name['name']._options = None - _STATSAIOVOLUMEREQUEST.fields_by_name['name']._serialized_options = b'\340A\002\372A\036\n\034opi_api.storage.v1/AioVolume' - _AIOVOLUMESERVICE.methods_by_name['CreateAioVolume']._options = None - _AIOVOLUMESERVICE.methods_by_name['CreateAioVolume']._serialized_options = b'\202\323\344\223\002\034\"\016/v1/aioVolumes:\naio_volume\332A\030aio_volume,aio_volume_id' - _AIOVOLUMESERVICE.methods_by_name['DeleteAioVolume']._options = None - _AIOVOLUMESERVICE.methods_by_name['DeleteAioVolume']._serialized_options = b'\202\323\344\223\002\031*\027/v1/{name=aioVolumes/*}\332A\004name' - _AIOVOLUMESERVICE.methods_by_name['UpdateAioVolume']._options = None - _AIOVOLUMESERVICE.methods_by_name['UpdateAioVolume']._serialized_options = b'\202\323\344\223\00202\"/v1/{aio_volume.name=aioVolumes/*}:\naio_volume\332A\026aio_volume,update_mask' - _AIOVOLUMESERVICE.methods_by_name['ListAioVolumes']._options = None - _AIOVOLUMESERVICE.methods_by_name['ListAioVolumes']._serialized_options = b'\202\323\344\223\002\031\022\027/v1/{parent=subsystems}\332A\006parent' - _AIOVOLUMESERVICE.methods_by_name['GetAioVolume']._options = None - _AIOVOLUMESERVICE.methods_by_name['GetAioVolume']._serialized_options = b'\202\323\344\223\002\031\022\027/v1/{name=aioVolumes/*}\332A\004name' - _AIOVOLUMESERVICE.methods_by_name['StatsAioVolume']._options = None - _AIOVOLUMESERVICE.methods_by_name['StatsAioVolume']._serialized_options = b'\202\323\344\223\002\037\022\035/v1/{name=aioVolumes/*}:stats\332A\004name' - _AIOVOLUME._serialized_start=249 - _AIOVOLUME._serialized_end=477 - _CREATEAIOVOLUMEREQUEST._serialized_start=479 - _CREATEAIOVOLUMEREQUEST._serialized_end=587 - _DELETEAIOVOLUMEREQUEST._serialized_start=589 - _DELETEAIOVOLUMEREQUEST._serialized_end=693 - _UPDATEAIOVOLUMEREQUEST._serialized_start=696 - _UPDATEAIOVOLUMEREQUEST._serialized_end=858 - _LISTAIOVOLUMESREQUEST._serialized_start=860 - _LISTAIOVOLUMESREQUEST._serialized_end=986 - _LISTAIOVOLUMESRESPONSE._serialized_start=988 - _LISTAIOVOLUMESRESPONSE._serialized_end=1089 - _GETAIOVOLUMEREQUEST._serialized_start=1091 - _GETAIOVOLUMEREQUEST._serialized_end=1164 - _STATSAIOVOLUMEREQUEST._serialized_start=1166 - _STATSAIOVOLUMEREQUEST._serialized_end=1241 - _STATSAIOVOLUMERESPONSE._serialized_start=1243 - _STATSAIOVOLUMERESPONSE._serialized_end=1315 - _AIOVOLUMESERVICE._serialized_start=1318 - _AIOVOLUMESERVICE._serialized_end=2225 + _globals['DESCRIPTOR']._options = None + _globals['DESCRIPTOR']._serialized_options = b'\n\022opi_api.storage.v1B\017BackendAioProtoP\001Z5github.com/opiproject/opi-api/storage/v1alpha1/gen/go' + _globals['_AIOVOLUME'].fields_by_name['name']._options = None + _globals['_AIOVOLUME'].fields_by_name['name']._serialized_options = b'\342A\001\010' + _globals['_AIOVOLUME'].fields_by_name['block_size']._options = None + _globals['_AIOVOLUME'].fields_by_name['block_size']._serialized_options = b'\342A\001\001' + _globals['_AIOVOLUME'].fields_by_name['blocks_count']._options = None + _globals['_AIOVOLUME'].fields_by_name['blocks_count']._serialized_options = b'\342A\001\001' + _globals['_AIOVOLUME'].fields_by_name['uuid']._options = None + _globals['_AIOVOLUME'].fields_by_name['uuid']._serialized_options = b'\342A\001\001' + _globals['_AIOVOLUME'].fields_by_name['filename']._options = None + _globals['_AIOVOLUME'].fields_by_name['filename']._serialized_options = b'\342A\001\002' + _globals['_AIOVOLUME']._options = None + _globals['_AIOVOLUME']._serialized_options = b'\352AJ\n\034opi_api.storage.v1/AioVolume\022\023aioVolumes/{volume}*\naioVolumes2\taioVolume' + _globals['_CREATEAIOVOLUMEREQUEST'].fields_by_name['aio_volume']._options = None + _globals['_CREATEAIOVOLUMEREQUEST'].fields_by_name['aio_volume']._serialized_options = b'\342A\001\002' + _globals['_CREATEAIOVOLUMEREQUEST'].fields_by_name['aio_volume_id']._options = None + _globals['_CREATEAIOVOLUMEREQUEST'].fields_by_name['aio_volume_id']._serialized_options = b'\342A\001\001' + _globals['_DELETEAIOVOLUMEREQUEST'].fields_by_name['name']._options = None + _globals['_DELETEAIOVOLUMEREQUEST'].fields_by_name['name']._serialized_options = b'\342A\001\002\372A\036\n\034opi_api.storage.v1/AioVolume' + _globals['_DELETEAIOVOLUMEREQUEST'].fields_by_name['allow_missing']._options = None + _globals['_DELETEAIOVOLUMEREQUEST'].fields_by_name['allow_missing']._serialized_options = b'\342A\001\001' + _globals['_UPDATEAIOVOLUMEREQUEST'].fields_by_name['aio_volume']._options = None + _globals['_UPDATEAIOVOLUMEREQUEST'].fields_by_name['aio_volume']._serialized_options = b'\342A\001\002' + _globals['_UPDATEAIOVOLUMEREQUEST'].fields_by_name['update_mask']._options = None + _globals['_UPDATEAIOVOLUMEREQUEST'].fields_by_name['update_mask']._serialized_options = b'\342A\001\001' + _globals['_UPDATEAIOVOLUMEREQUEST'].fields_by_name['allow_missing']._options = None + _globals['_UPDATEAIOVOLUMEREQUEST'].fields_by_name['allow_missing']._serialized_options = b'\342A\001\001' + _globals['_LISTAIOVOLUMESREQUEST'].fields_by_name['page_size']._options = None + _globals['_LISTAIOVOLUMESREQUEST'].fields_by_name['page_size']._serialized_options = b'\342A\001\001' + _globals['_LISTAIOVOLUMESREQUEST'].fields_by_name['page_token']._options = None + _globals['_LISTAIOVOLUMESREQUEST'].fields_by_name['page_token']._serialized_options = b'\342A\001\001' + _globals['_GETAIOVOLUMEREQUEST'].fields_by_name['name']._options = None + _globals['_GETAIOVOLUMEREQUEST'].fields_by_name['name']._serialized_options = b'\342A\001\002\372A\036\n\034opi_api.storage.v1/AioVolume' + _globals['_STATSAIOVOLUMEREQUEST'].fields_by_name['name']._options = None + _globals['_STATSAIOVOLUMEREQUEST'].fields_by_name['name']._serialized_options = b'\342A\001\002\372A\036\n\034opi_api.storage.v1/AioVolume' + _globals['_AIOVOLUMESERVICE'].methods_by_name['CreateAioVolume']._options = None + _globals['_AIOVOLUMESERVICE'].methods_by_name['CreateAioVolume']._serialized_options = b'\332A\030aio_volume,aio_volume_id\202\323\344\223\002\034\"\016/v1/aioVolumes:\naio_volume' + _globals['_AIOVOLUMESERVICE'].methods_by_name['DeleteAioVolume']._options = None + _globals['_AIOVOLUMESERVICE'].methods_by_name['DeleteAioVolume']._serialized_options = b'\332A\004name\202\323\344\223\002\031*\027/v1/{name=aioVolumes/*}' + _globals['_AIOVOLUMESERVICE'].methods_by_name['UpdateAioVolume']._options = None + _globals['_AIOVOLUMESERVICE'].methods_by_name['UpdateAioVolume']._serialized_options = b'\332A\026aio_volume,update_mask\202\323\344\223\00202\"/v1/{aio_volume.name=aioVolumes/*}:\naio_volume' + _globals['_AIOVOLUMESERVICE'].methods_by_name['ListAioVolumes']._options = None + _globals['_AIOVOLUMESERVICE'].methods_by_name['ListAioVolumes']._serialized_options = b'\202\323\344\223\002\020\022\016/v1/aioVolumes' + _globals['_AIOVOLUMESERVICE'].methods_by_name['GetAioVolume']._options = None + _globals['_AIOVOLUMESERVICE'].methods_by_name['GetAioVolume']._serialized_options = b'\332A\004name\202\323\344\223\002\031\022\027/v1/{name=aioVolumes/*}' + _globals['_AIOVOLUMESERVICE'].methods_by_name['StatsAioVolume']._options = None + _globals['_AIOVOLUMESERVICE'].methods_by_name['StatsAioVolume']._serialized_options = b'\332A\004name\202\323\344\223\002\037\022\035/v1/{name=aioVolumes/*}:stats' + _globals['_AIOVOLUME']._serialized_start=237 + _globals['_AIOVOLUME']._serialized_end=491 + _globals['_CREATEAIOVOLUMEREQUEST']._serialized_start=494 + _globals['_CREATEAIOVOLUMEREQUEST']._serialized_end=628 + _globals['_DELETEAIOVOLUMEREQUEST']._serialized_start=630 + _globals['_DELETEAIOVOLUMEREQUEST']._serialized_end=756 + _globals['_UPDATEAIOVOLUMEREQUEST']._serialized_start=759 + _globals['_UPDATEAIOVOLUMEREQUEST']._serialized_end=961 + _globals['_LISTAIOVOLUMESREQUEST']._serialized_start=963 + _globals['_LISTAIOVOLUMESREQUEST']._serialized_end=1058 + _globals['_LISTAIOVOLUMESRESPONSE']._serialized_start=1061 + _globals['_LISTAIOVOLUMESRESPONSE']._serialized_end=1189 + _globals['_GETAIOVOLUMEREQUEST']._serialized_start=1191 + _globals['_GETAIOVOLUMEREQUEST']._serialized_end=1271 + _globals['_STATSAIOVOLUMEREQUEST']._serialized_start=1273 + _globals['_STATSAIOVOLUMEREQUEST']._serialized_end=1355 + _globals['_STATSAIOVOLUMERESPONSE']._serialized_start=1357 + _globals['_STATSAIOVOLUMERESPONSE']._serialized_end=1436 + _globals['_AIOVOLUMESERVICE']._serialized_start=1439 + _globals['_AIOVOLUMESERVICE']._serialized_end=2327 # @@protoc_insertion_point(module_scope) diff --git a/storage/v1alpha1/gen/python/backend_iscsi_pb2.py b/storage/v1alpha1/gen/python/backend_iscsi_pb2.py index b861d639..34100864 100644 --- a/storage/v1alpha1/gen/python/backend_iscsi_pb2.py +++ b/storage/v1alpha1/gen/python/backend_iscsi_pb2.py @@ -1,11 +1,12 @@ # -*- coding: utf-8 -*- # Generated by the protocol buffer compiler. DO NOT EDIT! # source: backend_iscsi.proto +# Protobuf Python Version: 4.25.2 """Generated protocol buffer code.""" -from google.protobuf.internal import builder as _builder from google.protobuf import descriptor as _descriptor from google.protobuf import descriptor_pool as _descriptor_pool from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder # @@protoc_insertion_point(imports) _sym_db = _symbol_database.Default() @@ -15,10 +16,10 @@ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x13\x62\x61\x63kend_iscsi.proto\x12\x12opi_api.storage.v1B`\n\x12opi_api.storage.v1B\x11\x42\x61\x63kendIscsiProtoP\x01Z5github.com/opiproject/opi-api/storage/v1alpha1/gen/gob\x06proto3') -_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals()) -_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'backend_iscsi_pb2', globals()) +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'backend_iscsi_pb2', _globals) if _descriptor._USE_C_DESCRIPTORS == False: - - DESCRIPTOR._options = None - DESCRIPTOR._serialized_options = b'\n\022opi_api.storage.v1B\021BackendIscsiProtoP\001Z5github.com/opiproject/opi-api/storage/v1alpha1/gen/go' + _globals['DESCRIPTOR']._options = None + _globals['DESCRIPTOR']._serialized_options = b'\n\022opi_api.storage.v1B\021BackendIscsiProtoP\001Z5github.com/opiproject/opi-api/storage/v1alpha1/gen/go' # @@protoc_insertion_point(module_scope) diff --git a/storage/v1alpha1/gen/python/backend_null_pb2.py b/storage/v1alpha1/gen/python/backend_null_pb2.py index a20cf712..d16bb630 100644 --- a/storage/v1alpha1/gen/python/backend_null_pb2.py +++ b/storage/v1alpha1/gen/python/backend_null_pb2.py @@ -1,11 +1,12 @@ # -*- coding: utf-8 -*- # Generated by the protocol buffer compiler. DO NOT EDIT! # source: backend_null.proto +# Protobuf Python Version: 4.25.2 """Generated protocol buffer code.""" -from google.protobuf.internal import builder as _builder from google.protobuf import descriptor as _descriptor from google.protobuf import descriptor_pool as _descriptor_pool from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder # @@protoc_insertion_point(imports) _sym_db = _symbol_database.Default() @@ -18,81 +19,78 @@ from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 from google.protobuf import field_mask_pb2 as google_dot_protobuf_dot_field__mask__pb2 import opicommon_pb2 as opicommon__pb2 -import uuid_pb2 as uuid__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x12\x62\x61\x63kend_null.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\"\xd2\x01\n\nNullVolume\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x08\x12\x17\n\nblock_size\x18\x02 \x01(\x03\x42\x03\xe0\x41\x02\x12\x19\n\x0c\x62locks_count\x18\x03 \x01(\x03\x42\x03\xe0\x41\x02\x12*\n\x04uuid\x18\x04 \x01(\x0b\x32\x17.opi_api.common.v1.UuidB\x03\xe0\x41\x01:Q\xea\x41N\n\x1dopi_api.storage.v1/NullVolume\x12\x14nullVolumes/{volume}*\x0bnullVolumes2\nnullVolume\"p\n\x17\x43reateNullVolumeRequest\x12\x38\n\x0bnull_volume\x18\x01 \x01(\x0b\x32\x1e.opi_api.storage.v1.NullVolumeB\x03\xe0\x41\x02\x12\x1b\n\x0enull_volume_id\x18\x02 \x01(\tB\x03\xe0\x41\x01\"j\n\x17\x44\x65leteNullVolumeRequest\x12\x33\n\x04name\x18\x01 \x01(\tB%\xe0\x41\x02\xfa\x41\x1f\n\x1dopi_api.storage.v1/NullVolume\x12\x1a\n\rallow_missing\x18\x02 \x01(\x08\x42\x03\xe0\x41\x01\"\xa5\x01\n\x17UpdateNullVolumeRequest\x12\x38\n\x0bnull_volume\x18\x01 \x01(\x0b\x32\x1e.opi_api.storage.v1.NullVolumeB\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\"\x80\x01\n\x16ListNullVolumesRequest\x12\x35\n\x06parent\x18\x01 \x01(\tB%\xe0\x41\x02\xfa\x41\x1f\x12\x1dopi_api.storage.v1/NullVolume\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\"h\n\x17ListNullVolumesResponse\x12\x34\n\x0cnull_volumes\x18\x01 \x03(\x0b\x32\x1e.opi_api.storage.v1.NullVolume\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"K\n\x14GetNullVolumeRequest\x12\x33\n\x04name\x18\x01 \x01(\tB%\xe0\x41\x02\xfa\x41\x1f\n\x1dopi_api.storage.v1/NullVolume\"M\n\x16StatsNullVolumeRequest\x12\x33\n\x04name\x18\x01 \x01(\tB%\xe0\x41\x02\xfa\x41\x1f\n\x1dopi_api.storage.v1/NullVolume\"I\n\x17StatsNullVolumeResponse\x12.\n\x05stats\x18\x01 \x01(\x0b\x32\x1f.opi_api.storage.v1.VolumeStats2\xaa\x07\n\x11NullVolumeService\x12\xa2\x01\n\x10\x43reateNullVolume\x12+.opi_api.storage.v1.CreateNullVolumeRequest\x1a\x1e.opi_api.storage.v1.NullVolume\"A\x82\xd3\xe4\x93\x02\x1e\"\x0f/v1/nullVolumes:\x0bnull_volume\xda\x41\x1anull_volume,null_volume_id\x12\x80\x01\n\x10\x44\x65leteNullVolume\x12+.opi_api.storage.v1.DeleteNullVolumeRequest\x1a\x16.google.protobuf.Empty\"\'\x82\xd3\xe4\x93\x02\x1a*\x18/v1/{name=nullVolumes/*}\xda\x41\x04name\x12\xb4\x01\n\x10UpdateNullVolume\x12+.opi_api.storage.v1.UpdateNullVolumeRequest\x1a\x1e.opi_api.storage.v1.NullVolume\"S\x82\xd3\xe4\x93\x02\x33\x32$/v1/{null_volume.name=nullVolumes/*}:\x0bnull_volume\xda\x41\x17null_volume,update_mask\x12\x94\x01\n\x0fListNullVolumes\x12*.opi_api.storage.v1.ListNullVolumesRequest\x1a+.opi_api.storage.v1.ListNullVolumesResponse\"(\x82\xd3\xe4\x93\x02\x19\x12\x17/v1/{parent=subsystems}\xda\x41\x06parent\x12\x82\x01\n\rGetNullVolume\x12(.opi_api.storage.v1.GetNullVolumeRequest\x1a\x1e.opi_api.storage.v1.NullVolume\"\'\x82\xd3\xe4\x93\x02\x1a\x12\x18/v1/{name=nullVolumes/*}\xda\x41\x04name\x12\x99\x01\n\x0fStatsNullVolume\x12*.opi_api.storage.v1.StatsNullVolumeRequest\x1a+.opi_api.storage.v1.StatsNullVolumeResponse\"-\x82\xd3\xe4\x93\x02 \x12\x1e/v1/{name=nullVolumes/*}:stats\xda\x41\x04nameB_\n\x12opi_api.storage.v1B\x10\x42\x61\x63kendNullProtoP\x01Z5github.com/opiproject/opi-api/storage/v1alpha1/gen/gob\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x12\x62\x61\x63kend_null.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\"\xe1\x01\n\nNullVolume\x12\x18\n\x04name\x18\x01 \x01(\tB\x04\xe2\x41\x01\x08R\x04name\x12#\n\nblock_size\x18\x02 \x01(\x03\x42\x04\xe2\x41\x01\x02R\tblockSize\x12\'\n\x0c\x62locks_count\x18\x03 \x01(\x03\x42\x04\xe2\x41\x01\x02R\x0b\x62locksCount\x12\x18\n\x04uuid\x18\x04 \x01(\tB\x04\xe2\x41\x01\x01R\x04uuid:Q\xea\x41N\n\x1dopi_api.storage.v1/NullVolume\x12\x14nullVolumes/{volume}*\x0bnullVolumes2\nnullVolume\"\x8c\x01\n\x17\x43reateNullVolumeRequest\x12\x45\n\x0bnull_volume\x18\x01 \x01(\x0b\x32\x1e.opi_api.storage.v1.NullVolumeB\x04\xe2\x41\x01\x02R\nnullVolume\x12*\n\x0enull_volume_id\x18\x02 \x01(\tB\x04\xe2\x41\x01\x01R\x0cnullVolumeId\"\x80\x01\n\x17\x44\x65leteNullVolumeRequest\x12:\n\x04name\x18\x01 \x01(\tB&\xe2\x41\x01\x02\xfa\x41\x1f\n\x1dopi_api.storage.v1/NullVolumeR\x04name\x12)\n\rallow_missing\x18\x02 \x01(\x08\x42\x04\xe2\x41\x01\x01R\x0c\x61llowMissing\"\xce\x01\n\x17UpdateNullVolumeRequest\x12\x45\n\x0bnull_volume\x18\x01 \x01(\x0b\x32\x1e.opi_api.storage.v1.NullVolumeB\x04\xe2\x41\x01\x02R\nnullVolume\x12\x41\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x04\xe2\x41\x01\x01R\nupdateMask\x12)\n\rallow_missing\x18\x03 \x01(\x08\x42\x04\xe2\x41\x01\x01R\x0c\x61llowMissing\"`\n\x16ListNullVolumesRequest\x12!\n\tpage_size\x18\x01 \x01(\x05\x42\x04\xe2\x41\x01\x01R\x08pageSize\x12#\n\npage_token\x18\x02 \x01(\tB\x04\xe2\x41\x01\x01R\tpageToken\"\x84\x01\n\x17ListNullVolumesResponse\x12\x41\n\x0cnull_volumes\x18\x01 \x03(\x0b\x32\x1e.opi_api.storage.v1.NullVolumeR\x0bnullVolumes\x12&\n\x0fnext_page_token\x18\x02 \x01(\tR\rnextPageToken\"R\n\x14GetNullVolumeRequest\x12:\n\x04name\x18\x01 \x01(\tB&\xe2\x41\x01\x02\xfa\x41\x1f\n\x1dopi_api.storage.v1/NullVolumeR\x04name\"T\n\x16StatsNullVolumeRequest\x12:\n\x04name\x18\x01 \x01(\tB&\xe2\x41\x01\x02\xfa\x41\x1f\n\x1dopi_api.storage.v1/NullVolumeR\x04name\"P\n\x17StatsNullVolumeResponse\x12\x35\n\x05stats\x18\x01 \x01(\x0b\x32\x1f.opi_api.storage.v1.VolumeStatsR\x05stats2\x99\x07\n\x11NullVolumeService\x12\xa2\x01\n\x10\x43reateNullVolume\x12+.opi_api.storage.v1.CreateNullVolumeRequest\x1a\x1e.opi_api.storage.v1.NullVolume\"A\xda\x41\x1anull_volume,null_volume_id\x82\xd3\xe4\x93\x02\x1e\"\x0f/v1/nullVolumes:\x0bnull_volume\x12\x80\x01\n\x10\x44\x65leteNullVolume\x12+.opi_api.storage.v1.DeleteNullVolumeRequest\x1a\x16.google.protobuf.Empty\"\'\xda\x41\x04name\x82\xd3\xe4\x93\x02\x1a*\x18/v1/{name=nullVolumes/*}\x12\xb4\x01\n\x10UpdateNullVolume\x12+.opi_api.storage.v1.UpdateNullVolumeRequest\x1a\x1e.opi_api.storage.v1.NullVolume\"S\xda\x41\x17null_volume,update_mask\x82\xd3\xe4\x93\x02\x33\x32$/v1/{null_volume.name=nullVolumes/*}:\x0bnull_volume\x12\x83\x01\n\x0fListNullVolumes\x12*.opi_api.storage.v1.ListNullVolumesRequest\x1a+.opi_api.storage.v1.ListNullVolumesResponse\"\x17\x82\xd3\xe4\x93\x02\x11\x12\x0f/v1/nullVolumes\x12\x82\x01\n\rGetNullVolume\x12(.opi_api.storage.v1.GetNullVolumeRequest\x1a\x1e.opi_api.storage.v1.NullVolume\"\'\xda\x41\x04name\x82\xd3\xe4\x93\x02\x1a\x12\x18/v1/{name=nullVolumes/*}\x12\x99\x01\n\x0fStatsNullVolume\x12*.opi_api.storage.v1.StatsNullVolumeRequest\x1a+.opi_api.storage.v1.StatsNullVolumeResponse\"-\xda\x41\x04name\x82\xd3\xe4\x93\x02 \x12\x1e/v1/{name=nullVolumes/*}:statsB_\n\x12opi_api.storage.v1B\x10\x42\x61\x63kendNullProtoP\x01Z5github.com/opiproject/opi-api/storage/v1alpha1/gen/gob\x06proto3') -_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals()) -_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'backend_null_pb2', globals()) +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'backend_null_pb2', _globals) if _descriptor._USE_C_DESCRIPTORS == False: - - DESCRIPTOR._options = None - DESCRIPTOR._serialized_options = b'\n\022opi_api.storage.v1B\020BackendNullProtoP\001Z5github.com/opiproject/opi-api/storage/v1alpha1/gen/go' - _NULLVOLUME.fields_by_name['name']._options = None - _NULLVOLUME.fields_by_name['name']._serialized_options = b'\340A\010' - _NULLVOLUME.fields_by_name['block_size']._options = None - _NULLVOLUME.fields_by_name['block_size']._serialized_options = b'\340A\002' - _NULLVOLUME.fields_by_name['blocks_count']._options = None - _NULLVOLUME.fields_by_name['blocks_count']._serialized_options = b'\340A\002' - _NULLVOLUME.fields_by_name['uuid']._options = None - _NULLVOLUME.fields_by_name['uuid']._serialized_options = b'\340A\001' - _NULLVOLUME._options = None - _NULLVOLUME._serialized_options = b'\352AN\n\035opi_api.storage.v1/NullVolume\022\024nullVolumes/{volume}*\013nullVolumes2\nnullVolume' - _CREATENULLVOLUMEREQUEST.fields_by_name['null_volume']._options = None - _CREATENULLVOLUMEREQUEST.fields_by_name['null_volume']._serialized_options = b'\340A\002' - _CREATENULLVOLUMEREQUEST.fields_by_name['null_volume_id']._options = None - _CREATENULLVOLUMEREQUEST.fields_by_name['null_volume_id']._serialized_options = b'\340A\001' - _DELETENULLVOLUMEREQUEST.fields_by_name['name']._options = None - _DELETENULLVOLUMEREQUEST.fields_by_name['name']._serialized_options = b'\340A\002\372A\037\n\035opi_api.storage.v1/NullVolume' - _DELETENULLVOLUMEREQUEST.fields_by_name['allow_missing']._options = None - _DELETENULLVOLUMEREQUEST.fields_by_name['allow_missing']._serialized_options = b'\340A\001' - _UPDATENULLVOLUMEREQUEST.fields_by_name['null_volume']._options = None - _UPDATENULLVOLUMEREQUEST.fields_by_name['null_volume']._serialized_options = b'\340A\002' - _UPDATENULLVOLUMEREQUEST.fields_by_name['update_mask']._options = None - _UPDATENULLVOLUMEREQUEST.fields_by_name['update_mask']._serialized_options = b'\340A\001' - _UPDATENULLVOLUMEREQUEST.fields_by_name['allow_missing']._options = None - _UPDATENULLVOLUMEREQUEST.fields_by_name['allow_missing']._serialized_options = b'\340A\001' - _LISTNULLVOLUMESREQUEST.fields_by_name['parent']._options = None - _LISTNULLVOLUMESREQUEST.fields_by_name['parent']._serialized_options = b'\340A\002\372A\037\022\035opi_api.storage.v1/NullVolume' - _LISTNULLVOLUMESREQUEST.fields_by_name['page_size']._options = None - _LISTNULLVOLUMESREQUEST.fields_by_name['page_size']._serialized_options = b'\340A\001' - _LISTNULLVOLUMESREQUEST.fields_by_name['page_token']._options = None - _LISTNULLVOLUMESREQUEST.fields_by_name['page_token']._serialized_options = b'\340A\001' - _GETNULLVOLUMEREQUEST.fields_by_name['name']._options = None - _GETNULLVOLUMEREQUEST.fields_by_name['name']._serialized_options = b'\340A\002\372A\037\n\035opi_api.storage.v1/NullVolume' - _STATSNULLVOLUMEREQUEST.fields_by_name['name']._options = None - _STATSNULLVOLUMEREQUEST.fields_by_name['name']._serialized_options = b'\340A\002\372A\037\n\035opi_api.storage.v1/NullVolume' - _NULLVOLUMESERVICE.methods_by_name['CreateNullVolume']._options = None - _NULLVOLUMESERVICE.methods_by_name['CreateNullVolume']._serialized_options = b'\202\323\344\223\002\036\"\017/v1/nullVolumes:\013null_volume\332A\032null_volume,null_volume_id' - _NULLVOLUMESERVICE.methods_by_name['DeleteNullVolume']._options = None - _NULLVOLUMESERVICE.methods_by_name['DeleteNullVolume']._serialized_options = b'\202\323\344\223\002\032*\030/v1/{name=nullVolumes/*}\332A\004name' - _NULLVOLUMESERVICE.methods_by_name['UpdateNullVolume']._options = None - _NULLVOLUMESERVICE.methods_by_name['UpdateNullVolume']._serialized_options = b'\202\323\344\223\00232$/v1/{null_volume.name=nullVolumes/*}:\013null_volume\332A\027null_volume,update_mask' - _NULLVOLUMESERVICE.methods_by_name['ListNullVolumes']._options = None - _NULLVOLUMESERVICE.methods_by_name['ListNullVolumes']._serialized_options = b'\202\323\344\223\002\031\022\027/v1/{parent=subsystems}\332A\006parent' - _NULLVOLUMESERVICE.methods_by_name['GetNullVolume']._options = None - _NULLVOLUMESERVICE.methods_by_name['GetNullVolume']._serialized_options = b'\202\323\344\223\002\032\022\030/v1/{name=nullVolumes/*}\332A\004name' - _NULLVOLUMESERVICE.methods_by_name['StatsNullVolume']._options = None - _NULLVOLUMESERVICE.methods_by_name['StatsNullVolume']._serialized_options = b'\202\323\344\223\002 \022\036/v1/{name=nullVolumes/*}:stats\332A\004name' - _NULLVOLUME._serialized_start=250 - _NULLVOLUME._serialized_end=460 - _CREATENULLVOLUMEREQUEST._serialized_start=462 - _CREATENULLVOLUMEREQUEST._serialized_end=574 - _DELETENULLVOLUMEREQUEST._serialized_start=576 - _DELETENULLVOLUMEREQUEST._serialized_end=682 - _UPDATENULLVOLUMEREQUEST._serialized_start=685 - _UPDATENULLVOLUMEREQUEST._serialized_end=850 - _LISTNULLVOLUMESREQUEST._serialized_start=853 - _LISTNULLVOLUMESREQUEST._serialized_end=981 - _LISTNULLVOLUMESRESPONSE._serialized_start=983 - _LISTNULLVOLUMESRESPONSE._serialized_end=1087 - _GETNULLVOLUMEREQUEST._serialized_start=1089 - _GETNULLVOLUMEREQUEST._serialized_end=1164 - _STATSNULLVOLUMEREQUEST._serialized_start=1166 - _STATSNULLVOLUMEREQUEST._serialized_end=1243 - _STATSNULLVOLUMERESPONSE._serialized_start=1245 - _STATSNULLVOLUMERESPONSE._serialized_end=1318 - _NULLVOLUMESERVICE._serialized_start=1321 - _NULLVOLUMESERVICE._serialized_end=2259 + _globals['DESCRIPTOR']._options = None + _globals['DESCRIPTOR']._serialized_options = b'\n\022opi_api.storage.v1B\020BackendNullProtoP\001Z5github.com/opiproject/opi-api/storage/v1alpha1/gen/go' + _globals['_NULLVOLUME'].fields_by_name['name']._options = None + _globals['_NULLVOLUME'].fields_by_name['name']._serialized_options = b'\342A\001\010' + _globals['_NULLVOLUME'].fields_by_name['block_size']._options = None + _globals['_NULLVOLUME'].fields_by_name['block_size']._serialized_options = b'\342A\001\002' + _globals['_NULLVOLUME'].fields_by_name['blocks_count']._options = None + _globals['_NULLVOLUME'].fields_by_name['blocks_count']._serialized_options = b'\342A\001\002' + _globals['_NULLVOLUME'].fields_by_name['uuid']._options = None + _globals['_NULLVOLUME'].fields_by_name['uuid']._serialized_options = b'\342A\001\001' + _globals['_NULLVOLUME']._options = None + _globals['_NULLVOLUME']._serialized_options = b'\352AN\n\035opi_api.storage.v1/NullVolume\022\024nullVolumes/{volume}*\013nullVolumes2\nnullVolume' + _globals['_CREATENULLVOLUMEREQUEST'].fields_by_name['null_volume']._options = None + _globals['_CREATENULLVOLUMEREQUEST'].fields_by_name['null_volume']._serialized_options = b'\342A\001\002' + _globals['_CREATENULLVOLUMEREQUEST'].fields_by_name['null_volume_id']._options = None + _globals['_CREATENULLVOLUMEREQUEST'].fields_by_name['null_volume_id']._serialized_options = b'\342A\001\001' + _globals['_DELETENULLVOLUMEREQUEST'].fields_by_name['name']._options = None + _globals['_DELETENULLVOLUMEREQUEST'].fields_by_name['name']._serialized_options = b'\342A\001\002\372A\037\n\035opi_api.storage.v1/NullVolume' + _globals['_DELETENULLVOLUMEREQUEST'].fields_by_name['allow_missing']._options = None + _globals['_DELETENULLVOLUMEREQUEST'].fields_by_name['allow_missing']._serialized_options = b'\342A\001\001' + _globals['_UPDATENULLVOLUMEREQUEST'].fields_by_name['null_volume']._options = None + _globals['_UPDATENULLVOLUMEREQUEST'].fields_by_name['null_volume']._serialized_options = b'\342A\001\002' + _globals['_UPDATENULLVOLUMEREQUEST'].fields_by_name['update_mask']._options = None + _globals['_UPDATENULLVOLUMEREQUEST'].fields_by_name['update_mask']._serialized_options = b'\342A\001\001' + _globals['_UPDATENULLVOLUMEREQUEST'].fields_by_name['allow_missing']._options = None + _globals['_UPDATENULLVOLUMEREQUEST'].fields_by_name['allow_missing']._serialized_options = b'\342A\001\001' + _globals['_LISTNULLVOLUMESREQUEST'].fields_by_name['page_size']._options = None + _globals['_LISTNULLVOLUMESREQUEST'].fields_by_name['page_size']._serialized_options = b'\342A\001\001' + _globals['_LISTNULLVOLUMESREQUEST'].fields_by_name['page_token']._options = None + _globals['_LISTNULLVOLUMESREQUEST'].fields_by_name['page_token']._serialized_options = b'\342A\001\001' + _globals['_GETNULLVOLUMEREQUEST'].fields_by_name['name']._options = None + _globals['_GETNULLVOLUMEREQUEST'].fields_by_name['name']._serialized_options = b'\342A\001\002\372A\037\n\035opi_api.storage.v1/NullVolume' + _globals['_STATSNULLVOLUMEREQUEST'].fields_by_name['name']._options = None + _globals['_STATSNULLVOLUMEREQUEST'].fields_by_name['name']._serialized_options = b'\342A\001\002\372A\037\n\035opi_api.storage.v1/NullVolume' + _globals['_NULLVOLUMESERVICE'].methods_by_name['CreateNullVolume']._options = None + _globals['_NULLVOLUMESERVICE'].methods_by_name['CreateNullVolume']._serialized_options = b'\332A\032null_volume,null_volume_id\202\323\344\223\002\036\"\017/v1/nullVolumes:\013null_volume' + _globals['_NULLVOLUMESERVICE'].methods_by_name['DeleteNullVolume']._options = None + _globals['_NULLVOLUMESERVICE'].methods_by_name['DeleteNullVolume']._serialized_options = b'\332A\004name\202\323\344\223\002\032*\030/v1/{name=nullVolumes/*}' + _globals['_NULLVOLUMESERVICE'].methods_by_name['UpdateNullVolume']._options = None + _globals['_NULLVOLUMESERVICE'].methods_by_name['UpdateNullVolume']._serialized_options = b'\332A\027null_volume,update_mask\202\323\344\223\00232$/v1/{null_volume.name=nullVolumes/*}:\013null_volume' + _globals['_NULLVOLUMESERVICE'].methods_by_name['ListNullVolumes']._options = None + _globals['_NULLVOLUMESERVICE'].methods_by_name['ListNullVolumes']._serialized_options = b'\202\323\344\223\002\021\022\017/v1/nullVolumes' + _globals['_NULLVOLUMESERVICE'].methods_by_name['GetNullVolume']._options = None + _globals['_NULLVOLUMESERVICE'].methods_by_name['GetNullVolume']._serialized_options = b'\332A\004name\202\323\344\223\002\032\022\030/v1/{name=nullVolumes/*}' + _globals['_NULLVOLUMESERVICE'].methods_by_name['StatsNullVolume']._options = None + _globals['_NULLVOLUMESERVICE'].methods_by_name['StatsNullVolume']._serialized_options = b'\332A\004name\202\323\344\223\002 \022\036/v1/{name=nullVolumes/*}:stats' + _globals['_NULLVOLUME']._serialized_start=238 + _globals['_NULLVOLUME']._serialized_end=463 + _globals['_CREATENULLVOLUMEREQUEST']._serialized_start=466 + _globals['_CREATENULLVOLUMEREQUEST']._serialized_end=606 + _globals['_DELETENULLVOLUMEREQUEST']._serialized_start=609 + _globals['_DELETENULLVOLUMEREQUEST']._serialized_end=737 + _globals['_UPDATENULLVOLUMEREQUEST']._serialized_start=740 + _globals['_UPDATENULLVOLUMEREQUEST']._serialized_end=946 + _globals['_LISTNULLVOLUMESREQUEST']._serialized_start=948 + _globals['_LISTNULLVOLUMESREQUEST']._serialized_end=1044 + _globals['_LISTNULLVOLUMESRESPONSE']._serialized_start=1047 + _globals['_LISTNULLVOLUMESRESPONSE']._serialized_end=1179 + _globals['_GETNULLVOLUMEREQUEST']._serialized_start=1181 + _globals['_GETNULLVOLUMEREQUEST']._serialized_end=1263 + _globals['_STATSNULLVOLUMEREQUEST']._serialized_start=1265 + _globals['_STATSNULLVOLUMEREQUEST']._serialized_end=1349 + _globals['_STATSNULLVOLUMERESPONSE']._serialized_start=1351 + _globals['_STATSNULLVOLUMERESPONSE']._serialized_end=1431 + _globals['_NULLVOLUMESERVICE']._serialized_start=1434 + _globals['_NULLVOLUMESERVICE']._serialized_end=2355 # @@protoc_insertion_point(module_scope) diff --git a/storage/v1alpha1/gen/python/backend_nvme_pb2.py b/storage/v1alpha1/gen/python/backend_nvme_pb2.py index ae4df627..1dd64b61 100644 --- a/storage/v1alpha1/gen/python/backend_nvme_pb2.py +++ b/storage/v1alpha1/gen/python/backend_nvme_pb2.py @@ -1,11 +1,12 @@ # -*- coding: utf-8 -*- # Generated by the protocol buffer compiler. DO NOT EDIT! # source: backend_nvme.proto +# Protobuf Python Version: 4.25.2 """Generated protocol buffer code.""" -from google.protobuf.internal import builder as _builder from google.protobuf import descriptor as _descriptor from google.protobuf import descriptor_pool as _descriptor_pool from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder # @@protoc_insertion_point(imports) _sym_db = _symbol_database.Default() @@ -18,209 +19,208 @@ from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 from google.protobuf import field_mask_pb2 as google_dot_protobuf_dot_field__mask__pb2 import opicommon_pb2 as opicommon__pb2 -import uuid_pb2 as uuid__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x12\x62\x61\x63kend_nvme.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\"\xcf\x02\n\x14NvmeRemoteController\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x08\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\'opi_api.storage.v1/NvmeRemoteController\x12\"nvmeRemoteControllers/{controller}*\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\"\x91\x02\n\x08NvmePath\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x08\x12:\n\x06trtype\x18\x02 \x01(\x0e\x32%.opi_api.storage.v1.NvmeTransportTypeB\x03\xe0\x41\x02\x12\x13\n\x06traddr\x18\x03 \x01(\tB\x03\xe0\x41\x02\x12\x35\n\x07\x66\x61\x62rics\x18\x04 \x01(\x0b\x32\x1f.opi_api.storage.v1.FabricsPathB\x03\xe0\x41\x01:j\xea\x41g\n\x1bopi_api.storage.v1/NvmePath\x12\x33nvmeRemoteControllers/{controller}/nvmePaths/{path}*\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\"\xae\x02\n\x13NvmeRemoteNamespace\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x08\x12\x11\n\x04nsid\x18\x02 \x01(\x05\x42\x03\xe0\x41\x03\x12\x12\n\x05nguid\x18\x03 \x01(\tB\x03\xe0\x41\x03\x12\x12\n\x05\x65ui64\x18\x04 \x01(\x03\x42\x03\xe0\x41\x03\x12*\n\x04uuid\x18\x05 \x01(\x0b\x32\x17.opi_api.common.v1.UuidB\x03\xe0\x41\x03:\x9c\x01\xea\x41\x98\x01\n&opi_api.storage.v1/NvmeRemoteNamespace\x12\x43nvmeRemoteControllers/{controller}/nvmeRemoteNamespaces/{namespace}*\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\"S\n ListNvmeRemoteControllersRequest\x12\x16\n\tpage_size\x18\x01 \x01(\x05\x42\x03\xe0\x41\x01\x12\x17\n\npage_token\x18\x02 \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(\x12&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\"\xa9\x01\n\x15\x43reateNvmePathRequest\x12?\n\x06parent\x18\x01 \x01(\tB/\xe0\x41\x02\xfa\x41)\n\'opi_api.storage.v1/NvmeRemoteController\x12\x34\n\tnvme_path\x18\x02 \x01(\x0b\x32\x1c.opi_api.storage.v1.NvmePathB\x03\xe0\x41\x02\x12\x19\n\x0cnvme_path_id\x18\x03 \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\x12\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\x86\x16\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\xab\x01\n\x19ListNvmeRemoteControllers\x12\x34.opi_api.storage.v1.ListNvmeRemoteControllersRequest\x1a\x35.opi_api.storage.v1.ListNvmeRemoteControllersResponse\"!\x82\xd3\xe4\x93\x02\x1b\x12\x19/v1/nvmeRemoteControllers\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\xd1\x01\n\x18ListNvmeRemoteNamespaces\x12\x33.opi_api.storage.v1.ListNvmeRemoteNamespacesRequest\x1a\x34.opi_api.storage.v1.ListNvmeRemoteNamespacesResponse\"J\x82\xd3\xe4\x93\x02;\x12\x39/v1/{parent=nvmeRemoteControllers/*}/nvmeRemoteNamespaces\xda\x41\x06parent\x12\xbe\x01\n\x16GetNvmeRemoteNamespace\x12\x31.opi_api.storage.v1.GetNvmeRemoteNamespaceRequest\x1a\'.opi_api.storage.v1.NvmeRemoteNamespace\"H\x82\xd3\xe4\x93\x02;\x12\x39/v1/{name=nvmeRemoteControllers/*/nvmeRemoteNamespaces/*}\xda\x41\x04name\x12\xbc\x01\n\x0e\x43reateNvmePath\x12).opi_api.storage.v1.CreateNvmePathRequest\x1a\x1c.opi_api.storage.v1.NvmePath\"a\x82\xd3\xe4\x93\x02;\"./v1/{parent=nvmeRemoteControllers/*}/nvmePaths:\tnvme_path\xda\x41\x1dparent,nvme_path,nvme_path_id\x12\x92\x01\n\x0e\x44\x65leteNvmePath\x12).opi_api.storage.v1.DeleteNvmePathRequest\x1a\x16.google.protobuf.Empty\"=\x82\xd3\xe4\x93\x02\x30*./v1/{name=nvmeRemoteControllers/*/nvmePaths/*}\xda\x41\x04name\x12\xbe\x01\n\x0eUpdateNvmePath\x12).opi_api.storage.v1.UpdateNvmePathRequest\x1a\x1c.opi_api.storage.v1.NvmePath\"c\x82\xd3\xe4\x93\x02\x45\x32\x38/v1/{nvme_path.name=nvmeRemoteControllers/*/nvmePaths/*}:\tnvme_path\xda\x41\x15nvme_path,update_mask\x12\xa5\x01\n\rListNvmePaths\x12(.opi_api.storage.v1.ListNvmePathsRequest\x1a).opi_api.storage.v1.ListNvmePathsResponse\"?\x82\xd3\xe4\x93\x02\x30\x12./v1/{parent=nvmeRemoteControllers/*}/nvmePaths\xda\x41\x06parent\x12\x92\x01\n\x0bGetNvmePath\x12&.opi_api.storage.v1.GetNvmePathRequest\x1a\x1c.opi_api.storage.v1.NvmePath\"=\x82\xd3\xe4\x93\x02\x30\x12./v1/{name=nvmeRemoteControllers/*/nvmePaths/*}\xda\x41\x04name\x12\xa9\x01\n\rStatsNvmePath\x12(.opi_api.storage.v1.StatsNvmePathRequest\x1a).opi_api.storage.v1.StatsNvmePathResponse\"C\x82\xd3\xe4\x93\x02\x36\x12\x34/v1/{name=nvmeRemoteControllers/*/nvmePaths/*}:stats\xda\x41\x04nameB_\n\x12opi_api.storage.v1B\x10\x42\x61\x63kendNvmeProtoP\x01Z5github.com/opiproject/opi-api/storage/v1alpha1/gen/gob\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x12\x62\x61\x63kend_nvme.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\"\x84\x03\n\x14NvmeRemoteController\x12\x18\n\x04name\x18\x01 \x01(\tB\x04\xe2\x41\x01\x08R\x04name\x12\x45\n\tmultipath\x18\x02 \x01(\x0e\x32!.opi_api.storage.v1.NvmeMultipathB\x04\xe2\x41\x01\x02R\tmultipath\x12,\n\x0fio_queues_count\x18\x03 \x01(\x03\x42\x04\xe2\x41\x01\x01R\rioQueuesCount\x12#\n\nqueue_size\x18\x04 \x01(\x03\x42\x04\xe2\x41\x01\x01R\tqueueSize\x12\x39\n\x03tcp\x18\x05 \x01(\x0b\x32!.opi_api.storage.v1.TcpControllerB\x04\xe2\x41\x01\x01R\x03tcp:}\xea\x41z\n\'opi_api.storage.v1/NvmeRemoteController\x12\"nvmeRemoteControllers/{controller}*\x15nvmeRemoteControllers2\x14nvmeRemoteController\"_\n\rTcpController\x12\x1a\n\x05hdgst\x18\x01 \x01(\x08\x42\x04\xe2\x41\x01\x01R\x05hdgst\x12\x1a\n\x05\x64\x64gst\x18\x02 \x01(\x08\x42\x04\xe2\x41\x01\x01R\x05\x64\x64gst\x12\x16\n\x03psk\x18\x03 \x01(\x0c\x42\x04\xe2\x41\x01\x01R\x03psk\"\xb4\x02\n\x08NvmePath\x12\x18\n\x04name\x18\x01 \x01(\tB\x04\xe2\x41\x01\x08R\x04name\x12\x43\n\x06trtype\x18\x02 \x01(\x0e\x32%.opi_api.storage.v1.NvmeTransportTypeB\x04\xe2\x41\x01\x02R\x06trtype\x12\x1c\n\x06traddr\x18\x03 \x01(\tB\x04\xe2\x41\x01\x02R\x06traddr\x12?\n\x07\x66\x61\x62rics\x18\x04 \x01(\x0b\x32\x1f.opi_api.storage.v1.FabricsPathB\x04\xe2\x41\x01\x01R\x07\x66\x61\x62rics:j\xea\x41g\n\x1bopi_api.storage.v1/NvmePath\x12\x33nvmeRemoteControllers/{controller}/nvmePaths/{path}*\tnvmePaths2\x08nvmePath\"\x88\x02\n\x0b\x46\x61\x62ricsPath\x12\x1e\n\x07trsvcid\x18\x01 \x01(\x03\x42\x04\xe2\x41\x01\x02R\x07trsvcid\x12\x1c\n\x06subnqn\x18\x02 \x01(\tB\x04\xe2\x41\x01\x02R\x06subnqn\x12\x43\n\x06\x61\x64rfam\x18\x03 \x01(\x0e\x32%.opi_api.storage.v1.NvmeAddressFamilyB\x04\xe2\x41\x01\x02R\x06\x61\x64rfam\x12)\n\rsource_traddr\x18\x04 \x01(\tB\x04\xe2\x41\x01\x01R\x0csourceTraddr\x12+\n\x0esource_trsvcid\x18\x05 \x01(\x03\x42\x04\xe2\x41\x01\x01R\rsourceTrsvcid\x12\x1e\n\x07hostnqn\x18\x06 \x01(\tB\x04\xe2\x41\x01\x01R\x07hostnqn\"\xba\x02\n\x13NvmeRemoteNamespace\x12\x18\n\x04name\x18\x01 \x01(\tB\x04\xe2\x41\x01\x08R\x04name\x12\x18\n\x04nsid\x18\x02 \x01(\x05\x42\x04\xe2\x41\x01\x03R\x04nsid\x12\x1a\n\x05nguid\x18\x03 \x01(\tB\x04\xe2\x41\x01\x03R\x05nguid\x12\x1a\n\x05\x65ui64\x18\x04 \x01(\x03\x42\x04\xe2\x41\x01\x03R\x05\x65ui64\x12\x18\n\x04uuid\x18\x05 \x01(\tB\x04\xe2\x41\x01\x03R\x04uuid:\x9c\x01\xea\x41\x98\x01\n&opi_api.storage.v1/NvmeRemoteNamespace\x12\x43nvmeRemoteControllers/{controller}/nvmeRemoteNamespaces/{namespace}*\x14nvmeRemoteNamespaces2\x13nvmeRemoteNamespace\"\xca\x01\n!CreateNvmeRemoteControllerRequest\x12\x64\n\x16nvme_remote_controller\x18\x01 \x01(\x0b\x32(.opi_api.storage.v1.NvmeRemoteControllerB\x04\xe2\x41\x01\x02R\x14nvmeRemoteController\x12?\n\x19nvme_remote_controller_id\x18\x02 \x01(\tB\x04\xe2\x41\x01\x01R\x16nvmeRemoteControllerId\"\x94\x01\n!DeleteNvmeRemoteControllerRequest\x12\x44\n\x04name\x18\x01 \x01(\tB0\xe2\x41\x01\x02\xfa\x41)\n\'opi_api.storage.v1/NvmeRemoteControllerR\x04name\x12)\n\rallow_missing\x18\x02 \x01(\x08\x42\x04\xe2\x41\x01\x01R\x0c\x61llowMissing\"\xf7\x01\n!UpdateNvmeRemoteControllerRequest\x12\x64\n\x16nvme_remote_controller\x18\x01 \x01(\x0b\x32(.opi_api.storage.v1.NvmeRemoteControllerB\x04\xe2\x41\x01\x02R\x14nvmeRemoteController\x12\x41\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x04\xe2\x41\x01\x01R\nupdateMask\x12)\n\rallow_missing\x18\x03 \x01(\x08\x42\x04\xe2\x41\x01\x01R\x0c\x61llowMissing\"j\n ListNvmeRemoteControllersRequest\x12!\n\tpage_size\x18\x01 \x01(\x05\x42\x04\xe2\x41\x01\x01R\x08pageSize\x12#\n\npage_token\x18\x02 \x01(\tB\x04\xe2\x41\x01\x01R\tpageToken\"\xad\x01\n!ListNvmeRemoteControllersResponse\x12`\n\x17nvme_remote_controllers\x18\x01 \x03(\x0b\x32(.opi_api.storage.v1.NvmeRemoteControllerR\x15nvmeRemoteControllers\x12&\n\x0fnext_page_token\x18\x02 \x01(\tR\rnextPageToken\"f\n\x1eGetNvmeRemoteControllerRequest\x12\x44\n\x04name\x18\x01 \x01(\tB0\xe2\x41\x01\x02\xfa\x41)\n\'opi_api.storage.v1/NvmeRemoteControllerR\x04name\"h\n ResetNvmeRemoteControllerRequest\x12\x44\n\x04name\x18\x01 \x01(\tB0\xe2\x41\x01\x02\xfa\x41)\n\'opi_api.storage.v1/NvmeRemoteControllerR\x04name\"h\n StatsNvmeRemoteControllerRequest\x12\x44\n\x04name\x18\x01 \x01(\tB0\xe2\x41\x01\x02\xfa\x41)\n\'opi_api.storage.v1/NvmeRemoteControllerR\x04name\"Z\n!StatsNvmeRemoteControllerResponse\x12\x35\n\x05stats\x18\x01 \x01(\x0b\x32\x1f.opi_api.storage.v1.VolumeStatsR\x05stats\"\xb2\x01\n\x1fListNvmeRemoteNamespacesRequest\x12G\n\x06parent\x18\x01 \x01(\tB/\xe2\x41\x01\x02\xfa\x41(\x12&opi_api.storage.v1/NvmeRemoteNamespaceR\x06parent\x12!\n\tpage_size\x18\x02 \x01(\x05\x42\x04\xe2\x41\x01\x01R\x08pageSize\x12#\n\npage_token\x18\x03 \x01(\tB\x04\xe2\x41\x01\x01R\tpageToken\"\xa9\x01\n ListNvmeRemoteNamespacesResponse\x12]\n\x16nvme_remote_namespaces\x18\x01 \x03(\x0b\x32\'.opi_api.storage.v1.NvmeRemoteNamespaceR\x14nvmeRemoteNamespaces\x12&\n\x0fnext_page_token\x18\x02 \x01(\tR\rnextPageToken\"d\n\x1dGetNvmeRemoteNamespaceRequest\x12\x43\n\x04name\x18\x01 \x01(\tB/\xe2\x41\x01\x02\xfa\x41(\n&opi_api.storage.v1/NvmeRemoteNamespaceR\x04name\"\xca\x01\n\x15\x43reateNvmePathRequest\x12H\n\x06parent\x18\x01 \x01(\tB0\xe2\x41\x01\x02\xfa\x41)\n\'opi_api.storage.v1/NvmeRemoteControllerR\x06parent\x12?\n\tnvme_path\x18\x02 \x01(\x0b\x32\x1c.opi_api.storage.v1.NvmePathB\x04\xe2\x41\x01\x02R\x08nvmePath\x12&\n\x0cnvme_path_id\x18\x03 \x01(\tB\x04\xe2\x41\x01\x01R\nnvmePathId\"|\n\x15\x44\x65leteNvmePathRequest\x12\x38\n\x04name\x18\x01 \x01(\tB$\xe2\x41\x01\x02\xfa\x41\x1d\n\x1bopi_api.storage.v1/NvmePathR\x04name\x12)\n\rallow_missing\x18\x02 \x01(\x08\x42\x04\xe2\x41\x01\x01R\x0c\x61llowMissing\"\xc6\x01\n\x15UpdateNvmePathRequest\x12?\n\tnvme_path\x18\x01 \x01(\x0b\x32\x1c.opi_api.storage.v1.NvmePathB\x04\xe2\x41\x01\x02R\x08nvmePath\x12\x41\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x04\xe2\x41\x01\x01R\nupdateMask\x12)\n\rallow_missing\x18\x03 \x01(\x08\x42\x04\xe2\x41\x01\x01R\x0c\x61llowMissing\"\x9c\x01\n\x14ListNvmePathsRequest\x12<\n\x06parent\x18\x01 \x01(\tB$\xe2\x41\x01\x02\xfa\x41\x1d\x12\x1bopi_api.storage.v1/NvmePathR\x06parent\x12!\n\tpage_size\x18\x02 \x01(\x05\x42\x04\xe2\x41\x01\x01R\x08pageSize\x12#\n\npage_token\x18\x03 \x01(\tB\x04\xe2\x41\x01\x01R\tpageToken\"|\n\x15ListNvmePathsResponse\x12;\n\nnvme_paths\x18\x01 \x03(\x0b\x32\x1c.opi_api.storage.v1.NvmePathR\tnvmePaths\x12&\n\x0fnext_page_token\x18\x02 \x01(\tR\rnextPageToken\"N\n\x12GetNvmePathRequest\x12\x38\n\x04name\x18\x01 \x01(\tB$\xe2\x41\x01\x02\xfa\x41\x1d\n\x1bopi_api.storage.v1/NvmePathR\x04name\"P\n\x14StatsNvmePathRequest\x12\x38\n\x04name\x18\x01 \x01(\tB$\xe2\x41\x01\x02\xfa\x41\x1d\n\x1bopi_api.storage.v1/NvmePathR\x04name\"N\n\x15StatsNvmePathResponse\x12\x35\n\x05stats\x18\x01 \x01(\x0b\x32\x1f.opi_api.storage.v1.VolumeStatsR\x05stats*\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\x86\x16\n\x1bNvmeRemoteControllerService\x12\xeb\x01\n\x1a\x43reateNvmeRemoteController\x12\x35.opi_api.storage.v1.CreateNvmeRemoteControllerRequest\x1a(.opi_api.storage.v1.NvmeRemoteController\"l\xda\x41\x30nvme_remote_controller,nvme_remote_controller_id\x82\xd3\xe4\x93\x02\x33\"\x19/v1/nvmeRemoteControllers:\x16nvme_remote_controller\x12\x9e\x01\n\x1a\x44\x65leteNvmeRemoteController\x12\x35.opi_api.storage.v1.DeleteNvmeRemoteControllerRequest\x1a\x16.google.protobuf.Empty\"1\xda\x41\x04name\x82\xd3\xe4\x93\x02$*\"/v1/{name=nvmeRemoteControllers/*}\x12\xfd\x01\n\x1aUpdateNvmeRemoteController\x12\x35.opi_api.storage.v1.UpdateNvmeRemoteControllerRequest\x1a(.opi_api.storage.v1.NvmeRemoteController\"~\xda\x41\"nvme_remote_controller,update_mask\x82\xd3\xe4\x93\x02S29/v1/{nvme_remote_controller.name=nvmeRemoteControllers/*}:\x16nvme_remote_controller\x12\xab\x01\n\x19ListNvmeRemoteControllers\x12\x34.opi_api.storage.v1.ListNvmeRemoteControllersRequest\x1a\x35.opi_api.storage.v1.ListNvmeRemoteControllersResponse\"!\x82\xd3\xe4\x93\x02\x1b\x12\x19/v1/nvmeRemoteControllers\x12\xaa\x01\n\x17GetNvmeRemoteController\x12\x32.opi_api.storage.v1.GetNvmeRemoteControllerRequest\x1a(.opi_api.storage.v1.NvmeRemoteController\"1\xda\x41\x04name\x82\xd3\xe4\x93\x02$\x12\"/v1/{name=nvmeRemoteControllers/*}\x12\xa5\x01\n\x19ResetNvmeRemoteController\x12\x34.opi_api.storage.v1.ResetNvmeRemoteControllerRequest\x1a\x16.google.protobuf.Empty\":\xda\x41\x04name\x82\xd3\xe4\x93\x02-\"(/v1/{name=nvmeRemoteControllers/*}:reset:\x01*\x12\xc1\x01\n\x19StatsNvmeRemoteController\x12\x34.opi_api.storage.v1.StatsNvmeRemoteControllerRequest\x1a\x35.opi_api.storage.v1.StatsNvmeRemoteControllerResponse\"7\xda\x41\x04name\x82\xd3\xe4\x93\x02*\x12(/v1/{name=nvmeRemoteControllers/*}:stats\x12\xd1\x01\n\x18ListNvmeRemoteNamespaces\x12\x33.opi_api.storage.v1.ListNvmeRemoteNamespacesRequest\x1a\x34.opi_api.storage.v1.ListNvmeRemoteNamespacesResponse\"J\xda\x41\x06parent\x82\xd3\xe4\x93\x02;\x12\x39/v1/{parent=nvmeRemoteControllers/*}/nvmeRemoteNamespaces\x12\xbe\x01\n\x16GetNvmeRemoteNamespace\x12\x31.opi_api.storage.v1.GetNvmeRemoteNamespaceRequest\x1a\'.opi_api.storage.v1.NvmeRemoteNamespace\"H\xda\x41\x04name\x82\xd3\xe4\x93\x02;\x12\x39/v1/{name=nvmeRemoteControllers/*/nvmeRemoteNamespaces/*}\x12\xbc\x01\n\x0e\x43reateNvmePath\x12).opi_api.storage.v1.CreateNvmePathRequest\x1a\x1c.opi_api.storage.v1.NvmePath\"a\xda\x41\x1dparent,nvme_path,nvme_path_id\x82\xd3\xe4\x93\x02;\"./v1/{parent=nvmeRemoteControllers/*}/nvmePaths:\tnvme_path\x12\x92\x01\n\x0e\x44\x65leteNvmePath\x12).opi_api.storage.v1.DeleteNvmePathRequest\x1a\x16.google.protobuf.Empty\"=\xda\x41\x04name\x82\xd3\xe4\x93\x02\x30*./v1/{name=nvmeRemoteControllers/*/nvmePaths/*}\x12\xbe\x01\n\x0eUpdateNvmePath\x12).opi_api.storage.v1.UpdateNvmePathRequest\x1a\x1c.opi_api.storage.v1.NvmePath\"c\xda\x41\x15nvme_path,update_mask\x82\xd3\xe4\x93\x02\x45\x32\x38/v1/{nvme_path.name=nvmeRemoteControllers/*/nvmePaths/*}:\tnvme_path\x12\xa5\x01\n\rListNvmePaths\x12(.opi_api.storage.v1.ListNvmePathsRequest\x1a).opi_api.storage.v1.ListNvmePathsResponse\"?\xda\x41\x06parent\x82\xd3\xe4\x93\x02\x30\x12./v1/{parent=nvmeRemoteControllers/*}/nvmePaths\x12\x92\x01\n\x0bGetNvmePath\x12&.opi_api.storage.v1.GetNvmePathRequest\x1a\x1c.opi_api.storage.v1.NvmePath\"=\xda\x41\x04name\x82\xd3\xe4\x93\x02\x30\x12./v1/{name=nvmeRemoteControllers/*/nvmePaths/*}\x12\xa9\x01\n\rStatsNvmePath\x12(.opi_api.storage.v1.StatsNvmePathRequest\x1a).opi_api.storage.v1.StatsNvmePathResponse\"C\xda\x41\x04name\x82\xd3\xe4\x93\x02\x36\x12\x34/v1/{name=nvmeRemoteControllers/*/nvmePaths/*}:statsB_\n\x12opi_api.storage.v1B\x10\x42\x61\x63kendNvmeProtoP\x01Z5github.com/opiproject/opi-api/storage/v1alpha1/gen/gob\x06proto3') -_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals()) -_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'backend_nvme_pb2', globals()) +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'backend_nvme_pb2', _globals) if _descriptor._USE_C_DESCRIPTORS == False: - - DESCRIPTOR._options = None - DESCRIPTOR._serialized_options = b'\n\022opi_api.storage.v1B\020BackendNvmeProtoP\001Z5github.com/opiproject/opi-api/storage/v1alpha1/gen/go' - _NVMEREMOTECONTROLLER.fields_by_name['name']._options = None - _NVMEREMOTECONTROLLER.fields_by_name['name']._serialized_options = b'\340A\010' - _NVMEREMOTECONTROLLER.fields_by_name['multipath']._options = None - _NVMEREMOTECONTROLLER.fields_by_name['multipath']._serialized_options = b'\340A\002' - _NVMEREMOTECONTROLLER.fields_by_name['io_queues_count']._options = None - _NVMEREMOTECONTROLLER.fields_by_name['io_queues_count']._serialized_options = b'\340A\001' - _NVMEREMOTECONTROLLER.fields_by_name['queue_size']._options = None - _NVMEREMOTECONTROLLER.fields_by_name['queue_size']._serialized_options = b'\340A\001' - _NVMEREMOTECONTROLLER.fields_by_name['tcp']._options = None - _NVMEREMOTECONTROLLER.fields_by_name['tcp']._serialized_options = b'\340A\001' - _NVMEREMOTECONTROLLER._options = None - _NVMEREMOTECONTROLLER._serialized_options = b'\352Az\n\'opi_api.storage.v1/NvmeRemoteController\022\"nvmeRemoteControllers/{controller}*\025nvmeRemoteControllers2\024nvmeRemoteController' - _TCPCONTROLLER.fields_by_name['hdgst']._options = None - _TCPCONTROLLER.fields_by_name['hdgst']._serialized_options = b'\340A\001' - _TCPCONTROLLER.fields_by_name['ddgst']._options = None - _TCPCONTROLLER.fields_by_name['ddgst']._serialized_options = b'\340A\001' - _TCPCONTROLLER.fields_by_name['psk']._options = None - _TCPCONTROLLER.fields_by_name['psk']._serialized_options = b'\340A\001' - _NVMEPATH.fields_by_name['name']._options = None - _NVMEPATH.fields_by_name['name']._serialized_options = b'\340A\010' - _NVMEPATH.fields_by_name['trtype']._options = None - _NVMEPATH.fields_by_name['trtype']._serialized_options = b'\340A\002' - _NVMEPATH.fields_by_name['traddr']._options = None - _NVMEPATH.fields_by_name['traddr']._serialized_options = b'\340A\002' - _NVMEPATH.fields_by_name['fabrics']._options = None - _NVMEPATH.fields_by_name['fabrics']._serialized_options = b'\340A\001' - _NVMEPATH._options = None - _NVMEPATH._serialized_options = b'\352Ag\n\033opi_api.storage.v1/NvmePath\0223nvmeRemoteControllers/{controller}/nvmePaths/{path}*\tnvmePaths2\010nvmePath' - _FABRICSPATH.fields_by_name['trsvcid']._options = None - _FABRICSPATH.fields_by_name['trsvcid']._serialized_options = b'\340A\002' - _FABRICSPATH.fields_by_name['subnqn']._options = None - _FABRICSPATH.fields_by_name['subnqn']._serialized_options = b'\340A\002' - _FABRICSPATH.fields_by_name['adrfam']._options = None - _FABRICSPATH.fields_by_name['adrfam']._serialized_options = b'\340A\002' - _FABRICSPATH.fields_by_name['source_traddr']._options = None - _FABRICSPATH.fields_by_name['source_traddr']._serialized_options = b'\340A\001' - _FABRICSPATH.fields_by_name['source_trsvcid']._options = None - _FABRICSPATH.fields_by_name['source_trsvcid']._serialized_options = b'\340A\001' - _FABRICSPATH.fields_by_name['hostnqn']._options = None - _FABRICSPATH.fields_by_name['hostnqn']._serialized_options = b'\340A\001' - _NVMEREMOTENAMESPACE.fields_by_name['name']._options = None - _NVMEREMOTENAMESPACE.fields_by_name['name']._serialized_options = b'\340A\010' - _NVMEREMOTENAMESPACE.fields_by_name['nsid']._options = None - _NVMEREMOTENAMESPACE.fields_by_name['nsid']._serialized_options = b'\340A\003' - _NVMEREMOTENAMESPACE.fields_by_name['nguid']._options = None - _NVMEREMOTENAMESPACE.fields_by_name['nguid']._serialized_options = b'\340A\003' - _NVMEREMOTENAMESPACE.fields_by_name['eui64']._options = None - _NVMEREMOTENAMESPACE.fields_by_name['eui64']._serialized_options = b'\340A\003' - _NVMEREMOTENAMESPACE.fields_by_name['uuid']._options = None - _NVMEREMOTENAMESPACE.fields_by_name['uuid']._serialized_options = b'\340A\003' - _NVMEREMOTENAMESPACE._options = None - _NVMEREMOTENAMESPACE._serialized_options = b'\352A\230\001\n&opi_api.storage.v1/NvmeRemoteNamespace\022CnvmeRemoteControllers/{controller}/nvmeRemoteNamespaces/{namespace}*\024nvmeRemoteNamespaces2\023nvmeRemoteNamespace' - _CREATENVMEREMOTECONTROLLERREQUEST.fields_by_name['nvme_remote_controller']._options = None - _CREATENVMEREMOTECONTROLLERREQUEST.fields_by_name['nvme_remote_controller']._serialized_options = b'\340A\002' - _CREATENVMEREMOTECONTROLLERREQUEST.fields_by_name['nvme_remote_controller_id']._options = None - _CREATENVMEREMOTECONTROLLERREQUEST.fields_by_name['nvme_remote_controller_id']._serialized_options = b'\340A\001' - _DELETENVMEREMOTECONTROLLERREQUEST.fields_by_name['name']._options = None - _DELETENVMEREMOTECONTROLLERREQUEST.fields_by_name['name']._serialized_options = b'\340A\002\372A)\n\'opi_api.storage.v1/NvmeRemoteController' - _DELETENVMEREMOTECONTROLLERREQUEST.fields_by_name['allow_missing']._options = None - _DELETENVMEREMOTECONTROLLERREQUEST.fields_by_name['allow_missing']._serialized_options = b'\340A\001' - _UPDATENVMEREMOTECONTROLLERREQUEST.fields_by_name['nvme_remote_controller']._options = None - _UPDATENVMEREMOTECONTROLLERREQUEST.fields_by_name['nvme_remote_controller']._serialized_options = b'\340A\002' - _UPDATENVMEREMOTECONTROLLERREQUEST.fields_by_name['update_mask']._options = None - _UPDATENVMEREMOTECONTROLLERREQUEST.fields_by_name['update_mask']._serialized_options = b'\340A\001' - _UPDATENVMEREMOTECONTROLLERREQUEST.fields_by_name['allow_missing']._options = None - _UPDATENVMEREMOTECONTROLLERREQUEST.fields_by_name['allow_missing']._serialized_options = b'\340A\001' - _LISTNVMEREMOTECONTROLLERSREQUEST.fields_by_name['page_size']._options = None - _LISTNVMEREMOTECONTROLLERSREQUEST.fields_by_name['page_size']._serialized_options = b'\340A\001' - _LISTNVMEREMOTECONTROLLERSREQUEST.fields_by_name['page_token']._options = None - _LISTNVMEREMOTECONTROLLERSREQUEST.fields_by_name['page_token']._serialized_options = b'\340A\001' - _GETNVMEREMOTECONTROLLERREQUEST.fields_by_name['name']._options = None - _GETNVMEREMOTECONTROLLERREQUEST.fields_by_name['name']._serialized_options = b'\340A\002\372A)\n\'opi_api.storage.v1/NvmeRemoteController' - _RESETNVMEREMOTECONTROLLERREQUEST.fields_by_name['name']._options = None - _RESETNVMEREMOTECONTROLLERREQUEST.fields_by_name['name']._serialized_options = b'\340A\002\372A)\n\'opi_api.storage.v1/NvmeRemoteController' - _STATSNVMEREMOTECONTROLLERREQUEST.fields_by_name['name']._options = None - _STATSNVMEREMOTECONTROLLERREQUEST.fields_by_name['name']._serialized_options = b'\340A\002\372A)\n\'opi_api.storage.v1/NvmeRemoteController' - _LISTNVMEREMOTENAMESPACESREQUEST.fields_by_name['parent']._options = None - _LISTNVMEREMOTENAMESPACESREQUEST.fields_by_name['parent']._serialized_options = b'\340A\002\372A(\022&opi_api.storage.v1/NvmeRemoteNamespace' - _LISTNVMEREMOTENAMESPACESREQUEST.fields_by_name['page_size']._options = None - _LISTNVMEREMOTENAMESPACESREQUEST.fields_by_name['page_size']._serialized_options = b'\340A\001' - _LISTNVMEREMOTENAMESPACESREQUEST.fields_by_name['page_token']._options = None - _LISTNVMEREMOTENAMESPACESREQUEST.fields_by_name['page_token']._serialized_options = b'\340A\001' - _GETNVMEREMOTENAMESPACEREQUEST.fields_by_name['name']._options = None - _GETNVMEREMOTENAMESPACEREQUEST.fields_by_name['name']._serialized_options = b'\340A\002\372A(\n&opi_api.storage.v1/NvmeRemoteNamespace' - _CREATENVMEPATHREQUEST.fields_by_name['parent']._options = None - _CREATENVMEPATHREQUEST.fields_by_name['parent']._serialized_options = b'\340A\002\372A)\n\'opi_api.storage.v1/NvmeRemoteController' - _CREATENVMEPATHREQUEST.fields_by_name['nvme_path']._options = None - _CREATENVMEPATHREQUEST.fields_by_name['nvme_path']._serialized_options = b'\340A\002' - _CREATENVMEPATHREQUEST.fields_by_name['nvme_path_id']._options = None - _CREATENVMEPATHREQUEST.fields_by_name['nvme_path_id']._serialized_options = b'\340A\001' - _DELETENVMEPATHREQUEST.fields_by_name['name']._options = None - _DELETENVMEPATHREQUEST.fields_by_name['name']._serialized_options = b'\340A\002\372A\035\n\033opi_api.storage.v1/NvmePath' - _DELETENVMEPATHREQUEST.fields_by_name['allow_missing']._options = None - _DELETENVMEPATHREQUEST.fields_by_name['allow_missing']._serialized_options = b'\340A\001' - _UPDATENVMEPATHREQUEST.fields_by_name['nvme_path']._options = None - _UPDATENVMEPATHREQUEST.fields_by_name['nvme_path']._serialized_options = b'\340A\002' - _UPDATENVMEPATHREQUEST.fields_by_name['update_mask']._options = None - _UPDATENVMEPATHREQUEST.fields_by_name['update_mask']._serialized_options = b'\340A\001' - _UPDATENVMEPATHREQUEST.fields_by_name['allow_missing']._options = None - _UPDATENVMEPATHREQUEST.fields_by_name['allow_missing']._serialized_options = b'\340A\001' - _LISTNVMEPATHSREQUEST.fields_by_name['parent']._options = None - _LISTNVMEPATHSREQUEST.fields_by_name['parent']._serialized_options = b'\340A\002\372A\035\022\033opi_api.storage.v1/NvmePath' - _LISTNVMEPATHSREQUEST.fields_by_name['page_size']._options = None - _LISTNVMEPATHSREQUEST.fields_by_name['page_size']._serialized_options = b'\340A\001' - _LISTNVMEPATHSREQUEST.fields_by_name['page_token']._options = None - _LISTNVMEPATHSREQUEST.fields_by_name['page_token']._serialized_options = b'\340A\001' - _GETNVMEPATHREQUEST.fields_by_name['name']._options = None - _GETNVMEPATHREQUEST.fields_by_name['name']._serialized_options = b'\340A\002\372A\035\n\033opi_api.storage.v1/NvmePath' - _STATSNVMEPATHREQUEST.fields_by_name['name']._options = None - _STATSNVMEPATHREQUEST.fields_by_name['name']._serialized_options = b'\340A\002\372A\035\n\033opi_api.storage.v1/NvmePath' - _NVMEREMOTECONTROLLERSERVICE.methods_by_name['CreateNvmeRemoteController']._options = None - _NVMEREMOTECONTROLLERSERVICE.methods_by_name['CreateNvmeRemoteController']._serialized_options = b'\202\323\344\223\0023\"\031/v1/nvmeRemoteControllers:\026nvme_remote_controller\332A0nvme_remote_controller,nvme_remote_controller_id' - _NVMEREMOTECONTROLLERSERVICE.methods_by_name['DeleteNvmeRemoteController']._options = None - _NVMEREMOTECONTROLLERSERVICE.methods_by_name['DeleteNvmeRemoteController']._serialized_options = b'\202\323\344\223\002$*\"/v1/{name=nvmeRemoteControllers/*}\332A\004name' - _NVMEREMOTECONTROLLERSERVICE.methods_by_name['UpdateNvmeRemoteController']._options = None - _NVMEREMOTECONTROLLERSERVICE.methods_by_name['UpdateNvmeRemoteController']._serialized_options = b'\202\323\344\223\002S29/v1/{nvme_remote_controller.name=nvmeRemoteControllers/*}:\026nvme_remote_controller\332A\"nvme_remote_controller,update_mask' - _NVMEREMOTECONTROLLERSERVICE.methods_by_name['ListNvmeRemoteControllers']._options = None - _NVMEREMOTECONTROLLERSERVICE.methods_by_name['ListNvmeRemoteControllers']._serialized_options = b'\202\323\344\223\002\033\022\031/v1/nvmeRemoteControllers' - _NVMEREMOTECONTROLLERSERVICE.methods_by_name['GetNvmeRemoteController']._options = None - _NVMEREMOTECONTROLLERSERVICE.methods_by_name['GetNvmeRemoteController']._serialized_options = b'\202\323\344\223\002$\022\"/v1/{name=nvmeRemoteControllers/*}\332A\004name' - _NVMEREMOTECONTROLLERSERVICE.methods_by_name['ResetNvmeRemoteController']._options = None - _NVMEREMOTECONTROLLERSERVICE.methods_by_name['ResetNvmeRemoteController']._serialized_options = b'\202\323\344\223\002-\"(/v1/{name=nvmeRemoteControllers/*}:reset:\001*\332A\004name' - _NVMEREMOTECONTROLLERSERVICE.methods_by_name['StatsNvmeRemoteController']._options = None - _NVMEREMOTECONTROLLERSERVICE.methods_by_name['StatsNvmeRemoteController']._serialized_options = b'\202\323\344\223\002*\022(/v1/{name=nvmeRemoteControllers/*}:stats\332A\004name' - _NVMEREMOTECONTROLLERSERVICE.methods_by_name['ListNvmeRemoteNamespaces']._options = None - _NVMEREMOTECONTROLLERSERVICE.methods_by_name['ListNvmeRemoteNamespaces']._serialized_options = b'\202\323\344\223\002;\0229/v1/{parent=nvmeRemoteControllers/*}/nvmeRemoteNamespaces\332A\006parent' - _NVMEREMOTECONTROLLERSERVICE.methods_by_name['GetNvmeRemoteNamespace']._options = None - _NVMEREMOTECONTROLLERSERVICE.methods_by_name['GetNvmeRemoteNamespace']._serialized_options = b'\202\323\344\223\002;\0229/v1/{name=nvmeRemoteControllers/*/nvmeRemoteNamespaces/*}\332A\004name' - _NVMEREMOTECONTROLLERSERVICE.methods_by_name['CreateNvmePath']._options = None - _NVMEREMOTECONTROLLERSERVICE.methods_by_name['CreateNvmePath']._serialized_options = b'\202\323\344\223\002;\"./v1/{parent=nvmeRemoteControllers/*}/nvmePaths:\tnvme_path\332A\035parent,nvme_path,nvme_path_id' - _NVMEREMOTECONTROLLERSERVICE.methods_by_name['DeleteNvmePath']._options = None - _NVMEREMOTECONTROLLERSERVICE.methods_by_name['DeleteNvmePath']._serialized_options = b'\202\323\344\223\0020*./v1/{name=nvmeRemoteControllers/*/nvmePaths/*}\332A\004name' - _NVMEREMOTECONTROLLERSERVICE.methods_by_name['UpdateNvmePath']._options = None - _NVMEREMOTECONTROLLERSERVICE.methods_by_name['UpdateNvmePath']._serialized_options = b'\202\323\344\223\002E28/v1/{nvme_path.name=nvmeRemoteControllers/*/nvmePaths/*}:\tnvme_path\332A\025nvme_path,update_mask' - _NVMEREMOTECONTROLLERSERVICE.methods_by_name['ListNvmePaths']._options = None - _NVMEREMOTECONTROLLERSERVICE.methods_by_name['ListNvmePaths']._serialized_options = b'\202\323\344\223\0020\022./v1/{parent=nvmeRemoteControllers/*}/nvmePaths\332A\006parent' - _NVMEREMOTECONTROLLERSERVICE.methods_by_name['GetNvmePath']._options = None - _NVMEREMOTECONTROLLERSERVICE.methods_by_name['GetNvmePath']._serialized_options = b'\202\323\344\223\0020\022./v1/{name=nvmeRemoteControllers/*/nvmePaths/*}\332A\004name' - _NVMEREMOTECONTROLLERSERVICE.methods_by_name['StatsNvmePath']._options = None - _NVMEREMOTECONTROLLERSERVICE.methods_by_name['StatsNvmePath']._serialized_options = b'\202\323\344\223\0026\0224/v1/{name=nvmeRemoteControllers/*/nvmePaths/*}:stats\332A\004name' - _NVMEMULTIPATH._serialized_start=3793 - _NVMEMULTIPATH._serialized_end=3927 - _NVMEREMOTECONTROLLER._serialized_start=250 - _NVMEREMOTECONTROLLER._serialized_end=585 - _TCPCONTROLLER._serialized_start=587 - _TCPCONTROLLER._serialized_end=660 - _NVMEPATH._serialized_start=663 - _NVMEPATH._serialized_end=936 - _FABRICSPATH._serialized_start=939 - _FABRICSPATH._serialized_end=1134 - _NVMEREMOTENAMESPACE._serialized_start=1137 - _NVMEREMOTENAMESPACE._serialized_end=1439 - _CREATENVMEREMOTECONTROLLERREQUEST._serialized_start=1442 - _CREATENVMEREMOTECONTROLLERREQUEST._serialized_end=1596 - _DELETENVMEREMOTECONTROLLERREQUEST._serialized_start=1598 - _DELETENVMEREMOTECONTROLLERREQUEST._serialized_end=1724 - _UPDATENVMEREMOTECONTROLLERREQUEST._serialized_start=1727 - _UPDATENVMEREMOTECONTROLLERREQUEST._serialized_end=1923 - _LISTNVMEREMOTECONTROLLERSREQUEST._serialized_start=1925 - _LISTNVMEREMOTECONTROLLERSREQUEST._serialized_end=2008 - _LISTNVMEREMOTECONTROLLERSRESPONSE._serialized_start=2011 - _LISTNVMEREMOTECONTROLLERSRESPONSE._serialized_end=2146 - _GETNVMEREMOTECONTROLLERREQUEST._serialized_start=2148 - _GETNVMEREMOTECONTROLLERREQUEST._serialized_end=2243 - _RESETNVMEREMOTECONTROLLERREQUEST._serialized_start=2245 - _RESETNVMEREMOTECONTROLLERREQUEST._serialized_end=2342 - _STATSNVMEREMOTECONTROLLERREQUEST._serialized_start=2344 - _STATSNVMEREMOTECONTROLLERREQUEST._serialized_end=2441 - _STATSNVMEREMOTECONTROLLERRESPONSE._serialized_start=2443 - _STATSNVMEREMOTECONTROLLERRESPONSE._serialized_end=2526 - _LISTNVMEREMOTENAMESPACESREQUEST._serialized_start=2529 - _LISTNVMEREMOTENAMESPACESREQUEST._serialized_end=2675 - _LISTNVMEREMOTENAMESPACESRESPONSE._serialized_start=2678 - _LISTNVMEREMOTENAMESPACESRESPONSE._serialized_end=2810 - _GETNVMEREMOTENAMESPACEREQUEST._serialized_start=2812 - _GETNVMEREMOTENAMESPACEREQUEST._serialized_end=2905 - _CREATENVMEPATHREQUEST._serialized_start=2908 - _CREATENVMEPATHREQUEST._serialized_end=3077 - _DELETENVMEPATHREQUEST._serialized_start=3079 - _DELETENVMEPATHREQUEST._serialized_end=3181 - _UPDATENVMEPATHREQUEST._serialized_start=3184 - _UPDATENVMEPATHREQUEST._serialized_end=3343 - _LISTNVMEPATHSREQUEST._serialized_start=3345 - _LISTNVMEPATHSREQUEST._serialized_end=3469 - _LISTNVMEPATHSRESPONSE._serialized_start=3471 - _LISTNVMEPATHSRESPONSE._serialized_end=3569 - _GETNVMEPATHREQUEST._serialized_start=3571 - _GETNVMEPATHREQUEST._serialized_end=3642 - _STATSNVMEPATHREQUEST._serialized_start=3644 - _STATSNVMEPATHREQUEST._serialized_end=3717 - _STATSNVMEPATHRESPONSE._serialized_start=3719 - _STATSNVMEPATHRESPONSE._serialized_end=3790 - _NVMEREMOTECONTROLLERSERVICE._serialized_start=3930 - _NVMEREMOTECONTROLLERSERVICE._serialized_end=6752 + _globals['DESCRIPTOR']._options = None + _globals['DESCRIPTOR']._serialized_options = b'\n\022opi_api.storage.v1B\020BackendNvmeProtoP\001Z5github.com/opiproject/opi-api/storage/v1alpha1/gen/go' + _globals['_NVMEREMOTECONTROLLER'].fields_by_name['name']._options = None + _globals['_NVMEREMOTECONTROLLER'].fields_by_name['name']._serialized_options = b'\342A\001\010' + _globals['_NVMEREMOTECONTROLLER'].fields_by_name['multipath']._options = None + _globals['_NVMEREMOTECONTROLLER'].fields_by_name['multipath']._serialized_options = b'\342A\001\002' + _globals['_NVMEREMOTECONTROLLER'].fields_by_name['io_queues_count']._options = None + _globals['_NVMEREMOTECONTROLLER'].fields_by_name['io_queues_count']._serialized_options = b'\342A\001\001' + _globals['_NVMEREMOTECONTROLLER'].fields_by_name['queue_size']._options = None + _globals['_NVMEREMOTECONTROLLER'].fields_by_name['queue_size']._serialized_options = b'\342A\001\001' + _globals['_NVMEREMOTECONTROLLER'].fields_by_name['tcp']._options = None + _globals['_NVMEREMOTECONTROLLER'].fields_by_name['tcp']._serialized_options = b'\342A\001\001' + _globals['_NVMEREMOTECONTROLLER']._options = None + _globals['_NVMEREMOTECONTROLLER']._serialized_options = b'\352Az\n\'opi_api.storage.v1/NvmeRemoteController\022\"nvmeRemoteControllers/{controller}*\025nvmeRemoteControllers2\024nvmeRemoteController' + _globals['_TCPCONTROLLER'].fields_by_name['hdgst']._options = None + _globals['_TCPCONTROLLER'].fields_by_name['hdgst']._serialized_options = b'\342A\001\001' + _globals['_TCPCONTROLLER'].fields_by_name['ddgst']._options = None + _globals['_TCPCONTROLLER'].fields_by_name['ddgst']._serialized_options = b'\342A\001\001' + _globals['_TCPCONTROLLER'].fields_by_name['psk']._options = None + _globals['_TCPCONTROLLER'].fields_by_name['psk']._serialized_options = b'\342A\001\001' + _globals['_NVMEPATH'].fields_by_name['name']._options = None + _globals['_NVMEPATH'].fields_by_name['name']._serialized_options = b'\342A\001\010' + _globals['_NVMEPATH'].fields_by_name['trtype']._options = None + _globals['_NVMEPATH'].fields_by_name['trtype']._serialized_options = b'\342A\001\002' + _globals['_NVMEPATH'].fields_by_name['traddr']._options = None + _globals['_NVMEPATH'].fields_by_name['traddr']._serialized_options = b'\342A\001\002' + _globals['_NVMEPATH'].fields_by_name['fabrics']._options = None + _globals['_NVMEPATH'].fields_by_name['fabrics']._serialized_options = b'\342A\001\001' + _globals['_NVMEPATH']._options = None + _globals['_NVMEPATH']._serialized_options = b'\352Ag\n\033opi_api.storage.v1/NvmePath\0223nvmeRemoteControllers/{controller}/nvmePaths/{path}*\tnvmePaths2\010nvmePath' + _globals['_FABRICSPATH'].fields_by_name['trsvcid']._options = None + _globals['_FABRICSPATH'].fields_by_name['trsvcid']._serialized_options = b'\342A\001\002' + _globals['_FABRICSPATH'].fields_by_name['subnqn']._options = None + _globals['_FABRICSPATH'].fields_by_name['subnqn']._serialized_options = b'\342A\001\002' + _globals['_FABRICSPATH'].fields_by_name['adrfam']._options = None + _globals['_FABRICSPATH'].fields_by_name['adrfam']._serialized_options = b'\342A\001\002' + _globals['_FABRICSPATH'].fields_by_name['source_traddr']._options = None + _globals['_FABRICSPATH'].fields_by_name['source_traddr']._serialized_options = b'\342A\001\001' + _globals['_FABRICSPATH'].fields_by_name['source_trsvcid']._options = None + _globals['_FABRICSPATH'].fields_by_name['source_trsvcid']._serialized_options = b'\342A\001\001' + _globals['_FABRICSPATH'].fields_by_name['hostnqn']._options = None + _globals['_FABRICSPATH'].fields_by_name['hostnqn']._serialized_options = b'\342A\001\001' + _globals['_NVMEREMOTENAMESPACE'].fields_by_name['name']._options = None + _globals['_NVMEREMOTENAMESPACE'].fields_by_name['name']._serialized_options = b'\342A\001\010' + _globals['_NVMEREMOTENAMESPACE'].fields_by_name['nsid']._options = None + _globals['_NVMEREMOTENAMESPACE'].fields_by_name['nsid']._serialized_options = b'\342A\001\003' + _globals['_NVMEREMOTENAMESPACE'].fields_by_name['nguid']._options = None + _globals['_NVMEREMOTENAMESPACE'].fields_by_name['nguid']._serialized_options = b'\342A\001\003' + _globals['_NVMEREMOTENAMESPACE'].fields_by_name['eui64']._options = None + _globals['_NVMEREMOTENAMESPACE'].fields_by_name['eui64']._serialized_options = b'\342A\001\003' + _globals['_NVMEREMOTENAMESPACE'].fields_by_name['uuid']._options = None + _globals['_NVMEREMOTENAMESPACE'].fields_by_name['uuid']._serialized_options = b'\342A\001\003' + _globals['_NVMEREMOTENAMESPACE']._options = None + _globals['_NVMEREMOTENAMESPACE']._serialized_options = b'\352A\230\001\n&opi_api.storage.v1/NvmeRemoteNamespace\022CnvmeRemoteControllers/{controller}/nvmeRemoteNamespaces/{namespace}*\024nvmeRemoteNamespaces2\023nvmeRemoteNamespace' + _globals['_CREATENVMEREMOTECONTROLLERREQUEST'].fields_by_name['nvme_remote_controller']._options = None + _globals['_CREATENVMEREMOTECONTROLLERREQUEST'].fields_by_name['nvme_remote_controller']._serialized_options = b'\342A\001\002' + _globals['_CREATENVMEREMOTECONTROLLERREQUEST'].fields_by_name['nvme_remote_controller_id']._options = None + _globals['_CREATENVMEREMOTECONTROLLERREQUEST'].fields_by_name['nvme_remote_controller_id']._serialized_options = b'\342A\001\001' + _globals['_DELETENVMEREMOTECONTROLLERREQUEST'].fields_by_name['name']._options = None + _globals['_DELETENVMEREMOTECONTROLLERREQUEST'].fields_by_name['name']._serialized_options = b'\342A\001\002\372A)\n\'opi_api.storage.v1/NvmeRemoteController' + _globals['_DELETENVMEREMOTECONTROLLERREQUEST'].fields_by_name['allow_missing']._options = None + _globals['_DELETENVMEREMOTECONTROLLERREQUEST'].fields_by_name['allow_missing']._serialized_options = b'\342A\001\001' + _globals['_UPDATENVMEREMOTECONTROLLERREQUEST'].fields_by_name['nvme_remote_controller']._options = None + _globals['_UPDATENVMEREMOTECONTROLLERREQUEST'].fields_by_name['nvme_remote_controller']._serialized_options = b'\342A\001\002' + _globals['_UPDATENVMEREMOTECONTROLLERREQUEST'].fields_by_name['update_mask']._options = None + _globals['_UPDATENVMEREMOTECONTROLLERREQUEST'].fields_by_name['update_mask']._serialized_options = b'\342A\001\001' + _globals['_UPDATENVMEREMOTECONTROLLERREQUEST'].fields_by_name['allow_missing']._options = None + _globals['_UPDATENVMEREMOTECONTROLLERREQUEST'].fields_by_name['allow_missing']._serialized_options = b'\342A\001\001' + _globals['_LISTNVMEREMOTECONTROLLERSREQUEST'].fields_by_name['page_size']._options = None + _globals['_LISTNVMEREMOTECONTROLLERSREQUEST'].fields_by_name['page_size']._serialized_options = b'\342A\001\001' + _globals['_LISTNVMEREMOTECONTROLLERSREQUEST'].fields_by_name['page_token']._options = None + _globals['_LISTNVMEREMOTECONTROLLERSREQUEST'].fields_by_name['page_token']._serialized_options = b'\342A\001\001' + _globals['_GETNVMEREMOTECONTROLLERREQUEST'].fields_by_name['name']._options = None + _globals['_GETNVMEREMOTECONTROLLERREQUEST'].fields_by_name['name']._serialized_options = b'\342A\001\002\372A)\n\'opi_api.storage.v1/NvmeRemoteController' + _globals['_RESETNVMEREMOTECONTROLLERREQUEST'].fields_by_name['name']._options = None + _globals['_RESETNVMEREMOTECONTROLLERREQUEST'].fields_by_name['name']._serialized_options = b'\342A\001\002\372A)\n\'opi_api.storage.v1/NvmeRemoteController' + _globals['_STATSNVMEREMOTECONTROLLERREQUEST'].fields_by_name['name']._options = None + _globals['_STATSNVMEREMOTECONTROLLERREQUEST'].fields_by_name['name']._serialized_options = b'\342A\001\002\372A)\n\'opi_api.storage.v1/NvmeRemoteController' + _globals['_LISTNVMEREMOTENAMESPACESREQUEST'].fields_by_name['parent']._options = None + _globals['_LISTNVMEREMOTENAMESPACESREQUEST'].fields_by_name['parent']._serialized_options = b'\342A\001\002\372A(\022&opi_api.storage.v1/NvmeRemoteNamespace' + _globals['_LISTNVMEREMOTENAMESPACESREQUEST'].fields_by_name['page_size']._options = None + _globals['_LISTNVMEREMOTENAMESPACESREQUEST'].fields_by_name['page_size']._serialized_options = b'\342A\001\001' + _globals['_LISTNVMEREMOTENAMESPACESREQUEST'].fields_by_name['page_token']._options = None + _globals['_LISTNVMEREMOTENAMESPACESREQUEST'].fields_by_name['page_token']._serialized_options = b'\342A\001\001' + _globals['_GETNVMEREMOTENAMESPACEREQUEST'].fields_by_name['name']._options = None + _globals['_GETNVMEREMOTENAMESPACEREQUEST'].fields_by_name['name']._serialized_options = b'\342A\001\002\372A(\n&opi_api.storage.v1/NvmeRemoteNamespace' + _globals['_CREATENVMEPATHREQUEST'].fields_by_name['parent']._options = None + _globals['_CREATENVMEPATHREQUEST'].fields_by_name['parent']._serialized_options = b'\342A\001\002\372A)\n\'opi_api.storage.v1/NvmeRemoteController' + _globals['_CREATENVMEPATHREQUEST'].fields_by_name['nvme_path']._options = None + _globals['_CREATENVMEPATHREQUEST'].fields_by_name['nvme_path']._serialized_options = b'\342A\001\002' + _globals['_CREATENVMEPATHREQUEST'].fields_by_name['nvme_path_id']._options = None + _globals['_CREATENVMEPATHREQUEST'].fields_by_name['nvme_path_id']._serialized_options = b'\342A\001\001' + _globals['_DELETENVMEPATHREQUEST'].fields_by_name['name']._options = None + _globals['_DELETENVMEPATHREQUEST'].fields_by_name['name']._serialized_options = b'\342A\001\002\372A\035\n\033opi_api.storage.v1/NvmePath' + _globals['_DELETENVMEPATHREQUEST'].fields_by_name['allow_missing']._options = None + _globals['_DELETENVMEPATHREQUEST'].fields_by_name['allow_missing']._serialized_options = b'\342A\001\001' + _globals['_UPDATENVMEPATHREQUEST'].fields_by_name['nvme_path']._options = None + _globals['_UPDATENVMEPATHREQUEST'].fields_by_name['nvme_path']._serialized_options = b'\342A\001\002' + _globals['_UPDATENVMEPATHREQUEST'].fields_by_name['update_mask']._options = None + _globals['_UPDATENVMEPATHREQUEST'].fields_by_name['update_mask']._serialized_options = b'\342A\001\001' + _globals['_UPDATENVMEPATHREQUEST'].fields_by_name['allow_missing']._options = None + _globals['_UPDATENVMEPATHREQUEST'].fields_by_name['allow_missing']._serialized_options = b'\342A\001\001' + _globals['_LISTNVMEPATHSREQUEST'].fields_by_name['parent']._options = None + _globals['_LISTNVMEPATHSREQUEST'].fields_by_name['parent']._serialized_options = b'\342A\001\002\372A\035\022\033opi_api.storage.v1/NvmePath' + _globals['_LISTNVMEPATHSREQUEST'].fields_by_name['page_size']._options = None + _globals['_LISTNVMEPATHSREQUEST'].fields_by_name['page_size']._serialized_options = b'\342A\001\001' + _globals['_LISTNVMEPATHSREQUEST'].fields_by_name['page_token']._options = None + _globals['_LISTNVMEPATHSREQUEST'].fields_by_name['page_token']._serialized_options = b'\342A\001\001' + _globals['_GETNVMEPATHREQUEST'].fields_by_name['name']._options = None + _globals['_GETNVMEPATHREQUEST'].fields_by_name['name']._serialized_options = b'\342A\001\002\372A\035\n\033opi_api.storage.v1/NvmePath' + _globals['_STATSNVMEPATHREQUEST'].fields_by_name['name']._options = None + _globals['_STATSNVMEPATHREQUEST'].fields_by_name['name']._serialized_options = b'\342A\001\002\372A\035\n\033opi_api.storage.v1/NvmePath' + _globals['_NVMEREMOTECONTROLLERSERVICE'].methods_by_name['CreateNvmeRemoteController']._options = None + _globals['_NVMEREMOTECONTROLLERSERVICE'].methods_by_name['CreateNvmeRemoteController']._serialized_options = b'\332A0nvme_remote_controller,nvme_remote_controller_id\202\323\344\223\0023\"\031/v1/nvmeRemoteControllers:\026nvme_remote_controller' + _globals['_NVMEREMOTECONTROLLERSERVICE'].methods_by_name['DeleteNvmeRemoteController']._options = None + _globals['_NVMEREMOTECONTROLLERSERVICE'].methods_by_name['DeleteNvmeRemoteController']._serialized_options = b'\332A\004name\202\323\344\223\002$*\"/v1/{name=nvmeRemoteControllers/*}' + _globals['_NVMEREMOTECONTROLLERSERVICE'].methods_by_name['UpdateNvmeRemoteController']._options = None + _globals['_NVMEREMOTECONTROLLERSERVICE'].methods_by_name['UpdateNvmeRemoteController']._serialized_options = b'\332A\"nvme_remote_controller,update_mask\202\323\344\223\002S29/v1/{nvme_remote_controller.name=nvmeRemoteControllers/*}:\026nvme_remote_controller' + _globals['_NVMEREMOTECONTROLLERSERVICE'].methods_by_name['ListNvmeRemoteControllers']._options = None + _globals['_NVMEREMOTECONTROLLERSERVICE'].methods_by_name['ListNvmeRemoteControllers']._serialized_options = b'\202\323\344\223\002\033\022\031/v1/nvmeRemoteControllers' + _globals['_NVMEREMOTECONTROLLERSERVICE'].methods_by_name['GetNvmeRemoteController']._options = None + _globals['_NVMEREMOTECONTROLLERSERVICE'].methods_by_name['GetNvmeRemoteController']._serialized_options = b'\332A\004name\202\323\344\223\002$\022\"/v1/{name=nvmeRemoteControllers/*}' + _globals['_NVMEREMOTECONTROLLERSERVICE'].methods_by_name['ResetNvmeRemoteController']._options = None + _globals['_NVMEREMOTECONTROLLERSERVICE'].methods_by_name['ResetNvmeRemoteController']._serialized_options = b'\332A\004name\202\323\344\223\002-\"(/v1/{name=nvmeRemoteControllers/*}:reset:\001*' + _globals['_NVMEREMOTECONTROLLERSERVICE'].methods_by_name['StatsNvmeRemoteController']._options = None + _globals['_NVMEREMOTECONTROLLERSERVICE'].methods_by_name['StatsNvmeRemoteController']._serialized_options = b'\332A\004name\202\323\344\223\002*\022(/v1/{name=nvmeRemoteControllers/*}:stats' + _globals['_NVMEREMOTECONTROLLERSERVICE'].methods_by_name['ListNvmeRemoteNamespaces']._options = None + _globals['_NVMEREMOTECONTROLLERSERVICE'].methods_by_name['ListNvmeRemoteNamespaces']._serialized_options = b'\332A\006parent\202\323\344\223\002;\0229/v1/{parent=nvmeRemoteControllers/*}/nvmeRemoteNamespaces' + _globals['_NVMEREMOTECONTROLLERSERVICE'].methods_by_name['GetNvmeRemoteNamespace']._options = None + _globals['_NVMEREMOTECONTROLLERSERVICE'].methods_by_name['GetNvmeRemoteNamespace']._serialized_options = b'\332A\004name\202\323\344\223\002;\0229/v1/{name=nvmeRemoteControllers/*/nvmeRemoteNamespaces/*}' + _globals['_NVMEREMOTECONTROLLERSERVICE'].methods_by_name['CreateNvmePath']._options = None + _globals['_NVMEREMOTECONTROLLERSERVICE'].methods_by_name['CreateNvmePath']._serialized_options = b'\332A\035parent,nvme_path,nvme_path_id\202\323\344\223\002;\"./v1/{parent=nvmeRemoteControllers/*}/nvmePaths:\tnvme_path' + _globals['_NVMEREMOTECONTROLLERSERVICE'].methods_by_name['DeleteNvmePath']._options = None + _globals['_NVMEREMOTECONTROLLERSERVICE'].methods_by_name['DeleteNvmePath']._serialized_options = b'\332A\004name\202\323\344\223\0020*./v1/{name=nvmeRemoteControllers/*/nvmePaths/*}' + _globals['_NVMEREMOTECONTROLLERSERVICE'].methods_by_name['UpdateNvmePath']._options = None + _globals['_NVMEREMOTECONTROLLERSERVICE'].methods_by_name['UpdateNvmePath']._serialized_options = b'\332A\025nvme_path,update_mask\202\323\344\223\002E28/v1/{nvme_path.name=nvmeRemoteControllers/*/nvmePaths/*}:\tnvme_path' + _globals['_NVMEREMOTECONTROLLERSERVICE'].methods_by_name['ListNvmePaths']._options = None + _globals['_NVMEREMOTECONTROLLERSERVICE'].methods_by_name['ListNvmePaths']._serialized_options = b'\332A\006parent\202\323\344\223\0020\022./v1/{parent=nvmeRemoteControllers/*}/nvmePaths' + _globals['_NVMEREMOTECONTROLLERSERVICE'].methods_by_name['GetNvmePath']._options = None + _globals['_NVMEREMOTECONTROLLERSERVICE'].methods_by_name['GetNvmePath']._serialized_options = b'\332A\004name\202\323\344\223\0020\022./v1/{name=nvmeRemoteControllers/*/nvmePaths/*}' + _globals['_NVMEREMOTECONTROLLERSERVICE'].methods_by_name['StatsNvmePath']._options = None + _globals['_NVMEREMOTECONTROLLERSERVICE'].methods_by_name['StatsNvmePath']._serialized_options = b'\332A\004name\202\323\344\223\0026\0224/v1/{name=nvmeRemoteControllers/*/nvmePaths/*}:stats' + _globals['_NVMEMULTIPATH']._serialized_start=4433 + _globals['_NVMEMULTIPATH']._serialized_end=4567 + _globals['_NVMEREMOTECONTROLLER']._serialized_start=238 + _globals['_NVMEREMOTECONTROLLER']._serialized_end=626 + _globals['_TCPCONTROLLER']._serialized_start=628 + _globals['_TCPCONTROLLER']._serialized_end=723 + _globals['_NVMEPATH']._serialized_start=726 + _globals['_NVMEPATH']._serialized_end=1034 + _globals['_FABRICSPATH']._serialized_start=1037 + _globals['_FABRICSPATH']._serialized_end=1301 + _globals['_NVMEREMOTENAMESPACE']._serialized_start=1304 + _globals['_NVMEREMOTENAMESPACE']._serialized_end=1618 + _globals['_CREATENVMEREMOTECONTROLLERREQUEST']._serialized_start=1621 + _globals['_CREATENVMEREMOTECONTROLLERREQUEST']._serialized_end=1823 + _globals['_DELETENVMEREMOTECONTROLLERREQUEST']._serialized_start=1826 + _globals['_DELETENVMEREMOTECONTROLLERREQUEST']._serialized_end=1974 + _globals['_UPDATENVMEREMOTECONTROLLERREQUEST']._serialized_start=1977 + _globals['_UPDATENVMEREMOTECONTROLLERREQUEST']._serialized_end=2224 + _globals['_LISTNVMEREMOTECONTROLLERSREQUEST']._serialized_start=2226 + _globals['_LISTNVMEREMOTECONTROLLERSREQUEST']._serialized_end=2332 + _globals['_LISTNVMEREMOTECONTROLLERSRESPONSE']._serialized_start=2335 + _globals['_LISTNVMEREMOTECONTROLLERSRESPONSE']._serialized_end=2508 + _globals['_GETNVMEREMOTECONTROLLERREQUEST']._serialized_start=2510 + _globals['_GETNVMEREMOTECONTROLLERREQUEST']._serialized_end=2612 + _globals['_RESETNVMEREMOTECONTROLLERREQUEST']._serialized_start=2614 + _globals['_RESETNVMEREMOTECONTROLLERREQUEST']._serialized_end=2718 + _globals['_STATSNVMEREMOTECONTROLLERREQUEST']._serialized_start=2720 + _globals['_STATSNVMEREMOTECONTROLLERREQUEST']._serialized_end=2824 + _globals['_STATSNVMEREMOTECONTROLLERRESPONSE']._serialized_start=2826 + _globals['_STATSNVMEREMOTECONTROLLERRESPONSE']._serialized_end=2916 + _globals['_LISTNVMEREMOTENAMESPACESREQUEST']._serialized_start=2919 + _globals['_LISTNVMEREMOTENAMESPACESREQUEST']._serialized_end=3097 + _globals['_LISTNVMEREMOTENAMESPACESRESPONSE']._serialized_start=3100 + _globals['_LISTNVMEREMOTENAMESPACESRESPONSE']._serialized_end=3269 + _globals['_GETNVMEREMOTENAMESPACEREQUEST']._serialized_start=3271 + _globals['_GETNVMEREMOTENAMESPACEREQUEST']._serialized_end=3371 + _globals['_CREATENVMEPATHREQUEST']._serialized_start=3374 + _globals['_CREATENVMEPATHREQUEST']._serialized_end=3576 + _globals['_DELETENVMEPATHREQUEST']._serialized_start=3578 + _globals['_DELETENVMEPATHREQUEST']._serialized_end=3702 + _globals['_UPDATENVMEPATHREQUEST']._serialized_start=3705 + _globals['_UPDATENVMEPATHREQUEST']._serialized_end=3903 + _globals['_LISTNVMEPATHSREQUEST']._serialized_start=3906 + _globals['_LISTNVMEPATHSREQUEST']._serialized_end=4062 + _globals['_LISTNVMEPATHSRESPONSE']._serialized_start=4064 + _globals['_LISTNVMEPATHSRESPONSE']._serialized_end=4188 + _globals['_GETNVMEPATHREQUEST']._serialized_start=4190 + _globals['_GETNVMEPATHREQUEST']._serialized_end=4268 + _globals['_STATSNVMEPATHREQUEST']._serialized_start=4270 + _globals['_STATSNVMEPATHREQUEST']._serialized_end=4350 + _globals['_STATSNVMEPATHRESPONSE']._serialized_start=4352 + _globals['_STATSNVMEPATHRESPONSE']._serialized_end=4430 + _globals['_NVMEREMOTECONTROLLERSERVICE']._serialized_start=4570 + _globals['_NVMEREMOTECONTROLLERSERVICE']._serialized_end=7392 # @@protoc_insertion_point(module_scope) diff --git a/storage/v1alpha1/gen/python/frontend_nvme_pb2.py b/storage/v1alpha1/gen/python/frontend_nvme_pb2.py index 1ca8b27e..aeee7303 100644 --- a/storage/v1alpha1/gen/python/frontend_nvme_pb2.py +++ b/storage/v1alpha1/gen/python/frontend_nvme_pb2.py @@ -1,18 +1,18 @@ # -*- coding: utf-8 -*- # Generated by the protocol buffer compiler. DO NOT EDIT! # source: frontend_nvme.proto +# Protobuf Python Version: 4.25.2 """Generated protocol buffer code.""" -from google.protobuf.internal import builder as _builder from google.protobuf import descriptor as _descriptor from google.protobuf import descriptor_pool as _descriptor_pool from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder # @@protoc_insertion_point(imports) _sym_db = _symbol_database.Default() import opicommon_pb2 as opicommon__pb2 -import uuid_pb2 as uuid__pb2 from google.api import client_pb2 as google_dot_api_dot_client__pb2 from google.api import resource_pb2 as google_dot_api_dot_resource__pb2 from google.protobuf import empty_pb2 as google_dot_protobuf_dot_empty__pb2 @@ -21,272 +21,272 @@ from google.protobuf import field_mask_pb2 as google_dot_protobuf_dot_field__mask__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x13\x66rontend_nvme.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\"\xfc\x01\n\rNvmeSubsystem\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x08\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:`\xea\x41]\n opi_api.storage.v1/NvmeSubsystem\x12\x1anvmeSubsystems/{subsystem}*\x0envmeSubsystems2\rnvmeSubsystem\"\xa1\x01\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\x12\x14\n\x07hostnqn\x18\x05 \x01(\tB\x03\xe0\x41\x01\x12\x10\n\x03psk\x18\x06 \x01(\x0c\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\"\xa0\x02\n\x0eNvmeController\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x08\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:\x80\x01\xea\x41}\n!opi_api.storage.v1/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\"\x97\x02\n\rNvmeNamespace\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x08\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:{\xea\x41x\n opi_api.storage.v1/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\"\xd7\x02\n\x13NvmeNamespaceStatus\x12\x41\n\x05state\x18\x01 \x01(\x0e\x32-.opi_api.storage.v1.NvmeNamespaceStatus.StateB\x03\xe0\x41\x03\x12J\n\noper_state\x18\x02 \x01(\x0e\x32\x31.opi_api.storage.v1.NvmeNamespaceStatus.OperStateB\x03\xe0\x41\x03\"Y\n\x05State\x12\x15\n\x11STATE_UNSPECIFIED\x10\x00\x12\x12\n\x0eSTATE_DISABLED\x10\x01\x12\x11\n\rSTATE_ENABLED\x10\x02\x12\x12\n\x0eSTATE_DELETING\x10\x03\"V\n\tOperState\x12\x1a\n\x16OPER_STATE_UNSPECIFIED\x10\x00\x12\x15\n\x11OPER_STATE_ONLINE\x10\x01\x12\x16\n\x12OPER_STATE_OFFLINE\x10\x02\"|\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#\x12!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\"\x12 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.VolumeStats2\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\x04nameB`\n\x12opi_api.storage.v1B\x11\x46rontendNvmeProtoP\x01Z5github.com/opiproject/opi-api/storage/v1alpha1/gen/gob\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x13\x66rontend_nvme.proto\x12\x12opi_api.storage.v1\x1a\x0fopicommon.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\"\x93\x02\n\rNvmeSubsystem\x12\x18\n\x04name\x18\x01 \x01(\tB\x04\xe2\x41\x01\x08R\x04name\x12?\n\x04spec\x18\x02 \x01(\x0b\x32%.opi_api.storage.v1.NvmeSubsystemSpecB\x04\xe2\x41\x01\x02R\x04spec\x12\x45\n\x06status\x18\x03 \x01(\x0b\x32\'.opi_api.storage.v1.NvmeSubsystemStatusB\x04\xe2\x41\x01\x03R\x06status:`\xea\x41]\n opi_api.storage.v1/NvmeSubsystem\x12\x1anvmeSubsystems/{subsystem}*\x0envmeSubsystems2\rnvmeSubsystem\"\xe4\x01\n\x11NvmeSubsystemSpec\x12\x16\n\x03nqn\x18\x01 \x01(\tB\x04\xe2\x41\x01\x02R\x03nqn\x12)\n\rserial_number\x18\x02 \x01(\tB\x04\xe2\x41\x01\x01R\x0cserialNumber\x12\'\n\x0cmodel_number\x18\x03 \x01(\tB\x04\xe2\x41\x01\x01R\x0bmodelNumber\x12+\n\x0emax_namespaces\x18\x04 \x01(\x03\x42\x04\xe2\x41\x01\x01R\rmaxNamespaces\x12\x1e\n\x07hostnqn\x18\x05 \x01(\tB\x04\xe2\x41\x01\x01R\x07hostnqn\x12\x16\n\x03psk\x18\x06 \x01(\x0c\x42\x04\xe2\x41\x01\x01R\x03psk\"i\n\x13NvmeSubsystemStatus\x12\x31\n\x11\x66irmware_revision\x18\x01 \x01(\tB\x04\xe2\x41\x01\x03R\x10\x66irmwareRevision\x12\x1f\n\x08\x66ru_guid\x18\x02 \x01(\x0c\x42\x04\xe2\x41\x01\x03R\x07\x66ruGuid\"\xb7\x02\n\x0eNvmeController\x12\x18\n\x04name\x18\x01 \x01(\tB\x04\xe2\x41\x01\x08R\x04name\x12@\n\x04spec\x18\x02 \x01(\x0b\x32&.opi_api.storage.v1.NvmeControllerSpecB\x04\xe2\x41\x01\x02R\x04spec\x12\x46\n\x06status\x18\x03 \x01(\x0b\x32(.opi_api.storage.v1.NvmeControllerStatusB\x04\xe2\x41\x01\x03R\x06status:\x80\x01\xea\x41}\n!opi_api.storage.v1/NvmeController\x12\x37nvmeSubsystems/{subsystem}/nvmeControllers/{controller}*\x0fnvmeControllers2\x0envmeController\"\xe4\x04\n\x12NvmeControllerSpec\x12\x37\n\x12nvme_controller_id\x18\x01 \x01(\x05\x42\x04\xe2\x41\x01\x01H\x01R\x10nvmeControllerId\x88\x01\x01\x12\x43\n\x06trtype\x18\x02 \x01(\x0e\x32%.opi_api.storage.v1.NvmeTransportTypeB\x04\xe2\x41\x01\x02R\x06trtype\x12@\n\x07pcie_id\x18\x03 \x01(\x0b\x32\x1f.opi_api.storage.v1.PciEndpointB\x04\xe2\x41\x01\x01H\x00R\x06pcieId\x12J\n\nfabrics_id\x18\x04 \x01(\x0b\x32#.opi_api.storage.v1.FabricsEndpointB\x04\xe2\x41\x01\x01H\x00R\tfabricsId\x12\x1d\n\x07max_nsq\x18\x05 \x01(\x05\x42\x04\xe2\x41\x01\x01R\x06maxNsq\x12\x1d\n\x07max_ncq\x18\x06 \x01(\x05\x42\x04\xe2\x41\x01\x01R\x06maxNcq\x12\x18\n\x04sqes\x18\x07 \x01(\x05\x42\x04\xe2\x41\x01\x01R\x04sqes\x12\x18\n\x04\x63qes\x18\x08 \x01(\x05\x42\x04\xe2\x41\x01\x01R\x04\x63qes\x12+\n\x0emax_namespaces\x18\t \x01(\x05\x42\x04\xe2\x41\x01\x01R\rmaxNamespaces\x12?\n\tmin_limit\x18\n \x01(\x0b\x32\x1c.opi_api.storage.v1.QosLimitB\x04\xe2\x41\x01\x01R\x08minLimit\x12?\n\tmax_limit\x18\x0b \x01(\x0b\x32\x1c.opi_api.storage.v1.QosLimitB\x04\xe2\x41\x01\x01R\x08maxLimitB\n\n\x08\x65ndpointB\x15\n\x13_nvme_controller_id\"4\n\x14NvmeControllerStatus\x12\x1c\n\x06\x61\x63tive\x18\x01 \x01(\x08\x42\x04\xe2\x41\x01\x03R\x06\x61\x63tive\"\xae\x02\n\rNvmeNamespace\x12\x18\n\x04name\x18\x01 \x01(\tB\x04\xe2\x41\x01\x08R\x04name\x12?\n\x04spec\x18\x02 \x01(\x0b\x32%.opi_api.storage.v1.NvmeNamespaceSpecB\x04\xe2\x41\x01\x02R\x04spec\x12\x45\n\x06status\x18\x03 \x01(\x0b\x32\'.opi_api.storage.v1.NvmeNamespaceStatusB\x04\xe2\x41\x01\x03R\x06status:{\xea\x41x\n opi_api.storage.v1/NvmeNamespace\x12\x35nvmeSubsystems/{subsystem}/nvmeNamespaces/{namespace}*\x0envmeNamespaces2\rnvmeNamespace\"\xb6\x01\n\x11NvmeNamespaceSpec\x12!\n\thost_nsid\x18\x02 \x01(\x05\x42\x04\xe2\x41\x01\x01R\x08hostNsid\x12\x1a\n\x05nguid\x18\x03 \x01(\tB\x04\xe2\x41\x01\x01R\x05nguid\x12\x1a\n\x05\x65ui64\x18\x04 \x01(\x03\x42\x04\xe2\x41\x01\x01R\x05\x65ui64\x12\x18\n\x04uuid\x18\x05 \x01(\tB\x04\xe2\x41\x01\x01R\x04uuid\x12,\n\x0fvolume_name_ref\x18\x06 \x01(\tB\x04\xe2\x41\x01\x02R\rvolumeNameRef\"\xeb\x02\n\x13NvmeNamespaceStatus\x12I\n\x05state\x18\x01 \x01(\x0e\x32-.opi_api.storage.v1.NvmeNamespaceStatus.StateB\x04\xe2\x41\x01\x03R\x05state\x12V\n\noper_state\x18\x02 \x01(\x0e\x32\x31.opi_api.storage.v1.NvmeNamespaceStatus.OperStateB\x04\xe2\x41\x01\x03R\toperState\"Y\n\x05State\x12\x15\n\x11STATE_UNSPECIFIED\x10\x00\x12\x12\n\x0eSTATE_DISABLED\x10\x01\x12\x11\n\rSTATE_ENABLED\x10\x02\x12\x12\n\x0eSTATE_DELETING\x10\x03\"V\n\tOperState\x12\x1a\n\x16OPER_STATE_UNSPECIFIED\x10\x00\x12\x15\n\x11OPER_STATE_ONLINE\x10\x01\x12\x16\n\x12OPER_STATE_OFFLINE\x10\x02\"\x9e\x01\n\x1a\x43reateNvmeSubsystemRequest\x12N\n\x0envme_subsystem\x18\x01 \x01(\x0b\x32!.opi_api.storage.v1.NvmeSubsystemB\x04\xe2\x41\x01\x02R\rnvmeSubsystem\x12\x30\n\x11nvme_subsystem_id\x18\x02 \x01(\tB\x04\xe2\x41\x01\x01R\x0fnvmeSubsystemId\"\x86\x01\n\x1a\x44\x65leteNvmeSubsystemRequest\x12=\n\x04name\x18\x01 \x01(\tB)\xe2\x41\x01\x02\xfa\x41\"\n opi_api.storage.v1/NvmeSubsystemR\x04name\x12)\n\rallow_missing\x18\x02 \x01(\x08\x42\x04\xe2\x41\x01\x01R\x0c\x61llowMissing\"\xda\x01\n\x1aUpdateNvmeSubsystemRequest\x12N\n\x0envme_subsystem\x18\x01 \x01(\x0b\x32!.opi_api.storage.v1.NvmeSubsystemB\x04\xe2\x41\x01\x02R\rnvmeSubsystem\x12\x41\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x04\xe2\x41\x01\x01R\nupdateMask\x12)\n\rallow_missing\x18\x03 \x01(\x08\x42\x04\xe2\x41\x01\x01R\x0c\x61llowMissing\"c\n\x19ListNvmeSubsystemsRequest\x12!\n\tpage_size\x18\x02 \x01(\x05\x42\x04\xe2\x41\x01\x01R\x08pageSize\x12#\n\npage_token\x18\x03 \x01(\tB\x04\xe2\x41\x01\x01R\tpageToken\"\x90\x01\n\x1aListNvmeSubsystemsResponse\x12J\n\x0fnvme_subsystems\x18\x01 \x03(\x0b\x32!.opi_api.storage.v1.NvmeSubsystemR\x0envmeSubsystems\x12&\n\x0fnext_page_token\x18\x02 \x01(\tR\rnextPageToken\"X\n\x17GetNvmeSubsystemRequest\x12=\n\x04name\x18\x01 \x01(\tB)\xe2\x41\x01\x02\xfa\x41\"\n opi_api.storage.v1/NvmeSubsystemR\x04name\"Z\n\x19StatsNvmeSubsystemRequest\x12=\n\x04name\x18\x01 \x01(\tB)\xe2\x41\x01\x02\xfa\x41\"\n opi_api.storage.v1/NvmeSubsystemR\x04name\"S\n\x1aStatsNvmeSubsystemResponse\x12\x35\n\x05stats\x18\x01 \x01(\x0b\x32\x1f.opi_api.storage.v1.VolumeStatsR\x05stats\"\xe7\x01\n\x1b\x43reateNvmeControllerRequest\x12\x41\n\x06parent\x18\x01 \x01(\tB)\xe2\x41\x01\x02\xfa\x41\"\n opi_api.storage.v1/NvmeSubsystemR\x06parent\x12Q\n\x0fnvme_controller\x18\x02 \x01(\x0b\x32\".opi_api.storage.v1.NvmeControllerB\x04\xe2\x41\x01\x02R\x0envmeController\x12\x32\n\x12nvme_controller_id\x18\x03 \x01(\tB\x04\xe2\x41\x01\x01R\x10nvmeControllerId\"\x88\x01\n\x1b\x44\x65leteNvmeControllerRequest\x12>\n\x04name\x18\x01 \x01(\tB*\xe2\x41\x01\x02\xfa\x41#\n!opi_api.storage.v1/NvmeControllerR\x04name\x12)\n\rallow_missing\x18\x02 \x01(\x08\x42\x04\xe2\x41\x01\x01R\x0c\x61llowMissing\"\xde\x01\n\x1bUpdateNvmeControllerRequest\x12Q\n\x0fnvme_controller\x18\x01 \x01(\x0b\x32\".opi_api.storage.v1.NvmeControllerB\x04\xe2\x41\x01\x02R\x0envmeController\x12\x41\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x04\xe2\x41\x01\x01R\nupdateMask\x12)\n\rallow_missing\x18\x03 \x01(\x08\x42\x04\xe2\x41\x01\x01R\x0c\x61llowMissing\"\xa8\x01\n\x1aListNvmeControllersRequest\x12\x42\n\x06parent\x18\x01 \x01(\tB*\xe2\x41\x01\x02\xfa\x41#\x12!opi_api.storage.v1/NvmeControllerR\x06parent\x12!\n\tpage_size\x18\x02 \x01(\x05\x42\x04\xe2\x41\x01\x01R\x08pageSize\x12#\n\npage_token\x18\x03 \x01(\tB\x04\xe2\x41\x01\x01R\tpageToken\"\x94\x01\n\x1bListNvmeControllersResponse\x12M\n\x10nvme_controllers\x18\x01 \x03(\x0b\x32\".opi_api.storage.v1.NvmeControllerR\x0fnvmeControllers\x12&\n\x0fnext_page_token\x18\x02 \x01(\tR\rnextPageToken\"Z\n\x18GetNvmeControllerRequest\x12>\n\x04name\x18\x01 \x01(\tB*\xe2\x41\x01\x02\xfa\x41#\n!opi_api.storage.v1/NvmeControllerR\x04name\"\\\n\x1aStatsNvmeControllerRequest\x12>\n\x04name\x18\x01 \x01(\tB*\xe2\x41\x01\x02\xfa\x41#\n!opi_api.storage.v1/NvmeControllerR\x04name\"T\n\x1bStatsNvmeControllerResponse\x12\x35\n\x05stats\x18\x01 \x01(\x0b\x32\x1f.opi_api.storage.v1.VolumeStatsR\x05stats\"\xe1\x01\n\x1a\x43reateNvmeNamespaceRequest\x12\x41\n\x06parent\x18\x01 \x01(\tB)\xe2\x41\x01\x02\xfa\x41\"\n opi_api.storage.v1/NvmeSubsystemR\x06parent\x12N\n\x0envme_namespace\x18\x02 \x01(\x0b\x32!.opi_api.storage.v1.NvmeNamespaceB\x04\xe2\x41\x01\x02R\rnvmeNamespace\x12\x30\n\x11nvme_namespace_id\x18\x03 \x01(\tB\x04\xe2\x41\x01\x01R\x0fnvmeNamespaceId\"\x86\x01\n\x1a\x44\x65leteNvmeNamespaceRequest\x12=\n\x04name\x18\x01 \x01(\tB)\xe2\x41\x01\x02\xfa\x41\"\n opi_api.storage.v1/NvmeNamespaceR\x04name\x12)\n\rallow_missing\x18\x02 \x01(\x08\x42\x04\xe2\x41\x01\x01R\x0c\x61llowMissing\"\xda\x01\n\x1aUpdateNvmeNamespaceRequest\x12N\n\x0envme_namespace\x18\x01 \x01(\x0b\x32!.opi_api.storage.v1.NvmeNamespaceB\x04\xe2\x41\x01\x02R\rnvmeNamespace\x12\x41\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x04\xe2\x41\x01\x01R\nupdateMask\x12)\n\rallow_missing\x18\x03 \x01(\x08\x42\x04\xe2\x41\x01\x01R\x0c\x61llowMissing\"\xa6\x01\n\x19ListNvmeNamespacesRequest\x12\x41\n\x06parent\x18\x01 \x01(\tB)\xe2\x41\x01\x02\xfa\x41\"\x12 opi_api.storage.v1/NvmeNamespaceR\x06parent\x12!\n\tpage_size\x18\x02 \x01(\x05\x42\x04\xe2\x41\x01\x01R\x08pageSize\x12#\n\npage_token\x18\x03 \x01(\tB\x04\xe2\x41\x01\x01R\tpageToken\"\x90\x01\n\x1aListNvmeNamespacesResponse\x12J\n\x0fnvme_namespaces\x18\x01 \x03(\x0b\x32!.opi_api.storage.v1.NvmeNamespaceR\x0envmeNamespaces\x12&\n\x0fnext_page_token\x18\x02 \x01(\tR\rnextPageToken\"X\n\x17GetNvmeNamespaceRequest\x12=\n\x04name\x18\x01 \x01(\tB)\xe2\x41\x01\x02\xfa\x41\"\n opi_api.storage.v1/NvmeNamespaceR\x04name\"Z\n\x19StatsNvmeNamespaceRequest\x12=\n\x04name\x18\x01 \x01(\tB)\xe2\x41\x01\x02\xfa\x41\"\n opi_api.storage.v1/NvmeNamespaceR\x04name\"S\n\x1aStatsNvmeNamespaceResponse\x12\x35\n\x05stats\x18\x01 \x01(\x0b\x32\x1f.opi_api.storage.v1.VolumeStatsR\x05stats2\xd9\x19\n\x13\x46rontendNvmeService\x12\xb7\x01\n\x13\x43reateNvmeSubsystem\x12..opi_api.storage.v1.CreateNvmeSubsystemRequest\x1a!.opi_api.storage.v1.NvmeSubsystem\"M\xda\x41 nvme_subsystem,nvme_subsystem_id\x82\xd3\xe4\x93\x02$\"\x12/v1/nvmeSubsystems:\x0envme_subsystem\x12\x89\x01\n\x13\x44\x65leteNvmeSubsystem\x12..opi_api.storage.v1.DeleteNvmeSubsystemRequest\x1a\x16.google.protobuf.Empty\"*\xda\x41\x04name\x82\xd3\xe4\x93\x02\x1d*\x1b/v1/{name=nvmeSubsystems/*}\x12\xc9\x01\n\x13UpdateNvmeSubsystem\x12..opi_api.storage.v1.UpdateNvmeSubsystemRequest\x1a!.opi_api.storage.v1.NvmeSubsystem\"_\xda\x41\x1anvme_subsystem,update_mask\x82\xd3\xe4\x93\x02<2*/v1/{nvme_subsystem.name=nvmeSubsystems/*}:\x0envme_subsystem\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\"*\xda\x41\x04name\x82\xd3\xe4\x93\x02\x1d\x12\x1b/v1/{name=nvmeSubsystems/*}\x12\xa5\x01\n\x12StatsNvmeSubsystem\x12-.opi_api.storage.v1.StatsNvmeSubsystemRequest\x1a..opi_api.storage.v1.StatsNvmeSubsystemResponse\"0\xda\x41\x04name\x82\xd3\xe4\x93\x02#\x12!/v1/{name=nvmeSubsystems/*}:stats\x12\xdf\x01\n\x14\x43reateNvmeController\x12/.opi_api.storage.v1.CreateNvmeControllerRequest\x1a\".opi_api.storage.v1.NvmeController\"r\xda\x41)parent,nvme_controller,nvme_controller_id\x82\xd3\xe4\x93\x02@\"-/v1/{parent=nvmeSubsystems/*}/nvmeControllers:\x0fnvme_controller\x12\x9d\x01\n\x14\x44\x65leteNvmeController\x12/.opi_api.storage.v1.DeleteNvmeControllerRequest\x1a\x16.google.protobuf.Empty\"<\xda\x41\x04name\x82\xd3\xe4\x93\x02/*-/v1/{name=nvmeSubsystems/*/nvmeControllers/*}\x12\xe1\x01\n\x14UpdateNvmeController\x12/.opi_api.storage.v1.UpdateNvmeControllerRequest\x1a\".opi_api.storage.v1.NvmeController\"t\xda\x41\x1bnvme_controller,update_mask\x82\xd3\xe4\x93\x02P2=/v1/{nvme_controller.name=nvmeSubsystems/*/nvmeControllers/*}:\x0fnvme_controller\x12\xb6\x01\n\x13ListNvmeControllers\x12..opi_api.storage.v1.ListNvmeControllersRequest\x1a/.opi_api.storage.v1.ListNvmeControllersResponse\">\xda\x41\x06parent\x82\xd3\xe4\x93\x02/\x12-/v1/{parent=nvmeSubsystems/*}/nvmeControllers\x12\xa3\x01\n\x11GetNvmeController\x12,.opi_api.storage.v1.GetNvmeControllerRequest\x1a\".opi_api.storage.v1.NvmeController\"<\xda\x41\x04name\x82\xd3\xe4\x93\x02/\x12-/v1/{name=nvmeSubsystems/*/nvmeControllers/*}\x12\xba\x01\n\x13StatsNvmeController\x12..opi_api.storage.v1.StatsNvmeControllerRequest\x1a/.opi_api.storage.v1.StatsNvmeControllerResponse\"B\xda\x41\x04name\x82\xd3\xe4\x93\x02\x35\x12\x33/v1/{name=nvmeSubsystems/*/nvmeControllers/*}:stats\x12\xd8\x01\n\x13\x43reateNvmeNamespace\x12..opi_api.storage.v1.CreateNvmeNamespaceRequest\x1a!.opi_api.storage.v1.NvmeNamespace\"n\xda\x41\'parent,nvme_namespace,nvme_namespace_id\x82\xd3\xe4\x93\x02>\",/v1/{parent=nvmeSubsystems/*}/nvmeNamespaces:\x0envme_namespace\x12\x9a\x01\n\x13\x44\x65leteNvmeNamespace\x12..opi_api.storage.v1.DeleteNvmeNamespaceRequest\x1a\x16.google.protobuf.Empty\";\xda\x41\x04name\x82\xd3\xe4\x93\x02.*,/v1/{name=nvmeSubsystems/*/nvmeNamespaces/*}\x12\xda\x01\n\x13UpdateNvmeNamespace\x12..opi_api.storage.v1.UpdateNvmeNamespaceRequest\x1a!.opi_api.storage.v1.NvmeNamespace\"p\xda\x41\x1anvme_namespace,update_mask\x82\xd3\xe4\x93\x02M2;/v1/{nvme_namespace.name=nvmeSubsystems/*/nvmeNamespaces/*}:\x0envme_namespace\x12\xb2\x01\n\x12ListNvmeNamespaces\x12-.opi_api.storage.v1.ListNvmeNamespacesRequest\x1a..opi_api.storage.v1.ListNvmeNamespacesResponse\"=\xda\x41\x06parent\x82\xd3\xe4\x93\x02.\x12,/v1/{parent=nvmeSubsystems/*}/nvmeNamespaces\x12\x9f\x01\n\x10GetNvmeNamespace\x12+.opi_api.storage.v1.GetNvmeNamespaceRequest\x1a!.opi_api.storage.v1.NvmeNamespace\";\xda\x41\x04name\x82\xd3\xe4\x93\x02.\x12,/v1/{name=nvmeSubsystems/*/nvmeNamespaces/*}\x12\xb6\x01\n\x12StatsNvmeNamespace\x12-.opi_api.storage.v1.StatsNvmeNamespaceRequest\x1a..opi_api.storage.v1.StatsNvmeNamespaceResponse\"A\xda\x41\x04name\x82\xd3\xe4\x93\x02\x34\x12\x32/v1/{name=nvmeSubsystems/*/nvmeNamespaces/*}:statsB`\n\x12opi_api.storage.v1B\x11\x46rontendNvmeProtoP\x01Z5github.com/opiproject/opi-api/storage/v1alpha1/gen/gob\x06proto3') -_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals()) -_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'frontend_nvme_pb2', globals()) +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'frontend_nvme_pb2', _globals) if _descriptor._USE_C_DESCRIPTORS == False: - - DESCRIPTOR._options = None - DESCRIPTOR._serialized_options = b'\n\022opi_api.storage.v1B\021FrontendNvmeProtoP\001Z5github.com/opiproject/opi-api/storage/v1alpha1/gen/go' - _NVMESUBSYSTEM.fields_by_name['name']._options = None - _NVMESUBSYSTEM.fields_by_name['name']._serialized_options = b'\340A\010' - _NVMESUBSYSTEM.fields_by_name['spec']._options = None - _NVMESUBSYSTEM.fields_by_name['spec']._serialized_options = b'\340A\002' - _NVMESUBSYSTEM.fields_by_name['status']._options = None - _NVMESUBSYSTEM.fields_by_name['status']._serialized_options = b'\340A\003' - _NVMESUBSYSTEM._options = None - _NVMESUBSYSTEM._serialized_options = b'\352A]\n opi_api.storage.v1/NvmeSubsystem\022\032nvmeSubsystems/{subsystem}*\016nvmeSubsystems2\rnvmeSubsystem' - _NVMESUBSYSTEMSPEC.fields_by_name['nqn']._options = None - _NVMESUBSYSTEMSPEC.fields_by_name['nqn']._serialized_options = b'\340A\002' - _NVMESUBSYSTEMSPEC.fields_by_name['serial_number']._options = None - _NVMESUBSYSTEMSPEC.fields_by_name['serial_number']._serialized_options = b'\340A\001' - _NVMESUBSYSTEMSPEC.fields_by_name['model_number']._options = None - _NVMESUBSYSTEMSPEC.fields_by_name['model_number']._serialized_options = b'\340A\001' - _NVMESUBSYSTEMSPEC.fields_by_name['max_namespaces']._options = None - _NVMESUBSYSTEMSPEC.fields_by_name['max_namespaces']._serialized_options = b'\340A\001' - _NVMESUBSYSTEMSPEC.fields_by_name['hostnqn']._options = None - _NVMESUBSYSTEMSPEC.fields_by_name['hostnqn']._serialized_options = b'\340A\001' - _NVMESUBSYSTEMSPEC.fields_by_name['psk']._options = None - _NVMESUBSYSTEMSPEC.fields_by_name['psk']._serialized_options = b'\340A\001' - _NVMESUBSYSTEMSTATUS.fields_by_name['firmware_revision']._options = None - _NVMESUBSYSTEMSTATUS.fields_by_name['firmware_revision']._serialized_options = b'\340A\003' - _NVMESUBSYSTEMSTATUS.fields_by_name['fru_guid']._options = None - _NVMESUBSYSTEMSTATUS.fields_by_name['fru_guid']._serialized_options = b'\340A\003' - _NVMECONTROLLER.fields_by_name['name']._options = None - _NVMECONTROLLER.fields_by_name['name']._serialized_options = b'\340A\010' - _NVMECONTROLLER.fields_by_name['spec']._options = None - _NVMECONTROLLER.fields_by_name['spec']._serialized_options = b'\340A\002' - _NVMECONTROLLER.fields_by_name['status']._options = None - _NVMECONTROLLER.fields_by_name['status']._serialized_options = b'\340A\003' - _NVMECONTROLLER._options = None - _NVMECONTROLLER._serialized_options = b'\352A}\n!opi_api.storage.v1/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\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 - _NVMECONTROLLERSPEC.fields_by_name['max_ncq']._serialized_options = b'\340A\001' - _NVMECONTROLLERSPEC.fields_by_name['sqes']._options = None - _NVMECONTROLLERSPEC.fields_by_name['sqes']._serialized_options = b'\340A\001' - _NVMECONTROLLERSPEC.fields_by_name['cqes']._options = None - _NVMECONTROLLERSPEC.fields_by_name['cqes']._serialized_options = b'\340A\001' - _NVMECONTROLLERSPEC.fields_by_name['max_namespaces']._options = None - _NVMECONTROLLERSPEC.fields_by_name['max_namespaces']._serialized_options = b'\340A\001' - _NVMECONTROLLERSPEC.fields_by_name['min_limit']._options = None - _NVMECONTROLLERSPEC.fields_by_name['min_limit']._serialized_options = b'\340A\001' - _NVMECONTROLLERSPEC.fields_by_name['max_limit']._options = None - _NVMECONTROLLERSPEC.fields_by_name['max_limit']._serialized_options = b'\340A\001' - _NVMECONTROLLERSTATUS.fields_by_name['active']._options = None - _NVMECONTROLLERSTATUS.fields_by_name['active']._serialized_options = b'\340A\003' - _NVMENAMESPACE.fields_by_name['name']._options = None - _NVMENAMESPACE.fields_by_name['name']._serialized_options = b'\340A\010' - _NVMENAMESPACE.fields_by_name['spec']._options = None - _NVMENAMESPACE.fields_by_name['spec']._serialized_options = b'\340A\002' - _NVMENAMESPACE.fields_by_name['status']._options = None - _NVMENAMESPACE.fields_by_name['status']._serialized_options = b'\340A\003' - _NVMENAMESPACE._options = None - _NVMENAMESPACE._serialized_options = b'\352Ax\n opi_api.storage.v1/NvmeNamespace\0225nvmeSubsystems/{subsystem}/nvmeNamespaces/{namespace}*\016nvmeNamespaces2\rnvmeNamespace' - _NVMENAMESPACESPEC.fields_by_name['host_nsid']._options = None - _NVMENAMESPACESPEC.fields_by_name['host_nsid']._serialized_options = b'\340A\001' - _NVMENAMESPACESPEC.fields_by_name['nguid']._options = None - _NVMENAMESPACESPEC.fields_by_name['nguid']._serialized_options = b'\340A\001' - _NVMENAMESPACESPEC.fields_by_name['eui64']._options = None - _NVMENAMESPACESPEC.fields_by_name['eui64']._serialized_options = b'\340A\001' - _NVMENAMESPACESPEC.fields_by_name['uuid']._options = None - _NVMENAMESPACESPEC.fields_by_name['uuid']._serialized_options = b'\340A\001' - _NVMENAMESPACESPEC.fields_by_name['volume_name_ref']._options = None - _NVMENAMESPACESPEC.fields_by_name['volume_name_ref']._serialized_options = b'\340A\002' - _NVMENAMESPACESTATUS.fields_by_name['state']._options = None - _NVMENAMESPACESTATUS.fields_by_name['state']._serialized_options = b'\340A\003' - _NVMENAMESPACESTATUS.fields_by_name['oper_state']._options = None - _NVMENAMESPACESTATUS.fields_by_name['oper_state']._serialized_options = b'\340A\003' - _CREATENVMESUBSYSTEMREQUEST.fields_by_name['nvme_subsystem']._options = None - _CREATENVMESUBSYSTEMREQUEST.fields_by_name['nvme_subsystem']._serialized_options = b'\340A\002' - _CREATENVMESUBSYSTEMREQUEST.fields_by_name['nvme_subsystem_id']._options = None - _CREATENVMESUBSYSTEMREQUEST.fields_by_name['nvme_subsystem_id']._serialized_options = b'\340A\001' - _DELETENVMESUBSYSTEMREQUEST.fields_by_name['name']._options = None - _DELETENVMESUBSYSTEMREQUEST.fields_by_name['name']._serialized_options = b'\340A\002\372A\"\n opi_api.storage.v1/NvmeSubsystem' - _DELETENVMESUBSYSTEMREQUEST.fields_by_name['allow_missing']._options = None - _DELETENVMESUBSYSTEMREQUEST.fields_by_name['allow_missing']._serialized_options = b'\340A\001' - _UPDATENVMESUBSYSTEMREQUEST.fields_by_name['nvme_subsystem']._options = None - _UPDATENVMESUBSYSTEMREQUEST.fields_by_name['nvme_subsystem']._serialized_options = b'\340A\002' - _UPDATENVMESUBSYSTEMREQUEST.fields_by_name['update_mask']._options = None - _UPDATENVMESUBSYSTEMREQUEST.fields_by_name['update_mask']._serialized_options = b'\340A\001' - _UPDATENVMESUBSYSTEMREQUEST.fields_by_name['allow_missing']._options = None - _UPDATENVMESUBSYSTEMREQUEST.fields_by_name['allow_missing']._serialized_options = b'\340A\001' - _LISTNVMESUBSYSTEMSREQUEST.fields_by_name['page_size']._options = None - _LISTNVMESUBSYSTEMSREQUEST.fields_by_name['page_size']._serialized_options = b'\340A\001' - _LISTNVMESUBSYSTEMSREQUEST.fields_by_name['page_token']._options = None - _LISTNVMESUBSYSTEMSREQUEST.fields_by_name['page_token']._serialized_options = b'\340A\001' - _GETNVMESUBSYSTEMREQUEST.fields_by_name['name']._options = None - _GETNVMESUBSYSTEMREQUEST.fields_by_name['name']._serialized_options = b'\340A\002\372A\"\n opi_api.storage.v1/NvmeSubsystem' - _STATSNVMESUBSYSTEMREQUEST.fields_by_name['name']._options = None - _STATSNVMESUBSYSTEMREQUEST.fields_by_name['name']._serialized_options = b'\340A\002\372A\"\n opi_api.storage.v1/NvmeSubsystem' - _CREATENVMECONTROLLERREQUEST.fields_by_name['parent']._options = None - _CREATENVMECONTROLLERREQUEST.fields_by_name['parent']._serialized_options = b'\340A\002\372A\"\n opi_api.storage.v1/NvmeSubsystem' - _CREATENVMECONTROLLERREQUEST.fields_by_name['nvme_controller']._options = None - _CREATENVMECONTROLLERREQUEST.fields_by_name['nvme_controller']._serialized_options = b'\340A\002' - _CREATENVMECONTROLLERREQUEST.fields_by_name['nvme_controller_id']._options = None - _CREATENVMECONTROLLERREQUEST.fields_by_name['nvme_controller_id']._serialized_options = b'\340A\001' - _DELETENVMECONTROLLERREQUEST.fields_by_name['name']._options = None - _DELETENVMECONTROLLERREQUEST.fields_by_name['name']._serialized_options = b'\340A\002\372A#\n!opi_api.storage.v1/NvmeController' - _DELETENVMECONTROLLERREQUEST.fields_by_name['allow_missing']._options = None - _DELETENVMECONTROLLERREQUEST.fields_by_name['allow_missing']._serialized_options = b'\340A\001' - _UPDATENVMECONTROLLERREQUEST.fields_by_name['nvme_controller']._options = None - _UPDATENVMECONTROLLERREQUEST.fields_by_name['nvme_controller']._serialized_options = b'\340A\002' - _UPDATENVMECONTROLLERREQUEST.fields_by_name['update_mask']._options = None - _UPDATENVMECONTROLLERREQUEST.fields_by_name['update_mask']._serialized_options = b'\340A\001' - _UPDATENVMECONTROLLERREQUEST.fields_by_name['allow_missing']._options = None - _UPDATENVMECONTROLLERREQUEST.fields_by_name['allow_missing']._serialized_options = b'\340A\001' - _LISTNVMECONTROLLERSREQUEST.fields_by_name['parent']._options = None - _LISTNVMECONTROLLERSREQUEST.fields_by_name['parent']._serialized_options = b'\340A\002\372A#\022!opi_api.storage.v1/NvmeController' - _LISTNVMECONTROLLERSREQUEST.fields_by_name['page_size']._options = None - _LISTNVMECONTROLLERSREQUEST.fields_by_name['page_size']._serialized_options = b'\340A\001' - _LISTNVMECONTROLLERSREQUEST.fields_by_name['page_token']._options = None - _LISTNVMECONTROLLERSREQUEST.fields_by_name['page_token']._serialized_options = b'\340A\001' - _GETNVMECONTROLLERREQUEST.fields_by_name['name']._options = None - _GETNVMECONTROLLERREQUEST.fields_by_name['name']._serialized_options = b'\340A\002\372A#\n!opi_api.storage.v1/NvmeController' - _STATSNVMECONTROLLERREQUEST.fields_by_name['name']._options = None - _STATSNVMECONTROLLERREQUEST.fields_by_name['name']._serialized_options = b'\340A\002\372A#\n!opi_api.storage.v1/NvmeController' - _CREATENVMENAMESPACEREQUEST.fields_by_name['parent']._options = None - _CREATENVMENAMESPACEREQUEST.fields_by_name['parent']._serialized_options = b'\340A\002\372A\"\n opi_api.storage.v1/NvmeSubsystem' - _CREATENVMENAMESPACEREQUEST.fields_by_name['nvme_namespace']._options = None - _CREATENVMENAMESPACEREQUEST.fields_by_name['nvme_namespace']._serialized_options = b'\340A\002' - _CREATENVMENAMESPACEREQUEST.fields_by_name['nvme_namespace_id']._options = None - _CREATENVMENAMESPACEREQUEST.fields_by_name['nvme_namespace_id']._serialized_options = b'\340A\001' - _DELETENVMENAMESPACEREQUEST.fields_by_name['name']._options = None - _DELETENVMENAMESPACEREQUEST.fields_by_name['name']._serialized_options = b'\340A\002\372A\"\n opi_api.storage.v1/NvmeNamespace' - _DELETENVMENAMESPACEREQUEST.fields_by_name['allow_missing']._options = None - _DELETENVMENAMESPACEREQUEST.fields_by_name['allow_missing']._serialized_options = b'\340A\001' - _UPDATENVMENAMESPACEREQUEST.fields_by_name['nvme_namespace']._options = None - _UPDATENVMENAMESPACEREQUEST.fields_by_name['nvme_namespace']._serialized_options = b'\340A\002' - _UPDATENVMENAMESPACEREQUEST.fields_by_name['update_mask']._options = None - _UPDATENVMENAMESPACEREQUEST.fields_by_name['update_mask']._serialized_options = b'\340A\001' - _UPDATENVMENAMESPACEREQUEST.fields_by_name['allow_missing']._options = None - _UPDATENVMENAMESPACEREQUEST.fields_by_name['allow_missing']._serialized_options = b'\340A\001' - _LISTNVMENAMESPACESREQUEST.fields_by_name['parent']._options = None - _LISTNVMENAMESPACESREQUEST.fields_by_name['parent']._serialized_options = b'\340A\002\372A\"\022 opi_api.storage.v1/NvmeNamespace' - _LISTNVMENAMESPACESREQUEST.fields_by_name['page_size']._options = None - _LISTNVMENAMESPACESREQUEST.fields_by_name['page_size']._serialized_options = b'\340A\001' - _LISTNVMENAMESPACESREQUEST.fields_by_name['page_token']._options = None - _LISTNVMENAMESPACESREQUEST.fields_by_name['page_token']._serialized_options = b'\340A\001' - _GETNVMENAMESPACEREQUEST.fields_by_name['name']._options = None - _GETNVMENAMESPACEREQUEST.fields_by_name['name']._serialized_options = b'\340A\002\372A\"\n opi_api.storage.v1/NvmeNamespace' - _STATSNVMENAMESPACEREQUEST.fields_by_name['name']._options = None - _STATSNVMENAMESPACEREQUEST.fields_by_name['name']._serialized_options = b'\340A\002\372A\"\n opi_api.storage.v1/NvmeNamespace' - _FRONTENDNVMESERVICE.methods_by_name['CreateNvmeSubsystem']._options = None - _FRONTENDNVMESERVICE.methods_by_name['CreateNvmeSubsystem']._serialized_options = b'\202\323\344\223\002$\"\022/v1/nvmeSubsystems:\016nvme_subsystem\332A nvme_subsystem,nvme_subsystem_id' - _FRONTENDNVMESERVICE.methods_by_name['DeleteNvmeSubsystem']._options = None - _FRONTENDNVMESERVICE.methods_by_name['DeleteNvmeSubsystem']._serialized_options = b'\202\323\344\223\002\035*\033/v1/{name=nvmeSubsystems/*}\332A\004name' - _FRONTENDNVMESERVICE.methods_by_name['UpdateNvmeSubsystem']._options = None - _FRONTENDNVMESERVICE.methods_by_name['UpdateNvmeSubsystem']._serialized_options = b'\202\323\344\223\002<2*/v1/{nvme_subsystem.name=nvmeSubsystems/*}:\016nvme_subsystem\332A\032nvme_subsystem,update_mask' - _FRONTENDNVMESERVICE.methods_by_name['ListNvmeSubsystems']._options = None - _FRONTENDNVMESERVICE.methods_by_name['ListNvmeSubsystems']._serialized_options = b'\202\323\344\223\002\024\022\022/v1/nvmeSubsystems' - _FRONTENDNVMESERVICE.methods_by_name['GetNvmeSubsystem']._options = None - _FRONTENDNVMESERVICE.methods_by_name['GetNvmeSubsystem']._serialized_options = b'\202\323\344\223\002\035\022\033/v1/{name=nvmeSubsystems/*}\332A\004name' - _FRONTENDNVMESERVICE.methods_by_name['StatsNvmeSubsystem']._options = None - _FRONTENDNVMESERVICE.methods_by_name['StatsNvmeSubsystem']._serialized_options = b'\202\323\344\223\002#\022!/v1/{name=nvmeSubsystems/*}:stats\332A\004name' - _FRONTENDNVMESERVICE.methods_by_name['CreateNvmeController']._options = None - _FRONTENDNVMESERVICE.methods_by_name['CreateNvmeController']._serialized_options = b'\202\323\344\223\002@\"-/v1/{parent=nvmeSubsystems/*}/nvmeControllers:\017nvme_controller\332A)parent,nvme_controller,nvme_controller_id' - _FRONTENDNVMESERVICE.methods_by_name['DeleteNvmeController']._options = None - _FRONTENDNVMESERVICE.methods_by_name['DeleteNvmeController']._serialized_options = b'\202\323\344\223\002/*-/v1/{name=nvmeSubsystems/*/nvmeControllers/*}\332A\004name' - _FRONTENDNVMESERVICE.methods_by_name['UpdateNvmeController']._options = None - _FRONTENDNVMESERVICE.methods_by_name['UpdateNvmeController']._serialized_options = b'\202\323\344\223\002P2=/v1/{nvme_controller.name=nvmeSubsystems/*/nvmeControllers/*}:\017nvme_controller\332A\033nvme_controller,update_mask' - _FRONTENDNVMESERVICE.methods_by_name['ListNvmeControllers']._options = None - _FRONTENDNVMESERVICE.methods_by_name['ListNvmeControllers']._serialized_options = b'\202\323\344\223\002/\022-/v1/{parent=nvmeSubsystems/*}/nvmeControllers\332A\006parent' - _FRONTENDNVMESERVICE.methods_by_name['GetNvmeController']._options = None - _FRONTENDNVMESERVICE.methods_by_name['GetNvmeController']._serialized_options = b'\202\323\344\223\002/\022-/v1/{name=nvmeSubsystems/*/nvmeControllers/*}\332A\004name' - _FRONTENDNVMESERVICE.methods_by_name['StatsNvmeController']._options = None - _FRONTENDNVMESERVICE.methods_by_name['StatsNvmeController']._serialized_options = b'\202\323\344\223\0025\0223/v1/{name=nvmeSubsystems/*/nvmeControllers/*}:stats\332A\004name' - _FRONTENDNVMESERVICE.methods_by_name['CreateNvmeNamespace']._options = None - _FRONTENDNVMESERVICE.methods_by_name['CreateNvmeNamespace']._serialized_options = b'\202\323\344\223\002>\",/v1/{parent=nvmeSubsystems/*}/nvmeNamespaces:\016nvme_namespace\332A\'parent,nvme_namespace,nvme_namespace_id' - _FRONTENDNVMESERVICE.methods_by_name['DeleteNvmeNamespace']._options = None - _FRONTENDNVMESERVICE.methods_by_name['DeleteNvmeNamespace']._serialized_options = b'\202\323\344\223\002.*,/v1/{name=nvmeSubsystems/*/nvmeNamespaces/*}\332A\004name' - _FRONTENDNVMESERVICE.methods_by_name['UpdateNvmeNamespace']._options = None - _FRONTENDNVMESERVICE.methods_by_name['UpdateNvmeNamespace']._serialized_options = b'\202\323\344\223\002M2;/v1/{nvme_namespace.name=nvmeSubsystems/*/nvmeNamespaces/*}:\016nvme_namespace\332A\032nvme_namespace,update_mask' - _FRONTENDNVMESERVICE.methods_by_name['ListNvmeNamespaces']._options = None - _FRONTENDNVMESERVICE.methods_by_name['ListNvmeNamespaces']._serialized_options = b'\202\323\344\223\002.\022,/v1/{parent=nvmeSubsystems/*}/nvmeNamespaces\332A\006parent' - _FRONTENDNVMESERVICE.methods_by_name['GetNvmeNamespace']._options = None - _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' - _NVMESUBSYSTEM._serialized_start=251 - _NVMESUBSYSTEM._serialized_end=503 - _NVMESUBSYSTEMSPEC._serialized_start=506 - _NVMESUBSYSTEMSPEC._serialized_end=667 - _NVMESUBSYSTEMSTATUS._serialized_start=669 - _NVMESUBSYSTEMSTATUS._serialized_end=745 - _NVMECONTROLLER._serialized_start=748 - _NVMECONTROLLER._serialized_end=1036 - _NVMECONTROLLERSPEC._serialized_start=1039 - _NVMECONTROLLERSPEC._serialized_end=1532 - _NVMECONTROLLERSTATUS._serialized_start=1534 - _NVMECONTROLLERSTATUS._serialized_end=1577 - _NVMENAMESPACE._serialized_start=1580 - _NVMENAMESPACE._serialized_end=1859 - _NVMENAMESPACESPEC._serialized_start=1862 - _NVMENAMESPACESPEC._serialized_end=2019 - _NVMENAMESPACESTATUS._serialized_start=2022 - _NVMENAMESPACESTATUS._serialized_end=2365 - _NVMENAMESPACESTATUS_STATE._serialized_start=2188 - _NVMENAMESPACESTATUS_STATE._serialized_end=2277 - _NVMENAMESPACESTATUS_OPERSTATE._serialized_start=2279 - _NVMENAMESPACESTATUS_OPERSTATE._serialized_end=2365 - _CREATENVMESUBSYSTEMREQUEST._serialized_start=2367 - _CREATENVMESUBSYSTEMREQUEST._serialized_end=2491 - _DELETENVMESUBSYSTEMREQUEST._serialized_start=2493 - _DELETENVMESUBSYSTEMREQUEST._serialized_end=2605 - _UPDATENVMESUBSYSTEMREQUEST._serialized_start=2608 - _UPDATENVMESUBSYSTEMREQUEST._serialized_end=2782 - _LISTNVMESUBSYSTEMSREQUEST._serialized_start=2784 - _LISTNVMESUBSYSTEMSREQUEST._serialized_end=2860 - _LISTNVMESUBSYSTEMSRESPONSE._serialized_start=2862 - _LISTNVMESUBSYSTEMSRESPONSE._serialized_end=2975 - _GETNVMESUBSYSTEMREQUEST._serialized_start=2977 - _GETNVMESUBSYSTEMREQUEST._serialized_end=3058 - _STATSNVMESUBSYSTEMREQUEST._serialized_start=3060 - _STATSNVMESUBSYSTEMREQUEST._serialized_end=3143 - _STATSNVMESUBSYSTEMRESPONSE._serialized_start=3145 - _STATSNVMESUBSYSTEMRESPONSE._serialized_end=3221 - _CREATENVMECONTROLLERREQUEST._serialized_start=3224 - _CREATENVMECONTROLLERREQUEST._serialized_end=3410 - _DELETENVMECONTROLLERREQUEST._serialized_start=3412 - _DELETENVMECONTROLLERREQUEST._serialized_end=3526 - _UPDATENVMECONTROLLERREQUEST._serialized_start=3529 - _UPDATENVMECONTROLLERREQUEST._serialized_end=3706 - _LISTNVMECONTROLLERSREQUEST._serialized_start=3709 - _LISTNVMECONTROLLERSREQUEST._serialized_end=3845 - _LISTNVMECONTROLLERSRESPONSE._serialized_start=3847 - _LISTNVMECONTROLLERSRESPONSE._serialized_end=3963 - _GETNVMECONTROLLERREQUEST._serialized_start=3965 - _GETNVMECONTROLLERREQUEST._serialized_end=4048 - _STATSNVMECONTROLLERREQUEST._serialized_start=4050 - _STATSNVMECONTROLLERREQUEST._serialized_end=4135 - _STATSNVMECONTROLLERRESPONSE._serialized_start=4137 - _STATSNVMECONTROLLERRESPONSE._serialized_end=4214 - _CREATENVMENAMESPACEREQUEST._serialized_start=4217 - _CREATENVMENAMESPACEREQUEST._serialized_end=4399 - _DELETENVMENAMESPACEREQUEST._serialized_start=4401 - _DELETENVMENAMESPACEREQUEST._serialized_end=4513 - _UPDATENVMENAMESPACEREQUEST._serialized_start=4516 - _UPDATENVMENAMESPACEREQUEST._serialized_end=4690 - _LISTNVMENAMESPACESREQUEST._serialized_start=4693 - _LISTNVMENAMESPACESREQUEST._serialized_end=4827 - _LISTNVMENAMESPACESRESPONSE._serialized_start=4829 - _LISTNVMENAMESPACESRESPONSE._serialized_end=4942 - _GETNVMENAMESPACEREQUEST._serialized_start=4944 - _GETNVMENAMESPACEREQUEST._serialized_end=5025 - _STATSNVMENAMESPACEREQUEST._serialized_start=5027 - _STATSNVMENAMESPACEREQUEST._serialized_end=5110 - _STATSNVMENAMESPACERESPONSE._serialized_start=5112 - _STATSNVMENAMESPACERESPONSE._serialized_end=5188 - _FRONTENDNVMESERVICE._serialized_start=5191 - _FRONTENDNVMESERVICE._serialized_end=8480 + _globals['DESCRIPTOR']._options = None + _globals['DESCRIPTOR']._serialized_options = b'\n\022opi_api.storage.v1B\021FrontendNvmeProtoP\001Z5github.com/opiproject/opi-api/storage/v1alpha1/gen/go' + _globals['_NVMESUBSYSTEM'].fields_by_name['name']._options = None + _globals['_NVMESUBSYSTEM'].fields_by_name['name']._serialized_options = b'\342A\001\010' + _globals['_NVMESUBSYSTEM'].fields_by_name['spec']._options = None + _globals['_NVMESUBSYSTEM'].fields_by_name['spec']._serialized_options = b'\342A\001\002' + _globals['_NVMESUBSYSTEM'].fields_by_name['status']._options = None + _globals['_NVMESUBSYSTEM'].fields_by_name['status']._serialized_options = b'\342A\001\003' + _globals['_NVMESUBSYSTEM']._options = None + _globals['_NVMESUBSYSTEM']._serialized_options = b'\352A]\n opi_api.storage.v1/NvmeSubsystem\022\032nvmeSubsystems/{subsystem}*\016nvmeSubsystems2\rnvmeSubsystem' + _globals['_NVMESUBSYSTEMSPEC'].fields_by_name['nqn']._options = None + _globals['_NVMESUBSYSTEMSPEC'].fields_by_name['nqn']._serialized_options = b'\342A\001\002' + _globals['_NVMESUBSYSTEMSPEC'].fields_by_name['serial_number']._options = None + _globals['_NVMESUBSYSTEMSPEC'].fields_by_name['serial_number']._serialized_options = b'\342A\001\001' + _globals['_NVMESUBSYSTEMSPEC'].fields_by_name['model_number']._options = None + _globals['_NVMESUBSYSTEMSPEC'].fields_by_name['model_number']._serialized_options = b'\342A\001\001' + _globals['_NVMESUBSYSTEMSPEC'].fields_by_name['max_namespaces']._options = None + _globals['_NVMESUBSYSTEMSPEC'].fields_by_name['max_namespaces']._serialized_options = b'\342A\001\001' + _globals['_NVMESUBSYSTEMSPEC'].fields_by_name['hostnqn']._options = None + _globals['_NVMESUBSYSTEMSPEC'].fields_by_name['hostnqn']._serialized_options = b'\342A\001\001' + _globals['_NVMESUBSYSTEMSPEC'].fields_by_name['psk']._options = None + _globals['_NVMESUBSYSTEMSPEC'].fields_by_name['psk']._serialized_options = b'\342A\001\001' + _globals['_NVMESUBSYSTEMSTATUS'].fields_by_name['firmware_revision']._options = None + _globals['_NVMESUBSYSTEMSTATUS'].fields_by_name['firmware_revision']._serialized_options = b'\342A\001\003' + _globals['_NVMESUBSYSTEMSTATUS'].fields_by_name['fru_guid']._options = None + _globals['_NVMESUBSYSTEMSTATUS'].fields_by_name['fru_guid']._serialized_options = b'\342A\001\003' + _globals['_NVMECONTROLLER'].fields_by_name['name']._options = None + _globals['_NVMECONTROLLER'].fields_by_name['name']._serialized_options = b'\342A\001\010' + _globals['_NVMECONTROLLER'].fields_by_name['spec']._options = None + _globals['_NVMECONTROLLER'].fields_by_name['spec']._serialized_options = b'\342A\001\002' + _globals['_NVMECONTROLLER'].fields_by_name['status']._options = None + _globals['_NVMECONTROLLER'].fields_by_name['status']._serialized_options = b'\342A\001\003' + _globals['_NVMECONTROLLER']._options = None + _globals['_NVMECONTROLLER']._serialized_options = b'\352A}\n!opi_api.storage.v1/NvmeController\0227nvmeSubsystems/{subsystem}/nvmeControllers/{controller}*\017nvmeControllers2\016nvmeController' + _globals['_NVMECONTROLLERSPEC'].fields_by_name['nvme_controller_id']._options = None + _globals['_NVMECONTROLLERSPEC'].fields_by_name['nvme_controller_id']._serialized_options = b'\342A\001\001' + _globals['_NVMECONTROLLERSPEC'].fields_by_name['trtype']._options = None + _globals['_NVMECONTROLLERSPEC'].fields_by_name['trtype']._serialized_options = b'\342A\001\002' + _globals['_NVMECONTROLLERSPEC'].fields_by_name['pcie_id']._options = None + _globals['_NVMECONTROLLERSPEC'].fields_by_name['pcie_id']._serialized_options = b'\342A\001\001' + _globals['_NVMECONTROLLERSPEC'].fields_by_name['fabrics_id']._options = None + _globals['_NVMECONTROLLERSPEC'].fields_by_name['fabrics_id']._serialized_options = b'\342A\001\001' + _globals['_NVMECONTROLLERSPEC'].fields_by_name['max_nsq']._options = None + _globals['_NVMECONTROLLERSPEC'].fields_by_name['max_nsq']._serialized_options = b'\342A\001\001' + _globals['_NVMECONTROLLERSPEC'].fields_by_name['max_ncq']._options = None + _globals['_NVMECONTROLLERSPEC'].fields_by_name['max_ncq']._serialized_options = b'\342A\001\001' + _globals['_NVMECONTROLLERSPEC'].fields_by_name['sqes']._options = None + _globals['_NVMECONTROLLERSPEC'].fields_by_name['sqes']._serialized_options = b'\342A\001\001' + _globals['_NVMECONTROLLERSPEC'].fields_by_name['cqes']._options = None + _globals['_NVMECONTROLLERSPEC'].fields_by_name['cqes']._serialized_options = b'\342A\001\001' + _globals['_NVMECONTROLLERSPEC'].fields_by_name['max_namespaces']._options = None + _globals['_NVMECONTROLLERSPEC'].fields_by_name['max_namespaces']._serialized_options = b'\342A\001\001' + _globals['_NVMECONTROLLERSPEC'].fields_by_name['min_limit']._options = None + _globals['_NVMECONTROLLERSPEC'].fields_by_name['min_limit']._serialized_options = b'\342A\001\001' + _globals['_NVMECONTROLLERSPEC'].fields_by_name['max_limit']._options = None + _globals['_NVMECONTROLLERSPEC'].fields_by_name['max_limit']._serialized_options = b'\342A\001\001' + _globals['_NVMECONTROLLERSTATUS'].fields_by_name['active']._options = None + _globals['_NVMECONTROLLERSTATUS'].fields_by_name['active']._serialized_options = b'\342A\001\003' + _globals['_NVMENAMESPACE'].fields_by_name['name']._options = None + _globals['_NVMENAMESPACE'].fields_by_name['name']._serialized_options = b'\342A\001\010' + _globals['_NVMENAMESPACE'].fields_by_name['spec']._options = None + _globals['_NVMENAMESPACE'].fields_by_name['spec']._serialized_options = b'\342A\001\002' + _globals['_NVMENAMESPACE'].fields_by_name['status']._options = None + _globals['_NVMENAMESPACE'].fields_by_name['status']._serialized_options = b'\342A\001\003' + _globals['_NVMENAMESPACE']._options = None + _globals['_NVMENAMESPACE']._serialized_options = b'\352Ax\n opi_api.storage.v1/NvmeNamespace\0225nvmeSubsystems/{subsystem}/nvmeNamespaces/{namespace}*\016nvmeNamespaces2\rnvmeNamespace' + _globals['_NVMENAMESPACESPEC'].fields_by_name['host_nsid']._options = None + _globals['_NVMENAMESPACESPEC'].fields_by_name['host_nsid']._serialized_options = b'\342A\001\001' + _globals['_NVMENAMESPACESPEC'].fields_by_name['nguid']._options = None + _globals['_NVMENAMESPACESPEC'].fields_by_name['nguid']._serialized_options = b'\342A\001\001' + _globals['_NVMENAMESPACESPEC'].fields_by_name['eui64']._options = None + _globals['_NVMENAMESPACESPEC'].fields_by_name['eui64']._serialized_options = b'\342A\001\001' + _globals['_NVMENAMESPACESPEC'].fields_by_name['uuid']._options = None + _globals['_NVMENAMESPACESPEC'].fields_by_name['uuid']._serialized_options = b'\342A\001\001' + _globals['_NVMENAMESPACESPEC'].fields_by_name['volume_name_ref']._options = None + _globals['_NVMENAMESPACESPEC'].fields_by_name['volume_name_ref']._serialized_options = b'\342A\001\002' + _globals['_NVMENAMESPACESTATUS'].fields_by_name['state']._options = None + _globals['_NVMENAMESPACESTATUS'].fields_by_name['state']._serialized_options = b'\342A\001\003' + _globals['_NVMENAMESPACESTATUS'].fields_by_name['oper_state']._options = None + _globals['_NVMENAMESPACESTATUS'].fields_by_name['oper_state']._serialized_options = b'\342A\001\003' + _globals['_CREATENVMESUBSYSTEMREQUEST'].fields_by_name['nvme_subsystem']._options = None + _globals['_CREATENVMESUBSYSTEMREQUEST'].fields_by_name['nvme_subsystem']._serialized_options = b'\342A\001\002' + _globals['_CREATENVMESUBSYSTEMREQUEST'].fields_by_name['nvme_subsystem_id']._options = None + _globals['_CREATENVMESUBSYSTEMREQUEST'].fields_by_name['nvme_subsystem_id']._serialized_options = b'\342A\001\001' + _globals['_DELETENVMESUBSYSTEMREQUEST'].fields_by_name['name']._options = None + _globals['_DELETENVMESUBSYSTEMREQUEST'].fields_by_name['name']._serialized_options = b'\342A\001\002\372A\"\n opi_api.storage.v1/NvmeSubsystem' + _globals['_DELETENVMESUBSYSTEMREQUEST'].fields_by_name['allow_missing']._options = None + _globals['_DELETENVMESUBSYSTEMREQUEST'].fields_by_name['allow_missing']._serialized_options = b'\342A\001\001' + _globals['_UPDATENVMESUBSYSTEMREQUEST'].fields_by_name['nvme_subsystem']._options = None + _globals['_UPDATENVMESUBSYSTEMREQUEST'].fields_by_name['nvme_subsystem']._serialized_options = b'\342A\001\002' + _globals['_UPDATENVMESUBSYSTEMREQUEST'].fields_by_name['update_mask']._options = None + _globals['_UPDATENVMESUBSYSTEMREQUEST'].fields_by_name['update_mask']._serialized_options = b'\342A\001\001' + _globals['_UPDATENVMESUBSYSTEMREQUEST'].fields_by_name['allow_missing']._options = None + _globals['_UPDATENVMESUBSYSTEMREQUEST'].fields_by_name['allow_missing']._serialized_options = b'\342A\001\001' + _globals['_LISTNVMESUBSYSTEMSREQUEST'].fields_by_name['page_size']._options = None + _globals['_LISTNVMESUBSYSTEMSREQUEST'].fields_by_name['page_size']._serialized_options = b'\342A\001\001' + _globals['_LISTNVMESUBSYSTEMSREQUEST'].fields_by_name['page_token']._options = None + _globals['_LISTNVMESUBSYSTEMSREQUEST'].fields_by_name['page_token']._serialized_options = b'\342A\001\001' + _globals['_GETNVMESUBSYSTEMREQUEST'].fields_by_name['name']._options = None + _globals['_GETNVMESUBSYSTEMREQUEST'].fields_by_name['name']._serialized_options = b'\342A\001\002\372A\"\n opi_api.storage.v1/NvmeSubsystem' + _globals['_STATSNVMESUBSYSTEMREQUEST'].fields_by_name['name']._options = None + _globals['_STATSNVMESUBSYSTEMREQUEST'].fields_by_name['name']._serialized_options = b'\342A\001\002\372A\"\n opi_api.storage.v1/NvmeSubsystem' + _globals['_CREATENVMECONTROLLERREQUEST'].fields_by_name['parent']._options = None + _globals['_CREATENVMECONTROLLERREQUEST'].fields_by_name['parent']._serialized_options = b'\342A\001\002\372A\"\n opi_api.storage.v1/NvmeSubsystem' + _globals['_CREATENVMECONTROLLERREQUEST'].fields_by_name['nvme_controller']._options = None + _globals['_CREATENVMECONTROLLERREQUEST'].fields_by_name['nvme_controller']._serialized_options = b'\342A\001\002' + _globals['_CREATENVMECONTROLLERREQUEST'].fields_by_name['nvme_controller_id']._options = None + _globals['_CREATENVMECONTROLLERREQUEST'].fields_by_name['nvme_controller_id']._serialized_options = b'\342A\001\001' + _globals['_DELETENVMECONTROLLERREQUEST'].fields_by_name['name']._options = None + _globals['_DELETENVMECONTROLLERREQUEST'].fields_by_name['name']._serialized_options = b'\342A\001\002\372A#\n!opi_api.storage.v1/NvmeController' + _globals['_DELETENVMECONTROLLERREQUEST'].fields_by_name['allow_missing']._options = None + _globals['_DELETENVMECONTROLLERREQUEST'].fields_by_name['allow_missing']._serialized_options = b'\342A\001\001' + _globals['_UPDATENVMECONTROLLERREQUEST'].fields_by_name['nvme_controller']._options = None + _globals['_UPDATENVMECONTROLLERREQUEST'].fields_by_name['nvme_controller']._serialized_options = b'\342A\001\002' + _globals['_UPDATENVMECONTROLLERREQUEST'].fields_by_name['update_mask']._options = None + _globals['_UPDATENVMECONTROLLERREQUEST'].fields_by_name['update_mask']._serialized_options = b'\342A\001\001' + _globals['_UPDATENVMECONTROLLERREQUEST'].fields_by_name['allow_missing']._options = None + _globals['_UPDATENVMECONTROLLERREQUEST'].fields_by_name['allow_missing']._serialized_options = b'\342A\001\001' + _globals['_LISTNVMECONTROLLERSREQUEST'].fields_by_name['parent']._options = None + _globals['_LISTNVMECONTROLLERSREQUEST'].fields_by_name['parent']._serialized_options = b'\342A\001\002\372A#\022!opi_api.storage.v1/NvmeController' + _globals['_LISTNVMECONTROLLERSREQUEST'].fields_by_name['page_size']._options = None + _globals['_LISTNVMECONTROLLERSREQUEST'].fields_by_name['page_size']._serialized_options = b'\342A\001\001' + _globals['_LISTNVMECONTROLLERSREQUEST'].fields_by_name['page_token']._options = None + _globals['_LISTNVMECONTROLLERSREQUEST'].fields_by_name['page_token']._serialized_options = b'\342A\001\001' + _globals['_GETNVMECONTROLLERREQUEST'].fields_by_name['name']._options = None + _globals['_GETNVMECONTROLLERREQUEST'].fields_by_name['name']._serialized_options = b'\342A\001\002\372A#\n!opi_api.storage.v1/NvmeController' + _globals['_STATSNVMECONTROLLERREQUEST'].fields_by_name['name']._options = None + _globals['_STATSNVMECONTROLLERREQUEST'].fields_by_name['name']._serialized_options = b'\342A\001\002\372A#\n!opi_api.storage.v1/NvmeController' + _globals['_CREATENVMENAMESPACEREQUEST'].fields_by_name['parent']._options = None + _globals['_CREATENVMENAMESPACEREQUEST'].fields_by_name['parent']._serialized_options = b'\342A\001\002\372A\"\n opi_api.storage.v1/NvmeSubsystem' + _globals['_CREATENVMENAMESPACEREQUEST'].fields_by_name['nvme_namespace']._options = None + _globals['_CREATENVMENAMESPACEREQUEST'].fields_by_name['nvme_namespace']._serialized_options = b'\342A\001\002' + _globals['_CREATENVMENAMESPACEREQUEST'].fields_by_name['nvme_namespace_id']._options = None + _globals['_CREATENVMENAMESPACEREQUEST'].fields_by_name['nvme_namespace_id']._serialized_options = b'\342A\001\001' + _globals['_DELETENVMENAMESPACEREQUEST'].fields_by_name['name']._options = None + _globals['_DELETENVMENAMESPACEREQUEST'].fields_by_name['name']._serialized_options = b'\342A\001\002\372A\"\n opi_api.storage.v1/NvmeNamespace' + _globals['_DELETENVMENAMESPACEREQUEST'].fields_by_name['allow_missing']._options = None + _globals['_DELETENVMENAMESPACEREQUEST'].fields_by_name['allow_missing']._serialized_options = b'\342A\001\001' + _globals['_UPDATENVMENAMESPACEREQUEST'].fields_by_name['nvme_namespace']._options = None + _globals['_UPDATENVMENAMESPACEREQUEST'].fields_by_name['nvme_namespace']._serialized_options = b'\342A\001\002' + _globals['_UPDATENVMENAMESPACEREQUEST'].fields_by_name['update_mask']._options = None + _globals['_UPDATENVMENAMESPACEREQUEST'].fields_by_name['update_mask']._serialized_options = b'\342A\001\001' + _globals['_UPDATENVMENAMESPACEREQUEST'].fields_by_name['allow_missing']._options = None + _globals['_UPDATENVMENAMESPACEREQUEST'].fields_by_name['allow_missing']._serialized_options = b'\342A\001\001' + _globals['_LISTNVMENAMESPACESREQUEST'].fields_by_name['parent']._options = None + _globals['_LISTNVMENAMESPACESREQUEST'].fields_by_name['parent']._serialized_options = b'\342A\001\002\372A\"\022 opi_api.storage.v1/NvmeNamespace' + _globals['_LISTNVMENAMESPACESREQUEST'].fields_by_name['page_size']._options = None + _globals['_LISTNVMENAMESPACESREQUEST'].fields_by_name['page_size']._serialized_options = b'\342A\001\001' + _globals['_LISTNVMENAMESPACESREQUEST'].fields_by_name['page_token']._options = None + _globals['_LISTNVMENAMESPACESREQUEST'].fields_by_name['page_token']._serialized_options = b'\342A\001\001' + _globals['_GETNVMENAMESPACEREQUEST'].fields_by_name['name']._options = None + _globals['_GETNVMENAMESPACEREQUEST'].fields_by_name['name']._serialized_options = b'\342A\001\002\372A\"\n opi_api.storage.v1/NvmeNamespace' + _globals['_STATSNVMENAMESPACEREQUEST'].fields_by_name['name']._options = None + _globals['_STATSNVMENAMESPACEREQUEST'].fields_by_name['name']._serialized_options = b'\342A\001\002\372A\"\n opi_api.storage.v1/NvmeNamespace' + _globals['_FRONTENDNVMESERVICE'].methods_by_name['CreateNvmeSubsystem']._options = None + _globals['_FRONTENDNVMESERVICE'].methods_by_name['CreateNvmeSubsystem']._serialized_options = b'\332A nvme_subsystem,nvme_subsystem_id\202\323\344\223\002$\"\022/v1/nvmeSubsystems:\016nvme_subsystem' + _globals['_FRONTENDNVMESERVICE'].methods_by_name['DeleteNvmeSubsystem']._options = None + _globals['_FRONTENDNVMESERVICE'].methods_by_name['DeleteNvmeSubsystem']._serialized_options = b'\332A\004name\202\323\344\223\002\035*\033/v1/{name=nvmeSubsystems/*}' + _globals['_FRONTENDNVMESERVICE'].methods_by_name['UpdateNvmeSubsystem']._options = None + _globals['_FRONTENDNVMESERVICE'].methods_by_name['UpdateNvmeSubsystem']._serialized_options = b'\332A\032nvme_subsystem,update_mask\202\323\344\223\002<2*/v1/{nvme_subsystem.name=nvmeSubsystems/*}:\016nvme_subsystem' + _globals['_FRONTENDNVMESERVICE'].methods_by_name['ListNvmeSubsystems']._options = None + _globals['_FRONTENDNVMESERVICE'].methods_by_name['ListNvmeSubsystems']._serialized_options = b'\202\323\344\223\002\024\022\022/v1/nvmeSubsystems' + _globals['_FRONTENDNVMESERVICE'].methods_by_name['GetNvmeSubsystem']._options = None + _globals['_FRONTENDNVMESERVICE'].methods_by_name['GetNvmeSubsystem']._serialized_options = b'\332A\004name\202\323\344\223\002\035\022\033/v1/{name=nvmeSubsystems/*}' + _globals['_FRONTENDNVMESERVICE'].methods_by_name['StatsNvmeSubsystem']._options = None + _globals['_FRONTENDNVMESERVICE'].methods_by_name['StatsNvmeSubsystem']._serialized_options = b'\332A\004name\202\323\344\223\002#\022!/v1/{name=nvmeSubsystems/*}:stats' + _globals['_FRONTENDNVMESERVICE'].methods_by_name['CreateNvmeController']._options = None + _globals['_FRONTENDNVMESERVICE'].methods_by_name['CreateNvmeController']._serialized_options = b'\332A)parent,nvme_controller,nvme_controller_id\202\323\344\223\002@\"-/v1/{parent=nvmeSubsystems/*}/nvmeControllers:\017nvme_controller' + _globals['_FRONTENDNVMESERVICE'].methods_by_name['DeleteNvmeController']._options = None + _globals['_FRONTENDNVMESERVICE'].methods_by_name['DeleteNvmeController']._serialized_options = b'\332A\004name\202\323\344\223\002/*-/v1/{name=nvmeSubsystems/*/nvmeControllers/*}' + _globals['_FRONTENDNVMESERVICE'].methods_by_name['UpdateNvmeController']._options = None + _globals['_FRONTENDNVMESERVICE'].methods_by_name['UpdateNvmeController']._serialized_options = b'\332A\033nvme_controller,update_mask\202\323\344\223\002P2=/v1/{nvme_controller.name=nvmeSubsystems/*/nvmeControllers/*}:\017nvme_controller' + _globals['_FRONTENDNVMESERVICE'].methods_by_name['ListNvmeControllers']._options = None + _globals['_FRONTENDNVMESERVICE'].methods_by_name['ListNvmeControllers']._serialized_options = b'\332A\006parent\202\323\344\223\002/\022-/v1/{parent=nvmeSubsystems/*}/nvmeControllers' + _globals['_FRONTENDNVMESERVICE'].methods_by_name['GetNvmeController']._options = None + _globals['_FRONTENDNVMESERVICE'].methods_by_name['GetNvmeController']._serialized_options = b'\332A\004name\202\323\344\223\002/\022-/v1/{name=nvmeSubsystems/*/nvmeControllers/*}' + _globals['_FRONTENDNVMESERVICE'].methods_by_name['StatsNvmeController']._options = None + _globals['_FRONTENDNVMESERVICE'].methods_by_name['StatsNvmeController']._serialized_options = b'\332A\004name\202\323\344\223\0025\0223/v1/{name=nvmeSubsystems/*/nvmeControllers/*}:stats' + _globals['_FRONTENDNVMESERVICE'].methods_by_name['CreateNvmeNamespace']._options = None + _globals['_FRONTENDNVMESERVICE'].methods_by_name['CreateNvmeNamespace']._serialized_options = b'\332A\'parent,nvme_namespace,nvme_namespace_id\202\323\344\223\002>\",/v1/{parent=nvmeSubsystems/*}/nvmeNamespaces:\016nvme_namespace' + _globals['_FRONTENDNVMESERVICE'].methods_by_name['DeleteNvmeNamespace']._options = None + _globals['_FRONTENDNVMESERVICE'].methods_by_name['DeleteNvmeNamespace']._serialized_options = b'\332A\004name\202\323\344\223\002.*,/v1/{name=nvmeSubsystems/*/nvmeNamespaces/*}' + _globals['_FRONTENDNVMESERVICE'].methods_by_name['UpdateNvmeNamespace']._options = None + _globals['_FRONTENDNVMESERVICE'].methods_by_name['UpdateNvmeNamespace']._serialized_options = b'\332A\032nvme_namespace,update_mask\202\323\344\223\002M2;/v1/{nvme_namespace.name=nvmeSubsystems/*/nvmeNamespaces/*}:\016nvme_namespace' + _globals['_FRONTENDNVMESERVICE'].methods_by_name['ListNvmeNamespaces']._options = None + _globals['_FRONTENDNVMESERVICE'].methods_by_name['ListNvmeNamespaces']._serialized_options = b'\332A\006parent\202\323\344\223\002.\022,/v1/{parent=nvmeSubsystems/*}/nvmeNamespaces' + _globals['_FRONTENDNVMESERVICE'].methods_by_name['GetNvmeNamespace']._options = None + _globals['_FRONTENDNVMESERVICE'].methods_by_name['GetNvmeNamespace']._serialized_options = b'\332A\004name\202\323\344\223\002.\022,/v1/{name=nvmeSubsystems/*/nvmeNamespaces/*}' + _globals['_FRONTENDNVMESERVICE'].methods_by_name['StatsNvmeNamespace']._options = None + _globals['_FRONTENDNVMESERVICE'].methods_by_name['StatsNvmeNamespace']._serialized_options = b'\332A\004name\202\323\344\223\0024\0222/v1/{name=nvmeSubsystems/*/nvmeNamespaces/*}:stats' + _globals['_NVMESUBSYSTEM']._serialized_start=239 + _globals['_NVMESUBSYSTEM']._serialized_end=514 + _globals['_NVMESUBSYSTEMSPEC']._serialized_start=517 + _globals['_NVMESUBSYSTEMSPEC']._serialized_end=745 + _globals['_NVMESUBSYSTEMSTATUS']._serialized_start=747 + _globals['_NVMESUBSYSTEMSTATUS']._serialized_end=852 + _globals['_NVMECONTROLLER']._serialized_start=855 + _globals['_NVMECONTROLLER']._serialized_end=1166 + _globals['_NVMECONTROLLERSPEC']._serialized_start=1169 + _globals['_NVMECONTROLLERSPEC']._serialized_end=1781 + _globals['_NVMECONTROLLERSTATUS']._serialized_start=1783 + _globals['_NVMECONTROLLERSTATUS']._serialized_end=1835 + _globals['_NVMENAMESPACE']._serialized_start=1838 + _globals['_NVMENAMESPACE']._serialized_end=2140 + _globals['_NVMENAMESPACESPEC']._serialized_start=2143 + _globals['_NVMENAMESPACESPEC']._serialized_end=2325 + _globals['_NVMENAMESPACESTATUS']._serialized_start=2328 + _globals['_NVMENAMESPACESTATUS']._serialized_end=2691 + _globals['_NVMENAMESPACESTATUS_STATE']._serialized_start=2514 + _globals['_NVMENAMESPACESTATUS_STATE']._serialized_end=2603 + _globals['_NVMENAMESPACESTATUS_OPERSTATE']._serialized_start=2605 + _globals['_NVMENAMESPACESTATUS_OPERSTATE']._serialized_end=2691 + _globals['_CREATENVMESUBSYSTEMREQUEST']._serialized_start=2694 + _globals['_CREATENVMESUBSYSTEMREQUEST']._serialized_end=2852 + _globals['_DELETENVMESUBSYSTEMREQUEST']._serialized_start=2855 + _globals['_DELETENVMESUBSYSTEMREQUEST']._serialized_end=2989 + _globals['_UPDATENVMESUBSYSTEMREQUEST']._serialized_start=2992 + _globals['_UPDATENVMESUBSYSTEMREQUEST']._serialized_end=3210 + _globals['_LISTNVMESUBSYSTEMSREQUEST']._serialized_start=3212 + _globals['_LISTNVMESUBSYSTEMSREQUEST']._serialized_end=3311 + _globals['_LISTNVMESUBSYSTEMSRESPONSE']._serialized_start=3314 + _globals['_LISTNVMESUBSYSTEMSRESPONSE']._serialized_end=3458 + _globals['_GETNVMESUBSYSTEMREQUEST']._serialized_start=3460 + _globals['_GETNVMESUBSYSTEMREQUEST']._serialized_end=3548 + _globals['_STATSNVMESUBSYSTEMREQUEST']._serialized_start=3550 + _globals['_STATSNVMESUBSYSTEMREQUEST']._serialized_end=3640 + _globals['_STATSNVMESUBSYSTEMRESPONSE']._serialized_start=3642 + _globals['_STATSNVMESUBSYSTEMRESPONSE']._serialized_end=3725 + _globals['_CREATENVMECONTROLLERREQUEST']._serialized_start=3728 + _globals['_CREATENVMECONTROLLERREQUEST']._serialized_end=3959 + _globals['_DELETENVMECONTROLLERREQUEST']._serialized_start=3962 + _globals['_DELETENVMECONTROLLERREQUEST']._serialized_end=4098 + _globals['_UPDATENVMECONTROLLERREQUEST']._serialized_start=4101 + _globals['_UPDATENVMECONTROLLERREQUEST']._serialized_end=4323 + _globals['_LISTNVMECONTROLLERSREQUEST']._serialized_start=4326 + _globals['_LISTNVMECONTROLLERSREQUEST']._serialized_end=4494 + _globals['_LISTNVMECONTROLLERSRESPONSE']._serialized_start=4497 + _globals['_LISTNVMECONTROLLERSRESPONSE']._serialized_end=4645 + _globals['_GETNVMECONTROLLERREQUEST']._serialized_start=4647 + _globals['_GETNVMECONTROLLERREQUEST']._serialized_end=4737 + _globals['_STATSNVMECONTROLLERREQUEST']._serialized_start=4739 + _globals['_STATSNVMECONTROLLERREQUEST']._serialized_end=4831 + _globals['_STATSNVMECONTROLLERRESPONSE']._serialized_start=4833 + _globals['_STATSNVMECONTROLLERRESPONSE']._serialized_end=4917 + _globals['_CREATENVMENAMESPACEREQUEST']._serialized_start=4920 + _globals['_CREATENVMENAMESPACEREQUEST']._serialized_end=5145 + _globals['_DELETENVMENAMESPACEREQUEST']._serialized_start=5148 + _globals['_DELETENVMENAMESPACEREQUEST']._serialized_end=5282 + _globals['_UPDATENVMENAMESPACEREQUEST']._serialized_start=5285 + _globals['_UPDATENVMENAMESPACEREQUEST']._serialized_end=5503 + _globals['_LISTNVMENAMESPACESREQUEST']._serialized_start=5506 + _globals['_LISTNVMENAMESPACESREQUEST']._serialized_end=5672 + _globals['_LISTNVMENAMESPACESRESPONSE']._serialized_start=5675 + _globals['_LISTNVMENAMESPACESRESPONSE']._serialized_end=5819 + _globals['_GETNVMENAMESPACEREQUEST']._serialized_start=5821 + _globals['_GETNVMENAMESPACEREQUEST']._serialized_end=5909 + _globals['_STATSNVMENAMESPACEREQUEST']._serialized_start=5911 + _globals['_STATSNVMENAMESPACEREQUEST']._serialized_end=6001 + _globals['_STATSNVMENAMESPACERESPONSE']._serialized_start=6003 + _globals['_STATSNVMENAMESPACERESPONSE']._serialized_end=6086 + _globals['_FRONTENDNVMESERVICE']._serialized_start=6089 + _globals['_FRONTENDNVMESERVICE']._serialized_end=9378 # @@protoc_insertion_point(module_scope) diff --git a/storage/v1alpha1/gen/python/frontend_virtio_blk_pb2.py b/storage/v1alpha1/gen/python/frontend_virtio_blk_pb2.py index a67b2531..8c9d6d86 100644 --- a/storage/v1alpha1/gen/python/frontend_virtio_blk_pb2.py +++ b/storage/v1alpha1/gen/python/frontend_virtio_blk_pb2.py @@ -1,11 +1,12 @@ # -*- coding: utf-8 -*- # Generated by the protocol buffer compiler. DO NOT EDIT! # source: frontend_virtio_blk.proto +# Protobuf Python Version: 4.25.2 """Generated protocol buffer code.""" -from google.protobuf.internal import builder as _builder from google.protobuf import descriptor as _descriptor from google.protobuf import descriptor_pool as _descriptor_pool from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder # @@protoc_insertion_point(imports) _sym_db = _symbol_database.Default() @@ -20,82 +21,80 @@ from google.protobuf import field_mask_pb2 as google_dot_protobuf_dot_field__mask__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x19\x66rontend_virtio_blk.proto\x12\x12opi_api.storage.v1\x1a\x0fopicommon.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\"\xc7\x02\n\tVirtioBlk\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x08\x12\x35\n\x07pcie_id\x18\x02 \x01(\x0b\x32\x1f.opi_api.storage.v1.PciEndpointB\x03\xe0\x41\x02\x12\x1c\n\x0fvolume_name_ref\x18\x03 \x01(\tB\x03\xe0\x41\x02\x12\x17\n\nmax_io_qps\x18\x04 \x01(\x03\x42\x03\xe0\x41\x01\x12\x34\n\tmin_limit\x18\x05 \x01(\x0b\x32\x1c.opi_api.storage.v1.QosLimitB\x03\xe0\x41\x01\x12\x34\n\tmax_limit\x18\x06 \x01(\x0b\x32\x1c.opi_api.storage.v1.QosLimitB\x03\xe0\x41\x01:M\xea\x41J\n\x1copi_api.storage.v1/VirtioBlk\x12\x13virtioBlks/{volume}*\nvirtioBlks2\tvirtioBlk\"l\n\x16\x43reateVirtioBlkRequest\x12\x36\n\nvirtio_blk\x18\x01 \x01(\x0b\x32\x1d.opi_api.storage.v1.VirtioBlkB\x03\xe0\x41\x02\x12\x1a\n\rvirtio_blk_id\x18\x02 \x01(\tB\x03\xe0\x41\x01\"h\n\x16\x44\x65leteVirtioBlkRequest\x12\x32\n\x04name\x18\x01 \x01(\tB$\xe0\x41\x02\xfa\x41\x1e\n\x1copi_api.storage.v1/VirtioBlk\x12\x1a\n\rallow_missing\x18\x02 \x01(\x08\x42\x03\xe0\x41\x01\"\xa2\x01\n\x16UpdateVirtioBlkRequest\x12\x36\n\nvirtio_blk\x18\x01 \x01(\x0b\x32\x1d.opi_api.storage.v1.VirtioBlkB\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\x15ListVirtioBlksRequest\x12\x34\n\x06parent\x18\x01 \x01(\tB$\xe0\x41\x02\xfa\x41\x1e\x12\x1copi_api.storage.v1/VirtioBlk\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\"e\n\x16ListVirtioBlksResponse\x12\x32\n\x0bvirtio_blks\x18\x01 \x03(\x0b\x32\x1d.opi_api.storage.v1.VirtioBlk\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"I\n\x13GetVirtioBlkRequest\x12\x32\n\x04name\x18\x01 \x01(\tB$\xe0\x41\x02\xfa\x41\x1e\n\x1copi_api.storage.v1/VirtioBlk\"K\n\x15StatsVirtioBlkRequest\x12\x32\n\x04name\x18\x01 \x01(\tB$\xe0\x41\x02\xfa\x41\x1e\n\x1copi_api.storage.v1/VirtioBlk\"H\n\x16StatsVirtioBlkResponse\x12.\n\x05stats\x18\x01 \x01(\x0b\x32\x1f.opi_api.storage.v1.VolumeStats2\x93\x07\n\x18\x46rontendVirtioBlkService\x12\x9b\x01\n\x0f\x43reateVirtioBlk\x12*.opi_api.storage.v1.CreateVirtioBlkRequest\x1a\x1d.opi_api.storage.v1.VirtioBlk\"=\x82\xd3\xe4\x93\x02\x1c\"\x0e/v1/virtioBlks:\nvirtio_blk\xda\x41\x18virtio_blk,virtio_blk_id\x12}\n\x0f\x44\x65leteVirtioBlk\x12*.opi_api.storage.v1.DeleteVirtioBlkRequest\x1a\x16.google.protobuf.Empty\"&\x82\xd3\xe4\x93\x02\x19*\x17/v1/{name=virtioBlks/*}\xda\x41\x04name\x12\xad\x01\n\x0fUpdateVirtioBlk\x12*.opi_api.storage.v1.UpdateVirtioBlkRequest\x1a\x1d.opi_api.storage.v1.VirtioBlk\"O\x82\xd3\xe4\x93\x02\x30\x32\"/v1/{virtio_blk.name=virtioBlks/*}:\nvirtio_blk\xda\x41\x16virtio_blk,update_mask\x12\x91\x01\n\x0eListVirtioBlks\x12).opi_api.storage.v1.ListVirtioBlksRequest\x1a*.opi_api.storage.v1.ListVirtioBlksResponse\"(\x82\xd3\xe4\x93\x02\x19\x12\x17/v1/{parent=subsystems}\xda\x41\x06parent\x12~\n\x0cGetVirtioBlk\x12\'.opi_api.storage.v1.GetVirtioBlkRequest\x1a\x1d.opi_api.storage.v1.VirtioBlk\"&\x82\xd3\xe4\x93\x02\x19\x12\x17/v1/{name=virtioBlks/*}\xda\x41\x04name\x12\x95\x01\n\x0eStatsVirtioBlk\x12).opi_api.storage.v1.StatsVirtioBlkRequest\x1a*.opi_api.storage.v1.StatsVirtioBlkResponse\",\x82\xd3\xe4\x93\x02\x1f\x12\x1d/v1/{name=virtioBlks/*}:stats\xda\x41\x04nameBe\n\x12opi_api.storage.v1B\x16\x46rontendVirtioBlkProtoP\x01Z5github.com/opiproject/opi-api/storage/v1alpha1/gen/gob\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x19\x66rontend_virtio_blk.proto\x12\x12opi_api.storage.v1\x1a\x0fopicommon.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\"\x88\x03\n\tVirtioBlk\x12\x18\n\x04name\x18\x01 \x01(\tB\x04\xe2\x41\x01\x08R\x04name\x12>\n\x07pcie_id\x18\x02 \x01(\x0b\x32\x1f.opi_api.storage.v1.PciEndpointB\x04\xe2\x41\x01\x02R\x06pcieId\x12,\n\x0fvolume_name_ref\x18\x03 \x01(\tB\x04\xe2\x41\x01\x02R\rvolumeNameRef\x12\"\n\nmax_io_qps\x18\x04 \x01(\x03\x42\x04\xe2\x41\x01\x01R\x08maxIoQps\x12?\n\tmin_limit\x18\x05 \x01(\x0b\x32\x1c.opi_api.storage.v1.QosLimitB\x04\xe2\x41\x01\x01R\x08minLimit\x12?\n\tmax_limit\x18\x06 \x01(\x0b\x32\x1c.opi_api.storage.v1.QosLimitB\x04\xe2\x41\x01\x01R\x08maxLimit:M\xea\x41J\n\x1copi_api.storage.v1/VirtioBlk\x12\x13virtioBlks/{volume}*\nvirtioBlks2\tvirtioBlk\"\x86\x01\n\x16\x43reateVirtioBlkRequest\x12\x42\n\nvirtio_blk\x18\x01 \x01(\x0b\x32\x1d.opi_api.storage.v1.VirtioBlkB\x04\xe2\x41\x01\x02R\tvirtioBlk\x12(\n\rvirtio_blk_id\x18\x02 \x01(\tB\x04\xe2\x41\x01\x01R\x0bvirtioBlkId\"~\n\x16\x44\x65leteVirtioBlkRequest\x12\x39\n\x04name\x18\x01 \x01(\tB%\xe2\x41\x01\x02\xfa\x41\x1e\n\x1copi_api.storage.v1/VirtioBlkR\x04name\x12)\n\rallow_missing\x18\x02 \x01(\x08\x42\x04\xe2\x41\x01\x01R\x0c\x61llowMissing\"\xca\x01\n\x16UpdateVirtioBlkRequest\x12\x42\n\nvirtio_blk\x18\x01 \x01(\x0b\x32\x1d.opi_api.storage.v1.VirtioBlkB\x04\xe2\x41\x01\x02R\tvirtioBlk\x12\x41\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x04\xe2\x41\x01\x01R\nupdateMask\x12)\n\rallow_missing\x18\x03 \x01(\x08\x42\x04\xe2\x41\x01\x01R\x0c\x61llowMissing\"_\n\x15ListVirtioBlksRequest\x12!\n\tpage_size\x18\x01 \x01(\x05\x42\x04\xe2\x41\x01\x01R\x08pageSize\x12#\n\npage_token\x18\x02 \x01(\tB\x04\xe2\x41\x01\x01R\tpageToken\"\x80\x01\n\x16ListVirtioBlksResponse\x12>\n\x0bvirtio_blks\x18\x01 \x03(\x0b\x32\x1d.opi_api.storage.v1.VirtioBlkR\nvirtioBlks\x12&\n\x0fnext_page_token\x18\x02 \x01(\tR\rnextPageToken\"P\n\x13GetVirtioBlkRequest\x12\x39\n\x04name\x18\x01 \x01(\tB%\xe2\x41\x01\x02\xfa\x41\x1e\n\x1copi_api.storage.v1/VirtioBlkR\x04name\"R\n\x15StatsVirtioBlkRequest\x12\x39\n\x04name\x18\x01 \x01(\tB%\xe2\x41\x01\x02\xfa\x41\x1e\n\x1copi_api.storage.v1/VirtioBlkR\x04name\"O\n\x16StatsVirtioBlkResponse\x12\x35\n\x05stats\x18\x01 \x01(\x0b\x32\x1f.opi_api.storage.v1.VolumeStatsR\x05stats2\x80\x07\n\x18\x46rontendVirtioBlkService\x12\x9b\x01\n\x0f\x43reateVirtioBlk\x12*.opi_api.storage.v1.CreateVirtioBlkRequest\x1a\x1d.opi_api.storage.v1.VirtioBlk\"=\xda\x41\x18virtio_blk,virtio_blk_id\x82\xd3\xe4\x93\x02\x1c\"\x0e/v1/virtioBlks:\nvirtio_blk\x12}\n\x0f\x44\x65leteVirtioBlk\x12*.opi_api.storage.v1.DeleteVirtioBlkRequest\x1a\x16.google.protobuf.Empty\"&\xda\x41\x04name\x82\xd3\xe4\x93\x02\x19*\x17/v1/{name=virtioBlks/*}\x12\xad\x01\n\x0fUpdateVirtioBlk\x12*.opi_api.storage.v1.UpdateVirtioBlkRequest\x1a\x1d.opi_api.storage.v1.VirtioBlk\"O\xda\x41\x16virtio_blk,update_mask\x82\xd3\xe4\x93\x02\x30\x32\"/v1/{virtio_blk.name=virtioBlks/*}:\nvirtio_blk\x12\x7f\n\x0eListVirtioBlks\x12).opi_api.storage.v1.ListVirtioBlksRequest\x1a*.opi_api.storage.v1.ListVirtioBlksResponse\"\x16\x82\xd3\xe4\x93\x02\x10\x12\x0e/v1/virtioBlks\x12~\n\x0cGetVirtioBlk\x12\'.opi_api.storage.v1.GetVirtioBlkRequest\x1a\x1d.opi_api.storage.v1.VirtioBlk\"&\xda\x41\x04name\x82\xd3\xe4\x93\x02\x19\x12\x17/v1/{name=virtioBlks/*}\x12\x95\x01\n\x0eStatsVirtioBlk\x12).opi_api.storage.v1.StatsVirtioBlkRequest\x1a*.opi_api.storage.v1.StatsVirtioBlkResponse\",\xda\x41\x04name\x82\xd3\xe4\x93\x02\x1f\x12\x1d/v1/{name=virtioBlks/*}:statsBe\n\x12opi_api.storage.v1B\x16\x46rontendVirtioBlkProtoP\x01Z5github.com/opiproject/opi-api/storage/v1alpha1/gen/gob\x06proto3') -_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals()) -_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'frontend_virtio_blk_pb2', globals()) +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'frontend_virtio_blk_pb2', _globals) if _descriptor._USE_C_DESCRIPTORS == False: - - DESCRIPTOR._options = None - DESCRIPTOR._serialized_options = b'\n\022opi_api.storage.v1B\026FrontendVirtioBlkProtoP\001Z5github.com/opiproject/opi-api/storage/v1alpha1/gen/go' - _VIRTIOBLK.fields_by_name['name']._options = None - _VIRTIOBLK.fields_by_name['name']._serialized_options = b'\340A\010' - _VIRTIOBLK.fields_by_name['pcie_id']._options = None - _VIRTIOBLK.fields_by_name['pcie_id']._serialized_options = b'\340A\002' - _VIRTIOBLK.fields_by_name['volume_name_ref']._options = None - _VIRTIOBLK.fields_by_name['volume_name_ref']._serialized_options = b'\340A\002' - _VIRTIOBLK.fields_by_name['max_io_qps']._options = None - _VIRTIOBLK.fields_by_name['max_io_qps']._serialized_options = b'\340A\001' - _VIRTIOBLK.fields_by_name['min_limit']._options = None - _VIRTIOBLK.fields_by_name['min_limit']._serialized_options = b'\340A\001' - _VIRTIOBLK.fields_by_name['max_limit']._options = None - _VIRTIOBLK.fields_by_name['max_limit']._serialized_options = b'\340A\001' - _VIRTIOBLK._options = None - _VIRTIOBLK._serialized_options = b'\352AJ\n\034opi_api.storage.v1/VirtioBlk\022\023virtioBlks/{volume}*\nvirtioBlks2\tvirtioBlk' - _CREATEVIRTIOBLKREQUEST.fields_by_name['virtio_blk']._options = None - _CREATEVIRTIOBLKREQUEST.fields_by_name['virtio_blk']._serialized_options = b'\340A\002' - _CREATEVIRTIOBLKREQUEST.fields_by_name['virtio_blk_id']._options = None - _CREATEVIRTIOBLKREQUEST.fields_by_name['virtio_blk_id']._serialized_options = b'\340A\001' - _DELETEVIRTIOBLKREQUEST.fields_by_name['name']._options = None - _DELETEVIRTIOBLKREQUEST.fields_by_name['name']._serialized_options = b'\340A\002\372A\036\n\034opi_api.storage.v1/VirtioBlk' - _DELETEVIRTIOBLKREQUEST.fields_by_name['allow_missing']._options = None - _DELETEVIRTIOBLKREQUEST.fields_by_name['allow_missing']._serialized_options = b'\340A\001' - _UPDATEVIRTIOBLKREQUEST.fields_by_name['virtio_blk']._options = None - _UPDATEVIRTIOBLKREQUEST.fields_by_name['virtio_blk']._serialized_options = b'\340A\002' - _UPDATEVIRTIOBLKREQUEST.fields_by_name['update_mask']._options = None - _UPDATEVIRTIOBLKREQUEST.fields_by_name['update_mask']._serialized_options = b'\340A\001' - _UPDATEVIRTIOBLKREQUEST.fields_by_name['allow_missing']._options = None - _UPDATEVIRTIOBLKREQUEST.fields_by_name['allow_missing']._serialized_options = b'\340A\001' - _LISTVIRTIOBLKSREQUEST.fields_by_name['parent']._options = None - _LISTVIRTIOBLKSREQUEST.fields_by_name['parent']._serialized_options = b'\340A\002\372A\036\022\034opi_api.storage.v1/VirtioBlk' - _LISTVIRTIOBLKSREQUEST.fields_by_name['page_size']._options = None - _LISTVIRTIOBLKSREQUEST.fields_by_name['page_size']._serialized_options = b'\340A\001' - _LISTVIRTIOBLKSREQUEST.fields_by_name['page_token']._options = None - _LISTVIRTIOBLKSREQUEST.fields_by_name['page_token']._serialized_options = b'\340A\001' - _GETVIRTIOBLKREQUEST.fields_by_name['name']._options = None - _GETVIRTIOBLKREQUEST.fields_by_name['name']._serialized_options = b'\340A\002\372A\036\n\034opi_api.storage.v1/VirtioBlk' - _STATSVIRTIOBLKREQUEST.fields_by_name['name']._options = None - _STATSVIRTIOBLKREQUEST.fields_by_name['name']._serialized_options = b'\340A\002\372A\036\n\034opi_api.storage.v1/VirtioBlk' - _FRONTENDVIRTIOBLKSERVICE.methods_by_name['CreateVirtioBlk']._options = None - _FRONTENDVIRTIOBLKSERVICE.methods_by_name['CreateVirtioBlk']._serialized_options = b'\202\323\344\223\002\034\"\016/v1/virtioBlks:\nvirtio_blk\332A\030virtio_blk,virtio_blk_id' - _FRONTENDVIRTIOBLKSERVICE.methods_by_name['DeleteVirtioBlk']._options = None - _FRONTENDVIRTIOBLKSERVICE.methods_by_name['DeleteVirtioBlk']._serialized_options = b'\202\323\344\223\002\031*\027/v1/{name=virtioBlks/*}\332A\004name' - _FRONTENDVIRTIOBLKSERVICE.methods_by_name['UpdateVirtioBlk']._options = None - _FRONTENDVIRTIOBLKSERVICE.methods_by_name['UpdateVirtioBlk']._serialized_options = b'\202\323\344\223\00202\"/v1/{virtio_blk.name=virtioBlks/*}:\nvirtio_blk\332A\026virtio_blk,update_mask' - _FRONTENDVIRTIOBLKSERVICE.methods_by_name['ListVirtioBlks']._options = None - _FRONTENDVIRTIOBLKSERVICE.methods_by_name['ListVirtioBlks']._serialized_options = b'\202\323\344\223\002\031\022\027/v1/{parent=subsystems}\332A\006parent' - _FRONTENDVIRTIOBLKSERVICE.methods_by_name['GetVirtioBlk']._options = None - _FRONTENDVIRTIOBLKSERVICE.methods_by_name['GetVirtioBlk']._serialized_options = b'\202\323\344\223\002\031\022\027/v1/{name=virtioBlks/*}\332A\004name' - _FRONTENDVIRTIOBLKSERVICE.methods_by_name['StatsVirtioBlk']._options = None - _FRONTENDVIRTIOBLKSERVICE.methods_by_name['StatsVirtioBlk']._serialized_options = b'\202\323\344\223\002\037\022\035/v1/{name=virtioBlks/*}:stats\332A\004name' - _VIRTIOBLK._serialized_start=245 - _VIRTIOBLK._serialized_end=572 - _CREATEVIRTIOBLKREQUEST._serialized_start=574 - _CREATEVIRTIOBLKREQUEST._serialized_end=682 - _DELETEVIRTIOBLKREQUEST._serialized_start=684 - _DELETEVIRTIOBLKREQUEST._serialized_end=788 - _UPDATEVIRTIOBLKREQUEST._serialized_start=791 - _UPDATEVIRTIOBLKREQUEST._serialized_end=953 - _LISTVIRTIOBLKSREQUEST._serialized_start=955 - _LISTVIRTIOBLKSREQUEST._serialized_end=1081 - _LISTVIRTIOBLKSRESPONSE._serialized_start=1083 - _LISTVIRTIOBLKSRESPONSE._serialized_end=1184 - _GETVIRTIOBLKREQUEST._serialized_start=1186 - _GETVIRTIOBLKREQUEST._serialized_end=1259 - _STATSVIRTIOBLKREQUEST._serialized_start=1261 - _STATSVIRTIOBLKREQUEST._serialized_end=1336 - _STATSVIRTIOBLKRESPONSE._serialized_start=1338 - _STATSVIRTIOBLKRESPONSE._serialized_end=1410 - _FRONTENDVIRTIOBLKSERVICE._serialized_start=1413 - _FRONTENDVIRTIOBLKSERVICE._serialized_end=2328 + _globals['DESCRIPTOR']._options = None + _globals['DESCRIPTOR']._serialized_options = b'\n\022opi_api.storage.v1B\026FrontendVirtioBlkProtoP\001Z5github.com/opiproject/opi-api/storage/v1alpha1/gen/go' + _globals['_VIRTIOBLK'].fields_by_name['name']._options = None + _globals['_VIRTIOBLK'].fields_by_name['name']._serialized_options = b'\342A\001\010' + _globals['_VIRTIOBLK'].fields_by_name['pcie_id']._options = None + _globals['_VIRTIOBLK'].fields_by_name['pcie_id']._serialized_options = b'\342A\001\002' + _globals['_VIRTIOBLK'].fields_by_name['volume_name_ref']._options = None + _globals['_VIRTIOBLK'].fields_by_name['volume_name_ref']._serialized_options = b'\342A\001\002' + _globals['_VIRTIOBLK'].fields_by_name['max_io_qps']._options = None + _globals['_VIRTIOBLK'].fields_by_name['max_io_qps']._serialized_options = b'\342A\001\001' + _globals['_VIRTIOBLK'].fields_by_name['min_limit']._options = None + _globals['_VIRTIOBLK'].fields_by_name['min_limit']._serialized_options = b'\342A\001\001' + _globals['_VIRTIOBLK'].fields_by_name['max_limit']._options = None + _globals['_VIRTIOBLK'].fields_by_name['max_limit']._serialized_options = b'\342A\001\001' + _globals['_VIRTIOBLK']._options = None + _globals['_VIRTIOBLK']._serialized_options = b'\352AJ\n\034opi_api.storage.v1/VirtioBlk\022\023virtioBlks/{volume}*\nvirtioBlks2\tvirtioBlk' + _globals['_CREATEVIRTIOBLKREQUEST'].fields_by_name['virtio_blk']._options = None + _globals['_CREATEVIRTIOBLKREQUEST'].fields_by_name['virtio_blk']._serialized_options = b'\342A\001\002' + _globals['_CREATEVIRTIOBLKREQUEST'].fields_by_name['virtio_blk_id']._options = None + _globals['_CREATEVIRTIOBLKREQUEST'].fields_by_name['virtio_blk_id']._serialized_options = b'\342A\001\001' + _globals['_DELETEVIRTIOBLKREQUEST'].fields_by_name['name']._options = None + _globals['_DELETEVIRTIOBLKREQUEST'].fields_by_name['name']._serialized_options = b'\342A\001\002\372A\036\n\034opi_api.storage.v1/VirtioBlk' + _globals['_DELETEVIRTIOBLKREQUEST'].fields_by_name['allow_missing']._options = None + _globals['_DELETEVIRTIOBLKREQUEST'].fields_by_name['allow_missing']._serialized_options = b'\342A\001\001' + _globals['_UPDATEVIRTIOBLKREQUEST'].fields_by_name['virtio_blk']._options = None + _globals['_UPDATEVIRTIOBLKREQUEST'].fields_by_name['virtio_blk']._serialized_options = b'\342A\001\002' + _globals['_UPDATEVIRTIOBLKREQUEST'].fields_by_name['update_mask']._options = None + _globals['_UPDATEVIRTIOBLKREQUEST'].fields_by_name['update_mask']._serialized_options = b'\342A\001\001' + _globals['_UPDATEVIRTIOBLKREQUEST'].fields_by_name['allow_missing']._options = None + _globals['_UPDATEVIRTIOBLKREQUEST'].fields_by_name['allow_missing']._serialized_options = b'\342A\001\001' + _globals['_LISTVIRTIOBLKSREQUEST'].fields_by_name['page_size']._options = None + _globals['_LISTVIRTIOBLKSREQUEST'].fields_by_name['page_size']._serialized_options = b'\342A\001\001' + _globals['_LISTVIRTIOBLKSREQUEST'].fields_by_name['page_token']._options = None + _globals['_LISTVIRTIOBLKSREQUEST'].fields_by_name['page_token']._serialized_options = b'\342A\001\001' + _globals['_GETVIRTIOBLKREQUEST'].fields_by_name['name']._options = None + _globals['_GETVIRTIOBLKREQUEST'].fields_by_name['name']._serialized_options = b'\342A\001\002\372A\036\n\034opi_api.storage.v1/VirtioBlk' + _globals['_STATSVIRTIOBLKREQUEST'].fields_by_name['name']._options = None + _globals['_STATSVIRTIOBLKREQUEST'].fields_by_name['name']._serialized_options = b'\342A\001\002\372A\036\n\034opi_api.storage.v1/VirtioBlk' + _globals['_FRONTENDVIRTIOBLKSERVICE'].methods_by_name['CreateVirtioBlk']._options = None + _globals['_FRONTENDVIRTIOBLKSERVICE'].methods_by_name['CreateVirtioBlk']._serialized_options = b'\332A\030virtio_blk,virtio_blk_id\202\323\344\223\002\034\"\016/v1/virtioBlks:\nvirtio_blk' + _globals['_FRONTENDVIRTIOBLKSERVICE'].methods_by_name['DeleteVirtioBlk']._options = None + _globals['_FRONTENDVIRTIOBLKSERVICE'].methods_by_name['DeleteVirtioBlk']._serialized_options = b'\332A\004name\202\323\344\223\002\031*\027/v1/{name=virtioBlks/*}' + _globals['_FRONTENDVIRTIOBLKSERVICE'].methods_by_name['UpdateVirtioBlk']._options = None + _globals['_FRONTENDVIRTIOBLKSERVICE'].methods_by_name['UpdateVirtioBlk']._serialized_options = b'\332A\026virtio_blk,update_mask\202\323\344\223\00202\"/v1/{virtio_blk.name=virtioBlks/*}:\nvirtio_blk' + _globals['_FRONTENDVIRTIOBLKSERVICE'].methods_by_name['ListVirtioBlks']._options = None + _globals['_FRONTENDVIRTIOBLKSERVICE'].methods_by_name['ListVirtioBlks']._serialized_options = b'\202\323\344\223\002\020\022\016/v1/virtioBlks' + _globals['_FRONTENDVIRTIOBLKSERVICE'].methods_by_name['GetVirtioBlk']._options = None + _globals['_FRONTENDVIRTIOBLKSERVICE'].methods_by_name['GetVirtioBlk']._serialized_options = b'\332A\004name\202\323\344\223\002\031\022\027/v1/{name=virtioBlks/*}' + _globals['_FRONTENDVIRTIOBLKSERVICE'].methods_by_name['StatsVirtioBlk']._options = None + _globals['_FRONTENDVIRTIOBLKSERVICE'].methods_by_name['StatsVirtioBlk']._serialized_options = b'\332A\004name\202\323\344\223\002\037\022\035/v1/{name=virtioBlks/*}:stats' + _globals['_VIRTIOBLK']._serialized_start=245 + _globals['_VIRTIOBLK']._serialized_end=637 + _globals['_CREATEVIRTIOBLKREQUEST']._serialized_start=640 + _globals['_CREATEVIRTIOBLKREQUEST']._serialized_end=774 + _globals['_DELETEVIRTIOBLKREQUEST']._serialized_start=776 + _globals['_DELETEVIRTIOBLKREQUEST']._serialized_end=902 + _globals['_UPDATEVIRTIOBLKREQUEST']._serialized_start=905 + _globals['_UPDATEVIRTIOBLKREQUEST']._serialized_end=1107 + _globals['_LISTVIRTIOBLKSREQUEST']._serialized_start=1109 + _globals['_LISTVIRTIOBLKSREQUEST']._serialized_end=1204 + _globals['_LISTVIRTIOBLKSRESPONSE']._serialized_start=1207 + _globals['_LISTVIRTIOBLKSRESPONSE']._serialized_end=1335 + _globals['_GETVIRTIOBLKREQUEST']._serialized_start=1337 + _globals['_GETVIRTIOBLKREQUEST']._serialized_end=1417 + _globals['_STATSVIRTIOBLKREQUEST']._serialized_start=1419 + _globals['_STATSVIRTIOBLKREQUEST']._serialized_end=1501 + _globals['_STATSVIRTIOBLKRESPONSE']._serialized_start=1503 + _globals['_STATSVIRTIOBLKRESPONSE']._serialized_end=1582 + _globals['_FRONTENDVIRTIOBLKSERVICE']._serialized_start=1585 + _globals['_FRONTENDVIRTIOBLKSERVICE']._serialized_end=2481 # @@protoc_insertion_point(module_scope) diff --git a/storage/v1alpha1/gen/python/frontend_virtio_fs_pb2.py b/storage/v1alpha1/gen/python/frontend_virtio_fs_pb2.py index a03282a8..33a3efb1 100644 --- a/storage/v1alpha1/gen/python/frontend_virtio_fs_pb2.py +++ b/storage/v1alpha1/gen/python/frontend_virtio_fs_pb2.py @@ -1,11 +1,12 @@ # -*- coding: utf-8 -*- # Generated by the protocol buffer compiler. DO NOT EDIT! # source: frontend_virtio_fs.proto +# Protobuf Python Version: 4.25.2 """Generated protocol buffer code.""" -from google.protobuf.internal import builder as _builder from google.protobuf import descriptor as _descriptor from google.protobuf import descriptor_pool as _descriptor_pool from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder # @@protoc_insertion_point(imports) _sym_db = _symbol_database.Default() @@ -15,10 +16,10 @@ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x18\x66rontend_virtio_fs.proto\x12\x12opi_api.storage.v1Bd\n\x12opi_api.storage.v1B\x15\x46rontendVirtioFsProtoP\x01Z5github.com/opiproject/opi-api/storage/v1alpha1/gen/gob\x06proto3') -_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals()) -_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'frontend_virtio_fs_pb2', globals()) +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'frontend_virtio_fs_pb2', _globals) if _descriptor._USE_C_DESCRIPTORS == False: - - DESCRIPTOR._options = None - DESCRIPTOR._serialized_options = b'\n\022opi_api.storage.v1B\025FrontendVirtioFsProtoP\001Z5github.com/opiproject/opi-api/storage/v1alpha1/gen/go' + _globals['DESCRIPTOR']._options = None + _globals['DESCRIPTOR']._serialized_options = b'\n\022opi_api.storage.v1B\025FrontendVirtioFsProtoP\001Z5github.com/opiproject/opi-api/storage/v1alpha1/gen/go' # @@protoc_insertion_point(module_scope) diff --git a/storage/v1alpha1/gen/python/frontend_virtio_scsi_pb2.py b/storage/v1alpha1/gen/python/frontend_virtio_scsi_pb2.py index a89250ef..e9dde173 100644 --- a/storage/v1alpha1/gen/python/frontend_virtio_scsi_pb2.py +++ b/storage/v1alpha1/gen/python/frontend_virtio_scsi_pb2.py @@ -1,11 +1,12 @@ # -*- coding: utf-8 -*- # Generated by the protocol buffer compiler. DO NOT EDIT! # source: frontend_virtio_scsi.proto +# Protobuf Python Version: 4.25.2 """Generated protocol buffer code.""" -from google.protobuf.internal import builder as _builder from google.protobuf import descriptor as _descriptor from google.protobuf import descriptor_pool as _descriptor_pool from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder # @@protoc_insertion_point(imports) _sym_db = _symbol_database.Default() @@ -20,202 +21,202 @@ from google.protobuf import field_mask_pb2 as google_dot_protobuf_dot_field__mask__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1a\x66rontend_virtio_scsi.proto\x12\x12opi_api.storage.v1\x1a\x0fopicommon.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\"\xa7\x01\n\x10VirtioScsiTarget\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x08\x12\x15\n\x08max_luns\x18\x02 \x01(\x05\x42\x03\xe0\x41\x01:i\xea\x41\x66\n#opi_api.storage.v1/VirtioScsiTarget\x12\x1avirtioScsiTargets/{volume}*\x11virtioScsiTargets2\x10virtioScsiTarget\"\xc7\x02\n\x14VirtioScsiController\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x08\x12\x35\n\x07pcie_id\x18\x02 \x01(\x0b\x32\x1f.opi_api.storage.v1.PciEndpointB\x03\xe0\x41\x02\x12\x34\n\tmin_limit\x18\x03 \x01(\x0b\x32\x1c.opi_api.storage.v1.QosLimitB\x03\xe0\x41\x01\x12\x34\n\tmax_limit\x18\x04 \x01(\x0b\x32\x1c.opi_api.storage.v1.QosLimitB\x03\xe0\x41\x01:y\xea\x41v\n\'opi_api.storage.v1/VirtioScsiController\x12\x1evirtioScsiControllers/{volume}*\x15virtioScsiControllers2\x14virtioScsiController\"\xbd\x01\n\rVirtioScsiLun\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x08\x12\x1c\n\x0ftarget_name_ref\x18\x02 \x01(\tB\x03\xe0\x41\x02\x12\x1c\n\x0fvolume_name_ref\x18\x03 \x01(\tB\x03\xe0\x41\x02:]\xea\x41Z\n opi_api.storage.v1/VirtioScsiLun\x12\x17virtioScsiLuns/{volume}*\x0evirtioScsiLuns2\rvirtioScsiLun\"\x8a\x01\n\x1d\x43reateVirtioScsiTargetRequest\x12\x45\n\x12virtio_scsi_target\x18\x01 \x01(\x0b\x32$.opi_api.storage.v1.VirtioScsiTargetB\x03\xe0\x41\x02\x12\"\n\x15virtio_scsi_target_id\x18\x02 \x01(\tB\x03\xe0\x41\x01\"v\n\x1d\x44\x65leteVirtioScsiTargetRequest\x12\x39\n\x04name\x18\x01 \x01(\tB+\xe0\x41\x02\xfa\x41%\n#opi_api.storage.v1/VirtioScsiTarget\x12\x1a\n\rallow_missing\x18\x02 \x01(\x08\x42\x03\xe0\x41\x01\"\xb8\x01\n\x1dUpdateVirtioScsiTargetRequest\x12\x45\n\x12virtio_scsi_target\x18\x01 \x01(\x0b\x32$.opi_api.storage.v1.VirtioScsiTargetB\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\"\x8c\x01\n\x1cListVirtioScsiTargetsRequest\x12;\n\x06parent\x18\x01 \x01(\tB+\xe0\x41\x02\xfa\x41%\x12#opi_api.storage.v1/VirtioScsiTarget\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\"{\n\x1dListVirtioScsiTargetsResponse\x12\x41\n\x13virtio_scsi_targets\x18\x01 \x03(\x0b\x32$.opi_api.storage.v1.VirtioScsiTarget\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"W\n\x1aGetVirtioScsiTargetRequest\x12\x39\n\x04name\x18\x01 \x01(\tB+\xe0\x41\x02\xfa\x41%\n#opi_api.storage.v1/VirtioScsiTarget\"Y\n\x1cStatsVirtioScsiTargetRequest\x12\x39\n\x04name\x18\x01 \x01(\tB+\xe0\x41\x02\xfa\x41%\n#opi_api.storage.v1/VirtioScsiTarget\"O\n\x1dStatsVirtioScsiTargetResponse\x12.\n\x05stats\x18\x01 \x01(\x0b\x32\x1f.opi_api.storage.v1.VolumeStats\"\x9a\x01\n!CreateVirtioScsiControllerRequest\x12M\n\x16virtio_scsi_controller\x18\x01 \x01(\x0b\x32(.opi_api.storage.v1.VirtioScsiControllerB\x03\xe0\x41\x02\x12&\n\x19virtio_scsi_controller_id\x18\x02 \x01(\tB\x03\xe0\x41\x01\"~\n!DeleteVirtioScsiControllerRequest\x12=\n\x04name\x18\x01 \x01(\tB/\xe0\x41\x02\xfa\x41)\n\'opi_api.storage.v1/VirtioScsiController\x12\x1a\n\rallow_missing\x18\x02 \x01(\x08\x42\x03\xe0\x41\x01\"\xc4\x01\n!UpdateVirtioScsiControllerRequest\x12M\n\x16virtio_scsi_controller\x18\x01 \x01(\x0b\x32(.opi_api.storage.v1.VirtioScsiControllerB\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 ListVirtioScsiControllersRequest\x12?\n\x06parent\x18\x01 \x01(\tB/\xe0\x41\x02\xfa\x41)\x12\'opi_api.storage.v1/VirtioScsiController\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!ListVirtioScsiControllersResponse\x12I\n\x17virtio_scsi_controllers\x18\x01 \x03(\x0b\x32(.opi_api.storage.v1.VirtioScsiController\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"_\n\x1eGetVirtioScsiControllerRequest\x12=\n\x04name\x18\x01 \x01(\tB/\xe0\x41\x02\xfa\x41)\n\'opi_api.storage.v1/VirtioScsiController\"a\n StatsVirtioScsiControllerRequest\x12=\n\x04name\x18\x01 \x01(\tB/\xe0\x41\x02\xfa\x41)\n\'opi_api.storage.v1/VirtioScsiController\"S\n!StatsVirtioScsiControllerResponse\x12.\n\x05stats\x18\x01 \x01(\x0b\x32\x1f.opi_api.storage.v1.VolumeStats\"~\n\x1a\x43reateVirtioScsiLunRequest\x12?\n\x0fvirtio_scsi_lun\x18\x01 \x01(\x0b\x32!.opi_api.storage.v1.VirtioScsiLunB\x03\xe0\x41\x02\x12\x1f\n\x12virtio_scsi_lun_id\x18\x02 \x01(\tB\x03\xe0\x41\x01\"p\n\x1a\x44\x65leteVirtioScsiLunRequest\x12\x36\n\x04name\x18\x01 \x01(\tB(\xe0\x41\x02\xfa\x41\"\n opi_api.storage.v1/VirtioScsiLun\x12\x1a\n\rallow_missing\x18\x02 \x01(\x08\x42\x03\xe0\x41\x01\"\xaf\x01\n\x1aUpdateVirtioScsiLunRequest\x12?\n\x0fvirtio_scsi_lun\x18\x01 \x01(\x0b\x32!.opi_api.storage.v1.VirtioScsiLunB\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\x19ListVirtioScsiLunsRequest\x12\x38\n\x06parent\x18\x01 \x01(\tB(\xe0\x41\x02\xfa\x41\"\x12 opi_api.storage.v1/VirtioScsiLun\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\"r\n\x1aListVirtioScsiLunsResponse\x12;\n\x10virtio_scsi_luns\x18\x01 \x03(\x0b\x32!.opi_api.storage.v1.VirtioScsiLun\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"Q\n\x17GetVirtioScsiLunRequest\x12\x36\n\x04name\x18\x01 \x01(\tB(\xe0\x41\x02\xfa\x41\"\n opi_api.storage.v1/VirtioScsiLun\"u\n\x19StatsVirtioScsiLunRequest\x12\x36\n\x04name\x18\x01 \x01(\tB(\xe0\x41\x02\xfa\x41\"\n opi_api.storage.v1/VirtioScsiLun\x12 \n\x13\x63ontroller_name_ref\x18\x02 \x01(\tB\x03\xe0\x41\x01\"L\n\x1aStatsVirtioScsiLunResponse\x12.\n\x05stats\x18\x01 \x01(\x0b\x32\x1f.opi_api.storage.v1.VolumeStats2\x91\x1a\n\x19\x46rontendVirtioScsiService\x12\xcf\x01\n\x16\x43reateVirtioScsiTarget\x12\x31.opi_api.storage.v1.CreateVirtioScsiTargetRequest\x1a$.opi_api.storage.v1.VirtioScsiTarget\"\\\x82\xd3\xe4\x93\x02+\"\x15/v1/virtioScsiTargets:\x12virtio_scsi_target\xda\x41(virtio_scsi_target,virtio_scsi_target_id\x12\x92\x01\n\x16\x44\x65leteVirtioScsiTarget\x12\x31.opi_api.storage.v1.DeleteVirtioScsiTargetRequest\x1a\x16.google.protobuf.Empty\"-\x82\xd3\xe4\x93\x02 *\x1e/v1/{name=virtioScsiTargets/*}\xda\x41\x04name\x12\xe1\x01\n\x16UpdateVirtioScsiTarget\x12\x31.opi_api.storage.v1.UpdateVirtioScsiTargetRequest\x1a$.opi_api.storage.v1.VirtioScsiTarget\"n\x82\xd3\xe4\x93\x02G21/v1/{virtio_scsi_target.name=virtioScsiTargets/*}:\x12virtio_scsi_target\xda\x41\x1evirtio_scsi_target,update_mask\x12\xa6\x01\n\x15ListVirtioScsiTargets\x12\x30.opi_api.storage.v1.ListVirtioScsiTargetsRequest\x1a\x31.opi_api.storage.v1.ListVirtioScsiTargetsResponse\"(\x82\xd3\xe4\x93\x02\x19\x12\x17/v1/{parent=subsystems}\xda\x41\x06parent\x12\x9a\x01\n\x13GetVirtioScsiTarget\x12..opi_api.storage.v1.GetVirtioScsiTargetRequest\x1a$.opi_api.storage.v1.VirtioScsiTarget\"-\x82\xd3\xe4\x93\x02 \x12\x1e/v1/{name=virtioScsiTargets/*}\xda\x41\x04name\x12\xb1\x01\n\x15StatsVirtioScsiTarget\x12\x30.opi_api.storage.v1.StatsVirtioScsiTargetRequest\x1a\x31.opi_api.storage.v1.StatsVirtioScsiTargetResponse\"3\x82\xd3\xe4\x93\x02&\x12$/v1/{name=virtioScsiTargets/*}:stats\xda\x41\x04name\x12\xeb\x01\n\x1a\x43reateVirtioScsiController\x12\x35.opi_api.storage.v1.CreateVirtioScsiControllerRequest\x1a(.opi_api.storage.v1.VirtioScsiController\"l\x82\xd3\xe4\x93\x02\x33\"\x19/v1/virtioScsiControllers:\x16virtio_scsi_controller\xda\x41\x30virtio_scsi_controller,virtio_scsi_controller_id\x12\x9e\x01\n\x1a\x44\x65leteVirtioScsiController\x12\x35.opi_api.storage.v1.DeleteVirtioScsiControllerRequest\x1a\x16.google.protobuf.Empty\"1\x82\xd3\xe4\x93\x02$*\"/v1/{name=virtioScsiControllers/*}\xda\x41\x04name\x12\xfd\x01\n\x1aUpdateVirtioScsiController\x12\x35.opi_api.storage.v1.UpdateVirtioScsiControllerRequest\x1a(.opi_api.storage.v1.VirtioScsiController\"~\x82\xd3\xe4\x93\x02S29/v1/{virtio_scsi_controller.name=virtioScsiControllers/*}:\x16virtio_scsi_controller\xda\x41\"virtio_scsi_controller,update_mask\x12\xbd\x01\n\x19ListVirtioScsiControllers\x12\x34.opi_api.storage.v1.ListVirtioScsiControllersRequest\x1a\x35.opi_api.storage.v1.ListVirtioScsiControllersResponse\"3\x82\xd3\xe4\x93\x02$\x12\"/v1/{parent=virtioScsiControllers}\xda\x41\x06parent\x12\xaa\x01\n\x17GetVirtioScsiController\x12\x32.opi_api.storage.v1.GetVirtioScsiControllerRequest\x1a(.opi_api.storage.v1.VirtioScsiController\"1\x82\xd3\xe4\x93\x02$\x12\"/v1/{name=virtioScsiControllers/*}\xda\x41\x04name\x12\xc1\x01\n\x19StatsVirtioScsiController\x12\x34.opi_api.storage.v1.StatsVirtioScsiControllerRequest\x1a\x35.opi_api.storage.v1.StatsVirtioScsiControllerResponse\"7\x82\xd3\xe4\x93\x02*\x12(/v1/{name=virtioScsiControllers/*}:stats\xda\x41\x04name\x12\xba\x01\n\x13\x43reateVirtioScsiLun\x12..opi_api.storage.v1.CreateVirtioScsiLunRequest\x1a!.opi_api.storage.v1.VirtioScsiLun\"P\x82\xd3\xe4\x93\x02%\"\x12/v1/virtioScsiLuns:\x0fvirtio_scsi_lun\xda\x41\"virtio_scsi_lun,virtio_scsi_lun_id\x12\x89\x01\n\x13\x44\x65leteVirtioScsiLun\x12..opi_api.storage.v1.DeleteVirtioScsiLunRequest\x1a\x16.google.protobuf.Empty\"*\x82\xd3\xe4\x93\x02\x1d*\x1b/v1/{name=virtioScsiLuns/*}\xda\x41\x04name\x12\xcc\x01\n\x13UpdateVirtioScsiLun\x12..opi_api.storage.v1.UpdateVirtioScsiLunRequest\x1a!.opi_api.storage.v1.VirtioScsiLun\"b\x82\xd3\xe4\x93\x02>2+/v1/{virtio_scsi_lun.name=virtioScsiLuns/*}:\x0fvirtio_scsi_lun\xda\x41\x1bvirtio_scsi_lun,update_mask\x12\x9d\x01\n\x12ListVirtioScsiLuns\x12-.opi_api.storage.v1.ListVirtioScsiLunsRequest\x1a..opi_api.storage.v1.ListVirtioScsiLunsResponse\"(\x82\xd3\xe4\x93\x02\x19\x12\x17/v1/{parent=subsystems}\xda\x41\x06parent\x12\x8e\x01\n\x10GetVirtioScsiLun\x12+.opi_api.storage.v1.GetVirtioScsiLunRequest\x1a!.opi_api.storage.v1.VirtioScsiLun\"*\x82\xd3\xe4\x93\x02\x1d\x12\x1b/v1/{name=virtioScsiLuns/*}\xda\x41\x04name\x12\xa5\x01\n\x12StatsVirtioScsiLun\x12-.opi_api.storage.v1.StatsVirtioScsiLunRequest\x1a..opi_api.storage.v1.StatsVirtioScsiLunResponse\"0\x82\xd3\xe4\x93\x02#\x12!/v1/{name=virtioScsiLuns/*}:stats\xda\x41\x04nameBf\n\x12opi_api.storage.v1B\x17\x46rontendVirtioScsiProtoP\x01Z5github.com/opiproject/opi-api/storage/v1alpha1/gen/gob\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1a\x66rontend_virtio_scsi.proto\x12\x12opi_api.storage.v1\x1a\x0fopicommon.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\"\xb8\x01\n\x10VirtioScsiTarget\x12\x18\n\x04name\x18\x01 \x01(\tB\x04\xe2\x41\x01\x08R\x04name\x12\x1f\n\x08max_luns\x18\x02 \x01(\x05\x42\x04\xe2\x41\x01\x01R\x07maxLuns:i\xea\x41\x66\n#opi_api.storage.v1/VirtioScsiTarget\x12\x1avirtioScsiTargets/{volume}*\x11virtioScsiTargets2\x10virtioScsiTarget\"\xed\x02\n\x14VirtioScsiController\x12\x18\n\x04name\x18\x01 \x01(\tB\x04\xe2\x41\x01\x08R\x04name\x12>\n\x07pcie_id\x18\x02 \x01(\x0b\x32\x1f.opi_api.storage.v1.PciEndpointB\x04\xe2\x41\x01\x02R\x06pcieId\x12?\n\tmin_limit\x18\x03 \x01(\x0b\x32\x1c.opi_api.storage.v1.QosLimitB\x04\xe2\x41\x01\x01R\x08minLimit\x12?\n\tmax_limit\x18\x04 \x01(\x0b\x32\x1c.opi_api.storage.v1.QosLimitB\x04\xe2\x41\x01\x01R\x08maxLimit:y\xea\x41v\n\'opi_api.storage.v1/VirtioScsiController\x12\x1evirtioScsiControllers/{volume}*\x15virtioScsiControllers2\x14virtioScsiController\"\xe4\x01\n\rVirtioScsiLun\x12\x18\n\x04name\x18\x01 \x01(\tB\x04\xe2\x41\x01\x08R\x04name\x12,\n\x0ftarget_name_ref\x18\x02 \x01(\tB\x04\xe2\x41\x01\x02R\rtargetNameRef\x12,\n\x0fvolume_name_ref\x18\x03 \x01(\tB\x04\xe2\x41\x01\x02R\rvolumeNameRef:]\xea\x41Z\n opi_api.storage.v1/VirtioScsiLun\x12\x17virtioScsiLuns/{volume}*\x0evirtioScsiLuns2\rvirtioScsiLun\"\xb2\x01\n\x1d\x43reateVirtioScsiTargetRequest\x12X\n\x12virtio_scsi_target\x18\x01 \x01(\x0b\x32$.opi_api.storage.v1.VirtioScsiTargetB\x04\xe2\x41\x01\x02R\x10virtioScsiTarget\x12\x37\n\x15virtio_scsi_target_id\x18\x02 \x01(\tB\x04\xe2\x41\x01\x01R\x12virtioScsiTargetId\"\x8c\x01\n\x1d\x44\x65leteVirtioScsiTargetRequest\x12@\n\x04name\x18\x01 \x01(\tB,\xe2\x41\x01\x02\xfa\x41%\n#opi_api.storage.v1/VirtioScsiTargetR\x04name\x12)\n\rallow_missing\x18\x02 \x01(\x08\x42\x04\xe2\x41\x01\x01R\x0c\x61llowMissing\"\xe7\x01\n\x1dUpdateVirtioScsiTargetRequest\x12X\n\x12virtio_scsi_target\x18\x01 \x01(\x0b\x32$.opi_api.storage.v1.VirtioScsiTargetB\x04\xe2\x41\x01\x02R\x10virtioScsiTarget\x12\x41\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x04\xe2\x41\x01\x01R\nupdateMask\x12)\n\rallow_missing\x18\x03 \x01(\x08\x42\x04\xe2\x41\x01\x01R\x0c\x61llowMissing\"\xac\x01\n\x1cListVirtioScsiTargetsRequest\x12\x44\n\x06parent\x18\x01 \x01(\tB,\xe2\x41\x01\x02\xfa\x41%\x12#opi_api.storage.v1/VirtioScsiTargetR\x06parent\x12!\n\tpage_size\x18\x02 \x01(\x05\x42\x04\xe2\x41\x01\x01R\x08pageSize\x12#\n\npage_token\x18\x03 \x01(\tB\x04\xe2\x41\x01\x01R\tpageToken\"\x9d\x01\n\x1dListVirtioScsiTargetsResponse\x12T\n\x13virtio_scsi_targets\x18\x01 \x03(\x0b\x32$.opi_api.storage.v1.VirtioScsiTargetR\x11virtioScsiTargets\x12&\n\x0fnext_page_token\x18\x02 \x01(\tR\rnextPageToken\"^\n\x1aGetVirtioScsiTargetRequest\x12@\n\x04name\x18\x01 \x01(\tB,\xe2\x41\x01\x02\xfa\x41%\n#opi_api.storage.v1/VirtioScsiTargetR\x04name\"`\n\x1cStatsVirtioScsiTargetRequest\x12@\n\x04name\x18\x01 \x01(\tB,\xe2\x41\x01\x02\xfa\x41%\n#opi_api.storage.v1/VirtioScsiTargetR\x04name\"V\n\x1dStatsVirtioScsiTargetResponse\x12\x35\n\x05stats\x18\x01 \x01(\x0b\x32\x1f.opi_api.storage.v1.VolumeStatsR\x05stats\"\xca\x01\n!CreateVirtioScsiControllerRequest\x12\x64\n\x16virtio_scsi_controller\x18\x01 \x01(\x0b\x32(.opi_api.storage.v1.VirtioScsiControllerB\x04\xe2\x41\x01\x02R\x14virtioScsiController\x12?\n\x19virtio_scsi_controller_id\x18\x02 \x01(\tB\x04\xe2\x41\x01\x01R\x16virtioScsiControllerId\"\x94\x01\n!DeleteVirtioScsiControllerRequest\x12\x44\n\x04name\x18\x01 \x01(\tB0\xe2\x41\x01\x02\xfa\x41)\n\'opi_api.storage.v1/VirtioScsiControllerR\x04name\x12)\n\rallow_missing\x18\x02 \x01(\x08\x42\x04\xe2\x41\x01\x01R\x0c\x61llowMissing\"\xf7\x01\n!UpdateVirtioScsiControllerRequest\x12\x64\n\x16virtio_scsi_controller\x18\x01 \x01(\x0b\x32(.opi_api.storage.v1.VirtioScsiControllerB\x04\xe2\x41\x01\x02R\x14virtioScsiController\x12\x41\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x04\xe2\x41\x01\x01R\nupdateMask\x12)\n\rallow_missing\x18\x03 \x01(\x08\x42\x04\xe2\x41\x01\x01R\x0c\x61llowMissing\"\xb4\x01\n ListVirtioScsiControllersRequest\x12H\n\x06parent\x18\x01 \x01(\tB0\xe2\x41\x01\x02\xfa\x41)\x12\'opi_api.storage.v1/VirtioScsiControllerR\x06parent\x12!\n\tpage_size\x18\x02 \x01(\x05\x42\x04\xe2\x41\x01\x01R\x08pageSize\x12#\n\npage_token\x18\x03 \x01(\tB\x04\xe2\x41\x01\x01R\tpageToken\"\xad\x01\n!ListVirtioScsiControllersResponse\x12`\n\x17virtio_scsi_controllers\x18\x01 \x03(\x0b\x32(.opi_api.storage.v1.VirtioScsiControllerR\x15virtioScsiControllers\x12&\n\x0fnext_page_token\x18\x02 \x01(\tR\rnextPageToken\"f\n\x1eGetVirtioScsiControllerRequest\x12\x44\n\x04name\x18\x01 \x01(\tB0\xe2\x41\x01\x02\xfa\x41)\n\'opi_api.storage.v1/VirtioScsiControllerR\x04name\"h\n StatsVirtioScsiControllerRequest\x12\x44\n\x04name\x18\x01 \x01(\tB0\xe2\x41\x01\x02\xfa\x41)\n\'opi_api.storage.v1/VirtioScsiControllerR\x04name\"Z\n!StatsVirtioScsiControllerResponse\x12\x35\n\x05stats\x18\x01 \x01(\x0b\x32\x1f.opi_api.storage.v1.VolumeStatsR\x05stats\"\xa0\x01\n\x1a\x43reateVirtioScsiLunRequest\x12O\n\x0fvirtio_scsi_lun\x18\x01 \x01(\x0b\x32!.opi_api.storage.v1.VirtioScsiLunB\x04\xe2\x41\x01\x02R\rvirtioScsiLun\x12\x31\n\x12virtio_scsi_lun_id\x18\x02 \x01(\tB\x04\xe2\x41\x01\x01R\x0fvirtioScsiLunId\"\x86\x01\n\x1a\x44\x65leteVirtioScsiLunRequest\x12=\n\x04name\x18\x01 \x01(\tB)\xe2\x41\x01\x02\xfa\x41\"\n opi_api.storage.v1/VirtioScsiLunR\x04name\x12)\n\rallow_missing\x18\x02 \x01(\x08\x42\x04\xe2\x41\x01\x01R\x0c\x61llowMissing\"\xdb\x01\n\x1aUpdateVirtioScsiLunRequest\x12O\n\x0fvirtio_scsi_lun\x18\x01 \x01(\x0b\x32!.opi_api.storage.v1.VirtioScsiLunB\x04\xe2\x41\x01\x02R\rvirtioScsiLun\x12\x41\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x04\xe2\x41\x01\x01R\nupdateMask\x12)\n\rallow_missing\x18\x03 \x01(\x08\x42\x04\xe2\x41\x01\x01R\x0c\x61llowMissing\"\xa6\x01\n\x19ListVirtioScsiLunsRequest\x12\x41\n\x06parent\x18\x01 \x01(\tB)\xe2\x41\x01\x02\xfa\x41\"\x12 opi_api.storage.v1/VirtioScsiLunR\x06parent\x12!\n\tpage_size\x18\x02 \x01(\x05\x42\x04\xe2\x41\x01\x01R\x08pageSize\x12#\n\npage_token\x18\x03 \x01(\tB\x04\xe2\x41\x01\x01R\tpageToken\"\x91\x01\n\x1aListVirtioScsiLunsResponse\x12K\n\x10virtio_scsi_luns\x18\x01 \x03(\x0b\x32!.opi_api.storage.v1.VirtioScsiLunR\x0evirtioScsiLuns\x12&\n\x0fnext_page_token\x18\x02 \x01(\tR\rnextPageToken\"X\n\x17GetVirtioScsiLunRequest\x12=\n\x04name\x18\x01 \x01(\tB)\xe2\x41\x01\x02\xfa\x41\"\n opi_api.storage.v1/VirtioScsiLunR\x04name\"\x90\x01\n\x19StatsVirtioScsiLunRequest\x12=\n\x04name\x18\x01 \x01(\tB)\xe2\x41\x01\x02\xfa\x41\"\n opi_api.storage.v1/VirtioScsiLunR\x04name\x12\x34\n\x13\x63ontroller_name_ref\x18\x02 \x01(\tB\x04\xe2\x41\x01\x01R\x11\x63ontrollerNameRef\"S\n\x1aStatsVirtioScsiLunResponse\x12\x35\n\x05stats\x18\x01 \x01(\x0b\x32\x1f.opi_api.storage.v1.VolumeStatsR\x05stats2\x9c\x1a\n\x19\x46rontendVirtioScsiService\x12\xcf\x01\n\x16\x43reateVirtioScsiTarget\x12\x31.opi_api.storage.v1.CreateVirtioScsiTargetRequest\x1a$.opi_api.storage.v1.VirtioScsiTarget\"\\\xda\x41(virtio_scsi_target,virtio_scsi_target_id\x82\xd3\xe4\x93\x02+\"\x15/v1/virtioScsiTargets:\x12virtio_scsi_target\x12\x92\x01\n\x16\x44\x65leteVirtioScsiTarget\x12\x31.opi_api.storage.v1.DeleteVirtioScsiTargetRequest\x1a\x16.google.protobuf.Empty\"-\xda\x41\x04name\x82\xd3\xe4\x93\x02 *\x1e/v1/{name=virtioScsiTargets/*}\x12\xe1\x01\n\x16UpdateVirtioScsiTarget\x12\x31.opi_api.storage.v1.UpdateVirtioScsiTargetRequest\x1a$.opi_api.storage.v1.VirtioScsiTarget\"n\xda\x41\x1evirtio_scsi_target,update_mask\x82\xd3\xe4\x93\x02G21/v1/{virtio_scsi_target.name=virtioScsiTargets/*}:\x12virtio_scsi_target\x12\xad\x01\n\x15ListVirtioScsiTargets\x12\x30.opi_api.storage.v1.ListVirtioScsiTargetsRequest\x1a\x31.opi_api.storage.v1.ListVirtioScsiTargetsResponse\"/\xda\x41\x06parent\x82\xd3\xe4\x93\x02 \x12\x1e/v1/{parent=virtioScsiTargets}\x12\x9a\x01\n\x13GetVirtioScsiTarget\x12..opi_api.storage.v1.GetVirtioScsiTargetRequest\x1a$.opi_api.storage.v1.VirtioScsiTarget\"-\xda\x41\x04name\x82\xd3\xe4\x93\x02 \x12\x1e/v1/{name=virtioScsiTargets/*}\x12\xb1\x01\n\x15StatsVirtioScsiTarget\x12\x30.opi_api.storage.v1.StatsVirtioScsiTargetRequest\x1a\x31.opi_api.storage.v1.StatsVirtioScsiTargetResponse\"3\xda\x41\x04name\x82\xd3\xe4\x93\x02&\x12$/v1/{name=virtioScsiTargets/*}:stats\x12\xeb\x01\n\x1a\x43reateVirtioScsiController\x12\x35.opi_api.storage.v1.CreateVirtioScsiControllerRequest\x1a(.opi_api.storage.v1.VirtioScsiController\"l\xda\x41\x30virtio_scsi_controller,virtio_scsi_controller_id\x82\xd3\xe4\x93\x02\x33\"\x19/v1/virtioScsiControllers:\x16virtio_scsi_controller\x12\x9e\x01\n\x1a\x44\x65leteVirtioScsiController\x12\x35.opi_api.storage.v1.DeleteVirtioScsiControllerRequest\x1a\x16.google.protobuf.Empty\"1\xda\x41\x04name\x82\xd3\xe4\x93\x02$*\"/v1/{name=virtioScsiControllers/*}\x12\xfd\x01\n\x1aUpdateVirtioScsiController\x12\x35.opi_api.storage.v1.UpdateVirtioScsiControllerRequest\x1a(.opi_api.storage.v1.VirtioScsiController\"~\xda\x41\"virtio_scsi_controller,update_mask\x82\xd3\xe4\x93\x02S29/v1/{virtio_scsi_controller.name=virtioScsiControllers/*}:\x16virtio_scsi_controller\x12\xbd\x01\n\x19ListVirtioScsiControllers\x12\x34.opi_api.storage.v1.ListVirtioScsiControllersRequest\x1a\x35.opi_api.storage.v1.ListVirtioScsiControllersResponse\"3\xda\x41\x06parent\x82\xd3\xe4\x93\x02$\x12\"/v1/{parent=virtioScsiControllers}\x12\xaa\x01\n\x17GetVirtioScsiController\x12\x32.opi_api.storage.v1.GetVirtioScsiControllerRequest\x1a(.opi_api.storage.v1.VirtioScsiController\"1\xda\x41\x04name\x82\xd3\xe4\x93\x02$\x12\"/v1/{name=virtioScsiControllers/*}\x12\xc1\x01\n\x19StatsVirtioScsiController\x12\x34.opi_api.storage.v1.StatsVirtioScsiControllerRequest\x1a\x35.opi_api.storage.v1.StatsVirtioScsiControllerResponse\"7\xda\x41\x04name\x82\xd3\xe4\x93\x02*\x12(/v1/{name=virtioScsiControllers/*}:stats\x12\xba\x01\n\x13\x43reateVirtioScsiLun\x12..opi_api.storage.v1.CreateVirtioScsiLunRequest\x1a!.opi_api.storage.v1.VirtioScsiLun\"P\xda\x41\"virtio_scsi_lun,virtio_scsi_lun_id\x82\xd3\xe4\x93\x02%\"\x12/v1/virtioScsiLuns:\x0fvirtio_scsi_lun\x12\x89\x01\n\x13\x44\x65leteVirtioScsiLun\x12..opi_api.storage.v1.DeleteVirtioScsiLunRequest\x1a\x16.google.protobuf.Empty\"*\xda\x41\x04name\x82\xd3\xe4\x93\x02\x1d*\x1b/v1/{name=virtioScsiLuns/*}\x12\xcc\x01\n\x13UpdateVirtioScsiLun\x12..opi_api.storage.v1.UpdateVirtioScsiLunRequest\x1a!.opi_api.storage.v1.VirtioScsiLun\"b\xda\x41\x1bvirtio_scsi_lun,update_mask\x82\xd3\xe4\x93\x02>2+/v1/{virtio_scsi_lun.name=virtioScsiLuns/*}:\x0fvirtio_scsi_lun\x12\xa1\x01\n\x12ListVirtioScsiLuns\x12-.opi_api.storage.v1.ListVirtioScsiLunsRequest\x1a..opi_api.storage.v1.ListVirtioScsiLunsResponse\",\xda\x41\x06parent\x82\xd3\xe4\x93\x02\x1d\x12\x1b/v1/{parent=virtioScsiLuns}\x12\x8e\x01\n\x10GetVirtioScsiLun\x12+.opi_api.storage.v1.GetVirtioScsiLunRequest\x1a!.opi_api.storage.v1.VirtioScsiLun\"*\xda\x41\x04name\x82\xd3\xe4\x93\x02\x1d\x12\x1b/v1/{name=virtioScsiLuns/*}\x12\xa5\x01\n\x12StatsVirtioScsiLun\x12-.opi_api.storage.v1.StatsVirtioScsiLunRequest\x1a..opi_api.storage.v1.StatsVirtioScsiLunResponse\"0\xda\x41\x04name\x82\xd3\xe4\x93\x02#\x12!/v1/{name=virtioScsiLuns/*}:statsBf\n\x12opi_api.storage.v1B\x17\x46rontendVirtioScsiProtoP\x01Z5github.com/opiproject/opi-api/storage/v1alpha1/gen/gob\x06proto3') -_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals()) -_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'frontend_virtio_scsi_pb2', globals()) +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'frontend_virtio_scsi_pb2', _globals) if _descriptor._USE_C_DESCRIPTORS == False: - - DESCRIPTOR._options = None - DESCRIPTOR._serialized_options = b'\n\022opi_api.storage.v1B\027FrontendVirtioScsiProtoP\001Z5github.com/opiproject/opi-api/storage/v1alpha1/gen/go' - _VIRTIOSCSITARGET.fields_by_name['name']._options = None - _VIRTIOSCSITARGET.fields_by_name['name']._serialized_options = b'\340A\010' - _VIRTIOSCSITARGET.fields_by_name['max_luns']._options = None - _VIRTIOSCSITARGET.fields_by_name['max_luns']._serialized_options = b'\340A\001' - _VIRTIOSCSITARGET._options = None - _VIRTIOSCSITARGET._serialized_options = b'\352Af\n#opi_api.storage.v1/VirtioScsiTarget\022\032virtioScsiTargets/{volume}*\021virtioScsiTargets2\020virtioScsiTarget' - _VIRTIOSCSICONTROLLER.fields_by_name['name']._options = None - _VIRTIOSCSICONTROLLER.fields_by_name['name']._serialized_options = b'\340A\010' - _VIRTIOSCSICONTROLLER.fields_by_name['pcie_id']._options = None - _VIRTIOSCSICONTROLLER.fields_by_name['pcie_id']._serialized_options = b'\340A\002' - _VIRTIOSCSICONTROLLER.fields_by_name['min_limit']._options = None - _VIRTIOSCSICONTROLLER.fields_by_name['min_limit']._serialized_options = b'\340A\001' - _VIRTIOSCSICONTROLLER.fields_by_name['max_limit']._options = None - _VIRTIOSCSICONTROLLER.fields_by_name['max_limit']._serialized_options = b'\340A\001' - _VIRTIOSCSICONTROLLER._options = None - _VIRTIOSCSICONTROLLER._serialized_options = b'\352Av\n\'opi_api.storage.v1/VirtioScsiController\022\036virtioScsiControllers/{volume}*\025virtioScsiControllers2\024virtioScsiController' - _VIRTIOSCSILUN.fields_by_name['name']._options = None - _VIRTIOSCSILUN.fields_by_name['name']._serialized_options = b'\340A\010' - _VIRTIOSCSILUN.fields_by_name['target_name_ref']._options = None - _VIRTIOSCSILUN.fields_by_name['target_name_ref']._serialized_options = b'\340A\002' - _VIRTIOSCSILUN.fields_by_name['volume_name_ref']._options = None - _VIRTIOSCSILUN.fields_by_name['volume_name_ref']._serialized_options = b'\340A\002' - _VIRTIOSCSILUN._options = None - _VIRTIOSCSILUN._serialized_options = b'\352AZ\n opi_api.storage.v1/VirtioScsiLun\022\027virtioScsiLuns/{volume}*\016virtioScsiLuns2\rvirtioScsiLun' - _CREATEVIRTIOSCSITARGETREQUEST.fields_by_name['virtio_scsi_target']._options = None - _CREATEVIRTIOSCSITARGETREQUEST.fields_by_name['virtio_scsi_target']._serialized_options = b'\340A\002' - _CREATEVIRTIOSCSITARGETREQUEST.fields_by_name['virtio_scsi_target_id']._options = None - _CREATEVIRTIOSCSITARGETREQUEST.fields_by_name['virtio_scsi_target_id']._serialized_options = b'\340A\001' - _DELETEVIRTIOSCSITARGETREQUEST.fields_by_name['name']._options = None - _DELETEVIRTIOSCSITARGETREQUEST.fields_by_name['name']._serialized_options = b'\340A\002\372A%\n#opi_api.storage.v1/VirtioScsiTarget' - _DELETEVIRTIOSCSITARGETREQUEST.fields_by_name['allow_missing']._options = None - _DELETEVIRTIOSCSITARGETREQUEST.fields_by_name['allow_missing']._serialized_options = b'\340A\001' - _UPDATEVIRTIOSCSITARGETREQUEST.fields_by_name['virtio_scsi_target']._options = None - _UPDATEVIRTIOSCSITARGETREQUEST.fields_by_name['virtio_scsi_target']._serialized_options = b'\340A\002' - _UPDATEVIRTIOSCSITARGETREQUEST.fields_by_name['update_mask']._options = None - _UPDATEVIRTIOSCSITARGETREQUEST.fields_by_name['update_mask']._serialized_options = b'\340A\001' - _UPDATEVIRTIOSCSITARGETREQUEST.fields_by_name['allow_missing']._options = None - _UPDATEVIRTIOSCSITARGETREQUEST.fields_by_name['allow_missing']._serialized_options = b'\340A\001' - _LISTVIRTIOSCSITARGETSREQUEST.fields_by_name['parent']._options = None - _LISTVIRTIOSCSITARGETSREQUEST.fields_by_name['parent']._serialized_options = b'\340A\002\372A%\022#opi_api.storage.v1/VirtioScsiTarget' - _LISTVIRTIOSCSITARGETSREQUEST.fields_by_name['page_size']._options = None - _LISTVIRTIOSCSITARGETSREQUEST.fields_by_name['page_size']._serialized_options = b'\340A\001' - _LISTVIRTIOSCSITARGETSREQUEST.fields_by_name['page_token']._options = None - _LISTVIRTIOSCSITARGETSREQUEST.fields_by_name['page_token']._serialized_options = b'\340A\001' - _GETVIRTIOSCSITARGETREQUEST.fields_by_name['name']._options = None - _GETVIRTIOSCSITARGETREQUEST.fields_by_name['name']._serialized_options = b'\340A\002\372A%\n#opi_api.storage.v1/VirtioScsiTarget' - _STATSVIRTIOSCSITARGETREQUEST.fields_by_name['name']._options = None - _STATSVIRTIOSCSITARGETREQUEST.fields_by_name['name']._serialized_options = b'\340A\002\372A%\n#opi_api.storage.v1/VirtioScsiTarget' - _CREATEVIRTIOSCSICONTROLLERREQUEST.fields_by_name['virtio_scsi_controller']._options = None - _CREATEVIRTIOSCSICONTROLLERREQUEST.fields_by_name['virtio_scsi_controller']._serialized_options = b'\340A\002' - _CREATEVIRTIOSCSICONTROLLERREQUEST.fields_by_name['virtio_scsi_controller_id']._options = None - _CREATEVIRTIOSCSICONTROLLERREQUEST.fields_by_name['virtio_scsi_controller_id']._serialized_options = b'\340A\001' - _DELETEVIRTIOSCSICONTROLLERREQUEST.fields_by_name['name']._options = None - _DELETEVIRTIOSCSICONTROLLERREQUEST.fields_by_name['name']._serialized_options = b'\340A\002\372A)\n\'opi_api.storage.v1/VirtioScsiController' - _DELETEVIRTIOSCSICONTROLLERREQUEST.fields_by_name['allow_missing']._options = None - _DELETEVIRTIOSCSICONTROLLERREQUEST.fields_by_name['allow_missing']._serialized_options = b'\340A\001' - _UPDATEVIRTIOSCSICONTROLLERREQUEST.fields_by_name['virtio_scsi_controller']._options = None - _UPDATEVIRTIOSCSICONTROLLERREQUEST.fields_by_name['virtio_scsi_controller']._serialized_options = b'\340A\002' - _UPDATEVIRTIOSCSICONTROLLERREQUEST.fields_by_name['update_mask']._options = None - _UPDATEVIRTIOSCSICONTROLLERREQUEST.fields_by_name['update_mask']._serialized_options = b'\340A\001' - _UPDATEVIRTIOSCSICONTROLLERREQUEST.fields_by_name['allow_missing']._options = None - _UPDATEVIRTIOSCSICONTROLLERREQUEST.fields_by_name['allow_missing']._serialized_options = b'\340A\001' - _LISTVIRTIOSCSICONTROLLERSREQUEST.fields_by_name['parent']._options = None - _LISTVIRTIOSCSICONTROLLERSREQUEST.fields_by_name['parent']._serialized_options = b'\340A\002\372A)\022\'opi_api.storage.v1/VirtioScsiController' - _LISTVIRTIOSCSICONTROLLERSREQUEST.fields_by_name['page_size']._options = None - _LISTVIRTIOSCSICONTROLLERSREQUEST.fields_by_name['page_size']._serialized_options = b'\340A\001' - _LISTVIRTIOSCSICONTROLLERSREQUEST.fields_by_name['page_token']._options = None - _LISTVIRTIOSCSICONTROLLERSREQUEST.fields_by_name['page_token']._serialized_options = b'\340A\001' - _GETVIRTIOSCSICONTROLLERREQUEST.fields_by_name['name']._options = None - _GETVIRTIOSCSICONTROLLERREQUEST.fields_by_name['name']._serialized_options = b'\340A\002\372A)\n\'opi_api.storage.v1/VirtioScsiController' - _STATSVIRTIOSCSICONTROLLERREQUEST.fields_by_name['name']._options = None - _STATSVIRTIOSCSICONTROLLERREQUEST.fields_by_name['name']._serialized_options = b'\340A\002\372A)\n\'opi_api.storage.v1/VirtioScsiController' - _CREATEVIRTIOSCSILUNREQUEST.fields_by_name['virtio_scsi_lun']._options = None - _CREATEVIRTIOSCSILUNREQUEST.fields_by_name['virtio_scsi_lun']._serialized_options = b'\340A\002' - _CREATEVIRTIOSCSILUNREQUEST.fields_by_name['virtio_scsi_lun_id']._options = None - _CREATEVIRTIOSCSILUNREQUEST.fields_by_name['virtio_scsi_lun_id']._serialized_options = b'\340A\001' - _DELETEVIRTIOSCSILUNREQUEST.fields_by_name['name']._options = None - _DELETEVIRTIOSCSILUNREQUEST.fields_by_name['name']._serialized_options = b'\340A\002\372A\"\n opi_api.storage.v1/VirtioScsiLun' - _DELETEVIRTIOSCSILUNREQUEST.fields_by_name['allow_missing']._options = None - _DELETEVIRTIOSCSILUNREQUEST.fields_by_name['allow_missing']._serialized_options = b'\340A\001' - _UPDATEVIRTIOSCSILUNREQUEST.fields_by_name['virtio_scsi_lun']._options = None - _UPDATEVIRTIOSCSILUNREQUEST.fields_by_name['virtio_scsi_lun']._serialized_options = b'\340A\002' - _UPDATEVIRTIOSCSILUNREQUEST.fields_by_name['update_mask']._options = None - _UPDATEVIRTIOSCSILUNREQUEST.fields_by_name['update_mask']._serialized_options = b'\340A\001' - _UPDATEVIRTIOSCSILUNREQUEST.fields_by_name['allow_missing']._options = None - _UPDATEVIRTIOSCSILUNREQUEST.fields_by_name['allow_missing']._serialized_options = b'\340A\001' - _LISTVIRTIOSCSILUNSREQUEST.fields_by_name['parent']._options = None - _LISTVIRTIOSCSILUNSREQUEST.fields_by_name['parent']._serialized_options = b'\340A\002\372A\"\022 opi_api.storage.v1/VirtioScsiLun' - _LISTVIRTIOSCSILUNSREQUEST.fields_by_name['page_size']._options = None - _LISTVIRTIOSCSILUNSREQUEST.fields_by_name['page_size']._serialized_options = b'\340A\001' - _LISTVIRTIOSCSILUNSREQUEST.fields_by_name['page_token']._options = None - _LISTVIRTIOSCSILUNSREQUEST.fields_by_name['page_token']._serialized_options = b'\340A\001' - _GETVIRTIOSCSILUNREQUEST.fields_by_name['name']._options = None - _GETVIRTIOSCSILUNREQUEST.fields_by_name['name']._serialized_options = b'\340A\002\372A\"\n opi_api.storage.v1/VirtioScsiLun' - _STATSVIRTIOSCSILUNREQUEST.fields_by_name['name']._options = None - _STATSVIRTIOSCSILUNREQUEST.fields_by_name['name']._serialized_options = b'\340A\002\372A\"\n opi_api.storage.v1/VirtioScsiLun' - _STATSVIRTIOSCSILUNREQUEST.fields_by_name['controller_name_ref']._options = None - _STATSVIRTIOSCSILUNREQUEST.fields_by_name['controller_name_ref']._serialized_options = b'\340A\001' - _FRONTENDVIRTIOSCSISERVICE.methods_by_name['CreateVirtioScsiTarget']._options = None - _FRONTENDVIRTIOSCSISERVICE.methods_by_name['CreateVirtioScsiTarget']._serialized_options = b'\202\323\344\223\002+\"\025/v1/virtioScsiTargets:\022virtio_scsi_target\332A(virtio_scsi_target,virtio_scsi_target_id' - _FRONTENDVIRTIOSCSISERVICE.methods_by_name['DeleteVirtioScsiTarget']._options = None - _FRONTENDVIRTIOSCSISERVICE.methods_by_name['DeleteVirtioScsiTarget']._serialized_options = b'\202\323\344\223\002 *\036/v1/{name=virtioScsiTargets/*}\332A\004name' - _FRONTENDVIRTIOSCSISERVICE.methods_by_name['UpdateVirtioScsiTarget']._options = None - _FRONTENDVIRTIOSCSISERVICE.methods_by_name['UpdateVirtioScsiTarget']._serialized_options = b'\202\323\344\223\002G21/v1/{virtio_scsi_target.name=virtioScsiTargets/*}:\022virtio_scsi_target\332A\036virtio_scsi_target,update_mask' - _FRONTENDVIRTIOSCSISERVICE.methods_by_name['ListVirtioScsiTargets']._options = None - _FRONTENDVIRTIOSCSISERVICE.methods_by_name['ListVirtioScsiTargets']._serialized_options = b'\202\323\344\223\002\031\022\027/v1/{parent=subsystems}\332A\006parent' - _FRONTENDVIRTIOSCSISERVICE.methods_by_name['GetVirtioScsiTarget']._options = None - _FRONTENDVIRTIOSCSISERVICE.methods_by_name['GetVirtioScsiTarget']._serialized_options = b'\202\323\344\223\002 \022\036/v1/{name=virtioScsiTargets/*}\332A\004name' - _FRONTENDVIRTIOSCSISERVICE.methods_by_name['StatsVirtioScsiTarget']._options = None - _FRONTENDVIRTIOSCSISERVICE.methods_by_name['StatsVirtioScsiTarget']._serialized_options = b'\202\323\344\223\002&\022$/v1/{name=virtioScsiTargets/*}:stats\332A\004name' - _FRONTENDVIRTIOSCSISERVICE.methods_by_name['CreateVirtioScsiController']._options = None - _FRONTENDVIRTIOSCSISERVICE.methods_by_name['CreateVirtioScsiController']._serialized_options = b'\202\323\344\223\0023\"\031/v1/virtioScsiControllers:\026virtio_scsi_controller\332A0virtio_scsi_controller,virtio_scsi_controller_id' - _FRONTENDVIRTIOSCSISERVICE.methods_by_name['DeleteVirtioScsiController']._options = None - _FRONTENDVIRTIOSCSISERVICE.methods_by_name['DeleteVirtioScsiController']._serialized_options = b'\202\323\344\223\002$*\"/v1/{name=virtioScsiControllers/*}\332A\004name' - _FRONTENDVIRTIOSCSISERVICE.methods_by_name['UpdateVirtioScsiController']._options = None - _FRONTENDVIRTIOSCSISERVICE.methods_by_name['UpdateVirtioScsiController']._serialized_options = b'\202\323\344\223\002S29/v1/{virtio_scsi_controller.name=virtioScsiControllers/*}:\026virtio_scsi_controller\332A\"virtio_scsi_controller,update_mask' - _FRONTENDVIRTIOSCSISERVICE.methods_by_name['ListVirtioScsiControllers']._options = None - _FRONTENDVIRTIOSCSISERVICE.methods_by_name['ListVirtioScsiControllers']._serialized_options = b'\202\323\344\223\002$\022\"/v1/{parent=virtioScsiControllers}\332A\006parent' - _FRONTENDVIRTIOSCSISERVICE.methods_by_name['GetVirtioScsiController']._options = None - _FRONTENDVIRTIOSCSISERVICE.methods_by_name['GetVirtioScsiController']._serialized_options = b'\202\323\344\223\002$\022\"/v1/{name=virtioScsiControllers/*}\332A\004name' - _FRONTENDVIRTIOSCSISERVICE.methods_by_name['StatsVirtioScsiController']._options = None - _FRONTENDVIRTIOSCSISERVICE.methods_by_name['StatsVirtioScsiController']._serialized_options = b'\202\323\344\223\002*\022(/v1/{name=virtioScsiControllers/*}:stats\332A\004name' - _FRONTENDVIRTIOSCSISERVICE.methods_by_name['CreateVirtioScsiLun']._options = None - _FRONTENDVIRTIOSCSISERVICE.methods_by_name['CreateVirtioScsiLun']._serialized_options = b'\202\323\344\223\002%\"\022/v1/virtioScsiLuns:\017virtio_scsi_lun\332A\"virtio_scsi_lun,virtio_scsi_lun_id' - _FRONTENDVIRTIOSCSISERVICE.methods_by_name['DeleteVirtioScsiLun']._options = None - _FRONTENDVIRTIOSCSISERVICE.methods_by_name['DeleteVirtioScsiLun']._serialized_options = b'\202\323\344\223\002\035*\033/v1/{name=virtioScsiLuns/*}\332A\004name' - _FRONTENDVIRTIOSCSISERVICE.methods_by_name['UpdateVirtioScsiLun']._options = None - _FRONTENDVIRTIOSCSISERVICE.methods_by_name['UpdateVirtioScsiLun']._serialized_options = b'\202\323\344\223\002>2+/v1/{virtio_scsi_lun.name=virtioScsiLuns/*}:\017virtio_scsi_lun\332A\033virtio_scsi_lun,update_mask' - _FRONTENDVIRTIOSCSISERVICE.methods_by_name['ListVirtioScsiLuns']._options = None - _FRONTENDVIRTIOSCSISERVICE.methods_by_name['ListVirtioScsiLuns']._serialized_options = b'\202\323\344\223\002\031\022\027/v1/{parent=subsystems}\332A\006parent' - _FRONTENDVIRTIOSCSISERVICE.methods_by_name['GetVirtioScsiLun']._options = None - _FRONTENDVIRTIOSCSISERVICE.methods_by_name['GetVirtioScsiLun']._serialized_options = b'\202\323\344\223\002\035\022\033/v1/{name=virtioScsiLuns/*}\332A\004name' - _FRONTENDVIRTIOSCSISERVICE.methods_by_name['StatsVirtioScsiLun']._options = None - _FRONTENDVIRTIOSCSISERVICE.methods_by_name['StatsVirtioScsiLun']._serialized_options = b'\202\323\344\223\002#\022!/v1/{name=virtioScsiLuns/*}:stats\332A\004name' - _VIRTIOSCSITARGET._serialized_start=246 - _VIRTIOSCSITARGET._serialized_end=413 - _VIRTIOSCSICONTROLLER._serialized_start=416 - _VIRTIOSCSICONTROLLER._serialized_end=743 - _VIRTIOSCSILUN._serialized_start=746 - _VIRTIOSCSILUN._serialized_end=935 - _CREATEVIRTIOSCSITARGETREQUEST._serialized_start=938 - _CREATEVIRTIOSCSITARGETREQUEST._serialized_end=1076 - _DELETEVIRTIOSCSITARGETREQUEST._serialized_start=1078 - _DELETEVIRTIOSCSITARGETREQUEST._serialized_end=1196 - _UPDATEVIRTIOSCSITARGETREQUEST._serialized_start=1199 - _UPDATEVIRTIOSCSITARGETREQUEST._serialized_end=1383 - _LISTVIRTIOSCSITARGETSREQUEST._serialized_start=1386 - _LISTVIRTIOSCSITARGETSREQUEST._serialized_end=1526 - _LISTVIRTIOSCSITARGETSRESPONSE._serialized_start=1528 - _LISTVIRTIOSCSITARGETSRESPONSE._serialized_end=1651 - _GETVIRTIOSCSITARGETREQUEST._serialized_start=1653 - _GETVIRTIOSCSITARGETREQUEST._serialized_end=1740 - _STATSVIRTIOSCSITARGETREQUEST._serialized_start=1742 - _STATSVIRTIOSCSITARGETREQUEST._serialized_end=1831 - _STATSVIRTIOSCSITARGETRESPONSE._serialized_start=1833 - _STATSVIRTIOSCSITARGETRESPONSE._serialized_end=1912 - _CREATEVIRTIOSCSICONTROLLERREQUEST._serialized_start=1915 - _CREATEVIRTIOSCSICONTROLLERREQUEST._serialized_end=2069 - _DELETEVIRTIOSCSICONTROLLERREQUEST._serialized_start=2071 - _DELETEVIRTIOSCSICONTROLLERREQUEST._serialized_end=2197 - _UPDATEVIRTIOSCSICONTROLLERREQUEST._serialized_start=2200 - _UPDATEVIRTIOSCSICONTROLLERREQUEST._serialized_end=2396 - _LISTVIRTIOSCSICONTROLLERSREQUEST._serialized_start=2399 - _LISTVIRTIOSCSICONTROLLERSREQUEST._serialized_end=2547 - _LISTVIRTIOSCSICONTROLLERSRESPONSE._serialized_start=2550 - _LISTVIRTIOSCSICONTROLLERSRESPONSE._serialized_end=2685 - _GETVIRTIOSCSICONTROLLERREQUEST._serialized_start=2687 - _GETVIRTIOSCSICONTROLLERREQUEST._serialized_end=2782 - _STATSVIRTIOSCSICONTROLLERREQUEST._serialized_start=2784 - _STATSVIRTIOSCSICONTROLLERREQUEST._serialized_end=2881 - _STATSVIRTIOSCSICONTROLLERRESPONSE._serialized_start=2883 - _STATSVIRTIOSCSICONTROLLERRESPONSE._serialized_end=2966 - _CREATEVIRTIOSCSILUNREQUEST._serialized_start=2968 - _CREATEVIRTIOSCSILUNREQUEST._serialized_end=3094 - _DELETEVIRTIOSCSILUNREQUEST._serialized_start=3096 - _DELETEVIRTIOSCSILUNREQUEST._serialized_end=3208 - _UPDATEVIRTIOSCSILUNREQUEST._serialized_start=3211 - _UPDATEVIRTIOSCSILUNREQUEST._serialized_end=3386 - _LISTVIRTIOSCSILUNSREQUEST._serialized_start=3389 - _LISTVIRTIOSCSILUNSREQUEST._serialized_end=3523 - _LISTVIRTIOSCSILUNSRESPONSE._serialized_start=3525 - _LISTVIRTIOSCSILUNSRESPONSE._serialized_end=3639 - _GETVIRTIOSCSILUNREQUEST._serialized_start=3641 - _GETVIRTIOSCSILUNREQUEST._serialized_end=3722 - _STATSVIRTIOSCSILUNREQUEST._serialized_start=3724 - _STATSVIRTIOSCSILUNREQUEST._serialized_end=3841 - _STATSVIRTIOSCSILUNRESPONSE._serialized_start=3843 - _STATSVIRTIOSCSILUNRESPONSE._serialized_end=3919 - _FRONTENDVIRTIOSCSISERVICE._serialized_start=3922 - _FRONTENDVIRTIOSCSISERVICE._serialized_end=7267 + _globals['DESCRIPTOR']._options = None + _globals['DESCRIPTOR']._serialized_options = b'\n\022opi_api.storage.v1B\027FrontendVirtioScsiProtoP\001Z5github.com/opiproject/opi-api/storage/v1alpha1/gen/go' + _globals['_VIRTIOSCSITARGET'].fields_by_name['name']._options = None + _globals['_VIRTIOSCSITARGET'].fields_by_name['name']._serialized_options = b'\342A\001\010' + _globals['_VIRTIOSCSITARGET'].fields_by_name['max_luns']._options = None + _globals['_VIRTIOSCSITARGET'].fields_by_name['max_luns']._serialized_options = b'\342A\001\001' + _globals['_VIRTIOSCSITARGET']._options = None + _globals['_VIRTIOSCSITARGET']._serialized_options = b'\352Af\n#opi_api.storage.v1/VirtioScsiTarget\022\032virtioScsiTargets/{volume}*\021virtioScsiTargets2\020virtioScsiTarget' + _globals['_VIRTIOSCSICONTROLLER'].fields_by_name['name']._options = None + _globals['_VIRTIOSCSICONTROLLER'].fields_by_name['name']._serialized_options = b'\342A\001\010' + _globals['_VIRTIOSCSICONTROLLER'].fields_by_name['pcie_id']._options = None + _globals['_VIRTIOSCSICONTROLLER'].fields_by_name['pcie_id']._serialized_options = b'\342A\001\002' + _globals['_VIRTIOSCSICONTROLLER'].fields_by_name['min_limit']._options = None + _globals['_VIRTIOSCSICONTROLLER'].fields_by_name['min_limit']._serialized_options = b'\342A\001\001' + _globals['_VIRTIOSCSICONTROLLER'].fields_by_name['max_limit']._options = None + _globals['_VIRTIOSCSICONTROLLER'].fields_by_name['max_limit']._serialized_options = b'\342A\001\001' + _globals['_VIRTIOSCSICONTROLLER']._options = None + _globals['_VIRTIOSCSICONTROLLER']._serialized_options = b'\352Av\n\'opi_api.storage.v1/VirtioScsiController\022\036virtioScsiControllers/{volume}*\025virtioScsiControllers2\024virtioScsiController' + _globals['_VIRTIOSCSILUN'].fields_by_name['name']._options = None + _globals['_VIRTIOSCSILUN'].fields_by_name['name']._serialized_options = b'\342A\001\010' + _globals['_VIRTIOSCSILUN'].fields_by_name['target_name_ref']._options = None + _globals['_VIRTIOSCSILUN'].fields_by_name['target_name_ref']._serialized_options = b'\342A\001\002' + _globals['_VIRTIOSCSILUN'].fields_by_name['volume_name_ref']._options = None + _globals['_VIRTIOSCSILUN'].fields_by_name['volume_name_ref']._serialized_options = b'\342A\001\002' + _globals['_VIRTIOSCSILUN']._options = None + _globals['_VIRTIOSCSILUN']._serialized_options = b'\352AZ\n opi_api.storage.v1/VirtioScsiLun\022\027virtioScsiLuns/{volume}*\016virtioScsiLuns2\rvirtioScsiLun' + _globals['_CREATEVIRTIOSCSITARGETREQUEST'].fields_by_name['virtio_scsi_target']._options = None + _globals['_CREATEVIRTIOSCSITARGETREQUEST'].fields_by_name['virtio_scsi_target']._serialized_options = b'\342A\001\002' + _globals['_CREATEVIRTIOSCSITARGETREQUEST'].fields_by_name['virtio_scsi_target_id']._options = None + _globals['_CREATEVIRTIOSCSITARGETREQUEST'].fields_by_name['virtio_scsi_target_id']._serialized_options = b'\342A\001\001' + _globals['_DELETEVIRTIOSCSITARGETREQUEST'].fields_by_name['name']._options = None + _globals['_DELETEVIRTIOSCSITARGETREQUEST'].fields_by_name['name']._serialized_options = b'\342A\001\002\372A%\n#opi_api.storage.v1/VirtioScsiTarget' + _globals['_DELETEVIRTIOSCSITARGETREQUEST'].fields_by_name['allow_missing']._options = None + _globals['_DELETEVIRTIOSCSITARGETREQUEST'].fields_by_name['allow_missing']._serialized_options = b'\342A\001\001' + _globals['_UPDATEVIRTIOSCSITARGETREQUEST'].fields_by_name['virtio_scsi_target']._options = None + _globals['_UPDATEVIRTIOSCSITARGETREQUEST'].fields_by_name['virtio_scsi_target']._serialized_options = b'\342A\001\002' + _globals['_UPDATEVIRTIOSCSITARGETREQUEST'].fields_by_name['update_mask']._options = None + _globals['_UPDATEVIRTIOSCSITARGETREQUEST'].fields_by_name['update_mask']._serialized_options = b'\342A\001\001' + _globals['_UPDATEVIRTIOSCSITARGETREQUEST'].fields_by_name['allow_missing']._options = None + _globals['_UPDATEVIRTIOSCSITARGETREQUEST'].fields_by_name['allow_missing']._serialized_options = b'\342A\001\001' + _globals['_LISTVIRTIOSCSITARGETSREQUEST'].fields_by_name['parent']._options = None + _globals['_LISTVIRTIOSCSITARGETSREQUEST'].fields_by_name['parent']._serialized_options = b'\342A\001\002\372A%\022#opi_api.storage.v1/VirtioScsiTarget' + _globals['_LISTVIRTIOSCSITARGETSREQUEST'].fields_by_name['page_size']._options = None + _globals['_LISTVIRTIOSCSITARGETSREQUEST'].fields_by_name['page_size']._serialized_options = b'\342A\001\001' + _globals['_LISTVIRTIOSCSITARGETSREQUEST'].fields_by_name['page_token']._options = None + _globals['_LISTVIRTIOSCSITARGETSREQUEST'].fields_by_name['page_token']._serialized_options = b'\342A\001\001' + _globals['_GETVIRTIOSCSITARGETREQUEST'].fields_by_name['name']._options = None + _globals['_GETVIRTIOSCSITARGETREQUEST'].fields_by_name['name']._serialized_options = b'\342A\001\002\372A%\n#opi_api.storage.v1/VirtioScsiTarget' + _globals['_STATSVIRTIOSCSITARGETREQUEST'].fields_by_name['name']._options = None + _globals['_STATSVIRTIOSCSITARGETREQUEST'].fields_by_name['name']._serialized_options = b'\342A\001\002\372A%\n#opi_api.storage.v1/VirtioScsiTarget' + _globals['_CREATEVIRTIOSCSICONTROLLERREQUEST'].fields_by_name['virtio_scsi_controller']._options = None + _globals['_CREATEVIRTIOSCSICONTROLLERREQUEST'].fields_by_name['virtio_scsi_controller']._serialized_options = b'\342A\001\002' + _globals['_CREATEVIRTIOSCSICONTROLLERREQUEST'].fields_by_name['virtio_scsi_controller_id']._options = None + _globals['_CREATEVIRTIOSCSICONTROLLERREQUEST'].fields_by_name['virtio_scsi_controller_id']._serialized_options = b'\342A\001\001' + _globals['_DELETEVIRTIOSCSICONTROLLERREQUEST'].fields_by_name['name']._options = None + _globals['_DELETEVIRTIOSCSICONTROLLERREQUEST'].fields_by_name['name']._serialized_options = b'\342A\001\002\372A)\n\'opi_api.storage.v1/VirtioScsiController' + _globals['_DELETEVIRTIOSCSICONTROLLERREQUEST'].fields_by_name['allow_missing']._options = None + _globals['_DELETEVIRTIOSCSICONTROLLERREQUEST'].fields_by_name['allow_missing']._serialized_options = b'\342A\001\001' + _globals['_UPDATEVIRTIOSCSICONTROLLERREQUEST'].fields_by_name['virtio_scsi_controller']._options = None + _globals['_UPDATEVIRTIOSCSICONTROLLERREQUEST'].fields_by_name['virtio_scsi_controller']._serialized_options = b'\342A\001\002' + _globals['_UPDATEVIRTIOSCSICONTROLLERREQUEST'].fields_by_name['update_mask']._options = None + _globals['_UPDATEVIRTIOSCSICONTROLLERREQUEST'].fields_by_name['update_mask']._serialized_options = b'\342A\001\001' + _globals['_UPDATEVIRTIOSCSICONTROLLERREQUEST'].fields_by_name['allow_missing']._options = None + _globals['_UPDATEVIRTIOSCSICONTROLLERREQUEST'].fields_by_name['allow_missing']._serialized_options = b'\342A\001\001' + _globals['_LISTVIRTIOSCSICONTROLLERSREQUEST'].fields_by_name['parent']._options = None + _globals['_LISTVIRTIOSCSICONTROLLERSREQUEST'].fields_by_name['parent']._serialized_options = b'\342A\001\002\372A)\022\'opi_api.storage.v1/VirtioScsiController' + _globals['_LISTVIRTIOSCSICONTROLLERSREQUEST'].fields_by_name['page_size']._options = None + _globals['_LISTVIRTIOSCSICONTROLLERSREQUEST'].fields_by_name['page_size']._serialized_options = b'\342A\001\001' + _globals['_LISTVIRTIOSCSICONTROLLERSREQUEST'].fields_by_name['page_token']._options = None + _globals['_LISTVIRTIOSCSICONTROLLERSREQUEST'].fields_by_name['page_token']._serialized_options = b'\342A\001\001' + _globals['_GETVIRTIOSCSICONTROLLERREQUEST'].fields_by_name['name']._options = None + _globals['_GETVIRTIOSCSICONTROLLERREQUEST'].fields_by_name['name']._serialized_options = b'\342A\001\002\372A)\n\'opi_api.storage.v1/VirtioScsiController' + _globals['_STATSVIRTIOSCSICONTROLLERREQUEST'].fields_by_name['name']._options = None + _globals['_STATSVIRTIOSCSICONTROLLERREQUEST'].fields_by_name['name']._serialized_options = b'\342A\001\002\372A)\n\'opi_api.storage.v1/VirtioScsiController' + _globals['_CREATEVIRTIOSCSILUNREQUEST'].fields_by_name['virtio_scsi_lun']._options = None + _globals['_CREATEVIRTIOSCSILUNREQUEST'].fields_by_name['virtio_scsi_lun']._serialized_options = b'\342A\001\002' + _globals['_CREATEVIRTIOSCSILUNREQUEST'].fields_by_name['virtio_scsi_lun_id']._options = None + _globals['_CREATEVIRTIOSCSILUNREQUEST'].fields_by_name['virtio_scsi_lun_id']._serialized_options = b'\342A\001\001' + _globals['_DELETEVIRTIOSCSILUNREQUEST'].fields_by_name['name']._options = None + _globals['_DELETEVIRTIOSCSILUNREQUEST'].fields_by_name['name']._serialized_options = b'\342A\001\002\372A\"\n opi_api.storage.v1/VirtioScsiLun' + _globals['_DELETEVIRTIOSCSILUNREQUEST'].fields_by_name['allow_missing']._options = None + _globals['_DELETEVIRTIOSCSILUNREQUEST'].fields_by_name['allow_missing']._serialized_options = b'\342A\001\001' + _globals['_UPDATEVIRTIOSCSILUNREQUEST'].fields_by_name['virtio_scsi_lun']._options = None + _globals['_UPDATEVIRTIOSCSILUNREQUEST'].fields_by_name['virtio_scsi_lun']._serialized_options = b'\342A\001\002' + _globals['_UPDATEVIRTIOSCSILUNREQUEST'].fields_by_name['update_mask']._options = None + _globals['_UPDATEVIRTIOSCSILUNREQUEST'].fields_by_name['update_mask']._serialized_options = b'\342A\001\001' + _globals['_UPDATEVIRTIOSCSILUNREQUEST'].fields_by_name['allow_missing']._options = None + _globals['_UPDATEVIRTIOSCSILUNREQUEST'].fields_by_name['allow_missing']._serialized_options = b'\342A\001\001' + _globals['_LISTVIRTIOSCSILUNSREQUEST'].fields_by_name['parent']._options = None + _globals['_LISTVIRTIOSCSILUNSREQUEST'].fields_by_name['parent']._serialized_options = b'\342A\001\002\372A\"\022 opi_api.storage.v1/VirtioScsiLun' + _globals['_LISTVIRTIOSCSILUNSREQUEST'].fields_by_name['page_size']._options = None + _globals['_LISTVIRTIOSCSILUNSREQUEST'].fields_by_name['page_size']._serialized_options = b'\342A\001\001' + _globals['_LISTVIRTIOSCSILUNSREQUEST'].fields_by_name['page_token']._options = None + _globals['_LISTVIRTIOSCSILUNSREQUEST'].fields_by_name['page_token']._serialized_options = b'\342A\001\001' + _globals['_GETVIRTIOSCSILUNREQUEST'].fields_by_name['name']._options = None + _globals['_GETVIRTIOSCSILUNREQUEST'].fields_by_name['name']._serialized_options = b'\342A\001\002\372A\"\n opi_api.storage.v1/VirtioScsiLun' + _globals['_STATSVIRTIOSCSILUNREQUEST'].fields_by_name['name']._options = None + _globals['_STATSVIRTIOSCSILUNREQUEST'].fields_by_name['name']._serialized_options = b'\342A\001\002\372A\"\n opi_api.storage.v1/VirtioScsiLun' + _globals['_STATSVIRTIOSCSILUNREQUEST'].fields_by_name['controller_name_ref']._options = None + _globals['_STATSVIRTIOSCSILUNREQUEST'].fields_by_name['controller_name_ref']._serialized_options = b'\342A\001\001' + _globals['_FRONTENDVIRTIOSCSISERVICE'].methods_by_name['CreateVirtioScsiTarget']._options = None + _globals['_FRONTENDVIRTIOSCSISERVICE'].methods_by_name['CreateVirtioScsiTarget']._serialized_options = b'\332A(virtio_scsi_target,virtio_scsi_target_id\202\323\344\223\002+\"\025/v1/virtioScsiTargets:\022virtio_scsi_target' + _globals['_FRONTENDVIRTIOSCSISERVICE'].methods_by_name['DeleteVirtioScsiTarget']._options = None + _globals['_FRONTENDVIRTIOSCSISERVICE'].methods_by_name['DeleteVirtioScsiTarget']._serialized_options = b'\332A\004name\202\323\344\223\002 *\036/v1/{name=virtioScsiTargets/*}' + _globals['_FRONTENDVIRTIOSCSISERVICE'].methods_by_name['UpdateVirtioScsiTarget']._options = None + _globals['_FRONTENDVIRTIOSCSISERVICE'].methods_by_name['UpdateVirtioScsiTarget']._serialized_options = b'\332A\036virtio_scsi_target,update_mask\202\323\344\223\002G21/v1/{virtio_scsi_target.name=virtioScsiTargets/*}:\022virtio_scsi_target' + _globals['_FRONTENDVIRTIOSCSISERVICE'].methods_by_name['ListVirtioScsiTargets']._options = None + _globals['_FRONTENDVIRTIOSCSISERVICE'].methods_by_name['ListVirtioScsiTargets']._serialized_options = b'\332A\006parent\202\323\344\223\002 \022\036/v1/{parent=virtioScsiTargets}' + _globals['_FRONTENDVIRTIOSCSISERVICE'].methods_by_name['GetVirtioScsiTarget']._options = None + _globals['_FRONTENDVIRTIOSCSISERVICE'].methods_by_name['GetVirtioScsiTarget']._serialized_options = b'\332A\004name\202\323\344\223\002 \022\036/v1/{name=virtioScsiTargets/*}' + _globals['_FRONTENDVIRTIOSCSISERVICE'].methods_by_name['StatsVirtioScsiTarget']._options = None + _globals['_FRONTENDVIRTIOSCSISERVICE'].methods_by_name['StatsVirtioScsiTarget']._serialized_options = b'\332A\004name\202\323\344\223\002&\022$/v1/{name=virtioScsiTargets/*}:stats' + _globals['_FRONTENDVIRTIOSCSISERVICE'].methods_by_name['CreateVirtioScsiController']._options = None + _globals['_FRONTENDVIRTIOSCSISERVICE'].methods_by_name['CreateVirtioScsiController']._serialized_options = b'\332A0virtio_scsi_controller,virtio_scsi_controller_id\202\323\344\223\0023\"\031/v1/virtioScsiControllers:\026virtio_scsi_controller' + _globals['_FRONTENDVIRTIOSCSISERVICE'].methods_by_name['DeleteVirtioScsiController']._options = None + _globals['_FRONTENDVIRTIOSCSISERVICE'].methods_by_name['DeleteVirtioScsiController']._serialized_options = b'\332A\004name\202\323\344\223\002$*\"/v1/{name=virtioScsiControllers/*}' + _globals['_FRONTENDVIRTIOSCSISERVICE'].methods_by_name['UpdateVirtioScsiController']._options = None + _globals['_FRONTENDVIRTIOSCSISERVICE'].methods_by_name['UpdateVirtioScsiController']._serialized_options = b'\332A\"virtio_scsi_controller,update_mask\202\323\344\223\002S29/v1/{virtio_scsi_controller.name=virtioScsiControllers/*}:\026virtio_scsi_controller' + _globals['_FRONTENDVIRTIOSCSISERVICE'].methods_by_name['ListVirtioScsiControllers']._options = None + _globals['_FRONTENDVIRTIOSCSISERVICE'].methods_by_name['ListVirtioScsiControllers']._serialized_options = b'\332A\006parent\202\323\344\223\002$\022\"/v1/{parent=virtioScsiControllers}' + _globals['_FRONTENDVIRTIOSCSISERVICE'].methods_by_name['GetVirtioScsiController']._options = None + _globals['_FRONTENDVIRTIOSCSISERVICE'].methods_by_name['GetVirtioScsiController']._serialized_options = b'\332A\004name\202\323\344\223\002$\022\"/v1/{name=virtioScsiControllers/*}' + _globals['_FRONTENDVIRTIOSCSISERVICE'].methods_by_name['StatsVirtioScsiController']._options = None + _globals['_FRONTENDVIRTIOSCSISERVICE'].methods_by_name['StatsVirtioScsiController']._serialized_options = b'\332A\004name\202\323\344\223\002*\022(/v1/{name=virtioScsiControllers/*}:stats' + _globals['_FRONTENDVIRTIOSCSISERVICE'].methods_by_name['CreateVirtioScsiLun']._options = None + _globals['_FRONTENDVIRTIOSCSISERVICE'].methods_by_name['CreateVirtioScsiLun']._serialized_options = b'\332A\"virtio_scsi_lun,virtio_scsi_lun_id\202\323\344\223\002%\"\022/v1/virtioScsiLuns:\017virtio_scsi_lun' + _globals['_FRONTENDVIRTIOSCSISERVICE'].methods_by_name['DeleteVirtioScsiLun']._options = None + _globals['_FRONTENDVIRTIOSCSISERVICE'].methods_by_name['DeleteVirtioScsiLun']._serialized_options = b'\332A\004name\202\323\344\223\002\035*\033/v1/{name=virtioScsiLuns/*}' + _globals['_FRONTENDVIRTIOSCSISERVICE'].methods_by_name['UpdateVirtioScsiLun']._options = None + _globals['_FRONTENDVIRTIOSCSISERVICE'].methods_by_name['UpdateVirtioScsiLun']._serialized_options = b'\332A\033virtio_scsi_lun,update_mask\202\323\344\223\002>2+/v1/{virtio_scsi_lun.name=virtioScsiLuns/*}:\017virtio_scsi_lun' + _globals['_FRONTENDVIRTIOSCSISERVICE'].methods_by_name['ListVirtioScsiLuns']._options = None + _globals['_FRONTENDVIRTIOSCSISERVICE'].methods_by_name['ListVirtioScsiLuns']._serialized_options = b'\332A\006parent\202\323\344\223\002\035\022\033/v1/{parent=virtioScsiLuns}' + _globals['_FRONTENDVIRTIOSCSISERVICE'].methods_by_name['GetVirtioScsiLun']._options = None + _globals['_FRONTENDVIRTIOSCSISERVICE'].methods_by_name['GetVirtioScsiLun']._serialized_options = b'\332A\004name\202\323\344\223\002\035\022\033/v1/{name=virtioScsiLuns/*}' + _globals['_FRONTENDVIRTIOSCSISERVICE'].methods_by_name['StatsVirtioScsiLun']._options = None + _globals['_FRONTENDVIRTIOSCSISERVICE'].methods_by_name['StatsVirtioScsiLun']._serialized_options = b'\332A\004name\202\323\344\223\002#\022!/v1/{name=virtioScsiLuns/*}:stats' + _globals['_VIRTIOSCSITARGET']._serialized_start=246 + _globals['_VIRTIOSCSITARGET']._serialized_end=430 + _globals['_VIRTIOSCSICONTROLLER']._serialized_start=433 + _globals['_VIRTIOSCSICONTROLLER']._serialized_end=798 + _globals['_VIRTIOSCSILUN']._serialized_start=801 + _globals['_VIRTIOSCSILUN']._serialized_end=1029 + _globals['_CREATEVIRTIOSCSITARGETREQUEST']._serialized_start=1032 + _globals['_CREATEVIRTIOSCSITARGETREQUEST']._serialized_end=1210 + _globals['_DELETEVIRTIOSCSITARGETREQUEST']._serialized_start=1213 + _globals['_DELETEVIRTIOSCSITARGETREQUEST']._serialized_end=1353 + _globals['_UPDATEVIRTIOSCSITARGETREQUEST']._serialized_start=1356 + _globals['_UPDATEVIRTIOSCSITARGETREQUEST']._serialized_end=1587 + _globals['_LISTVIRTIOSCSITARGETSREQUEST']._serialized_start=1590 + _globals['_LISTVIRTIOSCSITARGETSREQUEST']._serialized_end=1762 + _globals['_LISTVIRTIOSCSITARGETSRESPONSE']._serialized_start=1765 + _globals['_LISTVIRTIOSCSITARGETSRESPONSE']._serialized_end=1922 + _globals['_GETVIRTIOSCSITARGETREQUEST']._serialized_start=1924 + _globals['_GETVIRTIOSCSITARGETREQUEST']._serialized_end=2018 + _globals['_STATSVIRTIOSCSITARGETREQUEST']._serialized_start=2020 + _globals['_STATSVIRTIOSCSITARGETREQUEST']._serialized_end=2116 + _globals['_STATSVIRTIOSCSITARGETRESPONSE']._serialized_start=2118 + _globals['_STATSVIRTIOSCSITARGETRESPONSE']._serialized_end=2204 + _globals['_CREATEVIRTIOSCSICONTROLLERREQUEST']._serialized_start=2207 + _globals['_CREATEVIRTIOSCSICONTROLLERREQUEST']._serialized_end=2409 + _globals['_DELETEVIRTIOSCSICONTROLLERREQUEST']._serialized_start=2412 + _globals['_DELETEVIRTIOSCSICONTROLLERREQUEST']._serialized_end=2560 + _globals['_UPDATEVIRTIOSCSICONTROLLERREQUEST']._serialized_start=2563 + _globals['_UPDATEVIRTIOSCSICONTROLLERREQUEST']._serialized_end=2810 + _globals['_LISTVIRTIOSCSICONTROLLERSREQUEST']._serialized_start=2813 + _globals['_LISTVIRTIOSCSICONTROLLERSREQUEST']._serialized_end=2993 + _globals['_LISTVIRTIOSCSICONTROLLERSRESPONSE']._serialized_start=2996 + _globals['_LISTVIRTIOSCSICONTROLLERSRESPONSE']._serialized_end=3169 + _globals['_GETVIRTIOSCSICONTROLLERREQUEST']._serialized_start=3171 + _globals['_GETVIRTIOSCSICONTROLLERREQUEST']._serialized_end=3273 + _globals['_STATSVIRTIOSCSICONTROLLERREQUEST']._serialized_start=3275 + _globals['_STATSVIRTIOSCSICONTROLLERREQUEST']._serialized_end=3379 + _globals['_STATSVIRTIOSCSICONTROLLERRESPONSE']._serialized_start=3381 + _globals['_STATSVIRTIOSCSICONTROLLERRESPONSE']._serialized_end=3471 + _globals['_CREATEVIRTIOSCSILUNREQUEST']._serialized_start=3474 + _globals['_CREATEVIRTIOSCSILUNREQUEST']._serialized_end=3634 + _globals['_DELETEVIRTIOSCSILUNREQUEST']._serialized_start=3637 + _globals['_DELETEVIRTIOSCSILUNREQUEST']._serialized_end=3771 + _globals['_UPDATEVIRTIOSCSILUNREQUEST']._serialized_start=3774 + _globals['_UPDATEVIRTIOSCSILUNREQUEST']._serialized_end=3993 + _globals['_LISTVIRTIOSCSILUNSREQUEST']._serialized_start=3996 + _globals['_LISTVIRTIOSCSILUNSREQUEST']._serialized_end=4162 + _globals['_LISTVIRTIOSCSILUNSRESPONSE']._serialized_start=4165 + _globals['_LISTVIRTIOSCSILUNSRESPONSE']._serialized_end=4310 + _globals['_GETVIRTIOSCSILUNREQUEST']._serialized_start=4312 + _globals['_GETVIRTIOSCSILUNREQUEST']._serialized_end=4400 + _globals['_STATSVIRTIOSCSILUNREQUEST']._serialized_start=4403 + _globals['_STATSVIRTIOSCSILUNREQUEST']._serialized_end=4547 + _globals['_STATSVIRTIOSCSILUNRESPONSE']._serialized_start=4549 + _globals['_STATSVIRTIOSCSILUNRESPONSE']._serialized_end=4632 + _globals['_FRONTENDVIRTIOSCSISERVICE']._serialized_start=4635 + _globals['_FRONTENDVIRTIOSCSISERVICE']._serialized_end=7991 # @@protoc_insertion_point(module_scope) diff --git a/storage/v1alpha1/gen/python/middleend_encryption_pb2.py b/storage/v1alpha1/gen/python/middleend_encryption_pb2.py index 438cf1c6..0a1361b1 100644 --- a/storage/v1alpha1/gen/python/middleend_encryption_pb2.py +++ b/storage/v1alpha1/gen/python/middleend_encryption_pb2.py @@ -1,11 +1,12 @@ # -*- coding: utf-8 -*- # Generated by the protocol buffer compiler. DO NOT EDIT! # source: middleend_encryption.proto +# Protobuf Python Version: 4.25.2 """Generated protocol buffer code.""" -from google.protobuf.internal import builder as _builder from google.protobuf import descriptor as _descriptor from google.protobuf import descriptor_pool as _descriptor_pool from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder # @@protoc_insertion_point(imports) _sym_db = _symbol_database.Default() @@ -20,78 +21,78 @@ from google.protobuf import field_mask_pb2 as google_dot_protobuf_dot_field__mask__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1amiddleend_encryption.proto\x12\x12opi_api.storage.v1\x1a\x0fopicommon.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\"\xf4\x01\n\x0f\x45ncryptedVolume\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x08\x12\x1c\n\x0fvolume_name_ref\x18\x02 \x01(\tB\x03\xe0\x41\x02\x12\x10\n\x03key\x18\x03 \x01(\x0c\x42\x03\xe0\x41\x02\x12\x37\n\x06\x63ipher\x18\x04 \x01(\x0e\x32\".opi_api.storage.v1.EncryptionTypeB\x03\xe0\x41\x02:e\xea\x41\x62\n\"opi_api.storage.v1/EncryptedVolume\x12\x19\x65ncryptedVolumes/{volume}*\x10\x65ncryptedVolumes2\x0f\x65ncryptedVolume\"\x84\x01\n\x1c\x43reateEncryptedVolumeRequest\x12\x42\n\x10\x65ncrypted_volume\x18\x01 \x01(\x0b\x32#.opi_api.storage.v1.EncryptedVolumeB\x03\xe0\x41\x02\x12 \n\x13\x65ncrypted_volume_id\x18\x02 \x01(\tB\x03\xe0\x41\x01\"t\n\x1c\x44\x65leteEncryptedVolumeRequest\x12\x38\n\x04name\x18\x01 \x01(\tB*\xe0\x41\x02\xfa\x41$\n\"opi_api.storage.v1/EncryptedVolume\x12\x1a\n\rallow_missing\x18\x02 \x01(\x08\x42\x03\xe0\x41\x01\"\xb4\x01\n\x1cUpdateEncryptedVolumeRequest\x12\x42\n\x10\x65ncrypted_volume\x18\x01 \x01(\x0b\x32#.opi_api.storage.v1.EncryptedVolumeB\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\"\x8a\x01\n\x1bListEncryptedVolumesRequest\x12:\n\x06parent\x18\x01 \x01(\tB*\xe0\x41\x02\xfa\x41$\x12\"opi_api.storage.v1/EncryptedVolume\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\"w\n\x1cListEncryptedVolumesResponse\x12>\n\x11\x65ncrypted_volumes\x18\x01 \x03(\x0b\x32#.opi_api.storage.v1.EncryptedVolume\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"U\n\x19GetEncryptedVolumeRequest\x12\x38\n\x04name\x18\x01 \x01(\tB*\xe0\x41\x02\xfa\x41$\n\"opi_api.storage.v1/EncryptedVolume\"W\n\x1bStatsEncryptedVolumeRequest\x12\x38\n\x04name\x18\x01 \x01(\tB*\xe0\x41\x02\xfa\x41$\n\"opi_api.storage.v1/EncryptedVolume\"N\n\x1cStatsEncryptedVolumeResponse\x12.\n\x05stats\x18\x01 \x01(\x0b\x32\x1f.opi_api.storage.v1.VolumeStats2\xbc\x08\n\x1aMiddleendEncryptionService\x12\xc5\x01\n\x15\x43reateEncryptedVolume\x12\x30.opi_api.storage.v1.CreateEncryptedVolumeRequest\x1a#.opi_api.storage.v1.EncryptedVolume\"U\x82\xd3\xe4\x93\x02(\"\x14/v1/encryptedVolumes:\x10\x65ncrypted_volume\xda\x41$encrypted_volume,encrypted_volume_id\x12\x8f\x01\n\x15\x44\x65leteEncryptedVolume\x12\x30.opi_api.storage.v1.DeleteEncryptedVolumeRequest\x1a\x16.google.protobuf.Empty\",\x82\xd3\xe4\x93\x02\x1f*\x1d/v1/{name=encryptedVolumes/*}\xda\x41\x04name\x12\xd7\x01\n\x15UpdateEncryptedVolume\x12\x30.opi_api.storage.v1.UpdateEncryptedVolumeRequest\x1a#.opi_api.storage.v1.EncryptedVolume\"g\x82\xd3\xe4\x93\x02\x42\x32./v1/{encrypted_volume.name=encryptedVolumes/*}:\x10\x65ncrypted_volume\xda\x41\x1c\x65ncrypted_volume,update_mask\x12\xa0\x01\n\x14ListEncryptedVolumes\x12/.opi_api.storage.v1.ListEncryptedVolumesRequest\x1a\x30.opi_api.storage.v1.ListEncryptedVolumesResponse\"%\x82\xd3\xe4\x93\x02\x16\x12\x14/v1/{parent=volumes}\xda\x41\x06parent\x12\x96\x01\n\x12GetEncryptedVolume\x12-.opi_api.storage.v1.GetEncryptedVolumeRequest\x1a#.opi_api.storage.v1.EncryptedVolume\",\x82\xd3\xe4\x93\x02\x1f\x12\x1d/v1/{name=encryptedVolumes/*}\xda\x41\x04name\x12\xad\x01\n\x14StatsEncryptedVolume\x12/.opi_api.storage.v1.StatsEncryptedVolumeRequest\x1a\x30.opi_api.storage.v1.StatsEncryptedVolumeResponse\"2\x82\xd3\xe4\x93\x02%\x12#/v1/{name=encryptedVolumes/*}:stats\xda\x41\x04nameBg\n\x12opi_api.storage.v1B\x18MiddleendEncryptionProtoP\x01Z5github.com/opiproject/opi-api/storage/v1alpha1/gen/gob\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1amiddleend_encryption.proto\x12\x12opi_api.storage.v1\x1a\x0fopicommon.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\"\x9a\x02\n\x0f\x45ncryptedVolume\x12\x18\n\x04name\x18\x01 \x01(\tB\x04\xe2\x41\x01\x08R\x04name\x12,\n\x0fvolume_name_ref\x18\x02 \x01(\tB\x04\xe2\x41\x01\x02R\rvolumeNameRef\x12\x16\n\x03key\x18\x03 \x01(\x0c\x42\x04\xe2\x41\x01\x02R\x03key\x12@\n\x06\x63ipher\x18\x04 \x01(\x0e\x32\".opi_api.storage.v1.EncryptionTypeB\x04\xe2\x41\x01\x02R\x06\x63ipher:e\xea\x41\x62\n\"opi_api.storage.v1/EncryptedVolume\x12\x19\x65ncryptedVolumes/{volume}*\x10\x65ncryptedVolumes2\x0f\x65ncryptedVolume\"\xaa\x01\n\x1c\x43reateEncryptedVolumeRequest\x12T\n\x10\x65ncrypted_volume\x18\x01 \x01(\x0b\x32#.opi_api.storage.v1.EncryptedVolumeB\x04\xe2\x41\x01\x02R\x0f\x65ncryptedVolume\x12\x34\n\x13\x65ncrypted_volume_id\x18\x02 \x01(\tB\x04\xe2\x41\x01\x01R\x11\x65ncryptedVolumeId\"\x8a\x01\n\x1c\x44\x65leteEncryptedVolumeRequest\x12?\n\x04name\x18\x01 \x01(\tB+\xe2\x41\x01\x02\xfa\x41$\n\"opi_api.storage.v1/EncryptedVolumeR\x04name\x12)\n\rallow_missing\x18\x02 \x01(\x08\x42\x04\xe2\x41\x01\x01R\x0c\x61llowMissing\"\xe2\x01\n\x1cUpdateEncryptedVolumeRequest\x12T\n\x10\x65ncrypted_volume\x18\x01 \x01(\x0b\x32#.opi_api.storage.v1.EncryptedVolumeB\x04\xe2\x41\x01\x02R\x0f\x65ncryptedVolume\x12\x41\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x04\xe2\x41\x01\x01R\nupdateMask\x12)\n\rallow_missing\x18\x03 \x01(\x08\x42\x04\xe2\x41\x01\x01R\x0c\x61llowMissing\"\xaa\x01\n\x1bListEncryptedVolumesRequest\x12\x43\n\x06parent\x18\x01 \x01(\tB+\xe2\x41\x01\x02\xfa\x41$\x12\"opi_api.storage.v1/EncryptedVolumeR\x06parent\x12!\n\tpage_size\x18\x02 \x01(\x05\x42\x04\xe2\x41\x01\x01R\x08pageSize\x12#\n\npage_token\x18\x03 \x01(\tB\x04\xe2\x41\x01\x01R\tpageToken\"\x98\x01\n\x1cListEncryptedVolumesResponse\x12P\n\x11\x65ncrypted_volumes\x18\x01 \x03(\x0b\x32#.opi_api.storage.v1.EncryptedVolumeR\x10\x65ncryptedVolumes\x12&\n\x0fnext_page_token\x18\x02 \x01(\tR\rnextPageToken\"\\\n\x19GetEncryptedVolumeRequest\x12?\n\x04name\x18\x01 \x01(\tB+\xe2\x41\x01\x02\xfa\x41$\n\"opi_api.storage.v1/EncryptedVolumeR\x04name\"^\n\x1bStatsEncryptedVolumeRequest\x12?\n\x04name\x18\x01 \x01(\tB+\xe2\x41\x01\x02\xfa\x41$\n\"opi_api.storage.v1/EncryptedVolumeR\x04name\"U\n\x1cStatsEncryptedVolumeResponse\x12\x35\n\x05stats\x18\x01 \x01(\x0b\x32\x1f.opi_api.storage.v1.VolumeStatsR\x05stats2\xbc\x08\n\x1aMiddleendEncryptionService\x12\xc5\x01\n\x15\x43reateEncryptedVolume\x12\x30.opi_api.storage.v1.CreateEncryptedVolumeRequest\x1a#.opi_api.storage.v1.EncryptedVolume\"U\xda\x41$encrypted_volume,encrypted_volume_id\x82\xd3\xe4\x93\x02(\"\x14/v1/encryptedVolumes:\x10\x65ncrypted_volume\x12\x8f\x01\n\x15\x44\x65leteEncryptedVolume\x12\x30.opi_api.storage.v1.DeleteEncryptedVolumeRequest\x1a\x16.google.protobuf.Empty\",\xda\x41\x04name\x82\xd3\xe4\x93\x02\x1f*\x1d/v1/{name=encryptedVolumes/*}\x12\xd7\x01\n\x15UpdateEncryptedVolume\x12\x30.opi_api.storage.v1.UpdateEncryptedVolumeRequest\x1a#.opi_api.storage.v1.EncryptedVolume\"g\xda\x41\x1c\x65ncrypted_volume,update_mask\x82\xd3\xe4\x93\x02\x42\x32./v1/{encrypted_volume.name=encryptedVolumes/*}:\x10\x65ncrypted_volume\x12\xa0\x01\n\x14ListEncryptedVolumes\x12/.opi_api.storage.v1.ListEncryptedVolumesRequest\x1a\x30.opi_api.storage.v1.ListEncryptedVolumesResponse\"%\xda\x41\x06parent\x82\xd3\xe4\x93\x02\x16\x12\x14/v1/{parent=volumes}\x12\x96\x01\n\x12GetEncryptedVolume\x12-.opi_api.storage.v1.GetEncryptedVolumeRequest\x1a#.opi_api.storage.v1.EncryptedVolume\",\xda\x41\x04name\x82\xd3\xe4\x93\x02\x1f\x12\x1d/v1/{name=encryptedVolumes/*}\x12\xad\x01\n\x14StatsEncryptedVolume\x12/.opi_api.storage.v1.StatsEncryptedVolumeRequest\x1a\x30.opi_api.storage.v1.StatsEncryptedVolumeResponse\"2\xda\x41\x04name\x82\xd3\xe4\x93\x02%\x12#/v1/{name=encryptedVolumes/*}:statsBg\n\x12opi_api.storage.v1B\x18MiddleendEncryptionProtoP\x01Z5github.com/opiproject/opi-api/storage/v1alpha1/gen/gob\x06proto3') -_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals()) -_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'middleend_encryption_pb2', globals()) +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'middleend_encryption_pb2', _globals) if _descriptor._USE_C_DESCRIPTORS == False: - - DESCRIPTOR._options = None - DESCRIPTOR._serialized_options = b'\n\022opi_api.storage.v1B\030MiddleendEncryptionProtoP\001Z5github.com/opiproject/opi-api/storage/v1alpha1/gen/go' - _ENCRYPTEDVOLUME.fields_by_name['name']._options = None - _ENCRYPTEDVOLUME.fields_by_name['name']._serialized_options = b'\340A\010' - _ENCRYPTEDVOLUME.fields_by_name['volume_name_ref']._options = None - _ENCRYPTEDVOLUME.fields_by_name['volume_name_ref']._serialized_options = b'\340A\002' - _ENCRYPTEDVOLUME.fields_by_name['key']._options = None - _ENCRYPTEDVOLUME.fields_by_name['key']._serialized_options = b'\340A\002' - _ENCRYPTEDVOLUME.fields_by_name['cipher']._options = None - _ENCRYPTEDVOLUME.fields_by_name['cipher']._serialized_options = b'\340A\002' - _ENCRYPTEDVOLUME._options = None - _ENCRYPTEDVOLUME._serialized_options = b'\352Ab\n\"opi_api.storage.v1/EncryptedVolume\022\031encryptedVolumes/{volume}*\020encryptedVolumes2\017encryptedVolume' - _CREATEENCRYPTEDVOLUMEREQUEST.fields_by_name['encrypted_volume']._options = None - _CREATEENCRYPTEDVOLUMEREQUEST.fields_by_name['encrypted_volume']._serialized_options = b'\340A\002' - _CREATEENCRYPTEDVOLUMEREQUEST.fields_by_name['encrypted_volume_id']._options = None - _CREATEENCRYPTEDVOLUMEREQUEST.fields_by_name['encrypted_volume_id']._serialized_options = b'\340A\001' - _DELETEENCRYPTEDVOLUMEREQUEST.fields_by_name['name']._options = None - _DELETEENCRYPTEDVOLUMEREQUEST.fields_by_name['name']._serialized_options = b'\340A\002\372A$\n\"opi_api.storage.v1/EncryptedVolume' - _DELETEENCRYPTEDVOLUMEREQUEST.fields_by_name['allow_missing']._options = None - _DELETEENCRYPTEDVOLUMEREQUEST.fields_by_name['allow_missing']._serialized_options = b'\340A\001' - _UPDATEENCRYPTEDVOLUMEREQUEST.fields_by_name['encrypted_volume']._options = None - _UPDATEENCRYPTEDVOLUMEREQUEST.fields_by_name['encrypted_volume']._serialized_options = b'\340A\002' - _UPDATEENCRYPTEDVOLUMEREQUEST.fields_by_name['update_mask']._options = None - _UPDATEENCRYPTEDVOLUMEREQUEST.fields_by_name['update_mask']._serialized_options = b'\340A\001' - _UPDATEENCRYPTEDVOLUMEREQUEST.fields_by_name['allow_missing']._options = None - _UPDATEENCRYPTEDVOLUMEREQUEST.fields_by_name['allow_missing']._serialized_options = b'\340A\001' - _LISTENCRYPTEDVOLUMESREQUEST.fields_by_name['parent']._options = None - _LISTENCRYPTEDVOLUMESREQUEST.fields_by_name['parent']._serialized_options = b'\340A\002\372A$\022\"opi_api.storage.v1/EncryptedVolume' - _LISTENCRYPTEDVOLUMESREQUEST.fields_by_name['page_size']._options = None - _LISTENCRYPTEDVOLUMESREQUEST.fields_by_name['page_size']._serialized_options = b'\340A\001' - _LISTENCRYPTEDVOLUMESREQUEST.fields_by_name['page_token']._options = None - _LISTENCRYPTEDVOLUMESREQUEST.fields_by_name['page_token']._serialized_options = b'\340A\001' - _GETENCRYPTEDVOLUMEREQUEST.fields_by_name['name']._options = None - _GETENCRYPTEDVOLUMEREQUEST.fields_by_name['name']._serialized_options = b'\340A\002\372A$\n\"opi_api.storage.v1/EncryptedVolume' - _STATSENCRYPTEDVOLUMEREQUEST.fields_by_name['name']._options = None - _STATSENCRYPTEDVOLUMEREQUEST.fields_by_name['name']._serialized_options = b'\340A\002\372A$\n\"opi_api.storage.v1/EncryptedVolume' - _MIDDLEENDENCRYPTIONSERVICE.methods_by_name['CreateEncryptedVolume']._options = None - _MIDDLEENDENCRYPTIONSERVICE.methods_by_name['CreateEncryptedVolume']._serialized_options = b'\202\323\344\223\002(\"\024/v1/encryptedVolumes:\020encrypted_volume\332A$encrypted_volume,encrypted_volume_id' - _MIDDLEENDENCRYPTIONSERVICE.methods_by_name['DeleteEncryptedVolume']._options = None - _MIDDLEENDENCRYPTIONSERVICE.methods_by_name['DeleteEncryptedVolume']._serialized_options = b'\202\323\344\223\002\037*\035/v1/{name=encryptedVolumes/*}\332A\004name' - _MIDDLEENDENCRYPTIONSERVICE.methods_by_name['UpdateEncryptedVolume']._options = None - _MIDDLEENDENCRYPTIONSERVICE.methods_by_name['UpdateEncryptedVolume']._serialized_options = b'\202\323\344\223\002B2./v1/{encrypted_volume.name=encryptedVolumes/*}:\020encrypted_volume\332A\034encrypted_volume,update_mask' - _MIDDLEENDENCRYPTIONSERVICE.methods_by_name['ListEncryptedVolumes']._options = None - _MIDDLEENDENCRYPTIONSERVICE.methods_by_name['ListEncryptedVolumes']._serialized_options = b'\202\323\344\223\002\026\022\024/v1/{parent=volumes}\332A\006parent' - _MIDDLEENDENCRYPTIONSERVICE.methods_by_name['GetEncryptedVolume']._options = None - _MIDDLEENDENCRYPTIONSERVICE.methods_by_name['GetEncryptedVolume']._serialized_options = b'\202\323\344\223\002\037\022\035/v1/{name=encryptedVolumes/*}\332A\004name' - _MIDDLEENDENCRYPTIONSERVICE.methods_by_name['StatsEncryptedVolume']._options = None - _MIDDLEENDENCRYPTIONSERVICE.methods_by_name['StatsEncryptedVolume']._serialized_options = b'\202\323\344\223\002%\022#/v1/{name=encryptedVolumes/*}:stats\332A\004name' - _ENCRYPTEDVOLUME._serialized_start=246 - _ENCRYPTEDVOLUME._serialized_end=490 - _CREATEENCRYPTEDVOLUMEREQUEST._serialized_start=493 - _CREATEENCRYPTEDVOLUMEREQUEST._serialized_end=625 - _DELETEENCRYPTEDVOLUMEREQUEST._serialized_start=627 - _DELETEENCRYPTEDVOLUMEREQUEST._serialized_end=743 - _UPDATEENCRYPTEDVOLUMEREQUEST._serialized_start=746 - _UPDATEENCRYPTEDVOLUMEREQUEST._serialized_end=926 - _LISTENCRYPTEDVOLUMESREQUEST._serialized_start=929 - _LISTENCRYPTEDVOLUMESREQUEST._serialized_end=1067 - _LISTENCRYPTEDVOLUMESRESPONSE._serialized_start=1069 - _LISTENCRYPTEDVOLUMESRESPONSE._serialized_end=1188 - _GETENCRYPTEDVOLUMEREQUEST._serialized_start=1190 - _GETENCRYPTEDVOLUMEREQUEST._serialized_end=1275 - _STATSENCRYPTEDVOLUMEREQUEST._serialized_start=1277 - _STATSENCRYPTEDVOLUMEREQUEST._serialized_end=1364 - _STATSENCRYPTEDVOLUMERESPONSE._serialized_start=1366 - _STATSENCRYPTEDVOLUMERESPONSE._serialized_end=1444 - _MIDDLEENDENCRYPTIONSERVICE._serialized_start=1447 - _MIDDLEENDENCRYPTIONSERVICE._serialized_end=2531 + _globals['DESCRIPTOR']._options = None + _globals['DESCRIPTOR']._serialized_options = b'\n\022opi_api.storage.v1B\030MiddleendEncryptionProtoP\001Z5github.com/opiproject/opi-api/storage/v1alpha1/gen/go' + _globals['_ENCRYPTEDVOLUME'].fields_by_name['name']._options = None + _globals['_ENCRYPTEDVOLUME'].fields_by_name['name']._serialized_options = b'\342A\001\010' + _globals['_ENCRYPTEDVOLUME'].fields_by_name['volume_name_ref']._options = None + _globals['_ENCRYPTEDVOLUME'].fields_by_name['volume_name_ref']._serialized_options = b'\342A\001\002' + _globals['_ENCRYPTEDVOLUME'].fields_by_name['key']._options = None + _globals['_ENCRYPTEDVOLUME'].fields_by_name['key']._serialized_options = b'\342A\001\002' + _globals['_ENCRYPTEDVOLUME'].fields_by_name['cipher']._options = None + _globals['_ENCRYPTEDVOLUME'].fields_by_name['cipher']._serialized_options = b'\342A\001\002' + _globals['_ENCRYPTEDVOLUME']._options = None + _globals['_ENCRYPTEDVOLUME']._serialized_options = b'\352Ab\n\"opi_api.storage.v1/EncryptedVolume\022\031encryptedVolumes/{volume}*\020encryptedVolumes2\017encryptedVolume' + _globals['_CREATEENCRYPTEDVOLUMEREQUEST'].fields_by_name['encrypted_volume']._options = None + _globals['_CREATEENCRYPTEDVOLUMEREQUEST'].fields_by_name['encrypted_volume']._serialized_options = b'\342A\001\002' + _globals['_CREATEENCRYPTEDVOLUMEREQUEST'].fields_by_name['encrypted_volume_id']._options = None + _globals['_CREATEENCRYPTEDVOLUMEREQUEST'].fields_by_name['encrypted_volume_id']._serialized_options = b'\342A\001\001' + _globals['_DELETEENCRYPTEDVOLUMEREQUEST'].fields_by_name['name']._options = None + _globals['_DELETEENCRYPTEDVOLUMEREQUEST'].fields_by_name['name']._serialized_options = b'\342A\001\002\372A$\n\"opi_api.storage.v1/EncryptedVolume' + _globals['_DELETEENCRYPTEDVOLUMEREQUEST'].fields_by_name['allow_missing']._options = None + _globals['_DELETEENCRYPTEDVOLUMEREQUEST'].fields_by_name['allow_missing']._serialized_options = b'\342A\001\001' + _globals['_UPDATEENCRYPTEDVOLUMEREQUEST'].fields_by_name['encrypted_volume']._options = None + _globals['_UPDATEENCRYPTEDVOLUMEREQUEST'].fields_by_name['encrypted_volume']._serialized_options = b'\342A\001\002' + _globals['_UPDATEENCRYPTEDVOLUMEREQUEST'].fields_by_name['update_mask']._options = None + _globals['_UPDATEENCRYPTEDVOLUMEREQUEST'].fields_by_name['update_mask']._serialized_options = b'\342A\001\001' + _globals['_UPDATEENCRYPTEDVOLUMEREQUEST'].fields_by_name['allow_missing']._options = None + _globals['_UPDATEENCRYPTEDVOLUMEREQUEST'].fields_by_name['allow_missing']._serialized_options = b'\342A\001\001' + _globals['_LISTENCRYPTEDVOLUMESREQUEST'].fields_by_name['parent']._options = None + _globals['_LISTENCRYPTEDVOLUMESREQUEST'].fields_by_name['parent']._serialized_options = b'\342A\001\002\372A$\022\"opi_api.storage.v1/EncryptedVolume' + _globals['_LISTENCRYPTEDVOLUMESREQUEST'].fields_by_name['page_size']._options = None + _globals['_LISTENCRYPTEDVOLUMESREQUEST'].fields_by_name['page_size']._serialized_options = b'\342A\001\001' + _globals['_LISTENCRYPTEDVOLUMESREQUEST'].fields_by_name['page_token']._options = None + _globals['_LISTENCRYPTEDVOLUMESREQUEST'].fields_by_name['page_token']._serialized_options = b'\342A\001\001' + _globals['_GETENCRYPTEDVOLUMEREQUEST'].fields_by_name['name']._options = None + _globals['_GETENCRYPTEDVOLUMEREQUEST'].fields_by_name['name']._serialized_options = b'\342A\001\002\372A$\n\"opi_api.storage.v1/EncryptedVolume' + _globals['_STATSENCRYPTEDVOLUMEREQUEST'].fields_by_name['name']._options = None + _globals['_STATSENCRYPTEDVOLUMEREQUEST'].fields_by_name['name']._serialized_options = b'\342A\001\002\372A$\n\"opi_api.storage.v1/EncryptedVolume' + _globals['_MIDDLEENDENCRYPTIONSERVICE'].methods_by_name['CreateEncryptedVolume']._options = None + _globals['_MIDDLEENDENCRYPTIONSERVICE'].methods_by_name['CreateEncryptedVolume']._serialized_options = b'\332A$encrypted_volume,encrypted_volume_id\202\323\344\223\002(\"\024/v1/encryptedVolumes:\020encrypted_volume' + _globals['_MIDDLEENDENCRYPTIONSERVICE'].methods_by_name['DeleteEncryptedVolume']._options = None + _globals['_MIDDLEENDENCRYPTIONSERVICE'].methods_by_name['DeleteEncryptedVolume']._serialized_options = b'\332A\004name\202\323\344\223\002\037*\035/v1/{name=encryptedVolumes/*}' + _globals['_MIDDLEENDENCRYPTIONSERVICE'].methods_by_name['UpdateEncryptedVolume']._options = None + _globals['_MIDDLEENDENCRYPTIONSERVICE'].methods_by_name['UpdateEncryptedVolume']._serialized_options = b'\332A\034encrypted_volume,update_mask\202\323\344\223\002B2./v1/{encrypted_volume.name=encryptedVolumes/*}:\020encrypted_volume' + _globals['_MIDDLEENDENCRYPTIONSERVICE'].methods_by_name['ListEncryptedVolumes']._options = None + _globals['_MIDDLEENDENCRYPTIONSERVICE'].methods_by_name['ListEncryptedVolumes']._serialized_options = b'\332A\006parent\202\323\344\223\002\026\022\024/v1/{parent=volumes}' + _globals['_MIDDLEENDENCRYPTIONSERVICE'].methods_by_name['GetEncryptedVolume']._options = None + _globals['_MIDDLEENDENCRYPTIONSERVICE'].methods_by_name['GetEncryptedVolume']._serialized_options = b'\332A\004name\202\323\344\223\002\037\022\035/v1/{name=encryptedVolumes/*}' + _globals['_MIDDLEENDENCRYPTIONSERVICE'].methods_by_name['StatsEncryptedVolume']._options = None + _globals['_MIDDLEENDENCRYPTIONSERVICE'].methods_by_name['StatsEncryptedVolume']._serialized_options = b'\332A\004name\202\323\344\223\002%\022#/v1/{name=encryptedVolumes/*}:stats' + _globals['_ENCRYPTEDVOLUME']._serialized_start=246 + _globals['_ENCRYPTEDVOLUME']._serialized_end=528 + _globals['_CREATEENCRYPTEDVOLUMEREQUEST']._serialized_start=531 + _globals['_CREATEENCRYPTEDVOLUMEREQUEST']._serialized_end=701 + _globals['_DELETEENCRYPTEDVOLUMEREQUEST']._serialized_start=704 + _globals['_DELETEENCRYPTEDVOLUMEREQUEST']._serialized_end=842 + _globals['_UPDATEENCRYPTEDVOLUMEREQUEST']._serialized_start=845 + _globals['_UPDATEENCRYPTEDVOLUMEREQUEST']._serialized_end=1071 + _globals['_LISTENCRYPTEDVOLUMESREQUEST']._serialized_start=1074 + _globals['_LISTENCRYPTEDVOLUMESREQUEST']._serialized_end=1244 + _globals['_LISTENCRYPTEDVOLUMESRESPONSE']._serialized_start=1247 + _globals['_LISTENCRYPTEDVOLUMESRESPONSE']._serialized_end=1399 + _globals['_GETENCRYPTEDVOLUMEREQUEST']._serialized_start=1401 + _globals['_GETENCRYPTEDVOLUMEREQUEST']._serialized_end=1493 + _globals['_STATSENCRYPTEDVOLUMEREQUEST']._serialized_start=1495 + _globals['_STATSENCRYPTEDVOLUMEREQUEST']._serialized_end=1589 + _globals['_STATSENCRYPTEDVOLUMERESPONSE']._serialized_start=1591 + _globals['_STATSENCRYPTEDVOLUMERESPONSE']._serialized_end=1676 + _globals['_MIDDLEENDENCRYPTIONSERVICE']._serialized_start=1679 + _globals['_MIDDLEENDENCRYPTIONSERVICE']._serialized_end=2763 # @@protoc_insertion_point(module_scope) diff --git a/storage/v1alpha1/gen/python/middleend_qos_volume_pb2.py b/storage/v1alpha1/gen/python/middleend_qos_volume_pb2.py index 18c555ae..10459d9b 100644 --- a/storage/v1alpha1/gen/python/middleend_qos_volume_pb2.py +++ b/storage/v1alpha1/gen/python/middleend_qos_volume_pb2.py @@ -1,11 +1,12 @@ # -*- coding: utf-8 -*- # Generated by the protocol buffer compiler. DO NOT EDIT! # source: middleend_qos_volume.proto +# Protobuf Python Version: 4.25.2 """Generated protocol buffer code.""" -from google.protobuf.internal import builder as _builder from google.protobuf import descriptor as _descriptor from google.protobuf import descriptor_pool as _descriptor_pool from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder # @@protoc_insertion_point(imports) _sym_db = _symbol_database.Default() @@ -20,82 +21,82 @@ from google.protobuf import field_mask_pb2 as google_dot_protobuf_dot_field__mask__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1amiddleend_qos_volume.proto\x12\x12opi_api.storage.v1\x1a\x0fopicommon.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\"\xbc\x01\n\tQosVolume\x12\x11\n\x04name\x18\x01 \x01(\tB\x03\xe0\x41\x08\x12\x1c\n\x0fvolume_name_ref\x18\x02 \x01(\tB\x03\xe0\x41\x02\x12/\n\x06limits\x18\x03 \x01(\x0b\x32\x1a.opi_api.storage.v1.LimitsB\x03\xe0\x41\x02:M\xea\x41J\n\x1copi_api.storage.v1/QosVolume\x12\x13qosVolumes/{volume}*\nqosVolumes2\tqosVolume\"h\n\x06Limits\x12.\n\x03min\x18\x01 \x01(\x0b\x32\x1c.opi_api.storage.v1.QosLimitB\x03\xe0\x41\x01\x12.\n\x03max\x18\x02 \x01(\x0b\x32\x1c.opi_api.storage.v1.QosLimitB\x03\xe0\x41\x01\"l\n\x16\x43reateQosVolumeRequest\x12\x36\n\nqos_volume\x18\x01 \x01(\x0b\x32\x1d.opi_api.storage.v1.QosVolumeB\x03\xe0\x41\x02\x12\x1a\n\rqos_volume_id\x18\x02 \x01(\tB\x03\xe0\x41\x01\"h\n\x16\x44\x65leteQosVolumeRequest\x12\x32\n\x04name\x18\x01 \x01(\tB$\xe0\x41\x02\xfa\x41\x1e\n\x1copi_api.storage.v1/QosVolume\x12\x1a\n\rallow_missing\x18\x02 \x01(\x08\x42\x03\xe0\x41\x01\"\xa2\x01\n\x16UpdateQosVolumeRequest\x12\x36\n\nqos_volume\x18\x01 \x01(\x0b\x32\x1d.opi_api.storage.v1.QosVolumeB\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\x15ListQosVolumesRequest\x12\x34\n\x06parent\x18\x01 \x01(\tB$\xe0\x41\x02\xfa\x41\x1e\x12\x1copi_api.storage.v1/QosVolume\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\"e\n\x16ListQosVolumesResponse\x12\x32\n\x0bqos_volumes\x18\x01 \x03(\x0b\x32\x1d.opi_api.storage.v1.QosVolume\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"I\n\x13GetQosVolumeRequest\x12\x32\n\x04name\x18\x01 \x01(\tB$\xe0\x41\x02\xfa\x41\x1e\n\x1copi_api.storage.v1/QosVolume\"K\n\x15StatsQosVolumeRequest\x12\x32\n\x04name\x18\x01 \x01(\tB$\xe0\x41\x02\xfa\x41\x1e\n\x1copi_api.storage.v1/QosVolume\"H\n\x16StatsQosVolumeResponse\x12.\n\x05stats\x18\x01 \x01(\x0b\x32\x1f.opi_api.storage.v1.VolumeStats2\x91\x07\n\x19MiddleendQosVolumeService\x12\x9b\x01\n\x0f\x43reateQosVolume\x12*.opi_api.storage.v1.CreateQosVolumeRequest\x1a\x1d.opi_api.storage.v1.QosVolume\"=\x82\xd3\xe4\x93\x02\x1c\"\x0e/v1/qosVolumes:\nqos_volume\xda\x41\x18qos_volume,qos_volume_id\x12}\n\x0f\x44\x65leteQosVolume\x12*.opi_api.storage.v1.DeleteQosVolumeRequest\x1a\x16.google.protobuf.Empty\"&\x82\xd3\xe4\x93\x02\x19*\x17/v1/{name=qosVolumes/*}\xda\x41\x04name\x12\xad\x01\n\x0fUpdateQosVolume\x12*.opi_api.storage.v1.UpdateQosVolumeRequest\x1a\x1d.opi_api.storage.v1.QosVolume\"O\x82\xd3\xe4\x93\x02\x30\x32\"/v1/{qos_volume.name=qosVolumes/*}:\nqos_volume\xda\x41\x16qos_volume,update_mask\x12\x8e\x01\n\x0eListQosVolumes\x12).opi_api.storage.v1.ListQosVolumesRequest\x1a*.opi_api.storage.v1.ListQosVolumesResponse\"%\x82\xd3\xe4\x93\x02\x16\x12\x14/v1/{parent=volumes}\xda\x41\x06parent\x12~\n\x0cGetQosVolume\x12\'.opi_api.storage.v1.GetQosVolumeRequest\x1a\x1d.opi_api.storage.v1.QosVolume\"&\x82\xd3\xe4\x93\x02\x19\x12\x17/v1/{name=qosVolumes/*}\xda\x41\x04name\x12\x95\x01\n\x0eStatsQosVolume\x12).opi_api.storage.v1.StatsQosVolumeRequest\x1a*.opi_api.storage.v1.StatsQosVolumeResponse\",\x82\xd3\xe4\x93\x02\x1f\x12\x1d/v1/{name=qosVolumes/*}:stats\xda\x41\x04nameBf\n\x12opi_api.storage.v1B\x17MiddleendQosVolumeProtoP\x01Z5github.com/opiproject/opi-api/storage/v1alpha1/gen/gob\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1amiddleend_qos_volume.proto\x12\x12opi_api.storage.v1\x1a\x0fopicommon.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\"\xdc\x01\n\tQosVolume\x12\x18\n\x04name\x18\x01 \x01(\tB\x04\xe2\x41\x01\x08R\x04name\x12,\n\x0fvolume_name_ref\x18\x02 \x01(\tB\x04\xe2\x41\x01\x02R\rvolumeNameRef\x12\x38\n\x06limits\x18\x03 \x01(\x0b\x32\x1a.opi_api.storage.v1.LimitsB\x04\xe2\x41\x01\x02R\x06limits:M\xea\x41J\n\x1copi_api.storage.v1/QosVolume\x12\x13qosVolumes/{volume}*\nqosVolumes2\tqosVolume\"t\n\x06Limits\x12\x34\n\x03min\x18\x01 \x01(\x0b\x32\x1c.opi_api.storage.v1.QosLimitB\x04\xe2\x41\x01\x01R\x03min\x12\x34\n\x03max\x18\x02 \x01(\x0b\x32\x1c.opi_api.storage.v1.QosLimitB\x04\xe2\x41\x01\x01R\x03max\"\x86\x01\n\x16\x43reateQosVolumeRequest\x12\x42\n\nqos_volume\x18\x01 \x01(\x0b\x32\x1d.opi_api.storage.v1.QosVolumeB\x04\xe2\x41\x01\x02R\tqosVolume\x12(\n\rqos_volume_id\x18\x02 \x01(\tB\x04\xe2\x41\x01\x01R\x0bqosVolumeId\"~\n\x16\x44\x65leteQosVolumeRequest\x12\x39\n\x04name\x18\x01 \x01(\tB%\xe2\x41\x01\x02\xfa\x41\x1e\n\x1copi_api.storage.v1/QosVolumeR\x04name\x12)\n\rallow_missing\x18\x02 \x01(\x08\x42\x04\xe2\x41\x01\x01R\x0c\x61llowMissing\"\xca\x01\n\x16UpdateQosVolumeRequest\x12\x42\n\nqos_volume\x18\x01 \x01(\x0b\x32\x1d.opi_api.storage.v1.QosVolumeB\x04\xe2\x41\x01\x02R\tqosVolume\x12\x41\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x04\xe2\x41\x01\x01R\nupdateMask\x12)\n\rallow_missing\x18\x03 \x01(\x08\x42\x04\xe2\x41\x01\x01R\x0c\x61llowMissing\"\x9e\x01\n\x15ListQosVolumesRequest\x12=\n\x06parent\x18\x01 \x01(\tB%\xe2\x41\x01\x02\xfa\x41\x1e\x12\x1copi_api.storage.v1/QosVolumeR\x06parent\x12!\n\tpage_size\x18\x02 \x01(\x05\x42\x04\xe2\x41\x01\x01R\x08pageSize\x12#\n\npage_token\x18\x03 \x01(\tB\x04\xe2\x41\x01\x01R\tpageToken\"\x80\x01\n\x16ListQosVolumesResponse\x12>\n\x0bqos_volumes\x18\x01 \x03(\x0b\x32\x1d.opi_api.storage.v1.QosVolumeR\nqosVolumes\x12&\n\x0fnext_page_token\x18\x02 \x01(\tR\rnextPageToken\"P\n\x13GetQosVolumeRequest\x12\x39\n\x04name\x18\x01 \x01(\tB%\xe2\x41\x01\x02\xfa\x41\x1e\n\x1copi_api.storage.v1/QosVolumeR\x04name\"R\n\x15StatsQosVolumeRequest\x12\x39\n\x04name\x18\x01 \x01(\tB%\xe2\x41\x01\x02\xfa\x41\x1e\n\x1copi_api.storage.v1/QosVolumeR\x04name\"O\n\x16StatsQosVolumeResponse\x12\x35\n\x05stats\x18\x01 \x01(\x0b\x32\x1f.opi_api.storage.v1.VolumeStatsR\x05stats2\x91\x07\n\x19MiddleendQosVolumeService\x12\x9b\x01\n\x0f\x43reateQosVolume\x12*.opi_api.storage.v1.CreateQosVolumeRequest\x1a\x1d.opi_api.storage.v1.QosVolume\"=\xda\x41\x18qos_volume,qos_volume_id\x82\xd3\xe4\x93\x02\x1c\"\x0e/v1/qosVolumes:\nqos_volume\x12}\n\x0f\x44\x65leteQosVolume\x12*.opi_api.storage.v1.DeleteQosVolumeRequest\x1a\x16.google.protobuf.Empty\"&\xda\x41\x04name\x82\xd3\xe4\x93\x02\x19*\x17/v1/{name=qosVolumes/*}\x12\xad\x01\n\x0fUpdateQosVolume\x12*.opi_api.storage.v1.UpdateQosVolumeRequest\x1a\x1d.opi_api.storage.v1.QosVolume\"O\xda\x41\x16qos_volume,update_mask\x82\xd3\xe4\x93\x02\x30\x32\"/v1/{qos_volume.name=qosVolumes/*}:\nqos_volume\x12\x8e\x01\n\x0eListQosVolumes\x12).opi_api.storage.v1.ListQosVolumesRequest\x1a*.opi_api.storage.v1.ListQosVolumesResponse\"%\xda\x41\x06parent\x82\xd3\xe4\x93\x02\x16\x12\x14/v1/{parent=volumes}\x12~\n\x0cGetQosVolume\x12\'.opi_api.storage.v1.GetQosVolumeRequest\x1a\x1d.opi_api.storage.v1.QosVolume\"&\xda\x41\x04name\x82\xd3\xe4\x93\x02\x19\x12\x17/v1/{name=qosVolumes/*}\x12\x95\x01\n\x0eStatsQosVolume\x12).opi_api.storage.v1.StatsQosVolumeRequest\x1a*.opi_api.storage.v1.StatsQosVolumeResponse\",\xda\x41\x04name\x82\xd3\xe4\x93\x02\x1f\x12\x1d/v1/{name=qosVolumes/*}:statsBf\n\x12opi_api.storage.v1B\x17MiddleendQosVolumeProtoP\x01Z5github.com/opiproject/opi-api/storage/v1alpha1/gen/gob\x06proto3') -_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals()) -_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'middleend_qos_volume_pb2', globals()) +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'middleend_qos_volume_pb2', _globals) if _descriptor._USE_C_DESCRIPTORS == False: - - DESCRIPTOR._options = None - DESCRIPTOR._serialized_options = b'\n\022opi_api.storage.v1B\027MiddleendQosVolumeProtoP\001Z5github.com/opiproject/opi-api/storage/v1alpha1/gen/go' - _QOSVOLUME.fields_by_name['name']._options = None - _QOSVOLUME.fields_by_name['name']._serialized_options = b'\340A\010' - _QOSVOLUME.fields_by_name['volume_name_ref']._options = None - _QOSVOLUME.fields_by_name['volume_name_ref']._serialized_options = b'\340A\002' - _QOSVOLUME.fields_by_name['limits']._options = None - _QOSVOLUME.fields_by_name['limits']._serialized_options = b'\340A\002' - _QOSVOLUME._options = None - _QOSVOLUME._serialized_options = b'\352AJ\n\034opi_api.storage.v1/QosVolume\022\023qosVolumes/{volume}*\nqosVolumes2\tqosVolume' - _LIMITS.fields_by_name['min']._options = None - _LIMITS.fields_by_name['min']._serialized_options = b'\340A\001' - _LIMITS.fields_by_name['max']._options = None - _LIMITS.fields_by_name['max']._serialized_options = b'\340A\001' - _CREATEQOSVOLUMEREQUEST.fields_by_name['qos_volume']._options = None - _CREATEQOSVOLUMEREQUEST.fields_by_name['qos_volume']._serialized_options = b'\340A\002' - _CREATEQOSVOLUMEREQUEST.fields_by_name['qos_volume_id']._options = None - _CREATEQOSVOLUMEREQUEST.fields_by_name['qos_volume_id']._serialized_options = b'\340A\001' - _DELETEQOSVOLUMEREQUEST.fields_by_name['name']._options = None - _DELETEQOSVOLUMEREQUEST.fields_by_name['name']._serialized_options = b'\340A\002\372A\036\n\034opi_api.storage.v1/QosVolume' - _DELETEQOSVOLUMEREQUEST.fields_by_name['allow_missing']._options = None - _DELETEQOSVOLUMEREQUEST.fields_by_name['allow_missing']._serialized_options = b'\340A\001' - _UPDATEQOSVOLUMEREQUEST.fields_by_name['qos_volume']._options = None - _UPDATEQOSVOLUMEREQUEST.fields_by_name['qos_volume']._serialized_options = b'\340A\002' - _UPDATEQOSVOLUMEREQUEST.fields_by_name['update_mask']._options = None - _UPDATEQOSVOLUMEREQUEST.fields_by_name['update_mask']._serialized_options = b'\340A\001' - _UPDATEQOSVOLUMEREQUEST.fields_by_name['allow_missing']._options = None - _UPDATEQOSVOLUMEREQUEST.fields_by_name['allow_missing']._serialized_options = b'\340A\001' - _LISTQOSVOLUMESREQUEST.fields_by_name['parent']._options = None - _LISTQOSVOLUMESREQUEST.fields_by_name['parent']._serialized_options = b'\340A\002\372A\036\022\034opi_api.storage.v1/QosVolume' - _LISTQOSVOLUMESREQUEST.fields_by_name['page_size']._options = None - _LISTQOSVOLUMESREQUEST.fields_by_name['page_size']._serialized_options = b'\340A\001' - _LISTQOSVOLUMESREQUEST.fields_by_name['page_token']._options = None - _LISTQOSVOLUMESREQUEST.fields_by_name['page_token']._serialized_options = b'\340A\001' - _GETQOSVOLUMEREQUEST.fields_by_name['name']._options = None - _GETQOSVOLUMEREQUEST.fields_by_name['name']._serialized_options = b'\340A\002\372A\036\n\034opi_api.storage.v1/QosVolume' - _STATSQOSVOLUMEREQUEST.fields_by_name['name']._options = None - _STATSQOSVOLUMEREQUEST.fields_by_name['name']._serialized_options = b'\340A\002\372A\036\n\034opi_api.storage.v1/QosVolume' - _MIDDLEENDQOSVOLUMESERVICE.methods_by_name['CreateQosVolume']._options = None - _MIDDLEENDQOSVOLUMESERVICE.methods_by_name['CreateQosVolume']._serialized_options = b'\202\323\344\223\002\034\"\016/v1/qosVolumes:\nqos_volume\332A\030qos_volume,qos_volume_id' - _MIDDLEENDQOSVOLUMESERVICE.methods_by_name['DeleteQosVolume']._options = None - _MIDDLEENDQOSVOLUMESERVICE.methods_by_name['DeleteQosVolume']._serialized_options = b'\202\323\344\223\002\031*\027/v1/{name=qosVolumes/*}\332A\004name' - _MIDDLEENDQOSVOLUMESERVICE.methods_by_name['UpdateQosVolume']._options = None - _MIDDLEENDQOSVOLUMESERVICE.methods_by_name['UpdateQosVolume']._serialized_options = b'\202\323\344\223\00202\"/v1/{qos_volume.name=qosVolumes/*}:\nqos_volume\332A\026qos_volume,update_mask' - _MIDDLEENDQOSVOLUMESERVICE.methods_by_name['ListQosVolumes']._options = None - _MIDDLEENDQOSVOLUMESERVICE.methods_by_name['ListQosVolumes']._serialized_options = b'\202\323\344\223\002\026\022\024/v1/{parent=volumes}\332A\006parent' - _MIDDLEENDQOSVOLUMESERVICE.methods_by_name['GetQosVolume']._options = None - _MIDDLEENDQOSVOLUMESERVICE.methods_by_name['GetQosVolume']._serialized_options = b'\202\323\344\223\002\031\022\027/v1/{name=qosVolumes/*}\332A\004name' - _MIDDLEENDQOSVOLUMESERVICE.methods_by_name['StatsQosVolume']._options = None - _MIDDLEENDQOSVOLUMESERVICE.methods_by_name['StatsQosVolume']._serialized_options = b'\202\323\344\223\002\037\022\035/v1/{name=qosVolumes/*}:stats\332A\004name' - _QOSVOLUME._serialized_start=246 - _QOSVOLUME._serialized_end=434 - _LIMITS._serialized_start=436 - _LIMITS._serialized_end=540 - _CREATEQOSVOLUMEREQUEST._serialized_start=542 - _CREATEQOSVOLUMEREQUEST._serialized_end=650 - _DELETEQOSVOLUMEREQUEST._serialized_start=652 - _DELETEQOSVOLUMEREQUEST._serialized_end=756 - _UPDATEQOSVOLUMEREQUEST._serialized_start=759 - _UPDATEQOSVOLUMEREQUEST._serialized_end=921 - _LISTQOSVOLUMESREQUEST._serialized_start=923 - _LISTQOSVOLUMESREQUEST._serialized_end=1049 - _LISTQOSVOLUMESRESPONSE._serialized_start=1051 - _LISTQOSVOLUMESRESPONSE._serialized_end=1152 - _GETQOSVOLUMEREQUEST._serialized_start=1154 - _GETQOSVOLUMEREQUEST._serialized_end=1227 - _STATSQOSVOLUMEREQUEST._serialized_start=1229 - _STATSQOSVOLUMEREQUEST._serialized_end=1304 - _STATSQOSVOLUMERESPONSE._serialized_start=1306 - _STATSQOSVOLUMERESPONSE._serialized_end=1378 - _MIDDLEENDQOSVOLUMESERVICE._serialized_start=1381 - _MIDDLEENDQOSVOLUMESERVICE._serialized_end=2294 + _globals['DESCRIPTOR']._options = None + _globals['DESCRIPTOR']._serialized_options = b'\n\022opi_api.storage.v1B\027MiddleendQosVolumeProtoP\001Z5github.com/opiproject/opi-api/storage/v1alpha1/gen/go' + _globals['_QOSVOLUME'].fields_by_name['name']._options = None + _globals['_QOSVOLUME'].fields_by_name['name']._serialized_options = b'\342A\001\010' + _globals['_QOSVOLUME'].fields_by_name['volume_name_ref']._options = None + _globals['_QOSVOLUME'].fields_by_name['volume_name_ref']._serialized_options = b'\342A\001\002' + _globals['_QOSVOLUME'].fields_by_name['limits']._options = None + _globals['_QOSVOLUME'].fields_by_name['limits']._serialized_options = b'\342A\001\002' + _globals['_QOSVOLUME']._options = None + _globals['_QOSVOLUME']._serialized_options = b'\352AJ\n\034opi_api.storage.v1/QosVolume\022\023qosVolumes/{volume}*\nqosVolumes2\tqosVolume' + _globals['_LIMITS'].fields_by_name['min']._options = None + _globals['_LIMITS'].fields_by_name['min']._serialized_options = b'\342A\001\001' + _globals['_LIMITS'].fields_by_name['max']._options = None + _globals['_LIMITS'].fields_by_name['max']._serialized_options = b'\342A\001\001' + _globals['_CREATEQOSVOLUMEREQUEST'].fields_by_name['qos_volume']._options = None + _globals['_CREATEQOSVOLUMEREQUEST'].fields_by_name['qos_volume']._serialized_options = b'\342A\001\002' + _globals['_CREATEQOSVOLUMEREQUEST'].fields_by_name['qos_volume_id']._options = None + _globals['_CREATEQOSVOLUMEREQUEST'].fields_by_name['qos_volume_id']._serialized_options = b'\342A\001\001' + _globals['_DELETEQOSVOLUMEREQUEST'].fields_by_name['name']._options = None + _globals['_DELETEQOSVOLUMEREQUEST'].fields_by_name['name']._serialized_options = b'\342A\001\002\372A\036\n\034opi_api.storage.v1/QosVolume' + _globals['_DELETEQOSVOLUMEREQUEST'].fields_by_name['allow_missing']._options = None + _globals['_DELETEQOSVOLUMEREQUEST'].fields_by_name['allow_missing']._serialized_options = b'\342A\001\001' + _globals['_UPDATEQOSVOLUMEREQUEST'].fields_by_name['qos_volume']._options = None + _globals['_UPDATEQOSVOLUMEREQUEST'].fields_by_name['qos_volume']._serialized_options = b'\342A\001\002' + _globals['_UPDATEQOSVOLUMEREQUEST'].fields_by_name['update_mask']._options = None + _globals['_UPDATEQOSVOLUMEREQUEST'].fields_by_name['update_mask']._serialized_options = b'\342A\001\001' + _globals['_UPDATEQOSVOLUMEREQUEST'].fields_by_name['allow_missing']._options = None + _globals['_UPDATEQOSVOLUMEREQUEST'].fields_by_name['allow_missing']._serialized_options = b'\342A\001\001' + _globals['_LISTQOSVOLUMESREQUEST'].fields_by_name['parent']._options = None + _globals['_LISTQOSVOLUMESREQUEST'].fields_by_name['parent']._serialized_options = b'\342A\001\002\372A\036\022\034opi_api.storage.v1/QosVolume' + _globals['_LISTQOSVOLUMESREQUEST'].fields_by_name['page_size']._options = None + _globals['_LISTQOSVOLUMESREQUEST'].fields_by_name['page_size']._serialized_options = b'\342A\001\001' + _globals['_LISTQOSVOLUMESREQUEST'].fields_by_name['page_token']._options = None + _globals['_LISTQOSVOLUMESREQUEST'].fields_by_name['page_token']._serialized_options = b'\342A\001\001' + _globals['_GETQOSVOLUMEREQUEST'].fields_by_name['name']._options = None + _globals['_GETQOSVOLUMEREQUEST'].fields_by_name['name']._serialized_options = b'\342A\001\002\372A\036\n\034opi_api.storage.v1/QosVolume' + _globals['_STATSQOSVOLUMEREQUEST'].fields_by_name['name']._options = None + _globals['_STATSQOSVOLUMEREQUEST'].fields_by_name['name']._serialized_options = b'\342A\001\002\372A\036\n\034opi_api.storage.v1/QosVolume' + _globals['_MIDDLEENDQOSVOLUMESERVICE'].methods_by_name['CreateQosVolume']._options = None + _globals['_MIDDLEENDQOSVOLUMESERVICE'].methods_by_name['CreateQosVolume']._serialized_options = b'\332A\030qos_volume,qos_volume_id\202\323\344\223\002\034\"\016/v1/qosVolumes:\nqos_volume' + _globals['_MIDDLEENDQOSVOLUMESERVICE'].methods_by_name['DeleteQosVolume']._options = None + _globals['_MIDDLEENDQOSVOLUMESERVICE'].methods_by_name['DeleteQosVolume']._serialized_options = b'\332A\004name\202\323\344\223\002\031*\027/v1/{name=qosVolumes/*}' + _globals['_MIDDLEENDQOSVOLUMESERVICE'].methods_by_name['UpdateQosVolume']._options = None + _globals['_MIDDLEENDQOSVOLUMESERVICE'].methods_by_name['UpdateQosVolume']._serialized_options = b'\332A\026qos_volume,update_mask\202\323\344\223\00202\"/v1/{qos_volume.name=qosVolumes/*}:\nqos_volume' + _globals['_MIDDLEENDQOSVOLUMESERVICE'].methods_by_name['ListQosVolumes']._options = None + _globals['_MIDDLEENDQOSVOLUMESERVICE'].methods_by_name['ListQosVolumes']._serialized_options = b'\332A\006parent\202\323\344\223\002\026\022\024/v1/{parent=volumes}' + _globals['_MIDDLEENDQOSVOLUMESERVICE'].methods_by_name['GetQosVolume']._options = None + _globals['_MIDDLEENDQOSVOLUMESERVICE'].methods_by_name['GetQosVolume']._serialized_options = b'\332A\004name\202\323\344\223\002\031\022\027/v1/{name=qosVolumes/*}' + _globals['_MIDDLEENDQOSVOLUMESERVICE'].methods_by_name['StatsQosVolume']._options = None + _globals['_MIDDLEENDQOSVOLUMESERVICE'].methods_by_name['StatsQosVolume']._serialized_options = b'\332A\004name\202\323\344\223\002\037\022\035/v1/{name=qosVolumes/*}:stats' + _globals['_QOSVOLUME']._serialized_start=246 + _globals['_QOSVOLUME']._serialized_end=466 + _globals['_LIMITS']._serialized_start=468 + _globals['_LIMITS']._serialized_end=584 + _globals['_CREATEQOSVOLUMEREQUEST']._serialized_start=587 + _globals['_CREATEQOSVOLUMEREQUEST']._serialized_end=721 + _globals['_DELETEQOSVOLUMEREQUEST']._serialized_start=723 + _globals['_DELETEQOSVOLUMEREQUEST']._serialized_end=849 + _globals['_UPDATEQOSVOLUMEREQUEST']._serialized_start=852 + _globals['_UPDATEQOSVOLUMEREQUEST']._serialized_end=1054 + _globals['_LISTQOSVOLUMESREQUEST']._serialized_start=1057 + _globals['_LISTQOSVOLUMESREQUEST']._serialized_end=1215 + _globals['_LISTQOSVOLUMESRESPONSE']._serialized_start=1218 + _globals['_LISTQOSVOLUMESRESPONSE']._serialized_end=1346 + _globals['_GETQOSVOLUMEREQUEST']._serialized_start=1348 + _globals['_GETQOSVOLUMEREQUEST']._serialized_end=1428 + _globals['_STATSQOSVOLUMEREQUEST']._serialized_start=1430 + _globals['_STATSQOSVOLUMEREQUEST']._serialized_end=1512 + _globals['_STATSQOSVOLUMERESPONSE']._serialized_start=1514 + _globals['_STATSQOSVOLUMERESPONSE']._serialized_end=1593 + _globals['_MIDDLEENDQOSVOLUMESERVICE']._serialized_start=1596 + _globals['_MIDDLEENDQOSVOLUMESERVICE']._serialized_end=2509 # @@protoc_insertion_point(module_scope) diff --git a/storage/v1alpha1/gen/python/opicommon_pb2.py b/storage/v1alpha1/gen/python/opicommon_pb2.py index 035daac4..4c0b3118 100644 --- a/storage/v1alpha1/gen/python/opicommon_pb2.py +++ b/storage/v1alpha1/gen/python/opicommon_pb2.py @@ -1,11 +1,12 @@ # -*- coding: utf-8 -*- # Generated by the protocol buffer compiler. DO NOT EDIT! # source: opicommon.proto +# Protobuf Python Version: 4.25.2 """Generated protocol buffer code.""" -from google.protobuf.internal import builder as _builder from google.protobuf import descriptor as _descriptor from google.protobuf import descriptor_pool as _descriptor_pool from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder # @@protoc_insertion_point(imports) _sym_db = _symbol_database.Default() @@ -15,68 +16,68 @@ 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\"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') +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\"\xe7\x01\n\x0bPciEndpoint\x12:\n\x07port_id\x18\x01 \x01(\x0b\x32\x1b.google.protobuf.Int32ValueB\x04\xe2\x41\x01\x02R\x06portId\x12N\n\x11physical_function\x18\x02 \x01(\x0b\x32\x1b.google.protobuf.Int32ValueB\x04\xe2\x41\x01\x02R\x10physicalFunction\x12L\n\x10virtual_function\x18\x03 \x01(\x0b\x32\x1b.google.protobuf.Int32ValueB\x04\xe2\x41\x01\x02R\x0fvirtualFunction\"\x94\x01\n\x0f\x46\x61\x62ricsEndpoint\x12\x1c\n\x06traddr\x18\x01 \x01(\tB\x04\xe2\x41\x01\x02R\x06traddr\x12\x1e\n\x07trsvcid\x18\x02 \x01(\tB\x04\xe2\x41\x01\x02R\x07trsvcid\x12\x43\n\x06\x61\x64rfam\x18\x03 \x01(\x0e\x32%.opi_api.storage.v1.NvmeAddressFamilyB\x04\xe2\x41\x01\x02R\x06\x61\x64rfam\"\xc9\x03\n\x0bVolumeStats\x12.\n\x10read_bytes_count\x18\x01 \x01(\x05\x42\x04\xe2\x41\x01\x03R\x0ereadBytesCount\x12*\n\x0eread_ops_count\x18\x02 \x01(\x05\x42\x04\xe2\x41\x01\x03R\x0creadOpsCount\x12\x30\n\x11write_bytes_count\x18\x03 \x01(\x05\x42\x04\xe2\x41\x01\x03R\x0fwriteBytesCount\x12,\n\x0fwrite_ops_count\x18\x04 \x01(\x05\x42\x04\xe2\x41\x01\x03R\rwriteOpsCount\x12\x30\n\x11unmap_bytes_count\x18\x05 \x01(\x05\x42\x04\xe2\x41\x01\x03R\x0funmapBytesCount\x12,\n\x0funmap_ops_count\x18\x06 \x01(\x05\x42\x04\xe2\x41\x01\x03R\runmapOpsCount\x12\x32\n\x12read_latency_ticks\x18\x07 \x01(\x05\x42\x04\xe2\x41\x01\x03R\x10readLatencyTicks\x12\x34\n\x13write_latency_ticks\x18\x08 \x01(\x05\x42\x04\xe2\x41\x01\x03R\x11writeLatencyTicks\x12\x34\n\x13unmap_latency_ticks\x18\t \x01(\x05\x42\x04\xe2\x41\x01\x03R\x11unmapLatencyTicks\"\x98\x02\n\x08QosLimit\x12(\n\rrd_iops_kiops\x18\x01 \x01(\x03\x42\x04\xe2\x41\x01\x01R\x0brdIopsKiops\x12(\n\rwr_iops_kiops\x18\x02 \x01(\x03\x42\x04\xe2\x41\x01\x01R\x0bwrIopsKiops\x12(\n\rrw_iops_kiops\x18\x03 \x01(\x03\x42\x04\xe2\x41\x01\x01R\x0brwIopsKiops\x12.\n\x10rd_bandwidth_mbs\x18\x04 \x01(\x03\x42\x04\xe2\x41\x01\x01R\x0erdBandwidthMbs\x12.\n\x10wr_bandwidth_mbs\x18\x05 \x01(\x03\x42\x04\xe2\x41\x01\x01R\x0ewrBandwidthMbs\x12.\n\x10rw_bandwidth_mbs\x18\x06 \x01(\x03\x42\x04\xe2\x41\x01\x01R\x0erwBandwidthMbs*\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*\xcd\x01\n\x11NvmeTransportType\x12#\n\x1fNVME_TRANSPORT_TYPE_UNSPECIFIED\x10\x00\x12\x1a\n\x16NVME_TRANSPORT_TYPE_FC\x10\x01\x12\x1c\n\x18NVME_TRANSPORT_TYPE_PCIE\x10\x02\x12\x1c\n\x18NVME_TRANSPORT_TYPE_RDMA\x10\x03\x12\x1b\n\x17NVME_TRANSPORT_TYPE_TCP\x10\x04\x12\x1e\n\x1aNVME_TRANSPORT_TYPE_CUSTOM\x10\x05*\xd0\x01\n\x11NvmeAddressFamily\x12#\n\x1fNVME_ADDRESS_FAMILY_UNSPECIFIED\x10\x00\x12\x1c\n\x18NVME_ADDRESS_FAMILY_IPV4\x10\x01\x12\x1c\n\x18NVME_ADDRESS_FAMILY_IPV6\x10\x02\x12\x1a\n\x16NVME_ADDRESS_FAMILY_IB\x10\x03\x12\x1a\n\x16NVME_ADDRESS_FAMILY_FC\x10\x04\x12\"\n\x1eNVME_ADDRESS_FAMILY_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()) +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'opicommon_pb2', _globals) if _descriptor._USE_C_DESCRIPTORS == False: - - DESCRIPTOR._options = None - DESCRIPTOR._serialized_options = b'\n\022opi_api.storage.v1B\016OpiCommonProtoP\001Z5github.com/opiproject/opi-api/storage/v1alpha1/gen/go' - _PCIENDPOINT.fields_by_name['port_id']._options = None - _PCIENDPOINT.fields_by_name['port_id']._serialized_options = b'\340A\002' - _PCIENDPOINT.fields_by_name['physical_function']._options = None - _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 - _VOLUMESTATS.fields_by_name['read_ops_count']._serialized_options = b'\340A\003' - _VOLUMESTATS.fields_by_name['write_bytes_count']._options = None - _VOLUMESTATS.fields_by_name['write_bytes_count']._serialized_options = b'\340A\003' - _VOLUMESTATS.fields_by_name['write_ops_count']._options = None - _VOLUMESTATS.fields_by_name['write_ops_count']._serialized_options = b'\340A\003' - _VOLUMESTATS.fields_by_name['unmap_bytes_count']._options = None - _VOLUMESTATS.fields_by_name['unmap_bytes_count']._serialized_options = b'\340A\003' - _VOLUMESTATS.fields_by_name['unmap_ops_count']._options = None - _VOLUMESTATS.fields_by_name['unmap_ops_count']._serialized_options = b'\340A\003' - _VOLUMESTATS.fields_by_name['read_latency_ticks']._options = None - _VOLUMESTATS.fields_by_name['read_latency_ticks']._serialized_options = b'\340A\003' - _VOLUMESTATS.fields_by_name['write_latency_ticks']._options = None - _VOLUMESTATS.fields_by_name['write_latency_ticks']._serialized_options = b'\340A\003' - _VOLUMESTATS.fields_by_name['unmap_latency_ticks']._options = None - _VOLUMESTATS.fields_by_name['unmap_latency_ticks']._serialized_options = b'\340A\003' - _QOSLIMIT.fields_by_name['rd_iops_kiops']._options = None - _QOSLIMIT.fields_by_name['rd_iops_kiops']._serialized_options = b'\340A\001' - _QOSLIMIT.fields_by_name['wr_iops_kiops']._options = None - _QOSLIMIT.fields_by_name['wr_iops_kiops']._serialized_options = b'\340A\001' - _QOSLIMIT.fields_by_name['rw_iops_kiops']._options = None - _QOSLIMIT.fields_by_name['rw_iops_kiops']._serialized_options = b'\340A\001' - _QOSLIMIT.fields_by_name['rd_bandwidth_mbs']._options = None - _QOSLIMIT.fields_by_name['rd_bandwidth_mbs']._serialized_options = b'\340A\001' - _QOSLIMIT.fields_by_name['wr_bandwidth_mbs']._options = None - _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=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 - _FABRICSENDPOINT._serialized_start=292 - _FABRICSENDPOINT._serialized_end=412 - _VOLUMESTATS._serialized_start=415 - _VOLUMESTATS._serialized_end=713 - _QOSLIMIT._serialized_start=716 - _QOSLIMIT._serialized_end=903 + _globals['DESCRIPTOR']._options = None + _globals['DESCRIPTOR']._serialized_options = b'\n\022opi_api.storage.v1B\016OpiCommonProtoP\001Z5github.com/opiproject/opi-api/storage/v1alpha1/gen/go' + _globals['_PCIENDPOINT'].fields_by_name['port_id']._options = None + _globals['_PCIENDPOINT'].fields_by_name['port_id']._serialized_options = b'\342A\001\002' + _globals['_PCIENDPOINT'].fields_by_name['physical_function']._options = None + _globals['_PCIENDPOINT'].fields_by_name['physical_function']._serialized_options = b'\342A\001\002' + _globals['_PCIENDPOINT'].fields_by_name['virtual_function']._options = None + _globals['_PCIENDPOINT'].fields_by_name['virtual_function']._serialized_options = b'\342A\001\002' + _globals['_FABRICSENDPOINT'].fields_by_name['traddr']._options = None + _globals['_FABRICSENDPOINT'].fields_by_name['traddr']._serialized_options = b'\342A\001\002' + _globals['_FABRICSENDPOINT'].fields_by_name['trsvcid']._options = None + _globals['_FABRICSENDPOINT'].fields_by_name['trsvcid']._serialized_options = b'\342A\001\002' + _globals['_FABRICSENDPOINT'].fields_by_name['adrfam']._options = None + _globals['_FABRICSENDPOINT'].fields_by_name['adrfam']._serialized_options = b'\342A\001\002' + _globals['_VOLUMESTATS'].fields_by_name['read_bytes_count']._options = None + _globals['_VOLUMESTATS'].fields_by_name['read_bytes_count']._serialized_options = b'\342A\001\003' + _globals['_VOLUMESTATS'].fields_by_name['read_ops_count']._options = None + _globals['_VOLUMESTATS'].fields_by_name['read_ops_count']._serialized_options = b'\342A\001\003' + _globals['_VOLUMESTATS'].fields_by_name['write_bytes_count']._options = None + _globals['_VOLUMESTATS'].fields_by_name['write_bytes_count']._serialized_options = b'\342A\001\003' + _globals['_VOLUMESTATS'].fields_by_name['write_ops_count']._options = None + _globals['_VOLUMESTATS'].fields_by_name['write_ops_count']._serialized_options = b'\342A\001\003' + _globals['_VOLUMESTATS'].fields_by_name['unmap_bytes_count']._options = None + _globals['_VOLUMESTATS'].fields_by_name['unmap_bytes_count']._serialized_options = b'\342A\001\003' + _globals['_VOLUMESTATS'].fields_by_name['unmap_ops_count']._options = None + _globals['_VOLUMESTATS'].fields_by_name['unmap_ops_count']._serialized_options = b'\342A\001\003' + _globals['_VOLUMESTATS'].fields_by_name['read_latency_ticks']._options = None + _globals['_VOLUMESTATS'].fields_by_name['read_latency_ticks']._serialized_options = b'\342A\001\003' + _globals['_VOLUMESTATS'].fields_by_name['write_latency_ticks']._options = None + _globals['_VOLUMESTATS'].fields_by_name['write_latency_ticks']._serialized_options = b'\342A\001\003' + _globals['_VOLUMESTATS'].fields_by_name['unmap_latency_ticks']._options = None + _globals['_VOLUMESTATS'].fields_by_name['unmap_latency_ticks']._serialized_options = b'\342A\001\003' + _globals['_QOSLIMIT'].fields_by_name['rd_iops_kiops']._options = None + _globals['_QOSLIMIT'].fields_by_name['rd_iops_kiops']._serialized_options = b'\342A\001\001' + _globals['_QOSLIMIT'].fields_by_name['wr_iops_kiops']._options = None + _globals['_QOSLIMIT'].fields_by_name['wr_iops_kiops']._serialized_options = b'\342A\001\001' + _globals['_QOSLIMIT'].fields_by_name['rw_iops_kiops']._options = None + _globals['_QOSLIMIT'].fields_by_name['rw_iops_kiops']._serialized_options = b'\342A\001\001' + _globals['_QOSLIMIT'].fields_by_name['rd_bandwidth_mbs']._options = None + _globals['_QOSLIMIT'].fields_by_name['rd_bandwidth_mbs']._serialized_options = b'\342A\001\001' + _globals['_QOSLIMIT'].fields_by_name['wr_bandwidth_mbs']._options = None + _globals['_QOSLIMIT'].fields_by_name['wr_bandwidth_mbs']._serialized_options = b'\342A\001\001' + _globals['_QOSLIMIT'].fields_by_name['rw_bandwidth_mbs']._options = None + _globals['_QOSLIMIT'].fields_by_name['rw_bandwidth_mbs']._serialized_options = b'\342A\001\001' + _globals['_ENCRYPTIONTYPE']._serialized_start=1233 + _globals['_ENCRYPTIONTYPE']._serialized_end=1480 + _globals['_NVMETRANSPORTTYPE']._serialized_start=1483 + _globals['_NVMETRANSPORTTYPE']._serialized_end=1688 + _globals['_NVMEADDRESSFAMILY']._serialized_start=1691 + _globals['_NVMEADDRESSFAMILY']._serialized_end=1899 + _globals['_PCIENDPOINT']._serialized_start=105 + _globals['_PCIENDPOINT']._serialized_end=336 + _globals['_FABRICSENDPOINT']._serialized_start=339 + _globals['_FABRICSENDPOINT']._serialized_end=487 + _globals['_VOLUMESTATS']._serialized_start=490 + _globals['_VOLUMESTATS']._serialized_end=947 + _globals['_QOSLIMIT']._serialized_start=950 + _globals['_QOSLIMIT']._serialized_end=1230 # @@protoc_insertion_point(module_scope)