feat: Add errors output fields for cluster and nodepool resources feat: Add AWS Autoscaling Group metrics collection for AWS nodepools feat: Add monitoring config Clients can now (1) manage Attached Clusters, (2) use managed GMP metrics collection, (3) enable AWS nodepool ASG metrics collection, and (4) get error summary from API resources. PiperOrigin-RevId: 496709757pull/763/head
parent
be2d54edde
commit
8e3a5a476e
10 changed files with 1283 additions and 286 deletions
@ -0,0 +1,230 @@ |
||||
// Copyright 2022 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. |
||||
|
||||
syntax = "proto3"; |
||||
|
||||
package google.cloud.gkemulticloud.v1; |
||||
|
||||
import "google/api/field_behavior.proto"; |
||||
import "google/api/resource.proto"; |
||||
import "google/cloud/gkemulticloud/v1/common_resources.proto"; |
||||
import "google/protobuf/timestamp.proto"; |
||||
|
||||
option csharp_namespace = "Google.Cloud.GkeMultiCloud.V1"; |
||||
option go_package = "google.golang.org/genproto/googleapis/cloud/gkemulticloud/v1;gkemulticloud"; |
||||
option java_multiple_files = true; |
||||
option java_outer_classname = "AttachedResourcesProto"; |
||||
option java_package = "com.google.cloud.gkemulticloud.v1"; |
||||
option php_namespace = "Google\\Cloud\\GkeMultiCloud\\V1"; |
||||
option ruby_package = "Google::Cloud::GkeMultiCloud::V1"; |
||||
|
||||
// An Anthos cluster running on customer own infrastructure. |
||||
message AttachedCluster { |
||||
option (google.api.resource) = { |
||||
type: "gkemulticloud.googleapis.com/AttachedCluster" |
||||
pattern: "projects/{project}/locations/{location}/attachedClusters/{attached_cluster}" |
||||
}; |
||||
|
||||
// The lifecycle state of the cluster. |
||||
enum State { |
||||
// Not set. |
||||
STATE_UNSPECIFIED = 0; |
||||
|
||||
// The PROVISIONING state indicates the cluster is being registered. |
||||
PROVISIONING = 1; |
||||
|
||||
// The RUNNING state indicates the cluster has been register and is fully |
||||
// usable. |
||||
RUNNING = 2; |
||||
|
||||
// The RECONCILING state indicates that some work is actively being done on |
||||
// the cluster, such as upgrading software components. |
||||
RECONCILING = 3; |
||||
|
||||
// The STOPPING state indicates the cluster is being de-registered. |
||||
STOPPING = 4; |
||||
|
||||
// The ERROR state indicates the cluster is in a broken unrecoverable |
||||
// state. |
||||
ERROR = 5; |
||||
|
||||
// The DEGRADED state indicates the cluster requires user action to |
||||
// restore full functionality. |
||||
DEGRADED = 6; |
||||
} |
||||
|
||||
// The name of this resource. |
||||
// |
||||
// Cluster names are formatted as |
||||
// `projects/<project-number>/locations/<region>/attachedClusters/<cluster-id>`. |
||||
// |
||||
// See [Resource Names](https://cloud.google.com/apis/design/resource_names) |
||||
// for more details on GCP resource names. |
||||
string name = 1; |
||||
|
||||
// Optional. A human readable description of this cluster. |
||||
// Cannot be longer than 255 UTF-8 encoded bytes. |
||||
string description = 2 [(google.api.field_behavior) = OPTIONAL]; |
||||
|
||||
// Required. OpenID Connect (OIDC) configuration for the cluster. |
||||
AttachedOidcConfig oidc_config = 3 [(google.api.field_behavior) = REQUIRED]; |
||||
|
||||
// Required. The platform version for the cluster (e.g. `1.19.0-gke.1000`). |
||||
// |
||||
// You can list all supported versions on a given Google Cloud region by |
||||
// calling |
||||
// [GetAttachedServerConfig][google.cloud.gkemulticloud.v1.AttachedClusters.GetAttachedServerConfig]. |
||||
string platform_version = 4 [(google.api.field_behavior) = REQUIRED]; |
||||
|
||||
// Required. The Kubernetes distribution of the underlying attached cluster. |
||||
// |
||||
// Supported values: ["eks", "aks"]. |
||||
string distribution = 16 [(google.api.field_behavior) = REQUIRED]; |
||||
|
||||
// Output only. The region where this cluster runs. |
||||
// |
||||
// For EKS clusters, this is a AWS region. For AKS clusters, |
||||
// this is an Azure region. |
||||
string cluster_region = 22 [(google.api.field_behavior) = OUTPUT_ONLY]; |
||||
|
||||
// Required. Fleet configuration. |
||||
Fleet fleet = 5 [(google.api.field_behavior) = REQUIRED]; |
||||
|
||||
// Output only. The current state of the cluster. |
||||
State state = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; |
||||
|
||||
// Output only. A globally unique identifier for the cluster. |
||||
string uid = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; |
||||
|
||||
// Output only. If set, there are currently changes in flight to the cluster. |
||||
bool reconciling = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; |
||||
|
||||
// Output only. The time at which this cluster was registered. |
||||
google.protobuf.Timestamp create_time = 9 |
||||
[(google.api.field_behavior) = OUTPUT_ONLY]; |
||||
|
||||
// Output only. The time at which this cluster was last updated. |
||||
google.protobuf.Timestamp update_time = 10 |
||||
[(google.api.field_behavior) = OUTPUT_ONLY]; |
||||
|
||||
// Allows clients to perform consistent read-modify-writes |
||||
// through optimistic concurrency control. |
||||
// |
||||
// Can be sent on update and delete requests to ensure the |
||||
// client has an up-to-date value before proceeding. |
||||
string etag = 11; |
||||
|
||||
// Output only. The Kubernetes version of the cluster. |
||||
string kubernetes_version = 12 [(google.api.field_behavior) = OUTPUT_ONLY]; |
||||
|
||||
// Optional. Annotations on the cluster. |
||||
// |
||||
// This field has the same restrictions as Kubernetes annotations. |
||||
// The total size of all keys and values combined is limited to 256k. |
||||
// Key can have 2 segments: prefix (optional) and name (required), |
||||
// separated by a slash (/). |
||||
// Prefix must be a DNS subdomain. |
||||
// Name must be 63 characters or less, begin and end with alphanumerics, |
||||
// with dashes (-), underscores (_), dots (.), and alphanumerics between. |
||||
map<string, string> annotations = 13 [(google.api.field_behavior) = OPTIONAL]; |
||||
|
||||
// Output only. Workload Identity settings. |
||||
WorkloadIdentityConfig workload_identity_config = 14 |
||||
[(google.api.field_behavior) = OUTPUT_ONLY]; |
||||
|
||||
// Optional. Logging configuration for this cluster. |
||||
LoggingConfig logging_config = 15 [(google.api.field_behavior) = OPTIONAL]; |
||||
|
||||
// Output only. A set of errors found in the cluster. |
||||
repeated AttachedClusterError errors = 20 |
||||
[(google.api.field_behavior) = OUTPUT_ONLY]; |
||||
|
||||
// Optional. Configuration related to the cluster RBAC settings. |
||||
AttachedClustersAuthorization authorization = 21 |
||||
[(google.api.field_behavior) = OPTIONAL]; |
||||
|
||||
// Optional. Monitoring configuration for this cluster. |
||||
MonitoringConfig monitoring_config = 23 |
||||
[(google.api.field_behavior) = OPTIONAL]; |
||||
} |
||||
|
||||
// Configuration related to the cluster RBAC settings. |
||||
message AttachedClustersAuthorization { |
||||
// Required. Users that can perform operations as a cluster admin. A managed |
||||
// ClusterRoleBinding will be created to grant the `cluster-admin` ClusterRole |
||||
// to the users. Up to ten admin users can be provided. |
||||
// |
||||
// For more info on RBAC, see |
||||
// https://kubernetes.io/docs/reference/access-authn-authz/rbac/#user-facing-roles |
||||
repeated AttachedClusterUser admin_users = 1 |
||||
[(google.api.field_behavior) = REQUIRED]; |
||||
} |
||||
|
||||
// Identities of a user-type subject for Attached clusters. |
||||
message AttachedClusterUser { |
||||
// Required. The name of the user, e.g. `my-gcp-id@gmail.com`. |
||||
string username = 1 [(google.api.field_behavior) = REQUIRED]; |
||||
} |
||||
|
||||
// OIDC discovery information of the target cluster. |
||||
// |
||||
// Kubernetes Service Account (KSA) tokens are JWT tokens signed by the cluster |
||||
// API server. This fields indicates how GCP services |
||||
// validate KSA tokens in order to allow system workloads (such as GKE Connect |
||||
// and telemetry agents) to authenticate back to GCP. |
||||
// |
||||
// Both clusters with public and private issuer URLs are supported. |
||||
// Clusters with public issuers only need to specify the `issuer_url` field |
||||
// while clusters with private issuers need to provide both |
||||
// `issuer_url` and `oidc_jwks`. |
||||
message AttachedOidcConfig { |
||||
// A JSON Web Token (JWT) issuer URI. `issuer` must start with `https://`. |
||||
string issuer_url = 1; |
||||
|
||||
// Optional. OIDC verification keys in JWKS format (RFC 7517). |
||||
// It contains a list of OIDC verification keys that can be used to verify |
||||
// OIDC JWTs. |
||||
// |
||||
// This field is required for cluster that doesn't have a publicly available |
||||
// discovery endpoint. When provided, it will be directly used |
||||
// to verify the OIDC JWT asserted by the IDP. |
||||
bytes jwks = 2 [(google.api.field_behavior) = OPTIONAL]; |
||||
} |
||||
|
||||
// AttachedServerConfig provides information about supported |
||||
// Kubernetes versions |
||||
message AttachedServerConfig { |
||||
option (google.api.resource) = { |
||||
type: "gkemulticloud.googleapis.com/AttachedServerConfig" |
||||
pattern: "projects/{project}/locations/{location}/attachedServerConfig" |
||||
}; |
||||
|
||||
// The resource name of the config. |
||||
string name = 1; |
||||
|
||||
// List of valid platform versions. |
||||
repeated AttachedPlatformVersionInfo valid_versions = 2; |
||||
} |
||||
|
||||
// Information about a supported Attached Clusters platform version. |
||||
message AttachedPlatformVersionInfo { |
||||
// Platform version name. |
||||
string version = 1; |
||||
} |
||||
|
||||
// AttachedClusterError describes errors found on attached clusters. |
||||
message AttachedClusterError { |
||||
// Human-friendly description of the error. |
||||
string message = 1; |
||||
} |
@ -0,0 +1,432 @@ |
||||
// Copyright 2022 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. |
||||
|
||||
syntax = "proto3"; |
||||
|
||||
package google.cloud.gkemulticloud.v1; |
||||
|
||||
import "google/api/annotations.proto"; |
||||
import "google/api/client.proto"; |
||||
import "google/api/field_behavior.proto"; |
||||
import "google/api/resource.proto"; |
||||
import "google/cloud/gkemulticloud/v1/attached_resources.proto"; |
||||
import "google/longrunning/operations.proto"; |
||||
import "google/protobuf/field_mask.proto"; |
||||
|
||||
option csharp_namespace = "Google.Cloud.GkeMultiCloud.V1"; |
||||
option go_package = "google.golang.org/genproto/googleapis/cloud/gkemulticloud/v1;gkemulticloud"; |
||||
option java_multiple_files = true; |
||||
option java_outer_classname = "AttachedServiceProto"; |
||||
option java_package = "com.google.cloud.gkemulticloud.v1"; |
||||
option php_namespace = "Google\\Cloud\\GkeMultiCloud\\V1"; |
||||
option ruby_package = "Google::Cloud::GkeMultiCloud::V1"; |
||||
|
||||
// The AttachedClusters API provides a single centrally managed service |
||||
// to register and manage Anthos attached clusters that run on customer's owned |
||||
// infrastructure. |
||||
service AttachedClusters { |
||||
option (google.api.default_host) = "gkemulticloud.googleapis.com"; |
||||
option (google.api.oauth_scopes) = |
||||
"https://www.googleapis.com/auth/cloud-platform"; |
||||
|
||||
// Creates a new |
||||
// [AttachedCluster][google.cloud.gkemulticloud.v1.AttachedCluster] resource |
||||
// on a given GCP project and region. |
||||
// |
||||
// If successful, the response contains a newly created |
||||
// [Operation][google.longrunning.Operation] resource that can be |
||||
// described to track the status of the operation. |
||||
rpc CreateAttachedCluster(CreateAttachedClusterRequest) |
||||
returns (google.longrunning.Operation) { |
||||
option (google.api.http) = { |
||||
post: "/v1/{parent=projects/*/locations/*}/attachedClusters" |
||||
body: "attached_cluster" |
||||
}; |
||||
option (google.api.method_signature) = |
||||
"parent,attached_cluster,attached_cluster_id"; |
||||
option (google.longrunning.operation_info) = { |
||||
response_type: "AttachedCluster" |
||||
metadata_type: "OperationMetadata" |
||||
}; |
||||
} |
||||
|
||||
// Updates an |
||||
// [AttachedCluster][google.cloud.gkemulticloud.v1.AttachedCluster]. |
||||
rpc UpdateAttachedCluster(UpdateAttachedClusterRequest) |
||||
returns (google.longrunning.Operation) { |
||||
option (google.api.http) = { |
||||
patch: "/v1/{attached_cluster.name=projects/*/locations/*/attachedClusters/*}" |
||||
body: "attached_cluster" |
||||
}; |
||||
option (google.api.method_signature) = "attached_cluster,update_mask"; |
||||
option (google.longrunning.operation_info) = { |
||||
response_type: "AttachedCluster" |
||||
metadata_type: "OperationMetadata" |
||||
}; |
||||
} |
||||
|
||||
// Imports creates a new |
||||
// [AttachedCluster][google.cloud.gkemulticloud.v1.AttachedCluster] resource |
||||
// by importing an existing Fleet Membership resource. |
||||
// |
||||
// Attached Clusters created before the introduction of the Anthos Multi-Cloud |
||||
// API can be imported through this method. |
||||
// |
||||
// If successful, the response contains a newly created |
||||
// [Operation][google.longrunning.Operation] resource that can be |
||||
// described to track the status of the operation. |
||||
rpc ImportAttachedCluster(ImportAttachedClusterRequest) |
||||
returns (google.longrunning.Operation) { |
||||
option (google.api.http) = { |
||||
post: "/v1/{parent=projects/*/locations/*}/attachedClusters:import" |
||||
body: "*" |
||||
}; |
||||
option (google.api.method_signature) = "parent,fleet_membership"; |
||||
option (google.longrunning.operation_info) = { |
||||
response_type: "AttachedCluster" |
||||
metadata_type: "OperationMetadata" |
||||
}; |
||||
} |
||||
|
||||
// Describes a specific |
||||
// [AttachedCluster][google.cloud.gkemulticloud.v1.AttachedCluster] resource. |
||||
rpc GetAttachedCluster(GetAttachedClusterRequest) returns (AttachedCluster) { |
||||
option (google.api.http) = { |
||||
get: "/v1/{name=projects/*/locations/*/attachedClusters/*}" |
||||
}; |
||||
option (google.api.method_signature) = "name"; |
||||
} |
||||
|
||||
// Lists all [AttachedCluster][google.cloud.gkemulticloud.v1.AttachedCluster] |
||||
// resources on a given Google Cloud project and region. |
||||
rpc ListAttachedClusters(ListAttachedClustersRequest) |
||||
returns (ListAttachedClustersResponse) { |
||||
option (google.api.http) = { |
||||
get: "/v1/{parent=projects/*/locations/*}/attachedClusters" |
||||
}; |
||||
option (google.api.method_signature) = "parent"; |
||||
} |
||||
|
||||
// Deletes a specific |
||||
// [AttachedCluster][google.cloud.gkemulticloud.v1.AttachedCluster] resource. |
||||
// |
||||
// If successful, the response contains a newly created |
||||
// [Operation][google.longrunning.Operation] resource that can be |
||||
// described to track the status of the operation. |
||||
rpc DeleteAttachedCluster(DeleteAttachedClusterRequest) |
||||
returns (google.longrunning.Operation) { |
||||
option (google.api.http) = { |
||||
delete: "/v1/{name=projects/*/locations/*/attachedClusters/*}" |
||||
}; |
||||
option (google.api.method_signature) = "name"; |
||||
option (google.longrunning.operation_info) = { |
||||
response_type: "google.protobuf.Empty" |
||||
metadata_type: "OperationMetadata" |
||||
}; |
||||
} |
||||
|
||||
// Returns information, such as supported Kubernetes versions, on a given |
||||
// Google Cloud location. |
||||
rpc GetAttachedServerConfig(GetAttachedServerConfigRequest) |
||||
returns (AttachedServerConfig) { |
||||
option (google.api.http) = { |
||||
get: "/v1/{name=projects/*/locations/*/attachedServerConfig}" |
||||
}; |
||||
option (google.api.method_signature) = "name"; |
||||
} |
||||
|
||||
// Generates the install manifest to be installed on the target cluster. |
||||
rpc GenerateAttachedClusterInstallManifest( |
||||
GenerateAttachedClusterInstallManifestRequest) |
||||
returns (GenerateAttachedClusterInstallManifestResponse) { |
||||
option (google.api.http) = { |
||||
get: "/v1/{parent=projects/*/locations/*}:generateAttachedClusterInstallManifest" |
||||
}; |
||||
option (google.api.method_signature) = "parent,attached_cluster_id"; |
||||
} |
||||
} |
||||
|
||||
// Request message for `AttachedClusters.GenerateAttachedClusterInstallManifest` |
||||
// method. |
||||
message GenerateAttachedClusterInstallManifestRequest { |
||||
// Required. The parent location where this |
||||
// [AttachedCluster][google.cloud.gkemulticloud.v1.AttachedCluster] resource |
||||
// will be created. |
||||
// |
||||
// Location names are formatted as `projects/<project-id>/locations/<region>`. |
||||
// |
||||
// See [Resource Names](https://cloud.google.com/apis/design/resource_names) |
||||
// for more details on Google Cloud resource names. |
||||
string parent = 1 [ |
||||
(google.api.field_behavior) = REQUIRED, |
||||
(google.api.resource_reference) = { |
||||
child_type: "gkemulticloud.googleapis.com/AttachedCluster" |
||||
} |
||||
]; |
||||
|
||||
// Required. A client provided ID the resource. Must be unique within the |
||||
// parent resource. |
||||
// |
||||
// The provided ID will be part of the |
||||
// [AttachedCluster][google.cloud.gkemulticloud.v1.AttachedCluster] resource |
||||
// name formatted as |
||||
// `projects/<project-id>/locations/<region>/attachedClusters/<cluster-id>`. |
||||
// |
||||
// Valid characters are `/[a-z][0-9]-/`. Cannot be longer than 63 characters. |
||||
// |
||||
// When generating an install manifest for importing an existing Membership |
||||
// resource, the attached_cluster_id field must be the Membership id. |
||||
// |
||||
// Membership names are formatted as `resource name formatted as |
||||
// `projects/<project-id>/locations/<region>/memberships/<membership-id>`. |
||||
string attached_cluster_id = 2 [(google.api.field_behavior) = REQUIRED]; |
||||
|
||||
// Required. The platform version for the cluster (e.g. `1.19.0-gke.1000`). |
||||
// |
||||
// You can list all supported versions on a given Google Cloud region by |
||||
// calling |
||||
// [GetAttachedServerConfig][google.cloud.gkemulticloud.v1.AttachedClusters.GetAttachedServerConfig]. |
||||
string platform_version = 3 [(google.api.field_behavior) = REQUIRED]; |
||||
} |
||||
|
||||
// Response message for |
||||
// `AttachedClusters.GenerateAttachedClusterInstallManifest` method. |
||||
message GenerateAttachedClusterInstallManifestResponse { |
||||
// A set of Kubernetes resources (in YAML format) to be applied |
||||
// to the cluster to be attached. |
||||
string manifest = 1; |
||||
} |
||||
|
||||
// Request message for `AttachedClusters.CreateAttachedCluster` method. |
||||
message CreateAttachedClusterRequest { |
||||
// Required. The parent location where this |
||||
// [AttachedCluster][google.cloud.gkemulticloud.v1.AttachedCluster] resource |
||||
// will be created. |
||||
// |
||||
// Location names are formatted as `projects/<project-id>/locations/<region>`. |
||||
// |
||||
// See [Resource Names](https://cloud.google.com/apis/design/resource_names) |
||||
// for more details on Google Cloud resource names. |
||||
string parent = 1 [ |
||||
(google.api.field_behavior) = REQUIRED, |
||||
(google.api.resource_reference) = { |
||||
child_type: "gkemulticloud.googleapis.com/AttachedCluster" |
||||
} |
||||
]; |
||||
|
||||
// Required. The specification of the |
||||
// [AttachedCluster][google.cloud.gkemulticloud.v1.AttachedCluster] to create. |
||||
AttachedCluster attached_cluster = 2 [(google.api.field_behavior) = REQUIRED]; |
||||
|
||||
// Required. A client provided ID the resource. Must be unique within the |
||||
// parent resource. |
||||
// |
||||
// The provided ID will be part of the |
||||
// [AttachedCluster][google.cloud.gkemulticloud.v1.AttachedCluster] resource |
||||
// name formatted as |
||||
// `projects/<project-id>/locations/<region>/attachedClusters/<cluster-id>`. |
||||
// |
||||
// Valid characters are `/[a-z][0-9]-/`. Cannot be longer than 63 characters. |
||||
string attached_cluster_id = 3 [(google.api.field_behavior) = REQUIRED]; |
||||
|
||||
// If set, only validate the request, but do not actually create the cluster. |
||||
bool validate_only = 4; |
||||
} |
||||
|
||||
// Request message for `AttachedClusters.ImportAttachedCluster` method. |
||||
message ImportAttachedClusterRequest { |
||||
// Required. The parent location where this |
||||
// [AttachedCluster][google.cloud.gkemulticloud.v1.AttachedCluster] resource |
||||
// will be created. |
||||
// |
||||
// Location names are formatted as `projects/<project-id>/locations/<region>`. |
||||
// |
||||
// See [Resource Names](https://cloud.google.com/apis/design/resource_names) |
||||
// for more details on Google Cloud resource names. |
||||
string parent = 1 [ |
||||
(google.api.field_behavior) = REQUIRED, |
||||
(google.api.resource_reference) = { |
||||
child_type: "gkemulticloud.googleapis.com/AttachedCluster" |
||||
} |
||||
]; |
||||
|
||||
// If set, only validate the request, but do not actually import the cluster. |
||||
bool validate_only = 2; |
||||
|
||||
// Required. The name of the fleet membership resource to import. |
||||
string fleet_membership = 3 [(google.api.field_behavior) = REQUIRED]; |
||||
|
||||
// Required. The platform version for the cluster (e.g. `1.19.0-gke.1000`). |
||||
// |
||||
// You can list all supported versions on a given Google Cloud region by |
||||
// calling |
||||
// [GetAttachedServerConfig][google.cloud.gkemulticloud.v1.AttachedClusters.GetAttachedServerConfig]. |
||||
string platform_version = 4 [(google.api.field_behavior) = REQUIRED]; |
||||
|
||||
// Required. The Kubernetes distribution of the underlying attached cluster. |
||||
// |
||||
// Supported values: ["eks", "aks"]. |
||||
string distribution = 5 [(google.api.field_behavior) = REQUIRED]; |
||||
} |
||||
|
||||
// Request message for `AttachedClusters.UpdateAttachedCluster` method. |
||||
message UpdateAttachedClusterRequest { |
||||
// Required. The |
||||
// [AttachedCluster][google.cloud.gkemulticloud.v1.AttachedCluster] resource |
||||
// to update. |
||||
AttachedCluster attached_cluster = 1 [(google.api.field_behavior) = REQUIRED]; |
||||
|
||||
// If set, only validate the request, but do not actually update the cluster. |
||||
bool validate_only = 2; |
||||
|
||||
// Required. Mask of fields to update. At least one path must be supplied in |
||||
// this field. The elements of the repeated paths field can only include these |
||||
// fields from |
||||
// [AttachedCluster][google.cloud.gkemulticloud.v1.AttachedCluster]: |
||||
// |
||||
// * `description`. |
||||
// * `annotations`. |
||||
// * `platform_version`. |
||||
// * `authorization.admin_users`. |
||||
// * `logging_config.component_config.enable_components`. |
||||
// * `monitoring_config.managed_prometheus_config.enabled`. |
||||
google.protobuf.FieldMask update_mask = 3 |
||||
[(google.api.field_behavior) = REQUIRED]; |
||||
} |
||||
|
||||
// Request message for `AttachedClusters.GetAttachedCluster` method. |
||||
message GetAttachedClusterRequest { |
||||
// Required. The name of the |
||||
// [AttachedCluster][google.cloud.gkemulticloud.v1.AttachedCluster] resource |
||||
// to describe. |
||||
// |
||||
// `AttachedCluster` names are formatted as |
||||
// `projects/<project-id>/locations/<region>/attachedClusters/<cluster-id>`. |
||||
// |
||||
// See [Resource Names](https://cloud.google.com/apis/design/resource_names) |
||||
// for more details on GCP resource names. |
||||
string name = 1 [ |
||||
(google.api.field_behavior) = REQUIRED, |
||||
(google.api.resource_reference) = { |
||||
type: "gkemulticloud.googleapis.com/AttachedCluster" |
||||
} |
||||
]; |
||||
} |
||||
|
||||
// Request message for `AttachedClusters.ListAttachedClusters` method. |
||||
message ListAttachedClustersRequest { |
||||
// Required. The parent location which owns this collection of |
||||
// [AttachedCluster][google.cloud.gkemulticloud.v1.AttachedCluster] resources. |
||||
// |
||||
// Location names are formatted as `projects/<project-id>/locations/<region>`. |
||||
// |
||||
// See [Resource Names](https://cloud.google.com/apis/design/resource_names) |
||||
// for more details on GCP resource names. |
||||
string parent = 1 [ |
||||
(google.api.field_behavior) = REQUIRED, |
||||
(google.api.resource_reference) = { |
||||
child_type: "gkemulticloud.googleapis.com/AttachedCluster" |
||||
} |
||||
]; |
||||
|
||||
// The maximum number of items to return. |
||||
// |
||||
// If not specified, a default value of 50 will be used by the service. |
||||
// Regardless of the pageSize value, the response can include a partial list |
||||
// and a caller should only rely on response's |
||||
// [nextPageToken][google.cloud.gkemulticloud.v1.ListAttachedClustersResponse.next_page_token] |
||||
// to determine if there are more instances left to be queried. |
||||
int32 page_size = 2; |
||||
|
||||
// The `nextPageToken` value returned from a previous |
||||
// [attachedClusters.list][google.cloud.gkemulticloud.v1.AttachedClusters.ListAttachedClusters] |
||||
// request, if any. |
||||
string page_token = 3; |
||||
} |
||||
|
||||
// Response message for `AttachedClusters.ListAttachedClusters` method. |
||||
message ListAttachedClustersResponse { |
||||
// A list of [AttachedCluster][google.cloud.gkemulticloud.v1.AttachedCluster] |
||||
// resources in the specified GCP project and region region. |
||||
repeated AttachedCluster attached_clusters = 1; |
||||
|
||||
// Token to retrieve the next page of results, or empty if there are no more |
||||
// results in the list. |
||||
string next_page_token = 2; |
||||
} |
||||
|
||||
// Request message for `AttachedClusters.DeleteAttachedCluster` method. |
||||
message DeleteAttachedClusterRequest { |
||||
// Required. The resource name the |
||||
// [AttachedCluster][google.cloud.gkemulticloud.v1.AttachedCluster] to delete. |
||||
// |
||||
// `AttachedCluster` names are formatted as |
||||
// `projects/<project-id>/locations/<region>/attachedClusters/<cluster-id>`. |
||||
// |
||||
// See [Resource Names](https://cloud.google.com/apis/design/resource_names) |
||||
// for more details on GCP resource names. |
||||
string name = 1 [ |
||||
(google.api.field_behavior) = REQUIRED, |
||||
(google.api.resource_reference) = { |
||||
type: "gkemulticloud.googleapis.com/AttachedCluster" |
||||
} |
||||
]; |
||||
|
||||
// If set, only validate the request, but do not actually delete the resource. |
||||
bool validate_only = 2; |
||||
|
||||
// If set to true, and the |
||||
// [AttachedCluster][google.cloud.gkemulticloud.v1.AttachedCluster] resource |
||||
// is not found, the request will succeed but no action will be taken on the |
||||
// server and a completed [Operation][google.longrunning.Operation] will be |
||||
// returned. |
||||
// |
||||
// Useful for idempotent deletion. |
||||
bool allow_missing = 3; |
||||
|
||||
// If set to true, the deletion of |
||||
// [AttachedCluster][google.cloud.gkemulticloud.v1.AttachedCluster] resource |
||||
// will succeed even if errors occur during deleting in cluster resources. |
||||
// Using this parameter may result in orphaned resources in the cluster. |
||||
bool ignore_errors = 5; |
||||
|
||||
// The current etag of the |
||||
// [AttachedCluster][google.cloud.gkemulticloud.v1.AttachedCluster]. |
||||
// |
||||
// Allows clients to perform deletions through optimistic concurrency control. |
||||
// |
||||
// If the provided etag does not match the current etag of the cluster, |
||||
// the request will fail and an ABORTED error will be returned. |
||||
string etag = 4; |
||||
} |
||||
|
||||
// GetAttachedServerConfigRequest gets the server config for attached |
||||
// clusters. |
||||
message GetAttachedServerConfigRequest { |
||||
// Required. The name of the |
||||
// [AttachedServerConfig][google.cloud.gkemulticloud.v1.AttachedServerConfig] |
||||
// resource to describe. |
||||
// |
||||
// `AttachedServerConfig` names are formatted as |
||||
// `projects/<project-id>/locations/<region>/attachedServerConfig`. |
||||
// |
||||
// See [Resource Names](https://cloud.google.com/apis/design/resource_names) |
||||
// for more details on Google Cloud resource names. |
||||
string name = 1 [ |
||||
(google.api.field_behavior) = REQUIRED, |
||||
(google.api.resource_reference) = { |
||||
type: "gkemulticloud.googleapis.com/AttachedServerConfig" |
||||
} |
||||
]; |
||||
} |
Loading…
Reference in new issue