...

Source file src/google.golang.org/genproto/googleapis/cloud/gkebackup/logging/v1/logged_restore_plan.pb.go

Documentation: google.golang.org/genproto/googleapis/cloud/gkebackup/logging/v1

     1  // Copyright 2021 Google LLC
     2  //
     3  // Licensed under the Apache License, Version 2.0 (the "License");
     4  // you may not use this file except in compliance with the License.
     5  // You may obtain a copy of the License at
     6  //
     7  //     http://www.apache.org/licenses/LICENSE-2.0
     8  //
     9  // Unless required by applicable law or agreed to in writing, software
    10  // distributed under the License is distributed on an "AS IS" BASIS,
    11  // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    12  // See the License for the specific language governing permissions and
    13  // limitations under the License.
    14  
    15  // Code generated by protoc-gen-go. DO NOT EDIT.
    16  // versions:
    17  // 	protoc-gen-go v1.26.0
    18  // 	protoc        v3.12.2
    19  // source: google/cloud/gkebackup/logging/v1/logged_restore_plan.proto
    20  
    21  package logging
    22  
    23  import (
    24  	reflect "reflect"
    25  	sync "sync"
    26  
    27  	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
    28  	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
    29  )
    30  
    31  const (
    32  	// Verify that this generated code is sufficiently up-to-date.
    33  	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
    34  	// Verify that runtime/protoimpl is sufficiently up-to-date.
    35  	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
    36  )
    37  
    38  // Defines how volume data should be restored
    39  type RestoreConfig_VolumeDataRestorePolicy int32
    40  
    41  const (
    42  	// unspecified, default value
    43  	RestoreConfig_VOLUME_DATA_RESTORE_POLICY_UNSPECIFIED RestoreConfig_VolumeDataRestorePolicy = 0
    44  	// For each PVC to be restored, will create a new underlying volume (and PV)
    45  	// from the corresponding VolumeBackup contained within the Backup.
    46  	RestoreConfig_RESTORE_VOLUME_DATA_FROM_BACKUP RestoreConfig_VolumeDataRestorePolicy = 1
    47  	// For each PVC to be restored, attempt to reuse the original PV contained
    48  	// in the Backup (with its original underlying volume).  Note that option
    49  	// is likely only usable when restoring a workload to its original cluster.
    50  	RestoreConfig_REUSE_VOLUME_HANDLE_FROM_BACKUP RestoreConfig_VolumeDataRestorePolicy = 2
    51  	// For each PVC to be restored, PVCs will be created without any particular
    52  	// action to restore data.  In this case, the normal Kubernetes provisioning
    53  	// logic would kick in, and this would likely result in either dynamically
    54  	// provisioning blank PVs or binding to statically provisioned PVs.
    55  	RestoreConfig_NO_VOLUME_DATA_RESTORATION RestoreConfig_VolumeDataRestorePolicy = 3
    56  )
    57  
    58  // Enum value maps for RestoreConfig_VolumeDataRestorePolicy.
    59  var (
    60  	RestoreConfig_VolumeDataRestorePolicy_name = map[int32]string{
    61  		0: "VOLUME_DATA_RESTORE_POLICY_UNSPECIFIED",
    62  		1: "RESTORE_VOLUME_DATA_FROM_BACKUP",
    63  		2: "REUSE_VOLUME_HANDLE_FROM_BACKUP",
    64  		3: "NO_VOLUME_DATA_RESTORATION",
    65  	}
    66  	RestoreConfig_VolumeDataRestorePolicy_value = map[string]int32{
    67  		"VOLUME_DATA_RESTORE_POLICY_UNSPECIFIED": 0,
    68  		"RESTORE_VOLUME_DATA_FROM_BACKUP":        1,
    69  		"REUSE_VOLUME_HANDLE_FROM_BACKUP":        2,
    70  		"NO_VOLUME_DATA_RESTORATION":             3,
    71  	}
    72  )
    73  
    74  func (x RestoreConfig_VolumeDataRestorePolicy) Enum() *RestoreConfig_VolumeDataRestorePolicy {
    75  	p := new(RestoreConfig_VolumeDataRestorePolicy)
    76  	*p = x
    77  	return p
    78  }
    79  
    80  func (x RestoreConfig_VolumeDataRestorePolicy) String() string {
    81  	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
    82  }
    83  
    84  func (RestoreConfig_VolumeDataRestorePolicy) Descriptor() protoreflect.EnumDescriptor {
    85  	return file_google_cloud_gkebackup_logging_v1_logged_restore_plan_proto_enumTypes[0].Descriptor()
    86  }
    87  
    88  func (RestoreConfig_VolumeDataRestorePolicy) Type() protoreflect.EnumType {
    89  	return &file_google_cloud_gkebackup_logging_v1_logged_restore_plan_proto_enumTypes[0]
    90  }
    91  
    92  func (x RestoreConfig_VolumeDataRestorePolicy) Number() protoreflect.EnumNumber {
    93  	return protoreflect.EnumNumber(x)
    94  }
    95  
    96  // Deprecated: Use RestoreConfig_VolumeDataRestorePolicy.Descriptor instead.
    97  func (RestoreConfig_VolumeDataRestorePolicy) EnumDescriptor() ([]byte, []int) {
    98  	return file_google_cloud_gkebackup_logging_v1_logged_restore_plan_proto_rawDescGZIP(), []int{1, 0}
    99  }
   100  
   101  // Defines the behavior for handling the situation where cluster-scoped
   102  // resources being restored already exist in the target cluster.
   103  type RestoreConfig_ClusterResourceConflictPolicy int32
   104  
   105  const (
   106  	// Unspecified. Only allowed if no cluster-scoped resources will be
   107  	// restored.
   108  	RestoreConfig_CLUSTER_RESOURCE_CONFLICT_POLICY_UNSPECIFIED RestoreConfig_ClusterResourceConflictPolicy = 0
   109  	// Do not attempt to restore the conflicting resource.
   110  	RestoreConfig_USE_EXISTING_VERSION RestoreConfig_ClusterResourceConflictPolicy = 1
   111  	// Delete the existing version before re-creating it from the Backup.
   112  	// Note that this is a dangerous option which could cause unintentional
   113  	// data loss if used inappropriately - for example, deleting a CRD will
   114  	// cause Kubernetes to delete all CRs of that type.
   115  	RestoreConfig_USE_BACKUP_VERSION RestoreConfig_ClusterResourceConflictPolicy = 2
   116  )
   117  
   118  // Enum value maps for RestoreConfig_ClusterResourceConflictPolicy.
   119  var (
   120  	RestoreConfig_ClusterResourceConflictPolicy_name = map[int32]string{
   121  		0: "CLUSTER_RESOURCE_CONFLICT_POLICY_UNSPECIFIED",
   122  		1: "USE_EXISTING_VERSION",
   123  		2: "USE_BACKUP_VERSION",
   124  	}
   125  	RestoreConfig_ClusterResourceConflictPolicy_value = map[string]int32{
   126  		"CLUSTER_RESOURCE_CONFLICT_POLICY_UNSPECIFIED": 0,
   127  		"USE_EXISTING_VERSION":                         1,
   128  		"USE_BACKUP_VERSION":                           2,
   129  	}
   130  )
   131  
   132  func (x RestoreConfig_ClusterResourceConflictPolicy) Enum() *RestoreConfig_ClusterResourceConflictPolicy {
   133  	p := new(RestoreConfig_ClusterResourceConflictPolicy)
   134  	*p = x
   135  	return p
   136  }
   137  
   138  func (x RestoreConfig_ClusterResourceConflictPolicy) String() string {
   139  	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
   140  }
   141  
   142  func (RestoreConfig_ClusterResourceConflictPolicy) Descriptor() protoreflect.EnumDescriptor {
   143  	return file_google_cloud_gkebackup_logging_v1_logged_restore_plan_proto_enumTypes[1].Descriptor()
   144  }
   145  
   146  func (RestoreConfig_ClusterResourceConflictPolicy) Type() protoreflect.EnumType {
   147  	return &file_google_cloud_gkebackup_logging_v1_logged_restore_plan_proto_enumTypes[1]
   148  }
   149  
   150  func (x RestoreConfig_ClusterResourceConflictPolicy) Number() protoreflect.EnumNumber {
   151  	return protoreflect.EnumNumber(x)
   152  }
   153  
   154  // Deprecated: Use RestoreConfig_ClusterResourceConflictPolicy.Descriptor instead.
   155  func (RestoreConfig_ClusterResourceConflictPolicy) EnumDescriptor() ([]byte, []int) {
   156  	return file_google_cloud_gkebackup_logging_v1_logged_restore_plan_proto_rawDescGZIP(), []int{1, 1}
   157  }
   158  
   159  // Defines the behavior for handling the situation where sets of namespaced
   160  // resources being restored already exist in the target cluster.
   161  type RestoreConfig_NamespacedResourceRestoreMode int32
   162  
   163  const (
   164  	// Unspecified. Only allowed if no namespaced resources will be restored.
   165  	RestoreConfig_NAMESPACED_RESOURCE_RESTORE_MODE_UNSPECIFIED RestoreConfig_NamespacedResourceRestoreMode = 0
   166  	// When conflicting top-level resources (either Namespaces or
   167  	// ProtectedApplications, depending upon the scope) are encountered, this
   168  	// will first trigger a delete of the conflicting resource AND ALL OF ITS
   169  	// REFERENCED RESOURCES (e.g., all resources in the Namespace or all
   170  	// resources referenced by the ProtectedApplication) before restoring the
   171  	// resources from the Backup. This mode should only be used when you are
   172  	// intending to revert some portion of a cluster to an earlier state.
   173  	RestoreConfig_DELETE_AND_RESTORE RestoreConfig_NamespacedResourceRestoreMode = 1
   174  	// If conflicting top-level resources (either Namespaces or
   175  	// ProtectedApplications, depending upon the scope) are encountered at the
   176  	// beginning of a restore process, the Restore will fail.  If a conflict
   177  	// occurs during the restore process itself (e.g., because an out of band
   178  	// process creates conflicting resources), a conflict will be reported.
   179  	RestoreConfig_FAIL_ON_CONFLICT RestoreConfig_NamespacedResourceRestoreMode = 2
   180  )
   181  
   182  // Enum value maps for RestoreConfig_NamespacedResourceRestoreMode.
   183  var (
   184  	RestoreConfig_NamespacedResourceRestoreMode_name = map[int32]string{
   185  		0: "NAMESPACED_RESOURCE_RESTORE_MODE_UNSPECIFIED",
   186  		1: "DELETE_AND_RESTORE",
   187  		2: "FAIL_ON_CONFLICT",
   188  	}
   189  	RestoreConfig_NamespacedResourceRestoreMode_value = map[string]int32{
   190  		"NAMESPACED_RESOURCE_RESTORE_MODE_UNSPECIFIED": 0,
   191  		"DELETE_AND_RESTORE":                           1,
   192  		"FAIL_ON_CONFLICT":                             2,
   193  	}
   194  )
   195  
   196  func (x RestoreConfig_NamespacedResourceRestoreMode) Enum() *RestoreConfig_NamespacedResourceRestoreMode {
   197  	p := new(RestoreConfig_NamespacedResourceRestoreMode)
   198  	*p = x
   199  	return p
   200  }
   201  
   202  func (x RestoreConfig_NamespacedResourceRestoreMode) String() string {
   203  	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
   204  }
   205  
   206  func (RestoreConfig_NamespacedResourceRestoreMode) Descriptor() protoreflect.EnumDescriptor {
   207  	return file_google_cloud_gkebackup_logging_v1_logged_restore_plan_proto_enumTypes[2].Descriptor()
   208  }
   209  
   210  func (RestoreConfig_NamespacedResourceRestoreMode) Type() protoreflect.EnumType {
   211  	return &file_google_cloud_gkebackup_logging_v1_logged_restore_plan_proto_enumTypes[2]
   212  }
   213  
   214  func (x RestoreConfig_NamespacedResourceRestoreMode) Number() protoreflect.EnumNumber {
   215  	return protoreflect.EnumNumber(x)
   216  }
   217  
   218  // Deprecated: Use RestoreConfig_NamespacedResourceRestoreMode.Descriptor instead.
   219  func (RestoreConfig_NamespacedResourceRestoreMode) EnumDescriptor() ([]byte, []int) {
   220  	return file_google_cloud_gkebackup_logging_v1_logged_restore_plan_proto_rawDescGZIP(), []int{1, 2}
   221  }
   222  
   223  // RestorePlan as stored in Platform log. It's used to log the details of
   224  // a createRestorePlan/updateRestorePlan request, so only fields that can be
   225  // taken from user input are included here.
   226  type LoggedRestorePlan struct {
   227  	state         protoimpl.MessageState
   228  	sizeCache     protoimpl.SizeCache
   229  	unknownFields protoimpl.UnknownFields
   230  
   231  	// User specified descriptive string for this RestorePlan.
   232  	Description string `protobuf:"bytes,1,opt,name=description,proto3" json:"description,omitempty"`
   233  	// The BackupPlan from which Backups may be used as the source
   234  	// for Restores created via this RestorePlan.
   235  	// Format: projects/*/locations/*/backupPlans/*.
   236  	BackupPlan string `protobuf:"bytes,2,opt,name=backup_plan,json=backupPlan,proto3" json:"backup_plan,omitempty"`
   237  	// The target cluster into which Restores created via this RestorePlan
   238  	// will restore data. NOTE: the cluster's region must be the same as the
   239  	// RestorePlan.
   240  	// Possible formats:
   241  	//   1. projects/*/locations/*/clusters/*
   242  	//   2. projects/*/zones/*/clusters/*
   243  	Cluster string `protobuf:"bytes,3,opt,name=cluster,proto3" json:"cluster,omitempty"`
   244  	// Configuration of Restores created via this RestorePlan.
   245  	RestoreConfig *RestoreConfig `protobuf:"bytes,4,opt,name=restore_config,json=restoreConfig,proto3" json:"restore_config,omitempty"`
   246  	// A set of custom labels supplied by user.
   247  	Labels map[string]string `protobuf:"bytes,5,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
   248  }
   249  
   250  func (x *LoggedRestorePlan) Reset() {
   251  	*x = LoggedRestorePlan{}
   252  	if protoimpl.UnsafeEnabled {
   253  		mi := &file_google_cloud_gkebackup_logging_v1_logged_restore_plan_proto_msgTypes[0]
   254  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   255  		ms.StoreMessageInfo(mi)
   256  	}
   257  }
   258  
   259  func (x *LoggedRestorePlan) String() string {
   260  	return protoimpl.X.MessageStringOf(x)
   261  }
   262  
   263  func (*LoggedRestorePlan) ProtoMessage() {}
   264  
   265  func (x *LoggedRestorePlan) ProtoReflect() protoreflect.Message {
   266  	mi := &file_google_cloud_gkebackup_logging_v1_logged_restore_plan_proto_msgTypes[0]
   267  	if protoimpl.UnsafeEnabled && x != nil {
   268  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   269  		if ms.LoadMessageInfo() == nil {
   270  			ms.StoreMessageInfo(mi)
   271  		}
   272  		return ms
   273  	}
   274  	return mi.MessageOf(x)
   275  }
   276  
   277  // Deprecated: Use LoggedRestorePlan.ProtoReflect.Descriptor instead.
   278  func (*LoggedRestorePlan) Descriptor() ([]byte, []int) {
   279  	return file_google_cloud_gkebackup_logging_v1_logged_restore_plan_proto_rawDescGZIP(), []int{0}
   280  }
   281  
   282  func (x *LoggedRestorePlan) GetDescription() string {
   283  	if x != nil {
   284  		return x.Description
   285  	}
   286  	return ""
   287  }
   288  
   289  func (x *LoggedRestorePlan) GetBackupPlan() string {
   290  	if x != nil {
   291  		return x.BackupPlan
   292  	}
   293  	return ""
   294  }
   295  
   296  func (x *LoggedRestorePlan) GetCluster() string {
   297  	if x != nil {
   298  		return x.Cluster
   299  	}
   300  	return ""
   301  }
   302  
   303  func (x *LoggedRestorePlan) GetRestoreConfig() *RestoreConfig {
   304  	if x != nil {
   305  		return x.RestoreConfig
   306  	}
   307  	return nil
   308  }
   309  
   310  func (x *LoggedRestorePlan) GetLabels() map[string]string {
   311  	if x != nil {
   312  		return x.Labels
   313  	}
   314  	return nil
   315  }
   316  
   317  // Configuration of a restore.
   318  type RestoreConfig struct {
   319  	state         protoimpl.MessageState
   320  	sizeCache     protoimpl.SizeCache
   321  	unknownFields protoimpl.UnknownFields
   322  
   323  	// Specifies the mechanism to be used to restore volume data.
   324  	// Default: VOLUME_DATA_RESTORE_POLICY_UNSPECIFIED (will be treated as
   325  	// NO_VOLUME_DATA_RESTORATION).
   326  	VolumeDataRestorePolicy RestoreConfig_VolumeDataRestorePolicy `protobuf:"varint,1,opt,name=volume_data_restore_policy,json=volumeDataRestorePolicy,proto3,enum=google.cloud.gkebackup.logging.v1.RestoreConfig_VolumeDataRestorePolicy" json:"volume_data_restore_policy,omitempty"`
   327  	// Defines the behavior for handling the situation where cluster-scoped
   328  	// resources being restored already exist in the target cluster. This MUST be
   329  	// set to a value other than CLUSTER_RESOURCE_CONFLICT_POLICY_UNSPECIFIED if
   330  	// cluster_resource_restore_scope is not empty.
   331  	ClusterResourceConflictPolicy RestoreConfig_ClusterResourceConflictPolicy `protobuf:"varint,2,opt,name=cluster_resource_conflict_policy,json=clusterResourceConflictPolicy,proto3,enum=google.cloud.gkebackup.logging.v1.RestoreConfig_ClusterResourceConflictPolicy" json:"cluster_resource_conflict_policy,omitempty"`
   332  	// Defines the behavior for handling the situation where sets of namespaced
   333  	// resources being restored already exist in the target cluster. This MUST be
   334  	// set to a value other than NAMESPACED_RESOURCE_RESTORE_MODE_UNSPECIFIED if
   335  	// any namespaced restoration is configured via
   336  	// namespaced_resource_restore_scope .
   337  	NamespacedResourceRestoreMode RestoreConfig_NamespacedResourceRestoreMode `protobuf:"varint,3,opt,name=namespaced_resource_restore_mode,json=namespacedResourceRestoreMode,proto3,enum=google.cloud.gkebackup.logging.v1.RestoreConfig_NamespacedResourceRestoreMode" json:"namespaced_resource_restore_mode,omitempty"`
   338  	// Identifies the cluster-scoped resources to restore from the Backup.
   339  	// Not specifying it means NO cluster resource will be restored.
   340  	ClusterResourceRestoreScope *RestoreConfig_ClusterResourceRestoreScope `protobuf:"bytes,4,opt,name=cluster_resource_restore_scope,json=clusterResourceRestoreScope,proto3" json:"cluster_resource_restore_scope,omitempty"`
   341  	// Specifies the namespaced resources to restore from the Backup.
   342  	// Only one of the entries may be specified. If not specified, NO namespaced
   343  	// resources will be restored.
   344  	//
   345  	// Types that are assignable to NamespacedResourceRestoreScope:
   346  	//	*RestoreConfig_AllNamespaces
   347  	//	*RestoreConfig_SelectedNamespaces
   348  	//	*RestoreConfig_SelectedApplications
   349  	NamespacedResourceRestoreScope isRestoreConfig_NamespacedResourceRestoreScope `protobuf_oneof:"namespaced_resource_restore_scope"`
   350  	// A list of transformation rules to be applied against Kubernetes resources
   351  	// as they are selected for restoration from a Backup. Rules are executed in
   352  	// order defined - this order matters, as changes made by a rule may impact
   353  	// the filtering logic of subsequent rules. An empty list means no
   354  	// substitution will occur.
   355  	SubstitutionRules []*RestoreConfig_SubstitutionRule `protobuf:"bytes,8,rep,name=substitution_rules,json=substitutionRules,proto3" json:"substitution_rules,omitempty"`
   356  }
   357  
   358  func (x *RestoreConfig) Reset() {
   359  	*x = RestoreConfig{}
   360  	if protoimpl.UnsafeEnabled {
   361  		mi := &file_google_cloud_gkebackup_logging_v1_logged_restore_plan_proto_msgTypes[1]
   362  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   363  		ms.StoreMessageInfo(mi)
   364  	}
   365  }
   366  
   367  func (x *RestoreConfig) String() string {
   368  	return protoimpl.X.MessageStringOf(x)
   369  }
   370  
   371  func (*RestoreConfig) ProtoMessage() {}
   372  
   373  func (x *RestoreConfig) ProtoReflect() protoreflect.Message {
   374  	mi := &file_google_cloud_gkebackup_logging_v1_logged_restore_plan_proto_msgTypes[1]
   375  	if protoimpl.UnsafeEnabled && x != nil {
   376  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   377  		if ms.LoadMessageInfo() == nil {
   378  			ms.StoreMessageInfo(mi)
   379  		}
   380  		return ms
   381  	}
   382  	return mi.MessageOf(x)
   383  }
   384  
   385  // Deprecated: Use RestoreConfig.ProtoReflect.Descriptor instead.
   386  func (*RestoreConfig) Descriptor() ([]byte, []int) {
   387  	return file_google_cloud_gkebackup_logging_v1_logged_restore_plan_proto_rawDescGZIP(), []int{1}
   388  }
   389  
   390  func (x *RestoreConfig) GetVolumeDataRestorePolicy() RestoreConfig_VolumeDataRestorePolicy {
   391  	if x != nil {
   392  		return x.VolumeDataRestorePolicy
   393  	}
   394  	return RestoreConfig_VOLUME_DATA_RESTORE_POLICY_UNSPECIFIED
   395  }
   396  
   397  func (x *RestoreConfig) GetClusterResourceConflictPolicy() RestoreConfig_ClusterResourceConflictPolicy {
   398  	if x != nil {
   399  		return x.ClusterResourceConflictPolicy
   400  	}
   401  	return RestoreConfig_CLUSTER_RESOURCE_CONFLICT_POLICY_UNSPECIFIED
   402  }
   403  
   404  func (x *RestoreConfig) GetNamespacedResourceRestoreMode() RestoreConfig_NamespacedResourceRestoreMode {
   405  	if x != nil {
   406  		return x.NamespacedResourceRestoreMode
   407  	}
   408  	return RestoreConfig_NAMESPACED_RESOURCE_RESTORE_MODE_UNSPECIFIED
   409  }
   410  
   411  func (x *RestoreConfig) GetClusterResourceRestoreScope() *RestoreConfig_ClusterResourceRestoreScope {
   412  	if x != nil {
   413  		return x.ClusterResourceRestoreScope
   414  	}
   415  	return nil
   416  }
   417  
   418  func (m *RestoreConfig) GetNamespacedResourceRestoreScope() isRestoreConfig_NamespacedResourceRestoreScope {
   419  	if m != nil {
   420  		return m.NamespacedResourceRestoreScope
   421  	}
   422  	return nil
   423  }
   424  
   425  func (x *RestoreConfig) GetAllNamespaces() bool {
   426  	if x, ok := x.GetNamespacedResourceRestoreScope().(*RestoreConfig_AllNamespaces); ok {
   427  		return x.AllNamespaces
   428  	}
   429  	return false
   430  }
   431  
   432  func (x *RestoreConfig) GetSelectedNamespaces() *Namespaces {
   433  	if x, ok := x.GetNamespacedResourceRestoreScope().(*RestoreConfig_SelectedNamespaces); ok {
   434  		return x.SelectedNamespaces
   435  	}
   436  	return nil
   437  }
   438  
   439  func (x *RestoreConfig) GetSelectedApplications() *NamespacedNames {
   440  	if x, ok := x.GetNamespacedResourceRestoreScope().(*RestoreConfig_SelectedApplications); ok {
   441  		return x.SelectedApplications
   442  	}
   443  	return nil
   444  }
   445  
   446  func (x *RestoreConfig) GetSubstitutionRules() []*RestoreConfig_SubstitutionRule {
   447  	if x != nil {
   448  		return x.SubstitutionRules
   449  	}
   450  	return nil
   451  }
   452  
   453  type isRestoreConfig_NamespacedResourceRestoreScope interface {
   454  	isRestoreConfig_NamespacedResourceRestoreScope()
   455  }
   456  
   457  type RestoreConfig_AllNamespaces struct {
   458  	// Restore all namespaced resources in the Backup if set to "True".
   459  	// Specifying this field to "False" is an error.
   460  	AllNamespaces bool `protobuf:"varint,5,opt,name=all_namespaces,json=allNamespaces,proto3,oneof"`
   461  }
   462  
   463  type RestoreConfig_SelectedNamespaces struct {
   464  	// A list of selected Namespaces to restore from the Backup. The listed
   465  	// Namespaces and all resources contained in them will be restored.
   466  	SelectedNamespaces *Namespaces `protobuf:"bytes,6,opt,name=selected_namespaces,json=selectedNamespaces,proto3,oneof"`
   467  }
   468  
   469  type RestoreConfig_SelectedApplications struct {
   470  	// A list of selected ProtectedApplications to restore. The listed
   471  	// ProtectedApplications and all the resources to which they refer will be
   472  	// restored.
   473  	SelectedApplications *NamespacedNames `protobuf:"bytes,7,opt,name=selected_applications,json=selectedApplications,proto3,oneof"`
   474  }
   475  
   476  func (*RestoreConfig_AllNamespaces) isRestoreConfig_NamespacedResourceRestoreScope() {}
   477  
   478  func (*RestoreConfig_SelectedNamespaces) isRestoreConfig_NamespacedResourceRestoreScope() {}
   479  
   480  func (*RestoreConfig_SelectedApplications) isRestoreConfig_NamespacedResourceRestoreScope() {}
   481  
   482  // This is a direct map to the Kubernetes GroupKind type
   483  // [GroupKind](https://godoc.org/k8s.io/apimachinery/pkg/runtime/schema#GroupKind)
   484  // and is used for identifying specific "types" of resources to restore.
   485  type RestoreConfig_GroupKind struct {
   486  	state         protoimpl.MessageState
   487  	sizeCache     protoimpl.SizeCache
   488  	unknownFields protoimpl.UnknownFields
   489  
   490  	// API group string of a Kubernetes resource, e.g.
   491  	// "apiextensions.k8s.io", "storage.k8s.io", etc.
   492  	// Note: use empty string for core API group
   493  	ResourceGroup string `protobuf:"bytes,1,opt,name=resource_group,json=resourceGroup,proto3" json:"resource_group,omitempty"`
   494  	// Kind of a Kubernetes resource, e.g.
   495  	// "CustomResourceDefinition", "StorageClass", etc.
   496  	ResourceKind string `protobuf:"bytes,2,opt,name=resource_kind,json=resourceKind,proto3" json:"resource_kind,omitempty"`
   497  }
   498  
   499  func (x *RestoreConfig_GroupKind) Reset() {
   500  	*x = RestoreConfig_GroupKind{}
   501  	if protoimpl.UnsafeEnabled {
   502  		mi := &file_google_cloud_gkebackup_logging_v1_logged_restore_plan_proto_msgTypes[3]
   503  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   504  		ms.StoreMessageInfo(mi)
   505  	}
   506  }
   507  
   508  func (x *RestoreConfig_GroupKind) String() string {
   509  	return protoimpl.X.MessageStringOf(x)
   510  }
   511  
   512  func (*RestoreConfig_GroupKind) ProtoMessage() {}
   513  
   514  func (x *RestoreConfig_GroupKind) ProtoReflect() protoreflect.Message {
   515  	mi := &file_google_cloud_gkebackup_logging_v1_logged_restore_plan_proto_msgTypes[3]
   516  	if protoimpl.UnsafeEnabled && x != nil {
   517  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   518  		if ms.LoadMessageInfo() == nil {
   519  			ms.StoreMessageInfo(mi)
   520  		}
   521  		return ms
   522  	}
   523  	return mi.MessageOf(x)
   524  }
   525  
   526  // Deprecated: Use RestoreConfig_GroupKind.ProtoReflect.Descriptor instead.
   527  func (*RestoreConfig_GroupKind) Descriptor() ([]byte, []int) {
   528  	return file_google_cloud_gkebackup_logging_v1_logged_restore_plan_proto_rawDescGZIP(), []int{1, 0}
   529  }
   530  
   531  func (x *RestoreConfig_GroupKind) GetResourceGroup() string {
   532  	if x != nil {
   533  		return x.ResourceGroup
   534  	}
   535  	return ""
   536  }
   537  
   538  func (x *RestoreConfig_GroupKind) GetResourceKind() string {
   539  	if x != nil {
   540  		return x.ResourceKind
   541  	}
   542  	return ""
   543  }
   544  
   545  // Identifies the cluster-scoped resources to restore from the Backup.
   546  type RestoreConfig_ClusterResourceRestoreScope struct {
   547  	state         protoimpl.MessageState
   548  	sizeCache     protoimpl.SizeCache
   549  	unknownFields protoimpl.UnknownFields
   550  
   551  	// A list of "types" of cluster-scoped resources to be restored from the
   552  	// Backup.  An empty list means that NO cluster-scoped resources will be
   553  	// restored. Note that Namespaces and PersistentVolume restoration is
   554  	// handled separately and is not governed by this field.
   555  	SelectedGroupKinds []*RestoreConfig_GroupKind `protobuf:"bytes,1,rep,name=selected_group_kinds,json=selectedGroupKinds,proto3" json:"selected_group_kinds,omitempty"`
   556  }
   557  
   558  func (x *RestoreConfig_ClusterResourceRestoreScope) Reset() {
   559  	*x = RestoreConfig_ClusterResourceRestoreScope{}
   560  	if protoimpl.UnsafeEnabled {
   561  		mi := &file_google_cloud_gkebackup_logging_v1_logged_restore_plan_proto_msgTypes[4]
   562  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   563  		ms.StoreMessageInfo(mi)
   564  	}
   565  }
   566  
   567  func (x *RestoreConfig_ClusterResourceRestoreScope) String() string {
   568  	return protoimpl.X.MessageStringOf(x)
   569  }
   570  
   571  func (*RestoreConfig_ClusterResourceRestoreScope) ProtoMessage() {}
   572  
   573  func (x *RestoreConfig_ClusterResourceRestoreScope) ProtoReflect() protoreflect.Message {
   574  	mi := &file_google_cloud_gkebackup_logging_v1_logged_restore_plan_proto_msgTypes[4]
   575  	if protoimpl.UnsafeEnabled && x != nil {
   576  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   577  		if ms.LoadMessageInfo() == nil {
   578  			ms.StoreMessageInfo(mi)
   579  		}
   580  		return ms
   581  	}
   582  	return mi.MessageOf(x)
   583  }
   584  
   585  // Deprecated: Use RestoreConfig_ClusterResourceRestoreScope.ProtoReflect.Descriptor instead.
   586  func (*RestoreConfig_ClusterResourceRestoreScope) Descriptor() ([]byte, []int) {
   587  	return file_google_cloud_gkebackup_logging_v1_logged_restore_plan_proto_rawDescGZIP(), []int{1, 1}
   588  }
   589  
   590  func (x *RestoreConfig_ClusterResourceRestoreScope) GetSelectedGroupKinds() []*RestoreConfig_GroupKind {
   591  	if x != nil {
   592  		return x.SelectedGroupKinds
   593  	}
   594  	return nil
   595  }
   596  
   597  // A transformation rule to be applied against Kubernetes resources as they
   598  // are selected for restoration from a Backup. A rule contains both filtering
   599  // logic (which resources are subject to substitution) and substitution logic.
   600  type RestoreConfig_SubstitutionRule struct {
   601  	state         protoimpl.MessageState
   602  	sizeCache     protoimpl.SizeCache
   603  	unknownFields protoimpl.UnknownFields
   604  
   605  	// (Filtering parameter) Any resource subject to substitution must be
   606  	// contained within one of the listed Kubernetes Namespace in the Backup.
   607  	// If this field is not provided, no namespace filtering will be performed
   608  	// (all resources in all Namespaces, including all cluster-scoped resources,
   609  	// will be candidates for substitution).
   610  	// To mix cluster-scoped and namespaced resources in the same rule, use an
   611  	// empty string ("") as one of the target namespaces.
   612  	TargetNamespaces []string `protobuf:"bytes,1,rep,name=target_namespaces,json=targetNamespaces,proto3" json:"target_namespaces,omitempty"`
   613  	// (Filtering parameter) Any resource subject to substitution must belong to
   614  	// one of the listed "types".
   615  	// If this field is not provided, no type filtering will be performed (all
   616  	// resources of all types matching previous filtering parameters will be
   617  	// candidates for substitution).
   618  	TargetGroupKinds []*RestoreConfig_GroupKind `protobuf:"bytes,2,rep,name=target_group_kinds,json=targetGroupKinds,proto3" json:"target_group_kinds,omitempty"`
   619  	// This is a [JSONPath]
   620  	// ([https://kubernetes.io/docs/reference/kubectl/jsonpath/)
   621  	// expression that matches specific fields of candidate
   622  	// resources and it operates as both a filtering parameter (resources that
   623  	// are not matched with this expression will not be candidates for
   624  	// substitution) as well as a field identifier (identifies exactly which
   625  	// fields out of the candidate resources will be modified).
   626  	TargetJsonPath string `protobuf:"bytes,3,opt,name=target_json_path,json=targetJsonPath,proto3" json:"target_json_path,omitempty"`
   627  	// (Filtering parameter) This is a [regular expression]
   628  	// (https://en.wikipedia.org/wiki/Regular_expression)
   629  	// that is compared against the fields matched by the target_json_path
   630  	// expression (and must also have passed the previous filters).
   631  	// Substitution will not be performed against fields whose
   632  	// value does not match this expression. If this field is NOT specified,
   633  	// then ALL fields matched by the target_json_path expression will undergo
   634  	// substitution. Note that an empty (e.g., "", rather than unspecified)
   635  	// value for for this field will only match empty fields.
   636  	OriginalValuePattern string `protobuf:"bytes,4,opt,name=original_value_pattern,json=originalValuePattern,proto3" json:"original_value_pattern,omitempty"`
   637  	// This is the new value to set for any fields that pass the filtering and
   638  	// selection criteria. To remove a value from a Kubernetes resource, either
   639  	// leave this field unspecified, or set it to the empty string ("").
   640  	NewValue string `protobuf:"bytes,5,opt,name=new_value,json=newValue,proto3" json:"new_value,omitempty"`
   641  }
   642  
   643  func (x *RestoreConfig_SubstitutionRule) Reset() {
   644  	*x = RestoreConfig_SubstitutionRule{}
   645  	if protoimpl.UnsafeEnabled {
   646  		mi := &file_google_cloud_gkebackup_logging_v1_logged_restore_plan_proto_msgTypes[5]
   647  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   648  		ms.StoreMessageInfo(mi)
   649  	}
   650  }
   651  
   652  func (x *RestoreConfig_SubstitutionRule) String() string {
   653  	return protoimpl.X.MessageStringOf(x)
   654  }
   655  
   656  func (*RestoreConfig_SubstitutionRule) ProtoMessage() {}
   657  
   658  func (x *RestoreConfig_SubstitutionRule) ProtoReflect() protoreflect.Message {
   659  	mi := &file_google_cloud_gkebackup_logging_v1_logged_restore_plan_proto_msgTypes[5]
   660  	if protoimpl.UnsafeEnabled && x != nil {
   661  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   662  		if ms.LoadMessageInfo() == nil {
   663  			ms.StoreMessageInfo(mi)
   664  		}
   665  		return ms
   666  	}
   667  	return mi.MessageOf(x)
   668  }
   669  
   670  // Deprecated: Use RestoreConfig_SubstitutionRule.ProtoReflect.Descriptor instead.
   671  func (*RestoreConfig_SubstitutionRule) Descriptor() ([]byte, []int) {
   672  	return file_google_cloud_gkebackup_logging_v1_logged_restore_plan_proto_rawDescGZIP(), []int{1, 2}
   673  }
   674  
   675  func (x *RestoreConfig_SubstitutionRule) GetTargetNamespaces() []string {
   676  	if x != nil {
   677  		return x.TargetNamespaces
   678  	}
   679  	return nil
   680  }
   681  
   682  func (x *RestoreConfig_SubstitutionRule) GetTargetGroupKinds() []*RestoreConfig_GroupKind {
   683  	if x != nil {
   684  		return x.TargetGroupKinds
   685  	}
   686  	return nil
   687  }
   688  
   689  func (x *RestoreConfig_SubstitutionRule) GetTargetJsonPath() string {
   690  	if x != nil {
   691  		return x.TargetJsonPath
   692  	}
   693  	return ""
   694  }
   695  
   696  func (x *RestoreConfig_SubstitutionRule) GetOriginalValuePattern() string {
   697  	if x != nil {
   698  		return x.OriginalValuePattern
   699  	}
   700  	return ""
   701  }
   702  
   703  func (x *RestoreConfig_SubstitutionRule) GetNewValue() string {
   704  	if x != nil {
   705  		return x.NewValue
   706  	}
   707  	return ""
   708  }
   709  
   710  var File_google_cloud_gkebackup_logging_v1_logged_restore_plan_proto protoreflect.FileDescriptor
   711  
   712  var file_google_cloud_gkebackup_logging_v1_logged_restore_plan_proto_rawDesc = []byte{
   713  	0x0a, 0x3b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x67,
   714  	0x6b, 0x65, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x2f, 0x6c, 0x6f, 0x67, 0x67, 0x69, 0x6e, 0x67,
   715  	0x2f, 0x76, 0x31, 0x2f, 0x6c, 0x6f, 0x67, 0x67, 0x65, 0x64, 0x5f, 0x72, 0x65, 0x73, 0x74, 0x6f,
   716  	0x72, 0x65, 0x5f, 0x70, 0x6c, 0x61, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x21, 0x67,
   717  	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6b, 0x65, 0x62,
   718  	0x61, 0x63, 0x6b, 0x75, 0x70, 0x2e, 0x6c, 0x6f, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31,
   719  	0x1a, 0x35, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x67,
   720  	0x6b, 0x65, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x2f, 0x6c, 0x6f, 0x67, 0x67, 0x69, 0x6e, 0x67,
   721  	0x2f, 0x76, 0x31, 0x2f, 0x6c, 0x6f, 0x67, 0x67, 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f,
   722  	0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xde, 0x02, 0x0a, 0x11, 0x4c, 0x6f, 0x67, 0x67,
   723  	0x65, 0x64, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x50, 0x6c, 0x61, 0x6e, 0x12, 0x20, 0x0a,
   724  	0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01,
   725  	0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12,
   726  	0x1f, 0x0a, 0x0b, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x5f, 0x70, 0x6c, 0x61, 0x6e, 0x18, 0x02,
   727  	0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x50, 0x6c, 0x61, 0x6e,
   728  	0x12, 0x18, 0x0a, 0x07, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28,
   729  	0x09, 0x52, 0x07, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x12, 0x57, 0x0a, 0x0e, 0x72, 0x65,
   730  	0x73, 0x74, 0x6f, 0x72, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x04, 0x20, 0x01,
   731  	0x28, 0x0b, 0x32, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75,
   732  	0x64, 0x2e, 0x67, 0x6b, 0x65, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x2e, 0x6c, 0x6f, 0x67, 0x67,
   733  	0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x43, 0x6f,
   734  	0x6e, 0x66, 0x69, 0x67, 0x52, 0x0d, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x43, 0x6f, 0x6e,
   735  	0x66, 0x69, 0x67, 0x12, 0x58, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x05, 0x20,
   736  	0x03, 0x28, 0x0b, 0x32, 0x40, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f,
   737  	0x75, 0x64, 0x2e, 0x67, 0x6b, 0x65, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x2e, 0x6c, 0x6f, 0x67,
   738  	0x67, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x67, 0x65, 0x64, 0x52, 0x65,
   739  	0x73, 0x74, 0x6f, 0x72, 0x65, 0x50, 0x6c, 0x61, 0x6e, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73,
   740  	0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x1a, 0x39, 0x0a,
   741  	0x0b, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03,
   742  	0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14,
   743  	0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76,
   744  	0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xb5, 0x0f, 0x0a, 0x0d, 0x52, 0x65, 0x73,
   745  	0x74, 0x6f, 0x72, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x85, 0x01, 0x0a, 0x1a, 0x76,
   746  	0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x72, 0x65, 0x73, 0x74, 0x6f,
   747  	0x72, 0x65, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32,
   748  	0x48, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67,
   749  	0x6b, 0x65, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x2e, 0x6c, 0x6f, 0x67, 0x67, 0x69, 0x6e, 0x67,
   750  	0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69,
   751  	0x67, 0x2e, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x74,
   752  	0x6f, 0x72, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x17, 0x76, 0x6f, 0x6c, 0x75, 0x6d,
   753  	0x65, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x50, 0x6f, 0x6c, 0x69,
   754  	0x63, 0x79, 0x12, 0x97, 0x01, 0x0a, 0x20, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x72,
   755  	0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74,
   756  	0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x4e, 0x2e,
   757  	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6b, 0x65,
   758  	0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x2e, 0x6c, 0x6f, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x2e, 0x76,
   759  	0x31, 0x2e, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e,
   760  	0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43,
   761  	0x6f, 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x1d, 0x63,
   762  	0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x6f,
   763  	0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x97, 0x01, 0x0a,
   764  	0x20, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x64, 0x5f, 0x72, 0x65, 0x73, 0x6f,
   765  	0x75, 0x72, 0x63, 0x65, 0x5f, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x5f, 0x6d, 0x6f, 0x64,
   766  	0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x4e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
   767  	0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6b, 0x65, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70,
   768  	0x2e, 0x6c, 0x6f, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x74,
   769  	0x6f, 0x72, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70,
   770  	0x61, 0x63, 0x65, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x73, 0x74,
   771  	0x6f, 0x72, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x1d, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61,
   772  	0x63, 0x65, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x73, 0x74, 0x6f,
   773  	0x72, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x91, 0x01, 0x0a, 0x1e, 0x63, 0x6c, 0x75, 0x73, 0x74,
   774  	0x65, 0x72, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x72, 0x65, 0x73, 0x74,
   775  	0x6f, 0x72, 0x65, 0x5f, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32,
   776  	0x4c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67,
   777  	0x6b, 0x65, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x2e, 0x6c, 0x6f, 0x67, 0x67, 0x69, 0x6e, 0x67,
   778  	0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69,
   779  	0x67, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63,
   780  	0x65, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x53, 0x63, 0x6f, 0x70, 0x65, 0x52, 0x1b, 0x63,
   781  	0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65,
   782  	0x73, 0x74, 0x6f, 0x72, 0x65, 0x53, 0x63, 0x6f, 0x70, 0x65, 0x12, 0x27, 0x0a, 0x0e, 0x61, 0x6c,
   783  	0x6c, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01,
   784  	0x28, 0x08, 0x48, 0x00, 0x52, 0x0d, 0x61, 0x6c, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61,
   785  	0x63, 0x65, 0x73, 0x12, 0x60, 0x0a, 0x13, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x5f,
   786  	0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b,
   787  	0x32, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e,
   788  	0x67, 0x6b, 0x65, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x2e, 0x6c, 0x6f, 0x67, 0x67, 0x69, 0x6e,
   789  	0x67, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x48,
   790  	0x00, 0x52, 0x12, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x73,
   791  	0x70, 0x61, 0x63, 0x65, 0x73, 0x12, 0x69, 0x0a, 0x15, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65,
   792  	0x64, 0x5f, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x07,
   793  	0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c,
   794  	0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6b, 0x65, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x2e, 0x6c, 0x6f,
   795  	0x67, 0x67, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61,
   796  	0x63, 0x65, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x48, 0x00, 0x52, 0x14, 0x73, 0x65, 0x6c, 0x65,
   797  	0x63, 0x74, 0x65, 0x64, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73,
   798  	0x12, 0x70, 0x0a, 0x12, 0x73, 0x75, 0x62, 0x73, 0x74, 0x69, 0x74, 0x75, 0x74, 0x69, 0x6f, 0x6e,
   799  	0x5f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x41, 0x2e, 0x67,
   800  	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6b, 0x65, 0x62,
   801  	0x61, 0x63, 0x6b, 0x75, 0x70, 0x2e, 0x6c, 0x6f, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31,
   802  	0x2e, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x53,
   803  	0x75, 0x62, 0x73, 0x74, 0x69, 0x74, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x75, 0x6c, 0x65, 0x52,
   804  	0x11, 0x73, 0x75, 0x62, 0x73, 0x74, 0x69, 0x74, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x75, 0x6c,
   805  	0x65, 0x73, 0x1a, 0x57, 0x0a, 0x09, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4b, 0x69, 0x6e, 0x64, 0x12,
   806  	0x25, 0x0a, 0x0e, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x67, 0x72, 0x6f, 0x75,
   807  	0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63,
   808  	0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72,
   809  	0x63, 0x65, 0x5f, 0x6b, 0x69, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x72,
   810  	0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4b, 0x69, 0x6e, 0x64, 0x1a, 0x8b, 0x01, 0x0a, 0x1b,
   811  	0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52,
   812  	0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x53, 0x63, 0x6f, 0x70, 0x65, 0x12, 0x6c, 0x0a, 0x14, 0x73,
   813  	0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x6b, 0x69,
   814  	0x6e, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
   815  	0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6b, 0x65, 0x62, 0x61, 0x63, 0x6b,
   816  	0x75, 0x70, 0x2e, 0x6c, 0x6f, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65,
   817  	0x73, 0x74, 0x6f, 0x72, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x47, 0x72, 0x6f, 0x75,
   818  	0x70, 0x4b, 0x69, 0x6e, 0x64, 0x52, 0x12, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x47,
   819  	0x72, 0x6f, 0x75, 0x70, 0x4b, 0x69, 0x6e, 0x64, 0x73, 0x1a, 0xa6, 0x02, 0x0a, 0x10, 0x53, 0x75,
   820  	0x62, 0x73, 0x74, 0x69, 0x74, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x75, 0x6c, 0x65, 0x12, 0x2b,
   821  	0x0a, 0x11, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61,
   822  	0x63, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x10, 0x74, 0x61, 0x72, 0x67, 0x65,
   823  	0x74, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x12, 0x68, 0x0a, 0x12, 0x74,
   824  	0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x6b, 0x69, 0x6e, 0x64,
   825  	0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
   826  	0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6b, 0x65, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70,
   827  	0x2e, 0x6c, 0x6f, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x74,
   828  	0x6f, 0x72, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4b,
   829  	0x69, 0x6e, 0x64, 0x52, 0x10, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70,
   830  	0x4b, 0x69, 0x6e, 0x64, 0x73, 0x12, 0x28, 0x0a, 0x10, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f,
   831  	0x6a, 0x73, 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52,
   832  	0x0e, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x4a, 0x73, 0x6f, 0x6e, 0x50, 0x61, 0x74, 0x68, 0x12,
   833  	0x34, 0x0a, 0x16, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x5f, 0x76, 0x61, 0x6c, 0x75,
   834  	0x65, 0x5f, 0x70, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52,
   835  	0x14, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x50, 0x61,
   836  	0x74, 0x74, 0x65, 0x72, 0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x6e, 0x65, 0x77, 0x5f, 0x76, 0x61, 0x6c,
   837  	0x75, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6e, 0x65, 0x77, 0x56, 0x61, 0x6c,
   838  	0x75, 0x65, 0x22, 0xaf, 0x01, 0x0a, 0x17, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x44, 0x61, 0x74,
   839  	0x61, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x2a,
   840  	0x0a, 0x26, 0x56, 0x4f, 0x4c, 0x55, 0x4d, 0x45, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x52, 0x45,
   841  	0x53, 0x54, 0x4f, 0x52, 0x45, 0x5f, 0x50, 0x4f, 0x4c, 0x49, 0x43, 0x59, 0x5f, 0x55, 0x4e, 0x53,
   842  	0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x23, 0x0a, 0x1f, 0x52, 0x45,
   843  	0x53, 0x54, 0x4f, 0x52, 0x45, 0x5f, 0x56, 0x4f, 0x4c, 0x55, 0x4d, 0x45, 0x5f, 0x44, 0x41, 0x54,
   844  	0x41, 0x5f, 0x46, 0x52, 0x4f, 0x4d, 0x5f, 0x42, 0x41, 0x43, 0x4b, 0x55, 0x50, 0x10, 0x01, 0x12,
   845  	0x23, 0x0a, 0x1f, 0x52, 0x45, 0x55, 0x53, 0x45, 0x5f, 0x56, 0x4f, 0x4c, 0x55, 0x4d, 0x45, 0x5f,
   846  	0x48, 0x41, 0x4e, 0x44, 0x4c, 0x45, 0x5f, 0x46, 0x52, 0x4f, 0x4d, 0x5f, 0x42, 0x41, 0x43, 0x4b,
   847  	0x55, 0x50, 0x10, 0x02, 0x12, 0x1e, 0x0a, 0x1a, 0x4e, 0x4f, 0x5f, 0x56, 0x4f, 0x4c, 0x55, 0x4d,
   848  	0x45, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x52, 0x45, 0x53, 0x54, 0x4f, 0x52, 0x41, 0x54, 0x49,
   849  	0x4f, 0x4e, 0x10, 0x03, 0x22, 0x83, 0x01, 0x0a, 0x1d, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72,
   850  	0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74,
   851  	0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x30, 0x0a, 0x2c, 0x43, 0x4c, 0x55, 0x53, 0x54, 0x45,
   852  	0x52, 0x5f, 0x52, 0x45, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x43, 0x4f, 0x4e, 0x46, 0x4c,
   853  	0x49, 0x43, 0x54, 0x5f, 0x50, 0x4f, 0x4c, 0x49, 0x43, 0x59, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45,
   854  	0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x18, 0x0a, 0x14, 0x55, 0x53, 0x45, 0x5f,
   855  	0x45, 0x58, 0x49, 0x53, 0x54, 0x49, 0x4e, 0x47, 0x5f, 0x56, 0x45, 0x52, 0x53, 0x49, 0x4f, 0x4e,
   856  	0x10, 0x01, 0x12, 0x16, 0x0a, 0x12, 0x55, 0x53, 0x45, 0x5f, 0x42, 0x41, 0x43, 0x4b, 0x55, 0x50,
   857  	0x5f, 0x56, 0x45, 0x52, 0x53, 0x49, 0x4f, 0x4e, 0x10, 0x02, 0x22, 0x7f, 0x0a, 0x1d, 0x4e, 0x61,
   858  	0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65,
   859  	0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x30, 0x0a, 0x2c, 0x4e,
   860  	0x41, 0x4d, 0x45, 0x53, 0x50, 0x41, 0x43, 0x45, 0x44, 0x5f, 0x52, 0x45, 0x53, 0x4f, 0x55, 0x52,
   861  	0x43, 0x45, 0x5f, 0x52, 0x45, 0x53, 0x54, 0x4f, 0x52, 0x45, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f,
   862  	0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x16, 0x0a,
   863  	0x12, 0x44, 0x45, 0x4c, 0x45, 0x54, 0x45, 0x5f, 0x41, 0x4e, 0x44, 0x5f, 0x52, 0x45, 0x53, 0x54,
   864  	0x4f, 0x52, 0x45, 0x10, 0x01, 0x12, 0x14, 0x0a, 0x10, 0x46, 0x41, 0x49, 0x4c, 0x5f, 0x4f, 0x4e,
   865  	0x5f, 0x43, 0x4f, 0x4e, 0x46, 0x4c, 0x49, 0x43, 0x54, 0x10, 0x02, 0x42, 0x23, 0x0a, 0x21, 0x6e,
   866  	0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x64, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72,
   867  	0x63, 0x65, 0x5f, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x5f, 0x73, 0x63, 0x6f, 0x70, 0x65,
   868  	0x42, 0xf7, 0x01, 0x0a, 0x21, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75,
   869  	0x64, 0x2e, 0x67, 0x6b, 0x65, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x2e, 0x6c, 0x6f, 0x67, 0x67,
   870  	0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x42, 0x16, 0x4c, 0x6f, 0x67, 0x67, 0x65, 0x64, 0x52, 0x65,
   871  	0x73, 0x74, 0x6f, 0x72, 0x65, 0x50, 0x6c, 0x61, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01,
   872  	0x5a, 0x48, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e,
   873  	0x6f, 0x72, 0x67, 0x2f, 0x67, 0x65, 0x6e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x6f,
   874  	0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x67, 0x6b,
   875  	0x65, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x2f, 0x6c, 0x6f, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x2f,
   876  	0x76, 0x31, 0x3b, 0x6c, 0x6f, 0x67, 0x67, 0x69, 0x6e, 0x67, 0xaa, 0x02, 0x21, 0x47, 0x6f, 0x6f,
   877  	0x67, 0x6c, 0x65, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x47, 0x6b, 0x65, 0x42, 0x61, 0x63,
   878  	0x6b, 0x75, 0x70, 0x2e, 0x4c, 0x6f, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x2e, 0x56, 0x31, 0xca, 0x02,
   879  	0x21, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5c, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x5c, 0x47, 0x6b,
   880  	0x65, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x5c, 0x4c, 0x6f, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x5c,
   881  	0x56, 0x31, 0xea, 0x02, 0x25, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x3a, 0x3a, 0x43, 0x6c, 0x6f,
   882  	0x75, 0x64, 0x3a, 0x3a, 0x47, 0x6b, 0x65, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x3a, 0x3a, 0x4c,
   883  	0x6f, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74,
   884  	0x6f, 0x33,
   885  }
   886  
   887  var (
   888  	file_google_cloud_gkebackup_logging_v1_logged_restore_plan_proto_rawDescOnce sync.Once
   889  	file_google_cloud_gkebackup_logging_v1_logged_restore_plan_proto_rawDescData = file_google_cloud_gkebackup_logging_v1_logged_restore_plan_proto_rawDesc
   890  )
   891  
   892  func file_google_cloud_gkebackup_logging_v1_logged_restore_plan_proto_rawDescGZIP() []byte {
   893  	file_google_cloud_gkebackup_logging_v1_logged_restore_plan_proto_rawDescOnce.Do(func() {
   894  		file_google_cloud_gkebackup_logging_v1_logged_restore_plan_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_gkebackup_logging_v1_logged_restore_plan_proto_rawDescData)
   895  	})
   896  	return file_google_cloud_gkebackup_logging_v1_logged_restore_plan_proto_rawDescData
   897  }
   898  
   899  var file_google_cloud_gkebackup_logging_v1_logged_restore_plan_proto_enumTypes = make([]protoimpl.EnumInfo, 3)
   900  var file_google_cloud_gkebackup_logging_v1_logged_restore_plan_proto_msgTypes = make([]protoimpl.MessageInfo, 6)
   901  var file_google_cloud_gkebackup_logging_v1_logged_restore_plan_proto_goTypes = []interface{}{
   902  	(RestoreConfig_VolumeDataRestorePolicy)(0),        // 0: google.cloud.gkebackup.logging.v1.RestoreConfig.VolumeDataRestorePolicy
   903  	(RestoreConfig_ClusterResourceConflictPolicy)(0),  // 1: google.cloud.gkebackup.logging.v1.RestoreConfig.ClusterResourceConflictPolicy
   904  	(RestoreConfig_NamespacedResourceRestoreMode)(0),  // 2: google.cloud.gkebackup.logging.v1.RestoreConfig.NamespacedResourceRestoreMode
   905  	(*LoggedRestorePlan)(nil),                         // 3: google.cloud.gkebackup.logging.v1.LoggedRestorePlan
   906  	(*RestoreConfig)(nil),                             // 4: google.cloud.gkebackup.logging.v1.RestoreConfig
   907  	nil,                                               // 5: google.cloud.gkebackup.logging.v1.LoggedRestorePlan.LabelsEntry
   908  	(*RestoreConfig_GroupKind)(nil),                   // 6: google.cloud.gkebackup.logging.v1.RestoreConfig.GroupKind
   909  	(*RestoreConfig_ClusterResourceRestoreScope)(nil), // 7: google.cloud.gkebackup.logging.v1.RestoreConfig.ClusterResourceRestoreScope
   910  	(*RestoreConfig_SubstitutionRule)(nil),            // 8: google.cloud.gkebackup.logging.v1.RestoreConfig.SubstitutionRule
   911  	(*Namespaces)(nil),                                // 9: google.cloud.gkebackup.logging.v1.Namespaces
   912  	(*NamespacedNames)(nil),                           // 10: google.cloud.gkebackup.logging.v1.NamespacedNames
   913  }
   914  var file_google_cloud_gkebackup_logging_v1_logged_restore_plan_proto_depIdxs = []int32{
   915  	4,  // 0: google.cloud.gkebackup.logging.v1.LoggedRestorePlan.restore_config:type_name -> google.cloud.gkebackup.logging.v1.RestoreConfig
   916  	5,  // 1: google.cloud.gkebackup.logging.v1.LoggedRestorePlan.labels:type_name -> google.cloud.gkebackup.logging.v1.LoggedRestorePlan.LabelsEntry
   917  	0,  // 2: google.cloud.gkebackup.logging.v1.RestoreConfig.volume_data_restore_policy:type_name -> google.cloud.gkebackup.logging.v1.RestoreConfig.VolumeDataRestorePolicy
   918  	1,  // 3: google.cloud.gkebackup.logging.v1.RestoreConfig.cluster_resource_conflict_policy:type_name -> google.cloud.gkebackup.logging.v1.RestoreConfig.ClusterResourceConflictPolicy
   919  	2,  // 4: google.cloud.gkebackup.logging.v1.RestoreConfig.namespaced_resource_restore_mode:type_name -> google.cloud.gkebackup.logging.v1.RestoreConfig.NamespacedResourceRestoreMode
   920  	7,  // 5: google.cloud.gkebackup.logging.v1.RestoreConfig.cluster_resource_restore_scope:type_name -> google.cloud.gkebackup.logging.v1.RestoreConfig.ClusterResourceRestoreScope
   921  	9,  // 6: google.cloud.gkebackup.logging.v1.RestoreConfig.selected_namespaces:type_name -> google.cloud.gkebackup.logging.v1.Namespaces
   922  	10, // 7: google.cloud.gkebackup.logging.v1.RestoreConfig.selected_applications:type_name -> google.cloud.gkebackup.logging.v1.NamespacedNames
   923  	8,  // 8: google.cloud.gkebackup.logging.v1.RestoreConfig.substitution_rules:type_name -> google.cloud.gkebackup.logging.v1.RestoreConfig.SubstitutionRule
   924  	6,  // 9: google.cloud.gkebackup.logging.v1.RestoreConfig.ClusterResourceRestoreScope.selected_group_kinds:type_name -> google.cloud.gkebackup.logging.v1.RestoreConfig.GroupKind
   925  	6,  // 10: google.cloud.gkebackup.logging.v1.RestoreConfig.SubstitutionRule.target_group_kinds:type_name -> google.cloud.gkebackup.logging.v1.RestoreConfig.GroupKind
   926  	11, // [11:11] is the sub-list for method output_type
   927  	11, // [11:11] is the sub-list for method input_type
   928  	11, // [11:11] is the sub-list for extension type_name
   929  	11, // [11:11] is the sub-list for extension extendee
   930  	0,  // [0:11] is the sub-list for field type_name
   931  }
   932  
   933  func init() { file_google_cloud_gkebackup_logging_v1_logged_restore_plan_proto_init() }
   934  func file_google_cloud_gkebackup_logging_v1_logged_restore_plan_proto_init() {
   935  	if File_google_cloud_gkebackup_logging_v1_logged_restore_plan_proto != nil {
   936  		return
   937  	}
   938  	file_google_cloud_gkebackup_logging_v1_logged_common_proto_init()
   939  	if !protoimpl.UnsafeEnabled {
   940  		file_google_cloud_gkebackup_logging_v1_logged_restore_plan_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
   941  			switch v := v.(*LoggedRestorePlan); i {
   942  			case 0:
   943  				return &v.state
   944  			case 1:
   945  				return &v.sizeCache
   946  			case 2:
   947  				return &v.unknownFields
   948  			default:
   949  				return nil
   950  			}
   951  		}
   952  		file_google_cloud_gkebackup_logging_v1_logged_restore_plan_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
   953  			switch v := v.(*RestoreConfig); i {
   954  			case 0:
   955  				return &v.state
   956  			case 1:
   957  				return &v.sizeCache
   958  			case 2:
   959  				return &v.unknownFields
   960  			default:
   961  				return nil
   962  			}
   963  		}
   964  		file_google_cloud_gkebackup_logging_v1_logged_restore_plan_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
   965  			switch v := v.(*RestoreConfig_GroupKind); i {
   966  			case 0:
   967  				return &v.state
   968  			case 1:
   969  				return &v.sizeCache
   970  			case 2:
   971  				return &v.unknownFields
   972  			default:
   973  				return nil
   974  			}
   975  		}
   976  		file_google_cloud_gkebackup_logging_v1_logged_restore_plan_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
   977  			switch v := v.(*RestoreConfig_ClusterResourceRestoreScope); i {
   978  			case 0:
   979  				return &v.state
   980  			case 1:
   981  				return &v.sizeCache
   982  			case 2:
   983  				return &v.unknownFields
   984  			default:
   985  				return nil
   986  			}
   987  		}
   988  		file_google_cloud_gkebackup_logging_v1_logged_restore_plan_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
   989  			switch v := v.(*RestoreConfig_SubstitutionRule); i {
   990  			case 0:
   991  				return &v.state
   992  			case 1:
   993  				return &v.sizeCache
   994  			case 2:
   995  				return &v.unknownFields
   996  			default:
   997  				return nil
   998  			}
   999  		}
  1000  	}
  1001  	file_google_cloud_gkebackup_logging_v1_logged_restore_plan_proto_msgTypes[1].OneofWrappers = []interface{}{
  1002  		(*RestoreConfig_AllNamespaces)(nil),
  1003  		(*RestoreConfig_SelectedNamespaces)(nil),
  1004  		(*RestoreConfig_SelectedApplications)(nil),
  1005  	}
  1006  	type x struct{}
  1007  	out := protoimpl.TypeBuilder{
  1008  		File: protoimpl.DescBuilder{
  1009  			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
  1010  			RawDescriptor: file_google_cloud_gkebackup_logging_v1_logged_restore_plan_proto_rawDesc,
  1011  			NumEnums:      3,
  1012  			NumMessages:   6,
  1013  			NumExtensions: 0,
  1014  			NumServices:   0,
  1015  		},
  1016  		GoTypes:           file_google_cloud_gkebackup_logging_v1_logged_restore_plan_proto_goTypes,
  1017  		DependencyIndexes: file_google_cloud_gkebackup_logging_v1_logged_restore_plan_proto_depIdxs,
  1018  		EnumInfos:         file_google_cloud_gkebackup_logging_v1_logged_restore_plan_proto_enumTypes,
  1019  		MessageInfos:      file_google_cloud_gkebackup_logging_v1_logged_restore_plan_proto_msgTypes,
  1020  	}.Build()
  1021  	File_google_cloud_gkebackup_logging_v1_logged_restore_plan_proto = out.File
  1022  	file_google_cloud_gkebackup_logging_v1_logged_restore_plan_proto_rawDesc = nil
  1023  	file_google_cloud_gkebackup_logging_v1_logged_restore_plan_proto_goTypes = nil
  1024  	file_google_cloud_gkebackup_logging_v1_logged_restore_plan_proto_depIdxs = nil
  1025  }
  1026  

View as plain text