From b61c20a43a1175a1a483023f56fe57458d34f58a Mon Sep 17 00:00:00 2001 From: Ziyue Yan Date: Fri, 26 Apr 2024 22:13:08 +0000 Subject: [PATCH] Enable mock test for GKEHubfeatureMembership --- config/tests/samples/create/harness.go | 1 + .../servicemesh/v1beta/servicemesh.pb.go | 1247 +++++++++++++++++ .../configmanagement/configmanagement.pb.go | 2 +- .../mockgcp/cloud/gkehub/v1beta/feature.pb.go | 425 +++--- .../gkehub/v1beta/metering/metering.pb.go | 2 +- .../multiclusteringress.pb.go | 2 +- .../mockgcp/cloud/gkehub/v1beta/service.pb.go | 2 +- .../cloud/gkehub/v1beta1/membership.pb.go | 2 +- mockgcp/mockgkehub/gkehubfeature.go | 3 +- 9 files changed, 1494 insertions(+), 192 deletions(-) create mode 100644 mockgcp/generated/mockgcp/cloud/gkehub/servicemesh/v1beta/servicemesh.pb.go diff --git a/config/tests/samples/create/harness.go b/config/tests/samples/create/harness.go index 3a269c5e1e..26018f66dd 100644 --- a/config/tests/samples/create/harness.go +++ b/config/tests/samples/create/harness.go @@ -637,6 +637,7 @@ func MaybeSkip(t *testing.T, name string, resources []*unstructured.Unstructured case schema.GroupKind{Group: "gkehub.cnrm.cloud.google.com", Kind: "GKEHubFeature"}: case schema.GroupKind{Group: "gkehub.cnrm.cloud.google.com", Kind: "GKEHubMembership"}: + case schema.GroupKind{Group: "gkehub.cnrm.cloud.google.com", Kind: "GKEHubFeatureMembership"}: case schema.GroupKind{Group: "cloudbuild.cnrm.cloud.google.com", Kind: "CloudBuildWorkerPool"}: diff --git a/mockgcp/generated/mockgcp/cloud/gkehub/servicemesh/v1beta/servicemesh.pb.go b/mockgcp/generated/mockgcp/cloud/gkehub/servicemesh/v1beta/servicemesh.pb.go new file mode 100644 index 0000000000..b838b5f6c8 --- /dev/null +++ b/mockgcp/generated/mockgcp/cloud/gkehub/servicemesh/v1beta/servicemesh.pb.go @@ -0,0 +1,1247 @@ +// Copyright 2024 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.28.1 +// protoc v3.12.4 +// source: mockgcp/cloud/gkehub/servicemesh/v1beta/servicemesh.proto + +package servicemeshpb + +import ( + _ "google.golang.org/genproto/googleapis/api/annotations" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +// Whether to automatically manage Service Mesh control planes. +type MembershipSpec_ControlPlaneManagement int32 + +const ( + // Unspecified + MembershipSpec_CONTROL_PLANE_MANAGEMENT_UNSPECIFIED MembershipSpec_ControlPlaneManagement = 0 + // Google should provision a control plane revision and make it available in + // the cluster. Google will enroll this revision in a release channel and + // keep it up to date. The control plane revision may be a managed service, + // or a managed install. + MembershipSpec_AUTOMATIC MembershipSpec_ControlPlaneManagement = 1 + // User will manually configure the control plane (e.g. via CLI, or via the + // ControlPlaneRevision KRM API) + MembershipSpec_MANUAL MembershipSpec_ControlPlaneManagement = 2 +) + +// Enum value maps for MembershipSpec_ControlPlaneManagement. +var ( + MembershipSpec_ControlPlaneManagement_name = map[int32]string{ + 0: "CONTROL_PLANE_MANAGEMENT_UNSPECIFIED", + 1: "AUTOMATIC", + 2: "MANUAL", + } + MembershipSpec_ControlPlaneManagement_value = map[string]int32{ + "CONTROL_PLANE_MANAGEMENT_UNSPECIFIED": 0, + "AUTOMATIC": 1, + "MANUAL": 2, + } +) + +func (x MembershipSpec_ControlPlaneManagement) Enum() *MembershipSpec_ControlPlaneManagement { + p := new(MembershipSpec_ControlPlaneManagement) + *p = x + return p +} + +func (x MembershipSpec_ControlPlaneManagement) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (MembershipSpec_ControlPlaneManagement) Descriptor() protoreflect.EnumDescriptor { + return file_mockgcp_cloud_gkehub_servicemesh_v1beta_servicemesh_proto_enumTypes[0].Descriptor() +} + +func (MembershipSpec_ControlPlaneManagement) Type() protoreflect.EnumType { + return &file_mockgcp_cloud_gkehub_servicemesh_v1beta_servicemesh_proto_enumTypes[0] +} + +func (x MembershipSpec_ControlPlaneManagement) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use MembershipSpec_ControlPlaneManagement.Descriptor instead. +func (MembershipSpec_ControlPlaneManagement) EnumDescriptor() ([]byte, []int) { + return file_mockgcp_cloud_gkehub_servicemesh_v1beta_servicemesh_proto_rawDescGZIP(), []int{0, 0} +} + +// Whether to automatically manage Service Mesh. +type MembershipSpec_Management int32 + +const ( + // Unspecified + MembershipSpec_MANAGEMENT_UNSPECIFIED MembershipSpec_Management = 0 + // Google should manage my Service Mesh for the cluster. + MembershipSpec_MANAGEMENT_AUTOMATIC MembershipSpec_Management = 1 + // User will manually configure their service mesh components. + MembershipSpec_MANAGEMENT_MANUAL MembershipSpec_Management = 2 +) + +// Enum value maps for MembershipSpec_Management. +var ( + MembershipSpec_Management_name = map[int32]string{ + 0: "MANAGEMENT_UNSPECIFIED", + 1: "MANAGEMENT_AUTOMATIC", + 2: "MANAGEMENT_MANUAL", + } + MembershipSpec_Management_value = map[string]int32{ + "MANAGEMENT_UNSPECIFIED": 0, + "MANAGEMENT_AUTOMATIC": 1, + "MANAGEMENT_MANUAL": 2, + } +) + +func (x MembershipSpec_Management) Enum() *MembershipSpec_Management { + p := new(MembershipSpec_Management) + *p = x + return p +} + +func (x MembershipSpec_Management) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (MembershipSpec_Management) Descriptor() protoreflect.EnumDescriptor { + return file_mockgcp_cloud_gkehub_servicemesh_v1beta_servicemesh_proto_enumTypes[1].Descriptor() +} + +func (MembershipSpec_Management) Type() protoreflect.EnumType { + return &file_mockgcp_cloud_gkehub_servicemesh_v1beta_servicemesh_proto_enumTypes[1] +} + +func (x MembershipSpec_Management) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use MembershipSpec_Management.Descriptor instead. +func (MembershipSpec_Management) EnumDescriptor() ([]byte, []int) { + return file_mockgcp_cloud_gkehub_servicemesh_v1beta_servicemesh_proto_rawDescGZIP(), []int{0, 1} +} + +// Lifecycle state of Service Mesh components. +type MembershipState_LifecycleState int32 + +const ( + // Unspecified + MembershipState_LIFECYCLE_STATE_UNSPECIFIED MembershipState_LifecycleState = 0 + // DISABLED means that the component is not enabled. + MembershipState_DISABLED MembershipState_LifecycleState = 1 + // FAILED_PRECONDITION means that provisioning cannot proceed because of + // some characteristic of the member cluster. + MembershipState_FAILED_PRECONDITION MembershipState_LifecycleState = 2 + // PROVISIONING means that provisioning is in progress. + MembershipState_PROVISIONING MembershipState_LifecycleState = 3 + // ACTIVE means that the component is ready for use. + MembershipState_ACTIVE MembershipState_LifecycleState = 4 + // STALLED means that provisioning could not be done. + MembershipState_STALLED MembershipState_LifecycleState = 5 + // NEEDS_ATTENTION means that the component is ready, but some user + // intervention is required. (For example that the user should migrate + // workloads to a new control plane revision.) + MembershipState_NEEDS_ATTENTION MembershipState_LifecycleState = 6 + // DEGRADED means that the component is ready, but operating in a + // degraded state. + MembershipState_DEGRADED MembershipState_LifecycleState = 7 +) + +// Enum value maps for MembershipState_LifecycleState. +var ( + MembershipState_LifecycleState_name = map[int32]string{ + 0: "LIFECYCLE_STATE_UNSPECIFIED", + 1: "DISABLED", + 2: "FAILED_PRECONDITION", + 3: "PROVISIONING", + 4: "ACTIVE", + 5: "STALLED", + 6: "NEEDS_ATTENTION", + 7: "DEGRADED", + } + MembershipState_LifecycleState_value = map[string]int32{ + "LIFECYCLE_STATE_UNSPECIFIED": 0, + "DISABLED": 1, + "FAILED_PRECONDITION": 2, + "PROVISIONING": 3, + "ACTIVE": 4, + "STALLED": 5, + "NEEDS_ATTENTION": 6, + "DEGRADED": 7, + } +) + +func (x MembershipState_LifecycleState) Enum() *MembershipState_LifecycleState { + p := new(MembershipState_LifecycleState) + *p = x + return p +} + +func (x MembershipState_LifecycleState) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (MembershipState_LifecycleState) Descriptor() protoreflect.EnumDescriptor { + return file_mockgcp_cloud_gkehub_servicemesh_v1beta_servicemesh_proto_enumTypes[2].Descriptor() +} + +func (MembershipState_LifecycleState) Type() protoreflect.EnumType { + return &file_mockgcp_cloud_gkehub_servicemesh_v1beta_servicemesh_proto_enumTypes[2] +} + +func (x MembershipState_LifecycleState) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use MembershipState_LifecycleState.Descriptor instead. +func (MembershipState_LifecycleState) EnumDescriptor() ([]byte, []int) { + return file_mockgcp_cloud_gkehub_servicemesh_v1beta_servicemesh_proto_rawDescGZIP(), []int{1, 0} +} + +// Implementation of managed control plane. +type MembershipState_ControlPlaneManagement_Implementation int32 + +const ( + // Unspecified + MembershipState_ControlPlaneManagement_IMPLEMENTATION_UNSPECIFIED MembershipState_ControlPlaneManagement_Implementation = 0 + // A Google build of istiod is used for the managed control plane. + MembershipState_ControlPlaneManagement_ISTIOD MembershipState_ControlPlaneManagement_Implementation = 1 + // Traffic director is used for the managed control plane. + MembershipState_ControlPlaneManagement_TRAFFIC_DIRECTOR MembershipState_ControlPlaneManagement_Implementation = 2 + // The control plane implementation is being updated. + MembershipState_ControlPlaneManagement_UPDATING MembershipState_ControlPlaneManagement_Implementation = 3 +) + +// Enum value maps for MembershipState_ControlPlaneManagement_Implementation. +var ( + MembershipState_ControlPlaneManagement_Implementation_name = map[int32]string{ + 0: "IMPLEMENTATION_UNSPECIFIED", + 1: "ISTIOD", + 2: "TRAFFIC_DIRECTOR", + 3: "UPDATING", + } + MembershipState_ControlPlaneManagement_Implementation_value = map[string]int32{ + "IMPLEMENTATION_UNSPECIFIED": 0, + "ISTIOD": 1, + "TRAFFIC_DIRECTOR": 2, + "UPDATING": 3, + } +) + +func (x MembershipState_ControlPlaneManagement_Implementation) Enum() *MembershipState_ControlPlaneManagement_Implementation { + p := new(MembershipState_ControlPlaneManagement_Implementation) + *p = x + return p +} + +func (x MembershipState_ControlPlaneManagement_Implementation) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (MembershipState_ControlPlaneManagement_Implementation) Descriptor() protoreflect.EnumDescriptor { + return file_mockgcp_cloud_gkehub_servicemesh_v1beta_servicemesh_proto_enumTypes[3].Descriptor() +} + +func (MembershipState_ControlPlaneManagement_Implementation) Type() protoreflect.EnumType { + return &file_mockgcp_cloud_gkehub_servicemesh_v1beta_servicemesh_proto_enumTypes[3] +} + +func (x MembershipState_ControlPlaneManagement_Implementation) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use MembershipState_ControlPlaneManagement_Implementation.Descriptor instead. +func (MembershipState_ControlPlaneManagement_Implementation) EnumDescriptor() ([]byte, []int) { + return file_mockgcp_cloud_gkehub_servicemesh_v1beta_servicemesh_proto_rawDescGZIP(), []int{1, 0, 0} +} + +// Unique identifier of the condition which describes the condition +// recognizable to the user. +type MembershipState_Condition_Code int32 + +const ( + // Default Unspecified code + MembershipState_Condition_CODE_UNSPECIFIED MembershipState_Condition_Code = 0 + // Mesh IAM permission denied error code + MembershipState_Condition_MESH_IAM_PERMISSION_DENIED MembershipState_Condition_Code = 100 + // CNI config unsupported error code + MembershipState_Condition_CNI_CONFIG_UNSUPPORTED MembershipState_Condition_Code = 201 + // GKE sandbox unsupported error code + MembershipState_Condition_GKE_SANDBOX_UNSUPPORTED MembershipState_Condition_Code = 202 + // Nodepool workload identity federation required error code + MembershipState_Condition_NODEPOOL_WORKLOAD_IDENTITY_FEDERATION_REQUIRED MembershipState_Condition_Code = 203 + // CNI installation failed error code + MembershipState_Condition_CNI_INSTALLATION_FAILED MembershipState_Condition_Code = 204 + // CNI pod unschedulable error code + MembershipState_Condition_CNI_POD_UNSCHEDULABLE MembershipState_Condition_Code = 205 + // Multiple control planes unsupported error code + MembershipState_Condition_UNSUPPORTED_MULTIPLE_CONTROL_PLANES MembershipState_Condition_Code = 301 + // VPC-SC GA is supported for this control plane. + MembershipState_Condition_VPCSC_GA_SUPPORTED MembershipState_Condition_Code = 302 + // Configuration (Istio/k8s resources) failed to apply due to internal + // error. + MembershipState_Condition_CONFIG_APPLY_INTERNAL_ERROR MembershipState_Condition_Code = 401 + // Configuration failed to be applied due to being invalid. + MembershipState_Condition_CONFIG_VALIDATION_ERROR MembershipState_Condition_Code = 402 + // Encountered configuration(s) with possible unintended behavior or + // invalid configuration. These configs may not have been applied. + MembershipState_Condition_CONFIG_VALIDATION_WARNING MembershipState_Condition_Code = 403 + // BackendService quota exceeded error code. + MembershipState_Condition_QUOTA_EXCEEDED_BACKEND_SERVICES MembershipState_Condition_Code = 404 + // HealthCheck quota exceeded error code. + MembershipState_Condition_QUOTA_EXCEEDED_HEALTH_CHECKS MembershipState_Condition_Code = 405 + // HTTPRoute quota exceeded error code. + MembershipState_Condition_QUOTA_EXCEEDED_HTTP_ROUTES MembershipState_Condition_Code = 406 + // TCPRoute quota exceeded error code. + MembershipState_Condition_QUOTA_EXCEEDED_TCP_ROUTES MembershipState_Condition_Code = 407 + // TLS routes quota exceeded error code. + MembershipState_Condition_QUOTA_EXCEEDED_TLS_ROUTES MembershipState_Condition_Code = 408 + // TrafficPolicy quota exceeded error code. + MembershipState_Condition_QUOTA_EXCEEDED_TRAFFIC_POLICIES MembershipState_Condition_Code = 409 + // EndpointPolicy quota exceeded error code. + MembershipState_Condition_QUOTA_EXCEEDED_ENDPOINT_POLICIES MembershipState_Condition_Code = 410 + // Gateway quota exceeded error code. + MembershipState_Condition_QUOTA_EXCEEDED_GATEWAYS MembershipState_Condition_Code = 411 + // Mesh quota exceeded error code. + MembershipState_Condition_QUOTA_EXCEEDED_MESHES MembershipState_Condition_Code = 412 + // ServerTLSPolicy quota exceeded error code. + MembershipState_Condition_QUOTA_EXCEEDED_SERVER_TLS_POLICIES MembershipState_Condition_Code = 413 + // ClientTLSPolicy quota exceeded error code. + MembershipState_Condition_QUOTA_EXCEEDED_CLIENT_TLS_POLICIES MembershipState_Condition_Code = 414 + // ServiceLBPolicy quota exceeded error code. + MembershipState_Condition_QUOTA_EXCEEDED_SERVICE_LB_POLICIES MembershipState_Condition_Code = 415 + // HTTPFilter quota exceeded error code. + MembershipState_Condition_QUOTA_EXCEEDED_HTTP_FILTERS MembershipState_Condition_Code = 416 + // TCPFilter quota exceeded error code. + MembershipState_Condition_QUOTA_EXCEEDED_TCP_FILTERS MembershipState_Condition_Code = 417 + // NetworkEndpointGroup quota exceeded error code. + MembershipState_Condition_QUOTA_EXCEEDED_NETWORK_ENDPOINT_GROUPS MembershipState_Condition_Code = 418 +) + +// Enum value maps for MembershipState_Condition_Code. +var ( + MembershipState_Condition_Code_name = map[int32]string{ + 0: "CODE_UNSPECIFIED", + 100: "MESH_IAM_PERMISSION_DENIED", + 201: "CNI_CONFIG_UNSUPPORTED", + 202: "GKE_SANDBOX_UNSUPPORTED", + 203: "NODEPOOL_WORKLOAD_IDENTITY_FEDERATION_REQUIRED", + 204: "CNI_INSTALLATION_FAILED", + 205: "CNI_POD_UNSCHEDULABLE", + 301: "UNSUPPORTED_MULTIPLE_CONTROL_PLANES", + 302: "VPCSC_GA_SUPPORTED", + 401: "CONFIG_APPLY_INTERNAL_ERROR", + 402: "CONFIG_VALIDATION_ERROR", + 403: "CONFIG_VALIDATION_WARNING", + 404: "QUOTA_EXCEEDED_BACKEND_SERVICES", + 405: "QUOTA_EXCEEDED_HEALTH_CHECKS", + 406: "QUOTA_EXCEEDED_HTTP_ROUTES", + 407: "QUOTA_EXCEEDED_TCP_ROUTES", + 408: "QUOTA_EXCEEDED_TLS_ROUTES", + 409: "QUOTA_EXCEEDED_TRAFFIC_POLICIES", + 410: "QUOTA_EXCEEDED_ENDPOINT_POLICIES", + 411: "QUOTA_EXCEEDED_GATEWAYS", + 412: "QUOTA_EXCEEDED_MESHES", + 413: "QUOTA_EXCEEDED_SERVER_TLS_POLICIES", + 414: "QUOTA_EXCEEDED_CLIENT_TLS_POLICIES", + 415: "QUOTA_EXCEEDED_SERVICE_LB_POLICIES", + 416: "QUOTA_EXCEEDED_HTTP_FILTERS", + 417: "QUOTA_EXCEEDED_TCP_FILTERS", + 418: "QUOTA_EXCEEDED_NETWORK_ENDPOINT_GROUPS", + } + MembershipState_Condition_Code_value = map[string]int32{ + "CODE_UNSPECIFIED": 0, + "MESH_IAM_PERMISSION_DENIED": 100, + "CNI_CONFIG_UNSUPPORTED": 201, + "GKE_SANDBOX_UNSUPPORTED": 202, + "NODEPOOL_WORKLOAD_IDENTITY_FEDERATION_REQUIRED": 203, + "CNI_INSTALLATION_FAILED": 204, + "CNI_POD_UNSCHEDULABLE": 205, + "UNSUPPORTED_MULTIPLE_CONTROL_PLANES": 301, + "VPCSC_GA_SUPPORTED": 302, + "CONFIG_APPLY_INTERNAL_ERROR": 401, + "CONFIG_VALIDATION_ERROR": 402, + "CONFIG_VALIDATION_WARNING": 403, + "QUOTA_EXCEEDED_BACKEND_SERVICES": 404, + "QUOTA_EXCEEDED_HEALTH_CHECKS": 405, + "QUOTA_EXCEEDED_HTTP_ROUTES": 406, + "QUOTA_EXCEEDED_TCP_ROUTES": 407, + "QUOTA_EXCEEDED_TLS_ROUTES": 408, + "QUOTA_EXCEEDED_TRAFFIC_POLICIES": 409, + "QUOTA_EXCEEDED_ENDPOINT_POLICIES": 410, + "QUOTA_EXCEEDED_GATEWAYS": 411, + "QUOTA_EXCEEDED_MESHES": 412, + "QUOTA_EXCEEDED_SERVER_TLS_POLICIES": 413, + "QUOTA_EXCEEDED_CLIENT_TLS_POLICIES": 414, + "QUOTA_EXCEEDED_SERVICE_LB_POLICIES": 415, + "QUOTA_EXCEEDED_HTTP_FILTERS": 416, + "QUOTA_EXCEEDED_TCP_FILTERS": 417, + "QUOTA_EXCEEDED_NETWORK_ENDPOINT_GROUPS": 418, + } +) + +func (x MembershipState_Condition_Code) Enum() *MembershipState_Condition_Code { + p := new(MembershipState_Condition_Code) + *p = x + return p +} + +func (x MembershipState_Condition_Code) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (MembershipState_Condition_Code) Descriptor() protoreflect.EnumDescriptor { + return file_mockgcp_cloud_gkehub_servicemesh_v1beta_servicemesh_proto_enumTypes[4].Descriptor() +} + +func (MembershipState_Condition_Code) Type() protoreflect.EnumType { + return &file_mockgcp_cloud_gkehub_servicemesh_v1beta_servicemesh_proto_enumTypes[4] +} + +func (x MembershipState_Condition_Code) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use MembershipState_Condition_Code.Descriptor instead. +func (MembershipState_Condition_Code) EnumDescriptor() ([]byte, []int) { + return file_mockgcp_cloud_gkehub_servicemesh_v1beta_servicemesh_proto_rawDescGZIP(), []int{1, 2, 0} +} + +// Severity level of the reported condition +type MembershipState_Condition_Severity int32 + +const ( + // Unspecified severity + MembershipState_Condition_SEVERITY_UNSPECIFIED MembershipState_Condition_Severity = 0 + // Indicates an issue that prevents the mesh from operating correctly + MembershipState_Condition_ERROR MembershipState_Condition_Severity = 1 + // Indicates a setting is likely wrong, but the mesh is still able to + // operate + MembershipState_Condition_WARNING MembershipState_Condition_Severity = 2 + // An informational message, not requiring any action + MembershipState_Condition_INFO MembershipState_Condition_Severity = 3 +) + +// Enum value maps for MembershipState_Condition_Severity. +var ( + MembershipState_Condition_Severity_name = map[int32]string{ + 0: "SEVERITY_UNSPECIFIED", + 1: "ERROR", + 2: "WARNING", + 3: "INFO", + } + MembershipState_Condition_Severity_value = map[string]int32{ + "SEVERITY_UNSPECIFIED": 0, + "ERROR": 1, + "WARNING": 2, + "INFO": 3, + } +) + +func (x MembershipState_Condition_Severity) Enum() *MembershipState_Condition_Severity { + p := new(MembershipState_Condition_Severity) + *p = x + return p +} + +func (x MembershipState_Condition_Severity) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (MembershipState_Condition_Severity) Descriptor() protoreflect.EnumDescriptor { + return file_mockgcp_cloud_gkehub_servicemesh_v1beta_servicemesh_proto_enumTypes[5].Descriptor() +} + +func (MembershipState_Condition_Severity) Type() protoreflect.EnumType { + return &file_mockgcp_cloud_gkehub_servicemesh_v1beta_servicemesh_proto_enumTypes[5] +} + +func (x MembershipState_Condition_Severity) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use MembershipState_Condition_Severity.Descriptor instead. +func (MembershipState_Condition_Severity) EnumDescriptor() ([]byte, []int) { + return file_mockgcp_cloud_gkehub_servicemesh_v1beta_servicemesh_proto_rawDescGZIP(), []int{1, 2, 1} +} + +// **Service Mesh**: Spec for a single Membership for the servicemesh feature +type MembershipSpec struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Deprecated: use `management` instead + // Enables automatic control plane management. + // + // Deprecated: Do not use. + ControlPlane MembershipSpec_ControlPlaneManagement `protobuf:"varint,1,opt,name=control_plane,json=controlPlane,proto3,enum=mockgcp.cloud.gkehub.servicemesh.v1beta.MembershipSpec_ControlPlaneManagement" json:"control_plane,omitempty"` + // Enables automatic Service Mesh management. + Management MembershipSpec_Management `protobuf:"varint,4,opt,name=management,proto3,enum=mockgcp.cloud.gkehub.servicemesh.v1beta.MembershipSpec_Management" json:"management,omitempty"` +} + +func (x *MembershipSpec) Reset() { + *x = MembershipSpec{} + if protoimpl.UnsafeEnabled { + mi := &file_mockgcp_cloud_gkehub_servicemesh_v1beta_servicemesh_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MembershipSpec) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MembershipSpec) ProtoMessage() {} + +func (x *MembershipSpec) ProtoReflect() protoreflect.Message { + mi := &file_mockgcp_cloud_gkehub_servicemesh_v1beta_servicemesh_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use MembershipSpec.ProtoReflect.Descriptor instead. +func (*MembershipSpec) Descriptor() ([]byte, []int) { + return file_mockgcp_cloud_gkehub_servicemesh_v1beta_servicemesh_proto_rawDescGZIP(), []int{0} +} + +// Deprecated: Do not use. +func (x *MembershipSpec) GetControlPlane() MembershipSpec_ControlPlaneManagement { + if x != nil { + return x.ControlPlane + } + return MembershipSpec_CONTROL_PLANE_MANAGEMENT_UNSPECIFIED +} + +func (x *MembershipSpec) GetManagement() MembershipSpec_Management { + if x != nil { + return x.Management + } + return MembershipSpec_MANAGEMENT_UNSPECIFIED +} + +// **Service Mesh**: State for a single Membership, as analyzed by the Service +// Mesh Hub Controller. +type MembershipState struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Output only. Status of control plane management + ControlPlaneManagement *MembershipState_ControlPlaneManagement `protobuf:"bytes,2,opt,name=control_plane_management,json=controlPlaneManagement,proto3" json:"control_plane_management,omitempty"` + // Output only. Status of data plane management. + DataPlaneManagement *MembershipState_DataPlaneManagement `protobuf:"bytes,4,opt,name=data_plane_management,json=dataPlaneManagement,proto3" json:"data_plane_management,omitempty"` + // Output only. List of conditions reported for this membership. + Conditions []*MembershipState_Condition `protobuf:"bytes,8,rep,name=conditions,proto3" json:"conditions,omitempty"` +} + +func (x *MembershipState) Reset() { + *x = MembershipState{} + if protoimpl.UnsafeEnabled { + mi := &file_mockgcp_cloud_gkehub_servicemesh_v1beta_servicemesh_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MembershipState) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MembershipState) ProtoMessage() {} + +func (x *MembershipState) ProtoReflect() protoreflect.Message { + mi := &file_mockgcp_cloud_gkehub_servicemesh_v1beta_servicemesh_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use MembershipState.ProtoReflect.Descriptor instead. +func (*MembershipState) Descriptor() ([]byte, []int) { + return file_mockgcp_cloud_gkehub_servicemesh_v1beta_servicemesh_proto_rawDescGZIP(), []int{1} +} + +func (x *MembershipState) GetControlPlaneManagement() *MembershipState_ControlPlaneManagement { + if x != nil { + return x.ControlPlaneManagement + } + return nil +} + +func (x *MembershipState) GetDataPlaneManagement() *MembershipState_DataPlaneManagement { + if x != nil { + return x.DataPlaneManagement + } + return nil +} + +func (x *MembershipState) GetConditions() []*MembershipState_Condition { + if x != nil { + return x.Conditions + } + return nil +} + +// Structured and human-readable details for a status. +type StatusDetails struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // A machine-readable code that further describes a broad status. + Code string `protobuf:"bytes,1,opt,name=code,proto3" json:"code,omitempty"` + // Human-readable explanation of code. + Details string `protobuf:"bytes,2,opt,name=details,proto3" json:"details,omitempty"` +} + +func (x *StatusDetails) Reset() { + *x = StatusDetails{} + if protoimpl.UnsafeEnabled { + mi := &file_mockgcp_cloud_gkehub_servicemesh_v1beta_servicemesh_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *StatusDetails) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*StatusDetails) ProtoMessage() {} + +func (x *StatusDetails) ProtoReflect() protoreflect.Message { + mi := &file_mockgcp_cloud_gkehub_servicemesh_v1beta_servicemesh_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use StatusDetails.ProtoReflect.Descriptor instead. +func (*StatusDetails) Descriptor() ([]byte, []int) { + return file_mockgcp_cloud_gkehub_servicemesh_v1beta_servicemesh_proto_rawDescGZIP(), []int{2} +} + +func (x *StatusDetails) GetCode() string { + if x != nil { + return x.Code + } + return "" +} + +func (x *StatusDetails) GetDetails() string { + if x != nil { + return x.Details + } + return "" +} + +// Status of control plane management. +type MembershipState_ControlPlaneManagement struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Explanation of state. + Details []*StatusDetails `protobuf:"bytes,2,rep,name=details,proto3" json:"details,omitempty"` + // LifecycleState of control plane management. + State MembershipState_LifecycleState `protobuf:"varint,3,opt,name=state,proto3,enum=mockgcp.cloud.gkehub.servicemesh.v1beta.MembershipState_LifecycleState" json:"state,omitempty"` + // Output only. Implementation of managed control plane. + Implementation MembershipState_ControlPlaneManagement_Implementation `protobuf:"varint,4,opt,name=implementation,proto3,enum=mockgcp.cloud.gkehub.servicemesh.v1beta.MembershipState_ControlPlaneManagement_Implementation" json:"implementation,omitempty"` +} + +func (x *MembershipState_ControlPlaneManagement) Reset() { + *x = MembershipState_ControlPlaneManagement{} + if protoimpl.UnsafeEnabled { + mi := &file_mockgcp_cloud_gkehub_servicemesh_v1beta_servicemesh_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MembershipState_ControlPlaneManagement) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MembershipState_ControlPlaneManagement) ProtoMessage() {} + +func (x *MembershipState_ControlPlaneManagement) ProtoReflect() protoreflect.Message { + mi := &file_mockgcp_cloud_gkehub_servicemesh_v1beta_servicemesh_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use MembershipState_ControlPlaneManagement.ProtoReflect.Descriptor instead. +func (*MembershipState_ControlPlaneManagement) Descriptor() ([]byte, []int) { + return file_mockgcp_cloud_gkehub_servicemesh_v1beta_servicemesh_proto_rawDescGZIP(), []int{1, 0} +} + +func (x *MembershipState_ControlPlaneManagement) GetDetails() []*StatusDetails { + if x != nil { + return x.Details + } + return nil +} + +func (x *MembershipState_ControlPlaneManagement) GetState() MembershipState_LifecycleState { + if x != nil { + return x.State + } + return MembershipState_LIFECYCLE_STATE_UNSPECIFIED +} + +func (x *MembershipState_ControlPlaneManagement) GetImplementation() MembershipState_ControlPlaneManagement_Implementation { + if x != nil { + return x.Implementation + } + return MembershipState_ControlPlaneManagement_IMPLEMENTATION_UNSPECIFIED +} + +// Status of data plane management. Only reported per-member. +type MembershipState_DataPlaneManagement struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Lifecycle status of data plane management. + State MembershipState_LifecycleState `protobuf:"varint,1,opt,name=state,proto3,enum=mockgcp.cloud.gkehub.servicemesh.v1beta.MembershipState_LifecycleState" json:"state,omitempty"` + // Explanation of the status. + Details []*StatusDetails `protobuf:"bytes,2,rep,name=details,proto3" json:"details,omitempty"` +} + +func (x *MembershipState_DataPlaneManagement) Reset() { + *x = MembershipState_DataPlaneManagement{} + if protoimpl.UnsafeEnabled { + mi := &file_mockgcp_cloud_gkehub_servicemesh_v1beta_servicemesh_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MembershipState_DataPlaneManagement) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MembershipState_DataPlaneManagement) ProtoMessage() {} + +func (x *MembershipState_DataPlaneManagement) ProtoReflect() protoreflect.Message { + mi := &file_mockgcp_cloud_gkehub_servicemesh_v1beta_servicemesh_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use MembershipState_DataPlaneManagement.ProtoReflect.Descriptor instead. +func (*MembershipState_DataPlaneManagement) Descriptor() ([]byte, []int) { + return file_mockgcp_cloud_gkehub_servicemesh_v1beta_servicemesh_proto_rawDescGZIP(), []int{1, 1} +} + +func (x *MembershipState_DataPlaneManagement) GetState() MembershipState_LifecycleState { + if x != nil { + return x.State + } + return MembershipState_LIFECYCLE_STATE_UNSPECIFIED +} + +func (x *MembershipState_DataPlaneManagement) GetDetails() []*StatusDetails { + if x != nil { + return x.Details + } + return nil +} + +// Condition being reported. +type MembershipState_Condition struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Unique identifier of the condition which describes the condition + // recognizable to the user. + Code MembershipState_Condition_Code `protobuf:"varint,1,opt,name=code,proto3,enum=mockgcp.cloud.gkehub.servicemesh.v1beta.MembershipState_Condition_Code" json:"code,omitempty"` + // Links contains actionable information. + DocumentationLink string `protobuf:"bytes,2,opt,name=documentation_link,json=documentationLink,proto3" json:"documentation_link,omitempty"` + // A short summary about the issue. + Details string `protobuf:"bytes,3,opt,name=details,proto3" json:"details,omitempty"` + // Severity level of the condition. + Severity MembershipState_Condition_Severity `protobuf:"varint,4,opt,name=severity,proto3,enum=mockgcp.cloud.gkehub.servicemesh.v1beta.MembershipState_Condition_Severity" json:"severity,omitempty"` +} + +func (x *MembershipState_Condition) Reset() { + *x = MembershipState_Condition{} + if protoimpl.UnsafeEnabled { + mi := &file_mockgcp_cloud_gkehub_servicemesh_v1beta_servicemesh_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MembershipState_Condition) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MembershipState_Condition) ProtoMessage() {} + +func (x *MembershipState_Condition) ProtoReflect() protoreflect.Message { + mi := &file_mockgcp_cloud_gkehub_servicemesh_v1beta_servicemesh_proto_msgTypes[5] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use MembershipState_Condition.ProtoReflect.Descriptor instead. +func (*MembershipState_Condition) Descriptor() ([]byte, []int) { + return file_mockgcp_cloud_gkehub_servicemesh_v1beta_servicemesh_proto_rawDescGZIP(), []int{1, 2} +} + +func (x *MembershipState_Condition) GetCode() MembershipState_Condition_Code { + if x != nil { + return x.Code + } + return MembershipState_Condition_CODE_UNSPECIFIED +} + +func (x *MembershipState_Condition) GetDocumentationLink() string { + if x != nil { + return x.DocumentationLink + } + return "" +} + +func (x *MembershipState_Condition) GetDetails() string { + if x != nil { + return x.Details + } + return "" +} + +func (x *MembershipState_Condition) GetSeverity() MembershipState_Condition_Severity { + if x != nil { + return x.Severity + } + return MembershipState_Condition_SEVERITY_UNSPECIFIED +} + +var File_mockgcp_cloud_gkehub_servicemesh_v1beta_servicemesh_proto protoreflect.FileDescriptor + +var file_mockgcp_cloud_gkehub_servicemesh_v1beta_servicemesh_proto_rawDesc = []byte{ + 0x0a, 0x39, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, + 0x67, 0x6b, 0x65, 0x68, 0x75, 0x62, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x65, + 0x73, 0x68, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x27, 0x6d, 0x6f, 0x63, + 0x6b, 0x67, 0x63, 0x70, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6b, 0x65, 0x68, 0x75, + 0x62, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x31, + 0x62, 0x65, 0x74, 0x61, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, + 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xa7, 0x03, 0x0a, 0x0e, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, + 0x73, 0x68, 0x69, 0x70, 0x53, 0x70, 0x65, 0x63, 0x12, 0x77, 0x0a, 0x0d, 0x63, 0x6f, 0x6e, 0x74, + 0x72, 0x6f, 0x6c, 0x5f, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x4e, 0x2e, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, + 0x67, 0x6b, 0x65, 0x68, 0x75, 0x62, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x65, + 0x73, 0x68, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, + 0x73, 0x68, 0x69, 0x70, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, + 0x50, 0x6c, 0x61, 0x6e, 0x65, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, + 0x02, 0x18, 0x01, 0x52, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x50, 0x6c, 0x61, 0x6e, + 0x65, 0x12, 0x62, 0x0a, 0x0a, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x42, 0x2e, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2e, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6b, 0x65, 0x68, 0x75, 0x62, 0x2e, 0x73, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, + 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x68, 0x69, 0x70, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x4d, + 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x0a, 0x6d, 0x61, 0x6e, 0x61, 0x67, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x5d, 0x0a, 0x16, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, + 0x50, 0x6c, 0x61, 0x6e, 0x65, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, + 0x28, 0x0a, 0x24, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x5f, 0x50, 0x4c, 0x41, 0x4e, 0x45, + 0x5f, 0x4d, 0x41, 0x4e, 0x41, 0x47, 0x45, 0x4d, 0x45, 0x4e, 0x54, 0x5f, 0x55, 0x4e, 0x53, 0x50, + 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x41, 0x55, 0x54, + 0x4f, 0x4d, 0x41, 0x54, 0x49, 0x43, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x4d, 0x41, 0x4e, 0x55, + 0x41, 0x4c, 0x10, 0x02, 0x22, 0x59, 0x0a, 0x0a, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x16, 0x4d, 0x41, 0x4e, 0x41, 0x47, 0x45, 0x4d, 0x45, 0x4e, 0x54, + 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x18, + 0x0a, 0x14, 0x4d, 0x41, 0x4e, 0x41, 0x47, 0x45, 0x4d, 0x45, 0x4e, 0x54, 0x5f, 0x41, 0x55, 0x54, + 0x4f, 0x4d, 0x41, 0x54, 0x49, 0x43, 0x10, 0x01, 0x12, 0x15, 0x0a, 0x11, 0x4d, 0x41, 0x4e, 0x41, + 0x47, 0x45, 0x4d, 0x45, 0x4e, 0x54, 0x5f, 0x4d, 0x41, 0x4e, 0x55, 0x41, 0x4c, 0x10, 0x02, 0x22, + 0xce, 0x13, 0x0a, 0x0f, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x68, 0x69, 0x70, 0x53, 0x74, + 0x61, 0x74, 0x65, 0x12, 0x8e, 0x01, 0x0a, 0x18, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, + 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x5f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x4f, 0x2e, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, + 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6b, 0x65, 0x68, 0x75, 0x62, 0x2e, 0x73, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, + 0x2e, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x68, 0x69, 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, + 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x50, 0x6c, 0x61, 0x6e, 0x65, 0x4d, 0x61, 0x6e, + 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x16, 0x63, 0x6f, + 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x50, 0x6c, 0x61, 0x6e, 0x65, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x85, 0x01, 0x0a, 0x15, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x70, 0x6c, + 0x61, 0x6e, 0x65, 0x5f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x4c, 0x2e, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2e, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6b, 0x65, 0x68, 0x75, 0x62, 0x2e, 0x73, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x4d, + 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x68, 0x69, 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x44, + 0x61, 0x74, 0x61, 0x50, 0x6c, 0x61, 0x6e, 0x65, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x13, 0x64, 0x61, 0x74, 0x61, 0x50, 0x6c, 0x61, + 0x6e, 0x65, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x67, 0x0a, 0x0a, + 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x42, 0x2e, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x2e, 0x67, 0x6b, 0x65, 0x68, 0x75, 0x62, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, + 0x65, 0x73, 0x68, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x4d, 0x65, 0x6d, 0x62, 0x65, + 0x72, 0x73, 0x68, 0x69, 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x43, 0x6f, 0x6e, 0x64, 0x69, + 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x64, 0x69, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0xb9, 0x03, 0x0a, 0x16, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, + 0x6c, 0x50, 0x6c, 0x61, 0x6e, 0x65, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x12, 0x50, 0x0a, 0x07, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x36, 0x2e, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2e, 0x63, 0x6c, 0x6f, 0x75, + 0x64, 0x2e, 0x67, 0x6b, 0x65, 0x68, 0x75, 0x62, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, 0x07, 0x64, 0x65, 0x74, 0x61, 0x69, + 0x6c, 0x73, 0x12, 0x5d, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x47, 0x2e, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2e, 0x63, 0x6c, 0x6f, 0x75, + 0x64, 0x2e, 0x67, 0x6b, 0x65, 0x68, 0x75, 0x62, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x4d, 0x65, 0x6d, 0x62, + 0x65, 0x72, 0x73, 0x68, 0x69, 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x4c, 0x69, 0x66, 0x65, + 0x63, 0x79, 0x63, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, + 0x65, 0x12, 0x8b, 0x01, 0x0a, 0x0e, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x5e, 0x2e, 0x6d, 0x6f, 0x63, + 0x6b, 0x67, 0x63, 0x70, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6b, 0x65, 0x68, 0x75, + 0x62, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x31, + 0x62, 0x65, 0x74, 0x61, 0x2e, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x68, 0x69, 0x70, 0x53, + 0x74, 0x61, 0x74, 0x65, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x50, 0x6c, 0x61, 0x6e, + 0x65, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x49, 0x6d, 0x70, 0x6c, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, + 0x0e, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, + 0x60, 0x0a, 0x0e, 0x49, 0x6d, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x12, 0x1e, 0x0a, 0x1a, 0x49, 0x4d, 0x50, 0x4c, 0x45, 0x4d, 0x45, 0x4e, 0x54, 0x41, 0x54, + 0x49, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, + 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x49, 0x53, 0x54, 0x49, 0x4f, 0x44, 0x10, 0x01, 0x12, 0x14, 0x0a, + 0x10, 0x54, 0x52, 0x41, 0x46, 0x46, 0x49, 0x43, 0x5f, 0x44, 0x49, 0x52, 0x45, 0x43, 0x54, 0x4f, + 0x52, 0x10, 0x02, 0x12, 0x0c, 0x0a, 0x08, 0x55, 0x50, 0x44, 0x41, 0x54, 0x49, 0x4e, 0x47, 0x10, + 0x03, 0x1a, 0xc6, 0x01, 0x0a, 0x13, 0x44, 0x61, 0x74, 0x61, 0x50, 0x6c, 0x61, 0x6e, 0x65, 0x4d, + 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x5d, 0x0a, 0x05, 0x73, 0x74, 0x61, + 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x47, 0x2e, 0x6d, 0x6f, 0x63, 0x6b, 0x67, + 0x63, 0x70, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6b, 0x65, 0x68, 0x75, 0x62, 0x2e, + 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x2e, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x68, 0x69, 0x70, 0x53, 0x74, 0x61, + 0x74, 0x65, 0x2e, 0x4c, 0x69, 0x66, 0x65, 0x63, 0x79, 0x63, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, + 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x50, 0x0a, 0x07, 0x64, 0x65, 0x74, 0x61, + 0x69, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x6d, 0x6f, 0x63, 0x6b, + 0x67, 0x63, 0x70, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6b, 0x65, 0x68, 0x75, 0x62, + 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x31, 0x62, + 0x65, 0x74, 0x61, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, + 0x73, 0x52, 0x07, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x1a, 0x8a, 0x0a, 0x0a, 0x09, 0x43, + 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x5b, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x47, 0x2e, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, + 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6b, 0x65, 0x68, 0x75, 0x62, 0x2e, 0x73, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, + 0x2e, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x68, 0x69, 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, + 0x2e, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x6f, 0x64, 0x65, 0x52, + 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x2d, 0x0a, 0x12, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, + 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x11, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x4c, 0x69, 0x6e, 0x6b, 0x12, 0x18, 0x0a, 0x07, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x67, + 0x0a, 0x08, 0x73, 0x65, 0x76, 0x65, 0x72, 0x69, 0x74, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x4b, 0x2e, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x2e, 0x67, 0x6b, 0x65, 0x68, 0x75, 0x62, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, + 0x65, 0x73, 0x68, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x4d, 0x65, 0x6d, 0x62, 0x65, + 0x72, 0x73, 0x68, 0x69, 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x43, 0x6f, 0x6e, 0x64, 0x69, + 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x53, 0x65, 0x76, 0x65, 0x72, 0x69, 0x74, 0x79, 0x52, 0x08, 0x73, + 0x65, 0x76, 0x65, 0x72, 0x69, 0x74, 0x79, 0x22, 0xa5, 0x07, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, + 0x12, 0x14, 0x0a, 0x10, 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, + 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1e, 0x0a, 0x1a, 0x4d, 0x45, 0x53, 0x48, 0x5f, 0x49, + 0x41, 0x4d, 0x5f, 0x50, 0x45, 0x52, 0x4d, 0x49, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x44, 0x45, + 0x4e, 0x49, 0x45, 0x44, 0x10, 0x64, 0x12, 0x1b, 0x0a, 0x16, 0x43, 0x4e, 0x49, 0x5f, 0x43, 0x4f, + 0x4e, 0x46, 0x49, 0x47, 0x5f, 0x55, 0x4e, 0x53, 0x55, 0x50, 0x50, 0x4f, 0x52, 0x54, 0x45, 0x44, + 0x10, 0xc9, 0x01, 0x12, 0x1c, 0x0a, 0x17, 0x47, 0x4b, 0x45, 0x5f, 0x53, 0x41, 0x4e, 0x44, 0x42, + 0x4f, 0x58, 0x5f, 0x55, 0x4e, 0x53, 0x55, 0x50, 0x50, 0x4f, 0x52, 0x54, 0x45, 0x44, 0x10, 0xca, + 0x01, 0x12, 0x33, 0x0a, 0x2e, 0x4e, 0x4f, 0x44, 0x45, 0x50, 0x4f, 0x4f, 0x4c, 0x5f, 0x57, 0x4f, + 0x52, 0x4b, 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x49, 0x44, 0x45, 0x4e, 0x54, 0x49, 0x54, 0x59, 0x5f, + 0x46, 0x45, 0x44, 0x45, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x52, 0x45, 0x51, 0x55, 0x49, + 0x52, 0x45, 0x44, 0x10, 0xcb, 0x01, 0x12, 0x1c, 0x0a, 0x17, 0x43, 0x4e, 0x49, 0x5f, 0x49, 0x4e, + 0x53, 0x54, 0x41, 0x4c, 0x4c, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x45, + 0x44, 0x10, 0xcc, 0x01, 0x12, 0x1a, 0x0a, 0x15, 0x43, 0x4e, 0x49, 0x5f, 0x50, 0x4f, 0x44, 0x5f, + 0x55, 0x4e, 0x53, 0x43, 0x48, 0x45, 0x44, 0x55, 0x4c, 0x41, 0x42, 0x4c, 0x45, 0x10, 0xcd, 0x01, + 0x12, 0x28, 0x0a, 0x23, 0x55, 0x4e, 0x53, 0x55, 0x50, 0x50, 0x4f, 0x52, 0x54, 0x45, 0x44, 0x5f, + 0x4d, 0x55, 0x4c, 0x54, 0x49, 0x50, 0x4c, 0x45, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, + 0x5f, 0x50, 0x4c, 0x41, 0x4e, 0x45, 0x53, 0x10, 0xad, 0x02, 0x12, 0x17, 0x0a, 0x12, 0x56, 0x50, + 0x43, 0x53, 0x43, 0x5f, 0x47, 0x41, 0x5f, 0x53, 0x55, 0x50, 0x50, 0x4f, 0x52, 0x54, 0x45, 0x44, + 0x10, 0xae, 0x02, 0x12, 0x20, 0x0a, 0x1b, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x5f, 0x41, 0x50, + 0x50, 0x4c, 0x59, 0x5f, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x4e, 0x41, 0x4c, 0x5f, 0x45, 0x52, 0x52, + 0x4f, 0x52, 0x10, 0x91, 0x03, 0x12, 0x1c, 0x0a, 0x17, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x5f, + 0x56, 0x41, 0x4c, 0x49, 0x44, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, + 0x10, 0x92, 0x03, 0x12, 0x1e, 0x0a, 0x19, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x5f, 0x56, 0x41, + 0x4c, 0x49, 0x44, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x57, 0x41, 0x52, 0x4e, 0x49, 0x4e, 0x47, + 0x10, 0x93, 0x03, 0x12, 0x24, 0x0a, 0x1f, 0x51, 0x55, 0x4f, 0x54, 0x41, 0x5f, 0x45, 0x58, 0x43, + 0x45, 0x45, 0x44, 0x45, 0x44, 0x5f, 0x42, 0x41, 0x43, 0x4b, 0x45, 0x4e, 0x44, 0x5f, 0x53, 0x45, + 0x52, 0x56, 0x49, 0x43, 0x45, 0x53, 0x10, 0x94, 0x03, 0x12, 0x21, 0x0a, 0x1c, 0x51, 0x55, 0x4f, + 0x54, 0x41, 0x5f, 0x45, 0x58, 0x43, 0x45, 0x45, 0x44, 0x45, 0x44, 0x5f, 0x48, 0x45, 0x41, 0x4c, + 0x54, 0x48, 0x5f, 0x43, 0x48, 0x45, 0x43, 0x4b, 0x53, 0x10, 0x95, 0x03, 0x12, 0x1f, 0x0a, 0x1a, + 0x51, 0x55, 0x4f, 0x54, 0x41, 0x5f, 0x45, 0x58, 0x43, 0x45, 0x45, 0x44, 0x45, 0x44, 0x5f, 0x48, + 0x54, 0x54, 0x50, 0x5f, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x53, 0x10, 0x96, 0x03, 0x12, 0x1e, 0x0a, + 0x19, 0x51, 0x55, 0x4f, 0x54, 0x41, 0x5f, 0x45, 0x58, 0x43, 0x45, 0x45, 0x44, 0x45, 0x44, 0x5f, + 0x54, 0x43, 0x50, 0x5f, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x53, 0x10, 0x97, 0x03, 0x12, 0x1e, 0x0a, + 0x19, 0x51, 0x55, 0x4f, 0x54, 0x41, 0x5f, 0x45, 0x58, 0x43, 0x45, 0x45, 0x44, 0x45, 0x44, 0x5f, + 0x54, 0x4c, 0x53, 0x5f, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x53, 0x10, 0x98, 0x03, 0x12, 0x24, 0x0a, + 0x1f, 0x51, 0x55, 0x4f, 0x54, 0x41, 0x5f, 0x45, 0x58, 0x43, 0x45, 0x45, 0x44, 0x45, 0x44, 0x5f, + 0x54, 0x52, 0x41, 0x46, 0x46, 0x49, 0x43, 0x5f, 0x50, 0x4f, 0x4c, 0x49, 0x43, 0x49, 0x45, 0x53, + 0x10, 0x99, 0x03, 0x12, 0x25, 0x0a, 0x20, 0x51, 0x55, 0x4f, 0x54, 0x41, 0x5f, 0x45, 0x58, 0x43, + 0x45, 0x45, 0x44, 0x45, 0x44, 0x5f, 0x45, 0x4e, 0x44, 0x50, 0x4f, 0x49, 0x4e, 0x54, 0x5f, 0x50, + 0x4f, 0x4c, 0x49, 0x43, 0x49, 0x45, 0x53, 0x10, 0x9a, 0x03, 0x12, 0x1c, 0x0a, 0x17, 0x51, 0x55, + 0x4f, 0x54, 0x41, 0x5f, 0x45, 0x58, 0x43, 0x45, 0x45, 0x44, 0x45, 0x44, 0x5f, 0x47, 0x41, 0x54, + 0x45, 0x57, 0x41, 0x59, 0x53, 0x10, 0x9b, 0x03, 0x12, 0x1a, 0x0a, 0x15, 0x51, 0x55, 0x4f, 0x54, + 0x41, 0x5f, 0x45, 0x58, 0x43, 0x45, 0x45, 0x44, 0x45, 0x44, 0x5f, 0x4d, 0x45, 0x53, 0x48, 0x45, + 0x53, 0x10, 0x9c, 0x03, 0x12, 0x27, 0x0a, 0x22, 0x51, 0x55, 0x4f, 0x54, 0x41, 0x5f, 0x45, 0x58, + 0x43, 0x45, 0x45, 0x44, 0x45, 0x44, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x54, 0x4c, + 0x53, 0x5f, 0x50, 0x4f, 0x4c, 0x49, 0x43, 0x49, 0x45, 0x53, 0x10, 0x9d, 0x03, 0x12, 0x27, 0x0a, + 0x22, 0x51, 0x55, 0x4f, 0x54, 0x41, 0x5f, 0x45, 0x58, 0x43, 0x45, 0x45, 0x44, 0x45, 0x44, 0x5f, + 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x4c, 0x53, 0x5f, 0x50, 0x4f, 0x4c, 0x49, 0x43, + 0x49, 0x45, 0x53, 0x10, 0x9e, 0x03, 0x12, 0x27, 0x0a, 0x22, 0x51, 0x55, 0x4f, 0x54, 0x41, 0x5f, + 0x45, 0x58, 0x43, 0x45, 0x45, 0x44, 0x45, 0x44, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x49, 0x43, 0x45, + 0x5f, 0x4c, 0x42, 0x5f, 0x50, 0x4f, 0x4c, 0x49, 0x43, 0x49, 0x45, 0x53, 0x10, 0x9f, 0x03, 0x12, + 0x20, 0x0a, 0x1b, 0x51, 0x55, 0x4f, 0x54, 0x41, 0x5f, 0x45, 0x58, 0x43, 0x45, 0x45, 0x44, 0x45, + 0x44, 0x5f, 0x48, 0x54, 0x54, 0x50, 0x5f, 0x46, 0x49, 0x4c, 0x54, 0x45, 0x52, 0x53, 0x10, 0xa0, + 0x03, 0x12, 0x1f, 0x0a, 0x1a, 0x51, 0x55, 0x4f, 0x54, 0x41, 0x5f, 0x45, 0x58, 0x43, 0x45, 0x45, + 0x44, 0x45, 0x44, 0x5f, 0x54, 0x43, 0x50, 0x5f, 0x46, 0x49, 0x4c, 0x54, 0x45, 0x52, 0x53, 0x10, + 0xa1, 0x03, 0x12, 0x2b, 0x0a, 0x26, 0x51, 0x55, 0x4f, 0x54, 0x41, 0x5f, 0x45, 0x58, 0x43, 0x45, + 0x45, 0x44, 0x45, 0x44, 0x5f, 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b, 0x5f, 0x45, 0x4e, 0x44, + 0x50, 0x4f, 0x49, 0x4e, 0x54, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x53, 0x10, 0xa2, 0x03, 0x22, + 0x46, 0x0a, 0x08, 0x53, 0x65, 0x76, 0x65, 0x72, 0x69, 0x74, 0x79, 0x12, 0x18, 0x0a, 0x14, 0x53, + 0x45, 0x56, 0x45, 0x52, 0x49, 0x54, 0x59, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, + 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x01, + 0x12, 0x0b, 0x0a, 0x07, 0x57, 0x41, 0x52, 0x4e, 0x49, 0x4e, 0x47, 0x10, 0x02, 0x12, 0x08, 0x0a, + 0x04, 0x49, 0x4e, 0x46, 0x4f, 0x10, 0x03, 0x22, 0xa6, 0x01, 0x0a, 0x0e, 0x4c, 0x69, 0x66, 0x65, + 0x63, 0x79, 0x63, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1f, 0x0a, 0x1b, 0x4c, 0x49, + 0x46, 0x45, 0x43, 0x59, 0x43, 0x4c, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e, + 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x44, + 0x49, 0x53, 0x41, 0x42, 0x4c, 0x45, 0x44, 0x10, 0x01, 0x12, 0x17, 0x0a, 0x13, 0x46, 0x41, 0x49, + 0x4c, 0x45, 0x44, 0x5f, 0x50, 0x52, 0x45, 0x43, 0x4f, 0x4e, 0x44, 0x49, 0x54, 0x49, 0x4f, 0x4e, + 0x10, 0x02, 0x12, 0x10, 0x0a, 0x0c, 0x50, 0x52, 0x4f, 0x56, 0x49, 0x53, 0x49, 0x4f, 0x4e, 0x49, + 0x4e, 0x47, 0x10, 0x03, 0x12, 0x0a, 0x0a, 0x06, 0x41, 0x43, 0x54, 0x49, 0x56, 0x45, 0x10, 0x04, + 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x54, 0x41, 0x4c, 0x4c, 0x45, 0x44, 0x10, 0x05, 0x12, 0x13, 0x0a, + 0x0f, 0x4e, 0x45, 0x45, 0x44, 0x53, 0x5f, 0x41, 0x54, 0x54, 0x45, 0x4e, 0x54, 0x49, 0x4f, 0x4e, + 0x10, 0x06, 0x12, 0x0c, 0x0a, 0x08, 0x44, 0x45, 0x47, 0x52, 0x41, 0x44, 0x45, 0x44, 0x10, 0x07, + 0x22, 0x3d, 0x0a, 0x0d, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, + 0x73, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x42, + 0x8e, 0x02, 0x0a, 0x2b, 0x63, 0x6f, 0x6d, 0x2e, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2e, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6b, 0x65, 0x68, 0x75, 0x62, 0x2e, 0x73, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x42, + 0x10, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4d, 0x65, 0x73, 0x68, 0x50, 0x72, 0x6f, 0x74, + 0x6f, 0x50, 0x01, 0x5a, 0x4c, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x2f, 0x67, 0x6b, 0x65, 0x68, 0x75, 0x62, 0x2f, + 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x65, 0x73, 0x68, 0x2f, 0x61, 0x70, 0x69, 0x76, + 0x31, 0x62, 0x65, 0x74, 0x61, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x65, 0x73, + 0x68, 0x70, 0x62, 0x3b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x65, 0x73, 0x68, 0x70, + 0x62, 0xaa, 0x02, 0x26, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, + 0x2e, 0x47, 0x6b, 0x65, 0x48, 0x75, 0x62, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4d, + 0x65, 0x73, 0x68, 0x2e, 0x56, 0x31, 0x42, 0x65, 0x74, 0x61, 0xca, 0x02, 0x26, 0x47, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x5c, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x5c, 0x47, 0x6b, 0x65, 0x48, 0x75, 0x62, + 0x5c, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4d, 0x65, 0x73, 0x68, 0x5c, 0x56, 0x31, 0x62, + 0x65, 0x74, 0x61, 0xea, 0x02, 0x2a, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x3a, 0x3a, 0x43, 0x6c, + 0x6f, 0x75, 0x64, 0x3a, 0x3a, 0x47, 0x6b, 0x65, 0x48, 0x75, 0x62, 0x3a, 0x3a, 0x53, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x4d, 0x65, 0x73, 0x68, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, + 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_mockgcp_cloud_gkehub_servicemesh_v1beta_servicemesh_proto_rawDescOnce sync.Once + file_mockgcp_cloud_gkehub_servicemesh_v1beta_servicemesh_proto_rawDescData = file_mockgcp_cloud_gkehub_servicemesh_v1beta_servicemesh_proto_rawDesc +) + +func file_mockgcp_cloud_gkehub_servicemesh_v1beta_servicemesh_proto_rawDescGZIP() []byte { + file_mockgcp_cloud_gkehub_servicemesh_v1beta_servicemesh_proto_rawDescOnce.Do(func() { + file_mockgcp_cloud_gkehub_servicemesh_v1beta_servicemesh_proto_rawDescData = protoimpl.X.CompressGZIP(file_mockgcp_cloud_gkehub_servicemesh_v1beta_servicemesh_proto_rawDescData) + }) + return file_mockgcp_cloud_gkehub_servicemesh_v1beta_servicemesh_proto_rawDescData +} + +var file_mockgcp_cloud_gkehub_servicemesh_v1beta_servicemesh_proto_enumTypes = make([]protoimpl.EnumInfo, 6) +var file_mockgcp_cloud_gkehub_servicemesh_v1beta_servicemesh_proto_msgTypes = make([]protoimpl.MessageInfo, 6) +var file_mockgcp_cloud_gkehub_servicemesh_v1beta_servicemesh_proto_goTypes = []interface{}{ + (MembershipSpec_ControlPlaneManagement)(0), // 0: mockgcp.cloud.gkehub.servicemesh.v1beta.MembershipSpec.ControlPlaneManagement + (MembershipSpec_Management)(0), // 1: mockgcp.cloud.gkehub.servicemesh.v1beta.MembershipSpec.Management + (MembershipState_LifecycleState)(0), // 2: mockgcp.cloud.gkehub.servicemesh.v1beta.MembershipState.LifecycleState + (MembershipState_ControlPlaneManagement_Implementation)(0), // 3: mockgcp.cloud.gkehub.servicemesh.v1beta.MembershipState.ControlPlaneManagement.Implementation + (MembershipState_Condition_Code)(0), // 4: mockgcp.cloud.gkehub.servicemesh.v1beta.MembershipState.Condition.Code + (MembershipState_Condition_Severity)(0), // 5: mockgcp.cloud.gkehub.servicemesh.v1beta.MembershipState.Condition.Severity + (*MembershipSpec)(nil), // 6: mockgcp.cloud.gkehub.servicemesh.v1beta.MembershipSpec + (*MembershipState)(nil), // 7: mockgcp.cloud.gkehub.servicemesh.v1beta.MembershipState + (*StatusDetails)(nil), // 8: mockgcp.cloud.gkehub.servicemesh.v1beta.StatusDetails + (*MembershipState_ControlPlaneManagement)(nil), // 9: mockgcp.cloud.gkehub.servicemesh.v1beta.MembershipState.ControlPlaneManagement + (*MembershipState_DataPlaneManagement)(nil), // 10: mockgcp.cloud.gkehub.servicemesh.v1beta.MembershipState.DataPlaneManagement + (*MembershipState_Condition)(nil), // 11: mockgcp.cloud.gkehub.servicemesh.v1beta.MembershipState.Condition +} +var file_mockgcp_cloud_gkehub_servicemesh_v1beta_servicemesh_proto_depIdxs = []int32{ + 0, // 0: mockgcp.cloud.gkehub.servicemesh.v1beta.MembershipSpec.control_plane:type_name -> mockgcp.cloud.gkehub.servicemesh.v1beta.MembershipSpec.ControlPlaneManagement + 1, // 1: mockgcp.cloud.gkehub.servicemesh.v1beta.MembershipSpec.management:type_name -> mockgcp.cloud.gkehub.servicemesh.v1beta.MembershipSpec.Management + 9, // 2: mockgcp.cloud.gkehub.servicemesh.v1beta.MembershipState.control_plane_management:type_name -> mockgcp.cloud.gkehub.servicemesh.v1beta.MembershipState.ControlPlaneManagement + 10, // 3: mockgcp.cloud.gkehub.servicemesh.v1beta.MembershipState.data_plane_management:type_name -> mockgcp.cloud.gkehub.servicemesh.v1beta.MembershipState.DataPlaneManagement + 11, // 4: mockgcp.cloud.gkehub.servicemesh.v1beta.MembershipState.conditions:type_name -> mockgcp.cloud.gkehub.servicemesh.v1beta.MembershipState.Condition + 8, // 5: mockgcp.cloud.gkehub.servicemesh.v1beta.MembershipState.ControlPlaneManagement.details:type_name -> mockgcp.cloud.gkehub.servicemesh.v1beta.StatusDetails + 2, // 6: mockgcp.cloud.gkehub.servicemesh.v1beta.MembershipState.ControlPlaneManagement.state:type_name -> mockgcp.cloud.gkehub.servicemesh.v1beta.MembershipState.LifecycleState + 3, // 7: mockgcp.cloud.gkehub.servicemesh.v1beta.MembershipState.ControlPlaneManagement.implementation:type_name -> mockgcp.cloud.gkehub.servicemesh.v1beta.MembershipState.ControlPlaneManagement.Implementation + 2, // 8: mockgcp.cloud.gkehub.servicemesh.v1beta.MembershipState.DataPlaneManagement.state:type_name -> mockgcp.cloud.gkehub.servicemesh.v1beta.MembershipState.LifecycleState + 8, // 9: mockgcp.cloud.gkehub.servicemesh.v1beta.MembershipState.DataPlaneManagement.details:type_name -> mockgcp.cloud.gkehub.servicemesh.v1beta.StatusDetails + 4, // 10: mockgcp.cloud.gkehub.servicemesh.v1beta.MembershipState.Condition.code:type_name -> mockgcp.cloud.gkehub.servicemesh.v1beta.MembershipState.Condition.Code + 5, // 11: mockgcp.cloud.gkehub.servicemesh.v1beta.MembershipState.Condition.severity:type_name -> mockgcp.cloud.gkehub.servicemesh.v1beta.MembershipState.Condition.Severity + 12, // [12:12] is the sub-list for method output_type + 12, // [12:12] is the sub-list for method input_type + 12, // [12:12] is the sub-list for extension type_name + 12, // [12:12] is the sub-list for extension extendee + 0, // [0:12] is the sub-list for field type_name +} + +func init() { file_mockgcp_cloud_gkehub_servicemesh_v1beta_servicemesh_proto_init() } +func file_mockgcp_cloud_gkehub_servicemesh_v1beta_servicemesh_proto_init() { + if File_mockgcp_cloud_gkehub_servicemesh_v1beta_servicemesh_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_mockgcp_cloud_gkehub_servicemesh_v1beta_servicemesh_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MembershipSpec); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_mockgcp_cloud_gkehub_servicemesh_v1beta_servicemesh_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MembershipState); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_mockgcp_cloud_gkehub_servicemesh_v1beta_servicemesh_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*StatusDetails); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_mockgcp_cloud_gkehub_servicemesh_v1beta_servicemesh_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MembershipState_ControlPlaneManagement); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_mockgcp_cloud_gkehub_servicemesh_v1beta_servicemesh_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MembershipState_DataPlaneManagement); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_mockgcp_cloud_gkehub_servicemesh_v1beta_servicemesh_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MembershipState_Condition); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_mockgcp_cloud_gkehub_servicemesh_v1beta_servicemesh_proto_rawDesc, + NumEnums: 6, + NumMessages: 6, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_mockgcp_cloud_gkehub_servicemesh_v1beta_servicemesh_proto_goTypes, + DependencyIndexes: file_mockgcp_cloud_gkehub_servicemesh_v1beta_servicemesh_proto_depIdxs, + EnumInfos: file_mockgcp_cloud_gkehub_servicemesh_v1beta_servicemesh_proto_enumTypes, + MessageInfos: file_mockgcp_cloud_gkehub_servicemesh_v1beta_servicemesh_proto_msgTypes, + }.Build() + File_mockgcp_cloud_gkehub_servicemesh_v1beta_servicemesh_proto = out.File + file_mockgcp_cloud_gkehub_servicemesh_v1beta_servicemesh_proto_rawDesc = nil + file_mockgcp_cloud_gkehub_servicemesh_v1beta_servicemesh_proto_goTypes = nil + file_mockgcp_cloud_gkehub_servicemesh_v1beta_servicemesh_proto_depIdxs = nil +} diff --git a/mockgcp/generated/mockgcp/cloud/gkehub/v1beta/configmanagement/configmanagement.pb.go b/mockgcp/generated/mockgcp/cloud/gkehub/v1beta/configmanagement/configmanagement.pb.go index 022e8bfaa3..6a8b45787f 100644 --- a/mockgcp/generated/mockgcp/cloud/gkehub/v1beta/configmanagement/configmanagement.pb.go +++ b/mockgcp/generated/mockgcp/cloud/gkehub/v1beta/configmanagement/configmanagement.pb.go @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/mockgcp/generated/mockgcp/cloud/gkehub/v1beta/feature.pb.go b/mockgcp/generated/mockgcp/cloud/gkehub/v1beta/feature.pb.go index 0852786785..87e2451ec8 100644 --- a/mockgcp/generated/mockgcp/cloud/gkehub/v1beta/feature.pb.go +++ b/mockgcp/generated/mockgcp/cloud/gkehub/v1beta/feature.pb.go @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -24,6 +24,7 @@ import ( configmanagementpb "github.com/GoogleCloudPlatform/k8s-config-connector/mockgcp/generated/mockgcp/cloud/gkehub/v1beta/configmanagement" meteringpb "github.com/GoogleCloudPlatform/k8s-config-connector/mockgcp/generated/mockgcp/cloud/gkehub/v1beta/metering" multiclusteringresspb "github.com/GoogleCloudPlatform/k8s-config-connector/mockgcp/generated/mockgcp/cloud/gkehub/v1beta/multiclusteringress" + servicemeshpb "github.com/GoogleCloudPlatform/k8s-config-connector/mockgcp/generated/mockgcp/cloud/gkehub/servicemesh/v1beta" timestamp "github.com/golang/protobuf/ptypes/timestamp" _ "google.golang.org/genproto/googleapis/api/annotations" protoreflect "google.golang.org/protobuf/reflect/protoreflect" @@ -179,19 +180,20 @@ type Feature struct { // Output only. The full, unique name of this Feature resource in the format // `projects/*/locations/*/features/*`. Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // GCP labels for this Feature. + // Labels for this Feature. 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"` // Output only. State of the Feature resource itself. ResourceState *FeatureResourceState `protobuf:"bytes,3,opt,name=resource_state,json=resourceState,proto3" json:"resource_state,omitempty"` - // Optional. Hub-wide Feature configuration. If this Feature does not support any - // Hub-wide configuration, this field may be unused. + // Optional. Hub-wide Feature configuration. If this Feature does not support + // any Hub-wide configuration, this field may be unused. Spec *CommonFeatureSpec `protobuf:"bytes,4,opt,name=spec,proto3" json:"spec,omitempty"` - // Optional. Membership-specific configuration for this Feature. If this Feature does - // not support any per-Membership configuration, this field may be unused. + // Optional. Membership-specific configuration for this Feature. If this + // Feature does not support any per-Membership configuration, this field may + // be unused. // // The keys indicate which Membership the configuration is for, in the form: // - // projects/{p}/locations/{l}/memberships/{m} + // `projects/{p}/locations/{l}/memberships/{m}` // // Where {p} is the project, {l} is a valid location and {m} is a valid // Membership in this project at that location. {p} WILL match the Feature's @@ -211,7 +213,7 @@ type Feature struct { // // The keys indicate which Membership the state is for, in the form: // - // projects/{p}/locations/{l}/memberships/{m} + // `projects/{p}/locations/{l}/memberships/{m}` // // Where {p} is the project number, {l} is a valid location and {m} is a valid // Membership in this project at that location. {p} MUST match the Feature's @@ -567,6 +569,7 @@ func (x *CommonFeatureState) GetState() *FeatureState { // MembershipFeatureSpec contains configuration information for a single // Membership. +// NOTE: Please use snake case in your feature name. type MembershipFeatureSpec struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -575,6 +578,7 @@ type MembershipFeatureSpec struct { // Types that are assignable to FeatureSpec: // // *MembershipFeatureSpec_Configmanagement + // *MembershipFeatureSpec_Mesh FeatureSpec isMembershipFeatureSpec_FeatureSpec `protobuf_oneof:"feature_spec"` } @@ -624,6 +628,13 @@ func (x *MembershipFeatureSpec) GetConfigmanagement() *configmanagementpb.Member return nil } +func (x *MembershipFeatureSpec) GetMesh() *servicemeshpb.MembershipSpec { + if x, ok := x.GetFeatureSpec().(*MembershipFeatureSpec_Mesh); ok { + return x.Mesh + } + return nil +} + type isMembershipFeatureSpec_FeatureSpec interface { isMembershipFeatureSpec_FeatureSpec() } @@ -633,8 +644,15 @@ type MembershipFeatureSpec_Configmanagement struct { Configmanagement *configmanagementpb.MembershipSpec `protobuf:"bytes,106,opt,name=configmanagement,proto3,oneof"` } +type MembershipFeatureSpec_Mesh struct { + // Anthos Service Mesh-specific spec + Mesh *servicemeshpb.MembershipSpec `protobuf:"bytes,116,opt,name=mesh,proto3,oneof"` +} + func (*MembershipFeatureSpec_Configmanagement) isMembershipFeatureSpec_FeatureSpec() {} +func (*MembershipFeatureSpec_Mesh) isMembershipFeatureSpec_FeatureSpec() {} + // MembershipFeatureState contains Feature status information for a single // Membership. type MembershipFeatureState struct { @@ -644,6 +662,7 @@ type MembershipFeatureState struct { // Types that are assignable to FeatureState: // + // *MembershipFeatureState_Servicemesh // *MembershipFeatureState_Metering // *MembershipFeatureState_Configmanagement FeatureState isMembershipFeatureState_FeatureState `protobuf_oneof:"feature_state"` @@ -690,6 +709,13 @@ func (m *MembershipFeatureState) GetFeatureState() isMembershipFeatureState_Feat return nil } +func (x *MembershipFeatureState) GetServicemesh() *servicemeshpb.MembershipState { + if x, ok := x.GetFeatureState().(*MembershipFeatureState_Servicemesh); ok { + return x.Servicemesh + } + return nil +} + func (x *MembershipFeatureState) GetMetering() *meteringpb.MembershipState { if x, ok := x.GetFeatureState().(*MembershipFeatureState_Metering); ok { return x.Metering @@ -715,8 +741,13 @@ type isMembershipFeatureState_FeatureState interface { isMembershipFeatureState_FeatureState() } +type MembershipFeatureState_Servicemesh struct { + // Service Mesh-specific state. + Servicemesh *servicemeshpb.MembershipState `protobuf:"bytes,100,opt,name=servicemesh,proto3,oneof"` +} + type MembershipFeatureState_Metering struct { - // Metering-specific spec. + // Metering-specific state. Metering *meteringpb.MembershipState `protobuf:"bytes,104,opt,name=metering,proto3,oneof"` } @@ -725,6 +756,8 @@ type MembershipFeatureState_Configmanagement struct { Configmanagement *configmanagementpb.MembershipState `protobuf:"bytes,106,opt,name=configmanagement,proto3,oneof"` } +func (*MembershipFeatureState_Servicemesh) isMembershipFeatureState_FeatureState() {} + func (*MembershipFeatureState_Metering) isMembershipFeatureState_FeatureState() {} func (*MembershipFeatureState_Configmanagement) isMembershipFeatureState_FeatureState() {} @@ -740,179 +773,193 @@ var file_mockgcp_cloud_gkehub_v1beta_feature_proto_rawDesc = []byte{ 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x43, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2f, 0x63, 0x6c, + 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x39, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2f, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2f, 0x67, 0x6b, 0x65, 0x68, 0x75, 0x62, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x6d, 0x65, 0x73, 0x68, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2f, 0x73, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, + 0x43, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x67, + 0x6b, 0x65, 0x68, 0x75, 0x62, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2f, 0x63, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2f, 0x63, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x33, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x67, 0x6b, 0x65, 0x68, 0x75, 0x62, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, - 0x61, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x33, 0x6d, 0x6f, 0x63, 0x6b, 0x67, + 0x61, 0x2f, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x2f, 0x6d, 0x65, 0x74, 0x65, 0x72, + 0x69, 0x6e, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x49, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x67, 0x6b, 0x65, 0x68, 0x75, 0x62, 0x2f, - 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2f, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x2f, - 0x6d, 0x65, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x49, - 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x67, 0x6b, - 0x65, 0x68, 0x75, 0x62, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2f, 0x6d, 0x75, 0x6c, 0x74, - 0x69, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x2f, - 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x72, - 0x65, 0x73, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, - 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x8c, 0x09, 0x0a, 0x07, 0x46, - 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, - 0x48, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x30, 0x2e, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, - 0x67, 0x6b, 0x65, 0x68, 0x75, 0x62, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x46, 0x65, - 0x61, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, - 0x79, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x5d, 0x0a, 0x0e, 0x72, 0x65, 0x73, - 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x31, 0x2e, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2e, 0x63, 0x6c, 0x6f, 0x75, + 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x6c, 0x75, 0x73, + 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x2f, 0x6d, 0x75, 0x6c, 0x74, 0x69, + 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x8c, 0x09, 0x0a, 0x07, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, + 0x65, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x03, 0xe0, 0x41, 0x03, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x48, 0x0a, 0x06, 0x6c, 0x61, + 0x62, 0x65, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x6d, 0x6f, 0x63, + 0x6b, 0x67, 0x63, 0x70, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6b, 0x65, 0x68, 0x75, + 0x62, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, + 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x6c, 0x61, + 0x62, 0x65, 0x6c, 0x73, 0x12, 0x5d, 0x0a, 0x0e, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, + 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x6d, + 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6b, 0x65, + 0x68, 0x75, 0x62, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, + 0x72, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x42, + 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0d, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x74, + 0x61, 0x74, 0x65, 0x12, 0x47, 0x0a, 0x04, 0x73, 0x70, 0x65, 0x63, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x2e, 0x2e, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6b, 0x65, 0x68, 0x75, 0x62, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, - 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, - 0x74, 0x61, 0x74, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0d, 0x72, 0x65, 0x73, 0x6f, 0x75, - 0x72, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x47, 0x0a, 0x04, 0x73, 0x70, 0x65, 0x63, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, + 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x53, 0x70, 0x65, + 0x63, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x04, 0x73, 0x70, 0x65, 0x63, 0x12, 0x69, 0x0a, 0x10, + 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x68, 0x69, 0x70, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x73, + 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, + 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6b, 0x65, 0x68, 0x75, 0x62, 0x2e, 0x76, 0x31, + 0x62, 0x65, 0x74, 0x61, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x4d, 0x65, 0x6d, + 0x62, 0x65, 0x72, 0x73, 0x68, 0x69, 0x70, 0x53, 0x70, 0x65, 0x63, 0x73, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0f, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x68, + 0x69, 0x70, 0x53, 0x70, 0x65, 0x63, 0x73, 0x12, 0x4a, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6b, 0x65, 0x68, 0x75, 0x62, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x46, 0x65, 0x61, 0x74, 0x75, - 0x72, 0x65, 0x53, 0x70, 0x65, 0x63, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x04, 0x73, 0x70, 0x65, - 0x63, 0x12, 0x69, 0x0a, 0x10, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x68, 0x69, 0x70, 0x5f, - 0x73, 0x70, 0x65, 0x63, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x6d, 0x6f, - 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6b, 0x65, 0x68, - 0x75, 0x62, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, - 0x65, 0x2e, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x68, 0x69, 0x70, 0x53, 0x70, 0x65, 0x63, - 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0f, 0x6d, 0x65, 0x6d, - 0x62, 0x65, 0x72, 0x73, 0x68, 0x69, 0x70, 0x53, 0x70, 0x65, 0x63, 0x73, 0x12, 0x4a, 0x0a, 0x05, - 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x6d, 0x6f, - 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6b, 0x65, 0x68, - 0x75, 0x62, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, - 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x42, 0x03, 0xe0, 0x41, - 0x03, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x6c, 0x0a, 0x11, 0x6d, 0x65, 0x6d, 0x62, - 0x65, 0x72, 0x73, 0x68, 0x69, 0x70, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x73, 0x18, 0x07, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2e, 0x63, 0x6c, - 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6b, 0x65, 0x68, 0x75, 0x62, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, - 0x61, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, - 0x73, 0x68, 0x69, 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x42, - 0x03, 0xe0, 0x41, 0x03, 0x52, 0x10, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x68, 0x69, 0x70, - 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x12, 0x40, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, - 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x63, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x40, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, - 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x40, 0x0a, 0x0b, 0x64, 0x65, - 0x6c, 0x65, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, - 0x52, 0x0a, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x1a, 0x39, 0x0a, 0x0b, - 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, - 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x76, 0x0a, 0x14, 0x4d, 0x65, 0x6d, 0x62, 0x65, - 0x72, 0x73, 0x68, 0x69, 0x70, 0x53, 0x70, 0x65, 0x63, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, - 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, - 0x79, 0x12, 0x48, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x32, 0x2e, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, - 0x2e, 0x67, 0x6b, 0x65, 0x68, 0x75, 0x62, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x4d, - 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x68, 0x69, 0x70, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, - 0x53, 0x70, 0x65, 0x63, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, - 0x78, 0x0a, 0x15, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x68, 0x69, 0x70, 0x53, 0x74, 0x61, - 0x74, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x49, 0x0a, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x6d, 0x6f, 0x63, 0x6b, - 0x67, 0x63, 0x70, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6b, 0x65, 0x68, 0x75, 0x62, - 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x68, - 0x69, 0x70, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x3a, 0x5e, 0xea, 0x41, 0x5b, 0x0a, 0x1d, - 0x67, 0x6b, 0x65, 0x68, 0x75, 0x62, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, - 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x3a, 0x70, - 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, - 0x7d, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6c, 0x6f, 0x63, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x2f, - 0x7b, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x7d, 0x22, 0xd2, 0x01, 0x0a, 0x14, 0x46, 0x65, - 0x61, 0x74, 0x75, 0x72, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x74, 0x61, - 0x74, 0x65, 0x12, 0x4d, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x37, 0x2e, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2e, 0x63, 0x6c, 0x6f, 0x75, - 0x64, 0x2e, 0x67, 0x6b, 0x65, 0x68, 0x75, 0x62, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, - 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, - 0x74, 0x61, 0x74, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, - 0x65, 0x22, 0x6b, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x15, 0x0a, 0x11, 0x53, 0x54, - 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, - 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x45, 0x4e, 0x41, 0x42, 0x4c, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, - 0x0a, 0x0a, 0x06, 0x41, 0x43, 0x54, 0x49, 0x56, 0x45, 0x10, 0x02, 0x12, 0x0d, 0x0a, 0x09, 0x44, - 0x49, 0x53, 0x41, 0x42, 0x4c, 0x49, 0x4e, 0x47, 0x10, 0x03, 0x12, 0x0c, 0x0a, 0x08, 0x55, 0x50, - 0x44, 0x41, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x04, 0x12, 0x14, 0x0a, 0x10, 0x53, 0x45, 0x52, 0x56, - 0x49, 0x43, 0x45, 0x5f, 0x55, 0x50, 0x44, 0x41, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x05, 0x22, 0xef, - 0x01, 0x0a, 0x0c, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, - 0x42, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, - 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6b, - 0x65, 0x68, 0x75, 0x62, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x46, 0x65, 0x61, 0x74, - 0x75, 0x72, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x04, 0x63, - 0x6f, 0x64, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, - 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, - 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3b, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, - 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, + 0x72, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x05, 0x73, 0x74, + 0x61, 0x74, 0x65, 0x12, 0x6c, 0x0a, 0x11, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x68, 0x69, + 0x70, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3a, + 0x2e, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, + 0x6b, 0x65, 0x68, 0x75, 0x62, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x46, 0x65, 0x61, + 0x74, 0x75, 0x72, 0x65, 0x2e, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x68, 0x69, 0x70, 0x53, + 0x74, 0x61, 0x74, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, + 0x10, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x68, 0x69, 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, + 0x73, 0x12, 0x40, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, + 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, + 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, + 0x69, 0x6d, 0x65, 0x12, 0x40, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, + 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, + 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x40, 0x0a, 0x0b, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x5f, + 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, - 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, - 0x6d, 0x65, 0x22, 0x3c, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x14, 0x0a, 0x10, 0x43, 0x4f, - 0x44, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, - 0x12, 0x06, 0x0a, 0x02, 0x4f, 0x4b, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x57, 0x41, 0x52, 0x4e, - 0x49, 0x4e, 0x47, 0x10, 0x02, 0x12, 0x09, 0x0a, 0x05, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x03, - 0x22, 0x95, 0x01, 0x0a, 0x11, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x46, 0x65, 0x61, 0x74, 0x75, - 0x72, 0x65, 0x53, 0x70, 0x65, 0x63, 0x12, 0x70, 0x0a, 0x13, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, - 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x18, 0x66, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2e, 0x63, 0x6c, - 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6b, 0x65, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x75, 0x6c, 0x74, 0x69, - 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x2e, 0x76, - 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x53, 0x70, 0x65, - 0x63, 0x48, 0x00, 0x52, 0x13, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, - 0x72, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x42, 0x0e, 0x0a, 0x0c, 0x66, 0x65, 0x61, 0x74, - 0x75, 0x72, 0x65, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x22, 0x5a, 0x0a, 0x12, 0x43, 0x6f, 0x6d, 0x6d, - 0x6f, 0x6e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x44, - 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, - 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6b, - 0x65, 0x68, 0x75, 0x62, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x46, 0x65, 0x61, 0x74, - 0x75, 0x72, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x05, 0x73, - 0x74, 0x61, 0x74, 0x65, 0x22, 0x93, 0x01, 0x0a, 0x15, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, - 0x68, 0x69, 0x70, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x53, 0x70, 0x65, 0x63, 0x12, 0x6a, - 0x0a, 0x10, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x18, 0x6a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x6d, 0x6f, 0x63, 0x6b, 0x67, + 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x64, 0x65, 0x6c, + 0x65, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x1a, 0x39, 0x0a, 0x0b, 0x4c, 0x61, 0x62, 0x65, 0x6c, + 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, + 0x38, 0x01, 0x1a, 0x76, 0x0a, 0x14, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x68, 0x69, 0x70, + 0x53, 0x70, 0x65, 0x63, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, + 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x48, 0x0a, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x6d, 0x6f, + 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6b, 0x65, 0x68, + 0x75, 0x62, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, + 0x73, 0x68, 0x69, 0x70, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x53, 0x70, 0x65, 0x63, 0x52, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x78, 0x0a, 0x15, 0x4d, 0x65, + 0x6d, 0x62, 0x65, 0x72, 0x73, 0x68, 0x69, 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x49, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2e, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6b, 0x65, 0x68, 0x75, 0x62, 0x2e, 0x76, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x2e, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x68, 0x69, 0x70, 0x46, 0x65, 0x61, + 0x74, 0x75, 0x72, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x3a, 0x02, 0x38, 0x01, 0x3a, 0x5e, 0xea, 0x41, 0x5b, 0x0a, 0x1d, 0x67, 0x6b, 0x65, 0x68, 0x75, + 0x62, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, + 0x2f, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x3a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x6c, 0x6f, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x7d, 0x2f, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x2f, 0x7b, 0x66, 0x65, 0x61, 0x74, + 0x75, 0x72, 0x65, 0x7d, 0x22, 0xd2, 0x01, 0x0a, 0x14, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, + 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x4d, 0x0a, + 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x37, 0x2e, 0x6d, + 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6b, 0x65, + 0x68, 0x75, 0x62, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, + 0x72, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, + 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x22, 0x6b, 0x0a, 0x05, + 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x15, 0x0a, 0x11, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, + 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, + 0x45, 0x4e, 0x41, 0x42, 0x4c, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x41, 0x43, + 0x54, 0x49, 0x56, 0x45, 0x10, 0x02, 0x12, 0x0d, 0x0a, 0x09, 0x44, 0x49, 0x53, 0x41, 0x42, 0x4c, + 0x49, 0x4e, 0x47, 0x10, 0x03, 0x12, 0x0c, 0x0a, 0x08, 0x55, 0x50, 0x44, 0x41, 0x54, 0x49, 0x4e, + 0x47, 0x10, 0x04, 0x12, 0x14, 0x0a, 0x10, 0x53, 0x45, 0x52, 0x56, 0x49, 0x43, 0x45, 0x5f, 0x55, + 0x50, 0x44, 0x41, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x05, 0x22, 0xef, 0x01, 0x0a, 0x0c, 0x46, 0x65, + 0x61, 0x74, 0x75, 0x72, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x42, 0x0a, 0x04, 0x63, 0x6f, + 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x6d, 0x6f, 0x63, 0x6b, 0x67, + 0x63, 0x70, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6b, 0x65, 0x68, 0x75, 0x62, 0x2e, + 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x53, 0x74, + 0x61, 0x74, 0x65, 0x2e, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x20, + 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x12, 0x3b, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, + 0x70, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x3c, 0x0a, + 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x14, 0x0a, 0x10, 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x55, 0x4e, + 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x06, 0x0a, 0x02, 0x4f, + 0x4b, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x57, 0x41, 0x52, 0x4e, 0x49, 0x4e, 0x47, 0x10, 0x02, + 0x12, 0x09, 0x0a, 0x05, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x03, 0x22, 0x95, 0x01, 0x0a, 0x11, + 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x53, 0x70, 0x65, + 0x63, 0x12, 0x70, 0x0a, 0x13, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, + 0x72, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x18, 0x66, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3c, + 0x2e, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, + 0x6b, 0x65, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x6c, 0x75, 0x73, 0x74, + 0x65, 0x72, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, + 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x53, 0x70, 0x65, 0x63, 0x48, 0x00, 0x52, 0x13, + 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x72, + 0x65, 0x73, 0x73, 0x42, 0x0e, 0x0a, 0x0c, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x73, + 0x70, 0x65, 0x63, 0x22, 0x5a, 0x0a, 0x12, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x46, 0x65, 0x61, + 0x74, 0x75, 0x72, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x44, 0x0a, 0x05, 0x73, 0x74, 0x61, + 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6b, 0x65, 0x68, 0x75, 0x62, 0x2e, - 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x68, - 0x69, 0x70, 0x53, 0x70, 0x65, 0x63, 0x48, 0x00, 0x52, 0x10, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, - 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0e, 0x0a, 0x0c, 0x66, 0x65, - 0x61, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x22, 0xac, 0x02, 0x0a, 0x16, 0x4d, - 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x68, 0x69, 0x70, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, - 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x53, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x69, 0x6e, - 0x67, 0x18, 0x68, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, - 0x70, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6b, 0x65, 0x68, 0x75, 0x62, 0x2e, 0x6d, - 0x65, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x4d, + 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x53, 0x74, + 0x61, 0x74, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x22, + 0xe2, 0x01, 0x0a, 0x15, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x68, 0x69, 0x70, 0x46, 0x65, + 0x61, 0x74, 0x75, 0x72, 0x65, 0x53, 0x70, 0x65, 0x63, 0x12, 0x6a, 0x0a, 0x10, 0x63, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x6a, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2e, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6b, 0x65, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x2e, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x68, 0x69, 0x70, 0x53, 0x70, 0x65, + 0x63, 0x48, 0x00, 0x52, 0x10, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x6d, 0x61, 0x6e, 0x61, 0x67, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x4d, 0x0a, 0x04, 0x6d, 0x65, 0x73, 0x68, 0x18, 0x74, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2e, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6b, 0x65, 0x68, 0x75, 0x62, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x4d, 0x65, + 0x6d, 0x62, 0x65, 0x72, 0x73, 0x68, 0x69, 0x70, 0x53, 0x70, 0x65, 0x63, 0x48, 0x00, 0x52, 0x04, + 0x6d, 0x65, 0x73, 0x68, 0x42, 0x0e, 0x0a, 0x0c, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x5f, + 0x73, 0x70, 0x65, 0x63, 0x22, 0x8a, 0x03, 0x0a, 0x16, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, + 0x68, 0x69, 0x70, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, + 0x5c, 0x0a, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x65, 0x73, 0x68, 0x18, 0x64, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2e, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6b, 0x65, 0x68, 0x75, 0x62, 0x2e, 0x73, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x6d, 0x65, 0x73, 0x68, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x68, 0x69, 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, 0x48, 0x00, - 0x52, 0x08, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x6b, 0x0a, 0x10, 0x63, 0x6f, - 0x6e, 0x66, 0x69, 0x67, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x6a, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2e, 0x63, - 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6b, 0x65, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6e, 0x66, - 0x69, 0x67, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x62, - 0x65, 0x74, 0x61, 0x2e, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x68, 0x69, 0x70, 0x53, 0x74, - 0x61, 0x74, 0x65, 0x48, 0x00, 0x52, 0x10, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x6d, 0x61, 0x6e, - 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x3f, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, - 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6b, 0x65, 0x68, 0x75, 0x62, 0x2e, 0x76, 0x31, - 0x62, 0x65, 0x74, 0x61, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x53, 0x74, 0x61, 0x74, - 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x42, 0x0f, 0x0a, 0x0d, 0x66, 0x65, 0x61, 0x74, - 0x75, 0x72, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x42, 0xc3, 0x01, 0x0a, 0x1f, 0x63, 0x6f, - 0x6d, 0x2e, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, - 0x67, 0x6b, 0x65, 0x68, 0x75, 0x62, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x42, 0x0c, 0x46, - 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x36, 0x63, - 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, - 0x67, 0x6f, 0x2f, 0x67, 0x6b, 0x65, 0x68, 0x75, 0x62, 0x2f, 0x61, 0x70, 0x69, 0x76, 0x31, 0x62, - 0x65, 0x74, 0x61, 0x2f, 0x67, 0x6b, 0x65, 0x68, 0x75, 0x62, 0x70, 0x62, 0x3b, 0x67, 0x6b, 0x65, - 0x68, 0x75, 0x62, 0x70, 0x62, 0xaa, 0x02, 0x1a, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x43, - 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x47, 0x6b, 0x65, 0x48, 0x75, 0x62, 0x2e, 0x56, 0x31, 0x42, 0x65, - 0x74, 0x61, 0xca, 0x02, 0x1a, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5c, 0x43, 0x6c, 0x6f, 0x75, - 0x64, 0x5c, 0x47, 0x6b, 0x65, 0x48, 0x75, 0x62, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0xea, - 0x02, 0x1d, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x3a, 0x3a, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x3a, - 0x3a, 0x47, 0x6b, 0x65, 0x48, 0x75, 0x62, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x62, - 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x52, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x65, 0x73, 0x68, 0x12, 0x53, 0x0a, + 0x08, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x18, 0x68, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x35, 0x2e, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, + 0x67, 0x6b, 0x65, 0x68, 0x75, 0x62, 0x2e, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x2e, + 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x68, 0x69, + 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, 0x48, 0x00, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x69, + 0x6e, 0x67, 0x12, 0x6b, 0x0a, 0x10, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x6d, 0x61, 0x6e, 0x61, + 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x6a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x6d, + 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6b, 0x65, + 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x4d, 0x65, 0x6d, 0x62, + 0x65, 0x72, 0x73, 0x68, 0x69, 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, 0x48, 0x00, 0x52, 0x10, 0x63, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, + 0x3f, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, + 0x2e, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, 0x70, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, + 0x6b, 0x65, 0x68, 0x75, 0x62, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x46, 0x65, 0x61, + 0x74, 0x75, 0x72, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, + 0x42, 0x0f, 0x0a, 0x0d, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, + 0x65, 0x42, 0xc3, 0x01, 0x0a, 0x1f, 0x63, 0x6f, 0x6d, 0x2e, 0x6d, 0x6f, 0x63, 0x6b, 0x67, 0x63, + 0x70, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6b, 0x65, 0x68, 0x75, 0x62, 0x2e, 0x76, + 0x31, 0x62, 0x65, 0x74, 0x61, 0x42, 0x0c, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x50, 0x72, + 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x36, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x2f, 0x67, 0x6b, 0x65, 0x68, 0x75, + 0x62, 0x2f, 0x61, 0x70, 0x69, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2f, 0x67, 0x6b, 0x65, 0x68, + 0x75, 0x62, 0x70, 0x62, 0x3b, 0x67, 0x6b, 0x65, 0x68, 0x75, 0x62, 0x70, 0x62, 0xaa, 0x02, 0x1a, + 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x47, 0x6b, 0x65, + 0x48, 0x75, 0x62, 0x2e, 0x56, 0x31, 0x42, 0x65, 0x74, 0x61, 0xca, 0x02, 0x1a, 0x47, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x5c, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x5c, 0x47, 0x6b, 0x65, 0x48, 0x75, 0x62, + 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0xea, 0x02, 0x1d, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x3a, 0x3a, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x3a, 0x3a, 0x47, 0x6b, 0x65, 0x48, 0x75, 0x62, 0x3a, + 0x3a, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -945,8 +992,10 @@ var file_mockgcp_cloud_gkehub_v1beta_feature_proto_goTypes = []interface{}{ (*timestamp.Timestamp)(nil), // 12: google.protobuf.Timestamp (*multiclusteringresspb.FeatureSpec)(nil), // 13: mockgcp.cloud.gkehub.multiclusteringress.v1beta.FeatureSpec (*configmanagementpb.MembershipSpec)(nil), // 14: mockgcp.cloud.gkehub.configmanagement.v1beta.MembershipSpec - (*meteringpb.MembershipState)(nil), // 15: mockgcp.cloud.gkehub.metering.v1beta.MembershipState - (*configmanagementpb.MembershipState)(nil), // 16: mockgcp.cloud.gkehub.configmanagement.v1beta.MembershipState + (*servicemeshpb.MembershipSpec)(nil), // 15: mockgcp.cloud.gkehub.servicemesh.v1beta.MembershipSpec + (*servicemeshpb.MembershipState)(nil), // 16: mockgcp.cloud.gkehub.servicemesh.v1beta.MembershipState + (*meteringpb.MembershipState)(nil), // 17: mockgcp.cloud.gkehub.metering.v1beta.MembershipState + (*configmanagementpb.MembershipState)(nil), // 18: mockgcp.cloud.gkehub.configmanagement.v1beta.MembershipState } var file_mockgcp_cloud_gkehub_v1beta_feature_proto_depIdxs = []int32{ 9, // 0: mockgcp.cloud.gkehub.v1beta.Feature.labels:type_name -> mockgcp.cloud.gkehub.v1beta.Feature.LabelsEntry @@ -964,16 +1013,18 @@ var file_mockgcp_cloud_gkehub_v1beta_feature_proto_depIdxs = []int32{ 13, // 12: mockgcp.cloud.gkehub.v1beta.CommonFeatureSpec.multiclusteringress:type_name -> mockgcp.cloud.gkehub.multiclusteringress.v1beta.FeatureSpec 4, // 13: mockgcp.cloud.gkehub.v1beta.CommonFeatureState.state:type_name -> mockgcp.cloud.gkehub.v1beta.FeatureState 14, // 14: mockgcp.cloud.gkehub.v1beta.MembershipFeatureSpec.configmanagement:type_name -> mockgcp.cloud.gkehub.configmanagement.v1beta.MembershipSpec - 15, // 15: mockgcp.cloud.gkehub.v1beta.MembershipFeatureState.metering:type_name -> mockgcp.cloud.gkehub.metering.v1beta.MembershipState - 16, // 16: mockgcp.cloud.gkehub.v1beta.MembershipFeatureState.configmanagement:type_name -> mockgcp.cloud.gkehub.configmanagement.v1beta.MembershipState - 4, // 17: mockgcp.cloud.gkehub.v1beta.MembershipFeatureState.state:type_name -> mockgcp.cloud.gkehub.v1beta.FeatureState - 7, // 18: mockgcp.cloud.gkehub.v1beta.Feature.MembershipSpecsEntry.value:type_name -> mockgcp.cloud.gkehub.v1beta.MembershipFeatureSpec - 8, // 19: mockgcp.cloud.gkehub.v1beta.Feature.MembershipStatesEntry.value:type_name -> mockgcp.cloud.gkehub.v1beta.MembershipFeatureState - 20, // [20:20] is the sub-list for method output_type - 20, // [20:20] is the sub-list for method input_type - 20, // [20:20] is the sub-list for extension type_name - 20, // [20:20] is the sub-list for extension extendee - 0, // [0:20] is the sub-list for field type_name + 15, // 15: mockgcp.cloud.gkehub.v1beta.MembershipFeatureSpec.mesh:type_name -> mockgcp.cloud.gkehub.servicemesh.v1beta.MembershipSpec + 16, // 16: mockgcp.cloud.gkehub.v1beta.MembershipFeatureState.servicemesh:type_name -> mockgcp.cloud.gkehub.servicemesh.v1beta.MembershipState + 17, // 17: mockgcp.cloud.gkehub.v1beta.MembershipFeatureState.metering:type_name -> mockgcp.cloud.gkehub.metering.v1beta.MembershipState + 18, // 18: mockgcp.cloud.gkehub.v1beta.MembershipFeatureState.configmanagement:type_name -> mockgcp.cloud.gkehub.configmanagement.v1beta.MembershipState + 4, // 19: mockgcp.cloud.gkehub.v1beta.MembershipFeatureState.state:type_name -> mockgcp.cloud.gkehub.v1beta.FeatureState + 7, // 20: mockgcp.cloud.gkehub.v1beta.Feature.MembershipSpecsEntry.value:type_name -> mockgcp.cloud.gkehub.v1beta.MembershipFeatureSpec + 8, // 21: mockgcp.cloud.gkehub.v1beta.Feature.MembershipStatesEntry.value:type_name -> mockgcp.cloud.gkehub.v1beta.MembershipFeatureState + 22, // [22:22] is the sub-list for method output_type + 22, // [22:22] is the sub-list for method input_type + 22, // [22:22] is the sub-list for extension type_name + 22, // [22:22] is the sub-list for extension extendee + 0, // [0:22] is the sub-list for field type_name } func init() { file_mockgcp_cloud_gkehub_v1beta_feature_proto_init() } @@ -1072,8 +1123,10 @@ func file_mockgcp_cloud_gkehub_v1beta_feature_proto_init() { } file_mockgcp_cloud_gkehub_v1beta_feature_proto_msgTypes[5].OneofWrappers = []interface{}{ (*MembershipFeatureSpec_Configmanagement)(nil), + (*MembershipFeatureSpec_Mesh)(nil), } file_mockgcp_cloud_gkehub_v1beta_feature_proto_msgTypes[6].OneofWrappers = []interface{}{ + (*MembershipFeatureState_Servicemesh)(nil), (*MembershipFeatureState_Metering)(nil), (*MembershipFeatureState_Configmanagement)(nil), } diff --git a/mockgcp/generated/mockgcp/cloud/gkehub/v1beta/metering/metering.pb.go b/mockgcp/generated/mockgcp/cloud/gkehub/v1beta/metering/metering.pb.go index 946db730ae..78ef086e0c 100644 --- a/mockgcp/generated/mockgcp/cloud/gkehub/v1beta/metering/metering.pb.go +++ b/mockgcp/generated/mockgcp/cloud/gkehub/v1beta/metering/metering.pb.go @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/mockgcp/generated/mockgcp/cloud/gkehub/v1beta/multiclusteringress/multiclusteringress.pb.go b/mockgcp/generated/mockgcp/cloud/gkehub/v1beta/multiclusteringress/multiclusteringress.pb.go index 6c7c1cb3e2..6b6a1142d7 100644 --- a/mockgcp/generated/mockgcp/cloud/gkehub/v1beta/multiclusteringress/multiclusteringress.pb.go +++ b/mockgcp/generated/mockgcp/cloud/gkehub/v1beta/multiclusteringress/multiclusteringress.pb.go @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/mockgcp/generated/mockgcp/cloud/gkehub/v1beta/service.pb.go b/mockgcp/generated/mockgcp/cloud/gkehub/v1beta/service.pb.go index f164eb2e34..805d2e018f 100644 --- a/mockgcp/generated/mockgcp/cloud/gkehub/v1beta/service.pb.go +++ b/mockgcp/generated/mockgcp/cloud/gkehub/v1beta/service.pb.go @@ -1,4 +1,4 @@ -// Copyright 2021 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/mockgcp/generated/mockgcp/cloud/gkehub/v1beta1/membership.pb.go b/mockgcp/generated/mockgcp/cloud/gkehub/v1beta1/membership.pb.go index f3dda72928..bea73b4060 100644 --- a/mockgcp/generated/mockgcp/cloud/gkehub/v1beta1/membership.pb.go +++ b/mockgcp/generated/mockgcp/cloud/gkehub/v1beta1/membership.pb.go @@ -1,4 +1,4 @@ -// Copyright 2023 Google LLC +// Copyright 2024 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/mockgcp/mockgkehub/gkehubfeature.go b/mockgcp/mockgkehub/gkehubfeature.go index b9b0263dc4..4d77590e17 100644 --- a/mockgcp/mockgkehub/gkehubfeature.go +++ b/mockgcp/mockgkehub/gkehubfeature.go @@ -87,8 +87,9 @@ func (s *GKEHubFeature) UpdateFeature(ctx context.Context, req *pb.UpdateFeature switch path { case "labels": obj.Labels = req.Resource.GetLabels() + // Spec is in the GCP API, not a KRM Spec case "spec": - obj.Spec.FeatureSpec = req.GetResource().Spec.GetFeatureSpec().(*pb.CommonFeatureSpec_Multiclusteringress) + obj.Spec = req.GetResource().Spec case "membershipSpecs": obj.MembershipSpecs = req.GetResource().GetMembershipSpecs() default: