1*d5c09012SAndroid Build Coastguard Worker// Copyright 2023 Google LLC 2*d5c09012SAndroid Build Coastguard Worker// 3*d5c09012SAndroid Build Coastguard Worker// Licensed under the Apache License, Version 2.0 (the "License"); 4*d5c09012SAndroid Build Coastguard Worker// you may not use this file except in compliance with the License. 5*d5c09012SAndroid Build Coastguard Worker// You may obtain a copy of the License at 6*d5c09012SAndroid Build Coastguard Worker// 7*d5c09012SAndroid Build Coastguard Worker// http://www.apache.org/licenses/LICENSE-2.0 8*d5c09012SAndroid Build Coastguard Worker// 9*d5c09012SAndroid Build Coastguard Worker// Unless required by applicable law or agreed to in writing, software 10*d5c09012SAndroid Build Coastguard Worker// distributed under the License is distributed on an "AS IS" BASIS, 11*d5c09012SAndroid Build Coastguard Worker// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12*d5c09012SAndroid Build Coastguard Worker// See the License for the specific language governing permissions and 13*d5c09012SAndroid Build Coastguard Worker// limitations under the License. 14*d5c09012SAndroid Build Coastguard Worker 15*d5c09012SAndroid Build Coastguard Workersyntax = "proto3"; 16*d5c09012SAndroid Build Coastguard Worker 17*d5c09012SAndroid Build Coastguard Workerpackage google.cloud.gkehub.v1; 18*d5c09012SAndroid Build Coastguard Worker 19*d5c09012SAndroid Build Coastguard Workerimport "google/api/field_behavior.proto"; 20*d5c09012SAndroid Build Coastguard Workerimport "google/api/resource.proto"; 21*d5c09012SAndroid Build Coastguard Workerimport "google/protobuf/timestamp.proto"; 22*d5c09012SAndroid Build Coastguard Worker 23*d5c09012SAndroid Build Coastguard Workeroption csharp_namespace = "Google.Cloud.GkeHub.V1"; 24*d5c09012SAndroid Build Coastguard Workeroption go_package = "cloud.google.com/go/gkehub/apiv1/gkehubpb;gkehubpb"; 25*d5c09012SAndroid Build Coastguard Workeroption java_multiple_files = true; 26*d5c09012SAndroid Build Coastguard Workeroption java_outer_classname = "MembershipProto"; 27*d5c09012SAndroid Build Coastguard Workeroption java_package = "com.google.cloud.gkehub.v1"; 28*d5c09012SAndroid Build Coastguard Workeroption php_namespace = "Google\\Cloud\\GkeHub\\V1"; 29*d5c09012SAndroid Build Coastguard Workeroption ruby_package = "Google::Cloud::GkeHub::V1"; 30*d5c09012SAndroid Build Coastguard Worker 31*d5c09012SAndroid Build Coastguard Worker// Membership contains information about a member cluster. 32*d5c09012SAndroid Build Coastguard Workermessage Membership { 33*d5c09012SAndroid Build Coastguard Worker option (google.api.resource) = { 34*d5c09012SAndroid Build Coastguard Worker type: "gkehub.googleapis.com/Membership" 35*d5c09012SAndroid Build Coastguard Worker pattern: "projects/{project}/locations/{location}/memberships/{membership}" 36*d5c09012SAndroid Build Coastguard Worker }; 37*d5c09012SAndroid Build Coastguard Worker 38*d5c09012SAndroid Build Coastguard Worker // Type of resource represented by this Membership 39*d5c09012SAndroid Build Coastguard Worker oneof type { 40*d5c09012SAndroid Build Coastguard Worker // Optional. Endpoint information to reach this member. 41*d5c09012SAndroid Build Coastguard Worker MembershipEndpoint endpoint = 4 [(google.api.field_behavior) = OPTIONAL]; 42*d5c09012SAndroid Build Coastguard Worker } 43*d5c09012SAndroid Build Coastguard Worker 44*d5c09012SAndroid Build Coastguard Worker // Output only. The full, unique name of this Membership resource in the 45*d5c09012SAndroid Build Coastguard Worker // format `projects/*/locations/*/memberships/{membership_id}`, set during 46*d5c09012SAndroid Build Coastguard Worker // creation. 47*d5c09012SAndroid Build Coastguard Worker // 48*d5c09012SAndroid Build Coastguard Worker // `membership_id` must be a valid RFC 1123 compliant DNS label: 49*d5c09012SAndroid Build Coastguard Worker // 50*d5c09012SAndroid Build Coastguard Worker // 1. At most 63 characters in length 51*d5c09012SAndroid Build Coastguard Worker // 2. It must consist of lower case alphanumeric characters or `-` 52*d5c09012SAndroid Build Coastguard Worker // 3. It must start and end with an alphanumeric character 53*d5c09012SAndroid Build Coastguard Worker // 54*d5c09012SAndroid Build Coastguard Worker // Which can be expressed as the regex: `[a-z0-9]([-a-z0-9]*[a-z0-9])?`, 55*d5c09012SAndroid Build Coastguard Worker // with a maximum length of 63 characters. 56*d5c09012SAndroid Build Coastguard Worker string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; 57*d5c09012SAndroid Build Coastguard Worker 58*d5c09012SAndroid Build Coastguard Worker // Optional. Labels for this membership. 59*d5c09012SAndroid Build Coastguard Worker map<string, string> labels = 2 [(google.api.field_behavior) = OPTIONAL]; 60*d5c09012SAndroid Build Coastguard Worker 61*d5c09012SAndroid Build Coastguard Worker // Output only. Description of this membership, limited to 63 characters. 62*d5c09012SAndroid Build Coastguard Worker // Must match the regex: `[a-zA-Z0-9][a-zA-Z0-9_\-\.\ ]*` 63*d5c09012SAndroid Build Coastguard Worker // 64*d5c09012SAndroid Build Coastguard Worker // This field is present for legacy purposes. 65*d5c09012SAndroid Build Coastguard Worker string description = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; 66*d5c09012SAndroid Build Coastguard Worker 67*d5c09012SAndroid Build Coastguard Worker // Output only. State of the Membership resource. 68*d5c09012SAndroid Build Coastguard Worker MembershipState state = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; 69*d5c09012SAndroid Build Coastguard Worker 70*d5c09012SAndroid Build Coastguard Worker // Output only. When the Membership was created. 71*d5c09012SAndroid Build Coastguard Worker google.protobuf.Timestamp create_time = 6 72*d5c09012SAndroid Build Coastguard Worker [(google.api.field_behavior) = OUTPUT_ONLY]; 73*d5c09012SAndroid Build Coastguard Worker 74*d5c09012SAndroid Build Coastguard Worker // Output only. When the Membership was last updated. 75*d5c09012SAndroid Build Coastguard Worker google.protobuf.Timestamp update_time = 7 76*d5c09012SAndroid Build Coastguard Worker [(google.api.field_behavior) = OUTPUT_ONLY]; 77*d5c09012SAndroid Build Coastguard Worker 78*d5c09012SAndroid Build Coastguard Worker // Output only. When the Membership was deleted. 79*d5c09012SAndroid Build Coastguard Worker google.protobuf.Timestamp delete_time = 8 80*d5c09012SAndroid Build Coastguard Worker [(google.api.field_behavior) = OUTPUT_ONLY]; 81*d5c09012SAndroid Build Coastguard Worker 82*d5c09012SAndroid Build Coastguard Worker // Optional. An externally-generated and managed ID for this Membership. This 83*d5c09012SAndroid Build Coastguard Worker // ID may be modified after creation, but this is not recommended. 84*d5c09012SAndroid Build Coastguard Worker // 85*d5c09012SAndroid Build Coastguard Worker // The ID must match the regex: `[a-zA-Z0-9][a-zA-Z0-9_\-\.]*` 86*d5c09012SAndroid Build Coastguard Worker // 87*d5c09012SAndroid Build Coastguard Worker // If this Membership represents a Kubernetes cluster, this value should be 88*d5c09012SAndroid Build Coastguard Worker // set to the UID of the `kube-system` namespace object. 89*d5c09012SAndroid Build Coastguard Worker string external_id = 9 [(google.api.field_behavior) = OPTIONAL]; 90*d5c09012SAndroid Build Coastguard Worker 91*d5c09012SAndroid Build Coastguard Worker // Output only. For clusters using Connect, the timestamp of the most recent 92*d5c09012SAndroid Build Coastguard Worker // connection established with Google Cloud. This time is updated every 93*d5c09012SAndroid Build Coastguard Worker // several minutes, not continuously. For clusters that do not use GKE 94*d5c09012SAndroid Build Coastguard Worker // Connect, or that have never connected successfully, this field will be 95*d5c09012SAndroid Build Coastguard Worker // unset. 96*d5c09012SAndroid Build Coastguard Worker google.protobuf.Timestamp last_connection_time = 10 97*d5c09012SAndroid Build Coastguard Worker [(google.api.field_behavior) = OUTPUT_ONLY]; 98*d5c09012SAndroid Build Coastguard Worker 99*d5c09012SAndroid Build Coastguard Worker // Output only. Google-generated UUID for this resource. This is unique across 100*d5c09012SAndroid Build Coastguard Worker // all Membership resources. If a Membership resource is deleted and another 101*d5c09012SAndroid Build Coastguard Worker // resource with the same name is created, it gets a different unique_id. 102*d5c09012SAndroid Build Coastguard Worker string unique_id = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; 103*d5c09012SAndroid Build Coastguard Worker 104*d5c09012SAndroid Build Coastguard Worker // Optional. How to identify workloads from this Membership. 105*d5c09012SAndroid Build Coastguard Worker // See the documentation on Workload Identity for more details: 106*d5c09012SAndroid Build Coastguard Worker // https://cloud.google.com/kubernetes-engine/docs/how-to/workload-identity 107*d5c09012SAndroid Build Coastguard Worker Authority authority = 12 [(google.api.field_behavior) = OPTIONAL]; 108*d5c09012SAndroid Build Coastguard Worker 109*d5c09012SAndroid Build Coastguard Worker // Optional. The monitoring config information for this membership. 110*d5c09012SAndroid Build Coastguard Worker MonitoringConfig monitoring_config = 14 111*d5c09012SAndroid Build Coastguard Worker [(google.api.field_behavior) = OPTIONAL]; 112*d5c09012SAndroid Build Coastguard Worker} 113*d5c09012SAndroid Build Coastguard Worker 114*d5c09012SAndroid Build Coastguard Worker// MembershipEndpoint contains information needed to contact a Kubernetes API, 115*d5c09012SAndroid Build Coastguard Worker// endpoint and any additional Kubernetes metadata. 116*d5c09012SAndroid Build Coastguard Workermessage MembershipEndpoint { 117*d5c09012SAndroid Build Coastguard Worker // Optional. GKE-specific information. Only present if this Membership is a GKE cluster. 118*d5c09012SAndroid Build Coastguard Worker GkeCluster gke_cluster = 1 [(google.api.field_behavior) = OPTIONAL]; 119*d5c09012SAndroid Build Coastguard Worker 120*d5c09012SAndroid Build Coastguard Worker // Output only. Useful Kubernetes-specific metadata. 121*d5c09012SAndroid Build Coastguard Worker KubernetesMetadata kubernetes_metadata = 2 122*d5c09012SAndroid Build Coastguard Worker [(google.api.field_behavior) = OUTPUT_ONLY]; 123*d5c09012SAndroid Build Coastguard Worker 124*d5c09012SAndroid Build Coastguard Worker // Optional. The in-cluster Kubernetes Resources that should be applied for a 125*d5c09012SAndroid Build Coastguard Worker // correctly registered cluster, in the steady state. These resources: 126*d5c09012SAndroid Build Coastguard Worker // 127*d5c09012SAndroid Build Coastguard Worker // * Ensure that the cluster is exclusively registered to one and only one 128*d5c09012SAndroid Build Coastguard Worker // Hub Membership. 129*d5c09012SAndroid Build Coastguard Worker // * Propagate Workload Pool Information available in the Membership 130*d5c09012SAndroid Build Coastguard Worker // Authority field. 131*d5c09012SAndroid Build Coastguard Worker // * Ensure proper initial configuration of default Hub Features. 132*d5c09012SAndroid Build Coastguard Worker KubernetesResource kubernetes_resource = 3 133*d5c09012SAndroid Build Coastguard Worker [(google.api.field_behavior) = OPTIONAL]; 134*d5c09012SAndroid Build Coastguard Worker 135*d5c09012SAndroid Build Coastguard Worker // Output only. Whether the lifecycle of this membership is managed by a 136*d5c09012SAndroid Build Coastguard Worker // google cluster platform service. 137*d5c09012SAndroid Build Coastguard Worker bool google_managed = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; 138*d5c09012SAndroid Build Coastguard Worker} 139*d5c09012SAndroid Build Coastguard Worker 140*d5c09012SAndroid Build Coastguard Worker// KubernetesResource contains the YAML manifests and configuration for 141*d5c09012SAndroid Build Coastguard Worker// Membership Kubernetes resources in the cluster. After CreateMembership or 142*d5c09012SAndroid Build Coastguard Worker// UpdateMembership, these resources should be re-applied in the cluster. 143*d5c09012SAndroid Build Coastguard Workermessage KubernetesResource { 144*d5c09012SAndroid Build Coastguard Worker // Input only. The YAML representation of the Membership CR. This field is 145*d5c09012SAndroid Build Coastguard Worker // ignored for GKE clusters where Hub can read the CR directly. 146*d5c09012SAndroid Build Coastguard Worker // 147*d5c09012SAndroid Build Coastguard Worker // Callers should provide the CR that is currently present in the cluster 148*d5c09012SAndroid Build Coastguard Worker // during CreateMembership or UpdateMembership, or leave this field empty if 149*d5c09012SAndroid Build Coastguard Worker // none exists. The CR manifest is used to validate the cluster has not been 150*d5c09012SAndroid Build Coastguard Worker // registered with another Membership. 151*d5c09012SAndroid Build Coastguard Worker string membership_cr_manifest = 1 [(google.api.field_behavior) = INPUT_ONLY]; 152*d5c09012SAndroid Build Coastguard Worker 153*d5c09012SAndroid Build Coastguard Worker // Output only. Additional Kubernetes resources that need to be applied to the 154*d5c09012SAndroid Build Coastguard Worker // cluster after Membership creation, and after every update. 155*d5c09012SAndroid Build Coastguard Worker // 156*d5c09012SAndroid Build Coastguard Worker // This field is only populated in the Membership returned from a successful 157*d5c09012SAndroid Build Coastguard Worker // long-running operation from CreateMembership or UpdateMembership. It is not 158*d5c09012SAndroid Build Coastguard Worker // populated during normal GetMembership or ListMemberships requests. To get 159*d5c09012SAndroid Build Coastguard Worker // the resource manifest after the initial registration, the caller should 160*d5c09012SAndroid Build Coastguard Worker // make a UpdateMembership call with an empty field mask. 161*d5c09012SAndroid Build Coastguard Worker repeated ResourceManifest membership_resources = 2 162*d5c09012SAndroid Build Coastguard Worker [(google.api.field_behavior) = OUTPUT_ONLY]; 163*d5c09012SAndroid Build Coastguard Worker 164*d5c09012SAndroid Build Coastguard Worker // Output only. The Kubernetes resources for installing the GKE Connect agent 165*d5c09012SAndroid Build Coastguard Worker // 166*d5c09012SAndroid Build Coastguard Worker // This field is only populated in the Membership returned from a successful 167*d5c09012SAndroid Build Coastguard Worker // long-running operation from CreateMembership or UpdateMembership. It is not 168*d5c09012SAndroid Build Coastguard Worker // populated during normal GetMembership or ListMemberships requests. To get 169*d5c09012SAndroid Build Coastguard Worker // the resource manifest after the initial registration, the caller should 170*d5c09012SAndroid Build Coastguard Worker // make a UpdateMembership call with an empty field mask. 171*d5c09012SAndroid Build Coastguard Worker repeated ResourceManifest connect_resources = 3 172*d5c09012SAndroid Build Coastguard Worker [(google.api.field_behavior) = OUTPUT_ONLY]; 173*d5c09012SAndroid Build Coastguard Worker 174*d5c09012SAndroid Build Coastguard Worker // Optional. Options for Kubernetes resource generation. 175*d5c09012SAndroid Build Coastguard Worker ResourceOptions resource_options = 4 [(google.api.field_behavior) = OPTIONAL]; 176*d5c09012SAndroid Build Coastguard Worker} 177*d5c09012SAndroid Build Coastguard Worker 178*d5c09012SAndroid Build Coastguard Worker// ResourceOptions represent options for Kubernetes resource generation. 179*d5c09012SAndroid Build Coastguard Workermessage ResourceOptions { 180*d5c09012SAndroid Build Coastguard Worker // Optional. The Connect agent version to use for connect_resources. Defaults 181*d5c09012SAndroid Build Coastguard Worker // to the latest GKE Connect version. The version must be a currently 182*d5c09012SAndroid Build Coastguard Worker // supported version, obsolete versions will be rejected. 183*d5c09012SAndroid Build Coastguard Worker string connect_version = 1 [(google.api.field_behavior) = OPTIONAL]; 184*d5c09012SAndroid Build Coastguard Worker 185*d5c09012SAndroid Build Coastguard Worker // Optional. Use `apiextensions/v1beta1` instead of `apiextensions/v1` for 186*d5c09012SAndroid Build Coastguard Worker // CustomResourceDefinition resources. 187*d5c09012SAndroid Build Coastguard Worker // This option should be set for clusters with Kubernetes apiserver versions 188*d5c09012SAndroid Build Coastguard Worker // <1.16. 189*d5c09012SAndroid Build Coastguard Worker bool v1beta1_crd = 2 [(google.api.field_behavior) = OPTIONAL]; 190*d5c09012SAndroid Build Coastguard Worker 191*d5c09012SAndroid Build Coastguard Worker // Optional. Major version of the Kubernetes cluster. This is only used to 192*d5c09012SAndroid Build Coastguard Worker // determine which version to use for the CustomResourceDefinition resources, 193*d5c09012SAndroid Build Coastguard Worker // `apiextensions/v1beta1` or`apiextensions/v1`. 194*d5c09012SAndroid Build Coastguard Worker string k8s_version = 3 [(google.api.field_behavior) = OPTIONAL]; 195*d5c09012SAndroid Build Coastguard Worker} 196*d5c09012SAndroid Build Coastguard Worker 197*d5c09012SAndroid Build Coastguard Worker// ResourceManifest represents a single Kubernetes resource to be applied to 198*d5c09012SAndroid Build Coastguard Worker// the cluster. 199*d5c09012SAndroid Build Coastguard Workermessage ResourceManifest { 200*d5c09012SAndroid Build Coastguard Worker // YAML manifest of the resource. 201*d5c09012SAndroid Build Coastguard Worker string manifest = 1; 202*d5c09012SAndroid Build Coastguard Worker 203*d5c09012SAndroid Build Coastguard Worker // Whether the resource provided in the manifest is `cluster_scoped`. 204*d5c09012SAndroid Build Coastguard Worker // If unset, the manifest is assumed to be namespace scoped. 205*d5c09012SAndroid Build Coastguard Worker // 206*d5c09012SAndroid Build Coastguard Worker // This field is used for REST mapping when applying the resource in a 207*d5c09012SAndroid Build Coastguard Worker // cluster. 208*d5c09012SAndroid Build Coastguard Worker bool cluster_scoped = 2; 209*d5c09012SAndroid Build Coastguard Worker} 210*d5c09012SAndroid Build Coastguard Worker 211*d5c09012SAndroid Build Coastguard Worker// GkeCluster contains information specific to GKE clusters. 212*d5c09012SAndroid Build Coastguard Workermessage GkeCluster { 213*d5c09012SAndroid Build Coastguard Worker // Immutable. Self-link of the Google Cloud resource for the GKE cluster. For 214*d5c09012SAndroid Build Coastguard Worker // example: 215*d5c09012SAndroid Build Coastguard Worker // 216*d5c09012SAndroid Build Coastguard Worker // //container.googleapis.com/projects/my-project/locations/us-west1-a/clusters/my-cluster 217*d5c09012SAndroid Build Coastguard Worker // 218*d5c09012SAndroid Build Coastguard Worker // Zonal clusters are also supported. 219*d5c09012SAndroid Build Coastguard Worker string resource_link = 1 [(google.api.field_behavior) = IMMUTABLE]; 220*d5c09012SAndroid Build Coastguard Worker 221*d5c09012SAndroid Build Coastguard Worker // Output only. If cluster_missing is set then it denotes that the GKE cluster 222*d5c09012SAndroid Build Coastguard Worker // no longer exists in the GKE Control Plane. 223*d5c09012SAndroid Build Coastguard Worker bool cluster_missing = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; 224*d5c09012SAndroid Build Coastguard Worker} 225*d5c09012SAndroid Build Coastguard Worker 226*d5c09012SAndroid Build Coastguard Worker// KubernetesMetadata provides informational metadata for Memberships 227*d5c09012SAndroid Build Coastguard Worker// representing Kubernetes clusters. 228*d5c09012SAndroid Build Coastguard Workermessage KubernetesMetadata { 229*d5c09012SAndroid Build Coastguard Worker // Output only. Kubernetes API server version string as reported by 230*d5c09012SAndroid Build Coastguard Worker // `/version`. 231*d5c09012SAndroid Build Coastguard Worker string kubernetes_api_server_version = 1 232*d5c09012SAndroid Build Coastguard Worker [(google.api.field_behavior) = OUTPUT_ONLY]; 233*d5c09012SAndroid Build Coastguard Worker 234*d5c09012SAndroid Build Coastguard Worker // Output only. Node providerID as reported by the first node in the list of 235*d5c09012SAndroid Build Coastguard Worker // nodes on the Kubernetes endpoint. On Kubernetes platforms that support 236*d5c09012SAndroid Build Coastguard Worker // zero-node clusters (like GKE-on-GCP), the node_count will be zero and the 237*d5c09012SAndroid Build Coastguard Worker // node_provider_id will be empty. 238*d5c09012SAndroid Build Coastguard Worker string node_provider_id = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; 239*d5c09012SAndroid Build Coastguard Worker 240*d5c09012SAndroid Build Coastguard Worker // Output only. Node count as reported by Kubernetes nodes resources. 241*d5c09012SAndroid Build Coastguard Worker int32 node_count = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; 242*d5c09012SAndroid Build Coastguard Worker 243*d5c09012SAndroid Build Coastguard Worker // Output only. vCPU count as reported by Kubernetes nodes resources. 244*d5c09012SAndroid Build Coastguard Worker int32 vcpu_count = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; 245*d5c09012SAndroid Build Coastguard Worker 246*d5c09012SAndroid Build Coastguard Worker // Output only. The total memory capacity as reported by the sum of all 247*d5c09012SAndroid Build Coastguard Worker // Kubernetes nodes resources, defined in MB. 248*d5c09012SAndroid Build Coastguard Worker int32 memory_mb = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; 249*d5c09012SAndroid Build Coastguard Worker 250*d5c09012SAndroid Build Coastguard Worker // Output only. The time at which these details were last updated. This 251*d5c09012SAndroid Build Coastguard Worker // update_time is different from the Membership-level update_time since 252*d5c09012SAndroid Build Coastguard Worker // EndpointDetails are updated internally for API consumers. 253*d5c09012SAndroid Build Coastguard Worker google.protobuf.Timestamp update_time = 100 254*d5c09012SAndroid Build Coastguard Worker [(google.api.field_behavior) = OUTPUT_ONLY]; 255*d5c09012SAndroid Build Coastguard Worker} 256*d5c09012SAndroid Build Coastguard Worker 257*d5c09012SAndroid Build Coastguard Worker// This field informs Fleet-based applications/services/UIs with the necessary 258*d5c09012SAndroid Build Coastguard Worker// information for where each underlying Cluster reports its metrics. 259*d5c09012SAndroid Build Coastguard Workermessage MonitoringConfig { 260*d5c09012SAndroid Build Coastguard Worker // Immutable. Project used to report Metrics 261*d5c09012SAndroid Build Coastguard Worker string project_id = 1 [(google.api.field_behavior) = IMMUTABLE]; 262*d5c09012SAndroid Build Coastguard Worker 263*d5c09012SAndroid Build Coastguard Worker // Immutable. Location used to report Metrics 264*d5c09012SAndroid Build Coastguard Worker string location = 2 [(google.api.field_behavior) = IMMUTABLE]; 265*d5c09012SAndroid Build Coastguard Worker 266*d5c09012SAndroid Build Coastguard Worker // Immutable. Cluster name used to report metrics. 267*d5c09012SAndroid Build Coastguard Worker // For Anthos on VMWare/Baremetal, it would be in format 268*d5c09012SAndroid Build Coastguard Worker // `memberClusters/cluster_name`; And for Anthos on MultiCloud, it would be in 269*d5c09012SAndroid Build Coastguard Worker // format 270*d5c09012SAndroid Build Coastguard Worker // `{azureClusters, awsClusters}/cluster_name`. 271*d5c09012SAndroid Build Coastguard Worker string cluster = 3 [(google.api.field_behavior) = IMMUTABLE]; 272*d5c09012SAndroid Build Coastguard Worker 273*d5c09012SAndroid Build Coastguard Worker // Kubernetes system metrics, if available, are written to this prefix. 274*d5c09012SAndroid Build Coastguard Worker // This defaults to kubernetes.io for GKE, and kubernetes.io/anthos for Anthos 275*d5c09012SAndroid Build Coastguard Worker // eventually. Noted: Anthos MultiCloud will have kubernetes.io prefix today 276*d5c09012SAndroid Build Coastguard Worker // but will migration to be under kubernetes.io/anthos 277*d5c09012SAndroid Build Coastguard Worker string kubernetes_metrics_prefix = 4; 278*d5c09012SAndroid Build Coastguard Worker 279*d5c09012SAndroid Build Coastguard Worker // Immutable. Cluster hash, this is a unique string generated by google code, 280*d5c09012SAndroid Build Coastguard Worker // which does not contain any PII, which we can use to reference the cluster. 281*d5c09012SAndroid Build Coastguard Worker // This is expected to be created by the monitoring stack and persisted into 282*d5c09012SAndroid Build Coastguard Worker // the Cluster object as well as to GKE-Hub. 283*d5c09012SAndroid Build Coastguard Worker string cluster_hash = 5 [(google.api.field_behavior) = IMMUTABLE]; 284*d5c09012SAndroid Build Coastguard Worker} 285*d5c09012SAndroid Build Coastguard Worker 286*d5c09012SAndroid Build Coastguard Worker// MembershipState describes the state of a Membership resource. 287*d5c09012SAndroid Build Coastguard Workermessage MembershipState { 288*d5c09012SAndroid Build Coastguard Worker // Code describes the state of a Membership resource. 289*d5c09012SAndroid Build Coastguard Worker enum Code { 290*d5c09012SAndroid Build Coastguard Worker // The code is not set. 291*d5c09012SAndroid Build Coastguard Worker CODE_UNSPECIFIED = 0; 292*d5c09012SAndroid Build Coastguard Worker 293*d5c09012SAndroid Build Coastguard Worker // The cluster is being registered. 294*d5c09012SAndroid Build Coastguard Worker CREATING = 1; 295*d5c09012SAndroid Build Coastguard Worker 296*d5c09012SAndroid Build Coastguard Worker // The cluster is registered. 297*d5c09012SAndroid Build Coastguard Worker READY = 2; 298*d5c09012SAndroid Build Coastguard Worker 299*d5c09012SAndroid Build Coastguard Worker // The cluster is being unregistered. 300*d5c09012SAndroid Build Coastguard Worker DELETING = 3; 301*d5c09012SAndroid Build Coastguard Worker 302*d5c09012SAndroid Build Coastguard Worker // The Membership is being updated. 303*d5c09012SAndroid Build Coastguard Worker UPDATING = 4; 304*d5c09012SAndroid Build Coastguard Worker 305*d5c09012SAndroid Build Coastguard Worker // The Membership is being updated by the Hub Service. 306*d5c09012SAndroid Build Coastguard Worker SERVICE_UPDATING = 5; 307*d5c09012SAndroid Build Coastguard Worker } 308*d5c09012SAndroid Build Coastguard Worker 309*d5c09012SAndroid Build Coastguard Worker // Output only. The current state of the Membership resource. 310*d5c09012SAndroid Build Coastguard Worker Code code = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; 311*d5c09012SAndroid Build Coastguard Worker} 312*d5c09012SAndroid Build Coastguard Worker 313*d5c09012SAndroid Build Coastguard Worker// Authority encodes how Google will recognize identities from this Membership. 314*d5c09012SAndroid Build Coastguard Worker// See the workload identity documentation for more details: 315*d5c09012SAndroid Build Coastguard Worker// https://cloud.google.com/kubernetes-engine/docs/how-to/workload-identity 316*d5c09012SAndroid Build Coastguard Workermessage Authority { 317*d5c09012SAndroid Build Coastguard Worker // Optional. A JSON Web Token (JWT) issuer URI. `issuer` must start with 318*d5c09012SAndroid Build Coastguard Worker // `https://` and be a valid URL with length <2000 characters. 319*d5c09012SAndroid Build Coastguard Worker // 320*d5c09012SAndroid Build Coastguard Worker // If set, then Google will allow valid OIDC tokens from this issuer to 321*d5c09012SAndroid Build Coastguard Worker // authenticate within the workload_identity_pool. OIDC discovery will be 322*d5c09012SAndroid Build Coastguard Worker // performed on this URI to validate tokens from the issuer. 323*d5c09012SAndroid Build Coastguard Worker // 324*d5c09012SAndroid Build Coastguard Worker // Clearing `issuer` disables Workload Identity. `issuer` cannot be directly 325*d5c09012SAndroid Build Coastguard Worker // modified; it must be cleared (and Workload Identity disabled) before using 326*d5c09012SAndroid Build Coastguard Worker // a new issuer (and re-enabling Workload Identity). 327*d5c09012SAndroid Build Coastguard Worker string issuer = 1 [(google.api.field_behavior) = OPTIONAL]; 328*d5c09012SAndroid Build Coastguard Worker 329*d5c09012SAndroid Build Coastguard Worker // Output only. The name of the workload identity pool in which `issuer` will 330*d5c09012SAndroid Build Coastguard Worker // be recognized. 331*d5c09012SAndroid Build Coastguard Worker // 332*d5c09012SAndroid Build Coastguard Worker // There is a single Workload Identity Pool per Hub that is shared 333*d5c09012SAndroid Build Coastguard Worker // between all Memberships that belong to that Hub. For a Hub hosted in 334*d5c09012SAndroid Build Coastguard Worker // {PROJECT_ID}, the workload pool format is `{PROJECT_ID}.hub.id.goog`, 335*d5c09012SAndroid Build Coastguard Worker // although this is subject to change in newer versions of this API. 336*d5c09012SAndroid Build Coastguard Worker string workload_identity_pool = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; 337*d5c09012SAndroid Build Coastguard Worker 338*d5c09012SAndroid Build Coastguard Worker // Output only. An identity provider that reflects the `issuer` in the 339*d5c09012SAndroid Build Coastguard Worker // workload identity pool. 340*d5c09012SAndroid Build Coastguard Worker string identity_provider = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; 341*d5c09012SAndroid Build Coastguard Worker 342*d5c09012SAndroid Build Coastguard Worker // Optional. OIDC verification keys for this Membership in JWKS format (RFC 343*d5c09012SAndroid Build Coastguard Worker // 7517). 344*d5c09012SAndroid Build Coastguard Worker // 345*d5c09012SAndroid Build Coastguard Worker // When this field is set, OIDC discovery will NOT be performed on `issuer`, 346*d5c09012SAndroid Build Coastguard Worker // and instead OIDC tokens will be validated using this field. 347*d5c09012SAndroid Build Coastguard Worker bytes oidc_jwks = 4 [(google.api.field_behavior) = OPTIONAL]; 348*d5c09012SAndroid Build Coastguard Worker} 349