| // Copyright 2023 Google LLC |
| // |
| // Licensed under the Apache License, Version 2.0 (the "License"); |
| // you may not use this file except in compliance with the License. |
| // You may obtain a copy of the License at |
| // |
| // http://www.apache.org/licenses/LICENSE-2.0 |
| // |
| // Unless required by applicable law or agreed to in writing, software |
| // distributed under the License is distributed on an "AS IS" BASIS, |
| // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| // See the License for the specific language governing permissions and |
| // limitations under the License. |
| |
| // Code generated by protoc-gen-go. DO NOT EDIT. |
| // versions: |
| // protoc-gen-go v1.33.0 |
| // protoc v4.25.3 |
| // source: google/storage/v2/storage.proto |
| |
| package storagepb |
| |
| import ( |
| context "context" |
| reflect "reflect" |
| sync "sync" |
| |
| iampb "cloud.google.com/go/iam/apiv1/iampb" |
| _ "google.golang.org/genproto/googleapis/api/annotations" |
| date "google.golang.org/genproto/googleapis/type/date" |
| grpc "google.golang.org/grpc" |
| codes "google.golang.org/grpc/codes" |
| status "google.golang.org/grpc/status" |
| protoreflect "google.golang.org/protobuf/reflect/protoreflect" |
| protoimpl "google.golang.org/protobuf/runtime/protoimpl" |
| durationpb "google.golang.org/protobuf/types/known/durationpb" |
| emptypb "google.golang.org/protobuf/types/known/emptypb" |
| fieldmaskpb "google.golang.org/protobuf/types/known/fieldmaskpb" |
| timestamppb "google.golang.org/protobuf/types/known/timestamppb" |
| ) |
| |
| const ( |
| // Verify that this generated code is sufficiently up-to-date. |
| _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) |
| // Verify that runtime/protoimpl is sufficiently up-to-date. |
| _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) |
| ) |
| |
| // A collection of constant values meaningful to the Storage API. |
| type ServiceConstants_Values int32 |
| |
| const ( |
| // Unused. Proto3 requires first enum to be 0. |
| ServiceConstants_VALUES_UNSPECIFIED ServiceConstants_Values = 0 |
| // The maximum size chunk that can will be returned in a single |
| // ReadRequest. |
| // 2 MiB. |
| ServiceConstants_MAX_READ_CHUNK_BYTES ServiceConstants_Values = 2097152 |
| // The maximum size chunk that can be sent in a single WriteObjectRequest. |
| // 2 MiB. |
| ServiceConstants_MAX_WRITE_CHUNK_BYTES ServiceConstants_Values = 2097152 |
| // The maximum size of an object in MB - whether written in a single stream |
| // or composed from multiple other objects. |
| // 5 TiB. |
| ServiceConstants_MAX_OBJECT_SIZE_MB ServiceConstants_Values = 5242880 |
| // The maximum length field name that can be sent in a single |
| // custom metadata field. |
| // 1 KiB. |
| ServiceConstants_MAX_CUSTOM_METADATA_FIELD_NAME_BYTES ServiceConstants_Values = 1024 |
| // The maximum length field value that can be sent in a single |
| // custom_metadata field. |
| // 4 KiB. |
| ServiceConstants_MAX_CUSTOM_METADATA_FIELD_VALUE_BYTES ServiceConstants_Values = 4096 |
| // The maximum total bytes that can be populated into all field names and |
| // values of the custom_metadata for one object. |
| // 8 KiB. |
| ServiceConstants_MAX_CUSTOM_METADATA_TOTAL_SIZE_BYTES ServiceConstants_Values = 8192 |
| // The maximum total bytes that can be populated into all bucket metadata |
| // fields. |
| // 20 KiB. |
| ServiceConstants_MAX_BUCKET_METADATA_TOTAL_SIZE_BYTES ServiceConstants_Values = 20480 |
| // The maximum number of NotificationConfigs that can be registered |
| // for a given bucket. |
| ServiceConstants_MAX_NOTIFICATION_CONFIGS_PER_BUCKET ServiceConstants_Values = 100 |
| // The maximum number of LifecycleRules that can be registered for a given |
| // bucket. |
| ServiceConstants_MAX_LIFECYCLE_RULES_PER_BUCKET ServiceConstants_Values = 100 |
| // The maximum number of custom attributes per NotificationConfigs. |
| ServiceConstants_MAX_NOTIFICATION_CUSTOM_ATTRIBUTES ServiceConstants_Values = 5 |
| // The maximum length of a custom attribute key included in |
| // NotificationConfig. |
| ServiceConstants_MAX_NOTIFICATION_CUSTOM_ATTRIBUTE_KEY_LENGTH ServiceConstants_Values = 256 |
| // The maximum length of a custom attribute value included in a |
| // NotificationConfig. |
| ServiceConstants_MAX_NOTIFICATION_CUSTOM_ATTRIBUTE_VALUE_LENGTH ServiceConstants_Values = 1024 |
| // The maximum number of key/value entries per bucket label. |
| ServiceConstants_MAX_LABELS_ENTRIES_COUNT ServiceConstants_Values = 64 |
| // The maximum character length of the key or value in a bucket |
| // label map. |
| ServiceConstants_MAX_LABELS_KEY_VALUE_LENGTH ServiceConstants_Values = 63 |
| // The maximum byte size of the key or value in a bucket label |
| // map. |
| ServiceConstants_MAX_LABELS_KEY_VALUE_BYTES ServiceConstants_Values = 128 |
| // The maximum number of object IDs that can be included in a |
| // DeleteObjectsRequest. |
| ServiceConstants_MAX_OBJECT_IDS_PER_DELETE_OBJECTS_REQUEST ServiceConstants_Values = 1000 |
| // The maximum number of days for which a token returned by the |
| // GetListObjectsSplitPoints RPC is valid. |
| ServiceConstants_SPLIT_TOKEN_MAX_VALID_DAYS ServiceConstants_Values = 14 |
| ) |
| |
| // Enum value maps for ServiceConstants_Values. |
| var ( |
| ServiceConstants_Values_name = map[int32]string{ |
| 0: "VALUES_UNSPECIFIED", |
| 2097152: "MAX_READ_CHUNK_BYTES", |
| // Duplicate value: 2097152: "MAX_WRITE_CHUNK_BYTES", |
| 5242880: "MAX_OBJECT_SIZE_MB", |
| 1024: "MAX_CUSTOM_METADATA_FIELD_NAME_BYTES", |
| 4096: "MAX_CUSTOM_METADATA_FIELD_VALUE_BYTES", |
| 8192: "MAX_CUSTOM_METADATA_TOTAL_SIZE_BYTES", |
| 20480: "MAX_BUCKET_METADATA_TOTAL_SIZE_BYTES", |
| 100: "MAX_NOTIFICATION_CONFIGS_PER_BUCKET", |
| // Duplicate value: 100: "MAX_LIFECYCLE_RULES_PER_BUCKET", |
| 5: "MAX_NOTIFICATION_CUSTOM_ATTRIBUTES", |
| 256: "MAX_NOTIFICATION_CUSTOM_ATTRIBUTE_KEY_LENGTH", |
| // Duplicate value: 1024: "MAX_NOTIFICATION_CUSTOM_ATTRIBUTE_VALUE_LENGTH", |
| 64: "MAX_LABELS_ENTRIES_COUNT", |
| 63: "MAX_LABELS_KEY_VALUE_LENGTH", |
| 128: "MAX_LABELS_KEY_VALUE_BYTES", |
| 1000: "MAX_OBJECT_IDS_PER_DELETE_OBJECTS_REQUEST", |
| 14: "SPLIT_TOKEN_MAX_VALID_DAYS", |
| } |
| ServiceConstants_Values_value = map[string]int32{ |
| "VALUES_UNSPECIFIED": 0, |
| "MAX_READ_CHUNK_BYTES": 2097152, |
| "MAX_WRITE_CHUNK_BYTES": 2097152, |
| "MAX_OBJECT_SIZE_MB": 5242880, |
| "MAX_CUSTOM_METADATA_FIELD_NAME_BYTES": 1024, |
| "MAX_CUSTOM_METADATA_FIELD_VALUE_BYTES": 4096, |
| "MAX_CUSTOM_METADATA_TOTAL_SIZE_BYTES": 8192, |
| "MAX_BUCKET_METADATA_TOTAL_SIZE_BYTES": 20480, |
| "MAX_NOTIFICATION_CONFIGS_PER_BUCKET": 100, |
| "MAX_LIFECYCLE_RULES_PER_BUCKET": 100, |
| "MAX_NOTIFICATION_CUSTOM_ATTRIBUTES": 5, |
| "MAX_NOTIFICATION_CUSTOM_ATTRIBUTE_KEY_LENGTH": 256, |
| "MAX_NOTIFICATION_CUSTOM_ATTRIBUTE_VALUE_LENGTH": 1024, |
| "MAX_LABELS_ENTRIES_COUNT": 64, |
| "MAX_LABELS_KEY_VALUE_LENGTH": 63, |
| "MAX_LABELS_KEY_VALUE_BYTES": 128, |
| "MAX_OBJECT_IDS_PER_DELETE_OBJECTS_REQUEST": 1000, |
| "SPLIT_TOKEN_MAX_VALID_DAYS": 14, |
| } |
| ) |
| |
| func (x ServiceConstants_Values) Enum() *ServiceConstants_Values { |
| p := new(ServiceConstants_Values) |
| *p = x |
| return p |
| } |
| |
| func (x ServiceConstants_Values) String() string { |
| return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) |
| } |
| |
| func (ServiceConstants_Values) Descriptor() protoreflect.EnumDescriptor { |
| return file_google_storage_v2_storage_proto_enumTypes[0].Descriptor() |
| } |
| |
| func (ServiceConstants_Values) Type() protoreflect.EnumType { |
| return &file_google_storage_v2_storage_proto_enumTypes[0] |
| } |
| |
| func (x ServiceConstants_Values) Number() protoreflect.EnumNumber { |
| return protoreflect.EnumNumber(x) |
| } |
| |
| // Deprecated: Use ServiceConstants_Values.Descriptor instead. |
| func (ServiceConstants_Values) EnumDescriptor() ([]byte, []int) { |
| return file_google_storage_v2_storage_proto_rawDescGZIP(), []int{42, 0} |
| } |
| |
| // Request message for DeleteBucket. |
| type DeleteBucketRequest struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Required. Name of a bucket to delete. |
| Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` |
| // If set, only deletes the bucket if its metageneration matches this value. |
| IfMetagenerationMatch *int64 `protobuf:"varint,2,opt,name=if_metageneration_match,json=ifMetagenerationMatch,proto3,oneof" json:"if_metageneration_match,omitempty"` |
| // If set, only deletes the bucket if its metageneration does not match this |
| // value. |
| IfMetagenerationNotMatch *int64 `protobuf:"varint,3,opt,name=if_metageneration_not_match,json=ifMetagenerationNotMatch,proto3,oneof" json:"if_metageneration_not_match,omitempty"` |
| } |
| |
| func (x *DeleteBucketRequest) Reset() { |
| *x = DeleteBucketRequest{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_storage_v2_storage_proto_msgTypes[0] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *DeleteBucketRequest) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*DeleteBucketRequest) ProtoMessage() {} |
| |
| func (x *DeleteBucketRequest) ProtoReflect() protoreflect.Message { |
| mi := &file_google_storage_v2_storage_proto_msgTypes[0] |
| 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 DeleteBucketRequest.ProtoReflect.Descriptor instead. |
| func (*DeleteBucketRequest) Descriptor() ([]byte, []int) { |
| return file_google_storage_v2_storage_proto_rawDescGZIP(), []int{0} |
| } |
| |
| func (x *DeleteBucketRequest) GetName() string { |
| if x != nil { |
| return x.Name |
| } |
| return "" |
| } |
| |
| func (x *DeleteBucketRequest) GetIfMetagenerationMatch() int64 { |
| if x != nil && x.IfMetagenerationMatch != nil { |
| return *x.IfMetagenerationMatch |
| } |
| return 0 |
| } |
| |
| func (x *DeleteBucketRequest) GetIfMetagenerationNotMatch() int64 { |
| if x != nil && x.IfMetagenerationNotMatch != nil { |
| return *x.IfMetagenerationNotMatch |
| } |
| return 0 |
| } |
| |
| // Request message for GetBucket. |
| type GetBucketRequest struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Required. Name of a bucket. |
| Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` |
| // If set, and if the bucket's current metageneration does not match the |
| // specified value, the request will return an error. |
| IfMetagenerationMatch *int64 `protobuf:"varint,2,opt,name=if_metageneration_match,json=ifMetagenerationMatch,proto3,oneof" json:"if_metageneration_match,omitempty"` |
| // If set, and if the bucket's current metageneration matches the specified |
| // value, the request will return an error. |
| IfMetagenerationNotMatch *int64 `protobuf:"varint,3,opt,name=if_metageneration_not_match,json=ifMetagenerationNotMatch,proto3,oneof" json:"if_metageneration_not_match,omitempty"` |
| // Mask specifying which fields to read. |
| // A "*" field may be used to indicate all fields. |
| // If no mask is specified, will default to all fields. |
| ReadMask *fieldmaskpb.FieldMask `protobuf:"bytes,5,opt,name=read_mask,json=readMask,proto3,oneof" json:"read_mask,omitempty"` |
| } |
| |
| func (x *GetBucketRequest) Reset() { |
| *x = GetBucketRequest{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_storage_v2_storage_proto_msgTypes[1] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *GetBucketRequest) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*GetBucketRequest) ProtoMessage() {} |
| |
| func (x *GetBucketRequest) ProtoReflect() protoreflect.Message { |
| mi := &file_google_storage_v2_storage_proto_msgTypes[1] |
| if protoimpl.UnsafeEnabled && x != nil { |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| if ms.LoadMessageInfo() == nil { |
| ms.StoreMessageInfo(mi) |
| } |
| return ms |
| } |
| return mi.MessageOf(x) |
| } |
| |
| // Deprecated: Use GetBucketRequest.ProtoReflect.Descriptor instead. |
| func (*GetBucketRequest) Descriptor() ([]byte, []int) { |
| return file_google_storage_v2_storage_proto_rawDescGZIP(), []int{1} |
| } |
| |
| func (x *GetBucketRequest) GetName() string { |
| if x != nil { |
| return x.Name |
| } |
| return "" |
| } |
| |
| func (x *GetBucketRequest) GetIfMetagenerationMatch() int64 { |
| if x != nil && x.IfMetagenerationMatch != nil { |
| return *x.IfMetagenerationMatch |
| } |
| return 0 |
| } |
| |
| func (x *GetBucketRequest) GetIfMetagenerationNotMatch() int64 { |
| if x != nil && x.IfMetagenerationNotMatch != nil { |
| return *x.IfMetagenerationNotMatch |
| } |
| return 0 |
| } |
| |
| func (x *GetBucketRequest) GetReadMask() *fieldmaskpb.FieldMask { |
| if x != nil { |
| return x.ReadMask |
| } |
| return nil |
| } |
| |
| // Request message for CreateBucket. |
| type CreateBucketRequest struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Required. The project to which this bucket will belong. |
| Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` |
| // Properties of the new bucket being inserted. |
| // The name of the bucket is specified in the `bucket_id` field. Populating |
| // `bucket.name` field will result in an error. |
| // The project of the bucket must be specified in the `bucket.project` field. |
| // This field must be in `projects/{projectIdentifier}` format, |
| // {projectIdentifier} can be the project ID or project number. The `parent` |
| // field must be either empty or `projects/_`. |
| Bucket *Bucket `protobuf:"bytes,2,opt,name=bucket,proto3" json:"bucket,omitempty"` |
| // Required. The ID to use for this bucket, which will become the final |
| // component of the bucket's resource name. For example, the value `foo` might |
| // result in a bucket with the name `projects/123456/buckets/foo`. |
| BucketId string `protobuf:"bytes,3,opt,name=bucket_id,json=bucketId,proto3" json:"bucket_id,omitempty"` |
| // Apply a predefined set of access controls to this bucket. |
| // Valid values are "authenticatedRead", "private", "projectPrivate", |
| // "publicRead", or "publicReadWrite". |
| PredefinedAcl string `protobuf:"bytes,6,opt,name=predefined_acl,json=predefinedAcl,proto3" json:"predefined_acl,omitempty"` |
| // Apply a predefined set of default object access controls to this bucket. |
| // Valid values are "authenticatedRead", "bucketOwnerFullControl", |
| // "bucketOwnerRead", "private", "projectPrivate", or "publicRead". |
| PredefinedDefaultObjectAcl string `protobuf:"bytes,7,opt,name=predefined_default_object_acl,json=predefinedDefaultObjectAcl,proto3" json:"predefined_default_object_acl,omitempty"` |
| } |
| |
| func (x *CreateBucketRequest) Reset() { |
| *x = CreateBucketRequest{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_storage_v2_storage_proto_msgTypes[2] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *CreateBucketRequest) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*CreateBucketRequest) ProtoMessage() {} |
| |
| func (x *CreateBucketRequest) ProtoReflect() protoreflect.Message { |
| mi := &file_google_storage_v2_storage_proto_msgTypes[2] |
| 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 CreateBucketRequest.ProtoReflect.Descriptor instead. |
| func (*CreateBucketRequest) Descriptor() ([]byte, []int) { |
| return file_google_storage_v2_storage_proto_rawDescGZIP(), []int{2} |
| } |
| |
| func (x *CreateBucketRequest) GetParent() string { |
| if x != nil { |
| return x.Parent |
| } |
| return "" |
| } |
| |
| func (x *CreateBucketRequest) GetBucket() *Bucket { |
| if x != nil { |
| return x.Bucket |
| } |
| return nil |
| } |
| |
| func (x *CreateBucketRequest) GetBucketId() string { |
| if x != nil { |
| return x.BucketId |
| } |
| return "" |
| } |
| |
| func (x *CreateBucketRequest) GetPredefinedAcl() string { |
| if x != nil { |
| return x.PredefinedAcl |
| } |
| return "" |
| } |
| |
| func (x *CreateBucketRequest) GetPredefinedDefaultObjectAcl() string { |
| if x != nil { |
| return x.PredefinedDefaultObjectAcl |
| } |
| return "" |
| } |
| |
| // Request message for ListBuckets. |
| type ListBucketsRequest struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Required. The project whose buckets we are listing. |
| Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` |
| // Maximum number of buckets to return in a single response. The service will |
| // use this parameter or 1,000 items, whichever is smaller. If "acl" is |
| // present in the read_mask, the service will use this parameter of 200 items, |
| // whichever is smaller. |
| PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` |
| // A previously-returned page token representing part of the larger set of |
| // results to view. |
| PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` |
| // Filter results to buckets whose names begin with this prefix. |
| Prefix string `protobuf:"bytes,4,opt,name=prefix,proto3" json:"prefix,omitempty"` |
| // Mask specifying which fields to read from each result. |
| // If no mask is specified, will default to all fields except items.owner, |
| // items.acl, and items.default_object_acl. |
| // * may be used to mean "all fields". |
| ReadMask *fieldmaskpb.FieldMask `protobuf:"bytes,5,opt,name=read_mask,json=readMask,proto3,oneof" json:"read_mask,omitempty"` |
| } |
| |
| func (x *ListBucketsRequest) Reset() { |
| *x = ListBucketsRequest{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_storage_v2_storage_proto_msgTypes[3] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *ListBucketsRequest) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*ListBucketsRequest) ProtoMessage() {} |
| |
| func (x *ListBucketsRequest) ProtoReflect() protoreflect.Message { |
| mi := &file_google_storage_v2_storage_proto_msgTypes[3] |
| 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 ListBucketsRequest.ProtoReflect.Descriptor instead. |
| func (*ListBucketsRequest) Descriptor() ([]byte, []int) { |
| return file_google_storage_v2_storage_proto_rawDescGZIP(), []int{3} |
| } |
| |
| func (x *ListBucketsRequest) GetParent() string { |
| if x != nil { |
| return x.Parent |
| } |
| return "" |
| } |
| |
| func (x *ListBucketsRequest) GetPageSize() int32 { |
| if x != nil { |
| return x.PageSize |
| } |
| return 0 |
| } |
| |
| func (x *ListBucketsRequest) GetPageToken() string { |
| if x != nil { |
| return x.PageToken |
| } |
| return "" |
| } |
| |
| func (x *ListBucketsRequest) GetPrefix() string { |
| if x != nil { |
| return x.Prefix |
| } |
| return "" |
| } |
| |
| func (x *ListBucketsRequest) GetReadMask() *fieldmaskpb.FieldMask { |
| if x != nil { |
| return x.ReadMask |
| } |
| return nil |
| } |
| |
| // The result of a call to Buckets.ListBuckets |
| type ListBucketsResponse struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // The list of items. |
| Buckets []*Bucket `protobuf:"bytes,1,rep,name=buckets,proto3" json:"buckets,omitempty"` |
| // The continuation token, used to page through large result sets. Provide |
| // this value in a subsequent request to return the next page of results. |
| NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` |
| } |
| |
| func (x *ListBucketsResponse) Reset() { |
| *x = ListBucketsResponse{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_storage_v2_storage_proto_msgTypes[4] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *ListBucketsResponse) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*ListBucketsResponse) ProtoMessage() {} |
| |
| func (x *ListBucketsResponse) ProtoReflect() protoreflect.Message { |
| mi := &file_google_storage_v2_storage_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 ListBucketsResponse.ProtoReflect.Descriptor instead. |
| func (*ListBucketsResponse) Descriptor() ([]byte, []int) { |
| return file_google_storage_v2_storage_proto_rawDescGZIP(), []int{4} |
| } |
| |
| func (x *ListBucketsResponse) GetBuckets() []*Bucket { |
| if x != nil { |
| return x.Buckets |
| } |
| return nil |
| } |
| |
| func (x *ListBucketsResponse) GetNextPageToken() string { |
| if x != nil { |
| return x.NextPageToken |
| } |
| return "" |
| } |
| |
| // Request message for LockBucketRetentionPolicyRequest. |
| type LockBucketRetentionPolicyRequest struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Required. Name of a bucket. |
| Bucket string `protobuf:"bytes,1,opt,name=bucket,proto3" json:"bucket,omitempty"` |
| // Required. Makes the operation conditional on whether bucket's current |
| // metageneration matches the given value. Must be positive. |
| IfMetagenerationMatch int64 `protobuf:"varint,2,opt,name=if_metageneration_match,json=ifMetagenerationMatch,proto3" json:"if_metageneration_match,omitempty"` |
| } |
| |
| func (x *LockBucketRetentionPolicyRequest) Reset() { |
| *x = LockBucketRetentionPolicyRequest{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_storage_v2_storage_proto_msgTypes[5] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *LockBucketRetentionPolicyRequest) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*LockBucketRetentionPolicyRequest) ProtoMessage() {} |
| |
| func (x *LockBucketRetentionPolicyRequest) ProtoReflect() protoreflect.Message { |
| mi := &file_google_storage_v2_storage_proto_msgTypes[5] |
| 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 LockBucketRetentionPolicyRequest.ProtoReflect.Descriptor instead. |
| func (*LockBucketRetentionPolicyRequest) Descriptor() ([]byte, []int) { |
| return file_google_storage_v2_storage_proto_rawDescGZIP(), []int{5} |
| } |
| |
| func (x *LockBucketRetentionPolicyRequest) GetBucket() string { |
| if x != nil { |
| return x.Bucket |
| } |
| return "" |
| } |
| |
| func (x *LockBucketRetentionPolicyRequest) GetIfMetagenerationMatch() int64 { |
| if x != nil { |
| return x.IfMetagenerationMatch |
| } |
| return 0 |
| } |
| |
| // Request for UpdateBucket method. |
| type UpdateBucketRequest struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Required. The bucket to update. |
| // The bucket's `name` field will be used to identify the bucket. |
| Bucket *Bucket `protobuf:"bytes,1,opt,name=bucket,proto3" json:"bucket,omitempty"` |
| // If set, will only modify the bucket if its metageneration matches this |
| // value. |
| IfMetagenerationMatch *int64 `protobuf:"varint,2,opt,name=if_metageneration_match,json=ifMetagenerationMatch,proto3,oneof" json:"if_metageneration_match,omitempty"` |
| // If set, will only modify the bucket if its metageneration does not match |
| // this value. |
| IfMetagenerationNotMatch *int64 `protobuf:"varint,3,opt,name=if_metageneration_not_match,json=ifMetagenerationNotMatch,proto3,oneof" json:"if_metageneration_not_match,omitempty"` |
| // Apply a predefined set of access controls to this bucket. |
| // Valid values are "authenticatedRead", "private", "projectPrivate", |
| // "publicRead", or "publicReadWrite". |
| PredefinedAcl string `protobuf:"bytes,8,opt,name=predefined_acl,json=predefinedAcl,proto3" json:"predefined_acl,omitempty"` |
| // Apply a predefined set of default object access controls to this bucket. |
| // Valid values are "authenticatedRead", "bucketOwnerFullControl", |
| // "bucketOwnerRead", "private", "projectPrivate", or "publicRead". |
| PredefinedDefaultObjectAcl string `protobuf:"bytes,9,opt,name=predefined_default_object_acl,json=predefinedDefaultObjectAcl,proto3" json:"predefined_default_object_acl,omitempty"` |
| // Required. List of fields to be updated. |
| // |
| // To specify ALL fields, equivalent to the JSON API's "update" function, |
| // specify a single field with the value `*`. Note: not recommended. If a new |
| // field is introduced at a later time, an older client updating with the `*` |
| // may accidentally reset the new field's value. |
| // |
| // Not specifying any fields is an error. |
| UpdateMask *fieldmaskpb.FieldMask `protobuf:"bytes,6,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"` |
| } |
| |
| func (x *UpdateBucketRequest) Reset() { |
| *x = UpdateBucketRequest{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_storage_v2_storage_proto_msgTypes[6] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *UpdateBucketRequest) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*UpdateBucketRequest) ProtoMessage() {} |
| |
| func (x *UpdateBucketRequest) ProtoReflect() protoreflect.Message { |
| mi := &file_google_storage_v2_storage_proto_msgTypes[6] |
| 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 UpdateBucketRequest.ProtoReflect.Descriptor instead. |
| func (*UpdateBucketRequest) Descriptor() ([]byte, []int) { |
| return file_google_storage_v2_storage_proto_rawDescGZIP(), []int{6} |
| } |
| |
| func (x *UpdateBucketRequest) GetBucket() *Bucket { |
| if x != nil { |
| return x.Bucket |
| } |
| return nil |
| } |
| |
| func (x *UpdateBucketRequest) GetIfMetagenerationMatch() int64 { |
| if x != nil && x.IfMetagenerationMatch != nil { |
| return *x.IfMetagenerationMatch |
| } |
| return 0 |
| } |
| |
| func (x *UpdateBucketRequest) GetIfMetagenerationNotMatch() int64 { |
| if x != nil && x.IfMetagenerationNotMatch != nil { |
| return *x.IfMetagenerationNotMatch |
| } |
| return 0 |
| } |
| |
| func (x *UpdateBucketRequest) GetPredefinedAcl() string { |
| if x != nil { |
| return x.PredefinedAcl |
| } |
| return "" |
| } |
| |
| func (x *UpdateBucketRequest) GetPredefinedDefaultObjectAcl() string { |
| if x != nil { |
| return x.PredefinedDefaultObjectAcl |
| } |
| return "" |
| } |
| |
| func (x *UpdateBucketRequest) GetUpdateMask() *fieldmaskpb.FieldMask { |
| if x != nil { |
| return x.UpdateMask |
| } |
| return nil |
| } |
| |
| // Request message for DeleteNotificationConfig. |
| type DeleteNotificationConfigRequest struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Required. The parent bucket of the NotificationConfig. |
| Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` |
| } |
| |
| func (x *DeleteNotificationConfigRequest) Reset() { |
| *x = DeleteNotificationConfigRequest{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_storage_v2_storage_proto_msgTypes[7] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *DeleteNotificationConfigRequest) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*DeleteNotificationConfigRequest) ProtoMessage() {} |
| |
| func (x *DeleteNotificationConfigRequest) ProtoReflect() protoreflect.Message { |
| mi := &file_google_storage_v2_storage_proto_msgTypes[7] |
| 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 DeleteNotificationConfigRequest.ProtoReflect.Descriptor instead. |
| func (*DeleteNotificationConfigRequest) Descriptor() ([]byte, []int) { |
| return file_google_storage_v2_storage_proto_rawDescGZIP(), []int{7} |
| } |
| |
| func (x *DeleteNotificationConfigRequest) GetName() string { |
| if x != nil { |
| return x.Name |
| } |
| return "" |
| } |
| |
| // Request message for GetNotificationConfig. |
| type GetNotificationConfigRequest struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Required. The parent bucket of the NotificationConfig. |
| // Format: |
| // `projects/{project}/buckets/{bucket}/notificationConfigs/{notificationConfig}` |
| Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` |
| } |
| |
| func (x *GetNotificationConfigRequest) Reset() { |
| *x = GetNotificationConfigRequest{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_storage_v2_storage_proto_msgTypes[8] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *GetNotificationConfigRequest) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*GetNotificationConfigRequest) ProtoMessage() {} |
| |
| func (x *GetNotificationConfigRequest) ProtoReflect() protoreflect.Message { |
| mi := &file_google_storage_v2_storage_proto_msgTypes[8] |
| 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 GetNotificationConfigRequest.ProtoReflect.Descriptor instead. |
| func (*GetNotificationConfigRequest) Descriptor() ([]byte, []int) { |
| return file_google_storage_v2_storage_proto_rawDescGZIP(), []int{8} |
| } |
| |
| func (x *GetNotificationConfigRequest) GetName() string { |
| if x != nil { |
| return x.Name |
| } |
| return "" |
| } |
| |
| // Request message for CreateNotificationConfig. |
| type CreateNotificationConfigRequest struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Required. The bucket to which this NotificationConfig belongs. |
| Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` |
| // Required. Properties of the NotificationConfig to be inserted. |
| NotificationConfig *NotificationConfig `protobuf:"bytes,2,opt,name=notification_config,json=notificationConfig,proto3" json:"notification_config,omitempty"` |
| } |
| |
| func (x *CreateNotificationConfigRequest) Reset() { |
| *x = CreateNotificationConfigRequest{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_storage_v2_storage_proto_msgTypes[9] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *CreateNotificationConfigRequest) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*CreateNotificationConfigRequest) ProtoMessage() {} |
| |
| func (x *CreateNotificationConfigRequest) ProtoReflect() protoreflect.Message { |
| mi := &file_google_storage_v2_storage_proto_msgTypes[9] |
| 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 CreateNotificationConfigRequest.ProtoReflect.Descriptor instead. |
| func (*CreateNotificationConfigRequest) Descriptor() ([]byte, []int) { |
| return file_google_storage_v2_storage_proto_rawDescGZIP(), []int{9} |
| } |
| |
| func (x *CreateNotificationConfigRequest) GetParent() string { |
| if x != nil { |
| return x.Parent |
| } |
| return "" |
| } |
| |
| func (x *CreateNotificationConfigRequest) GetNotificationConfig() *NotificationConfig { |
| if x != nil { |
| return x.NotificationConfig |
| } |
| return nil |
| } |
| |
| // Request message for ListNotifications. |
| type ListNotificationConfigsRequest struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Required. Name of a Google Cloud Storage bucket. |
| Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` |
| // The maximum number of NotificationConfigs to return. The service may |
| // return fewer than this value. The default value is 100. Specifying a value |
| // above 100 will result in a page_size of 100. |
| PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` |
| // A page token, received from a previous `ListNotificationConfigs` call. |
| // Provide this to retrieve the subsequent page. |
| // |
| // When paginating, all other parameters provided to `ListNotificationConfigs` |
| // must match the call that provided the page token. |
| PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` |
| } |
| |
| func (x *ListNotificationConfigsRequest) Reset() { |
| *x = ListNotificationConfigsRequest{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_storage_v2_storage_proto_msgTypes[10] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *ListNotificationConfigsRequest) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*ListNotificationConfigsRequest) ProtoMessage() {} |
| |
| func (x *ListNotificationConfigsRequest) ProtoReflect() protoreflect.Message { |
| mi := &file_google_storage_v2_storage_proto_msgTypes[10] |
| 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 ListNotificationConfigsRequest.ProtoReflect.Descriptor instead. |
| func (*ListNotificationConfigsRequest) Descriptor() ([]byte, []int) { |
| return file_google_storage_v2_storage_proto_rawDescGZIP(), []int{10} |
| } |
| |
| func (x *ListNotificationConfigsRequest) GetParent() string { |
| if x != nil { |
| return x.Parent |
| } |
| return "" |
| } |
| |
| func (x *ListNotificationConfigsRequest) GetPageSize() int32 { |
| if x != nil { |
| return x.PageSize |
| } |
| return 0 |
| } |
| |
| func (x *ListNotificationConfigsRequest) GetPageToken() string { |
| if x != nil { |
| return x.PageToken |
| } |
| return "" |
| } |
| |
| // The result of a call to ListNotificationConfigs |
| type ListNotificationConfigsResponse struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // The list of items. |
| NotificationConfigs []*NotificationConfig `protobuf:"bytes,1,rep,name=notification_configs,json=notificationConfigs,proto3" json:"notification_configs,omitempty"` |
| // A token, which can be sent as `page_token` to retrieve the next page. |
| // If this field is omitted, there are no subsequent pages. |
| NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` |
| } |
| |
| func (x *ListNotificationConfigsResponse) Reset() { |
| *x = ListNotificationConfigsResponse{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_storage_v2_storage_proto_msgTypes[11] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *ListNotificationConfigsResponse) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*ListNotificationConfigsResponse) ProtoMessage() {} |
| |
| func (x *ListNotificationConfigsResponse) ProtoReflect() protoreflect.Message { |
| mi := &file_google_storage_v2_storage_proto_msgTypes[11] |
| 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 ListNotificationConfigsResponse.ProtoReflect.Descriptor instead. |
| func (*ListNotificationConfigsResponse) Descriptor() ([]byte, []int) { |
| return file_google_storage_v2_storage_proto_rawDescGZIP(), []int{11} |
| } |
| |
| func (x *ListNotificationConfigsResponse) GetNotificationConfigs() []*NotificationConfig { |
| if x != nil { |
| return x.NotificationConfigs |
| } |
| return nil |
| } |
| |
| func (x *ListNotificationConfigsResponse) GetNextPageToken() string { |
| if x != nil { |
| return x.NextPageToken |
| } |
| return "" |
| } |
| |
| // Request message for ComposeObject. |
| type ComposeObjectRequest struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Required. Properties of the resulting object. |
| Destination *Object `protobuf:"bytes,1,opt,name=destination,proto3" json:"destination,omitempty"` |
| // The list of source objects that will be concatenated into a single object. |
| SourceObjects []*ComposeObjectRequest_SourceObject `protobuf:"bytes,2,rep,name=source_objects,json=sourceObjects,proto3" json:"source_objects,omitempty"` |
| // Apply a predefined set of access controls to the destination object. |
| // Valid values are "authenticatedRead", "bucketOwnerFullControl", |
| // "bucketOwnerRead", "private", "projectPrivate", or "publicRead". |
| DestinationPredefinedAcl string `protobuf:"bytes,9,opt,name=destination_predefined_acl,json=destinationPredefinedAcl,proto3" json:"destination_predefined_acl,omitempty"` |
| // Makes the operation conditional on whether the object's current generation |
| // matches the given value. Setting to 0 makes the operation succeed only if |
| // there are no live versions of the object. |
| IfGenerationMatch *int64 `protobuf:"varint,4,opt,name=if_generation_match,json=ifGenerationMatch,proto3,oneof" json:"if_generation_match,omitempty"` |
| // Makes the operation conditional on whether the object's current |
| // metageneration matches the given value. |
| IfMetagenerationMatch *int64 `protobuf:"varint,5,opt,name=if_metageneration_match,json=ifMetagenerationMatch,proto3,oneof" json:"if_metageneration_match,omitempty"` |
| // Resource name of the Cloud KMS key, of the form |
| // `projects/my-project/locations/my-location/keyRings/my-kr/cryptoKeys/my-key`, |
| // that will be used to encrypt the object. Overrides the object |
| // metadata's `kms_key_name` value, if any. |
| KmsKey string `protobuf:"bytes,6,opt,name=kms_key,json=kmsKey,proto3" json:"kms_key,omitempty"` |
| // A set of parameters common to Storage API requests concerning an object. |
| CommonObjectRequestParams *CommonObjectRequestParams `protobuf:"bytes,7,opt,name=common_object_request_params,json=commonObjectRequestParams,proto3" json:"common_object_request_params,omitempty"` |
| // The checksums of the complete object. This will be validated against the |
| // combined checksums of the component objects. |
| ObjectChecksums *ObjectChecksums `protobuf:"bytes,10,opt,name=object_checksums,json=objectChecksums,proto3" json:"object_checksums,omitempty"` |
| } |
| |
| func (x *ComposeObjectRequest) Reset() { |
| *x = ComposeObjectRequest{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_storage_v2_storage_proto_msgTypes[12] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *ComposeObjectRequest) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*ComposeObjectRequest) ProtoMessage() {} |
| |
| func (x *ComposeObjectRequest) ProtoReflect() protoreflect.Message { |
| mi := &file_google_storage_v2_storage_proto_msgTypes[12] |
| 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 ComposeObjectRequest.ProtoReflect.Descriptor instead. |
| func (*ComposeObjectRequest) Descriptor() ([]byte, []int) { |
| return file_google_storage_v2_storage_proto_rawDescGZIP(), []int{12} |
| } |
| |
| func (x *ComposeObjectRequest) GetDestination() *Object { |
| if x != nil { |
| return x.Destination |
| } |
| return nil |
| } |
| |
| func (x *ComposeObjectRequest) GetSourceObjects() []*ComposeObjectRequest_SourceObject { |
| if x != nil { |
| return x.SourceObjects |
| } |
| return nil |
| } |
| |
| func (x *ComposeObjectRequest) GetDestinationPredefinedAcl() string { |
| if x != nil { |
| return x.DestinationPredefinedAcl |
| } |
| return "" |
| } |
| |
| func (x *ComposeObjectRequest) GetIfGenerationMatch() int64 { |
| if x != nil && x.IfGenerationMatch != nil { |
| return *x.IfGenerationMatch |
| } |
| return 0 |
| } |
| |
| func (x *ComposeObjectRequest) GetIfMetagenerationMatch() int64 { |
| if x != nil && x.IfMetagenerationMatch != nil { |
| return *x.IfMetagenerationMatch |
| } |
| return 0 |
| } |
| |
| func (x *ComposeObjectRequest) GetKmsKey() string { |
| if x != nil { |
| return x.KmsKey |
| } |
| return "" |
| } |
| |
| func (x *ComposeObjectRequest) GetCommonObjectRequestParams() *CommonObjectRequestParams { |
| if x != nil { |
| return x.CommonObjectRequestParams |
| } |
| return nil |
| } |
| |
| func (x *ComposeObjectRequest) GetObjectChecksums() *ObjectChecksums { |
| if x != nil { |
| return x.ObjectChecksums |
| } |
| return nil |
| } |
| |
| // Message for deleting an object. |
| // `bucket` and `object` **must** be set. |
| type DeleteObjectRequest struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Required. Name of the bucket in which the object resides. |
| Bucket string `protobuf:"bytes,1,opt,name=bucket,proto3" json:"bucket,omitempty"` |
| // Required. The name of the finalized object to delete. |
| // Note: If you want to delete an unfinalized resumable upload please use |
| // `CancelResumableWrite`. |
| Object string `protobuf:"bytes,2,opt,name=object,proto3" json:"object,omitempty"` |
| // If present, permanently deletes a specific revision of this object (as |
| // opposed to the latest version, the default). |
| Generation int64 `protobuf:"varint,4,opt,name=generation,proto3" json:"generation,omitempty"` |
| // Makes the operation conditional on whether the object's current generation |
| // matches the given value. Setting to 0 makes the operation succeed only if |
| // there are no live versions of the object. |
| IfGenerationMatch *int64 `protobuf:"varint,5,opt,name=if_generation_match,json=ifGenerationMatch,proto3,oneof" json:"if_generation_match,omitempty"` |
| // Makes the operation conditional on whether the object's live generation |
| // does not match the given value. If no live object exists, the precondition |
| // fails. Setting to 0 makes the operation succeed only if there is a live |
| // version of the object. |
| IfGenerationNotMatch *int64 `protobuf:"varint,6,opt,name=if_generation_not_match,json=ifGenerationNotMatch,proto3,oneof" json:"if_generation_not_match,omitempty"` |
| // Makes the operation conditional on whether the object's current |
| // metageneration matches the given value. |
| IfMetagenerationMatch *int64 `protobuf:"varint,7,opt,name=if_metageneration_match,json=ifMetagenerationMatch,proto3,oneof" json:"if_metageneration_match,omitempty"` |
| // Makes the operation conditional on whether the object's current |
| // metageneration does not match the given value. |
| IfMetagenerationNotMatch *int64 `protobuf:"varint,8,opt,name=if_metageneration_not_match,json=ifMetagenerationNotMatch,proto3,oneof" json:"if_metageneration_not_match,omitempty"` |
| // A set of parameters common to Storage API requests concerning an object. |
| CommonObjectRequestParams *CommonObjectRequestParams `protobuf:"bytes,10,opt,name=common_object_request_params,json=commonObjectRequestParams,proto3" json:"common_object_request_params,omitempty"` |
| } |
| |
| func (x *DeleteObjectRequest) Reset() { |
| *x = DeleteObjectRequest{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_storage_v2_storage_proto_msgTypes[13] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *DeleteObjectRequest) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*DeleteObjectRequest) ProtoMessage() {} |
| |
| func (x *DeleteObjectRequest) ProtoReflect() protoreflect.Message { |
| mi := &file_google_storage_v2_storage_proto_msgTypes[13] |
| 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 DeleteObjectRequest.ProtoReflect.Descriptor instead. |
| func (*DeleteObjectRequest) Descriptor() ([]byte, []int) { |
| return file_google_storage_v2_storage_proto_rawDescGZIP(), []int{13} |
| } |
| |
| func (x *DeleteObjectRequest) GetBucket() string { |
| if x != nil { |
| return x.Bucket |
| } |
| return "" |
| } |
| |
| func (x *DeleteObjectRequest) GetObject() string { |
| if x != nil { |
| return x.Object |
| } |
| return "" |
| } |
| |
| func (x *DeleteObjectRequest) GetGeneration() int64 { |
| if x != nil { |
| return x.Generation |
| } |
| return 0 |
| } |
| |
| func (x *DeleteObjectRequest) GetIfGenerationMatch() int64 { |
| if x != nil && x.IfGenerationMatch != nil { |
| return *x.IfGenerationMatch |
| } |
| return 0 |
| } |
| |
| func (x *DeleteObjectRequest) GetIfGenerationNotMatch() int64 { |
| if x != nil && x.IfGenerationNotMatch != nil { |
| return *x.IfGenerationNotMatch |
| } |
| return 0 |
| } |
| |
| func (x *DeleteObjectRequest) GetIfMetagenerationMatch() int64 { |
| if x != nil && x.IfMetagenerationMatch != nil { |
| return *x.IfMetagenerationMatch |
| } |
| return 0 |
| } |
| |
| func (x *DeleteObjectRequest) GetIfMetagenerationNotMatch() int64 { |
| if x != nil && x.IfMetagenerationNotMatch != nil { |
| return *x.IfMetagenerationNotMatch |
| } |
| return 0 |
| } |
| |
| func (x *DeleteObjectRequest) GetCommonObjectRequestParams() *CommonObjectRequestParams { |
| if x != nil { |
| return x.CommonObjectRequestParams |
| } |
| return nil |
| } |
| |
| // Message for restoring an object. |
| // `bucket`, `object`, and `generation` **must** be set. |
| type RestoreObjectRequest struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Required. Name of the bucket in which the object resides. |
| Bucket string `protobuf:"bytes,1,opt,name=bucket,proto3" json:"bucket,omitempty"` |
| // Required. The name of the object to restore. |
| Object string `protobuf:"bytes,2,opt,name=object,proto3" json:"object,omitempty"` |
| // Required. The specific revision of the object to restore. |
| Generation int64 `protobuf:"varint,3,opt,name=generation,proto3" json:"generation,omitempty"` |
| // Makes the operation conditional on whether the object's current generation |
| // matches the given value. Setting to 0 makes the operation succeed only if |
| // there are no live versions of the object. |
| IfGenerationMatch *int64 `protobuf:"varint,4,opt,name=if_generation_match,json=ifGenerationMatch,proto3,oneof" json:"if_generation_match,omitempty"` |
| // Makes the operation conditional on whether the object's live generation |
| // does not match the given value. If no live object exists, the precondition |
| // fails. Setting to 0 makes the operation succeed only if there is a live |
| // version of the object. |
| IfGenerationNotMatch *int64 `protobuf:"varint,5,opt,name=if_generation_not_match,json=ifGenerationNotMatch,proto3,oneof" json:"if_generation_not_match,omitempty"` |
| // Makes the operation conditional on whether the object's current |
| // metageneration matches the given value. |
| IfMetagenerationMatch *int64 `protobuf:"varint,6,opt,name=if_metageneration_match,json=ifMetagenerationMatch,proto3,oneof" json:"if_metageneration_match,omitempty"` |
| // Makes the operation conditional on whether the object's current |
| // metageneration does not match the given value. |
| IfMetagenerationNotMatch *int64 `protobuf:"varint,7,opt,name=if_metageneration_not_match,json=ifMetagenerationNotMatch,proto3,oneof" json:"if_metageneration_not_match,omitempty"` |
| // If false or unset, the bucket's default object ACL will be used. |
| // If true, copy the source object's access controls. |
| // Return an error if bucket has UBLA enabled. |
| CopySourceAcl *bool `protobuf:"varint,9,opt,name=copy_source_acl,json=copySourceAcl,proto3,oneof" json:"copy_source_acl,omitempty"` |
| // A set of parameters common to Storage API requests concerning an object. |
| CommonObjectRequestParams *CommonObjectRequestParams `protobuf:"bytes,8,opt,name=common_object_request_params,json=commonObjectRequestParams,proto3" json:"common_object_request_params,omitempty"` |
| } |
| |
| func (x *RestoreObjectRequest) Reset() { |
| *x = RestoreObjectRequest{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_storage_v2_storage_proto_msgTypes[14] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *RestoreObjectRequest) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*RestoreObjectRequest) ProtoMessage() {} |
| |
| func (x *RestoreObjectRequest) ProtoReflect() protoreflect.Message { |
| mi := &file_google_storage_v2_storage_proto_msgTypes[14] |
| 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 RestoreObjectRequest.ProtoReflect.Descriptor instead. |
| func (*RestoreObjectRequest) Descriptor() ([]byte, []int) { |
| return file_google_storage_v2_storage_proto_rawDescGZIP(), []int{14} |
| } |
| |
| func (x *RestoreObjectRequest) GetBucket() string { |
| if x != nil { |
| return x.Bucket |
| } |
| return "" |
| } |
| |
| func (x *RestoreObjectRequest) GetObject() string { |
| if x != nil { |
| return x.Object |
| } |
| return "" |
| } |
| |
| func (x *RestoreObjectRequest) GetGeneration() int64 { |
| if x != nil { |
| return x.Generation |
| } |
| return 0 |
| } |
| |
| func (x *RestoreObjectRequest) GetIfGenerationMatch() int64 { |
| if x != nil && x.IfGenerationMatch != nil { |
| return *x.IfGenerationMatch |
| } |
| return 0 |
| } |
| |
| func (x *RestoreObjectRequest) GetIfGenerationNotMatch() int64 { |
| if x != nil && x.IfGenerationNotMatch != nil { |
| return *x.IfGenerationNotMatch |
| } |
| return 0 |
| } |
| |
| func (x *RestoreObjectRequest) GetIfMetagenerationMatch() int64 { |
| if x != nil && x.IfMetagenerationMatch != nil { |
| return *x.IfMetagenerationMatch |
| } |
| return 0 |
| } |
| |
| func (x *RestoreObjectRequest) GetIfMetagenerationNotMatch() int64 { |
| if x != nil && x.IfMetagenerationNotMatch != nil { |
| return *x.IfMetagenerationNotMatch |
| } |
| return 0 |
| } |
| |
| func (x *RestoreObjectRequest) GetCopySourceAcl() bool { |
| if x != nil && x.CopySourceAcl != nil { |
| return *x.CopySourceAcl |
| } |
| return false |
| } |
| |
| func (x *RestoreObjectRequest) GetCommonObjectRequestParams() *CommonObjectRequestParams { |
| if x != nil { |
| return x.CommonObjectRequestParams |
| } |
| return nil |
| } |
| |
| // Message for canceling an in-progress resumable upload. |
| // `upload_id` **must** be set. |
| type CancelResumableWriteRequest struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Required. The upload_id of the resumable upload to cancel. This should be |
| // copied from the `upload_id` field of `StartResumableWriteResponse`. |
| UploadId string `protobuf:"bytes,1,opt,name=upload_id,json=uploadId,proto3" json:"upload_id,omitempty"` |
| } |
| |
| func (x *CancelResumableWriteRequest) Reset() { |
| *x = CancelResumableWriteRequest{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_storage_v2_storage_proto_msgTypes[15] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *CancelResumableWriteRequest) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*CancelResumableWriteRequest) ProtoMessage() {} |
| |
| func (x *CancelResumableWriteRequest) ProtoReflect() protoreflect.Message { |
| mi := &file_google_storage_v2_storage_proto_msgTypes[15] |
| 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 CancelResumableWriteRequest.ProtoReflect.Descriptor instead. |
| func (*CancelResumableWriteRequest) Descriptor() ([]byte, []int) { |
| return file_google_storage_v2_storage_proto_rawDescGZIP(), []int{15} |
| } |
| |
| func (x *CancelResumableWriteRequest) GetUploadId() string { |
| if x != nil { |
| return x.UploadId |
| } |
| return "" |
| } |
| |
| // Empty response message for canceling an in-progress resumable upload, will be |
| // extended as needed. |
| type CancelResumableWriteResponse struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| } |
| |
| func (x *CancelResumableWriteResponse) Reset() { |
| *x = CancelResumableWriteResponse{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_storage_v2_storage_proto_msgTypes[16] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *CancelResumableWriteResponse) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*CancelResumableWriteResponse) ProtoMessage() {} |
| |
| func (x *CancelResumableWriteResponse) ProtoReflect() protoreflect.Message { |
| mi := &file_google_storage_v2_storage_proto_msgTypes[16] |
| 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 CancelResumableWriteResponse.ProtoReflect.Descriptor instead. |
| func (*CancelResumableWriteResponse) Descriptor() ([]byte, []int) { |
| return file_google_storage_v2_storage_proto_rawDescGZIP(), []int{16} |
| } |
| |
| // Request message for ReadObject. |
| type ReadObjectRequest struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Required. The name of the bucket containing the object to read. |
| Bucket string `protobuf:"bytes,1,opt,name=bucket,proto3" json:"bucket,omitempty"` |
| // Required. The name of the object to read. |
| Object string `protobuf:"bytes,2,opt,name=object,proto3" json:"object,omitempty"` |
| // If present, selects a specific revision of this object (as opposed |
| // to the latest version, the default). |
| Generation int64 `protobuf:"varint,3,opt,name=generation,proto3" json:"generation,omitempty"` |
| // The offset for the first byte to return in the read, relative to the start |
| // of the object. |
| // |
| // A negative `read_offset` value will be interpreted as the number of bytes |
| // back from the end of the object to be returned. For example, if an object's |
| // length is 15 bytes, a ReadObjectRequest with `read_offset` = -5 and |
| // `read_limit` = 3 would return bytes 10 through 12 of the object. Requesting |
| // a negative offset with magnitude larger than the size of the object will |
| // return the entire object. |
| ReadOffset int64 `protobuf:"varint,4,opt,name=read_offset,json=readOffset,proto3" json:"read_offset,omitempty"` |
| // The maximum number of `data` bytes the server is allowed to return in the |
| // sum of all `Object` messages. A `read_limit` of zero indicates that there |
| // is no limit, and a negative `read_limit` will cause an error. |
| // |
| // If the stream returns fewer bytes than allowed by the `read_limit` and no |
| // error occurred, the stream includes all data from the `read_offset` to the |
| // end of the resource. |
| ReadLimit int64 `protobuf:"varint,5,opt,name=read_limit,json=readLimit,proto3" json:"read_limit,omitempty"` |
| // Makes the operation conditional on whether the object's current generation |
| // matches the given value. Setting to 0 makes the operation succeed only if |
| // there are no live versions of the object. |
| IfGenerationMatch *int64 `protobuf:"varint,6,opt,name=if_generation_match,json=ifGenerationMatch,proto3,oneof" json:"if_generation_match,omitempty"` |
| // Makes the operation conditional on whether the object's live generation |
| // does not match the given value. If no live object exists, the precondition |
| // fails. Setting to 0 makes the operation succeed only if there is a live |
| // version of the object. |
| IfGenerationNotMatch *int64 `protobuf:"varint,7,opt,name=if_generation_not_match,json=ifGenerationNotMatch,proto3,oneof" json:"if_generation_not_match,omitempty"` |
| // Makes the operation conditional on whether the object's current |
| // metageneration matches the given value. |
| IfMetagenerationMatch *int64 `protobuf:"varint,8,opt,name=if_metageneration_match,json=ifMetagenerationMatch,proto3,oneof" json:"if_metageneration_match,omitempty"` |
| // Makes the operation conditional on whether the object's current |
| // metageneration does not match the given value. |
| IfMetagenerationNotMatch *int64 `protobuf:"varint,9,opt,name=if_metageneration_not_match,json=ifMetagenerationNotMatch,proto3,oneof" json:"if_metageneration_not_match,omitempty"` |
| // A set of parameters common to Storage API requests concerning an object. |
| CommonObjectRequestParams *CommonObjectRequestParams `protobuf:"bytes,10,opt,name=common_object_request_params,json=commonObjectRequestParams,proto3" json:"common_object_request_params,omitempty"` |
| // Mask specifying which fields to read. |
| // The checksummed_data field and its children will always be present. |
| // If no mask is specified, will default to all fields except metadata.owner |
| // and metadata.acl. |
| // * may be used to mean "all fields". |
| ReadMask *fieldmaskpb.FieldMask `protobuf:"bytes,12,opt,name=read_mask,json=readMask,proto3,oneof" json:"read_mask,omitempty"` |
| } |
| |
| func (x *ReadObjectRequest) Reset() { |
| *x = ReadObjectRequest{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_storage_v2_storage_proto_msgTypes[17] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *ReadObjectRequest) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*ReadObjectRequest) ProtoMessage() {} |
| |
| func (x *ReadObjectRequest) ProtoReflect() protoreflect.Message { |
| mi := &file_google_storage_v2_storage_proto_msgTypes[17] |
| 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 ReadObjectRequest.ProtoReflect.Descriptor instead. |
| func (*ReadObjectRequest) Descriptor() ([]byte, []int) { |
| return file_google_storage_v2_storage_proto_rawDescGZIP(), []int{17} |
| } |
| |
| func (x *ReadObjectRequest) GetBucket() string { |
| if x != nil { |
| return x.Bucket |
| } |
| return "" |
| } |
| |
| func (x *ReadObjectRequest) GetObject() string { |
| if x != nil { |
| return x.Object |
| } |
| return "" |
| } |
| |
| func (x *ReadObjectRequest) GetGeneration() int64 { |
| if x != nil { |
| return x.Generation |
| } |
| return 0 |
| } |
| |
| func (x *ReadObjectRequest) GetReadOffset() int64 { |
| if x != nil { |
| return x.ReadOffset |
| } |
| return 0 |
| } |
| |
| func (x *ReadObjectRequest) GetReadLimit() int64 { |
| if x != nil { |
| return x.ReadLimit |
| } |
| return 0 |
| } |
| |
| func (x *ReadObjectRequest) GetIfGenerationMatch() int64 { |
| if x != nil && x.IfGenerationMatch != nil { |
| return *x.IfGenerationMatch |
| } |
| return 0 |
| } |
| |
| func (x *ReadObjectRequest) GetIfGenerationNotMatch() int64 { |
| if x != nil && x.IfGenerationNotMatch != nil { |
| return *x.IfGenerationNotMatch |
| } |
| return 0 |
| } |
| |
| func (x *ReadObjectRequest) GetIfMetagenerationMatch() int64 { |
| if x != nil && x.IfMetagenerationMatch != nil { |
| return *x.IfMetagenerationMatch |
| } |
| return 0 |
| } |
| |
| func (x *ReadObjectRequest) GetIfMetagenerationNotMatch() int64 { |
| if x != nil && x.IfMetagenerationNotMatch != nil { |
| return *x.IfMetagenerationNotMatch |
| } |
| return 0 |
| } |
| |
| func (x *ReadObjectRequest) GetCommonObjectRequestParams() *CommonObjectRequestParams { |
| if x != nil { |
| return x.CommonObjectRequestParams |
| } |
| return nil |
| } |
| |
| func (x *ReadObjectRequest) GetReadMask() *fieldmaskpb.FieldMask { |
| if x != nil { |
| return x.ReadMask |
| } |
| return nil |
| } |
| |
| // Request message for GetObject. |
| type GetObjectRequest struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Required. Name of the bucket in which the object resides. |
| Bucket string `protobuf:"bytes,1,opt,name=bucket,proto3" json:"bucket,omitempty"` |
| // Required. Name of the object. |
| Object string `protobuf:"bytes,2,opt,name=object,proto3" json:"object,omitempty"` |
| // If present, selects a specific revision of this object (as opposed to the |
| // latest version, the default). |
| Generation int64 `protobuf:"varint,3,opt,name=generation,proto3" json:"generation,omitempty"` |
| // If true, return the soft-deleted version of this object. |
| SoftDeleted *bool `protobuf:"varint,11,opt,name=soft_deleted,json=softDeleted,proto3,oneof" json:"soft_deleted,omitempty"` |
| // Makes the operation conditional on whether the object's current generation |
| // matches the given value. Setting to 0 makes the operation succeed only if |
| // there are no live versions of the object. |
| IfGenerationMatch *int64 `protobuf:"varint,4,opt,name=if_generation_match,json=ifGenerationMatch,proto3,oneof" json:"if_generation_match,omitempty"` |
| // Makes the operation conditional on whether the object's live generation |
| // does not match the given value. If no live object exists, the precondition |
| // fails. Setting to 0 makes the operation succeed only if there is a live |
| // version of the object. |
| IfGenerationNotMatch *int64 `protobuf:"varint,5,opt,name=if_generation_not_match,json=ifGenerationNotMatch,proto3,oneof" json:"if_generation_not_match,omitempty"` |
| // Makes the operation conditional on whether the object's current |
| // metageneration matches the given value. |
| IfMetagenerationMatch *int64 `protobuf:"varint,6,opt,name=if_metageneration_match,json=ifMetagenerationMatch,proto3,oneof" json:"if_metageneration_match,omitempty"` |
| // Makes the operation conditional on whether the object's current |
| // metageneration does not match the given value. |
| IfMetagenerationNotMatch *int64 `protobuf:"varint,7,opt,name=if_metageneration_not_match,json=ifMetagenerationNotMatch,proto3,oneof" json:"if_metageneration_not_match,omitempty"` |
| // A set of parameters common to Storage API requests concerning an object. |
| CommonObjectRequestParams *CommonObjectRequestParams `protobuf:"bytes,8,opt,name=common_object_request_params,json=commonObjectRequestParams,proto3" json:"common_object_request_params,omitempty"` |
| // Mask specifying which fields to read. |
| // If no mask is specified, will default to all fields except metadata.acl and |
| // metadata.owner. |
| // * may be used to mean "all fields". |
| ReadMask *fieldmaskpb.FieldMask `protobuf:"bytes,10,opt,name=read_mask,json=readMask,proto3,oneof" json:"read_mask,omitempty"` |
| } |
| |
| func (x *GetObjectRequest) Reset() { |
| *x = GetObjectRequest{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_storage_v2_storage_proto_msgTypes[18] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *GetObjectRequest) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*GetObjectRequest) ProtoMessage() {} |
| |
| func (x *GetObjectRequest) ProtoReflect() protoreflect.Message { |
| mi := &file_google_storage_v2_storage_proto_msgTypes[18] |
| 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 GetObjectRequest.ProtoReflect.Descriptor instead. |
| func (*GetObjectRequest) Descriptor() ([]byte, []int) { |
| return file_google_storage_v2_storage_proto_rawDescGZIP(), []int{18} |
| } |
| |
| func (x *GetObjectRequest) GetBucket() string { |
| if x != nil { |
| return x.Bucket |
| } |
| return "" |
| } |
| |
| func (x *GetObjectRequest) GetObject() string { |
| if x != nil { |
| return x.Object |
| } |
| return "" |
| } |
| |
| func (x *GetObjectRequest) GetGeneration() int64 { |
| if x != nil { |
| return x.Generation |
| } |
| return 0 |
| } |
| |
| func (x *GetObjectRequest) GetSoftDeleted() bool { |
| if x != nil && x.SoftDeleted != nil { |
| return *x.SoftDeleted |
| } |
| return false |
| } |
| |
| func (x *GetObjectRequest) GetIfGenerationMatch() int64 { |
| if x != nil && x.IfGenerationMatch != nil { |
| return *x.IfGenerationMatch |
| } |
| return 0 |
| } |
| |
| func (x *GetObjectRequest) GetIfGenerationNotMatch() int64 { |
| if x != nil && x.IfGenerationNotMatch != nil { |
| return *x.IfGenerationNotMatch |
| } |
| return 0 |
| } |
| |
| func (x *GetObjectRequest) GetIfMetagenerationMatch() int64 { |
| if x != nil && x.IfMetagenerationMatch != nil { |
| return *x.IfMetagenerationMatch |
| } |
| return 0 |
| } |
| |
| func (x *GetObjectRequest) GetIfMetagenerationNotMatch() int64 { |
| if x != nil && x.IfMetagenerationNotMatch != nil { |
| return *x.IfMetagenerationNotMatch |
| } |
| return 0 |
| } |
| |
| func (x *GetObjectRequest) GetCommonObjectRequestParams() *CommonObjectRequestParams { |
| if x != nil { |
| return x.CommonObjectRequestParams |
| } |
| return nil |
| } |
| |
| func (x *GetObjectRequest) GetReadMask() *fieldmaskpb.FieldMask { |
| if x != nil { |
| return x.ReadMask |
| } |
| return nil |
| } |
| |
| // Response message for ReadObject. |
| type ReadObjectResponse struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // A portion of the data for the object. The service **may** leave `data` |
| // empty for any given `ReadResponse`. This enables the service to inform the |
| // client that the request is still live while it is running an operation to |
| // generate more data. |
| ChecksummedData *ChecksummedData `protobuf:"bytes,1,opt,name=checksummed_data,json=checksummedData,proto3" json:"checksummed_data,omitempty"` |
| // The checksums of the complete object. If the object is downloaded in full, |
| // the client should compute one of these checksums over the downloaded object |
| // and compare it against the value provided here. |
| ObjectChecksums *ObjectChecksums `protobuf:"bytes,2,opt,name=object_checksums,json=objectChecksums,proto3" json:"object_checksums,omitempty"` |
| // If read_offset and or read_limit was specified on the |
| // ReadObjectRequest, ContentRange will be populated on the first |
| // ReadObjectResponse message of the read stream. |
| ContentRange *ContentRange `protobuf:"bytes,3,opt,name=content_range,json=contentRange,proto3" json:"content_range,omitempty"` |
| // Metadata of the object whose media is being returned. |
| // Only populated in the first response in the stream. |
| Metadata *Object `protobuf:"bytes,4,opt,name=metadata,proto3" json:"metadata,omitempty"` |
| } |
| |
| func (x *ReadObjectResponse) Reset() { |
| *x = ReadObjectResponse{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_storage_v2_storage_proto_msgTypes[19] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *ReadObjectResponse) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*ReadObjectResponse) ProtoMessage() {} |
| |
| func (x *ReadObjectResponse) ProtoReflect() protoreflect.Message { |
| mi := &file_google_storage_v2_storage_proto_msgTypes[19] |
| 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 ReadObjectResponse.ProtoReflect.Descriptor instead. |
| func (*ReadObjectResponse) Descriptor() ([]byte, []int) { |
| return file_google_storage_v2_storage_proto_rawDescGZIP(), []int{19} |
| } |
| |
| func (x *ReadObjectResponse) GetChecksummedData() *ChecksummedData { |
| if x != nil { |
| return x.ChecksummedData |
| } |
| return nil |
| } |
| |
| func (x *ReadObjectResponse) GetObjectChecksums() *ObjectChecksums { |
| if x != nil { |
| return x.ObjectChecksums |
| } |
| return nil |
| } |
| |
| func (x *ReadObjectResponse) GetContentRange() *ContentRange { |
| if x != nil { |
| return x.ContentRange |
| } |
| return nil |
| } |
| |
| func (x *ReadObjectResponse) GetMetadata() *Object { |
| if x != nil { |
| return x.Metadata |
| } |
| return nil |
| } |
| |
| // Describes an attempt to insert an object, possibly over multiple requests. |
| type WriteObjectSpec struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Required. Destination object, including its name and its metadata. |
| Resource *Object `protobuf:"bytes,1,opt,name=resource,proto3" json:"resource,omitempty"` |
| // Apply a predefined set of access controls to this object. |
| // Valid values are "authenticatedRead", "bucketOwnerFullControl", |
| // "bucketOwnerRead", "private", "projectPrivate", or "publicRead". |
| PredefinedAcl string `protobuf:"bytes,7,opt,name=predefined_acl,json=predefinedAcl,proto3" json:"predefined_acl,omitempty"` |
| // Makes the operation conditional on whether the object's current |
| // generation matches the given value. Setting to 0 makes the operation |
| // succeed only if there are no live versions of the object. |
| IfGenerationMatch *int64 `protobuf:"varint,3,opt,name=if_generation_match,json=ifGenerationMatch,proto3,oneof" json:"if_generation_match,omitempty"` |
| // Makes the operation conditional on whether the object's live |
| // generation does not match the given value. If no live object exists, the |
| // precondition fails. Setting to 0 makes the operation succeed only if |
| // there is a live version of the object. |
| IfGenerationNotMatch *int64 `protobuf:"varint,4,opt,name=if_generation_not_match,json=ifGenerationNotMatch,proto3,oneof" json:"if_generation_not_match,omitempty"` |
| // Makes the operation conditional on whether the object's current |
| // metageneration matches the given value. |
| IfMetagenerationMatch *int64 `protobuf:"varint,5,opt,name=if_metageneration_match,json=ifMetagenerationMatch,proto3,oneof" json:"if_metageneration_match,omitempty"` |
| // Makes the operation conditional on whether the object's current |
| // metageneration does not match the given value. |
| IfMetagenerationNotMatch *int64 `protobuf:"varint,6,opt,name=if_metageneration_not_match,json=ifMetagenerationNotMatch,proto3,oneof" json:"if_metageneration_not_match,omitempty"` |
| // The expected final object size being uploaded. |
| // If this value is set, closing the stream after writing fewer or more than |
| // `object_size` bytes will result in an OUT_OF_RANGE error. |
| // |
| // This situation is considered a client error, and if such an error occurs |
| // you must start the upload over from scratch, this time sending the correct |
| // number of bytes. |
| ObjectSize *int64 `protobuf:"varint,8,opt,name=object_size,json=objectSize,proto3,oneof" json:"object_size,omitempty"` |
| } |
| |
| func (x *WriteObjectSpec) Reset() { |
| *x = WriteObjectSpec{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_storage_v2_storage_proto_msgTypes[20] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *WriteObjectSpec) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*WriteObjectSpec) ProtoMessage() {} |
| |
| func (x *WriteObjectSpec) ProtoReflect() protoreflect.Message { |
| mi := &file_google_storage_v2_storage_proto_msgTypes[20] |
| 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 WriteObjectSpec.ProtoReflect.Descriptor instead. |
| func (*WriteObjectSpec) Descriptor() ([]byte, []int) { |
| return file_google_storage_v2_storage_proto_rawDescGZIP(), []int{20} |
| } |
| |
| func (x *WriteObjectSpec) GetResource() *Object { |
| if x != nil { |
| return x.Resource |
| } |
| return nil |
| } |
| |
| func (x *WriteObjectSpec) GetPredefinedAcl() string { |
| if x != nil { |
| return x.PredefinedAcl |
| } |
| return "" |
| } |
| |
| func (x *WriteObjectSpec) GetIfGenerationMatch() int64 { |
| if x != nil && x.IfGenerationMatch != nil { |
| return *x.IfGenerationMatch |
| } |
| return 0 |
| } |
| |
| func (x *WriteObjectSpec) GetIfGenerationNotMatch() int64 { |
| if x != nil && x.IfGenerationNotMatch != nil { |
| return *x.IfGenerationNotMatch |
| } |
| return 0 |
| } |
| |
| func (x *WriteObjectSpec) GetIfMetagenerationMatch() int64 { |
| if x != nil && x.IfMetagenerationMatch != nil { |
| return *x.IfMetagenerationMatch |
| } |
| return 0 |
| } |
| |
| func (x *WriteObjectSpec) GetIfMetagenerationNotMatch() int64 { |
| if x != nil && x.IfMetagenerationNotMatch != nil { |
| return *x.IfMetagenerationNotMatch |
| } |
| return 0 |
| } |
| |
| func (x *WriteObjectSpec) GetObjectSize() int64 { |
| if x != nil && x.ObjectSize != nil { |
| return *x.ObjectSize |
| } |
| return 0 |
| } |
| |
| // Request message for WriteObject. |
| type WriteObjectRequest struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // The first message of each stream should set one of the following. |
| // |
| // Types that are assignable to FirstMessage: |
| // |
| // *WriteObjectRequest_UploadId |
| // *WriteObjectRequest_WriteObjectSpec |
| FirstMessage isWriteObjectRequest_FirstMessage `protobuf_oneof:"first_message"` |
| // Required. The offset from the beginning of the object at which the data |
| // should be written. |
| // |
| // In the first `WriteObjectRequest` of a `WriteObject()` action, it |
| // indicates the initial offset for the `Write()` call. The value **must** be |
| // equal to the `persisted_size` that a call to `QueryWriteStatus()` would |
| // return (0 if this is the first write to the object). |
| // |
| // On subsequent calls, this value **must** be no larger than the sum of the |
| // first `write_offset` and the sizes of all `data` chunks sent previously on |
| // this stream. |
| // |
| // An incorrect value will cause an error. |
| WriteOffset int64 `protobuf:"varint,3,opt,name=write_offset,json=writeOffset,proto3" json:"write_offset,omitempty"` |
| // A portion of the data for the object. |
| // |
| // Types that are assignable to Data: |
| // |
| // *WriteObjectRequest_ChecksummedData |
| Data isWriteObjectRequest_Data `protobuf_oneof:"data"` |
| // Checksums for the complete object. If the checksums computed by the service |
| // don't match the specified checksums the call will fail. May only be |
| // provided in the first or last request (either with first_message, or |
| // finish_write set). |
| ObjectChecksums *ObjectChecksums `protobuf:"bytes,6,opt,name=object_checksums,json=objectChecksums,proto3" json:"object_checksums,omitempty"` |
| // If `true`, this indicates that the write is complete. Sending any |
| // `WriteObjectRequest`s subsequent to one in which `finish_write` is `true` |
| // will cause an error. |
| // For a non-resumable write (where the upload_id was not set in the first |
| // message), it is an error not to set this field in the final message of the |
| // stream. |
| FinishWrite bool `protobuf:"varint,7,opt,name=finish_write,json=finishWrite,proto3" json:"finish_write,omitempty"` |
| // A set of parameters common to Storage API requests concerning an object. |
| CommonObjectRequestParams *CommonObjectRequestParams `protobuf:"bytes,8,opt,name=common_object_request_params,json=commonObjectRequestParams,proto3" json:"common_object_request_params,omitempty"` |
| } |
| |
| func (x *WriteObjectRequest) Reset() { |
| *x = WriteObjectRequest{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_storage_v2_storage_proto_msgTypes[21] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *WriteObjectRequest) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*WriteObjectRequest) ProtoMessage() {} |
| |
| func (x *WriteObjectRequest) ProtoReflect() protoreflect.Message { |
| mi := &file_google_storage_v2_storage_proto_msgTypes[21] |
| 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 WriteObjectRequest.ProtoReflect.Descriptor instead. |
| func (*WriteObjectRequest) Descriptor() ([]byte, []int) { |
| return file_google_storage_v2_storage_proto_rawDescGZIP(), []int{21} |
| } |
| |
| func (m *WriteObjectRequest) GetFirstMessage() isWriteObjectRequest_FirstMessage { |
| if m != nil { |
| return m.FirstMessage |
| } |
| return nil |
| } |
| |
| func (x *WriteObjectRequest) GetUploadId() string { |
| if x, ok := x.GetFirstMessage().(*WriteObjectRequest_UploadId); ok { |
| return x.UploadId |
| } |
| return "" |
| } |
| |
| func (x *WriteObjectRequest) GetWriteObjectSpec() *WriteObjectSpec { |
| if x, ok := x.GetFirstMessage().(*WriteObjectRequest_WriteObjectSpec); ok { |
| return x.WriteObjectSpec |
| } |
| return nil |
| } |
| |
| func (x *WriteObjectRequest) GetWriteOffset() int64 { |
| if x != nil { |
| return x.WriteOffset |
| } |
| return 0 |
| } |
| |
| func (m *WriteObjectRequest) GetData() isWriteObjectRequest_Data { |
| if m != nil { |
| return m.Data |
| } |
| return nil |
| } |
| |
| func (x *WriteObjectRequest) GetChecksummedData() *ChecksummedData { |
| if x, ok := x.GetData().(*WriteObjectRequest_ChecksummedData); ok { |
| return x.ChecksummedData |
| } |
| return nil |
| } |
| |
| func (x *WriteObjectRequest) GetObjectChecksums() *ObjectChecksums { |
| if x != nil { |
| return x.ObjectChecksums |
| } |
| return nil |
| } |
| |
| func (x *WriteObjectRequest) GetFinishWrite() bool { |
| if x != nil { |
| return x.FinishWrite |
| } |
| return false |
| } |
| |
| func (x *WriteObjectRequest) GetCommonObjectRequestParams() *CommonObjectRequestParams { |
| if x != nil { |
| return x.CommonObjectRequestParams |
| } |
| return nil |
| } |
| |
| type isWriteObjectRequest_FirstMessage interface { |
| isWriteObjectRequest_FirstMessage() |
| } |
| |
| type WriteObjectRequest_UploadId struct { |
| // For resumable uploads. This should be the `upload_id` returned from a |
| // call to `StartResumableWriteResponse`. |
| UploadId string `protobuf:"bytes,1,opt,name=upload_id,json=uploadId,proto3,oneof"` |
| } |
| |
| type WriteObjectRequest_WriteObjectSpec struct { |
| // For non-resumable uploads. Describes the overall upload, including the |
| // destination bucket and object name, preconditions, etc. |
| WriteObjectSpec *WriteObjectSpec `protobuf:"bytes,2,opt,name=write_object_spec,json=writeObjectSpec,proto3,oneof"` |
| } |
| |
| func (*WriteObjectRequest_UploadId) isWriteObjectRequest_FirstMessage() {} |
| |
| func (*WriteObjectRequest_WriteObjectSpec) isWriteObjectRequest_FirstMessage() {} |
| |
| type isWriteObjectRequest_Data interface { |
| isWriteObjectRequest_Data() |
| } |
| |
| type WriteObjectRequest_ChecksummedData struct { |
| // The data to insert. If a crc32c checksum is provided that doesn't match |
| // the checksum computed by the service, the request will fail. |
| ChecksummedData *ChecksummedData `protobuf:"bytes,4,opt,name=checksummed_data,json=checksummedData,proto3,oneof"` |
| } |
| |
| func (*WriteObjectRequest_ChecksummedData) isWriteObjectRequest_Data() {} |
| |
| // Response message for WriteObject. |
| type WriteObjectResponse struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // The response will set one of the following. |
| // |
| // Types that are assignable to WriteStatus: |
| // |
| // *WriteObjectResponse_PersistedSize |
| // *WriteObjectResponse_Resource |
| WriteStatus isWriteObjectResponse_WriteStatus `protobuf_oneof:"write_status"` |
| } |
| |
| func (x *WriteObjectResponse) Reset() { |
| *x = WriteObjectResponse{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_storage_v2_storage_proto_msgTypes[22] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *WriteObjectResponse) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*WriteObjectResponse) ProtoMessage() {} |
| |
| func (x *WriteObjectResponse) ProtoReflect() protoreflect.Message { |
| mi := &file_google_storage_v2_storage_proto_msgTypes[22] |
| 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 WriteObjectResponse.ProtoReflect.Descriptor instead. |
| func (*WriteObjectResponse) Descriptor() ([]byte, []int) { |
| return file_google_storage_v2_storage_proto_rawDescGZIP(), []int{22} |
| } |
| |
| func (m *WriteObjectResponse) GetWriteStatus() isWriteObjectResponse_WriteStatus { |
| if m != nil { |
| return m.WriteStatus |
| } |
| return nil |
| } |
| |
| func (x *WriteObjectResponse) GetPersistedSize() int64 { |
| if x, ok := x.GetWriteStatus().(*WriteObjectResponse_PersistedSize); ok { |
| return x.PersistedSize |
| } |
| return 0 |
| } |
| |
| func (x *WriteObjectResponse) GetResource() *Object { |
| if x, ok := x.GetWriteStatus().(*WriteObjectResponse_Resource); ok { |
| return x.Resource |
| } |
| return nil |
| } |
| |
| type isWriteObjectResponse_WriteStatus interface { |
| isWriteObjectResponse_WriteStatus() |
| } |
| |
| type WriteObjectResponse_PersistedSize struct { |
| // The total number of bytes that have been processed for the given object |
| // from all `WriteObject` calls. Only set if the upload has not finalized. |
| PersistedSize int64 `protobuf:"varint,1,opt,name=persisted_size,json=persistedSize,proto3,oneof"` |
| } |
| |
| type WriteObjectResponse_Resource struct { |
| // A resource containing the metadata for the uploaded object. Only set if |
| // the upload has finalized. |
| Resource *Object `protobuf:"bytes,2,opt,name=resource,proto3,oneof"` |
| } |
| |
| func (*WriteObjectResponse_PersistedSize) isWriteObjectResponse_WriteStatus() {} |
| |
| func (*WriteObjectResponse_Resource) isWriteObjectResponse_WriteStatus() {} |
| |
| // Request message for BidiWriteObject. |
| type BidiWriteObjectRequest struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // The first message of each stream should set one of the following. |
| // |
| // Types that are assignable to FirstMessage: |
| // |
| // *BidiWriteObjectRequest_UploadId |
| // *BidiWriteObjectRequest_WriteObjectSpec |
| FirstMessage isBidiWriteObjectRequest_FirstMessage `protobuf_oneof:"first_message"` |
| // Required. The offset from the beginning of the object at which the data |
| // should be written. |
| // |
| // In the first `WriteObjectRequest` of a `WriteObject()` action, it |
| // indicates the initial offset for the `Write()` call. The value **must** be |
| // equal to the `persisted_size` that a call to `QueryWriteStatus()` would |
| // return (0 if this is the first write to the object). |
| // |
| // On subsequent calls, this value **must** be no larger than the sum of the |
| // first `write_offset` and the sizes of all `data` chunks sent previously on |
| // this stream. |
| // |
| // An invalid value will cause an error. |
| WriteOffset int64 `protobuf:"varint,3,opt,name=write_offset,json=writeOffset,proto3" json:"write_offset,omitempty"` |
| // A portion of the data for the object. |
| // |
| // Types that are assignable to Data: |
| // |
| // *BidiWriteObjectRequest_ChecksummedData |
| Data isBidiWriteObjectRequest_Data `protobuf_oneof:"data"` |
| // Checksums for the complete object. If the checksums computed by the service |
| // don't match the specified checksums the call will fail. May only be |
| // provided in the first or last request (either with first_message, or |
| // finish_write set). |
| ObjectChecksums *ObjectChecksums `protobuf:"bytes,6,opt,name=object_checksums,json=objectChecksums,proto3" json:"object_checksums,omitempty"` |
| // For each BidiWriteObjectRequest where state_lookup is `true` or the client |
| // closes the stream, the service will send a BidiWriteObjectResponse |
| // containing the current persisted size. The persisted size sent in responses |
| // covers all the bytes the server has persisted thus far and can be used to |
| // decide what data is safe for the client to drop. Note that the object's |
| // current size reported by the BidiWriteObjectResponse may lag behind the |
| // number of bytes written by the client. This field is ignored if |
| // `finish_write` is set to true. |
| StateLookup bool `protobuf:"varint,7,opt,name=state_lookup,json=stateLookup,proto3" json:"state_lookup,omitempty"` |
| // Persists data written on the stream, up to and including the current |
| // message, to permanent storage. This option should be used sparingly as it |
| // may reduce performance. Ongoing writes will periodically be persisted on |
| // the server even when `flush` is not set. This field is ignored if |
| // `finish_write` is set to true since there's no need to checkpoint or flush |
| // if this message completes the write. |
| Flush bool `protobuf:"varint,8,opt,name=flush,proto3" json:"flush,omitempty"` |
| // If `true`, this indicates that the write is complete. Sending any |
| // `WriteObjectRequest`s subsequent to one in which `finish_write` is `true` |
| // will cause an error. |
| // For a non-resumable write (where the upload_id was not set in the first |
| // message), it is an error not to set this field in the final message of the |
| // stream. |
| FinishWrite bool `protobuf:"varint,9,opt,name=finish_write,json=finishWrite,proto3" json:"finish_write,omitempty"` |
| // A set of parameters common to Storage API requests concerning an object. |
| CommonObjectRequestParams *CommonObjectRequestParams `protobuf:"bytes,10,opt,name=common_object_request_params,json=commonObjectRequestParams,proto3" json:"common_object_request_params,omitempty"` |
| } |
| |
| func (x *BidiWriteObjectRequest) Reset() { |
| *x = BidiWriteObjectRequest{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_storage_v2_storage_proto_msgTypes[23] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *BidiWriteObjectRequest) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*BidiWriteObjectRequest) ProtoMessage() {} |
| |
| func (x *BidiWriteObjectRequest) ProtoReflect() protoreflect.Message { |
| mi := &file_google_storage_v2_storage_proto_msgTypes[23] |
| 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 BidiWriteObjectRequest.ProtoReflect.Descriptor instead. |
| func (*BidiWriteObjectRequest) Descriptor() ([]byte, []int) { |
| return file_google_storage_v2_storage_proto_rawDescGZIP(), []int{23} |
| } |
| |
| func (m *BidiWriteObjectRequest) GetFirstMessage() isBidiWriteObjectRequest_FirstMessage { |
| if m != nil { |
| return m.FirstMessage |
| } |
| return nil |
| } |
| |
| func (x *BidiWriteObjectRequest) GetUploadId() string { |
| if x, ok := x.GetFirstMessage().(*BidiWriteObjectRequest_UploadId); ok { |
| return x.UploadId |
| } |
| return "" |
| } |
| |
| func (x *BidiWriteObjectRequest) GetWriteObjectSpec() *WriteObjectSpec { |
| if x, ok := x.GetFirstMessage().(*BidiWriteObjectRequest_WriteObjectSpec); ok { |
| return x.WriteObjectSpec |
| } |
| return nil |
| } |
| |
| func (x *BidiWriteObjectRequest) GetWriteOffset() int64 { |
| if x != nil { |
| return x.WriteOffset |
| } |
| return 0 |
| } |
| |
| func (m *BidiWriteObjectRequest) GetData() isBidiWriteObjectRequest_Data { |
| if m != nil { |
| return m.Data |
| } |
| return nil |
| } |
| |
| func (x *BidiWriteObjectRequest) GetChecksummedData() *ChecksummedData { |
| if x, ok := x.GetData().(*BidiWriteObjectRequest_ChecksummedData); ok { |
| return x.ChecksummedData |
| } |
| return nil |
| } |
| |
| func (x *BidiWriteObjectRequest) GetObjectChecksums() *ObjectChecksums { |
| if x != nil { |
| return x.ObjectChecksums |
| } |
| return nil |
| } |
| |
| func (x *BidiWriteObjectRequest) GetStateLookup() bool { |
| if x != nil { |
| return x.StateLookup |
| } |
| return false |
| } |
| |
| func (x *BidiWriteObjectRequest) GetFlush() bool { |
| if x != nil { |
| return x.Flush |
| } |
| return false |
| } |
| |
| func (x *BidiWriteObjectRequest) GetFinishWrite() bool { |
| if x != nil { |
| return x.FinishWrite |
| } |
| return false |
| } |
| |
| func (x *BidiWriteObjectRequest) GetCommonObjectRequestParams() *CommonObjectRequestParams { |
| if x != nil { |
| return x.CommonObjectRequestParams |
| } |
| return nil |
| } |
| |
| type isBidiWriteObjectRequest_FirstMessage interface { |
| isBidiWriteObjectRequest_FirstMessage() |
| } |
| |
| type BidiWriteObjectRequest_UploadId struct { |
| // For resumable uploads. This should be the `upload_id` returned from a |
| // call to `StartResumableWriteResponse`. |
| UploadId string `protobuf:"bytes,1,opt,name=upload_id,json=uploadId,proto3,oneof"` |
| } |
| |
| type BidiWriteObjectRequest_WriteObjectSpec struct { |
| // For non-resumable uploads. Describes the overall upload, including the |
| // destination bucket and object name, preconditions, etc. |
| WriteObjectSpec *WriteObjectSpec `protobuf:"bytes,2,opt,name=write_object_spec,json=writeObjectSpec,proto3,oneof"` |
| } |
| |
| func (*BidiWriteObjectRequest_UploadId) isBidiWriteObjectRequest_FirstMessage() {} |
| |
| func (*BidiWriteObjectRequest_WriteObjectSpec) isBidiWriteObjectRequest_FirstMessage() {} |
| |
| type isBidiWriteObjectRequest_Data interface { |
| isBidiWriteObjectRequest_Data() |
| } |
| |
| type BidiWriteObjectRequest_ChecksummedData struct { |
| // The data to insert. If a crc32c checksum is provided that doesn't match |
| // the checksum computed by the service, the request will fail. |
| ChecksummedData *ChecksummedData `protobuf:"bytes,4,opt,name=checksummed_data,json=checksummedData,proto3,oneof"` |
| } |
| |
| func (*BidiWriteObjectRequest_ChecksummedData) isBidiWriteObjectRequest_Data() {} |
| |
| // Response message for BidiWriteObject. |
| type BidiWriteObjectResponse struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // The response will set one of the following. |
| // |
| // Types that are assignable to WriteStatus: |
| // |
| // *BidiWriteObjectResponse_PersistedSize |
| // *BidiWriteObjectResponse_Resource |
| WriteStatus isBidiWriteObjectResponse_WriteStatus `protobuf_oneof:"write_status"` |
| } |
| |
| func (x *BidiWriteObjectResponse) Reset() { |
| *x = BidiWriteObjectResponse{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_storage_v2_storage_proto_msgTypes[24] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *BidiWriteObjectResponse) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*BidiWriteObjectResponse) ProtoMessage() {} |
| |
| func (x *BidiWriteObjectResponse) ProtoReflect() protoreflect.Message { |
| mi := &file_google_storage_v2_storage_proto_msgTypes[24] |
| 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 BidiWriteObjectResponse.ProtoReflect.Descriptor instead. |
| func (*BidiWriteObjectResponse) Descriptor() ([]byte, []int) { |
| return file_google_storage_v2_storage_proto_rawDescGZIP(), []int{24} |
| } |
| |
| func (m *BidiWriteObjectResponse) GetWriteStatus() isBidiWriteObjectResponse_WriteStatus { |
| if m != nil { |
| return m.WriteStatus |
| } |
| return nil |
| } |
| |
| func (x *BidiWriteObjectResponse) GetPersistedSize() int64 { |
| if x, ok := x.GetWriteStatus().(*BidiWriteObjectResponse_PersistedSize); ok { |
| return x.PersistedSize |
| } |
| return 0 |
| } |
| |
| func (x *BidiWriteObjectResponse) GetResource() *Object { |
| if x, ok := x.GetWriteStatus().(*BidiWriteObjectResponse_Resource); ok { |
| return x.Resource |
| } |
| return nil |
| } |
| |
| type isBidiWriteObjectResponse_WriteStatus interface { |
| isBidiWriteObjectResponse_WriteStatus() |
| } |
| |
| type BidiWriteObjectResponse_PersistedSize struct { |
| // The total number of bytes that have been processed for the given object |
| // from all `WriteObject` calls. Only set if the upload has not finalized. |
| PersistedSize int64 `protobuf:"varint,1,opt,name=persisted_size,json=persistedSize,proto3,oneof"` |
| } |
| |
| type BidiWriteObjectResponse_Resource struct { |
| // A resource containing the metadata for the uploaded object. Only set if |
| // the upload has finalized. |
| Resource *Object `protobuf:"bytes,2,opt,name=resource,proto3,oneof"` |
| } |
| |
| func (*BidiWriteObjectResponse_PersistedSize) isBidiWriteObjectResponse_WriteStatus() {} |
| |
| func (*BidiWriteObjectResponse_Resource) isBidiWriteObjectResponse_WriteStatus() {} |
| |
| // Request message for ListObjects. |
| type ListObjectsRequest struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Required. Name of the bucket in which to look for objects. |
| Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` |
| // Maximum number of `items` plus `prefixes` to return |
| // in a single page of responses. As duplicate `prefixes` are |
| // omitted, fewer total results may be returned than requested. The service |
| // will use this parameter or 1,000 items, whichever is smaller. |
| PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` |
| // A previously-returned page token representing part of the larger set of |
| // results to view. |
| PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` |
| // If set, returns results in a directory-like mode. `items` will contain |
| // only objects whose names, aside from the `prefix`, do not |
| // contain `delimiter`. Objects whose names, aside from the |
| // `prefix`, contain `delimiter` will have their name, |
| // truncated after the `delimiter`, returned in |
| // `prefixes`. Duplicate `prefixes` are omitted. |
| Delimiter string `protobuf:"bytes,4,opt,name=delimiter,proto3" json:"delimiter,omitempty"` |
| // If true, objects that end in exactly one instance of `delimiter` |
| // will have their metadata included in `items` in addition to |
| // `prefixes`. |
| IncludeTrailingDelimiter bool `protobuf:"varint,5,opt,name=include_trailing_delimiter,json=includeTrailingDelimiter,proto3" json:"include_trailing_delimiter,omitempty"` |
| // Filter results to objects whose names begin with this prefix. |
| Prefix string `protobuf:"bytes,6,opt,name=prefix,proto3" json:"prefix,omitempty"` |
| // If `true`, lists all versions of an object as distinct results. |
| // For more information, see |
| // [Object |
| // Versioning](https://cloud.google.com/storage/docs/object-versioning). |
| Versions bool `protobuf:"varint,7,opt,name=versions,proto3" json:"versions,omitempty"` |
| // Mask specifying which fields to read from each result. |
| // If no mask is specified, will default to all fields except items.acl and |
| // items.owner. |
| // * may be used to mean "all fields". |
| ReadMask *fieldmaskpb.FieldMask `protobuf:"bytes,8,opt,name=read_mask,json=readMask,proto3,oneof" json:"read_mask,omitempty"` |
| // Optional. Filter results to objects whose names are lexicographically equal |
| // to or after lexicographic_start. If lexicographic_end is also set, the |
| // objects listed have names between lexicographic_start (inclusive) and |
| // lexicographic_end (exclusive). |
| LexicographicStart string `protobuf:"bytes,10,opt,name=lexicographic_start,json=lexicographicStart,proto3" json:"lexicographic_start,omitempty"` |
| // Optional. Filter results to objects whose names are lexicographically |
| // before lexicographic_end. If lexicographic_start is also set, the objects |
| // listed have names between lexicographic_start (inclusive) and |
| // lexicographic_end (exclusive). |
| LexicographicEnd string `protobuf:"bytes,11,opt,name=lexicographic_end,json=lexicographicEnd,proto3" json:"lexicographic_end,omitempty"` |
| // Optional. If true, only list all soft-deleted versions of the object. |
| // Soft delete policy is required to set this option. |
| SoftDeleted bool `protobuf:"varint,12,opt,name=soft_deleted,json=softDeleted,proto3" json:"soft_deleted,omitempty"` |
| // Optional. If true, will also include folders and managed folders (besides |
| // objects) in the returned `prefixes`. Requires `delimiter` to be set to '/'. |
| IncludeFoldersAsPrefixes bool `protobuf:"varint,13,opt,name=include_folders_as_prefixes,json=includeFoldersAsPrefixes,proto3" json:"include_folders_as_prefixes,omitempty"` |
| // Optional. Filter results to objects and prefixes that match this glob |
| // pattern. See [List Objects Using |
| // Glob](https://cloud.google.com/storage/docs/json_api/v1/objects/list#list-objects-and-prefixes-using-glob) |
| // for the full syntax. |
| MatchGlob string `protobuf:"bytes,14,opt,name=match_glob,json=matchGlob,proto3" json:"match_glob,omitempty"` |
| } |
| |
| func (x *ListObjectsRequest) Reset() { |
| *x = ListObjectsRequest{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_storage_v2_storage_proto_msgTypes[25] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *ListObjectsRequest) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*ListObjectsRequest) ProtoMessage() {} |
| |
| func (x *ListObjectsRequest) ProtoReflect() protoreflect.Message { |
| mi := &file_google_storage_v2_storage_proto_msgTypes[25] |
| 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 ListObjectsRequest.ProtoReflect.Descriptor instead. |
| func (*ListObjectsRequest) Descriptor() ([]byte, []int) { |
| return file_google_storage_v2_storage_proto_rawDescGZIP(), []int{25} |
| } |
| |
| func (x *ListObjectsRequest) GetParent() string { |
| if x != nil { |
| return x.Parent |
| } |
| return "" |
| } |
| |
| func (x *ListObjectsRequest) GetPageSize() int32 { |
| if x != nil { |
| return x.PageSize |
| } |
| return 0 |
| } |
| |
| func (x *ListObjectsRequest) GetPageToken() string { |
| if x != nil { |
| return x.PageToken |
| } |
| return "" |
| } |
| |
| func (x *ListObjectsRequest) GetDelimiter() string { |
| if x != nil { |
| return x.Delimiter |
| } |
| return "" |
| } |
| |
| func (x *ListObjectsRequest) GetIncludeTrailingDelimiter() bool { |
| if x != nil { |
| return x.IncludeTrailingDelimiter |
| } |
| return false |
| } |
| |
| func (x *ListObjectsRequest) GetPrefix() string { |
| if x != nil { |
| return x.Prefix |
| } |
| return "" |
| } |
| |
| func (x *ListObjectsRequest) GetVersions() bool { |
| if x != nil { |
| return x.Versions |
| } |
| return false |
| } |
| |
| func (x *ListObjectsRequest) GetReadMask() *fieldmaskpb.FieldMask { |
| if x != nil { |
| return x.ReadMask |
| } |
| return nil |
| } |
| |
| func (x *ListObjectsRequest) GetLexicographicStart() string { |
| if x != nil { |
| return x.LexicographicStart |
| } |
| return "" |
| } |
| |
| func (x *ListObjectsRequest) GetLexicographicEnd() string { |
| if x != nil { |
| return x.LexicographicEnd |
| } |
| return "" |
| } |
| |
| func (x *ListObjectsRequest) GetSoftDeleted() bool { |
| if x != nil { |
| return x.SoftDeleted |
| } |
| return false |
| } |
| |
| func (x *ListObjectsRequest) GetIncludeFoldersAsPrefixes() bool { |
| if x != nil { |
| return x.IncludeFoldersAsPrefixes |
| } |
| return false |
| } |
| |
| func (x *ListObjectsRequest) GetMatchGlob() string { |
| if x != nil { |
| return x.MatchGlob |
| } |
| return "" |
| } |
| |
| // Request object for `QueryWriteStatus`. |
| type QueryWriteStatusRequest struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Required. The name of the resume token for the object whose write status is |
| // being requested. |
| UploadId string `protobuf:"bytes,1,opt,name=upload_id,json=uploadId,proto3" json:"upload_id,omitempty"` |
| // A set of parameters common to Storage API requests concerning an object. |
| CommonObjectRequestParams *CommonObjectRequestParams `protobuf:"bytes,2,opt,name=common_object_request_params,json=commonObjectRequestParams,proto3" json:"common_object_request_params,omitempty"` |
| } |
| |
| func (x *QueryWriteStatusRequest) Reset() { |
| *x = QueryWriteStatusRequest{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_storage_v2_storage_proto_msgTypes[26] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *QueryWriteStatusRequest) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*QueryWriteStatusRequest) ProtoMessage() {} |
| |
| func (x *QueryWriteStatusRequest) ProtoReflect() protoreflect.Message { |
| mi := &file_google_storage_v2_storage_proto_msgTypes[26] |
| 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 QueryWriteStatusRequest.ProtoReflect.Descriptor instead. |
| func (*QueryWriteStatusRequest) Descriptor() ([]byte, []int) { |
| return file_google_storage_v2_storage_proto_rawDescGZIP(), []int{26} |
| } |
| |
| func (x *QueryWriteStatusRequest) GetUploadId() string { |
| if x != nil { |
| return x.UploadId |
| } |
| return "" |
| } |
| |
| func (x *QueryWriteStatusRequest) GetCommonObjectRequestParams() *CommonObjectRequestParams { |
| if x != nil { |
| return x.CommonObjectRequestParams |
| } |
| return nil |
| } |
| |
| // Response object for `QueryWriteStatus`. |
| type QueryWriteStatusResponse struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // The response will set one of the following. |
| // |
| // Types that are assignable to WriteStatus: |
| // |
| // *QueryWriteStatusResponse_PersistedSize |
| // *QueryWriteStatusResponse_Resource |
| WriteStatus isQueryWriteStatusResponse_WriteStatus `protobuf_oneof:"write_status"` |
| } |
| |
| func (x *QueryWriteStatusResponse) Reset() { |
| *x = QueryWriteStatusResponse{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_storage_v2_storage_proto_msgTypes[27] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *QueryWriteStatusResponse) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*QueryWriteStatusResponse) ProtoMessage() {} |
| |
| func (x *QueryWriteStatusResponse) ProtoReflect() protoreflect.Message { |
| mi := &file_google_storage_v2_storage_proto_msgTypes[27] |
| 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 QueryWriteStatusResponse.ProtoReflect.Descriptor instead. |
| func (*QueryWriteStatusResponse) Descriptor() ([]byte, []int) { |
| return file_google_storage_v2_storage_proto_rawDescGZIP(), []int{27} |
| } |
| |
| func (m *QueryWriteStatusResponse) GetWriteStatus() isQueryWriteStatusResponse_WriteStatus { |
| if m != nil { |
| return m.WriteStatus |
| } |
| return nil |
| } |
| |
| func (x *QueryWriteStatusResponse) GetPersistedSize() int64 { |
| if x, ok := x.GetWriteStatus().(*QueryWriteStatusResponse_PersistedSize); ok { |
| return x.PersistedSize |
| } |
| return 0 |
| } |
| |
| func (x *QueryWriteStatusResponse) GetResource() *Object { |
| if x, ok := x.GetWriteStatus().(*QueryWriteStatusResponse_Resource); ok { |
| return x.Resource |
| } |
| return nil |
| } |
| |
| type isQueryWriteStatusResponse_WriteStatus interface { |
| isQueryWriteStatusResponse_WriteStatus() |
| } |
| |
| type QueryWriteStatusResponse_PersistedSize struct { |
| // The total number of bytes that have been processed for the given object |
| // from all `WriteObject` calls. This is the correct value for the |
| // 'write_offset' field to use when resuming the `WriteObject` operation. |
| // Only set if the upload has not finalized. |
| PersistedSize int64 `protobuf:"varint,1,opt,name=persisted_size,json=persistedSize,proto3,oneof"` |
| } |
| |
| type QueryWriteStatusResponse_Resource struct { |
| // A resource containing the metadata for the uploaded object. Only set if |
| // the upload has finalized. |
| Resource *Object `protobuf:"bytes,2,opt,name=resource,proto3,oneof"` |
| } |
| |
| func (*QueryWriteStatusResponse_PersistedSize) isQueryWriteStatusResponse_WriteStatus() {} |
| |
| func (*QueryWriteStatusResponse_Resource) isQueryWriteStatusResponse_WriteStatus() {} |
| |
| // Request message for RewriteObject. |
| // If the source object is encrypted using a Customer-Supplied Encryption Key |
| // the key information must be provided in the copy_source_encryption_algorithm, |
| // copy_source_encryption_key_bytes, and copy_source_encryption_key_sha256_bytes |
| // fields. If the destination object should be encrypted the keying information |
| // should be provided in the encryption_algorithm, encryption_key_bytes, and |
| // encryption_key_sha256_bytes fields of the |
| // common_object_request_params.customer_encryption field. |
| type RewriteObjectRequest struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Required. Immutable. The name of the destination object. |
| // See the |
| // [Naming Guidelines](https://cloud.google.com/storage/docs/objects#naming). |
| // Example: `test.txt` |
| // The `name` field by itself does not uniquely identify a Cloud Storage |
| // object. A Cloud Storage object is uniquely identified by the tuple of |
| // (bucket, object, generation). |
| DestinationName string `protobuf:"bytes,24,opt,name=destination_name,json=destinationName,proto3" json:"destination_name,omitempty"` |
| // Required. Immutable. The name of the bucket containing the destination |
| // object. |
| DestinationBucket string `protobuf:"bytes,25,opt,name=destination_bucket,json=destinationBucket,proto3" json:"destination_bucket,omitempty"` |
| // The name of the Cloud KMS key that will be used to encrypt the destination |
| // object. The Cloud KMS key must be located in same location as the object. |
| // If the parameter is not specified, the request uses the destination |
| // bucket's default encryption key, if any, or else the Google-managed |
| // encryption key. |
| DestinationKmsKey string `protobuf:"bytes,27,opt,name=destination_kms_key,json=destinationKmsKey,proto3" json:"destination_kms_key,omitempty"` |
| // Properties of the destination, post-rewrite object. |
| // The `name`, `bucket` and `kms_key` fields must not be populated (these |
| // values are specified in the `destination_name`, `destination_bucket`, and |
| // `destination_kms_key` fields). |
| // If `destination` is present it will be used to construct the destination |
| // object's metadata; otherwise the destination object's metadata will be |
| // copied from the source object. |
| Destination *Object `protobuf:"bytes,1,opt,name=destination,proto3" json:"destination,omitempty"` |
| // Required. Name of the bucket in which to find the source object. |
| SourceBucket string `protobuf:"bytes,2,opt,name=source_bucket,json=sourceBucket,proto3" json:"source_bucket,omitempty"` |
| // Required. Name of the source object. |
| SourceObject string `protobuf:"bytes,3,opt,name=source_object,json=sourceObject,proto3" json:"source_object,omitempty"` |
| // If present, selects a specific revision of the source object (as opposed to |
| // the latest version, the default). |
| SourceGeneration int64 `protobuf:"varint,4,opt,name=source_generation,json=sourceGeneration,proto3" json:"source_generation,omitempty"` |
| // Include this field (from the previous rewrite response) on each rewrite |
| // request after the first one, until the rewrite response 'done' flag is |
| // true. Calls that provide a rewriteToken can omit all other request fields, |
| // but if included those fields must match the values provided in the first |
| // rewrite request. |
| RewriteToken string `protobuf:"bytes,5,opt,name=rewrite_token,json=rewriteToken,proto3" json:"rewrite_token,omitempty"` |
| // Apply a predefined set of access controls to the destination object. |
| // Valid values are "authenticatedRead", "bucketOwnerFullControl", |
| // "bucketOwnerRead", "private", "projectPrivate", or "publicRead". |
| DestinationPredefinedAcl string `protobuf:"bytes,28,opt,name=destination_predefined_acl,json=destinationPredefinedAcl,proto3" json:"destination_predefined_acl,omitempty"` |
| // Makes the operation conditional on whether the object's current generation |
| // matches the given value. Setting to 0 makes the operation succeed only if |
| // there are no live versions of the object. |
| IfGenerationMatch *int64 `protobuf:"varint,7,opt,name=if_generation_match,json=ifGenerationMatch,proto3,oneof" json:"if_generation_match,omitempty"` |
| // Makes the operation conditional on whether the object's live generation |
| // does not match the given value. If no live object exists, the precondition |
| // fails. Setting to 0 makes the operation succeed only if there is a live |
| // version of the object. |
| IfGenerationNotMatch *int64 `protobuf:"varint,8,opt,name=if_generation_not_match,json=ifGenerationNotMatch,proto3,oneof" json:"if_generation_not_match,omitempty"` |
| // Makes the operation conditional on whether the destination object's current |
| // metageneration matches the given value. |
| IfMetagenerationMatch *int64 `protobuf:"varint,9,opt,name=if_metageneration_match,json=ifMetagenerationMatch,proto3,oneof" json:"if_metageneration_match,omitempty"` |
| // Makes the operation conditional on whether the destination object's current |
| // metageneration does not match the given value. |
| IfMetagenerationNotMatch *int64 `protobuf:"varint,10,opt,name=if_metageneration_not_match,json=ifMetagenerationNotMatch,proto3,oneof" json:"if_metageneration_not_match,omitempty"` |
| // Makes the operation conditional on whether the source object's live |
| // generation matches the given value. |
| IfSourceGenerationMatch *int64 `protobuf:"varint,11,opt,name=if_source_generation_match,json=ifSourceGenerationMatch,proto3,oneof" json:"if_source_generation_match,omitempty"` |
| // Makes the operation conditional on whether the source object's live |
| // generation does not match the given value. |
| IfSourceGenerationNotMatch *int64 `protobuf:"varint,12,opt,name=if_source_generation_not_match,json=ifSourceGenerationNotMatch,proto3,oneof" json:"if_source_generation_not_match,omitempty"` |
| // Makes the operation conditional on whether the source object's current |
| // metageneration matches the given value. |
| IfSourceMetagenerationMatch *int64 `protobuf:"varint,13,opt,name=if_source_metageneration_match,json=ifSourceMetagenerationMatch,proto3,oneof" json:"if_source_metageneration_match,omitempty"` |
| // Makes the operation conditional on whether the source object's current |
| // metageneration does not match the given value. |
| IfSourceMetagenerationNotMatch *int64 `protobuf:"varint,14,opt,name=if_source_metageneration_not_match,json=ifSourceMetagenerationNotMatch,proto3,oneof" json:"if_source_metageneration_not_match,omitempty"` |
| // The maximum number of bytes that will be rewritten per rewrite request. |
| // Most callers |
| // shouldn't need to specify this parameter - it is primarily in place to |
| // support testing. If specified the value must be an integral multiple of |
| // 1 MiB (1048576). Also, this only applies to requests where the source and |
| // destination span locations and/or storage classes. Finally, this value must |
| // not change across rewrite calls else you'll get an error that the |
| // `rewriteToken` is invalid. |
| MaxBytesRewrittenPerCall int64 `protobuf:"varint,15,opt,name=max_bytes_rewritten_per_call,json=maxBytesRewrittenPerCall,proto3" json:"max_bytes_rewritten_per_call,omitempty"` |
| // The algorithm used to encrypt the source object, if any. Used if the source |
| // object was encrypted with a Customer-Supplied Encryption Key. |
| CopySourceEncryptionAlgorithm string `protobuf:"bytes,16,opt,name=copy_source_encryption_algorithm,json=copySourceEncryptionAlgorithm,proto3" json:"copy_source_encryption_algorithm,omitempty"` |
| // The raw bytes (not base64-encoded) AES-256 encryption key used to encrypt |
| // the source object, if it was encrypted with a Customer-Supplied Encryption |
| // Key. |
| CopySourceEncryptionKeyBytes []byte `protobuf:"bytes,21,opt,name=copy_source_encryption_key_bytes,json=copySourceEncryptionKeyBytes,proto3" json:"copy_source_encryption_key_bytes,omitempty"` |
| // The raw bytes (not base64-encoded) SHA256 hash of the encryption key used |
| // to encrypt the source object, if it was encrypted with a Customer-Supplied |
| // Encryption Key. |
| CopySourceEncryptionKeySha256Bytes []byte `protobuf:"bytes,22,opt,name=copy_source_encryption_key_sha256_bytes,json=copySourceEncryptionKeySha256Bytes,proto3" json:"copy_source_encryption_key_sha256_bytes,omitempty"` |
| // A set of parameters common to Storage API requests concerning an object. |
| CommonObjectRequestParams *CommonObjectRequestParams `protobuf:"bytes,19,opt,name=common_object_request_params,json=commonObjectRequestParams,proto3" json:"common_object_request_params,omitempty"` |
| // The checksums of the complete object. This will be used to validate the |
| // destination object after rewriting. |
| ObjectChecksums *ObjectChecksums `protobuf:"bytes,29,opt,name=object_checksums,json=objectChecksums,proto3" json:"object_checksums,omitempty"` |
| } |
| |
| func (x *RewriteObjectRequest) Reset() { |
| *x = RewriteObjectRequest{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_storage_v2_storage_proto_msgTypes[28] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *RewriteObjectRequest) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*RewriteObjectRequest) ProtoMessage() {} |
| |
| func (x *RewriteObjectRequest) ProtoReflect() protoreflect.Message { |
| mi := &file_google_storage_v2_storage_proto_msgTypes[28] |
| 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 RewriteObjectRequest.ProtoReflect.Descriptor instead. |
| func (*RewriteObjectRequest) Descriptor() ([]byte, []int) { |
| return file_google_storage_v2_storage_proto_rawDescGZIP(), []int{28} |
| } |
| |
| func (x *RewriteObjectRequest) GetDestinationName() string { |
| if x != nil { |
| return x.DestinationName |
| } |
| return "" |
| } |
| |
| func (x *RewriteObjectRequest) GetDestinationBucket() string { |
| if x != nil { |
| return x.DestinationBucket |
| } |
| return "" |
| } |
| |
| func (x *RewriteObjectRequest) GetDestinationKmsKey() string { |
| if x != nil { |
| return x.DestinationKmsKey |
| } |
| return "" |
| } |
| |
| func (x *RewriteObjectRequest) GetDestination() *Object { |
| if x != nil { |
| return x.Destination |
| } |
| return nil |
| } |
| |
| func (x *RewriteObjectRequest) GetSourceBucket() string { |
| if x != nil { |
| return x.SourceBucket |
| } |
| return "" |
| } |
| |
| func (x *RewriteObjectRequest) GetSourceObject() string { |
| if x != nil { |
| return x.SourceObject |
| } |
| return "" |
| } |
| |
| func (x *RewriteObjectRequest) GetSourceGeneration() int64 { |
| if x != nil { |
| return x.SourceGeneration |
| } |
| return 0 |
| } |
| |
| func (x *RewriteObjectRequest) GetRewriteToken() string { |
| if x != nil { |
| return x.RewriteToken |
| } |
| return "" |
| } |
| |
| func (x *RewriteObjectRequest) GetDestinationPredefinedAcl() string { |
| if x != nil { |
| return x.DestinationPredefinedAcl |
| } |
| return "" |
| } |
| |
| func (x *RewriteObjectRequest) GetIfGenerationMatch() int64 { |
| if x != nil && x.IfGenerationMatch != nil { |
| return *x.IfGenerationMatch |
| } |
| return 0 |
| } |
| |
| func (x *RewriteObjectRequest) GetIfGenerationNotMatch() int64 { |
| if x != nil && x.IfGenerationNotMatch != nil { |
| return *x.IfGenerationNotMatch |
| } |
| return 0 |
| } |
| |
| func (x *RewriteObjectRequest) GetIfMetagenerationMatch() int64 { |
| if x != nil && x.IfMetagenerationMatch != nil { |
| return *x.IfMetagenerationMatch |
| } |
| return 0 |
| } |
| |
| func (x *RewriteObjectRequest) GetIfMetagenerationNotMatch() int64 { |
| if x != nil && x.IfMetagenerationNotMatch != nil { |
| return *x.IfMetagenerationNotMatch |
| } |
| return 0 |
| } |
| |
| func (x *RewriteObjectRequest) GetIfSourceGenerationMatch() int64 { |
| if x != nil && x.IfSourceGenerationMatch != nil { |
| return *x.IfSourceGenerationMatch |
| } |
| return 0 |
| } |
| |
| func (x *RewriteObjectRequest) GetIfSourceGenerationNotMatch() int64 { |
| if x != nil && x.IfSourceGenerationNotMatch != nil { |
| return *x.IfSourceGenerationNotMatch |
| } |
| return 0 |
| } |
| |
| func (x *RewriteObjectRequest) GetIfSourceMetagenerationMatch() int64 { |
| if x != nil && x.IfSourceMetagenerationMatch != nil { |
| return *x.IfSourceMetagenerationMatch |
| } |
| return 0 |
| } |
| |
| func (x *RewriteObjectRequest) GetIfSourceMetagenerationNotMatch() int64 { |
| if x != nil && x.IfSourceMetagenerationNotMatch != nil { |
| return *x.IfSourceMetagenerationNotMatch |
| } |
| return 0 |
| } |
| |
| func (x *RewriteObjectRequest) GetMaxBytesRewrittenPerCall() int64 { |
| if x != nil { |
| return x.MaxBytesRewrittenPerCall |
| } |
| return 0 |
| } |
| |
| func (x *RewriteObjectRequest) GetCopySourceEncryptionAlgorithm() string { |
| if x != nil { |
| return x.CopySourceEncryptionAlgorithm |
| } |
| return "" |
| } |
| |
| func (x *RewriteObjectRequest) GetCopySourceEncryptionKeyBytes() []byte { |
| if x != nil { |
| return x.CopySourceEncryptionKeyBytes |
| } |
| return nil |
| } |
| |
| func (x *RewriteObjectRequest) GetCopySourceEncryptionKeySha256Bytes() []byte { |
| if x != nil { |
| return x.CopySourceEncryptionKeySha256Bytes |
| } |
| return nil |
| } |
| |
| func (x *RewriteObjectRequest) GetCommonObjectRequestParams() *CommonObjectRequestParams { |
| if x != nil { |
| return x.CommonObjectRequestParams |
| } |
| return nil |
| } |
| |
| func (x *RewriteObjectRequest) GetObjectChecksums() *ObjectChecksums { |
| if x != nil { |
| return x.ObjectChecksums |
| } |
| return nil |
| } |
| |
| // A rewrite response. |
| type RewriteResponse struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // The total bytes written so far, which can be used to provide a waiting user |
| // with a progress indicator. This property is always present in the response. |
| TotalBytesRewritten int64 `protobuf:"varint,1,opt,name=total_bytes_rewritten,json=totalBytesRewritten,proto3" json:"total_bytes_rewritten,omitempty"` |
| // The total size of the object being copied in bytes. This property is always |
| // present in the response. |
| ObjectSize int64 `protobuf:"varint,2,opt,name=object_size,json=objectSize,proto3" json:"object_size,omitempty"` |
| // `true` if the copy is finished; otherwise, `false` if |
| // the copy is in progress. This property is always present in the response. |
| Done bool `protobuf:"varint,3,opt,name=done,proto3" json:"done,omitempty"` |
| // A token to use in subsequent requests to continue copying data. This token |
| // is present in the response only when there is more data to copy. |
| RewriteToken string `protobuf:"bytes,4,opt,name=rewrite_token,json=rewriteToken,proto3" json:"rewrite_token,omitempty"` |
| // A resource containing the metadata for the copied-to object. This property |
| // is present in the response only when copying completes. |
| Resource *Object `protobuf:"bytes,5,opt,name=resource,proto3" json:"resource,omitempty"` |
| } |
| |
| func (x *RewriteResponse) Reset() { |
| *x = RewriteResponse{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_storage_v2_storage_proto_msgTypes[29] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *RewriteResponse) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*RewriteResponse) ProtoMessage() {} |
| |
| func (x *RewriteResponse) ProtoReflect() protoreflect.Message { |
| mi := &file_google_storage_v2_storage_proto_msgTypes[29] |
| 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 RewriteResponse.ProtoReflect.Descriptor instead. |
| func (*RewriteResponse) Descriptor() ([]byte, []int) { |
| return file_google_storage_v2_storage_proto_rawDescGZIP(), []int{29} |
| } |
| |
| func (x *RewriteResponse) GetTotalBytesRewritten() int64 { |
| if x != nil { |
| return x.TotalBytesRewritten |
| } |
| return 0 |
| } |
| |
| func (x *RewriteResponse) GetObjectSize() int64 { |
| if x != nil { |
| return x.ObjectSize |
| } |
| return 0 |
| } |
| |
| func (x *RewriteResponse) GetDone() bool { |
| if x != nil { |
| return x.Done |
| } |
| return false |
| } |
| |
| func (x *RewriteResponse) GetRewriteToken() string { |
| if x != nil { |
| return x.RewriteToken |
| } |
| return "" |
| } |
| |
| func (x *RewriteResponse) GetResource() *Object { |
| if x != nil { |
| return x.Resource |
| } |
| return nil |
| } |
| |
| // Request message StartResumableWrite. |
| type StartResumableWriteRequest struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Required. The destination bucket, object, and metadata, as well as any |
| // preconditions. |
| WriteObjectSpec *WriteObjectSpec `protobuf:"bytes,1,opt,name=write_object_spec,json=writeObjectSpec,proto3" json:"write_object_spec,omitempty"` |
| // A set of parameters common to Storage API requests concerning an object. |
| CommonObjectRequestParams *CommonObjectRequestParams `protobuf:"bytes,3,opt,name=common_object_request_params,json=commonObjectRequestParams,proto3" json:"common_object_request_params,omitempty"` |
| // The checksums of the complete object. This will be used to validate the |
| // uploaded object. For each upload, object_checksums can be provided with |
| // either StartResumableWriteRequest or the WriteObjectRequest with |
| // finish_write set to `true`. |
| ObjectChecksums *ObjectChecksums `protobuf:"bytes,5,opt,name=object_checksums,json=objectChecksums,proto3" json:"object_checksums,omitempty"` |
| } |
| |
| func (x *StartResumableWriteRequest) Reset() { |
| *x = StartResumableWriteRequest{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_storage_v2_storage_proto_msgTypes[30] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *StartResumableWriteRequest) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*StartResumableWriteRequest) ProtoMessage() {} |
| |
| func (x *StartResumableWriteRequest) ProtoReflect() protoreflect.Message { |
| mi := &file_google_storage_v2_storage_proto_msgTypes[30] |
| 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 StartResumableWriteRequest.ProtoReflect.Descriptor instead. |
| func (*StartResumableWriteRequest) Descriptor() ([]byte, []int) { |
| return file_google_storage_v2_storage_proto_rawDescGZIP(), []int{30} |
| } |
| |
| func (x *StartResumableWriteRequest) GetWriteObjectSpec() *WriteObjectSpec { |
| if x != nil { |
| return x.WriteObjectSpec |
| } |
| return nil |
| } |
| |
| func (x *StartResumableWriteRequest) GetCommonObjectRequestParams() *CommonObjectRequestParams { |
| if x != nil { |
| return x.CommonObjectRequestParams |
| } |
| return nil |
| } |
| |
| func (x *StartResumableWriteRequest) GetObjectChecksums() *ObjectChecksums { |
| if x != nil { |
| return x.ObjectChecksums |
| } |
| return nil |
| } |
| |
| // Response object for `StartResumableWrite`. |
| type StartResumableWriteResponse struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // The upload_id of the newly started resumable write operation. This |
| // value should be copied into the `WriteObjectRequest.upload_id` field. |
| UploadId string `protobuf:"bytes,1,opt,name=upload_id,json=uploadId,proto3" json:"upload_id,omitempty"` |
| } |
| |
| func (x *StartResumableWriteResponse) Reset() { |
| *x = StartResumableWriteResponse{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_storage_v2_storage_proto_msgTypes[31] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *StartResumableWriteResponse) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*StartResumableWriteResponse) ProtoMessage() {} |
| |
| func (x *StartResumableWriteResponse) ProtoReflect() protoreflect.Message { |
| mi := &file_google_storage_v2_storage_proto_msgTypes[31] |
| 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 StartResumableWriteResponse.ProtoReflect.Descriptor instead. |
| func (*StartResumableWriteResponse) Descriptor() ([]byte, []int) { |
| return file_google_storage_v2_storage_proto_rawDescGZIP(), []int{31} |
| } |
| |
| func (x *StartResumableWriteResponse) GetUploadId() string { |
| if x != nil { |
| return x.UploadId |
| } |
| return "" |
| } |
| |
| // Request message for UpdateObject. |
| type UpdateObjectRequest struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Required. The object to update. |
| // The object's bucket and name fields are used to identify the object to |
| // update. If present, the object's generation field selects a specific |
| // revision of this object whose metadata should be updated. Otherwise, |
| // assumes the live version of the object. |
| Object *Object `protobuf:"bytes,1,opt,name=object,proto3" json:"object,omitempty"` |
| // Makes the operation conditional on whether the object's current generation |
| // matches the given value. Setting to 0 makes the operation succeed only if |
| // there are no live versions of the object. |
| IfGenerationMatch *int64 `protobuf:"varint,2,opt,name=if_generation_match,json=ifGenerationMatch,proto3,oneof" json:"if_generation_match,omitempty"` |
| // Makes the operation conditional on whether the object's live generation |
| // does not match the given value. If no live object exists, the precondition |
| // fails. Setting to 0 makes the operation succeed only if there is a live |
| // version of the object. |
| IfGenerationNotMatch *int64 `protobuf:"varint,3,opt,name=if_generation_not_match,json=ifGenerationNotMatch,proto3,oneof" json:"if_generation_not_match,omitempty"` |
| // Makes the operation conditional on whether the object's current |
| // metageneration matches the given value. |
| IfMetagenerationMatch *int64 `protobuf:"varint,4,opt,name=if_metageneration_match,json=ifMetagenerationMatch,proto3,oneof" json:"if_metageneration_match,omitempty"` |
| // Makes the operation conditional on whether the object's current |
| // metageneration does not match the given value. |
| IfMetagenerationNotMatch *int64 `protobuf:"varint,5,opt,name=if_metageneration_not_match,json=ifMetagenerationNotMatch,proto3,oneof" json:"if_metageneration_not_match,omitempty"` |
| // Apply a predefined set of access controls to this object. |
| // Valid values are "authenticatedRead", "bucketOwnerFullControl", |
| // "bucketOwnerRead", "private", "projectPrivate", or "publicRead". |
| PredefinedAcl string `protobuf:"bytes,10,opt,name=predefined_acl,json=predefinedAcl,proto3" json:"predefined_acl,omitempty"` |
| // Required. List of fields to be updated. |
| // |
| // To specify ALL fields, equivalent to the JSON API's "update" function, |
| // specify a single field with the value `*`. Note: not recommended. If a new |
| // field is introduced at a later time, an older client updating with the `*` |
| // may accidentally reset the new field's value. |
| // |
| // Not specifying any fields is an error. |
| UpdateMask *fieldmaskpb.FieldMask `protobuf:"bytes,7,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"` |
| // A set of parameters common to Storage API requests concerning an object. |
| CommonObjectRequestParams *CommonObjectRequestParams `protobuf:"bytes,8,opt,name=common_object_request_params,json=commonObjectRequestParams,proto3" json:"common_object_request_params,omitempty"` |
| } |
| |
| func (x *UpdateObjectRequest) Reset() { |
| *x = UpdateObjectRequest{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_storage_v2_storage_proto_msgTypes[32] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *UpdateObjectRequest) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*UpdateObjectRequest) ProtoMessage() {} |
| |
| func (x *UpdateObjectRequest) ProtoReflect() protoreflect.Message { |
| mi := &file_google_storage_v2_storage_proto_msgTypes[32] |
| 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 UpdateObjectRequest.ProtoReflect.Descriptor instead. |
| func (*UpdateObjectRequest) Descriptor() ([]byte, []int) { |
| return file_google_storage_v2_storage_proto_rawDescGZIP(), []int{32} |
| } |
| |
| func (x *UpdateObjectRequest) GetObject() *Object { |
| if x != nil { |
| return x.Object |
| } |
| return nil |
| } |
| |
| func (x *UpdateObjectRequest) GetIfGenerationMatch() int64 { |
| if x != nil && x.IfGenerationMatch != nil { |
| return *x.IfGenerationMatch |
| } |
| return 0 |
| } |
| |
| func (x *UpdateObjectRequest) GetIfGenerationNotMatch() int64 { |
| if x != nil && x.IfGenerationNotMatch != nil { |
| return *x.IfGenerationNotMatch |
| } |
| return 0 |
| } |
| |
| func (x *UpdateObjectRequest) GetIfMetagenerationMatch() int64 { |
| if x != nil && x.IfMetagenerationMatch != nil { |
| return *x.IfMetagenerationMatch |
| } |
| return 0 |
| } |
| |
| func (x *UpdateObjectRequest) GetIfMetagenerationNotMatch() int64 { |
| if x != nil && x.IfMetagenerationNotMatch != nil { |
| return *x.IfMetagenerationNotMatch |
| } |
| return 0 |
| } |
| |
| func (x *UpdateObjectRequest) GetPredefinedAcl() string { |
| if x != nil { |
| return x.PredefinedAcl |
| } |
| return "" |
| } |
| |
| func (x *UpdateObjectRequest) GetUpdateMask() *fieldmaskpb.FieldMask { |
| if x != nil { |
| return x.UpdateMask |
| } |
| return nil |
| } |
| |
| func (x *UpdateObjectRequest) GetCommonObjectRequestParams() *CommonObjectRequestParams { |
| if x != nil { |
| return x.CommonObjectRequestParams |
| } |
| return nil |
| } |
| |
| // Request message for GetServiceAccount. |
| type GetServiceAccountRequest struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Required. Project ID, in the format of "projects/{projectIdentifier}". |
| // {projectIdentifier} can be the project ID or project number. |
| Project string `protobuf:"bytes,1,opt,name=project,proto3" json:"project,omitempty"` |
| } |
| |
| func (x *GetServiceAccountRequest) Reset() { |
| *x = GetServiceAccountRequest{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_storage_v2_storage_proto_msgTypes[33] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *GetServiceAccountRequest) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*GetServiceAccountRequest) ProtoMessage() {} |
| |
| func (x *GetServiceAccountRequest) ProtoReflect() protoreflect.Message { |
| mi := &file_google_storage_v2_storage_proto_msgTypes[33] |
| 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 GetServiceAccountRequest.ProtoReflect.Descriptor instead. |
| func (*GetServiceAccountRequest) Descriptor() ([]byte, []int) { |
| return file_google_storage_v2_storage_proto_rawDescGZIP(), []int{33} |
| } |
| |
| func (x *GetServiceAccountRequest) GetProject() string { |
| if x != nil { |
| return x.Project |
| } |
| return "" |
| } |
| |
| // Request message for CreateHmacKey. |
| type CreateHmacKeyRequest struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Required. The project that the HMAC-owning service account lives in, in the |
| // format of "projects/{projectIdentifier}". {projectIdentifier} can be the |
| // project ID or project number. |
| Project string `protobuf:"bytes,1,opt,name=project,proto3" json:"project,omitempty"` |
| // Required. The service account to create the HMAC for. |
| ServiceAccountEmail string `protobuf:"bytes,2,opt,name=service_account_email,json=serviceAccountEmail,proto3" json:"service_account_email,omitempty"` |
| } |
| |
| func (x *CreateHmacKeyRequest) Reset() { |
| *x = CreateHmacKeyRequest{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_storage_v2_storage_proto_msgTypes[34] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *CreateHmacKeyRequest) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*CreateHmacKeyRequest) ProtoMessage() {} |
| |
| func (x *CreateHmacKeyRequest) ProtoReflect() protoreflect.Message { |
| mi := &file_google_storage_v2_storage_proto_msgTypes[34] |
| 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 CreateHmacKeyRequest.ProtoReflect.Descriptor instead. |
| func (*CreateHmacKeyRequest) Descriptor() ([]byte, []int) { |
| return file_google_storage_v2_storage_proto_rawDescGZIP(), []int{34} |
| } |
| |
| func (x *CreateHmacKeyRequest) GetProject() string { |
| if x != nil { |
| return x.Project |
| } |
| return "" |
| } |
| |
| func (x *CreateHmacKeyRequest) GetServiceAccountEmail() string { |
| if x != nil { |
| return x.ServiceAccountEmail |
| } |
| return "" |
| } |
| |
| // Create hmac response. The only time the secret for an HMAC will be returned. |
| type CreateHmacKeyResponse struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Key metadata. |
| Metadata *HmacKeyMetadata `protobuf:"bytes,1,opt,name=metadata,proto3" json:"metadata,omitempty"` |
| // HMAC key secret material. |
| // In raw bytes format (not base64-encoded). |
| SecretKeyBytes []byte `protobuf:"bytes,3,opt,name=secret_key_bytes,json=secretKeyBytes,proto3" json:"secret_key_bytes,omitempty"` |
| } |
| |
| func (x *CreateHmacKeyResponse) Reset() { |
| *x = CreateHmacKeyResponse{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_storage_v2_storage_proto_msgTypes[35] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *CreateHmacKeyResponse) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*CreateHmacKeyResponse) ProtoMessage() {} |
| |
| func (x *CreateHmacKeyResponse) ProtoReflect() protoreflect.Message { |
| mi := &file_google_storage_v2_storage_proto_msgTypes[35] |
| 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 CreateHmacKeyResponse.ProtoReflect.Descriptor instead. |
| func (*CreateHmacKeyResponse) Descriptor() ([]byte, []int) { |
| return file_google_storage_v2_storage_proto_rawDescGZIP(), []int{35} |
| } |
| |
| func (x *CreateHmacKeyResponse) GetMetadata() *HmacKeyMetadata { |
| if x != nil { |
| return x.Metadata |
| } |
| return nil |
| } |
| |
| func (x *CreateHmacKeyResponse) GetSecretKeyBytes() []byte { |
| if x != nil { |
| return x.SecretKeyBytes |
| } |
| return nil |
| } |
| |
| // Request object to delete a given HMAC key. |
| type DeleteHmacKeyRequest struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Required. The identifying key for the HMAC to delete. |
| AccessId string `protobuf:"bytes,1,opt,name=access_id,json=accessId,proto3" json:"access_id,omitempty"` |
| // Required. The project that owns the HMAC key, in the format of |
| // "projects/{projectIdentifier}". |
| // {projectIdentifier} can be the project ID or project number. |
| Project string `protobuf:"bytes,2,opt,name=project,proto3" json:"project,omitempty"` |
| } |
| |
| func (x *DeleteHmacKeyRequest) Reset() { |
| *x = DeleteHmacKeyRequest{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_storage_v2_storage_proto_msgTypes[36] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *DeleteHmacKeyRequest) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*DeleteHmacKeyRequest) ProtoMessage() {} |
| |
| func (x *DeleteHmacKeyRequest) ProtoReflect() protoreflect.Message { |
| mi := &file_google_storage_v2_storage_proto_msgTypes[36] |
| 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 DeleteHmacKeyRequest.ProtoReflect.Descriptor instead. |
| func (*DeleteHmacKeyRequest) Descriptor() ([]byte, []int) { |
| return file_google_storage_v2_storage_proto_rawDescGZIP(), []int{36} |
| } |
| |
| func (x *DeleteHmacKeyRequest) GetAccessId() string { |
| if x != nil { |
| return x.AccessId |
| } |
| return "" |
| } |
| |
| func (x *DeleteHmacKeyRequest) GetProject() string { |
| if x != nil { |
| return x.Project |
| } |
| return "" |
| } |
| |
| // Request object to get metadata on a given HMAC key. |
| type GetHmacKeyRequest struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Required. The identifying key for the HMAC to delete. |
| AccessId string `protobuf:"bytes,1,opt,name=access_id,json=accessId,proto3" json:"access_id,omitempty"` |
| // Required. The project the HMAC key lies in, in the format of |
| // "projects/{projectIdentifier}". |
| // {projectIdentifier} can be the project ID or project number. |
| Project string `protobuf:"bytes,2,opt,name=project,proto3" json:"project,omitempty"` |
| } |
| |
| func (x *GetHmacKeyRequest) Reset() { |
| *x = GetHmacKeyRequest{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_storage_v2_storage_proto_msgTypes[37] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *GetHmacKeyRequest) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*GetHmacKeyRequest) ProtoMessage() {} |
| |
| func (x *GetHmacKeyRequest) ProtoReflect() protoreflect.Message { |
| mi := &file_google_storage_v2_storage_proto_msgTypes[37] |
| 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 GetHmacKeyRequest.ProtoReflect.Descriptor instead. |
| func (*GetHmacKeyRequest) Descriptor() ([]byte, []int) { |
| return file_google_storage_v2_storage_proto_rawDescGZIP(), []int{37} |
| } |
| |
| func (x *GetHmacKeyRequest) GetAccessId() string { |
| if x != nil { |
| return x.AccessId |
| } |
| return "" |
| } |
| |
| func (x *GetHmacKeyRequest) GetProject() string { |
| if x != nil { |
| return x.Project |
| } |
| return "" |
| } |
| |
| // Request to fetch a list of HMAC keys under a given project. |
| type ListHmacKeysRequest struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Required. The project to list HMAC keys for, in the format of |
| // "projects/{projectIdentifier}". |
| // {projectIdentifier} can be the project ID or project number. |
| Project string `protobuf:"bytes,1,opt,name=project,proto3" json:"project,omitempty"` |
| // The maximum number of keys to return. |
| PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` |
| // A previously returned token from ListHmacKeysResponse to get the next page. |
| PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` |
| // If set, filters to only return HMAC keys for specified service account. |
| ServiceAccountEmail string `protobuf:"bytes,4,opt,name=service_account_email,json=serviceAccountEmail,proto3" json:"service_account_email,omitempty"` |
| // If set, return deleted keys that have not yet been wiped out. |
| ShowDeletedKeys bool `protobuf:"varint,5,opt,name=show_deleted_keys,json=showDeletedKeys,proto3" json:"show_deleted_keys,omitempty"` |
| } |
| |
| func (x *ListHmacKeysRequest) Reset() { |
| *x = ListHmacKeysRequest{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_storage_v2_storage_proto_msgTypes[38] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *ListHmacKeysRequest) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*ListHmacKeysRequest) ProtoMessage() {} |
| |
| func (x *ListHmacKeysRequest) ProtoReflect() protoreflect.Message { |
| mi := &file_google_storage_v2_storage_proto_msgTypes[38] |
| 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 ListHmacKeysRequest.ProtoReflect.Descriptor instead. |
| func (*ListHmacKeysRequest) Descriptor() ([]byte, []int) { |
| return file_google_storage_v2_storage_proto_rawDescGZIP(), []int{38} |
| } |
| |
| func (x *ListHmacKeysRequest) GetProject() string { |
| if x != nil { |
| return x.Project |
| } |
| return "" |
| } |
| |
| func (x *ListHmacKeysRequest) GetPageSize() int32 { |
| if x != nil { |
| return x.PageSize |
| } |
| return 0 |
| } |
| |
| func (x *ListHmacKeysRequest) GetPageToken() string { |
| if x != nil { |
| return x.PageToken |
| } |
| return "" |
| } |
| |
| func (x *ListHmacKeysRequest) GetServiceAccountEmail() string { |
| if x != nil { |
| return x.ServiceAccountEmail |
| } |
| return "" |
| } |
| |
| func (x *ListHmacKeysRequest) GetShowDeletedKeys() bool { |
| if x != nil { |
| return x.ShowDeletedKeys |
| } |
| return false |
| } |
| |
| // Hmac key list response with next page information. |
| type ListHmacKeysResponse struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // The list of items. |
| HmacKeys []*HmacKeyMetadata `protobuf:"bytes,1,rep,name=hmac_keys,json=hmacKeys,proto3" json:"hmac_keys,omitempty"` |
| // The continuation token, used to page through large result sets. Provide |
| // this value in a subsequent request to return the next page of results. |
| NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` |
| } |
| |
| func (x *ListHmacKeysResponse) Reset() { |
| *x = ListHmacKeysResponse{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_storage_v2_storage_proto_msgTypes[39] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *ListHmacKeysResponse) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*ListHmacKeysResponse) ProtoMessage() {} |
| |
| func (x *ListHmacKeysResponse) ProtoReflect() protoreflect.Message { |
| mi := &file_google_storage_v2_storage_proto_msgTypes[39] |
| 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 ListHmacKeysResponse.ProtoReflect.Descriptor instead. |
| func (*ListHmacKeysResponse) Descriptor() ([]byte, []int) { |
| return file_google_storage_v2_storage_proto_rawDescGZIP(), []int{39} |
| } |
| |
| func (x *ListHmacKeysResponse) GetHmacKeys() []*HmacKeyMetadata { |
| if x != nil { |
| return x.HmacKeys |
| } |
| return nil |
| } |
| |
| func (x *ListHmacKeysResponse) GetNextPageToken() string { |
| if x != nil { |
| return x.NextPageToken |
| } |
| return "" |
| } |
| |
| // Request object to update an HMAC key state. |
| // HmacKeyMetadata.state is required and the only writable field in |
| // UpdateHmacKey operation. Specifying fields other than state will result in an |
| // error. |
| type UpdateHmacKeyRequest struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Required. The HMAC key to update. |
| // If present, the hmac_key's `id` field will be used to identify the key. |
| // Otherwise, the hmac_key's access_id and project fields will be used to |
| // identify the key. |
| HmacKey *HmacKeyMetadata `protobuf:"bytes,1,opt,name=hmac_key,json=hmacKey,proto3" json:"hmac_key,omitempty"` |
| // Update mask for hmac_key. |
| // Not specifying any fields will mean only the `state` field is updated to |
| // the value specified in `hmac_key`. |
| UpdateMask *fieldmaskpb.FieldMask `protobuf:"bytes,3,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"` |
| } |
| |
| func (x *UpdateHmacKeyRequest) Reset() { |
| *x = UpdateHmacKeyRequest{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_storage_v2_storage_proto_msgTypes[40] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *UpdateHmacKeyRequest) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*UpdateHmacKeyRequest) ProtoMessage() {} |
| |
| func (x *UpdateHmacKeyRequest) ProtoReflect() protoreflect.Message { |
| mi := &file_google_storage_v2_storage_proto_msgTypes[40] |
| 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 UpdateHmacKeyRequest.ProtoReflect.Descriptor instead. |
| func (*UpdateHmacKeyRequest) Descriptor() ([]byte, []int) { |
| return file_google_storage_v2_storage_proto_rawDescGZIP(), []int{40} |
| } |
| |
| func (x *UpdateHmacKeyRequest) GetHmacKey() *HmacKeyMetadata { |
| if x != nil { |
| return x.HmacKey |
| } |
| return nil |
| } |
| |
| func (x *UpdateHmacKeyRequest) GetUpdateMask() *fieldmaskpb.FieldMask { |
| if x != nil { |
| return x.UpdateMask |
| } |
| return nil |
| } |
| |
| // Parameters that can be passed to any object request. |
| type CommonObjectRequestParams struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Encryption algorithm used with the Customer-Supplied Encryption Keys |
| // feature. |
| EncryptionAlgorithm string `protobuf:"bytes,1,opt,name=encryption_algorithm,json=encryptionAlgorithm,proto3" json:"encryption_algorithm,omitempty"` |
| // Encryption key used with the Customer-Supplied Encryption Keys feature. |
| // In raw bytes format (not base64-encoded). |
| EncryptionKeyBytes []byte `protobuf:"bytes,4,opt,name=encryption_key_bytes,json=encryptionKeyBytes,proto3" json:"encryption_key_bytes,omitempty"` |
| // SHA256 hash of encryption key used with the Customer-Supplied Encryption |
| // Keys feature. |
| EncryptionKeySha256Bytes []byte `protobuf:"bytes,5,opt,name=encryption_key_sha256_bytes,json=encryptionKeySha256Bytes,proto3" json:"encryption_key_sha256_bytes,omitempty"` |
| } |
| |
| func (x *CommonObjectRequestParams) Reset() { |
| *x = CommonObjectRequestParams{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_storage_v2_storage_proto_msgTypes[41] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *CommonObjectRequestParams) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*CommonObjectRequestParams) ProtoMessage() {} |
| |
| func (x *CommonObjectRequestParams) ProtoReflect() protoreflect.Message { |
| mi := &file_google_storage_v2_storage_proto_msgTypes[41] |
| 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 CommonObjectRequestParams.ProtoReflect.Descriptor instead. |
| func (*CommonObjectRequestParams) Descriptor() ([]byte, []int) { |
| return file_google_storage_v2_storage_proto_rawDescGZIP(), []int{41} |
| } |
| |
| func (x *CommonObjectRequestParams) GetEncryptionAlgorithm() string { |
| if x != nil { |
| return x.EncryptionAlgorithm |
| } |
| return "" |
| } |
| |
| func (x *CommonObjectRequestParams) GetEncryptionKeyBytes() []byte { |
| if x != nil { |
| return x.EncryptionKeyBytes |
| } |
| return nil |
| } |
| |
| func (x *CommonObjectRequestParams) GetEncryptionKeySha256Bytes() []byte { |
| if x != nil { |
| return x.EncryptionKeySha256Bytes |
| } |
| return nil |
| } |
| |
| // Shared constants. |
| type ServiceConstants struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| } |
| |
| func (x *ServiceConstants) Reset() { |
| *x = ServiceConstants{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_storage_v2_storage_proto_msgTypes[42] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *ServiceConstants) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*ServiceConstants) ProtoMessage() {} |
| |
| func (x *ServiceConstants) ProtoReflect() protoreflect.Message { |
| mi := &file_google_storage_v2_storage_proto_msgTypes[42] |
| 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 ServiceConstants.ProtoReflect.Descriptor instead. |
| func (*ServiceConstants) Descriptor() ([]byte, []int) { |
| return file_google_storage_v2_storage_proto_rawDescGZIP(), []int{42} |
| } |
| |
| // A bucket. |
| type Bucket struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Immutable. The name of the bucket. |
| // Format: `projects/{project}/buckets/{bucket}` |
| Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` |
| // Output only. The user-chosen part of the bucket name. The `{bucket}` |
| // portion of the `name` field. For globally unique buckets, this is equal to |
| // the "bucket name" of other Cloud Storage APIs. Example: "pub". |
| BucketId string `protobuf:"bytes,2,opt,name=bucket_id,json=bucketId,proto3" json:"bucket_id,omitempty"` |
| // The etag of the bucket. |
| // If included in the metadata of an UpdateBucketRequest, the operation will |
| // only be performed if the etag matches that of the bucket. |
| Etag string `protobuf:"bytes,29,opt,name=etag,proto3" json:"etag,omitempty"` |
| // Immutable. The project which owns this bucket, in the format of |
| // "projects/{projectIdentifier}". |
| // {projectIdentifier} can be the project ID or project number. |
| Project string `protobuf:"bytes,3,opt,name=project,proto3" json:"project,omitempty"` |
| // Output only. The metadata generation of this bucket. |
| Metageneration int64 `protobuf:"varint,4,opt,name=metageneration,proto3" json:"metageneration,omitempty"` |
| // Immutable. The location of the bucket. Object data for objects in the |
| // bucket resides in physical storage within this region. Defaults to `US`. |
| // See the |
| // [https://developers.google.com/storage/docs/concepts-techniques#specifyinglocations"][developer's |
| // guide] for the authoritative list. Attempting to update this field after |
| // the bucket is created will result in an error. |
| Location string `protobuf:"bytes,5,opt,name=location,proto3" json:"location,omitempty"` |
| // Output only. The location type of the bucket (region, dual-region, |
| // multi-region, etc). |
| LocationType string `protobuf:"bytes,6,opt,name=location_type,json=locationType,proto3" json:"location_type,omitempty"` |
| // The bucket's default storage class, used whenever no storageClass is |
| // specified for a newly-created object. This defines how objects in the |
| // bucket are stored and determines the SLA and the cost of storage. |
| // If this value is not specified when the bucket is created, it will default |
| // to `STANDARD`. For more information, see |
| // https://developers.google.com/storage/docs/storage-classes. |
| StorageClass string `protobuf:"bytes,7,opt,name=storage_class,json=storageClass,proto3" json:"storage_class,omitempty"` |
| // The recovery point objective for cross-region replication of the bucket. |
| // Applicable only for dual- and multi-region buckets. "DEFAULT" uses default |
| // replication. "ASYNC_TURBO" enables turbo replication, valid for dual-region |
| // buckets only. If rpo is not specified when the bucket is created, it |
| // defaults to "DEFAULT". For more information, see |
| // https://cloud.google.com/storage/docs/availability-durability#turbo-replication. |
| Rpo string `protobuf:"bytes,27,opt,name=rpo,proto3" json:"rpo,omitempty"` |
| // Access controls on the bucket. |
| // If iam_config.uniform_bucket_level_access is enabled on this bucket, |
| // requests to set, read, or modify acl is an error. |
| Acl []*BucketAccessControl `protobuf:"bytes,8,rep,name=acl,proto3" json:"acl,omitempty"` |
| // Default access controls to apply to new objects when no ACL is provided. |
| // If iam_config.uniform_bucket_level_access is enabled on this bucket, |
| // requests to set, read, or modify acl is an error. |
| DefaultObjectAcl []*ObjectAccessControl `protobuf:"bytes,9,rep,name=default_object_acl,json=defaultObjectAcl,proto3" json:"default_object_acl,omitempty"` |
| // The bucket's lifecycle config. See |
| // [https://developers.google.com/storage/docs/lifecycle]Lifecycle Management] |
| // for more information. |
| Lifecycle *Bucket_Lifecycle `protobuf:"bytes,10,opt,name=lifecycle,proto3" json:"lifecycle,omitempty"` |
| // Output only. The creation time of the bucket. |
| CreateTime *timestamppb.Timestamp `protobuf:"bytes,11,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"` |
| // The bucket's [https://www.w3.org/TR/cors/][Cross-Origin Resource Sharing] |
| // (CORS) config. |
| Cors []*Bucket_Cors `protobuf:"bytes,12,rep,name=cors,proto3" json:"cors,omitempty"` |
| // Output only. The modification time of the bucket. |
| UpdateTime *timestamppb.Timestamp `protobuf:"bytes,13,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"` |
| // The default value for event-based hold on newly created objects in this |
| // bucket. Event-based hold is a way to retain objects indefinitely until an |
| // event occurs, signified by the |
| // hold's release. After being released, such objects will be subject to |
| // bucket-level retention (if any). One sample use case of this flag is for |
| // banks to hold loan documents for at least 3 years after loan is paid in |
| // full. Here, bucket-level retention is 3 years and the event is loan being |
| // paid in full. In this example, these objects will be held intact for any |
| // number of years until the event has occurred (event-based hold on the |
| // object is released) and then 3 more years after that. That means retention |
| // duration of the objects begins from the moment event-based hold |
| // transitioned from true to false. Objects under event-based hold cannot be |
| // deleted, overwritten or archived until the hold is removed. |
| DefaultEventBasedHold bool `protobuf:"varint,14,opt,name=default_event_based_hold,json=defaultEventBasedHold,proto3" json:"default_event_based_hold,omitempty"` |
| // User-provided labels, in key/value pairs. |
| Labels map[string]string `protobuf:"bytes,15,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` |
| // The bucket's website config, controlling how the service behaves |
| // when accessing bucket contents as a web site. See the |
| // [https://cloud.google.com/storage/docs/static-website][Static Website |
| // Examples] for more information. |
| Website *Bucket_Website `protobuf:"bytes,16,opt,name=website,proto3" json:"website,omitempty"` |
| // The bucket's versioning config. |
| Versioning *Bucket_Versioning `protobuf:"bytes,17,opt,name=versioning,proto3" json:"versioning,omitempty"` |
| // The bucket's logging config, which defines the destination bucket |
| // and name prefix (if any) for the current bucket's logs. |
| Logging *Bucket_Logging `protobuf:"bytes,18,opt,name=logging,proto3" json:"logging,omitempty"` |
| // Output only. The owner of the bucket. This is always the project team's |
| // owner group. |
| Owner *Owner `protobuf:"bytes,19,opt,name=owner,proto3" json:"owner,omitempty"` |
| // Encryption config for a bucket. |
| Encryption *Bucket_Encryption `protobuf:"bytes,20,opt,name=encryption,proto3" json:"encryption,omitempty"` |
| // The bucket's billing config. |
| Billing *Bucket_Billing `protobuf:"bytes,21,opt,name=billing,proto3" json:"billing,omitempty"` |
| // The bucket's retention policy. The retention policy enforces a minimum |
| // retention time for all objects contained in the bucket, based on their |
| // creation time. Any attempt to overwrite or delete objects younger than the |
| // retention period will result in a PERMISSION_DENIED error. An unlocked |
| // retention policy can be modified or removed from the bucket via a |
| // storage.buckets.update operation. A locked retention policy cannot be |
| // removed or shortened in duration for the lifetime of the bucket. |
| // Attempting to remove or decrease period of a locked retention policy will |
| // result in a PERMISSION_DENIED error. |
| RetentionPolicy *Bucket_RetentionPolicy `protobuf:"bytes,22,opt,name=retention_policy,json=retentionPolicy,proto3" json:"retention_policy,omitempty"` |
| // The bucket's IAM config. |
| IamConfig *Bucket_IamConfig `protobuf:"bytes,23,opt,name=iam_config,json=iamConfig,proto3" json:"iam_config,omitempty"` |
| // Reserved for future use. |
| SatisfiesPzs bool `protobuf:"varint,25,opt,name=satisfies_pzs,json=satisfiesPzs,proto3" json:"satisfies_pzs,omitempty"` |
| // Configuration that, if present, specifies the data placement for a |
| // [https://cloud.google.com/storage/docs/use-dual-regions][Dual Region]. |
| CustomPlacementConfig *Bucket_CustomPlacementConfig `protobuf:"bytes,26,opt,name=custom_placement_config,json=customPlacementConfig,proto3" json:"custom_placement_config,omitempty"` |
| // The bucket's Autoclass configuration. If there is no configuration, the |
| // Autoclass feature will be disabled and have no effect on the bucket. |
| Autoclass *Bucket_Autoclass `protobuf:"bytes,28,opt,name=autoclass,proto3" json:"autoclass,omitempty"` |
| // Optional. The bucket's hierarchical namespace configuration. If there is no |
| // configuration, the hierarchical namespace feature will be disabled and have |
| // no effect on the bucket. |
| HierarchicalNamespace *Bucket_HierarchicalNamespace `protobuf:"bytes,32,opt,name=hierarchical_namespace,json=hierarchicalNamespace,proto3" json:"hierarchical_namespace,omitempty"` |
| // Optional. The bucket's soft delete policy. The soft delete policy prevents |
| // soft-deleted objects from being permanently deleted. |
| SoftDeletePolicy *Bucket_SoftDeletePolicy `protobuf:"bytes,31,opt,name=soft_delete_policy,json=softDeletePolicy,proto3" json:"soft_delete_policy,omitempty"` |
| } |
| |
| func (x *Bucket) Reset() { |
| *x = Bucket{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_storage_v2_storage_proto_msgTypes[43] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *Bucket) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*Bucket) ProtoMessage() {} |
| |
| func (x *Bucket) ProtoReflect() protoreflect.Message { |
| mi := &file_google_storage_v2_storage_proto_msgTypes[43] |
| 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 Bucket.ProtoReflect.Descriptor instead. |
| func (*Bucket) Descriptor() ([]byte, []int) { |
| return file_google_storage_v2_storage_proto_rawDescGZIP(), []int{43} |
| } |
| |
| func (x *Bucket) GetName() string { |
| if x != nil { |
| return x.Name |
| } |
| return "" |
| } |
| |
| func (x *Bucket) GetBucketId() string { |
| if x != nil { |
| return x.BucketId |
| } |
| return "" |
| } |
| |
| func (x *Bucket) GetEtag() string { |
| if x != nil { |
| return x.Etag |
| } |
| return "" |
| } |
| |
| func (x *Bucket) GetProject() string { |
| if x != nil { |
| return x.Project |
| } |
| return "" |
| } |
| |
| func (x *Bucket) GetMetageneration() int64 { |
| if x != nil { |
| return x.Metageneration |
| } |
| return 0 |
| } |
| |
| func (x *Bucket) GetLocation() string { |
| if x != nil { |
| return x.Location |
| } |
| return "" |
| } |
| |
| func (x *Bucket) GetLocationType() string { |
| if x != nil { |
| return x.LocationType |
| } |
| return "" |
| } |
| |
| func (x *Bucket) GetStorageClass() string { |
| if x != nil { |
| return x.StorageClass |
| } |
| return "" |
| } |
| |
| func (x *Bucket) GetRpo() string { |
| if x != nil { |
| return x.Rpo |
| } |
| return "" |
| } |
| |
| func (x *Bucket) GetAcl() []*BucketAccessControl { |
| if x != nil { |
| return x.Acl |
| } |
| return nil |
| } |
| |
| func (x *Bucket) GetDefaultObjectAcl() []*ObjectAccessControl { |
| if x != nil { |
| return x.DefaultObjectAcl |
| } |
| return nil |
| } |
| |
| func (x *Bucket) GetLifecycle() *Bucket_Lifecycle { |
| if x != nil { |
| return x.Lifecycle |
| } |
| return nil |
| } |
| |
| func (x *Bucket) GetCreateTime() *timestamppb.Timestamp { |
| if x != nil { |
| return x.CreateTime |
| } |
| return nil |
| } |
| |
| func (x *Bucket) GetCors() []*Bucket_Cors { |
| if x != nil { |
| return x.Cors |
| } |
| return nil |
| } |
| |
| func (x *Bucket) GetUpdateTime() *timestamppb.Timestamp { |
| if x != nil { |
| return x.UpdateTime |
| } |
| return nil |
| } |
| |
| func (x *Bucket) GetDefaultEventBasedHold() bool { |
| if x != nil { |
| return x.DefaultEventBasedHold |
| } |
| return false |
| } |
| |
| func (x *Bucket) GetLabels() map[string]string { |
| if x != nil { |
| return x.Labels |
| } |
| return nil |
| } |
| |
| func (x *Bucket) GetWebsite() *Bucket_Website { |
| if x != nil { |
| return x.Website |
| } |
| return nil |
| } |
| |
| func (x *Bucket) GetVersioning() *Bucket_Versioning { |
| if x != nil { |
| return x.Versioning |
| } |
| return nil |
| } |
| |
| func (x *Bucket) GetLogging() *Bucket_Logging { |
| if x != nil { |
| return x.Logging |
| } |
| return nil |
| } |
| |
| func (x *Bucket) GetOwner() *Owner { |
| if x != nil { |
| return x.Owner |
| } |
| return nil |
| } |
| |
| func (x *Bucket) GetEncryption() *Bucket_Encryption { |
| if x != nil { |
| return x.Encryption |
| } |
| return nil |
| } |
| |
| func (x *Bucket) GetBilling() *Bucket_Billing { |
| if x != nil { |
| return x.Billing |
| } |
| return nil |
| } |
| |
| func (x *Bucket) GetRetentionPolicy() *Bucket_RetentionPolicy { |
| if x != nil { |
| return x.RetentionPolicy |
| } |
| return nil |
| } |
| |
| func (x *Bucket) GetIamConfig() *Bucket_IamConfig { |
| if x != nil { |
| return x.IamConfig |
| } |
| return nil |
| } |
| |
| func (x *Bucket) GetSatisfiesPzs() bool { |
| if x != nil { |
| return x.SatisfiesPzs |
| } |
| return false |
| } |
| |
| func (x *Bucket) GetCustomPlacementConfig() *Bucket_CustomPlacementConfig { |
| if x != nil { |
| return x.CustomPlacementConfig |
| } |
| return nil |
| } |
| |
| func (x *Bucket) GetAutoclass() *Bucket_Autoclass { |
| if x != nil { |
| return x.Autoclass |
| } |
| return nil |
| } |
| |
| func (x *Bucket) GetHierarchicalNamespace() *Bucket_HierarchicalNamespace { |
| if x != nil { |
| return x.HierarchicalNamespace |
| } |
| return nil |
| } |
| |
| func (x *Bucket) GetSoftDeletePolicy() *Bucket_SoftDeletePolicy { |
| if x != nil { |
| return x.SoftDeletePolicy |
| } |
| return nil |
| } |
| |
| // An access-control entry. |
| type BucketAccessControl struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // The access permission for the entity. |
| Role string `protobuf:"bytes,1,opt,name=role,proto3" json:"role,omitempty"` |
| // The ID of the access-control entry. |
| Id string `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"` |
| // The entity holding the permission, in one of the following forms: |
| // * `user-{userid}` |
| // * `user-{email}` |
| // * `group-{groupid}` |
| // * `group-{email}` |
| // * `domain-{domain}` |
| // * `project-{team}-{projectnumber}` |
| // * `project-{team}-{projectid}` |
| // * `allUsers` |
| // * `allAuthenticatedUsers` |
| // Examples: |
| // * The user `liz@example.com` would be `user-liz@example.com`. |
| // * The group `example@googlegroups.com` would be |
| // `group-example@googlegroups.com` |
| // * All members of the Google Apps for Business domain `example.com` would be |
| // `domain-example.com` |
| // For project entities, `project-{team}-{projectnumber}` format will be |
| // returned on response. |
| Entity string `protobuf:"bytes,3,opt,name=entity,proto3" json:"entity,omitempty"` |
| // Output only. The alternative entity format, if exists. For project |
| // entities, `project-{team}-{projectid}` format will be returned on response. |
| EntityAlt string `protobuf:"bytes,9,opt,name=entity_alt,json=entityAlt,proto3" json:"entity_alt,omitempty"` |
| // The ID for the entity, if any. |
| EntityId string `protobuf:"bytes,4,opt,name=entity_id,json=entityId,proto3" json:"entity_id,omitempty"` |
| // The etag of the BucketAccessControl. |
| // If included in the metadata of an update or delete request message, the |
| // operation operation will only be performed if the etag matches that of the |
| // bucket's BucketAccessControl. |
| Etag string `protobuf:"bytes,8,opt,name=etag,proto3" json:"etag,omitempty"` |
| // The email address associated with the entity, if any. |
| Email string `protobuf:"bytes,5,opt,name=email,proto3" json:"email,omitempty"` |
| // The domain associated with the entity, if any. |
| Domain string `protobuf:"bytes,6,opt,name=domain,proto3" json:"domain,omitempty"` |
| // The project team associated with the entity, if any. |
| ProjectTeam *ProjectTeam `protobuf:"bytes,7,opt,name=project_team,json=projectTeam,proto3" json:"project_team,omitempty"` |
| } |
| |
| func (x *BucketAccessControl) Reset() { |
| *x = BucketAccessControl{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_storage_v2_storage_proto_msgTypes[44] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *BucketAccessControl) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*BucketAccessControl) ProtoMessage() {} |
| |
| func (x *BucketAccessControl) ProtoReflect() protoreflect.Message { |
| mi := &file_google_storage_v2_storage_proto_msgTypes[44] |
| 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 BucketAccessControl.ProtoReflect.Descriptor instead. |
| func (*BucketAccessControl) Descriptor() ([]byte, []int) { |
| return file_google_storage_v2_storage_proto_rawDescGZIP(), []int{44} |
| } |
| |
| func (x *BucketAccessControl) GetRole() string { |
| if x != nil { |
| return x.Role |
| } |
| return "" |
| } |
| |
| func (x *BucketAccessControl) GetId() string { |
| if x != nil { |
| return x.Id |
| } |
| return "" |
| } |
| |
| func (x *BucketAccessControl) GetEntity() string { |
| if x != nil { |
| return x.Entity |
| } |
| return "" |
| } |
| |
| func (x *BucketAccessControl) GetEntityAlt() string { |
| if x != nil { |
| return x.EntityAlt |
| } |
| return "" |
| } |
| |
| func (x *BucketAccessControl) GetEntityId() string { |
| if x != nil { |
| return x.EntityId |
| } |
| return "" |
| } |
| |
| func (x *BucketAccessControl) GetEtag() string { |
| if x != nil { |
| return x.Etag |
| } |
| return "" |
| } |
| |
| func (x *BucketAccessControl) GetEmail() string { |
| if x != nil { |
| return x.Email |
| } |
| return "" |
| } |
| |
| func (x *BucketAccessControl) GetDomain() string { |
| if x != nil { |
| return x.Domain |
| } |
| return "" |
| } |
| |
| func (x *BucketAccessControl) GetProjectTeam() *ProjectTeam { |
| if x != nil { |
| return x.ProjectTeam |
| } |
| return nil |
| } |
| |
| // Message used to convey content being read or written, along with an optional |
| // checksum. |
| type ChecksummedData struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Optional. The data. |
| Content []byte `protobuf:"bytes,1,opt,name=content,proto3" json:"content,omitempty"` |
| // If set, the CRC32C digest of the content field. |
| Crc32C *uint32 `protobuf:"fixed32,2,opt,name=crc32c,proto3,oneof" json:"crc32c,omitempty"` |
| } |
| |
| func (x *ChecksummedData) Reset() { |
| *x = ChecksummedData{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_storage_v2_storage_proto_msgTypes[45] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *ChecksummedData) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*ChecksummedData) ProtoMessage() {} |
| |
| func (x *ChecksummedData) ProtoReflect() protoreflect.Message { |
| mi := &file_google_storage_v2_storage_proto_msgTypes[45] |
| 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 ChecksummedData.ProtoReflect.Descriptor instead. |
| func (*ChecksummedData) Descriptor() ([]byte, []int) { |
| return file_google_storage_v2_storage_proto_rawDescGZIP(), []int{45} |
| } |
| |
| func (x *ChecksummedData) GetContent() []byte { |
| if x != nil { |
| return x.Content |
| } |
| return nil |
| } |
| |
| func (x *ChecksummedData) GetCrc32C() uint32 { |
| if x != nil && x.Crc32C != nil { |
| return *x.Crc32C |
| } |
| return 0 |
| } |
| |
| // Message used for storing full (not subrange) object checksums. |
| type ObjectChecksums struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // CRC32C digest of the object data. Computed by the Cloud Storage service for |
| // all written objects. |
| // If set in a WriteObjectRequest, service will validate that the stored |
| // object matches this checksum. |
| Crc32C *uint32 `protobuf:"fixed32,1,opt,name=crc32c,proto3,oneof" json:"crc32c,omitempty"` |
| // 128 bit MD5 hash of the object data. |
| // For more information about using the MD5 hash, see |
| // [https://cloud.google.com/storage/docs/hashes-etags#json-api][Hashes and |
| // ETags: Best Practices]. |
| // Not all objects will provide an MD5 hash. For example, composite objects |
| // provide only crc32c hashes. |
| // This value is equivalent to running `cat object.txt | openssl md5 -binary` |
| Md5Hash []byte `protobuf:"bytes,2,opt,name=md5_hash,json=md5Hash,proto3" json:"md5_hash,omitempty"` |
| } |
| |
| func (x *ObjectChecksums) Reset() { |
| *x = ObjectChecksums{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_storage_v2_storage_proto_msgTypes[46] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *ObjectChecksums) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*ObjectChecksums) ProtoMessage() {} |
| |
| func (x *ObjectChecksums) ProtoReflect() protoreflect.Message { |
| mi := &file_google_storage_v2_storage_proto_msgTypes[46] |
| 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 ObjectChecksums.ProtoReflect.Descriptor instead. |
| func (*ObjectChecksums) Descriptor() ([]byte, []int) { |
| return file_google_storage_v2_storage_proto_rawDescGZIP(), []int{46} |
| } |
| |
| func (x *ObjectChecksums) GetCrc32C() uint32 { |
| if x != nil && x.Crc32C != nil { |
| return *x.Crc32C |
| } |
| return 0 |
| } |
| |
| func (x *ObjectChecksums) GetMd5Hash() []byte { |
| if x != nil { |
| return x.Md5Hash |
| } |
| return nil |
| } |
| |
| // Hmac Key Metadata, which includes all information other than the secret. |
| type HmacKeyMetadata struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Immutable. Resource name ID of the key in the format |
| // {projectIdentifier}/{accessId}. |
| // {projectIdentifier} can be the project ID or project number. |
| Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` |
| // Immutable. Globally unique id for keys. |
| AccessId string `protobuf:"bytes,2,opt,name=access_id,json=accessId,proto3" json:"access_id,omitempty"` |
| // Immutable. Identifies the project that owns the service account of the |
| // specified HMAC key, in the format "projects/{projectIdentifier}". |
| // {projectIdentifier} can be the project ID or project number. |
| Project string `protobuf:"bytes,3,opt,name=project,proto3" json:"project,omitempty"` |
| // Output only. Email of the service account the key authenticates as. |
| ServiceAccountEmail string `protobuf:"bytes,4,opt,name=service_account_email,json=serviceAccountEmail,proto3" json:"service_account_email,omitempty"` |
| // State of the key. One of ACTIVE, INACTIVE, or DELETED. |
| // Writable, can be updated by UpdateHmacKey operation. |
| State string `protobuf:"bytes,5,opt,name=state,proto3" json:"state,omitempty"` |
| // Output only. The creation time of the HMAC key. |
| CreateTime *timestamppb.Timestamp `protobuf:"bytes,6,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"` |
| // Output only. The last modification time of the HMAC key metadata. |
| UpdateTime *timestamppb.Timestamp `protobuf:"bytes,7,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"` |
| // The etag of the HMAC key. |
| Etag string `protobuf:"bytes,8,opt,name=etag,proto3" json:"etag,omitempty"` |
| } |
| |
| func (x *HmacKeyMetadata) Reset() { |
| *x = HmacKeyMetadata{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_storage_v2_storage_proto_msgTypes[47] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *HmacKeyMetadata) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*HmacKeyMetadata) ProtoMessage() {} |
| |
| func (x *HmacKeyMetadata) ProtoReflect() protoreflect.Message { |
| mi := &file_google_storage_v2_storage_proto_msgTypes[47] |
| 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 HmacKeyMetadata.ProtoReflect.Descriptor instead. |
| func (*HmacKeyMetadata) Descriptor() ([]byte, []int) { |
| return file_google_storage_v2_storage_proto_rawDescGZIP(), []int{47} |
| } |
| |
| func (x *HmacKeyMetadata) GetId() string { |
| if x != nil { |
| return x.Id |
| } |
| return "" |
| } |
| |
| func (x *HmacKeyMetadata) GetAccessId() string { |
| if x != nil { |
| return x.AccessId |
| } |
| return "" |
| } |
| |
| func (x *HmacKeyMetadata) GetProject() string { |
| if x != nil { |
| return x.Project |
| } |
| return "" |
| } |
| |
| func (x *HmacKeyMetadata) GetServiceAccountEmail() string { |
| if x != nil { |
| return x.ServiceAccountEmail |
| } |
| return "" |
| } |
| |
| func (x *HmacKeyMetadata) GetState() string { |
| if x != nil { |
| return x.State |
| } |
| return "" |
| } |
| |
| func (x *HmacKeyMetadata) GetCreateTime() *timestamppb.Timestamp { |
| if x != nil { |
| return x.CreateTime |
| } |
| return nil |
| } |
| |
| func (x *HmacKeyMetadata) GetUpdateTime() *timestamppb.Timestamp { |
| if x != nil { |
| return x.UpdateTime |
| } |
| return nil |
| } |
| |
| func (x *HmacKeyMetadata) GetEtag() string { |
| if x != nil { |
| return x.Etag |
| } |
| return "" |
| } |
| |
| // A directive to publish Pub/Sub notifications upon changes to a bucket. |
| type NotificationConfig struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Required. The resource name of this NotificationConfig. |
| // Format: |
| // `projects/{project}/buckets/{bucket}/notificationConfigs/{notificationConfig}` |
| // The `{project}` portion may be `_` for globally unique buckets. |
| Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` |
| // Required. The Pub/Sub topic to which this subscription publishes. Formatted |
| // as: |
| // '//pubsub.googleapis.com/projects/{project-identifier}/topics/{my-topic}' |
| Topic string `protobuf:"bytes,2,opt,name=topic,proto3" json:"topic,omitempty"` |
| // The etag of the NotificationConfig. |
| // If included in the metadata of GetNotificationConfigRequest, the operation |
| // will only be performed if the etag matches that of the NotificationConfig. |
| Etag string `protobuf:"bytes,7,opt,name=etag,proto3" json:"etag,omitempty"` |
| // If present, only send notifications about listed event types. If |
| // empty, sent notifications for all event types. |
| EventTypes []string `protobuf:"bytes,3,rep,name=event_types,json=eventTypes,proto3" json:"event_types,omitempty"` |
| // A list of additional attributes to attach to each Pub/Sub |
| // message published for this NotificationConfig. |
| CustomAttributes map[string]string `protobuf:"bytes,4,rep,name=custom_attributes,json=customAttributes,proto3" json:"custom_attributes,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` |
| // If present, only apply this NotificationConfig to object names that |
| // begin with this prefix. |
| ObjectNamePrefix string `protobuf:"bytes,5,opt,name=object_name_prefix,json=objectNamePrefix,proto3" json:"object_name_prefix,omitempty"` |
| // Required. The desired content of the Payload. |
| PayloadFormat string `protobuf:"bytes,6,opt,name=payload_format,json=payloadFormat,proto3" json:"payload_format,omitempty"` |
| } |
| |
| func (x *NotificationConfig) Reset() { |
| *x = NotificationConfig{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_storage_v2_storage_proto_msgTypes[48] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *NotificationConfig) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*NotificationConfig) ProtoMessage() {} |
| |
| func (x *NotificationConfig) ProtoReflect() protoreflect.Message { |
| mi := &file_google_storage_v2_storage_proto_msgTypes[48] |
| 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 NotificationConfig.ProtoReflect.Descriptor instead. |
| func (*NotificationConfig) Descriptor() ([]byte, []int) { |
| return file_google_storage_v2_storage_proto_rawDescGZIP(), []int{48} |
| } |
| |
| func (x *NotificationConfig) GetName() string { |
| if x != nil { |
| return x.Name |
| } |
| return "" |
| } |
| |
| func (x *NotificationConfig) GetTopic() string { |
| if x != nil { |
| return x.Topic |
| } |
| return "" |
| } |
| |
| func (x *NotificationConfig) GetEtag() string { |
| if x != nil { |
| return x.Etag |
| } |
| return "" |
| } |
| |
| func (x *NotificationConfig) GetEventTypes() []string { |
| if x != nil { |
| return x.EventTypes |
| } |
| return nil |
| } |
| |
| func (x *NotificationConfig) GetCustomAttributes() map[string]string { |
| if x != nil { |
| return x.CustomAttributes |
| } |
| return nil |
| } |
| |
| func (x *NotificationConfig) GetObjectNamePrefix() string { |
| if x != nil { |
| return x.ObjectNamePrefix |
| } |
| return "" |
| } |
| |
| func (x *NotificationConfig) GetPayloadFormat() string { |
| if x != nil { |
| return x.PayloadFormat |
| } |
| return "" |
| } |
| |
| // Describes the Customer-Supplied Encryption Key mechanism used to store an |
| // Object's data at rest. |
| type CustomerEncryption struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // The encryption algorithm. |
| EncryptionAlgorithm string `protobuf:"bytes,1,opt,name=encryption_algorithm,json=encryptionAlgorithm,proto3" json:"encryption_algorithm,omitempty"` |
| // SHA256 hash value of the encryption key. |
| // In raw bytes format (not base64-encoded). |
| KeySha256Bytes []byte `protobuf:"bytes,3,opt,name=key_sha256_bytes,json=keySha256Bytes,proto3" json:"key_sha256_bytes,omitempty"` |
| } |
| |
| func (x *CustomerEncryption) Reset() { |
| *x = CustomerEncryption{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_storage_v2_storage_proto_msgTypes[49] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *CustomerEncryption) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*CustomerEncryption) ProtoMessage() {} |
| |
| func (x *CustomerEncryption) ProtoReflect() protoreflect.Message { |
| mi := &file_google_storage_v2_storage_proto_msgTypes[49] |
| 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 CustomerEncryption.ProtoReflect.Descriptor instead. |
| func (*CustomerEncryption) Descriptor() ([]byte, []int) { |
| return file_google_storage_v2_storage_proto_rawDescGZIP(), []int{49} |
| } |
| |
| func (x *CustomerEncryption) GetEncryptionAlgorithm() string { |
| if x != nil { |
| return x.EncryptionAlgorithm |
| } |
| return "" |
| } |
| |
| func (x *CustomerEncryption) GetKeySha256Bytes() []byte { |
| if x != nil { |
| return x.KeySha256Bytes |
| } |
| return nil |
| } |
| |
| // An object. |
| type Object struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Immutable. The name of this object. Nearly any sequence of unicode |
| // characters is valid. See |
| // [Guidelines](https://cloud.google.com/storage/docs/objects#naming). |
| // Example: `test.txt` |
| // The `name` field by itself does not uniquely identify a Cloud Storage |
| // object. A Cloud Storage object is uniquely identified by the tuple of |
| // (bucket, object, generation). |
| Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` |
| // Immutable. The name of the bucket containing this object. |
| Bucket string `protobuf:"bytes,2,opt,name=bucket,proto3" json:"bucket,omitempty"` |
| // The etag of the object. |
| // If included in the metadata of an update or delete request message, the |
| // operation will only be performed if the etag matches that of the live |
| // object. |
| Etag string `protobuf:"bytes,27,opt,name=etag,proto3" json:"etag,omitempty"` |
| // Immutable. The content generation of this object. Used for object |
| // versioning. |
| Generation int64 `protobuf:"varint,3,opt,name=generation,proto3" json:"generation,omitempty"` |
| // Output only. The version of the metadata for this generation of this |
| // object. Used for preconditions and for detecting changes in metadata. A |
| // metageneration number is only meaningful in the context of a particular |
| // generation of a particular object. |
| Metageneration int64 `protobuf:"varint,4,opt,name=metageneration,proto3" json:"metageneration,omitempty"` |
| // Storage class of the object. |
| StorageClass string `protobuf:"bytes,5,opt,name=storage_class,json=storageClass,proto3" json:"storage_class,omitempty"` |
| // Output only. Content-Length of the object data in bytes, matching |
| // [https://tools.ietf.org/html/rfc7230#section-3.3.2][RFC 7230 §3.3.2]. |
| Size int64 `protobuf:"varint,6,opt,name=size,proto3" json:"size,omitempty"` |
| // Content-Encoding of the object data, matching |
| // [https://tools.ietf.org/html/rfc7231#section-3.1.2.2][RFC 7231 §3.1.2.2] |
| ContentEncoding string `protobuf:"bytes,7,opt,name=content_encoding,json=contentEncoding,proto3" json:"content_encoding,omitempty"` |
| // Content-Disposition of the object data, matching |
| // [https://tools.ietf.org/html/rfc6266][RFC 6266]. |
| ContentDisposition string `protobuf:"bytes,8,opt,name=content_disposition,json=contentDisposition,proto3" json:"content_disposition,omitempty"` |
| // Cache-Control directive for the object data, matching |
| // [https://tools.ietf.org/html/rfc7234#section-5.2"][RFC 7234 §5.2]. |
| // If omitted, and the object is accessible to all anonymous users, the |
| // default will be `public, max-age=3600`. |
| CacheControl string `protobuf:"bytes,9,opt,name=cache_control,json=cacheControl,proto3" json:"cache_control,omitempty"` |
| // Access controls on the object. |
| // If iam_config.uniform_bucket_level_access is enabled on the parent |
| // bucket, requests to set, read, or modify acl is an error. |
| Acl []*ObjectAccessControl `protobuf:"bytes,10,rep,name=acl,proto3" json:"acl,omitempty"` |
| // Content-Language of the object data, matching |
| // [https://tools.ietf.org/html/rfc7231#section-3.1.3.2][RFC 7231 §3.1.3.2]. |
| ContentLanguage string `protobuf:"bytes,11,opt,name=content_language,json=contentLanguage,proto3" json:"content_language,omitempty"` |
| // Output only. If this object is noncurrent, this is the time when the object |
| // became noncurrent. |
| DeleteTime *timestamppb.Timestamp `protobuf:"bytes,12,opt,name=delete_time,json=deleteTime,proto3" json:"delete_time,omitempty"` |
| // Content-Type of the object data, matching |
| // [https://tools.ietf.org/html/rfc7231#section-3.1.1.5][RFC 7231 §3.1.1.5]. |
| // If an object is stored without a Content-Type, it is served as |
| // `application/octet-stream`. |
| ContentType string `protobuf:"bytes,13,opt,name=content_type,json=contentType,proto3" json:"content_type,omitempty"` |
| // Output only. The creation time of the object. |
| CreateTime *timestamppb.Timestamp `protobuf:"bytes,14,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"` |
| // Output only. Number of underlying components that make up this object. |
| // Components are accumulated by compose operations. |
| ComponentCount int32 `protobuf:"varint,15,opt,name=component_count,json=componentCount,proto3" json:"component_count,omitempty"` |
| // Output only. Hashes for the data part of this object. This field is used |
| // for output only and will be silently ignored if provided in requests. |
| Checksums *ObjectChecksums `protobuf:"bytes,16,opt,name=checksums,proto3" json:"checksums,omitempty"` |
| // Output only. The modification time of the object metadata. |
| // Set initially to object creation time and then updated whenever any |
| // metadata of the object changes. This includes changes made by a requester, |
| // such as modifying custom metadata, as well as changes made by Cloud Storage |
| // on behalf of a requester, such as changing the storage class based on an |
| // Object Lifecycle Configuration. |
| UpdateTime *timestamppb.Timestamp `protobuf:"bytes,17,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"` |
| // Cloud KMS Key used to encrypt this object, if the object is encrypted by |
| // such a key. |
| KmsKey string `protobuf:"bytes,18,opt,name=kms_key,json=kmsKey,proto3" json:"kms_key,omitempty"` |
| // Output only. The time at which the object's storage class was last changed. |
| // When the object is initially created, it will be set to time_created. |
| UpdateStorageClassTime *timestamppb.Timestamp `protobuf:"bytes,19,opt,name=update_storage_class_time,json=updateStorageClassTime,proto3" json:"update_storage_class_time,omitempty"` |
| // Whether an object is under temporary hold. While this flag is set to true, |
| // the object is protected against deletion and overwrites. A common use case |
| // of this flag is regulatory investigations where objects need to be retained |
| // while the investigation is ongoing. Note that unlike event-based hold, |
| // temporary hold does not impact retention expiration time of an object. |
| TemporaryHold bool `protobuf:"varint,20,opt,name=temporary_hold,json=temporaryHold,proto3" json:"temporary_hold,omitempty"` |
| // A server-determined value that specifies the earliest time that the |
| // object's retention period expires. |
| // Note 1: This field is not provided for objects with an active event-based |
| // hold, since retention expiration is unknown until the hold is removed. |
| // Note 2: This value can be provided even when temporary hold is set (so that |
| // the user can reason about policy without having to first unset the |
| // temporary hold). |
| RetentionExpireTime *timestamppb.Timestamp `protobuf:"bytes,21,opt,name=retention_expire_time,json=retentionExpireTime,proto3" json:"retention_expire_time,omitempty"` |
| // User-provided metadata, in key/value pairs. |
| Metadata map[string]string `protobuf:"bytes,22,rep,name=metadata,proto3" json:"metadata,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` |
| // Whether an object is under event-based hold. |
| // An event-based hold is a way to force the retention of an object until |
| // after some event occurs. Once the hold is released by explicitly setting |
| // this field to false, the object will become subject to any bucket-level |
| // retention policy, except that the retention duration will be calculated |
| // from the time the event based hold was lifted, rather than the time the |
| // object was created. |
| // |
| // In a WriteObject request, not setting this field implies that the value |
| // should be taken from the parent bucket's "default_event_based_hold" field. |
| // In a response, this field will always be set to true or false. |
| EventBasedHold *bool `protobuf:"varint,23,opt,name=event_based_hold,json=eventBasedHold,proto3,oneof" json:"event_based_hold,omitempty"` |
| // Output only. The owner of the object. This will always be the uploader of |
| // the object. |
| Owner *Owner `protobuf:"bytes,24,opt,name=owner,proto3" json:"owner,omitempty"` |
| // Metadata of Customer-Supplied Encryption Key, if the object is encrypted by |
| // such a key. |
| CustomerEncryption *CustomerEncryption `protobuf:"bytes,25,opt,name=customer_encryption,json=customerEncryption,proto3" json:"customer_encryption,omitempty"` |
| // A user-specified timestamp set on an object. |
| CustomTime *timestamppb.Timestamp `protobuf:"bytes,26,opt,name=custom_time,json=customTime,proto3" json:"custom_time,omitempty"` |
| // Output only. This is the time when the object became soft-deleted. |
| // |
| // Soft-deleted objects are only accessible if a soft_delete_policy is |
| // enabled. Also see hard_delete_time. |
| SoftDeleteTime *timestamppb.Timestamp `protobuf:"bytes,28,opt,name=soft_delete_time,json=softDeleteTime,proto3,oneof" json:"soft_delete_time,omitempty"` |
| // Output only. The time when the object will be permanently deleted. |
| // |
| // Only set when an object becomes soft-deleted with a soft_delete_policy. |
| // Otherwise, the object will not be accessible. |
| HardDeleteTime *timestamppb.Timestamp `protobuf:"bytes,29,opt,name=hard_delete_time,json=hardDeleteTime,proto3,oneof" json:"hard_delete_time,omitempty"` |
| } |
| |
| func (x *Object) Reset() { |
| *x = Object{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_storage_v2_storage_proto_msgTypes[50] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *Object) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*Object) ProtoMessage() {} |
| |
| func (x *Object) ProtoReflect() protoreflect.Message { |
| mi := &file_google_storage_v2_storage_proto_msgTypes[50] |
| 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 Object.ProtoReflect.Descriptor instead. |
| func (*Object) Descriptor() ([]byte, []int) { |
| return file_google_storage_v2_storage_proto_rawDescGZIP(), []int{50} |
| } |
| |
| func (x *Object) GetName() string { |
| if x != nil { |
| return x.Name |
| } |
| return "" |
| } |
| |
| func (x *Object) GetBucket() string { |
| if x != nil { |
| return x.Bucket |
| } |
| return "" |
| } |
| |
| func (x *Object) GetEtag() string { |
| if x != nil { |
| return x.Etag |
| } |
| return "" |
| } |
| |
| func (x *Object) GetGeneration() int64 { |
| if x != nil { |
| return x.Generation |
| } |
| return 0 |
| } |
| |
| func (x *Object) GetMetageneration() int64 { |
| if x != nil { |
| return x.Metageneration |
| } |
| return 0 |
| } |
| |
| func (x *Object) GetStorageClass() string { |
| if x != nil { |
| return x.StorageClass |
| } |
| return "" |
| } |
| |
| func (x *Object) GetSize() int64 { |
| if x != nil { |
| return x.Size |
| } |
| return 0 |
| } |
| |
| func (x *Object) GetContentEncoding() string { |
| if x != nil { |
| return x.ContentEncoding |
| } |
| return "" |
| } |
| |
| func (x *Object) GetContentDisposition() string { |
| if x != nil { |
| return x.ContentDisposition |
| } |
| return "" |
| } |
| |
| func (x *Object) GetCacheControl() string { |
| if x != nil { |
| return x.CacheControl |
| } |
| return "" |
| } |
| |
| func (x *Object) GetAcl() []*ObjectAccessControl { |
| if x != nil { |
| return x.Acl |
| } |
| return nil |
| } |
| |
| func (x *Object) GetContentLanguage() string { |
| if x != nil { |
| return x.ContentLanguage |
| } |
| return "" |
| } |
| |
| func (x *Object) GetDeleteTime() *timestamppb.Timestamp { |
| if x != nil { |
| return x.DeleteTime |
| } |
| return nil |
| } |
| |
| func (x *Object) GetContentType() string { |
| if x != nil { |
| return x.ContentType |
| } |
| return "" |
| } |
| |
| func (x *Object) GetCreateTime() *timestamppb.Timestamp { |
| if x != nil { |
| return x.CreateTime |
| } |
| return nil |
| } |
| |
| func (x *Object) GetComponentCount() int32 { |
| if x != nil { |
| return x.ComponentCount |
| } |
| return 0 |
| } |
| |
| func (x *Object) GetChecksums() *ObjectChecksums { |
| if x != nil { |
| return x.Checksums |
| } |
| return nil |
| } |
| |
| func (x *Object) GetUpdateTime() *timestamppb.Timestamp { |
| if x != nil { |
| return x.UpdateTime |
| } |
| return nil |
| } |
| |
| func (x *Object) GetKmsKey() string { |
| if x != nil { |
| return x.KmsKey |
| } |
| return "" |
| } |
| |
| func (x *Object) GetUpdateStorageClassTime() *timestamppb.Timestamp { |
| if x != nil { |
| return x.UpdateStorageClassTime |
| } |
| return nil |
| } |
| |
| func (x *Object) GetTemporaryHold() bool { |
| if x != nil { |
| return x.TemporaryHold |
| } |
| return false |
| } |
| |
| func (x *Object) GetRetentionExpireTime() *timestamppb.Timestamp { |
| if x != nil { |
| return x.RetentionExpireTime |
| } |
| return nil |
| } |
| |
| func (x *Object) GetMetadata() map[string]string { |
| if x != nil { |
| return x.Metadata |
| } |
| return nil |
| } |
| |
| func (x *Object) GetEventBasedHold() bool { |
| if x != nil && x.EventBasedHold != nil { |
| return *x.EventBasedHold |
| } |
| return false |
| } |
| |
| func (x *Object) GetOwner() *Owner { |
| if x != nil { |
| return x.Owner |
| } |
| return nil |
| } |
| |
| func (x *Object) GetCustomerEncryption() *CustomerEncryption { |
| if x != nil { |
| return x.CustomerEncryption |
| } |
| return nil |
| } |
| |
| func (x *Object) GetCustomTime() *timestamppb.Timestamp { |
| if x != nil { |
| return x.CustomTime |
| } |
| return nil |
| } |
| |
| func (x *Object) GetSoftDeleteTime() *timestamppb.Timestamp { |
| if x != nil { |
| return x.SoftDeleteTime |
| } |
| return nil |
| } |
| |
| func (x *Object) GetHardDeleteTime() *timestamppb.Timestamp { |
| if x != nil { |
| return x.HardDeleteTime |
| } |
| return nil |
| } |
| |
| // An access-control entry. |
| type ObjectAccessControl struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // The access permission for the entity. |
| Role string `protobuf:"bytes,1,opt,name=role,proto3" json:"role,omitempty"` |
| // The ID of the access-control entry. |
| Id string `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"` |
| // The entity holding the permission, in one of the following forms: |
| // * `user-{userid}` |
| // * `user-{email}` |
| // * `group-{groupid}` |
| // * `group-{email}` |
| // * `domain-{domain}` |
| // * `project-{team}-{projectnumber}` |
| // * `project-{team}-{projectid}` |
| // * `allUsers` |
| // * `allAuthenticatedUsers` |
| // Examples: |
| // * The user `liz@example.com` would be `user-liz@example.com`. |
| // * The group `example@googlegroups.com` would be |
| // `group-example@googlegroups.com`. |
| // * All members of the Google Apps for Business domain `example.com` would be |
| // `domain-example.com`. |
| // For project entities, `project-{team}-{projectnumber}` format will be |
| // returned on response. |
| Entity string `protobuf:"bytes,3,opt,name=entity,proto3" json:"entity,omitempty"` |
| // Output only. The alternative entity format, if exists. For project |
| // entities, `project-{team}-{projectid}` format will be returned on response. |
| EntityAlt string `protobuf:"bytes,9,opt,name=entity_alt,json=entityAlt,proto3" json:"entity_alt,omitempty"` |
| // The ID for the entity, if any. |
| EntityId string `protobuf:"bytes,4,opt,name=entity_id,json=entityId,proto3" json:"entity_id,omitempty"` |
| // The etag of the ObjectAccessControl. |
| // If included in the metadata of an update or delete request message, the |
| // operation will only be performed if the etag matches that of the live |
| // object's ObjectAccessControl. |
| Etag string `protobuf:"bytes,8,opt,name=etag,proto3" json:"etag,omitempty"` |
| // The email address associated with the entity, if any. |
| Email string `protobuf:"bytes,5,opt,name=email,proto3" json:"email,omitempty"` |
| // The domain associated with the entity, if any. |
| Domain string `protobuf:"bytes,6,opt,name=domain,proto3" json:"domain,omitempty"` |
| // The project team associated with the entity, if any. |
| ProjectTeam *ProjectTeam `protobuf:"bytes,7,opt,name=project_team,json=projectTeam,proto3" json:"project_team,omitempty"` |
| } |
| |
| func (x *ObjectAccessControl) Reset() { |
| *x = ObjectAccessControl{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_storage_v2_storage_proto_msgTypes[51] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *ObjectAccessControl) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*ObjectAccessControl) ProtoMessage() {} |
| |
| func (x *ObjectAccessControl) ProtoReflect() protoreflect.Message { |
| mi := &file_google_storage_v2_storage_proto_msgTypes[51] |
| 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 ObjectAccessControl.ProtoReflect.Descriptor instead. |
| func (*ObjectAccessControl) Descriptor() ([]byte, []int) { |
| return file_google_storage_v2_storage_proto_rawDescGZIP(), []int{51} |
| } |
| |
| func (x *ObjectAccessControl) GetRole() string { |
| if x != nil { |
| return x.Role |
| } |
| return "" |
| } |
| |
| func (x *ObjectAccessControl) GetId() string { |
| if x != nil { |
| return x.Id |
| } |
| return "" |
| } |
| |
| func (x *ObjectAccessControl) GetEntity() string { |
| if x != nil { |
| return x.Entity |
| } |
| return "" |
| } |
| |
| func (x *ObjectAccessControl) GetEntityAlt() string { |
| if x != nil { |
| return x.EntityAlt |
| } |
| return "" |
| } |
| |
| func (x *ObjectAccessControl) GetEntityId() string { |
| if x != nil { |
| return x.EntityId |
| } |
| return "" |
| } |
| |
| func (x *ObjectAccessControl) GetEtag() string { |
| if x != nil { |
| return x.Etag |
| } |
| return "" |
| } |
| |
| func (x *ObjectAccessControl) GetEmail() string { |
| if x != nil { |
| return x.Email |
| } |
| return "" |
| } |
| |
| func (x *ObjectAccessControl) GetDomain() string { |
| if x != nil { |
| return x.Domain |
| } |
| return "" |
| } |
| |
| func (x *ObjectAccessControl) GetProjectTeam() *ProjectTeam { |
| if x != nil { |
| return x.ProjectTeam |
| } |
| return nil |
| } |
| |
| // The result of a call to Objects.ListObjects |
| type ListObjectsResponse struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // The list of items. |
| Objects []*Object `protobuf:"bytes,1,rep,name=objects,proto3" json:"objects,omitempty"` |
| // The list of prefixes of objects matching-but-not-listed up to and including |
| // the requested delimiter. |
| Prefixes []string `protobuf:"bytes,2,rep,name=prefixes,proto3" json:"prefixes,omitempty"` |
| // The continuation token, used to page through large result sets. Provide |
| // this value in a subsequent request to return the next page of results. |
| NextPageToken string `protobuf:"bytes,3,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` |
| } |
| |
| func (x *ListObjectsResponse) Reset() { |
| *x = ListObjectsResponse{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_storage_v2_storage_proto_msgTypes[52] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *ListObjectsResponse) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*ListObjectsResponse) ProtoMessage() {} |
| |
| func (x *ListObjectsResponse) ProtoReflect() protoreflect.Message { |
| mi := &file_google_storage_v2_storage_proto_msgTypes[52] |
| 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 ListObjectsResponse.ProtoReflect.Descriptor instead. |
| func (*ListObjectsResponse) Descriptor() ([]byte, []int) { |
| return file_google_storage_v2_storage_proto_rawDescGZIP(), []int{52} |
| } |
| |
| func (x *ListObjectsResponse) GetObjects() []*Object { |
| if x != nil { |
| return x.Objects |
| } |
| return nil |
| } |
| |
| func (x *ListObjectsResponse) GetPrefixes() []string { |
| if x != nil { |
| return x.Prefixes |
| } |
| return nil |
| } |
| |
| func (x *ListObjectsResponse) GetNextPageToken() string { |
| if x != nil { |
| return x.NextPageToken |
| } |
| return "" |
| } |
| |
| // Represents the Viewers, Editors, or Owners of a given project. |
| type ProjectTeam struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // The project number. |
| ProjectNumber string `protobuf:"bytes,1,opt,name=project_number,json=projectNumber,proto3" json:"project_number,omitempty"` |
| // The team. |
| Team string `protobuf:"bytes,2,opt,name=team,proto3" json:"team,omitempty"` |
| } |
| |
| func (x *ProjectTeam) Reset() { |
| *x = ProjectTeam{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_storage_v2_storage_proto_msgTypes[53] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *ProjectTeam) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*ProjectTeam) ProtoMessage() {} |
| |
| func (x *ProjectTeam) ProtoReflect() protoreflect.Message { |
| mi := &file_google_storage_v2_storage_proto_msgTypes[53] |
| 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 ProjectTeam.ProtoReflect.Descriptor instead. |
| func (*ProjectTeam) Descriptor() ([]byte, []int) { |
| return file_google_storage_v2_storage_proto_rawDescGZIP(), []int{53} |
| } |
| |
| func (x *ProjectTeam) GetProjectNumber() string { |
| if x != nil { |
| return x.ProjectNumber |
| } |
| return "" |
| } |
| |
| func (x *ProjectTeam) GetTeam() string { |
| if x != nil { |
| return x.Team |
| } |
| return "" |
| } |
| |
| // A service account, owned by Cloud Storage, which may be used when taking |
| // action on behalf of a given project, for example to publish Pub/Sub |
| // notifications or to retrieve security keys. |
| type ServiceAccount struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // The ID of the notification. |
| EmailAddress string `protobuf:"bytes,1,opt,name=email_address,json=emailAddress,proto3" json:"email_address,omitempty"` |
| } |
| |
| func (x *ServiceAccount) Reset() { |
| *x = ServiceAccount{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_storage_v2_storage_proto_msgTypes[54] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *ServiceAccount) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*ServiceAccount) ProtoMessage() {} |
| |
| func (x *ServiceAccount) ProtoReflect() protoreflect.Message { |
| mi := &file_google_storage_v2_storage_proto_msgTypes[54] |
| 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 ServiceAccount.ProtoReflect.Descriptor instead. |
| func (*ServiceAccount) Descriptor() ([]byte, []int) { |
| return file_google_storage_v2_storage_proto_rawDescGZIP(), []int{54} |
| } |
| |
| func (x *ServiceAccount) GetEmailAddress() string { |
| if x != nil { |
| return x.EmailAddress |
| } |
| return "" |
| } |
| |
| // The owner of a specific resource. |
| type Owner struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // The entity, in the form `user-`*userId*. |
| Entity string `protobuf:"bytes,1,opt,name=entity,proto3" json:"entity,omitempty"` |
| // The ID for the entity. |
| EntityId string `protobuf:"bytes,2,opt,name=entity_id,json=entityId,proto3" json:"entity_id,omitempty"` |
| } |
| |
| func (x *Owner) Reset() { |
| *x = Owner{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_storage_v2_storage_proto_msgTypes[55] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *Owner) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*Owner) ProtoMessage() {} |
| |
| func (x *Owner) ProtoReflect() protoreflect.Message { |
| mi := &file_google_storage_v2_storage_proto_msgTypes[55] |
| 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 Owner.ProtoReflect.Descriptor instead. |
| func (*Owner) Descriptor() ([]byte, []int) { |
| return file_google_storage_v2_storage_proto_rawDescGZIP(), []int{55} |
| } |
| |
| func (x *Owner) GetEntity() string { |
| if x != nil { |
| return x.Entity |
| } |
| return "" |
| } |
| |
| func (x *Owner) GetEntityId() string { |
| if x != nil { |
| return x.EntityId |
| } |
| return "" |
| } |
| |
| // Specifies a requested range of bytes to download. |
| type ContentRange struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // The starting offset of the object data. This value is inclusive. |
| Start int64 `protobuf:"varint,1,opt,name=start,proto3" json:"start,omitempty"` |
| // The ending offset of the object data. This value is exclusive. |
| End int64 `protobuf:"varint,2,opt,name=end,proto3" json:"end,omitempty"` |
| // The complete length of the object data. |
| CompleteLength int64 `protobuf:"varint,3,opt,name=complete_length,json=completeLength,proto3" json:"complete_length,omitempty"` |
| } |
| |
| func (x *ContentRange) Reset() { |
| *x = ContentRange{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_storage_v2_storage_proto_msgTypes[56] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *ContentRange) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*ContentRange) ProtoMessage() {} |
| |
| func (x *ContentRange) ProtoReflect() protoreflect.Message { |
| mi := &file_google_storage_v2_storage_proto_msgTypes[56] |
| 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 ContentRange.ProtoReflect.Descriptor instead. |
| func (*ContentRange) Descriptor() ([]byte, []int) { |
| return file_google_storage_v2_storage_proto_rawDescGZIP(), []int{56} |
| } |
| |
| func (x *ContentRange) GetStart() int64 { |
| if x != nil { |
| return x.Start |
| } |
| return 0 |
| } |
| |
| func (x *ContentRange) GetEnd() int64 { |
| if x != nil { |
| return x.End |
| } |
| return 0 |
| } |
| |
| func (x *ContentRange) GetCompleteLength() int64 { |
| if x != nil { |
| return x.CompleteLength |
| } |
| return 0 |
| } |
| |
| // Description of a source object for a composition request. |
| type ComposeObjectRequest_SourceObject struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Required. The source object's name. All source objects must reside in the |
| // same bucket. |
| Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` |
| // The generation of this object to use as the source. |
| Generation int64 `protobuf:"varint,2,opt,name=generation,proto3" json:"generation,omitempty"` |
| // Conditions that must be met for this operation to execute. |
| ObjectPreconditions *ComposeObjectRequest_SourceObject_ObjectPreconditions `protobuf:"bytes,3,opt,name=object_preconditions,json=objectPreconditions,proto3" json:"object_preconditions,omitempty"` |
| } |
| |
| func (x *ComposeObjectRequest_SourceObject) Reset() { |
| *x = ComposeObjectRequest_SourceObject{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_storage_v2_storage_proto_msgTypes[57] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *ComposeObjectRequest_SourceObject) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*ComposeObjectRequest_SourceObject) ProtoMessage() {} |
| |
| func (x *ComposeObjectRequest_SourceObject) ProtoReflect() protoreflect.Message { |
| mi := &file_google_storage_v2_storage_proto_msgTypes[57] |
| 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 ComposeObjectRequest_SourceObject.ProtoReflect.Descriptor instead. |
| func (*ComposeObjectRequest_SourceObject) Descriptor() ([]byte, []int) { |
| return file_google_storage_v2_storage_proto_rawDescGZIP(), []int{12, 0} |
| } |
| |
| func (x *ComposeObjectRequest_SourceObject) GetName() string { |
| if x != nil { |
| return x.Name |
| } |
| return "" |
| } |
| |
| func (x *ComposeObjectRequest_SourceObject) GetGeneration() int64 { |
| if x != nil { |
| return x.Generation |
| } |
| return 0 |
| } |
| |
| func (x *ComposeObjectRequest_SourceObject) GetObjectPreconditions() *ComposeObjectRequest_SourceObject_ObjectPreconditions { |
| if x != nil { |
| return x.ObjectPreconditions |
| } |
| return nil |
| } |
| |
| // Preconditions for a source object of a composition request. |
| type ComposeObjectRequest_SourceObject_ObjectPreconditions struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Only perform the composition if the generation of the source object |
| // that would be used matches this value. If this value and a generation |
| // are both specified, they must be the same value or the call will fail. |
| IfGenerationMatch *int64 `protobuf:"varint,1,opt,name=if_generation_match,json=ifGenerationMatch,proto3,oneof" json:"if_generation_match,omitempty"` |
| } |
| |
| func (x *ComposeObjectRequest_SourceObject_ObjectPreconditions) Reset() { |
| *x = ComposeObjectRequest_SourceObject_ObjectPreconditions{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_storage_v2_storage_proto_msgTypes[58] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *ComposeObjectRequest_SourceObject_ObjectPreconditions) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*ComposeObjectRequest_SourceObject_ObjectPreconditions) ProtoMessage() {} |
| |
| func (x *ComposeObjectRequest_SourceObject_ObjectPreconditions) ProtoReflect() protoreflect.Message { |
| mi := &file_google_storage_v2_storage_proto_msgTypes[58] |
| 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 ComposeObjectRequest_SourceObject_ObjectPreconditions.ProtoReflect.Descriptor instead. |
| func (*ComposeObjectRequest_SourceObject_ObjectPreconditions) Descriptor() ([]byte, []int) { |
| return file_google_storage_v2_storage_proto_rawDescGZIP(), []int{12, 0, 0} |
| } |
| |
| func (x *ComposeObjectRequest_SourceObject_ObjectPreconditions) GetIfGenerationMatch() int64 { |
| if x != nil && x.IfGenerationMatch != nil { |
| return *x.IfGenerationMatch |
| } |
| return 0 |
| } |
| |
| // Billing properties of a bucket. |
| type Bucket_Billing struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // When set to true, Requester Pays is enabled for this bucket. |
| RequesterPays bool `protobuf:"varint,1,opt,name=requester_pays,json=requesterPays,proto3" json:"requester_pays,omitempty"` |
| } |
| |
| func (x *Bucket_Billing) Reset() { |
| *x = Bucket_Billing{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_storage_v2_storage_proto_msgTypes[59] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *Bucket_Billing) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*Bucket_Billing) ProtoMessage() {} |
| |
| func (x *Bucket_Billing) ProtoReflect() protoreflect.Message { |
| mi := &file_google_storage_v2_storage_proto_msgTypes[59] |
| 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 Bucket_Billing.ProtoReflect.Descriptor instead. |
| func (*Bucket_Billing) Descriptor() ([]byte, []int) { |
| return file_google_storage_v2_storage_proto_rawDescGZIP(), []int{43, 0} |
| } |
| |
| func (x *Bucket_Billing) GetRequesterPays() bool { |
| if x != nil { |
| return x.RequesterPays |
| } |
| return false |
| } |
| |
| // Cross-Origin Response sharing (CORS) properties for a bucket. |
| // For more on Cloud Storage and CORS, see |
| // https://cloud.google.com/storage/docs/cross-origin. |
| // For more on CORS in general, see https://tools.ietf.org/html/rfc6454. |
| type Bucket_Cors struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // The list of Origins eligible to receive CORS response headers. See |
| // [https://tools.ietf.org/html/rfc6454][RFC 6454] for more on origins. |
| // Note: "*" is permitted in the list of origins, and means "any Origin". |
| Origin []string `protobuf:"bytes,1,rep,name=origin,proto3" json:"origin,omitempty"` |
| // The list of HTTP methods on which to include CORS response headers, |
| // (`GET`, `OPTIONS`, `POST`, etc) Note: "*" is permitted in the list of |
| // methods, and means "any method". |
| Method []string `protobuf:"bytes,2,rep,name=method,proto3" json:"method,omitempty"` |
| // The list of HTTP headers other than the |
| // [https://www.w3.org/TR/cors/#simple-response-header][simple response |
| // headers] to give permission for the user-agent to share across domains. |
| ResponseHeader []string `protobuf:"bytes,3,rep,name=response_header,json=responseHeader,proto3" json:"response_header,omitempty"` |
| // The value, in seconds, to return in the |
| // [https://www.w3.org/TR/cors/#access-control-max-age-response-header][Access-Control-Max-Age |
| // header] used in preflight responses. |
| MaxAgeSeconds int32 `protobuf:"varint,4,opt,name=max_age_seconds,json=maxAgeSeconds,proto3" json:"max_age_seconds,omitempty"` |
| } |
| |
| func (x *Bucket_Cors) Reset() { |
| *x = Bucket_Cors{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_storage_v2_storage_proto_msgTypes[60] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *Bucket_Cors) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*Bucket_Cors) ProtoMessage() {} |
| |
| func (x *Bucket_Cors) ProtoReflect() protoreflect.Message { |
| mi := &file_google_storage_v2_storage_proto_msgTypes[60] |
| 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 Bucket_Cors.ProtoReflect.Descriptor instead. |
| func (*Bucket_Cors) Descriptor() ([]byte, []int) { |
| return file_google_storage_v2_storage_proto_rawDescGZIP(), []int{43, 1} |
| } |
| |
| func (x *Bucket_Cors) GetOrigin() []string { |
| if x != nil { |
| return x.Origin |
| } |
| return nil |
| } |
| |
| func (x *Bucket_Cors) GetMethod() []string { |
| if x != nil { |
| return x.Method |
| } |
| return nil |
| } |
| |
| func (x *Bucket_Cors) GetResponseHeader() []string { |
| if x != nil { |
| return x.ResponseHeader |
| } |
| return nil |
| } |
| |
| func (x *Bucket_Cors) GetMaxAgeSeconds() int32 { |
| if x != nil { |
| return x.MaxAgeSeconds |
| } |
| return 0 |
| } |
| |
| // Encryption properties of a bucket. |
| type Bucket_Encryption struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // The name of the Cloud KMS key that will be used to encrypt objects |
| // inserted into this bucket, if no encryption method is specified. |
| DefaultKmsKey string `protobuf:"bytes,1,opt,name=default_kms_key,json=defaultKmsKey,proto3" json:"default_kms_key,omitempty"` |
| } |
| |
| func (x *Bucket_Encryption) Reset() { |
| *x = Bucket_Encryption{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_storage_v2_storage_proto_msgTypes[61] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *Bucket_Encryption) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*Bucket_Encryption) ProtoMessage() {} |
| |
| func (x *Bucket_Encryption) ProtoReflect() protoreflect.Message { |
| mi := &file_google_storage_v2_storage_proto_msgTypes[61] |
| 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 Bucket_Encryption.ProtoReflect.Descriptor instead. |
| func (*Bucket_Encryption) Descriptor() ([]byte, []int) { |
| return file_google_storage_v2_storage_proto_rawDescGZIP(), []int{43, 2} |
| } |
| |
| func (x *Bucket_Encryption) GetDefaultKmsKey() string { |
| if x != nil { |
| return x.DefaultKmsKey |
| } |
| return "" |
| } |
| |
| // Bucket restriction options. |
| type Bucket_IamConfig struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Bucket restriction options currently enforced on the bucket. |
| UniformBucketLevelAccess *Bucket_IamConfig_UniformBucketLevelAccess `protobuf:"bytes,1,opt,name=uniform_bucket_level_access,json=uniformBucketLevelAccess,proto3" json:"uniform_bucket_level_access,omitempty"` |
| // Whether IAM will enforce public access prevention. Valid values are |
| // "enforced" or "inherited". |
| PublicAccessPrevention string `protobuf:"bytes,3,opt,name=public_access_prevention,json=publicAccessPrevention,proto3" json:"public_access_prevention,omitempty"` |
| } |
| |
| func (x *Bucket_IamConfig) Reset() { |
| *x = Bucket_IamConfig{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_storage_v2_storage_proto_msgTypes[62] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *Bucket_IamConfig) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*Bucket_IamConfig) ProtoMessage() {} |
| |
| func (x *Bucket_IamConfig) ProtoReflect() protoreflect.Message { |
| mi := &file_google_storage_v2_storage_proto_msgTypes[62] |
| 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 Bucket_IamConfig.ProtoReflect.Descriptor instead. |
| func (*Bucket_IamConfig) Descriptor() ([]byte, []int) { |
| return file_google_storage_v2_storage_proto_rawDescGZIP(), []int{43, 3} |
| } |
| |
| func (x *Bucket_IamConfig) GetUniformBucketLevelAccess() *Bucket_IamConfig_UniformBucketLevelAccess { |
| if x != nil { |
| return x.UniformBucketLevelAccess |
| } |
| return nil |
| } |
| |
| func (x *Bucket_IamConfig) GetPublicAccessPrevention() string { |
| if x != nil { |
| return x.PublicAccessPrevention |
| } |
| return "" |
| } |
| |
| // Lifecycle properties of a bucket. |
| // For more information, see https://cloud.google.com/storage/docs/lifecycle. |
| type Bucket_Lifecycle struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // A lifecycle management rule, which is made of an action to take and the |
| // condition(s) under which the action will be taken. |
| Rule []*Bucket_Lifecycle_Rule `protobuf:"bytes,1,rep,name=rule,proto3" json:"rule,omitempty"` |
| } |
| |
| func (x *Bucket_Lifecycle) Reset() { |
| *x = Bucket_Lifecycle{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_storage_v2_storage_proto_msgTypes[63] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *Bucket_Lifecycle) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*Bucket_Lifecycle) ProtoMessage() {} |
| |
| func (x *Bucket_Lifecycle) ProtoReflect() protoreflect.Message { |
| mi := &file_google_storage_v2_storage_proto_msgTypes[63] |
| 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 Bucket_Lifecycle.ProtoReflect.Descriptor instead. |
| func (*Bucket_Lifecycle) Descriptor() ([]byte, []int) { |
| return file_google_storage_v2_storage_proto_rawDescGZIP(), []int{43, 4} |
| } |
| |
| func (x *Bucket_Lifecycle) GetRule() []*Bucket_Lifecycle_Rule { |
| if x != nil { |
| return x.Rule |
| } |
| return nil |
| } |
| |
| // Logging-related properties of a bucket. |
| type Bucket_Logging struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // The destination bucket where the current bucket's logs should be placed, |
| // using path format (like `projects/123456/buckets/foo`). |
| LogBucket string `protobuf:"bytes,1,opt,name=log_bucket,json=logBucket,proto3" json:"log_bucket,omitempty"` |
| // A prefix for log object names. |
| LogObjectPrefix string `protobuf:"bytes,2,opt,name=log_object_prefix,json=logObjectPrefix,proto3" json:"log_object_prefix,omitempty"` |
| } |
| |
| func (x *Bucket_Logging) Reset() { |
| *x = Bucket_Logging{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_storage_v2_storage_proto_msgTypes[64] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *Bucket_Logging) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*Bucket_Logging) ProtoMessage() {} |
| |
| func (x *Bucket_Logging) ProtoReflect() protoreflect.Message { |
| mi := &file_google_storage_v2_storage_proto_msgTypes[64] |
| 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 Bucket_Logging.ProtoReflect.Descriptor instead. |
| func (*Bucket_Logging) Descriptor() ([]byte, []int) { |
| return file_google_storage_v2_storage_proto_rawDescGZIP(), []int{43, 5} |
| } |
| |
| func (x *Bucket_Logging) GetLogBucket() string { |
| if x != nil { |
| return x.LogBucket |
| } |
| return "" |
| } |
| |
| func (x *Bucket_Logging) GetLogObjectPrefix() string { |
| if x != nil { |
| return x.LogObjectPrefix |
| } |
| return "" |
| } |
| |
| // Retention policy properties of a bucket. |
| type Bucket_RetentionPolicy struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Server-determined value that indicates the time from which policy was |
| // enforced and effective. |
| EffectiveTime *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=effective_time,json=effectiveTime,proto3" json:"effective_time,omitempty"` |
| // Once locked, an object retention policy cannot be modified. |
| IsLocked bool `protobuf:"varint,2,opt,name=is_locked,json=isLocked,proto3" json:"is_locked,omitempty"` |
| // The duration that objects need to be retained. Retention duration must be |
| // greater than zero and less than 100 years. Note that enforcement of |
| // retention periods less than a day is not guaranteed. Such periods should |
| // only be used for testing purposes. Any `nanos` value specified will be |
| // rounded down to the nearest second. |
| RetentionDuration *durationpb.Duration `protobuf:"bytes,4,opt,name=retention_duration,json=retentionDuration,proto3" json:"retention_duration,omitempty"` |
| } |
| |
| func (x *Bucket_RetentionPolicy) Reset() { |
| *x = Bucket_RetentionPolicy{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_storage_v2_storage_proto_msgTypes[65] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *Bucket_RetentionPolicy) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*Bucket_RetentionPolicy) ProtoMessage() {} |
| |
| func (x *Bucket_RetentionPolicy) ProtoReflect() protoreflect.Message { |
| mi := &file_google_storage_v2_storage_proto_msgTypes[65] |
| 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 Bucket_RetentionPolicy.ProtoReflect.Descriptor instead. |
| func (*Bucket_RetentionPolicy) Descriptor() ([]byte, []int) { |
| return file_google_storage_v2_storage_proto_rawDescGZIP(), []int{43, 6} |
| } |
| |
| func (x *Bucket_RetentionPolicy) GetEffectiveTime() *timestamppb.Timestamp { |
| if x != nil { |
| return x.EffectiveTime |
| } |
| return nil |
| } |
| |
| func (x *Bucket_RetentionPolicy) GetIsLocked() bool { |
| if x != nil { |
| return x.IsLocked |
| } |
| return false |
| } |
| |
| func (x *Bucket_RetentionPolicy) GetRetentionDuration() *durationpb.Duration { |
| if x != nil { |
| return x.RetentionDuration |
| } |
| return nil |
| } |
| |
| // Soft delete policy properties of a bucket. |
| type Bucket_SoftDeletePolicy struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // The period of time that soft-deleted objects in the bucket must be |
| // retained and cannot be permanently deleted. The duration must be greater |
| // than or equal to 7 days and less than 1 year. |
| RetentionDuration *durationpb.Duration `protobuf:"bytes,1,opt,name=retention_duration,json=retentionDuration,proto3,oneof" json:"retention_duration,omitempty"` |
| // Time from which the policy was effective. This is service-provided. |
| EffectiveTime *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=effective_time,json=effectiveTime,proto3,oneof" json:"effective_time,omitempty"` |
| } |
| |
| func (x *Bucket_SoftDeletePolicy) Reset() { |
| *x = Bucket_SoftDeletePolicy{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_storage_v2_storage_proto_msgTypes[66] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *Bucket_SoftDeletePolicy) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*Bucket_SoftDeletePolicy) ProtoMessage() {} |
| |
| func (x *Bucket_SoftDeletePolicy) ProtoReflect() protoreflect.Message { |
| mi := &file_google_storage_v2_storage_proto_msgTypes[66] |
| 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 Bucket_SoftDeletePolicy.ProtoReflect.Descriptor instead. |
| func (*Bucket_SoftDeletePolicy) Descriptor() ([]byte, []int) { |
| return file_google_storage_v2_storage_proto_rawDescGZIP(), []int{43, 7} |
| } |
| |
| func (x *Bucket_SoftDeletePolicy) GetRetentionDuration() *durationpb.Duration { |
| if x != nil { |
| return x.RetentionDuration |
| } |
| return nil |
| } |
| |
| func (x *Bucket_SoftDeletePolicy) GetEffectiveTime() *timestamppb.Timestamp { |
| if x != nil { |
| return x.EffectiveTime |
| } |
| return nil |
| } |
| |
| // Properties of a bucket related to versioning. |
| // For more on Cloud Storage versioning, see |
| // https://cloud.google.com/storage/docs/object-versioning. |
| type Bucket_Versioning struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // While set to true, versioning is fully enabled for this bucket. |
| Enabled bool `protobuf:"varint,1,opt,name=enabled,proto3" json:"enabled,omitempty"` |
| } |
| |
| func (x *Bucket_Versioning) Reset() { |
| *x = Bucket_Versioning{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_storage_v2_storage_proto_msgTypes[67] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *Bucket_Versioning) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*Bucket_Versioning) ProtoMessage() {} |
| |
| func (x *Bucket_Versioning) ProtoReflect() protoreflect.Message { |
| mi := &file_google_storage_v2_storage_proto_msgTypes[67] |
| 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 Bucket_Versioning.ProtoReflect.Descriptor instead. |
| func (*Bucket_Versioning) Descriptor() ([]byte, []int) { |
| return file_google_storage_v2_storage_proto_rawDescGZIP(), []int{43, 8} |
| } |
| |
| func (x *Bucket_Versioning) GetEnabled() bool { |
| if x != nil { |
| return x.Enabled |
| } |
| return false |
| } |
| |
| // Properties of a bucket related to accessing the contents as a static |
| // website. For more on hosting a static website via Cloud Storage, see |
| // https://cloud.google.com/storage/docs/hosting-static-website. |
| type Bucket_Website struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // If the requested object path is missing, the service will ensure the path |
| // has a trailing '/', append this suffix, and attempt to retrieve the |
| // resulting object. This allows the creation of `index.html` |
| // objects to represent directory pages. |
| MainPageSuffix string `protobuf:"bytes,1,opt,name=main_page_suffix,json=mainPageSuffix,proto3" json:"main_page_suffix,omitempty"` |
| // If the requested object path is missing, and any |
| // `mainPageSuffix` object is missing, if applicable, the service |
| // will return the named object from this bucket as the content for a |
| // [https://tools.ietf.org/html/rfc7231#section-6.5.4][404 Not Found] |
| // result. |
| NotFoundPage string `protobuf:"bytes,2,opt,name=not_found_page,json=notFoundPage,proto3" json:"not_found_page,omitempty"` |
| } |
| |
| func (x *Bucket_Website) Reset() { |
| *x = Bucket_Website{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_storage_v2_storage_proto_msgTypes[68] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *Bucket_Website) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*Bucket_Website) ProtoMessage() {} |
| |
| func (x *Bucket_Website) ProtoReflect() protoreflect.Message { |
| mi := &file_google_storage_v2_storage_proto_msgTypes[68] |
| 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 Bucket_Website.ProtoReflect.Descriptor instead. |
| func (*Bucket_Website) Descriptor() ([]byte, []int) { |
| return file_google_storage_v2_storage_proto_rawDescGZIP(), []int{43, 9} |
| } |
| |
| func (x *Bucket_Website) GetMainPageSuffix() string { |
| if x != nil { |
| return x.MainPageSuffix |
| } |
| return "" |
| } |
| |
| func (x *Bucket_Website) GetNotFoundPage() string { |
| if x != nil { |
| return x.NotFoundPage |
| } |
| return "" |
| } |
| |
| // Configuration for Custom Dual Regions. It should specify precisely two |
| // eligible regions within the same Multiregion. More information on regions |
| // may be found [https://cloud.google.com/storage/docs/locations][here]. |
| type Bucket_CustomPlacementConfig struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // List of locations to use for data placement. |
| DataLocations []string `protobuf:"bytes,1,rep,name=data_locations,json=dataLocations,proto3" json:"data_locations,omitempty"` |
| } |
| |
| func (x *Bucket_CustomPlacementConfig) Reset() { |
| *x = Bucket_CustomPlacementConfig{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_storage_v2_storage_proto_msgTypes[69] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *Bucket_CustomPlacementConfig) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*Bucket_CustomPlacementConfig) ProtoMessage() {} |
| |
| func (x *Bucket_CustomPlacementConfig) ProtoReflect() protoreflect.Message { |
| mi := &file_google_storage_v2_storage_proto_msgTypes[69] |
| 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 Bucket_CustomPlacementConfig.ProtoReflect.Descriptor instead. |
| func (*Bucket_CustomPlacementConfig) Descriptor() ([]byte, []int) { |
| return file_google_storage_v2_storage_proto_rawDescGZIP(), []int{43, 10} |
| } |
| |
| func (x *Bucket_CustomPlacementConfig) GetDataLocations() []string { |
| if x != nil { |
| return x.DataLocations |
| } |
| return nil |
| } |
| |
| // Configuration for a bucket's Autoclass feature. |
| type Bucket_Autoclass struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Enables Autoclass. |
| Enabled bool `protobuf:"varint,1,opt,name=enabled,proto3" json:"enabled,omitempty"` |
| // Output only. Latest instant at which the `enabled` field was set to true |
| // after being disabled/unconfigured or set to false after being enabled. If |
| // Autoclass is enabled when the bucket is created, the toggle_time is set |
| // to the bucket creation time. |
| ToggleTime *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=toggle_time,json=toggleTime,proto3" json:"toggle_time,omitempty"` |
| // An object in an Autoclass bucket will eventually cool down to the |
| // terminal storage class if there is no access to the object. |
| // The only valid values are NEARLINE and ARCHIVE. |
| TerminalStorageClass *string `protobuf:"bytes,3,opt,name=terminal_storage_class,json=terminalStorageClass,proto3,oneof" json:"terminal_storage_class,omitempty"` |
| // Output only. Latest instant at which the autoclass terminal storage class |
| // was updated. |
| TerminalStorageClassUpdateTime *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=terminal_storage_class_update_time,json=terminalStorageClassUpdateTime,proto3,oneof" json:"terminal_storage_class_update_time,omitempty"` |
| } |
| |
| func (x *Bucket_Autoclass) Reset() { |
| *x = Bucket_Autoclass{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_storage_v2_storage_proto_msgTypes[70] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *Bucket_Autoclass) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*Bucket_Autoclass) ProtoMessage() {} |
| |
| func (x *Bucket_Autoclass) ProtoReflect() protoreflect.Message { |
| mi := &file_google_storage_v2_storage_proto_msgTypes[70] |
| 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 Bucket_Autoclass.ProtoReflect.Descriptor instead. |
| func (*Bucket_Autoclass) Descriptor() ([]byte, []int) { |
| return file_google_storage_v2_storage_proto_rawDescGZIP(), []int{43, 11} |
| } |
| |
| func (x *Bucket_Autoclass) GetEnabled() bool { |
| if x != nil { |
| return x.Enabled |
| } |
| return false |
| } |
| |
| func (x *Bucket_Autoclass) GetToggleTime() *timestamppb.Timestamp { |
| if x != nil { |
| return x.ToggleTime |
| } |
| return nil |
| } |
| |
| func (x *Bucket_Autoclass) GetTerminalStorageClass() string { |
| if x != nil && x.TerminalStorageClass != nil { |
| return *x.TerminalStorageClass |
| } |
| return "" |
| } |
| |
| func (x *Bucket_Autoclass) GetTerminalStorageClassUpdateTime() *timestamppb.Timestamp { |
| if x != nil { |
| return x.TerminalStorageClassUpdateTime |
| } |
| return nil |
| } |
| |
| // Configuration for a bucket's hierarchical namespace feature. |
| type Bucket_HierarchicalNamespace struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Optional. Enables the hierarchical namespace feature. |
| Enabled bool `protobuf:"varint,1,opt,name=enabled,proto3" json:"enabled,omitempty"` |
| } |
| |
| func (x *Bucket_HierarchicalNamespace) Reset() { |
| *x = Bucket_HierarchicalNamespace{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_storage_v2_storage_proto_msgTypes[71] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *Bucket_HierarchicalNamespace) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*Bucket_HierarchicalNamespace) ProtoMessage() {} |
| |
| func (x *Bucket_HierarchicalNamespace) ProtoReflect() protoreflect.Message { |
| mi := &file_google_storage_v2_storage_proto_msgTypes[71] |
| 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 Bucket_HierarchicalNamespace.ProtoReflect.Descriptor instead. |
| func (*Bucket_HierarchicalNamespace) Descriptor() ([]byte, []int) { |
| return file_google_storage_v2_storage_proto_rawDescGZIP(), []int{43, 12} |
| } |
| |
| func (x *Bucket_HierarchicalNamespace) GetEnabled() bool { |
| if x != nil { |
| return x.Enabled |
| } |
| return false |
| } |
| |
| // Settings for Uniform Bucket level access. |
| // See https://cloud.google.com/storage/docs/uniform-bucket-level-access. |
| type Bucket_IamConfig_UniformBucketLevelAccess struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // If set, access checks only use bucket-level IAM policies or above. |
| Enabled bool `protobuf:"varint,1,opt,name=enabled,proto3" json:"enabled,omitempty"` |
| // The deadline time for changing |
| // `iam_config.uniform_bucket_level_access.enabled` from `true` to |
| // `false`. Mutable until the specified deadline is reached, but not |
| // afterward. |
| LockTime *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=lock_time,json=lockTime,proto3" json:"lock_time,omitempty"` |
| } |
| |
| func (x *Bucket_IamConfig_UniformBucketLevelAccess) Reset() { |
| *x = Bucket_IamConfig_UniformBucketLevelAccess{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_storage_v2_storage_proto_msgTypes[73] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *Bucket_IamConfig_UniformBucketLevelAccess) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*Bucket_IamConfig_UniformBucketLevelAccess) ProtoMessage() {} |
| |
| func (x *Bucket_IamConfig_UniformBucketLevelAccess) ProtoReflect() protoreflect.Message { |
| mi := &file_google_storage_v2_storage_proto_msgTypes[73] |
| 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 Bucket_IamConfig_UniformBucketLevelAccess.ProtoReflect.Descriptor instead. |
| func (*Bucket_IamConfig_UniformBucketLevelAccess) Descriptor() ([]byte, []int) { |
| return file_google_storage_v2_storage_proto_rawDescGZIP(), []int{43, 3, 0} |
| } |
| |
| func (x *Bucket_IamConfig_UniformBucketLevelAccess) GetEnabled() bool { |
| if x != nil { |
| return x.Enabled |
| } |
| return false |
| } |
| |
| func (x *Bucket_IamConfig_UniformBucketLevelAccess) GetLockTime() *timestamppb.Timestamp { |
| if x != nil { |
| return x.LockTime |
| } |
| return nil |
| } |
| |
| // A lifecycle Rule, combining an action to take on an object and a |
| // condition which will trigger that action. |
| type Bucket_Lifecycle_Rule struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // The action to take. |
| Action *Bucket_Lifecycle_Rule_Action `protobuf:"bytes,1,opt,name=action,proto3" json:"action,omitempty"` |
| // The condition(s) under which the action will be taken. |
| Condition *Bucket_Lifecycle_Rule_Condition `protobuf:"bytes,2,opt,name=condition,proto3" json:"condition,omitempty"` |
| } |
| |
| func (x *Bucket_Lifecycle_Rule) Reset() { |
| *x = Bucket_Lifecycle_Rule{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_storage_v2_storage_proto_msgTypes[74] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *Bucket_Lifecycle_Rule) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*Bucket_Lifecycle_Rule) ProtoMessage() {} |
| |
| func (x *Bucket_Lifecycle_Rule) ProtoReflect() protoreflect.Message { |
| mi := &file_google_storage_v2_storage_proto_msgTypes[74] |
| 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 Bucket_Lifecycle_Rule.ProtoReflect.Descriptor instead. |
| func (*Bucket_Lifecycle_Rule) Descriptor() ([]byte, []int) { |
| return file_google_storage_v2_storage_proto_rawDescGZIP(), []int{43, 4, 0} |
| } |
| |
| func (x *Bucket_Lifecycle_Rule) GetAction() *Bucket_Lifecycle_Rule_Action { |
| if x != nil { |
| return x.Action |
| } |
| return nil |
| } |
| |
| func (x *Bucket_Lifecycle_Rule) GetCondition() *Bucket_Lifecycle_Rule_Condition { |
| if x != nil { |
| return x.Condition |
| } |
| return nil |
| } |
| |
| // An action to take on an object. |
| type Bucket_Lifecycle_Rule_Action struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Type of the action. Currently, only `Delete`, `SetStorageClass`, and |
| // `AbortIncompleteMultipartUpload` are supported. |
| Type string `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"` |
| // Target storage class. Required iff the type of the action is |
| // SetStorageClass. |
| StorageClass string `protobuf:"bytes,2,opt,name=storage_class,json=storageClass,proto3" json:"storage_class,omitempty"` |
| } |
| |
| func (x *Bucket_Lifecycle_Rule_Action) Reset() { |
| *x = Bucket_Lifecycle_Rule_Action{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_storage_v2_storage_proto_msgTypes[75] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *Bucket_Lifecycle_Rule_Action) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*Bucket_Lifecycle_Rule_Action) ProtoMessage() {} |
| |
| func (x *Bucket_Lifecycle_Rule_Action) ProtoReflect() protoreflect.Message { |
| mi := &file_google_storage_v2_storage_proto_msgTypes[75] |
| 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 Bucket_Lifecycle_Rule_Action.ProtoReflect.Descriptor instead. |
| func (*Bucket_Lifecycle_Rule_Action) Descriptor() ([]byte, []int) { |
| return file_google_storage_v2_storage_proto_rawDescGZIP(), []int{43, 4, 0, 0} |
| } |
| |
| func (x *Bucket_Lifecycle_Rule_Action) GetType() string { |
| if x != nil { |
| return x.Type |
| } |
| return "" |
| } |
| |
| func (x *Bucket_Lifecycle_Rule_Action) GetStorageClass() string { |
| if x != nil { |
| return x.StorageClass |
| } |
| return "" |
| } |
| |
| // A condition of an object which triggers some action. |
| type Bucket_Lifecycle_Rule_Condition struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Age of an object (in days). This condition is satisfied when an |
| // object reaches the specified age. |
| // A value of 0 indicates that all objects immediately match this |
| // condition. |
| AgeDays *int32 `protobuf:"varint,1,opt,name=age_days,json=ageDays,proto3,oneof" json:"age_days,omitempty"` |
| // This condition is satisfied when an object is created before midnight |
| // of the specified date in UTC. |
| CreatedBefore *date.Date `protobuf:"bytes,2,opt,name=created_before,json=createdBefore,proto3" json:"created_before,omitempty"` |
| // Relevant only for versioned objects. If the value is |
| // `true`, this condition matches live objects; if the value |
| // is `false`, it matches archived objects. |
| IsLive *bool `protobuf:"varint,3,opt,name=is_live,json=isLive,proto3,oneof" json:"is_live,omitempty"` |
| // Relevant only for versioned objects. If the value is N, this |
| // condition is satisfied when there are at least N versions (including |
| // the live version) newer than this version of the object. |
| NumNewerVersions *int32 `protobuf:"varint,4,opt,name=num_newer_versions,json=numNewerVersions,proto3,oneof" json:"num_newer_versions,omitempty"` |
| // Objects having any of the storage classes specified by this condition |
| // will be matched. Values include `MULTI_REGIONAL`, `REGIONAL`, |
| // `NEARLINE`, `COLDLINE`, `STANDARD`, and |
| // `DURABLE_REDUCED_AVAILABILITY`. |
| MatchesStorageClass []string `protobuf:"bytes,5,rep,name=matches_storage_class,json=matchesStorageClass,proto3" json:"matches_storage_class,omitempty"` |
| // Number of days that have elapsed since the custom timestamp set on an |
| // object. |
| // The value of the field must be a nonnegative integer. |
| DaysSinceCustomTime *int32 `protobuf:"varint,7,opt,name=days_since_custom_time,json=daysSinceCustomTime,proto3,oneof" json:"days_since_custom_time,omitempty"` |
| // An object matches this condition if the custom timestamp set on the |
| // object is before the specified date in UTC. |
| CustomTimeBefore *date.Date `protobuf:"bytes,8,opt,name=custom_time_before,json=customTimeBefore,proto3" json:"custom_time_before,omitempty"` |
| // This condition is relevant only for versioned objects. An object |
| // version satisfies this condition only if these many days have been |
| // passed since it became noncurrent. The value of the field must be a |
| // nonnegative integer. If it's zero, the object version will become |
| // eligible for Lifecycle action as soon as it becomes noncurrent. |
| DaysSinceNoncurrentTime *int32 `protobuf:"varint,9,opt,name=days_since_noncurrent_time,json=daysSinceNoncurrentTime,proto3,oneof" json:"days_since_noncurrent_time,omitempty"` |
| // This condition is relevant only for versioned objects. An object |
| // version satisfies this condition only if it became noncurrent before |
| // the specified date in UTC. |
| NoncurrentTimeBefore *date.Date `protobuf:"bytes,10,opt,name=noncurrent_time_before,json=noncurrentTimeBefore,proto3" json:"noncurrent_time_before,omitempty"` |
| // List of object name prefixes. If any prefix exactly matches the |
| // beginning of the object name, the condition evaluates to true. |
| MatchesPrefix []string `protobuf:"bytes,11,rep,name=matches_prefix,json=matchesPrefix,proto3" json:"matches_prefix,omitempty"` |
| // List of object name suffixes. If any suffix exactly matches the |
| // end of the object name, the condition evaluates to true. |
| MatchesSuffix []string `protobuf:"bytes,12,rep,name=matches_suffix,json=matchesSuffix,proto3" json:"matches_suffix,omitempty"` |
| } |
| |
| func (x *Bucket_Lifecycle_Rule_Condition) Reset() { |
| *x = Bucket_Lifecycle_Rule_Condition{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_google_storage_v2_storage_proto_msgTypes[76] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *Bucket_Lifecycle_Rule_Condition) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*Bucket_Lifecycle_Rule_Condition) ProtoMessage() {} |
| |
| func (x *Bucket_Lifecycle_Rule_Condition) ProtoReflect() protoreflect.Message { |
| mi := &file_google_storage_v2_storage_proto_msgTypes[76] |
| 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 Bucket_Lifecycle_Rule_Condition.ProtoReflect.Descriptor instead. |
| func (*Bucket_Lifecycle_Rule_Condition) Descriptor() ([]byte, []int) { |
| return file_google_storage_v2_storage_proto_rawDescGZIP(), []int{43, 4, 0, 1} |
| } |
| |
| func (x *Bucket_Lifecycle_Rule_Condition) GetAgeDays() int32 { |
| if x != nil && x.AgeDays != nil { |
| return *x.AgeDays |
| } |
| return 0 |
| } |
| |
| func (x *Bucket_Lifecycle_Rule_Condition) GetCreatedBefore() *date.Date { |
| if x != nil { |
| return x.CreatedBefore |
| } |
| return nil |
| } |
| |
| func (x *Bucket_Lifecycle_Rule_Condition) GetIsLive() bool { |
| if x != nil && x.IsLive != nil { |
| return *x.IsLive |
| } |
| return false |
| } |
| |
| func (x *Bucket_Lifecycle_Rule_Condition) GetNumNewerVersions() int32 { |
| if x != nil && x.NumNewerVersions != nil { |
| return *x.NumNewerVersions |
| } |
| return 0 |
| } |
| |
| func (x *Bucket_Lifecycle_Rule_Condition) GetMatchesStorageClass() []string { |
| if x != nil { |
| return x.MatchesStorageClass |
| } |
| return nil |
| } |
| |
| func (x *Bucket_Lifecycle_Rule_Condition) GetDaysSinceCustomTime() int32 { |
| if x != nil && x.DaysSinceCustomTime != nil { |
| return *x.DaysSinceCustomTime |
| } |
| return 0 |
| } |
| |
| func (x *Bucket_Lifecycle_Rule_Condition) GetCustomTimeBefore() *date.Date { |
| if x != nil { |
| return x.CustomTimeBefore |
| } |
| return nil |
| } |
| |
| func (x *Bucket_Lifecycle_Rule_Condition) GetDaysSinceNoncurrentTime() int32 { |
| if x != nil && x.DaysSinceNoncurrentTime != nil { |
| return *x.DaysSinceNoncurrentTime |
| } |
| return 0 |
| } |
| |
| func (x *Bucket_Lifecycle_Rule_Condition) GetNoncurrentTimeBefore() *date.Date { |
| if x != nil { |
| return x.NoncurrentTimeBefore |
| } |
| return nil |
| } |
| |
| func (x *Bucket_Lifecycle_Rule_Condition) GetMatchesPrefix() []string { |
| if x != nil { |
| return x.MatchesPrefix |
| } |
| return nil |
| } |
| |
| func (x *Bucket_Lifecycle_Rule_Condition) GetMatchesSuffix() []string { |
| if x != nil { |
| return x.MatchesSuffix |
| } |
| return nil |
| } |
| |
| var File_google_storage_v2_storage_proto protoreflect.FileDescriptor |
| |
| var file_google_storage_v2_storage_proto_rawDesc = []byte{ |
| 0x0a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, |
| 0x2f, 0x76, 0x32, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, |
| 0x6f, 0x12, 0x11, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, |
| 0x65, 0x2e, 0x76, 0x32, 0x1a, 0x17, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, |
| 0x2f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, |
| 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, |
| 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19, |
| 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75, |
| 0x72, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x18, 0x67, 0x6f, 0x6f, 0x67, 0x6c, |
| 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x72, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x70, 0x72, |
| 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x69, 0x61, 0x6d, 0x2f, |
| 0x76, 0x31, 0x2f, 0x69, 0x61, 0x6d, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x70, 0x72, |
| 0x6f, 0x74, 0x6f, 0x1a, 0x1a, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x69, 0x61, 0x6d, 0x2f, |
| 0x76, 0x31, 0x2f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, |
| 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, |
| 0x2f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, |
| 0x1b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, |
| 0x2f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x20, 0x67, 0x6f, |
| 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x66, 0x69, |
| 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, |
| 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, |
| 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, |
| 0x16, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x2f, 0x64, 0x61, 0x74, |
| 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x8d, 0x02, 0x0a, 0x13, 0x44, 0x65, 0x6c, 0x65, |
| 0x74, 0x65, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, |
| 0x39, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x25, 0xe0, |
| 0x41, 0x02, 0xfa, 0x41, 0x1f, 0x0a, 0x1d, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x67, |
| 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x42, 0x75, |
| 0x63, 0x6b, 0x65, 0x74, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x3b, 0x0a, 0x17, 0x69, 0x66, |
| 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, |
| 0x6d, 0x61, 0x74, 0x63, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x48, 0x00, 0x52, 0x15, 0x69, |
| 0x66, 0x4d, 0x65, 0x74, 0x61, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, |
| 0x61, 0x74, 0x63, 0x68, 0x88, 0x01, 0x01, 0x12, 0x42, 0x0a, 0x1b, 0x69, 0x66, 0x5f, 0x6d, 0x65, |
| 0x74, 0x61, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x6f, 0x74, |
| 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x48, 0x01, 0x52, 0x18, |
| 0x69, 0x66, 0x4d, 0x65, 0x74, 0x61, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, |
| 0x4e, 0x6f, 0x74, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x88, 0x01, 0x01, 0x42, 0x1a, 0x0a, 0x18, 0x5f, |
| 0x69, 0x66, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, |
| 0x6e, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x42, 0x1e, 0x0a, 0x1c, 0x5f, 0x69, 0x66, 0x5f, 0x6d, |
| 0x65, 0x74, 0x61, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x6f, |
| 0x74, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x22, 0xd6, 0x02, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x42, |
| 0x75, 0x63, 0x6b, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x39, 0x0a, 0x04, |
| 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x25, 0xe0, 0x41, 0x02, 0xfa, |
| 0x41, 0x1f, 0x0a, 0x1d, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x67, 0x6f, 0x6f, 0x67, |
| 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x42, 0x75, 0x63, 0x6b, 0x65, |
| 0x74, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x3b, 0x0a, 0x17, 0x69, 0x66, 0x5f, 0x6d, 0x65, |
| 0x74, 0x61, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x61, 0x74, |
| 0x63, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x48, 0x00, 0x52, 0x15, 0x69, 0x66, 0x4d, 0x65, |
| 0x74, 0x61, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x61, 0x74, 0x63, |
| 0x68, 0x88, 0x01, 0x01, 0x12, 0x42, 0x0a, 0x1b, 0x69, 0x66, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x67, |
| 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x6f, 0x74, 0x5f, 0x6d, 0x61, |
| 0x74, 0x63, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x48, 0x01, 0x52, 0x18, 0x69, 0x66, 0x4d, |
| 0x65, 0x74, 0x61, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x6f, 0x74, |
| 0x4d, 0x61, 0x74, 0x63, 0x68, 0x88, 0x01, 0x01, 0x12, 0x3c, 0x0a, 0x09, 0x72, 0x65, 0x61, 0x64, |
| 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, |
| 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, |
| 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x48, 0x02, 0x52, 0x08, 0x72, 0x65, 0x61, 0x64, 0x4d, |
| 0x61, 0x73, 0x6b, 0x88, 0x01, 0x01, 0x42, 0x1a, 0x0a, 0x18, 0x5f, 0x69, 0x66, 0x5f, 0x6d, 0x65, |
| 0x74, 0x61, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x61, 0x74, |
| 0x63, 0x68, 0x42, 0x1e, 0x0a, 0x1c, 0x5f, 0x69, 0x66, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x67, 0x65, |
| 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x6f, 0x74, 0x5f, 0x6d, 0x61, 0x74, |
| 0x63, 0x68, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x6d, 0x61, 0x73, 0x6b, |
| 0x22, 0x93, 0x02, 0x0a, 0x13, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x75, 0x63, 0x6b, 0x65, |
| 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3d, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, |
| 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x25, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x1f, |
| 0x12, 0x1d, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, |
| 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x52, |
| 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x31, 0x0a, 0x06, 0x62, 0x75, 0x63, 0x6b, 0x65, |
| 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, |
| 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x75, 0x63, 0x6b, |
| 0x65, 0x74, 0x52, 0x06, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x20, 0x0a, 0x09, 0x62, 0x75, |
| 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, |
| 0x41, 0x02, 0x52, 0x08, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x0e, |
| 0x70, 0x72, 0x65, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x5f, 0x61, 0x63, 0x6c, 0x18, 0x06, |
| 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x70, 0x72, 0x65, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, |
| 0x41, 0x63, 0x6c, 0x12, 0x41, 0x0a, 0x1d, 0x70, 0x72, 0x65, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, |
| 0x64, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, |
| 0x5f, 0x61, 0x63, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x1a, 0x70, 0x72, 0x65, 0x64, |
| 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x4f, 0x62, 0x6a, |
| 0x65, 0x63, 0x74, 0x41, 0x63, 0x6c, 0x22, 0xf3, 0x01, 0x0a, 0x12, 0x4c, 0x69, 0x73, 0x74, 0x42, |
| 0x75, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3d, 0x0a, |
| 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x25, 0xe0, |
| 0x41, 0x02, 0xfa, 0x41, 0x1f, 0x12, 0x1d, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x67, |
| 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x42, 0x75, |
| 0x63, 0x6b, 0x65, 0x74, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x1b, 0x0a, 0x09, |
| 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, |
| 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x67, |
| 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, |
| 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x72, 0x65, 0x66, |
| 0x69, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, |
| 0x12, 0x3c, 0x0a, 0x09, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x05, 0x20, |
| 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, |
| 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x48, |
| 0x00, 0x52, 0x08, 0x72, 0x65, 0x61, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x88, 0x01, 0x01, 0x42, 0x0c, |
| 0x0a, 0x0a, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x22, 0x72, 0x0a, 0x13, |
| 0x4c, 0x69, 0x73, 0x74, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, |
| 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x07, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x18, 0x01, |
| 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x73, 0x74, |
| 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x52, |
| 0x07, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, |
| 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, |
| 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, |
| 0x22, 0x9e, 0x01, 0x0a, 0x20, 0x4c, 0x6f, 0x63, 0x6b, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x52, |
| 0x65, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, |
| 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3d, 0x0a, 0x06, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x18, |
| 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x25, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x1f, 0x0a, 0x1d, 0x73, |
| 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, |
| 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x52, 0x06, 0x62, 0x75, |
| 0x63, 0x6b, 0x65, 0x74, 0x12, 0x3b, 0x0a, 0x17, 0x69, 0x66, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x67, |
| 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x18, |
| 0x02, 0x20, 0x01, 0x28, 0x03, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x15, 0x69, 0x66, 0x4d, 0x65, |
| 0x74, 0x61, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x61, 0x74, 0x63, |
| 0x68, 0x22, 0xb6, 0x03, 0x0a, 0x13, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x42, 0x75, 0x63, 0x6b, |
| 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x36, 0x0a, 0x06, 0x62, 0x75, 0x63, |
| 0x6b, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, |
| 0x6c, 0x65, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x75, |
| 0x63, 0x6b, 0x65, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x62, 0x75, 0x63, 0x6b, 0x65, |
| 0x74, 0x12, 0x3b, 0x0a, 0x17, 0x69, 0x66, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x67, 0x65, 0x6e, 0x65, |
| 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x18, 0x02, 0x20, 0x01, |
| 0x28, 0x03, 0x48, 0x00, 0x52, 0x15, 0x69, 0x66, 0x4d, 0x65, 0x74, 0x61, 0x67, 0x65, 0x6e, 0x65, |
| 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x88, 0x01, 0x01, 0x12, 0x42, |
| 0x0a, 0x1b, 0x69, 0x66, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, |
| 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x6f, 0x74, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x18, 0x03, 0x20, |
| 0x01, 0x28, 0x03, 0x48, 0x01, 0x52, 0x18, 0x69, 0x66, 0x4d, 0x65, 0x74, 0x61, 0x67, 0x65, 0x6e, |
| 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x6f, 0x74, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x88, |
| 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0e, 0x70, 0x72, 0x65, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, |
| 0x5f, 0x61, 0x63, 0x6c, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x70, 0x72, 0x65, 0x64, |
| 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x41, 0x63, 0x6c, 0x12, 0x41, 0x0a, 0x1d, 0x70, 0x72, 0x65, |
| 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, |
| 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x61, 0x63, 0x6c, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, |
| 0x52, 0x1a, 0x70, 0x72, 0x65, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x44, 0x65, 0x66, 0x61, |
| 0x75, 0x6c, 0x74, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x41, 0x63, 0x6c, 0x12, 0x40, 0x0a, 0x0b, |
| 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x06, 0x20, 0x01, 0x28, |
| 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, |
| 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x42, 0x03, 0xe0, |
| 0x41, 0x02, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x73, 0x6b, 0x42, 0x1a, |
| 0x0a, 0x18, 0x5f, 0x69, 0x66, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, |
| 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x42, 0x1e, 0x0a, 0x1c, 0x5f, 0x69, |
| 0x66, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, |
| 0x5f, 0x6e, 0x6f, 0x74, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x22, 0x68, 0x0a, 0x1f, 0x44, 0x65, |
| 0x6c, 0x65, 0x74, 0x65, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, |
| 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x45, 0x0a, |
| 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x31, 0xe0, 0x41, 0x02, |
| 0xfa, 0x41, 0x2b, 0x0a, 0x29, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x67, 0x6f, 0x6f, |
| 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x4e, 0x6f, 0x74, 0x69, |
| 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x04, |
| 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x65, 0x0a, 0x1c, 0x47, 0x65, 0x74, 0x4e, 0x6f, 0x74, 0x69, 0x66, |
| 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, |
| 0x75, 0x65, 0x73, 0x74, 0x12, 0x45, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, |
| 0x28, 0x09, 0x42, 0x31, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x2b, 0x0a, 0x29, 0x73, 0x74, 0x6f, 0x72, |
| 0x61, 0x67, 0x65, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, |
| 0x6f, 0x6d, 0x2f, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, |
| 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xc9, 0x01, 0x0a, 0x1f, |
| 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, |
| 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, |
| 0x49, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, |
| 0x31, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x2b, 0x12, 0x29, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, |
| 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, |
| 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, |
| 0x69, 0x67, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x5b, 0x0a, 0x13, 0x6e, 0x6f, |
| 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, |
| 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, |
| 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x32, 0x2e, 0x4e, 0x6f, 0x74, 0x69, |
| 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42, 0x03, |
| 0xe0, 0x41, 0x02, 0x52, 0x12, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, |
| 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0xa7, 0x01, 0x0a, 0x1e, 0x4c, 0x69, 0x73, 0x74, |
| 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, |
| 0x69, 0x67, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x49, 0x0a, 0x06, 0x70, 0x61, |
| 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x31, 0xe0, 0x41, 0x02, 0xfa, |
| 0x41, 0x2b, 0x12, 0x29, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x67, 0x6f, 0x6f, 0x67, |
| 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x4e, 0x6f, 0x74, 0x69, 0x66, |
| 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x06, 0x70, |
| 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, |
| 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, |
| 0x7a, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, |
| 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, |
| 0x6e, 0x22, 0xa3, 0x01, 0x0a, 0x1f, 0x4c, 0x69, 0x73, 0x74, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, |
| 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x52, 0x65, 0x73, |
| 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x58, 0x0a, 0x14, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, |
| 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x18, 0x01, 0x20, |
| 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x73, 0x74, 0x6f, |
| 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x32, 0x2e, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, |
| 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x13, 0x6e, 0x6f, 0x74, 0x69, |
| 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x12, |
| 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, |
| 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, |
| 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0xc3, 0x07, 0x0a, 0x14, 0x43, 0x6f, 0x6d, 0x70, |
| 0x6f, 0x73, 0x65, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, |
| 0x12, 0x40, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, |
| 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x73, |
| 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x32, 0x2e, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, |
| 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, |
| 0x6f, 0x6e, 0x12, 0x5b, 0x0a, 0x0e, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x6f, 0x62, 0x6a, |
| 0x65, 0x63, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x67, 0x6f, 0x6f, |
| 0x67, 0x6c, 0x65, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x32, 0x2e, 0x43, |
| 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x65, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, |
| 0x65, 0x73, 0x74, 0x2e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, |
| 0x52, 0x0d, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x12, |
| 0x3c, 0x0a, 0x1a, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, |
| 0x72, 0x65, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x5f, 0x61, 0x63, 0x6c, 0x18, 0x09, 0x20, |
| 0x01, 0x28, 0x09, 0x52, 0x18, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, |
| 0x50, 0x72, 0x65, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x41, 0x63, 0x6c, 0x12, 0x33, 0x0a, |
| 0x13, 0x69, 0x66, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, |
| 0x61, 0x74, 0x63, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x48, 0x00, 0x52, 0x11, 0x69, 0x66, |
| 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x88, |
| 0x01, 0x01, 0x12, 0x3b, 0x0a, 0x17, 0x69, 0x66, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x67, 0x65, 0x6e, |
| 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x18, 0x05, 0x20, |
| 0x01, 0x28, 0x03, 0x48, 0x01, 0x52, 0x15, 0x69, 0x66, 0x4d, 0x65, 0x74, 0x61, 0x67, 0x65, 0x6e, |
| 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x88, 0x01, 0x01, 0x12, |
| 0x3f, 0x0a, 0x07, 0x6b, 0x6d, 0x73, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, |
| 0x42, 0x26, 0xfa, 0x41, 0x23, 0x0a, 0x21, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x6b, 0x6d, 0x73, 0x2e, |
| 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x43, |
| 0x72, 0x79, 0x70, 0x74, 0x6f, 0x4b, 0x65, 0x79, 0x52, 0x06, 0x6b, 0x6d, 0x73, 0x4b, 0x65, 0x79, |
| 0x12, 0x6d, 0x0a, 0x1c, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x5f, 0x6f, 0x62, 0x6a, 0x65, 0x63, |
| 0x74, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, |
| 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, |
| 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, |
| 0x6e, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x61, |
| 0x72, 0x61, 0x6d, 0x73, 0x52, 0x19, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4f, 0x62, 0x6a, 0x65, |
| 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, |
| 0x4d, 0x0a, 0x10, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, |
| 0x75, 0x6d, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x67, 0x6f, 0x6f, 0x67, |
| 0x6c, 0x65, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x32, 0x2e, 0x4f, 0x62, |
| 0x6a, 0x65, 0x63, 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x73, 0x52, 0x0f, 0x6f, |
| 0x62, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x73, 0x1a, 0xa8, |
| 0x02, 0x0a, 0x0c, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x12, |
| 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, |
| 0x41, 0x02, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x67, 0x65, 0x6e, 0x65, |
| 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x67, 0x65, |
| 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x7b, 0x0a, 0x14, 0x6f, 0x62, 0x6a, 0x65, |
| 0x63, 0x74, 0x5f, 0x70, 0x72, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, |
| 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x48, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, |
| 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6f, |
| 0x73, 0x65, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, |
| 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x4f, 0x62, 0x6a, |
| 0x65, 0x63, 0x74, 0x50, 0x72, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, |
| 0x52, 0x13, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x50, 0x72, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x69, |
| 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x62, 0x0a, 0x13, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x50, |
| 0x72, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x33, 0x0a, 0x13, |
| 0x69, 0x66, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x61, |
| 0x74, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x48, 0x00, 0x52, 0x11, 0x69, 0x66, 0x47, |
| 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x88, 0x01, |
| 0x01, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x69, 0x66, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, |
| 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x69, 0x66, |
| 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x61, 0x74, 0x63, |
| 0x68, 0x42, 0x1a, 0x0a, 0x18, 0x5f, 0x69, 0x66, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x67, 0x65, 0x6e, |
| 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x22, 0xe2, 0x04, |
| 0x0a, 0x13, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, |
| 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3d, 0x0a, 0x06, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x18, |
| 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x25, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x1f, 0x0a, 0x1d, 0x73, |
| 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, |
| 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x52, 0x06, 0x62, 0x75, |
| 0x63, 0x6b, 0x65, 0x74, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x02, |
| 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x6f, 0x62, 0x6a, 0x65, 0x63, |
| 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, |
| 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, |
| 0x6e, 0x12, 0x33, 0x0a, 0x13, 0x69, 0x66, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, |
| 0x6f, 0x6e, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x48, 0x00, |
| 0x52, 0x11, 0x69, 0x66, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x61, |
| 0x74, 0x63, 0x68, 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x17, 0x69, 0x66, 0x5f, 0x67, 0x65, 0x6e, |
| 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x6f, 0x74, 0x5f, 0x6d, 0x61, 0x74, 0x63, |
| 0x68, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x48, 0x01, 0x52, 0x14, 0x69, 0x66, 0x47, 0x65, 0x6e, |
| 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x6f, 0x74, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x88, |
| 0x01, 0x01, 0x12, 0x3b, 0x0a, 0x17, 0x69, 0x66, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x67, 0x65, 0x6e, |
| 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x18, 0x07, 0x20, |
| 0x01, 0x28, 0x03, 0x48, 0x02, 0x52, 0x15, 0x69, 0x66, 0x4d, 0x65, 0x74, 0x61, 0x67, 0x65, 0x6e, |
| 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x88, 0x01, 0x01, 0x12, |
| 0x42, 0x0a, 0x1b, 0x69, 0x66, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, |
| 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x6f, 0x74, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x18, 0x08, |
| 0x20, 0x01, 0x28, 0x03, 0x48, 0x03, 0x52, 0x18, 0x69, 0x66, 0x4d, 0x65, 0x74, 0x61, 0x67, 0x65, |
| 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x6f, 0x74, 0x4d, 0x61, 0x74, 0x63, 0x68, |
| 0x88, 0x01, 0x01, 0x12, 0x6d, 0x0a, 0x1c, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x5f, 0x6f, 0x62, |
| 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x70, 0x61, 0x72, |
| 0x61, 0x6d, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, |
| 0x6c, 0x65, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x6f, |
| 0x6d, 0x6d, 0x6f, 0x6e, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, |
| 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x19, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4f, |
| 0x62, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x61, 0x72, 0x61, |
| 0x6d, 0x73, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x69, 0x66, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, |
| 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x42, 0x1a, 0x0a, 0x18, 0x5f, 0x69, |
| 0x66, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x6f, 0x74, |
| 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x42, 0x1a, 0x0a, 0x18, 0x5f, 0x69, 0x66, 0x5f, 0x6d, 0x65, |
| 0x74, 0x61, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x61, 0x74, |
| 0x63, 0x68, 0x42, 0x1e, 0x0a, 0x1c, 0x5f, 0x69, 0x66, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x67, 0x65, |
| 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x6f, 0x74, 0x5f, 0x6d, 0x61, 0x74, |
| 0x63, 0x68, 0x22, 0xa9, 0x05, 0x0a, 0x14, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x4f, 0x62, |
| 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3d, 0x0a, 0x06, 0x62, |
| 0x75, 0x63, 0x6b, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x25, 0xe0, 0x41, 0x02, |
| 0xfa, 0x41, 0x1f, 0x0a, 0x1d, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x67, 0x6f, 0x6f, |
| 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x42, 0x75, 0x63, 0x6b, |
| 0x65, 0x74, 0x52, 0x06, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x62, |
| 0x6a, 0x65, 0x63, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, |
| 0x06, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x23, 0x0a, 0x0a, 0x67, 0x65, 0x6e, 0x65, 0x72, |
| 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x42, 0x03, 0xe0, 0x41, 0x02, |
| 0x52, 0x0a, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x33, 0x0a, 0x13, |
| 0x69, 0x66, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x61, |
| 0x74, 0x63, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x48, 0x00, 0x52, 0x11, 0x69, 0x66, 0x47, |
| 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x88, 0x01, |
| 0x01, 0x12, 0x3a, 0x0a, 0x17, 0x69, 0x66, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, |
| 0x6f, 0x6e, 0x5f, 0x6e, 0x6f, 0x74, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x18, 0x05, 0x20, 0x01, |
| 0x28, 0x03, 0x48, 0x01, 0x52, 0x14, 0x69, 0x66, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, |
| 0x6f, 0x6e, 0x4e, 0x6f, 0x74, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x88, 0x01, 0x01, 0x12, 0x3b, 0x0a, |
| 0x17, 0x69, 0x66, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, |
| 0x6f, 0x6e, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x48, 0x02, |
| 0x52, 0x15, 0x69, 0x66, 0x4d, 0x65, 0x74, 0x61, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, |
| 0x6f, 0x6e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x88, 0x01, 0x01, 0x12, 0x42, 0x0a, 0x1b, 0x69, 0x66, |
| 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, |
| 0x6e, 0x6f, 0x74, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x48, |
| 0x03, 0x52, 0x18, 0x69, 0x66, 0x4d, 0x65, 0x74, 0x61, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, |
| 0x69, 0x6f, 0x6e, 0x4e, 0x6f, 0x74, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x88, 0x01, 0x01, 0x12, 0x2b, |
| 0x0a, 0x0f, 0x63, 0x6f, 0x70, 0x79, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x61, 0x63, |
| 0x6c, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x48, 0x04, 0x52, 0x0d, 0x63, 0x6f, 0x70, 0x79, 0x53, |
| 0x6f, 0x75, 0x72, 0x63, 0x65, 0x41, 0x63, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x6d, 0x0a, 0x1c, 0x63, |
| 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x5f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x72, 0x65, 0x71, |
| 0x75, 0x65, 0x73, 0x74, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, |
| 0x0b, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, |
| 0x67, 0x65, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4f, 0x62, 0x6a, 0x65, |
| 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, |
| 0x19, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, |
| 0x75, 0x65, 0x73, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x69, |
| 0x66, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x61, 0x74, |
| 0x63, 0x68, 0x42, 0x1a, 0x0a, 0x18, 0x5f, 0x69, 0x66, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, |
| 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x6f, 0x74, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x42, 0x1a, |
| 0x0a, 0x18, 0x5f, 0x69, 0x66, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, |
| 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x42, 0x1e, 0x0a, 0x1c, 0x5f, 0x69, |
| 0x66, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, |
| 0x5f, 0x6e, 0x6f, 0x74, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x63, |
| 0x6f, 0x70, 0x79, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x61, 0x63, 0x6c, 0x22, 0x3f, |
| 0x0a, 0x1b, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x75, 0x6d, 0x61, 0x62, 0x6c, |
| 0x65, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, |
| 0x09, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, |
| 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x49, 0x64, 0x22, |
| 0x1e, 0x0a, 0x1c, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x75, 0x6d, 0x61, 0x62, |
| 0x6c, 0x65, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, |
| 0xec, 0x05, 0x0a, 0x11, 0x52, 0x65, 0x61, 0x64, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, |
| 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3d, 0x0a, 0x06, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x18, |
| 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x25, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x1f, 0x0a, 0x1d, 0x73, |
| 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, |
| 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x52, 0x06, 0x62, 0x75, |
| 0x63, 0x6b, 0x65, 0x74, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x02, |
| 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x6f, 0x62, 0x6a, 0x65, 0x63, |
| 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, |
| 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, |
| 0x6e, 0x12, 0x1f, 0x0a, 0x0b, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, |
| 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x72, 0x65, 0x61, 0x64, 0x4f, 0x66, 0x66, 0x73, |
| 0x65, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, |
| 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x72, 0x65, 0x61, 0x64, 0x4c, 0x69, 0x6d, 0x69, |
| 0x74, 0x12, 0x33, 0x0a, 0x13, 0x69, 0x66, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, |
| 0x6f, 0x6e, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x48, 0x00, |
| 0x52, 0x11, 0x69, 0x66, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x61, |
| 0x74, 0x63, 0x68, 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x17, 0x69, 0x66, 0x5f, 0x67, 0x65, 0x6e, |
| 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x6f, 0x74, 0x5f, 0x6d, 0x61, 0x74, 0x63, |
| 0x68, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x48, 0x01, 0x52, 0x14, 0x69, 0x66, 0x47, 0x65, 0x6e, |
| 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x6f, 0x74, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x88, |
| 0x01, 0x01, 0x12, 0x3b, 0x0a, 0x17, 0x69, 0x66, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x67, 0x65, 0x6e, |
| 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x18, 0x08, 0x20, |
| 0x01, 0x28, 0x03, 0x48, 0x02, 0x52, 0x15, 0x69, 0x66, 0x4d, 0x65, 0x74, 0x61, 0x67, 0x65, 0x6e, |
| 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x88, 0x01, 0x01, 0x12, |
| 0x42, 0x0a, 0x1b, 0x69, 0x66, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, |
| 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x6f, 0x74, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x18, 0x09, |
| 0x20, 0x01, 0x28, 0x03, 0x48, 0x03, 0x52, 0x18, 0x69, 0x66, 0x4d, 0x65, 0x74, 0x61, 0x67, 0x65, |
| 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x6f, 0x74, 0x4d, 0x61, 0x74, 0x63, 0x68, |
| 0x88, 0x01, 0x01, 0x12, 0x6d, 0x0a, 0x1c, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x5f, 0x6f, 0x62, |
| 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x70, 0x61, 0x72, |
| 0x61, 0x6d, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, |
| 0x6c, 0x65, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x6f, |
| 0x6d, 0x6d, 0x6f, 0x6e, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, |
| 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x19, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4f, |
| 0x62, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x61, 0x72, 0x61, |
| 0x6d, 0x73, 0x12, 0x3c, 0x0a, 0x09, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, |
| 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, |
| 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x73, |
| 0x6b, 0x48, 0x04, 0x52, 0x08, 0x72, 0x65, 0x61, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x88, 0x01, 0x01, |
| 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x69, 0x66, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, |
| 0x6f, 0x6e, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x42, 0x1a, 0x0a, 0x18, 0x5f, 0x69, 0x66, 0x5f, |
| 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x6f, 0x74, 0x5f, 0x6d, |
| 0x61, 0x74, 0x63, 0x68, 0x42, 0x1a, 0x0a, 0x18, 0x5f, 0x69, 0x66, 0x5f, 0x6d, 0x65, 0x74, 0x61, |
| 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, |
| 0x42, 0x1e, 0x0a, 0x1c, 0x5f, 0x69, 0x66, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x67, 0x65, 0x6e, 0x65, |
| 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x6f, 0x74, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, |
| 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x22, 0xe4, |
| 0x05, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, |
| 0x65, 0x73, 0x74, 0x12, 0x3d, 0x0a, 0x06, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x18, 0x01, 0x20, |
| 0x01, 0x28, 0x09, 0x42, 0x25, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x1f, 0x0a, 0x1d, 0x73, 0x74, 0x6f, |
| 0x72, 0x61, 0x67, 0x65, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, |
| 0x63, 0x6f, 0x6d, 0x2f, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x52, 0x06, 0x62, 0x75, 0x63, 0x6b, |
| 0x65, 0x74, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x02, 0x20, 0x01, |
| 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x12, |
| 0x1e, 0x0a, 0x0a, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, |
| 0x01, 0x28, 0x03, 0x52, 0x0a, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, |
| 0x26, 0x0a, 0x0c, 0x73, 0x6f, 0x66, 0x74, 0x5f, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x18, |
| 0x0b, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x0b, 0x73, 0x6f, 0x66, 0x74, 0x44, 0x65, 0x6c, |
| 0x65, 0x74, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, 0x13, 0x69, 0x66, 0x5f, 0x67, 0x65, |
| 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x18, 0x04, |
| 0x20, 0x01, 0x28, 0x03, 0x48, 0x01, 0x52, 0x11, 0x69, 0x66, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, |
| 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x17, |
| 0x69, 0x66, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x6f, |
| 0x74, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x48, 0x02, 0x52, |
| 0x14, 0x69, 0x66, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x6f, 0x74, |
| 0x4d, 0x61, 0x74, 0x63, 0x68, 0x88, 0x01, 0x01, 0x12, 0x3b, 0x0a, 0x17, 0x69, 0x66, 0x5f, 0x6d, |
| 0x65, 0x74, 0x61, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x61, |
| 0x74, 0x63, 0x68, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x48, 0x03, 0x52, 0x15, 0x69, 0x66, 0x4d, |
| 0x65, 0x74, 0x61, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x61, 0x74, |
| 0x63, 0x68, 0x88, 0x01, 0x01, 0x12, 0x42, 0x0a, 0x1b, 0x69, 0x66, 0x5f, 0x6d, 0x65, 0x74, 0x61, |
| 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x6f, 0x74, 0x5f, 0x6d, |
| 0x61, 0x74, 0x63, 0x68, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x48, 0x04, 0x52, 0x18, 0x69, 0x66, |
| 0x4d, 0x65, 0x74, 0x61, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x6f, |
| 0x74, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x88, 0x01, 0x01, 0x12, 0x6d, 0x0a, 0x1c, 0x63, 0x6f, 0x6d, |
| 0x6d, 0x6f, 0x6e, 0x5f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, |
| 0x73, 0x74, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, |
| 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, |
| 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, |
| 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x19, 0x63, |
| 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, |
| 0x73, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x3c, 0x0a, 0x09, 0x72, 0x65, 0x61, 0x64, |
| 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, |
| 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, |
| 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x48, 0x05, 0x52, 0x08, 0x72, 0x65, 0x61, 0x64, 0x4d, |
| 0x61, 0x73, 0x6b, 0x88, 0x01, 0x01, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x73, 0x6f, 0x66, 0x74, 0x5f, |
| 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x69, 0x66, 0x5f, 0x67, |
| 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x42, |
| 0x1a, 0x0a, 0x18, 0x5f, 0x69, 0x66, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, |
| 0x6e, 0x5f, 0x6e, 0x6f, 0x74, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x42, 0x1a, 0x0a, 0x18, 0x5f, |
| 0x69, 0x66, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, |
| 0x6e, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x42, 0x1e, 0x0a, 0x1c, 0x5f, 0x69, 0x66, 0x5f, 0x6d, |
| 0x65, 0x74, 0x61, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x6f, |
| 0x74, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x72, 0x65, 0x61, 0x64, |
| 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x22, 0xaf, 0x02, 0x0a, 0x12, 0x52, 0x65, 0x61, 0x64, 0x4f, 0x62, |
| 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4d, 0x0a, 0x10, |
| 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x6d, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x61, |
| 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, |
| 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, |
| 0x73, 0x75, 0x6d, 0x6d, 0x65, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0f, 0x63, 0x68, 0x65, 0x63, |
| 0x6b, 0x73, 0x75, 0x6d, 0x6d, 0x65, 0x64, 0x44, 0x61, 0x74, 0x61, 0x12, 0x4d, 0x0a, 0x10, 0x6f, |
| 0x62, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x73, 0x18, |
| 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x73, |
| 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x32, 0x2e, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, |
| 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x73, 0x52, 0x0f, 0x6f, 0x62, 0x6a, 0x65, 0x63, |
| 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x73, 0x12, 0x44, 0x0a, 0x0d, 0x63, 0x6f, |
| 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, |
| 0x0b, 0x32, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, |
| 0x67, 0x65, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x61, 0x6e, |
| 0x67, 0x65, 0x52, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x61, 0x6e, 0x67, 0x65, |
| 0x12, 0x35, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x04, 0x20, 0x01, |
| 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x73, 0x74, 0x6f, 0x72, |
| 0x61, 0x67, 0x65, 0x2e, 0x76, 0x32, 0x2e, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x08, 0x6d, |
| 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0x8c, 0x04, 0x0a, 0x0f, 0x57, 0x72, 0x69, 0x74, |
| 0x65, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x53, 0x70, 0x65, 0x63, 0x12, 0x3a, 0x0a, 0x08, 0x72, |
| 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, |
| 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, |
| 0x32, 0x2e, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x72, |
| 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x70, 0x72, 0x65, 0x64, 0x65, |
| 0x66, 0x69, 0x6e, 0x65, 0x64, 0x5f, 0x61, 0x63, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, |
| 0x0d, 0x70, 0x72, 0x65, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x41, 0x63, 0x6c, 0x12, 0x33, |
| 0x0a, 0x13, 0x69, 0x66, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, |
| 0x6d, 0x61, 0x74, 0x63, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x48, 0x00, 0x52, 0x11, 0x69, |
| 0x66, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x61, 0x74, 0x63, 0x68, |
| 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x17, 0x69, 0x66, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, |
| 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x6f, 0x74, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x18, 0x04, |
| 0x20, 0x01, 0x28, 0x03, 0x48, 0x01, 0x52, 0x14, 0x69, 0x66, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, |
| 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x6f, 0x74, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x88, 0x01, 0x01, 0x12, |
| 0x3b, 0x0a, 0x17, 0x69, 0x66, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, |
| 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, |
| 0x48, 0x02, 0x52, 0x15, 0x69, 0x66, 0x4d, 0x65, 0x74, 0x61, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, |
| 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x88, 0x01, 0x01, 0x12, 0x42, 0x0a, 0x1b, |
| 0x69, 0x66, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, |
| 0x6e, 0x5f, 0x6e, 0x6f, 0x74, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x18, 0x06, 0x20, 0x01, 0x28, |
| 0x03, 0x48, 0x03, 0x52, 0x18, 0x69, 0x66, 0x4d, 0x65, 0x74, 0x61, 0x67, 0x65, 0x6e, 0x65, 0x72, |
| 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x6f, 0x74, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x88, 0x01, 0x01, |
| 0x12, 0x24, 0x0a, 0x0b, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, |
| 0x08, 0x20, 0x01, 0x28, 0x03, 0x48, 0x04, 0x52, 0x0a, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x53, |
| 0x69, 0x7a, 0x65, 0x88, 0x01, 0x01, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x69, 0x66, 0x5f, 0x67, 0x65, |
| 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x42, 0x1a, |
| 0x0a, 0x18, 0x5f, 0x69, 0x66, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, |
| 0x5f, 0x6e, 0x6f, 0x74, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x42, 0x1a, 0x0a, 0x18, 0x5f, 0x69, |
| 0x66, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, |
| 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x42, 0x1e, 0x0a, 0x1c, 0x5f, 0x69, 0x66, 0x5f, 0x6d, 0x65, |
| 0x74, 0x61, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x6f, 0x74, |
| 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6f, 0x62, 0x6a, 0x65, 0x63, |
| 0x74, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x22, 0xf8, 0x03, 0x0a, 0x12, 0x57, 0x72, 0x69, 0x74, 0x65, |
| 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, |
| 0x09, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, |
| 0x48, 0x00, 0x52, 0x08, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x49, 0x64, 0x12, 0x50, 0x0a, 0x11, |
| 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x73, 0x70, 0x65, |
| 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, |
| 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x32, 0x2e, 0x57, 0x72, 0x69, 0x74, |
| 0x65, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x53, 0x70, 0x65, 0x63, 0x48, 0x00, 0x52, 0x0f, 0x77, |
| 0x72, 0x69, 0x74, 0x65, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x53, 0x70, 0x65, 0x63, 0x12, 0x26, |
| 0x0a, 0x0c, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x03, |
| 0x20, 0x01, 0x28, 0x03, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0b, 0x77, 0x72, 0x69, 0x74, 0x65, |
| 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x4f, 0x0a, 0x10, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, |
| 0x75, 0x6d, 0x6d, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, |
| 0x32, 0x22, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, |
| 0x65, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x6d, 0x65, 0x64, |
| 0x44, 0x61, 0x74, 0x61, 0x48, 0x01, 0x52, 0x0f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, |
| 0x6d, 0x65, 0x64, 0x44, 0x61, 0x74, 0x61, 0x12, 0x4d, 0x0a, 0x10, 0x6f, 0x62, 0x6a, 0x65, 0x63, |
| 0x74, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, |
| 0x0b, 0x32, 0x22, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, |
| 0x67, 0x65, 0x2e, 0x76, 0x32, 0x2e, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x68, 0x65, 0x63, |
| 0x6b, 0x73, 0x75, 0x6d, 0x73, 0x52, 0x0f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x68, 0x65, |
| 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, |
| 0x5f, 0x77, 0x72, 0x69, 0x74, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x66, 0x69, |
| 0x6e, 0x69, 0x73, 0x68, 0x57, 0x72, 0x69, 0x74, 0x65, 0x12, 0x6d, 0x0a, 0x1c, 0x63, 0x6f, 0x6d, |
| 0x6d, 0x6f, 0x6e, 0x5f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, |
| 0x73, 0x74, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, |
| 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, |
| 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, |
| 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x19, 0x63, |
| 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, |
| 0x73, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x42, 0x0f, 0x0a, 0x0d, 0x66, 0x69, 0x72, 0x73, |
| 0x74, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x42, 0x06, 0x0a, 0x04, 0x64, 0x61, 0x74, |
| 0x61, 0x22, 0x87, 0x01, 0x0a, 0x13, 0x57, 0x72, 0x69, 0x74, 0x65, 0x4f, 0x62, 0x6a, 0x65, 0x63, |
| 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x27, 0x0a, 0x0e, 0x70, 0x65, 0x72, |
| 0x73, 0x69, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, |
| 0x03, 0x48, 0x00, 0x52, 0x0d, 0x70, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x64, 0x53, 0x69, |
| 0x7a, 0x65, 0x12, 0x37, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x02, |
| 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x73, 0x74, |
| 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x32, 0x2e, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x48, |
| 0x00, 0x52, 0x08, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x42, 0x0e, 0x0a, 0x0c, 0x77, |
| 0x72, 0x69, 0x74, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0xb5, 0x04, 0x0a, 0x16, |
| 0x42, 0x69, 0x64, 0x69, 0x57, 0x72, 0x69, 0x74, 0x65, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x52, |
| 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x09, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, |
| 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x08, 0x75, 0x70, 0x6c, |
| 0x6f, 0x61, 0x64, 0x49, 0x64, 0x12, 0x50, 0x0a, 0x11, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x6f, |
| 0x62, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, |
| 0x32, 0x22, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, |
| 0x65, 0x2e, 0x76, 0x32, 0x2e, 0x57, 0x72, 0x69, 0x74, 0x65, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, |
| 0x53, 0x70, 0x65, 0x63, 0x48, 0x00, 0x52, 0x0f, 0x77, 0x72, 0x69, 0x74, 0x65, 0x4f, 0x62, 0x6a, |
| 0x65, 0x63, 0x74, 0x53, 0x70, 0x65, 0x63, 0x12, 0x26, 0x0a, 0x0c, 0x77, 0x72, 0x69, 0x74, 0x65, |
| 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x42, 0x03, 0xe0, |
| 0x41, 0x02, 0x52, 0x0b, 0x77, 0x72, 0x69, 0x74, 0x65, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, |
| 0x4f, 0x0a, 0x10, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x6d, 0x65, 0x64, 0x5f, 0x64, |
| 0x61, 0x74, 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x67, 0x6f, 0x6f, 0x67, |
| 0x6c, 0x65, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x68, |
| 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x6d, 0x65, 0x64, 0x44, 0x61, 0x74, 0x61, 0x48, 0x01, 0x52, |
| 0x0f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x6d, 0x65, 0x64, 0x44, 0x61, 0x74, 0x61, |
| 0x12, 0x4d, 0x0a, 0x10, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, |
| 0x73, 0x75, 0x6d, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x67, 0x6f, 0x6f, |
| 0x67, 0x6c, 0x65, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x32, 0x2e, 0x4f, |
| 0x62, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x73, 0x52, 0x0f, |
| 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x73, 0x12, |
| 0x21, 0x0a, 0x0c, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x6c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x18, |
| 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x73, 0x74, 0x61, 0x74, 0x65, 0x4c, 0x6f, 0x6f, 0x6b, |
| 0x75, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x6c, 0x75, 0x73, 0x68, 0x18, 0x08, 0x20, 0x01, 0x28, |
| 0x08, 0x52, 0x05, 0x66, 0x6c, 0x75, 0x73, 0x68, 0x12, 0x21, 0x0a, 0x0c, 0x66, 0x69, 0x6e, 0x69, |
| 0x73, 0x68, 0x5f, 0x77, 0x72, 0x69, 0x74, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, |
| 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x57, 0x72, 0x69, 0x74, 0x65, 0x12, 0x6d, 0x0a, 0x1c, 0x63, |
| 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x5f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x72, 0x65, 0x71, |
| 0x75, 0x65, 0x73, 0x74, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, |
| 0x0b, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, |
| 0x67, 0x65, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4f, 0x62, 0x6a, 0x65, |
| 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, |
| 0x19, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, |
| 0x75, 0x65, 0x73, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x42, 0x0f, 0x0a, 0x0d, 0x66, 0x69, |
| 0x72, 0x73, 0x74, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x42, 0x06, 0x0a, 0x04, 0x64, |
| 0x61, 0x74, 0x61, 0x22, 0x8b, 0x01, 0x0a, 0x17, 0x42, 0x69, 0x64, 0x69, 0x57, 0x72, 0x69, 0x74, |
| 0x65, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, |
| 0x27, 0x0a, 0x0e, 0x70, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x73, 0x69, 0x7a, |
| 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x48, 0x00, 0x52, 0x0d, 0x70, 0x65, 0x72, 0x73, 0x69, |
| 0x73, 0x74, 0x65, 0x64, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x37, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x6f, |
| 0x75, 0x72, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, |
| 0x67, 0x6c, 0x65, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x32, 0x2e, 0x4f, |
| 0x62, 0x6a, 0x65, 0x63, 0x74, 0x48, 0x00, 0x52, 0x08, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, |
| 0x65, 0x42, 0x0e, 0x0a, 0x0c, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, |
| 0x73, 0x22, 0xe3, 0x04, 0x0a, 0x12, 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, |
| 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3d, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, |
| 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x25, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x1f, |
| 0x0a, 0x1d, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, |
| 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x52, |
| 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, |
| 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, |
| 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, |
| 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, |
| 0x6b, 0x65, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x65, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x65, 0x72, |
| 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x64, 0x65, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x65, |
| 0x72, 0x12, 0x3c, 0x0a, 0x1a, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x74, 0x72, 0x61, |
| 0x69, 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x64, 0x65, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x65, 0x72, 0x18, |
| 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x18, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x54, 0x72, |
| 0x61, 0x69, 0x6c, 0x69, 0x6e, 0x67, 0x44, 0x65, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x65, 0x72, 0x12, |
| 0x16, 0x0a, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, |
| 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, 0x1a, 0x0a, 0x08, 0x76, 0x65, 0x72, 0x73, 0x69, |
| 0x6f, 0x6e, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x76, 0x65, 0x72, 0x73, 0x69, |
| 0x6f, 0x6e, 0x73, 0x12, 0x3c, 0x0a, 0x09, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x6d, 0x61, 0x73, 0x6b, |
| 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, |
| 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, |
| 0x73, 0x6b, 0x48, 0x00, 0x52, 0x08, 0x72, 0x65, 0x61, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x88, 0x01, |
| 0x01, 0x12, 0x34, 0x0a, 0x13, 0x6c, 0x65, 0x78, 0x69, 0x63, 0x6f, 0x67, 0x72, 0x61, 0x70, 0x68, |
| 0x69, 0x63, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, |
| 0xe0, 0x41, 0x01, 0x52, 0x12, 0x6c, 0x65, 0x78, 0x69, 0x63, 0x6f, 0x67, 0x72, 0x61, 0x70, 0x68, |
| 0x69, 0x63, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x30, 0x0a, 0x11, 0x6c, 0x65, 0x78, 0x69, 0x63, |
| 0x6f, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x5f, 0x65, 0x6e, 0x64, 0x18, 0x0b, 0x20, 0x01, |
| 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x10, 0x6c, 0x65, 0x78, 0x69, 0x63, 0x6f, 0x67, |
| 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x45, 0x6e, 0x64, 0x12, 0x26, 0x0a, 0x0c, 0x73, 0x6f, 0x66, |
| 0x74, 0x5f, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x42, |
| 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0b, 0x73, 0x6f, 0x66, 0x74, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, |
| 0x64, 0x12, 0x42, 0x0a, 0x1b, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x66, 0x6f, 0x6c, |
| 0x64, 0x65, 0x72, 0x73, 0x5f, 0x61, 0x73, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, |
| 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x18, 0x69, 0x6e, 0x63, |
| 0x6c, 0x75, 0x64, 0x65, 0x46, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x73, 0x41, 0x73, 0x50, 0x72, 0x65, |
| 0x66, 0x69, 0x78, 0x65, 0x73, 0x12, 0x22, 0x0a, 0x0a, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x67, |
| 0x6c, 0x6f, 0x62, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, |
| 0x6d, 0x61, 0x74, 0x63, 0x68, 0x47, 0x6c, 0x6f, 0x62, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x72, 0x65, |
| 0x61, 0x64, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x22, 0xaa, 0x01, 0x0a, 0x17, 0x51, 0x75, 0x65, 0x72, |
| 0x79, 0x57, 0x72, 0x69, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, |
| 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x09, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x69, 0x64, |
| 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x75, 0x70, 0x6c, |
| 0x6f, 0x61, 0x64, 0x49, 0x64, 0x12, 0x6d, 0x0a, 0x1c, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x5f, |
| 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x70, |
| 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x67, 0x6f, |
| 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x32, 0x2e, |
| 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, |
| 0x65, 0x73, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x19, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, |
| 0x6e, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x61, |
| 0x72, 0x61, 0x6d, 0x73, 0x22, 0x8c, 0x01, 0x0a, 0x18, 0x51, 0x75, 0x65, 0x72, 0x79, 0x57, 0x72, |
| 0x69, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, |
| 0x65, 0x12, 0x27, 0x0a, 0x0e, 0x70, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x73, |
| 0x69, 0x7a, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x48, 0x00, 0x52, 0x0d, 0x70, 0x65, 0x72, |
| 0x73, 0x69, 0x73, 0x74, 0x65, 0x64, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x37, 0x0a, 0x08, 0x72, 0x65, |
| 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, |
| 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x32, |
| 0x2e, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x48, 0x00, 0x52, 0x08, 0x72, 0x65, 0x73, 0x6f, 0x75, |
| 0x72, 0x63, 0x65, 0x42, 0x0e, 0x0a, 0x0c, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x73, 0x74, 0x61, |
| 0x74, 0x75, 0x73, 0x22, 0xb5, 0x0e, 0x0a, 0x14, 0x52, 0x65, 0x77, 0x72, 0x69, 0x74, 0x65, 0x4f, |
| 0x62, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x31, 0x0a, 0x10, |
| 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, |
| 0x18, 0x18, 0x20, 0x01, 0x28, 0x09, 0x42, 0x06, 0xe0, 0x41, 0x02, 0xe0, 0x41, 0x05, 0x52, 0x0f, |
| 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, |
| 0x57, 0x0a, 0x12, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x62, |
| 0x75, 0x63, 0x6b, 0x65, 0x74, 0x18, 0x19, 0x20, 0x01, 0x28, 0x09, 0x42, 0x28, 0xe0, 0x41, 0x02, |
| 0xe0, 0x41, 0x05, 0xfa, 0x41, 0x1f, 0x0a, 0x1d, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, |
| 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x42, |
| 0x75, 0x63, 0x6b, 0x65, 0x74, 0x52, 0x11, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, |
| 0x6f, 0x6e, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x56, 0x0a, 0x13, 0x64, 0x65, 0x73, 0x74, |
| 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6b, 0x6d, 0x73, 0x5f, 0x6b, 0x65, 0x79, 0x18, |
| 0x1b, 0x20, 0x01, 0x28, 0x09, 0x42, 0x26, 0xfa, 0x41, 0x23, 0x0a, 0x21, 0x63, 0x6c, 0x6f, 0x75, |
| 0x64, 0x6b, 0x6d, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, |
| 0x63, 0x6f, 0x6d, 0x2f, 0x43, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x4b, 0x65, 0x79, 0x52, 0x11, 0x64, |
| 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4b, 0x6d, 0x73, 0x4b, 0x65, 0x79, |
| 0x12, 0x3b, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, |
| 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x73, |
| 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x32, 0x2e, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, |
| 0x52, 0x0b, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4a, 0x0a, |
| 0x0d, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x18, 0x02, |
| 0x20, 0x01, 0x28, 0x09, 0x42, 0x25, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x1f, 0x0a, 0x1d, 0x73, 0x74, |
| 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, |
| 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x52, 0x0c, 0x73, 0x6f, 0x75, |
| 0x72, 0x63, 0x65, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x28, 0x0a, 0x0d, 0x73, 0x6f, 0x75, |
| 0x72, 0x63, 0x65, 0x5f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, |
| 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0c, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4f, 0x62, 0x6a, |
| 0x65, 0x63, 0x74, 0x12, 0x2b, 0x0a, 0x11, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x67, 0x65, |
| 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, |
| 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, |
| 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x65, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, |
| 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x72, 0x65, 0x77, 0x72, 0x69, 0x74, 0x65, |
| 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x3c, 0x0a, 0x1a, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, |
| 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x72, 0x65, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x5f, |
| 0x61, 0x63, 0x6c, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x18, 0x64, 0x65, 0x73, 0x74, 0x69, |
| 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x65, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, |
| 0x41, 0x63, 0x6c, 0x12, 0x33, 0x0a, 0x13, 0x69, 0x66, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, |
| 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, |
| 0x48, 0x00, 0x52, 0x11, 0x69, 0x66, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, |
| 0x4d, 0x61, 0x74, 0x63, 0x68, 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x17, 0x69, 0x66, 0x5f, 0x67, |
| 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x6f, 0x74, 0x5f, 0x6d, 0x61, |
| 0x74, 0x63, 0x68, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x48, 0x01, 0x52, 0x14, 0x69, 0x66, 0x47, |
| 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x6f, 0x74, 0x4d, 0x61, 0x74, 0x63, |
| 0x68, 0x88, 0x01, 0x01, 0x12, 0x3b, 0x0a, 0x17, 0x69, 0x66, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x67, |
| 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x18, |
| 0x09, 0x20, 0x01, 0x28, 0x03, 0x48, 0x02, 0x52, 0x15, 0x69, 0x66, 0x4d, 0x65, 0x74, 0x61, 0x67, |
| 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x88, 0x01, |
| 0x01, 0x12, 0x42, 0x0a, 0x1b, 0x69, 0x66, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x67, 0x65, 0x6e, 0x65, |
| 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x6f, 0x74, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, |
| 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x48, 0x03, 0x52, 0x18, 0x69, 0x66, 0x4d, 0x65, 0x74, 0x61, |
| 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x6f, 0x74, 0x4d, 0x61, 0x74, |
| 0x63, 0x68, 0x88, 0x01, 0x01, 0x12, 0x40, 0x0a, 0x1a, 0x69, 0x66, 0x5f, 0x73, 0x6f, 0x75, 0x72, |
| 0x63, 0x65, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x61, |
| 0x74, 0x63, 0x68, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x03, 0x48, 0x04, 0x52, 0x17, 0x69, 0x66, 0x53, |
| 0x6f, 0x75, 0x72, 0x63, 0x65, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, |
| 0x61, 0x74, 0x63, 0x68, 0x88, 0x01, 0x01, 0x12, 0x47, 0x0a, 0x1e, 0x69, 0x66, 0x5f, 0x73, 0x6f, |
| 0x75, 0x72, 0x63, 0x65, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, |
| 0x6e, 0x6f, 0x74, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x03, 0x48, |
| 0x05, 0x52, 0x1a, 0x69, 0x66, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x47, 0x65, 0x6e, 0x65, 0x72, |
| 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x6f, 0x74, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x88, 0x01, 0x01, |
| 0x12, 0x48, 0x0a, 0x1e, 0x69, 0x66, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x6d, 0x65, |
| 0x74, 0x61, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x61, 0x74, |
| 0x63, 0x68, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x03, 0x48, 0x06, 0x52, 0x1b, 0x69, 0x66, 0x53, 0x6f, |
| 0x75, 0x72, 0x63, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, |
| 0x6f, 0x6e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x88, 0x01, 0x01, 0x12, 0x4f, 0x0a, 0x22, 0x69, 0x66, |
| 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x67, 0x65, 0x6e, 0x65, |
| 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x6f, 0x74, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, |
| 0x18, 0x0e, 0x20, 0x01, 0x28, 0x03, 0x48, 0x07, 0x52, 0x1e, 0x69, 0x66, 0x53, 0x6f, 0x75, 0x72, |
| 0x63, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, |
| 0x4e, 0x6f, 0x74, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x88, 0x01, 0x01, 0x12, 0x3e, 0x0a, 0x1c, 0x6d, |
| 0x61, 0x78, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x77, 0x72, 0x69, 0x74, 0x74, |
| 0x65, 0x6e, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x18, 0x0f, 0x20, 0x01, 0x28, |
| 0x03, 0x52, 0x18, 0x6d, 0x61, 0x78, 0x42, 0x79, 0x74, 0x65, 0x73, 0x52, 0x65, 0x77, 0x72, 0x69, |
| 0x74, 0x74, 0x65, 0x6e, 0x50, 0x65, 0x72, 0x43, 0x61, 0x6c, 0x6c, 0x12, 0x47, 0x0a, 0x20, 0x63, |
| 0x6f, 0x70, 0x79, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x65, 0x6e, 0x63, 0x72, 0x79, |
| 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x18, |
| 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x1d, 0x63, 0x6f, 0x70, 0x79, 0x53, 0x6f, 0x75, 0x72, 0x63, |
| 0x65, 0x45, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6c, 0x67, 0x6f, 0x72, |
| 0x69, 0x74, 0x68, 0x6d, 0x12, 0x46, 0x0a, 0x20, 0x63, 0x6f, 0x70, 0x79, 0x5f, 0x73, 0x6f, 0x75, |
| 0x72, 0x63, 0x65, 0x5f, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6b, |
| 0x65, 0x79, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x1c, |
| 0x63, 0x6f, 0x70, 0x79, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x45, 0x6e, 0x63, 0x72, 0x79, 0x70, |
| 0x74, 0x69, 0x6f, 0x6e, 0x4b, 0x65, 0x79, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x53, 0x0a, 0x27, |
| 0x63, 0x6f, 0x70, 0x79, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x65, 0x6e, 0x63, 0x72, |
| 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x73, 0x68, 0x61, 0x32, 0x35, |
| 0x36, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x22, 0x63, |
| 0x6f, 0x70, 0x79, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x45, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, |
| 0x69, 0x6f, 0x6e, 0x4b, 0x65, 0x79, 0x53, 0x68, 0x61, 0x32, 0x35, 0x36, 0x42, 0x79, 0x74, 0x65, |
| 0x73, 0x12, 0x6d, 0x0a, 0x1c, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x5f, 0x6f, 0x62, 0x6a, 0x65, |
| 0x63, 0x74, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, |
| 0x73, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, |
| 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, |
| 0x6f, 0x6e, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, |
| 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x19, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4f, 0x62, 0x6a, |
| 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, |
| 0x12, 0x4d, 0x0a, 0x10, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, |
| 0x73, 0x75, 0x6d, 0x73, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x67, 0x6f, 0x6f, |
| 0x67, 0x6c, 0x65, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x32, 0x2e, 0x4f, |
| 0x62, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x73, 0x52, 0x0f, |
| 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x73, 0x42, |
| 0x16, 0x0a, 0x14, 0x5f, 0x69, 0x66, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, |
| 0x6e, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x42, 0x1a, 0x0a, 0x18, 0x5f, 0x69, 0x66, 0x5f, 0x67, |
| 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x6f, 0x74, 0x5f, 0x6d, 0x61, |
| 0x74, 0x63, 0x68, 0x42, 0x1a, 0x0a, 0x18, 0x5f, 0x69, 0x66, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x67, |
| 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x42, |
| 0x1e, 0x0a, 0x1c, 0x5f, 0x69, 0x66, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x67, 0x65, 0x6e, 0x65, 0x72, |
| 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x6f, 0x74, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x42, |
| 0x1d, 0x0a, 0x1b, 0x5f, 0x69, 0x66, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x67, 0x65, |
| 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x42, 0x21, |
| 0x0a, 0x1f, 0x5f, 0x69, 0x66, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x67, 0x65, 0x6e, |
| 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x6f, 0x74, 0x5f, 0x6d, 0x61, 0x74, 0x63, |
| 0x68, 0x42, 0x21, 0x0a, 0x1f, 0x5f, 0x69, 0x66, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, |
| 0x6d, 0x65, 0x74, 0x61, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, |
| 0x61, 0x74, 0x63, 0x68, 0x42, 0x25, 0x0a, 0x23, 0x5f, 0x69, 0x66, 0x5f, 0x73, 0x6f, 0x75, 0x72, |
| 0x63, 0x65, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, |
| 0x6e, 0x5f, 0x6e, 0x6f, 0x74, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x22, 0xd6, 0x01, 0x0a, 0x0f, |
| 0x52, 0x65, 0x77, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, |
| 0x32, 0x0a, 0x15, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x72, |
| 0x65, 0x77, 0x72, 0x69, 0x74, 0x74, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x13, |
| 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x42, 0x79, 0x74, 0x65, 0x73, 0x52, 0x65, 0x77, 0x72, 0x69, 0x74, |
| 0x74, 0x65, 0x6e, 0x12, 0x1f, 0x0a, 0x0b, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x73, 0x69, |
| 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, |
| 0x53, 0x69, 0x7a, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x6f, 0x6e, 0x65, 0x18, 0x03, 0x20, 0x01, |
| 0x28, 0x08, 0x52, 0x04, 0x64, 0x6f, 0x6e, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x65, 0x77, 0x72, |
| 0x69, 0x74, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, |
| 0x0c, 0x72, 0x65, 0x77, 0x72, 0x69, 0x74, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x35, 0x0a, |
| 0x08, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, |
| 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, |
| 0x2e, 0x76, 0x32, 0x2e, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x08, 0x72, 0x65, 0x73, 0x6f, |
| 0x75, 0x72, 0x63, 0x65, 0x22, 0xaf, 0x02, 0x0a, 0x1a, 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, |
| 0x73, 0x75, 0x6d, 0x61, 0x62, 0x6c, 0x65, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, |
| 0x65, 0x73, 0x74, 0x12, 0x53, 0x0a, 0x11, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x6f, 0x62, 0x6a, |
| 0x65, 0x63, 0x74, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, |
| 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, |
| 0x76, 0x32, 0x2e, 0x57, 0x72, 0x69, 0x74, 0x65, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x53, 0x70, |
| 0x65, 0x63, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0f, 0x77, 0x72, 0x69, 0x74, 0x65, 0x4f, 0x62, |
| 0x6a, 0x65, 0x63, 0x74, 0x53, 0x70, 0x65, 0x63, 0x12, 0x6d, 0x0a, 0x1c, 0x63, 0x6f, 0x6d, 0x6d, |
| 0x6f, 0x6e, 0x5f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, |
| 0x74, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, |
| 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, |
| 0x76, 0x32, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x52, |
| 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x19, 0x63, 0x6f, |
| 0x6d, 0x6d, 0x6f, 0x6e, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, |
| 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x4d, 0x0a, 0x10, 0x6f, 0x62, 0x6a, 0x65, 0x63, |
| 0x74, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, |
| 0x0b, 0x32, 0x22, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, |
| 0x67, 0x65, 0x2e, 0x76, 0x32, 0x2e, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x68, 0x65, 0x63, |
| 0x6b, 0x73, 0x75, 0x6d, 0x73, 0x52, 0x0f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x68, 0x65, |
| 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x73, 0x22, 0x3a, 0x0a, 0x1b, 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, |
| 0x65, 0x73, 0x75, 0x6d, 0x61, 0x62, 0x6c, 0x65, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x73, |
| 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x5f, |
| 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, |
| 0x49, 0x64, 0x22, 0x87, 0x05, 0x0a, 0x13, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x62, 0x6a, |
| 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x36, 0x0a, 0x06, 0x6f, 0x62, |
| 0x6a, 0x65, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, |
| 0x67, 0x6c, 0x65, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x32, 0x2e, 0x4f, |
| 0x62, 0x6a, 0x65, 0x63, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x6f, 0x62, 0x6a, 0x65, |
| 0x63, 0x74, 0x12, 0x33, 0x0a, 0x13, 0x69, 0x66, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, |
| 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x48, |
| 0x00, 0x52, 0x11, 0x69, 0x66, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, |
| 0x61, 0x74, 0x63, 0x68, 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x17, 0x69, 0x66, 0x5f, 0x67, 0x65, |
| 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x6f, 0x74, 0x5f, 0x6d, 0x61, 0x74, |
| 0x63, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x48, 0x01, 0x52, 0x14, 0x69, 0x66, 0x47, 0x65, |
| 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x6f, 0x74, 0x4d, 0x61, 0x74, 0x63, 0x68, |
| 0x88, 0x01, 0x01, 0x12, 0x3b, 0x0a, 0x17, 0x69, 0x66, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x67, 0x65, |
| 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x18, 0x04, |
| 0x20, 0x01, 0x28, 0x03, 0x48, 0x02, 0x52, 0x15, 0x69, 0x66, 0x4d, 0x65, 0x74, 0x61, 0x67, 0x65, |
| 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x88, 0x01, 0x01, |
| 0x12, 0x42, 0x0a, 0x1b, 0x69, 0x66, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x67, 0x65, 0x6e, 0x65, 0x72, |
| 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x6f, 0x74, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x18, |
| 0x05, 0x20, 0x01, 0x28, 0x03, 0x48, 0x03, 0x52, 0x18, 0x69, 0x66, 0x4d, 0x65, 0x74, 0x61, 0x67, |
| 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x6f, 0x74, 0x4d, 0x61, 0x74, 0x63, |
| 0x68, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0e, 0x70, 0x72, 0x65, 0x64, 0x65, 0x66, 0x69, 0x6e, |
| 0x65, 0x64, 0x5f, 0x61, 0x63, 0x6c, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x70, 0x72, |
| 0x65, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x41, 0x63, 0x6c, 0x12, 0x40, 0x0a, 0x0b, 0x75, |
| 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, |
| 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, |
| 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x42, 0x03, 0xe0, 0x41, |
| 0x02, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x73, 0x6b, 0x12, 0x6d, 0x0a, |
| 0x1c, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x5f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x72, |
| 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x08, 0x20, |
| 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x73, 0x74, 0x6f, |
| 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4f, 0x62, |
| 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, |
| 0x73, 0x52, 0x19, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x52, |
| 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x42, 0x16, 0x0a, 0x14, |
| 0x5f, 0x69, 0x66, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, |
| 0x61, 0x74, 0x63, 0x68, 0x42, 0x1a, 0x0a, 0x18, 0x5f, 0x69, 0x66, 0x5f, 0x67, 0x65, 0x6e, 0x65, |
| 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x6f, 0x74, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, |
| 0x42, 0x1a, 0x0a, 0x18, 0x5f, 0x69, 0x66, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x67, 0x65, 0x6e, 0x65, |
| 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x42, 0x1e, 0x0a, 0x1c, |
| 0x5f, 0x69, 0x66, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, |
| 0x6f, 0x6e, 0x5f, 0x6e, 0x6f, 0x74, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x22, 0x69, 0x0a, 0x18, |
| 0x47, 0x65, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, |
| 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x4d, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, |
| 0x65, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x33, 0xe0, 0x41, 0x02, 0xfa, 0x41, |
| 0x2d, 0x0a, 0x2b, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, |
| 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, |
| 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x07, |
| 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x22, 0x9e, 0x01, 0x0a, 0x14, 0x43, 0x72, 0x65, 0x61, |
| 0x74, 0x65, 0x48, 0x6d, 0x61, 0x63, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, |
| 0x12, 0x4d, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, |
| 0x09, 0x42, 0x33, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x2d, 0x0a, 0x2b, 0x63, 0x6c, 0x6f, 0x75, 0x64, |
| 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2e, |
| 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x50, |
| 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, |
| 0x37, 0x0a, 0x15, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, |
| 0x6e, 0x74, 0x5f, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, |
| 0xe0, 0x41, 0x02, 0x52, 0x13, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, |
| 0x75, 0x6e, 0x74, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x22, 0x81, 0x01, 0x0a, 0x15, 0x43, 0x72, 0x65, |
| 0x61, 0x74, 0x65, 0x48, 0x6d, 0x61, 0x63, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, |
| 0x73, 0x65, 0x12, 0x3e, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, |
| 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x73, 0x74, |
| 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x32, 0x2e, 0x48, 0x6d, 0x61, 0x63, 0x4b, 0x65, 0x79, |
| 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, |
| 0x74, 0x61, 0x12, 0x28, 0x0a, 0x10, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x5f, 0x6b, 0x65, 0x79, |
| 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0e, 0x73, 0x65, |
| 0x63, 0x72, 0x65, 0x74, 0x4b, 0x65, 0x79, 0x42, 0x79, 0x74, 0x65, 0x73, 0x22, 0x87, 0x01, 0x0a, |
| 0x14, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x48, 0x6d, 0x61, 0x63, 0x4b, 0x65, 0x79, 0x52, 0x65, |
| 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x09, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, |
| 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x61, |
| 0x63, 0x63, 0x65, 0x73, 0x73, 0x49, 0x64, 0x12, 0x4d, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, |
| 0x63, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x33, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x2d, |
| 0x0a, 0x2b, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x6d, |
| 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, |
| 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x07, 0x70, |
| 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x22, 0x84, 0x01, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x48, 0x6d, |
| 0x61, 0x63, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x09, |
| 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, |
| 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x49, 0x64, 0x12, 0x4d, |
| 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, |
| 0x33, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x2d, 0x0a, 0x2b, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x72, 0x65, |
| 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2e, 0x67, 0x6f, |
| 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x50, 0x72, 0x6f, |
| 0x6a, 0x65, 0x63, 0x74, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x22, 0x80, 0x02, |
| 0x0a, 0x13, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x6d, 0x61, 0x63, 0x4b, 0x65, 0x79, 0x73, 0x52, 0x65, |
| 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x4d, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, |
| 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x33, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x2d, 0x0a, 0x2b, |
| 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x6d, 0x61, 0x6e, |
| 0x61, 0x67, 0x65, 0x72, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, |
| 0x63, 0x6f, 0x6d, 0x2f, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x07, 0x70, 0x72, 0x6f, |
| 0x6a, 0x65, 0x63, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, |
| 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, |
| 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, |
| 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, |
| 0x12, 0x32, 0x0a, 0x15, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, |
| 0x75, 0x6e, 0x74, 0x5f, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, |
| 0x13, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x45, |
| 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x2a, 0x0a, 0x11, 0x73, 0x68, 0x6f, 0x77, 0x5f, 0x64, 0x65, 0x6c, |
| 0x65, 0x74, 0x65, 0x64, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, |
| 0x0f, 0x73, 0x68, 0x6f, 0x77, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x4b, 0x65, 0x79, 0x73, |
| 0x22, 0x7f, 0x0a, 0x14, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x6d, 0x61, 0x63, 0x4b, 0x65, 0x79, 0x73, |
| 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3f, 0x0a, 0x09, 0x68, 0x6d, 0x61, 0x63, |
| 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x67, 0x6f, |
| 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x32, 0x2e, |
| 0x48, 0x6d, 0x61, 0x63, 0x4b, 0x65, 0x79, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, |
| 0x08, 0x68, 0x6d, 0x61, 0x63, 0x4b, 0x65, 0x79, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, |
| 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, |
| 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, |
| 0x6e, 0x22, 0x97, 0x01, 0x0a, 0x14, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x6d, 0x61, 0x63, |
| 0x4b, 0x65, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x42, 0x0a, 0x08, 0x68, 0x6d, |
| 0x61, 0x63, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x67, |
| 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x32, |
| 0x2e, 0x48, 0x6d, 0x61, 0x63, 0x4b, 0x65, 0x79, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, |
| 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, 0x68, 0x6d, 0x61, 0x63, 0x4b, 0x65, 0x79, 0x12, 0x3b, |
| 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x03, 0x20, |
| 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, |
| 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x52, |
| 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x73, 0x6b, 0x22, 0xbf, 0x01, 0x0a, 0x19, |
| 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, |
| 0x65, 0x73, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x31, 0x0a, 0x14, 0x65, 0x6e, 0x63, |
| 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, |
| 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, |
| 0x69, 0x6f, 0x6e, 0x41, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x12, 0x30, 0x0a, 0x14, |
| 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x62, |
| 0x79, 0x74, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x12, 0x65, 0x6e, 0x63, 0x72, |
| 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4b, 0x65, 0x79, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x3d, |
| 0x0a, 0x1b, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6b, 0x65, 0x79, |
| 0x5f, 0x73, 0x68, 0x61, 0x32, 0x35, 0x36, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x05, 0x20, |
| 0x01, 0x28, 0x0c, 0x52, 0x18, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4b, |
| 0x65, 0x79, 0x53, 0x68, 0x61, 0x32, 0x35, 0x36, 0x42, 0x79, 0x74, 0x65, 0x73, 0x22, 0xca, 0x05, |
| 0x0a, 0x10, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, |
| 0x74, 0x73, 0x22, 0xb5, 0x05, 0x0a, 0x06, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x16, 0x0a, |
| 0x12, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x53, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, |
| 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1b, 0x0a, 0x14, 0x4d, 0x41, 0x58, 0x5f, 0x52, 0x45, 0x41, |
| 0x44, 0x5f, 0x43, 0x48, 0x55, 0x4e, 0x4b, 0x5f, 0x42, 0x59, 0x54, 0x45, 0x53, 0x10, 0x80, 0x80, |
| 0x80, 0x01, 0x12, 0x1c, 0x0a, 0x15, 0x4d, 0x41, 0x58, 0x5f, 0x57, 0x52, 0x49, 0x54, 0x45, 0x5f, |
| 0x43, 0x48, 0x55, 0x4e, 0x4b, 0x5f, 0x42, 0x59, 0x54, 0x45, 0x53, 0x10, 0x80, 0x80, 0x80, 0x01, |
| 0x12, 0x19, 0x0a, 0x12, 0x4d, 0x41, 0x58, 0x5f, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x53, |
| 0x49, 0x5a, 0x45, 0x5f, 0x4d, 0x42, 0x10, 0x80, 0x80, 0xc0, 0x02, 0x12, 0x29, 0x0a, 0x24, 0x4d, |
| 0x41, 0x58, 0x5f, 0x43, 0x55, 0x53, 0x54, 0x4f, 0x4d, 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x44, 0x41, |
| 0x54, 0x41, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x5f, 0x4e, 0x41, 0x4d, 0x45, 0x5f, 0x42, 0x59, |
| 0x54, 0x45, 0x53, 0x10, 0x80, 0x08, 0x12, 0x2a, 0x0a, 0x25, 0x4d, 0x41, 0x58, 0x5f, 0x43, 0x55, |
| 0x53, 0x54, 0x4f, 0x4d, 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x46, 0x49, |
| 0x45, 0x4c, 0x44, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x5f, 0x42, 0x59, 0x54, 0x45, 0x53, 0x10, |
| 0x80, 0x20, 0x12, 0x29, 0x0a, 0x24, 0x4d, 0x41, 0x58, 0x5f, 0x43, 0x55, 0x53, 0x54, 0x4f, 0x4d, |
| 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x54, 0x4f, 0x54, 0x41, 0x4c, 0x5f, |
| 0x53, 0x49, 0x5a, 0x45, 0x5f, 0x42, 0x59, 0x54, 0x45, 0x53, 0x10, 0x80, 0x40, 0x12, 0x2a, 0x0a, |
| 0x24, 0x4d, 0x41, 0x58, 0x5f, 0x42, 0x55, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x4d, 0x45, 0x54, 0x41, |
| 0x44, 0x41, 0x54, 0x41, 0x5f, 0x54, 0x4f, 0x54, 0x41, 0x4c, 0x5f, 0x53, 0x49, 0x5a, 0x45, 0x5f, |
| 0x42, 0x59, 0x54, 0x45, 0x53, 0x10, 0x80, 0xa0, 0x01, 0x12, 0x27, 0x0a, 0x23, 0x4d, 0x41, 0x58, |
| 0x5f, 0x4e, 0x4f, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x43, 0x4f, |
| 0x4e, 0x46, 0x49, 0x47, 0x53, 0x5f, 0x50, 0x45, 0x52, 0x5f, 0x42, 0x55, 0x43, 0x4b, 0x45, 0x54, |
| 0x10, 0x64, 0x12, 0x22, 0x0a, 0x1e, 0x4d, 0x41, 0x58, 0x5f, 0x4c, 0x49, 0x46, 0x45, 0x43, 0x59, |
| 0x43, 0x4c, 0x45, 0x5f, 0x52, 0x55, 0x4c, 0x45, 0x53, 0x5f, 0x50, 0x45, 0x52, 0x5f, 0x42, 0x55, |
| 0x43, 0x4b, 0x45, 0x54, 0x10, 0x64, 0x12, 0x26, 0x0a, 0x22, 0x4d, 0x41, 0x58, 0x5f, 0x4e, 0x4f, |
| 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x43, 0x55, 0x53, 0x54, 0x4f, |
| 0x4d, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x49, 0x42, 0x55, 0x54, 0x45, 0x53, 0x10, 0x05, 0x12, 0x31, |
| 0x0a, 0x2c, 0x4d, 0x41, 0x58, 0x5f, 0x4e, 0x4f, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x49, |
| 0x4f, 0x4e, 0x5f, 0x43, 0x55, 0x53, 0x54, 0x4f, 0x4d, 0x5f, 0x41, 0x54, 0x54, 0x52, 0x49, 0x42, |
| 0x55, 0x54, 0x45, 0x5f, 0x4b, 0x45, 0x59, 0x5f, 0x4c, 0x45, 0x4e, 0x47, 0x54, 0x48, 0x10, 0x80, |
| 0x02, 0x12, 0x33, 0x0a, 0x2e, 0x4d, 0x41, 0x58, 0x5f, 0x4e, 0x4f, 0x54, 0x49, 0x46, 0x49, 0x43, |
| 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x43, 0x55, 0x53, 0x54, 0x4f, 0x4d, 0x5f, 0x41, 0x54, 0x54, |
| 0x52, 0x49, 0x42, 0x55, 0x54, 0x45, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x5f, 0x4c, 0x45, 0x4e, |
| 0x47, 0x54, 0x48, 0x10, 0x80, 0x08, 0x12, 0x1c, 0x0a, 0x18, 0x4d, 0x41, 0x58, 0x5f, 0x4c, 0x41, |
| 0x42, 0x45, 0x4c, 0x53, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x49, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x55, |
| 0x4e, 0x54, 0x10, 0x40, 0x12, 0x1f, 0x0a, 0x1b, 0x4d, 0x41, 0x58, 0x5f, 0x4c, 0x41, 0x42, 0x45, |
| 0x4c, 0x53, 0x5f, 0x4b, 0x45, 0x59, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x5f, 0x4c, 0x45, 0x4e, |
| 0x47, 0x54, 0x48, 0x10, 0x3f, 0x12, 0x1f, 0x0a, 0x1a, 0x4d, 0x41, 0x58, 0x5f, 0x4c, 0x41, 0x42, |
| 0x45, 0x4c, 0x53, 0x5f, 0x4b, 0x45, 0x59, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x5f, 0x42, 0x59, |
| 0x54, 0x45, 0x53, 0x10, 0x80, 0x01, 0x12, 0x2e, 0x0a, 0x29, 0x4d, 0x41, 0x58, 0x5f, 0x4f, 0x42, |
| 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x49, 0x44, 0x53, 0x5f, 0x50, 0x45, 0x52, 0x5f, 0x44, 0x45, 0x4c, |
| 0x45, 0x54, 0x45, 0x5f, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x53, 0x5f, 0x52, 0x45, 0x51, 0x55, |
| 0x45, 0x53, 0x54, 0x10, 0xe8, 0x07, 0x12, 0x1e, 0x0a, 0x1a, 0x53, 0x50, 0x4c, 0x49, 0x54, 0x5f, |
| 0x54, 0x4f, 0x4b, 0x45, 0x4e, 0x5f, 0x4d, 0x41, 0x58, 0x5f, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x5f, |
| 0x44, 0x41, 0x59, 0x53, 0x10, 0x0e, 0x1a, 0x02, 0x10, 0x01, 0x22, 0xf5, 0x23, 0x0a, 0x06, 0x42, |
| 0x75, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, |
| 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x05, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x20, |
| 0x0a, 0x09, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, |
| 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x08, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x49, 0x64, |
| 0x12, 0x12, 0x0a, 0x04, 0x65, 0x74, 0x61, 0x67, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, |
| 0x65, 0x74, 0x61, 0x67, 0x12, 0x4d, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, |
| 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x33, 0xe0, 0x41, 0x05, 0xfa, 0x41, 0x2d, 0x0a, 0x2b, 0x63, |
| 0x6c, 0x6f, 0x75, 0x64, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x6d, 0x61, 0x6e, 0x61, |
| 0x67, 0x65, 0x72, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, |
| 0x6f, 0x6d, 0x2f, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, |
| 0x65, 0x63, 0x74, 0x12, 0x2b, 0x0a, 0x0e, 0x6d, 0x65, 0x74, 0x61, 0x67, 0x65, 0x6e, 0x65, 0x72, |
| 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x42, 0x03, 0xe0, 0x41, 0x03, |
| 0x52, 0x0e, 0x6d, 0x65, 0x74, 0x61, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, |
| 0x12, 0x1f, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, |
| 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x05, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, |
| 0x6e, 0x12, 0x28, 0x0a, 0x0d, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, |
| 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0c, 0x6c, |
| 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x73, |
| 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x18, 0x07, 0x20, 0x01, |
| 0x28, 0x09, 0x52, 0x0c, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, |
| 0x12, 0x10, 0x0a, 0x03, 0x72, 0x70, 0x6f, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x72, |
| 0x70, 0x6f, 0x12, 0x38, 0x0a, 0x03, 0x61, 0x63, 0x6c, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, |
| 0x26, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, |
| 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, |
| 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x52, 0x03, 0x61, 0x63, 0x6c, 0x12, 0x54, 0x0a, 0x12, |
| 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x61, |
| 0x63, 0x6c, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, |
| 0x65, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x32, 0x2e, 0x4f, 0x62, 0x6a, |
| 0x65, 0x63, 0x74, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, |
| 0x52, 0x10, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x41, |
| 0x63, 0x6c, 0x12, 0x41, 0x0a, 0x09, 0x6c, 0x69, 0x66, 0x65, 0x63, 0x79, 0x63, 0x6c, 0x65, 0x18, |
| 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x73, |
| 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, |
| 0x2e, 0x4c, 0x69, 0x66, 0x65, 0x63, 0x79, 0x63, 0x6c, 0x65, 0x52, 0x09, 0x6c, 0x69, 0x66, 0x65, |
| 0x63, 0x79, 0x63, 0x6c, 0x65, 0x12, 0x40, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, |
| 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, |
| 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, |
| 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x63, 0x72, 0x65, |
| 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x32, 0x0a, 0x04, 0x63, 0x6f, 0x72, 0x73, 0x18, |
| 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x73, |
| 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, |
| 0x2e, 0x43, 0x6f, 0x72, 0x73, 0x52, 0x04, 0x63, 0x6f, 0x72, 0x73, 0x12, 0x40, 0x0a, 0x0b, 0x75, |
| 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, |
| 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, |
| 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, |
| 0x03, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x37, 0x0a, |
| 0x18, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x62, |
| 0x61, 0x73, 0x65, 0x64, 0x5f, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x52, |
| 0x15, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x42, 0x61, 0x73, |
| 0x65, 0x64, 0x48, 0x6f, 0x6c, 0x64, 0x12, 0x3d, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, |
| 0x18, 0x0f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, |
| 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x75, 0x63, 0x6b, 0x65, |
| 0x74, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x6c, |
| 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x3b, 0x0a, 0x07, 0x77, 0x65, 0x62, 0x73, 0x69, 0x74, 0x65, |
| 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, |
| 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x75, 0x63, 0x6b, 0x65, |
| 0x74, 0x2e, 0x57, 0x65, 0x62, 0x73, 0x69, 0x74, 0x65, 0x52, 0x07, 0x77, 0x65, 0x62, 0x73, 0x69, |
| 0x74, 0x65, 0x12, 0x44, 0x0a, 0x0a, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x69, 0x6e, 0x67, |
| 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, |
| 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x75, 0x63, 0x6b, 0x65, |
| 0x74, 0x2e, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x52, 0x0a, 0x76, 0x65, |
| 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x12, 0x3b, 0x0a, 0x07, 0x6c, 0x6f, 0x67, 0x67, |
| 0x69, 0x6e, 0x67, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x67, 0x6f, 0x6f, 0x67, |
| 0x6c, 0x65, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x75, |
| 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x4c, 0x6f, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x52, 0x07, 0x6c, 0x6f, |
| 0x67, 0x67, 0x69, 0x6e, 0x67, 0x12, 0x33, 0x0a, 0x05, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x18, 0x13, |
| 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x73, 0x74, |
| 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x32, 0x2e, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x42, 0x03, |
| 0xe0, 0x41, 0x03, 0x52, 0x05, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x12, 0x44, 0x0a, 0x0a, 0x65, 0x6e, |
| 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, |
| 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, |
| 0x76, 0x32, 0x2e, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x45, 0x6e, 0x63, 0x72, 0x79, 0x70, |
| 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, |
| 0x12, 0x3b, 0x0a, 0x07, 0x62, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x18, 0x15, 0x20, 0x01, 0x28, |
| 0x0b, 0x32, 0x21, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, |
| 0x67, 0x65, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x42, 0x69, 0x6c, |
| 0x6c, 0x69, 0x6e, 0x67, 0x52, 0x07, 0x62, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x12, 0x54, 0x0a, |
| 0x10, 0x72, 0x65, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, |
| 0x79, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, |
| 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x75, 0x63, 0x6b, |
| 0x65, 0x74, 0x2e, 0x52, 0x65, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6c, 0x69, |
| 0x63, 0x79, 0x52, 0x0f, 0x72, 0x65, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6c, |
| 0x69, 0x63, 0x79, 0x12, 0x42, 0x0a, 0x0a, 0x69, 0x61, 0x6d, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, |
| 0x67, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, |
| 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x75, 0x63, 0x6b, |
| 0x65, 0x74, 0x2e, 0x49, 0x61, 0x6d, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x09, 0x69, 0x61, |
| 0x6d, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x61, 0x74, 0x69, 0x73, |
| 0x66, 0x69, 0x65, 0x73, 0x5f, 0x70, 0x7a, 0x73, 0x18, 0x19, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, |
| 0x73, 0x61, 0x74, 0x69, 0x73, 0x66, 0x69, 0x65, 0x73, 0x50, 0x7a, 0x73, 0x12, 0x67, 0x0a, 0x17, |
| 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, |
| 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, |
| 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, |
| 0x32, 0x2e, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x50, |
| 0x6c, 0x61, 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x15, |
| 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x50, 0x6c, 0x61, 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x43, |
| 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x41, 0x0a, 0x09, 0x61, 0x75, 0x74, 0x6f, 0x63, 0x6c, 0x61, |
| 0x73, 0x73, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, |
| 0x65, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x75, 0x63, |
| 0x6b, 0x65, 0x74, 0x2e, 0x41, 0x75, 0x74, 0x6f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x52, 0x09, 0x61, |
| 0x75, 0x74, 0x6f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x12, 0x6b, 0x0a, 0x16, 0x68, 0x69, 0x65, 0x72, |
| 0x61, 0x72, 0x63, 0x68, 0x69, 0x63, 0x61, 0x6c, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, |
| 0x63, 0x65, 0x18, 0x20, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, |
| 0x65, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x75, 0x63, |
| 0x6b, 0x65, 0x74, 0x2e, 0x48, 0x69, 0x65, 0x72, 0x61, 0x72, 0x63, 0x68, 0x69, 0x63, 0x61, 0x6c, |
| 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x15, |
| 0x68, 0x69, 0x65, 0x72, 0x61, 0x72, 0x63, 0x68, 0x69, 0x63, 0x61, 0x6c, 0x4e, 0x61, 0x6d, 0x65, |
| 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x5d, 0x0a, 0x12, 0x73, 0x6f, 0x66, 0x74, 0x5f, 0x64, 0x65, |
| 0x6c, 0x65, 0x74, 0x65, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 0x1f, 0x20, 0x01, 0x28, |
| 0x0b, 0x32, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, |
| 0x67, 0x65, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x53, 0x6f, 0x66, |
| 0x74, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x42, 0x03, 0xe0, |
| 0x41, 0x01, 0x52, 0x10, 0x73, 0x6f, 0x66, 0x74, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x6f, |
| 0x6c, 0x69, 0x63, 0x79, 0x1a, 0x30, 0x0a, 0x07, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x12, |
| 0x25, 0x0a, 0x0e, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x70, 0x61, 0x79, |
| 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, |
| 0x65, 0x72, 0x50, 0x61, 0x79, 0x73, 0x1a, 0x87, 0x01, 0x0a, 0x04, 0x43, 0x6f, 0x72, 0x73, 0x12, |
| 0x16, 0x0a, 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, |
| 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, |
| 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, |
| 0x27, 0x0a, 0x0f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x68, 0x65, 0x61, 0x64, |
| 0x65, 0x72, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, |
| 0x73, 0x65, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x26, 0x0a, 0x0f, 0x6d, 0x61, 0x78, 0x5f, |
| 0x61, 0x67, 0x65, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, |
| 0x05, 0x52, 0x0d, 0x6d, 0x61, 0x78, 0x41, 0x67, 0x65, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, |
| 0x1a, 0x5c, 0x0a, 0x0a, 0x45, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4e, |
| 0x0a, 0x0f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x6b, 0x6d, 0x73, 0x5f, 0x6b, 0x65, |
| 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x26, 0xfa, 0x41, 0x23, 0x0a, 0x21, 0x63, 0x6c, |
| 0x6f, 0x75, 0x64, 0x6b, 0x6d, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, |
| 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x43, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x4b, 0x65, 0x79, 0x52, |
| 0x0d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x4b, 0x6d, 0x73, 0x4b, 0x65, 0x79, 0x1a, 0xb1, |
| 0x02, 0x0a, 0x09, 0x49, 0x61, 0x6d, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x7b, 0x0a, 0x1b, |
| 0x75, 0x6e, 0x69, 0x66, 0x6f, 0x72, 0x6d, 0x5f, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x6c, |
| 0x65, 0x76, 0x65, 0x6c, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, |
| 0x0b, 0x32, 0x3c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, |
| 0x67, 0x65, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x49, 0x61, 0x6d, |
| 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x55, 0x6e, 0x69, 0x66, 0x6f, 0x72, 0x6d, 0x42, 0x75, |
| 0x63, 0x6b, 0x65, 0x74, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, |
| 0x18, 0x75, 0x6e, 0x69, 0x66, 0x6f, 0x72, 0x6d, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x4c, 0x65, |
| 0x76, 0x65, 0x6c, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x38, 0x0a, 0x18, 0x70, 0x75, 0x62, |
| 0x6c, 0x69, 0x63, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x70, 0x72, 0x65, 0x76, 0x65, |
| 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x16, 0x70, 0x75, 0x62, |
| 0x6c, 0x69, 0x63, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x50, 0x72, 0x65, 0x76, 0x65, 0x6e, 0x74, |
| 0x69, 0x6f, 0x6e, 0x1a, 0x6d, 0x0a, 0x18, 0x55, 0x6e, 0x69, 0x66, 0x6f, 0x72, 0x6d, 0x42, 0x75, |
| 0x63, 0x6b, 0x65, 0x74, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, |
| 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, |
| 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x37, 0x0a, 0x09, 0x6c, 0x6f, 0x63, |
| 0x6b, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, |
| 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, |
| 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x69, |
| 0x6d, 0x65, 0x1a, 0xdb, 0x07, 0x0a, 0x09, 0x4c, 0x69, 0x66, 0x65, 0x63, 0x79, 0x63, 0x6c, 0x65, |
| 0x12, 0x3c, 0x0a, 0x04, 0x72, 0x75, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, |
| 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, |
| 0x76, 0x32, 0x2e, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x4c, 0x69, 0x66, 0x65, 0x63, 0x79, |
| 0x63, 0x6c, 0x65, 0x2e, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x04, 0x72, 0x75, 0x6c, 0x65, 0x1a, 0x8f, |
| 0x07, 0x0a, 0x04, 0x52, 0x75, 0x6c, 0x65, 0x12, 0x47, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, |
| 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, |
| 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x75, 0x63, 0x6b, |
| 0x65, 0x74, 0x2e, 0x4c, 0x69, 0x66, 0x65, 0x63, 0x79, 0x63, 0x6c, 0x65, 0x2e, 0x52, 0x75, 0x6c, |
| 0x65, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, |
| 0x12, 0x50, 0x0a, 0x09, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, |
| 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x73, 0x74, 0x6f, |
| 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x4c, |
| 0x69, 0x66, 0x65, 0x63, 0x79, 0x63, 0x6c, 0x65, 0x2e, 0x52, 0x75, 0x6c, 0x65, 0x2e, 0x43, 0x6f, |
| 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, |
| 0x6f, 0x6e, 0x1a, 0x41, 0x0a, 0x06, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, |
| 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, |
| 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x73, |
| 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, |
| 0x43, 0x6c, 0x61, 0x73, 0x73, 0x1a, 0xa8, 0x05, 0x0a, 0x09, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, |
| 0x69, 0x6f, 0x6e, 0x12, 0x1e, 0x0a, 0x08, 0x61, 0x67, 0x65, 0x5f, 0x64, 0x61, 0x79, 0x73, 0x18, |
| 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x07, 0x61, 0x67, 0x65, 0x44, 0x61, 0x79, 0x73, |
| 0x88, 0x01, 0x01, 0x12, 0x38, 0x0a, 0x0e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x62, |
| 0x65, 0x66, 0x6f, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x67, 0x6f, |
| 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x44, 0x61, 0x74, 0x65, 0x52, 0x0d, |
| 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x42, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x12, 0x1c, 0x0a, |
| 0x07, 0x69, 0x73, 0x5f, 0x6c, 0x69, 0x76, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x48, 0x01, |
| 0x52, 0x06, 0x69, 0x73, 0x4c, 0x69, 0x76, 0x65, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x12, 0x6e, |
| 0x75, 0x6d, 0x5f, 0x6e, 0x65, 0x77, 0x65, 0x72, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, |
| 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x10, 0x6e, 0x75, 0x6d, 0x4e, 0x65, |
| 0x77, 0x65, 0x72, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x88, 0x01, 0x01, 0x12, 0x32, |
| 0x0a, 0x15, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x5f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, |
| 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x13, 0x6d, |
| 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x43, 0x6c, 0x61, |
| 0x73, 0x73, 0x12, 0x38, 0x0a, 0x16, 0x64, 0x61, 0x79, 0x73, 0x5f, 0x73, 0x69, 0x6e, 0x63, 0x65, |
| 0x5f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, |
| 0x28, 0x05, 0x48, 0x03, 0x52, 0x13, 0x64, 0x61, 0x79, 0x73, 0x53, 0x69, 0x6e, 0x63, 0x65, 0x43, |
| 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x54, 0x69, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x3f, 0x0a, 0x12, |
| 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x62, 0x65, 0x66, 0x6f, |
| 0x72, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, |
| 0x65, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x44, 0x61, 0x74, 0x65, 0x52, 0x10, 0x63, 0x75, 0x73, |
| 0x74, 0x6f, 0x6d, 0x54, 0x69, 0x6d, 0x65, 0x42, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x12, 0x40, 0x0a, |
| 0x1a, 0x64, 0x61, 0x79, 0x73, 0x5f, 0x73, 0x69, 0x6e, 0x63, 0x65, 0x5f, 0x6e, 0x6f, 0x6e, 0x63, |
| 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, |
| 0x05, 0x48, 0x04, 0x52, 0x17, 0x64, 0x61, 0x79, 0x73, 0x53, 0x69, 0x6e, 0x63, 0x65, 0x4e, 0x6f, |
| 0x6e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, |
| 0x47, 0x0a, 0x16, 0x6e, 0x6f, 0x6e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x69, |
| 0x6d, 0x65, 0x5f, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, |
| 0x11, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x44, 0x61, |
| 0x74, 0x65, 0x52, 0x14, 0x6e, 0x6f, 0x6e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x54, 0x69, |
| 0x6d, 0x65, 0x42, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x6d, 0x61, 0x74, 0x63, |
| 0x68, 0x65, 0x73, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x09, |
| 0x52, 0x0d, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, |
| 0x25, 0x0a, 0x0e, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x5f, 0x73, 0x75, 0x66, 0x66, 0x69, |
| 0x78, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, |
| 0x53, 0x75, 0x66, 0x66, 0x69, 0x78, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x61, 0x67, 0x65, 0x5f, 0x64, |
| 0x61, 0x79, 0x73, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x69, 0x73, 0x5f, 0x6c, 0x69, 0x76, 0x65, 0x42, |
| 0x15, 0x0a, 0x13, 0x5f, 0x6e, 0x75, 0x6d, 0x5f, 0x6e, 0x65, 0x77, 0x65, 0x72, 0x5f, 0x76, 0x65, |
| 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x42, 0x19, 0x0a, 0x17, 0x5f, 0x64, 0x61, 0x79, 0x73, 0x5f, |
| 0x73, 0x69, 0x6e, 0x63, 0x65, 0x5f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x74, 0x69, 0x6d, |
| 0x65, 0x42, 0x1d, 0x0a, 0x1b, 0x5f, 0x64, 0x61, 0x79, 0x73, 0x5f, 0x73, 0x69, 0x6e, 0x63, 0x65, |
| 0x5f, 0x6e, 0x6f, 0x6e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, |
| 0x1a, 0x54, 0x0a, 0x07, 0x4c, 0x6f, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x12, 0x1d, 0x0a, 0x0a, 0x6c, |
| 0x6f, 0x67, 0x5f, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, |
| 0x09, 0x6c, 0x6f, 0x67, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x2a, 0x0a, 0x11, 0x6c, 0x6f, |
| 0x67, 0x5f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, |
| 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x6c, 0x6f, 0x67, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, |
| 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x1a, 0xbb, 0x01, 0x0a, 0x0f, 0x52, 0x65, 0x74, 0x65, 0x6e, |
| 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x41, 0x0a, 0x0e, 0x65, 0x66, |
| 0x66, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, |
| 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, |
| 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0d, |
| 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1b, 0x0a, |
| 0x09, 0x69, 0x73, 0x5f, 0x6c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, |
| 0x52, 0x08, 0x69, 0x73, 0x4c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x12, 0x48, 0x0a, 0x12, 0x72, 0x65, |
| 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, |
| 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, |
| 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, |
| 0x6e, 0x52, 0x11, 0x72, 0x65, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x75, 0x72, 0x61, |
| 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0xd3, 0x01, 0x0a, 0x10, 0x53, 0x6f, 0x66, 0x74, 0x44, 0x65, 0x6c, |
| 0x65, 0x74, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x4d, 0x0a, 0x12, 0x72, 0x65, 0x74, |
| 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, |
| 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, |
| 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, |
| 0x48, 0x00, 0x52, 0x11, 0x72, 0x65, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x75, 0x72, |
| 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x0e, 0x65, 0x66, 0x66, 0x65, |
| 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, |
| 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, |
| 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x48, 0x01, 0x52, 0x0d, |
| 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x88, 0x01, 0x01, |
| 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x72, 0x65, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, |
| 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x65, 0x66, 0x66, 0x65, |
| 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x1a, 0x26, 0x0a, 0x0a, 0x56, 0x65, |
| 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, |
| 0x6c, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, |
| 0x65, 0x64, 0x1a, 0x59, 0x0a, 0x07, 0x57, 0x65, 0x62, 0x73, 0x69, 0x74, 0x65, 0x12, 0x28, 0x0a, |
| 0x10, 0x6d, 0x61, 0x69, 0x6e, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x75, 0x66, 0x66, 0x69, |
| 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6d, 0x61, 0x69, 0x6e, 0x50, 0x61, 0x67, |
| 0x65, 0x53, 0x75, 0x66, 0x66, 0x69, 0x78, 0x12, 0x24, 0x0a, 0x0e, 0x6e, 0x6f, 0x74, 0x5f, 0x66, |
| 0x6f, 0x75, 0x6e, 0x64, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, |
| 0x0c, 0x6e, 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x50, 0x61, 0x67, 0x65, 0x1a, 0x3e, 0x0a, |
| 0x15, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x50, 0x6c, 0x61, 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, |
| 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x25, 0x0a, 0x0e, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x6c, |
| 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, |
| 0x64, 0x61, 0x74, 0x61, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0xd6, 0x02, |
| 0x0a, 0x09, 0x41, 0x75, 0x74, 0x6f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x65, |
| 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x65, 0x6e, |
| 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x40, 0x0a, 0x0b, 0x74, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x5f, |
| 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, |
| 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, |
| 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x74, 0x6f, 0x67, |
| 0x67, 0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x39, 0x0a, 0x16, 0x74, 0x65, 0x72, 0x6d, 0x69, |
| 0x6e, 0x61, 0x6c, 0x5f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x73, |
| 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x14, 0x74, 0x65, 0x72, 0x6d, 0x69, |
| 0x6e, 0x61, 0x6c, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x88, |
| 0x01, 0x01, 0x12, 0x70, 0x0a, 0x22, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x6c, 0x5f, 0x73, |
| 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x75, 0x70, 0x64, |
| 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, |
| 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, |
| 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x48, |
| 0x01, 0x52, 0x1e, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x6c, 0x53, 0x74, 0x6f, 0x72, 0x61, |
| 0x67, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, |
| 0x65, 0x88, 0x01, 0x01, 0x42, 0x19, 0x0a, 0x17, 0x5f, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, |
| 0x6c, 0x5f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x42, |
| 0x25, 0x0a, 0x23, 0x5f, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x6c, 0x5f, 0x73, 0x74, 0x6f, |
| 0x72, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, |
| 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x1a, 0x36, 0x0a, 0x15, 0x48, 0x69, 0x65, 0x72, 0x61, 0x72, |
| 0x63, 0x68, 0x69, 0x63, 0x61, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, |
| 0x1d, 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, |
| 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x1a, 0x39, |
| 0x0a, 0x0b, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, |
| 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, |
| 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, |
| 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x3a, 0x47, 0xea, 0x41, 0x44, 0x0a, 0x1d, |
| 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, |
| 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x23, 0x70, |
| 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, |
| 0x7d, 0x2f, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x2f, 0x7b, 0x62, 0x75, 0x63, 0x6b, 0x65, |
| 0x74, 0x7d, 0x22, 0x97, 0x02, 0x0a, 0x13, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x41, 0x63, 0x63, |
| 0x65, 0x73, 0x73, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x6f, |
| 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x12, 0x0e, |
| 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x16, |
| 0x0a, 0x06, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, |
| 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x22, 0x0a, 0x0a, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, |
| 0x5f, 0x61, 0x6c, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, |
| 0x09, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x41, 0x6c, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x65, 0x6e, |
| 0x74, 0x69, 0x74, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, |
| 0x6e, 0x74, 0x69, 0x74, 0x79, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x65, 0x74, 0x61, 0x67, 0x18, |
| 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x65, 0x74, 0x61, 0x67, 0x12, 0x14, 0x0a, 0x05, 0x65, |
| 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, |
| 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, |
| 0x09, 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x41, 0x0a, 0x0c, 0x70, 0x72, 0x6f, |
| 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x74, 0x65, 0x61, 0x6d, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, |
| 0x1e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, |
| 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x54, 0x65, 0x61, 0x6d, 0x52, |
| 0x0b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x54, 0x65, 0x61, 0x6d, 0x22, 0x5a, 0x0a, 0x0f, |
| 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x6d, 0x65, 0x64, 0x44, 0x61, 0x74, 0x61, 0x12, |
| 0x1f, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, |
| 0x42, 0x05, 0xe0, 0x41, 0x01, 0x08, 0x01, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, |
| 0x12, 0x1b, 0x0a, 0x06, 0x63, 0x72, 0x63, 0x33, 0x32, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x07, |
| 0x48, 0x00, 0x52, 0x06, 0x63, 0x72, 0x63, 0x33, 0x32, 0x63, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, |
| 0x07, 0x5f, 0x63, 0x72, 0x63, 0x33, 0x32, 0x63, 0x22, 0x54, 0x0a, 0x0f, 0x4f, 0x62, 0x6a, 0x65, |
| 0x63, 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x73, 0x12, 0x1b, 0x0a, 0x06, 0x63, |
| 0x72, 0x63, 0x33, 0x32, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x07, 0x48, 0x00, 0x52, 0x06, 0x63, |
| 0x72, 0x63, 0x33, 0x32, 0x63, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x08, 0x6d, 0x64, 0x35, 0x5f, |
| 0x68, 0x61, 0x73, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x6d, 0x64, 0x35, 0x48, |
| 0x61, 0x73, 0x68, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x72, 0x63, 0x33, 0x32, 0x63, 0x22, 0xfe, |
| 0x02, 0x0a, 0x0f, 0x48, 0x6d, 0x61, 0x63, 0x4b, 0x65, 0x79, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, |
| 0x74, 0x61, 0x12, 0x13, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, |
| 0xe0, 0x41, 0x05, 0x52, 0x02, 0x69, 0x64, 0x12, 0x20, 0x0a, 0x09, 0x61, 0x63, 0x63, 0x65, 0x73, |
| 0x73, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x05, 0x52, |
| 0x08, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x49, 0x64, 0x12, 0x4d, 0x0a, 0x07, 0x70, 0x72, 0x6f, |
| 0x6a, 0x65, 0x63, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x33, 0xe0, 0x41, 0x05, 0xfa, |
| 0x41, 0x2d, 0x0a, 0x2b, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, |
| 0x65, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, |
| 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, |
| 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x37, 0x0a, 0x15, 0x73, 0x65, 0x72, 0x76, |
| 0x69, 0x63, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x65, 0x6d, 0x61, 0x69, |
| 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x13, 0x73, 0x65, |
| 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x45, 0x6d, 0x61, 0x69, |
| 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, |
| 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x40, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, |
| 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, |
| 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, |
| 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x63, |
| 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x40, 0x0a, 0x0b, 0x75, 0x70, 0x64, |
| 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, |
| 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, |
| 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, |
| 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x65, |
| 0x74, 0x61, 0x67, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x65, 0x74, 0x61, 0x67, 0x22, |
| 0x85, 0x04, 0x0a, 0x12, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, |
| 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, |
| 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, |
| 0x19, 0x0a, 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, |
| 0xe0, 0x41, 0x02, 0x52, 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x12, 0x12, 0x0a, 0x04, 0x65, 0x74, |
| 0x61, 0x67, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x65, 0x74, 0x61, 0x67, 0x12, 0x1f, |
| 0x0a, 0x0b, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x03, 0x20, |
| 0x03, 0x28, 0x09, 0x52, 0x0a, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, |
| 0x68, 0x0a, 0x11, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, |
| 0x75, 0x74, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x67, 0x6f, 0x6f, |
| 0x67, 0x6c, 0x65, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x32, 0x2e, 0x4e, |
| 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, |
| 0x67, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, |
| 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x10, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x41, |
| 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x12, 0x2c, 0x0a, 0x12, 0x6f, 0x62, 0x6a, |
| 0x65, 0x63, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, |
| 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x4e, 0x61, 0x6d, |
| 0x65, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, 0x2a, 0x0a, 0x0e, 0x70, 0x61, 0x79, 0x6c, 0x6f, |
| 0x61, 0x64, 0x5f, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x42, |
| 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0d, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x46, 0x6f, 0x72, |
| 0x6d, 0x61, 0x74, 0x1a, 0x43, 0x0a, 0x15, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x41, 0x74, 0x74, |
| 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 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, 0x3a, 0x7d, 0xea, 0x41, 0x7a, 0x0a, 0x29, 0x73, |
| 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, |
| 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, |
| 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x4d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, |
| 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x62, 0x75, 0x63, |
| 0x6b, 0x65, 0x74, 0x73, 0x2f, 0x7b, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x7d, 0x2f, 0x6e, 0x6f, |
| 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, |
| 0x73, 0x2f, 0x7b, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, |
| 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x7d, 0x22, 0x71, 0x0a, 0x12, 0x43, 0x75, 0x73, 0x74, 0x6f, |
| 0x6d, 0x65, 0x72, 0x45, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x31, 0x0a, |
| 0x14, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x61, 0x6c, 0x67, 0x6f, |
| 0x72, 0x69, 0x74, 0x68, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x65, 0x6e, 0x63, |
| 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, |
| 0x12, 0x28, 0x0a, 0x10, 0x6b, 0x65, 0x79, 0x5f, 0x73, 0x68, 0x61, 0x32, 0x35, 0x36, 0x5f, 0x62, |
| 0x79, 0x74, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0e, 0x6b, 0x65, 0x79, 0x53, |
| 0x68, 0x61, 0x32, 0x35, 0x36, 0x42, 0x79, 0x74, 0x65, 0x73, 0x22, 0xb6, 0x0d, 0x0a, 0x06, 0x4f, |
| 0x62, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, |
| 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x05, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x3d, |
| 0x0a, 0x06, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x25, |
| 0xe0, 0x41, 0x05, 0xfa, 0x41, 0x1f, 0x0a, 0x1d, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, |
| 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x42, |
| 0x75, 0x63, 0x6b, 0x65, 0x74, 0x52, 0x06, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x12, 0x0a, |
| 0x04, 0x65, 0x74, 0x61, 0x67, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x65, 0x74, 0x61, |
| 0x67, 0x12, 0x23, 0x0a, 0x0a, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, |
| 0x03, 0x20, 0x01, 0x28, 0x03, 0x42, 0x03, 0xe0, 0x41, 0x05, 0x52, 0x0a, 0x67, 0x65, 0x6e, 0x65, |
| 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2b, 0x0a, 0x0e, 0x6d, 0x65, 0x74, 0x61, 0x67, 0x65, |
| 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x42, 0x03, |
| 0xe0, 0x41, 0x03, 0x52, 0x0e, 0x6d, 0x65, 0x74, 0x61, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, |
| 0x69, 0x6f, 0x6e, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x63, |
| 0x6c, 0x61, 0x73, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x74, 0x6f, 0x72, |
| 0x61, 0x67, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, |
| 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x04, 0x73, 0x69, 0x7a, |
| 0x65, 0x12, 0x29, 0x0a, 0x10, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x65, 0x6e, 0x63, |
| 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x63, 0x6f, 0x6e, |
| 0x74, 0x65, 0x6e, 0x74, 0x45, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x2f, 0x0a, 0x13, |
| 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x64, 0x69, 0x73, 0x70, 0x6f, 0x73, 0x69, 0x74, |
| 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x63, 0x6f, 0x6e, 0x74, 0x65, |
| 0x6e, 0x74, 0x44, 0x69, 0x73, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x23, 0x0a, |
| 0x0d, 0x63, 0x61, 0x63, 0x68, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x18, 0x09, |
| 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x61, 0x63, 0x68, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, |
| 0x6f, 0x6c, 0x12, 0x38, 0x0a, 0x03, 0x61, 0x63, 0x6c, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, |
| 0x26, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, |
| 0x2e, 0x76, 0x32, 0x2e, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, |
| 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x52, 0x03, 0x61, 0x63, 0x6c, 0x12, 0x29, 0x0a, 0x10, |
| 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, |
| 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x4c, |
| 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x12, 0x40, 0x0a, 0x0b, 0x64, 0x65, 0x6c, 0x65, 0x74, |
| 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, |
| 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, |
| 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x64, |
| 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x6f, 0x6e, |
| 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, |
| 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x40, 0x0a, 0x0b, |
| 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, |
| 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, |
| 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, |
| 0x41, 0x03, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x2c, |
| 0x0a, 0x0f, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x5f, 0x63, 0x6f, 0x75, 0x6e, |
| 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0e, 0x63, 0x6f, |
| 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x45, 0x0a, 0x09, |
| 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x73, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, |
| 0x22, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, |
| 0x2e, 0x76, 0x32, 0x2e, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, |
| 0x75, 0x6d, 0x73, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x09, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, |
| 0x75, 0x6d, 0x73, 0x12, 0x40, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, |
| 0x6d, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, |
| 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, |
| 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, |
| 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x3f, 0x0a, 0x07, 0x6b, 0x6d, 0x73, 0x5f, 0x6b, 0x65, 0x79, |
| 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x42, 0x26, 0xfa, 0x41, 0x23, 0x0a, 0x21, 0x63, 0x6c, 0x6f, |
| 0x75, 0x64, 0x6b, 0x6d, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, |
| 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x43, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x4b, 0x65, 0x79, 0x52, 0x06, |
| 0x6b, 0x6d, 0x73, 0x4b, 0x65, 0x79, 0x12, 0x5a, 0x0a, 0x19, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, |
| 0x5f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x74, |
| 0x69, 0x6d, 0x65, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, |
| 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, |
| 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x16, 0x75, 0x70, 0x64, 0x61, |
| 0x74, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x54, 0x69, |
| 0x6d, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x74, 0x65, 0x6d, 0x70, 0x6f, 0x72, 0x61, 0x72, 0x79, 0x5f, |
| 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x14, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x74, 0x65, 0x6d, 0x70, |
| 0x6f, 0x72, 0x61, 0x72, 0x79, 0x48, 0x6f, 0x6c, 0x64, 0x12, 0x4e, 0x0a, 0x15, 0x72, 0x65, 0x74, |
| 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x5f, 0x74, 0x69, |
| 0x6d, 0x65, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, |
| 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, |
| 0x74, 0x61, 0x6d, 0x70, 0x52, 0x13, 0x72, 0x65, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x45, |
| 0x78, 0x70, 0x69, 0x72, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x43, 0x0a, 0x08, 0x6d, 0x65, 0x74, |
| 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x16, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x67, 0x6f, |
| 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x32, 0x2e, |
| 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x45, |
| 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x2d, |
| 0x0a, 0x10, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x62, 0x61, 0x73, 0x65, 0x64, 0x5f, 0x68, 0x6f, |
| 0x6c, 0x64, 0x18, 0x17, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x0e, 0x65, 0x76, 0x65, 0x6e, |
| 0x74, 0x42, 0x61, 0x73, 0x65, 0x64, 0x48, 0x6f, 0x6c, 0x64, 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, |
| 0x05, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x67, |
| 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x32, |
| 0x2e, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x05, 0x6f, 0x77, 0x6e, |
| 0x65, 0x72, 0x12, 0x56, 0x0a, 0x13, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x5f, 0x65, |
| 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x19, 0x20, 0x01, 0x28, 0x0b, 0x32, |
| 0x25, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, |
| 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x45, 0x6e, 0x63, 0x72, |
| 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x12, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, |
| 0x45, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3b, 0x0a, 0x0b, 0x63, 0x75, |
| 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x0b, 0x32, |
| 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, |
| 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0a, 0x63, 0x75, 0x73, |
| 0x74, 0x6f, 0x6d, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x4e, 0x0a, 0x10, 0x73, 0x6f, 0x66, 0x74, 0x5f, |
| 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x1c, 0x20, 0x01, 0x28, |
| 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, |
| 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, |
| 0x41, 0x03, 0x48, 0x01, 0x52, 0x0e, 0x73, 0x6f, 0x66, 0x74, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, |
| 0x54, 0x69, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x4e, 0x0a, 0x10, 0x68, 0x61, 0x72, 0x64, 0x5f, |
| 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x1d, 0x20, 0x01, 0x28, |
| 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, |
| 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, |
| 0x41, 0x03, 0x48, 0x02, 0x52, 0x0e, 0x68, 0x61, 0x72, 0x64, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, |
| 0x54, 0x69, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x3b, 0x0a, 0x0d, 0x4d, 0x65, 0x74, 0x61, 0x64, |
| 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, |
| 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, |
| 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, |
| 0x3a, 0x02, 0x38, 0x01, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x62, |
| 0x61, 0x73, 0x65, 0x64, 0x5f, 0x68, 0x6f, 0x6c, 0x64, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x73, 0x6f, |
| 0x66, 0x74, 0x5f, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x42, 0x13, |
| 0x0a, 0x11, 0x5f, 0x68, 0x61, 0x72, 0x64, 0x5f, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x5f, 0x74, |
| 0x69, 0x6d, 0x65, 0x22, 0x97, 0x02, 0x0a, 0x13, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x41, 0x63, |
| 0x63, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x72, |
| 0x6f, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x12, |
| 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, |
| 0x16, 0x0a, 0x06, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, |
| 0x06, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x22, 0x0a, 0x0a, 0x65, 0x6e, 0x74, 0x69, 0x74, |
| 0x79, 0x5f, 0x61, 0x6c, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, |
| 0x52, 0x09, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x41, 0x6c, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x65, |
| 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, |
| 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x65, 0x74, 0x61, 0x67, |
| 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x65, 0x74, 0x61, 0x67, 0x12, 0x14, 0x0a, 0x05, |
| 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x6d, 0x61, |
| 0x69, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x06, 0x20, 0x01, |
| 0x28, 0x09, 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x41, 0x0a, 0x0c, 0x70, 0x72, |
| 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x74, 0x65, 0x61, 0x6d, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, |
| 0x32, 0x1e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, |
| 0x65, 0x2e, 0x76, 0x32, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x54, 0x65, 0x61, 0x6d, |
| 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x54, 0x65, 0x61, 0x6d, 0x22, 0x8e, 0x01, |
| 0x0a, 0x13, 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x52, 0x65, 0x73, |
| 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x07, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, |
| 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, |
| 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x32, 0x2e, 0x4f, 0x62, 0x6a, 0x65, 0x63, |
| 0x74, 0x52, 0x07, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, |
| 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x70, 0x72, |
| 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, |
| 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, |
| 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x48, |
| 0x0a, 0x0b, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x54, 0x65, 0x61, 0x6d, 0x12, 0x25, 0x0a, |
| 0x0e, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, |
| 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4e, 0x75, |
| 0x6d, 0x62, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x65, 0x61, 0x6d, 0x18, 0x02, 0x20, 0x01, |
| 0x28, 0x09, 0x52, 0x04, 0x74, 0x65, 0x61, 0x6d, 0x22, 0x35, 0x0a, 0x0e, 0x53, 0x65, 0x72, 0x76, |
| 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x65, 0x6d, |
| 0x61, 0x69, 0x6c, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, |
| 0x09, 0x52, 0x0c, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, |
| 0x3c, 0x0a, 0x05, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x6e, 0x74, 0x69, |
| 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, |
| 0x12, 0x1b, 0x0a, 0x09, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, |
| 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x49, 0x64, 0x22, 0x5f, 0x0a, |
| 0x0c, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x14, 0x0a, |
| 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x73, 0x74, |
| 0x61, 0x72, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x65, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, |
| 0x52, 0x03, 0x65, 0x6e, 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, |
| 0x65, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, |
| 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x32, 0xaa, |
| 0x27, 0x0a, 0x07, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x12, 0x72, 0x0a, 0x0c, 0x44, 0x65, |
| 0x6c, 0x65, 0x74, 0x65, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x26, 0x2e, 0x67, 0x6f, 0x6f, |
| 0x67, 0x6c, 0x65, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x32, 0x2e, 0x44, |
| 0x65, 0x6c, 0x65, 0x74, 0x65, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, |
| 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, |
| 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x22, 0xda, 0x41, 0x04, 0x6e, |
| 0x61, 0x6d, 0x65, 0x8a, 0xd3, 0xe4, 0x93, 0x02, 0x15, 0x12, 0x13, 0x0a, 0x04, 0x6e, 0x61, 0x6d, |
| 0x65, 0x12, 0x0b, 0x7b, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x3d, 0x2a, 0x2a, 0x7d, 0x12, 0x6f, |
| 0x0a, 0x09, 0x47, 0x65, 0x74, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x23, 0x2e, 0x67, 0x6f, |
| 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x32, 0x2e, |
| 0x47, 0x65, 0x74, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, |
| 0x1a, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, |
| 0x65, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x22, 0x22, 0xda, 0x41, 0x04, |
| 0x6e, 0x61, 0x6d, 0x65, 0x8a, 0xd3, 0xe4, 0x93, 0x02, 0x15, 0x12, 0x13, 0x0a, 0x04, 0x6e, 0x61, |
| 0x6d, 0x65, 0x12, 0x0b, 0x7b, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x3d, 0x2a, 0x2a, 0x7d, 0x12, |
| 0xab, 0x01, 0x0a, 0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, |
| 0x12, 0x26, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, |
| 0x65, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x75, 0x63, 0x6b, 0x65, |
| 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, |
| 0x65, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x75, 0x63, |
| 0x6b, 0x65, 0x74, 0x22, 0x58, 0xda, 0x41, 0x17, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x2c, 0x62, |
| 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2c, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x8a, |
| 0xd3, 0xe4, 0x93, 0x02, 0x38, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, |
| 0x0c, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x3d, 0x2a, 0x2a, 0x7d, 0x12, 0x1e, 0x0a, |
| 0x0e, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, |
| 0x0c, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x3d, 0x2a, 0x2a, 0x7d, 0x12, 0x85, 0x01, |
| 0x0a, 0x0b, 0x4c, 0x69, 0x73, 0x74, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x12, 0x25, 0x2e, |
| 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, |
| 0x32, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x52, 0x65, 0x71, |
| 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x73, 0x74, |
| 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x32, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x42, 0x75, 0x63, |
| 0x6b, 0x65, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x27, 0xda, 0x41, |
| 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x8a, 0xd3, 0xe4, 0x93, 0x02, 0x18, 0x12, 0x16, 0x0a, |
| 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x0c, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, |
| 0x74, 0x3d, 0x2a, 0x2a, 0x7d, 0x12, 0x93, 0x01, 0x0a, 0x19, 0x4c, 0x6f, 0x63, 0x6b, 0x42, 0x75, |
| 0x63, 0x6b, 0x65, 0x74, 0x52, 0x65, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6c, |
| 0x69, 0x63, 0x79, 0x12, 0x33, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x73, 0x74, 0x6f, |
| 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x32, 0x2e, 0x4c, 0x6f, 0x63, 0x6b, 0x42, 0x75, 0x63, 0x6b, |
| 0x65, 0x74, 0x52, 0x65, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x6f, 0x6c, 0x69, 0x63, |
| 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, |
| 0x65, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x75, 0x63, |
| 0x6b, 0x65, 0x74, 0x22, 0x26, 0xda, 0x41, 0x06, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x8a, 0xd3, |
| 0xe4, 0x93, 0x02, 0x17, 0x12, 0x15, 0x0a, 0x06, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x0b, |
| 0x7b, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x3d, 0x2a, 0x2a, 0x7d, 0x12, 0x75, 0x0a, 0x0c, 0x47, |
| 0x65, 0x74, 0x49, 0x61, 0x6d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x22, 0x2e, 0x67, 0x6f, |
| 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x69, 0x61, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x49, |
| 0x61, 0x6d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, |
| 0x15, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x69, 0x61, 0x6d, 0x2e, 0x76, 0x31, 0x2e, |
| 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x22, 0x2a, 0xda, 0x41, 0x08, 0x72, 0x65, 0x73, 0x6f, 0x75, |
| 0x72, 0x63, 0x65, 0x8a, 0xd3, 0xe4, 0x93, 0x02, 0x19, 0x12, 0x17, 0x0a, 0x08, 0x72, 0x65, 0x73, |
| 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x0b, 0x7b, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x3d, 0x2a, |
| 0x2a, 0x7d, 0x12, 0x7c, 0x0a, 0x0c, 0x53, 0x65, 0x74, 0x49, 0x61, 0x6d, 0x50, 0x6f, 0x6c, 0x69, |
| 0x63, 0x79, 0x12, 0x22, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x69, 0x61, 0x6d, 0x2e, |
| 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x49, 0x61, 0x6d, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, |
| 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x15, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, |
| 0x69, 0x61, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x22, 0x31, 0xda, |
| 0x41, 0x0f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2c, 0x70, 0x6f, 0x6c, 0x69, 0x63, |
| 0x79, 0x8a, 0xd3, 0xe4, 0x93, 0x02, 0x19, 0x12, 0x17, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x6f, 0x75, |
| 0x72, 0x63, 0x65, 0x12, 0x0b, 0x7b, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x3d, 0x2a, 0x2a, 0x7d, |
| 0x12, 0xd7, 0x01, 0x0a, 0x12, 0x54, 0x65, 0x73, 0x74, 0x49, 0x61, 0x6d, 0x50, 0x65, 0x72, 0x6d, |
| 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x28, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, |
| 0x2e, 0x69, 0x61, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x49, 0x61, 0x6d, 0x50, |
| 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, |
| 0x74, 0x1a, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x69, 0x61, 0x6d, 0x2e, 0x76, |
| 0x31, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x49, 0x61, 0x6d, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, |
| 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x6c, 0xda, 0x41, |
| 0x14, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2c, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, |
| 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x8a, 0xd3, 0xe4, 0x93, 0x02, 0x4f, 0x12, 0x17, 0x0a, 0x08, 0x72, |
| 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x0b, 0x7b, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, |
| 0x3d, 0x2a, 0x2a, 0x7d, 0x12, 0x34, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, |
| 0x12, 0x28, 0x7b, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, |
| 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, |
| 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2a, 0x12, 0x8a, 0x01, 0x0a, 0x0c, 0x55, |
| 0x70, 0x64, 0x61, 0x74, 0x65, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x26, 0x2e, 0x67, 0x6f, |
| 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x32, 0x2e, |
| 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, |
| 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x73, 0x74, 0x6f, |
| 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x22, 0x37, |
| 0xda, 0x41, 0x12, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, |
| 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x8a, 0xd3, 0xe4, 0x93, 0x02, 0x1c, 0x12, 0x1a, 0x0a, 0x0b, 0x62, |
| 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x0b, 0x7b, 0x62, 0x75, 0x63, |
| 0x6b, 0x65, 0x74, 0x3d, 0x2a, 0x2a, 0x7d, 0x12, 0x9f, 0x01, 0x0a, 0x18, 0x44, 0x65, 0x6c, 0x65, |
| 0x74, 0x65, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, |
| 0x6e, 0x66, 0x69, 0x67, 0x12, 0x32, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x73, 0x74, |
| 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4e, |
| 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, |
| 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, |
| 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, |
| 0x22, 0x37, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x8a, 0xd3, 0xe4, 0x93, 0x02, 0x2a, 0x12, |
| 0x28, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x7b, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, |
| 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x62, 0x75, 0x63, 0x6b, |
| 0x65, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x2a, 0x2a, 0x12, 0xa8, 0x01, 0x0a, 0x15, 0x47, 0x65, |
| 0x74, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, |
| 0x66, 0x69, 0x67, 0x12, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x73, 0x74, 0x6f, |
| 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x32, 0x2e, 0x47, 0x65, 0x74, 0x4e, 0x6f, 0x74, 0x69, 0x66, |
| 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, |
| 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x73, 0x74, |
| 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x32, 0x2e, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, |
| 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0x37, 0xda, 0x41, 0x04, |
| 0x6e, 0x61, 0x6d, 0x65, 0x8a, 0xd3, 0xe4, 0x93, 0x02, 0x2a, 0x12, 0x28, 0x0a, 0x04, 0x6e, 0x61, |
| 0x6d, 0x65, 0x12, 0x20, 0x7b, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, |
| 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x2f, 0x2a, |
| 0x7d, 0x2f, 0x2a, 0x2a, 0x12, 0xb1, 0x01, 0x0a, 0x18, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, |
| 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, |
| 0x67, 0x12, 0x32, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, |
| 0x67, 0x65, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x74, 0x69, |
| 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, |
| 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x73, |
| 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x32, 0x2e, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, |
| 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0x3a, 0xda, 0x41, |
| 0x1a, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x2c, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, |
| 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x8a, 0xd3, 0xe4, 0x93, 0x02, |
| 0x17, 0x12, 0x15, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x0b, 0x7b, 0x62, 0x75, |
| 0x63, 0x6b, 0x65, 0x74, 0x3d, 0x2a, 0x2a, 0x7d, 0x12, 0xa8, 0x01, 0x0a, 0x17, 0x4c, 0x69, 0x73, |
| 0x74, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, |
| 0x66, 0x69, 0x67, 0x73, 0x12, 0x31, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x73, 0x74, |
| 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x32, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4e, 0x6f, 0x74, |
| 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, |
| 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, |
| 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x32, 0x2e, 0x4c, 0x69, 0x73, 0x74, |
| 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, |
| 0x69, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x26, 0xda, 0x41, 0x06, |
| 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x8a, 0xd3, 0xe4, 0x93, 0x02, 0x17, 0x12, 0x15, 0x0a, 0x06, |
| 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x0b, 0x7b, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x3d, |
| 0x2a, 0x2a, 0x7d, 0x12, 0x7e, 0x0a, 0x0d, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x65, 0x4f, 0x62, |
| 0x6a, 0x65, 0x63, 0x74, 0x12, 0x27, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x73, 0x74, |
| 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x65, |
| 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, |
| 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, |
| 0x32, 0x2e, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x22, 0x29, 0x8a, 0xd3, 0xe4, 0x93, 0x02, 0x23, |
| 0x12, 0x21, 0x0a, 0x12, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, |
| 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x0b, 0x7b, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x3d, |
| 0x2a, 0x2a, 0x7d, 0x12, 0x98, 0x01, 0x0a, 0x0c, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4f, 0x62, |
| 0x6a, 0x65, 0x63, 0x74, 0x12, 0x26, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x73, 0x74, |
| 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4f, |
| 0x62, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, |
| 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, |
| 0x6d, 0x70, 0x74, 0x79, 0x22, 0x48, 0xda, 0x41, 0x0d, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2c, |
| 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0xda, 0x41, 0x18, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2c, |
| 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2c, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, |
| 0x6e, 0x8a, 0xd3, 0xe4, 0x93, 0x02, 0x17, 0x12, 0x15, 0x0a, 0x06, 0x62, 0x75, 0x63, 0x6b, 0x65, |
| 0x74, 0x12, 0x0b, 0x7b, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x3d, 0x2a, 0x2a, 0x7d, 0x12, 0x8d, |
| 0x01, 0x0a, 0x0d, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, |
| 0x12, 0x27, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, |
| 0x65, 0x2e, 0x76, 0x32, 0x2e, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x4f, 0x62, 0x6a, 0x65, |
| 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, |
| 0x6c, 0x65, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x32, 0x2e, 0x4f, 0x62, |
| 0x6a, 0x65, 0x63, 0x74, 0x22, 0x38, 0xda, 0x41, 0x18, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2c, |
| 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2c, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, |
| 0x6e, 0x8a, 0xd3, 0xe4, 0x93, 0x02, 0x17, 0x12, 0x15, 0x0a, 0x06, 0x62, 0x75, 0x63, 0x6b, 0x65, |
| 0x74, 0x12, 0x0b, 0x7b, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x3d, 0x2a, 0x2a, 0x7d, 0x12, 0xba, |
| 0x01, 0x0a, 0x14, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x75, 0x6d, 0x61, 0x62, |
| 0x6c, 0x65, 0x57, 0x72, 0x69, 0x74, 0x65, 0x12, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, |
| 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x61, 0x6e, 0x63, |
| 0x65, 0x6c, 0x52, 0x65, 0x73, 0x75, 0x6d, 0x61, 0x62, 0x6c, 0x65, 0x57, 0x72, 0x69, 0x74, 0x65, |
| 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, |
| 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x61, 0x6e, 0x63, |
| 0x65, 0x6c, 0x52, 0x65, 0x73, 0x75, 0x6d, 0x61, 0x62, 0x6c, 0x65, 0x57, 0x72, 0x69, 0x74, 0x65, |
| 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x41, 0xda, 0x41, 0x09, 0x75, 0x70, 0x6c, |
| 0x6f, 0x61, 0x64, 0x5f, 0x69, 0x64, 0x8a, 0xd3, 0xe4, 0x93, 0x02, 0x2f, 0x12, 0x2d, 0x0a, 0x09, |
| 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x69, 0x64, 0x12, 0x20, 0x7b, 0x62, 0x75, 0x63, 0x6b, |
| 0x65, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x62, 0x75, |
| 0x63, 0x6b, 0x65, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x2a, 0x2a, 0x12, 0x95, 0x01, 0x0a, 0x09, |
| 0x47, 0x65, 0x74, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x23, 0x2e, 0x67, 0x6f, 0x6f, 0x67, |
| 0x6c, 0x65, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x32, 0x2e, 0x47, 0x65, |
| 0x74, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, |
| 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, |
| 0x76, 0x32, 0x2e, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x22, 0x48, 0xda, 0x41, 0x0d, 0x62, 0x75, |
| 0x63, 0x6b, 0x65, 0x74, 0x2c, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0xda, 0x41, 0x18, 0x62, 0x75, |
| 0x63, 0x6b, 0x65, 0x74, 0x2c, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2c, 0x67, 0x65, 0x6e, 0x65, |
| 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x8a, 0xd3, 0xe4, 0x93, 0x02, 0x17, 0x12, 0x15, 0x0a, 0x06, |
| 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x0b, 0x7b, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x3d, |
| 0x2a, 0x2a, 0x7d, 0x12, 0xa5, 0x01, 0x0a, 0x0a, 0x52, 0x65, 0x61, 0x64, 0x4f, 0x62, 0x6a, 0x65, |
| 0x63, 0x74, 0x12, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x73, 0x74, 0x6f, 0x72, |
| 0x61, 0x67, 0x65, 0x2e, 0x76, 0x32, 0x2e, 0x52, 0x65, 0x61, 0x64, 0x4f, 0x62, 0x6a, 0x65, 0x63, |
| 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, |
| 0x65, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x32, 0x2e, 0x52, 0x65, 0x61, |
| 0x64, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, |
| 0x48, 0xda, 0x41, 0x0d, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2c, 0x6f, 0x62, 0x6a, 0x65, 0x63, |
| 0x74, 0xda, 0x41, 0x18, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2c, 0x6f, 0x62, 0x6a, 0x65, 0x63, |
| 0x74, 0x2c, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x8a, 0xd3, 0xe4, 0x93, |
| 0x02, 0x17, 0x12, 0x15, 0x0a, 0x06, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x0b, 0x7b, 0x62, |
| 0x75, 0x63, 0x6b, 0x65, 0x74, 0x3d, 0x2a, 0x2a, 0x7d, 0x30, 0x01, 0x12, 0x8c, 0x01, 0x0a, 0x0c, |
| 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x26, 0x2e, 0x67, |
| 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x32, |
| 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, |
| 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x73, 0x74, |
| 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x32, 0x2e, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x22, |
| 0x39, 0xda, 0x41, 0x12, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2c, 0x75, 0x70, 0x64, 0x61, 0x74, |
| 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x8a, 0xd3, 0xe4, 0x93, 0x02, 0x1e, 0x12, 0x1c, 0x0a, 0x0d, |
| 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x0b, 0x7b, |
| 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x3d, 0x2a, 0x2a, 0x7d, 0x12, 0x60, 0x0a, 0x0b, 0x57, 0x72, |
| 0x69, 0x74, 0x65, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x25, 0x2e, 0x67, 0x6f, 0x6f, 0x67, |
| 0x6c, 0x65, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x32, 0x2e, 0x57, 0x72, |
| 0x69, 0x74, 0x65, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, |
| 0x1a, 0x26, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, |
| 0x65, 0x2e, 0x76, 0x32, 0x2e, 0x57, 0x72, 0x69, 0x74, 0x65, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, |
| 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x28, 0x01, 0x12, 0x6e, 0x0a, 0x0f, |
| 0x42, 0x69, 0x64, 0x69, 0x57, 0x72, 0x69, 0x74, 0x65, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x12, |
| 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, |
| 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x69, 0x64, 0x69, 0x57, 0x72, 0x69, 0x74, 0x65, 0x4f, 0x62, 0x6a, |
| 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, |
| 0x67, 0x6c, 0x65, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x32, 0x2e, 0x42, |
| 0x69, 0x64, 0x69, 0x57, 0x72, 0x69, 0x74, 0x65, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, |
| 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x28, 0x01, 0x30, 0x01, 0x12, 0x84, 0x01, 0x0a, |
| 0x0b, 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x12, 0x25, 0x2e, 0x67, |
| 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x32, |
| 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, |
| 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x73, 0x74, 0x6f, |
| 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x32, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x62, 0x6a, 0x65, |
| 0x63, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x26, 0xda, 0x41, 0x06, |
| 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x8a, 0xd3, 0xe4, 0x93, 0x02, 0x17, 0x12, 0x15, 0x0a, 0x06, |
| 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x0b, 0x7b, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x3d, |
| 0x2a, 0x2a, 0x7d, 0x12, 0x98, 0x01, 0x0a, 0x0d, 0x52, 0x65, 0x77, 0x72, 0x69, 0x74, 0x65, 0x4f, |
| 0x62, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x27, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x73, |
| 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x32, 0x2e, 0x52, 0x65, 0x77, 0x72, 0x69, 0x74, |
| 0x65, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, |
| 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, |
| 0x76, 0x32, 0x2e, 0x52, 0x65, 0x77, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, |
| 0x73, 0x65, 0x22, 0x3a, 0x8a, 0xd3, 0xe4, 0x93, 0x02, 0x34, 0x12, 0x0f, 0x0a, 0x0d, 0x73, 0x6f, |
| 0x75, 0x72, 0x63, 0x65, 0x5f, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x21, 0x0a, 0x12, 0x64, |
| 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x62, 0x75, 0x63, 0x6b, 0x65, |
| 0x74, 0x12, 0x0b, 0x7b, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x3d, 0x2a, 0x2a, 0x7d, 0x12, 0xae, |
| 0x01, 0x0a, 0x13, 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6d, 0x61, 0x62, 0x6c, |
| 0x65, 0x57, 0x72, 0x69, 0x74, 0x65, 0x12, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, |
| 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x74, 0x61, 0x72, 0x74, |
| 0x52, 0x65, 0x73, 0x75, 0x6d, 0x61, 0x62, 0x6c, 0x65, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, |
| 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x73, |
| 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, |
| 0x65, 0x73, 0x75, 0x6d, 0x61, 0x62, 0x6c, 0x65, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x73, |
| 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x38, 0x8a, 0xd3, 0xe4, 0x93, 0x02, 0x32, 0x12, 0x30, 0x0a, |
| 0x21, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x73, 0x70, |
| 0x65, 0x63, 0x2e, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 0x62, 0x75, 0x63, 0x6b, |
| 0x65, 0x74, 0x12, 0x0b, 0x7b, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x3d, 0x2a, 0x2a, 0x7d, 0x12, |
| 0xae, 0x01, 0x0a, 0x10, 0x51, 0x75, 0x65, 0x72, 0x79, 0x57, 0x72, 0x69, 0x74, 0x65, 0x53, 0x74, |
| 0x61, 0x74, 0x75, 0x73, 0x12, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x73, 0x74, |
| 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x32, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x57, 0x72, |
| 0x69, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, |
| 0x1a, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, |
| 0x65, 0x2e, 0x76, 0x32, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x57, 0x72, 0x69, 0x74, 0x65, 0x53, |
| 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x41, 0xda, |
| 0x41, 0x09, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x69, 0x64, 0x8a, 0xd3, 0xe4, 0x93, 0x02, |
| 0x2f, 0x12, 0x2d, 0x0a, 0x09, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x69, 0x64, 0x12, 0x20, |
| 0x7b, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, |
| 0x2f, 0x2a, 0x2f, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x2a, 0x2a, |
| 0x12, 0x80, 0x01, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, |
| 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, |
| 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x32, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x65, |
| 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, |
| 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x73, 0x74, 0x6f, |
| 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, |
| 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x1b, 0xda, 0x41, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, |
| 0x63, 0x74, 0x8a, 0xd3, 0xe4, 0x93, 0x02, 0x0b, 0x12, 0x09, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, |
| 0x65, 0x63, 0x74, 0x12, 0x95, 0x01, 0x0a, 0x0d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x48, 0x6d, |
| 0x61, 0x63, 0x4b, 0x65, 0x79, 0x12, 0x27, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x73, |
| 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, |
| 0x48, 0x6d, 0x61, 0x63, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, |
| 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, |
| 0x76, 0x32, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x48, 0x6d, 0x61, 0x63, 0x4b, 0x65, 0x79, |
| 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x31, 0xda, 0x41, 0x1d, 0x70, 0x72, 0x6f, |
| 0x6a, 0x65, 0x63, 0x74, 0x2c, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x63, 0x63, |
| 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x8a, 0xd3, 0xe4, 0x93, 0x02, 0x0b, |
| 0x12, 0x09, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x77, 0x0a, 0x0d, 0x44, |
| 0x65, 0x6c, 0x65, 0x74, 0x65, 0x48, 0x6d, 0x61, 0x63, 0x4b, 0x65, 0x79, 0x12, 0x27, 0x2e, 0x67, |
| 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x32, |
| 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x48, 0x6d, 0x61, 0x63, 0x4b, 0x65, 0x79, 0x52, 0x65, |
| 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, |
| 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x25, 0xda, |
| 0x41, 0x11, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x69, 0x64, 0x2c, 0x70, 0x72, 0x6f, 0x6a, |
| 0x65, 0x63, 0x74, 0x8a, 0xd3, 0xe4, 0x93, 0x02, 0x0b, 0x12, 0x09, 0x0a, 0x07, 0x70, 0x72, 0x6f, |
| 0x6a, 0x65, 0x63, 0x74, 0x12, 0x7d, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x48, 0x6d, 0x61, 0x63, 0x4b, |
| 0x65, 0x79, 0x12, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x73, 0x74, 0x6f, 0x72, |
| 0x61, 0x67, 0x65, 0x2e, 0x76, 0x32, 0x2e, 0x47, 0x65, 0x74, 0x48, 0x6d, 0x61, 0x63, 0x4b, 0x65, |
| 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, |
| 0x65, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x32, 0x2e, 0x48, 0x6d, 0x61, |
| 0x63, 0x4b, 0x65, 0x79, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0x25, 0xda, 0x41, |
| 0x11, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x69, 0x64, 0x2c, 0x70, 0x72, 0x6f, 0x6a, 0x65, |
| 0x63, 0x74, 0x8a, 0xd3, 0xe4, 0x93, 0x02, 0x0b, 0x12, 0x09, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, |
| 0x65, 0x63, 0x74, 0x12, 0x7c, 0x0a, 0x0c, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x6d, 0x61, 0x63, 0x4b, |
| 0x65, 0x79, 0x73, 0x12, 0x26, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x73, 0x74, 0x6f, |
| 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x32, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x6d, 0x61, 0x63, |
| 0x4b, 0x65, 0x79, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x67, 0x6f, |
| 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x32, 0x2e, |
| 0x4c, 0x69, 0x73, 0x74, 0x48, 0x6d, 0x61, 0x63, 0x4b, 0x65, 0x79, 0x73, 0x52, 0x65, 0x73, 0x70, |
| 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1b, 0xda, 0x41, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, |
| 0x8a, 0xd3, 0xe4, 0x93, 0x02, 0x0b, 0x12, 0x09, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, |
| 0x74, 0x12, 0x9d, 0x01, 0x0a, 0x0d, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x6d, 0x61, 0x63, |
| 0x4b, 0x65, 0x79, 0x12, 0x27, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x73, 0x74, 0x6f, |
| 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x32, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x6d, |
| 0x61, 0x63, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x67, |
| 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x32, |
| 0x2e, 0x48, 0x6d, 0x61, 0x63, 0x4b, 0x65, 0x79, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, |
| 0x22, 0x3f, 0xda, 0x41, 0x14, 0x68, 0x6d, 0x61, 0x63, 0x5f, 0x6b, 0x65, 0x79, 0x2c, 0x75, 0x70, |
| 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x8a, 0xd3, 0xe4, 0x93, 0x02, 0x22, 0x12, |
| 0x20, 0x0a, 0x10, 0x68, 0x6d, 0x61, 0x63, 0x5f, 0x6b, 0x65, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x6a, |
| 0x65, 0x63, 0x74, 0x12, 0x0c, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x3d, 0x2a, 0x2a, |
| 0x7d, 0x1a, 0xa7, 0x02, 0xca, 0x41, 0x16, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x67, |
| 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0xd2, 0x41, 0x8a, |
| 0x02, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x67, 0x6f, 0x6f, |
| 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x75, 0x74, 0x68, |
| 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2d, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2c, |
| 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x67, 0x6f, 0x6f, 0x67, |
| 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x75, 0x74, 0x68, 0x2f, |
| 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2d, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x72, |
| 0x65, 0x61, 0x64, 0x2d, 0x6f, 0x6e, 0x6c, 0x79, 0x2c, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, |
| 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, |
| 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x75, 0x74, 0x68, 0x2f, 0x64, 0x65, 0x76, 0x73, 0x74, 0x6f, 0x72, |
| 0x61, 0x67, 0x65, 0x2e, 0x66, 0x75, 0x6c, 0x6c, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, |
| 0x2c, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x67, 0x6f, 0x6f, |
| 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x75, 0x74, 0x68, |
| 0x2f, 0x64, 0x65, 0x76, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x72, 0x65, 0x61, 0x64, |
| 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x2c, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, |
| 0x77, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, |
| 0x2f, 0x61, 0x75, 0x74, 0x68, 0x2f, 0x64, 0x65, 0x76, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, |
| 0x2e, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x77, 0x72, 0x69, 0x74, 0x65, 0x42, 0xe2, 0x01, 0xea, 0x41, |
| 0x78, 0x0a, 0x21, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x6b, 0x6d, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, |
| 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x43, 0x72, 0x79, 0x70, 0x74, |
| 0x6f, 0x4b, 0x65, 0x79, 0x12, 0x53, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, |
| 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, |
| 0x6e, 0x73, 0x2f, 0x7b, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x6b, 0x65, |
| 0x79, 0x52, 0x69, 0x6e, 0x67, 0x73, 0x2f, 0x7b, 0x6b, 0x65, 0x79, 0x5f, 0x72, 0x69, 0x6e, 0x67, |
| 0x7d, 0x2f, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x4b, 0x65, 0x79, 0x73, 0x2f, 0x7b, 0x63, 0x72, |
| 0x79, 0x70, 0x74, 0x6f, 0x5f, 0x6b, 0x65, 0x79, 0x7d, 0x0a, 0x15, 0x63, 0x6f, 0x6d, 0x2e, 0x67, |
| 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x76, 0x32, |
| 0x42, 0x0c, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, |
| 0x5a, 0x3e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, |
| 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2f, 0x69, 0x6e, |
| 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x61, 0x70, 0x69, 0x76, 0x32, 0x2f, 0x73, 0x74, 0x6f, |
| 0x72, 0x61, 0x67, 0x65, 0x70, 0x62, 0x3b, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x70, 0x62, |
| 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, |
| } |
| |
| var ( |
| file_google_storage_v2_storage_proto_rawDescOnce sync.Once |
| file_google_storage_v2_storage_proto_rawDescData = file_google_storage_v2_storage_proto_rawDesc |
| ) |
| |
| func file_google_storage_v2_storage_proto_rawDescGZIP() []byte { |
| file_google_storage_v2_storage_proto_rawDescOnce.Do(func() { |
| file_google_storage_v2_storage_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_storage_v2_storage_proto_rawDescData) |
| }) |
| return file_google_storage_v2_storage_proto_rawDescData |
| } |
| |
| var file_google_storage_v2_storage_proto_enumTypes = make([]protoimpl.EnumInfo, 1) |
| var file_google_storage_v2_storage_proto_msgTypes = make([]protoimpl.MessageInfo, 79) |
| var file_google_storage_v2_storage_proto_goTypes = []interface{}{ |
| (ServiceConstants_Values)(0), // 0: google.storage.v2.ServiceConstants.Values |
| (*DeleteBucketRequest)(nil), // 1: google.storage.v2.DeleteBucketRequest |
| (*GetBucketRequest)(nil), // 2: google.storage.v2.GetBucketRequest |
| (*CreateBucketRequest)(nil), // 3: google.storage.v2.CreateBucketRequest |
| (*ListBucketsRequest)(nil), // 4: google.storage.v2.ListBucketsRequest |
| (*ListBucketsResponse)(nil), // 5: google.storage.v2.ListBucketsResponse |
| (*LockBucketRetentionPolicyRequest)(nil), // 6: google.storage.v2.LockBucketRetentionPolicyRequest |
| (*UpdateBucketRequest)(nil), // 7: google.storage.v2.UpdateBucketRequest |
| (*DeleteNotificationConfigRequest)(nil), // 8: google.storage.v2.DeleteNotificationConfigRequest |
| (*GetNotificationConfigRequest)(nil), // 9: google.storage.v2.GetNotificationConfigRequest |
| (*CreateNotificationConfigRequest)(nil), // 10: google.storage.v2.CreateNotificationConfigRequest |
| (*ListNotificationConfigsRequest)(nil), // 11: google.storage.v2.ListNotificationConfigsRequest |
| (*ListNotificationConfigsResponse)(nil), // 12: google.storage.v2.ListNotificationConfigsResponse |
| (*ComposeObjectRequest)(nil), // 13: google.storage.v2.ComposeObjectRequest |
| (*DeleteObjectRequest)(nil), // 14: google.storage.v2.DeleteObjectRequest |
| (*RestoreObjectRequest)(nil), // 15: google.storage.v2.RestoreObjectRequest |
| (*CancelResumableWriteRequest)(nil), // 16: google.storage.v2.CancelResumableWriteRequest |
| (*CancelResumableWriteResponse)(nil), // 17: google.storage.v2.CancelResumableWriteResponse |
| (*ReadObjectRequest)(nil), // 18: google.storage.v2.ReadObjectRequest |
| (*GetObjectRequest)(nil), // 19: google.storage.v2.GetObjectRequest |
| (*ReadObjectResponse)(nil), // 20: google.storage.v2.ReadObjectResponse |
| (*WriteObjectSpec)(nil), // 21: google.storage.v2.WriteObjectSpec |
| (*WriteObjectRequest)(nil), // 22: google.storage.v2.WriteObjectRequest |
| (*WriteObjectResponse)(nil), // 23: google.storage.v2.WriteObjectResponse |
| (*BidiWriteObjectRequest)(nil), // 24: google.storage.v2.BidiWriteObjectRequest |
| (*BidiWriteObjectResponse)(nil), // 25: google.storage.v2.BidiWriteObjectResponse |
| (*ListObjectsRequest)(nil), // 26: google.storage.v2.ListObjectsRequest |
| (*QueryWriteStatusRequest)(nil), // 27: google.storage.v2.QueryWriteStatusRequest |
| (*QueryWriteStatusResponse)(nil), // 28: google.storage.v2.QueryWriteStatusResponse |
| (*RewriteObjectRequest)(nil), // 29: google.storage.v2.RewriteObjectRequest |
| (*RewriteResponse)(nil), // 30: google.storage.v2.RewriteResponse |
| (*StartResumableWriteRequest)(nil), // 31: google.storage.v2.StartResumableWriteRequest |
| (*StartResumableWriteResponse)(nil), // 32: google.storage.v2.StartResumableWriteResponse |
| (*UpdateObjectRequest)(nil), // 33: google.storage.v2.UpdateObjectRequest |
| (*GetServiceAccountRequest)(nil), // 34: google.storage.v2.GetServiceAccountRequest |
| (*CreateHmacKeyRequest)(nil), // 35: google.storage.v2.CreateHmacKeyRequest |
| (*CreateHmacKeyResponse)(nil), // 36: google.storage.v2.CreateHmacKeyResponse |
| (*DeleteHmacKeyRequest)(nil), // 37: google.storage.v2.DeleteHmacKeyRequest |
| (*GetHmacKeyRequest)(nil), // 38: google.storage.v2.GetHmacKeyRequest |
| (*ListHmacKeysRequest)(nil), // 39: google.storage.v2.ListHmacKeysRequest |
| (*ListHmacKeysResponse)(nil), // 40: google.storage.v2.ListHmacKeysResponse |
| (*UpdateHmacKeyRequest)(nil), // 41: google.storage.v2.UpdateHmacKeyRequest |
| (*CommonObjectRequestParams)(nil), // 42: google.storage.v2.CommonObjectRequestParams |
| (*ServiceConstants)(nil), // 43: google.storage.v2.ServiceConstants |
| (*Bucket)(nil), // 44: google.storage.v2.Bucket |
| (*BucketAccessControl)(nil), // 45: google.storage.v2.BucketAccessControl |
| (*ChecksummedData)(nil), // 46: google.storage.v2.ChecksummedData |
| (*ObjectChecksums)(nil), // 47: google.storage.v2.ObjectChecksums |
| (*HmacKeyMetadata)(nil), // 48: google.storage.v2.HmacKeyMetadata |
| (*NotificationConfig)(nil), // 49: google.storage.v2.NotificationConfig |
| (*CustomerEncryption)(nil), // 50: google.storage.v2.CustomerEncryption |
| (*Object)(nil), // 51: google.storage.v2.Object |
| (*ObjectAccessControl)(nil), // 52: google.storage.v2.ObjectAccessControl |
| (*ListObjectsResponse)(nil), // 53: google.storage.v2.ListObjectsResponse |
| (*ProjectTeam)(nil), // 54: google.storage.v2.ProjectTeam |
| (*ServiceAccount)(nil), // 55: google.storage.v2.ServiceAccount |
| (*Owner)(nil), // 56: google.storage.v2.Owner |
| (*ContentRange)(nil), // 57: google.storage.v2.ContentRange |
| (*ComposeObjectRequest_SourceObject)(nil), // 58: google.storage.v2.ComposeObjectRequest.SourceObject |
| (*ComposeObjectRequest_SourceObject_ObjectPreconditions)(nil), // 59: google.storage.v2.ComposeObjectRequest.SourceObject.ObjectPreconditions |
| (*Bucket_Billing)(nil), // 60: google.storage.v2.Bucket.Billing |
| (*Bucket_Cors)(nil), // 61: google.storage.v2.Bucket.Cors |
| (*Bucket_Encryption)(nil), // 62: google.storage.v2.Bucket.Encryption |
| (*Bucket_IamConfig)(nil), // 63: google.storage.v2.Bucket.IamConfig |
| (*Bucket_Lifecycle)(nil), // 64: google.storage.v2.Bucket.Lifecycle |
| (*Bucket_Logging)(nil), // 65: google.storage.v2.Bucket.Logging |
| (*Bucket_RetentionPolicy)(nil), // 66: google.storage.v2.Bucket.RetentionPolicy |
| (*Bucket_SoftDeletePolicy)(nil), // 67: google.storage.v2.Bucket.SoftDeletePolicy |
| (*Bucket_Versioning)(nil), // 68: google.storage.v2.Bucket.Versioning |
| (*Bucket_Website)(nil), // 69: google.storage.v2.Bucket.Website |
| (*Bucket_CustomPlacementConfig)(nil), // 70: google.storage.v2.Bucket.CustomPlacementConfig |
| (*Bucket_Autoclass)(nil), // 71: google.storage.v2.Bucket.Autoclass |
| (*Bucket_HierarchicalNamespace)(nil), // 72: google.storage.v2.Bucket.HierarchicalNamespace |
| nil, // 73: google.storage.v2.Bucket.LabelsEntry |
| (*Bucket_IamConfig_UniformBucketLevelAccess)(nil), // 74: google.storage.v2.Bucket.IamConfig.UniformBucketLevelAccess |
| (*Bucket_Lifecycle_Rule)(nil), // 75: google.storage.v2.Bucket.Lifecycle.Rule |
| (*Bucket_Lifecycle_Rule_Action)(nil), // 76: google.storage.v2.Bucket.Lifecycle.Rule.Action |
| (*Bucket_Lifecycle_Rule_Condition)(nil), // 77: google.storage.v2.Bucket.Lifecycle.Rule.Condition |
| nil, // 78: google.storage.v2.NotificationConfig.CustomAttributesEntry |
| nil, // 79: google.storage.v2.Object.MetadataEntry |
| (*fieldmaskpb.FieldMask)(nil), // 80: google.protobuf.FieldMask |
| (*timestamppb.Timestamp)(nil), // 81: google.protobuf.Timestamp |
| (*durationpb.Duration)(nil), // 82: google.protobuf.Duration |
| (*date.Date)(nil), // 83: google.type.Date |
| (*iampb.GetIamPolicyRequest)(nil), // 84: google.iam.v1.GetIamPolicyRequest |
| (*iampb.SetIamPolicyRequest)(nil), // 85: google.iam.v1.SetIamPolicyRequest |
| (*iampb.TestIamPermissionsRequest)(nil), // 86: google.iam.v1.TestIamPermissionsRequest |
| (*emptypb.Empty)(nil), // 87: google.protobuf.Empty |
| (*iampb.Policy)(nil), // 88: google.iam.v1.Policy |
| (*iampb.TestIamPermissionsResponse)(nil), // 89: google.iam.v1.TestIamPermissionsResponse |
| } |
| var file_google_storage_v2_storage_proto_depIdxs = []int32{ |
| 80, // 0: google.storage.v2.GetBucketRequest.read_mask:type_name -> google.protobuf.FieldMask |
| 44, // 1: google.storage.v2.CreateBucketRequest.bucket:type_name -> google.storage.v2.Bucket |
| 80, // 2: google.storage.v2.ListBucketsRequest.read_mask:type_name -> google.protobuf.FieldMask |
| 44, // 3: google.storage.v2.ListBucketsResponse.buckets:type_name -> google.storage.v2.Bucket |
| 44, // 4: google.storage.v2.UpdateBucketRequest.bucket:type_name -> google.storage.v2.Bucket |
| 80, // 5: google.storage.v2.UpdateBucketRequest.update_mask:type_name -> google.protobuf.FieldMask |
| 49, // 6: google.storage.v2.CreateNotificationConfigRequest.notification_config:type_name -> google.storage.v2.NotificationConfig |
| 49, // 7: google.storage.v2.ListNotificationConfigsResponse.notification_configs:type_name -> google.storage.v2.NotificationConfig |
| 51, // 8: google.storage.v2.ComposeObjectRequest.destination:type_name -> google.storage.v2.Object |
| 58, // 9: google.storage.v2.ComposeObjectRequest.source_objects:type_name -> google.storage.v2.ComposeObjectRequest.SourceObject |
| 42, // 10: google.storage.v2.ComposeObjectRequest.common_object_request_params:type_name -> google.storage.v2.CommonObjectRequestParams |
| 47, // 11: google.storage.v2.ComposeObjectRequest.object_checksums:type_name -> google.storage.v2.ObjectChecksums |
| 42, // 12: google.storage.v2.DeleteObjectRequest.common_object_request_params:type_name -> google.storage.v2.CommonObjectRequestParams |
| 42, // 13: google.storage.v2.RestoreObjectRequest.common_object_request_params:type_name -> google.storage.v2.CommonObjectRequestParams |
| 42, // 14: google.storage.v2.ReadObjectRequest.common_object_request_params:type_name -> google.storage.v2.CommonObjectRequestParams |
| 80, // 15: google.storage.v2.ReadObjectRequest.read_mask:type_name -> google.protobuf.FieldMask |
| 42, // 16: google.storage.v2.GetObjectRequest.common_object_request_params:type_name -> google.storage.v2.CommonObjectRequestParams |
| 80, // 17: google.storage.v2.GetObjectRequest.read_mask:type_name -> google.protobuf.FieldMask |
| 46, // 18: google.storage.v2.ReadObjectResponse.checksummed_data:type_name -> google.storage.v2.ChecksummedData |
| 47, // 19: google.storage.v2.ReadObjectResponse.object_checksums:type_name -> google.storage.v2.ObjectChecksums |
| 57, // 20: google.storage.v2.ReadObjectResponse.content_range:type_name -> google.storage.v2.ContentRange |
| 51, // 21: google.storage.v2.ReadObjectResponse.metadata:type_name -> google.storage.v2.Object |
| 51, // 22: google.storage.v2.WriteObjectSpec.resource:type_name -> google.storage.v2.Object |
| 21, // 23: google.storage.v2.WriteObjectRequest.write_object_spec:type_name -> google.storage.v2.WriteObjectSpec |
| 46, // 24: google.storage.v2.WriteObjectRequest.checksummed_data:type_name -> google.storage.v2.ChecksummedData |
| 47, // 25: google.storage.v2.WriteObjectRequest.object_checksums:type_name -> google.storage.v2.ObjectChecksums |
| 42, // 26: google.storage.v2.WriteObjectRequest.common_object_request_params:type_name -> google.storage.v2.CommonObjectRequestParams |
| 51, // 27: google.storage.v2.WriteObjectResponse.resource:type_name -> google.storage.v2.Object |
| 21, // 28: google.storage.v2.BidiWriteObjectRequest.write_object_spec:type_name -> google.storage.v2.WriteObjectSpec |
| 46, // 29: google.storage.v2.BidiWriteObjectRequest.checksummed_data:type_name -> google.storage.v2.ChecksummedData |
| 47, // 30: google.storage.v2.BidiWriteObjectRequest.object_checksums:type_name -> google.storage.v2.ObjectChecksums |
| 42, // 31: google.storage.v2.BidiWriteObjectRequest.common_object_request_params:type_name -> google.storage.v2.CommonObjectRequestParams |
| 51, // 32: google.storage.v2.BidiWriteObjectResponse.resource:type_name -> google.storage.v2.Object |
| 80, // 33: google.storage.v2.ListObjectsRequest.read_mask:type_name -> google.protobuf.FieldMask |
| 42, // 34: google.storage.v2.QueryWriteStatusRequest.common_object_request_params:type_name -> google.storage.v2.CommonObjectRequestParams |
| 51, // 35: google.storage.v2.QueryWriteStatusResponse.resource:type_name -> google.storage.v2.Object |
| 51, // 36: google.storage.v2.RewriteObjectRequest.destination:type_name -> google.storage.v2.Object |
| 42, // 37: google.storage.v2.RewriteObjectRequest.common_object_request_params:type_name -> google.storage.v2.CommonObjectRequestParams |
| 47, // 38: google.storage.v2.RewriteObjectRequest.object_checksums:type_name -> google.storage.v2.ObjectChecksums |
| 51, // 39: google.storage.v2.RewriteResponse.resource:type_name -> google.storage.v2.Object |
| 21, // 40: google.storage.v2.StartResumableWriteRequest.write_object_spec:type_name -> google.storage.v2.WriteObjectSpec |
| 42, // 41: google.storage.v2.StartResumableWriteRequest.common_object_request_params:type_name -> google.storage.v2.CommonObjectRequestParams |
| 47, // 42: google.storage.v2.StartResumableWriteRequest.object_checksums:type_name -> google.storage.v2.ObjectChecksums |
| 51, // 43: google.storage.v2.UpdateObjectRequest.object:type_name -> google.storage.v2.Object |
| 80, // 44: google.storage.v2.UpdateObjectRequest.update_mask:type_name -> google.protobuf.FieldMask |
| 42, // 45: google.storage.v2.UpdateObjectRequest.common_object_request_params:type_name -> google.storage.v2.CommonObjectRequestParams |
| 48, // 46: google.storage.v2.CreateHmacKeyResponse.metadata:type_name -> google.storage.v2.HmacKeyMetadata |
| 48, // 47: google.storage.v2.ListHmacKeysResponse.hmac_keys:type_name -> google.storage.v2.HmacKeyMetadata |
| 48, // 48: google.storage.v2.UpdateHmacKeyRequest.hmac_key:type_name -> google.storage.v2.HmacKeyMetadata |
| 80, // 49: google.storage.v2.UpdateHmacKeyRequest.update_mask:type_name -> google.protobuf.FieldMask |
| 45, // 50: google.storage.v2.Bucket.acl:type_name -> google.storage.v2.BucketAccessControl |
| 52, // 51: google.storage.v2.Bucket.default_object_acl:type_name -> google.storage.v2.ObjectAccessControl |
| 64, // 52: google.storage.v2.Bucket.lifecycle:type_name -> google.storage.v2.Bucket.Lifecycle |
| 81, // 53: google.storage.v2.Bucket.create_time:type_name -> google.protobuf.Timestamp |
| 61, // 54: google.storage.v2.Bucket.cors:type_name -> google.storage.v2.Bucket.Cors |
| 81, // 55: google.storage.v2.Bucket.update_time:type_name -> google.protobuf.Timestamp |
| 73, // 56: google.storage.v2.Bucket.labels:type_name -> google.storage.v2.Bucket.LabelsEntry |
| 69, // 57: google.storage.v2.Bucket.website:type_name -> google.storage.v2.Bucket.Website |
| 68, // 58: google.storage.v2.Bucket.versioning:type_name -> google.storage.v2.Bucket.Versioning |
| 65, // 59: google.storage.v2.Bucket.logging:type_name -> google.storage.v2.Bucket.Logging |
| 56, // 60: google.storage.v2.Bucket.owner:type_name -> google.storage.v2.Owner |
| 62, // 61: google.storage.v2.Bucket.encryption:type_name -> google.storage.v2.Bucket.Encryption |
| 60, // 62: google.storage.v2.Bucket.billing:type_name -> google.storage.v2.Bucket.Billing |
| 66, // 63: google.storage.v2.Bucket.retention_policy:type_name -> google.storage.v2.Bucket.RetentionPolicy |
| 63, // 64: google.storage.v2.Bucket.iam_config:type_name -> google.storage.v2.Bucket.IamConfig |
| 70, // 65: google.storage.v2.Bucket.custom_placement_config:type_name -> google.storage.v2.Bucket.CustomPlacementConfig |
| 71, // 66: google.storage.v2.Bucket.autoclass:type_name -> google.storage.v2.Bucket.Autoclass |
| 72, // 67: google.storage.v2.Bucket.hierarchical_namespace:type_name -> google.storage.v2.Bucket.HierarchicalNamespace |
| 67, // 68: google.storage.v2.Bucket.soft_delete_policy:type_name -> google.storage.v2.Bucket.SoftDeletePolicy |
| 54, // 69: google.storage.v2.BucketAccessControl.project_team:type_name -> google.storage.v2.ProjectTeam |
| 81, // 70: google.storage.v2.HmacKeyMetadata.create_time:type_name -> google.protobuf.Timestamp |
| 81, // 71: google.storage.v2.HmacKeyMetadata.update_time:type_name -> google.protobuf.Timestamp |
| 78, // 72: google.storage.v2.NotificationConfig.custom_attributes:type_name -> google.storage.v2.NotificationConfig.CustomAttributesEntry |
| 52, // 73: google.storage.v2.Object.acl:type_name -> google.storage.v2.ObjectAccessControl |
| 81, // 74: google.storage.v2.Object.delete_time:type_name -> google.protobuf.Timestamp |
| 81, // 75: google.storage.v2.Object.create_time:type_name -> google.protobuf.Timestamp |
| 47, // 76: google.storage.v2.Object.checksums:type_name -> google.storage.v2.ObjectChecksums |
| 81, // 77: google.storage.v2.Object.update_time:type_name -> google.protobuf.Timestamp |
| 81, // 78: google.storage.v2.Object.update_storage_class_time:type_name -> google.protobuf.Timestamp |
| 81, // 79: google.storage.v2.Object.retention_expire_time:type_name -> google.protobuf.Timestamp |
| 79, // 80: google.storage.v2.Object.metadata:type_name -> google.storage.v2.Object.MetadataEntry |
| 56, // 81: google.storage.v2.Object.owner:type_name -> google.storage.v2.Owner |
| 50, // 82: google.storage.v2.Object.customer_encryption:type_name -> google.storage.v2.CustomerEncryption |
| 81, // 83: google.storage.v2.Object.custom_time:type_name -> google.protobuf.Timestamp |
| 81, // 84: google.storage.v2.Object.soft_delete_time:type_name -> google.protobuf.Timestamp |
| 81, // 85: google.storage.v2.Object.hard_delete_time:type_name -> google.protobuf.Timestamp |
| 54, // 86: google.storage.v2.ObjectAccessControl.project_team:type_name -> google.storage.v2.ProjectTeam |
| 51, // 87: google.storage.v2.ListObjectsResponse.objects:type_name -> google.storage.v2.Object |
| 59, // 88: google.storage.v2.ComposeObjectRequest.SourceObject.object_preconditions:type_name -> google.storage.v2.ComposeObjectRequest.SourceObject.ObjectPreconditions |
| 74, // 89: google.storage.v2.Bucket.IamConfig.uniform_bucket_level_access:type_name -> google.storage.v2.Bucket.IamConfig.UniformBucketLevelAccess |
| 75, // 90: google.storage.v2.Bucket.Lifecycle.rule:type_name -> google.storage.v2.Bucket.Lifecycle.Rule |
| 81, // 91: google.storage.v2.Bucket.RetentionPolicy.effective_time:type_name -> google.protobuf.Timestamp |
| 82, // 92: google.storage.v2.Bucket.RetentionPolicy.retention_duration:type_name -> google.protobuf.Duration |
| 82, // 93: google.storage.v2.Bucket.SoftDeletePolicy.retention_duration:type_name -> google.protobuf.Duration |
| 81, // 94: google.storage.v2.Bucket.SoftDeletePolicy.effective_time:type_name -> google.protobuf.Timestamp |
| 81, // 95: google.storage.v2.Bucket.Autoclass.toggle_time:type_name -> google.protobuf.Timestamp |
| 81, // 96: google.storage.v2.Bucket.Autoclass.terminal_storage_class_update_time:type_name -> google.protobuf.Timestamp |
| 81, // 97: google.storage.v2.Bucket.IamConfig.UniformBucketLevelAccess.lock_time:type_name -> google.protobuf.Timestamp |
| 76, // 98: google.storage.v2.Bucket.Lifecycle.Rule.action:type_name -> google.storage.v2.Bucket.Lifecycle.Rule.Action |
| 77, // 99: google.storage.v2.Bucket.Lifecycle.Rule.condition:type_name -> google.storage.v2.Bucket.Lifecycle.Rule.Condition |
| 83, // 100: google.storage.v2.Bucket.Lifecycle.Rule.Condition.created_before:type_name -> google.type.Date |
| 83, // 101: google.storage.v2.Bucket.Lifecycle.Rule.Condition.custom_time_before:type_name -> google.type.Date |
| 83, // 102: google.storage.v2.Bucket.Lifecycle.Rule.Condition.noncurrent_time_before:type_name -> google.type.Date |
| 1, // 103: google.storage.v2.Storage.DeleteBucket:input_type -> google.storage.v2.DeleteBucketRequest |
| 2, // 104: google.storage.v2.Storage.GetBucket:input_type -> google.storage.v2.GetBucketRequest |
| 3, // 105: google.storage.v2.Storage.CreateBucket:input_type -> google.storage.v2.CreateBucketRequest |
| 4, // 106: google.storage.v2.Storage.ListBuckets:input_type -> google.storage.v2.ListBucketsRequest |
| 6, // 107: google.storage.v2.Storage.LockBucketRetentionPolicy:input_type -> google.storage.v2.LockBucketRetentionPolicyRequest |
| 84, // 108: google.storage.v2.Storage.GetIamPolicy:input_type -> google.iam.v1.GetIamPolicyRequest |
| 85, // 109: google.storage.v2.Storage.SetIamPolicy:input_type -> google.iam.v1.SetIamPolicyRequest |
| 86, // 110: google.storage.v2.Storage.TestIamPermissions:input_type -> google.iam.v1.TestIamPermissionsRequest |
| 7, // 111: google.storage.v2.Storage.UpdateBucket:input_type -> google.storage.v2.UpdateBucketRequest |
| 8, // 112: google.storage.v2.Storage.DeleteNotificationConfig:input_type -> google.storage.v2.DeleteNotificationConfigRequest |
| 9, // 113: google.storage.v2.Storage.GetNotificationConfig:input_type -> google.storage.v2.GetNotificationConfigRequest |
| 10, // 114: google.storage.v2.Storage.CreateNotificationConfig:input_type -> google.storage.v2.CreateNotificationConfigRequest |
| 11, // 115: google.storage.v2.Storage.ListNotificationConfigs:input_type -> google.storage.v2.ListNotificationConfigsRequest |
| 13, // 116: google.storage.v2.Storage.ComposeObject:input_type -> google.storage.v2.ComposeObjectRequest |
| 14, // 117: google.storage.v2.Storage.DeleteObject:input_type -> google.storage.v2.DeleteObjectRequest |
| 15, // 118: google.storage.v2.Storage.RestoreObject:input_type -> google.storage.v2.RestoreObjectRequest |
| 16, // 119: google.storage.v2.Storage.CancelResumableWrite:input_type -> google.storage.v2.CancelResumableWriteRequest |
| 19, // 120: google.storage.v2.Storage.GetObject:input_type -> google.storage.v2.GetObjectRequest |
| 18, // 121: google.storage.v2.Storage.ReadObject:input_type -> google.storage.v2.ReadObjectRequest |
| 33, // 122: google.storage.v2.Storage.UpdateObject:input_type -> google.storage.v2.UpdateObjectRequest |
| 22, // 123: google.storage.v2.Storage.WriteObject:input_type -> google.storage.v2.WriteObjectRequest |
| 24, // 124: google.storage.v2.Storage.BidiWriteObject:input_type -> google.storage.v2.BidiWriteObjectRequest |
| 26, // 125: google.storage.v2.Storage.ListObjects:input_type -> google.storage.v2.ListObjectsRequest |
| 29, // 126: google.storage.v2.Storage.RewriteObject:input_type -> google.storage.v2.RewriteObjectRequest |
| 31, // 127: google.storage.v2.Storage.StartResumableWrite:input_type -> google.storage.v2.StartResumableWriteRequest |
| 27, // 128: google.storage.v2.Storage.QueryWriteStatus:input_type -> google.storage.v2.QueryWriteStatusRequest |
| 34, // 129: google.storage.v2.Storage.GetServiceAccount:input_type -> google.storage.v2.GetServiceAccountRequest |
| 35, // 130: google.storage.v2.Storage.CreateHmacKey:input_type -> google.storage.v2.CreateHmacKeyRequest |
| 37, // 131: google.storage.v2.Storage.DeleteHmacKey:input_type -> google.storage.v2.DeleteHmacKeyRequest |
| 38, // 132: google.storage.v2.Storage.GetHmacKey:input_type -> google.storage.v2.GetHmacKeyRequest |
| 39, // 133: google.storage.v2.Storage.ListHmacKeys:input_type -> google.storage.v2.ListHmacKeysRequest |
| 41, // 134: google.storage.v2.Storage.UpdateHmacKey:input_type -> google.storage.v2.UpdateHmacKeyRequest |
| 87, // 135: google.storage.v2.Storage.DeleteBucket:output_type -> google.protobuf.Empty |
| 44, // 136: google.storage.v2.Storage.GetBucket:output_type -> google.storage.v2.Bucket |
| 44, // 137: google.storage.v2.Storage.CreateBucket:output_type -> google.storage.v2.Bucket |
| 5, // 138: google.storage.v2.Storage.ListBuckets:output_type -> google.storage.v2.ListBucketsResponse |
| 44, // 139: google.storage.v2.Storage.LockBucketRetentionPolicy:output_type -> google.storage.v2.Bucket |
| 88, // 140: google.storage.v2.Storage.GetIamPolicy:output_type -> google.iam.v1.Policy |
| 88, // 141: google.storage.v2.Storage.SetIamPolicy:output_type -> google.iam.v1.Policy |
| 89, // 142: google.storage.v2.Storage.TestIamPermissions:output_type -> google.iam.v1.TestIamPermissionsResponse |
| 44, // 143: google.storage.v2.Storage.UpdateBucket:output_type -> google.storage.v2.Bucket |
| 87, // 144: google.storage.v2.Storage.DeleteNotificationConfig:output_type -> google.protobuf.Empty |
| 49, // 145: google.storage.v2.Storage.GetNotificationConfig:output_type -> google.storage.v2.NotificationConfig |
| 49, // 146: google.storage.v2.Storage.CreateNotificationConfig:output_type -> google.storage.v2.NotificationConfig |
| 12, // 147: google.storage.v2.Storage.ListNotificationConfigs:output_type -> google.storage.v2.ListNotificationConfigsResponse |
| 51, // 148: google.storage.v2.Storage.ComposeObject:output_type -> google.storage.v2.Object |
| 87, // 149: google.storage.v2.Storage.DeleteObject:output_type -> google.protobuf.Empty |
| 51, // 150: google.storage.v2.Storage.RestoreObject:output_type -> google.storage.v2.Object |
| 17, // 151: google.storage.v2.Storage.CancelResumableWrite:output_type -> google.storage.v2.CancelResumableWriteResponse |
| 51, // 152: google.storage.v2.Storage.GetObject:output_type -> google.storage.v2.Object |
| 20, // 153: google.storage.v2.Storage.ReadObject:output_type -> google.storage.v2.ReadObjectResponse |
| 51, // 154: google.storage.v2.Storage.UpdateObject:output_type -> google.storage.v2.Object |
| 23, // 155: google.storage.v2.Storage.WriteObject:output_type -> google.storage.v2.WriteObjectResponse |
| 25, // 156: google.storage.v2.Storage.BidiWriteObject:output_type -> google.storage.v2.BidiWriteObjectResponse |
| 53, // 157: google.storage.v2.Storage.ListObjects:output_type -> google.storage.v2.ListObjectsResponse |
| 30, // 158: google.storage.v2.Storage.RewriteObject:output_type -> google.storage.v2.RewriteResponse |
| 32, // 159: google.storage.v2.Storage.StartResumableWrite:output_type -> google.storage.v2.StartResumableWriteResponse |
| 28, // 160: google.storage.v2.Storage.QueryWriteStatus:output_type -> google.storage.v2.QueryWriteStatusResponse |
| 55, // 161: google.storage.v2.Storage.GetServiceAccount:output_type -> google.storage.v2.ServiceAccount |
| 36, // 162: google.storage.v2.Storage.CreateHmacKey:output_type -> google.storage.v2.CreateHmacKeyResponse |
| 87, // 163: google.storage.v2.Storage.DeleteHmacKey:output_type -> google.protobuf.Empty |
| 48, // 164: google.storage.v2.Storage.GetHmacKey:output_type -> google.storage.v2.HmacKeyMetadata |
| 40, // 165: google.storage.v2.Storage.ListHmacKeys:output_type -> google.storage.v2.ListHmacKeysResponse |
| 48, // 166: google.storage.v2.Storage.UpdateHmacKey:output_type -> google.storage.v2.HmacKeyMetadata |
| 135, // [135:167] is the sub-list for method output_type |
| 103, // [103:135] is the sub-list for method input_type |
| 103, // [103:103] is the sub-list for extension type_name |
| 103, // [103:103] is the sub-list for extension extendee |
| 0, // [0:103] is the sub-list for field type_name |
| } |
| |
| func init() { file_google_storage_v2_storage_proto_init() } |
| func file_google_storage_v2_storage_proto_init() { |
| if File_google_storage_v2_storage_proto != nil { |
| return |
| } |
| if !protoimpl.UnsafeEnabled { |
| file_google_storage_v2_storage_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*DeleteBucketRequest); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_storage_v2_storage_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*GetBucketRequest); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_storage_v2_storage_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*CreateBucketRequest); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_storage_v2_storage_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*ListBucketsRequest); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_storage_v2_storage_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*ListBucketsResponse); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_storage_v2_storage_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*LockBucketRetentionPolicyRequest); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_storage_v2_storage_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*UpdateBucketRequest); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_storage_v2_storage_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*DeleteNotificationConfigRequest); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_storage_v2_storage_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*GetNotificationConfigRequest); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_storage_v2_storage_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*CreateNotificationConfigRequest); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_storage_v2_storage_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*ListNotificationConfigsRequest); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_storage_v2_storage_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*ListNotificationConfigsResponse); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_storage_v2_storage_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*ComposeObjectRequest); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_storage_v2_storage_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*DeleteObjectRequest); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_storage_v2_storage_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*RestoreObjectRequest); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_storage_v2_storage_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*CancelResumableWriteRequest); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_storage_v2_storage_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*CancelResumableWriteResponse); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_storage_v2_storage_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*ReadObjectRequest); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_storage_v2_storage_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*GetObjectRequest); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_storage_v2_storage_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*ReadObjectResponse); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_storage_v2_storage_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*WriteObjectSpec); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_storage_v2_storage_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*WriteObjectRequest); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_storage_v2_storage_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*WriteObjectResponse); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_storage_v2_storage_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*BidiWriteObjectRequest); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_storage_v2_storage_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*BidiWriteObjectResponse); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_storage_v2_storage_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*ListObjectsRequest); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_storage_v2_storage_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*QueryWriteStatusRequest); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_storage_v2_storage_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*QueryWriteStatusResponse); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_storage_v2_storage_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*RewriteObjectRequest); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_storage_v2_storage_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*RewriteResponse); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_storage_v2_storage_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*StartResumableWriteRequest); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_storage_v2_storage_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*StartResumableWriteResponse); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_storage_v2_storage_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*UpdateObjectRequest); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_storage_v2_storage_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*GetServiceAccountRequest); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_storage_v2_storage_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*CreateHmacKeyRequest); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_storage_v2_storage_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*CreateHmacKeyResponse); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_storage_v2_storage_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*DeleteHmacKeyRequest); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_storage_v2_storage_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*GetHmacKeyRequest); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_storage_v2_storage_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*ListHmacKeysRequest); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_storage_v2_storage_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*ListHmacKeysResponse); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_storage_v2_storage_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*UpdateHmacKeyRequest); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_storage_v2_storage_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*CommonObjectRequestParams); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_storage_v2_storage_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*ServiceConstants); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_storage_v2_storage_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*Bucket); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_storage_v2_storage_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*BucketAccessControl); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_storage_v2_storage_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*ChecksummedData); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_storage_v2_storage_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*ObjectChecksums); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_storage_v2_storage_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*HmacKeyMetadata); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_storage_v2_storage_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*NotificationConfig); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_storage_v2_storage_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*CustomerEncryption); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_storage_v2_storage_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*Object); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_storage_v2_storage_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*ObjectAccessControl); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_storage_v2_storage_proto_msgTypes[52].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*ListObjectsResponse); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_storage_v2_storage_proto_msgTypes[53].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*ProjectTeam); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_storage_v2_storage_proto_msgTypes[54].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*ServiceAccount); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_storage_v2_storage_proto_msgTypes[55].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*Owner); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_storage_v2_storage_proto_msgTypes[56].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*ContentRange); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_storage_v2_storage_proto_msgTypes[57].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*ComposeObjectRequest_SourceObject); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_storage_v2_storage_proto_msgTypes[58].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*ComposeObjectRequest_SourceObject_ObjectPreconditions); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_storage_v2_storage_proto_msgTypes[59].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*Bucket_Billing); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_storage_v2_storage_proto_msgTypes[60].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*Bucket_Cors); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_storage_v2_storage_proto_msgTypes[61].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*Bucket_Encryption); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_storage_v2_storage_proto_msgTypes[62].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*Bucket_IamConfig); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_storage_v2_storage_proto_msgTypes[63].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*Bucket_Lifecycle); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_storage_v2_storage_proto_msgTypes[64].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*Bucket_Logging); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_storage_v2_storage_proto_msgTypes[65].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*Bucket_RetentionPolicy); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_storage_v2_storage_proto_msgTypes[66].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*Bucket_SoftDeletePolicy); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_storage_v2_storage_proto_msgTypes[67].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*Bucket_Versioning); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_storage_v2_storage_proto_msgTypes[68].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*Bucket_Website); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_storage_v2_storage_proto_msgTypes[69].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*Bucket_CustomPlacementConfig); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_storage_v2_storage_proto_msgTypes[70].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*Bucket_Autoclass); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_storage_v2_storage_proto_msgTypes[71].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*Bucket_HierarchicalNamespace); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_storage_v2_storage_proto_msgTypes[73].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*Bucket_IamConfig_UniformBucketLevelAccess); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_storage_v2_storage_proto_msgTypes[74].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*Bucket_Lifecycle_Rule); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_storage_v2_storage_proto_msgTypes[75].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*Bucket_Lifecycle_Rule_Action); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_google_storage_v2_storage_proto_msgTypes[76].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*Bucket_Lifecycle_Rule_Condition); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| } |
| file_google_storage_v2_storage_proto_msgTypes[0].OneofWrappers = []interface{}{} |
| file_google_storage_v2_storage_proto_msgTypes[1].OneofWrappers = []interface{}{} |
| file_google_storage_v2_storage_proto_msgTypes[3].OneofWrappers = []interface{}{} |
| file_google_storage_v2_storage_proto_msgTypes[6].OneofWrappers = []interface{}{} |
| file_google_storage_v2_storage_proto_msgTypes[12].OneofWrappers = []interface{}{} |
| file_google_storage_v2_storage_proto_msgTypes[13].OneofWrappers = []interface{}{} |
| file_google_storage_v2_storage_proto_msgTypes[14].OneofWrappers = []interface{}{} |
| file_google_storage_v2_storage_proto_msgTypes[17].OneofWrappers = []interface{}{} |
| file_google_storage_v2_storage_proto_msgTypes[18].OneofWrappers = []interface{}{} |
| file_google_storage_v2_storage_proto_msgTypes[20].OneofWrappers = []interface{}{} |
| file_google_storage_v2_storage_proto_msgTypes[21].OneofWrappers = []interface{}{ |
| (*WriteObjectRequest_UploadId)(nil), |
| (*WriteObjectRequest_WriteObjectSpec)(nil), |
| (*WriteObjectRequest_ChecksummedData)(nil), |
| } |
| file_google_storage_v2_storage_proto_msgTypes[22].OneofWrappers = []interface{}{ |
| (*WriteObjectResponse_PersistedSize)(nil), |
| (*WriteObjectResponse_Resource)(nil), |
| } |
| file_google_storage_v2_storage_proto_msgTypes[23].OneofWrappers = []interface{}{ |
| (*BidiWriteObjectRequest_UploadId)(nil), |
| (*BidiWriteObjectRequest_WriteObjectSpec)(nil), |
| (*BidiWriteObjectRequest_ChecksummedData)(nil), |
| } |
| file_google_storage_v2_storage_proto_msgTypes[24].OneofWrappers = []interface{}{ |
| (*BidiWriteObjectResponse_PersistedSize)(nil), |
| (*BidiWriteObjectResponse_Resource)(nil), |
| } |
| file_google_storage_v2_storage_proto_msgTypes[25].OneofWrappers = []interface{}{} |
| file_google_storage_v2_storage_proto_msgTypes[27].OneofWrappers = []interface{}{ |
| (*QueryWriteStatusResponse_PersistedSize)(nil), |
| (*QueryWriteStatusResponse_Resource)(nil), |
| } |
| file_google_storage_v2_storage_proto_msgTypes[28].OneofWrappers = []interface{}{} |
| file_google_storage_v2_storage_proto_msgTypes[32].OneofWrappers = []interface{}{} |
| file_google_storage_v2_storage_proto_msgTypes[45].OneofWrappers = []interface{}{} |
| file_google_storage_v2_storage_proto_msgTypes[46].OneofWrappers = []interface{}{} |
| file_google_storage_v2_storage_proto_msgTypes[50].OneofWrappers = []interface{}{} |
| file_google_storage_v2_storage_proto_msgTypes[58].OneofWrappers = []interface{}{} |
| file_google_storage_v2_storage_proto_msgTypes[66].OneofWrappers = []interface{}{} |
| file_google_storage_v2_storage_proto_msgTypes[70].OneofWrappers = []interface{}{} |
| file_google_storage_v2_storage_proto_msgTypes[76].OneofWrappers = []interface{}{} |
| type x struct{} |
| out := protoimpl.TypeBuilder{ |
| File: protoimpl.DescBuilder{ |
| GoPackagePath: reflect.TypeOf(x{}).PkgPath(), |
| RawDescriptor: file_google_storage_v2_storage_proto_rawDesc, |
| NumEnums: 1, |
| NumMessages: 79, |
| NumExtensions: 0, |
| NumServices: 1, |
| }, |
| GoTypes: file_google_storage_v2_storage_proto_goTypes, |
| DependencyIndexes: file_google_storage_v2_storage_proto_depIdxs, |
| EnumInfos: file_google_storage_v2_storage_proto_enumTypes, |
| MessageInfos: file_google_storage_v2_storage_proto_msgTypes, |
| }.Build() |
| File_google_storage_v2_storage_proto = out.File |
| file_google_storage_v2_storage_proto_rawDesc = nil |
| file_google_storage_v2_storage_proto_goTypes = nil |
| file_google_storage_v2_storage_proto_depIdxs = nil |
| } |
| |
| // Reference imports to suppress errors if they are not otherwise used. |
| var _ context.Context |
| var _ grpc.ClientConnInterface |
| |
| // This is a compile-time assertion to ensure that this generated file |
| // is compatible with the grpc package it is being compiled against. |
| const _ = grpc.SupportPackageIsVersion6 |
| |
| // StorageClient is the client API for Storage service. |
| // |
| // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. |
| type StorageClient interface { |
| // Permanently deletes an empty bucket. |
| DeleteBucket(ctx context.Context, in *DeleteBucketRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) |
| // Returns metadata for the specified bucket. |
| GetBucket(ctx context.Context, in *GetBucketRequest, opts ...grpc.CallOption) (*Bucket, error) |
| // Creates a new bucket. |
| CreateBucket(ctx context.Context, in *CreateBucketRequest, opts ...grpc.CallOption) (*Bucket, error) |
| // Retrieves a list of buckets for a given project. |
| ListBuckets(ctx context.Context, in *ListBucketsRequest, opts ...grpc.CallOption) (*ListBucketsResponse, error) |
| // Locks retention policy on a bucket. |
| LockBucketRetentionPolicy(ctx context.Context, in *LockBucketRetentionPolicyRequest, opts ...grpc.CallOption) (*Bucket, error) |
| // Gets the IAM policy for a specified bucket. |
| // The `resource` field in the request should be |
| // `projects/_/buckets/{bucket}`. |
| GetIamPolicy(ctx context.Context, in *iampb.GetIamPolicyRequest, opts ...grpc.CallOption) (*iampb.Policy, error) |
| // Updates an IAM policy for the specified bucket. |
| // The `resource` field in the request should be |
| // `projects/_/buckets/{bucket}`. |
| SetIamPolicy(ctx context.Context, in *iampb.SetIamPolicyRequest, opts ...grpc.CallOption) (*iampb.Policy, error) |
| // Tests a set of permissions on the given bucket or object to see which, if |
| // any, are held by the caller. |
| // The `resource` field in the request should be |
| // `projects/_/buckets/{bucket}` for a bucket or |
| // `projects/_/buckets/{bucket}/objects/{object}` for an object. |
| TestIamPermissions(ctx context.Context, in *iampb.TestIamPermissionsRequest, opts ...grpc.CallOption) (*iampb.TestIamPermissionsResponse, error) |
| // Updates a bucket. Equivalent to JSON API's storage.buckets.patch method. |
| UpdateBucket(ctx context.Context, in *UpdateBucketRequest, opts ...grpc.CallOption) (*Bucket, error) |
| // Permanently deletes a NotificationConfig. |
| DeleteNotificationConfig(ctx context.Context, in *DeleteNotificationConfigRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) |
| // View a NotificationConfig. |
| GetNotificationConfig(ctx context.Context, in *GetNotificationConfigRequest, opts ...grpc.CallOption) (*NotificationConfig, error) |
| // Creates a NotificationConfig for a given bucket. |
| // These NotificationConfigs, when triggered, publish messages to the |
| // specified Pub/Sub topics. See |
| // https://cloud.google.com/storage/docs/pubsub-notifications. |
| CreateNotificationConfig(ctx context.Context, in *CreateNotificationConfigRequest, opts ...grpc.CallOption) (*NotificationConfig, error) |
| // Retrieves a list of NotificationConfigs for a given bucket. |
| ListNotificationConfigs(ctx context.Context, in *ListNotificationConfigsRequest, opts ...grpc.CallOption) (*ListNotificationConfigsResponse, error) |
| // Concatenates a list of existing objects into a new object in the same |
| // bucket. |
| ComposeObject(ctx context.Context, in *ComposeObjectRequest, opts ...grpc.CallOption) (*Object, error) |
| // Deletes an object and its metadata. |
| // |
| // Deletions are normally permanent when versioning is disabled or whenever |
| // the generation parameter is used. However, if soft delete is enabled for |
| // the bucket, deleted objects can be restored using RestoreObject until the |
| // soft delete retention period has passed. |
| DeleteObject(ctx context.Context, in *DeleteObjectRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) |
| // Restores a soft-deleted object. |
| RestoreObject(ctx context.Context, in *RestoreObjectRequest, opts ...grpc.CallOption) (*Object, error) |
| // Cancels an in-progress resumable upload. |
| // |
| // Any attempts to write to the resumable upload after cancelling the upload |
| // will fail. |
| // |
| // The behavior for currently in progress write operations is not guaranteed - |
| // they could either complete before the cancellation or fail if the |
| // cancellation completes first. |
| CancelResumableWrite(ctx context.Context, in *CancelResumableWriteRequest, opts ...grpc.CallOption) (*CancelResumableWriteResponse, error) |
| // Retrieves an object's metadata. |
| GetObject(ctx context.Context, in *GetObjectRequest, opts ...grpc.CallOption) (*Object, error) |
| // Reads an object's data. |
| ReadObject(ctx context.Context, in *ReadObjectRequest, opts ...grpc.CallOption) (Storage_ReadObjectClient, error) |
| // Updates an object's metadata. |
| // Equivalent to JSON API's storage.objects.patch. |
| UpdateObject(ctx context.Context, in *UpdateObjectRequest, opts ...grpc.CallOption) (*Object, error) |
| // Stores a new object and metadata. |
| // |
| // An object can be written either in a single message stream or in a |
| // resumable sequence of message streams. To write using a single stream, |
| // the client should include in the first message of the stream an |
| // `WriteObjectSpec` describing the destination bucket, object, and any |
| // preconditions. Additionally, the final message must set 'finish_write' to |
| // true, or else it is an error. |
| // |
| // For a resumable write, the client should instead call |
| // `StartResumableWrite()`, populating a `WriteObjectSpec` into that request. |
| // They should then attach the returned `upload_id` to the first message of |
| // each following call to `WriteObject`. If the stream is closed before |
| // finishing the upload (either explicitly by the client or due to a network |
| // error or an error response from the server), the client should do as |
| // follows: |
| // - Check the result Status of the stream, to determine if writing can be |
| // resumed on this stream or must be restarted from scratch (by calling |
| // `StartResumableWrite()`). The resumable errors are DEADLINE_EXCEEDED, |
| // INTERNAL, and UNAVAILABLE. For each case, the client should use binary |
| // exponential backoff before retrying. Additionally, writes can be |
| // resumed after RESOURCE_EXHAUSTED errors, but only after taking |
| // appropriate measures, which may include reducing aggregate send rate |
| // across clients and/or requesting a quota increase for your project. |
| // - If the call to `WriteObject` returns `ABORTED`, that indicates |
| // concurrent attempts to update the resumable write, caused either by |
| // multiple racing clients or by a single client where the previous |
| // request was timed out on the client side but nonetheless reached the |
| // server. In this case the client should take steps to prevent further |
| // concurrent writes (e.g., increase the timeouts, stop using more than |
| // one process to perform the upload, etc.), and then should follow the |
| // steps below for resuming the upload. |
| // - For resumable errors, the client should call `QueryWriteStatus()` and |
| // then continue writing from the returned `persisted_size`. This may be |
| // less than the amount of data the client previously sent. Note also that |
| // it is acceptable to send data starting at an offset earlier than the |
| // returned `persisted_size`; in this case, the service will skip data at |
| // offsets that were already persisted (without checking that it matches |
| // the previously written data), and write only the data starting from the |
| // persisted offset. Even though the data isn't written, it may still |
| // incur a performance cost over resuming at the correct write offset. |
| // This behavior can make client-side handling simpler in some cases. |
| // - Clients must only send data that is a multiple of 256 KiB per message, |
| // unless the object is being finished with `finish_write` set to `true`. |
| // |
| // The service will not view the object as complete until the client has |
| // sent a `WriteObjectRequest` with `finish_write` set to `true`. Sending any |
| // requests on a stream after sending a request with `finish_write` set to |
| // `true` will cause an error. The client **should** check the response it |
| // receives to determine how much data the service was able to commit and |
| // whether the service views the object as complete. |
| // |
| // Attempting to resume an already finalized object will result in an OK |
| // status, with a WriteObjectResponse containing the finalized object's |
| // metadata. |
| // |
| // Alternatively, the BidiWriteObject operation may be used to write an |
| // object with controls over flushing and the ability to fetch the ability to |
| // determine the current persisted size. |
| WriteObject(ctx context.Context, opts ...grpc.CallOption) (Storage_WriteObjectClient, error) |
| // Stores a new object and metadata. |
| // |
| // This is similar to the WriteObject call with the added support for |
| // manual flushing of persisted state, and the ability to determine current |
| // persisted size without closing the stream. |
| // |
| // The client may specify one or both of the `state_lookup` and `flush` fields |
| // in each BidiWriteObjectRequest. If `flush` is specified, the data written |
| // so far will be persisted to storage. If `state_lookup` is specified, the |
| // service will respond with a BidiWriteObjectResponse that contains the |
| // persisted size. If both `flush` and `state_lookup` are specified, the flush |
| // will always occur before a `state_lookup`, so that both may be set in the |
| // same request and the returned state will be the state of the object |
| // post-flush. When the stream is closed, a BidiWriteObjectResponse will |
| // always be sent to the client, regardless of the value of `state_lookup`. |
| BidiWriteObject(ctx context.Context, opts ...grpc.CallOption) (Storage_BidiWriteObjectClient, error) |
| // Retrieves a list of objects matching the criteria. |
| ListObjects(ctx context.Context, in *ListObjectsRequest, opts ...grpc.CallOption) (*ListObjectsResponse, error) |
| // Rewrites a source object to a destination object. Optionally overrides |
| // metadata. |
| RewriteObject(ctx context.Context, in *RewriteObjectRequest, opts ...grpc.CallOption) (*RewriteResponse, error) |
| // Starts a resumable write. How long the write operation remains valid, and |
| // what happens when the write operation becomes invalid, are |
| // service-dependent. |
| StartResumableWrite(ctx context.Context, in *StartResumableWriteRequest, opts ...grpc.CallOption) (*StartResumableWriteResponse, error) |
| // Determines the `persisted_size` for an object that is being written, which |
| // can then be used as the `write_offset` for the next `Write()` call. |
| // |
| // If the object does not exist (i.e., the object has been deleted, or the |
| // first `Write()` has not yet reached the service), this method returns the |
| // error `NOT_FOUND`. |
| // |
| // The client **may** call `QueryWriteStatus()` at any time to determine how |
| // much data has been processed for this object. This is useful if the |
| // client is buffering data and needs to know which data can be safely |
| // evicted. For any sequence of `QueryWriteStatus()` calls for a given |
| // object name, the sequence of returned `persisted_size` values will be |
| // non-decreasing. |
| QueryWriteStatus(ctx context.Context, in *QueryWriteStatusRequest, opts ...grpc.CallOption) (*QueryWriteStatusResponse, error) |
| // Retrieves the name of a project's Google Cloud Storage service account. |
| GetServiceAccount(ctx context.Context, in *GetServiceAccountRequest, opts ...grpc.CallOption) (*ServiceAccount, error) |
| // Creates a new HMAC key for the given service account. |
| CreateHmacKey(ctx context.Context, in *CreateHmacKeyRequest, opts ...grpc.CallOption) (*CreateHmacKeyResponse, error) |
| // Deletes a given HMAC key. Key must be in an INACTIVE state. |
| DeleteHmacKey(ctx context.Context, in *DeleteHmacKeyRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) |
| // Gets an existing HMAC key metadata for the given id. |
| GetHmacKey(ctx context.Context, in *GetHmacKeyRequest, opts ...grpc.CallOption) (*HmacKeyMetadata, error) |
| // Lists HMAC keys under a given project with the additional filters provided. |
| ListHmacKeys(ctx context.Context, in *ListHmacKeysRequest, opts ...grpc.CallOption) (*ListHmacKeysResponse, error) |
| // Updates a given HMAC key state between ACTIVE and INACTIVE. |
| UpdateHmacKey(ctx context.Context, in *UpdateHmacKeyRequest, opts ...grpc.CallOption) (*HmacKeyMetadata, error) |
| } |
| |
| type storageClient struct { |
| cc grpc.ClientConnInterface |
| } |
| |
| func NewStorageClient(cc grpc.ClientConnInterface) StorageClient { |
| return &storageClient{cc} |
| } |
| |
| func (c *storageClient) DeleteBucket(ctx context.Context, in *DeleteBucketRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) { |
| out := new(emptypb.Empty) |
| err := c.cc.Invoke(ctx, "/google.storage.v2.Storage/DeleteBucket", in, out, opts...) |
| if err != nil { |
| return nil, err |
| } |
| return out, nil |
| } |
| |
| func (c *storageClient) GetBucket(ctx context.Context, in *GetBucketRequest, opts ...grpc.CallOption) (*Bucket, error) { |
| out := new(Bucket) |
| err := c.cc.Invoke(ctx, "/google.storage.v2.Storage/GetBucket", in, out, opts...) |
| if err != nil { |
| return nil, err |
| } |
| return out, nil |
| } |
| |
| func (c *storageClient) CreateBucket(ctx context.Context, in *CreateBucketRequest, opts ...grpc.CallOption) (*Bucket, error) { |
| out := new(Bucket) |
| err := c.cc.Invoke(ctx, "/google.storage.v2.Storage/CreateBucket", in, out, opts...) |
| if err != nil { |
| return nil, err |
| } |
| return out, nil |
| } |
| |
| func (c *storageClient) ListBuckets(ctx context.Context, in *ListBucketsRequest, opts ...grpc.CallOption) (*ListBucketsResponse, error) { |
| out := new(ListBucketsResponse) |
| err := c.cc.Invoke(ctx, "/google.storage.v2.Storage/ListBuckets", in, out, opts...) |
| if err != nil { |
| return nil, err |
| } |
| return out, nil |
| } |
| |
| func (c *storageClient) LockBucketRetentionPolicy(ctx context.Context, in *LockBucketRetentionPolicyRequest, opts ...grpc.CallOption) (*Bucket, error) { |
| out := new(Bucket) |
| err := c.cc.Invoke(ctx, "/google.storage.v2.Storage/LockBucketRetentionPolicy", in, out, opts...) |
| if err != nil { |
| return nil, err |
| } |
| return out, nil |
| } |
| |
| func (c *storageClient) GetIamPolicy(ctx context.Context, in *iampb.GetIamPolicyRequest, opts ...grpc.CallOption) (*iampb.Policy, error) { |
| out := new(iampb.Policy) |
| err := c.cc.Invoke(ctx, "/google.storage.v2.Storage/GetIamPolicy", in, out, opts...) |
| if err != nil { |
| return nil, err |
| } |
| return out, nil |
| } |
| |
| func (c *storageClient) SetIamPolicy(ctx context.Context, in *iampb.SetIamPolicyRequest, opts ...grpc.CallOption) (*iampb.Policy, error) { |
| out := new(iampb.Policy) |
| err := c.cc.Invoke(ctx, "/google.storage.v2.Storage/SetIamPolicy", in, out, opts...) |
| if err != nil { |
| return nil, err |
| } |
| return out, nil |
| } |
| |
| func (c *storageClient) TestIamPermissions(ctx context.Context, in *iampb.TestIamPermissionsRequest, opts ...grpc.CallOption) (*iampb.TestIamPermissionsResponse, error) { |
| out := new(iampb.TestIamPermissionsResponse) |
| err := c.cc.Invoke(ctx, "/google.storage.v2.Storage/TestIamPermissions", in, out, opts...) |
| if err != nil { |
| return nil, err |
| } |
| return out, nil |
| } |
| |
| func (c *storageClient) UpdateBucket(ctx context.Context, in *UpdateBucketRequest, opts ...grpc.CallOption) (*Bucket, error) { |
| out := new(Bucket) |
| err := c.cc.Invoke(ctx, "/google.storage.v2.Storage/UpdateBucket", in, out, opts...) |
| if err != nil { |
| return nil, err |
| } |
| return out, nil |
| } |
| |
| func (c *storageClient) DeleteNotificationConfig(ctx context.Context, in *DeleteNotificationConfigRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) { |
| out := new(emptypb.Empty) |
| err := c.cc.Invoke(ctx, "/google.storage.v2.Storage/DeleteNotificationConfig", in, out, opts...) |
| if err != nil { |
| return nil, err |
| } |
| return out, nil |
| } |
| |
| func (c *storageClient) GetNotificationConfig(ctx context.Context, in *GetNotificationConfigRequest, opts ...grpc.CallOption) (*NotificationConfig, error) { |
| out := new(NotificationConfig) |
| err := c.cc.Invoke(ctx, "/google.storage.v2.Storage/GetNotificationConfig", in, out, opts...) |
| if err != nil { |
| return nil, err |
| } |
| return out, nil |
| } |
| |
| func (c *storageClient) CreateNotificationConfig(ctx context.Context, in *CreateNotificationConfigRequest, opts ...grpc.CallOption) (*NotificationConfig, error) { |
| out := new(NotificationConfig) |
| err := c.cc.Invoke(ctx, "/google.storage.v2.Storage/CreateNotificationConfig", in, out, opts...) |
| if err != nil { |
| return nil, err |
| } |
| return out, nil |
| } |
| |
| func (c *storageClient) ListNotificationConfigs(ctx context.Context, in *ListNotificationConfigsRequest, opts ...grpc.CallOption) (*ListNotificationConfigsResponse, error) { |
| out := new(ListNotificationConfigsResponse) |
| err := c.cc.Invoke(ctx, "/google.storage.v2.Storage/ListNotificationConfigs", in, out, opts...) |
| if err != nil { |
| return nil, err |
| } |
| return out, nil |
| } |
| |
| func (c *storageClient) ComposeObject(ctx context.Context, in *ComposeObjectRequest, opts ...grpc.CallOption) (*Object, error) { |
| out := new(Object) |
| err := c.cc.Invoke(ctx, "/google.storage.v2.Storage/ComposeObject", in, out, opts...) |
| if err != nil { |
| return nil, err |
| } |
| return out, nil |
| } |
| |
| func (c *storageClient) DeleteObject(ctx context.Context, in *DeleteObjectRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) { |
| out := new(emptypb.Empty) |
| err := c.cc.Invoke(ctx, "/google.storage.v2.Storage/DeleteObject", in, out, opts...) |
| if err != nil { |
| return nil, err |
| } |
| return out, nil |
| } |
| |
| func (c *storageClient) RestoreObject(ctx context.Context, in *RestoreObjectRequest, opts ...grpc.CallOption) (*Object, error) { |
| out := new(Object) |
| err := c.cc.Invoke(ctx, "/google.storage.v2.Storage/RestoreObject", in, out, opts...) |
| if err != nil { |
| return nil, err |
| } |
| return out, nil |
| } |
| |
| func (c *storageClient) CancelResumableWrite(ctx context.Context, in *CancelResumableWriteRequest, opts ...grpc.CallOption) (*CancelResumableWriteResponse, error) { |
| out := new(CancelResumableWriteResponse) |
| err := c.cc.Invoke(ctx, "/google.storage.v2.Storage/CancelResumableWrite", in, out, opts...) |
| if err != nil { |
| return nil, err |
| } |
| return out, nil |
| } |
| |
| func (c *storageClient) GetObject(ctx context.Context, in *GetObjectRequest, opts ...grpc.CallOption) (*Object, error) { |
| out := new(Object) |
| err := c.cc.Invoke(ctx, "/google.storage.v2.Storage/GetObject", in, out, opts...) |
| if err != nil { |
| return nil, err |
| } |
| return out, nil |
| } |
| |
| func (c *storageClient) ReadObject(ctx context.Context, in *ReadObjectRequest, opts ...grpc.CallOption) (Storage_ReadObjectClient, error) { |
| stream, err := c.cc.NewStream(ctx, &_Storage_serviceDesc.Streams[0], "/google.storage.v2.Storage/ReadObject", opts...) |
| if err != nil { |
| return nil, err |
| } |
| x := &storageReadObjectClient{stream} |
| if err := x.ClientStream.SendMsg(in); err != nil { |
| return nil, err |
| } |
| if err := x.ClientStream.CloseSend(); err != nil { |
| return nil, err |
| } |
| return x, nil |
| } |
| |
| type Storage_ReadObjectClient interface { |
| Recv() (*ReadObjectResponse, error) |
| grpc.ClientStream |
| } |
| |
| type storageReadObjectClient struct { |
| grpc.ClientStream |
| } |
| |
| func (x *storageReadObjectClient) Recv() (*ReadObjectResponse, error) { |
| m := new(ReadObjectResponse) |
| if err := x.ClientStream.RecvMsg(m); err != nil { |
| return nil, err |
| } |
| return m, nil |
| } |
| |
| func (c *storageClient) UpdateObject(ctx context.Context, in *UpdateObjectRequest, opts ...grpc.CallOption) (*Object, error) { |
| out := new(Object) |
| err := c.cc.Invoke(ctx, "/google.storage.v2.Storage/UpdateObject", in, out, opts...) |
| if err != nil { |
| return nil, err |
| } |
| return out, nil |
| } |
| |
| func (c *storageClient) WriteObject(ctx context.Context, opts ...grpc.CallOption) (Storage_WriteObjectClient, error) { |
| stream, err := c.cc.NewStream(ctx, &_Storage_serviceDesc.Streams[1], "/google.storage.v2.Storage/WriteObject", opts...) |
| if err != nil { |
| return nil, err |
| } |
| x := &storageWriteObjectClient{stream} |
| return x, nil |
| } |
| |
| type Storage_WriteObjectClient interface { |
| Send(*WriteObjectRequest) error |
| CloseAndRecv() (*WriteObjectResponse, error) |
| grpc.ClientStream |
| } |
| |
| type storageWriteObjectClient struct { |
| grpc.ClientStream |
| } |
| |
| func (x *storageWriteObjectClient) Send(m *WriteObjectRequest) error { |
| return x.ClientStream.SendMsg(m) |
| } |
| |
| func (x *storageWriteObjectClient) CloseAndRecv() (*WriteObjectResponse, error) { |
| if err := x.ClientStream.CloseSend(); err != nil { |
| return nil, err |
| } |
| m := new(WriteObjectResponse) |
| if err := x.ClientStream.RecvMsg(m); err != nil { |
| return nil, err |
| } |
| return m, nil |
| } |
| |
| func (c *storageClient) BidiWriteObject(ctx context.Context, opts ...grpc.CallOption) (Storage_BidiWriteObjectClient, error) { |
| stream, err := c.cc.NewStream(ctx, &_Storage_serviceDesc.Streams[2], "/google.storage.v2.Storage/BidiWriteObject", opts...) |
| if err != nil { |
| return nil, err |
| } |
| x := &storageBidiWriteObjectClient{stream} |
| return x, nil |
| } |
| |
| type Storage_BidiWriteObjectClient interface { |
| Send(*BidiWriteObjectRequest) error |
| Recv() (*BidiWriteObjectResponse, error) |
| grpc.ClientStream |
| } |
| |
| type storageBidiWriteObjectClient struct { |
| grpc.ClientStream |
| } |
| |
| func (x *storageBidiWriteObjectClient) Send(m *BidiWriteObjectRequest) error { |
| return x.ClientStream.SendMsg(m) |
| } |
| |
| func (x *storageBidiWriteObjectClient) Recv() (*BidiWriteObjectResponse, error) { |
| m := new(BidiWriteObjectResponse) |
| if err := x.ClientStream.RecvMsg(m); err != nil { |
| return nil, err |
| } |
| return m, nil |
| } |
| |
| func (c *storageClient) ListObjects(ctx context.Context, in *ListObjectsRequest, opts ...grpc.CallOption) (*ListObjectsResponse, error) { |
| out := new(ListObjectsResponse) |
| err := c.cc.Invoke(ctx, "/google.storage.v2.Storage/ListObjects", in, out, opts...) |
| if err != nil { |
| return nil, err |
| } |
| return out, nil |
| } |
| |
| func (c *storageClient) RewriteObject(ctx context.Context, in *RewriteObjectRequest, opts ...grpc.CallOption) (*RewriteResponse, error) { |
| out := new(RewriteResponse) |
| err := c.cc.Invoke(ctx, "/google.storage.v2.Storage/RewriteObject", in, out, opts...) |
| if err != nil { |
| return nil, err |
| } |
| return out, nil |
| } |
| |
| func (c *storageClient) StartResumableWrite(ctx context.Context, in *StartResumableWriteRequest, opts ...grpc.CallOption) (*StartResumableWriteResponse, error) { |
| out := new(StartResumableWriteResponse) |
| err := c.cc.Invoke(ctx, "/google.storage.v2.Storage/StartResumableWrite", in, out, opts...) |
| if err != nil { |
| return nil, err |
| } |
| return out, nil |
| } |
| |
| func (c *storageClient) QueryWriteStatus(ctx context.Context, in *QueryWriteStatusRequest, opts ...grpc.CallOption) (*QueryWriteStatusResponse, error) { |
| out := new(QueryWriteStatusResponse) |
| err := c.cc.Invoke(ctx, "/google.storage.v2.Storage/QueryWriteStatus", in, out, opts...) |
| if err != nil { |
| return nil, err |
| } |
| return out, nil |
| } |
| |
| func (c *storageClient) GetServiceAccount(ctx context.Context, in *GetServiceAccountRequest, opts ...grpc.CallOption) (*ServiceAccount, error) { |
| out := new(ServiceAccount) |
| err := c.cc.Invoke(ctx, "/google.storage.v2.Storage/GetServiceAccount", in, out, opts...) |
| if err != nil { |
| return nil, err |
| } |
| return out, nil |
| } |
| |
| func (c *storageClient) CreateHmacKey(ctx context.Context, in *CreateHmacKeyRequest, opts ...grpc.CallOption) (*CreateHmacKeyResponse, error) { |
| out := new(CreateHmacKeyResponse) |
| err := c.cc.Invoke(ctx, "/google.storage.v2.Storage/CreateHmacKey", in, out, opts...) |
| if err != nil { |
| return nil, err |
| } |
| return out, nil |
| } |
| |
| func (c *storageClient) DeleteHmacKey(ctx context.Context, in *DeleteHmacKeyRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) { |
| out := new(emptypb.Empty) |
| err := c.cc.Invoke(ctx, "/google.storage.v2.Storage/DeleteHmacKey", in, out, opts...) |
| if err != nil { |
| return nil, err |
| } |
| return out, nil |
| } |
| |
| func (c *storageClient) GetHmacKey(ctx context.Context, in *GetHmacKeyRequest, opts ...grpc.CallOption) (*HmacKeyMetadata, error) { |
| out := new(HmacKeyMetadata) |
| err := c.cc.Invoke(ctx, "/google.storage.v2.Storage/GetHmacKey", in, out, opts...) |
| if err != nil { |
| return nil, err |
| } |
| return out, nil |
| } |
| |
| func (c *storageClient) ListHmacKeys(ctx context.Context, in *ListHmacKeysRequest, opts ...grpc.CallOption) (*ListHmacKeysResponse, error) { |
| out := new(ListHmacKeysResponse) |
| err := c.cc.Invoke(ctx, "/google.storage.v2.Storage/ListHmacKeys", in, out, opts...) |
| if err != nil { |
| return nil, err |
| } |
| return out, nil |
| } |
| |
| func (c *storageClient) UpdateHmacKey(ctx context.Context, in *UpdateHmacKeyRequest, opts ...grpc.CallOption) (*HmacKeyMetadata, error) { |
| out := new(HmacKeyMetadata) |
| err := c.cc.Invoke(ctx, "/google.storage.v2.Storage/UpdateHmacKey", in, out, opts...) |
| if err != nil { |
| return nil, err |
| } |
| return out, nil |
| } |
| |
| // StorageServer is the server API for Storage service. |
| type StorageServer interface { |
| // Permanently deletes an empty bucket. |
| DeleteBucket(context.Context, *DeleteBucketRequest) (*emptypb.Empty, error) |
| // Returns metadata for the specified bucket. |
| GetBucket(context.Context, *GetBucketRequest) (*Bucket, error) |
| // Creates a new bucket. |
| CreateBucket(context.Context, *CreateBucketRequest) (*Bucket, error) |
| // Retrieves a list of buckets for a given project. |
| ListBuckets(context.Context, *ListBucketsRequest) (*ListBucketsResponse, error) |
| // Locks retention policy on a bucket. |
| LockBucketRetentionPolicy(context.Context, *LockBucketRetentionPolicyRequest) (*Bucket, error) |
| // Gets the IAM policy for a specified bucket. |
| // The `resource` field in the request should be |
| // `projects/_/buckets/{bucket}`. |
| GetIamPolicy(context.Context, *iampb.GetIamPolicyRequest) (*iampb.Policy, error) |
| // Updates an IAM policy for the specified bucket. |
| // The `resource` field in the request should be |
| // `projects/_/buckets/{bucket}`. |
| SetIamPolicy(context.Context, *iampb.SetIamPolicyRequest) (*iampb.Policy, error) |
| // Tests a set of permissions on the given bucket or object to see which, if |
| // any, are held by the caller. |
| // The `resource` field in the request should be |
| // `projects/_/buckets/{bucket}` for a bucket or |
| // `projects/_/buckets/{bucket}/objects/{object}` for an object. |
| TestIamPermissions(context.Context, *iampb.TestIamPermissionsRequest) (*iampb.TestIamPermissionsResponse, error) |
| // Updates a bucket. Equivalent to JSON API's storage.buckets.patch method. |
| UpdateBucket(context.Context, *UpdateBucketRequest) (*Bucket, error) |
| // Permanently deletes a NotificationConfig. |
| DeleteNotificationConfig(context.Context, *DeleteNotificationConfigRequest) (*emptypb.Empty, error) |
| // View a NotificationConfig. |
| GetNotificationConfig(context.Context, *GetNotificationConfigRequest) (*NotificationConfig, error) |
| // Creates a NotificationConfig for a given bucket. |
| // These NotificationConfigs, when triggered, publish messages to the |
| // specified Pub/Sub topics. See |
| // https://cloud.google.com/storage/docs/pubsub-notifications. |
| CreateNotificationConfig(context.Context, *CreateNotificationConfigRequest) (*NotificationConfig, error) |
| // Retrieves a list of NotificationConfigs for a given bucket. |
| ListNotificationConfigs(context.Context, *ListNotificationConfigsRequest) (*ListNotificationConfigsResponse, error) |
| // Concatenates a list of existing objects into a new object in the same |
| // bucket. |
| ComposeObject(context.Context, *ComposeObjectRequest) (*Object, error) |
| // Deletes an object and its metadata. |
| // |
| // Deletions are normally permanent when versioning is disabled or whenever |
| // the generation parameter is used. However, if soft delete is enabled for |
| // the bucket, deleted objects can be restored using RestoreObject until the |
| // soft delete retention period has passed. |
| DeleteObject(context.Context, *DeleteObjectRequest) (*emptypb.Empty, error) |
| // Restores a soft-deleted object. |
| RestoreObject(context.Context, *RestoreObjectRequest) (*Object, error) |
| // Cancels an in-progress resumable upload. |
| // |
| // Any attempts to write to the resumable upload after cancelling the upload |
| // will fail. |
| // |
| // The behavior for currently in progress write operations is not guaranteed - |
| // they could either complete before the cancellation or fail if the |
| // cancellation completes first. |
| CancelResumableWrite(context.Context, *CancelResumableWriteRequest) (*CancelResumableWriteResponse, error) |
| // Retrieves an object's metadata. |
| GetObject(context.Context, *GetObjectRequest) (*Object, error) |
| // Reads an object's data. |
| ReadObject(*ReadObjectRequest, Storage_ReadObjectServer) error |
| // Updates an object's metadata. |
| // Equivalent to JSON API's storage.objects.patch. |
| UpdateObject(context.Context, *UpdateObjectRequest) (*Object, error) |
| // Stores a new object and metadata. |
| // |
| // An object can be written either in a single message stream or in a |
| // resumable sequence of message streams. To write using a single stream, |
| // the client should include in the first message of the stream an |
| // `WriteObjectSpec` describing the destination bucket, object, and any |
| // preconditions. Additionally, the final message must set 'finish_write' to |
| // true, or else it is an error. |
| // |
| // For a resumable write, the client should instead call |
| // `StartResumableWrite()`, populating a `WriteObjectSpec` into that request. |
| // They should then attach the returned `upload_id` to the first message of |
| // each following call to `WriteObject`. If the stream is closed before |
| // finishing the upload (either explicitly by the client or due to a network |
| // error or an error response from the server), the client should do as |
| // follows: |
| // - Check the result Status of the stream, to determine if writing can be |
| // resumed on this stream or must be restarted from scratch (by calling |
| // `StartResumableWrite()`). The resumable errors are DEADLINE_EXCEEDED, |
| // INTERNAL, and UNAVAILABLE. For each case, the client should use binary |
| // exponential backoff before retrying. Additionally, writes can be |
| // resumed after RESOURCE_EXHAUSTED errors, but only after taking |
| // appropriate measures, which may include reducing aggregate send rate |
| // across clients and/or requesting a quota increase for your project. |
| // - If the call to `WriteObject` returns `ABORTED`, that indicates |
| // concurrent attempts to update the resumable write, caused either by |
| // multiple racing clients or by a single client where the previous |
| // request was timed out on the client side but nonetheless reached the |
| // server. In this case the client should take steps to prevent further |
| // concurrent writes (e.g., increase the timeouts, stop using more than |
| // one process to perform the upload, etc.), and then should follow the |
| // steps below for resuming the upload. |
| // - For resumable errors, the client should call `QueryWriteStatus()` and |
| // then continue writing from the returned `persisted_size`. This may be |
| // less than the amount of data the client previously sent. Note also that |
| // it is acceptable to send data starting at an offset earlier than the |
| // returned `persisted_size`; in this case, the service will skip data at |
| // offsets that were already persisted (without checking that it matches |
| // the previously written data), and write only the data starting from the |
| // persisted offset. Even though the data isn't written, it may still |
| // incur a performance cost over resuming at the correct write offset. |
| // This behavior can make client-side handling simpler in some cases. |
| // - Clients must only send data that is a multiple of 256 KiB per message, |
| // unless the object is being finished with `finish_write` set to `true`. |
| // |
| // The service will not view the object as complete until the client has |
| // sent a `WriteObjectRequest` with `finish_write` set to `true`. Sending any |
| // requests on a stream after sending a request with `finish_write` set to |
| // `true` will cause an error. The client **should** check the response it |
| // receives to determine how much data the service was able to commit and |
| // whether the service views the object as complete. |
| // |
| // Attempting to resume an already finalized object will result in an OK |
| // status, with a WriteObjectResponse containing the finalized object's |
| // metadata. |
| // |
| // Alternatively, the BidiWriteObject operation may be used to write an |
| // object with controls over flushing and the ability to fetch the ability to |
| // determine the current persisted size. |
| WriteObject(Storage_WriteObjectServer) error |
| // Stores a new object and metadata. |
| // |
| // This is similar to the WriteObject call with the added support for |
| // manual flushing of persisted state, and the ability to determine current |
| // persisted size without closing the stream. |
| // |
| // The client may specify one or both of the `state_lookup` and `flush` fields |
| // in each BidiWriteObjectRequest. If `flush` is specified, the data written |
| // so far will be persisted to storage. If `state_lookup` is specified, the |
| // service will respond with a BidiWriteObjectResponse that contains the |
| // persisted size. If both `flush` and `state_lookup` are specified, the flush |
| // will always occur before a `state_lookup`, so that both may be set in the |
| // same request and the returned state will be the state of the object |
| // post-flush. When the stream is closed, a BidiWriteObjectResponse will |
| // always be sent to the client, regardless of the value of `state_lookup`. |
| BidiWriteObject(Storage_BidiWriteObjectServer) error |
| // Retrieves a list of objects matching the criteria. |
| ListObjects(context.Context, *ListObjectsRequest) (*ListObjectsResponse, error) |
| // Rewrites a source object to a destination object. Optionally overrides |
| // metadata. |
| RewriteObject(context.Context, *RewriteObjectRequest) (*RewriteResponse, error) |
| // Starts a resumable write. How long the write operation remains valid, and |
| // what happens when the write operation becomes invalid, are |
| // service-dependent. |
| StartResumableWrite(context.Context, *StartResumableWriteRequest) (*StartResumableWriteResponse, error) |
| // Determines the `persisted_size` for an object that is being written, which |
| // can then be used as the `write_offset` for the next `Write()` call. |
| // |
| // If the object does not exist (i.e., the object has been deleted, or the |
| // first `Write()` has not yet reached the service), this method returns the |
| // error `NOT_FOUND`. |
| // |
| // The client **may** call `QueryWriteStatus()` at any time to determine how |
| // much data has been processed for this object. This is useful if the |
| // client is buffering data and needs to know which data can be safely |
| // evicted. For any sequence of `QueryWriteStatus()` calls for a given |
| // object name, the sequence of returned `persisted_size` values will be |
| // non-decreasing. |
| QueryWriteStatus(context.Context, *QueryWriteStatusRequest) (*QueryWriteStatusResponse, error) |
| // Retrieves the name of a project's Google Cloud Storage service account. |
| GetServiceAccount(context.Context, *GetServiceAccountRequest) (*ServiceAccount, error) |
| // Creates a new HMAC key for the given service account. |
| CreateHmacKey(context.Context, *CreateHmacKeyRequest) (*CreateHmacKeyResponse, error) |
| // Deletes a given HMAC key. Key must be in an INACTIVE state. |
| DeleteHmacKey(context.Context, *DeleteHmacKeyRequest) (*emptypb.Empty, error) |
| // Gets an existing HMAC key metadata for the given id. |
| GetHmacKey(context.Context, *GetHmacKeyRequest) (*HmacKeyMetadata, error) |
| // Lists HMAC keys under a given project with the additional filters provided. |
| ListHmacKeys(context.Context, *ListHmacKeysRequest) (*ListHmacKeysResponse, error) |
| // Updates a given HMAC key state between ACTIVE and INACTIVE. |
| UpdateHmacKey(context.Context, *UpdateHmacKeyRequest) (*HmacKeyMetadata, error) |
| } |
| |
| // UnimplementedStorageServer can be embedded to have forward compatible implementations. |
| type UnimplementedStorageServer struct { |
| } |
| |
| func (*UnimplementedStorageServer) DeleteBucket(context.Context, *DeleteBucketRequest) (*emptypb.Empty, error) { |
| return nil, status.Errorf(codes.Unimplemented, "method DeleteBucket not implemented") |
| } |
| func (*UnimplementedStorageServer) GetBucket(context.Context, *GetBucketRequest) (*Bucket, error) { |
| return nil, status.Errorf(codes.Unimplemented, "method GetBucket not implemented") |
| } |
| func (*UnimplementedStorageServer) CreateBucket(context.Context, *CreateBucketRequest) (*Bucket, error) { |
| return nil, status.Errorf(codes.Unimplemented, "method CreateBucket not implemented") |
| } |
| func (*UnimplementedStorageServer) ListBuckets(context.Context, *ListBucketsRequest) (*ListBucketsResponse, error) { |
| return nil, status.Errorf(codes.Unimplemented, "method ListBuckets not implemented") |
| } |
| func (*UnimplementedStorageServer) LockBucketRetentionPolicy(context.Context, *LockBucketRetentionPolicyRequest) (*Bucket, error) { |
| return nil, status.Errorf(codes.Unimplemented, "method LockBucketRetentionPolicy not implemented") |
| } |
| func (*UnimplementedStorageServer) GetIamPolicy(context.Context, *iampb.GetIamPolicyRequest) (*iampb.Policy, error) { |
| return nil, status.Errorf(codes.Unimplemented, "method GetIamPolicy not implemented") |
| } |
| func (*UnimplementedStorageServer) SetIamPolicy(context.Context, *iampb.SetIamPolicyRequest) (*iampb.Policy, error) { |
| return nil, status.Errorf(codes.Unimplemented, "method SetIamPolicy not implemented") |
| } |
| func (*UnimplementedStorageServer) TestIamPermissions(context.Context, *iampb.TestIamPermissionsRequest) (*iampb.TestIamPermissionsResponse, error) { |
| return nil, status.Errorf(codes.Unimplemented, "method TestIamPermissions not implemented") |
| } |
| func (*UnimplementedStorageServer) UpdateBucket(context.Context, *UpdateBucketRequest) (*Bucket, error) { |
| return nil, status.Errorf(codes.Unimplemented, "method UpdateBucket not implemented") |
| } |
| func (*UnimplementedStorageServer) DeleteNotificationConfig(context.Context, *DeleteNotificationConfigRequest) (*emptypb.Empty, error) { |
| return nil, status.Errorf(codes.Unimplemented, "method DeleteNotificationConfig not implemented") |
| } |
| func (*UnimplementedStorageServer) GetNotificationConfig(context.Context, *GetNotificationConfigRequest) (*NotificationConfig, error) { |
| return nil, status.Errorf(codes.Unimplemented, "method GetNotificationConfig not implemented") |
| } |
| func (*UnimplementedStorageServer) CreateNotificationConfig(context.Context, *CreateNotificationConfigRequest) (*NotificationConfig, error) { |
| return nil, status.Errorf(codes.Unimplemented, "method CreateNotificationConfig not implemented") |
| } |
| func (*UnimplementedStorageServer) ListNotificationConfigs(context.Context, *ListNotificationConfigsRequest) (*ListNotificationConfigsResponse, error) { |
| return nil, status.Errorf(codes.Unimplemented, "method ListNotificationConfigs not implemented") |
| } |
| func (*UnimplementedStorageServer) ComposeObject(context.Context, *ComposeObjectRequest) (*Object, error) { |
| return nil, status.Errorf(codes.Unimplemented, "method ComposeObject not implemented") |
| } |
| func (*UnimplementedStorageServer) DeleteObject(context.Context, *DeleteObjectRequest) (*emptypb.Empty, error) { |
| return nil, status.Errorf(codes.Unimplemented, "method DeleteObject not implemented") |
| } |
| func (*UnimplementedStorageServer) RestoreObject(context.Context, *RestoreObjectRequest) (*Object, error) { |
| return nil, status.Errorf(codes.Unimplemented, "method RestoreObject not implemented") |
| } |
| func (*UnimplementedStorageServer) CancelResumableWrite(context.Context, *CancelResumableWriteRequest) (*CancelResumableWriteResponse, error) { |
| return nil, status.Errorf(codes.Unimplemented, "method CancelResumableWrite not implemented") |
| } |
| func (*UnimplementedStorageServer) GetObject(context.Context, *GetObjectRequest) (*Object, error) { |
| return nil, status.Errorf(codes.Unimplemented, "method GetObject not implemented") |
| } |
| func (*UnimplementedStorageServer) ReadObject(*ReadObjectRequest, Storage_ReadObjectServer) error { |
| return status.Errorf(codes.Unimplemented, "method ReadObject not implemented") |
| } |
| func (*UnimplementedStorageServer) UpdateObject(context.Context, *UpdateObjectRequest) (*Object, error) { |
| return nil, status.Errorf(codes.Unimplemented, "method UpdateObject not implemented") |
| } |
| func (*UnimplementedStorageServer) WriteObject(Storage_WriteObjectServer) error { |
| return status.Errorf(codes.Unimplemented, "method WriteObject not implemented") |
| } |
| func (*UnimplementedStorageServer) BidiWriteObject(Storage_BidiWriteObjectServer) error { |
| return status.Errorf(codes.Unimplemented, "method BidiWriteObject not implemented") |
| } |
| func (*UnimplementedStorageServer) ListObjects(context.Context, *ListObjectsRequest) (*ListObjectsResponse, error) { |
| return nil, status.Errorf(codes.Unimplemented, "method ListObjects not implemented") |
| } |
| func (*UnimplementedStorageServer) RewriteObject(context.Context, *RewriteObjectRequest) (*RewriteResponse, error) { |
| return nil, status.Errorf(codes.Unimplemented, "method RewriteObject not implemented") |
| } |
| func (*UnimplementedStorageServer) StartResumableWrite(context.Context, *StartResumableWriteRequest) (*StartResumableWriteResponse, error) { |
| return nil, status.Errorf(codes.Unimplemented, "method StartResumableWrite not implemented") |
| } |
| func (*UnimplementedStorageServer) QueryWriteStatus(context.Context, *QueryWriteStatusRequest) (*QueryWriteStatusResponse, error) { |
| return nil, status.Errorf(codes.Unimplemented, "method QueryWriteStatus not implemented") |
| } |
| func (*UnimplementedStorageServer) GetServiceAccount(context.Context, *GetServiceAccountRequest) (*ServiceAccount, error) { |
| return nil, status.Errorf(codes.Unimplemented, "method GetServiceAccount not implemented") |
| } |
| func (*UnimplementedStorageServer) CreateHmacKey(context.Context, *CreateHmacKeyRequest) (*CreateHmacKeyResponse, error) { |
| return nil, status.Errorf(codes.Unimplemented, "method CreateHmacKey not implemented") |
| } |
| func (*UnimplementedStorageServer) DeleteHmacKey(context.Context, *DeleteHmacKeyRequest) (*emptypb.Empty, error) { |
| return nil, status.Errorf(codes.Unimplemented, "method DeleteHmacKey not implemented") |
| } |
| func (*UnimplementedStorageServer) GetHmacKey(context.Context, *GetHmacKeyRequest) (*HmacKeyMetadata, error) { |
| return nil, status.Errorf(codes.Unimplemented, "method GetHmacKey not implemented") |
| } |
| func (*UnimplementedStorageServer) ListHmacKeys(context.Context, *ListHmacKeysRequest) (*ListHmacKeysResponse, error) { |
| return nil, status.Errorf(codes.Unimplemented, "method ListHmacKeys not implemented") |
| } |
| func (*UnimplementedStorageServer) UpdateHmacKey(context.Context, *UpdateHmacKeyRequest) (*HmacKeyMetadata, error) { |
| return nil, status.Errorf(codes.Unimplemented, "method UpdateHmacKey not implemented") |
| } |
| |
| func RegisterStorageServer(s *grpc.Server, srv StorageServer) { |
| s.RegisterService(&_Storage_serviceDesc, srv) |
| } |
| |
| func _Storage_DeleteBucket_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { |
| in := new(DeleteBucketRequest) |
| if err := dec(in); err != nil { |
| return nil, err |
| } |
| if interceptor == nil { |
| return srv.(StorageServer).DeleteBucket(ctx, in) |
| } |
| info := &grpc.UnaryServerInfo{ |
| Server: srv, |
| FullMethod: "/google.storage.v2.Storage/DeleteBucket", |
| } |
| handler := func(ctx context.Context, req interface{}) (interface{}, error) { |
| return srv.(StorageServer).DeleteBucket(ctx, req.(*DeleteBucketRequest)) |
| } |
| return interceptor(ctx, in, info, handler) |
| } |
| |
| func _Storage_GetBucket_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { |
| in := new(GetBucketRequest) |
| if err := dec(in); err != nil { |
| return nil, err |
| } |
| if interceptor == nil { |
| return srv.(StorageServer).GetBucket(ctx, in) |
| } |
| info := &grpc.UnaryServerInfo{ |
| Server: srv, |
| FullMethod: "/google.storage.v2.Storage/GetBucket", |
| } |
| handler := func(ctx context.Context, req interface{}) (interface{}, error) { |
| return srv.(StorageServer).GetBucket(ctx, req.(*GetBucketRequest)) |
| } |
| return interceptor(ctx, in, info, handler) |
| } |
| |
| func _Storage_CreateBucket_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { |
| in := new(CreateBucketRequest) |
| if err := dec(in); err != nil { |
| return nil, err |
| } |
| if interceptor == nil { |
| return srv.(StorageServer).CreateBucket(ctx, in) |
| } |
| info := &grpc.UnaryServerInfo{ |
| Server: srv, |
| FullMethod: "/google.storage.v2.Storage/CreateBucket", |
| } |
| handler := func(ctx context.Context, req interface{}) (interface{}, error) { |
| return srv.(StorageServer).CreateBucket(ctx, req.(*CreateBucketRequest)) |
| } |
| return interceptor(ctx, in, info, handler) |
| } |
| |
| func _Storage_ListBuckets_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { |
| in := new(ListBucketsRequest) |
| if err := dec(in); err != nil { |
| return nil, err |
| } |
| if interceptor == nil { |
| return srv.(StorageServer).ListBuckets(ctx, in) |
| } |
| info := &grpc.UnaryServerInfo{ |
| Server: srv, |
| FullMethod: "/google.storage.v2.Storage/ListBuckets", |
| } |
| handler := func(ctx context.Context, req interface{}) (interface{}, error) { |
| return srv.(StorageServer).ListBuckets(ctx, req.(*ListBucketsRequest)) |
| } |
| return interceptor(ctx, in, info, handler) |
| } |
| |
| func _Storage_LockBucketRetentionPolicy_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { |
| in := new(LockBucketRetentionPolicyRequest) |
| if err := dec(in); err != nil { |
| return nil, err |
| } |
| if interceptor == nil { |
| return srv.(StorageServer).LockBucketRetentionPolicy(ctx, in) |
| } |
| info := &grpc.UnaryServerInfo{ |
| Server: srv, |
| FullMethod: "/google.storage.v2.Storage/LockBucketRetentionPolicy", |
| } |
| handler := func(ctx context.Context, req interface{}) (interface{}, error) { |
| return srv.(StorageServer).LockBucketRetentionPolicy(ctx, req.(*LockBucketRetentionPolicyRequest)) |
| } |
| return interceptor(ctx, in, info, handler) |
| } |
| |
| func _Storage_GetIamPolicy_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { |
| in := new(iampb.GetIamPolicyRequest) |
| if err := dec(in); err != nil { |
| return nil, err |
| } |
| if interceptor == nil { |
| return srv.(StorageServer).GetIamPolicy(ctx, in) |
| } |
| info := &grpc.UnaryServerInfo{ |
| Server: srv, |
| FullMethod: "/google.storage.v2.Storage/GetIamPolicy", |
| } |
| handler := func(ctx context.Context, req interface{}) (interface{}, error) { |
| return srv.(StorageServer).GetIamPolicy(ctx, req.(*iampb.GetIamPolicyRequest)) |
| } |
| return interceptor(ctx, in, info, handler) |
| } |
| |
| func _Storage_SetIamPolicy_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { |
| in := new(iampb.SetIamPolicyRequest) |
| if err := dec(in); err != nil { |
| return nil, err |
| } |
| if interceptor == nil { |
| return srv.(StorageServer).SetIamPolicy(ctx, in) |
| } |
| info := &grpc.UnaryServerInfo{ |
| Server: srv, |
| FullMethod: "/google.storage.v2.Storage/SetIamPolicy", |
| } |
| handler := func(ctx context.Context, req interface{}) (interface{}, error) { |
| return srv.(StorageServer).SetIamPolicy(ctx, req.(*iampb.SetIamPolicyRequest)) |
| } |
| return interceptor(ctx, in, info, handler) |
| } |
| |
| func _Storage_TestIamPermissions_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { |
| in := new(iampb.TestIamPermissionsRequest) |
| if err := dec(in); err != nil { |
| return nil, err |
| } |
| if interceptor == nil { |
| return srv.(StorageServer).TestIamPermissions(ctx, in) |
| } |
| info := &grpc.UnaryServerInfo{ |
| Server: srv, |
| FullMethod: "/google.storage.v2.Storage/TestIamPermissions", |
| } |
| handler := func(ctx context.Context, req interface{}) (interface{}, error) { |
| return srv.(StorageServer).TestIamPermissions(ctx, req.(*iampb.TestIamPermissionsRequest)) |
| } |
| return interceptor(ctx, in, info, handler) |
| } |
| |
| func _Storage_UpdateBucket_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { |
| in := new(UpdateBucketRequest) |
| if err := dec(in); err != nil { |
| return nil, err |
| } |
| if interceptor == nil { |
| return srv.(StorageServer).UpdateBucket(ctx, in) |
| } |
| info := &grpc.UnaryServerInfo{ |
| Server: srv, |
| FullMethod: "/google.storage.v2.Storage/UpdateBucket", |
| } |
| handler := func(ctx context.Context, req interface{}) (interface{}, error) { |
| return srv.(StorageServer).UpdateBucket(ctx, req.(*UpdateBucketRequest)) |
| } |
| return interceptor(ctx, in, info, handler) |
| } |
| |
| func _Storage_DeleteNotificationConfig_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { |
| in := new(DeleteNotificationConfigRequest) |
| if err := dec(in); err != nil { |
| return nil, err |
| } |
| if interceptor == nil { |
| return srv.(StorageServer).DeleteNotificationConfig(ctx, in) |
| } |
| info := &grpc.UnaryServerInfo{ |
| Server: srv, |
| FullMethod: "/google.storage.v2.Storage/DeleteNotificationConfig", |
| } |
| handler := func(ctx context.Context, req interface{}) (interface{}, error) { |
| return srv.(StorageServer).DeleteNotificationConfig(ctx, req.(*DeleteNotificationConfigRequest)) |
| } |
| return interceptor(ctx, in, info, handler) |
| } |
| |
| func _Storage_GetNotificationConfig_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { |
| in := new(GetNotificationConfigRequest) |
| if err := dec(in); err != nil { |
| return nil, err |
| } |
| if interceptor == nil { |
| return srv.(StorageServer).GetNotificationConfig(ctx, in) |
| } |
| info := &grpc.UnaryServerInfo{ |
| Server: srv, |
| FullMethod: "/google.storage.v2.Storage/GetNotificationConfig", |
| } |
| handler := func(ctx context.Context, req interface{}) (interface{}, error) { |
| return srv.(StorageServer).GetNotificationConfig(ctx, req.(*GetNotificationConfigRequest)) |
| } |
| return interceptor(ctx, in, info, handler) |
| } |
| |
| func _Storage_CreateNotificationConfig_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { |
| in := new(CreateNotificationConfigRequest) |
| if err := dec(in); err != nil { |
| return nil, err |
| } |
| if interceptor == nil { |
| return srv.(StorageServer).CreateNotificationConfig(ctx, in) |
| } |
| info := &grpc.UnaryServerInfo{ |
| Server: srv, |
| FullMethod: "/google.storage.v2.Storage/CreateNotificationConfig", |
| } |
| handler := func(ctx context.Context, req interface{}) (interface{}, error) { |
| return srv.(StorageServer).CreateNotificationConfig(ctx, req.(*CreateNotificationConfigRequest)) |
| } |
| return interceptor(ctx, in, info, handler) |
| } |
| |
| func _Storage_ListNotificationConfigs_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { |
| in := new(ListNotificationConfigsRequest) |
| if err := dec(in); err != nil { |
| return nil, err |
| } |
| if interceptor == nil { |
| return srv.(StorageServer).ListNotificationConfigs(ctx, in) |
| } |
| info := &grpc.UnaryServerInfo{ |
| Server: srv, |
| FullMethod: "/google.storage.v2.Storage/ListNotificationConfigs", |
| } |
| handler := func(ctx context.Context, req interface{}) (interface{}, error) { |
| return srv.(StorageServer).ListNotificationConfigs(ctx, req.(*ListNotificationConfigsRequest)) |
| } |
| return interceptor(ctx, in, info, handler) |
| } |
| |
| func _Storage_ComposeObject_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { |
| in := new(ComposeObjectRequest) |
| if err := dec(in); err != nil { |
| return nil, err |
| } |
| if interceptor == nil { |
| return srv.(StorageServer).ComposeObject(ctx, in) |
| } |
| info := &grpc.UnaryServerInfo{ |
| Server: srv, |
| FullMethod: "/google.storage.v2.Storage/ComposeObject", |
| } |
| handler := func(ctx context.Context, req interface{}) (interface{}, error) { |
| return srv.(StorageServer).ComposeObject(ctx, req.(*ComposeObjectRequest)) |
| } |
| return interceptor(ctx, in, info, handler) |
| } |
| |
| func _Storage_DeleteObject_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { |
| in := new(DeleteObjectRequest) |
| if err := dec(in); err != nil { |
| return nil, err |
| } |
| if interceptor == nil { |
| return srv.(StorageServer).DeleteObject(ctx, in) |
| } |
| info := &grpc.UnaryServerInfo{ |
| Server: srv, |
| FullMethod: "/google.storage.v2.Storage/DeleteObject", |
| } |
| handler := func(ctx context.Context, req interface{}) (interface{}, error) { |
| return srv.(StorageServer).DeleteObject(ctx, req.(*DeleteObjectRequest)) |
| } |
| return interceptor(ctx, in, info, handler) |
| } |
| |
| func _Storage_RestoreObject_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { |
| in := new(RestoreObjectRequest) |
| if err := dec(in); err != nil { |
| return nil, err |
| } |
| if interceptor == nil { |
| return srv.(StorageServer).RestoreObject(ctx, in) |
| } |
| info := &grpc.UnaryServerInfo{ |
| Server: srv, |
| FullMethod: "/google.storage.v2.Storage/RestoreObject", |
| } |
| handler := func(ctx context.Context, req interface{}) (interface{}, error) { |
| return srv.(StorageServer).RestoreObject(ctx, req.(*RestoreObjectRequest)) |
| } |
| return interceptor(ctx, in, info, handler) |
| } |
| |
| func _Storage_CancelResumableWrite_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { |
| in := new(CancelResumableWriteRequest) |
| if err := dec(in); err != nil { |
| return nil, err |
| } |
| if interceptor == nil { |
| return srv.(StorageServer).CancelResumableWrite(ctx, in) |
| } |
| info := &grpc.UnaryServerInfo{ |
| Server: srv, |
| FullMethod: "/google.storage.v2.Storage/CancelResumableWrite", |
| } |
| handler := func(ctx context.Context, req interface{}) (interface{}, error) { |
| return srv.(StorageServer).CancelResumableWrite(ctx, req.(*CancelResumableWriteRequest)) |
| } |
| return interceptor(ctx, in, info, handler) |
| } |
| |
| func _Storage_GetObject_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { |
| in := new(GetObjectRequest) |
| if err := dec(in); err != nil { |
| return nil, err |
| } |
| if interceptor == nil { |
| return srv.(StorageServer).GetObject(ctx, in) |
| } |
| info := &grpc.UnaryServerInfo{ |
| Server: srv, |
| FullMethod: "/google.storage.v2.Storage/GetObject", |
| } |
| handler := func(ctx context.Context, req interface{}) (interface{}, error) { |
| return srv.(StorageServer).GetObject(ctx, req.(*GetObjectRequest)) |
| } |
| return interceptor(ctx, in, info, handler) |
| } |
| |
| func _Storage_ReadObject_Handler(srv interface{}, stream grpc.ServerStream) error { |
| m := new(ReadObjectRequest) |
| if err := stream.RecvMsg(m); err != nil { |
| return err |
| } |
| return srv.(StorageServer).ReadObject(m, &storageReadObjectServer{stream}) |
| } |
| |
| type Storage_ReadObjectServer interface { |
| Send(*ReadObjectResponse) error |
| grpc.ServerStream |
| } |
| |
| type storageReadObjectServer struct { |
| grpc.ServerStream |
| } |
| |
| func (x *storageReadObjectServer) Send(m *ReadObjectResponse) error { |
| return x.ServerStream.SendMsg(m) |
| } |
| |
| func _Storage_UpdateObject_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { |
| in := new(UpdateObjectRequest) |
| if err := dec(in); err != nil { |
| return nil, err |
| } |
| if interceptor == nil { |
| return srv.(StorageServer).UpdateObject(ctx, in) |
| } |
| info := &grpc.UnaryServerInfo{ |
| Server: srv, |
| FullMethod: "/google.storage.v2.Storage/UpdateObject", |
| } |
| handler := func(ctx context.Context, req interface{}) (interface{}, error) { |
| return srv.(StorageServer).UpdateObject(ctx, req.(*UpdateObjectRequest)) |
| } |
| return interceptor(ctx, in, info, handler) |
| } |
| |
| func _Storage_WriteObject_Handler(srv interface{}, stream grpc.ServerStream) error { |
| return srv.(StorageServer).WriteObject(&storageWriteObjectServer{stream}) |
| } |
| |
| type Storage_WriteObjectServer interface { |
| SendAndClose(*WriteObjectResponse) error |
| Recv() (*WriteObjectRequest, error) |
| grpc.ServerStream |
| } |
| |
| type storageWriteObjectServer struct { |
| grpc.ServerStream |
| } |
| |
| func (x *storageWriteObjectServer) SendAndClose(m *WriteObjectResponse) error { |
| return x.ServerStream.SendMsg(m) |
| } |
| |
| func (x *storageWriteObjectServer) Recv() (*WriteObjectRequest, error) { |
| m := new(WriteObjectRequest) |
| if err := x.ServerStream.RecvMsg(m); err != nil { |
| return nil, err |
| } |
| return m, nil |
| } |
| |
| func _Storage_BidiWriteObject_Handler(srv interface{}, stream grpc.ServerStream) error { |
| return srv.(StorageServer).BidiWriteObject(&storageBidiWriteObjectServer{stream}) |
| } |
| |
| type Storage_BidiWriteObjectServer interface { |
| Send(*BidiWriteObjectResponse) error |
| Recv() (*BidiWriteObjectRequest, error) |
| grpc.ServerStream |
| } |
| |
| type storageBidiWriteObjectServer struct { |
| grpc.ServerStream |
| } |
| |
| func (x *storageBidiWriteObjectServer) Send(m *BidiWriteObjectResponse) error { |
| return x.ServerStream.SendMsg(m) |
| } |
| |
| func (x *storageBidiWriteObjectServer) Recv() (*BidiWriteObjectRequest, error) { |
| m := new(BidiWriteObjectRequest) |
| if err := x.ServerStream.RecvMsg(m); err != nil { |
| return nil, err |
| } |
| return m, nil |
| } |
| |
| func _Storage_ListObjects_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { |
| in := new(ListObjectsRequest) |
| if err := dec(in); err != nil { |
| return nil, err |
| } |
| if interceptor == nil { |
| return srv.(StorageServer).ListObjects(ctx, in) |
| } |
| info := &grpc.UnaryServerInfo{ |
| Server: srv, |
| FullMethod: "/google.storage.v2.Storage/ListObjects", |
| } |
| handler := func(ctx context.Context, req interface{}) (interface{}, error) { |
| return srv.(StorageServer).ListObjects(ctx, req.(*ListObjectsRequest)) |
| } |
| return interceptor(ctx, in, info, handler) |
| } |
| |
| func _Storage_RewriteObject_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { |
| in := new(RewriteObjectRequest) |
| if err := dec(in); err != nil { |
| return nil, err |
| } |
| if interceptor == nil { |
| return srv.(StorageServer).RewriteObject(ctx, in) |
| } |
| info := &grpc.UnaryServerInfo{ |
| Server: srv, |
| FullMethod: "/google.storage.v2.Storage/RewriteObject", |
| } |
| handler := func(ctx context.Context, req interface{}) (interface{}, error) { |
| return srv.(StorageServer).RewriteObject(ctx, req.(*RewriteObjectRequest)) |
| } |
| return interceptor(ctx, in, info, handler) |
| } |
| |
| func _Storage_StartResumableWrite_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { |
| in := new(StartResumableWriteRequest) |
| if err := dec(in); err != nil { |
| return nil, err |
| } |
| if interceptor == nil { |
| return srv.(StorageServer).StartResumableWrite(ctx, in) |
| } |
| info := &grpc.UnaryServerInfo{ |
| Server: srv, |
| FullMethod: "/google.storage.v2.Storage/StartResumableWrite", |
| } |
| handler := func(ctx context.Context, req interface{}) (interface{}, error) { |
| return srv.(StorageServer).StartResumableWrite(ctx, req.(*StartResumableWriteRequest)) |
| } |
| return interceptor(ctx, in, info, handler) |
| } |
| |
| func _Storage_QueryWriteStatus_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { |
| in := new(QueryWriteStatusRequest) |
| if err := dec(in); err != nil { |
| return nil, err |
| } |
| if interceptor == nil { |
| return srv.(StorageServer).QueryWriteStatus(ctx, in) |
| } |
| info := &grpc.UnaryServerInfo{ |
| Server: srv, |
| FullMethod: "/google.storage.v2.Storage/QueryWriteStatus", |
| } |
| handler := func(ctx context.Context, req interface{}) (interface{}, error) { |
| return srv.(StorageServer).QueryWriteStatus(ctx, req.(*QueryWriteStatusRequest)) |
| } |
| return interceptor(ctx, in, info, handler) |
| } |
| |
| func _Storage_GetServiceAccount_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { |
| in := new(GetServiceAccountRequest) |
| if err := dec(in); err != nil { |
| return nil, err |
| } |
| if interceptor == nil { |
| return srv.(StorageServer).GetServiceAccount(ctx, in) |
| } |
| info := &grpc.UnaryServerInfo{ |
| Server: srv, |
| FullMethod: "/google.storage.v2.Storage/GetServiceAccount", |
| } |
| handler := func(ctx context.Context, req interface{}) (interface{}, error) { |
| return srv.(StorageServer).GetServiceAccount(ctx, req.(*GetServiceAccountRequest)) |
| } |
| return interceptor(ctx, in, info, handler) |
| } |
| |
| func _Storage_CreateHmacKey_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { |
| in := new(CreateHmacKeyRequest) |
| if err := dec(in); err != nil { |
| return nil, err |
| } |
| if interceptor == nil { |
| return srv.(StorageServer).CreateHmacKey(ctx, in) |
| } |
| info := &grpc.UnaryServerInfo{ |
| Server: srv, |
| FullMethod: "/google.storage.v2.Storage/CreateHmacKey", |
| } |
| handler := func(ctx context.Context, req interface{}) (interface{}, error) { |
| return srv.(StorageServer).CreateHmacKey(ctx, req.(*CreateHmacKeyRequest)) |
| } |
| return interceptor(ctx, in, info, handler) |
| } |
| |
| func _Storage_DeleteHmacKey_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { |
| in := new(DeleteHmacKeyRequest) |
| if err := dec(in); err != nil { |
| return nil, err |
| } |
| if interceptor == nil { |
| return srv.(StorageServer).DeleteHmacKey(ctx, in) |
| } |
| info := &grpc.UnaryServerInfo{ |
| Server: srv, |
| FullMethod: "/google.storage.v2.Storage/DeleteHmacKey", |
| } |
| handler := func(ctx context.Context, req interface{}) (interface{}, error) { |
| return srv.(StorageServer).DeleteHmacKey(ctx, req.(*DeleteHmacKeyRequest)) |
| } |
| return interceptor(ctx, in, info, handler) |
| } |
| |
| func _Storage_GetHmacKey_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { |
| in := new(GetHmacKeyRequest) |
| if err := dec(in); err != nil { |
| return nil, err |
| } |
| if interceptor == nil { |
| return srv.(StorageServer).GetHmacKey(ctx, in) |
| } |
| info := &grpc.UnaryServerInfo{ |
| Server: srv, |
| FullMethod: "/google.storage.v2.Storage/GetHmacKey", |
| } |
| handler := func(ctx context.Context, req interface{}) (interface{}, error) { |
| return srv.(StorageServer).GetHmacKey(ctx, req.(*GetHmacKeyRequest)) |
| } |
| return interceptor(ctx, in, info, handler) |
| } |
| |
| func _Storage_ListHmacKeys_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { |
| in := new(ListHmacKeysRequest) |
| if err := dec(in); err != nil { |
| return nil, err |
| } |
| if interceptor == nil { |
| return srv.(StorageServer).ListHmacKeys(ctx, in) |
| } |
| info := &grpc.UnaryServerInfo{ |
| Server: srv, |
| FullMethod: "/google.storage.v2.Storage/ListHmacKeys", |
| } |
| handler := func(ctx context.Context, req interface{}) (interface{}, error) { |
| return srv.(StorageServer).ListHmacKeys(ctx, req.(*ListHmacKeysRequest)) |
| } |
| return interceptor(ctx, in, info, handler) |
| } |
| |
| func _Storage_UpdateHmacKey_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { |
| in := new(UpdateHmacKeyRequest) |
| if err := dec(in); err != nil { |
| return nil, err |
| } |
| if interceptor == nil { |
| return srv.(StorageServer).UpdateHmacKey(ctx, in) |
| } |
| info := &grpc.UnaryServerInfo{ |
| Server: srv, |
| FullMethod: "/google.storage.v2.Storage/UpdateHmacKey", |
| } |
| handler := func(ctx context.Context, req interface{}) (interface{}, error) { |
| return srv.(StorageServer).UpdateHmacKey(ctx, req.(*UpdateHmacKeyRequest)) |
| } |
| return interceptor(ctx, in, info, handler) |
| } |
| |
| var _Storage_serviceDesc = grpc.ServiceDesc{ |
| ServiceName: "google.storage.v2.Storage", |
| HandlerType: (*StorageServer)(nil), |
| Methods: []grpc.MethodDesc{ |
| { |
| MethodName: "DeleteBucket", |
| Handler: _Storage_DeleteBucket_Handler, |
| }, |
| { |
| MethodName: "GetBucket", |
| Handler: _Storage_GetBucket_Handler, |
| }, |
| { |
| MethodName: "CreateBucket", |
| Handler: _Storage_CreateBucket_Handler, |
| }, |
| { |
| MethodName: "ListBuckets", |
| Handler: _Storage_ListBuckets_Handler, |
| }, |
| { |
| MethodName: "LockBucketRetentionPolicy", |
| Handler: _Storage_LockBucketRetentionPolicy_Handler, |
| }, |
| { |
| MethodName: "GetIamPolicy", |
| Handler: _Storage_GetIamPolicy_Handler, |
| }, |
| { |
| MethodName: "SetIamPolicy", |
| Handler: _Storage_SetIamPolicy_Handler, |
| }, |
| { |
| MethodName: "TestIamPermissions", |
| Handler: _Storage_TestIamPermissions_Handler, |
| }, |
| { |
| MethodName: "UpdateBucket", |
| Handler: _Storage_UpdateBucket_Handler, |
| }, |
| { |
| MethodName: "DeleteNotificationConfig", |
| Handler: _Storage_DeleteNotificationConfig_Handler, |
| }, |
| { |
| MethodName: "GetNotificationConfig", |
| Handler: _Storage_GetNotificationConfig_Handler, |
| }, |
| { |
| MethodName: "CreateNotificationConfig", |
| Handler: _Storage_CreateNotificationConfig_Handler, |
| }, |
| { |
| MethodName: "ListNotificationConfigs", |
| Handler: _Storage_ListNotificationConfigs_Handler, |
| }, |
| { |
| MethodName: "ComposeObject", |
| Handler: _Storage_ComposeObject_Handler, |
| }, |
| { |
| MethodName: "DeleteObject", |
| Handler: _Storage_DeleteObject_Handler, |
| }, |
| { |
| MethodName: "RestoreObject", |
| Handler: _Storage_RestoreObject_Handler, |
| }, |
| { |
| MethodName: "CancelResumableWrite", |
| Handler: _Storage_CancelResumableWrite_Handler, |
| }, |
| { |
| MethodName: "GetObject", |
| Handler: _Storage_GetObject_Handler, |
| }, |
| { |
| MethodName: "UpdateObject", |
| Handler: _Storage_UpdateObject_Handler, |
| }, |
| { |
| MethodName: "ListObjects", |
| Handler: _Storage_ListObjects_Handler, |
| }, |
| { |
| MethodName: "RewriteObject", |
| Handler: _Storage_RewriteObject_Handler, |
| }, |
| { |
| MethodName: "StartResumableWrite", |
| Handler: _Storage_StartResumableWrite_Handler, |
| }, |
| { |
| MethodName: "QueryWriteStatus", |
| Handler: _Storage_QueryWriteStatus_Handler, |
| }, |
| { |
| MethodName: "GetServiceAccount", |
| Handler: _Storage_GetServiceAccount_Handler, |
| }, |
| { |
| MethodName: "CreateHmacKey", |
| Handler: _Storage_CreateHmacKey_Handler, |
| }, |
| { |
| MethodName: "DeleteHmacKey", |
| Handler: _Storage_DeleteHmacKey_Handler, |
| }, |
| { |
| MethodName: "GetHmacKey", |
| Handler: _Storage_GetHmacKey_Handler, |
| }, |
| { |
| MethodName: "ListHmacKeys", |
| Handler: _Storage_ListHmacKeys_Handler, |
| }, |
| { |
| MethodName: "UpdateHmacKey", |
| Handler: _Storage_UpdateHmacKey_Handler, |
| }, |
| }, |
| Streams: []grpc.StreamDesc{ |
| { |
| StreamName: "ReadObject", |
| Handler: _Storage_ReadObject_Handler, |
| ServerStreams: true, |
| }, |
| { |
| StreamName: "WriteObject", |
| Handler: _Storage_WriteObject_Handler, |
| ClientStreams: true, |
| }, |
| { |
| StreamName: "BidiWriteObject", |
| Handler: _Storage_BidiWriteObject_Handler, |
| ServerStreams: true, |
| ClientStreams: true, |
| }, |
| }, |
| Metadata: "google/storage/v2/storage.proto", |
| } |