From c67d6caacce3bf1130ec21c5c1778b054730501c Mon Sep 17 00:00:00 2001 From: Akash Mukhopadhyay Date: Tue, 12 Jul 2022 14:47:48 -0700 Subject: [PATCH 1/6] Fixing Makefile with latest changes to protoc-gen-go-json and protoc --- Makefile | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/Makefile b/Makefile index 5d044cf..d34cf5d 100644 --- a/Makefile +++ b/Makefile @@ -21,7 +21,7 @@ export GOPATH # Only set PROTOC_VER if it has an empty value. ifeq (,$(strip $(PROTOC_VER))) -PROTOC_VER := 3.9.1 +PROTOC_VER := 3.14.0 endif PROTOC_OS := $(shell uname -s) @@ -36,14 +36,16 @@ endif PROTOC := ./protoc PROTOC_ZIP := protoc-$(PROTOC_VER)-$(PROTOC_OS)-$(PROTOC_ARCH).zip -PROTOC_URL := https://github.com/google/protobuf/releases/download/v$(PROTOC_VER)/$(PROTOC_ZIP) +PROTOC_URL := https://github.com/protocolbuffers/protobuf/releases/download/v$(PROTOC_VER)/$(PROTOC_ZIP) PROTOC_TMP_DIR := .protoc PROTOC_TMP_BIN := $(PROTOC_TMP_DIR)/bin/protoc +PROTOC_TMP_INC := $(PROTOC_TMP_DIR)/include $(PROTOC): -mkdir -p "$(PROTOC_TMP_DIR)" && \ curl -L $(PROTOC_URL) -o "$(PROTOC_TMP_DIR)/$(PROTOC_ZIP)" && \ - unzip "$(PROTOC_TMP_DIR)/$(PROTOC_ZIP)" -d "$(PROTOC_TMP_DIR)" && \ + unzip -o "$(PROTOC_TMP_DIR)/$(PROTOC_ZIP)" -d "$(PROTOC_TMP_DIR)" && \ + unzip -o "$(PROTOC_TMP_DIR)/$(PROTOC_ZIP)" -d "$(PROTOC_TMP_INC)/*" && \ chmod 0755 "$(PROTOC_TMP_BIN)" && \ cp -f "$(PROTOC_TMP_BIN)" "$@" stat "$@" > /dev/null 2>&1 @@ -77,7 +79,7 @@ $(PROTOC_GEN_GO): # for protoc-gen-go PROTOC_GEN_GO_JSON_PKG := github.com/mitchellh/protoc-gen-go-json PROTOC_GEN_GO_JSON := protoc-gen-go-json -$(PROTOC_GEN_GO_JSON): PROTOC_GEN_GO_JSON_VERSION := v1.0.0 +$(PROTOC_GEN_GO_JSON): PROTOC_GEN_GO_JSON_VERSION := v1.1.0 $(PROTOC_GEN_GO_JSON): mkdir -p $(dir $(GOPATH)/src/$(PROTOC_GEN_GO_JSON_PKG)) test -d $(GOPATH)/src/$(PROTOC_GEN_GO_JSON_PKG)/.git || git clone https://$(PROTOC_GEN_GO_JSON_PKG) $(GOPATH)/src/$(PROTOC_GEN_GO_JSON_PKG) @@ -170,7 +172,7 @@ $(COSI_GO_TMP): GO_OUT := plugins=grpc $(COSI_GO_TMP): GO_OUT := $(GO_OUT),Mgoogle/protobuf/descriptor.proto=github.com/golang/protobuf/protoc-gen-go/descriptor $(COSI_GO_TMP): GO_OUT := $(GO_OUT),Mgoogle/protobuf/wrappers.proto=$(PTYPES_PKG)/wrappers $(COSI_GO_TMP): GO_OUT := $(GO_OUT):"$(HERE)/$(COSI_BUILD)" -$(COSI_GO_TMP): GO_JSON_OUT := emit_defaults +$(COSI_GO_TMP): GO_JSON_OUT := emit_defaults=true $(COSI_GO_TMP): GO_JSON_OUT := $(GO_JSON_OUT):"$(HERE)/$(COSI_BUILD)" $(COSI_GO_TMP): GO_FAKE_OUT := emit_defaults $(COSI_GO_TMP): GO_FAKE_OUT := $(GO_FAKE_OUT),packagePath=sigs.k8s.io/container-object-storage-interface-spec From dc260730a958664a1e37cabb9d49757b976466c3 Mon Sep 17 00:00:00 2001 From: Akash Mukhopadhyay Date: Tue, 12 Jul 2022 14:51:24 -0700 Subject: [PATCH 2/6] Updating the spec document --- spec.md | 76 +++++++++++++++++++++++++++++---------------------------- 1 file changed, 39 insertions(+), 37 deletions(-) diff --git a/spec.md b/spec.md index 8f3e548..743b424 100644 --- a/spec.md +++ b/spec.md @@ -182,7 +182,7 @@ extend google.protobuf.ServiceOptions { service Identity { // This call is meant to retrieve the unique provisioner Identity. // This identity will have to be set in BucketRequest.Provisioner field in order to invoke this specific provisioner. - rpc ProvisionerGetInfo (ProvisionerGetInfoRequest) returns (ProvisionerGetInfoResponse) {} + rpc DriverGetInfo (DriverGetInfoRequest) returns (DriverGetInfoResponse) {} } service Provisioner { @@ -190,16 +190,16 @@ service Provisioner { // This call is idempotent // 1. If a bucket that matches both name and parameters already exists, then OK (success) must be returned. // 2. If a bucket by same name, but different parameters is provided, then the appropriate error code ALREADY_EXISTS must be returned. - rpc ProvisionerCreateBucket (ProvisionerCreateBucketRequest) returns (ProvisionerCreateBucketResponse) {} + rpc DriverCreateBucket (DriverCreateBucketRequest) returns (DriverCreateBucketResponse) {} // This call is made to delete the bucket in the backend. // If the bucket has already been deleted, then no error should be returned. - rpc ProvisionerDeleteBucket (ProvisionerDeleteBucketRequest) returns (ProvisionerDeleteBucketResponse) {} + rpc DriverDeleteBucket (DriverDeleteBucketRequest) returns (DriverDeleteBucketResponse) {} // This call grants access to an account. The account_name in the request shall be used as a unique identifier to create credentials. - // The account_id returned in the response will be used as the unique identifier for deleting this access when calling ProvisionerRevokeBucketAccess. - rpc ProvisionerGrantBucketAccess (ProvisionerGrantBucketAccessRequest) returns (ProvisionerGrantBucketAccessResponse); + // The account_id returned in the response will be used as the unique identifier for deleting this access when calling DriverRevokeBucketAccess. + rpc DriverGrantBucketAccess (DriverGrantBucketAccessRequest) returns (DriverGrantBucketAccessResponse); // This call revokes all access to a particular bucket from a principal. - rpc ProvisionerRevokeBucketAccess (ProvisionerRevokeBucketAccessRequest) returns (ProvisionerRevokeBucketAccessResponse); + rpc DriverRevokeBucketAccess (DriverRevokeBucketAccessRequest) returns (DriverRevokeBucketAccessResponse); } // S3SignatureVersion is the version of the signing algorithm for all s3 requests @@ -223,6 +223,14 @@ enum AnonymousBucketAccessMode { ReadWrite = 4; } +enum AuthenticationType { + UnknownAuthenticationType = 0; + // Default, KEY based authentication. + Key = 1; + // Storageaccount based authentication. + IAM = 2; +} + message S3 { // region denotes the geographical region where the S3 server is running string region = 1; @@ -252,11 +260,11 @@ message Protocol { } } -message ProvisionerGetInfoRequest { +message DriverGetInfoRequest { // Intentionally left blank } -message ProvisionerGetInfoResponse { +message DriverGetInfoResponse { // This field is REQUIRED // The name MUST follow domain name notation format // (https://tools.ietf.org/html/rfc1035#section-2.3.1). It SHOULD @@ -268,53 +276,52 @@ message ProvisionerGetInfoResponse { string name = 1; } -message ProvisionerCreateBucketRequest { +message DriverCreateBucketRequest { // This field is REQUIRED // name specifies the name of the bucket that should be created. string name = 1; - // This field is REQUIRED - // Protocol specific information required by the call is passed in as key,value pairs. - Protocol protocol = 2; - // This field is OPTIONAL // The caller should treat the values in parameters as opaque. // The receiver is responsible for parsing and validating the values. - map parameters = 3; + map parameters = 2; } -message ProvisionerCreateBucketResponse { +message DriverCreateBucketResponse { // bucket_id returned here is expected to be the globally unique - // identifier for the bucket in the object storage provider + // identifier for the bucket in the object storage provider. string bucket_id = 1; + + // bucket_info returned here stores the data specific to the + // bucket required by the object storage provider to connect to the bucket. + Protocol bucket_info = 2; } -message ProvisionerDeleteBucketRequest { +message DriverDeleteBucketRequest { // This field is REQUIRED // bucket_id is a globally unique identifier for the bucket // in the object storage provider string bucket_id = 1; } -message ProvisionerDeleteBucketResponse { +message DriverDeleteBucketResponse { // Intentionally left blank } -message ProvisionerGrantBucketAccessRequest { +message DriverGrantBucketAccessRequest { // This field is REQUIRED // bucket_id is a globally unique identifier for the bucket // in the object storage provider string bucket_id = 1; // This field is REQUIRED - // account_name is a identifier for object storage provider - // to ensure that multiple requests for the same account - // result in only one access token being created - string account_name = 2; + // name field is used to define the name of the bucket access object. + string name = 2; // This field is REQUIRED - // Requested Access policy, ex: {"Effect":"Allow","Action":"s3:PutObject","Resource":"arn:aws:s3:::profilepics/*"} - string access_policy = 3; + // Requested authentication type for the bucket access. + // Supported authentication types are KEY or IAM. + AuthenticationType authentication_type = 3; // This field is OPTIONAL // The caller should treat the values in parameters as opaque. @@ -322,18 +329,18 @@ message ProvisionerGrantBucketAccessRequest { map parameters = 4; } -message ProvisionerGrantBucketAccessResponse { - // This field is OPTIONAL +message DriverGrantBucketAccessResponse { + // This field is REQUIRED // This is the account_id that is being provided access. This will // be required later to revoke access. string account_id = 1; - // This field is OPTIONAL + // This field is REQUIRED // Credentials supplied for accessing the bucket ex: aws access key id and secret, etc. string credentials = 2; } -message ProvisionerRevokeBucketAccessRequest { +message DriverRevokeBucketAccessRequest { // This field is REQUIRED // bucket_id is a globally unique identifier for the bucket // in the object storage provider. @@ -344,7 +351,7 @@ message ProvisionerRevokeBucketAccessRequest { string account_id = 2; } -message ProvisionerRevokeBucketAccessResponse { +message DriverRevokeBucketAccessResponse { // Intentionally left blank } @@ -423,19 +430,14 @@ The general flow of the success case MAY be as follows (protos illustrated in YA request: response: name: org.foo.whizbang.super-plugin - version: blue-green - manifest: - baz: qaz ``` ``` -message ProvisionerGetInfoRequest { +message DriverGetInfoRequest { // Intentionally left blank } -message ProvisionerGetInfoResponse { +message DriverGetInfoResponse { string name = 1; - string version = 2; - map manifest = 3; } ``` From 20d555c9b584aa4bc116cb475232fc0d2cc6fafe Mon Sep 17 00:00:00 2001 From: Akash Mukhopadhyay Date: Tue, 12 Jul 2022 15:09:21 -0700 Subject: [PATCH 3/6] Updating the go version and the go.mod and go.sum file --- go.mod | 12 ++++++++++-- go.sum | 3 +++ 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/go.mod b/go.mod index 9840363..ad3d543 100644 --- a/go.mod +++ b/go.mod @@ -1,11 +1,19 @@ module sigs.k8s.io/container-object-storage-interface-spec -go 1.15 +go 1.18 require ( github.com/dave/jennifer v1.4.1 github.com/golang/protobuf v1.4.3 - golang.org/x/net v0.0.0-20191002035440-2ec189313ef0 // indirect google.golang.org/grpc v1.35.0 google.golang.org/protobuf v1.25.0 ) + +require ( + github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b // indirect + github.com/mitchellh/protoc-gen-go-json v1.1.0 // indirect + golang.org/x/net v0.0.0-20191002035440-2ec189313ef0 // indirect + golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a // indirect + golang.org/x/text v0.3.0 // indirect + google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013 // indirect +) diff --git a/go.sum b/go.sum index ac6afbc..7d412c5 100644 --- a/go.sum +++ b/go.sum @@ -31,9 +31,12 @@ github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/ github.com/google/go-cmp v0.5.0 h1:/QaMHBdZ26BB3SSst0Iwl10Epc+xhTquomWX0oZEB6w= github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/mitchellh/protoc-gen-go-json v1.1.0 h1:lEi1xtXyYKDwA8EB5u27+UUZOTznC4JpqVOKZwCGJUo= +github.com/mitchellh/protoc-gen-go-json v1.1.0/go.mod h1:pACAKlMtBf4SMFbVswcjwNwWwlci6Vn841H5jPRcE9I= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= From abaa1521d2354319399d47b6436db29f833dfd57 Mon Sep 17 00:00:00 2001 From: Akash Mukhopadhyay Date: Tue, 12 Jul 2022 15:09:51 -0700 Subject: [PATCH 4/6] Updating the auto generated files --- cosi.pb.go | 862 +++++++++++++++++++++++-------------------- cosi.pb.json.go | 296 +++++++-------- cosi.proto | 67 ++-- fake/cosi.pb.fake.go | 30 +- 4 files changed, 641 insertions(+), 614 deletions(-) diff --git a/cosi.pb.go b/cosi.pb.go index ec33085..181819a 100644 --- a/cosi.pb.go +++ b/cosi.pb.go @@ -3,7 +3,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.25.0 -// protoc v3.9.1 +// protoc v3.14.0 // source: sigs.k8s.io/container-object-storage-interface-spec/cosi.proto package cosi @@ -143,6 +143,57 @@ func (AnonymousBucketAccessMode) EnumDescriptor() ([]byte, []int) { return file_sigs_k8s_io_container_object_storage_interface_spec_cosi_proto_rawDescGZIP(), []int{1} } +type AuthenticationType int32 + +const ( + AuthenticationType_UnknownAuthenticationType AuthenticationType = 0 + // Default, KEY based authentication. + AuthenticationType_Key AuthenticationType = 1 + // Storageaccount based authentication. + AuthenticationType_IAM AuthenticationType = 2 +) + +// Enum value maps for AuthenticationType. +var ( + AuthenticationType_name = map[int32]string{ + 0: "UnknownAuthenticationType", + 1: "Key", + 2: "IAM", + } + AuthenticationType_value = map[string]int32{ + "UnknownAuthenticationType": 0, + "Key": 1, + "IAM": 2, + } +) + +func (x AuthenticationType) Enum() *AuthenticationType { + p := new(AuthenticationType) + *p = x + return p +} + +func (x AuthenticationType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (AuthenticationType) Descriptor() protoreflect.EnumDescriptor { + return file_sigs_k8s_io_container_object_storage_interface_spec_cosi_proto_enumTypes[2].Descriptor() +} + +func (AuthenticationType) Type() protoreflect.EnumType { + return &file_sigs_k8s_io_container_object_storage_interface_spec_cosi_proto_enumTypes[2] +} + +func (x AuthenticationType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use AuthenticationType.Descriptor instead. +func (AuthenticationType) EnumDescriptor() ([]byte, []int) { + return file_sigs_k8s_io_container_object_storage_interface_spec_cosi_proto_rawDescGZIP(), []int{2} +} + type S3 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -408,14 +459,14 @@ func (*Protocol_AzureBlob) isProtocol_Type() {} func (*Protocol_Gcs) isProtocol_Type() {} -type ProvisionerGetInfoRequest struct { +type DriverGetInfoRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *ProvisionerGetInfoRequest) Reset() { - *x = ProvisionerGetInfoRequest{} +func (x *DriverGetInfoRequest) Reset() { + *x = DriverGetInfoRequest{} if protoimpl.UnsafeEnabled { mi := &file_sigs_k8s_io_container_object_storage_interface_spec_cosi_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -423,13 +474,13 @@ func (x *ProvisionerGetInfoRequest) Reset() { } } -func (x *ProvisionerGetInfoRequest) String() string { +func (x *DriverGetInfoRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ProvisionerGetInfoRequest) ProtoMessage() {} +func (*DriverGetInfoRequest) ProtoMessage() {} -func (x *ProvisionerGetInfoRequest) ProtoReflect() protoreflect.Message { +func (x *DriverGetInfoRequest) ProtoReflect() protoreflect.Message { mi := &file_sigs_k8s_io_container_object_storage_interface_spec_cosi_proto_msgTypes[4] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -441,12 +492,12 @@ func (x *ProvisionerGetInfoRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ProvisionerGetInfoRequest.ProtoReflect.Descriptor instead. -func (*ProvisionerGetInfoRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use DriverGetInfoRequest.ProtoReflect.Descriptor instead. +func (*DriverGetInfoRequest) Descriptor() ([]byte, []int) { return file_sigs_k8s_io_container_object_storage_interface_spec_cosi_proto_rawDescGZIP(), []int{4} } -type ProvisionerGetInfoResponse struct { +type DriverGetInfoResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -462,8 +513,8 @@ type ProvisionerGetInfoResponse struct { Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` } -func (x *ProvisionerGetInfoResponse) Reset() { - *x = ProvisionerGetInfoResponse{} +func (x *DriverGetInfoResponse) Reset() { + *x = DriverGetInfoResponse{} if protoimpl.UnsafeEnabled { mi := &file_sigs_k8s_io_container_object_storage_interface_spec_cosi_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -471,13 +522,13 @@ func (x *ProvisionerGetInfoResponse) Reset() { } } -func (x *ProvisionerGetInfoResponse) String() string { +func (x *DriverGetInfoResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ProvisionerGetInfoResponse) ProtoMessage() {} +func (*DriverGetInfoResponse) ProtoMessage() {} -func (x *ProvisionerGetInfoResponse) ProtoReflect() protoreflect.Message { +func (x *DriverGetInfoResponse) ProtoReflect() protoreflect.Message { mi := &file_sigs_k8s_io_container_object_storage_interface_spec_cosi_proto_msgTypes[5] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -489,19 +540,19 @@ func (x *ProvisionerGetInfoResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ProvisionerGetInfoResponse.ProtoReflect.Descriptor instead. -func (*ProvisionerGetInfoResponse) Descriptor() ([]byte, []int) { +// Deprecated: Use DriverGetInfoResponse.ProtoReflect.Descriptor instead. +func (*DriverGetInfoResponse) Descriptor() ([]byte, []int) { return file_sigs_k8s_io_container_object_storage_interface_spec_cosi_proto_rawDescGZIP(), []int{5} } -func (x *ProvisionerGetInfoResponse) GetName() string { +func (x *DriverGetInfoResponse) GetName() string { if x != nil { return x.Name } return "" } -type ProvisionerCreateBucketRequest struct { +type DriverCreateBucketRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -509,17 +560,14 @@ type ProvisionerCreateBucketRequest struct { // This field is REQUIRED // name specifies the name of the bucket that should be created. Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // This field is REQUIRED - // Protocol specific information required by the call is passed in as key,value pairs. - Protocol *Protocol `protobuf:"bytes,2,opt,name=protocol,proto3" json:"protocol,omitempty"` // This field is OPTIONAL // The caller should treat the values in parameters as opaque. // The receiver is responsible for parsing and validating the values. - Parameters map[string]string `protobuf:"bytes,3,rep,name=parameters,proto3" json:"parameters,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + Parameters map[string]string `protobuf:"bytes,2,rep,name=parameters,proto3" json:"parameters,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` } -func (x *ProvisionerCreateBucketRequest) Reset() { - *x = ProvisionerCreateBucketRequest{} +func (x *DriverCreateBucketRequest) Reset() { + *x = DriverCreateBucketRequest{} if protoimpl.UnsafeEnabled { mi := &file_sigs_k8s_io_container_object_storage_interface_spec_cosi_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -527,13 +575,13 @@ func (x *ProvisionerCreateBucketRequest) Reset() { } } -func (x *ProvisionerCreateBucketRequest) String() string { +func (x *DriverCreateBucketRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ProvisionerCreateBucketRequest) ProtoMessage() {} +func (*DriverCreateBucketRequest) ProtoMessage() {} -func (x *ProvisionerCreateBucketRequest) ProtoReflect() protoreflect.Message { +func (x *DriverCreateBucketRequest) ProtoReflect() protoreflect.Message { mi := &file_sigs_k8s_io_container_object_storage_interface_spec_cosi_proto_msgTypes[6] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -545,44 +593,40 @@ func (x *ProvisionerCreateBucketRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ProvisionerCreateBucketRequest.ProtoReflect.Descriptor instead. -func (*ProvisionerCreateBucketRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use DriverCreateBucketRequest.ProtoReflect.Descriptor instead. +func (*DriverCreateBucketRequest) Descriptor() ([]byte, []int) { return file_sigs_k8s_io_container_object_storage_interface_spec_cosi_proto_rawDescGZIP(), []int{6} } -func (x *ProvisionerCreateBucketRequest) GetName() string { +func (x *DriverCreateBucketRequest) GetName() string { if x != nil { return x.Name } return "" } -func (x *ProvisionerCreateBucketRequest) GetProtocol() *Protocol { - if x != nil { - return x.Protocol - } - return nil -} - -func (x *ProvisionerCreateBucketRequest) GetParameters() map[string]string { +func (x *DriverCreateBucketRequest) GetParameters() map[string]string { if x != nil { return x.Parameters } return nil } -type ProvisionerCreateBucketResponse struct { +type DriverCreateBucketResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // bucket_id returned here is expected to be the globally unique - // identifier for the bucket in the object storage provider + // identifier for the bucket in the object storage provider. BucketId string `protobuf:"bytes,1,opt,name=bucket_id,json=bucketId,proto3" json:"bucket_id,omitempty"` + // bucket_info returned here stores the data specific to the + // bucket required by the object storage provider to connect to the bucket. + BucketInfo *Protocol `protobuf:"bytes,2,opt,name=bucket_info,json=bucketInfo,proto3" json:"bucket_info,omitempty"` } -func (x *ProvisionerCreateBucketResponse) Reset() { - *x = ProvisionerCreateBucketResponse{} +func (x *DriverCreateBucketResponse) Reset() { + *x = DriverCreateBucketResponse{} if protoimpl.UnsafeEnabled { mi := &file_sigs_k8s_io_container_object_storage_interface_spec_cosi_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -590,13 +634,13 @@ func (x *ProvisionerCreateBucketResponse) Reset() { } } -func (x *ProvisionerCreateBucketResponse) String() string { +func (x *DriverCreateBucketResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ProvisionerCreateBucketResponse) ProtoMessage() {} +func (*DriverCreateBucketResponse) ProtoMessage() {} -func (x *ProvisionerCreateBucketResponse) ProtoReflect() protoreflect.Message { +func (x *DriverCreateBucketResponse) ProtoReflect() protoreflect.Message { mi := &file_sigs_k8s_io_container_object_storage_interface_spec_cosi_proto_msgTypes[7] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -608,19 +652,26 @@ func (x *ProvisionerCreateBucketResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ProvisionerCreateBucketResponse.ProtoReflect.Descriptor instead. -func (*ProvisionerCreateBucketResponse) Descriptor() ([]byte, []int) { +// Deprecated: Use DriverCreateBucketResponse.ProtoReflect.Descriptor instead. +func (*DriverCreateBucketResponse) Descriptor() ([]byte, []int) { return file_sigs_k8s_io_container_object_storage_interface_spec_cosi_proto_rawDescGZIP(), []int{7} } -func (x *ProvisionerCreateBucketResponse) GetBucketId() string { +func (x *DriverCreateBucketResponse) GetBucketId() string { if x != nil { return x.BucketId } return "" } -type ProvisionerDeleteBucketRequest struct { +func (x *DriverCreateBucketResponse) GetBucketInfo() *Protocol { + if x != nil { + return x.BucketInfo + } + return nil +} + +type DriverDeleteBucketRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -631,8 +682,8 @@ type ProvisionerDeleteBucketRequest struct { BucketId string `protobuf:"bytes,1,opt,name=bucket_id,json=bucketId,proto3" json:"bucket_id,omitempty"` } -func (x *ProvisionerDeleteBucketRequest) Reset() { - *x = ProvisionerDeleteBucketRequest{} +func (x *DriverDeleteBucketRequest) Reset() { + *x = DriverDeleteBucketRequest{} if protoimpl.UnsafeEnabled { mi := &file_sigs_k8s_io_container_object_storage_interface_spec_cosi_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -640,13 +691,13 @@ func (x *ProvisionerDeleteBucketRequest) Reset() { } } -func (x *ProvisionerDeleteBucketRequest) String() string { +func (x *DriverDeleteBucketRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ProvisionerDeleteBucketRequest) ProtoMessage() {} +func (*DriverDeleteBucketRequest) ProtoMessage() {} -func (x *ProvisionerDeleteBucketRequest) ProtoReflect() protoreflect.Message { +func (x *DriverDeleteBucketRequest) ProtoReflect() protoreflect.Message { mi := &file_sigs_k8s_io_container_object_storage_interface_spec_cosi_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -658,26 +709,26 @@ func (x *ProvisionerDeleteBucketRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ProvisionerDeleteBucketRequest.ProtoReflect.Descriptor instead. -func (*ProvisionerDeleteBucketRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use DriverDeleteBucketRequest.ProtoReflect.Descriptor instead. +func (*DriverDeleteBucketRequest) Descriptor() ([]byte, []int) { return file_sigs_k8s_io_container_object_storage_interface_spec_cosi_proto_rawDescGZIP(), []int{8} } -func (x *ProvisionerDeleteBucketRequest) GetBucketId() string { +func (x *DriverDeleteBucketRequest) GetBucketId() string { if x != nil { return x.BucketId } return "" } -type ProvisionerDeleteBucketResponse struct { +type DriverDeleteBucketResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *ProvisionerDeleteBucketResponse) Reset() { - *x = ProvisionerDeleteBucketResponse{} +func (x *DriverDeleteBucketResponse) Reset() { + *x = DriverDeleteBucketResponse{} if protoimpl.UnsafeEnabled { mi := &file_sigs_k8s_io_container_object_storage_interface_spec_cosi_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -685,13 +736,13 @@ func (x *ProvisionerDeleteBucketResponse) Reset() { } } -func (x *ProvisionerDeleteBucketResponse) String() string { +func (x *DriverDeleteBucketResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ProvisionerDeleteBucketResponse) ProtoMessage() {} +func (*DriverDeleteBucketResponse) ProtoMessage() {} -func (x *ProvisionerDeleteBucketResponse) ProtoReflect() protoreflect.Message { +func (x *DriverDeleteBucketResponse) ProtoReflect() protoreflect.Message { mi := &file_sigs_k8s_io_container_object_storage_interface_spec_cosi_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -703,12 +754,12 @@ func (x *ProvisionerDeleteBucketResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ProvisionerDeleteBucketResponse.ProtoReflect.Descriptor instead. -func (*ProvisionerDeleteBucketResponse) Descriptor() ([]byte, []int) { +// Deprecated: Use DriverDeleteBucketResponse.ProtoReflect.Descriptor instead. +func (*DriverDeleteBucketResponse) Descriptor() ([]byte, []int) { return file_sigs_k8s_io_container_object_storage_interface_spec_cosi_proto_rawDescGZIP(), []int{9} } -type ProvisionerGrantBucketAccessRequest struct { +type DriverGrantBucketAccessRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -718,21 +769,20 @@ type ProvisionerGrantBucketAccessRequest struct { // in the object storage provider BucketId string `protobuf:"bytes,1,opt,name=bucket_id,json=bucketId,proto3" json:"bucket_id,omitempty"` // This field is REQUIRED - // account_name is a identifier for object storage provider - // to ensure that multiple requests for the same account - // result in only one access token being created - AccountName string `protobuf:"bytes,2,opt,name=account_name,json=accountName,proto3" json:"account_name,omitempty"` + // name field is used to define the name of the bucket access object. + Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` // This field is REQUIRED - // Requested Access policy, ex: {"Effect":"Allow","Action":"s3:PutObject","Resource":"arn:aws:s3:::profilepics/*"} - AccessPolicy string `protobuf:"bytes,3,opt,name=access_policy,json=accessPolicy,proto3" json:"access_policy,omitempty"` + // Requested authentication type for the bucket access. + // Supported authentication types are KEY or IAM. + AuthenticationType AuthenticationType `protobuf:"varint,3,opt,name=authentication_type,json=authenticationType,proto3,enum=cosi.v1alpha1.AuthenticationType" json:"authentication_type,omitempty"` // This field is OPTIONAL // The caller should treat the values in parameters as opaque. // The receiver is responsible for parsing and validating the values. Parameters map[string]string `protobuf:"bytes,4,rep,name=parameters,proto3" json:"parameters,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` } -func (x *ProvisionerGrantBucketAccessRequest) Reset() { - *x = ProvisionerGrantBucketAccessRequest{} +func (x *DriverGrantBucketAccessRequest) Reset() { + *x = DriverGrantBucketAccessRequest{} if protoimpl.UnsafeEnabled { mi := &file_sigs_k8s_io_container_object_storage_interface_spec_cosi_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -740,13 +790,13 @@ func (x *ProvisionerGrantBucketAccessRequest) Reset() { } } -func (x *ProvisionerGrantBucketAccessRequest) String() string { +func (x *DriverGrantBucketAccessRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ProvisionerGrantBucketAccessRequest) ProtoMessage() {} +func (*DriverGrantBucketAccessRequest) ProtoMessage() {} -func (x *ProvisionerGrantBucketAccessRequest) ProtoReflect() protoreflect.Message { +func (x *DriverGrantBucketAccessRequest) ProtoReflect() protoreflect.Message { mi := &file_sigs_k8s_io_container_object_storage_interface_spec_cosi_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -758,55 +808,55 @@ func (x *ProvisionerGrantBucketAccessRequest) ProtoReflect() protoreflect.Messag return mi.MessageOf(x) } -// Deprecated: Use ProvisionerGrantBucketAccessRequest.ProtoReflect.Descriptor instead. -func (*ProvisionerGrantBucketAccessRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use DriverGrantBucketAccessRequest.ProtoReflect.Descriptor instead. +func (*DriverGrantBucketAccessRequest) Descriptor() ([]byte, []int) { return file_sigs_k8s_io_container_object_storage_interface_spec_cosi_proto_rawDescGZIP(), []int{10} } -func (x *ProvisionerGrantBucketAccessRequest) GetBucketId() string { +func (x *DriverGrantBucketAccessRequest) GetBucketId() string { if x != nil { return x.BucketId } return "" } -func (x *ProvisionerGrantBucketAccessRequest) GetAccountName() string { +func (x *DriverGrantBucketAccessRequest) GetName() string { if x != nil { - return x.AccountName + return x.Name } return "" } -func (x *ProvisionerGrantBucketAccessRequest) GetAccessPolicy() string { +func (x *DriverGrantBucketAccessRequest) GetAuthenticationType() AuthenticationType { if x != nil { - return x.AccessPolicy + return x.AuthenticationType } - return "" + return AuthenticationType_UnknownAuthenticationType } -func (x *ProvisionerGrantBucketAccessRequest) GetParameters() map[string]string { +func (x *DriverGrantBucketAccessRequest) GetParameters() map[string]string { if x != nil { return x.Parameters } return nil } -type ProvisionerGrantBucketAccessResponse struct { +type DriverGrantBucketAccessResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // This field is OPTIONAL + // This field is REQUIRED // This is the account_id that is being provided access. This will // be required later to revoke access. AccountId string `protobuf:"bytes,1,opt,name=account_id,json=accountId,proto3" json:"account_id,omitempty"` - // This field is OPTIONAL + // This field is REQUIRED // Credentials supplied for accessing the bucket ex: aws access key id and secret, etc. Credentials string `protobuf:"bytes,2,opt,name=credentials,proto3" json:"credentials,omitempty"` } -func (x *ProvisionerGrantBucketAccessResponse) Reset() { - *x = ProvisionerGrantBucketAccessResponse{} +func (x *DriverGrantBucketAccessResponse) Reset() { + *x = DriverGrantBucketAccessResponse{} if protoimpl.UnsafeEnabled { mi := &file_sigs_k8s_io_container_object_storage_interface_spec_cosi_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -814,13 +864,13 @@ func (x *ProvisionerGrantBucketAccessResponse) Reset() { } } -func (x *ProvisionerGrantBucketAccessResponse) String() string { +func (x *DriverGrantBucketAccessResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ProvisionerGrantBucketAccessResponse) ProtoMessage() {} +func (*DriverGrantBucketAccessResponse) ProtoMessage() {} -func (x *ProvisionerGrantBucketAccessResponse) ProtoReflect() protoreflect.Message { +func (x *DriverGrantBucketAccessResponse) ProtoReflect() protoreflect.Message { mi := &file_sigs_k8s_io_container_object_storage_interface_spec_cosi_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -832,26 +882,26 @@ func (x *ProvisionerGrantBucketAccessResponse) ProtoReflect() protoreflect.Messa return mi.MessageOf(x) } -// Deprecated: Use ProvisionerGrantBucketAccessResponse.ProtoReflect.Descriptor instead. -func (*ProvisionerGrantBucketAccessResponse) Descriptor() ([]byte, []int) { +// Deprecated: Use DriverGrantBucketAccessResponse.ProtoReflect.Descriptor instead. +func (*DriverGrantBucketAccessResponse) Descriptor() ([]byte, []int) { return file_sigs_k8s_io_container_object_storage_interface_spec_cosi_proto_rawDescGZIP(), []int{11} } -func (x *ProvisionerGrantBucketAccessResponse) GetAccountId() string { +func (x *DriverGrantBucketAccessResponse) GetAccountId() string { if x != nil { return x.AccountId } return "" } -func (x *ProvisionerGrantBucketAccessResponse) GetCredentials() string { +func (x *DriverGrantBucketAccessResponse) GetCredentials() string { if x != nil { return x.Credentials } return "" } -type ProvisionerRevokeBucketAccessRequest struct { +type DriverRevokeBucketAccessRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -865,8 +915,8 @@ type ProvisionerRevokeBucketAccessRequest struct { AccountId string `protobuf:"bytes,2,opt,name=account_id,json=accountId,proto3" json:"account_id,omitempty"` } -func (x *ProvisionerRevokeBucketAccessRequest) Reset() { - *x = ProvisionerRevokeBucketAccessRequest{} +func (x *DriverRevokeBucketAccessRequest) Reset() { + *x = DriverRevokeBucketAccessRequest{} if protoimpl.UnsafeEnabled { mi := &file_sigs_k8s_io_container_object_storage_interface_spec_cosi_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -874,13 +924,13 @@ func (x *ProvisionerRevokeBucketAccessRequest) Reset() { } } -func (x *ProvisionerRevokeBucketAccessRequest) String() string { +func (x *DriverRevokeBucketAccessRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ProvisionerRevokeBucketAccessRequest) ProtoMessage() {} +func (*DriverRevokeBucketAccessRequest) ProtoMessage() {} -func (x *ProvisionerRevokeBucketAccessRequest) ProtoReflect() protoreflect.Message { +func (x *DriverRevokeBucketAccessRequest) ProtoReflect() protoreflect.Message { mi := &file_sigs_k8s_io_container_object_storage_interface_spec_cosi_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -892,33 +942,33 @@ func (x *ProvisionerRevokeBucketAccessRequest) ProtoReflect() protoreflect.Messa return mi.MessageOf(x) } -// Deprecated: Use ProvisionerRevokeBucketAccessRequest.ProtoReflect.Descriptor instead. -func (*ProvisionerRevokeBucketAccessRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use DriverRevokeBucketAccessRequest.ProtoReflect.Descriptor instead. +func (*DriverRevokeBucketAccessRequest) Descriptor() ([]byte, []int) { return file_sigs_k8s_io_container_object_storage_interface_spec_cosi_proto_rawDescGZIP(), []int{12} } -func (x *ProvisionerRevokeBucketAccessRequest) GetBucketId() string { +func (x *DriverRevokeBucketAccessRequest) GetBucketId() string { if x != nil { return x.BucketId } return "" } -func (x *ProvisionerRevokeBucketAccessRequest) GetAccountId() string { +func (x *DriverRevokeBucketAccessRequest) GetAccountId() string { if x != nil { return x.AccountId } return "" } -type ProvisionerRevokeBucketAccessResponse struct { +type DriverRevokeBucketAccessResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *ProvisionerRevokeBucketAccessResponse) Reset() { - *x = ProvisionerRevokeBucketAccessResponse{} +func (x *DriverRevokeBucketAccessResponse) Reset() { + *x = DriverRevokeBucketAccessResponse{} if protoimpl.UnsafeEnabled { mi := &file_sigs_k8s_io_container_object_storage_interface_spec_cosi_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -926,13 +976,13 @@ func (x *ProvisionerRevokeBucketAccessResponse) Reset() { } } -func (x *ProvisionerRevokeBucketAccessResponse) String() string { +func (x *DriverRevokeBucketAccessResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ProvisionerRevokeBucketAccessResponse) ProtoMessage() {} +func (*DriverRevokeBucketAccessResponse) ProtoMessage() {} -func (x *ProvisionerRevokeBucketAccessResponse) ProtoReflect() protoreflect.Message { +func (x *DriverRevokeBucketAccessResponse) ProtoReflect() protoreflect.Message { mi := &file_sigs_k8s_io_container_object_storage_interface_spec_cosi_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -944,8 +994,8 @@ func (x *ProvisionerRevokeBucketAccessResponse) ProtoReflect() protoreflect.Mess return mi.MessageOf(x) } -// Deprecated: Use ProvisionerRevokeBucketAccessResponse.ProtoReflect.Descriptor instead. -func (*ProvisionerRevokeBucketAccessResponse) Descriptor() ([]byte, []int) { +// Deprecated: Use DriverRevokeBucketAccessResponse.ProtoReflect.Descriptor instead. +func (*DriverRevokeBucketAccessResponse) Descriptor() ([]byte, []int) { return file_sigs_k8s_io_container_object_storage_interface_spec_cosi_proto_rawDescGZIP(), []int{13} } @@ -1110,160 +1160,158 @@ var file_sigs_k8s_io_container_object_storage_interface_spec_cosi_proto_rawDesc 0x09, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x42, 0x6c, 0x6f, 0x62, 0x12, 0x26, 0x0a, 0x03, 0x67, 0x63, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x63, 0x6f, 0x73, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x43, 0x53, 0x48, 0x00, 0x52, 0x03, 0x67, - 0x63, 0x73, 0x42, 0x06, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0x1b, 0x0a, 0x19, 0x50, 0x72, - 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x72, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x30, 0x0a, 0x1a, 0x50, 0x72, 0x6f, 0x76, 0x69, - 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x72, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x87, 0x02, 0x0a, 0x1e, 0x50, 0x72, - 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x72, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, - 0x75, 0x63, 0x6b, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x12, 0x33, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x63, 0x6f, 0x73, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, - 0x61, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x52, 0x08, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x5d, 0x0a, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, - 0x65, 0x72, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x63, 0x6f, 0x73, 0x69, - 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x73, - 0x69, 0x6f, 0x6e, 0x65, 0x72, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x75, 0x63, 0x6b, 0x65, - 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, - 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, - 0x74, 0x65, 0x72, 0x73, 0x1a, 0x3d, 0x0a, 0x0f, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, - 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, - 0x02, 0x38, 0x01, 0x22, 0x3e, 0x0a, 0x1f, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, - 0x65, 0x72, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, - 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x62, 0x75, 0x63, 0x6b, 0x65, - 0x74, 0x49, 0x64, 0x22, 0x3d, 0x0a, 0x1e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, - 0x65, 0x72, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x5f, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, - 0x49, 0x64, 0x22, 0x21, 0x0a, 0x1f, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x65, - 0x72, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xad, 0x02, 0x0a, 0x23, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x73, - 0x69, 0x6f, 0x6e, 0x65, 0x72, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, - 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, - 0x09, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x61, 0x63, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0b, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x23, 0x0a, - 0x0d, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x50, 0x6f, 0x6c, 0x69, - 0x63, 0x79, 0x12, 0x62, 0x0a, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, - 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x42, 0x2e, 0x63, 0x6f, 0x73, 0x69, 0x2e, 0x76, 0x31, - 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, + 0x63, 0x73, 0x42, 0x06, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0x16, 0x0a, 0x14, 0x44, 0x72, + 0x69, 0x76, 0x65, 0x72, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x22, 0x2b, 0x0a, 0x15, 0x44, 0x72, 0x69, 0x76, 0x65, 0x72, 0x47, 0x65, 0x74, 0x49, + 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, + 0xc8, 0x01, 0x0a, 0x19, 0x44, 0x72, 0x69, 0x76, 0x65, 0x72, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x12, 0x58, 0x0a, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, + 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x63, 0x6f, 0x73, 0x69, 0x2e, 0x76, 0x31, 0x61, + 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, 0x72, 0x69, 0x76, 0x65, 0x72, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, + 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, + 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x1a, 0x3d, 0x0a, 0x0f, 0x50, + 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, + 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, + 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x73, 0x0a, 0x1a, 0x44, 0x72, + 0x69, 0x76, 0x65, 0x72, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x62, 0x75, 0x63, 0x6b, + 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x62, 0x75, 0x63, + 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, 0x38, 0x0a, 0x0b, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x5f, + 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x63, 0x6f, 0x73, + 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x74, 0x6f, + 0x63, 0x6f, 0x6c, 0x52, 0x0a, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x22, + 0x38, 0x0a, 0x19, 0x44, 0x72, 0x69, 0x76, 0x65, 0x72, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x42, + 0x75, 0x63, 0x6b, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, + 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x22, 0x1c, 0x0a, 0x1a, 0x44, 0x72, 0x69, + 0x76, 0x65, 0x72, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xc3, 0x02, 0x0a, 0x1e, 0x44, 0x72, 0x69, 0x76, 0x65, 0x72, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x63, - 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, - 0x65, 0x74, 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x70, 0x61, 0x72, 0x61, - 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x1a, 0x3d, 0x0a, 0x0f, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, - 0x74, 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x67, 0x0a, 0x24, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, - 0x6f, 0x6e, 0x65, 0x72, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x41, - 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1d, 0x0a, - 0x0a, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, - 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0b, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x22, 0x62, - 0x0a, 0x24, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x76, - 0x6f, 0x6b, 0x65, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, - 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x62, 0x75, 0x63, 0x6b, 0x65, - 0x74, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, - 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x49, 0x64, 0x22, 0x27, 0x0a, 0x25, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x65, - 0x72, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x63, - 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2a, 0x3e, 0x0a, 0x12, 0x53, - 0x33, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, - 0x6e, 0x12, 0x14, 0x0a, 0x10, 0x55, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x53, 0x69, 0x67, 0x6e, - 0x61, 0x74, 0x75, 0x72, 0x65, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x53, 0x33, 0x56, 0x32, 0x10, - 0x01, 0x12, 0x08, 0x0a, 0x04, 0x53, 0x33, 0x56, 0x34, 0x10, 0x02, 0x2a, 0x71, 0x0a, 0x19, 0x41, - 0x6e, 0x6f, 0x6e, 0x79, 0x6d, 0x6f, 0x75, 0x73, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, - 0x63, 0x65, 0x73, 0x73, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x1b, 0x0a, 0x17, 0x55, 0x6e, 0x6b, 0x6e, - 0x6f, 0x77, 0x6e, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x4d, - 0x6f, 0x64, 0x65, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, - 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x52, 0x65, 0x61, 0x64, 0x4f, 0x6e, 0x6c, 0x79, 0x10, 0x02, - 0x12, 0x0d, 0x0a, 0x09, 0x57, 0x72, 0x69, 0x74, 0x65, 0x4f, 0x6e, 0x6c, 0x79, 0x10, 0x03, 0x12, - 0x0d, 0x0a, 0x09, 0x52, 0x65, 0x61, 0x64, 0x57, 0x72, 0x69, 0x74, 0x65, 0x10, 0x04, 0x32, 0x77, - 0x0a, 0x08, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x6b, 0x0a, 0x12, 0x50, 0x72, - 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x72, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, - 0x12, 0x28, 0x2e, 0x63, 0x6f, 0x73, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, - 0x2e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x72, 0x47, 0x65, 0x74, 0x49, - 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x63, 0x6f, 0x73, - 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x76, 0x69, - 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x72, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x32, 0x9c, 0x04, 0x0a, 0x0b, 0x50, 0x72, 0x6f, 0x76, - 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x72, 0x12, 0x7a, 0x0a, 0x17, 0x50, 0x72, 0x6f, 0x76, 0x69, - 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x72, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x75, 0x63, 0x6b, - 0x65, 0x74, 0x12, 0x2d, 0x2e, 0x63, 0x6f, 0x73, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, - 0x61, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x72, 0x43, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x2e, 0x2e, 0x63, 0x6f, 0x73, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, - 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x72, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x00, 0x12, 0x7a, 0x0a, 0x17, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, - 0x65, 0x72, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x2d, - 0x2e, 0x63, 0x6f, 0x73, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, - 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x72, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, - 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, - 0x63, 0x6f, 0x73, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, 0x72, - 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x72, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x42, - 0x75, 0x63, 0x6b, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, - 0x87, 0x01, 0x0a, 0x1c, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x72, 0x47, - 0x72, 0x61, 0x6e, 0x74, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, - 0x12, 0x32, 0x2e, 0x63, 0x6f, 0x73, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, - 0x2e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x72, 0x47, 0x72, 0x61, 0x6e, - 0x74, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x63, 0x6f, 0x73, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, - 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x72, - 0x47, 0x72, 0x61, 0x6e, 0x74, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x63, 0x65, 0x73, - 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x8a, 0x01, 0x0a, 0x1d, 0x50, 0x72, - 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x42, - 0x75, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x33, 0x2e, 0x63, 0x6f, - 0x73, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x76, - 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x42, 0x75, 0x63, - 0x6b, 0x65, 0x74, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x34, 0x2e, 0x63, 0x6f, 0x73, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, - 0x2e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x76, 0x6f, - 0x6b, 0x65, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x3a, 0x3c, 0x0a, 0x0a, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x5f, - 0x65, 0x6e, 0x75, 0x6d, 0x12, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x4f, 0x70, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x18, 0xdc, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x61, 0x6c, 0x70, 0x68, 0x61, - 0x45, 0x6e, 0x75, 0x6d, 0x3a, 0x4c, 0x0a, 0x10, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x5f, 0x65, 0x6e, - 0x75, 0x6d, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x21, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x56, - 0x61, 0x6c, 0x75, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xdc, 0x08, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x0e, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x45, 0x6e, 0x75, 0x6d, 0x56, 0x61, 0x6c, - 0x75, 0x65, 0x3a, 0x3f, 0x0a, 0x0b, 0x63, 0x6f, 0x73, 0x69, 0x5f, 0x73, 0x65, 0x63, 0x72, 0x65, - 0x74, 0x12, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x18, 0xdb, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x63, 0x6f, 0x73, 0x69, 0x53, 0x65, 0x63, - 0x72, 0x65, 0x74, 0x3a, 0x3f, 0x0a, 0x0b, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x5f, 0x66, 0x69, 0x65, - 0x6c, 0x64, 0x12, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x18, 0xdc, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x46, - 0x69, 0x65, 0x6c, 0x64, 0x3a, 0x45, 0x0a, 0x0d, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x5f, 0x6d, 0x65, - 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, - 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xdc, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x61, - 0x6c, 0x70, 0x68, 0x61, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x3a, 0x42, 0x0a, 0x0c, 0x61, - 0x6c, 0x70, 0x68, 0x61, 0x5f, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x1e, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, - 0x74, 0x68, 0x6f, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xdc, 0x08, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x0b, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x3a, - 0x45, 0x0a, 0x0d, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, - 0x12, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x18, 0xdc, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x53, - 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x42, 0x3a, 0x5a, 0x38, 0x73, 0x69, 0x67, 0x73, 0x2e, 0x6b, - 0x38, 0x73, 0x2e, 0x69, 0x6f, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x2d, - 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2d, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2d, 0x69, - 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2d, 0x73, 0x70, 0x65, 0x63, 0x3b, 0x63, 0x6f, - 0x73, 0x69, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x62, 0x75, + 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x62, + 0x75, 0x63, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x52, 0x0a, 0x13, 0x61, + 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, + 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x63, 0x6f, 0x73, 0x69, 0x2e, + 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x12, 0x61, 0x75, 0x74, + 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, + 0x5d, 0x0a, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x04, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x63, 0x6f, 0x73, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, + 0x68, 0x61, 0x31, 0x2e, 0x44, 0x72, 0x69, 0x76, 0x65, 0x72, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x42, + 0x75, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x52, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x1a, 0x3d, + 0x0a, 0x0f, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, + 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x62, 0x0a, + 0x1f, 0x44, 0x72, 0x69, 0x76, 0x65, 0x72, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x42, 0x75, 0x63, 0x6b, + 0x65, 0x74, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, + 0x20, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, + 0x73, 0x22, 0x5d, 0x0a, 0x1f, 0x44, 0x72, 0x69, 0x76, 0x65, 0x72, 0x52, 0x65, 0x76, 0x6f, 0x6b, + 0x65, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x49, + 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, + 0x22, 0x22, 0x0a, 0x20, 0x44, 0x72, 0x69, 0x76, 0x65, 0x72, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, + 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x2a, 0x3e, 0x0a, 0x12, 0x53, 0x33, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, + 0x75, 0x72, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x10, 0x55, 0x6e, + 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x10, 0x00, + 0x12, 0x08, 0x0a, 0x04, 0x53, 0x33, 0x56, 0x32, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x53, 0x33, + 0x56, 0x34, 0x10, 0x02, 0x2a, 0x71, 0x0a, 0x19, 0x41, 0x6e, 0x6f, 0x6e, 0x79, 0x6d, 0x6f, 0x75, + 0x73, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x4d, 0x6f, 0x64, + 0x65, 0x12, 0x1b, 0x0a, 0x17, 0x55, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x42, 0x75, 0x63, 0x6b, + 0x65, 0x74, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x4d, 0x6f, 0x64, 0x65, 0x10, 0x00, 0x12, 0x0b, + 0x0a, 0x07, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x52, + 0x65, 0x61, 0x64, 0x4f, 0x6e, 0x6c, 0x79, 0x10, 0x02, 0x12, 0x0d, 0x0a, 0x09, 0x57, 0x72, 0x69, + 0x74, 0x65, 0x4f, 0x6e, 0x6c, 0x79, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x52, 0x65, 0x61, 0x64, + 0x57, 0x72, 0x69, 0x74, 0x65, 0x10, 0x04, 0x2a, 0x45, 0x0a, 0x12, 0x41, 0x75, 0x74, 0x68, 0x65, + 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1d, 0x0a, + 0x19, 0x55, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, + 0x4b, 0x65, 0x79, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x49, 0x41, 0x4d, 0x10, 0x02, 0x32, 0x68, + 0x0a, 0x08, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x5c, 0x0a, 0x0d, 0x44, 0x72, + 0x69, 0x76, 0x65, 0x72, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x23, 0x2e, 0x63, 0x6f, + 0x73, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, 0x72, 0x69, 0x76, + 0x65, 0x72, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x24, 0x2e, 0x63, 0x6f, 0x73, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, + 0x2e, 0x44, 0x72, 0x69, 0x76, 0x65, 0x72, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x32, 0xde, 0x03, 0x0a, 0x0b, 0x50, 0x72, 0x6f, + 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x72, 0x12, 0x6b, 0x0a, 0x12, 0x44, 0x72, 0x69, 0x76, + 0x65, 0x72, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x28, + 0x2e, 0x63, 0x6f, 0x73, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, + 0x72, 0x69, 0x76, 0x65, 0x72, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x75, 0x63, 0x6b, 0x65, + 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x63, 0x6f, 0x73, 0x69, 0x2e, + 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, 0x72, 0x69, 0x76, 0x65, 0x72, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x6b, 0x0a, 0x12, 0x44, 0x72, 0x69, 0x76, 0x65, 0x72, 0x44, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x28, 0x2e, 0x63, 0x6f, + 0x73, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, 0x72, 0x69, 0x76, + 0x65, 0x72, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x63, 0x6f, 0x73, 0x69, 0x2e, 0x76, 0x31, 0x61, + 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, 0x72, 0x69, 0x76, 0x65, 0x72, 0x44, 0x65, 0x6c, 0x65, + 0x74, 0x65, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x00, 0x12, 0x78, 0x0a, 0x17, 0x44, 0x72, 0x69, 0x76, 0x65, 0x72, 0x47, 0x72, 0x61, 0x6e, + 0x74, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x2d, 0x2e, + 0x63, 0x6f, 0x73, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, 0x72, + 0x69, 0x76, 0x65, 0x72, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x41, + 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x63, + 0x6f, 0x73, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, 0x72, 0x69, + 0x76, 0x65, 0x72, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, + 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7b, 0x0a, 0x18, + 0x44, 0x72, 0x69, 0x76, 0x65, 0x72, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x42, 0x75, 0x63, 0x6b, + 0x65, 0x74, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x2e, 0x2e, 0x63, 0x6f, 0x73, 0x69, 0x2e, + 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, 0x72, 0x69, 0x76, 0x65, 0x72, 0x52, + 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x63, 0x65, 0x73, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x63, 0x6f, 0x73, 0x69, 0x2e, + 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, 0x72, 0x69, 0x76, 0x65, 0x72, 0x52, + 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x63, 0x65, 0x73, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x3a, 0x3c, 0x0a, 0x0a, 0x61, 0x6c, 0x70, + 0x68, 0x61, 0x5f, 0x65, 0x6e, 0x75, 0x6d, 0x12, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x4f, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xdc, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x61, 0x6c, + 0x70, 0x68, 0x61, 0x45, 0x6e, 0x75, 0x6d, 0x3a, 0x4c, 0x0a, 0x10, 0x61, 0x6c, 0x70, 0x68, 0x61, + 0x5f, 0x65, 0x6e, 0x75, 0x6d, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x21, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6e, + 0x75, 0x6d, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xdc, + 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x45, 0x6e, 0x75, 0x6d, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x3f, 0x0a, 0x0b, 0x63, 0x6f, 0x73, 0x69, 0x5f, 0x73, 0x65, + 0x63, 0x72, 0x65, 0x74, 0x12, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x18, 0xdb, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x63, 0x6f, 0x73, 0x69, + 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x3a, 0x3f, 0x0a, 0x0b, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x5f, + 0x66, 0x69, 0x65, 0x6c, 0x64, 0x12, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xdc, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x61, 0x6c, 0x70, + 0x68, 0x61, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x3a, 0x45, 0x0a, 0x0d, 0x61, 0x6c, 0x70, 0x68, 0x61, + 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xdc, 0x08, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x0c, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x3a, 0x42, + 0x0a, 0x0c, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x5f, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x1e, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xdc, + 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x4d, 0x65, 0x74, 0x68, + 0x6f, 0x64, 0x3a, 0x45, 0x0a, 0x0d, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x5f, 0x73, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x12, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4f, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xdc, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x61, 0x6c, 0x70, + 0x68, 0x61, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x42, 0x3a, 0x5a, 0x38, 0x73, 0x69, 0x67, + 0x73, 0x2e, 0x6b, 0x38, 0x73, 0x2e, 0x69, 0x6f, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, + 0x65, 0x72, 0x2d, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2d, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, + 0x65, 0x2d, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2d, 0x73, 0x70, 0x65, 0x63, + 0x3b, 0x63, 0x6f, 0x73, 0x69, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -1278,64 +1326,66 @@ func file_sigs_k8s_io_container_object_storage_interface_spec_cosi_proto_rawDesc return file_sigs_k8s_io_container_object_storage_interface_spec_cosi_proto_rawDescData } -var file_sigs_k8s_io_container_object_storage_interface_spec_cosi_proto_enumTypes = make([]protoimpl.EnumInfo, 2) +var file_sigs_k8s_io_container_object_storage_interface_spec_cosi_proto_enumTypes = make([]protoimpl.EnumInfo, 3) var file_sigs_k8s_io_container_object_storage_interface_spec_cosi_proto_msgTypes = make([]protoimpl.MessageInfo, 16) var file_sigs_k8s_io_container_object_storage_interface_spec_cosi_proto_goTypes = []interface{}{ - (S3SignatureVersion)(0), // 0: cosi.v1alpha1.S3SignatureVersion - (AnonymousBucketAccessMode)(0), // 1: cosi.v1alpha1.AnonymousBucketAccessMode - (*S3)(nil), // 2: cosi.v1alpha1.S3 - (*AzureBlob)(nil), // 3: cosi.v1alpha1.AzureBlob - (*GCS)(nil), // 4: cosi.v1alpha1.GCS - (*Protocol)(nil), // 5: cosi.v1alpha1.Protocol - (*ProvisionerGetInfoRequest)(nil), // 6: cosi.v1alpha1.ProvisionerGetInfoRequest - (*ProvisionerGetInfoResponse)(nil), // 7: cosi.v1alpha1.ProvisionerGetInfoResponse - (*ProvisionerCreateBucketRequest)(nil), // 8: cosi.v1alpha1.ProvisionerCreateBucketRequest - (*ProvisionerCreateBucketResponse)(nil), // 9: cosi.v1alpha1.ProvisionerCreateBucketResponse - (*ProvisionerDeleteBucketRequest)(nil), // 10: cosi.v1alpha1.ProvisionerDeleteBucketRequest - (*ProvisionerDeleteBucketResponse)(nil), // 11: cosi.v1alpha1.ProvisionerDeleteBucketResponse - (*ProvisionerGrantBucketAccessRequest)(nil), // 12: cosi.v1alpha1.ProvisionerGrantBucketAccessRequest - (*ProvisionerGrantBucketAccessResponse)(nil), // 13: cosi.v1alpha1.ProvisionerGrantBucketAccessResponse - (*ProvisionerRevokeBucketAccessRequest)(nil), // 14: cosi.v1alpha1.ProvisionerRevokeBucketAccessRequest - (*ProvisionerRevokeBucketAccessResponse)(nil), // 15: cosi.v1alpha1.ProvisionerRevokeBucketAccessResponse - nil, // 16: cosi.v1alpha1.ProvisionerCreateBucketRequest.ParametersEntry - nil, // 17: cosi.v1alpha1.ProvisionerGrantBucketAccessRequest.ParametersEntry - (*descriptor.EnumOptions)(nil), // 18: google.protobuf.EnumOptions - (*descriptor.EnumValueOptions)(nil), // 19: google.protobuf.EnumValueOptions - (*descriptor.FieldOptions)(nil), // 20: google.protobuf.FieldOptions - (*descriptor.MessageOptions)(nil), // 21: google.protobuf.MessageOptions - (*descriptor.MethodOptions)(nil), // 22: google.protobuf.MethodOptions - (*descriptor.ServiceOptions)(nil), // 23: google.protobuf.ServiceOptions + (S3SignatureVersion)(0), // 0: cosi.v1alpha1.S3SignatureVersion + (AnonymousBucketAccessMode)(0), // 1: cosi.v1alpha1.AnonymousBucketAccessMode + (AuthenticationType)(0), // 2: cosi.v1alpha1.AuthenticationType + (*S3)(nil), // 3: cosi.v1alpha1.S3 + (*AzureBlob)(nil), // 4: cosi.v1alpha1.AzureBlob + (*GCS)(nil), // 5: cosi.v1alpha1.GCS + (*Protocol)(nil), // 6: cosi.v1alpha1.Protocol + (*DriverGetInfoRequest)(nil), // 7: cosi.v1alpha1.DriverGetInfoRequest + (*DriverGetInfoResponse)(nil), // 8: cosi.v1alpha1.DriverGetInfoResponse + (*DriverCreateBucketRequest)(nil), // 9: cosi.v1alpha1.DriverCreateBucketRequest + (*DriverCreateBucketResponse)(nil), // 10: cosi.v1alpha1.DriverCreateBucketResponse + (*DriverDeleteBucketRequest)(nil), // 11: cosi.v1alpha1.DriverDeleteBucketRequest + (*DriverDeleteBucketResponse)(nil), // 12: cosi.v1alpha1.DriverDeleteBucketResponse + (*DriverGrantBucketAccessRequest)(nil), // 13: cosi.v1alpha1.DriverGrantBucketAccessRequest + (*DriverGrantBucketAccessResponse)(nil), // 14: cosi.v1alpha1.DriverGrantBucketAccessResponse + (*DriverRevokeBucketAccessRequest)(nil), // 15: cosi.v1alpha1.DriverRevokeBucketAccessRequest + (*DriverRevokeBucketAccessResponse)(nil), // 16: cosi.v1alpha1.DriverRevokeBucketAccessResponse + nil, // 17: cosi.v1alpha1.DriverCreateBucketRequest.ParametersEntry + nil, // 18: cosi.v1alpha1.DriverGrantBucketAccessRequest.ParametersEntry + (*descriptor.EnumOptions)(nil), // 19: google.protobuf.EnumOptions + (*descriptor.EnumValueOptions)(nil), // 20: google.protobuf.EnumValueOptions + (*descriptor.FieldOptions)(nil), // 21: google.protobuf.FieldOptions + (*descriptor.MessageOptions)(nil), // 22: google.protobuf.MessageOptions + (*descriptor.MethodOptions)(nil), // 23: google.protobuf.MethodOptions + (*descriptor.ServiceOptions)(nil), // 24: google.protobuf.ServiceOptions } var file_sigs_k8s_io_container_object_storage_interface_spec_cosi_proto_depIdxs = []int32{ 0, // 0: cosi.v1alpha1.S3.signature_version:type_name -> cosi.v1alpha1.S3SignatureVersion - 2, // 1: cosi.v1alpha1.Protocol.s3:type_name -> cosi.v1alpha1.S3 - 3, // 2: cosi.v1alpha1.Protocol.azureBlob:type_name -> cosi.v1alpha1.AzureBlob - 4, // 3: cosi.v1alpha1.Protocol.gcs:type_name -> cosi.v1alpha1.GCS - 5, // 4: cosi.v1alpha1.ProvisionerCreateBucketRequest.protocol:type_name -> cosi.v1alpha1.Protocol - 16, // 5: cosi.v1alpha1.ProvisionerCreateBucketRequest.parameters:type_name -> cosi.v1alpha1.ProvisionerCreateBucketRequest.ParametersEntry - 17, // 6: cosi.v1alpha1.ProvisionerGrantBucketAccessRequest.parameters:type_name -> cosi.v1alpha1.ProvisionerGrantBucketAccessRequest.ParametersEntry - 18, // 7: cosi.v1alpha1.alpha_enum:extendee -> google.protobuf.EnumOptions - 19, // 8: cosi.v1alpha1.alpha_enum_value:extendee -> google.protobuf.EnumValueOptions - 20, // 9: cosi.v1alpha1.cosi_secret:extendee -> google.protobuf.FieldOptions - 20, // 10: cosi.v1alpha1.alpha_field:extendee -> google.protobuf.FieldOptions - 21, // 11: cosi.v1alpha1.alpha_message:extendee -> google.protobuf.MessageOptions - 22, // 12: cosi.v1alpha1.alpha_method:extendee -> google.protobuf.MethodOptions - 23, // 13: cosi.v1alpha1.alpha_service:extendee -> google.protobuf.ServiceOptions - 6, // 14: cosi.v1alpha1.Identity.ProvisionerGetInfo:input_type -> cosi.v1alpha1.ProvisionerGetInfoRequest - 8, // 15: cosi.v1alpha1.Provisioner.ProvisionerCreateBucket:input_type -> cosi.v1alpha1.ProvisionerCreateBucketRequest - 10, // 16: cosi.v1alpha1.Provisioner.ProvisionerDeleteBucket:input_type -> cosi.v1alpha1.ProvisionerDeleteBucketRequest - 12, // 17: cosi.v1alpha1.Provisioner.ProvisionerGrantBucketAccess:input_type -> cosi.v1alpha1.ProvisionerGrantBucketAccessRequest - 14, // 18: cosi.v1alpha1.Provisioner.ProvisionerRevokeBucketAccess:input_type -> cosi.v1alpha1.ProvisionerRevokeBucketAccessRequest - 7, // 19: cosi.v1alpha1.Identity.ProvisionerGetInfo:output_type -> cosi.v1alpha1.ProvisionerGetInfoResponse - 9, // 20: cosi.v1alpha1.Provisioner.ProvisionerCreateBucket:output_type -> cosi.v1alpha1.ProvisionerCreateBucketResponse - 11, // 21: cosi.v1alpha1.Provisioner.ProvisionerDeleteBucket:output_type -> cosi.v1alpha1.ProvisionerDeleteBucketResponse - 13, // 22: cosi.v1alpha1.Provisioner.ProvisionerGrantBucketAccess:output_type -> cosi.v1alpha1.ProvisionerGrantBucketAccessResponse - 15, // 23: cosi.v1alpha1.Provisioner.ProvisionerRevokeBucketAccess:output_type -> cosi.v1alpha1.ProvisionerRevokeBucketAccessResponse - 19, // [19:24] is the sub-list for method output_type - 14, // [14:19] is the sub-list for method input_type - 14, // [14:14] is the sub-list for extension type_name - 7, // [7:14] is the sub-list for extension extendee - 0, // [0:7] is the sub-list for field type_name + 3, // 1: cosi.v1alpha1.Protocol.s3:type_name -> cosi.v1alpha1.S3 + 4, // 2: cosi.v1alpha1.Protocol.azureBlob:type_name -> cosi.v1alpha1.AzureBlob + 5, // 3: cosi.v1alpha1.Protocol.gcs:type_name -> cosi.v1alpha1.GCS + 17, // 4: cosi.v1alpha1.DriverCreateBucketRequest.parameters:type_name -> cosi.v1alpha1.DriverCreateBucketRequest.ParametersEntry + 6, // 5: cosi.v1alpha1.DriverCreateBucketResponse.bucket_info:type_name -> cosi.v1alpha1.Protocol + 2, // 6: cosi.v1alpha1.DriverGrantBucketAccessRequest.authentication_type:type_name -> cosi.v1alpha1.AuthenticationType + 18, // 7: cosi.v1alpha1.DriverGrantBucketAccessRequest.parameters:type_name -> cosi.v1alpha1.DriverGrantBucketAccessRequest.ParametersEntry + 19, // 8: cosi.v1alpha1.alpha_enum:extendee -> google.protobuf.EnumOptions + 20, // 9: cosi.v1alpha1.alpha_enum_value:extendee -> google.protobuf.EnumValueOptions + 21, // 10: cosi.v1alpha1.cosi_secret:extendee -> google.protobuf.FieldOptions + 21, // 11: cosi.v1alpha1.alpha_field:extendee -> google.protobuf.FieldOptions + 22, // 12: cosi.v1alpha1.alpha_message:extendee -> google.protobuf.MessageOptions + 23, // 13: cosi.v1alpha1.alpha_method:extendee -> google.protobuf.MethodOptions + 24, // 14: cosi.v1alpha1.alpha_service:extendee -> google.protobuf.ServiceOptions + 7, // 15: cosi.v1alpha1.Identity.DriverGetInfo:input_type -> cosi.v1alpha1.DriverGetInfoRequest + 9, // 16: cosi.v1alpha1.Provisioner.DriverCreateBucket:input_type -> cosi.v1alpha1.DriverCreateBucketRequest + 11, // 17: cosi.v1alpha1.Provisioner.DriverDeleteBucket:input_type -> cosi.v1alpha1.DriverDeleteBucketRequest + 13, // 18: cosi.v1alpha1.Provisioner.DriverGrantBucketAccess:input_type -> cosi.v1alpha1.DriverGrantBucketAccessRequest + 15, // 19: cosi.v1alpha1.Provisioner.DriverRevokeBucketAccess:input_type -> cosi.v1alpha1.DriverRevokeBucketAccessRequest + 8, // 20: cosi.v1alpha1.Identity.DriverGetInfo:output_type -> cosi.v1alpha1.DriverGetInfoResponse + 10, // 21: cosi.v1alpha1.Provisioner.DriverCreateBucket:output_type -> cosi.v1alpha1.DriverCreateBucketResponse + 12, // 22: cosi.v1alpha1.Provisioner.DriverDeleteBucket:output_type -> cosi.v1alpha1.DriverDeleteBucketResponse + 14, // 23: cosi.v1alpha1.Provisioner.DriverGrantBucketAccess:output_type -> cosi.v1alpha1.DriverGrantBucketAccessResponse + 16, // 24: cosi.v1alpha1.Provisioner.DriverRevokeBucketAccess:output_type -> cosi.v1alpha1.DriverRevokeBucketAccessResponse + 20, // [20:25] is the sub-list for method output_type + 15, // [15:20] is the sub-list for method input_type + 15, // [15:15] is the sub-list for extension type_name + 8, // [8:15] is the sub-list for extension extendee + 0, // [0:8] is the sub-list for field type_name } func init() { file_sigs_k8s_io_container_object_storage_interface_spec_cosi_proto_init() } @@ -1393,7 +1443,7 @@ func file_sigs_k8s_io_container_object_storage_interface_spec_cosi_proto_init() } } file_sigs_k8s_io_container_object_storage_interface_spec_cosi_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ProvisionerGetInfoRequest); i { + switch v := v.(*DriverGetInfoRequest); i { case 0: return &v.state case 1: @@ -1405,7 +1455,7 @@ func file_sigs_k8s_io_container_object_storage_interface_spec_cosi_proto_init() } } file_sigs_k8s_io_container_object_storage_interface_spec_cosi_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ProvisionerGetInfoResponse); i { + switch v := v.(*DriverGetInfoResponse); i { case 0: return &v.state case 1: @@ -1417,7 +1467,7 @@ func file_sigs_k8s_io_container_object_storage_interface_spec_cosi_proto_init() } } file_sigs_k8s_io_container_object_storage_interface_spec_cosi_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ProvisionerCreateBucketRequest); i { + switch v := v.(*DriverCreateBucketRequest); i { case 0: return &v.state case 1: @@ -1429,7 +1479,7 @@ func file_sigs_k8s_io_container_object_storage_interface_spec_cosi_proto_init() } } file_sigs_k8s_io_container_object_storage_interface_spec_cosi_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ProvisionerCreateBucketResponse); i { + switch v := v.(*DriverCreateBucketResponse); i { case 0: return &v.state case 1: @@ -1441,7 +1491,7 @@ func file_sigs_k8s_io_container_object_storage_interface_spec_cosi_proto_init() } } file_sigs_k8s_io_container_object_storage_interface_spec_cosi_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ProvisionerDeleteBucketRequest); i { + switch v := v.(*DriverDeleteBucketRequest); i { case 0: return &v.state case 1: @@ -1453,7 +1503,7 @@ func file_sigs_k8s_io_container_object_storage_interface_spec_cosi_proto_init() } } file_sigs_k8s_io_container_object_storage_interface_spec_cosi_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ProvisionerDeleteBucketResponse); i { + switch v := v.(*DriverDeleteBucketResponse); i { case 0: return &v.state case 1: @@ -1465,7 +1515,7 @@ func file_sigs_k8s_io_container_object_storage_interface_spec_cosi_proto_init() } } file_sigs_k8s_io_container_object_storage_interface_spec_cosi_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ProvisionerGrantBucketAccessRequest); i { + switch v := v.(*DriverGrantBucketAccessRequest); i { case 0: return &v.state case 1: @@ -1477,7 +1527,7 @@ func file_sigs_k8s_io_container_object_storage_interface_spec_cosi_proto_init() } } file_sigs_k8s_io_container_object_storage_interface_spec_cosi_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ProvisionerGrantBucketAccessResponse); i { + switch v := v.(*DriverGrantBucketAccessResponse); i { case 0: return &v.state case 1: @@ -1489,7 +1539,7 @@ func file_sigs_k8s_io_container_object_storage_interface_spec_cosi_proto_init() } } file_sigs_k8s_io_container_object_storage_interface_spec_cosi_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ProvisionerRevokeBucketAccessRequest); i { + switch v := v.(*DriverRevokeBucketAccessRequest); i { case 0: return &v.state case 1: @@ -1501,7 +1551,7 @@ func file_sigs_k8s_io_container_object_storage_interface_spec_cosi_proto_init() } } file_sigs_k8s_io_container_object_storage_interface_spec_cosi_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ProvisionerRevokeBucketAccessResponse); i { + switch v := v.(*DriverRevokeBucketAccessResponse); i { case 0: return &v.state case 1: @@ -1523,7 +1573,7 @@ func file_sigs_k8s_io_container_object_storage_interface_spec_cosi_proto_init() File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_sigs_k8s_io_container_object_storage_interface_spec_cosi_proto_rawDesc, - NumEnums: 2, + NumEnums: 3, NumMessages: 16, NumExtensions: 7, NumServices: 2, @@ -1554,7 +1604,7 @@ const _ = grpc.SupportPackageIsVersion6 type IdentityClient interface { // This call is meant to retrieve the unique provisioner Identity. // This identity will have to be set in BucketRequest.Provisioner field in order to invoke this specific provisioner. - ProvisionerGetInfo(ctx context.Context, in *ProvisionerGetInfoRequest, opts ...grpc.CallOption) (*ProvisionerGetInfoResponse, error) + DriverGetInfo(ctx context.Context, in *DriverGetInfoRequest, opts ...grpc.CallOption) (*DriverGetInfoResponse, error) } type identityClient struct { @@ -1565,9 +1615,9 @@ func NewIdentityClient(cc grpc.ClientConnInterface) IdentityClient { return &identityClient{cc} } -func (c *identityClient) ProvisionerGetInfo(ctx context.Context, in *ProvisionerGetInfoRequest, opts ...grpc.CallOption) (*ProvisionerGetInfoResponse, error) { - out := new(ProvisionerGetInfoResponse) - err := c.cc.Invoke(ctx, "/cosi.v1alpha1.Identity/ProvisionerGetInfo", in, out, opts...) +func (c *identityClient) DriverGetInfo(ctx context.Context, in *DriverGetInfoRequest, opts ...grpc.CallOption) (*DriverGetInfoResponse, error) { + out := new(DriverGetInfoResponse) + err := c.cc.Invoke(ctx, "/cosi.v1alpha1.Identity/DriverGetInfo", in, out, opts...) if err != nil { return nil, err } @@ -1578,35 +1628,35 @@ func (c *identityClient) ProvisionerGetInfo(ctx context.Context, in *Provisioner type IdentityServer interface { // This call is meant to retrieve the unique provisioner Identity. // This identity will have to be set in BucketRequest.Provisioner field in order to invoke this specific provisioner. - ProvisionerGetInfo(context.Context, *ProvisionerGetInfoRequest) (*ProvisionerGetInfoResponse, error) + DriverGetInfo(context.Context, *DriverGetInfoRequest) (*DriverGetInfoResponse, error) } // UnimplementedIdentityServer can be embedded to have forward compatible implementations. type UnimplementedIdentityServer struct { } -func (*UnimplementedIdentityServer) ProvisionerGetInfo(context.Context, *ProvisionerGetInfoRequest) (*ProvisionerGetInfoResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method ProvisionerGetInfo not implemented") +func (*UnimplementedIdentityServer) DriverGetInfo(context.Context, *DriverGetInfoRequest) (*DriverGetInfoResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method DriverGetInfo not implemented") } func RegisterIdentityServer(s *grpc.Server, srv IdentityServer) { s.RegisterService(&_Identity_serviceDesc, srv) } -func _Identity_ProvisionerGetInfo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ProvisionerGetInfoRequest) +func _Identity_DriverGetInfo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DriverGetInfoRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { - return srv.(IdentityServer).ProvisionerGetInfo(ctx, in) + return srv.(IdentityServer).DriverGetInfo(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/cosi.v1alpha1.Identity/ProvisionerGetInfo", + FullMethod: "/cosi.v1alpha1.Identity/DriverGetInfo", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(IdentityServer).ProvisionerGetInfo(ctx, req.(*ProvisionerGetInfoRequest)) + return srv.(IdentityServer).DriverGetInfo(ctx, req.(*DriverGetInfoRequest)) } return interceptor(ctx, in, info, handler) } @@ -1616,8 +1666,8 @@ var _Identity_serviceDesc = grpc.ServiceDesc{ HandlerType: (*IdentityServer)(nil), Methods: []grpc.MethodDesc{ { - MethodName: "ProvisionerGetInfo", - Handler: _Identity_ProvisionerGetInfo_Handler, + MethodName: "DriverGetInfo", + Handler: _Identity_DriverGetInfo_Handler, }, }, Streams: []grpc.StreamDesc{}, @@ -1632,15 +1682,15 @@ type ProvisionerClient interface { // This call is idempotent // 1. If a bucket that matches both name and parameters already exists, then OK (success) must be returned. // 2. If a bucket by same name, but different parameters is provided, then the appropriate error code ALREADY_EXISTS must be returned. - ProvisionerCreateBucket(ctx context.Context, in *ProvisionerCreateBucketRequest, opts ...grpc.CallOption) (*ProvisionerCreateBucketResponse, error) + DriverCreateBucket(ctx context.Context, in *DriverCreateBucketRequest, opts ...grpc.CallOption) (*DriverCreateBucketResponse, error) // This call is made to delete the bucket in the backend. // If the bucket has already been deleted, then no error should be returned. - ProvisionerDeleteBucket(ctx context.Context, in *ProvisionerDeleteBucketRequest, opts ...grpc.CallOption) (*ProvisionerDeleteBucketResponse, error) + DriverDeleteBucket(ctx context.Context, in *DriverDeleteBucketRequest, opts ...grpc.CallOption) (*DriverDeleteBucketResponse, error) // This call grants access to an account. The account_name in the request shall be used as a unique identifier to create credentials. - // The account_id returned in the response will be used as the unique identifier for deleting this access when calling ProvisionerRevokeBucketAccess. - ProvisionerGrantBucketAccess(ctx context.Context, in *ProvisionerGrantBucketAccessRequest, opts ...grpc.CallOption) (*ProvisionerGrantBucketAccessResponse, error) + // The account_id returned in the response will be used as the unique identifier for deleting this access when calling DriverRevokeBucketAccess. + DriverGrantBucketAccess(ctx context.Context, in *DriverGrantBucketAccessRequest, opts ...grpc.CallOption) (*DriverGrantBucketAccessResponse, error) // This call revokes all access to a particular bucket from a principal. - ProvisionerRevokeBucketAccess(ctx context.Context, in *ProvisionerRevokeBucketAccessRequest, opts ...grpc.CallOption) (*ProvisionerRevokeBucketAccessResponse, error) + DriverRevokeBucketAccess(ctx context.Context, in *DriverRevokeBucketAccessRequest, opts ...grpc.CallOption) (*DriverRevokeBucketAccessResponse, error) } type provisionerClient struct { @@ -1651,36 +1701,36 @@ func NewProvisionerClient(cc grpc.ClientConnInterface) ProvisionerClient { return &provisionerClient{cc} } -func (c *provisionerClient) ProvisionerCreateBucket(ctx context.Context, in *ProvisionerCreateBucketRequest, opts ...grpc.CallOption) (*ProvisionerCreateBucketResponse, error) { - out := new(ProvisionerCreateBucketResponse) - err := c.cc.Invoke(ctx, "/cosi.v1alpha1.Provisioner/ProvisionerCreateBucket", in, out, opts...) +func (c *provisionerClient) DriverCreateBucket(ctx context.Context, in *DriverCreateBucketRequest, opts ...grpc.CallOption) (*DriverCreateBucketResponse, error) { + out := new(DriverCreateBucketResponse) + err := c.cc.Invoke(ctx, "/cosi.v1alpha1.Provisioner/DriverCreateBucket", in, out, opts...) if err != nil { return nil, err } return out, nil } -func (c *provisionerClient) ProvisionerDeleteBucket(ctx context.Context, in *ProvisionerDeleteBucketRequest, opts ...grpc.CallOption) (*ProvisionerDeleteBucketResponse, error) { - out := new(ProvisionerDeleteBucketResponse) - err := c.cc.Invoke(ctx, "/cosi.v1alpha1.Provisioner/ProvisionerDeleteBucket", in, out, opts...) +func (c *provisionerClient) DriverDeleteBucket(ctx context.Context, in *DriverDeleteBucketRequest, opts ...grpc.CallOption) (*DriverDeleteBucketResponse, error) { + out := new(DriverDeleteBucketResponse) + err := c.cc.Invoke(ctx, "/cosi.v1alpha1.Provisioner/DriverDeleteBucket", in, out, opts...) if err != nil { return nil, err } return out, nil } -func (c *provisionerClient) ProvisionerGrantBucketAccess(ctx context.Context, in *ProvisionerGrantBucketAccessRequest, opts ...grpc.CallOption) (*ProvisionerGrantBucketAccessResponse, error) { - out := new(ProvisionerGrantBucketAccessResponse) - err := c.cc.Invoke(ctx, "/cosi.v1alpha1.Provisioner/ProvisionerGrantBucketAccess", in, out, opts...) +func (c *provisionerClient) DriverGrantBucketAccess(ctx context.Context, in *DriverGrantBucketAccessRequest, opts ...grpc.CallOption) (*DriverGrantBucketAccessResponse, error) { + out := new(DriverGrantBucketAccessResponse) + err := c.cc.Invoke(ctx, "/cosi.v1alpha1.Provisioner/DriverGrantBucketAccess", in, out, opts...) if err != nil { return nil, err } return out, nil } -func (c *provisionerClient) ProvisionerRevokeBucketAccess(ctx context.Context, in *ProvisionerRevokeBucketAccessRequest, opts ...grpc.CallOption) (*ProvisionerRevokeBucketAccessResponse, error) { - out := new(ProvisionerRevokeBucketAccessResponse) - err := c.cc.Invoke(ctx, "/cosi.v1alpha1.Provisioner/ProvisionerRevokeBucketAccess", in, out, opts...) +func (c *provisionerClient) DriverRevokeBucketAccess(ctx context.Context, in *DriverRevokeBucketAccessRequest, opts ...grpc.CallOption) (*DriverRevokeBucketAccessResponse, error) { + out := new(DriverRevokeBucketAccessResponse) + err := c.cc.Invoke(ctx, "/cosi.v1alpha1.Provisioner/DriverRevokeBucketAccess", in, out, opts...) if err != nil { return nil, err } @@ -1693,106 +1743,106 @@ type ProvisionerServer interface { // This call is idempotent // 1. If a bucket that matches both name and parameters already exists, then OK (success) must be returned. // 2. If a bucket by same name, but different parameters is provided, then the appropriate error code ALREADY_EXISTS must be returned. - ProvisionerCreateBucket(context.Context, *ProvisionerCreateBucketRequest) (*ProvisionerCreateBucketResponse, error) + DriverCreateBucket(context.Context, *DriverCreateBucketRequest) (*DriverCreateBucketResponse, error) // This call is made to delete the bucket in the backend. // If the bucket has already been deleted, then no error should be returned. - ProvisionerDeleteBucket(context.Context, *ProvisionerDeleteBucketRequest) (*ProvisionerDeleteBucketResponse, error) + DriverDeleteBucket(context.Context, *DriverDeleteBucketRequest) (*DriverDeleteBucketResponse, error) // This call grants access to an account. The account_name in the request shall be used as a unique identifier to create credentials. - // The account_id returned in the response will be used as the unique identifier for deleting this access when calling ProvisionerRevokeBucketAccess. - ProvisionerGrantBucketAccess(context.Context, *ProvisionerGrantBucketAccessRequest) (*ProvisionerGrantBucketAccessResponse, error) + // The account_id returned in the response will be used as the unique identifier for deleting this access when calling DriverRevokeBucketAccess. + DriverGrantBucketAccess(context.Context, *DriverGrantBucketAccessRequest) (*DriverGrantBucketAccessResponse, error) // This call revokes all access to a particular bucket from a principal. - ProvisionerRevokeBucketAccess(context.Context, *ProvisionerRevokeBucketAccessRequest) (*ProvisionerRevokeBucketAccessResponse, error) + DriverRevokeBucketAccess(context.Context, *DriverRevokeBucketAccessRequest) (*DriverRevokeBucketAccessResponse, error) } // UnimplementedProvisionerServer can be embedded to have forward compatible implementations. type UnimplementedProvisionerServer struct { } -func (*UnimplementedProvisionerServer) ProvisionerCreateBucket(context.Context, *ProvisionerCreateBucketRequest) (*ProvisionerCreateBucketResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method ProvisionerCreateBucket not implemented") +func (*UnimplementedProvisionerServer) DriverCreateBucket(context.Context, *DriverCreateBucketRequest) (*DriverCreateBucketResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method DriverCreateBucket not implemented") } -func (*UnimplementedProvisionerServer) ProvisionerDeleteBucket(context.Context, *ProvisionerDeleteBucketRequest) (*ProvisionerDeleteBucketResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method ProvisionerDeleteBucket not implemented") +func (*UnimplementedProvisionerServer) DriverDeleteBucket(context.Context, *DriverDeleteBucketRequest) (*DriverDeleteBucketResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method DriverDeleteBucket not implemented") } -func (*UnimplementedProvisionerServer) ProvisionerGrantBucketAccess(context.Context, *ProvisionerGrantBucketAccessRequest) (*ProvisionerGrantBucketAccessResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method ProvisionerGrantBucketAccess not implemented") +func (*UnimplementedProvisionerServer) DriverGrantBucketAccess(context.Context, *DriverGrantBucketAccessRequest) (*DriverGrantBucketAccessResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method DriverGrantBucketAccess not implemented") } -func (*UnimplementedProvisionerServer) ProvisionerRevokeBucketAccess(context.Context, *ProvisionerRevokeBucketAccessRequest) (*ProvisionerRevokeBucketAccessResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method ProvisionerRevokeBucketAccess not implemented") +func (*UnimplementedProvisionerServer) DriverRevokeBucketAccess(context.Context, *DriverRevokeBucketAccessRequest) (*DriverRevokeBucketAccessResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method DriverRevokeBucketAccess not implemented") } func RegisterProvisionerServer(s *grpc.Server, srv ProvisionerServer) { s.RegisterService(&_Provisioner_serviceDesc, srv) } -func _Provisioner_ProvisionerCreateBucket_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ProvisionerCreateBucketRequest) +func _Provisioner_DriverCreateBucket_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DriverCreateBucketRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { - return srv.(ProvisionerServer).ProvisionerCreateBucket(ctx, in) + return srv.(ProvisionerServer).DriverCreateBucket(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/cosi.v1alpha1.Provisioner/ProvisionerCreateBucket", + FullMethod: "/cosi.v1alpha1.Provisioner/DriverCreateBucket", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(ProvisionerServer).ProvisionerCreateBucket(ctx, req.(*ProvisionerCreateBucketRequest)) + return srv.(ProvisionerServer).DriverCreateBucket(ctx, req.(*DriverCreateBucketRequest)) } return interceptor(ctx, in, info, handler) } -func _Provisioner_ProvisionerDeleteBucket_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ProvisionerDeleteBucketRequest) +func _Provisioner_DriverDeleteBucket_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DriverDeleteBucketRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { - return srv.(ProvisionerServer).ProvisionerDeleteBucket(ctx, in) + return srv.(ProvisionerServer).DriverDeleteBucket(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/cosi.v1alpha1.Provisioner/ProvisionerDeleteBucket", + FullMethod: "/cosi.v1alpha1.Provisioner/DriverDeleteBucket", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(ProvisionerServer).ProvisionerDeleteBucket(ctx, req.(*ProvisionerDeleteBucketRequest)) + return srv.(ProvisionerServer).DriverDeleteBucket(ctx, req.(*DriverDeleteBucketRequest)) } return interceptor(ctx, in, info, handler) } -func _Provisioner_ProvisionerGrantBucketAccess_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ProvisionerGrantBucketAccessRequest) +func _Provisioner_DriverGrantBucketAccess_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DriverGrantBucketAccessRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { - return srv.(ProvisionerServer).ProvisionerGrantBucketAccess(ctx, in) + return srv.(ProvisionerServer).DriverGrantBucketAccess(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/cosi.v1alpha1.Provisioner/ProvisionerGrantBucketAccess", + FullMethod: "/cosi.v1alpha1.Provisioner/DriverGrantBucketAccess", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(ProvisionerServer).ProvisionerGrantBucketAccess(ctx, req.(*ProvisionerGrantBucketAccessRequest)) + return srv.(ProvisionerServer).DriverGrantBucketAccess(ctx, req.(*DriverGrantBucketAccessRequest)) } return interceptor(ctx, in, info, handler) } -func _Provisioner_ProvisionerRevokeBucketAccess_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ProvisionerRevokeBucketAccessRequest) +func _Provisioner_DriverRevokeBucketAccess_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DriverRevokeBucketAccessRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { - return srv.(ProvisionerServer).ProvisionerRevokeBucketAccess(ctx, in) + return srv.(ProvisionerServer).DriverRevokeBucketAccess(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/cosi.v1alpha1.Provisioner/ProvisionerRevokeBucketAccess", + FullMethod: "/cosi.v1alpha1.Provisioner/DriverRevokeBucketAccess", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(ProvisionerServer).ProvisionerRevokeBucketAccess(ctx, req.(*ProvisionerRevokeBucketAccessRequest)) + return srv.(ProvisionerServer).DriverRevokeBucketAccess(ctx, req.(*DriverRevokeBucketAccessRequest)) } return interceptor(ctx, in, info, handler) } @@ -1802,20 +1852,20 @@ var _Provisioner_serviceDesc = grpc.ServiceDesc{ HandlerType: (*ProvisionerServer)(nil), Methods: []grpc.MethodDesc{ { - MethodName: "ProvisionerCreateBucket", - Handler: _Provisioner_ProvisionerCreateBucket_Handler, + MethodName: "DriverCreateBucket", + Handler: _Provisioner_DriverCreateBucket_Handler, }, { - MethodName: "ProvisionerDeleteBucket", - Handler: _Provisioner_ProvisionerDeleteBucket_Handler, + MethodName: "DriverDeleteBucket", + Handler: _Provisioner_DriverDeleteBucket_Handler, }, { - MethodName: "ProvisionerGrantBucketAccess", - Handler: _Provisioner_ProvisionerGrantBucketAccess_Handler, + MethodName: "DriverGrantBucketAccess", + Handler: _Provisioner_DriverGrantBucketAccess_Handler, }, { - MethodName: "ProvisionerRevokeBucketAccess", - Handler: _Provisioner_ProvisionerRevokeBucketAccess_Handler, + MethodName: "DriverRevokeBucketAccess", + Handler: _Provisioner_DriverRevokeBucketAccess_Handler, }, }, Streams: []grpc.StreamDesc{}, diff --git a/cosi.pb.json.go b/cosi.pb.json.go index 57bd9cf..4d6e0c7 100644 --- a/cosi.pb.json.go +++ b/cosi.pb.json.go @@ -4,259 +4,229 @@ package cosi import ( - "bytes" - - "github.com/golang/protobuf/jsonpb" + "google.golang.org/protobuf/encoding/protojson" ) // MarshalJSON implements json.Marshaler func (msg *S3) MarshalJSON() ([]byte, error) { - var buf bytes.Buffer - err := (&jsonpb.Marshaler{ - EnumsAsInts: false, - EmitDefaults: true, - OrigName: false, - }).Marshal(&buf, msg) - return buf.Bytes(), err + return protojson.MarshalOptions{ + UseEnumNumbers: false, + EmitUnpopulated: true, + UseProtoNames: false, + }.Marshal(msg) } // UnmarshalJSON implements json.Unmarshaler func (msg *S3) UnmarshalJSON(b []byte) error { - return (&jsonpb.Unmarshaler{ - AllowUnknownFields: false, - }).Unmarshal(bytes.NewReader(b), msg) + return protojson.UnmarshalOptions{ + DiscardUnknown: false, + }.Unmarshal(b, msg) } // MarshalJSON implements json.Marshaler func (msg *AzureBlob) MarshalJSON() ([]byte, error) { - var buf bytes.Buffer - err := (&jsonpb.Marshaler{ - EnumsAsInts: false, - EmitDefaults: true, - OrigName: false, - }).Marshal(&buf, msg) - return buf.Bytes(), err + return protojson.MarshalOptions{ + UseEnumNumbers: false, + EmitUnpopulated: true, + UseProtoNames: false, + }.Marshal(msg) } // UnmarshalJSON implements json.Unmarshaler func (msg *AzureBlob) UnmarshalJSON(b []byte) error { - return (&jsonpb.Unmarshaler{ - AllowUnknownFields: false, - }).Unmarshal(bytes.NewReader(b), msg) + return protojson.UnmarshalOptions{ + DiscardUnknown: false, + }.Unmarshal(b, msg) } // MarshalJSON implements json.Marshaler func (msg *GCS) MarshalJSON() ([]byte, error) { - var buf bytes.Buffer - err := (&jsonpb.Marshaler{ - EnumsAsInts: false, - EmitDefaults: true, - OrigName: false, - }).Marshal(&buf, msg) - return buf.Bytes(), err + return protojson.MarshalOptions{ + UseEnumNumbers: false, + EmitUnpopulated: true, + UseProtoNames: false, + }.Marshal(msg) } // UnmarshalJSON implements json.Unmarshaler func (msg *GCS) UnmarshalJSON(b []byte) error { - return (&jsonpb.Unmarshaler{ - AllowUnknownFields: false, - }).Unmarshal(bytes.NewReader(b), msg) + return protojson.UnmarshalOptions{ + DiscardUnknown: false, + }.Unmarshal(b, msg) } // MarshalJSON implements json.Marshaler func (msg *Protocol) MarshalJSON() ([]byte, error) { - var buf bytes.Buffer - err := (&jsonpb.Marshaler{ - EnumsAsInts: false, - EmitDefaults: true, - OrigName: false, - }).Marshal(&buf, msg) - return buf.Bytes(), err + return protojson.MarshalOptions{ + UseEnumNumbers: false, + EmitUnpopulated: true, + UseProtoNames: false, + }.Marshal(msg) } // UnmarshalJSON implements json.Unmarshaler func (msg *Protocol) UnmarshalJSON(b []byte) error { - return (&jsonpb.Unmarshaler{ - AllowUnknownFields: false, - }).Unmarshal(bytes.NewReader(b), msg) + return protojson.UnmarshalOptions{ + DiscardUnknown: false, + }.Unmarshal(b, msg) } // MarshalJSON implements json.Marshaler -func (msg *ProvisionerGetInfoRequest) MarshalJSON() ([]byte, error) { - var buf bytes.Buffer - err := (&jsonpb.Marshaler{ - EnumsAsInts: false, - EmitDefaults: true, - OrigName: false, - }).Marshal(&buf, msg) - return buf.Bytes(), err +func (msg *DriverGetInfoRequest) MarshalJSON() ([]byte, error) { + return protojson.MarshalOptions{ + UseEnumNumbers: false, + EmitUnpopulated: true, + UseProtoNames: false, + }.Marshal(msg) } // UnmarshalJSON implements json.Unmarshaler -func (msg *ProvisionerGetInfoRequest) UnmarshalJSON(b []byte) error { - return (&jsonpb.Unmarshaler{ - AllowUnknownFields: false, - }).Unmarshal(bytes.NewReader(b), msg) +func (msg *DriverGetInfoRequest) UnmarshalJSON(b []byte) error { + return protojson.UnmarshalOptions{ + DiscardUnknown: false, + }.Unmarshal(b, msg) } // MarshalJSON implements json.Marshaler -func (msg *ProvisionerGetInfoResponse) MarshalJSON() ([]byte, error) { - var buf bytes.Buffer - err := (&jsonpb.Marshaler{ - EnumsAsInts: false, - EmitDefaults: true, - OrigName: false, - }).Marshal(&buf, msg) - return buf.Bytes(), err +func (msg *DriverGetInfoResponse) MarshalJSON() ([]byte, error) { + return protojson.MarshalOptions{ + UseEnumNumbers: false, + EmitUnpopulated: true, + UseProtoNames: false, + }.Marshal(msg) } // UnmarshalJSON implements json.Unmarshaler -func (msg *ProvisionerGetInfoResponse) UnmarshalJSON(b []byte) error { - return (&jsonpb.Unmarshaler{ - AllowUnknownFields: false, - }).Unmarshal(bytes.NewReader(b), msg) +func (msg *DriverGetInfoResponse) UnmarshalJSON(b []byte) error { + return protojson.UnmarshalOptions{ + DiscardUnknown: false, + }.Unmarshal(b, msg) } // MarshalJSON implements json.Marshaler -func (msg *ProvisionerCreateBucketRequest) MarshalJSON() ([]byte, error) { - var buf bytes.Buffer - err := (&jsonpb.Marshaler{ - EnumsAsInts: false, - EmitDefaults: true, - OrigName: false, - }).Marshal(&buf, msg) - return buf.Bytes(), err +func (msg *DriverCreateBucketRequest) MarshalJSON() ([]byte, error) { + return protojson.MarshalOptions{ + UseEnumNumbers: false, + EmitUnpopulated: true, + UseProtoNames: false, + }.Marshal(msg) } // UnmarshalJSON implements json.Unmarshaler -func (msg *ProvisionerCreateBucketRequest) UnmarshalJSON(b []byte) error { - return (&jsonpb.Unmarshaler{ - AllowUnknownFields: false, - }).Unmarshal(bytes.NewReader(b), msg) +func (msg *DriverCreateBucketRequest) UnmarshalJSON(b []byte) error { + return protojson.UnmarshalOptions{ + DiscardUnknown: false, + }.Unmarshal(b, msg) } // MarshalJSON implements json.Marshaler -func (msg *ProvisionerCreateBucketResponse) MarshalJSON() ([]byte, error) { - var buf bytes.Buffer - err := (&jsonpb.Marshaler{ - EnumsAsInts: false, - EmitDefaults: true, - OrigName: false, - }).Marshal(&buf, msg) - return buf.Bytes(), err +func (msg *DriverCreateBucketResponse) MarshalJSON() ([]byte, error) { + return protojson.MarshalOptions{ + UseEnumNumbers: false, + EmitUnpopulated: true, + UseProtoNames: false, + }.Marshal(msg) } // UnmarshalJSON implements json.Unmarshaler -func (msg *ProvisionerCreateBucketResponse) UnmarshalJSON(b []byte) error { - return (&jsonpb.Unmarshaler{ - AllowUnknownFields: false, - }).Unmarshal(bytes.NewReader(b), msg) +func (msg *DriverCreateBucketResponse) UnmarshalJSON(b []byte) error { + return protojson.UnmarshalOptions{ + DiscardUnknown: false, + }.Unmarshal(b, msg) } // MarshalJSON implements json.Marshaler -func (msg *ProvisionerDeleteBucketRequest) MarshalJSON() ([]byte, error) { - var buf bytes.Buffer - err := (&jsonpb.Marshaler{ - EnumsAsInts: false, - EmitDefaults: true, - OrigName: false, - }).Marshal(&buf, msg) - return buf.Bytes(), err +func (msg *DriverDeleteBucketRequest) MarshalJSON() ([]byte, error) { + return protojson.MarshalOptions{ + UseEnumNumbers: false, + EmitUnpopulated: true, + UseProtoNames: false, + }.Marshal(msg) } // UnmarshalJSON implements json.Unmarshaler -func (msg *ProvisionerDeleteBucketRequest) UnmarshalJSON(b []byte) error { - return (&jsonpb.Unmarshaler{ - AllowUnknownFields: false, - }).Unmarshal(bytes.NewReader(b), msg) +func (msg *DriverDeleteBucketRequest) UnmarshalJSON(b []byte) error { + return protojson.UnmarshalOptions{ + DiscardUnknown: false, + }.Unmarshal(b, msg) } // MarshalJSON implements json.Marshaler -func (msg *ProvisionerDeleteBucketResponse) MarshalJSON() ([]byte, error) { - var buf bytes.Buffer - err := (&jsonpb.Marshaler{ - EnumsAsInts: false, - EmitDefaults: true, - OrigName: false, - }).Marshal(&buf, msg) - return buf.Bytes(), err +func (msg *DriverDeleteBucketResponse) MarshalJSON() ([]byte, error) { + return protojson.MarshalOptions{ + UseEnumNumbers: false, + EmitUnpopulated: true, + UseProtoNames: false, + }.Marshal(msg) } // UnmarshalJSON implements json.Unmarshaler -func (msg *ProvisionerDeleteBucketResponse) UnmarshalJSON(b []byte) error { - return (&jsonpb.Unmarshaler{ - AllowUnknownFields: false, - }).Unmarshal(bytes.NewReader(b), msg) +func (msg *DriverDeleteBucketResponse) UnmarshalJSON(b []byte) error { + return protojson.UnmarshalOptions{ + DiscardUnknown: false, + }.Unmarshal(b, msg) } // MarshalJSON implements json.Marshaler -func (msg *ProvisionerGrantBucketAccessRequest) MarshalJSON() ([]byte, error) { - var buf bytes.Buffer - err := (&jsonpb.Marshaler{ - EnumsAsInts: false, - EmitDefaults: true, - OrigName: false, - }).Marshal(&buf, msg) - return buf.Bytes(), err +func (msg *DriverGrantBucketAccessRequest) MarshalJSON() ([]byte, error) { + return protojson.MarshalOptions{ + UseEnumNumbers: false, + EmitUnpopulated: true, + UseProtoNames: false, + }.Marshal(msg) } // UnmarshalJSON implements json.Unmarshaler -func (msg *ProvisionerGrantBucketAccessRequest) UnmarshalJSON(b []byte) error { - return (&jsonpb.Unmarshaler{ - AllowUnknownFields: false, - }).Unmarshal(bytes.NewReader(b), msg) +func (msg *DriverGrantBucketAccessRequest) UnmarshalJSON(b []byte) error { + return protojson.UnmarshalOptions{ + DiscardUnknown: false, + }.Unmarshal(b, msg) } // MarshalJSON implements json.Marshaler -func (msg *ProvisionerGrantBucketAccessResponse) MarshalJSON() ([]byte, error) { - var buf bytes.Buffer - err := (&jsonpb.Marshaler{ - EnumsAsInts: false, - EmitDefaults: true, - OrigName: false, - }).Marshal(&buf, msg) - return buf.Bytes(), err +func (msg *DriverGrantBucketAccessResponse) MarshalJSON() ([]byte, error) { + return protojson.MarshalOptions{ + UseEnumNumbers: false, + EmitUnpopulated: true, + UseProtoNames: false, + }.Marshal(msg) } // UnmarshalJSON implements json.Unmarshaler -func (msg *ProvisionerGrantBucketAccessResponse) UnmarshalJSON(b []byte) error { - return (&jsonpb.Unmarshaler{ - AllowUnknownFields: false, - }).Unmarshal(bytes.NewReader(b), msg) +func (msg *DriverGrantBucketAccessResponse) UnmarshalJSON(b []byte) error { + return protojson.UnmarshalOptions{ + DiscardUnknown: false, + }.Unmarshal(b, msg) } // MarshalJSON implements json.Marshaler -func (msg *ProvisionerRevokeBucketAccessRequest) MarshalJSON() ([]byte, error) { - var buf bytes.Buffer - err := (&jsonpb.Marshaler{ - EnumsAsInts: false, - EmitDefaults: true, - OrigName: false, - }).Marshal(&buf, msg) - return buf.Bytes(), err +func (msg *DriverRevokeBucketAccessRequest) MarshalJSON() ([]byte, error) { + return protojson.MarshalOptions{ + UseEnumNumbers: false, + EmitUnpopulated: true, + UseProtoNames: false, + }.Marshal(msg) } // UnmarshalJSON implements json.Unmarshaler -func (msg *ProvisionerRevokeBucketAccessRequest) UnmarshalJSON(b []byte) error { - return (&jsonpb.Unmarshaler{ - AllowUnknownFields: false, - }).Unmarshal(bytes.NewReader(b), msg) +func (msg *DriverRevokeBucketAccessRequest) UnmarshalJSON(b []byte) error { + return protojson.UnmarshalOptions{ + DiscardUnknown: false, + }.Unmarshal(b, msg) } // MarshalJSON implements json.Marshaler -func (msg *ProvisionerRevokeBucketAccessResponse) MarshalJSON() ([]byte, error) { - var buf bytes.Buffer - err := (&jsonpb.Marshaler{ - EnumsAsInts: false, - EmitDefaults: true, - OrigName: false, - }).Marshal(&buf, msg) - return buf.Bytes(), err +func (msg *DriverRevokeBucketAccessResponse) MarshalJSON() ([]byte, error) { + return protojson.MarshalOptions{ + UseEnumNumbers: false, + EmitUnpopulated: true, + UseProtoNames: false, + }.Marshal(msg) } // UnmarshalJSON implements json.Unmarshaler -func (msg *ProvisionerRevokeBucketAccessResponse) UnmarshalJSON(b []byte) error { - return (&jsonpb.Unmarshaler{ - AllowUnknownFields: false, - }).Unmarshal(bytes.NewReader(b), msg) +func (msg *DriverRevokeBucketAccessResponse) UnmarshalJSON(b []byte) error { + return protojson.UnmarshalOptions{ + DiscardUnknown: false, + }.Unmarshal(b, msg) } diff --git a/cosi.proto b/cosi.proto index 29455ec..45e1591 100644 --- a/cosi.proto +++ b/cosi.proto @@ -55,7 +55,7 @@ extend google.protobuf.ServiceOptions { service Identity { // This call is meant to retrieve the unique provisioner Identity. // This identity will have to be set in BucketRequest.Provisioner field in order to invoke this specific provisioner. - rpc ProvisionerGetInfo (ProvisionerGetInfoRequest) returns (ProvisionerGetInfoResponse) {} + rpc DriverGetInfo (DriverGetInfoRequest) returns (DriverGetInfoResponse) {} } service Provisioner { @@ -63,16 +63,16 @@ service Provisioner { // This call is idempotent // 1. If a bucket that matches both name and parameters already exists, then OK (success) must be returned. // 2. If a bucket by same name, but different parameters is provided, then the appropriate error code ALREADY_EXISTS must be returned. - rpc ProvisionerCreateBucket (ProvisionerCreateBucketRequest) returns (ProvisionerCreateBucketResponse) {} + rpc DriverCreateBucket (DriverCreateBucketRequest) returns (DriverCreateBucketResponse) {} // This call is made to delete the bucket in the backend. // If the bucket has already been deleted, then no error should be returned. - rpc ProvisionerDeleteBucket (ProvisionerDeleteBucketRequest) returns (ProvisionerDeleteBucketResponse) {} + rpc DriverDeleteBucket (DriverDeleteBucketRequest) returns (DriverDeleteBucketResponse) {} // This call grants access to an account. The account_name in the request shall be used as a unique identifier to create credentials. - // The account_id returned in the response will be used as the unique identifier for deleting this access when calling ProvisionerRevokeBucketAccess. - rpc ProvisionerGrantBucketAccess (ProvisionerGrantBucketAccessRequest) returns (ProvisionerGrantBucketAccessResponse); + // The account_id returned in the response will be used as the unique identifier for deleting this access when calling DriverRevokeBucketAccess. + rpc DriverGrantBucketAccess (DriverGrantBucketAccessRequest) returns (DriverGrantBucketAccessResponse); // This call revokes all access to a particular bucket from a principal. - rpc ProvisionerRevokeBucketAccess (ProvisionerRevokeBucketAccessRequest) returns (ProvisionerRevokeBucketAccessResponse); + rpc DriverRevokeBucketAccess (DriverRevokeBucketAccessRequest) returns (DriverRevokeBucketAccessResponse); } // S3SignatureVersion is the version of the signing algorithm for all s3 requests @@ -96,6 +96,14 @@ enum AnonymousBucketAccessMode { ReadWrite = 4; } +enum AuthenticationType { + UnknownAuthenticationType = 0; + // Default, KEY based authentication. + Key = 1; + // Storageaccount based authentication. + IAM = 2; +} + message S3 { // region denotes the geographical region where the S3 server is running string region = 1; @@ -125,11 +133,11 @@ message Protocol { } } -message ProvisionerGetInfoRequest { +message DriverGetInfoRequest { // Intentionally left blank } -message ProvisionerGetInfoResponse { +message DriverGetInfoResponse { // This field is REQUIRED // The name MUST follow domain name notation format // (https://tools.ietf.org/html/rfc1035#section-2.3.1). It SHOULD @@ -141,53 +149,52 @@ message ProvisionerGetInfoResponse { string name = 1; } -message ProvisionerCreateBucketRequest { +message DriverCreateBucketRequest { // This field is REQUIRED // name specifies the name of the bucket that should be created. string name = 1; - // This field is REQUIRED - // Protocol specific information required by the call is passed in as key,value pairs. - Protocol protocol = 2; - // This field is OPTIONAL // The caller should treat the values in parameters as opaque. // The receiver is responsible for parsing and validating the values. - map parameters = 3; + map parameters = 2; } -message ProvisionerCreateBucketResponse { +message DriverCreateBucketResponse { // bucket_id returned here is expected to be the globally unique - // identifier for the bucket in the object storage provider + // identifier for the bucket in the object storage provider. string bucket_id = 1; + + // bucket_info returned here stores the data specific to the + // bucket required by the object storage provider to connect to the bucket. + Protocol bucket_info = 2; } -message ProvisionerDeleteBucketRequest { +message DriverDeleteBucketRequest { // This field is REQUIRED // bucket_id is a globally unique identifier for the bucket // in the object storage provider string bucket_id = 1; } -message ProvisionerDeleteBucketResponse { +message DriverDeleteBucketResponse { // Intentionally left blank } -message ProvisionerGrantBucketAccessRequest { +message DriverGrantBucketAccessRequest { // This field is REQUIRED // bucket_id is a globally unique identifier for the bucket // in the object storage provider string bucket_id = 1; // This field is REQUIRED - // account_name is a identifier for object storage provider - // to ensure that multiple requests for the same account - // result in only one access token being created - string account_name = 2; + // name field is used to define the name of the bucket access object. + string name = 2; // This field is REQUIRED - // Requested Access policy, ex: {"Effect":"Allow","Action":"s3:PutObject","Resource":"arn:aws:s3:::profilepics/*"} - string access_policy = 3; + // Requested authentication type for the bucket access. + // Supported authentication types are KEY or IAM. + AuthenticationType authentication_type = 3; // This field is OPTIONAL // The caller should treat the values in parameters as opaque. @@ -195,18 +202,18 @@ message ProvisionerGrantBucketAccessRequest { map parameters = 4; } -message ProvisionerGrantBucketAccessResponse { - // This field is OPTIONAL +message DriverGrantBucketAccessResponse { + // This field is REQUIRED // This is the account_id that is being provided access. This will // be required later to revoke access. string account_id = 1; - // This field is OPTIONAL + // This field is REQUIRED // Credentials supplied for accessing the bucket ex: aws access key id and secret, etc. string credentials = 2; } -message ProvisionerRevokeBucketAccessRequest { +message DriverRevokeBucketAccessRequest { // This field is REQUIRED // bucket_id is a globally unique identifier for the bucket // in the object storage provider. @@ -217,7 +224,7 @@ message ProvisionerRevokeBucketAccessRequest { string account_id = 2; } -message ProvisionerRevokeBucketAccessResponse { +message DriverRevokeBucketAccessResponse { // Intentionally left blank } diff --git a/fake/cosi.pb.fake.go b/fake/cosi.pb.fake.go index 3e14247..170bedb 100644 --- a/fake/cosi.pb.fake.go +++ b/fake/cosi.pb.fake.go @@ -7,29 +7,29 @@ import ( ) type FakeIdentityClient struct { - FakeProvisionerGetInfo func(ctx context.Context, in *containerobjectstorageinterfacespec.ProvisionerGetInfoRequest, opts ...grpc.CallOption) (*containerobjectstorageinterfacespec.ProvisionerGetInfoResponse, error) + FakeDriverGetInfo func(ctx context.Context, in *containerobjectstorageinterfacespec.DriverGetInfoRequest, opts ...grpc.CallOption) (*containerobjectstorageinterfacespec.DriverGetInfoResponse, error) } -func (f *FakeIdentityClient) ProvisionerGetInfo(ctx context.Context, in *containerobjectstorageinterfacespec.ProvisionerGetInfoRequest, opts ...grpc.CallOption) (*containerobjectstorageinterfacespec.ProvisionerGetInfoResponse, error) { - return f.FakeProvisionerGetInfo(ctx, in, opts...) +func (f *FakeIdentityClient) DriverGetInfo(ctx context.Context, in *containerobjectstorageinterfacespec.DriverGetInfoRequest, opts ...grpc.CallOption) (*containerobjectstorageinterfacespec.DriverGetInfoResponse, error) { + return f.FakeDriverGetInfo(ctx, in, opts...) } type FakeProvisionerClient struct { - FakeProvisionerCreateBucket func(ctx context.Context, in *containerobjectstorageinterfacespec.ProvisionerCreateBucketRequest, opts ...grpc.CallOption) (*containerobjectstorageinterfacespec.ProvisionerCreateBucketResponse, error) - FakeProvisionerDeleteBucket func(ctx context.Context, in *containerobjectstorageinterfacespec.ProvisionerDeleteBucketRequest, opts ...grpc.CallOption) (*containerobjectstorageinterfacespec.ProvisionerDeleteBucketResponse, error) - FakeProvisionerGrantBucketAccess func(ctx context.Context, in *containerobjectstorageinterfacespec.ProvisionerGrantBucketAccessRequest, opts ...grpc.CallOption) (*containerobjectstorageinterfacespec.ProvisionerGrantBucketAccessResponse, error) - FakeProvisionerRevokeBucketAccess func(ctx context.Context, in *containerobjectstorageinterfacespec.ProvisionerRevokeBucketAccessRequest, opts ...grpc.CallOption) (*containerobjectstorageinterfacespec.ProvisionerRevokeBucketAccessResponse, error) + FakeDriverCreateBucket func(ctx context.Context, in *containerobjectstorageinterfacespec.DriverCreateBucketRequest, opts ...grpc.CallOption) (*containerobjectstorageinterfacespec.DriverCreateBucketResponse, error) + FakeDriverDeleteBucket func(ctx context.Context, in *containerobjectstorageinterfacespec.DriverDeleteBucketRequest, opts ...grpc.CallOption) (*containerobjectstorageinterfacespec.DriverDeleteBucketResponse, error) + FakeDriverGrantBucketAccess func(ctx context.Context, in *containerobjectstorageinterfacespec.DriverGrantBucketAccessRequest, opts ...grpc.CallOption) (*containerobjectstorageinterfacespec.DriverGrantBucketAccessResponse, error) + FakeDriverRevokeBucketAccess func(ctx context.Context, in *containerobjectstorageinterfacespec.DriverRevokeBucketAccessRequest, opts ...grpc.CallOption) (*containerobjectstorageinterfacespec.DriverRevokeBucketAccessResponse, error) } -func (f *FakeProvisionerClient) ProvisionerCreateBucket(ctx context.Context, in *containerobjectstorageinterfacespec.ProvisionerCreateBucketRequest, opts ...grpc.CallOption) (*containerobjectstorageinterfacespec.ProvisionerCreateBucketResponse, error) { - return f.FakeProvisionerCreateBucket(ctx, in, opts...) +func (f *FakeProvisionerClient) DriverCreateBucket(ctx context.Context, in *containerobjectstorageinterfacespec.DriverCreateBucketRequest, opts ...grpc.CallOption) (*containerobjectstorageinterfacespec.DriverCreateBucketResponse, error) { + return f.FakeDriverCreateBucket(ctx, in, opts...) } -func (f *FakeProvisionerClient) ProvisionerDeleteBucket(ctx context.Context, in *containerobjectstorageinterfacespec.ProvisionerDeleteBucketRequest, opts ...grpc.CallOption) (*containerobjectstorageinterfacespec.ProvisionerDeleteBucketResponse, error) { - return f.FakeProvisionerDeleteBucket(ctx, in, opts...) +func (f *FakeProvisionerClient) DriverDeleteBucket(ctx context.Context, in *containerobjectstorageinterfacespec.DriverDeleteBucketRequest, opts ...grpc.CallOption) (*containerobjectstorageinterfacespec.DriverDeleteBucketResponse, error) { + return f.FakeDriverDeleteBucket(ctx, in, opts...) } -func (f *FakeProvisionerClient) ProvisionerGrantBucketAccess(ctx context.Context, in *containerobjectstorageinterfacespec.ProvisionerGrantBucketAccessRequest, opts ...grpc.CallOption) (*containerobjectstorageinterfacespec.ProvisionerGrantBucketAccessResponse, error) { - return f.FakeProvisionerGrantBucketAccess(ctx, in, opts...) +func (f *FakeProvisionerClient) DriverGrantBucketAccess(ctx context.Context, in *containerobjectstorageinterfacespec.DriverGrantBucketAccessRequest, opts ...grpc.CallOption) (*containerobjectstorageinterfacespec.DriverGrantBucketAccessResponse, error) { + return f.FakeDriverGrantBucketAccess(ctx, in, opts...) } -func (f *FakeProvisionerClient) ProvisionerRevokeBucketAccess(ctx context.Context, in *containerobjectstorageinterfacespec.ProvisionerRevokeBucketAccessRequest, opts ...grpc.CallOption) (*containerobjectstorageinterfacespec.ProvisionerRevokeBucketAccessResponse, error) { - return f.FakeProvisionerRevokeBucketAccess(ctx, in, opts...) +func (f *FakeProvisionerClient) DriverRevokeBucketAccess(ctx context.Context, in *containerobjectstorageinterfacespec.DriverRevokeBucketAccessRequest, opts ...grpc.CallOption) (*containerobjectstorageinterfacespec.DriverRevokeBucketAccessResponse, error) { + return f.FakeDriverRevokeBucketAccess(ctx, in, opts...) } From cec5d74780c47f1d9227ee7c54f4c265c1ca6dd9 Mon Sep 17 00:00:00 2001 From: Akash Mukhopadhyay Date: Fri, 15 Jul 2022 00:03:09 -0700 Subject: [PATCH 5/6] Added credential details map for grant access response --- cosi.pb.go | 554 ++++++++++++++++++++++++++++-------------------- cosi.pb.json.go | 16 ++ cosi.proto | 7 +- spec.md | 7 +- 4 files changed, 348 insertions(+), 236 deletions(-) diff --git a/cosi.pb.go b/cosi.pb.go index 181819a..2533870 100644 --- a/cosi.pb.go +++ b/cosi.pb.go @@ -459,6 +459,54 @@ func (*Protocol_AzureBlob) isProtocol_Type() {} func (*Protocol_Gcs) isProtocol_Type() {} +type CredentialDetails struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // map of the details in the secrets for the protocol string + Secrets map[string]string `protobuf:"bytes,1,rep,name=secrets,proto3" json:"secrets,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` +} + +func (x *CredentialDetails) Reset() { + *x = CredentialDetails{} + if protoimpl.UnsafeEnabled { + mi := &file_sigs_k8s_io_container_object_storage_interface_spec_cosi_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CredentialDetails) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CredentialDetails) ProtoMessage() {} + +func (x *CredentialDetails) ProtoReflect() protoreflect.Message { + mi := &file_sigs_k8s_io_container_object_storage_interface_spec_cosi_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CredentialDetails.ProtoReflect.Descriptor instead. +func (*CredentialDetails) Descriptor() ([]byte, []int) { + return file_sigs_k8s_io_container_object_storage_interface_spec_cosi_proto_rawDescGZIP(), []int{4} +} + +func (x *CredentialDetails) GetSecrets() map[string]string { + if x != nil { + return x.Secrets + } + return nil +} + type DriverGetInfoRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -468,7 +516,7 @@ type DriverGetInfoRequest struct { func (x *DriverGetInfoRequest) Reset() { *x = DriverGetInfoRequest{} if protoimpl.UnsafeEnabled { - mi := &file_sigs_k8s_io_container_object_storage_interface_spec_cosi_proto_msgTypes[4] + mi := &file_sigs_k8s_io_container_object_storage_interface_spec_cosi_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -481,7 +529,7 @@ func (x *DriverGetInfoRequest) String() string { func (*DriverGetInfoRequest) ProtoMessage() {} func (x *DriverGetInfoRequest) ProtoReflect() protoreflect.Message { - mi := &file_sigs_k8s_io_container_object_storage_interface_spec_cosi_proto_msgTypes[4] + mi := &file_sigs_k8s_io_container_object_storage_interface_spec_cosi_proto_msgTypes[5] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -494,7 +542,7 @@ func (x *DriverGetInfoRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use DriverGetInfoRequest.ProtoReflect.Descriptor instead. func (*DriverGetInfoRequest) Descriptor() ([]byte, []int) { - return file_sigs_k8s_io_container_object_storage_interface_spec_cosi_proto_rawDescGZIP(), []int{4} + return file_sigs_k8s_io_container_object_storage_interface_spec_cosi_proto_rawDescGZIP(), []int{5} } type DriverGetInfoResponse struct { @@ -516,7 +564,7 @@ type DriverGetInfoResponse struct { func (x *DriverGetInfoResponse) Reset() { *x = DriverGetInfoResponse{} if protoimpl.UnsafeEnabled { - mi := &file_sigs_k8s_io_container_object_storage_interface_spec_cosi_proto_msgTypes[5] + mi := &file_sigs_k8s_io_container_object_storage_interface_spec_cosi_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -529,7 +577,7 @@ func (x *DriverGetInfoResponse) String() string { func (*DriverGetInfoResponse) ProtoMessage() {} func (x *DriverGetInfoResponse) ProtoReflect() protoreflect.Message { - mi := &file_sigs_k8s_io_container_object_storage_interface_spec_cosi_proto_msgTypes[5] + mi := &file_sigs_k8s_io_container_object_storage_interface_spec_cosi_proto_msgTypes[6] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -542,7 +590,7 @@ func (x *DriverGetInfoResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use DriverGetInfoResponse.ProtoReflect.Descriptor instead. func (*DriverGetInfoResponse) Descriptor() ([]byte, []int) { - return file_sigs_k8s_io_container_object_storage_interface_spec_cosi_proto_rawDescGZIP(), []int{5} + return file_sigs_k8s_io_container_object_storage_interface_spec_cosi_proto_rawDescGZIP(), []int{6} } func (x *DriverGetInfoResponse) GetName() string { @@ -569,7 +617,7 @@ type DriverCreateBucketRequest struct { func (x *DriverCreateBucketRequest) Reset() { *x = DriverCreateBucketRequest{} if protoimpl.UnsafeEnabled { - mi := &file_sigs_k8s_io_container_object_storage_interface_spec_cosi_proto_msgTypes[6] + mi := &file_sigs_k8s_io_container_object_storage_interface_spec_cosi_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -582,7 +630,7 @@ func (x *DriverCreateBucketRequest) String() string { func (*DriverCreateBucketRequest) ProtoMessage() {} func (x *DriverCreateBucketRequest) ProtoReflect() protoreflect.Message { - mi := &file_sigs_k8s_io_container_object_storage_interface_spec_cosi_proto_msgTypes[6] + mi := &file_sigs_k8s_io_container_object_storage_interface_spec_cosi_proto_msgTypes[7] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -595,7 +643,7 @@ func (x *DriverCreateBucketRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use DriverCreateBucketRequest.ProtoReflect.Descriptor instead. func (*DriverCreateBucketRequest) Descriptor() ([]byte, []int) { - return file_sigs_k8s_io_container_object_storage_interface_spec_cosi_proto_rawDescGZIP(), []int{6} + return file_sigs_k8s_io_container_object_storage_interface_spec_cosi_proto_rawDescGZIP(), []int{7} } func (x *DriverCreateBucketRequest) GetName() string { @@ -628,7 +676,7 @@ type DriverCreateBucketResponse struct { func (x *DriverCreateBucketResponse) Reset() { *x = DriverCreateBucketResponse{} if protoimpl.UnsafeEnabled { - mi := &file_sigs_k8s_io_container_object_storage_interface_spec_cosi_proto_msgTypes[7] + mi := &file_sigs_k8s_io_container_object_storage_interface_spec_cosi_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -641,7 +689,7 @@ func (x *DriverCreateBucketResponse) String() string { func (*DriverCreateBucketResponse) ProtoMessage() {} func (x *DriverCreateBucketResponse) ProtoReflect() protoreflect.Message { - mi := &file_sigs_k8s_io_container_object_storage_interface_spec_cosi_proto_msgTypes[7] + mi := &file_sigs_k8s_io_container_object_storage_interface_spec_cosi_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -654,7 +702,7 @@ func (x *DriverCreateBucketResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use DriverCreateBucketResponse.ProtoReflect.Descriptor instead. func (*DriverCreateBucketResponse) Descriptor() ([]byte, []int) { - return file_sigs_k8s_io_container_object_storage_interface_spec_cosi_proto_rawDescGZIP(), []int{7} + return file_sigs_k8s_io_container_object_storage_interface_spec_cosi_proto_rawDescGZIP(), []int{8} } func (x *DriverCreateBucketResponse) GetBucketId() string { @@ -685,7 +733,7 @@ type DriverDeleteBucketRequest struct { func (x *DriverDeleteBucketRequest) Reset() { *x = DriverDeleteBucketRequest{} if protoimpl.UnsafeEnabled { - mi := &file_sigs_k8s_io_container_object_storage_interface_spec_cosi_proto_msgTypes[8] + mi := &file_sigs_k8s_io_container_object_storage_interface_spec_cosi_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -698,7 +746,7 @@ func (x *DriverDeleteBucketRequest) String() string { func (*DriverDeleteBucketRequest) ProtoMessage() {} func (x *DriverDeleteBucketRequest) ProtoReflect() protoreflect.Message { - mi := &file_sigs_k8s_io_container_object_storage_interface_spec_cosi_proto_msgTypes[8] + mi := &file_sigs_k8s_io_container_object_storage_interface_spec_cosi_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -711,7 +759,7 @@ func (x *DriverDeleteBucketRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use DriverDeleteBucketRequest.ProtoReflect.Descriptor instead. func (*DriverDeleteBucketRequest) Descriptor() ([]byte, []int) { - return file_sigs_k8s_io_container_object_storage_interface_spec_cosi_proto_rawDescGZIP(), []int{8} + return file_sigs_k8s_io_container_object_storage_interface_spec_cosi_proto_rawDescGZIP(), []int{9} } func (x *DriverDeleteBucketRequest) GetBucketId() string { @@ -730,7 +778,7 @@ type DriverDeleteBucketResponse struct { func (x *DriverDeleteBucketResponse) Reset() { *x = DriverDeleteBucketResponse{} if protoimpl.UnsafeEnabled { - mi := &file_sigs_k8s_io_container_object_storage_interface_spec_cosi_proto_msgTypes[9] + mi := &file_sigs_k8s_io_container_object_storage_interface_spec_cosi_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -743,7 +791,7 @@ func (x *DriverDeleteBucketResponse) String() string { func (*DriverDeleteBucketResponse) ProtoMessage() {} func (x *DriverDeleteBucketResponse) ProtoReflect() protoreflect.Message { - mi := &file_sigs_k8s_io_container_object_storage_interface_spec_cosi_proto_msgTypes[9] + mi := &file_sigs_k8s_io_container_object_storage_interface_spec_cosi_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -756,7 +804,7 @@ func (x *DriverDeleteBucketResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use DriverDeleteBucketResponse.ProtoReflect.Descriptor instead. func (*DriverDeleteBucketResponse) Descriptor() ([]byte, []int) { - return file_sigs_k8s_io_container_object_storage_interface_spec_cosi_proto_rawDescGZIP(), []int{9} + return file_sigs_k8s_io_container_object_storage_interface_spec_cosi_proto_rawDescGZIP(), []int{10} } type DriverGrantBucketAccessRequest struct { @@ -784,7 +832,7 @@ type DriverGrantBucketAccessRequest struct { func (x *DriverGrantBucketAccessRequest) Reset() { *x = DriverGrantBucketAccessRequest{} if protoimpl.UnsafeEnabled { - mi := &file_sigs_k8s_io_container_object_storage_interface_spec_cosi_proto_msgTypes[10] + mi := &file_sigs_k8s_io_container_object_storage_interface_spec_cosi_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -797,7 +845,7 @@ func (x *DriverGrantBucketAccessRequest) String() string { func (*DriverGrantBucketAccessRequest) ProtoMessage() {} func (x *DriverGrantBucketAccessRequest) ProtoReflect() protoreflect.Message { - mi := &file_sigs_k8s_io_container_object_storage_interface_spec_cosi_proto_msgTypes[10] + mi := &file_sigs_k8s_io_container_object_storage_interface_spec_cosi_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -810,7 +858,7 @@ func (x *DriverGrantBucketAccessRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use DriverGrantBucketAccessRequest.ProtoReflect.Descriptor instead. func (*DriverGrantBucketAccessRequest) Descriptor() ([]byte, []int) { - return file_sigs_k8s_io_container_object_storage_interface_spec_cosi_proto_rawDescGZIP(), []int{10} + return file_sigs_k8s_io_container_object_storage_interface_spec_cosi_proto_rawDescGZIP(), []int{11} } func (x *DriverGrantBucketAccessRequest) GetBucketId() string { @@ -852,13 +900,13 @@ type DriverGrantBucketAccessResponse struct { AccountId string `protobuf:"bytes,1,opt,name=account_id,json=accountId,proto3" json:"account_id,omitempty"` // This field is REQUIRED // Credentials supplied for accessing the bucket ex: aws access key id and secret, etc. - Credentials string `protobuf:"bytes,2,opt,name=credentials,proto3" json:"credentials,omitempty"` + Credentials map[string]*CredentialDetails `protobuf:"bytes,2,rep,name=credentials,proto3" json:"credentials,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` } func (x *DriverGrantBucketAccessResponse) Reset() { *x = DriverGrantBucketAccessResponse{} if protoimpl.UnsafeEnabled { - mi := &file_sigs_k8s_io_container_object_storage_interface_spec_cosi_proto_msgTypes[11] + mi := &file_sigs_k8s_io_container_object_storage_interface_spec_cosi_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -871,7 +919,7 @@ func (x *DriverGrantBucketAccessResponse) String() string { func (*DriverGrantBucketAccessResponse) ProtoMessage() {} func (x *DriverGrantBucketAccessResponse) ProtoReflect() protoreflect.Message { - mi := &file_sigs_k8s_io_container_object_storage_interface_spec_cosi_proto_msgTypes[11] + mi := &file_sigs_k8s_io_container_object_storage_interface_spec_cosi_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -884,7 +932,7 @@ func (x *DriverGrantBucketAccessResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use DriverGrantBucketAccessResponse.ProtoReflect.Descriptor instead. func (*DriverGrantBucketAccessResponse) Descriptor() ([]byte, []int) { - return file_sigs_k8s_io_container_object_storage_interface_spec_cosi_proto_rawDescGZIP(), []int{11} + return file_sigs_k8s_io_container_object_storage_interface_spec_cosi_proto_rawDescGZIP(), []int{12} } func (x *DriverGrantBucketAccessResponse) GetAccountId() string { @@ -894,11 +942,11 @@ func (x *DriverGrantBucketAccessResponse) GetAccountId() string { return "" } -func (x *DriverGrantBucketAccessResponse) GetCredentials() string { +func (x *DriverGrantBucketAccessResponse) GetCredentials() map[string]*CredentialDetails { if x != nil { return x.Credentials } - return "" + return nil } type DriverRevokeBucketAccessRequest struct { @@ -918,7 +966,7 @@ type DriverRevokeBucketAccessRequest struct { func (x *DriverRevokeBucketAccessRequest) Reset() { *x = DriverRevokeBucketAccessRequest{} if protoimpl.UnsafeEnabled { - mi := &file_sigs_k8s_io_container_object_storage_interface_spec_cosi_proto_msgTypes[12] + mi := &file_sigs_k8s_io_container_object_storage_interface_spec_cosi_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -931,7 +979,7 @@ func (x *DriverRevokeBucketAccessRequest) String() string { func (*DriverRevokeBucketAccessRequest) ProtoMessage() {} func (x *DriverRevokeBucketAccessRequest) ProtoReflect() protoreflect.Message { - mi := &file_sigs_k8s_io_container_object_storage_interface_spec_cosi_proto_msgTypes[12] + mi := &file_sigs_k8s_io_container_object_storage_interface_spec_cosi_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -944,7 +992,7 @@ func (x *DriverRevokeBucketAccessRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use DriverRevokeBucketAccessRequest.ProtoReflect.Descriptor instead. func (*DriverRevokeBucketAccessRequest) Descriptor() ([]byte, []int) { - return file_sigs_k8s_io_container_object_storage_interface_spec_cosi_proto_rawDescGZIP(), []int{12} + return file_sigs_k8s_io_container_object_storage_interface_spec_cosi_proto_rawDescGZIP(), []int{13} } func (x *DriverRevokeBucketAccessRequest) GetBucketId() string { @@ -970,7 +1018,7 @@ type DriverRevokeBucketAccessResponse struct { func (x *DriverRevokeBucketAccessResponse) Reset() { *x = DriverRevokeBucketAccessResponse{} if protoimpl.UnsafeEnabled { - mi := &file_sigs_k8s_io_container_object_storage_interface_spec_cosi_proto_msgTypes[13] + mi := &file_sigs_k8s_io_container_object_storage_interface_spec_cosi_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -983,7 +1031,7 @@ func (x *DriverRevokeBucketAccessResponse) String() string { func (*DriverRevokeBucketAccessResponse) ProtoMessage() {} func (x *DriverRevokeBucketAccessResponse) ProtoReflect() protoreflect.Message { - mi := &file_sigs_k8s_io_container_object_storage_interface_spec_cosi_proto_msgTypes[13] + mi := &file_sigs_k8s_io_container_object_storage_interface_spec_cosi_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -996,7 +1044,7 @@ func (x *DriverRevokeBucketAccessResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use DriverRevokeBucketAccessResponse.ProtoReflect.Descriptor instead. func (*DriverRevokeBucketAccessResponse) Descriptor() ([]byte, []int) { - return file_sigs_k8s_io_container_object_storage_interface_spec_cosi_proto_rawDescGZIP(), []int{13} + return file_sigs_k8s_io_container_object_storage_interface_spec_cosi_proto_rawDescGZIP(), []int{14} } var file_sigs_k8s_io_container_object_storage_interface_spec_cosi_proto_extTypes = []protoimpl.ExtensionInfo{ @@ -1160,158 +1208,178 @@ var file_sigs_k8s_io_container_object_storage_interface_spec_cosi_proto_rawDesc 0x09, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x42, 0x6c, 0x6f, 0x62, 0x12, 0x26, 0x0a, 0x03, 0x67, 0x63, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x63, 0x6f, 0x73, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x43, 0x53, 0x48, 0x00, 0x52, 0x03, 0x67, - 0x63, 0x73, 0x42, 0x06, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0x16, 0x0a, 0x14, 0x44, 0x72, - 0x69, 0x76, 0x65, 0x72, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x22, 0x2b, 0x0a, 0x15, 0x44, 0x72, 0x69, 0x76, 0x65, 0x72, 0x47, 0x65, 0x74, 0x49, - 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, - 0xc8, 0x01, 0x0a, 0x19, 0x44, 0x72, 0x69, 0x76, 0x65, 0x72, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x12, 0x58, 0x0a, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, - 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x63, 0x6f, 0x73, 0x69, 0x2e, 0x76, 0x31, 0x61, - 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, 0x72, 0x69, 0x76, 0x65, 0x72, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, - 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, - 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x1a, 0x3d, 0x0a, 0x0f, 0x50, - 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, - 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, - 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x73, 0x0a, 0x1a, 0x44, 0x72, - 0x69, 0x76, 0x65, 0x72, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x62, 0x75, 0x63, 0x6b, - 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x62, 0x75, 0x63, - 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, 0x38, 0x0a, 0x0b, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x5f, - 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x63, 0x6f, 0x73, - 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x74, 0x6f, - 0x63, 0x6f, 0x6c, 0x52, 0x0a, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x22, - 0x38, 0x0a, 0x19, 0x44, 0x72, 0x69, 0x76, 0x65, 0x72, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x42, - 0x75, 0x63, 0x6b, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, - 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x08, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x22, 0x1c, 0x0a, 0x1a, 0x44, 0x72, 0x69, - 0x76, 0x65, 0x72, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xc3, 0x02, 0x0a, 0x1e, 0x44, 0x72, 0x69, 0x76, - 0x65, 0x72, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x63, - 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x62, 0x75, - 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x62, - 0x75, 0x63, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x52, 0x0a, 0x13, 0x61, - 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, - 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x63, 0x6f, 0x73, 0x69, 0x2e, - 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, - 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x12, 0x61, 0x75, 0x74, - 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, - 0x5d, 0x0a, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x04, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x63, 0x6f, 0x73, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, - 0x68, 0x61, 0x31, 0x2e, 0x44, 0x72, 0x69, 0x76, 0x65, 0x72, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x42, - 0x75, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74, - 0x72, 0x79, 0x52, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x1a, 0x3d, - 0x0a, 0x0f, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, - 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, - 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x62, 0x0a, - 0x1f, 0x44, 0x72, 0x69, 0x76, 0x65, 0x72, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x42, 0x75, 0x63, 0x6b, - 0x65, 0x74, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, - 0x20, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, - 0x73, 0x22, 0x5d, 0x0a, 0x1f, 0x44, 0x72, 0x69, 0x76, 0x65, 0x72, 0x52, 0x65, 0x76, 0x6f, 0x6b, - 0x65, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x49, - 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, - 0x22, 0x22, 0x0a, 0x20, 0x44, 0x72, 0x69, 0x76, 0x65, 0x72, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, - 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x2a, 0x3e, 0x0a, 0x12, 0x53, 0x33, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, - 0x75, 0x72, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x10, 0x55, 0x6e, - 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x10, 0x00, - 0x12, 0x08, 0x0a, 0x04, 0x53, 0x33, 0x56, 0x32, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x53, 0x33, - 0x56, 0x34, 0x10, 0x02, 0x2a, 0x71, 0x0a, 0x19, 0x41, 0x6e, 0x6f, 0x6e, 0x79, 0x6d, 0x6f, 0x75, - 0x73, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x4d, 0x6f, 0x64, - 0x65, 0x12, 0x1b, 0x0a, 0x17, 0x55, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x42, 0x75, 0x63, 0x6b, - 0x65, 0x74, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x4d, 0x6f, 0x64, 0x65, 0x10, 0x00, 0x12, 0x0b, - 0x0a, 0x07, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x52, - 0x65, 0x61, 0x64, 0x4f, 0x6e, 0x6c, 0x79, 0x10, 0x02, 0x12, 0x0d, 0x0a, 0x09, 0x57, 0x72, 0x69, - 0x74, 0x65, 0x4f, 0x6e, 0x6c, 0x79, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x52, 0x65, 0x61, 0x64, - 0x57, 0x72, 0x69, 0x74, 0x65, 0x10, 0x04, 0x2a, 0x45, 0x0a, 0x12, 0x41, 0x75, 0x74, 0x68, 0x65, - 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1d, 0x0a, - 0x19, 0x55, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, - 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, - 0x4b, 0x65, 0x79, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x49, 0x41, 0x4d, 0x10, 0x02, 0x32, 0x68, - 0x0a, 0x08, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x5c, 0x0a, 0x0d, 0x44, 0x72, - 0x69, 0x76, 0x65, 0x72, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x23, 0x2e, 0x63, 0x6f, - 0x73, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, 0x72, 0x69, 0x76, - 0x65, 0x72, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x24, 0x2e, 0x63, 0x6f, 0x73, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, - 0x2e, 0x44, 0x72, 0x69, 0x76, 0x65, 0x72, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x32, 0xde, 0x03, 0x0a, 0x0b, 0x50, 0x72, 0x6f, - 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x72, 0x12, 0x6b, 0x0a, 0x12, 0x44, 0x72, 0x69, 0x76, - 0x65, 0x72, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x28, - 0x2e, 0x63, 0x6f, 0x73, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, + 0x63, 0x73, 0x42, 0x06, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0x98, 0x01, 0x0a, 0x11, 0x43, + 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, + 0x12, 0x47, 0x0a, 0x07, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x2d, 0x2e, 0x63, 0x6f, 0x73, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, + 0x31, 0x2e, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x44, 0x65, 0x74, 0x61, + 0x69, 0x6c, 0x73, 0x2e, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x52, 0x07, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x1a, 0x3a, 0x0a, 0x0c, 0x53, 0x65, 0x63, + 0x72, 0x65, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x16, 0x0a, 0x14, 0x44, 0x72, 0x69, 0x76, 0x65, 0x72, 0x47, + 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x2b, 0x0a, + 0x15, 0x44, 0x72, 0x69, 0x76, 0x65, 0x72, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xc8, 0x01, 0x0a, 0x19, 0x44, 0x72, 0x69, 0x76, 0x65, 0x72, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x75, 0x63, 0x6b, 0x65, - 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x63, 0x6f, 0x73, 0x69, 0x2e, - 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, 0x72, 0x69, 0x76, 0x65, 0x72, 0x43, + 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x58, 0x0a, 0x0a, + 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x38, 0x2e, 0x63, 0x6f, 0x73, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, + 0x2e, 0x44, 0x72, 0x69, 0x76, 0x65, 0x72, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x75, 0x63, + 0x6b, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, + 0x65, 0x74, 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x70, 0x61, 0x72, 0x61, + 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x1a, 0x3d, 0x0a, 0x0f, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, + 0x74, 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x73, 0x0a, 0x1a, 0x44, 0x72, 0x69, 0x76, 0x65, 0x72, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x6b, 0x0a, 0x12, 0x44, 0x72, 0x69, 0x76, 0x65, 0x72, 0x44, - 0x65, 0x6c, 0x65, 0x74, 0x65, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x28, 0x2e, 0x63, 0x6f, - 0x73, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, 0x72, 0x69, 0x76, - 0x65, 0x72, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x63, 0x6f, 0x73, 0x69, 0x2e, 0x76, 0x31, 0x61, - 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, 0x72, 0x69, 0x76, 0x65, 0x72, 0x44, 0x65, 0x6c, 0x65, - 0x74, 0x65, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x00, 0x12, 0x78, 0x0a, 0x17, 0x44, 0x72, 0x69, 0x76, 0x65, 0x72, 0x47, 0x72, 0x61, 0x6e, - 0x74, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x2d, 0x2e, + 0x6e, 0x73, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x49, 0x64, + 0x12, 0x38, 0x0a, 0x0b, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x63, 0x6f, 0x73, 0x69, 0x2e, 0x76, 0x31, 0x61, + 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x52, 0x0a, + 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x38, 0x0a, 0x19, 0x44, 0x72, + 0x69, 0x76, 0x65, 0x72, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x62, 0x75, 0x63, 0x6b, 0x65, + 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x62, 0x75, 0x63, 0x6b, + 0x65, 0x74, 0x49, 0x64, 0x22, 0x1c, 0x0a, 0x1a, 0x44, 0x72, 0x69, 0x76, 0x65, 0x72, 0x44, 0x65, + 0x6c, 0x65, 0x74, 0x65, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0xc3, 0x02, 0x0a, 0x1e, 0x44, 0x72, 0x69, 0x76, 0x65, 0x72, 0x47, 0x72, 0x61, + 0x6e, 0x74, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x5f, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, + 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x52, 0x0a, 0x13, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, + 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x63, 0x6f, 0x73, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, + 0x68, 0x61, 0x31, 0x2e, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x12, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x5d, 0x0a, 0x0a, 0x70, 0x61, + 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3d, + 0x2e, 0x63, 0x6f, 0x73, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, + 0x72, 0x69, 0x76, 0x65, 0x72, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, + 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x50, 0x61, + 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x70, + 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x1a, 0x3d, 0x0a, 0x0f, 0x50, 0x61, 0x72, + 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, + 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, + 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x85, 0x02, 0x0a, 0x1f, 0x44, 0x72, 0x69, + 0x76, 0x65, 0x72, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, + 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1d, 0x0a, 0x0a, + 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x61, 0x0a, 0x0b, 0x63, + 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x3f, 0x2e, 0x63, 0x6f, 0x73, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, + 0x2e, 0x44, 0x72, 0x69, 0x76, 0x65, 0x72, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x42, 0x75, 0x63, 0x6b, + 0x65, 0x74, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x2e, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x52, 0x0b, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x1a, 0x60, + 0x0a, 0x10, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x03, 0x6b, 0x65, 0x79, 0x12, 0x36, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x63, 0x6f, 0x73, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, + 0x68, 0x61, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x44, 0x65, + 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, + 0x22, 0x5d, 0x0a, 0x1f, 0x44, 0x72, 0x69, 0x76, 0x65, 0x72, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, + 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x49, 0x64, + 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x22, + 0x22, 0x0a, 0x20, 0x44, 0x72, 0x69, 0x76, 0x65, 0x72, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x42, + 0x75, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x2a, 0x3e, 0x0a, 0x12, 0x53, 0x33, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, + 0x72, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x10, 0x55, 0x6e, 0x6b, + 0x6e, 0x6f, 0x77, 0x6e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x10, 0x00, 0x12, + 0x08, 0x0a, 0x04, 0x53, 0x33, 0x56, 0x32, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x53, 0x33, 0x56, + 0x34, 0x10, 0x02, 0x2a, 0x71, 0x0a, 0x19, 0x41, 0x6e, 0x6f, 0x6e, 0x79, 0x6d, 0x6f, 0x75, 0x73, + 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x4d, 0x6f, 0x64, 0x65, + 0x12, 0x1b, 0x0a, 0x17, 0x55, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x42, 0x75, 0x63, 0x6b, 0x65, + 0x74, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x4d, 0x6f, 0x64, 0x65, 0x10, 0x00, 0x12, 0x0b, 0x0a, + 0x07, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x52, 0x65, + 0x61, 0x64, 0x4f, 0x6e, 0x6c, 0x79, 0x10, 0x02, 0x12, 0x0d, 0x0a, 0x09, 0x57, 0x72, 0x69, 0x74, + 0x65, 0x4f, 0x6e, 0x6c, 0x79, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x52, 0x65, 0x61, 0x64, 0x57, + 0x72, 0x69, 0x74, 0x65, 0x10, 0x04, 0x2a, 0x45, 0x0a, 0x12, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, + 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1d, 0x0a, 0x19, + 0x55, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x4b, + 0x65, 0x79, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x49, 0x41, 0x4d, 0x10, 0x02, 0x32, 0x68, 0x0a, + 0x08, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x5c, 0x0a, 0x0d, 0x44, 0x72, 0x69, + 0x76, 0x65, 0x72, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x23, 0x2e, 0x63, 0x6f, 0x73, + 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, 0x72, 0x69, 0x76, 0x65, + 0x72, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x24, 0x2e, 0x63, 0x6f, 0x73, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, + 0x44, 0x72, 0x69, 0x76, 0x65, 0x72, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x32, 0xde, 0x03, 0x0a, 0x0b, 0x50, 0x72, 0x6f, 0x76, + 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x72, 0x12, 0x6b, 0x0a, 0x12, 0x44, 0x72, 0x69, 0x76, 0x65, + 0x72, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x28, 0x2e, 0x63, 0x6f, 0x73, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, 0x72, - 0x69, 0x76, 0x65, 0x72, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x41, - 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x63, + 0x69, 0x76, 0x65, 0x72, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x63, 0x6f, 0x73, 0x69, 0x2e, 0x76, + 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, 0x72, 0x69, 0x76, 0x65, 0x72, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x00, 0x12, 0x6b, 0x0a, 0x12, 0x44, 0x72, 0x69, 0x76, 0x65, 0x72, 0x44, 0x65, + 0x6c, 0x65, 0x74, 0x65, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x28, 0x2e, 0x63, 0x6f, 0x73, + 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, 0x72, 0x69, 0x76, 0x65, + 0x72, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x63, 0x6f, 0x73, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, + 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, 0x72, 0x69, 0x76, 0x65, 0x72, 0x44, 0x65, 0x6c, 0x65, 0x74, + 0x65, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x00, 0x12, 0x78, 0x0a, 0x17, 0x44, 0x72, 0x69, 0x76, 0x65, 0x72, 0x47, 0x72, 0x61, 0x6e, 0x74, + 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x2d, 0x2e, 0x63, 0x6f, 0x73, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, 0x72, 0x69, 0x76, 0x65, 0x72, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, - 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7b, 0x0a, 0x18, - 0x44, 0x72, 0x69, 0x76, 0x65, 0x72, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x42, 0x75, 0x63, 0x6b, - 0x65, 0x74, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x2e, 0x2e, 0x63, 0x6f, 0x73, 0x69, 0x2e, - 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, 0x72, 0x69, 0x76, 0x65, 0x72, 0x52, - 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x63, 0x65, 0x73, - 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x63, 0x6f, 0x73, 0x69, 0x2e, - 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, 0x72, 0x69, 0x76, 0x65, 0x72, 0x52, - 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x63, 0x65, 0x73, - 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x3a, 0x3c, 0x0a, 0x0a, 0x61, 0x6c, 0x70, - 0x68, 0x61, 0x5f, 0x65, 0x6e, 0x75, 0x6d, 0x12, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x4f, 0x70, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xdc, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x61, 0x6c, - 0x70, 0x68, 0x61, 0x45, 0x6e, 0x75, 0x6d, 0x3a, 0x4c, 0x0a, 0x10, 0x61, 0x6c, 0x70, 0x68, 0x61, - 0x5f, 0x65, 0x6e, 0x75, 0x6d, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x21, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6e, - 0x75, 0x6d, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xdc, - 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x45, 0x6e, 0x75, 0x6d, - 0x56, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x3f, 0x0a, 0x0b, 0x63, 0x6f, 0x73, 0x69, 0x5f, 0x73, 0x65, - 0x63, 0x72, 0x65, 0x74, 0x12, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x63, 0x6f, + 0x73, 0x69, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, 0x72, 0x69, 0x76, + 0x65, 0x72, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x63, + 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7b, 0x0a, 0x18, 0x44, + 0x72, 0x69, 0x76, 0x65, 0x72, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x42, 0x75, 0x63, 0x6b, 0x65, + 0x74, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x2e, 0x2e, 0x63, 0x6f, 0x73, 0x69, 0x2e, 0x76, + 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, 0x72, 0x69, 0x76, 0x65, 0x72, 0x52, 0x65, + 0x76, 0x6f, 0x6b, 0x65, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x63, 0x6f, 0x73, 0x69, 0x2e, 0x76, + 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, 0x72, 0x69, 0x76, 0x65, 0x72, 0x52, 0x65, + 0x76, 0x6f, 0x6b, 0x65, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x3a, 0x3c, 0x0a, 0x0a, 0x61, 0x6c, 0x70, 0x68, + 0x61, 0x5f, 0x65, 0x6e, 0x75, 0x6d, 0x12, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x4f, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xdc, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x61, 0x6c, 0x70, + 0x68, 0x61, 0x45, 0x6e, 0x75, 0x6d, 0x3a, 0x4c, 0x0a, 0x10, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x5f, + 0x65, 0x6e, 0x75, 0x6d, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x21, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6e, 0x75, + 0x6d, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xdc, 0x08, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x45, 0x6e, 0x75, 0x6d, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x3f, 0x0a, 0x0b, 0x63, 0x6f, 0x73, 0x69, 0x5f, 0x73, 0x65, 0x63, + 0x72, 0x65, 0x74, 0x12, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x18, 0xdb, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x63, 0x6f, 0x73, 0x69, 0x53, + 0x65, 0x63, 0x72, 0x65, 0x74, 0x3a, 0x3f, 0x0a, 0x0b, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x5f, 0x66, + 0x69, 0x65, 0x6c, 0x64, 0x12, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x18, 0xdb, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x63, 0x6f, 0x73, 0x69, - 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x3a, 0x3f, 0x0a, 0x0b, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x5f, - 0x66, 0x69, 0x65, 0x6c, 0x64, 0x12, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xdc, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x61, 0x6c, 0x70, - 0x68, 0x61, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x3a, 0x45, 0x0a, 0x0d, 0x61, 0x6c, 0x70, 0x68, 0x61, - 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xdc, 0x08, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x0c, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x3a, 0x42, - 0x0a, 0x0c, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x5f, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x1e, - 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x2e, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xdc, - 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x4d, 0x65, 0x74, 0x68, - 0x6f, 0x64, 0x3a, 0x45, 0x0a, 0x0d, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x5f, 0x73, 0x65, 0x72, 0x76, - 0x69, 0x63, 0x65, 0x12, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4f, 0x70, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xdc, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x61, 0x6c, 0x70, - 0x68, 0x61, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x42, 0x3a, 0x5a, 0x38, 0x73, 0x69, 0x67, - 0x73, 0x2e, 0x6b, 0x38, 0x73, 0x2e, 0x69, 0x6f, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, - 0x65, 0x72, 0x2d, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2d, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, - 0x65, 0x2d, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2d, 0x73, 0x70, 0x65, 0x63, - 0x3b, 0x63, 0x6f, 0x73, 0x69, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x6f, 0x6e, 0x73, 0x18, 0xdc, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x61, 0x6c, 0x70, 0x68, + 0x61, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x3a, 0x45, 0x0a, 0x0d, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x5f, + 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xdc, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x0c, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x3a, 0x42, 0x0a, + 0x0c, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x5f, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x1e, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xdc, 0x08, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x4d, 0x65, 0x74, 0x68, 0x6f, + 0x64, 0x3a, 0x45, 0x0a, 0x0d, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x12, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4f, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x18, 0xdc, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x61, 0x6c, 0x70, 0x68, + 0x61, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x42, 0x3a, 0x5a, 0x38, 0x73, 0x69, 0x67, 0x73, + 0x2e, 0x6b, 0x38, 0x73, 0x2e, 0x69, 0x6f, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, + 0x72, 0x2d, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2d, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, + 0x2d, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2d, 0x73, 0x70, 0x65, 0x63, 0x3b, + 0x63, 0x6f, 0x73, 0x69, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -1327,7 +1395,7 @@ func file_sigs_k8s_io_container_object_storage_interface_spec_cosi_proto_rawDesc } var file_sigs_k8s_io_container_object_storage_interface_spec_cosi_proto_enumTypes = make([]protoimpl.EnumInfo, 3) -var file_sigs_k8s_io_container_object_storage_interface_spec_cosi_proto_msgTypes = make([]protoimpl.MessageInfo, 16) +var file_sigs_k8s_io_container_object_storage_interface_spec_cosi_proto_msgTypes = make([]protoimpl.MessageInfo, 19) var file_sigs_k8s_io_container_object_storage_interface_spec_cosi_proto_goTypes = []interface{}{ (S3SignatureVersion)(0), // 0: cosi.v1alpha1.S3SignatureVersion (AnonymousBucketAccessMode)(0), // 1: cosi.v1alpha1.AnonymousBucketAccessMode @@ -1336,56 +1404,62 @@ var file_sigs_k8s_io_container_object_storage_interface_spec_cosi_proto_goTypes (*AzureBlob)(nil), // 4: cosi.v1alpha1.AzureBlob (*GCS)(nil), // 5: cosi.v1alpha1.GCS (*Protocol)(nil), // 6: cosi.v1alpha1.Protocol - (*DriverGetInfoRequest)(nil), // 7: cosi.v1alpha1.DriverGetInfoRequest - (*DriverGetInfoResponse)(nil), // 8: cosi.v1alpha1.DriverGetInfoResponse - (*DriverCreateBucketRequest)(nil), // 9: cosi.v1alpha1.DriverCreateBucketRequest - (*DriverCreateBucketResponse)(nil), // 10: cosi.v1alpha1.DriverCreateBucketResponse - (*DriverDeleteBucketRequest)(nil), // 11: cosi.v1alpha1.DriverDeleteBucketRequest - (*DriverDeleteBucketResponse)(nil), // 12: cosi.v1alpha1.DriverDeleteBucketResponse - (*DriverGrantBucketAccessRequest)(nil), // 13: cosi.v1alpha1.DriverGrantBucketAccessRequest - (*DriverGrantBucketAccessResponse)(nil), // 14: cosi.v1alpha1.DriverGrantBucketAccessResponse - (*DriverRevokeBucketAccessRequest)(nil), // 15: cosi.v1alpha1.DriverRevokeBucketAccessRequest - (*DriverRevokeBucketAccessResponse)(nil), // 16: cosi.v1alpha1.DriverRevokeBucketAccessResponse - nil, // 17: cosi.v1alpha1.DriverCreateBucketRequest.ParametersEntry - nil, // 18: cosi.v1alpha1.DriverGrantBucketAccessRequest.ParametersEntry - (*descriptor.EnumOptions)(nil), // 19: google.protobuf.EnumOptions - (*descriptor.EnumValueOptions)(nil), // 20: google.protobuf.EnumValueOptions - (*descriptor.FieldOptions)(nil), // 21: google.protobuf.FieldOptions - (*descriptor.MessageOptions)(nil), // 22: google.protobuf.MessageOptions - (*descriptor.MethodOptions)(nil), // 23: google.protobuf.MethodOptions - (*descriptor.ServiceOptions)(nil), // 24: google.protobuf.ServiceOptions + (*CredentialDetails)(nil), // 7: cosi.v1alpha1.CredentialDetails + (*DriverGetInfoRequest)(nil), // 8: cosi.v1alpha1.DriverGetInfoRequest + (*DriverGetInfoResponse)(nil), // 9: cosi.v1alpha1.DriverGetInfoResponse + (*DriverCreateBucketRequest)(nil), // 10: cosi.v1alpha1.DriverCreateBucketRequest + (*DriverCreateBucketResponse)(nil), // 11: cosi.v1alpha1.DriverCreateBucketResponse + (*DriverDeleteBucketRequest)(nil), // 12: cosi.v1alpha1.DriverDeleteBucketRequest + (*DriverDeleteBucketResponse)(nil), // 13: cosi.v1alpha1.DriverDeleteBucketResponse + (*DriverGrantBucketAccessRequest)(nil), // 14: cosi.v1alpha1.DriverGrantBucketAccessRequest + (*DriverGrantBucketAccessResponse)(nil), // 15: cosi.v1alpha1.DriverGrantBucketAccessResponse + (*DriverRevokeBucketAccessRequest)(nil), // 16: cosi.v1alpha1.DriverRevokeBucketAccessRequest + (*DriverRevokeBucketAccessResponse)(nil), // 17: cosi.v1alpha1.DriverRevokeBucketAccessResponse + nil, // 18: cosi.v1alpha1.CredentialDetails.SecretsEntry + nil, // 19: cosi.v1alpha1.DriverCreateBucketRequest.ParametersEntry + nil, // 20: cosi.v1alpha1.DriverGrantBucketAccessRequest.ParametersEntry + nil, // 21: cosi.v1alpha1.DriverGrantBucketAccessResponse.CredentialsEntry + (*descriptor.EnumOptions)(nil), // 22: google.protobuf.EnumOptions + (*descriptor.EnumValueOptions)(nil), // 23: google.protobuf.EnumValueOptions + (*descriptor.FieldOptions)(nil), // 24: google.protobuf.FieldOptions + (*descriptor.MessageOptions)(nil), // 25: google.protobuf.MessageOptions + (*descriptor.MethodOptions)(nil), // 26: google.protobuf.MethodOptions + (*descriptor.ServiceOptions)(nil), // 27: google.protobuf.ServiceOptions } var file_sigs_k8s_io_container_object_storage_interface_spec_cosi_proto_depIdxs = []int32{ 0, // 0: cosi.v1alpha1.S3.signature_version:type_name -> cosi.v1alpha1.S3SignatureVersion 3, // 1: cosi.v1alpha1.Protocol.s3:type_name -> cosi.v1alpha1.S3 4, // 2: cosi.v1alpha1.Protocol.azureBlob:type_name -> cosi.v1alpha1.AzureBlob 5, // 3: cosi.v1alpha1.Protocol.gcs:type_name -> cosi.v1alpha1.GCS - 17, // 4: cosi.v1alpha1.DriverCreateBucketRequest.parameters:type_name -> cosi.v1alpha1.DriverCreateBucketRequest.ParametersEntry - 6, // 5: cosi.v1alpha1.DriverCreateBucketResponse.bucket_info:type_name -> cosi.v1alpha1.Protocol - 2, // 6: cosi.v1alpha1.DriverGrantBucketAccessRequest.authentication_type:type_name -> cosi.v1alpha1.AuthenticationType - 18, // 7: cosi.v1alpha1.DriverGrantBucketAccessRequest.parameters:type_name -> cosi.v1alpha1.DriverGrantBucketAccessRequest.ParametersEntry - 19, // 8: cosi.v1alpha1.alpha_enum:extendee -> google.protobuf.EnumOptions - 20, // 9: cosi.v1alpha1.alpha_enum_value:extendee -> google.protobuf.EnumValueOptions - 21, // 10: cosi.v1alpha1.cosi_secret:extendee -> google.protobuf.FieldOptions - 21, // 11: cosi.v1alpha1.alpha_field:extendee -> google.protobuf.FieldOptions - 22, // 12: cosi.v1alpha1.alpha_message:extendee -> google.protobuf.MessageOptions - 23, // 13: cosi.v1alpha1.alpha_method:extendee -> google.protobuf.MethodOptions - 24, // 14: cosi.v1alpha1.alpha_service:extendee -> google.protobuf.ServiceOptions - 7, // 15: cosi.v1alpha1.Identity.DriverGetInfo:input_type -> cosi.v1alpha1.DriverGetInfoRequest - 9, // 16: cosi.v1alpha1.Provisioner.DriverCreateBucket:input_type -> cosi.v1alpha1.DriverCreateBucketRequest - 11, // 17: cosi.v1alpha1.Provisioner.DriverDeleteBucket:input_type -> cosi.v1alpha1.DriverDeleteBucketRequest - 13, // 18: cosi.v1alpha1.Provisioner.DriverGrantBucketAccess:input_type -> cosi.v1alpha1.DriverGrantBucketAccessRequest - 15, // 19: cosi.v1alpha1.Provisioner.DriverRevokeBucketAccess:input_type -> cosi.v1alpha1.DriverRevokeBucketAccessRequest - 8, // 20: cosi.v1alpha1.Identity.DriverGetInfo:output_type -> cosi.v1alpha1.DriverGetInfoResponse - 10, // 21: cosi.v1alpha1.Provisioner.DriverCreateBucket:output_type -> cosi.v1alpha1.DriverCreateBucketResponse - 12, // 22: cosi.v1alpha1.Provisioner.DriverDeleteBucket:output_type -> cosi.v1alpha1.DriverDeleteBucketResponse - 14, // 23: cosi.v1alpha1.Provisioner.DriverGrantBucketAccess:output_type -> cosi.v1alpha1.DriverGrantBucketAccessResponse - 16, // 24: cosi.v1alpha1.Provisioner.DriverRevokeBucketAccess:output_type -> cosi.v1alpha1.DriverRevokeBucketAccessResponse - 20, // [20:25] is the sub-list for method output_type - 15, // [15:20] is the sub-list for method input_type - 15, // [15:15] is the sub-list for extension type_name - 8, // [8:15] is the sub-list for extension extendee - 0, // [0:8] is the sub-list for field type_name + 18, // 4: cosi.v1alpha1.CredentialDetails.secrets:type_name -> cosi.v1alpha1.CredentialDetails.SecretsEntry + 19, // 5: cosi.v1alpha1.DriverCreateBucketRequest.parameters:type_name -> cosi.v1alpha1.DriverCreateBucketRequest.ParametersEntry + 6, // 6: cosi.v1alpha1.DriverCreateBucketResponse.bucket_info:type_name -> cosi.v1alpha1.Protocol + 2, // 7: cosi.v1alpha1.DriverGrantBucketAccessRequest.authentication_type:type_name -> cosi.v1alpha1.AuthenticationType + 20, // 8: cosi.v1alpha1.DriverGrantBucketAccessRequest.parameters:type_name -> cosi.v1alpha1.DriverGrantBucketAccessRequest.ParametersEntry + 21, // 9: cosi.v1alpha1.DriverGrantBucketAccessResponse.credentials:type_name -> cosi.v1alpha1.DriverGrantBucketAccessResponse.CredentialsEntry + 7, // 10: cosi.v1alpha1.DriverGrantBucketAccessResponse.CredentialsEntry.value:type_name -> cosi.v1alpha1.CredentialDetails + 22, // 11: cosi.v1alpha1.alpha_enum:extendee -> google.protobuf.EnumOptions + 23, // 12: cosi.v1alpha1.alpha_enum_value:extendee -> google.protobuf.EnumValueOptions + 24, // 13: cosi.v1alpha1.cosi_secret:extendee -> google.protobuf.FieldOptions + 24, // 14: cosi.v1alpha1.alpha_field:extendee -> google.protobuf.FieldOptions + 25, // 15: cosi.v1alpha1.alpha_message:extendee -> google.protobuf.MessageOptions + 26, // 16: cosi.v1alpha1.alpha_method:extendee -> google.protobuf.MethodOptions + 27, // 17: cosi.v1alpha1.alpha_service:extendee -> google.protobuf.ServiceOptions + 8, // 18: cosi.v1alpha1.Identity.DriverGetInfo:input_type -> cosi.v1alpha1.DriverGetInfoRequest + 10, // 19: cosi.v1alpha1.Provisioner.DriverCreateBucket:input_type -> cosi.v1alpha1.DriverCreateBucketRequest + 12, // 20: cosi.v1alpha1.Provisioner.DriverDeleteBucket:input_type -> cosi.v1alpha1.DriverDeleteBucketRequest + 14, // 21: cosi.v1alpha1.Provisioner.DriverGrantBucketAccess:input_type -> cosi.v1alpha1.DriverGrantBucketAccessRequest + 16, // 22: cosi.v1alpha1.Provisioner.DriverRevokeBucketAccess:input_type -> cosi.v1alpha1.DriverRevokeBucketAccessRequest + 9, // 23: cosi.v1alpha1.Identity.DriverGetInfo:output_type -> cosi.v1alpha1.DriverGetInfoResponse + 11, // 24: cosi.v1alpha1.Provisioner.DriverCreateBucket:output_type -> cosi.v1alpha1.DriverCreateBucketResponse + 13, // 25: cosi.v1alpha1.Provisioner.DriverDeleteBucket:output_type -> cosi.v1alpha1.DriverDeleteBucketResponse + 15, // 26: cosi.v1alpha1.Provisioner.DriverGrantBucketAccess:output_type -> cosi.v1alpha1.DriverGrantBucketAccessResponse + 17, // 27: cosi.v1alpha1.Provisioner.DriverRevokeBucketAccess:output_type -> cosi.v1alpha1.DriverRevokeBucketAccessResponse + 23, // [23:28] is the sub-list for method output_type + 18, // [18:23] is the sub-list for method input_type + 18, // [18:18] is the sub-list for extension type_name + 11, // [11:18] is the sub-list for extension extendee + 0, // [0:11] is the sub-list for field type_name } func init() { file_sigs_k8s_io_container_object_storage_interface_spec_cosi_proto_init() } @@ -1443,7 +1517,7 @@ func file_sigs_k8s_io_container_object_storage_interface_spec_cosi_proto_init() } } file_sigs_k8s_io_container_object_storage_interface_spec_cosi_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DriverGetInfoRequest); i { + switch v := v.(*CredentialDetails); i { case 0: return &v.state case 1: @@ -1455,7 +1529,7 @@ func file_sigs_k8s_io_container_object_storage_interface_spec_cosi_proto_init() } } file_sigs_k8s_io_container_object_storage_interface_spec_cosi_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DriverGetInfoResponse); i { + switch v := v.(*DriverGetInfoRequest); i { case 0: return &v.state case 1: @@ -1467,7 +1541,7 @@ func file_sigs_k8s_io_container_object_storage_interface_spec_cosi_proto_init() } } file_sigs_k8s_io_container_object_storage_interface_spec_cosi_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DriverCreateBucketRequest); i { + switch v := v.(*DriverGetInfoResponse); i { case 0: return &v.state case 1: @@ -1479,7 +1553,7 @@ func file_sigs_k8s_io_container_object_storage_interface_spec_cosi_proto_init() } } file_sigs_k8s_io_container_object_storage_interface_spec_cosi_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DriverCreateBucketResponse); i { + switch v := v.(*DriverCreateBucketRequest); i { case 0: return &v.state case 1: @@ -1491,7 +1565,7 @@ func file_sigs_k8s_io_container_object_storage_interface_spec_cosi_proto_init() } } file_sigs_k8s_io_container_object_storage_interface_spec_cosi_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DriverDeleteBucketRequest); i { + switch v := v.(*DriverCreateBucketResponse); i { case 0: return &v.state case 1: @@ -1503,7 +1577,7 @@ func file_sigs_k8s_io_container_object_storage_interface_spec_cosi_proto_init() } } file_sigs_k8s_io_container_object_storage_interface_spec_cosi_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DriverDeleteBucketResponse); i { + switch v := v.(*DriverDeleteBucketRequest); i { case 0: return &v.state case 1: @@ -1515,7 +1589,7 @@ func file_sigs_k8s_io_container_object_storage_interface_spec_cosi_proto_init() } } file_sigs_k8s_io_container_object_storage_interface_spec_cosi_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DriverGrantBucketAccessRequest); i { + switch v := v.(*DriverDeleteBucketResponse); i { case 0: return &v.state case 1: @@ -1527,7 +1601,7 @@ func file_sigs_k8s_io_container_object_storage_interface_spec_cosi_proto_init() } } file_sigs_k8s_io_container_object_storage_interface_spec_cosi_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DriverGrantBucketAccessResponse); i { + switch v := v.(*DriverGrantBucketAccessRequest); i { case 0: return &v.state case 1: @@ -1539,7 +1613,7 @@ func file_sigs_k8s_io_container_object_storage_interface_spec_cosi_proto_init() } } file_sigs_k8s_io_container_object_storage_interface_spec_cosi_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DriverRevokeBucketAccessRequest); i { + switch v := v.(*DriverGrantBucketAccessResponse); i { case 0: return &v.state case 1: @@ -1551,6 +1625,18 @@ func file_sigs_k8s_io_container_object_storage_interface_spec_cosi_proto_init() } } file_sigs_k8s_io_container_object_storage_interface_spec_cosi_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DriverRevokeBucketAccessRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sigs_k8s_io_container_object_storage_interface_spec_cosi_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DriverRevokeBucketAccessResponse); i { case 0: return &v.state @@ -1574,7 +1660,7 @@ func file_sigs_k8s_io_container_object_storage_interface_spec_cosi_proto_init() GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_sigs_k8s_io_container_object_storage_interface_spec_cosi_proto_rawDesc, NumEnums: 3, - NumMessages: 16, + NumMessages: 19, NumExtensions: 7, NumServices: 2, }, diff --git a/cosi.pb.json.go b/cosi.pb.json.go index 4d6e0c7..8d30f4f 100644 --- a/cosi.pb.json.go +++ b/cosi.pb.json.go @@ -71,6 +71,22 @@ func (msg *Protocol) UnmarshalJSON(b []byte) error { }.Unmarshal(b, msg) } +// MarshalJSON implements json.Marshaler +func (msg *CredentialDetails) MarshalJSON() ([]byte, error) { + return protojson.MarshalOptions{ + UseEnumNumbers: false, + EmitUnpopulated: true, + UseProtoNames: false, + }.Marshal(msg) +} + +// UnmarshalJSON implements json.Unmarshaler +func (msg *CredentialDetails) UnmarshalJSON(b []byte) error { + return protojson.UnmarshalOptions{ + DiscardUnknown: false, + }.Unmarshal(b, msg) +} + // MarshalJSON implements json.Marshaler func (msg *DriverGetInfoRequest) MarshalJSON() ([]byte, error) { return protojson.MarshalOptions{ diff --git a/cosi.proto b/cosi.proto index 45e1591..3d1956b 100644 --- a/cosi.proto +++ b/cosi.proto @@ -133,6 +133,11 @@ message Protocol { } } +message CredentialDetails { + // map of the details in the secrets for the protocol string + map secrets = 1; +} + message DriverGetInfoRequest { // Intentionally left blank } @@ -210,7 +215,7 @@ message DriverGrantBucketAccessResponse { // This field is REQUIRED // Credentials supplied for accessing the bucket ex: aws access key id and secret, etc. - string credentials = 2; + map credentials = 2; } message DriverRevokeBucketAccessRequest { diff --git a/spec.md b/spec.md index 743b424..bce0919 100644 --- a/spec.md +++ b/spec.md @@ -260,6 +260,11 @@ message Protocol { } } +message CredentialDetails { + // map of the details in the secrets for the protocol string + map secrets = 1; +} + message DriverGetInfoRequest { // Intentionally left blank } @@ -337,7 +342,7 @@ message DriverGrantBucketAccessResponse { // This field is REQUIRED // Credentials supplied for accessing the bucket ex: aws access key id and secret, etc. - string credentials = 2; + map credentials = 2; } message DriverRevokeBucketAccessRequest { From 620b96b9553eaad6419849de16a651f663195187 Mon Sep 17 00:00:00 2001 From: Akash Mukhopadhyay Date: Tue, 26 Jul 2022 00:50:09 -0700 Subject: [PATCH 6/6] Some fixes in the spec --- cosi.pb.go | 4 ++-- cosi.proto | 4 ++-- spec.md | 14 +++++++------- 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/cosi.pb.go b/cosi.pb.go index 2533870..d25d1b2 100644 --- a/cosi.pb.go +++ b/cosi.pb.go @@ -1689,7 +1689,7 @@ const _ = grpc.SupportPackageIsVersion6 // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. type IdentityClient interface { // This call is meant to retrieve the unique provisioner Identity. - // This identity will have to be set in BucketRequest.Provisioner field in order to invoke this specific provisioner. + // This identity will have to be set in BucketClaim.DriverName field in order to invoke this specific provisioner. DriverGetInfo(ctx context.Context, in *DriverGetInfoRequest, opts ...grpc.CallOption) (*DriverGetInfoResponse, error) } @@ -1713,7 +1713,7 @@ func (c *identityClient) DriverGetInfo(ctx context.Context, in *DriverGetInfoReq // IdentityServer is the server API for Identity service. type IdentityServer interface { // This call is meant to retrieve the unique provisioner Identity. - // This identity will have to be set in BucketRequest.Provisioner field in order to invoke this specific provisioner. + // This identity will have to be set in BucketClaim.DriverName field in order to invoke this specific provisioner. DriverGetInfo(context.Context, *DriverGetInfoRequest) (*DriverGetInfoResponse, error) } diff --git a/cosi.proto b/cosi.proto index 3d1956b..c9e0a3f 100644 --- a/cosi.proto +++ b/cosi.proto @@ -54,7 +54,7 @@ extend google.protobuf.ServiceOptions { service Identity { // This call is meant to retrieve the unique provisioner Identity. - // This identity will have to be set in BucketRequest.Provisioner field in order to invoke this specific provisioner. + // This identity will have to be set in BucketClaim.DriverName field in order to invoke this specific provisioner. rpc DriverGetInfo (DriverGetInfoRequest) returns (DriverGetInfoResponse) {} } @@ -154,7 +154,7 @@ message DriverGetInfoResponse { string name = 1; } -message DriverCreateBucketRequest { +message DriverCreateBucketRequest { // This field is REQUIRED // name specifies the name of the bucket that should be created. string name = 1; diff --git a/spec.md b/spec.md index bce0919..953eb70 100644 --- a/spec.md +++ b/spec.md @@ -181,7 +181,7 @@ extend google.protobuf.ServiceOptions { service Identity { // This call is meant to retrieve the unique provisioner Identity. - // This identity will have to be set in BucketRequest.Provisioner field in order to invoke this specific provisioner. + // This identity will have to be set in BucketClaim.DriverName field in order to invoke this specific provisioner. rpc DriverGetInfo (DriverGetInfoRequest) returns (DriverGetInfoResponse) {} } @@ -281,7 +281,7 @@ message DriverGetInfoResponse { string name = 1; } -message DriverCreateBucketRequest { +message DriverCreateBucketRequest { // This field is REQUIRED // name specifies the name of the bucket that should be created. string name = 1; @@ -431,7 +431,7 @@ The general flow of the success case MAY be as follows (protos illustrated in YA 1. COSI system queries metadata via Identity RPC. ``` - # COSI system --(ProvisionerGetInfo)--> Plugin + # COSI system --(DriverGetInfo)--> Plugin request: response: name: org.foo.whizbang.super-plugin @@ -446,16 +446,16 @@ message DriverGetInfoResponse { } ``` -#### `ProvisionerCreateBucket` +#### `DriverCreateBucket` A Controller Plugin MUST implement this RPC call. This RPC will be called by the COSI system to provision a new bucket on behalf of a COSI user. This operation MUST be idempotent. -If a volume corresponding to the specified bucket `name` already exists, is accessible from `accessibility_requirements, and is compatible with the specified attributes of the bucket in the `ProvisionerCreateBucket`, the Plugin MUST reply `0 OK` with the corresponding `ProvisionerCreateBucketResponse`. +If a volume corresponding to the specified bucket `name` already exists, is accessible from `accessibility_requirements, and is compatible with the specified attributes of the bucket in the `DriverCreateBucket`, the Plugin MUST reply `0 OK` with the corresponding `DriverCreateBucketResponse`. ``` -message ProvisionerCreateBucketRequest { +message DriverCreateBucketRequest { // Idempotency - This name is generated by the COSI system to achieve // idempotency. // This field is REQUIRED. @@ -466,7 +466,7 @@ message ProvisionerCreateBucketRequest { map bucket_context = 2; } -message ProvisionerCreateBucketResponse { +message DriverCreateBucketResponse { // Intentionally left blank }