...

Source file src/google.golang.org/genproto/googleapis/cloud/gkehub/v1alpha/feature.pb.go

Documentation: google.golang.org/genproto/googleapis/cloud/gkehub/v1alpha

     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/gkehub/v1alpha/feature.proto
    20  
    21  package gkehub
    22  
    23  import (
    24  	reflect "reflect"
    25  	sync "sync"
    26  
    27  	_ "google.golang.org/genproto/googleapis/api/annotations"
    28  	v1alpha1 "google.golang.org/genproto/googleapis/cloud/gkehub/cloudauditlogging/v1alpha"
    29  	v1alpha3 "google.golang.org/genproto/googleapis/cloud/gkehub/configmanagement/v1alpha"
    30  	v1alpha4 "google.golang.org/genproto/googleapis/cloud/gkehub/metering/v1alpha"
    31  	v1alpha "google.golang.org/genproto/googleapis/cloud/gkehub/multiclusteringress/v1alpha"
    32  	v1alpha2 "google.golang.org/genproto/googleapis/cloud/gkehub/servicemesh/v1alpha"
    33  	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
    34  	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
    35  	timestamppb "google.golang.org/protobuf/types/known/timestamppb"
    36  )
    37  
    38  const (
    39  	// Verify that this generated code is sufficiently up-to-date.
    40  	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
    41  	// Verify that runtime/protoimpl is sufficiently up-to-date.
    42  	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
    43  )
    44  
    45  // State describes the lifecycle status of a Feature.
    46  type FeatureResourceState_State int32
    47  
    48  const (
    49  	// State is unknown or not set.
    50  	FeatureResourceState_STATE_UNSPECIFIED FeatureResourceState_State = 0
    51  	// The Feature is being enabled, and the Feature resource is being created.
    52  	// Once complete, the corresponding Feature will be enabled in this Hub.
    53  	FeatureResourceState_ENABLING FeatureResourceState_State = 1
    54  	// The Feature is enabled in this Hub, and the Feature resource is fully
    55  	// available.
    56  	FeatureResourceState_ACTIVE FeatureResourceState_State = 2
    57  	// The Feature is being disabled in this Hub, and the Feature resource
    58  	// is being deleted.
    59  	FeatureResourceState_DISABLING FeatureResourceState_State = 3
    60  	// The Feature resource is being updated.
    61  	FeatureResourceState_UPDATING FeatureResourceState_State = 4
    62  	// The Feature resource is being updated by the Hub Service.
    63  	FeatureResourceState_SERVICE_UPDATING FeatureResourceState_State = 5
    64  )
    65  
    66  // Enum value maps for FeatureResourceState_State.
    67  var (
    68  	FeatureResourceState_State_name = map[int32]string{
    69  		0: "STATE_UNSPECIFIED",
    70  		1: "ENABLING",
    71  		2: "ACTIVE",
    72  		3: "DISABLING",
    73  		4: "UPDATING",
    74  		5: "SERVICE_UPDATING",
    75  	}
    76  	FeatureResourceState_State_value = map[string]int32{
    77  		"STATE_UNSPECIFIED": 0,
    78  		"ENABLING":          1,
    79  		"ACTIVE":            2,
    80  		"DISABLING":         3,
    81  		"UPDATING":          4,
    82  		"SERVICE_UPDATING":  5,
    83  	}
    84  )
    85  
    86  func (x FeatureResourceState_State) Enum() *FeatureResourceState_State {
    87  	p := new(FeatureResourceState_State)
    88  	*p = x
    89  	return p
    90  }
    91  
    92  func (x FeatureResourceState_State) String() string {
    93  	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
    94  }
    95  
    96  func (FeatureResourceState_State) Descriptor() protoreflect.EnumDescriptor {
    97  	return file_google_cloud_gkehub_v1alpha_feature_proto_enumTypes[0].Descriptor()
    98  }
    99  
   100  func (FeatureResourceState_State) Type() protoreflect.EnumType {
   101  	return &file_google_cloud_gkehub_v1alpha_feature_proto_enumTypes[0]
   102  }
   103  
   104  func (x FeatureResourceState_State) Number() protoreflect.EnumNumber {
   105  	return protoreflect.EnumNumber(x)
   106  }
   107  
   108  // Deprecated: Use FeatureResourceState_State.Descriptor instead.
   109  func (FeatureResourceState_State) EnumDescriptor() ([]byte, []int) {
   110  	return file_google_cloud_gkehub_v1alpha_feature_proto_rawDescGZIP(), []int{1, 0}
   111  }
   112  
   113  // Code represents a machine-readable, high-level status of the Feature.
   114  type FeatureState_Code int32
   115  
   116  const (
   117  	// Unknown or not set.
   118  	FeatureState_CODE_UNSPECIFIED FeatureState_Code = 0
   119  	// The Feature is operating normally.
   120  	FeatureState_OK FeatureState_Code = 1
   121  	// The Feature has encountered an issue, and is operating in a degraded
   122  	// state. The Feature may need intervention to return to normal operation.
   123  	// See the description and any associated Feature-specific details for more
   124  	// information.
   125  	FeatureState_WARNING FeatureState_Code = 2
   126  	// The Feature is not operating or is in a severely degraded state.
   127  	// The Feature may need intervention to return to normal operation.
   128  	// See the description and any associated Feature-specific details for more
   129  	// information.
   130  	FeatureState_ERROR FeatureState_Code = 3
   131  )
   132  
   133  // Enum value maps for FeatureState_Code.
   134  var (
   135  	FeatureState_Code_name = map[int32]string{
   136  		0: "CODE_UNSPECIFIED",
   137  		1: "OK",
   138  		2: "WARNING",
   139  		3: "ERROR",
   140  	}
   141  	FeatureState_Code_value = map[string]int32{
   142  		"CODE_UNSPECIFIED": 0,
   143  		"OK":               1,
   144  		"WARNING":          2,
   145  		"ERROR":            3,
   146  	}
   147  )
   148  
   149  func (x FeatureState_Code) Enum() *FeatureState_Code {
   150  	p := new(FeatureState_Code)
   151  	*p = x
   152  	return p
   153  }
   154  
   155  func (x FeatureState_Code) String() string {
   156  	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
   157  }
   158  
   159  func (FeatureState_Code) Descriptor() protoreflect.EnumDescriptor {
   160  	return file_google_cloud_gkehub_v1alpha_feature_proto_enumTypes[1].Descriptor()
   161  }
   162  
   163  func (FeatureState_Code) Type() protoreflect.EnumType {
   164  	return &file_google_cloud_gkehub_v1alpha_feature_proto_enumTypes[1]
   165  }
   166  
   167  func (x FeatureState_Code) Number() protoreflect.EnumNumber {
   168  	return protoreflect.EnumNumber(x)
   169  }
   170  
   171  // Deprecated: Use FeatureState_Code.Descriptor instead.
   172  func (FeatureState_Code) EnumDescriptor() ([]byte, []int) {
   173  	return file_google_cloud_gkehub_v1alpha_feature_proto_rawDescGZIP(), []int{2, 0}
   174  }
   175  
   176  // Feature represents the settings and status of any Hub Feature.
   177  type Feature struct {
   178  	state         protoimpl.MessageState
   179  	sizeCache     protoimpl.SizeCache
   180  	unknownFields protoimpl.UnknownFields
   181  
   182  	// Output only. The full, unique name of this Feature resource in the format
   183  	// `projects/*/locations/*/features/*`.
   184  	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
   185  	// GCP labels for this Feature.
   186  	Labels map[string]string `protobuf:"bytes,2,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
   187  	// Output only. State of the Feature resource itself.
   188  	ResourceState *FeatureResourceState `protobuf:"bytes,3,opt,name=resource_state,json=resourceState,proto3" json:"resource_state,omitempty"`
   189  	// Optional. Hub-wide Feature configuration. If this Feature does not support any
   190  	// Hub-wide configuration, this field may be unused.
   191  	Spec *CommonFeatureSpec `protobuf:"bytes,4,opt,name=spec,proto3" json:"spec,omitempty"`
   192  	// Optional. Membership-specific configuration for this Feature. If this Feature does
   193  	// not support any per-Membership configuration, this field may be unused.
   194  	//
   195  	// The keys indicate which Membership the configuration is for, in the form:
   196  	//
   197  	//	projects/{p}/locations/{l}/memberships/{m}
   198  	//
   199  	// Where {p} is the project, {l} is a valid location and {m} is a valid
   200  	// Membership in this project at that location. {p} WILL match the Feature's
   201  	// project.
   202  	//
   203  	// {p} will always be returned as the project number, but the project ID is
   204  	// also accepted during input. If the same Membership is specified in the map
   205  	// twice (using the project ID form, and the project number form), exactly
   206  	// ONE of the entries will be saved, with no guarantees as to which. For this
   207  	// reason, it is recommended the same format be used for all entries when
   208  	// mutating a Feature.
   209  	MembershipSpecs map[string]*MembershipFeatureSpec `protobuf:"bytes,5,rep,name=membership_specs,json=membershipSpecs,proto3" json:"membership_specs,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
   210  	// Output only. The Hub-wide Feature state.
   211  	State *CommonFeatureState `protobuf:"bytes,6,opt,name=state,proto3" json:"state,omitempty"`
   212  	// Output only. Membership-specific Feature status. If this Feature does
   213  	// report any per-Membership status, this field may be unused.
   214  	//
   215  	// The keys indicate which Membership the state is for, in the form:
   216  	//
   217  	//	projects/{p}/locations/{l}/memberships/{m}
   218  	//
   219  	// Where {p} is the project number, {l} is a valid location and {m} is a valid
   220  	// Membership in this project at that location. {p} MUST match the Feature's
   221  	// project number.
   222  	MembershipStates map[string]*MembershipFeatureState `protobuf:"bytes,7,rep,name=membership_states,json=membershipStates,proto3" json:"membership_states,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
   223  	// Output only. When the Feature resource was created.
   224  	CreateTime *timestamppb.Timestamp `protobuf:"bytes,8,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"`
   225  	// Output only. When the Feature resource was last updated.
   226  	UpdateTime *timestamppb.Timestamp `protobuf:"bytes,9,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"`
   227  	// Output only. When the Feature resource was deleted.
   228  	DeleteTime *timestamppb.Timestamp `protobuf:"bytes,10,opt,name=delete_time,json=deleteTime,proto3" json:"delete_time,omitempty"`
   229  }
   230  
   231  func (x *Feature) Reset() {
   232  	*x = Feature{}
   233  	if protoimpl.UnsafeEnabled {
   234  		mi := &file_google_cloud_gkehub_v1alpha_feature_proto_msgTypes[0]
   235  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   236  		ms.StoreMessageInfo(mi)
   237  	}
   238  }
   239  
   240  func (x *Feature) String() string {
   241  	return protoimpl.X.MessageStringOf(x)
   242  }
   243  
   244  func (*Feature) ProtoMessage() {}
   245  
   246  func (x *Feature) ProtoReflect() protoreflect.Message {
   247  	mi := &file_google_cloud_gkehub_v1alpha_feature_proto_msgTypes[0]
   248  	if protoimpl.UnsafeEnabled && x != nil {
   249  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   250  		if ms.LoadMessageInfo() == nil {
   251  			ms.StoreMessageInfo(mi)
   252  		}
   253  		return ms
   254  	}
   255  	return mi.MessageOf(x)
   256  }
   257  
   258  // Deprecated: Use Feature.ProtoReflect.Descriptor instead.
   259  func (*Feature) Descriptor() ([]byte, []int) {
   260  	return file_google_cloud_gkehub_v1alpha_feature_proto_rawDescGZIP(), []int{0}
   261  }
   262  
   263  func (x *Feature) GetName() string {
   264  	if x != nil {
   265  		return x.Name
   266  	}
   267  	return ""
   268  }
   269  
   270  func (x *Feature) GetLabels() map[string]string {
   271  	if x != nil {
   272  		return x.Labels
   273  	}
   274  	return nil
   275  }
   276  
   277  func (x *Feature) GetResourceState() *FeatureResourceState {
   278  	if x != nil {
   279  		return x.ResourceState
   280  	}
   281  	return nil
   282  }
   283  
   284  func (x *Feature) GetSpec() *CommonFeatureSpec {
   285  	if x != nil {
   286  		return x.Spec
   287  	}
   288  	return nil
   289  }
   290  
   291  func (x *Feature) GetMembershipSpecs() map[string]*MembershipFeatureSpec {
   292  	if x != nil {
   293  		return x.MembershipSpecs
   294  	}
   295  	return nil
   296  }
   297  
   298  func (x *Feature) GetState() *CommonFeatureState {
   299  	if x != nil {
   300  		return x.State
   301  	}
   302  	return nil
   303  }
   304  
   305  func (x *Feature) GetMembershipStates() map[string]*MembershipFeatureState {
   306  	if x != nil {
   307  		return x.MembershipStates
   308  	}
   309  	return nil
   310  }
   311  
   312  func (x *Feature) GetCreateTime() *timestamppb.Timestamp {
   313  	if x != nil {
   314  		return x.CreateTime
   315  	}
   316  	return nil
   317  }
   318  
   319  func (x *Feature) GetUpdateTime() *timestamppb.Timestamp {
   320  	if x != nil {
   321  		return x.UpdateTime
   322  	}
   323  	return nil
   324  }
   325  
   326  func (x *Feature) GetDeleteTime() *timestamppb.Timestamp {
   327  	if x != nil {
   328  		return x.DeleteTime
   329  	}
   330  	return nil
   331  }
   332  
   333  // FeatureResourceState describes the state of a Feature *resource* in the
   334  // GkeHub API. See `FeatureState` for the "running state" of the Feature in the
   335  // Hub and across Memberships.
   336  type FeatureResourceState struct {
   337  	state         protoimpl.MessageState
   338  	sizeCache     protoimpl.SizeCache
   339  	unknownFields protoimpl.UnknownFields
   340  
   341  	// The current state of the Feature resource in the Hub API.
   342  	State FeatureResourceState_State `protobuf:"varint,1,opt,name=state,proto3,enum=google.cloud.gkehub.v1alpha.FeatureResourceState_State" json:"state,omitempty"`
   343  }
   344  
   345  func (x *FeatureResourceState) Reset() {
   346  	*x = FeatureResourceState{}
   347  	if protoimpl.UnsafeEnabled {
   348  		mi := &file_google_cloud_gkehub_v1alpha_feature_proto_msgTypes[1]
   349  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   350  		ms.StoreMessageInfo(mi)
   351  	}
   352  }
   353  
   354  func (x *FeatureResourceState) String() string {
   355  	return protoimpl.X.MessageStringOf(x)
   356  }
   357  
   358  func (*FeatureResourceState) ProtoMessage() {}
   359  
   360  func (x *FeatureResourceState) ProtoReflect() protoreflect.Message {
   361  	mi := &file_google_cloud_gkehub_v1alpha_feature_proto_msgTypes[1]
   362  	if protoimpl.UnsafeEnabled && x != nil {
   363  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   364  		if ms.LoadMessageInfo() == nil {
   365  			ms.StoreMessageInfo(mi)
   366  		}
   367  		return ms
   368  	}
   369  	return mi.MessageOf(x)
   370  }
   371  
   372  // Deprecated: Use FeatureResourceState.ProtoReflect.Descriptor instead.
   373  func (*FeatureResourceState) Descriptor() ([]byte, []int) {
   374  	return file_google_cloud_gkehub_v1alpha_feature_proto_rawDescGZIP(), []int{1}
   375  }
   376  
   377  func (x *FeatureResourceState) GetState() FeatureResourceState_State {
   378  	if x != nil {
   379  		return x.State
   380  	}
   381  	return FeatureResourceState_STATE_UNSPECIFIED
   382  }
   383  
   384  // FeatureState describes the high-level state of a Feature. It may be used to
   385  // describe a Feature's state at the environ-level, or per-membershop, depending
   386  // on the context.
   387  type FeatureState struct {
   388  	state         protoimpl.MessageState
   389  	sizeCache     protoimpl.SizeCache
   390  	unknownFields protoimpl.UnknownFields
   391  
   392  	// The high-level, machine-readable status of this Feature.
   393  	Code FeatureState_Code `protobuf:"varint,1,opt,name=code,proto3,enum=google.cloud.gkehub.v1alpha.FeatureState_Code" json:"code,omitempty"`
   394  	// A human-readable description of the current status.
   395  	Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"`
   396  	// The time this status and any related Feature-specific details were updated.
   397  	UpdateTime *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"`
   398  }
   399  
   400  func (x *FeatureState) Reset() {
   401  	*x = FeatureState{}
   402  	if protoimpl.UnsafeEnabled {
   403  		mi := &file_google_cloud_gkehub_v1alpha_feature_proto_msgTypes[2]
   404  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   405  		ms.StoreMessageInfo(mi)
   406  	}
   407  }
   408  
   409  func (x *FeatureState) String() string {
   410  	return protoimpl.X.MessageStringOf(x)
   411  }
   412  
   413  func (*FeatureState) ProtoMessage() {}
   414  
   415  func (x *FeatureState) ProtoReflect() protoreflect.Message {
   416  	mi := &file_google_cloud_gkehub_v1alpha_feature_proto_msgTypes[2]
   417  	if protoimpl.UnsafeEnabled && x != nil {
   418  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   419  		if ms.LoadMessageInfo() == nil {
   420  			ms.StoreMessageInfo(mi)
   421  		}
   422  		return ms
   423  	}
   424  	return mi.MessageOf(x)
   425  }
   426  
   427  // Deprecated: Use FeatureState.ProtoReflect.Descriptor instead.
   428  func (*FeatureState) Descriptor() ([]byte, []int) {
   429  	return file_google_cloud_gkehub_v1alpha_feature_proto_rawDescGZIP(), []int{2}
   430  }
   431  
   432  func (x *FeatureState) GetCode() FeatureState_Code {
   433  	if x != nil {
   434  		return x.Code
   435  	}
   436  	return FeatureState_CODE_UNSPECIFIED
   437  }
   438  
   439  func (x *FeatureState) GetDescription() string {
   440  	if x != nil {
   441  		return x.Description
   442  	}
   443  	return ""
   444  }
   445  
   446  func (x *FeatureState) GetUpdateTime() *timestamppb.Timestamp {
   447  	if x != nil {
   448  		return x.UpdateTime
   449  	}
   450  	return nil
   451  }
   452  
   453  // CommonFeatureSpec contains Hub-wide configuration information
   454  type CommonFeatureSpec struct {
   455  	state         protoimpl.MessageState
   456  	sizeCache     protoimpl.SizeCache
   457  	unknownFields protoimpl.UnknownFields
   458  
   459  	// Types that are assignable to FeatureSpec:
   460  	//
   461  	//	*CommonFeatureSpec_Multiclusteringress
   462  	//	*CommonFeatureSpec_Cloudauditlogging
   463  	FeatureSpec isCommonFeatureSpec_FeatureSpec `protobuf_oneof:"feature_spec"`
   464  }
   465  
   466  func (x *CommonFeatureSpec) Reset() {
   467  	*x = CommonFeatureSpec{}
   468  	if protoimpl.UnsafeEnabled {
   469  		mi := &file_google_cloud_gkehub_v1alpha_feature_proto_msgTypes[3]
   470  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   471  		ms.StoreMessageInfo(mi)
   472  	}
   473  }
   474  
   475  func (x *CommonFeatureSpec) String() string {
   476  	return protoimpl.X.MessageStringOf(x)
   477  }
   478  
   479  func (*CommonFeatureSpec) ProtoMessage() {}
   480  
   481  func (x *CommonFeatureSpec) ProtoReflect() protoreflect.Message {
   482  	mi := &file_google_cloud_gkehub_v1alpha_feature_proto_msgTypes[3]
   483  	if protoimpl.UnsafeEnabled && x != nil {
   484  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   485  		if ms.LoadMessageInfo() == nil {
   486  			ms.StoreMessageInfo(mi)
   487  		}
   488  		return ms
   489  	}
   490  	return mi.MessageOf(x)
   491  }
   492  
   493  // Deprecated: Use CommonFeatureSpec.ProtoReflect.Descriptor instead.
   494  func (*CommonFeatureSpec) Descriptor() ([]byte, []int) {
   495  	return file_google_cloud_gkehub_v1alpha_feature_proto_rawDescGZIP(), []int{3}
   496  }
   497  
   498  func (m *CommonFeatureSpec) GetFeatureSpec() isCommonFeatureSpec_FeatureSpec {
   499  	if m != nil {
   500  		return m.FeatureSpec
   501  	}
   502  	return nil
   503  }
   504  
   505  func (x *CommonFeatureSpec) GetMulticlusteringress() *v1alpha.FeatureSpec {
   506  	if x, ok := x.GetFeatureSpec().(*CommonFeatureSpec_Multiclusteringress); ok {
   507  		return x.Multiclusteringress
   508  	}
   509  	return nil
   510  }
   511  
   512  func (x *CommonFeatureSpec) GetCloudauditlogging() *v1alpha1.FeatureSpec {
   513  	if x, ok := x.GetFeatureSpec().(*CommonFeatureSpec_Cloudauditlogging); ok {
   514  		return x.Cloudauditlogging
   515  	}
   516  	return nil
   517  }
   518  
   519  type isCommonFeatureSpec_FeatureSpec interface {
   520  	isCommonFeatureSpec_FeatureSpec()
   521  }
   522  
   523  type CommonFeatureSpec_Multiclusteringress struct {
   524  	// Multicluster Ingress-specific spec.
   525  	Multiclusteringress *v1alpha.FeatureSpec `protobuf:"bytes,102,opt,name=multiclusteringress,proto3,oneof"`
   526  }
   527  
   528  type CommonFeatureSpec_Cloudauditlogging struct {
   529  	// Cloud Audit Logging-specific spec.
   530  	Cloudauditlogging *v1alpha1.FeatureSpec `protobuf:"bytes,108,opt,name=cloudauditlogging,proto3,oneof"`
   531  }
   532  
   533  func (*CommonFeatureSpec_Multiclusteringress) isCommonFeatureSpec_FeatureSpec() {}
   534  
   535  func (*CommonFeatureSpec_Cloudauditlogging) isCommonFeatureSpec_FeatureSpec() {}
   536  
   537  // CommonFeatureState contains Hub-wide Feature status information.
   538  type CommonFeatureState struct {
   539  	state         protoimpl.MessageState
   540  	sizeCache     protoimpl.SizeCache
   541  	unknownFields protoimpl.UnknownFields
   542  
   543  	// Types that are assignable to FeatureState:
   544  	//
   545  	//	*CommonFeatureState_Servicemesh
   546  	FeatureState isCommonFeatureState_FeatureState `protobuf_oneof:"feature_state"`
   547  	// Output only. The "running state" of the Feature in this Hub.
   548  	State *FeatureState `protobuf:"bytes,1,opt,name=state,proto3" json:"state,omitempty"`
   549  }
   550  
   551  func (x *CommonFeatureState) Reset() {
   552  	*x = CommonFeatureState{}
   553  	if protoimpl.UnsafeEnabled {
   554  		mi := &file_google_cloud_gkehub_v1alpha_feature_proto_msgTypes[4]
   555  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   556  		ms.StoreMessageInfo(mi)
   557  	}
   558  }
   559  
   560  func (x *CommonFeatureState) String() string {
   561  	return protoimpl.X.MessageStringOf(x)
   562  }
   563  
   564  func (*CommonFeatureState) ProtoMessage() {}
   565  
   566  func (x *CommonFeatureState) ProtoReflect() protoreflect.Message {
   567  	mi := &file_google_cloud_gkehub_v1alpha_feature_proto_msgTypes[4]
   568  	if protoimpl.UnsafeEnabled && x != nil {
   569  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   570  		if ms.LoadMessageInfo() == nil {
   571  			ms.StoreMessageInfo(mi)
   572  		}
   573  		return ms
   574  	}
   575  	return mi.MessageOf(x)
   576  }
   577  
   578  // Deprecated: Use CommonFeatureState.ProtoReflect.Descriptor instead.
   579  func (*CommonFeatureState) Descriptor() ([]byte, []int) {
   580  	return file_google_cloud_gkehub_v1alpha_feature_proto_rawDescGZIP(), []int{4}
   581  }
   582  
   583  func (m *CommonFeatureState) GetFeatureState() isCommonFeatureState_FeatureState {
   584  	if m != nil {
   585  		return m.FeatureState
   586  	}
   587  	return nil
   588  }
   589  
   590  func (x *CommonFeatureState) GetServicemesh() *v1alpha2.FeatureState {
   591  	if x, ok := x.GetFeatureState().(*CommonFeatureState_Servicemesh); ok {
   592  		return x.Servicemesh
   593  	}
   594  	return nil
   595  }
   596  
   597  func (x *CommonFeatureState) GetState() *FeatureState {
   598  	if x != nil {
   599  		return x.State
   600  	}
   601  	return nil
   602  }
   603  
   604  type isCommonFeatureState_FeatureState interface {
   605  	isCommonFeatureState_FeatureState()
   606  }
   607  
   608  type CommonFeatureState_Servicemesh struct {
   609  	// Service Mesh-specific state.
   610  	Servicemesh *v1alpha2.FeatureState `protobuf:"bytes,100,opt,name=servicemesh,proto3,oneof"`
   611  }
   612  
   613  func (*CommonFeatureState_Servicemesh) isCommonFeatureState_FeatureState() {}
   614  
   615  // MembershipFeatureSpec contains configuration information for a single
   616  // Membership.
   617  type MembershipFeatureSpec struct {
   618  	state         protoimpl.MessageState
   619  	sizeCache     protoimpl.SizeCache
   620  	unknownFields protoimpl.UnknownFields
   621  
   622  	// Types that are assignable to FeatureSpec:
   623  	//
   624  	//	*MembershipFeatureSpec_Configmanagement
   625  	FeatureSpec isMembershipFeatureSpec_FeatureSpec `protobuf_oneof:"feature_spec"`
   626  }
   627  
   628  func (x *MembershipFeatureSpec) Reset() {
   629  	*x = MembershipFeatureSpec{}
   630  	if protoimpl.UnsafeEnabled {
   631  		mi := &file_google_cloud_gkehub_v1alpha_feature_proto_msgTypes[5]
   632  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   633  		ms.StoreMessageInfo(mi)
   634  	}
   635  }
   636  
   637  func (x *MembershipFeatureSpec) String() string {
   638  	return protoimpl.X.MessageStringOf(x)
   639  }
   640  
   641  func (*MembershipFeatureSpec) ProtoMessage() {}
   642  
   643  func (x *MembershipFeatureSpec) ProtoReflect() protoreflect.Message {
   644  	mi := &file_google_cloud_gkehub_v1alpha_feature_proto_msgTypes[5]
   645  	if protoimpl.UnsafeEnabled && x != nil {
   646  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   647  		if ms.LoadMessageInfo() == nil {
   648  			ms.StoreMessageInfo(mi)
   649  		}
   650  		return ms
   651  	}
   652  	return mi.MessageOf(x)
   653  }
   654  
   655  // Deprecated: Use MembershipFeatureSpec.ProtoReflect.Descriptor instead.
   656  func (*MembershipFeatureSpec) Descriptor() ([]byte, []int) {
   657  	return file_google_cloud_gkehub_v1alpha_feature_proto_rawDescGZIP(), []int{5}
   658  }
   659  
   660  func (m *MembershipFeatureSpec) GetFeatureSpec() isMembershipFeatureSpec_FeatureSpec {
   661  	if m != nil {
   662  		return m.FeatureSpec
   663  	}
   664  	return nil
   665  }
   666  
   667  func (x *MembershipFeatureSpec) GetConfigmanagement() *v1alpha3.MembershipSpec {
   668  	if x, ok := x.GetFeatureSpec().(*MembershipFeatureSpec_Configmanagement); ok {
   669  		return x.Configmanagement
   670  	}
   671  	return nil
   672  }
   673  
   674  type isMembershipFeatureSpec_FeatureSpec interface {
   675  	isMembershipFeatureSpec_FeatureSpec()
   676  }
   677  
   678  type MembershipFeatureSpec_Configmanagement struct {
   679  	// Config Management-specific spec.
   680  	Configmanagement *v1alpha3.MembershipSpec `protobuf:"bytes,106,opt,name=configmanagement,proto3,oneof"`
   681  }
   682  
   683  func (*MembershipFeatureSpec_Configmanagement) isMembershipFeatureSpec_FeatureSpec() {}
   684  
   685  // MembershipFeatureState contains Feature status information for a single
   686  // Membership.
   687  type MembershipFeatureState struct {
   688  	state         protoimpl.MessageState
   689  	sizeCache     protoimpl.SizeCache
   690  	unknownFields protoimpl.UnknownFields
   691  
   692  	// Types that are assignable to FeatureState:
   693  	//
   694  	//	*MembershipFeatureState_Servicemesh
   695  	//	*MembershipFeatureState_Metering
   696  	//	*MembershipFeatureState_Configmanagement
   697  	FeatureState isMembershipFeatureState_FeatureState `protobuf_oneof:"feature_state"`
   698  	// The high-level state of this Feature for a single membership.
   699  	State *FeatureState `protobuf:"bytes,1,opt,name=state,proto3" json:"state,omitempty"`
   700  }
   701  
   702  func (x *MembershipFeatureState) Reset() {
   703  	*x = MembershipFeatureState{}
   704  	if protoimpl.UnsafeEnabled {
   705  		mi := &file_google_cloud_gkehub_v1alpha_feature_proto_msgTypes[6]
   706  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   707  		ms.StoreMessageInfo(mi)
   708  	}
   709  }
   710  
   711  func (x *MembershipFeatureState) String() string {
   712  	return protoimpl.X.MessageStringOf(x)
   713  }
   714  
   715  func (*MembershipFeatureState) ProtoMessage() {}
   716  
   717  func (x *MembershipFeatureState) ProtoReflect() protoreflect.Message {
   718  	mi := &file_google_cloud_gkehub_v1alpha_feature_proto_msgTypes[6]
   719  	if protoimpl.UnsafeEnabled && x != nil {
   720  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   721  		if ms.LoadMessageInfo() == nil {
   722  			ms.StoreMessageInfo(mi)
   723  		}
   724  		return ms
   725  	}
   726  	return mi.MessageOf(x)
   727  }
   728  
   729  // Deprecated: Use MembershipFeatureState.ProtoReflect.Descriptor instead.
   730  func (*MembershipFeatureState) Descriptor() ([]byte, []int) {
   731  	return file_google_cloud_gkehub_v1alpha_feature_proto_rawDescGZIP(), []int{6}
   732  }
   733  
   734  func (m *MembershipFeatureState) GetFeatureState() isMembershipFeatureState_FeatureState {
   735  	if m != nil {
   736  		return m.FeatureState
   737  	}
   738  	return nil
   739  }
   740  
   741  func (x *MembershipFeatureState) GetServicemesh() *v1alpha2.MembershipState {
   742  	if x, ok := x.GetFeatureState().(*MembershipFeatureState_Servicemesh); ok {
   743  		return x.Servicemesh
   744  	}
   745  	return nil
   746  }
   747  
   748  func (x *MembershipFeatureState) GetMetering() *v1alpha4.MembershipState {
   749  	if x, ok := x.GetFeatureState().(*MembershipFeatureState_Metering); ok {
   750  		return x.Metering
   751  	}
   752  	return nil
   753  }
   754  
   755  func (x *MembershipFeatureState) GetConfigmanagement() *v1alpha3.MembershipState {
   756  	if x, ok := x.GetFeatureState().(*MembershipFeatureState_Configmanagement); ok {
   757  		return x.Configmanagement
   758  	}
   759  	return nil
   760  }
   761  
   762  func (x *MembershipFeatureState) GetState() *FeatureState {
   763  	if x != nil {
   764  		return x.State
   765  	}
   766  	return nil
   767  }
   768  
   769  type isMembershipFeatureState_FeatureState interface {
   770  	isMembershipFeatureState_FeatureState()
   771  }
   772  
   773  type MembershipFeatureState_Servicemesh struct {
   774  	// Service Mesh-specific state.
   775  	Servicemesh *v1alpha2.MembershipState `protobuf:"bytes,100,opt,name=servicemesh,proto3,oneof"`
   776  }
   777  
   778  type MembershipFeatureState_Metering struct {
   779  	// Metering-specific spec.
   780  	Metering *v1alpha4.MembershipState `protobuf:"bytes,104,opt,name=metering,proto3,oneof"`
   781  }
   782  
   783  type MembershipFeatureState_Configmanagement struct {
   784  	// Config Management-specific state.
   785  	Configmanagement *v1alpha3.MembershipState `protobuf:"bytes,106,opt,name=configmanagement,proto3,oneof"`
   786  }
   787  
   788  func (*MembershipFeatureState_Servicemesh) isMembershipFeatureState_FeatureState() {}
   789  
   790  func (*MembershipFeatureState_Metering) isMembershipFeatureState_FeatureState() {}
   791  
   792  func (*MembershipFeatureState_Configmanagement) isMembershipFeatureState_FeatureState() {}
   793  
   794  var File_google_cloud_gkehub_v1alpha_feature_proto protoreflect.FileDescriptor
   795  
   796  var file_google_cloud_gkehub_v1alpha_feature_proto_rawDesc = []byte{
   797  	0x0a, 0x29, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x67,
   798  	0x6b, 0x65, 0x68, 0x75, 0x62, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2f, 0x66, 0x65,
   799  	0x61, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x1b, 0x67, 0x6f, 0x6f,
   800  	0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6b, 0x65, 0x68, 0x75, 0x62,
   801  	0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
   802  	0x2f, 0x61, 0x70, 0x69, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76,
   803  	0x69, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
   804  	0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 0x70,
   805  	0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x45, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f,
   806  	0x75, 0x64, 0x2f, 0x67, 0x6b, 0x65, 0x68, 0x75, 0x62, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68,
   807  	0x61, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x61, 0x75, 0x64, 0x69, 0x74, 0x6c, 0x6f, 0x67, 0x67,
   808  	0x69, 0x6e, 0x67, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x61, 0x75, 0x64, 0x69, 0x74, 0x6c, 0x6f,
   809  	0x67, 0x67, 0x69, 0x6e, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x43, 0x67, 0x6f, 0x6f,
   810  	0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x67, 0x6b, 0x65, 0x68, 0x75, 0x62,
   811  	0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x6d,
   812  	0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67,
   813  	0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
   814  	0x1a, 0x33, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x67,
   815  	0x6b, 0x65, 0x68, 0x75, 0x62, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2f, 0x6d, 0x65,
   816  	0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x2f, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x2e,
   817  	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x49, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c,
   818  	0x6f, 0x75, 0x64, 0x2f, 0x67, 0x6b, 0x65, 0x68, 0x75, 0x62, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70,
   819  	0x68, 0x61, 0x2f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x69,
   820  	0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x2f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x6c, 0x75, 0x73,
   821  	0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
   822  	0x1a, 0x39, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x67,
   823  	0x6b, 0x65, 0x68, 0x75, 0x62, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2f, 0x73, 0x65,
   824  	0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x65, 0x73, 0x68, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63,
   825  	0x65, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f,
   826  	0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d,
   827  	0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x8c, 0x09, 0x0a,
   828  	0x07, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65,
   829  	0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x04, 0x6e, 0x61, 0x6d,
   830  	0x65, 0x12, 0x48, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28,
   831  	0x0b, 0x32, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64,
   832  	0x2e, 0x67, 0x6b, 0x65, 0x68, 0x75, 0x62, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e,
   833  	0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e,
   834  	0x74, 0x72, 0x79, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x5d, 0x0a, 0x0e, 0x72,
   835  	0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20,
   836  	0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f,
   837  	0x75, 0x64, 0x2e, 0x67, 0x6b, 0x65, 0x68, 0x75, 0x62, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68,
   838  	0x61, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63,
   839  	0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0d, 0x72, 0x65, 0x73,
   840  	0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x47, 0x0a, 0x04, 0x73, 0x70,
   841  	0x65, 0x63, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
   842  	0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6b, 0x65, 0x68, 0x75, 0x62, 0x2e, 0x76,
   843  	0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x46, 0x65, 0x61,
   844  	0x74, 0x75, 0x72, 0x65, 0x53, 0x70, 0x65, 0x63, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x04, 0x73,
   845  	0x70, 0x65, 0x63, 0x12, 0x69, 0x0a, 0x10, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x68, 0x69,
   846  	0x70, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x39, 0x2e,
   847  	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6b, 0x65,
   848  	0x68, 0x75, 0x62, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x46, 0x65, 0x61, 0x74,
   849  	0x75, 0x72, 0x65, 0x2e, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x68, 0x69, 0x70, 0x53, 0x70,
   850  	0x65, 0x63, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0f, 0x6d,
   851  	0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x68, 0x69, 0x70, 0x53, 0x70, 0x65, 0x63, 0x73, 0x12, 0x4a,
   852  	0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e,
   853  	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6b, 0x65,
   854  	0x68, 0x75, 0x62, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x43, 0x6f, 0x6d, 0x6d,
   855  	0x6f, 0x6e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x42, 0x03,
   856  	0xe0, 0x41, 0x03, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x6c, 0x0a, 0x11, 0x6d, 0x65,
   857  	0x6d, 0x62, 0x65, 0x72, 0x73, 0x68, 0x69, 0x70, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x73, 0x18,
   858  	0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63,
   859  	0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6b, 0x65, 0x68, 0x75, 0x62, 0x2e, 0x76, 0x31, 0x61, 0x6c,
   860  	0x70, 0x68, 0x61, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x4d, 0x65, 0x6d, 0x62,
   861  	0x65, 0x72, 0x73, 0x68, 0x69, 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72,
   862  	0x79, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x10, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x68,
   863  	0x69, 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x12, 0x40, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61,
   864  	0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e,
   865  	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e,
   866  	0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a,
   867  	0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x40, 0x0a, 0x0b, 0x75, 0x70,
   868  	0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32,
   869  	0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75,
   870  	0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03,
   871  	0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x40, 0x0a, 0x0b,
   872  	0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28,
   873  	0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
   874  	0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0,
   875  	0x41, 0x03, 0x52, 0x0a, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x1a, 0x39,
   876  	0x0a, 0x0b, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a,
   877  	0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12,
   878  	0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05,
   879  	0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x76, 0x0a, 0x14, 0x4d, 0x65, 0x6d,
   880  	0x62, 0x65, 0x72, 0x73, 0x68, 0x69, 0x70, 0x53, 0x70, 0x65, 0x63, 0x73, 0x45, 0x6e, 0x74, 0x72,
   881  	0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03,
   882  	0x6b, 0x65, 0x79, 0x12, 0x48, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01,
   883  	0x28, 0x0b, 0x32, 0x32, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75,
   884  	0x64, 0x2e, 0x67, 0x6b, 0x65, 0x68, 0x75, 0x62, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61,
   885  	0x2e, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x68, 0x69, 0x70, 0x46, 0x65, 0x61, 0x74, 0x75,
   886  	0x72, 0x65, 0x53, 0x70, 0x65, 0x63, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38,
   887  	0x01, 0x1a, 0x78, 0x0a, 0x15, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x68, 0x69, 0x70, 0x53,
   888  	0x74, 0x61, 0x74, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65,
   889  	0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x49, 0x0a, 0x05,
   890  	0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x67, 0x6f,
   891  	0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6b, 0x65, 0x68, 0x75,
   892  	0x62, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72,
   893  	0x73, 0x68, 0x69, 0x70, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65,
   894  	0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x3a, 0x5e, 0xea, 0x41, 0x5b,
   895  	0x0a, 0x1d, 0x67, 0x6b, 0x65, 0x68, 0x75, 0x62, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61,
   896  	0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12,
   897  	0x3a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65,
   898  	0x63, 0x74, 0x7d, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6c,
   899  	0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65,
   900  	0x73, 0x2f, 0x7b, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x7d, 0x22, 0xd2, 0x01, 0x0a, 0x14,
   901  	0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53,
   902  	0x74, 0x61, 0x74, 0x65, 0x12, 0x4d, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20,
   903  	0x01, 0x28, 0x0e, 0x32, 0x37, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f,
   904  	0x75, 0x64, 0x2e, 0x67, 0x6b, 0x65, 0x68, 0x75, 0x62, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68,
   905  	0x61, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63,
   906  	0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74,
   907  	0x61, 0x74, 0x65, 0x22, 0x6b, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x15, 0x0a, 0x11,
   908  	0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45,
   909  	0x44, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x45, 0x4e, 0x41, 0x42, 0x4c, 0x49, 0x4e, 0x47, 0x10,
   910  	0x01, 0x12, 0x0a, 0x0a, 0x06, 0x41, 0x43, 0x54, 0x49, 0x56, 0x45, 0x10, 0x02, 0x12, 0x0d, 0x0a,
   911  	0x09, 0x44, 0x49, 0x53, 0x41, 0x42, 0x4c, 0x49, 0x4e, 0x47, 0x10, 0x03, 0x12, 0x0c, 0x0a, 0x08,
   912  	0x55, 0x50, 0x44, 0x41, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x04, 0x12, 0x14, 0x0a, 0x10, 0x53, 0x45,
   913  	0x52, 0x56, 0x49, 0x43, 0x45, 0x5f, 0x55, 0x50, 0x44, 0x41, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x05,
   914  	0x22, 0xef, 0x01, 0x0a, 0x0c, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x53, 0x74, 0x61, 0x74,
   915  	0x65, 0x12, 0x42, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32,
   916  	0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67,
   917  	0x6b, 0x65, 0x68, 0x75, 0x62, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x46, 0x65,
   918  	0x61, 0x74, 0x75, 0x72, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x43, 0x6f, 0x64, 0x65, 0x52,
   919  	0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70,
   920  	0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63,
   921  	0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3b, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74,
   922  	0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67,
   923  	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54,
   924  	0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65,
   925  	0x54, 0x69, 0x6d, 0x65, 0x22, 0x3c, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x14, 0x0a, 0x10,
   926  	0x43, 0x4f, 0x44, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44,
   927  	0x10, 0x00, 0x12, 0x06, 0x0a, 0x02, 0x4f, 0x4b, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x57, 0x41,
   928  	0x52, 0x4e, 0x49, 0x4e, 0x47, 0x10, 0x02, 0x12, 0x09, 0x0a, 0x05, 0x45, 0x52, 0x52, 0x4f, 0x52,
   929  	0x10, 0x03, 0x22, 0x81, 0x02, 0x0a, 0x11, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x46, 0x65, 0x61,
   930  	0x74, 0x75, 0x72, 0x65, 0x53, 0x70, 0x65, 0x63, 0x12, 0x70, 0x0a, 0x13, 0x6d, 0x75, 0x6c, 0x74,
   931  	0x69, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x18,
   932  	0x66, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63,
   933  	0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6b, 0x65, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x75, 0x6c, 0x74,
   934  	0x69, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x2e,
   935  	0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x53,
   936  	0x70, 0x65, 0x63, 0x48, 0x00, 0x52, 0x13, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x6c, 0x75, 0x73,
   937  	0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0x6a, 0x0a, 0x11, 0x63, 0x6c,
   938  	0x6f, 0x75, 0x64, 0x61, 0x75, 0x64, 0x69, 0x74, 0x6c, 0x6f, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x18,
   939  	0x6c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63,
   940  	0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6b, 0x65, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6c, 0x6f, 0x75,
   941  	0x64, 0x61, 0x75, 0x64, 0x69, 0x74, 0x6c, 0x6f, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31,
   942  	0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x53, 0x70, 0x65,
   943  	0x63, 0x48, 0x00, 0x52, 0x11, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x61, 0x75, 0x64, 0x69, 0x74, 0x6c,
   944  	0x6f, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x42, 0x0e, 0x0a, 0x0c, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72,
   945  	0x65, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x22, 0xc6, 0x01, 0x0a, 0x12, 0x43, 0x6f, 0x6d, 0x6d, 0x6f,
   946  	0x6e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x59, 0x0a,
   947  	0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x65, 0x73, 0x68, 0x18, 0x64, 0x20, 0x01,
   948  	0x28, 0x0b, 0x32, 0x35, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75,
   949  	0x64, 0x2e, 0x67, 0x6b, 0x65, 0x68, 0x75, 0x62, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65,
   950  	0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x46, 0x65, 0x61,
   951  	0x74, 0x75, 0x72, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x48, 0x00, 0x52, 0x0b, 0x73, 0x65, 0x72,
   952  	0x76, 0x69, 0x63, 0x65, 0x6d, 0x65, 0x73, 0x68, 0x12, 0x44, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74,
   953  	0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
   954  	0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6b, 0x65, 0x68, 0x75, 0x62, 0x2e, 0x76, 0x31,
   955  	0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x53, 0x74, 0x61,
   956  	0x74, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x42, 0x0f,
   957  	0x0a, 0x0d, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x22,
   958  	0x93, 0x01, 0x0a, 0x15, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x68, 0x69, 0x70, 0x46, 0x65,
   959  	0x61, 0x74, 0x75, 0x72, 0x65, 0x53, 0x70, 0x65, 0x63, 0x12, 0x6a, 0x0a, 0x10, 0x63, 0x6f, 0x6e,
   960  	0x66, 0x69, 0x67, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x6a, 0x20,
   961  	0x01, 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f,
   962  	0x75, 0x64, 0x2e, 0x67, 0x6b, 0x65, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67,
   963  	0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70,
   964  	0x68, 0x61, 0x2e, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x68, 0x69, 0x70, 0x53, 0x70, 0x65,
   965  	0x63, 0x48, 0x00, 0x52, 0x10, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x6d, 0x61, 0x6e, 0x61, 0x67,
   966  	0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0e, 0x0a, 0x0c, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65,
   967  	0x5f, 0x73, 0x70, 0x65, 0x63, 0x22, 0x8a, 0x03, 0x0a, 0x16, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72,
   968  	0x73, 0x68, 0x69, 0x70, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65,
   969  	0x12, 0x5c, 0x0a, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x65, 0x73, 0x68, 0x18,
   970  	0x64, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63,
   971  	0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6b, 0x65, 0x68, 0x75, 0x62, 0x2e, 0x73, 0x65, 0x72, 0x76,
   972  	0x69, 0x63, 0x65, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e,
   973  	0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x68, 0x69, 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, 0x48,
   974  	0x00, 0x52, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x65, 0x73, 0x68, 0x12, 0x53,
   975  	0x0a, 0x08, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x18, 0x68, 0x20, 0x01, 0x28, 0x0b,
   976  	0x32, 0x35, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e,
   977  	0x67, 0x6b, 0x65, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x2e,
   978  	0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x68,
   979  	0x69, 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, 0x48, 0x00, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x65, 0x72,
   980  	0x69, 0x6e, 0x67, 0x12, 0x6b, 0x0a, 0x10, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x6d, 0x61, 0x6e,
   981  	0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x6a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3d, 0x2e,
   982  	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6b, 0x65,
   983  	0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65,
   984  	0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x4d, 0x65, 0x6d,
   985  	0x62, 0x65, 0x72, 0x73, 0x68, 0x69, 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, 0x48, 0x00, 0x52, 0x10,
   986  	0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74,
   987  	0x12, 0x3f, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
   988  	0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67,
   989  	0x6b, 0x65, 0x68, 0x75, 0x62, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x46, 0x65,
   990  	0x61, 0x74, 0x75, 0x72, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74,
   991  	0x65, 0x42, 0x0f, 0x0a, 0x0d, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x73, 0x74, 0x61,
   992  	0x74, 0x65, 0x42, 0xd1, 0x01, 0x0a, 0x1f, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
   993  	0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6b, 0x65, 0x68, 0x75, 0x62, 0x2e, 0x76,
   994  	0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x42, 0x0c, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x50,
   995  	0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x41, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67,
   996  	0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x67, 0x65, 0x6e, 0x70, 0x72, 0x6f,
   997  	0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x63, 0x6c,
   998  	0x6f, 0x75, 0x64, 0x2f, 0x67, 0x6b, 0x65, 0x68, 0x75, 0x62, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70,
   999  	0x68, 0x61, 0x3b, 0x67, 0x6b, 0x65, 0x68, 0x75, 0x62, 0xaa, 0x02, 0x1b, 0x47, 0x6f, 0x6f, 0x67,
  1000  	0x6c, 0x65, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x47, 0x6b, 0x65, 0x48, 0x75, 0x62, 0x2e,
  1001  	0x56, 0x31, 0x41, 0x6c, 0x70, 0x68, 0x61, 0xca, 0x02, 0x1b, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
  1002  	0x5c, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x5c, 0x47, 0x6b, 0x65, 0x48, 0x75, 0x62, 0x5c, 0x56, 0x31,
  1003  	0x61, 0x6c, 0x70, 0x68, 0x61, 0xea, 0x02, 0x1e, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x3a, 0x3a,
  1004  	0x43, 0x6c, 0x6f, 0x75, 0x64, 0x3a, 0x3a, 0x47, 0x6b, 0x65, 0x48, 0x75, 0x62, 0x3a, 0x3a, 0x56,
  1005  	0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
  1006  }
  1007  
  1008  var (
  1009  	file_google_cloud_gkehub_v1alpha_feature_proto_rawDescOnce sync.Once
  1010  	file_google_cloud_gkehub_v1alpha_feature_proto_rawDescData = file_google_cloud_gkehub_v1alpha_feature_proto_rawDesc
  1011  )
  1012  
  1013  func file_google_cloud_gkehub_v1alpha_feature_proto_rawDescGZIP() []byte {
  1014  	file_google_cloud_gkehub_v1alpha_feature_proto_rawDescOnce.Do(func() {
  1015  		file_google_cloud_gkehub_v1alpha_feature_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_gkehub_v1alpha_feature_proto_rawDescData)
  1016  	})
  1017  	return file_google_cloud_gkehub_v1alpha_feature_proto_rawDescData
  1018  }
  1019  
  1020  var file_google_cloud_gkehub_v1alpha_feature_proto_enumTypes = make([]protoimpl.EnumInfo, 2)
  1021  var file_google_cloud_gkehub_v1alpha_feature_proto_msgTypes = make([]protoimpl.MessageInfo, 10)
  1022  var file_google_cloud_gkehub_v1alpha_feature_proto_goTypes = []interface{}{
  1023  	(FeatureResourceState_State)(0),  // 0: google.cloud.gkehub.v1alpha.FeatureResourceState.State
  1024  	(FeatureState_Code)(0),           // 1: google.cloud.gkehub.v1alpha.FeatureState.Code
  1025  	(*Feature)(nil),                  // 2: google.cloud.gkehub.v1alpha.Feature
  1026  	(*FeatureResourceState)(nil),     // 3: google.cloud.gkehub.v1alpha.FeatureResourceState
  1027  	(*FeatureState)(nil),             // 4: google.cloud.gkehub.v1alpha.FeatureState
  1028  	(*CommonFeatureSpec)(nil),        // 5: google.cloud.gkehub.v1alpha.CommonFeatureSpec
  1029  	(*CommonFeatureState)(nil),       // 6: google.cloud.gkehub.v1alpha.CommonFeatureState
  1030  	(*MembershipFeatureSpec)(nil),    // 7: google.cloud.gkehub.v1alpha.MembershipFeatureSpec
  1031  	(*MembershipFeatureState)(nil),   // 8: google.cloud.gkehub.v1alpha.MembershipFeatureState
  1032  	nil,                              // 9: google.cloud.gkehub.v1alpha.Feature.LabelsEntry
  1033  	nil,                              // 10: google.cloud.gkehub.v1alpha.Feature.MembershipSpecsEntry
  1034  	nil,                              // 11: google.cloud.gkehub.v1alpha.Feature.MembershipStatesEntry
  1035  	(*timestamppb.Timestamp)(nil),    // 12: google.protobuf.Timestamp
  1036  	(*v1alpha.FeatureSpec)(nil),      // 13: google.cloud.gkehub.multiclusteringress.v1alpha.FeatureSpec
  1037  	(*v1alpha1.FeatureSpec)(nil),     // 14: google.cloud.gkehub.cloudauditlogging.v1alpha.FeatureSpec
  1038  	(*v1alpha2.FeatureState)(nil),    // 15: google.cloud.gkehub.servicemesh.v1alpha.FeatureState
  1039  	(*v1alpha3.MembershipSpec)(nil),  // 16: google.cloud.gkehub.configmanagement.v1alpha.MembershipSpec
  1040  	(*v1alpha2.MembershipState)(nil), // 17: google.cloud.gkehub.servicemesh.v1alpha.MembershipState
  1041  	(*v1alpha4.MembershipState)(nil), // 18: google.cloud.gkehub.metering.v1alpha.MembershipState
  1042  	(*v1alpha3.MembershipState)(nil), // 19: google.cloud.gkehub.configmanagement.v1alpha.MembershipState
  1043  }
  1044  var file_google_cloud_gkehub_v1alpha_feature_proto_depIdxs = []int32{
  1045  	9,  // 0: google.cloud.gkehub.v1alpha.Feature.labels:type_name -> google.cloud.gkehub.v1alpha.Feature.LabelsEntry
  1046  	3,  // 1: google.cloud.gkehub.v1alpha.Feature.resource_state:type_name -> google.cloud.gkehub.v1alpha.FeatureResourceState
  1047  	5,  // 2: google.cloud.gkehub.v1alpha.Feature.spec:type_name -> google.cloud.gkehub.v1alpha.CommonFeatureSpec
  1048  	10, // 3: google.cloud.gkehub.v1alpha.Feature.membership_specs:type_name -> google.cloud.gkehub.v1alpha.Feature.MembershipSpecsEntry
  1049  	6,  // 4: google.cloud.gkehub.v1alpha.Feature.state:type_name -> google.cloud.gkehub.v1alpha.CommonFeatureState
  1050  	11, // 5: google.cloud.gkehub.v1alpha.Feature.membership_states:type_name -> google.cloud.gkehub.v1alpha.Feature.MembershipStatesEntry
  1051  	12, // 6: google.cloud.gkehub.v1alpha.Feature.create_time:type_name -> google.protobuf.Timestamp
  1052  	12, // 7: google.cloud.gkehub.v1alpha.Feature.update_time:type_name -> google.protobuf.Timestamp
  1053  	12, // 8: google.cloud.gkehub.v1alpha.Feature.delete_time:type_name -> google.protobuf.Timestamp
  1054  	0,  // 9: google.cloud.gkehub.v1alpha.FeatureResourceState.state:type_name -> google.cloud.gkehub.v1alpha.FeatureResourceState.State
  1055  	1,  // 10: google.cloud.gkehub.v1alpha.FeatureState.code:type_name -> google.cloud.gkehub.v1alpha.FeatureState.Code
  1056  	12, // 11: google.cloud.gkehub.v1alpha.FeatureState.update_time:type_name -> google.protobuf.Timestamp
  1057  	13, // 12: google.cloud.gkehub.v1alpha.CommonFeatureSpec.multiclusteringress:type_name -> google.cloud.gkehub.multiclusteringress.v1alpha.FeatureSpec
  1058  	14, // 13: google.cloud.gkehub.v1alpha.CommonFeatureSpec.cloudauditlogging:type_name -> google.cloud.gkehub.cloudauditlogging.v1alpha.FeatureSpec
  1059  	15, // 14: google.cloud.gkehub.v1alpha.CommonFeatureState.servicemesh:type_name -> google.cloud.gkehub.servicemesh.v1alpha.FeatureState
  1060  	4,  // 15: google.cloud.gkehub.v1alpha.CommonFeatureState.state:type_name -> google.cloud.gkehub.v1alpha.FeatureState
  1061  	16, // 16: google.cloud.gkehub.v1alpha.MembershipFeatureSpec.configmanagement:type_name -> google.cloud.gkehub.configmanagement.v1alpha.MembershipSpec
  1062  	17, // 17: google.cloud.gkehub.v1alpha.MembershipFeatureState.servicemesh:type_name -> google.cloud.gkehub.servicemesh.v1alpha.MembershipState
  1063  	18, // 18: google.cloud.gkehub.v1alpha.MembershipFeatureState.metering:type_name -> google.cloud.gkehub.metering.v1alpha.MembershipState
  1064  	19, // 19: google.cloud.gkehub.v1alpha.MembershipFeatureState.configmanagement:type_name -> google.cloud.gkehub.configmanagement.v1alpha.MembershipState
  1065  	4,  // 20: google.cloud.gkehub.v1alpha.MembershipFeatureState.state:type_name -> google.cloud.gkehub.v1alpha.FeatureState
  1066  	7,  // 21: google.cloud.gkehub.v1alpha.Feature.MembershipSpecsEntry.value:type_name -> google.cloud.gkehub.v1alpha.MembershipFeatureSpec
  1067  	8,  // 22: google.cloud.gkehub.v1alpha.Feature.MembershipStatesEntry.value:type_name -> google.cloud.gkehub.v1alpha.MembershipFeatureState
  1068  	23, // [23:23] is the sub-list for method output_type
  1069  	23, // [23:23] is the sub-list for method input_type
  1070  	23, // [23:23] is the sub-list for extension type_name
  1071  	23, // [23:23] is the sub-list for extension extendee
  1072  	0,  // [0:23] is the sub-list for field type_name
  1073  }
  1074  
  1075  func init() { file_google_cloud_gkehub_v1alpha_feature_proto_init() }
  1076  func file_google_cloud_gkehub_v1alpha_feature_proto_init() {
  1077  	if File_google_cloud_gkehub_v1alpha_feature_proto != nil {
  1078  		return
  1079  	}
  1080  	if !protoimpl.UnsafeEnabled {
  1081  		file_google_cloud_gkehub_v1alpha_feature_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
  1082  			switch v := v.(*Feature); i {
  1083  			case 0:
  1084  				return &v.state
  1085  			case 1:
  1086  				return &v.sizeCache
  1087  			case 2:
  1088  				return &v.unknownFields
  1089  			default:
  1090  				return nil
  1091  			}
  1092  		}
  1093  		file_google_cloud_gkehub_v1alpha_feature_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
  1094  			switch v := v.(*FeatureResourceState); i {
  1095  			case 0:
  1096  				return &v.state
  1097  			case 1:
  1098  				return &v.sizeCache
  1099  			case 2:
  1100  				return &v.unknownFields
  1101  			default:
  1102  				return nil
  1103  			}
  1104  		}
  1105  		file_google_cloud_gkehub_v1alpha_feature_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
  1106  			switch v := v.(*FeatureState); i {
  1107  			case 0:
  1108  				return &v.state
  1109  			case 1:
  1110  				return &v.sizeCache
  1111  			case 2:
  1112  				return &v.unknownFields
  1113  			default:
  1114  				return nil
  1115  			}
  1116  		}
  1117  		file_google_cloud_gkehub_v1alpha_feature_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
  1118  			switch v := v.(*CommonFeatureSpec); i {
  1119  			case 0:
  1120  				return &v.state
  1121  			case 1:
  1122  				return &v.sizeCache
  1123  			case 2:
  1124  				return &v.unknownFields
  1125  			default:
  1126  				return nil
  1127  			}
  1128  		}
  1129  		file_google_cloud_gkehub_v1alpha_feature_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
  1130  			switch v := v.(*CommonFeatureState); i {
  1131  			case 0:
  1132  				return &v.state
  1133  			case 1:
  1134  				return &v.sizeCache
  1135  			case 2:
  1136  				return &v.unknownFields
  1137  			default:
  1138  				return nil
  1139  			}
  1140  		}
  1141  		file_google_cloud_gkehub_v1alpha_feature_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
  1142  			switch v := v.(*MembershipFeatureSpec); i {
  1143  			case 0:
  1144  				return &v.state
  1145  			case 1:
  1146  				return &v.sizeCache
  1147  			case 2:
  1148  				return &v.unknownFields
  1149  			default:
  1150  				return nil
  1151  			}
  1152  		}
  1153  		file_google_cloud_gkehub_v1alpha_feature_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
  1154  			switch v := v.(*MembershipFeatureState); i {
  1155  			case 0:
  1156  				return &v.state
  1157  			case 1:
  1158  				return &v.sizeCache
  1159  			case 2:
  1160  				return &v.unknownFields
  1161  			default:
  1162  				return nil
  1163  			}
  1164  		}
  1165  	}
  1166  	file_google_cloud_gkehub_v1alpha_feature_proto_msgTypes[3].OneofWrappers = []interface{}{
  1167  		(*CommonFeatureSpec_Multiclusteringress)(nil),
  1168  		(*CommonFeatureSpec_Cloudauditlogging)(nil),
  1169  	}
  1170  	file_google_cloud_gkehub_v1alpha_feature_proto_msgTypes[4].OneofWrappers = []interface{}{
  1171  		(*CommonFeatureState_Servicemesh)(nil),
  1172  	}
  1173  	file_google_cloud_gkehub_v1alpha_feature_proto_msgTypes[5].OneofWrappers = []interface{}{
  1174  		(*MembershipFeatureSpec_Configmanagement)(nil),
  1175  	}
  1176  	file_google_cloud_gkehub_v1alpha_feature_proto_msgTypes[6].OneofWrappers = []interface{}{
  1177  		(*MembershipFeatureState_Servicemesh)(nil),
  1178  		(*MembershipFeatureState_Metering)(nil),
  1179  		(*MembershipFeatureState_Configmanagement)(nil),
  1180  	}
  1181  	type x struct{}
  1182  	out := protoimpl.TypeBuilder{
  1183  		File: protoimpl.DescBuilder{
  1184  			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
  1185  			RawDescriptor: file_google_cloud_gkehub_v1alpha_feature_proto_rawDesc,
  1186  			NumEnums:      2,
  1187  			NumMessages:   10,
  1188  			NumExtensions: 0,
  1189  			NumServices:   0,
  1190  		},
  1191  		GoTypes:           file_google_cloud_gkehub_v1alpha_feature_proto_goTypes,
  1192  		DependencyIndexes: file_google_cloud_gkehub_v1alpha_feature_proto_depIdxs,
  1193  		EnumInfos:         file_google_cloud_gkehub_v1alpha_feature_proto_enumTypes,
  1194  		MessageInfos:      file_google_cloud_gkehub_v1alpha_feature_proto_msgTypes,
  1195  	}.Build()
  1196  	File_google_cloud_gkehub_v1alpha_feature_proto = out.File
  1197  	file_google_cloud_gkehub_v1alpha_feature_proto_rawDesc = nil
  1198  	file_google_cloud_gkehub_v1alpha_feature_proto_goTypes = nil
  1199  	file_google_cloud_gkehub_v1alpha_feature_proto_depIdxs = nil
  1200  }
  1201  

View as plain text