// 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.26.0 // protoc v4.24.4 // source: google/bigtable/admin/v2/table.proto package admin import ( reflect "reflect" sync "sync" _ "google.golang.org/genproto/googleapis/api/annotations" status "google.golang.org/genproto/googleapis/rpc/status" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" durationpb "google.golang.org/protobuf/types/known/durationpb" 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) ) // Indicates the type of the restore source. type RestoreSourceType int32 const ( // No restore associated. RestoreSourceType_RESTORE_SOURCE_TYPE_UNSPECIFIED RestoreSourceType = 0 // A backup was used as the source of the restore. RestoreSourceType_BACKUP RestoreSourceType = 1 ) // Enum value maps for RestoreSourceType. var ( RestoreSourceType_name = map[int32]string{ 0: "RESTORE_SOURCE_TYPE_UNSPECIFIED", 1: "BACKUP", } RestoreSourceType_value = map[string]int32{ "RESTORE_SOURCE_TYPE_UNSPECIFIED": 0, "BACKUP": 1, } ) func (x RestoreSourceType) Enum() *RestoreSourceType { p := new(RestoreSourceType) *p = x return p } func (x RestoreSourceType) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (RestoreSourceType) Descriptor() protoreflect.EnumDescriptor { return file_google_bigtable_admin_v2_table_proto_enumTypes[0].Descriptor() } func (RestoreSourceType) Type() protoreflect.EnumType { return &file_google_bigtable_admin_v2_table_proto_enumTypes[0] } func (x RestoreSourceType) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use RestoreSourceType.Descriptor instead. func (RestoreSourceType) EnumDescriptor() ([]byte, []int) { return file_google_bigtable_admin_v2_table_proto_rawDescGZIP(), []int{0} } // Possible timestamp granularities to use when keeping multiple versions // of data in a table. type Table_TimestampGranularity int32 const ( // The user did not specify a granularity. Should not be returned. // When specified during table creation, MILLIS will be used. Table_TIMESTAMP_GRANULARITY_UNSPECIFIED Table_TimestampGranularity = 0 // The table keeps data versioned at a granularity of 1ms. Table_MILLIS Table_TimestampGranularity = 1 ) // Enum value maps for Table_TimestampGranularity. var ( Table_TimestampGranularity_name = map[int32]string{ 0: "TIMESTAMP_GRANULARITY_UNSPECIFIED", 1: "MILLIS", } Table_TimestampGranularity_value = map[string]int32{ "TIMESTAMP_GRANULARITY_UNSPECIFIED": 0, "MILLIS": 1, } ) func (x Table_TimestampGranularity) Enum() *Table_TimestampGranularity { p := new(Table_TimestampGranularity) *p = x return p } func (x Table_TimestampGranularity) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (Table_TimestampGranularity) Descriptor() protoreflect.EnumDescriptor { return file_google_bigtable_admin_v2_table_proto_enumTypes[1].Descriptor() } func (Table_TimestampGranularity) Type() protoreflect.EnumType { return &file_google_bigtable_admin_v2_table_proto_enumTypes[1] } func (x Table_TimestampGranularity) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use Table_TimestampGranularity.Descriptor instead. func (Table_TimestampGranularity) EnumDescriptor() ([]byte, []int) { return file_google_bigtable_admin_v2_table_proto_rawDescGZIP(), []int{2, 0} } // Defines a view over a table's fields. type Table_View int32 const ( // Uses the default view for each method as documented in its request. Table_VIEW_UNSPECIFIED Table_View = 0 // Only populates `name`. Table_NAME_ONLY Table_View = 1 // Only populates `name` and fields related to the table's schema. Table_SCHEMA_VIEW Table_View = 2 // Only populates `name` and fields related to the table's replication // state. Table_REPLICATION_VIEW Table_View = 3 // Only populates `name` and fields related to the table's encryption state. Table_ENCRYPTION_VIEW Table_View = 5 // Populates all fields. Table_FULL Table_View = 4 ) // Enum value maps for Table_View. var ( Table_View_name = map[int32]string{ 0: "VIEW_UNSPECIFIED", 1: "NAME_ONLY", 2: "SCHEMA_VIEW", 3: "REPLICATION_VIEW", 5: "ENCRYPTION_VIEW", 4: "FULL", } Table_View_value = map[string]int32{ "VIEW_UNSPECIFIED": 0, "NAME_ONLY": 1, "SCHEMA_VIEW": 2, "REPLICATION_VIEW": 3, "ENCRYPTION_VIEW": 5, "FULL": 4, } ) func (x Table_View) Enum() *Table_View { p := new(Table_View) *p = x return p } func (x Table_View) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (Table_View) Descriptor() protoreflect.EnumDescriptor { return file_google_bigtable_admin_v2_table_proto_enumTypes[2].Descriptor() } func (Table_View) Type() protoreflect.EnumType { return &file_google_bigtable_admin_v2_table_proto_enumTypes[2] } func (x Table_View) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use Table_View.Descriptor instead. func (Table_View) EnumDescriptor() ([]byte, []int) { return file_google_bigtable_admin_v2_table_proto_rawDescGZIP(), []int{2, 1} } // Table replication states. type Table_ClusterState_ReplicationState int32 const ( // The replication state of the table is unknown in this cluster. Table_ClusterState_STATE_NOT_KNOWN Table_ClusterState_ReplicationState = 0 // The cluster was recently created, and the table must finish copying // over pre-existing data from other clusters before it can begin // receiving live replication updates and serving Data API requests. Table_ClusterState_INITIALIZING Table_ClusterState_ReplicationState = 1 // The table is temporarily unable to serve Data API requests from this // cluster due to planned internal maintenance. Table_ClusterState_PLANNED_MAINTENANCE Table_ClusterState_ReplicationState = 2 // The table is temporarily unable to serve Data API requests from this // cluster due to unplanned or emergency maintenance. Table_ClusterState_UNPLANNED_MAINTENANCE Table_ClusterState_ReplicationState = 3 // The table can serve Data API requests from this cluster. Depending on // replication delay, reads may not immediately reflect the state of the // table in other clusters. Table_ClusterState_READY Table_ClusterState_ReplicationState = 4 // The table is fully created and ready for use after a restore, and is // being optimized for performance. When optimizations are complete, the // table will transition to `READY` state. Table_ClusterState_READY_OPTIMIZING Table_ClusterState_ReplicationState = 5 ) // Enum value maps for Table_ClusterState_ReplicationState. var ( Table_ClusterState_ReplicationState_name = map[int32]string{ 0: "STATE_NOT_KNOWN", 1: "INITIALIZING", 2: "PLANNED_MAINTENANCE", 3: "UNPLANNED_MAINTENANCE", 4: "READY", 5: "READY_OPTIMIZING", } Table_ClusterState_ReplicationState_value = map[string]int32{ "STATE_NOT_KNOWN": 0, "INITIALIZING": 1, "PLANNED_MAINTENANCE": 2, "UNPLANNED_MAINTENANCE": 3, "READY": 4, "READY_OPTIMIZING": 5, } ) func (x Table_ClusterState_ReplicationState) Enum() *Table_ClusterState_ReplicationState { p := new(Table_ClusterState_ReplicationState) *p = x return p } func (x Table_ClusterState_ReplicationState) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (Table_ClusterState_ReplicationState) Descriptor() protoreflect.EnumDescriptor { return file_google_bigtable_admin_v2_table_proto_enumTypes[3].Descriptor() } func (Table_ClusterState_ReplicationState) Type() protoreflect.EnumType { return &file_google_bigtable_admin_v2_table_proto_enumTypes[3] } func (x Table_ClusterState_ReplicationState) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use Table_ClusterState_ReplicationState.Descriptor instead. func (Table_ClusterState_ReplicationState) EnumDescriptor() ([]byte, []int) { return file_google_bigtable_admin_v2_table_proto_rawDescGZIP(), []int{2, 0, 0} } // Defines a subset of an AuthorizedView's fields. type AuthorizedView_ResponseView int32 const ( // Uses the default view for each method as documented in the request. AuthorizedView_RESPONSE_VIEW_UNSPECIFIED AuthorizedView_ResponseView = 0 // Only populates `name`. AuthorizedView_NAME_ONLY AuthorizedView_ResponseView = 1 // Only populates the AuthorizedView's basic metadata. This includes: // name, deletion_protection, etag. AuthorizedView_BASIC AuthorizedView_ResponseView = 2 // Populates every fields. AuthorizedView_FULL AuthorizedView_ResponseView = 3 ) // Enum value maps for AuthorizedView_ResponseView. var ( AuthorizedView_ResponseView_name = map[int32]string{ 0: "RESPONSE_VIEW_UNSPECIFIED", 1: "NAME_ONLY", 2: "BASIC", 3: "FULL", } AuthorizedView_ResponseView_value = map[string]int32{ "RESPONSE_VIEW_UNSPECIFIED": 0, "NAME_ONLY": 1, "BASIC": 2, "FULL": 3, } ) func (x AuthorizedView_ResponseView) Enum() *AuthorizedView_ResponseView { p := new(AuthorizedView_ResponseView) *p = x return p } func (x AuthorizedView_ResponseView) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (AuthorizedView_ResponseView) Descriptor() protoreflect.EnumDescriptor { return file_google_bigtable_admin_v2_table_proto_enumTypes[4].Descriptor() } func (AuthorizedView_ResponseView) Type() protoreflect.EnumType { return &file_google_bigtable_admin_v2_table_proto_enumTypes[4] } func (x AuthorizedView_ResponseView) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use AuthorizedView_ResponseView.Descriptor instead. func (AuthorizedView_ResponseView) EnumDescriptor() ([]byte, []int) { return file_google_bigtable_admin_v2_table_proto_rawDescGZIP(), []int{3, 0} } // Possible encryption types for a resource. type EncryptionInfo_EncryptionType int32 const ( // Encryption type was not specified, though data at rest remains encrypted. EncryptionInfo_ENCRYPTION_TYPE_UNSPECIFIED EncryptionInfo_EncryptionType = 0 // The data backing this resource is encrypted at rest with a key that is // fully managed by Google. No key version or status will be populated. // This is the default state. EncryptionInfo_GOOGLE_DEFAULT_ENCRYPTION EncryptionInfo_EncryptionType = 1 // The data backing this resource is encrypted at rest with a key that is // managed by the customer. // The in-use version of the key and its status are populated for // CMEK-protected tables. // CMEK-protected backups are pinned to the key version that was in use at // the time the backup was taken. This key version is populated but its // status is not tracked and is reported as `UNKNOWN`. EncryptionInfo_CUSTOMER_MANAGED_ENCRYPTION EncryptionInfo_EncryptionType = 2 ) // Enum value maps for EncryptionInfo_EncryptionType. var ( EncryptionInfo_EncryptionType_name = map[int32]string{ 0: "ENCRYPTION_TYPE_UNSPECIFIED", 1: "GOOGLE_DEFAULT_ENCRYPTION", 2: "CUSTOMER_MANAGED_ENCRYPTION", } EncryptionInfo_EncryptionType_value = map[string]int32{ "ENCRYPTION_TYPE_UNSPECIFIED": 0, "GOOGLE_DEFAULT_ENCRYPTION": 1, "CUSTOMER_MANAGED_ENCRYPTION": 2, } ) func (x EncryptionInfo_EncryptionType) Enum() *EncryptionInfo_EncryptionType { p := new(EncryptionInfo_EncryptionType) *p = x return p } func (x EncryptionInfo_EncryptionType) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (EncryptionInfo_EncryptionType) Descriptor() protoreflect.EnumDescriptor { return file_google_bigtable_admin_v2_table_proto_enumTypes[5].Descriptor() } func (EncryptionInfo_EncryptionType) Type() protoreflect.EnumType { return &file_google_bigtable_admin_v2_table_proto_enumTypes[5] } func (x EncryptionInfo_EncryptionType) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use EncryptionInfo_EncryptionType.Descriptor instead. func (EncryptionInfo_EncryptionType) EnumDescriptor() ([]byte, []int) { return file_google_bigtable_admin_v2_table_proto_rawDescGZIP(), []int{6, 0} } // Possible states of a snapshot. type Snapshot_State int32 const ( // The state of the snapshot could not be determined. Snapshot_STATE_NOT_KNOWN Snapshot_State = 0 // The snapshot has been successfully created and can serve all requests. Snapshot_READY Snapshot_State = 1 // The snapshot is currently being created, and may be destroyed if the // creation process encounters an error. A snapshot may not be restored to a // table while it is being created. Snapshot_CREATING Snapshot_State = 2 ) // Enum value maps for Snapshot_State. var ( Snapshot_State_name = map[int32]string{ 0: "STATE_NOT_KNOWN", 1: "READY", 2: "CREATING", } Snapshot_State_value = map[string]int32{ "STATE_NOT_KNOWN": 0, "READY": 1, "CREATING": 2, } ) func (x Snapshot_State) Enum() *Snapshot_State { p := new(Snapshot_State) *p = x return p } func (x Snapshot_State) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (Snapshot_State) Descriptor() protoreflect.EnumDescriptor { return file_google_bigtable_admin_v2_table_proto_enumTypes[6].Descriptor() } func (Snapshot_State) Type() protoreflect.EnumType { return &file_google_bigtable_admin_v2_table_proto_enumTypes[6] } func (x Snapshot_State) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use Snapshot_State.Descriptor instead. func (Snapshot_State) EnumDescriptor() ([]byte, []int) { return file_google_bigtable_admin_v2_table_proto_rawDescGZIP(), []int{7, 0} } // Indicates the current state of the backup. type Backup_State int32 const ( // Not specified. Backup_STATE_UNSPECIFIED Backup_State = 0 // The pending backup is still being created. Operations on the // backup may fail with `FAILED_PRECONDITION` in this state. Backup_CREATING Backup_State = 1 // The backup is complete and ready for use. Backup_READY Backup_State = 2 ) // Enum value maps for Backup_State. var ( Backup_State_name = map[int32]string{ 0: "STATE_UNSPECIFIED", 1: "CREATING", 2: "READY", } Backup_State_value = map[string]int32{ "STATE_UNSPECIFIED": 0, "CREATING": 1, "READY": 2, } ) func (x Backup_State) Enum() *Backup_State { p := new(Backup_State) *p = x return p } func (x Backup_State) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (Backup_State) Descriptor() protoreflect.EnumDescriptor { return file_google_bigtable_admin_v2_table_proto_enumTypes[7].Descriptor() } func (Backup_State) Type() protoreflect.EnumType { return &file_google_bigtable_admin_v2_table_proto_enumTypes[7] } func (x Backup_State) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use Backup_State.Descriptor instead. func (Backup_State) EnumDescriptor() ([]byte, []int) { return file_google_bigtable_admin_v2_table_proto_rawDescGZIP(), []int{8, 0} } // Information about a table restore. type RestoreInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The type of the restore source. SourceType RestoreSourceType `protobuf:"varint,1,opt,name=source_type,json=sourceType,proto3,enum=google.bigtable.admin.v2.RestoreSourceType" json:"source_type,omitempty"` // Information about the source used to restore the table. // // Types that are assignable to SourceInfo: // // *RestoreInfo_BackupInfo SourceInfo isRestoreInfo_SourceInfo `protobuf_oneof:"source_info"` } func (x *RestoreInfo) Reset() { *x = RestoreInfo{} if protoimpl.UnsafeEnabled { mi := &file_google_bigtable_admin_v2_table_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *RestoreInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*RestoreInfo) ProtoMessage() {} func (x *RestoreInfo) ProtoReflect() protoreflect.Message { mi := &file_google_bigtable_admin_v2_table_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 RestoreInfo.ProtoReflect.Descriptor instead. func (*RestoreInfo) Descriptor() ([]byte, []int) { return file_google_bigtable_admin_v2_table_proto_rawDescGZIP(), []int{0} } func (x *RestoreInfo) GetSourceType() RestoreSourceType { if x != nil { return x.SourceType } return RestoreSourceType_RESTORE_SOURCE_TYPE_UNSPECIFIED } func (m *RestoreInfo) GetSourceInfo() isRestoreInfo_SourceInfo { if m != nil { return m.SourceInfo } return nil } func (x *RestoreInfo) GetBackupInfo() *BackupInfo { if x, ok := x.GetSourceInfo().(*RestoreInfo_BackupInfo); ok { return x.BackupInfo } return nil } type isRestoreInfo_SourceInfo interface { isRestoreInfo_SourceInfo() } type RestoreInfo_BackupInfo struct { // Information about the backup used to restore the table. The backup // may no longer exist. BackupInfo *BackupInfo `protobuf:"bytes,2,opt,name=backup_info,json=backupInfo,proto3,oneof"` } func (*RestoreInfo_BackupInfo) isRestoreInfo_SourceInfo() {} // Change stream configuration. type ChangeStreamConfig struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // How long the change stream should be retained. Change stream data older // than the retention period will not be returned when reading the change // stream from the table. // Values must be at least 1 day and at most 7 days, and will be truncated to // microsecond granularity. RetentionPeriod *durationpb.Duration `protobuf:"bytes,1,opt,name=retention_period,json=retentionPeriod,proto3" json:"retention_period,omitempty"` } func (x *ChangeStreamConfig) Reset() { *x = ChangeStreamConfig{} if protoimpl.UnsafeEnabled { mi := &file_google_bigtable_admin_v2_table_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ChangeStreamConfig) String() string { return protoimpl.X.MessageStringOf(x) } func (*ChangeStreamConfig) ProtoMessage() {} func (x *ChangeStreamConfig) ProtoReflect() protoreflect.Message { mi := &file_google_bigtable_admin_v2_table_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 ChangeStreamConfig.ProtoReflect.Descriptor instead. func (*ChangeStreamConfig) Descriptor() ([]byte, []int) { return file_google_bigtable_admin_v2_table_proto_rawDescGZIP(), []int{1} } func (x *ChangeStreamConfig) GetRetentionPeriod() *durationpb.Duration { if x != nil { return x.RetentionPeriod } return nil } // A collection of user data indexed by row, column, and timestamp. // Each table is served using the resources of its parent cluster. type Table struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The unique name of the table. Values are of the form // `projects/{project}/instances/{instance}/tables/[_a-zA-Z0-9][-_.a-zA-Z0-9]*`. // Views: `NAME_ONLY`, `SCHEMA_VIEW`, `REPLICATION_VIEW`, `FULL` Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` // Output only. Map from cluster ID to per-cluster table state. // If it could not be determined whether or not the table has data in a // particular cluster (for example, if its zone is unavailable), then // there will be an entry for the cluster with UNKNOWN `replication_status`. // Views: `REPLICATION_VIEW`, `ENCRYPTION_VIEW`, `FULL` ClusterStates map[string]*Table_ClusterState `protobuf:"bytes,2,rep,name=cluster_states,json=clusterStates,proto3" json:"cluster_states,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // The column families configured for this table, mapped by column family ID. // Views: `SCHEMA_VIEW`, `STATS_VIEW`, `FULL` ColumnFamilies map[string]*ColumnFamily `protobuf:"bytes,3,rep,name=column_families,json=columnFamilies,proto3" json:"column_families,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // Immutable. The granularity (i.e. `MILLIS`) at which timestamps are stored // in this table. Timestamps not matching the granularity will be rejected. If // unspecified at creation time, the value will be set to `MILLIS`. Views: // `SCHEMA_VIEW`, `FULL`. Granularity Table_TimestampGranularity `protobuf:"varint,4,opt,name=granularity,proto3,enum=google.bigtable.admin.v2.Table_TimestampGranularity" json:"granularity,omitempty"` // Output only. If this table was restored from another data source (e.g. a // backup), this field will be populated with information about the restore. RestoreInfo *RestoreInfo `protobuf:"bytes,6,opt,name=restore_info,json=restoreInfo,proto3" json:"restore_info,omitempty"` // If specified, enable the change stream on this table. // Otherwise, the change stream is disabled and the change stream is not // retained. ChangeStreamConfig *ChangeStreamConfig `protobuf:"bytes,8,opt,name=change_stream_config,json=changeStreamConfig,proto3" json:"change_stream_config,omitempty"` // Set to true to make the table protected against data loss. i.e. deleting // the following resources through Admin APIs are prohibited: // // * The table. // * The column families in the table. // * The instance containing the table. // // Note one can still delete the data stored in the table through Data APIs. DeletionProtection bool `protobuf:"varint,9,opt,name=deletion_protection,json=deletionProtection,proto3" json:"deletion_protection,omitempty"` // Types that are assignable to AutomatedBackupConfig: // // *Table_AutomatedBackupPolicy_ AutomatedBackupConfig isTable_AutomatedBackupConfig `protobuf_oneof:"automated_backup_config"` } func (x *Table) Reset() { *x = Table{} if protoimpl.UnsafeEnabled { mi := &file_google_bigtable_admin_v2_table_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Table) String() string { return protoimpl.X.MessageStringOf(x) } func (*Table) ProtoMessage() {} func (x *Table) ProtoReflect() protoreflect.Message { mi := &file_google_bigtable_admin_v2_table_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 Table.ProtoReflect.Descriptor instead. func (*Table) Descriptor() ([]byte, []int) { return file_google_bigtable_admin_v2_table_proto_rawDescGZIP(), []int{2} } func (x *Table) GetName() string { if x != nil { return x.Name } return "" } func (x *Table) GetClusterStates() map[string]*Table_ClusterState { if x != nil { return x.ClusterStates } return nil } func (x *Table) GetColumnFamilies() map[string]*ColumnFamily { if x != nil { return x.ColumnFamilies } return nil } func (x *Table) GetGranularity() Table_TimestampGranularity { if x != nil { return x.Granularity } return Table_TIMESTAMP_GRANULARITY_UNSPECIFIED } func (x *Table) GetRestoreInfo() *RestoreInfo { if x != nil { return x.RestoreInfo } return nil } func (x *Table) GetChangeStreamConfig() *ChangeStreamConfig { if x != nil { return x.ChangeStreamConfig } return nil } func (x *Table) GetDeletionProtection() bool { if x != nil { return x.DeletionProtection } return false } func (m *Table) GetAutomatedBackupConfig() isTable_AutomatedBackupConfig { if m != nil { return m.AutomatedBackupConfig } return nil } func (x *Table) GetAutomatedBackupPolicy() *Table_AutomatedBackupPolicy { if x, ok := x.GetAutomatedBackupConfig().(*Table_AutomatedBackupPolicy_); ok { return x.AutomatedBackupPolicy } return nil } type isTable_AutomatedBackupConfig interface { isTable_AutomatedBackupConfig() } type Table_AutomatedBackupPolicy_ struct { // If specified, automated backups are enabled for this table. // Otherwise, automated backups are disabled. AutomatedBackupPolicy *Table_AutomatedBackupPolicy `protobuf:"bytes,13,opt,name=automated_backup_policy,json=automatedBackupPolicy,proto3,oneof"` } func (*Table_AutomatedBackupPolicy_) isTable_AutomatedBackupConfig() {} // AuthorizedViews represent subsets of a particular Cloud Bigtable table. Users // can configure access to each Authorized View independently from the table and // use the existing Data APIs to access the subset of data. type AuthorizedView struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Identifier. The name of this AuthorizedView. // Values are of the form // `projects/{project}/instances/{instance}/tables/{table}/authorizedViews/{authorized_view}` Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` // The type of this AuthorizedView. // // Types that are assignable to AuthorizedView: // // *AuthorizedView_SubsetView_ AuthorizedView isAuthorizedView_AuthorizedView `protobuf_oneof:"authorized_view"` // The etag for this AuthorizedView. // If this is provided on update, it must match the server's etag. The server // returns ABORTED error on a mismatched etag. Etag string `protobuf:"bytes,3,opt,name=etag,proto3" json:"etag,omitempty"` // Set to true to make the AuthorizedView protected against deletion. // The parent Table and containing Instance cannot be deleted if an // AuthorizedView has this bit set. DeletionProtection bool `protobuf:"varint,4,opt,name=deletion_protection,json=deletionProtection,proto3" json:"deletion_protection,omitempty"` } func (x *AuthorizedView) Reset() { *x = AuthorizedView{} if protoimpl.UnsafeEnabled { mi := &file_google_bigtable_admin_v2_table_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *AuthorizedView) String() string { return protoimpl.X.MessageStringOf(x) } func (*AuthorizedView) ProtoMessage() {} func (x *AuthorizedView) ProtoReflect() protoreflect.Message { mi := &file_google_bigtable_admin_v2_table_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 AuthorizedView.ProtoReflect.Descriptor instead. func (*AuthorizedView) Descriptor() ([]byte, []int) { return file_google_bigtable_admin_v2_table_proto_rawDescGZIP(), []int{3} } func (x *AuthorizedView) GetName() string { if x != nil { return x.Name } return "" } func (m *AuthorizedView) GetAuthorizedView() isAuthorizedView_AuthorizedView { if m != nil { return m.AuthorizedView } return nil } func (x *AuthorizedView) GetSubsetView() *AuthorizedView_SubsetView { if x, ok := x.GetAuthorizedView().(*AuthorizedView_SubsetView_); ok { return x.SubsetView } return nil } func (x *AuthorizedView) GetEtag() string { if x != nil { return x.Etag } return "" } func (x *AuthorizedView) GetDeletionProtection() bool { if x != nil { return x.DeletionProtection } return false } type isAuthorizedView_AuthorizedView interface { isAuthorizedView_AuthorizedView() } type AuthorizedView_SubsetView_ struct { // An AuthorizedView permitting access to an explicit subset of a Table. SubsetView *AuthorizedView_SubsetView `protobuf:"bytes,2,opt,name=subset_view,json=subsetView,proto3,oneof"` } func (*AuthorizedView_SubsetView_) isAuthorizedView_AuthorizedView() {} // A set of columns within a table which share a common configuration. type ColumnFamily struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Garbage collection rule specified as a protobuf. // Must serialize to at most 500 bytes. // // NOTE: Garbage collection executes opportunistically in the background, and // so it's possible for reads to return a cell even if it matches the active // GC expression for its family. GcRule *GcRule `protobuf:"bytes,1,opt,name=gc_rule,json=gcRule,proto3" json:"gc_rule,omitempty"` // The type of data stored in each of this family's cell values, including its // full encoding. If omitted, the family only serves raw untyped bytes. // // For now, only the `Aggregate` type is supported. // // `Aggregate` can only be set at family creation and is immutable afterwards. // // If `value_type` is `Aggregate`, written data must be compatible with: // - `value_type.input_type` for `AddInput` mutations ValueType *Type `protobuf:"bytes,3,opt,name=value_type,json=valueType,proto3" json:"value_type,omitempty"` } func (x *ColumnFamily) Reset() { *x = ColumnFamily{} if protoimpl.UnsafeEnabled { mi := &file_google_bigtable_admin_v2_table_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ColumnFamily) String() string { return protoimpl.X.MessageStringOf(x) } func (*ColumnFamily) ProtoMessage() {} func (x *ColumnFamily) ProtoReflect() protoreflect.Message { mi := &file_google_bigtable_admin_v2_table_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 ColumnFamily.ProtoReflect.Descriptor instead. func (*ColumnFamily) Descriptor() ([]byte, []int) { return file_google_bigtable_admin_v2_table_proto_rawDescGZIP(), []int{4} } func (x *ColumnFamily) GetGcRule() *GcRule { if x != nil { return x.GcRule } return nil } func (x *ColumnFamily) GetValueType() *Type { if x != nil { return x.ValueType } return nil } // Rule for determining which cells to delete during garbage collection. type GcRule struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Garbage collection rules. // // Types that are assignable to Rule: // // *GcRule_MaxNumVersions // *GcRule_MaxAge // *GcRule_Intersection_ // *GcRule_Union_ Rule isGcRule_Rule `protobuf_oneof:"rule"` } func (x *GcRule) Reset() { *x = GcRule{} if protoimpl.UnsafeEnabled { mi := &file_google_bigtable_admin_v2_table_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GcRule) String() string { return protoimpl.X.MessageStringOf(x) } func (*GcRule) ProtoMessage() {} func (x *GcRule) ProtoReflect() protoreflect.Message { mi := &file_google_bigtable_admin_v2_table_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 GcRule.ProtoReflect.Descriptor instead. func (*GcRule) Descriptor() ([]byte, []int) { return file_google_bigtable_admin_v2_table_proto_rawDescGZIP(), []int{5} } func (m *GcRule) GetRule() isGcRule_Rule { if m != nil { return m.Rule } return nil } func (x *GcRule) GetMaxNumVersions() int32 { if x, ok := x.GetRule().(*GcRule_MaxNumVersions); ok { return x.MaxNumVersions } return 0 } func (x *GcRule) GetMaxAge() *durationpb.Duration { if x, ok := x.GetRule().(*GcRule_MaxAge); ok { return x.MaxAge } return nil } func (x *GcRule) GetIntersection() *GcRule_Intersection { if x, ok := x.GetRule().(*GcRule_Intersection_); ok { return x.Intersection } return nil } func (x *GcRule) GetUnion() *GcRule_Union { if x, ok := x.GetRule().(*GcRule_Union_); ok { return x.Union } return nil } type isGcRule_Rule interface { isGcRule_Rule() } type GcRule_MaxNumVersions struct { // Delete all cells in a column except the most recent N. MaxNumVersions int32 `protobuf:"varint,1,opt,name=max_num_versions,json=maxNumVersions,proto3,oneof"` } type GcRule_MaxAge struct { // Delete cells in a column older than the given age. // Values must be at least one millisecond, and will be truncated to // microsecond granularity. MaxAge *durationpb.Duration `protobuf:"bytes,2,opt,name=max_age,json=maxAge,proto3,oneof"` } type GcRule_Intersection_ struct { // Delete cells that would be deleted by every nested rule. Intersection *GcRule_Intersection `protobuf:"bytes,3,opt,name=intersection,proto3,oneof"` } type GcRule_Union_ struct { // Delete cells that would be deleted by any nested rule. Union *GcRule_Union `protobuf:"bytes,4,opt,name=union,proto3,oneof"` } func (*GcRule_MaxNumVersions) isGcRule_Rule() {} func (*GcRule_MaxAge) isGcRule_Rule() {} func (*GcRule_Intersection_) isGcRule_Rule() {} func (*GcRule_Union_) isGcRule_Rule() {} // Encryption information for a given resource. // If this resource is protected with customer managed encryption, the in-use // Cloud Key Management Service (Cloud KMS) key version is specified along with // its status. type EncryptionInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Output only. The type of encryption used to protect this resource. EncryptionType EncryptionInfo_EncryptionType `protobuf:"varint,3,opt,name=encryption_type,json=encryptionType,proto3,enum=google.bigtable.admin.v2.EncryptionInfo_EncryptionType" json:"encryption_type,omitempty"` // Output only. The status of encrypt/decrypt calls on underlying data for // this resource. Regardless of status, the existing data is always encrypted // at rest. EncryptionStatus *status.Status `protobuf:"bytes,4,opt,name=encryption_status,json=encryptionStatus,proto3" json:"encryption_status,omitempty"` // Output only. The version of the Cloud KMS key specified in the parent // cluster that is in use for the data underlying this table. KmsKeyVersion string `protobuf:"bytes,2,opt,name=kms_key_version,json=kmsKeyVersion,proto3" json:"kms_key_version,omitempty"` } func (x *EncryptionInfo) Reset() { *x = EncryptionInfo{} if protoimpl.UnsafeEnabled { mi := &file_google_bigtable_admin_v2_table_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *EncryptionInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*EncryptionInfo) ProtoMessage() {} func (x *EncryptionInfo) ProtoReflect() protoreflect.Message { mi := &file_google_bigtable_admin_v2_table_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 EncryptionInfo.ProtoReflect.Descriptor instead. func (*EncryptionInfo) Descriptor() ([]byte, []int) { return file_google_bigtable_admin_v2_table_proto_rawDescGZIP(), []int{6} } func (x *EncryptionInfo) GetEncryptionType() EncryptionInfo_EncryptionType { if x != nil { return x.EncryptionType } return EncryptionInfo_ENCRYPTION_TYPE_UNSPECIFIED } func (x *EncryptionInfo) GetEncryptionStatus() *status.Status { if x != nil { return x.EncryptionStatus } return nil } func (x *EncryptionInfo) GetKmsKeyVersion() string { if x != nil { return x.KmsKeyVersion } return "" } // A snapshot of a table at a particular time. A snapshot can be used as a // checkpoint for data restoration or a data source for a new table. // // Note: This is a private alpha release of Cloud Bigtable snapshots. This // feature is not currently available to most Cloud Bigtable customers. This // feature might be changed in backward-incompatible ways and is not recommended // for production use. It is not subject to any SLA or deprecation policy. type Snapshot struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The unique name of the snapshot. // Values are of the form // `projects/{project}/instances/{instance}/clusters/{cluster}/snapshots/{snapshot}`. Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` // Output only. The source table at the time the snapshot was taken. SourceTable *Table `protobuf:"bytes,2,opt,name=source_table,json=sourceTable,proto3" json:"source_table,omitempty"` // Output only. The size of the data in the source table at the time the // snapshot was taken. In some cases, this value may be computed // asynchronously via a background process and a placeholder of 0 will be used // in the meantime. DataSizeBytes int64 `protobuf:"varint,3,opt,name=data_size_bytes,json=dataSizeBytes,proto3" json:"data_size_bytes,omitempty"` // Output only. The time when the snapshot is created. CreateTime *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"` // The time when the snapshot will be deleted. The maximum amount of time a // snapshot can stay active is 365 days. If 'ttl' is not specified, // the default maximum of 365 days will be used. DeleteTime *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=delete_time,json=deleteTime,proto3" json:"delete_time,omitempty"` // Output only. The current state of the snapshot. State Snapshot_State `protobuf:"varint,6,opt,name=state,proto3,enum=google.bigtable.admin.v2.Snapshot_State" json:"state,omitempty"` // Description of the snapshot. Description string `protobuf:"bytes,7,opt,name=description,proto3" json:"description,omitempty"` } func (x *Snapshot) Reset() { *x = Snapshot{} if protoimpl.UnsafeEnabled { mi := &file_google_bigtable_admin_v2_table_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Snapshot) String() string { return protoimpl.X.MessageStringOf(x) } func (*Snapshot) ProtoMessage() {} func (x *Snapshot) ProtoReflect() protoreflect.Message { mi := &file_google_bigtable_admin_v2_table_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 Snapshot.ProtoReflect.Descriptor instead. func (*Snapshot) Descriptor() ([]byte, []int) { return file_google_bigtable_admin_v2_table_proto_rawDescGZIP(), []int{7} } func (x *Snapshot) GetName() string { if x != nil { return x.Name } return "" } func (x *Snapshot) GetSourceTable() *Table { if x != nil { return x.SourceTable } return nil } func (x *Snapshot) GetDataSizeBytes() int64 { if x != nil { return x.DataSizeBytes } return 0 } func (x *Snapshot) GetCreateTime() *timestamppb.Timestamp { if x != nil { return x.CreateTime } return nil } func (x *Snapshot) GetDeleteTime() *timestamppb.Timestamp { if x != nil { return x.DeleteTime } return nil } func (x *Snapshot) GetState() Snapshot_State { if x != nil { return x.State } return Snapshot_STATE_NOT_KNOWN } func (x *Snapshot) GetDescription() string { if x != nil { return x.Description } return "" } // A backup of a Cloud Bigtable table. type Backup struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // A globally unique identifier for the backup which cannot be // changed. Values are of the form // `projects/{project}/instances/{instance}/clusters/{cluster}/ // // backups/[_a-zA-Z0-9][-_.a-zA-Z0-9]*` // // The final segment of the name must be between 1 and 50 characters // in length. // // The backup is stored in the cluster identified by the prefix of the backup // name of the form // `projects/{project}/instances/{instance}/clusters/{cluster}`. Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` // Required. Immutable. Name of the table from which this backup was created. // This needs to be in the same instance as the backup. Values are of the form // `projects/{project}/instances/{instance}/tables/{source_table}`. SourceTable string `protobuf:"bytes,2,opt,name=source_table,json=sourceTable,proto3" json:"source_table,omitempty"` // Output only. Name of the backup from which this backup was copied. If a // backup is not created by copying a backup, this field will be empty. Values // are of the form: projects//instances//backups/. SourceBackup string `protobuf:"bytes,10,opt,name=source_backup,json=sourceBackup,proto3" json:"source_backup,omitempty"` // Required. The expiration time of the backup, with microseconds // granularity that must be at least 6 hours and at most 90 days // from the time the request is received. Once the `expire_time` // has passed, Cloud Bigtable will delete the backup and free the // resources used by the backup. ExpireTime *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=expire_time,json=expireTime,proto3" json:"expire_time,omitempty"` // Output only. `start_time` is the time that the backup was started // (i.e. approximately the time the // [CreateBackup][google.bigtable.admin.v2.BigtableTableAdmin.CreateBackup] // request is received). The row data in this backup will be no older than // this timestamp. StartTime *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"` // Output only. `end_time` is the time that the backup was finished. The row // data in the backup will be no newer than this timestamp. EndTime *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"` // Output only. Size of the backup in bytes. SizeBytes int64 `protobuf:"varint,6,opt,name=size_bytes,json=sizeBytes,proto3" json:"size_bytes,omitempty"` // Output only. The current state of the backup. State Backup_State `protobuf:"varint,7,opt,name=state,proto3,enum=google.bigtable.admin.v2.Backup_State" json:"state,omitempty"` // Output only. The encryption information for the backup. EncryptionInfo *EncryptionInfo `protobuf:"bytes,9,opt,name=encryption_info,json=encryptionInfo,proto3" json:"encryption_info,omitempty"` } func (x *Backup) Reset() { *x = Backup{} if protoimpl.UnsafeEnabled { mi := &file_google_bigtable_admin_v2_table_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Backup) String() string { return protoimpl.X.MessageStringOf(x) } func (*Backup) ProtoMessage() {} func (x *Backup) ProtoReflect() protoreflect.Message { mi := &file_google_bigtable_admin_v2_table_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 Backup.ProtoReflect.Descriptor instead. func (*Backup) Descriptor() ([]byte, []int) { return file_google_bigtable_admin_v2_table_proto_rawDescGZIP(), []int{8} } func (x *Backup) GetName() string { if x != nil { return x.Name } return "" } func (x *Backup) GetSourceTable() string { if x != nil { return x.SourceTable } return "" } func (x *Backup) GetSourceBackup() string { if x != nil { return x.SourceBackup } return "" } func (x *Backup) GetExpireTime() *timestamppb.Timestamp { if x != nil { return x.ExpireTime } return nil } func (x *Backup) GetStartTime() *timestamppb.Timestamp { if x != nil { return x.StartTime } return nil } func (x *Backup) GetEndTime() *timestamppb.Timestamp { if x != nil { return x.EndTime } return nil } func (x *Backup) GetSizeBytes() int64 { if x != nil { return x.SizeBytes } return 0 } func (x *Backup) GetState() Backup_State { if x != nil { return x.State } return Backup_STATE_UNSPECIFIED } func (x *Backup) GetEncryptionInfo() *EncryptionInfo { if x != nil { return x.EncryptionInfo } return nil } // Information about a backup. type BackupInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Output only. Name of the backup. Backup string `protobuf:"bytes,1,opt,name=backup,proto3" json:"backup,omitempty"` // Output only. The time that the backup was started. Row data in the backup // will be no older than this timestamp. StartTime *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"` // Output only. This time that the backup was finished. Row data in the // backup will be no newer than this timestamp. EndTime *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"` // Output only. Name of the table the backup was created from. SourceTable string `protobuf:"bytes,4,opt,name=source_table,json=sourceTable,proto3" json:"source_table,omitempty"` // Output only. Name of the backup from which this backup was copied. If a // backup is not created by copying a backup, this field will be empty. Values // are of the form: projects//instances//backups/. SourceBackup string `protobuf:"bytes,10,opt,name=source_backup,json=sourceBackup,proto3" json:"source_backup,omitempty"` } func (x *BackupInfo) Reset() { *x = BackupInfo{} if protoimpl.UnsafeEnabled { mi := &file_google_bigtable_admin_v2_table_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *BackupInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*BackupInfo) ProtoMessage() {} func (x *BackupInfo) ProtoReflect() protoreflect.Message { mi := &file_google_bigtable_admin_v2_table_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 BackupInfo.ProtoReflect.Descriptor instead. func (*BackupInfo) Descriptor() ([]byte, []int) { return file_google_bigtable_admin_v2_table_proto_rawDescGZIP(), []int{9} } func (x *BackupInfo) GetBackup() string { if x != nil { return x.Backup } return "" } func (x *BackupInfo) GetStartTime() *timestamppb.Timestamp { if x != nil { return x.StartTime } return nil } func (x *BackupInfo) GetEndTime() *timestamppb.Timestamp { if x != nil { return x.EndTime } return nil } func (x *BackupInfo) GetSourceTable() string { if x != nil { return x.SourceTable } return "" } func (x *BackupInfo) GetSourceBackup() string { if x != nil { return x.SourceBackup } return "" } // The state of a table's data in a particular cluster. type Table_ClusterState struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Output only. The state of replication for the table in this cluster. ReplicationState Table_ClusterState_ReplicationState `protobuf:"varint,1,opt,name=replication_state,json=replicationState,proto3,enum=google.bigtable.admin.v2.Table_ClusterState_ReplicationState" json:"replication_state,omitempty"` // Output only. The encryption information for the table in this cluster. // If the encryption key protecting this resource is customer managed, then // its version can be rotated in Cloud Key Management Service (Cloud KMS). // The primary version of the key and its status will be reflected here when // changes propagate from Cloud KMS. EncryptionInfo []*EncryptionInfo `protobuf:"bytes,2,rep,name=encryption_info,json=encryptionInfo,proto3" json:"encryption_info,omitempty"` } func (x *Table_ClusterState) Reset() { *x = Table_ClusterState{} if protoimpl.UnsafeEnabled { mi := &file_google_bigtable_admin_v2_table_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Table_ClusterState) String() string { return protoimpl.X.MessageStringOf(x) } func (*Table_ClusterState) ProtoMessage() {} func (x *Table_ClusterState) ProtoReflect() protoreflect.Message { mi := &file_google_bigtable_admin_v2_table_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 Table_ClusterState.ProtoReflect.Descriptor instead. func (*Table_ClusterState) Descriptor() ([]byte, []int) { return file_google_bigtable_admin_v2_table_proto_rawDescGZIP(), []int{2, 0} } func (x *Table_ClusterState) GetReplicationState() Table_ClusterState_ReplicationState { if x != nil { return x.ReplicationState } return Table_ClusterState_STATE_NOT_KNOWN } func (x *Table_ClusterState) GetEncryptionInfo() []*EncryptionInfo { if x != nil { return x.EncryptionInfo } return nil } // Defines an automated backup policy for a table type Table_AutomatedBackupPolicy struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Required. How long the automated backups should be retained. The only // supported value at this time is 3 days. RetentionPeriod *durationpb.Duration `protobuf:"bytes,1,opt,name=retention_period,json=retentionPeriod,proto3" json:"retention_period,omitempty"` // Required. How frequently automated backups should occur. The only // supported value at this time is 24 hours. Frequency *durationpb.Duration `protobuf:"bytes,2,opt,name=frequency,proto3" json:"frequency,omitempty"` } func (x *Table_AutomatedBackupPolicy) Reset() { *x = Table_AutomatedBackupPolicy{} if protoimpl.UnsafeEnabled { mi := &file_google_bigtable_admin_v2_table_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Table_AutomatedBackupPolicy) String() string { return protoimpl.X.MessageStringOf(x) } func (*Table_AutomatedBackupPolicy) ProtoMessage() {} func (x *Table_AutomatedBackupPolicy) ProtoReflect() protoreflect.Message { mi := &file_google_bigtable_admin_v2_table_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 Table_AutomatedBackupPolicy.ProtoReflect.Descriptor instead. func (*Table_AutomatedBackupPolicy) Descriptor() ([]byte, []int) { return file_google_bigtable_admin_v2_table_proto_rawDescGZIP(), []int{2, 1} } func (x *Table_AutomatedBackupPolicy) GetRetentionPeriod() *durationpb.Duration { if x != nil { return x.RetentionPeriod } return nil } func (x *Table_AutomatedBackupPolicy) GetFrequency() *durationpb.Duration { if x != nil { return x.Frequency } return nil } // Subsets of a column family that are included in this AuthorizedView. type AuthorizedView_FamilySubsets struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Individual exact column qualifiers to be included in the AuthorizedView. Qualifiers [][]byte `protobuf:"bytes,1,rep,name=qualifiers,proto3" json:"qualifiers,omitempty"` // Prefixes for qualifiers to be included in the AuthorizedView. Every // qualifier starting with one of these prefixes is included in the // AuthorizedView. To provide access to all qualifiers, include the empty // string as a prefix // (""). QualifierPrefixes [][]byte `protobuf:"bytes,2,rep,name=qualifier_prefixes,json=qualifierPrefixes,proto3" json:"qualifier_prefixes,omitempty"` } func (x *AuthorizedView_FamilySubsets) Reset() { *x = AuthorizedView_FamilySubsets{} if protoimpl.UnsafeEnabled { mi := &file_google_bigtable_admin_v2_table_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *AuthorizedView_FamilySubsets) String() string { return protoimpl.X.MessageStringOf(x) } func (*AuthorizedView_FamilySubsets) ProtoMessage() {} func (x *AuthorizedView_FamilySubsets) ProtoReflect() protoreflect.Message { mi := &file_google_bigtable_admin_v2_table_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 AuthorizedView_FamilySubsets.ProtoReflect.Descriptor instead. func (*AuthorizedView_FamilySubsets) Descriptor() ([]byte, []int) { return file_google_bigtable_admin_v2_table_proto_rawDescGZIP(), []int{3, 0} } func (x *AuthorizedView_FamilySubsets) GetQualifiers() [][]byte { if x != nil { return x.Qualifiers } return nil } func (x *AuthorizedView_FamilySubsets) GetQualifierPrefixes() [][]byte { if x != nil { return x.QualifierPrefixes } return nil } // Defines a simple AuthorizedView that is a subset of the underlying Table. type AuthorizedView_SubsetView struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Row prefixes to be included in the AuthorizedView. // To provide access to all rows, include the empty string as a prefix (""). RowPrefixes [][]byte `protobuf:"bytes,1,rep,name=row_prefixes,json=rowPrefixes,proto3" json:"row_prefixes,omitempty"` // Map from column family name to the columns in this family to be included // in the AuthorizedView. FamilySubsets map[string]*AuthorizedView_FamilySubsets `protobuf:"bytes,2,rep,name=family_subsets,json=familySubsets,proto3" json:"family_subsets,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` } func (x *AuthorizedView_SubsetView) Reset() { *x = AuthorizedView_SubsetView{} if protoimpl.UnsafeEnabled { mi := &file_google_bigtable_admin_v2_table_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *AuthorizedView_SubsetView) String() string { return protoimpl.X.MessageStringOf(x) } func (*AuthorizedView_SubsetView) ProtoMessage() {} func (x *AuthorizedView_SubsetView) ProtoReflect() protoreflect.Message { mi := &file_google_bigtable_admin_v2_table_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 AuthorizedView_SubsetView.ProtoReflect.Descriptor instead. func (*AuthorizedView_SubsetView) Descriptor() ([]byte, []int) { return file_google_bigtable_admin_v2_table_proto_rawDescGZIP(), []int{3, 1} } func (x *AuthorizedView_SubsetView) GetRowPrefixes() [][]byte { if x != nil { return x.RowPrefixes } return nil } func (x *AuthorizedView_SubsetView) GetFamilySubsets() map[string]*AuthorizedView_FamilySubsets { if x != nil { return x.FamilySubsets } return nil } // A GcRule which deletes cells matching all of the given rules. type GcRule_Intersection struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Only delete cells which would be deleted by every element of `rules`. Rules []*GcRule `protobuf:"bytes,1,rep,name=rules,proto3" json:"rules,omitempty"` } func (x *GcRule_Intersection) Reset() { *x = GcRule_Intersection{} if protoimpl.UnsafeEnabled { mi := &file_google_bigtable_admin_v2_table_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GcRule_Intersection) String() string { return protoimpl.X.MessageStringOf(x) } func (*GcRule_Intersection) ProtoMessage() {} func (x *GcRule_Intersection) ProtoReflect() protoreflect.Message { mi := &file_google_bigtable_admin_v2_table_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 GcRule_Intersection.ProtoReflect.Descriptor instead. func (*GcRule_Intersection) Descriptor() ([]byte, []int) { return file_google_bigtable_admin_v2_table_proto_rawDescGZIP(), []int{5, 0} } func (x *GcRule_Intersection) GetRules() []*GcRule { if x != nil { return x.Rules } return nil } // A GcRule which deletes cells matching any of the given rules. type GcRule_Union struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Delete cells which would be deleted by any element of `rules`. Rules []*GcRule `protobuf:"bytes,1,rep,name=rules,proto3" json:"rules,omitempty"` } func (x *GcRule_Union) Reset() { *x = GcRule_Union{} if protoimpl.UnsafeEnabled { mi := &file_google_bigtable_admin_v2_table_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GcRule_Union) String() string { return protoimpl.X.MessageStringOf(x) } func (*GcRule_Union) ProtoMessage() {} func (x *GcRule_Union) ProtoReflect() protoreflect.Message { mi := &file_google_bigtable_admin_v2_table_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 GcRule_Union.ProtoReflect.Descriptor instead. func (*GcRule_Union) Descriptor() ([]byte, []int) { return file_google_bigtable_admin_v2_table_proto_rawDescGZIP(), []int{5, 1} } func (x *GcRule_Union) GetRules() []*GcRule { if x != nil { return x.Rules } return nil } var File_google_bigtable_admin_v2_table_proto protoreflect.FileDescriptor var file_google_bigtable_admin_v2_table_proto_rawDesc = []byte{ 0x0a, 0x24, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x62, 0x69, 0x67, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2f, 0x76, 0x32, 0x2f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x18, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x62, 0x69, 0x67, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x32, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x24, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x62, 0x69, 0x67, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2f, 0x76, 0x32, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x72, 0x70, 0x63, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xb3, 0x01, 0x0a, 0x0b, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x4c, 0x0a, 0x0b, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x62, 0x69, 0x67, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0a, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x47, 0x0a, 0x0b, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x62, 0x69, 0x67, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x48, 0x00, 0x52, 0x0a, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x42, 0x0d, 0x0a, 0x0b, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x22, 0x5a, 0x0a, 0x12, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x44, 0x0a, 0x10, 0x72, 0x65, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0f, 0x72, 0x65, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x22, 0xaa, 0x0d, 0x0a, 0x05, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x5e, 0x0a, 0x0e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x62, 0x69, 0x67, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0d, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x12, 0x5c, 0x0a, 0x0f, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x5f, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x62, 0x69, 0x67, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x2e, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0e, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x12, 0x5b, 0x0a, 0x0b, 0x67, 0x72, 0x61, 0x6e, 0x75, 0x6c, 0x61, 0x72, 0x69, 0x74, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x34, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x62, 0x69, 0x67, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x47, 0x72, 0x61, 0x6e, 0x75, 0x6c, 0x61, 0x72, 0x69, 0x74, 0x79, 0x42, 0x03, 0xe0, 0x41, 0x05, 0x52, 0x0b, 0x67, 0x72, 0x61, 0x6e, 0x75, 0x6c, 0x61, 0x72, 0x69, 0x74, 0x79, 0x12, 0x4d, 0x0a, 0x0c, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x62, 0x69, 0x67, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0b, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x5e, 0x0a, 0x14, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x62, 0x69, 0x67, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x12, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x2f, 0x0a, 0x13, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x6f, 0x0a, 0x17, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x62, 0x69, 0x67, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x2e, 0x41, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x48, 0x00, 0x52, 0x15, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x1a, 0xe8, 0x02, 0x0a, 0x0c, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x6f, 0x0a, 0x11, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x62, 0x69, 0x67, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x10, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x56, 0x0a, 0x0f, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x62, 0x69, 0x67, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0e, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x8e, 0x01, 0x0a, 0x10, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x13, 0x0a, 0x0f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x10, 0x0a, 0x0c, 0x49, 0x4e, 0x49, 0x54, 0x49, 0x41, 0x4c, 0x49, 0x5a, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x17, 0x0a, 0x13, 0x50, 0x4c, 0x41, 0x4e, 0x4e, 0x45, 0x44, 0x5f, 0x4d, 0x41, 0x49, 0x4e, 0x54, 0x45, 0x4e, 0x41, 0x4e, 0x43, 0x45, 0x10, 0x02, 0x12, 0x19, 0x0a, 0x15, 0x55, 0x4e, 0x50, 0x4c, 0x41, 0x4e, 0x4e, 0x45, 0x44, 0x5f, 0x4d, 0x41, 0x49, 0x4e, 0x54, 0x45, 0x4e, 0x41, 0x4e, 0x43, 0x45, 0x10, 0x03, 0x12, 0x09, 0x0a, 0x05, 0x52, 0x45, 0x41, 0x44, 0x59, 0x10, 0x04, 0x12, 0x14, 0x0a, 0x10, 0x52, 0x45, 0x41, 0x44, 0x59, 0x5f, 0x4f, 0x50, 0x54, 0x49, 0x4d, 0x49, 0x5a, 0x49, 0x4e, 0x47, 0x10, 0x05, 0x1a, 0xa0, 0x01, 0x0a, 0x15, 0x41, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x49, 0x0a, 0x10, 0x72, 0x65, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0f, 0x72, 0x65, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x12, 0x3c, 0x0a, 0x09, 0x66, 0x72, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x66, 0x72, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x79, 0x1a, 0x6e, 0x0a, 0x12, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x42, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x62, 0x69, 0x67, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x69, 0x0a, 0x13, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x3c, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x62, 0x69, 0x67, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x49, 0x0a, 0x14, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x47, 0x72, 0x61, 0x6e, 0x75, 0x6c, 0x61, 0x72, 0x69, 0x74, 0x79, 0x12, 0x25, 0x0a, 0x21, 0x54, 0x49, 0x4d, 0x45, 0x53, 0x54, 0x41, 0x4d, 0x50, 0x5f, 0x47, 0x52, 0x41, 0x4e, 0x55, 0x4c, 0x41, 0x52, 0x49, 0x54, 0x59, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x4d, 0x49, 0x4c, 0x4c, 0x49, 0x53, 0x10, 0x01, 0x22, 0x71, 0x0a, 0x04, 0x56, 0x69, 0x65, 0x77, 0x12, 0x14, 0x0a, 0x10, 0x56, 0x49, 0x45, 0x57, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x4e, 0x41, 0x4d, 0x45, 0x5f, 0x4f, 0x4e, 0x4c, 0x59, 0x10, 0x01, 0x12, 0x0f, 0x0a, 0x0b, 0x53, 0x43, 0x48, 0x45, 0x4d, 0x41, 0x5f, 0x56, 0x49, 0x45, 0x57, 0x10, 0x02, 0x12, 0x14, 0x0a, 0x10, 0x52, 0x45, 0x50, 0x4c, 0x49, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x56, 0x49, 0x45, 0x57, 0x10, 0x03, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x43, 0x52, 0x59, 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x56, 0x49, 0x45, 0x57, 0x10, 0x05, 0x12, 0x08, 0x0a, 0x04, 0x46, 0x55, 0x4c, 0x4c, 0x10, 0x04, 0x3a, 0x5f, 0xea, 0x41, 0x5c, 0x0a, 0x22, 0x62, 0x69, 0x67, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x36, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x7d, 0x2f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x2f, 0x7b, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x7d, 0x42, 0x19, 0x0a, 0x17, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0xd6, 0x06, 0x0a, 0x0e, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x64, 0x56, 0x69, 0x65, 0x77, 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, 0x56, 0x0a, 0x0b, 0x73, 0x75, 0x62, 0x73, 0x65, 0x74, 0x5f, 0x76, 0x69, 0x65, 0x77, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x62, 0x69, 0x67, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x64, 0x56, 0x69, 0x65, 0x77, 0x2e, 0x53, 0x75, 0x62, 0x73, 0x65, 0x74, 0x56, 0x69, 0x65, 0x77, 0x48, 0x00, 0x52, 0x0a, 0x73, 0x75, 0x62, 0x73, 0x65, 0x74, 0x56, 0x69, 0x65, 0x77, 0x12, 0x12, 0x0a, 0x04, 0x65, 0x74, 0x61, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x65, 0x74, 0x61, 0x67, 0x12, 0x2f, 0x0a, 0x13, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x5e, 0x0a, 0x0d, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x53, 0x75, 0x62, 0x73, 0x65, 0x74, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x66, 0x69, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x0a, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x66, 0x69, 0x65, 0x72, 0x73, 0x12, 0x2d, 0x0a, 0x12, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x66, 0x69, 0x65, 0x72, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x11, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x66, 0x69, 0x65, 0x72, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, 0x1a, 0x98, 0x02, 0x0a, 0x0a, 0x53, 0x75, 0x62, 0x73, 0x65, 0x74, 0x56, 0x69, 0x65, 0x77, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x6f, 0x77, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x0b, 0x72, 0x6f, 0x77, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, 0x12, 0x6d, 0x0a, 0x0e, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x73, 0x75, 0x62, 0x73, 0x65, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x46, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x62, 0x69, 0x67, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x64, 0x56, 0x69, 0x65, 0x77, 0x2e, 0x53, 0x75, 0x62, 0x73, 0x65, 0x74, 0x56, 0x69, 0x65, 0x77, 0x2e, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x53, 0x75, 0x62, 0x73, 0x65, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0d, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x53, 0x75, 0x62, 0x73, 0x65, 0x74, 0x73, 0x1a, 0x78, 0x0a, 0x12, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x53, 0x75, 0x62, 0x73, 0x65, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x4c, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x62, 0x69, 0x67, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x64, 0x56, 0x69, 0x65, 0x77, 0x2e, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x53, 0x75, 0x62, 0x73, 0x65, 0x74, 0x73, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x51, 0x0a, 0x0c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x56, 0x69, 0x65, 0x77, 0x12, 0x1d, 0x0a, 0x19, 0x52, 0x45, 0x53, 0x50, 0x4f, 0x4e, 0x53, 0x45, 0x5f, 0x56, 0x49, 0x45, 0x57, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x4e, 0x41, 0x4d, 0x45, 0x5f, 0x4f, 0x4e, 0x4c, 0x59, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x42, 0x41, 0x53, 0x49, 0x43, 0x10, 0x02, 0x12, 0x08, 0x0a, 0x04, 0x46, 0x55, 0x4c, 0x4c, 0x10, 0x03, 0x3a, 0xac, 0x01, 0xea, 0x41, 0xa8, 0x01, 0x0a, 0x2b, 0x62, 0x69, 0x67, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x64, 0x56, 0x69, 0x65, 0x77, 0x12, 0x58, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x7d, 0x2f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x2f, 0x7b, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x7d, 0x2f, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x64, 0x56, 0x69, 0x65, 0x77, 0x73, 0x2f, 0x7b, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x64, 0x5f, 0x76, 0x69, 0x65, 0x77, 0x7d, 0x2a, 0x0f, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x64, 0x56, 0x69, 0x65, 0x77, 0x73, 0x32, 0x0e, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x64, 0x56, 0x69, 0x65, 0x77, 0x42, 0x11, 0x0a, 0x0f, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x64, 0x5f, 0x76, 0x69, 0x65, 0x77, 0x22, 0x88, 0x01, 0x0a, 0x0c, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x12, 0x39, 0x0a, 0x07, 0x67, 0x63, 0x5f, 0x72, 0x75, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x62, 0x69, 0x67, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x47, 0x63, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x06, 0x67, 0x63, 0x52, 0x75, 0x6c, 0x65, 0x12, 0x3d, 0x0a, 0x0a, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x62, 0x69, 0x67, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x09, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x90, 0x03, 0x0a, 0x06, 0x47, 0x63, 0x52, 0x75, 0x6c, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x6d, 0x61, 0x78, 0x5f, 0x6e, 0x75, 0x6d, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x0e, 0x6d, 0x61, 0x78, 0x4e, 0x75, 0x6d, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x34, 0x0a, 0x07, 0x6d, 0x61, 0x78, 0x5f, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x06, 0x6d, 0x61, 0x78, 0x41, 0x67, 0x65, 0x12, 0x53, 0x0a, 0x0c, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x73, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x62, 0x69, 0x67, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x47, 0x63, 0x52, 0x75, 0x6c, 0x65, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x73, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x0c, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x73, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3e, 0x0a, 0x05, 0x75, 0x6e, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x62, 0x69, 0x67, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x47, 0x63, 0x52, 0x75, 0x6c, 0x65, 0x2e, 0x55, 0x6e, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x05, 0x75, 0x6e, 0x69, 0x6f, 0x6e, 0x1a, 0x46, 0x0a, 0x0c, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x73, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x36, 0x0a, 0x05, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x62, 0x69, 0x67, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x47, 0x63, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x05, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x1a, 0x3f, 0x0a, 0x05, 0x55, 0x6e, 0x69, 0x6f, 0x6e, 0x12, 0x36, 0x0a, 0x05, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x62, 0x69, 0x67, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x47, 0x63, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x05, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x42, 0x06, 0x0a, 0x04, 0x72, 0x75, 0x6c, 0x65, 0x22, 0x8a, 0x03, 0x0a, 0x0e, 0x45, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x65, 0x0a, 0x0f, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x37, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x62, 0x69, 0x67, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x45, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0e, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x44, 0x0a, 0x11, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x10, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x58, 0x0a, 0x0f, 0x6b, 0x6d, 0x73, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x30, 0xe0, 0x41, 0x03, 0xfa, 0x41, 0x2a, 0x0a, 0x28, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x6b, 0x6d, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x43, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x4b, 0x65, 0x79, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x0d, 0x6b, 0x6d, 0x73, 0x4b, 0x65, 0x79, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x71, 0x0a, 0x0e, 0x45, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1f, 0x0a, 0x1b, 0x45, 0x4e, 0x43, 0x52, 0x59, 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1d, 0x0a, 0x19, 0x47, 0x4f, 0x4f, 0x47, 0x4c, 0x45, 0x5f, 0x44, 0x45, 0x46, 0x41, 0x55, 0x4c, 0x54, 0x5f, 0x45, 0x4e, 0x43, 0x52, 0x59, 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x01, 0x12, 0x1f, 0x0a, 0x1b, 0x43, 0x55, 0x53, 0x54, 0x4f, 0x4d, 0x45, 0x52, 0x5f, 0x4d, 0x41, 0x4e, 0x41, 0x47, 0x45, 0x44, 0x5f, 0x45, 0x4e, 0x43, 0x52, 0x59, 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x02, 0x22, 0xae, 0x04, 0x0a, 0x08, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x47, 0x0a, 0x0c, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x62, 0x69, 0x67, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0b, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x2b, 0x0a, 0x0f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0d, 0x64, 0x61, 0x74, 0x61, 0x53, 0x69, 0x7a, 0x65, 0x42, 0x79, 0x74, 0x65, 0x73, 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, 0x3b, 0x0a, 0x0b, 0x64, 0x65, 0x6c, 0x65, 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, 0x52, 0x0a, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x43, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x62, 0x69, 0x67, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x35, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x13, 0x0a, 0x0f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x52, 0x45, 0x41, 0x44, 0x59, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x43, 0x52, 0x45, 0x41, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x02, 0x3a, 0x7b, 0xea, 0x41, 0x78, 0x0a, 0x25, 0x62, 0x69, 0x67, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x12, 0x4f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x7d, 0x2f, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x73, 0x2f, 0x7b, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x7d, 0x22, 0x9e, 0x05, 0x0a, 0x06, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x29, 0x0a, 0x0c, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x06, 0xe0, 0x41, 0x05, 0xe0, 0x41, 0x02, 0x52, 0x0b, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x28, 0x0a, 0x0d, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0c, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x12, 0x40, 0x0a, 0x0b, 0x65, 0x78, 0x70, 0x69, 0x72, 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, 0x02, 0x52, 0x0a, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x3e, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 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, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x3a, 0x0a, 0x08, 0x65, 0x6e, 0x64, 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, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0a, 0x73, 0x69, 0x7a, 0x65, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x09, 0x73, 0x69, 0x7a, 0x65, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x41, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x62, 0x69, 0x67, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x56, 0x0a, 0x0f, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x62, 0x69, 0x67, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x32, 0x2e, 0x45, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0e, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x37, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x15, 0x0a, 0x11, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x43, 0x52, 0x45, 0x41, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x52, 0x45, 0x41, 0x44, 0x59, 0x10, 0x02, 0x3a, 0x75, 0xea, 0x41, 0x72, 0x0a, 0x23, 0x62, 0x69, 0x67, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x12, 0x4b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x7d, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x7d, 0x2f, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x73, 0x2f, 0x7b, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x7d, 0x22, 0xf7, 0x01, 0x0a, 0x0a, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1b, 0x0a, 0x06, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x06, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x12, 0x3e, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 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, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x3a, 0x0a, 0x08, 0x65, 0x6e, 0x64, 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, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0c, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0b, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x28, 0x0a, 0x0d, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0c, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x2a, 0x44, 0x0a, 0x11, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x23, 0x0a, 0x1f, 0x52, 0x45, 0x53, 0x54, 0x4f, 0x52, 0x45, 0x5f, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x42, 0x41, 0x43, 0x4b, 0x55, 0x50, 0x10, 0x01, 0x42, 0xfc, 0x02, 0x0a, 0x1c, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x62, 0x69, 0x67, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x32, 0x42, 0x0a, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3d, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x67, 0x65, 0x6e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x62, 0x69, 0x67, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2f, 0x76, 0x32, 0x3b, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0xaa, 0x02, 0x1e, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x42, 0x69, 0x67, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2e, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x56, 0x32, 0xca, 0x02, 0x1e, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5c, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x5c, 0x42, 0x69, 0x67, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5c, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x5c, 0x56, 0x32, 0xea, 0x02, 0x22, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x3a, 0x3a, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x3a, 0x3a, 0x42, 0x69, 0x67, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x3a, 0x3a, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x3a, 0x3a, 0x56, 0x32, 0xea, 0x41, 0xa6, 0x01, 0x0a, 0x28, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x6b, 0x6d, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x43, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x4b, 0x65, 0x79, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x7a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x6b, 0x65, 0x79, 0x52, 0x69, 0x6e, 0x67, 0x73, 0x2f, 0x7b, 0x6b, 0x65, 0x79, 0x5f, 0x72, 0x69, 0x6e, 0x67, 0x7d, 0x2f, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x4b, 0x65, 0x79, 0x73, 0x2f, 0x7b, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x5f, 0x6b, 0x65, 0x79, 0x7d, 0x2f, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x4b, 0x65, 0x79, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x7d, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( file_google_bigtable_admin_v2_table_proto_rawDescOnce sync.Once file_google_bigtable_admin_v2_table_proto_rawDescData = file_google_bigtable_admin_v2_table_proto_rawDesc ) func file_google_bigtable_admin_v2_table_proto_rawDescGZIP() []byte { file_google_bigtable_admin_v2_table_proto_rawDescOnce.Do(func() { file_google_bigtable_admin_v2_table_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_bigtable_admin_v2_table_proto_rawDescData) }) return file_google_bigtable_admin_v2_table_proto_rawDescData } var file_google_bigtable_admin_v2_table_proto_enumTypes = make([]protoimpl.EnumInfo, 8) var file_google_bigtable_admin_v2_table_proto_msgTypes = make([]protoimpl.MessageInfo, 19) var file_google_bigtable_admin_v2_table_proto_goTypes = []interface{}{ (RestoreSourceType)(0), // 0: google.bigtable.admin.v2.RestoreSourceType (Table_TimestampGranularity)(0), // 1: google.bigtable.admin.v2.Table.TimestampGranularity (Table_View)(0), // 2: google.bigtable.admin.v2.Table.View (Table_ClusterState_ReplicationState)(0), // 3: google.bigtable.admin.v2.Table.ClusterState.ReplicationState (AuthorizedView_ResponseView)(0), // 4: google.bigtable.admin.v2.AuthorizedView.ResponseView (EncryptionInfo_EncryptionType)(0), // 5: google.bigtable.admin.v2.EncryptionInfo.EncryptionType (Snapshot_State)(0), // 6: google.bigtable.admin.v2.Snapshot.State (Backup_State)(0), // 7: google.bigtable.admin.v2.Backup.State (*RestoreInfo)(nil), // 8: google.bigtable.admin.v2.RestoreInfo (*ChangeStreamConfig)(nil), // 9: google.bigtable.admin.v2.ChangeStreamConfig (*Table)(nil), // 10: google.bigtable.admin.v2.Table (*AuthorizedView)(nil), // 11: google.bigtable.admin.v2.AuthorizedView (*ColumnFamily)(nil), // 12: google.bigtable.admin.v2.ColumnFamily (*GcRule)(nil), // 13: google.bigtable.admin.v2.GcRule (*EncryptionInfo)(nil), // 14: google.bigtable.admin.v2.EncryptionInfo (*Snapshot)(nil), // 15: google.bigtable.admin.v2.Snapshot (*Backup)(nil), // 16: google.bigtable.admin.v2.Backup (*BackupInfo)(nil), // 17: google.bigtable.admin.v2.BackupInfo (*Table_ClusterState)(nil), // 18: google.bigtable.admin.v2.Table.ClusterState (*Table_AutomatedBackupPolicy)(nil), // 19: google.bigtable.admin.v2.Table.AutomatedBackupPolicy nil, // 20: google.bigtable.admin.v2.Table.ClusterStatesEntry nil, // 21: google.bigtable.admin.v2.Table.ColumnFamiliesEntry (*AuthorizedView_FamilySubsets)(nil), // 22: google.bigtable.admin.v2.AuthorizedView.FamilySubsets (*AuthorizedView_SubsetView)(nil), // 23: google.bigtable.admin.v2.AuthorizedView.SubsetView nil, // 24: google.bigtable.admin.v2.AuthorizedView.SubsetView.FamilySubsetsEntry (*GcRule_Intersection)(nil), // 25: google.bigtable.admin.v2.GcRule.Intersection (*GcRule_Union)(nil), // 26: google.bigtable.admin.v2.GcRule.Union (*durationpb.Duration)(nil), // 27: google.protobuf.Duration (*Type)(nil), // 28: google.bigtable.admin.v2.Type (*status.Status)(nil), // 29: google.rpc.Status (*timestamppb.Timestamp)(nil), // 30: google.protobuf.Timestamp } var file_google_bigtable_admin_v2_table_proto_depIdxs = []int32{ 0, // 0: google.bigtable.admin.v2.RestoreInfo.source_type:type_name -> google.bigtable.admin.v2.RestoreSourceType 17, // 1: google.bigtable.admin.v2.RestoreInfo.backup_info:type_name -> google.bigtable.admin.v2.BackupInfo 27, // 2: google.bigtable.admin.v2.ChangeStreamConfig.retention_period:type_name -> google.protobuf.Duration 20, // 3: google.bigtable.admin.v2.Table.cluster_states:type_name -> google.bigtable.admin.v2.Table.ClusterStatesEntry 21, // 4: google.bigtable.admin.v2.Table.column_families:type_name -> google.bigtable.admin.v2.Table.ColumnFamiliesEntry 1, // 5: google.bigtable.admin.v2.Table.granularity:type_name -> google.bigtable.admin.v2.Table.TimestampGranularity 8, // 6: google.bigtable.admin.v2.Table.restore_info:type_name -> google.bigtable.admin.v2.RestoreInfo 9, // 7: google.bigtable.admin.v2.Table.change_stream_config:type_name -> google.bigtable.admin.v2.ChangeStreamConfig 19, // 8: google.bigtable.admin.v2.Table.automated_backup_policy:type_name -> google.bigtable.admin.v2.Table.AutomatedBackupPolicy 23, // 9: google.bigtable.admin.v2.AuthorizedView.subset_view:type_name -> google.bigtable.admin.v2.AuthorizedView.SubsetView 13, // 10: google.bigtable.admin.v2.ColumnFamily.gc_rule:type_name -> google.bigtable.admin.v2.GcRule 28, // 11: google.bigtable.admin.v2.ColumnFamily.value_type:type_name -> google.bigtable.admin.v2.Type 27, // 12: google.bigtable.admin.v2.GcRule.max_age:type_name -> google.protobuf.Duration 25, // 13: google.bigtable.admin.v2.GcRule.intersection:type_name -> google.bigtable.admin.v2.GcRule.Intersection 26, // 14: google.bigtable.admin.v2.GcRule.union:type_name -> google.bigtable.admin.v2.GcRule.Union 5, // 15: google.bigtable.admin.v2.EncryptionInfo.encryption_type:type_name -> google.bigtable.admin.v2.EncryptionInfo.EncryptionType 29, // 16: google.bigtable.admin.v2.EncryptionInfo.encryption_status:type_name -> google.rpc.Status 10, // 17: google.bigtable.admin.v2.Snapshot.source_table:type_name -> google.bigtable.admin.v2.Table 30, // 18: google.bigtable.admin.v2.Snapshot.create_time:type_name -> google.protobuf.Timestamp 30, // 19: google.bigtable.admin.v2.Snapshot.delete_time:type_name -> google.protobuf.Timestamp 6, // 20: google.bigtable.admin.v2.Snapshot.state:type_name -> google.bigtable.admin.v2.Snapshot.State 30, // 21: google.bigtable.admin.v2.Backup.expire_time:type_name -> google.protobuf.Timestamp 30, // 22: google.bigtable.admin.v2.Backup.start_time:type_name -> google.protobuf.Timestamp 30, // 23: google.bigtable.admin.v2.Backup.end_time:type_name -> google.protobuf.Timestamp 7, // 24: google.bigtable.admin.v2.Backup.state:type_name -> google.bigtable.admin.v2.Backup.State 14, // 25: google.bigtable.admin.v2.Backup.encryption_info:type_name -> google.bigtable.admin.v2.EncryptionInfo 30, // 26: google.bigtable.admin.v2.BackupInfo.start_time:type_name -> google.protobuf.Timestamp 30, // 27: google.bigtable.admin.v2.BackupInfo.end_time:type_name -> google.protobuf.Timestamp 3, // 28: google.bigtable.admin.v2.Table.ClusterState.replication_state:type_name -> google.bigtable.admin.v2.Table.ClusterState.ReplicationState 14, // 29: google.bigtable.admin.v2.Table.ClusterState.encryption_info:type_name -> google.bigtable.admin.v2.EncryptionInfo 27, // 30: google.bigtable.admin.v2.Table.AutomatedBackupPolicy.retention_period:type_name -> google.protobuf.Duration 27, // 31: google.bigtable.admin.v2.Table.AutomatedBackupPolicy.frequency:type_name -> google.protobuf.Duration 18, // 32: google.bigtable.admin.v2.Table.ClusterStatesEntry.value:type_name -> google.bigtable.admin.v2.Table.ClusterState 12, // 33: google.bigtable.admin.v2.Table.ColumnFamiliesEntry.value:type_name -> google.bigtable.admin.v2.ColumnFamily 24, // 34: google.bigtable.admin.v2.AuthorizedView.SubsetView.family_subsets:type_name -> google.bigtable.admin.v2.AuthorizedView.SubsetView.FamilySubsetsEntry 22, // 35: google.bigtable.admin.v2.AuthorizedView.SubsetView.FamilySubsetsEntry.value:type_name -> google.bigtable.admin.v2.AuthorizedView.FamilySubsets 13, // 36: google.bigtable.admin.v2.GcRule.Intersection.rules:type_name -> google.bigtable.admin.v2.GcRule 13, // 37: google.bigtable.admin.v2.GcRule.Union.rules:type_name -> google.bigtable.admin.v2.GcRule 38, // [38:38] is the sub-list for method output_type 38, // [38:38] is the sub-list for method input_type 38, // [38:38] is the sub-list for extension type_name 38, // [38:38] is the sub-list for extension extendee 0, // [0:38] is the sub-list for field type_name } func init() { file_google_bigtable_admin_v2_table_proto_init() } func file_google_bigtable_admin_v2_table_proto_init() { if File_google_bigtable_admin_v2_table_proto != nil { return } file_google_bigtable_admin_v2_types_proto_init() if !protoimpl.UnsafeEnabled { file_google_bigtable_admin_v2_table_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RestoreInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_bigtable_admin_v2_table_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ChangeStreamConfig); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_bigtable_admin_v2_table_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Table); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_bigtable_admin_v2_table_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AuthorizedView); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_bigtable_admin_v2_table_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ColumnFamily); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_bigtable_admin_v2_table_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GcRule); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_bigtable_admin_v2_table_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*EncryptionInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_bigtable_admin_v2_table_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Snapshot); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_bigtable_admin_v2_table_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Backup); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_bigtable_admin_v2_table_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BackupInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_bigtable_admin_v2_table_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Table_ClusterState); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_bigtable_admin_v2_table_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Table_AutomatedBackupPolicy); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_bigtable_admin_v2_table_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AuthorizedView_FamilySubsets); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_bigtable_admin_v2_table_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AuthorizedView_SubsetView); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_bigtable_admin_v2_table_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GcRule_Intersection); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_bigtable_admin_v2_table_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GcRule_Union); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } } file_google_bigtable_admin_v2_table_proto_msgTypes[0].OneofWrappers = []interface{}{ (*RestoreInfo_BackupInfo)(nil), } file_google_bigtable_admin_v2_table_proto_msgTypes[2].OneofWrappers = []interface{}{ (*Table_AutomatedBackupPolicy_)(nil), } file_google_bigtable_admin_v2_table_proto_msgTypes[3].OneofWrappers = []interface{}{ (*AuthorizedView_SubsetView_)(nil), } file_google_bigtable_admin_v2_table_proto_msgTypes[5].OneofWrappers = []interface{}{ (*GcRule_MaxNumVersions)(nil), (*GcRule_MaxAge)(nil), (*GcRule_Intersection_)(nil), (*GcRule_Union_)(nil), } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_google_bigtable_admin_v2_table_proto_rawDesc, NumEnums: 8, NumMessages: 19, NumExtensions: 0, NumServices: 0, }, GoTypes: file_google_bigtable_admin_v2_table_proto_goTypes, DependencyIndexes: file_google_bigtable_admin_v2_table_proto_depIdxs, EnumInfos: file_google_bigtable_admin_v2_table_proto_enumTypes, MessageInfos: file_google_bigtable_admin_v2_table_proto_msgTypes, }.Build() File_google_bigtable_admin_v2_table_proto = out.File file_google_bigtable_admin_v2_table_proto_rawDesc = nil file_google_bigtable_admin_v2_table_proto_goTypes = nil file_google_bigtable_admin_v2_table_proto_depIdxs = nil }