# frozen_string_literal: true # 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 # # https://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. # Auto-generated by gapic-generator-ruby. DO NOT EDIT! module Google module Cloud module GkeMultiCloud module V1 # An Anthos cluster running on AWS. # @!attribute [rw] name # @return [::String] # The name of this resource. # # Cluster names are formatted as # `projects//locations//awsClusters/`. # # See [Resource Names](https://cloud.google.com/apis/design/resource_names) # for more details on Google Cloud Platform resource names. # @!attribute [rw] description # @return [::String] # Optional. A human readable description of this cluster. # Cannot be longer than 255 UTF-8 encoded bytes. # @!attribute [rw] networking # @return [::Google::Cloud::GkeMultiCloud::V1::AwsClusterNetworking] # Required. Cluster-wide networking configuration. # @!attribute [rw] aws_region # @return [::String] # Required. The AWS region where the cluster runs. # # Each Google Cloud region supports a subset of nearby AWS regions. # You can call # {::Google::Cloud::GkeMultiCloud::V1::AwsClusters::Client#get_aws_server_config GetAwsServerConfig} # to list all supported AWS regions within a given Google Cloud region. # @!attribute [rw] control_plane # @return [::Google::Cloud::GkeMultiCloud::V1::AwsControlPlane] # Required. Configuration related to the cluster control plane. # @!attribute [rw] authorization # @return [::Google::Cloud::GkeMultiCloud::V1::AwsAuthorization] # Required. Configuration related to the cluster RBAC settings. # @!attribute [r] state # @return [::Google::Cloud::GkeMultiCloud::V1::AwsCluster::State] # Output only. The current state of the cluster. # @!attribute [r] endpoint # @return [::String] # Output only. The endpoint of the cluster's API server. # @!attribute [r] uid # @return [::String] # Output only. A globally unique identifier for the cluster. # @!attribute [r] reconciling # @return [::Boolean] # Output only. If set, there are currently changes in flight to the cluster. # @!attribute [r] create_time # @return [::Google::Protobuf::Timestamp] # Output only. The time at which this cluster was created. # @!attribute [r] update_time # @return [::Google::Protobuf::Timestamp] # Output only. The time at which this cluster was last updated. # @!attribute [rw] etag # @return [::String] # 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. # @!attribute [rw] annotations # @return [::Google::Protobuf::Map{::String => ::String}] # 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. # @!attribute [r] workload_identity_config # @return [::Google::Cloud::GkeMultiCloud::V1::WorkloadIdentityConfig] # Output only. Workload Identity settings. # @!attribute [r] cluster_ca_certificate # @return [::String] # Output only. PEM encoded x509 certificate of the cluster root of trust. # @!attribute [rw] fleet # @return [::Google::Cloud::GkeMultiCloud::V1::Fleet] # Required. Fleet configuration. # @!attribute [rw] logging_config # @return [::Google::Cloud::GkeMultiCloud::V1::LoggingConfig] # Optional. Logging configuration for this cluster. # @!attribute [r] errors # @return [::Array<::Google::Cloud::GkeMultiCloud::V1::AwsClusterError>] # Output only. A set of errors found in the cluster. # @!attribute [rw] monitoring_config # @return [::Google::Cloud::GkeMultiCloud::V1::MonitoringConfig] # Optional. Monitoring configuration for this cluster. # @!attribute [rw] binary_authorization # @return [::Google::Cloud::GkeMultiCloud::V1::BinaryAuthorization] # Optional. Binary Authorization configuration for this cluster. class AwsCluster include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class AnnotationsEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # The lifecycle state of the cluster. module State # Not set. STATE_UNSPECIFIED = 0 # The PROVISIONING state indicates the cluster is being created. PROVISIONING = 1 # The RUNNING state indicates the cluster has been created and is fully # usable. RUNNING = 2 # The RECONCILING state indicates that some work is actively being done on # the cluster, such as upgrading the control plane replicas. RECONCILING = 3 # The STOPPING state indicates the cluster is being deleted. 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 end end # ControlPlane defines common parameters between control plane nodes. # @!attribute [rw] version # @return [::String] # Required. The Kubernetes version to run on control plane replicas # (e.g. `1.19.10-gke.1000`). # # You can list all supported versions on a given Google Cloud region by # calling # {::Google::Cloud::GkeMultiCloud::V1::AwsClusters::Client#get_aws_server_config GetAwsServerConfig}. # @!attribute [rw] instance_type # @return [::String] # Optional. The AWS instance type. # # When unspecified, it uses a default based on the cluster's version. # @!attribute [rw] ssh_config # @return [::Google::Cloud::GkeMultiCloud::V1::AwsSshConfig] # Optional. SSH configuration for how to access the underlying control plane # machines. # @!attribute [rw] subnet_ids # @return [::Array<::String>] # Required. The list of subnets where control plane replicas will run. # A replica will be provisioned on each subnet and up to three values # can be provided. # Each subnet must be in a different AWS Availability Zone (AZ). # @!attribute [rw] security_group_ids # @return [::Array<::String>] # Optional. The IDs of additional security groups to add to control plane # replicas. The Anthos Multi-Cloud API will automatically create and manage # security groups with the minimum rules needed for a functioning cluster. # @!attribute [rw] iam_instance_profile # @return [::String] # Required. The name or ARN of the AWS IAM instance profile to assign to each # control plane replica. # @!attribute [rw] root_volume # @return [::Google::Cloud::GkeMultiCloud::V1::AwsVolumeTemplate] # Optional. Configuration related to the root volume provisioned for each # control plane replica. # # Volumes will be provisioned in the availability zone associated # with the corresponding subnet. # # When unspecified, it defaults to 32 GiB with the GP2 volume type. # @!attribute [rw] main_volume # @return [::Google::Cloud::GkeMultiCloud::V1::AwsVolumeTemplate] # Optional. Configuration related to the main volume provisioned for each # control plane replica. # The main volume is in charge of storing all of the cluster's etcd state. # # Volumes will be provisioned in the availability zone associated # with the corresponding subnet. # # When unspecified, it defaults to 8 GiB with the GP2 volume type. # @!attribute [rw] database_encryption # @return [::Google::Cloud::GkeMultiCloud::V1::AwsDatabaseEncryption] # Required. The ARN of the AWS KMS key used to encrypt cluster secrets. # @!attribute [rw] tags # @return [::Google::Protobuf::Map{::String => ::String}] # Optional. A set of AWS resource tags to propagate to all underlying managed # AWS resources. # # Specify at most 50 pairs containing alphanumerics, spaces, and symbols # (.+-=_:@/). Keys can be up to 127 Unicode characters. Values can be up to # 255 Unicode characters. # @!attribute [rw] aws_services_authentication # @return [::Google::Cloud::GkeMultiCloud::V1::AwsServicesAuthentication] # Required. Authentication configuration for management of AWS resources. # @!attribute [rw] proxy_config # @return [::Google::Cloud::GkeMultiCloud::V1::AwsProxyConfig] # Optional. Proxy configuration for outbound HTTP(S) traffic. # @!attribute [rw] config_encryption # @return [::Google::Cloud::GkeMultiCloud::V1::AwsConfigEncryption] # Required. Config encryption for user data. # @!attribute [rw] instance_placement # @return [::Google::Cloud::GkeMultiCloud::V1::AwsInstancePlacement] # Optional. The placement to use on control plane instances. # When unspecified, the VPC's default tenancy will be used. class AwsControlPlane include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class TagsEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end end # Authentication configuration for the management of AWS resources. # @!attribute [rw] role_arn # @return [::String] # Required. The Amazon Resource Name (ARN) of the role that the Anthos # Multi-Cloud API will assume when managing AWS resources on your account. # @!attribute [rw] role_session_name # @return [::String] # Optional. An identifier for the assumed role session. # # When unspecified, it defaults to `multicloud-service-agent`. class AwsServicesAuthentication include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # Configuration related to the cluster RBAC settings. # @!attribute [rw] admin_users # @return [::Array<::Google::Cloud::GkeMultiCloud::V1::AwsClusterUser>] # Optional. 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 # @!attribute [rw] admin_groups # @return [::Array<::Google::Cloud::GkeMultiCloud::V1::AwsClusterGroup>] # Optional. Groups of users that can perform operations as a cluster admin. A # managed ClusterRoleBinding will be created to grant the `cluster-admin` # ClusterRole to the groups. Up to ten admin groups can be provided. # # For more info on RBAC, see # https://kubernetes.io/docs/reference/access-authn-authz/rbac/#user-facing-roles class AwsAuthorization include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # Identities of a user-type subject for AWS clusters. # @!attribute [rw] username # @return [::String] # Required. The name of the user, e.g. `my-gcp-id@gmail.com`. class AwsClusterUser include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # Identities of a group-type subject for AWS clusters. # @!attribute [rw] group # @return [::String] # Required. The name of the group, e.g. `my-group@domain.com`. class AwsClusterGroup include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # Configuration related to application-layer secrets encryption. # @!attribute [rw] kms_key_arn # @return [::String] # Required. The ARN of the AWS KMS key used to encrypt cluster secrets. class AwsDatabaseEncryption include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # Configuration template for AWS EBS volumes. # @!attribute [rw] size_gib # @return [::Integer] # Optional. The size of the volume, in GiBs. # # When unspecified, a default value is provided. See the specific reference # in the parent resource. # @!attribute [rw] volume_type # @return [::Google::Cloud::GkeMultiCloud::V1::AwsVolumeTemplate::VolumeType] # Optional. Type of the EBS volume. # # When unspecified, it defaults to GP2 volume. # @!attribute [rw] iops # @return [::Integer] # Optional. The number of I/O operations per second (IOPS) to provision for # GP3 volume. # @!attribute [rw] throughput # @return [::Integer] # Optional. The throughput that the volume supports, in MiB/s. Only valid if # volume_type is GP3. # # If the volume_type is GP3 and this is not speficied, it defaults to 125. # @!attribute [rw] kms_key_arn # @return [::String] # Optional. The Amazon Resource Name (ARN) of the Customer Managed Key (CMK) # used to encrypt AWS EBS volumes. # # If not specified, the default Amazon managed key associated to # the AWS region where this cluster runs will be used. class AwsVolumeTemplate include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # Types of supported EBS volumes. We currently only support GP2 or GP3 # volumes. # See https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html # for more information. module VolumeType # Not set. VOLUME_TYPE_UNSPECIFIED = 0 # GP2 (General Purpose SSD volume type). GP2 = 1 # GP3 (General Purpose SSD volume type). GP3 = 2 end end # ClusterNetworking defines cluster-wide networking configuration. # # Anthos clusters on AWS run on a single VPC. This includes control # plane replicas and node pool nodes. # @!attribute [rw] vpc_id # @return [::String] # Required. The VPC associated with the cluster. All component clusters # (i.e. control plane and node pools) run on a single VPC. # # This field cannot be changed after creation. # @!attribute [rw] pod_address_cidr_blocks # @return [::Array<::String>] # Required. All pods in the cluster are assigned an IPv4 address from these # ranges. Only a single range is supported. This field cannot be changed # after creation. # @!attribute [rw] service_address_cidr_blocks # @return [::Array<::String>] # Required. All services in the cluster are assigned an IPv4 address from # these ranges. Only a single range is supported. This field cannot be # changed after creation. # @!attribute [rw] per_node_pool_sg_rules_disabled # @return [::Boolean] # Optional. Disable the per node pool subnet security group rules on the # control plane security group. When set to true, you must also provide one # or more security groups that ensure node pools are able to send requests to # the control plane on TCP/443 and TCP/8132. Failure to do so may result in # unavailable node pools. class AwsClusterNetworking include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # An Anthos node pool running on AWS. # @!attribute [rw] name # @return [::String] # The name of this resource. # # Node pool names are formatted as # `projects//locations//awsClusters//awsNodePools/`. # # For more details on Google Cloud resource names, # see [Resource Names](https://cloud.google.com/apis/design/resource_names) # @!attribute [rw] version # @return [::String] # Required. The Kubernetes version to run on this node pool (e.g. # `1.19.10-gke.1000`). # # You can list all supported versions on a given Google Cloud region by # calling # {::Google::Cloud::GkeMultiCloud::V1::AwsClusters::Client#get_aws_server_config GetAwsServerConfig}. # @!attribute [rw] config # @return [::Google::Cloud::GkeMultiCloud::V1::AwsNodeConfig] # Required. The configuration of the node pool. # @!attribute [rw] autoscaling # @return [::Google::Cloud::GkeMultiCloud::V1::AwsNodePoolAutoscaling] # Required. Autoscaler configuration for this node pool. # @!attribute [rw] subnet_id # @return [::String] # Required. The subnet where the node pool node run. # @!attribute [r] state # @return [::Google::Cloud::GkeMultiCloud::V1::AwsNodePool::State] # Output only. The lifecycle state of the node pool. # @!attribute [r] uid # @return [::String] # Output only. A globally unique identifier for the node pool. # @!attribute [r] reconciling # @return [::Boolean] # Output only. If set, there are currently changes in flight to the node # pool. # @!attribute [r] create_time # @return [::Google::Protobuf::Timestamp] # Output only. The time at which this node pool was created. # @!attribute [r] update_time # @return [::Google::Protobuf::Timestamp] # Output only. The time at which this node pool was last updated. # @!attribute [rw] etag # @return [::String] # 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. # @!attribute [rw] annotations # @return [::Google::Protobuf::Map{::String => ::String}] # Optional. Annotations on the node pool. # # 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. # @!attribute [rw] max_pods_constraint # @return [::Google::Cloud::GkeMultiCloud::V1::MaxPodsConstraint] # Required. The constraint on the maximum number of pods that can be run # simultaneously on a node in the node pool. # @!attribute [r] errors # @return [::Array<::Google::Cloud::GkeMultiCloud::V1::AwsNodePoolError>] # Output only. A set of errors found in the node pool. # @!attribute [rw] management # @return [::Google::Cloud::GkeMultiCloud::V1::AwsNodeManagement] # Optional. The Management configuration for this node pool. # @!attribute [rw] kubelet_config # @return [::Google::Cloud::GkeMultiCloud::V1::NodeKubeletConfig] # Optional. Node kubelet configs. # @!attribute [rw] update_settings # @return [::Google::Cloud::GkeMultiCloud::V1::UpdateSettings] # Optional. Update settings control the speed and disruption of the update. class AwsNodePool include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class AnnotationsEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # The lifecycle state of the node pool. module State # Not set. STATE_UNSPECIFIED = 0 # The PROVISIONING state indicates the node pool is being created. PROVISIONING = 1 # The RUNNING state indicates the node pool has been created # and is fully usable. RUNNING = 2 # The RECONCILING state indicates that the node pool is being reconciled. RECONCILING = 3 # The STOPPING state indicates the node pool is being deleted. STOPPING = 4 # The ERROR state indicates the node pool is in a broken unrecoverable # state. ERROR = 5 # The DEGRADED state indicates the node pool requires user action to # restore full functionality. DEGRADED = 6 end end # UpdateSettings control the level of parallelism and the level of # disruption caused during the update of a node pool. # # These settings are applicable when the node pool update requires replacing # the existing node pool nodes with the updated ones. # # UpdateSettings are optional. When UpdateSettings are not specified during the # node pool creation, a default is chosen based on the parent cluster's # version. For clusters with minor version 1.27 and later, a default # surge_settings configuration with max_surge = 1 and max_unavailable = 0 is # used. For clusters with older versions, node pool updates use the traditional # rolling update mechanism of updating one node at a time in a # "terminate before create" fashion and update_settings is not applicable. # # Set the surge_settings parameter to use the Surge Update mechanism for # the rolling update of node pool nodes. # 1. max_surge controls the number of additional nodes that can be created # beyond the current size of the node pool temporarily for the time of the # update to increase the number of available nodes. # 2. max_unavailable controls the number of nodes that can be simultaneously # unavailable during the update. # 3. (max_surge + max_unavailable) determines the level of parallelism (i.e., # the number of nodes being updated at the same time). # @!attribute [rw] surge_settings # @return [::Google::Cloud::GkeMultiCloud::V1::SurgeSettings] # Optional. Settings for surge update. class UpdateSettings include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # SurgeSettings contains the parameters for Surge update. # @!attribute [rw] max_surge # @return [::Integer] # Optional. The maximum number of nodes that can be created beyond the # current size of the node pool during the update process. # @!attribute [rw] max_unavailable # @return [::Integer] # Optional. The maximum number of nodes that can be simultaneously # unavailable during the update process. A node is considered unavailable if # its status is not Ready. class SurgeSettings include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # AwsNodeManagement defines the set of node management features turned on for # an AWS node pool. # @!attribute [rw] auto_repair # @return [::Boolean] # Optional. Whether or not the nodes will be automatically repaired. When set # to true, the nodes in this node pool will be monitored and if they fail # health checks consistently over a period of time, an automatic repair # action will be triggered to replace them with new nodes. class AwsNodeManagement include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # Parameters that describe the nodes in a cluster. # @!attribute [rw] instance_type # @return [::String] # Optional. The EC2 instance type when creating on-Demand instances. # # If unspecified during node pool creation, a default will be chosen based on # the node pool version, and assigned to this field. # @!attribute [rw] root_volume # @return [::Google::Cloud::GkeMultiCloud::V1::AwsVolumeTemplate] # Optional. Template for the root volume provisioned for node pool nodes. # Volumes will be provisioned in the availability zone assigned # to the node pool subnet. # # When unspecified, it defaults to 32 GiB with the GP2 volume type. # @!attribute [rw] taints # @return [::Array<::Google::Cloud::GkeMultiCloud::V1::NodeTaint>] # Optional. The initial taints assigned to nodes of this node pool. # @!attribute [rw] labels # @return [::Google::Protobuf::Map{::String => ::String}] # Optional. The initial labels assigned to nodes of this node pool. An object # containing a list of "key": value pairs. Example: { "name": "wrench", # "mass": "1.3kg", "count": "3" }. # @!attribute [rw] tags # @return [::Google::Protobuf::Map{::String => ::String}] # Optional. Key/value metadata to assign to each underlying AWS resource. # Specify at most 50 pairs containing alphanumerics, spaces, and symbols # (.+-=_:@/). Keys can be up to 127 Unicode characters. Values can be up to # 255 Unicode characters. # @!attribute [rw] iam_instance_profile # @return [::String] # Required. The name or ARN of the AWS IAM instance profile to assign to # nodes in the pool. # @!attribute [rw] image_type # @return [::String] # Optional. The OS image type to use on node pool instances. # Can be unspecified, or have a value of `ubuntu`. # # When unspecified, it defaults to `ubuntu`. # @!attribute [rw] ssh_config # @return [::Google::Cloud::GkeMultiCloud::V1::AwsSshConfig] # Optional. The SSH configuration. # @!attribute [rw] security_group_ids # @return [::Array<::String>] # Optional. The IDs of additional security groups to add to nodes in this # pool. The manager will automatically create security groups with minimum # rules needed for a functioning cluster. # @!attribute [rw] proxy_config # @return [::Google::Cloud::GkeMultiCloud::V1::AwsProxyConfig] # Optional. Proxy configuration for outbound HTTP(S) traffic. # @!attribute [rw] config_encryption # @return [::Google::Cloud::GkeMultiCloud::V1::AwsConfigEncryption] # Required. Config encryption for user data. # @!attribute [rw] instance_placement # @return [::Google::Cloud::GkeMultiCloud::V1::AwsInstancePlacement] # Optional. Placement related info for this node. # When unspecified, the VPC's default tenancy will be used. # @!attribute [rw] autoscaling_metrics_collection # @return [::Google::Cloud::GkeMultiCloud::V1::AwsAutoscalingGroupMetricsCollection] # Optional. Configuration related to CloudWatch metrics collection on the # Auto Scaling group of the node pool. # # When unspecified, metrics collection is disabled. # @!attribute [rw] spot_config # @return [::Google::Cloud::GkeMultiCloud::V1::SpotConfig] # Optional. Configuration for provisioning EC2 Spot instances # # When specified, the node pool will provision Spot instances from the set # of spot_config.instance_types. # This field is mutually exclusive with `instance_type`. class AwsNodeConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class LabelsEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class TagsEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end end # AwsNodePoolAutoscaling contains information required by cluster autoscaler # to adjust the size of the node pool to the current cluster usage. # @!attribute [rw] min_node_count # @return [::Integer] # Required. Minimum number of nodes in the node pool. Must be greater than or # equal to 1 and less than or equal to max_node_count. # @!attribute [rw] max_node_count # @return [::Integer] # Required. Maximum number of nodes in the node pool. Must be greater than or # equal to min_node_count and less than or equal to 50. class AwsNodePoolAutoscaling include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # AwsOpenIdConfig is an OIDC discovery document for the cluster. # See the OpenID Connect Discovery 1.0 specification for details. # @!attribute [rw] issuer # @return [::String] # OIDC Issuer. # @!attribute [rw] jwks_uri # @return [::String] # JSON Web Key uri. # @!attribute [rw] response_types_supported # @return [::Array<::String>] # Supported response types. # @!attribute [rw] subject_types_supported # @return [::Array<::String>] # Supported subject types. # @!attribute [rw] id_token_signing_alg_values_supported # @return [::Array<::String>] # supported ID Token signing Algorithms. # @!attribute [rw] claims_supported # @return [::Array<::String>] # Supported claims. # @!attribute [rw] grant_types # @return [::Array<::String>] # Supported grant types. class AwsOpenIdConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # AwsJsonWebKeys is a valid JSON Web Key Set as specififed in RFC 7517. # @!attribute [rw] keys # @return [::Array<::Google::Cloud::GkeMultiCloud::V1::Jwk>] # The public component of the keys used by the cluster to sign token # requests. class AwsJsonWebKeys include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # AwsServerConfig is the configuration of GKE cluster on AWS. # @!attribute [rw] name # @return [::String] # The resource name of the config. # @!attribute [rw] valid_versions # @return [::Array<::Google::Cloud::GkeMultiCloud::V1::AwsK8sVersionInfo>] # List of all released Kubernetes versions, including ones which are end of # life and can no longer be used. Filter by the `enabled` # property to limit to currently available versions. # Valid versions supported for both create and update operations # @!attribute [rw] supported_aws_regions # @return [::Array<::String>] # The list of supported AWS regions. class AwsServerConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # Kubernetes version information of GKE cluster on AWS. # @!attribute [rw] version # @return [::String] # Kubernetes version name. # @!attribute [rw] enabled # @return [::Boolean] # Optional. True if the version is available for cluster creation. If a # version is enabled for creation, it can be used to create new clusters. # Otherwise, cluster creation will fail. However, cluster upgrade operations # may succeed, even if the version is not enabled. # @!attribute [rw] end_of_life # @return [::Boolean] # Optional. True if this cluster version belongs to a minor version that has # reached its end of life and is no longer in scope to receive security and # bug fixes. # @!attribute [rw] end_of_life_date # @return [::Google::Type::Date] # Optional. The estimated date (in Pacific Time) when this cluster version # will reach its end of life. Or if this version is no longer supported (the # `end_of_life` field is true), this is the actual date (in Pacific time) # when the version reached its end of life. # @!attribute [rw] release_date # @return [::Google::Type::Date] # Optional. The date (in Pacific Time) when the cluster version was released. class AwsK8sVersionInfo include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # SSH configuration for AWS resources. # @!attribute [rw] ec2_key_pair # @return [::String] # Required. The name of the EC2 key pair used to login into cluster machines. class AwsSshConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # Details of a proxy config stored in AWS Secret Manager. # @!attribute [rw] secret_arn # @return [::String] # The ARN of the AWS Secret Manager secret that contains the HTTP(S) proxy # configuration. # # The secret must be a JSON encoded proxy configuration # as described in # https://cloud.google.com/kubernetes-engine/multi-cloud/docs/aws/how-to/use-a-proxy#create_a_proxy_configuration_file # @!attribute [rw] secret_version # @return [::String] # The version string of the AWS Secret Manager secret that contains the # HTTP(S) proxy configuration. class AwsProxyConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # Config encryption for user data. # @!attribute [rw] kms_key_arn # @return [::String] # Required. The ARN of the AWS KMS key used to encrypt user data. class AwsConfigEncryption include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # Details of placement information for an instance. # Limitations for using the `host` tenancy: # # * T3 instances that use the unlimited CPU credit option don't support host # tenancy. # @!attribute [rw] tenancy # @return [::Google::Cloud::GkeMultiCloud::V1::AwsInstancePlacement::Tenancy] # Required. The tenancy for instance. class AwsInstancePlacement include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # Tenancy defines how EC2 instances are distributed across physical hardware. module Tenancy # Not set. TENANCY_UNSPECIFIED = 0 # Use default VPC tenancy. DEFAULT = 1 # Run a dedicated instance. DEDICATED = 2 # Launch this instance to a dedicated host. HOST = 3 end end # Configuration related to CloudWatch metrics collection in an AWS # Auto Scaling group. # @!attribute [rw] granularity # @return [::String] # Required. The frequency at which EC2 Auto Scaling sends aggregated data to # AWS CloudWatch. The only valid value is "1Minute". # @!attribute [rw] metrics # @return [::Array<::String>] # Optional. The metrics to enable. For a list of valid metrics, see # https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_EnableMetricsCollection.html. # If you specify Granularity and don't specify any metrics, all metrics are # enabled. class AwsAutoscalingGroupMetricsCollection include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # SpotConfig has configuration info for Spot node. # @!attribute [rw] instance_types # @return [::Array<::String>] # Required. A list of instance types for creating spot node pool. class SpotConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # AwsClusterError describes errors found on AWS clusters. # @!attribute [rw] message # @return [::String] # Human-friendly description of the error. class AwsClusterError include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # AwsNodePoolError describes errors found on AWS node pools. # @!attribute [rw] message # @return [::String] # Human-friendly description of the error. class AwsNodePoolError include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end end end end end