blob: 6e525a2f613f47e0f73142d593148f9b12dddc19 [file] [log] [blame]
// Copyright 2024 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// 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.34.1
// protoc v4.25.3
// source: google/storage/control/v2/storage_control.proto
package controlpb
import (
context "context"
reflect "reflect"
sync "sync"
longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb"
_ "google.golang.org/genproto/googleapis/api/annotations"
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"
emptypb "google.golang.org/protobuf/types/known/emptypb"
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)
)
// Contains information about a pending rename operation.
type PendingRenameInfo struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Output only. The name of the rename operation.
Operation string `protobuf:"bytes,1,opt,name=operation,proto3" json:"operation,omitempty"`
}
func (x *PendingRenameInfo) Reset() {
*x = PendingRenameInfo{}
if protoimpl.UnsafeEnabled {
mi := &file_google_storage_control_v2_storage_control_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *PendingRenameInfo) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*PendingRenameInfo) ProtoMessage() {}
func (x *PendingRenameInfo) ProtoReflect() protoreflect.Message {
mi := &file_google_storage_control_v2_storage_control_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 PendingRenameInfo.ProtoReflect.Descriptor instead.
func (*PendingRenameInfo) Descriptor() ([]byte, []int) {
return file_google_storage_control_v2_storage_control_proto_rawDescGZIP(), []int{0}
}
func (x *PendingRenameInfo) GetOperation() string {
if x != nil {
return x.Operation
}
return ""
}
// A folder resource. This resource can only exist in a hierarchical namespace
// enabled bucket.
// Hierarchical namespace buckets are in allowlist preview.
type Folder struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Identifier. The name of this folder.
// Format: `projects/{project}/buckets/{bucket}/folders/{folder}`
Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
// Output only. The version of the metadata for this folder. Used for
// preconditions and for detecting changes in metadata.
Metageneration int64 `protobuf:"varint,3,opt,name=metageneration,proto3" json:"metageneration,omitempty"`
// Output only. The creation time of the folder.
CreateTime *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"`
// Output only. The modification time of the folder.
UpdateTime *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"`
// Output only. Only present if the folder is part of an ongoing RenameFolder
// operation. Contains information which can be used to query the operation
// status. The presence of this field also indicates all write operations are
// blocked for this folder, including folder, managed folder, and object
// operations.
PendingRenameInfo *PendingRenameInfo `protobuf:"bytes,7,opt,name=pending_rename_info,json=pendingRenameInfo,proto3" json:"pending_rename_info,omitempty"`
}
func (x *Folder) Reset() {
*x = Folder{}
if protoimpl.UnsafeEnabled {
mi := &file_google_storage_control_v2_storage_control_proto_msgTypes[1]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Folder) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Folder) ProtoMessage() {}
func (x *Folder) ProtoReflect() protoreflect.Message {
mi := &file_google_storage_control_v2_storage_control_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 Folder.ProtoReflect.Descriptor instead.
func (*Folder) Descriptor() ([]byte, []int) {
return file_google_storage_control_v2_storage_control_proto_rawDescGZIP(), []int{1}
}
func (x *Folder) GetName() string {
if x != nil {
return x.Name
}
return ""
}
func (x *Folder) GetMetageneration() int64 {
if x != nil {
return x.Metageneration
}
return 0
}
func (x *Folder) GetCreateTime() *timestamppb.Timestamp {
if x != nil {
return x.CreateTime
}
return nil
}
func (x *Folder) GetUpdateTime() *timestamppb.Timestamp {
if x != nil {
return x.UpdateTime
}
return nil
}
func (x *Folder) GetPendingRenameInfo() *PendingRenameInfo {
if x != nil {
return x.PendingRenameInfo
}
return nil
}
// Request message for GetFolder. This operation is only applicable to a
// hierarchical namespace enabled bucket.
// Hierarchical namespace buckets are in allowlist preview.
type GetFolderRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Required. Name of the folder.
// Format: `projects/{project}/buckets/{bucket}/folders/{folder}`
Name string `protobuf:"bytes,6,opt,name=name,proto3" json:"name,omitempty"`
// Makes the operation only succeed conditional on whether the folder's
// current metageneration matches the given value.
IfMetagenerationMatch *int64 `protobuf:"varint,3,opt,name=if_metageneration_match,json=ifMetagenerationMatch,proto3,oneof" json:"if_metageneration_match,omitempty"`
// Makes the operation only succeed conditional on whether the folder's
// current metageneration does not match the given value.
IfMetagenerationNotMatch *int64 `protobuf:"varint,4,opt,name=if_metageneration_not_match,json=ifMetagenerationNotMatch,proto3,oneof" json:"if_metageneration_not_match,omitempty"`
// Optional. A unique identifier for this request. UUID is the recommended
// format, but other formats are still accepted.
RequestId string `protobuf:"bytes,5,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"`
}
func (x *GetFolderRequest) Reset() {
*x = GetFolderRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_google_storage_control_v2_storage_control_proto_msgTypes[2]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *GetFolderRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*GetFolderRequest) ProtoMessage() {}
func (x *GetFolderRequest) ProtoReflect() protoreflect.Message {
mi := &file_google_storage_control_v2_storage_control_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 GetFolderRequest.ProtoReflect.Descriptor instead.
func (*GetFolderRequest) Descriptor() ([]byte, []int) {
return file_google_storage_control_v2_storage_control_proto_rawDescGZIP(), []int{2}
}
func (x *GetFolderRequest) GetName() string {
if x != nil {
return x.Name
}
return ""
}
func (x *GetFolderRequest) GetIfMetagenerationMatch() int64 {
if x != nil && x.IfMetagenerationMatch != nil {
return *x.IfMetagenerationMatch
}
return 0
}
func (x *GetFolderRequest) GetIfMetagenerationNotMatch() int64 {
if x != nil && x.IfMetagenerationNotMatch != nil {
return *x.IfMetagenerationNotMatch
}
return 0
}
func (x *GetFolderRequest) GetRequestId() string {
if x != nil {
return x.RequestId
}
return ""
}
// Request message for CreateFolder. This operation is only applicable to a
// hierarchical namespace enabled bucket.
// Hierarchical namespace buckets are in allowlist preview.
type CreateFolderRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Required. Name of the bucket in which the folder will reside. The bucket
// must be a hierarchical namespace enabled bucket.
Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
// Required. Properties of the new folder being created.
// The bucket and name of the folder are specified in the parent and folder_id
// fields, respectively. Populating those fields in `folder` will result in an
// error.
Folder *Folder `protobuf:"bytes,2,opt,name=folder,proto3" json:"folder,omitempty"`
// Required. The full name of a folder, including all its parent folders.
// Folders use single '/' characters as a delimiter.
// The folder_id must end with a slash.
// For example, the folder_id of "books/biographies/" would create a new
// "biographies/" folder under the "books/" folder.
FolderId string `protobuf:"bytes,3,opt,name=folder_id,json=folderId,proto3" json:"folder_id,omitempty"`
// Optional. If true, parent folder doesn't have to be present and all missing
// ancestor folders will be created atomically.
Recursive bool `protobuf:"varint,4,opt,name=recursive,proto3" json:"recursive,omitempty"`
// Optional. A unique identifier for this request. UUID is the recommended
// format, but other formats are still accepted.
RequestId string `protobuf:"bytes,5,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"`
}
func (x *CreateFolderRequest) Reset() {
*x = CreateFolderRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_google_storage_control_v2_storage_control_proto_msgTypes[3]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *CreateFolderRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*CreateFolderRequest) ProtoMessage() {}
func (x *CreateFolderRequest) ProtoReflect() protoreflect.Message {
mi := &file_google_storage_control_v2_storage_control_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 CreateFolderRequest.ProtoReflect.Descriptor instead.
func (*CreateFolderRequest) Descriptor() ([]byte, []int) {
return file_google_storage_control_v2_storage_control_proto_rawDescGZIP(), []int{3}
}
func (x *CreateFolderRequest) GetParent() string {
if x != nil {
return x.Parent
}
return ""
}
func (x *CreateFolderRequest) GetFolder() *Folder {
if x != nil {
return x.Folder
}
return nil
}
func (x *CreateFolderRequest) GetFolderId() string {
if x != nil {
return x.FolderId
}
return ""
}
func (x *CreateFolderRequest) GetRecursive() bool {
if x != nil {
return x.Recursive
}
return false
}
func (x *CreateFolderRequest) GetRequestId() string {
if x != nil {
return x.RequestId
}
return ""
}
// Request message for DeleteFolder. This operation is only applicable to a
// hierarchical namespace enabled bucket.
// Hierarchical namespace buckets are in allowlist preview.
type DeleteFolderRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Required. Name of the folder.
// Format: `projects/{project}/buckets/{bucket}/folders/{folder}`
Name string `protobuf:"bytes,6,opt,name=name,proto3" json:"name,omitempty"`
// Makes the operation only succeed conditional on whether the folder's
// current metageneration matches the given value.
IfMetagenerationMatch *int64 `protobuf:"varint,3,opt,name=if_metageneration_match,json=ifMetagenerationMatch,proto3,oneof" json:"if_metageneration_match,omitempty"`
// Makes the operation only succeed conditional on whether the folder's
// current metageneration does not match the given value.
IfMetagenerationNotMatch *int64 `protobuf:"varint,4,opt,name=if_metageneration_not_match,json=ifMetagenerationNotMatch,proto3,oneof" json:"if_metageneration_not_match,omitempty"`
// Optional. A unique identifier for this request. UUID is the recommended
// format, but other formats are still accepted.
RequestId string `protobuf:"bytes,5,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"`
}
func (x *DeleteFolderRequest) Reset() {
*x = DeleteFolderRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_google_storage_control_v2_storage_control_proto_msgTypes[4]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *DeleteFolderRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*DeleteFolderRequest) ProtoMessage() {}
func (x *DeleteFolderRequest) ProtoReflect() protoreflect.Message {
mi := &file_google_storage_control_v2_storage_control_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 DeleteFolderRequest.ProtoReflect.Descriptor instead.
func (*DeleteFolderRequest) Descriptor() ([]byte, []int) {
return file_google_storage_control_v2_storage_control_proto_rawDescGZIP(), []int{4}
}
func (x *DeleteFolderRequest) GetName() string {
if x != nil {
return x.Name
}
return ""
}
func (x *DeleteFolderRequest) GetIfMetagenerationMatch() int64 {
if x != nil && x.IfMetagenerationMatch != nil {
return *x.IfMetagenerationMatch
}
return 0
}
func (x *DeleteFolderRequest) GetIfMetagenerationNotMatch() int64 {
if x != nil && x.IfMetagenerationNotMatch != nil {
return *x.IfMetagenerationNotMatch
}
return 0
}
func (x *DeleteFolderRequest) GetRequestId() string {
if x != nil {
return x.RequestId
}
return ""
}
// Request message for ListFolders. This operation is only applicable to a
// hierarchical namespace enabled bucket.
// Hierarchical namespace buckets are in allowlist preview.
type ListFoldersRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Required. Name of the bucket in which to look for folders. The bucket must
// be a hierarchical namespace enabled bucket.
Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
// Optional. Maximum number of folders to return in a single response. 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"`
// Optional. 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"`
// Optional. Filter results to folders whose names begin with this prefix.
// If set, the value must either be an empty string or end with a '/'.
Prefix string `protobuf:"bytes,4,opt,name=prefix,proto3" json:"prefix,omitempty"`
// Optional. If set, returns results in a directory-like mode. The results
// will only include folders that either exactly match the above prefix, or
// are one level below the prefix. The only supported value is '/'.
Delimiter string `protobuf:"bytes,8,opt,name=delimiter,proto3" json:"delimiter,omitempty"`
// Optional. Filter results to folders whose names are lexicographically equal
// to or after lexicographic_start. If lexicographic_end is also set, the
// folders listed have names between lexicographic_start (inclusive) and
// lexicographic_end (exclusive).
LexicographicStart string `protobuf:"bytes,6,opt,name=lexicographic_start,json=lexicographicStart,proto3" json:"lexicographic_start,omitempty"`
// Optional. Filter results to folders whose names are lexicographically
// before lexicographic_end. If lexicographic_start is also set, the folders
// listed have names between lexicographic_start (inclusive) and
// lexicographic_end (exclusive).
LexicographicEnd string `protobuf:"bytes,7,opt,name=lexicographic_end,json=lexicographicEnd,proto3" json:"lexicographic_end,omitempty"`
// Optional. A unique identifier for this request. UUID is the recommended
// format, but other formats are still accepted.
RequestId string `protobuf:"bytes,9,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"`
}
func (x *ListFoldersRequest) Reset() {
*x = ListFoldersRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_google_storage_control_v2_storage_control_proto_msgTypes[5]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ListFoldersRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ListFoldersRequest) ProtoMessage() {}
func (x *ListFoldersRequest) ProtoReflect() protoreflect.Message {
mi := &file_google_storage_control_v2_storage_control_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 ListFoldersRequest.ProtoReflect.Descriptor instead.
func (*ListFoldersRequest) Descriptor() ([]byte, []int) {
return file_google_storage_control_v2_storage_control_proto_rawDescGZIP(), []int{5}
}
func (x *ListFoldersRequest) GetParent() string {
if x != nil {
return x.Parent
}
return ""
}
func (x *ListFoldersRequest) GetPageSize() int32 {
if x != nil {
return x.PageSize
}
return 0
}
func (x *ListFoldersRequest) GetPageToken() string {
if x != nil {
return x.PageToken
}
return ""
}
func (x *ListFoldersRequest) GetPrefix() string {
if x != nil {
return x.Prefix
}
return ""
}
func (x *ListFoldersRequest) GetDelimiter() string {
if x != nil {
return x.Delimiter
}
return ""
}
func (x *ListFoldersRequest) GetLexicographicStart() string {
if x != nil {
return x.LexicographicStart
}
return ""
}
func (x *ListFoldersRequest) GetLexicographicEnd() string {
if x != nil {
return x.LexicographicEnd
}
return ""
}
func (x *ListFoldersRequest) GetRequestId() string {
if x != nil {
return x.RequestId
}
return ""
}
// Response message for ListFolders.
type ListFoldersResponse struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// The list of child folders
Folders []*Folder `protobuf:"bytes,1,rep,name=folders,proto3" json:"folders,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 *ListFoldersResponse) Reset() {
*x = ListFoldersResponse{}
if protoimpl.UnsafeEnabled {
mi := &file_google_storage_control_v2_storage_control_proto_msgTypes[6]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ListFoldersResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ListFoldersResponse) ProtoMessage() {}
func (x *ListFoldersResponse) ProtoReflect() protoreflect.Message {
mi := &file_google_storage_control_v2_storage_control_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 ListFoldersResponse.ProtoReflect.Descriptor instead.
func (*ListFoldersResponse) Descriptor() ([]byte, []int) {
return file_google_storage_control_v2_storage_control_proto_rawDescGZIP(), []int{6}
}
func (x *ListFoldersResponse) GetFolders() []*Folder {
if x != nil {
return x.Folders
}
return nil
}
func (x *ListFoldersResponse) GetNextPageToken() string {
if x != nil {
return x.NextPageToken
}
return ""
}
// Request message for RenameFolder. This operation is only applicable to a
// hierarchical namespace enabled bucket.
// Hierarchical namespace buckets are in allowlist preview.
type RenameFolderRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Required. Name of the source folder being renamed.
// Format: `projects/{project}/buckets/{bucket}/folders/{folder}`
Name string `protobuf:"bytes,7,opt,name=name,proto3" json:"name,omitempty"`
// Required. The destination folder ID, e.g. `foo/bar/`.
DestinationFolderId string `protobuf:"bytes,8,opt,name=destination_folder_id,json=destinationFolderId,proto3" json:"destination_folder_id,omitempty"`
// Makes the operation only succeed conditional on whether the source
// folder'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 only succeed conditional on whether the source
// folder'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"`
// Optional. A unique identifier for this request. UUID is the recommended
// format, but other formats are still accepted. This request is only
// idempotent if a `request_id` is provided.
RequestId string `protobuf:"bytes,6,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"`
}
func (x *RenameFolderRequest) Reset() {
*x = RenameFolderRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_google_storage_control_v2_storage_control_proto_msgTypes[7]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *RenameFolderRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*RenameFolderRequest) ProtoMessage() {}
func (x *RenameFolderRequest) ProtoReflect() protoreflect.Message {
mi := &file_google_storage_control_v2_storage_control_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 RenameFolderRequest.ProtoReflect.Descriptor instead.
func (*RenameFolderRequest) Descriptor() ([]byte, []int) {
return file_google_storage_control_v2_storage_control_proto_rawDescGZIP(), []int{7}
}
func (x *RenameFolderRequest) GetName() string {
if x != nil {
return x.Name
}
return ""
}
func (x *RenameFolderRequest) GetDestinationFolderId() string {
if x != nil {
return x.DestinationFolderId
}
return ""
}
func (x *RenameFolderRequest) GetIfMetagenerationMatch() int64 {
if x != nil && x.IfMetagenerationMatch != nil {
return *x.IfMetagenerationMatch
}
return 0
}
func (x *RenameFolderRequest) GetIfMetagenerationNotMatch() int64 {
if x != nil && x.IfMetagenerationNotMatch != nil {
return *x.IfMetagenerationNotMatch
}
return 0
}
func (x *RenameFolderRequest) GetRequestId() string {
if x != nil {
return x.RequestId
}
return ""
}
// The message contains metadata that is common to all Storage Control
// long-running operations, present in its `google.longrunning.Operation`
// messages, and accessible via `metadata.common_metadata`.
type CommonLongRunningOperationMetadata struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Output only. The time the operation was created.
CreateTime *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"`
// Output only. The time the operation finished running.
EndTime *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"`
// Output only. The time the operation was last modified.
UpdateTime *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"`
// Output only. The type of operation invoked.
Type string `protobuf:"bytes,4,opt,name=type,proto3" json:"type,omitempty"`
// Output only. Identifies whether the user has requested cancellation.
RequestedCancellation bool `protobuf:"varint,5,opt,name=requested_cancellation,json=requestedCancellation,proto3" json:"requested_cancellation,omitempty"`
// Output only. The estimated progress of the operation in percentage [0,
// 100]. The value -1 means the progress is unknown.
ProgressPercent int32 `protobuf:"varint,6,opt,name=progress_percent,json=progressPercent,proto3" json:"progress_percent,omitempty"`
}
func (x *CommonLongRunningOperationMetadata) Reset() {
*x = CommonLongRunningOperationMetadata{}
if protoimpl.UnsafeEnabled {
mi := &file_google_storage_control_v2_storage_control_proto_msgTypes[8]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *CommonLongRunningOperationMetadata) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*CommonLongRunningOperationMetadata) ProtoMessage() {}
func (x *CommonLongRunningOperationMetadata) ProtoReflect() protoreflect.Message {
mi := &file_google_storage_control_v2_storage_control_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 CommonLongRunningOperationMetadata.ProtoReflect.Descriptor instead.
func (*CommonLongRunningOperationMetadata) Descriptor() ([]byte, []int) {
return file_google_storage_control_v2_storage_control_proto_rawDescGZIP(), []int{8}
}
func (x *CommonLongRunningOperationMetadata) GetCreateTime() *timestamppb.Timestamp {
if x != nil {
return x.CreateTime
}
return nil
}
func (x *CommonLongRunningOperationMetadata) GetEndTime() *timestamppb.Timestamp {
if x != nil {
return x.EndTime
}
return nil
}
func (x *CommonLongRunningOperationMetadata) GetUpdateTime() *timestamppb.Timestamp {
if x != nil {
return x.UpdateTime
}
return nil
}
func (x *CommonLongRunningOperationMetadata) GetType() string {
if x != nil {
return x.Type
}
return ""
}
func (x *CommonLongRunningOperationMetadata) GetRequestedCancellation() bool {
if x != nil {
return x.RequestedCancellation
}
return false
}
func (x *CommonLongRunningOperationMetadata) GetProgressPercent() int32 {
if x != nil {
return x.ProgressPercent
}
return 0
}
// Message returned in the metadata field of the Operation resource for
// RenameFolder operations.
type RenameFolderMetadata struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Generic metadata for the long running operation.
CommonMetadata *CommonLongRunningOperationMetadata `protobuf:"bytes,1,opt,name=common_metadata,json=commonMetadata,proto3" json:"common_metadata,omitempty"`
// The path of the source folder.
SourceFolderId string `protobuf:"bytes,2,opt,name=source_folder_id,json=sourceFolderId,proto3" json:"source_folder_id,omitempty"`
// The path of the destination folder.
DestinationFolderId string `protobuf:"bytes,3,opt,name=destination_folder_id,json=destinationFolderId,proto3" json:"destination_folder_id,omitempty"`
}
func (x *RenameFolderMetadata) Reset() {
*x = RenameFolderMetadata{}
if protoimpl.UnsafeEnabled {
mi := &file_google_storage_control_v2_storage_control_proto_msgTypes[9]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *RenameFolderMetadata) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*RenameFolderMetadata) ProtoMessage() {}
func (x *RenameFolderMetadata) ProtoReflect() protoreflect.Message {
mi := &file_google_storage_control_v2_storage_control_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 RenameFolderMetadata.ProtoReflect.Descriptor instead.
func (*RenameFolderMetadata) Descriptor() ([]byte, []int) {
return file_google_storage_control_v2_storage_control_proto_rawDescGZIP(), []int{9}
}
func (x *RenameFolderMetadata) GetCommonMetadata() *CommonLongRunningOperationMetadata {
if x != nil {
return x.CommonMetadata
}
return nil
}
func (x *RenameFolderMetadata) GetSourceFolderId() string {
if x != nil {
return x.SourceFolderId
}
return ""
}
func (x *RenameFolderMetadata) GetDestinationFolderId() string {
if x != nil {
return x.DestinationFolderId
}
return ""
}
// The storage layout configuration of a bucket.
type StorageLayout struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Output only. The name of the StorageLayout resource.
// Format: `projects/{project}/buckets/{bucket}/storageLayout`
Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
// Output only. The location of the bucket.
Location string `protobuf:"bytes,2,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,3,opt,name=location_type,json=locationType,proto3" json:"location_type,omitempty"`
// Output only. The data placement configuration for custom dual region. If
// there is no configuration, this is not a custom dual region bucket.
CustomPlacementConfig *StorageLayout_CustomPlacementConfig `protobuf:"bytes,4,opt,name=custom_placement_config,json=customPlacementConfig,proto3" json:"custom_placement_config,omitempty"`
// Output only. The bucket's hierarchical namespace configuration. If there is
// no configuration, the hierarchical namespace is disabled.
HierarchicalNamespace *StorageLayout_HierarchicalNamespace `protobuf:"bytes,5,opt,name=hierarchical_namespace,json=hierarchicalNamespace,proto3" json:"hierarchical_namespace,omitempty"`
}
func (x *StorageLayout) Reset() {
*x = StorageLayout{}
if protoimpl.UnsafeEnabled {
mi := &file_google_storage_control_v2_storage_control_proto_msgTypes[10]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *StorageLayout) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*StorageLayout) ProtoMessage() {}
func (x *StorageLayout) ProtoReflect() protoreflect.Message {
mi := &file_google_storage_control_v2_storage_control_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 StorageLayout.ProtoReflect.Descriptor instead.
func (*StorageLayout) Descriptor() ([]byte, []int) {
return file_google_storage_control_v2_storage_control_proto_rawDescGZIP(), []int{10}
}
func (x *StorageLayout) GetName() string {
if x != nil {
return x.Name
}
return ""
}
func (x *StorageLayout) GetLocation() string {
if x != nil {
return x.Location
}
return ""
}
func (x *StorageLayout) GetLocationType() string {
if x != nil {
return x.LocationType
}
return ""
}
func (x *StorageLayout) GetCustomPlacementConfig() *StorageLayout_CustomPlacementConfig {
if x != nil {
return x.CustomPlacementConfig
}
return nil
}
func (x *StorageLayout) GetHierarchicalNamespace() *StorageLayout_HierarchicalNamespace {
if x != nil {
return x.HierarchicalNamespace
}
return nil
}
// Request message for GetStorageLayout.
type GetStorageLayoutRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Required. The name of the StorageLayout resource.
// Format: `projects/{project}/buckets/{bucket}/storageLayout`
Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
// An optional prefix used for permission check. It is useful when the caller
// only has limited permissions under a specific prefix.
Prefix string `protobuf:"bytes,2,opt,name=prefix,proto3" json:"prefix,omitempty"`
// Optional. A unique identifier for this request. UUID is the recommended
// format, but other formats are still accepted.
RequestId string `protobuf:"bytes,3,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"`
}
func (x *GetStorageLayoutRequest) Reset() {
*x = GetStorageLayoutRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_google_storage_control_v2_storage_control_proto_msgTypes[11]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *GetStorageLayoutRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*GetStorageLayoutRequest) ProtoMessage() {}
func (x *GetStorageLayoutRequest) ProtoReflect() protoreflect.Message {
mi := &file_google_storage_control_v2_storage_control_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 GetStorageLayoutRequest.ProtoReflect.Descriptor instead.
func (*GetStorageLayoutRequest) Descriptor() ([]byte, []int) {
return file_google_storage_control_v2_storage_control_proto_rawDescGZIP(), []int{11}
}
func (x *GetStorageLayoutRequest) GetName() string {
if x != nil {
return x.Name
}
return ""
}
func (x *GetStorageLayoutRequest) GetPrefix() string {
if x != nil {
return x.Prefix
}
return ""
}
func (x *GetStorageLayoutRequest) GetRequestId() string {
if x != nil {
return x.RequestId
}
return ""
}
// A managed folder.
type ManagedFolder struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Identifier. The name of this managed folder.
// Format:
// `projects/{project}/buckets/{bucket}/managedFolders/{managedFolder}`
Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
// Output only. The metadata version of this managed folder. It increases
// whenever the metadata is updated. Used for preconditions and for detecting
// changes in metadata. Managed folders don't have a generation number.
Metageneration int64 `protobuf:"varint,3,opt,name=metageneration,proto3" json:"metageneration,omitempty"`
// Output only. The creation time of the managed folder.
CreateTime *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"`
// Output only. The modification time of the managed folder.
UpdateTime *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"`
}
func (x *ManagedFolder) Reset() {
*x = ManagedFolder{}
if protoimpl.UnsafeEnabled {
mi := &file_google_storage_control_v2_storage_control_proto_msgTypes[12]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ManagedFolder) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ManagedFolder) ProtoMessage() {}
func (x *ManagedFolder) ProtoReflect() protoreflect.Message {
mi := &file_google_storage_control_v2_storage_control_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 ManagedFolder.ProtoReflect.Descriptor instead.
func (*ManagedFolder) Descriptor() ([]byte, []int) {
return file_google_storage_control_v2_storage_control_proto_rawDescGZIP(), []int{12}
}
func (x *ManagedFolder) GetName() string {
if x != nil {
return x.Name
}
return ""
}
func (x *ManagedFolder) GetMetageneration() int64 {
if x != nil {
return x.Metageneration
}
return 0
}
func (x *ManagedFolder) GetCreateTime() *timestamppb.Timestamp {
if x != nil {
return x.CreateTime
}
return nil
}
func (x *ManagedFolder) GetUpdateTime() *timestamppb.Timestamp {
if x != nil {
return x.UpdateTime
}
return nil
}
// Request message for GetManagedFolder.
type GetManagedFolderRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Required. Name of the managed folder.
// Format:
// `projects/{project}/buckets/{bucket}/managedFolders/{managedFolder}`
Name string `protobuf:"bytes,6,opt,name=name,proto3" json:"name,omitempty"`
// The operation succeeds conditional on the managed folder's current
// metageneration matching the value here specified.
IfMetagenerationMatch *int64 `protobuf:"varint,3,opt,name=if_metageneration_match,json=ifMetagenerationMatch,proto3,oneof" json:"if_metageneration_match,omitempty"`
// The operation succeeds conditional on the managed folder's current
// metageneration NOT matching the value here specified.
IfMetagenerationNotMatch *int64 `protobuf:"varint,4,opt,name=if_metageneration_not_match,json=ifMetagenerationNotMatch,proto3,oneof" json:"if_metageneration_not_match,omitempty"`
// Optional. A unique identifier for this request. UUID is the recommended
// format, but other formats are still accepted.
RequestId string `protobuf:"bytes,5,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"`
}
func (x *GetManagedFolderRequest) Reset() {
*x = GetManagedFolderRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_google_storage_control_v2_storage_control_proto_msgTypes[13]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *GetManagedFolderRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*GetManagedFolderRequest) ProtoMessage() {}
func (x *GetManagedFolderRequest) ProtoReflect() protoreflect.Message {
mi := &file_google_storage_control_v2_storage_control_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 GetManagedFolderRequest.ProtoReflect.Descriptor instead.
func (*GetManagedFolderRequest) Descriptor() ([]byte, []int) {
return file_google_storage_control_v2_storage_control_proto_rawDescGZIP(), []int{13}
}
func (x *GetManagedFolderRequest) GetName() string {
if x != nil {
return x.Name
}
return ""
}
func (x *GetManagedFolderRequest) GetIfMetagenerationMatch() int64 {
if x != nil && x.IfMetagenerationMatch != nil {
return *x.IfMetagenerationMatch
}
return 0
}
func (x *GetManagedFolderRequest) GetIfMetagenerationNotMatch() int64 {
if x != nil && x.IfMetagenerationNotMatch != nil {
return *x.IfMetagenerationNotMatch
}
return 0
}
func (x *GetManagedFolderRequest) GetRequestId() string {
if x != nil {
return x.RequestId
}
return ""
}
// Request message for CreateManagedFolder.
type CreateManagedFolderRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Required. Name of the bucket this managed folder belongs to.
Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
// Required. Properties of the managed folder being created.
// The bucket and managed folder names are specified in the `parent` and
// `managed_folder_id` fields. Populating these fields in `managed_folder`
// will result in an error.
ManagedFolder *ManagedFolder `protobuf:"bytes,2,opt,name=managed_folder,json=managedFolder,proto3" json:"managed_folder,omitempty"`
// Required. The name of the managed folder. It uses a single `/` as delimiter
// and leading and trailing `/` are allowed.
ManagedFolderId string `protobuf:"bytes,3,opt,name=managed_folder_id,json=managedFolderId,proto3" json:"managed_folder_id,omitempty"`
// Optional. A unique identifier for this request. UUID is the recommended
// format, but other formats are still accepted.
RequestId string `protobuf:"bytes,4,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"`
}
func (x *CreateManagedFolderRequest) Reset() {
*x = CreateManagedFolderRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_google_storage_control_v2_storage_control_proto_msgTypes[14]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *CreateManagedFolderRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*CreateManagedFolderRequest) ProtoMessage() {}
func (x *CreateManagedFolderRequest) ProtoReflect() protoreflect.Message {
mi := &file_google_storage_control_v2_storage_control_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 CreateManagedFolderRequest.ProtoReflect.Descriptor instead.
func (*CreateManagedFolderRequest) Descriptor() ([]byte, []int) {
return file_google_storage_control_v2_storage_control_proto_rawDescGZIP(), []int{14}
}
func (x *CreateManagedFolderRequest) GetParent() string {
if x != nil {
return x.Parent
}
return ""
}
func (x *CreateManagedFolderRequest) GetManagedFolder() *ManagedFolder {
if x != nil {
return x.ManagedFolder
}
return nil
}
func (x *CreateManagedFolderRequest) GetManagedFolderId() string {
if x != nil {
return x.ManagedFolderId
}
return ""
}
func (x *CreateManagedFolderRequest) GetRequestId() string {
if x != nil {
return x.RequestId
}
return ""
}
// DeleteManagedFolder RPC request message.
type DeleteManagedFolderRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Required. Name of the managed folder.
// Format:
// `projects/{project}/buckets/{bucket}/managedFolders/{managedFolder}`
Name string `protobuf:"bytes,7,opt,name=name,proto3" json:"name,omitempty"`
// The operation succeeds conditional on the managed folder's current
// metageneration matching the value here specified.
IfMetagenerationMatch *int64 `protobuf:"varint,3,opt,name=if_metageneration_match,json=ifMetagenerationMatch,proto3,oneof" json:"if_metageneration_match,omitempty"`
// The operation succeeds conditional on the managed folder's current
// metageneration NOT matching the value here specified.
IfMetagenerationNotMatch *int64 `protobuf:"varint,4,opt,name=if_metageneration_not_match,json=ifMetagenerationNotMatch,proto3,oneof" json:"if_metageneration_not_match,omitempty"`
// Allows deletion of a managed folder even if it is not empty.
// A managed folder is empty if it manages no child managed folders or
// objects. Caller must have permission for
// storage.managedFolders.setIamPolicy.
AllowNonEmpty bool `protobuf:"varint,5,opt,name=allow_non_empty,json=allowNonEmpty,proto3" json:"allow_non_empty,omitempty"`
// Optional. A unique identifier for this request. UUID is the recommended
// format, but other formats are still accepted.
RequestId string `protobuf:"bytes,6,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"`
}
func (x *DeleteManagedFolderRequest) Reset() {
*x = DeleteManagedFolderRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_google_storage_control_v2_storage_control_proto_msgTypes[15]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *DeleteManagedFolderRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*DeleteManagedFolderRequest) ProtoMessage() {}
func (x *DeleteManagedFolderRequest) ProtoReflect() protoreflect.Message {
mi := &file_google_storage_control_v2_storage_control_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 DeleteManagedFolderRequest.ProtoReflect.Descriptor instead.
func (*DeleteManagedFolderRequest) Descriptor() ([]byte, []int) {
return file_google_storage_control_v2_storage_control_proto_rawDescGZIP(), []int{15}
}
func (x *DeleteManagedFolderRequest) GetName() string {
if x != nil {
return x.Name
}
return ""
}
func (x *DeleteManagedFolderRequest) GetIfMetagenerationMatch() int64 {
if x != nil && x.IfMetagenerationMatch != nil {
return *x.IfMetagenerationMatch
}
return 0
}
func (x *DeleteManagedFolderRequest) GetIfMetagenerationNotMatch() int64 {
if x != nil && x.IfMetagenerationNotMatch != nil {
return *x.IfMetagenerationNotMatch
}
return 0
}
func (x *DeleteManagedFolderRequest) GetAllowNonEmpty() bool {
if x != nil {
return x.AllowNonEmpty
}
return false
}
func (x *DeleteManagedFolderRequest) GetRequestId() string {
if x != nil {
return x.RequestId
}
return ""
}
// Request message for ListManagedFolders.
type ListManagedFoldersRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Required. Name of the bucket this managed folder belongs to.
Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
// Optional. Maximum number of managed folders to return in a single response.
// 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"`
// Optional. 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"`
// Optional. Filter results to match managed folders with name starting with
// this prefix.
Prefix string `protobuf:"bytes,4,opt,name=prefix,proto3" json:"prefix,omitempty"`
// Optional. A unique identifier for this request. UUID is the recommended
// format, but other formats are still accepted.
RequestId string `protobuf:"bytes,5,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"`
}
func (x *ListManagedFoldersRequest) Reset() {
*x = ListManagedFoldersRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_google_storage_control_v2_storage_control_proto_msgTypes[16]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ListManagedFoldersRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ListManagedFoldersRequest) ProtoMessage() {}
func (x *ListManagedFoldersRequest) ProtoReflect() protoreflect.Message {
mi := &file_google_storage_control_v2_storage_control_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 ListManagedFoldersRequest.ProtoReflect.Descriptor instead.
func (*ListManagedFoldersRequest) Descriptor() ([]byte, []int) {
return file_google_storage_control_v2_storage_control_proto_rawDescGZIP(), []int{16}
}
func (x *ListManagedFoldersRequest) GetParent() string {
if x != nil {
return x.Parent
}
return ""
}
func (x *ListManagedFoldersRequest) GetPageSize() int32 {
if x != nil {
return x.PageSize
}
return 0
}
func (x *ListManagedFoldersRequest) GetPageToken() string {
if x != nil {
return x.PageToken
}
return ""
}
func (x *ListManagedFoldersRequest) GetPrefix() string {
if x != nil {
return x.Prefix
}
return ""
}
func (x *ListManagedFoldersRequest) GetRequestId() string {
if x != nil {
return x.RequestId
}
return ""
}
// Response message for ListManagedFolders.
type ListManagedFoldersResponse struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// The list of matching managed folders
ManagedFolders []*ManagedFolder `protobuf:"bytes,1,rep,name=managed_folders,json=managedFolders,proto3" json:"managed_folders,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 *ListManagedFoldersResponse) Reset() {
*x = ListManagedFoldersResponse{}
if protoimpl.UnsafeEnabled {
mi := &file_google_storage_control_v2_storage_control_proto_msgTypes[17]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ListManagedFoldersResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ListManagedFoldersResponse) ProtoMessage() {}
func (x *ListManagedFoldersResponse) ProtoReflect() protoreflect.Message {
mi := &file_google_storage_control_v2_storage_control_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 ListManagedFoldersResponse.ProtoReflect.Descriptor instead.
func (*ListManagedFoldersResponse) Descriptor() ([]byte, []int) {
return file_google_storage_control_v2_storage_control_proto_rawDescGZIP(), []int{17}
}
func (x *ListManagedFoldersResponse) GetManagedFolders() []*ManagedFolder {
if x != nil {
return x.ManagedFolders
}
return nil
}
func (x *ListManagedFoldersResponse) GetNextPageToken() string {
if x != nil {
return x.NextPageToken
}
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 StorageLayout_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 *StorageLayout_CustomPlacementConfig) Reset() {
*x = StorageLayout_CustomPlacementConfig{}
if protoimpl.UnsafeEnabled {
mi := &file_google_storage_control_v2_storage_control_proto_msgTypes[18]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *StorageLayout_CustomPlacementConfig) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*StorageLayout_CustomPlacementConfig) ProtoMessage() {}
func (x *StorageLayout_CustomPlacementConfig) ProtoReflect() protoreflect.Message {
mi := &file_google_storage_control_v2_storage_control_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 StorageLayout_CustomPlacementConfig.ProtoReflect.Descriptor instead.
func (*StorageLayout_CustomPlacementConfig) Descriptor() ([]byte, []int) {
return file_google_storage_control_v2_storage_control_proto_rawDescGZIP(), []int{10, 0}
}
func (x *StorageLayout_CustomPlacementConfig) GetDataLocations() []string {
if x != nil {
return x.DataLocations
}
return nil
}
// Configuration for a bucket's hierarchical namespace feature.
type StorageLayout_HierarchicalNamespace struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Enables the hierarchical namespace feature.
Enabled bool `protobuf:"varint,1,opt,name=enabled,proto3" json:"enabled,omitempty"`
}
func (x *StorageLayout_HierarchicalNamespace) Reset() {
*x = StorageLayout_HierarchicalNamespace{}
if protoimpl.UnsafeEnabled {
mi := &file_google_storage_control_v2_storage_control_proto_msgTypes[19]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *StorageLayout_HierarchicalNamespace) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*StorageLayout_HierarchicalNamespace) ProtoMessage() {}
func (x *StorageLayout_HierarchicalNamespace) ProtoReflect() protoreflect.Message {
mi := &file_google_storage_control_v2_storage_control_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 StorageLayout_HierarchicalNamespace.ProtoReflect.Descriptor instead.
func (*StorageLayout_HierarchicalNamespace) Descriptor() ([]byte, []int) {
return file_google_storage_control_v2_storage_control_proto_rawDescGZIP(), []int{10, 1}
}
func (x *StorageLayout_HierarchicalNamespace) GetEnabled() bool {
if x != nil {
return x.Enabled
}
return false
}
var File_google_storage_control_v2_storage_control_proto protoreflect.FileDescriptor
var file_google_storage_control_v2_storage_control_proto_rawDesc = []byte{
0x0a, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65,
0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2f, 0x76, 0x32, 0x2f, 0x73, 0x74, 0x6f, 0x72,
0x61, 0x67, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x70, 0x72, 0x6f, 0x74,
0x6f, 0x12, 0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67,
0x65, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 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, 0x1b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61,
0x70, 0x69, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 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, 0x23, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
0x2f, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2f, 0x6f, 0x70, 0x65,
0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 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, 0x1f, 0x67, 0x6f, 0x6f, 0x67,
0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65,
0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x36, 0x0a, 0x11, 0x50,
0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x49, 0x6e, 0x66, 0x6f,
0x12, 0x21, 0x0a, 0x09, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20,
0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x09, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74,
0x69, 0x6f, 0x6e, 0x22, 0xa3, 0x03, 0x0a, 0x06, 0x46, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x12, 0x17,
0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41,
0x08, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x2b, 0x0a, 0x0e, 0x6d, 0x65, 0x74, 0x61, 0x67,
0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 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, 0x40, 0x0a, 0x0b, 0x63, 0x72, 0x65, 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, 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, 0x05, 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, 0x61, 0x0a, 0x13, 0x70, 0x65, 0x6e, 0x64,
0x69, 0x6e, 0x67, 0x5f, 0x72, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18,
0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x73,
0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x76,
0x32, 0x2e, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x49,
0x6e, 0x66, 0x6f, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x11, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e,
0x67, 0x52, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x3a, 0x6c, 0xea, 0x41, 0x69,
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, 0x46, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x12,
0x37, 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, 0x66, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x66, 0x6f,
0x6c, 0x64, 0x65, 0x72, 0x3d, 0x2a, 0x2a, 0x7d, 0x2a, 0x07, 0x66, 0x6f, 0x6c, 0x64, 0x65, 0x72,
0x73, 0x32, 0x06, 0x66, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x22, 0xb6, 0x02, 0x0a, 0x10, 0x47, 0x65,
0x74, 0x46, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x39,
0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 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, 0x46, 0x6f, 0x6c,
0x64, 0x65, 0x72, 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, 0x03, 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, 0x04, 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, 0x2a, 0x0a, 0x0a, 0x72, 0x65,
0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0b,
0xe0, 0x41, 0x01, 0xe2, 0x8c, 0xcf, 0xd7, 0x08, 0x02, 0x08, 0x01, 0x52, 0x09, 0x72, 0x65, 0x71,
0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 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, 0x85, 0x02, 0x0a, 0x13, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x6c,
0x64, 0x65, 0x72, 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, 0x46, 0x6f, 0x6c, 0x64, 0x65,
0x72, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x3e, 0x0a, 0x06, 0x66, 0x6f, 0x6c,
0x64, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
0x6c, 0x65, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x72,
0x6f, 0x6c, 0x2e, 0x76, 0x32, 0x2e, 0x46, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x42, 0x03, 0xe0, 0x41,
0x02, 0x52, 0x06, 0x66, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x12, 0x20, 0x0a, 0x09, 0x66, 0x6f, 0x6c,
0x64, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41,
0x02, 0x52, 0x08, 0x66, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x09, 0x72,
0x65, 0x63, 0x75, 0x72, 0x73, 0x69, 0x76, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03,
0xe0, 0x41, 0x01, 0x52, 0x09, 0x72, 0x65, 0x63, 0x75, 0x72, 0x73, 0x69, 0x76, 0x65, 0x12, 0x2a,
0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01,
0x28, 0x09, 0x42, 0x0b, 0xe0, 0x41, 0x01, 0xe2, 0x8c, 0xcf, 0xd7, 0x08, 0x02, 0x08, 0x01, 0x52,
0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x22, 0xb9, 0x02, 0x0a, 0x13, 0x44,
0x65, 0x6c, 0x65, 0x74, 0x65, 0x46, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65,
0x73, 0x74, 0x12, 0x39, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 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, 0x46, 0x6f, 0x6c, 0x64, 0x65, 0x72, 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, 0x03, 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, 0x04, 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, 0x2a,
0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01,
0x28, 0x09, 0x42, 0x0b, 0xe0, 0x41, 0x01, 0xe2, 0x8c, 0xcf, 0xd7, 0x08, 0x02, 0x08, 0x01, 0x52,
0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 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, 0xed, 0x02, 0x0a, 0x12, 0x4c, 0x69, 0x73, 0x74, 0x46,
0x6f, 0x6c, 0x64, 0x65, 0x72, 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, 0x46, 0x6f,
0x6c, 0x64, 0x65, 0x72, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x20, 0x0a, 0x09,
0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x42,
0x03, 0xe0, 0x41, 0x01, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x22,
0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01,
0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b,
0x65, 0x6e, 0x12, 0x1b, 0x0a, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x04, 0x20, 0x01,
0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12,
0x21, 0x0a, 0x09, 0x64, 0x65, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01,
0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x64, 0x65, 0x6c, 0x69, 0x6d, 0x69, 0x74,
0x65, 0x72, 0x12, 0x34, 0x0a, 0x13, 0x6c, 0x65, 0x78, 0x69, 0x63, 0x6f, 0x67, 0x72, 0x61, 0x70,
0x68, 0x69, 0x63, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x06, 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, 0x07, 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, 0x2a, 0x0a, 0x0a, 0x72, 0x65,
0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0b,
0xe0, 0x41, 0x01, 0xe2, 0x8c, 0xcf, 0xd7, 0x08, 0x02, 0x08, 0x01, 0x52, 0x09, 0x72, 0x65, 0x71,
0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x22, 0x7a, 0x0a, 0x13, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x6f,
0x6c, 0x64, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3b, 0x0a,
0x07, 0x66, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21,
0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e,
0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x76, 0x32, 0x2e, 0x46, 0x6f, 0x6c, 0x64, 0x65,
0x72, 0x52, 0x07, 0x66, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65,
0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20,
0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b,
0x65, 0x6e, 0x22, 0xf2, 0x02, 0x0a, 0x13, 0x52, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x46, 0x6f, 0x6c,
0x64, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x39, 0x0a, 0x04, 0x6e, 0x61,
0x6d, 0x65, 0x18, 0x07, 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, 0x46, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x52,
0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x37, 0x0a, 0x15, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61,
0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x08,
0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x13, 0x64, 0x65, 0x73, 0x74, 0x69,
0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x49, 0x64, 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,
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, 0x05, 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,
0x2a, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20,
0x01, 0x28, 0x09, 0x42, 0x0b, 0xe0, 0x41, 0x01, 0xe2, 0x8c, 0xcf, 0xd7, 0x08, 0x02, 0x08, 0x01,
0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 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, 0xe9, 0x02, 0x0a, 0x22, 0x43, 0x6f, 0x6d, 0x6d,
0x6f, 0x6e, 0x4c, 0x6f, 0x6e, 0x67, 0x52, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x4f, 0x70, 0x65,
0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x40,
0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 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, 0x42,
0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65,
0x12, 0x3a, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01,
0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74,
0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03,
0xe0, 0x41, 0x03, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x40, 0x0a, 0x0b,
0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28,
0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0,
0x41, 0x03, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x17,
0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41,
0x03, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x3a, 0x0a, 0x16, 0x72, 0x65, 0x71, 0x75, 0x65,
0x73, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x6c, 0x61, 0x74, 0x69, 0x6f,
0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x15, 0x72, 0x65,
0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x6c, 0x61, 0x74,
0x69, 0x6f, 0x6e, 0x12, 0x2e, 0x0a, 0x10, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f,
0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0,
0x41, 0x03, 0x52, 0x0f, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x50, 0x65, 0x72, 0x63,
0x65, 0x6e, 0x74, 0x22, 0xdc, 0x01, 0x0a, 0x14, 0x52, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x46, 0x6f,
0x6c, 0x64, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x66, 0x0a, 0x0f,
0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18,
0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x73,
0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x76,
0x32, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4c, 0x6f, 0x6e, 0x67, 0x52, 0x75, 0x6e, 0x6e,
0x69, 0x6e, 0x67, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61,
0x64, 0x61, 0x74, 0x61, 0x52, 0x0e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61,
0x64, 0x61, 0x74, 0x61, 0x12, 0x28, 0x0a, 0x10, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x66,
0x6f, 0x6c, 0x64, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e,
0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x46, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x49, 0x64, 0x12, 0x32,
0x0a, 0x15, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x6f,
0x6c, 0x64, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x64,
0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x6f, 0x6c, 0x64, 0x65, 0x72,
0x49, 0x64, 0x22, 0xbd, 0x04, 0x0a, 0x0d, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x4c, 0x61,
0x79, 0x6f, 0x75, 0x74, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01,
0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a,
0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42,
0x03, 0xe0, 0x41, 0x03, 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,
0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0c, 0x6c, 0x6f, 0x63, 0x61,
0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x7b, 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, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3e, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
0x6c, 0x65, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x72,
0x6f, 0x6c, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x4c, 0x61, 0x79,
0x6f, 0x75, 0x74, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x50, 0x6c, 0x61, 0x63, 0x65, 0x6d,
0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x15,
0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x50, 0x6c, 0x61, 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x43,
0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x7a, 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,
0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x73,
0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x76,
0x32, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x4c, 0x61, 0x79, 0x6f, 0x75, 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, 0x03, 0x52, 0x15, 0x68, 0x69, 0x65, 0x72,
0x61, 0x72, 0x63, 0x68, 0x69, 0x63, 0x61, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63,
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, 0x31, 0x0a, 0x15, 0x48, 0x69, 0x65, 0x72, 0x61, 0x72, 0x63, 0x68, 0x69, 0x63, 0x61,
0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 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, 0x3a, 0x5c, 0xea, 0x41, 0x59, 0x0a, 0x24, 0x73, 0x74, 0x6f, 0x72, 0x61,
0x67, 0x65, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f,
0x6d, 0x2f, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x4c, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x12,
0x31, 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, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x4c, 0x61, 0x79, 0x6f,
0x75, 0x74, 0x22, 0x9f, 0x01, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67,
0x65, 0x4c, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x40,
0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2c, 0xe0, 0x41,
0x02, 0xfa, 0x41, 0x26, 0x0a, 0x24, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x67, 0x6f,
0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x53, 0x74, 0x6f,
0x72, 0x61, 0x67, 0x65, 0x4c, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65,
0x12, 0x16, 0x0a, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
0x52, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, 0x2a, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75,
0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0b, 0xe0, 0x41,
0x01, 0xe2, 0x8c, 0xcf, 0xd7, 0x08, 0x02, 0x08, 0x01, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65,
0x73, 0x74, 0x49, 0x64, 0x22, 0xed, 0x02, 0x0a, 0x0d, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x64,
0x46, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01,
0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x08, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12,
0x2b, 0x0a, 0x0e, 0x6d, 0x65, 0x74, 0x61, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f,
0x6e, 0x18, 0x03, 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, 0x40, 0x0a, 0x0b,
0x63, 0x72, 0x65, 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, 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, 0x05, 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,
0x3a, 0x91, 0x01, 0xea, 0x41, 0x8d, 0x01, 0x0a, 0x24, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65,
0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f,
0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x64, 0x46, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x12, 0x46, 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, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x64, 0x46, 0x6f, 0x6c, 0x64, 0x65, 0x72,
0x73, 0x2f, 0x7b, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x64, 0x5f, 0x66, 0x6f, 0x6c, 0x64, 0x65,
0x72, 0x3d, 0x2a, 0x2a, 0x7d, 0x2a, 0x0e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x64, 0x46, 0x6f,
0x6c, 0x64, 0x65, 0x72, 0x73, 0x32, 0x0d, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x64, 0x46, 0x6f,
0x6c, 0x64, 0x65, 0x72, 0x22, 0xc4, 0x02, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x4d, 0x61, 0x6e, 0x61,
0x67, 0x65, 0x64, 0x46, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
0x12, 0x40, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2c,
0xe0, 0x41, 0x02, 0xfa, 0x41, 0x26, 0x0a, 0x24, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e,
0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x4d,
0x61, 0x6e, 0x61, 0x67, 0x65, 0x64, 0x46, 0x6f, 0x6c, 0x64, 0x65, 0x72, 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, 0x03, 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, 0x04,
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, 0x2a, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69,
0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0b, 0xe0, 0x41, 0x01, 0xe2, 0x8c, 0xcf, 0xd7,
0x08, 0x02, 0x08, 0x01, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 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, 0x95, 0x02, 0x0a, 0x1a,
0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x64, 0x46, 0x6f, 0x6c,
0x64, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x44, 0x0a, 0x06, 0x70, 0x61,
0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2c, 0xe0, 0x41, 0x02, 0xfa,
0x41, 0x26, 0x12, 0x24, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x4d, 0x61, 0x6e, 0x61, 0x67,
0x65, 0x64, 0x46, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74,
0x12, 0x54, 0x0a, 0x0e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x64, 0x5f, 0x66, 0x6f, 0x6c, 0x64,
0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
0x65, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f,
0x6c, 0x2e, 0x76, 0x32, 0x2e, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x64, 0x46, 0x6f, 0x6c, 0x64,
0x65, 0x72, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0d, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x64,
0x46, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x12, 0x2f, 0x0a, 0x11, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65,
0x64, 0x5f, 0x66, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28,
0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x64, 0x46,
0x6f, 0x6c, 0x64, 0x65, 0x72, 0x49, 0x64, 0x12, 0x2a, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65,
0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0b, 0xe0, 0x41, 0x01,
0xe2, 0x8c, 0xcf, 0xd7, 0x08, 0x02, 0x08, 0x01, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73,
0x74, 0x49, 0x64, 0x22, 0xef, 0x02, 0x0a, 0x1a, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4d, 0x61,
0x6e, 0x61, 0x67, 0x65, 0x64, 0x46, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65,
0x73, 0x74, 0x12, 0x40, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09,
0x42, 0x2c, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x26, 0x0a, 0x24, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67,
0x65, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d,
0x2f, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x64, 0x46, 0x6f, 0x6c, 0x64, 0x65, 0x72, 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,
0x03, 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, 0x04, 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, 0x26, 0x0a, 0x0f, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x6e,
0x6f, 0x6e, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d,
0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x4e, 0x6f, 0x6e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x2a, 0x0a,
0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28,
0x09, 0x42, 0x0b, 0xe0, 0x41, 0x01, 0xe2, 0x8c, 0xcf, 0xd7, 0x08, 0x02, 0x08, 0x01, 0x52, 0x09,
0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 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, 0xf0, 0x01, 0x0a, 0x19, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x61,
0x6e, 0x61, 0x67, 0x65, 0x64, 0x46, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75,
0x65, 0x73, 0x74, 0x12, 0x44, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20,
0x01, 0x28, 0x09, 0x42, 0x2c, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x26, 0x12, 0x24, 0x73, 0x74, 0x6f,
0x72, 0x61, 0x67, 0x65, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e,
0x63, 0x6f, 0x6d, 0x2f, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x64, 0x46, 0x6f, 0x6c, 0x64, 0x65,
0x72, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x20, 0x0a, 0x09, 0x70, 0x61, 0x67,
0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41,
0x01, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x22, 0x0a, 0x0a, 0x70,
0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42,
0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12,
0x1b, 0x0a, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42,
0x03, 0xe0, 0x41, 0x01, 0x52, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, 0x2a, 0x0a, 0x0a,
0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09,
0x42, 0x0b, 0xe0, 0x41, 0x01, 0xe2, 0x8c, 0xcf, 0xd7, 0x08, 0x02, 0x08, 0x01, 0x52, 0x09, 0x72,
0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x22, 0x97, 0x01, 0x0a, 0x1a, 0x4c, 0x69, 0x73,
0x74, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x64, 0x46, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x73, 0x52,
0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x51, 0x0a, 0x0f, 0x6d, 0x61, 0x6e, 0x61, 0x67,
0x65, 0x64, 0x5f, 0x66, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b,
0x32, 0x28, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67,
0x65, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x76, 0x32, 0x2e, 0x4d, 0x61, 0x6e,
0x61, 0x67, 0x65, 0x64, 0x46, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x52, 0x0e, 0x6d, 0x61, 0x6e, 0x61,
0x67, 0x65, 0x64, 0x46, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65,
0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20,
0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b,
0x65, 0x6e, 0x32, 0xcd, 0x0f, 0x0a, 0x0e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x43, 0x6f,
0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x12, 0x9a, 0x01, 0x0a, 0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65,
0x46, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x12, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e,
0x76, 0x32, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x6c, 0x64, 0x65, 0x72, 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, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e,
0x76, 0x32, 0x2e, 0x46, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x22, 0x37, 0xda, 0x41, 0x17, 0x70, 0x61,
0x72, 0x65, 0x6e, 0x74, 0x2c, 0x66, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x2c, 0x66, 0x6f, 0x6c, 0x64,
0x65, 0x72, 0x5f, 0x69, 0x64, 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, 0x8f, 0x01, 0x0a, 0x0c, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x46, 0x6f, 0x6c,
0x64, 0x65, 0x72, 0x12, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x73, 0x74, 0x6f,
0x72, 0x61, 0x67, 0x65, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x76, 0x32, 0x2e,
0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x46, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75,
0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f,
0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 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, 0x94, 0x01, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x46, 0x6f, 0x6c, 0x64,
0x65, 0x72, 0x12, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x73, 0x74, 0x6f, 0x72,
0x61, 0x67, 0x65, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x76, 0x32, 0x2e, 0x47,
0x65, 0x74, 0x46, 0x6f, 0x6c, 0x64, 0x65, 0x72, 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, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x76, 0x32, 0x2e, 0x46, 0x6f, 0x6c, 0x64,
0x65, 0x72, 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, 0x94, 0x01, 0x0a, 0x0b,
0x4c, 0x69, 0x73, 0x74, 0x46, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x73, 0x12, 0x2d, 0x2e, 0x67, 0x6f,
0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x63, 0x6f, 0x6e,
0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x76, 0x32, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x6f, 0x6c, 0x64,
0x65, 0x72, 0x73, 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, 0x63, 0x6f, 0x6e, 0x74,
0x72, 0x6f, 0x6c, 0x2e, 0x76, 0x32, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x6f, 0x6c, 0x64, 0x65,
0x72, 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, 0xcd, 0x01, 0x0a, 0x0c, 0x52, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x46, 0x6f, 0x6c,
0x64, 0x65, 0x72, 0x12, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x73, 0x74, 0x6f,
0x72, 0x61, 0x67, 0x65, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x76, 0x32, 0x2e,
0x52, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x46, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75,
0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e,
0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69,
0x6f, 0x6e, 0x22, 0x6e, 0xca, 0x41, 0x1e, 0x0a, 0x06, 0x46, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x12,
0x14, 0x52, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x46, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x4d, 0x65, 0x74,
0x61, 0x64, 0x61, 0x74, 0x61, 0xda, 0x41, 0x1a, 0x6e, 0x61, 0x6d, 0x65, 0x2c, 0x64, 0x65, 0x73,
0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x5f,
0x69, 0x64, 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, 0xa9, 0x01, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67,
0x65, 0x4c, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x12, 0x32, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c,
0x2e, 0x76, 0x32, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x4c, 0x61,
0x79, 0x6f, 0x75, 0x74, 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, 0x63, 0x6f, 0x6e,
0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x4c,
0x61, 0x79, 0x6f, 0x75, 0x74, 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, 0xbf,
0x01, 0x0a, 0x13, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x64,
0x46, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x12, 0x35, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e,
0x76, 0x32, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x64,
0x46, 0x6f, 0x6c, 0x64, 0x65, 0x72, 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, 0x63,
0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x76, 0x32, 0x2e, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65,
0x64, 0x46, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x22, 0x47, 0xda, 0x41, 0x27, 0x70, 0x61, 0x72, 0x65,
0x6e, 0x74, 0x2c, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x64, 0x5f, 0x66, 0x6f, 0x6c, 0x64, 0x65,
0x72, 0x2c, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x64, 0x5f, 0x66, 0x6f, 0x6c, 0x64, 0x65, 0x72,
0x5f, 0x69, 0x64, 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, 0x9d, 0x01, 0x0a, 0x13, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4d, 0x61, 0x6e, 0x61, 0x67,
0x65, 0x64, 0x46, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x12, 0x35, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
0x65, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f,
0x6c, 0x2e, 0x76, 0x32, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4d, 0x61, 0x6e, 0x61, 0x67,
0x65, 0x64, 0x46, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75,
0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 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, 0xa9, 0x01, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x64, 0x46,
0x6f, 0x6c, 0x64, 0x65, 0x72, 0x12, 0x32, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x73,
0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x76,
0x32, 0x2e, 0x47, 0x65, 0x74, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x64, 0x46, 0x6f, 0x6c, 0x64,
0x65, 0x72, 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, 0x63, 0x6f, 0x6e, 0x74, 0x72,
0x6f, 0x6c, 0x2e, 0x76, 0x32, 0x2e, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x64, 0x46, 0x6f, 0x6c,
0x64, 0x65, 0x72, 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, 0xa9, 0x01, 0x0a,
0x12, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x64, 0x46, 0x6f, 0x6c, 0x64,
0x65, 0x72, 0x73, 0x12, 0x34, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x73, 0x74, 0x6f,
0x72, 0x61, 0x67, 0x65, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x76, 0x32, 0x2e,
0x4c, 0x69, 0x73, 0x74, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x64, 0x46, 0x6f, 0x6c, 0x64, 0x65,
0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
0x6c, 0x65, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x72,
0x6f, 0x6c, 0x2e, 0x76, 0x32, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65,
0x64, 0x46, 0x6f, 0x6c, 0x64, 0x65, 0x72, 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, 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, 0xa6, 0x02, 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, 0x0a, 0x1d, 0x63, 0x6f,
0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65,
0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x76, 0x32, 0x42, 0x13, 0x53, 0x74, 0x6f,
0x72, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x50, 0x72, 0x6f, 0x74, 0x6f,
0x50, 0x01, 0x5a, 0x3d, 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,
0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2f, 0x61, 0x70, 0x69, 0x76, 0x32, 0x2f, 0x63, 0x6f,
0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x70, 0x62, 0x3b, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x70,
0x62, 0xaa, 0x02, 0x1f, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64,
0x2e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c,
0x2e, 0x56, 0x32, 0xca, 0x02, 0x1f, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5c, 0x43, 0x6c, 0x6f,
0x75, 0x64, 0x5c, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5c, 0x43, 0x6f, 0x6e, 0x74, 0x72,
0x6f, 0x6c, 0x5c, 0x56, 0x32, 0xea, 0x02, 0x23, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x3a, 0x3a,
0x43, 0x6c, 0x6f, 0x75, 0x64, 0x3a, 0x3a, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x3a, 0x3a,
0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x3a, 0x3a, 0x56, 0x32, 0x62, 0x06, 0x70, 0x72, 0x6f,
0x74, 0x6f, 0x33,
}
var (
file_google_storage_control_v2_storage_control_proto_rawDescOnce sync.Once
file_google_storage_control_v2_storage_control_proto_rawDescData = file_google_storage_control_v2_storage_control_proto_rawDesc
)
func file_google_storage_control_v2_storage_control_proto_rawDescGZIP() []byte {
file_google_storage_control_v2_storage_control_proto_rawDescOnce.Do(func() {
file_google_storage_control_v2_storage_control_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_storage_control_v2_storage_control_proto_rawDescData)
})
return file_google_storage_control_v2_storage_control_proto_rawDescData
}
var file_google_storage_control_v2_storage_control_proto_msgTypes = make([]protoimpl.MessageInfo, 20)
var file_google_storage_control_v2_storage_control_proto_goTypes = []interface{}{
(*PendingRenameInfo)(nil), // 0: google.storage.control.v2.PendingRenameInfo
(*Folder)(nil), // 1: google.storage.control.v2.Folder
(*GetFolderRequest)(nil), // 2: google.storage.control.v2.GetFolderRequest
(*CreateFolderRequest)(nil), // 3: google.storage.control.v2.CreateFolderRequest
(*DeleteFolderRequest)(nil), // 4: google.storage.control.v2.DeleteFolderRequest
(*ListFoldersRequest)(nil), // 5: google.storage.control.v2.ListFoldersRequest
(*ListFoldersResponse)(nil), // 6: google.storage.control.v2.ListFoldersResponse
(*RenameFolderRequest)(nil), // 7: google.storage.control.v2.RenameFolderRequest
(*CommonLongRunningOperationMetadata)(nil), // 8: google.storage.control.v2.CommonLongRunningOperationMetadata
(*RenameFolderMetadata)(nil), // 9: google.storage.control.v2.RenameFolderMetadata
(*StorageLayout)(nil), // 10: google.storage.control.v2.StorageLayout
(*GetStorageLayoutRequest)(nil), // 11: google.storage.control.v2.GetStorageLayoutRequest
(*ManagedFolder)(nil), // 12: google.storage.control.v2.ManagedFolder
(*GetManagedFolderRequest)(nil), // 13: google.storage.control.v2.GetManagedFolderRequest
(*CreateManagedFolderRequest)(nil), // 14: google.storage.control.v2.CreateManagedFolderRequest
(*DeleteManagedFolderRequest)(nil), // 15: google.storage.control.v2.DeleteManagedFolderRequest
(*ListManagedFoldersRequest)(nil), // 16: google.storage.control.v2.ListManagedFoldersRequest
(*ListManagedFoldersResponse)(nil), // 17: google.storage.control.v2.ListManagedFoldersResponse
(*StorageLayout_CustomPlacementConfig)(nil), // 18: google.storage.control.v2.StorageLayout.CustomPlacementConfig
(*StorageLayout_HierarchicalNamespace)(nil), // 19: google.storage.control.v2.StorageLayout.HierarchicalNamespace
(*timestamppb.Timestamp)(nil), // 20: google.protobuf.Timestamp
(*emptypb.Empty)(nil), // 21: google.protobuf.Empty
(*longrunningpb.Operation)(nil), // 22: google.longrunning.Operation
}
var file_google_storage_control_v2_storage_control_proto_depIdxs = []int32{
20, // 0: google.storage.control.v2.Folder.create_time:type_name -> google.protobuf.Timestamp
20, // 1: google.storage.control.v2.Folder.update_time:type_name -> google.protobuf.Timestamp
0, // 2: google.storage.control.v2.Folder.pending_rename_info:type_name -> google.storage.control.v2.PendingRenameInfo
1, // 3: google.storage.control.v2.CreateFolderRequest.folder:type_name -> google.storage.control.v2.Folder
1, // 4: google.storage.control.v2.ListFoldersResponse.folders:type_name -> google.storage.control.v2.Folder
20, // 5: google.storage.control.v2.CommonLongRunningOperationMetadata.create_time:type_name -> google.protobuf.Timestamp
20, // 6: google.storage.control.v2.CommonLongRunningOperationMetadata.end_time:type_name -> google.protobuf.Timestamp
20, // 7: google.storage.control.v2.CommonLongRunningOperationMetadata.update_time:type_name -> google.protobuf.Timestamp
8, // 8: google.storage.control.v2.RenameFolderMetadata.common_metadata:type_name -> google.storage.control.v2.CommonLongRunningOperationMetadata
18, // 9: google.storage.control.v2.StorageLayout.custom_placement_config:type_name -> google.storage.control.v2.StorageLayout.CustomPlacementConfig
19, // 10: google.storage.control.v2.StorageLayout.hierarchical_namespace:type_name -> google.storage.control.v2.StorageLayout.HierarchicalNamespace
20, // 11: google.storage.control.v2.ManagedFolder.create_time:type_name -> google.protobuf.Timestamp
20, // 12: google.storage.control.v2.ManagedFolder.update_time:type_name -> google.protobuf.Timestamp
12, // 13: google.storage.control.v2.CreateManagedFolderRequest.managed_folder:type_name -> google.storage.control.v2.ManagedFolder
12, // 14: google.storage.control.v2.ListManagedFoldersResponse.managed_folders:type_name -> google.storage.control.v2.ManagedFolder
3, // 15: google.storage.control.v2.StorageControl.CreateFolder:input_type -> google.storage.control.v2.CreateFolderRequest
4, // 16: google.storage.control.v2.StorageControl.DeleteFolder:input_type -> google.storage.control.v2.DeleteFolderRequest
2, // 17: google.storage.control.v2.StorageControl.GetFolder:input_type -> google.storage.control.v2.GetFolderRequest
5, // 18: google.storage.control.v2.StorageControl.ListFolders:input_type -> google.storage.control.v2.ListFoldersRequest
7, // 19: google.storage.control.v2.StorageControl.RenameFolder:input_type -> google.storage.control.v2.RenameFolderRequest
11, // 20: google.storage.control.v2.StorageControl.GetStorageLayout:input_type -> google.storage.control.v2.GetStorageLayoutRequest
14, // 21: google.storage.control.v2.StorageControl.CreateManagedFolder:input_type -> google.storage.control.v2.CreateManagedFolderRequest
15, // 22: google.storage.control.v2.StorageControl.DeleteManagedFolder:input_type -> google.storage.control.v2.DeleteManagedFolderRequest
13, // 23: google.storage.control.v2.StorageControl.GetManagedFolder:input_type -> google.storage.control.v2.GetManagedFolderRequest
16, // 24: google.storage.control.v2.StorageControl.ListManagedFolders:input_type -> google.storage.control.v2.ListManagedFoldersRequest
1, // 25: google.storage.control.v2.StorageControl.CreateFolder:output_type -> google.storage.control.v2.Folder
21, // 26: google.storage.control.v2.StorageControl.DeleteFolder:output_type -> google.protobuf.Empty
1, // 27: google.storage.control.v2.StorageControl.GetFolder:output_type -> google.storage.control.v2.Folder
6, // 28: google.storage.control.v2.StorageControl.ListFolders:output_type -> google.storage.control.v2.ListFoldersResponse
22, // 29: google.storage.control.v2.StorageControl.RenameFolder:output_type -> google.longrunning.Operation
10, // 30: google.storage.control.v2.StorageControl.GetStorageLayout:output_type -> google.storage.control.v2.StorageLayout
12, // 31: google.storage.control.v2.StorageControl.CreateManagedFolder:output_type -> google.storage.control.v2.ManagedFolder
21, // 32: google.storage.control.v2.StorageControl.DeleteManagedFolder:output_type -> google.protobuf.Empty
12, // 33: google.storage.control.v2.StorageControl.GetManagedFolder:output_type -> google.storage.control.v2.ManagedFolder
17, // 34: google.storage.control.v2.StorageControl.ListManagedFolders:output_type -> google.storage.control.v2.ListManagedFoldersResponse
25, // [25:35] is the sub-list for method output_type
15, // [15:25] is the sub-list for method input_type
15, // [15:15] is the sub-list for extension type_name
15, // [15:15] is the sub-list for extension extendee
0, // [0:15] is the sub-list for field type_name
}
func init() { file_google_storage_control_v2_storage_control_proto_init() }
func file_google_storage_control_v2_storage_control_proto_init() {
if File_google_storage_control_v2_storage_control_proto != nil {
return
}
if !protoimpl.UnsafeEnabled {
file_google_storage_control_v2_storage_control_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*PendingRenameInfo); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_google_storage_control_v2_storage_control_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Folder); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_google_storage_control_v2_storage_control_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*GetFolderRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_google_storage_control_v2_storage_control_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*CreateFolderRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_google_storage_control_v2_storage_control_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*DeleteFolderRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_google_storage_control_v2_storage_control_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ListFoldersRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_google_storage_control_v2_storage_control_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ListFoldersResponse); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_google_storage_control_v2_storage_control_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*RenameFolderRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_google_storage_control_v2_storage_control_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*CommonLongRunningOperationMetadata); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_google_storage_control_v2_storage_control_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*RenameFolderMetadata); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_google_storage_control_v2_storage_control_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*StorageLayout); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_google_storage_control_v2_storage_control_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*GetStorageLayoutRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_google_storage_control_v2_storage_control_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ManagedFolder); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_google_storage_control_v2_storage_control_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*GetManagedFolderRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_google_storage_control_v2_storage_control_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*CreateManagedFolderRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_google_storage_control_v2_storage_control_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*DeleteManagedFolderRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_google_storage_control_v2_storage_control_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ListManagedFoldersRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_google_storage_control_v2_storage_control_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ListManagedFoldersResponse); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_google_storage_control_v2_storage_control_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*StorageLayout_CustomPlacementConfig); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_google_storage_control_v2_storage_control_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*StorageLayout_HierarchicalNamespace); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
}
file_google_storage_control_v2_storage_control_proto_msgTypes[2].OneofWrappers = []interface{}{}
file_google_storage_control_v2_storage_control_proto_msgTypes[4].OneofWrappers = []interface{}{}
file_google_storage_control_v2_storage_control_proto_msgTypes[7].OneofWrappers = []interface{}{}
file_google_storage_control_v2_storage_control_proto_msgTypes[13].OneofWrappers = []interface{}{}
file_google_storage_control_v2_storage_control_proto_msgTypes[15].OneofWrappers = []interface{}{}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_google_storage_control_v2_storage_control_proto_rawDesc,
NumEnums: 0,
NumMessages: 20,
NumExtensions: 0,
NumServices: 1,
},
GoTypes: file_google_storage_control_v2_storage_control_proto_goTypes,
DependencyIndexes: file_google_storage_control_v2_storage_control_proto_depIdxs,
MessageInfos: file_google_storage_control_v2_storage_control_proto_msgTypes,
}.Build()
File_google_storage_control_v2_storage_control_proto = out.File
file_google_storage_control_v2_storage_control_proto_rawDesc = nil
file_google_storage_control_v2_storage_control_proto_goTypes = nil
file_google_storage_control_v2_storage_control_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
// StorageControlClient is the client API for StorageControl service.
//
// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
type StorageControlClient interface {
// Creates a new folder. This operation is only applicable to a hierarchical
// namespace enabled bucket.
// Hierarchical namespace buckets are in allowlist preview.
CreateFolder(ctx context.Context, in *CreateFolderRequest, opts ...grpc.CallOption) (*Folder, error)
// Permanently deletes an empty folder. This operation is only applicable to a
// hierarchical namespace enabled bucket.
// Hierarchical namespace buckets are in allowlist preview.
DeleteFolder(ctx context.Context, in *DeleteFolderRequest, opts ...grpc.CallOption) (*emptypb.Empty, error)
// Returns metadata for the specified folder. This operation is only
// applicable to a hierarchical namespace enabled bucket.
// Hierarchical namespace buckets are in allowlist preview.
GetFolder(ctx context.Context, in *GetFolderRequest, opts ...grpc.CallOption) (*Folder, error)
// Retrieves a list of folders. This operation is only applicable to a
// hierarchical namespace enabled bucket.
// Hierarchical namespace buckets are in allowlist preview.
ListFolders(ctx context.Context, in *ListFoldersRequest, opts ...grpc.CallOption) (*ListFoldersResponse, error)
// Renames a source folder to a destination folder. This operation is only
// applicable to a hierarchical namespace enabled bucket. During a rename, the
// source and destination folders are locked until the long running operation
// completes.
// Hierarchical namespace buckets are in allowlist preview.
RenameFolder(ctx context.Context, in *RenameFolderRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error)
// Returns the storage layout configuration for a given bucket.
GetStorageLayout(ctx context.Context, in *GetStorageLayoutRequest, opts ...grpc.CallOption) (*StorageLayout, error)
// Creates a new managed folder.
CreateManagedFolder(ctx context.Context, in *CreateManagedFolderRequest, opts ...grpc.CallOption) (*ManagedFolder, error)
// Permanently deletes an empty managed folder.
DeleteManagedFolder(ctx context.Context, in *DeleteManagedFolderRequest, opts ...grpc.CallOption) (*emptypb.Empty, error)
// Returns metadata for the specified managed folder.
GetManagedFolder(ctx context.Context, in *GetManagedFolderRequest, opts ...grpc.CallOption) (*ManagedFolder, error)
// Retrieves a list of managed folders for a given bucket.
ListManagedFolders(ctx context.Context, in *ListManagedFoldersRequest, opts ...grpc.CallOption) (*ListManagedFoldersResponse, error)
}
type storageControlClient struct {
cc grpc.ClientConnInterface
}
func NewStorageControlClient(cc grpc.ClientConnInterface) StorageControlClient {
return &storageControlClient{cc}
}
func (c *storageControlClient) CreateFolder(ctx context.Context, in *CreateFolderRequest, opts ...grpc.CallOption) (*Folder, error) {
out := new(Folder)
err := c.cc.Invoke(ctx, "/google.storage.control.v2.StorageControl/CreateFolder", in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *storageControlClient) DeleteFolder(ctx context.Context, in *DeleteFolderRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) {
out := new(emptypb.Empty)
err := c.cc.Invoke(ctx, "/google.storage.control.v2.StorageControl/DeleteFolder", in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *storageControlClient) GetFolder(ctx context.Context, in *GetFolderRequest, opts ...grpc.CallOption) (*Folder, error) {
out := new(Folder)
err := c.cc.Invoke(ctx, "/google.storage.control.v2.StorageControl/GetFolder", in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *storageControlClient) ListFolders(ctx context.Context, in *ListFoldersRequest, opts ...grpc.CallOption) (*ListFoldersResponse, error) {
out := new(ListFoldersResponse)
err := c.cc.Invoke(ctx, "/google.storage.control.v2.StorageControl/ListFolders", in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *storageControlClient) RenameFolder(ctx context.Context, in *RenameFolderRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) {
out := new(longrunningpb.Operation)
err := c.cc.Invoke(ctx, "/google.storage.control.v2.StorageControl/RenameFolder", in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *storageControlClient) GetStorageLayout(ctx context.Context, in *GetStorageLayoutRequest, opts ...grpc.CallOption) (*StorageLayout, error) {
out := new(StorageLayout)
err := c.cc.Invoke(ctx, "/google.storage.control.v2.StorageControl/GetStorageLayout", in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *storageControlClient) CreateManagedFolder(ctx context.Context, in *CreateManagedFolderRequest, opts ...grpc.CallOption) (*ManagedFolder, error) {
out := new(ManagedFolder)
err := c.cc.Invoke(ctx, "/google.storage.control.v2.StorageControl/CreateManagedFolder", in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *storageControlClient) DeleteManagedFolder(ctx context.Context, in *DeleteManagedFolderRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) {
out := new(emptypb.Empty)
err := c.cc.Invoke(ctx, "/google.storage.control.v2.StorageControl/DeleteManagedFolder", in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *storageControlClient) GetManagedFolder(ctx context.Context, in *GetManagedFolderRequest, opts ...grpc.CallOption) (*ManagedFolder, error) {
out := new(ManagedFolder)
err := c.cc.Invoke(ctx, "/google.storage.control.v2.StorageControl/GetManagedFolder", in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *storageControlClient) ListManagedFolders(ctx context.Context, in *ListManagedFoldersRequest, opts ...grpc.CallOption) (*ListManagedFoldersResponse, error) {
out := new(ListManagedFoldersResponse)
err := c.cc.Invoke(ctx, "/google.storage.control.v2.StorageControl/ListManagedFolders", in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
// StorageControlServer is the server API for StorageControl service.
type StorageControlServer interface {
// Creates a new folder. This operation is only applicable to a hierarchical
// namespace enabled bucket.
// Hierarchical namespace buckets are in allowlist preview.
CreateFolder(context.Context, *CreateFolderRequest) (*Folder, error)
// Permanently deletes an empty folder. This operation is only applicable to a
// hierarchical namespace enabled bucket.
// Hierarchical namespace buckets are in allowlist preview.
DeleteFolder(context.Context, *DeleteFolderRequest) (*emptypb.Empty, error)
// Returns metadata for the specified folder. This operation is only
// applicable to a hierarchical namespace enabled bucket.
// Hierarchical namespace buckets are in allowlist preview.
GetFolder(context.Context, *GetFolderRequest) (*Folder, error)
// Retrieves a list of folders. This operation is only applicable to a
// hierarchical namespace enabled bucket.
// Hierarchical namespace buckets are in allowlist preview.
ListFolders(context.Context, *ListFoldersRequest) (*ListFoldersResponse, error)
// Renames a source folder to a destination folder. This operation is only
// applicable to a hierarchical namespace enabled bucket. During a rename, the
// source and destination folders are locked until the long running operation
// completes.
// Hierarchical namespace buckets are in allowlist preview.
RenameFolder(context.Context, *RenameFolderRequest) (*longrunningpb.Operation, error)
// Returns the storage layout configuration for a given bucket.
GetStorageLayout(context.Context, *GetStorageLayoutRequest) (*StorageLayout, error)
// Creates a new managed folder.
CreateManagedFolder(context.Context, *CreateManagedFolderRequest) (*ManagedFolder, error)
// Permanently deletes an empty managed folder.
DeleteManagedFolder(context.Context, *DeleteManagedFolderRequest) (*emptypb.Empty, error)
// Returns metadata for the specified managed folder.
GetManagedFolder(context.Context, *GetManagedFolderRequest) (*ManagedFolder, error)
// Retrieves a list of managed folders for a given bucket.
ListManagedFolders(context.Context, *ListManagedFoldersRequest) (*ListManagedFoldersResponse, error)
}
// UnimplementedStorageControlServer can be embedded to have forward compatible implementations.
type UnimplementedStorageControlServer struct {
}
func (*UnimplementedStorageControlServer) CreateFolder(context.Context, *CreateFolderRequest) (*Folder, error) {
return nil, status.Errorf(codes.Unimplemented, "method CreateFolder not implemented")
}
func (*UnimplementedStorageControlServer) DeleteFolder(context.Context, *DeleteFolderRequest) (*emptypb.Empty, error) {
return nil, status.Errorf(codes.Unimplemented, "method DeleteFolder not implemented")
}
func (*UnimplementedStorageControlServer) GetFolder(context.Context, *GetFolderRequest) (*Folder, error) {
return nil, status.Errorf(codes.Unimplemented, "method GetFolder not implemented")
}
func (*UnimplementedStorageControlServer) ListFolders(context.Context, *ListFoldersRequest) (*ListFoldersResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method ListFolders not implemented")
}
func (*UnimplementedStorageControlServer) RenameFolder(context.Context, *RenameFolderRequest) (*longrunningpb.Operation, error) {
return nil, status.Errorf(codes.Unimplemented, "method RenameFolder not implemented")
}
func (*UnimplementedStorageControlServer) GetStorageLayout(context.Context, *GetStorageLayoutRequest) (*StorageLayout, error) {
return nil, status.Errorf(codes.Unimplemented, "method GetStorageLayout not implemented")
}
func (*UnimplementedStorageControlServer) CreateManagedFolder(context.Context, *CreateManagedFolderRequest) (*ManagedFolder, error) {
return nil, status.Errorf(codes.Unimplemented, "method CreateManagedFolder not implemented")
}
func (*UnimplementedStorageControlServer) DeleteManagedFolder(context.Context, *DeleteManagedFolderRequest) (*emptypb.Empty, error) {
return nil, status.Errorf(codes.Unimplemented, "method DeleteManagedFolder not implemented")
}
func (*UnimplementedStorageControlServer) GetManagedFolder(context.Context, *GetManagedFolderRequest) (*ManagedFolder, error) {
return nil, status.Errorf(codes.Unimplemented, "method GetManagedFolder not implemented")
}
func (*UnimplementedStorageControlServer) ListManagedFolders(context.Context, *ListManagedFoldersRequest) (*ListManagedFoldersResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method ListManagedFolders not implemented")
}
func RegisterStorageControlServer(s *grpc.Server, srv StorageControlServer) {
s.RegisterService(&_StorageControl_serviceDesc, srv)
}
func _StorageControl_CreateFolder_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(CreateFolderRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(StorageControlServer).CreateFolder(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/google.storage.control.v2.StorageControl/CreateFolder",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(StorageControlServer).CreateFolder(ctx, req.(*CreateFolderRequest))
}
return interceptor(ctx, in, info, handler)
}
func _StorageControl_DeleteFolder_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(DeleteFolderRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(StorageControlServer).DeleteFolder(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/google.storage.control.v2.StorageControl/DeleteFolder",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(StorageControlServer).DeleteFolder(ctx, req.(*DeleteFolderRequest))
}
return interceptor(ctx, in, info, handler)
}
func _StorageControl_GetFolder_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(GetFolderRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(StorageControlServer).GetFolder(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/google.storage.control.v2.StorageControl/GetFolder",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(StorageControlServer).GetFolder(ctx, req.(*GetFolderRequest))
}
return interceptor(ctx, in, info, handler)
}
func _StorageControl_ListFolders_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(ListFoldersRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(StorageControlServer).ListFolders(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/google.storage.control.v2.StorageControl/ListFolders",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(StorageControlServer).ListFolders(ctx, req.(*ListFoldersRequest))
}
return interceptor(ctx, in, info, handler)
}
func _StorageControl_RenameFolder_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(RenameFolderRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(StorageControlServer).RenameFolder(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/google.storage.control.v2.StorageControl/RenameFolder",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(StorageControlServer).RenameFolder(ctx, req.(*RenameFolderRequest))
}
return interceptor(ctx, in, info, handler)
}
func _StorageControl_GetStorageLayout_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(GetStorageLayoutRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(StorageControlServer).GetStorageLayout(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/google.storage.control.v2.StorageControl/GetStorageLayout",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(StorageControlServer).GetStorageLayout(ctx, req.(*GetStorageLayoutRequest))
}
return interceptor(ctx, in, info, handler)
}
func _StorageControl_CreateManagedFolder_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(CreateManagedFolderRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(StorageControlServer).CreateManagedFolder(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/google.storage.control.v2.StorageControl/CreateManagedFolder",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(StorageControlServer).CreateManagedFolder(ctx, req.(*CreateManagedFolderRequest))
}
return interceptor(ctx, in, info, handler)
}
func _StorageControl_DeleteManagedFolder_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(DeleteManagedFolderRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(StorageControlServer).DeleteManagedFolder(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/google.storage.control.v2.StorageControl/DeleteManagedFolder",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(StorageControlServer).DeleteManagedFolder(ctx, req.(*DeleteManagedFolderRequest))
}
return interceptor(ctx, in, info, handler)
}
func _StorageControl_GetManagedFolder_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(GetManagedFolderRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(StorageControlServer).GetManagedFolder(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/google.storage.control.v2.StorageControl/GetManagedFolder",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(StorageControlServer).GetManagedFolder(ctx, req.(*GetManagedFolderRequest))
}
return interceptor(ctx, in, info, handler)
}
func _StorageControl_ListManagedFolders_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(ListManagedFoldersRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(StorageControlServer).ListManagedFolders(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/google.storage.control.v2.StorageControl/ListManagedFolders",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(StorageControlServer).ListManagedFolders(ctx, req.(*ListManagedFoldersRequest))
}
return interceptor(ctx, in, info, handler)
}
var _StorageControl_serviceDesc = grpc.ServiceDesc{
ServiceName: "google.storage.control.v2.StorageControl",
HandlerType: (*StorageControlServer)(nil),
Methods: []grpc.MethodDesc{
{
MethodName: "CreateFolder",
Handler: _StorageControl_CreateFolder_Handler,
},
{
MethodName: "DeleteFolder",
Handler: _StorageControl_DeleteFolder_Handler,
},
{
MethodName: "GetFolder",
Handler: _StorageControl_GetFolder_Handler,
},
{
MethodName: "ListFolders",
Handler: _StorageControl_ListFolders_Handler,
},
{
MethodName: "RenameFolder",
Handler: _StorageControl_RenameFolder_Handler,
},
{
MethodName: "GetStorageLayout",
Handler: _StorageControl_GetStorageLayout_Handler,
},
{
MethodName: "CreateManagedFolder",
Handler: _StorageControl_CreateManagedFolder_Handler,
},
{
MethodName: "DeleteManagedFolder",
Handler: _StorageControl_DeleteManagedFolder_Handler,
},
{
MethodName: "GetManagedFolder",
Handler: _StorageControl_GetManagedFolder_Handler,
},
{
MethodName: "ListManagedFolders",
Handler: _StorageControl_ListManagedFolders_Handler,
},
},
Streams: []grpc.StreamDesc{},
Metadata: "google/storage/control/v2/storage_control.proto",
}