# frozen_string_literal: true # Copyright 2020 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 Container module V1beta1 # Parameters that can be configured on Linux nodes. # @!attribute [rw] sysctls # @return [::Google::Protobuf::Map{::String => ::String}] # The Linux kernel parameters to be applied to the nodes and all pods running # on the nodes. # # The following parameters are supported. # # net.core.netdev_max_backlog # net.core.rmem_max # net.core.wmem_default # net.core.wmem_max # net.core.optmem_max # net.core.somaxconn # net.ipv4.tcp_rmem # net.ipv4.tcp_wmem # net.ipv4.tcp_tw_reuse class LinuxNodeConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class SysctlsEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end end # Node kubelet configs. # @!attribute [rw] cpu_manager_policy # @return [::String] # Control the CPU management policy on the node. # See # https://kubernetes.io/docs/tasks/administer-cluster/cpu-management-policies/ # # The following values are allowed. # - "none": the default, which represents the existing scheduling behavior. # - "static": allows pods with certain resource characteristics to be # granted increased CPU affinity and exclusivity on the node. # The default value is 'none' if unspecified. # @!attribute [rw] cpu_cfs_quota # @return [::Google::Protobuf::BoolValue] # Enable CPU CFS quota enforcement for containers that specify CPU limits. # # This option is enabled by default which makes kubelet use CFS quota # (https://www.kernel.org/doc/Documentation/scheduler/sched-bwc.txt) to # enforce container CPU limits. Otherwise, CPU limits will not be enforced at # all. # # Disable this option to mitigate CPU throttling problems while still having # your pods to be in Guaranteed QoS class by specifying the CPU limits. # # The default value is 'true' if unspecified. # @!attribute [rw] cpu_cfs_quota_period # @return [::String] # Set the CPU CFS quota period value 'cpu.cfs_period_us'. # # The string must be a sequence of decimal numbers, each with optional # fraction and a unit suffix, such as "300ms". # Valid time units are "ns", "us" (or "µs"), "ms", "s", "m", "h". # The value must be a positive duration. class NodeKubeletConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # Parameters that describe the nodes in a cluster. # @!attribute [rw] machine_type # @return [::String] # The name of a Google Compute Engine [machine # type](https://cloud.google.com/compute/docs/machine-types). # # If unspecified, the default machine type is # `e2-medium`. # @!attribute [rw] disk_size_gb # @return [::Integer] # Size of the disk attached to each node, specified in GB. # The smallest allowed disk size is 10GB. # # If unspecified, the default disk size is 100GB. # @!attribute [rw] oauth_scopes # @return [::Array<::String>] # The set of Google API scopes to be made available on all of the # node VMs under the "default" service account. # # The following scopes are recommended, but not required, and by default are # not included: # # * `https://www.googleapis.com/auth/compute` is required for mounting # persistent storage on your nodes. # * `https://www.googleapis.com/auth/devstorage.read_only` is required for # communicating with **gcr.io** # (the [Google Container # Registry](https://cloud.google.com/container-registry/)). # # If unspecified, no scopes are added, unless Cloud Logging or Cloud # Monitoring are enabled, in which case their required scopes will be added. # @!attribute [rw] service_account # @return [::String] # The Google Cloud Platform Service Account to be used by the node VMs. # Specify the email address of the Service Account; otherwise, if no Service # Account is specified, the "default" service account is used. # @!attribute [rw] metadata # @return [::Google::Protobuf::Map{::String => ::String}] # The metadata key/value pairs assigned to instances in the cluster. # # Keys must conform to the regexp `[a-zA-Z0-9-_]+` and be less than 128 bytes # in length. These are reflected as part of a URL in the metadata server. # Additionally, to avoid ambiguity, keys must not conflict with any other # metadata keys for the project or be one of the reserved keys: # - "cluster-location" # - "cluster-name" # - "cluster-uid" # - "configure-sh" # - "containerd-configure-sh" # - "enable-oslogin" # - "gci-ensure-gke-docker" # - "gci-metrics-enabled" # - "gci-update-strategy" # - "instance-template" # - "kube-env" # - "startup-script" # - "user-data" # - "disable-address-manager" # - "windows-startup-script-ps1" # - "common-psm1" # - "k8s-node-setup-psm1" # - "install-ssh-psm1" # - "user-profile-psm1" # # The following keys are reserved for Windows nodes: # - "serial-port-logging-enable" # # Values are free-form strings, and only have meaning as interpreted by # the image running in the instance. The only restriction placed on them is # that each value's size must be less than or equal to 32 KB. # # The total size of all keys and values must be less than 512 KB. # @!attribute [rw] image_type # @return [::String] # The image type to use for this node. Note that for a given image type, # the latest version of it will be used. # @!attribute [rw] labels # @return [::Google::Protobuf::Map{::String => ::String}] # The map of Kubernetes labels (key/value pairs) to be applied to each node. # These will added in addition to any default label(s) that # Kubernetes may apply to the node. # In case of conflict in label keys, the applied set may differ depending on # the Kubernetes version -- it's best to assume the behavior is undefined # and conflicts should be avoided. # For more information, including usage and the valid values, see: # https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ # @!attribute [rw] local_ssd_count # @return [::Integer] # The number of local SSD disks to be attached to the node. # # The limit for this value is dependent upon the maximum number of # disks available on a machine per zone. See: # https://cloud.google.com/compute/docs/disks/local-ssd # for more information. # @!attribute [rw] tags # @return [::Array<::String>] # The list of instance tags applied to all nodes. Tags are used to identify # valid sources or targets for network firewalls and are specified by # the client during cluster or node pool creation. Each tag within the list # must comply with RFC1035. # @!attribute [rw] preemptible # @return [::Boolean] # Whether the nodes are created as preemptible VM instances. See: # https://cloud.google.com/compute/docs/instances/preemptible for more # inforamtion about preemptible VM instances. # @!attribute [rw] accelerators # @return [::Array<::Google::Cloud::Container::V1beta1::AcceleratorConfig>] # A list of hardware accelerators to be attached to each node. # See https://cloud.google.com/compute/docs/gpus for more information about # support for GPUs. # @!attribute [rw] sandbox_config # @return [::Google::Cloud::Container::V1beta1::SandboxConfig] # Sandbox configuration for this node. # @!attribute [rw] node_group # @return [::String] # Setting this field will assign instances of this # pool to run on the specified node group. This is useful for running # workloads on [sole tenant # nodes](https://cloud.google.com/compute/docs/nodes/sole-tenant-nodes). # @!attribute [rw] reservation_affinity # @return [::Google::Cloud::Container::V1beta1::ReservationAffinity] # The optional reservation affinity. Setting this field will apply # the specified [Zonal Compute # Reservation](https://cloud.google.com/compute/docs/instances/reserving-zonal-resources) # to this node pool. # @!attribute [rw] disk_type # @return [::String] # Type of the disk attached to each node (e.g. 'pd-standard', 'pd-ssd' or # 'pd-balanced') # # If unspecified, the default disk type is 'pd-standard' # @!attribute [rw] min_cpu_platform # @return [::String] # Minimum CPU platform to be used by this instance. The instance may be # scheduled on the specified or newer CPU platform. Applicable values are the # friendly names of CPU platforms, such as # `minCpuPlatform: "Intel Haswell"` or # `minCpuPlatform: "Intel Sandy Bridge"`. For more # information, read [how to specify min CPU # platform](https://cloud.google.com/compute/docs/instances/specify-min-cpu-platform) # @!attribute [rw] workload_metadata_config # @return [::Google::Cloud::Container::V1beta1::WorkloadMetadataConfig] # The workload metadata configuration for this node. # @!attribute [rw] taints # @return [::Array<::Google::Cloud::Container::V1beta1::NodeTaint>] # List of kubernetes taints to be applied to each node. # # For more information, including usage and the valid values, see: # https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/ # @!attribute [rw] boot_disk_kms_key # @return [::String] # The Customer Managed Encryption Key used to encrypt the boot disk attached # to each node in the node pool. This should be of the form # projects/[KEY_PROJECT_ID]/locations/[LOCATION]/keyRings/[RING_NAME]/cryptoKeys/[KEY_NAME]. # For more information about protecting resources with Cloud KMS Keys please # see: # https://cloud.google.com/compute/docs/disks/customer-managed-encryption # @!attribute [rw] shielded_instance_config # @return [::Google::Cloud::Container::V1beta1::ShieldedInstanceConfig] # Shielded Instance options. # @!attribute [rw] linux_node_config # @return [::Google::Cloud::Container::V1beta1::LinuxNodeConfig] # Parameters that can be configured on Linux nodes. # @!attribute [rw] kubelet_config # @return [::Google::Cloud::Container::V1beta1::NodeKubeletConfig] # Node kubelet configs. # @!attribute [rw] ephemeral_storage_config # @return [::Google::Cloud::Container::V1beta1::EphemeralStorageConfig] # Parameters for the ephemeral storage filesystem. # If unspecified, ephemeral storage is backed by the boot disk. class NodeConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class MetadataEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class LabelsEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end end # A set of Shielded Instance options. # @!attribute [rw] enable_secure_boot # @return [::Boolean] # Defines whether the instance has Secure Boot enabled. # # Secure Boot helps ensure that the system only runs authentic software by # verifying the digital signature of all boot components, and halting the # boot process if signature verification fails. # @!attribute [rw] enable_integrity_monitoring # @return [::Boolean] # Defines whether the instance has integrity monitoring enabled. # # Enables monitoring and attestation of the boot integrity of the instance. # The attestation is performed against the integrity policy baseline. This # baseline is initially derived from the implicitly trusted boot image when # the instance is created. class ShieldedInstanceConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # SandboxConfig contains configurations of the sandbox to use for the node. # @!attribute [rw] sandbox_type # @return [::String] # Type of the sandbox to use for the node (e.g. 'gvisor') # @!attribute [rw] type # @return [::Google::Cloud::Container::V1beta1::SandboxConfig::Type] # Type of the sandbox to use for the node. class SandboxConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # Possible types of sandboxes. module Type # Default value. This should not be used. UNSPECIFIED = 0 # Run sandbox using gvisor. GVISOR = 1 end end # EphemeralStorageConfig contains configuration for the ephemeral storage # filesystem. # @!attribute [rw] local_ssd_count # @return [::Integer] # Number of local SSDs to use to back ephemeral storage. Uses NVMe # interfaces. Each local SSD is 375 GB in size. # If zero, it means to disable using local SSDs as ephemeral storage. class EphemeralStorageConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # [ReservationAffinity](https://cloud.google.com/compute/docs/instances/reserving-zonal-resources) # is the configuration of desired reservation which instances could take # capacity from. # @!attribute [rw] consume_reservation_type # @return [::Google::Cloud::Container::V1beta1::ReservationAffinity::Type] # Corresponds to the type of reservation consumption. # @!attribute [rw] key # @return [::String] # Corresponds to the label key of a reservation resource. To target a # SPECIFIC_RESERVATION by name, specify "googleapis.com/reservation-name" as # the key and specify the name of your reservation as its value. # @!attribute [rw] values # @return [::Array<::String>] # Corresponds to the label value(s) of reservation resource(s). class ReservationAffinity include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # Indicates whether to consume capacity from a reservation or not. module Type # Default value. This should not be used. UNSPECIFIED = 0 # Do not consume from any reserved capacity. NO_RESERVATION = 1 # Consume any reservation available. ANY_RESERVATION = 2 # Must consume from a specific reservation. Must specify key value fields # for specifying the reservations. SPECIFIC_RESERVATION = 3 end end # Kubernetes taint is comprised of three fields: key, value, and effect. Effect # can only be one of three types: NoSchedule, PreferNoSchedule or NoExecute. # # See # [here](https://kubernetes.io/docs/concepts/configuration/taint-and-toleration) # for more information, including usage and the valid values. # @!attribute [rw] key # @return [::String] # Key for taint. # @!attribute [rw] value # @return [::String] # Value for taint. # @!attribute [rw] effect # @return [::Google::Cloud::Container::V1beta1::NodeTaint::Effect] # Effect for taint. class NodeTaint include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # Possible values for Effect in taint. module Effect # Not set EFFECT_UNSPECIFIED = 0 # NoSchedule NO_SCHEDULE = 1 # PreferNoSchedule PREFER_NO_SCHEDULE = 2 # NoExecute NO_EXECUTE = 3 end end # The authentication information for accessing the master endpoint. # Authentication can be done using HTTP basic auth or using client # certificates. # @!attribute [rw] username # @return [::String] # The username to use for HTTP basic authentication to the master endpoint. # For clusters v1.6.0 and later, basic authentication can be disabled by # leaving username unspecified (or setting it to the empty string). # # Warning: basic authentication is deprecated, and will be removed in GKE # control plane versions 1.19 and newer. For a list of recommended # authentication methods, see: # https://cloud.google.com/kubernetes-engine/docs/how-to/api-server-authentication # @!attribute [rw] password # @return [::String] # The password to use for HTTP basic authentication to the master endpoint. # Because the master endpoint is open to the Internet, you should create a # strong password. If a password is provided for cluster creation, username # must be non-empty. # # Warning: basic authentication is deprecated, and will be removed in GKE # control plane versions 1.19 and newer. For a list of recommended # authentication methods, see: # https://cloud.google.com/kubernetes-engine/docs/how-to/api-server-authentication # @!attribute [rw] client_certificate_config # @return [::Google::Cloud::Container::V1beta1::ClientCertificateConfig] # Configuration for client certificate authentication on the cluster. For # clusters before v1.12, if no configuration is specified, a client # certificate is issued. # @!attribute [rw] cluster_ca_certificate # @return [::String] # @!attribute [rw] client_certificate # @return [::String] # [Output only] Base64-encoded public certificate used by clients to # authenticate to the cluster endpoint. # @!attribute [rw] client_key # @return [::String] # [Output only] Base64-encoded private key used by clients to authenticate # to the cluster endpoint. class MasterAuth include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # Configuration for client certificates on the cluster. # @!attribute [rw] issue_client_certificate # @return [::Boolean] # Issue a client certificate. class ClientCertificateConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # Configuration for the addons that can be automatically spun up in the # cluster, enabling additional functionality. # @!attribute [rw] http_load_balancing # @return [::Google::Cloud::Container::V1beta1::HttpLoadBalancing] # Configuration for the HTTP (L7) load balancing controller addon, which # makes it easy to set up HTTP load balancers for services in a cluster. # @!attribute [rw] horizontal_pod_autoscaling # @return [::Google::Cloud::Container::V1beta1::HorizontalPodAutoscaling] # Configuration for the horizontal pod autoscaling feature, which # increases or decreases the number of replica pods a replication controller # has based on the resource usage of the existing pods. # @!attribute [rw] kubernetes_dashboard # @return [::Google::Cloud::Container::V1beta1::KubernetesDashboard] # Configuration for the Kubernetes Dashboard. # This addon is deprecated, and will be disabled in 1.15. It is recommended # to use the Cloud Console to manage and monitor your Kubernetes clusters, # workloads and applications. For more information, see: # https://cloud.google.com/kubernetes-engine/docs/concepts/dashboards # @!attribute [rw] network_policy_config # @return [::Google::Cloud::Container::V1beta1::NetworkPolicyConfig] # Configuration for NetworkPolicy. This only tracks whether the addon # is enabled or not on the Master, it does not track whether network policy # is enabled for the nodes. # @!attribute [rw] istio_config # @return [::Google::Cloud::Container::V1beta1::IstioConfig] # Configuration for Istio, an open platform to connect, manage, and secure # microservices. # @!attribute [rw] cloud_run_config # @return [::Google::Cloud::Container::V1beta1::CloudRunConfig] # Configuration for the Cloud Run addon. The `IstioConfig` addon must be # enabled in order to enable Cloud Run addon. This option can only be enabled # at cluster creation time. # @!attribute [rw] dns_cache_config # @return [::Google::Cloud::Container::V1beta1::DnsCacheConfig] # Configuration for NodeLocalDNS, a dns cache running on cluster nodes # @!attribute [rw] config_connector_config # @return [::Google::Cloud::Container::V1beta1::ConfigConnectorConfig] # Configuration for the ConfigConnector add-on, a Kubernetes # extension to manage hosted GCP services through the Kubernetes API # @!attribute [rw] gce_persistent_disk_csi_driver_config # @return [::Google::Cloud::Container::V1beta1::GcePersistentDiskCsiDriverConfig] # Configuration for the Compute Engine Persistent Disk CSI driver. # @!attribute [rw] kalm_config # @return [::Google::Cloud::Container::V1beta1::KalmConfig] # Configuration for the KALM addon, which manages the lifecycle of k8s # applications. class AddonsConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # Configuration options for the HTTP (L7) load balancing controller addon, # which makes it easy to set up HTTP load balancers for services in a cluster. # @!attribute [rw] disabled # @return [::Boolean] # Whether the HTTP Load Balancing controller is enabled in the cluster. # When enabled, it runs a small pod in the cluster that manages the load # balancers. class HttpLoadBalancing include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # Configuration options for the horizontal pod autoscaling feature, which # increases or decreases the number of replica pods a replication controller # has based on the resource usage of the existing pods. # @!attribute [rw] disabled # @return [::Boolean] # Whether the Horizontal Pod Autoscaling feature is enabled in the cluster. # When enabled, it ensures that metrics are collected into Stackdriver # Monitoring. class HorizontalPodAutoscaling include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # Configuration for the Kubernetes Dashboard. # @!attribute [rw] disabled # @return [::Boolean] # Whether the Kubernetes Dashboard is enabled for this cluster. class KubernetesDashboard include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # Configuration for NetworkPolicy. This only tracks whether the addon # is enabled or not on the Master, it does not track whether network policy # is enabled for the nodes. # @!attribute [rw] disabled # @return [::Boolean] # Whether NetworkPolicy is enabled for this cluster. class NetworkPolicyConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # Configuration for NodeLocal DNSCache # @!attribute [rw] enabled # @return [::Boolean] # Whether NodeLocal DNSCache is enabled for this cluster. class DnsCacheConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # Configuration options for the KALM addon. # @!attribute [rw] enabled # @return [::Boolean] # Whether KALM is enabled for this cluster. class KalmConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # Configuration options for the Config Connector add-on. # @!attribute [rw] enabled # @return [::Boolean] # Whether Cloud Connector is enabled for this cluster. class ConfigConnectorConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # Configuration for the Compute Engine PD CSI driver. This option can only be # enabled at cluster creation time. # @!attribute [rw] enabled # @return [::Boolean] # Whether the Compute Engine PD CSI driver is enabled for this cluster. class GcePersistentDiskCsiDriverConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # Configuration for controlling master global access settings. # @!attribute [rw] enabled # @return [::Boolean] # Whenever master is accessible globally or not. class PrivateClusterMasterGlobalAccessConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # Configuration options for private clusters. # @!attribute [rw] enable_private_nodes # @return [::Boolean] # Whether nodes have internal IP addresses only. If enabled, all nodes are # given only RFC 1918 private addresses and communicate with the master via # private networking. # @!attribute [rw] enable_private_endpoint # @return [::Boolean] # Whether the master's internal IP address is used as the cluster endpoint. # @!attribute [rw] master_ipv4_cidr_block # @return [::String] # The IP range in CIDR notation to use for the hosted master network. This # range will be used for assigning internal IP addresses to the master or # set of masters, as well as the ILB VIP. This range must not overlap with # any other ranges in use within the cluster's network. # @!attribute [rw] private_endpoint # @return [::String] # Output only. The internal IP address of this cluster's master endpoint. # @!attribute [rw] public_endpoint # @return [::String] # Output only. The external IP address of this cluster's master endpoint. # @!attribute [rw] peering_name # @return [::String] # Output only. The peering name in the customer VPC used by this cluster. # @!attribute [rw] master_global_access_config # @return [::Google::Cloud::Container::V1beta1::PrivateClusterMasterGlobalAccessConfig] # Controls master global access settings. class PrivateClusterConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # Configuration options for Istio addon. # @!attribute [rw] disabled # @return [::Boolean] # Whether Istio is enabled for this cluster. # @!attribute [rw] auth # @return [::Google::Cloud::Container::V1beta1::IstioConfig::IstioAuthMode] # The specified Istio auth mode, either none, or mutual TLS. class IstioConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # Istio auth mode, https://istio.io/docs/concepts/security/mutual-tls.html module IstioAuthMode # auth not enabled AUTH_NONE = 0 # auth mutual TLS enabled AUTH_MUTUAL_TLS = 1 end end # Configuration options for the Cloud Run feature. # @!attribute [rw] disabled # @return [::Boolean] # Whether Cloud Run addon is enabled for this cluster. # @!attribute [rw] load_balancer_type # @return [::Google::Cloud::Container::V1beta1::CloudRunConfig::LoadBalancerType] # Which load balancer type is installed for Cloud Run. class CloudRunConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # Load balancer type of ingress service of Cloud Run. module LoadBalancerType # Load balancer type for Cloud Run is unspecified. LOAD_BALANCER_TYPE_UNSPECIFIED = 0 # Install external load balancer for Cloud Run. LOAD_BALANCER_TYPE_EXTERNAL = 1 # Install internal load balancer for Cloud Run. LOAD_BALANCER_TYPE_INTERNAL = 2 end end # Configuration options for the master authorized networks feature. Enabled # master authorized networks will disallow all external traffic to access # Kubernetes master through HTTPS except traffic from the given CIDR blocks, # Google Compute Engine Public IPs and Google Prod IPs. # @!attribute [rw] enabled # @return [::Boolean] # Whether or not master authorized networks is enabled. # @!attribute [rw] cidr_blocks # @return [::Array<::Google::Cloud::Container::V1beta1::MasterAuthorizedNetworksConfig::CidrBlock>] # cidr_blocks define up to 10 external networks that could access # Kubernetes master through HTTPS. class MasterAuthorizedNetworksConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # CidrBlock contains an optional name and one CIDR block. # @!attribute [rw] display_name # @return [::String] # display_name is an optional field for users to identify CIDR blocks. # @!attribute [rw] cidr_block # @return [::String] # cidr_block must be specified in CIDR notation. class CidrBlock include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end end # Configuration for the legacy Attribute Based Access Control authorization # mode. # @!attribute [rw] enabled # @return [::Boolean] # Whether the ABAC authorizer is enabled for this cluster. When enabled, # identities in the system, including service accounts, nodes, and # controllers, will have statically granted permissions beyond those # provided by the RBAC configuration or IAM. class LegacyAbac include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # Configuration options for the NetworkPolicy feature. # https://kubernetes.io/docs/concepts/services-networking/networkpolicies/ # @!attribute [rw] provider # @return [::Google::Cloud::Container::V1beta1::NetworkPolicy::Provider] # The selected network policy provider. # @!attribute [rw] enabled # @return [::Boolean] # Whether network policy is enabled on the cluster. class NetworkPolicy include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # Allowed Network Policy providers. module Provider # Not set PROVIDER_UNSPECIFIED = 0 # Tigera (Calico Felix). CALICO = 1 end end # Configuration for controlling how IPs are allocated in the cluster. # @!attribute [rw] use_ip_aliases # @return [::Boolean] # Whether alias IPs will be used for pod IPs in the cluster. # This is used in conjunction with use_routes. It cannot # be true if use_routes is true. If both use_ip_aliases and use_routes are # false, then the server picks the default IP allocation mode # @!attribute [rw] create_subnetwork # @return [::Boolean] # Whether a new subnetwork will be created automatically for the cluster. # # This field is only applicable when `use_ip_aliases` is true. # @!attribute [rw] subnetwork_name # @return [::String] # A custom subnetwork name to be used if `create_subnetwork` is true. If # this field is empty, then an automatic name will be chosen for the new # subnetwork. # @!attribute [rw] cluster_ipv4_cidr # @return [::String] # This field is deprecated, use cluster_ipv4_cidr_block. # @!attribute [rw] node_ipv4_cidr # @return [::String] # This field is deprecated, use node_ipv4_cidr_block. # @!attribute [rw] services_ipv4_cidr # @return [::String] # This field is deprecated, use services_ipv4_cidr_block. # @!attribute [rw] cluster_secondary_range_name # @return [::String] # The name of the secondary range to be used for the cluster CIDR # block. The secondary range will be used for pod IP # addresses. This must be an existing secondary range associated # with the cluster subnetwork. # # This field is only applicable with use_ip_aliases and # create_subnetwork is false. # @!attribute [rw] services_secondary_range_name # @return [::String] # The name of the secondary range to be used as for the services # CIDR block. The secondary range will be used for service # ClusterIPs. This must be an existing secondary range associated # with the cluster subnetwork. # # This field is only applicable with use_ip_aliases and # create_subnetwork is false. # @!attribute [rw] cluster_ipv4_cidr_block # @return [::String] # The IP address range for the cluster pod IPs. If this field is set, then # `cluster.cluster_ipv4_cidr` must be left blank. # # This field is only applicable when `use_ip_aliases` is true. # # Set to blank to have a range chosen with the default size. # # Set to /netmask (e.g. `/14`) to have a range chosen with a specific # netmask. # # Set to a # [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing) # notation (e.g. `10.96.0.0/14`) from the RFC-1918 private networks (e.g. # `10.0.0.0/8`, `172.16.0.0/12`, `192.168.0.0/16`) to pick a specific range # to use. # @!attribute [rw] node_ipv4_cidr_block # @return [::String] # The IP address range of the instance IPs in this cluster. # # This is applicable only if `create_subnetwork` is true. # # Set to blank to have a range chosen with the default size. # # Set to /netmask (e.g. `/14`) to have a range chosen with a specific # netmask. # # Set to a # [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing) # notation (e.g. `10.96.0.0/14`) from the RFC-1918 private networks (e.g. # `10.0.0.0/8`, `172.16.0.0/12`, `192.168.0.0/16`) to pick a specific range # to use. # @!attribute [rw] services_ipv4_cidr_block # @return [::String] # The IP address range of the services IPs in this cluster. If blank, a range # will be automatically chosen with the default size. # # This field is only applicable when `use_ip_aliases` is true. # # Set to blank to have a range chosen with the default size. # # Set to /netmask (e.g. `/14`) to have a range chosen with a specific # netmask. # # Set to a # [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing) # notation (e.g. `10.96.0.0/14`) from the RFC-1918 private networks (e.g. # `10.0.0.0/8`, `172.16.0.0/12`, `192.168.0.0/16`) to pick a specific range # to use. # @!attribute [rw] allow_route_overlap # @return [::Boolean] # If true, allow allocation of cluster CIDR ranges that overlap with certain # kinds of network routes. By default we do not allow cluster CIDR ranges to # intersect with any user declared routes. With allow_route_overlap == true, # we allow overlapping with CIDR ranges that are larger than the cluster CIDR # range. # # If this field is set to true, then cluster and services CIDRs must be # fully-specified (e.g. `10.96.0.0/14`, but not `/14`), which means: # 1) When `use_ip_aliases` is true, `cluster_ipv4_cidr_block` and # `services_ipv4_cidr_block` must be fully-specified. # 2) When `use_ip_aliases` is false, `cluster.cluster_ipv4_cidr` muse be # fully-specified. # @!attribute [rw] tpu_ipv4_cidr_block # @return [::String] # The IP address range of the Cloud TPUs in this cluster. If unspecified, a # range will be automatically chosen with the default size. # # This field is only applicable when `use_ip_aliases` is true. # # If unspecified, the range will use the default size. # # Set to /netmask (e.g. `/14`) to have a range chosen with a specific # netmask. # # Set to a # [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing) # notation (e.g. `10.96.0.0/14`) from the RFC-1918 private networks (e.g. # `10.0.0.0/8`, `172.16.0.0/12`, `192.168.0.0/16`) to pick a specific range # to use. # This field is deprecated, use cluster.tpu_config.ipv4_cidr_block instead. # @!attribute [rw] use_routes # @return [::Boolean] # Whether routes will be used for pod IPs in the cluster. # This is used in conjunction with use_ip_aliases. It cannot be true if # use_ip_aliases is true. If both use_ip_aliases and use_routes are false, # then the server picks the default IP allocation mode class IPAllocationPolicy include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # Configuration for Binary Authorization. # @!attribute [rw] enabled # @return [::Boolean] # Enable Binary Authorization for this cluster. If enabled, all container # images will be validated by Google Binauthz. class BinaryAuthorization include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # Configuration for the PodSecurityPolicy feature. # @!attribute [rw] enabled # @return [::Boolean] # Enable the PodSecurityPolicy controller for this cluster. If enabled, pods # must be valid under a PodSecurityPolicy to be created. class PodSecurityPolicyConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # Configuration for returning group information from authenticators. # @!attribute [rw] enabled # @return [::Boolean] # Whether this cluster should return group membership lookups # during authentication using a group of security groups. # @!attribute [rw] security_group # @return [::String] # The name of the security group-of-groups to be used. Only relevant # if enabled = true. class AuthenticatorGroupsConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # Telemetry integration for the cluster. # @!attribute [rw] type # @return [::Google::Cloud::Container::V1beta1::ClusterTelemetry::Type] # Type of the integration. class ClusterTelemetry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # Type of the integration. module Type # Not set. UNSPECIFIED = 0 # Monitoring integration is disabled. DISABLED = 1 # Monitoring integration is enabled. ENABLED = 2 # Only system components are monitored and logged. SYSTEM_ONLY = 3 end end # A Google Kubernetes Engine cluster. # @!attribute [rw] name # @return [::String] # The name of this cluster. The name must be unique within this project # and location (e.g. zone or region), and can be up to 40 characters with # the following restrictions: # # * Lowercase letters, numbers, and hyphens only. # * Must start with a letter. # * Must end with a number or a letter. # @!attribute [rw] description # @return [::String] # An optional description of this cluster. # @!attribute [rw] initial_node_count # @return [::Integer] # The number of nodes to create in this cluster. You must ensure that your # Compute Engine [resource quota](https://cloud.google.com/compute/quotas) # is sufficient for this number of instances. You must also have available # firewall and routes quota. # For requests, this field should only be used in lieu of a # "node_pool" object, since this configuration (along with the # "node_config") will be used to create a "NodePool" object with an # auto-generated name. Do not use this and a node_pool at the same time. # # This field is deprecated, use node_pool.initial_node_count instead. # @!attribute [rw] node_config # @return [::Google::Cloud::Container::V1beta1::NodeConfig] # Parameters used in creating the cluster's nodes. # For requests, this field should only be used in lieu of a # "node_pool" object, since this configuration (along with the # "initial_node_count") will be used to create a "NodePool" object with an # auto-generated name. Do not use this and a node_pool at the same time. # For responses, this field will be populated with the node configuration of # the first node pool. (For configuration of each node pool, see # `node_pool.config`) # # If unspecified, the defaults are used. # This field is deprecated, use node_pool.config instead. # @!attribute [rw] master_auth # @return [::Google::Cloud::Container::V1beta1::MasterAuth] # The authentication information for accessing the master endpoint. # If unspecified, the defaults are used: # For clusters before v1.12, if master_auth is unspecified, `username` will # be set to "admin", a random password will be generated, and a client # certificate will be issued. # @!attribute [rw] logging_service # @return [::String] # The logging service the cluster should use to write logs. # Currently available options: # # * `logging.googleapis.com/kubernetes` - The Cloud Logging # service with a Kubernetes-native resource model # * `logging.googleapis.com` - The legacy Cloud Logging service (no longer # available as of GKE 1.15). # * `none` - no logs will be exported from the cluster. # # If left as an empty string,`logging.googleapis.com/kubernetes` will be # used for GKE 1.14+ or `logging.googleapis.com` for earlier versions. # @!attribute [rw] monitoring_service # @return [::String] # The monitoring service the cluster should use to write metrics. # Currently available options: # # * "monitoring.googleapis.com/kubernetes" - The Cloud Monitoring # service with a Kubernetes-native resource model # * `monitoring.googleapis.com` - The legacy Cloud Monitoring service (no # longer available as of GKE 1.15). # * `none` - No metrics will be exported from the cluster. # # If left as an empty string,`monitoring.googleapis.com/kubernetes` will be # used for GKE 1.14+ or `monitoring.googleapis.com` for earlier versions. # @!attribute [rw] network # @return [::String] # The name of the Google Compute Engine # [network](https://cloud.google.com/compute/docs/networks-and-firewalls#networks) # to which the cluster is connected. If left unspecified, the `default` # network will be used. On output this shows the network ID instead of the # name. # @!attribute [rw] cluster_ipv4_cidr # @return [::String] # The IP address range of the container pods in this cluster, in # [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing) # notation (e.g. `10.96.0.0/14`). Leave blank to have # one automatically chosen or specify a `/14` block in `10.0.0.0/8`. # @!attribute [rw] addons_config # @return [::Google::Cloud::Container::V1beta1::AddonsConfig] # Configurations for the various addons available to run in the cluster. # @!attribute [rw] subnetwork # @return [::String] # The name of the Google Compute Engine # [subnetwork](https://cloud.google.com/compute/docs/subnetworks) to which # the cluster is connected. On output this shows the subnetwork ID instead of # the name. # @!attribute [rw] node_pools # @return [::Array<::Google::Cloud::Container::V1beta1::NodePool>] # The node pools associated with this cluster. # This field should not be set if "node_config" or "initial_node_count" are # specified. # @!attribute [rw] locations # @return [::Array<::String>] # The list of Google Compute Engine # [zones](https://cloud.google.com/compute/docs/zones#available) in which the # cluster's nodes should be located. # # This field provides a default value if # [NodePool.Locations](https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1/projects.locations.clusters.nodePools#NodePool.FIELDS.locations) # are not specified during node pool creation. # # Warning: changing cluster locations will update the # [NodePool.Locations](https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1/projects.locations.clusters.nodePools#NodePool.FIELDS.locations) # of all node pools and will result in nodes being added and/or removed. # @!attribute [rw] enable_kubernetes_alpha # @return [::Boolean] # Kubernetes alpha features are enabled on this cluster. This includes alpha # API groups (e.g. v1beta1) and features that may not be production ready in # the kubernetes version of the master and nodes. # The cluster has no SLA for uptime and master/node upgrades are disabled. # Alpha enabled clusters are automatically deleted thirty days after # creation. # @!attribute [rw] resource_labels # @return [::Google::Protobuf::Map{::String => ::String}] # The resource labels for the cluster to use to annotate any related # Google Compute Engine resources. # @!attribute [rw] label_fingerprint # @return [::String] # The fingerprint of the set of labels for this cluster. # @!attribute [rw] legacy_abac # @return [::Google::Cloud::Container::V1beta1::LegacyAbac] # Configuration for the legacy ABAC authorization mode. # @!attribute [rw] network_policy # @return [::Google::Cloud::Container::V1beta1::NetworkPolicy] # Configuration options for the NetworkPolicy feature. # @!attribute [rw] ip_allocation_policy # @return [::Google::Cloud::Container::V1beta1::IPAllocationPolicy] # Configuration for cluster IP allocation. # @!attribute [rw] master_authorized_networks_config # @return [::Google::Cloud::Container::V1beta1::MasterAuthorizedNetworksConfig] # The configuration options for master authorized networks feature. # @!attribute [rw] maintenance_policy # @return [::Google::Cloud::Container::V1beta1::MaintenancePolicy] # Configure the maintenance policy for this cluster. # @!attribute [rw] binary_authorization # @return [::Google::Cloud::Container::V1beta1::BinaryAuthorization] # Configuration for Binary Authorization. # @!attribute [rw] pod_security_policy_config # @return [::Google::Cloud::Container::V1beta1::PodSecurityPolicyConfig] # Configuration for the PodSecurityPolicy feature. # @!attribute [rw] autoscaling # @return [::Google::Cloud::Container::V1beta1::ClusterAutoscaling] # Cluster-level autoscaling configuration. # @!attribute [rw] network_config # @return [::Google::Cloud::Container::V1beta1::NetworkConfig] # Configuration for cluster networking. # @!attribute [rw] private_cluster # @return [::Boolean] # If this is a private cluster setup. Private clusters are clusters that, by # default have no external IP addresses on the nodes and where nodes and the # master communicate over private IP addresses. # This field is deprecated, use private_cluster_config.enable_private_nodes # instead. # @!attribute [rw] master_ipv4_cidr_block # @return [::String] # The IP prefix in CIDR notation to use for the hosted master network. # This prefix will be used for assigning private IP addresses to the # master or set of masters, as well as the ILB VIP. # This field is deprecated, use # private_cluster_config.master_ipv4_cidr_block instead. # @!attribute [rw] default_max_pods_constraint # @return [::Google::Cloud::Container::V1beta1::MaxPodsConstraint] # The default constraint on the maximum number of pods that can be run # simultaneously on a node in the node pool of this cluster. Only honored # if cluster created with IP Alias support. # @!attribute [rw] resource_usage_export_config # @return [::Google::Cloud::Container::V1beta1::ResourceUsageExportConfig] # Configuration for exporting resource usages. Resource usage export is # disabled when this config unspecified. # @!attribute [rw] authenticator_groups_config # @return [::Google::Cloud::Container::V1beta1::AuthenticatorGroupsConfig] # Configuration controlling RBAC group membership information. # @!attribute [rw] private_cluster_config # @return [::Google::Cloud::Container::V1beta1::PrivateClusterConfig] # Configuration for private cluster. # @!attribute [rw] vertical_pod_autoscaling # @return [::Google::Cloud::Container::V1beta1::VerticalPodAutoscaling] # Cluster-level Vertical Pod Autoscaling configuration. # @!attribute [rw] shielded_nodes # @return [::Google::Cloud::Container::V1beta1::ShieldedNodes] # Shielded Nodes configuration. # @!attribute [rw] release_channel # @return [::Google::Cloud::Container::V1beta1::ReleaseChannel] # Release channel configuration. # @!attribute [rw] workload_identity_config # @return [::Google::Cloud::Container::V1beta1::WorkloadIdentityConfig] # Configuration for the use of Kubernetes Service Accounts in GCP IAM # policies. # @!attribute [rw] cluster_telemetry # @return [::Google::Cloud::Container::V1beta1::ClusterTelemetry] # Telemetry integration for the cluster. # @!attribute [rw] tpu_config # @return [::Google::Cloud::Container::V1beta1::TpuConfig] # Configuration for Cloud TPU support; # @!attribute [rw] notification_config # @return [::Google::Cloud::Container::V1beta1::NotificationConfig] # Notification configuration of the cluster. # @!attribute [rw] confidential_nodes # @return [::Google::Cloud::Container::V1beta1::ConfidentialNodes] # Configuration of Confidential Nodes # @!attribute [rw] self_link # @return [::String] # [Output only] Server-defined URL for the resource. # @!attribute [rw] zone # @return [::String] # [Output only] The name of the Google Compute Engine # [zone](https://cloud.google.com/compute/docs/zones#available) in which the # cluster resides. This field is deprecated, use location instead. # @!attribute [rw] endpoint # @return [::String] # [Output only] The IP address of this cluster's master endpoint. # The endpoint can be accessed from the internet at # `https://username:password@endpoint/`. # # See the `masterAuth` property of this resource for username and # password information. # @!attribute [rw] initial_cluster_version # @return [::String] # The initial Kubernetes version for this cluster. Valid versions are those # found in validMasterVersions returned by getServerConfig. The version can # be upgraded over time; such upgrades are reflected in # currentMasterVersion and currentNodeVersion. # # Users may specify either explicit versions offered by # Kubernetes Engine or version aliases, which have the following behavior: # # - "latest": picks the highest valid Kubernetes version # - "1.X": picks the highest valid patch+gke.N patch in the 1.X version # - "1.X.Y": picks the highest valid gke.N patch in the 1.X.Y version # - "1.X.Y-gke.N": picks an explicit Kubernetes version # - "","-": picks the default Kubernetes version # @!attribute [rw] current_master_version # @return [::String] # [Output only] The current software version of the master endpoint. # @!attribute [rw] current_node_version # @return [::String] # [Output only] Deprecated, use # [NodePool.version](https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1beta1/projects.locations.clusters.nodePools) # instead. The current version of the node software components. # If they are currently at multiple versions because they're in the process # of being upgraded, this reflects the minimum version of all nodes. # @!attribute [rw] create_time # @return [::String] # [Output only] The time the cluster was created, in # [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format. # @!attribute [rw] status # @return [::Google::Cloud::Container::V1beta1::Cluster::Status] # [Output only] The current status of this cluster. # @!attribute [rw] status_message # @return [::String] # [Output only] Deprecated. Use conditions instead. # Additional information about the current status of this # cluster, if available. # @!attribute [rw] node_ipv4_cidr_size # @return [::Integer] # [Output only] The size of the address space on each node for hosting # containers. This is provisioned from within the `container_ipv4_cidr` # range. This field will only be set when cluster is in route-based network # mode. # @!attribute [rw] services_ipv4_cidr # @return [::String] # [Output only] The IP address range of the Kubernetes services in # this cluster, in # [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing) # notation (e.g. `1.2.3.4/29`). Service addresses are # typically put in the last `/16` from the container CIDR. # @!attribute [rw] instance_group_urls # @return [::Array<::String>] # Deprecated. Use node_pools.instance_group_urls. # @!attribute [rw] current_node_count # @return [::Integer] # [Output only] The number of nodes currently in the cluster. Deprecated. # Call Kubernetes API directly to retrieve node information. # @!attribute [rw] expire_time # @return [::String] # [Output only] The time the cluster will be automatically # deleted in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format. # @!attribute [rw] location # @return [::String] # [Output only] The name of the Google Compute Engine # [zone](https://cloud.google.com/compute/docs/regions-zones/regions-zones#available) # or # [region](https://cloud.google.com/compute/docs/regions-zones/regions-zones#available) # in which the cluster resides. # @!attribute [rw] enable_tpu # @return [::Boolean] # Enable the ability to use Cloud TPUs in this cluster. # This field is deprecated, use tpu_config.enabled instead. # @!attribute [rw] tpu_ipv4_cidr_block # @return [::String] # [Output only] The IP address range of the Cloud TPUs in this cluster, in # [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing) # notation (e.g. `1.2.3.4/29`). # @!attribute [rw] database_encryption # @return [::Google::Cloud::Container::V1beta1::DatabaseEncryption] # Configuration of etcd encryption. # @!attribute [rw] conditions # @return [::Array<::Google::Cloud::Container::V1beta1::StatusCondition>] # Which conditions caused the current cluster state. # @!attribute [rw] master # @return [::Google::Cloud::Container::V1beta1::Master] # Configuration for master components. class Cluster include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class ResourceLabelsEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # The current status of the cluster. module Status # Not set. STATUS_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 master or node software. Details can # be found in the `statusMessage` field. RECONCILING = 3 # The STOPPING state indicates the cluster is being deleted. STOPPING = 4 # The ERROR state indicates the cluster may be unusable. Details # can be found in the `statusMessage` field. ERROR = 5 # The DEGRADED state indicates the cluster requires user action to restore # full functionality. Details can be found in the `statusMessage` field. DEGRADED = 6 end end # ClusterUpdate describes an update to the cluster. Exactly one update can # be applied to a cluster with each request, so at most one field can be # provided. # @!attribute [rw] desired_node_version # @return [::String] # The Kubernetes version to change the nodes to (typically an # upgrade). # # Users may specify either explicit versions offered by # Kubernetes Engine or version aliases, which have the following behavior: # # - "latest": picks the highest valid Kubernetes version # - "1.X": picks the highest valid patch+gke.N patch in the 1.X version # - "1.X.Y": picks the highest valid gke.N patch in the 1.X.Y version # - "1.X.Y-gke.N": picks an explicit Kubernetes version # - "-": picks the Kubernetes master version # @!attribute [rw] desired_monitoring_service # @return [::String] # The monitoring service the cluster should use to write metrics. # Currently available options: # # * "monitoring.googleapis.com/kubernetes" - The Cloud Monitoring # service with a Kubernetes-native resource model # * `monitoring.googleapis.com` - The legacy Cloud Monitoring service (no # longer available as of GKE 1.15). # * `none` - No metrics will be exported from the cluster. # # If left as an empty string,`monitoring.googleapis.com/kubernetes` will be # used for GKE 1.14+ or `monitoring.googleapis.com` for earlier versions. # @!attribute [rw] desired_addons_config # @return [::Google::Cloud::Container::V1beta1::AddonsConfig] # Configurations for the various addons available to run in the cluster. # @!attribute [rw] desired_node_pool_id # @return [::String] # The node pool to be upgraded. This field is mandatory if # "desired_node_version", "desired_image_family", # "desired_node_pool_autoscaling", or "desired_workload_metadata_config" # is specified and there is more than one node pool on the cluster. # @!attribute [rw] desired_image_type # @return [::String] # The desired image type for the node pool. # NOTE: Set the "desired_node_pool" field as well. # @!attribute [rw] desired_node_pool_autoscaling # @return [::Google::Cloud::Container::V1beta1::NodePoolAutoscaling] # Autoscaler configuration for the node pool specified in # desired_node_pool_id. If there is only one pool in the # cluster and desired_node_pool_id is not provided then # the change applies to that single node pool. # @!attribute [rw] desired_locations # @return [::Array<::String>] # The desired list of Google Compute Engine # [zones](https://cloud.google.com/compute/docs/zones#available) in which the # cluster's nodes should be located. # # This list must always include the cluster's primary zone. # # Warning: changing cluster locations will update the locations of all node # pools and will result in nodes being added and/or removed. # @!attribute [rw] desired_master_authorized_networks_config # @return [::Google::Cloud::Container::V1beta1::MasterAuthorizedNetworksConfig] # The desired configuration options for master authorized networks feature. # @!attribute [rw] desired_pod_security_policy_config # @return [::Google::Cloud::Container::V1beta1::PodSecurityPolicyConfig] # The desired configuration options for the PodSecurityPolicy feature. # @!attribute [rw] desired_cluster_autoscaling # @return [::Google::Cloud::Container::V1beta1::ClusterAutoscaling] # Cluster-level autoscaling configuration. # @!attribute [rw] desired_binary_authorization # @return [::Google::Cloud::Container::V1beta1::BinaryAuthorization] # The desired configuration options for the Binary Authorization feature. # @!attribute [rw] desired_logging_service # @return [::String] # The logging service the cluster should use to write logs. # Currently available options: # # * `logging.googleapis.com/kubernetes` - The Cloud Logging # service with a Kubernetes-native resource model # * `logging.googleapis.com` - The legacy Cloud Logging service (no longer # available as of GKE 1.15). # * `none` - no logs will be exported from the cluster. # # If left as an empty string,`logging.googleapis.com/kubernetes` will be # used for GKE 1.14+ or `logging.googleapis.com` for earlier versions. # @!attribute [rw] desired_resource_usage_export_config # @return [::Google::Cloud::Container::V1beta1::ResourceUsageExportConfig] # The desired configuration for exporting resource usage. # @!attribute [rw] desired_vertical_pod_autoscaling # @return [::Google::Cloud::Container::V1beta1::VerticalPodAutoscaling] # Cluster-level Vertical Pod Autoscaling configuration. # @!attribute [rw] desired_private_cluster_config # @return [::Google::Cloud::Container::V1beta1::PrivateClusterConfig] # The desired private cluster configuration. # @!attribute [rw] desired_intra_node_visibility_config # @return [::Google::Cloud::Container::V1beta1::IntraNodeVisibilityConfig] # The desired config of Intra-node visibility. # @!attribute [rw] desired_default_snat_status # @return [::Google::Cloud::Container::V1beta1::DefaultSnatStatus] # The desired status of whether to disable default sNAT for this cluster. # @!attribute [rw] desired_cluster_telemetry # @return [::Google::Cloud::Container::V1beta1::ClusterTelemetry] # The desired telemetry integration for the cluster. # @!attribute [rw] desired_release_channel # @return [::Google::Cloud::Container::V1beta1::ReleaseChannel] # The desired release channel configuration. # @!attribute [rw] desired_tpu_config # @return [::Google::Cloud::Container::V1beta1::TpuConfig] # The desired Cloud TPU configuration. # @!attribute [rw] desired_datapath_provider # @return [::Google::Cloud::Container::V1beta1::DatapathProvider] # The desired datapath provider for the cluster. # @!attribute [rw] desired_notification_config # @return [::Google::Cloud::Container::V1beta1::NotificationConfig] # The desired notification configuration. # @!attribute [rw] desired_master_version # @return [::String] # The Kubernetes version to change the master to. The only valid value is the # latest supported version. # # Users may specify either explicit versions offered by # Kubernetes Engine or version aliases, which have the following behavior: # # - "latest": picks the highest valid Kubernetes version # - "1.X": picks the highest valid patch+gke.N patch in the 1.X version # - "1.X.Y": picks the highest valid gke.N patch in the 1.X.Y version # - "1.X.Y-gke.N": picks an explicit Kubernetes version # - "-": picks the default Kubernetes version # @!attribute [rw] desired_database_encryption # @return [::Google::Cloud::Container::V1beta1::DatabaseEncryption] # Configuration of etcd encryption. # @!attribute [rw] desired_workload_identity_config # @return [::Google::Cloud::Container::V1beta1::WorkloadIdentityConfig] # Configuration for Workload Identity. # @!attribute [rw] desired_shielded_nodes # @return [::Google::Cloud::Container::V1beta1::ShieldedNodes] # Configuration for Shielded Nodes. # @!attribute [rw] desired_master # @return [::Google::Cloud::Container::V1beta1::Master] # Configuration for master components. class ClusterUpdate include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # This operation resource represents operations that may have happened or are # happening on the cluster. All fields are output only. # @!attribute [rw] name # @return [::String] # The server-assigned ID for the operation. # @!attribute [rw] zone # @return [::String] # The name of the Google Compute Engine # [zone](https://cloud.google.com/compute/docs/zones#available) in which the # operation is taking place. This field is deprecated, use location instead. # @!attribute [rw] operation_type # @return [::Google::Cloud::Container::V1beta1::Operation::Type] # The operation type. # @!attribute [rw] status # @return [::Google::Cloud::Container::V1beta1::Operation::Status] # The current status of the operation. # @!attribute [rw] detail # @return [::String] # Detailed operation progress, if available. # @!attribute [r] status_message # @return [::String] # Output only. If an error has occurred, a textual description of the error. # Deprecated. Use field error instead. # @!attribute [rw] self_link # @return [::String] # Server-defined URL for the resource. # @!attribute [rw] target_link # @return [::String] # Server-defined URL for the target of the operation. # @!attribute [rw] location # @return [::String] # [Output only] The name of the Google Compute Engine # [zone](https://cloud.google.com/compute/docs/regions-zones/regions-zones#available) # or # [region](https://cloud.google.com/compute/docs/regions-zones/regions-zones#available) # in which the cluster resides. # @!attribute [rw] start_time # @return [::String] # [Output only] The time the operation started, in # [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format. # @!attribute [rw] end_time # @return [::String] # [Output only] The time the operation completed, in # [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format. # @!attribute [r] progress # @return [::Google::Cloud::Container::V1beta1::OperationProgress] # Output only. [Output only] Progress information for an operation. # @!attribute [rw] cluster_conditions # @return [::Array<::Google::Cloud::Container::V1beta1::StatusCondition>] # Which conditions caused the current cluster state. # Deprecated. Use field error instead. # @!attribute [rw] nodepool_conditions # @return [::Array<::Google::Cloud::Container::V1beta1::StatusCondition>] # Which conditions caused the current node pool state. # Deprecated. Use field error instead. # @!attribute [rw] error # @return [::Google::Rpc::Status] # The error result of the operation in case of failure. class Operation include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # Current status of the operation. module Status # Not set. STATUS_UNSPECIFIED = 0 # The operation has been created. PENDING = 1 # The operation is currently running. RUNNING = 2 # The operation is done, either cancelled or completed. DONE = 3 # The operation is aborting. ABORTING = 4 end # Operation type. module Type # Not set. TYPE_UNSPECIFIED = 0 # Cluster create. CREATE_CLUSTER = 1 # Cluster delete. DELETE_CLUSTER = 2 # A master upgrade. UPGRADE_MASTER = 3 # A node upgrade. UPGRADE_NODES = 4 # Cluster repair. REPAIR_CLUSTER = 5 # Cluster update. UPDATE_CLUSTER = 6 # Node pool create. CREATE_NODE_POOL = 7 # Node pool delete. DELETE_NODE_POOL = 8 # Set node pool management. SET_NODE_POOL_MANAGEMENT = 9 # Automatic node pool repair. AUTO_REPAIR_NODES = 10 # Automatic node upgrade. AUTO_UPGRADE_NODES = 11 # Set labels. SET_LABELS = 12 # Set/generate master auth materials SET_MASTER_AUTH = 13 # Set node pool size. SET_NODE_POOL_SIZE = 14 # Updates network policy for a cluster. SET_NETWORK_POLICY = 15 # Set the maintenance policy. SET_MAINTENANCE_POLICY = 16 end end # Information about operation (or operation stage) progress. # @!attribute [rw] name # @return [::String] # A non-parameterized string describing an operation stage. # Unset for single-stage operations. # @!attribute [rw] status # @return [::Google::Cloud::Container::V1beta1::Operation::Status] # Status of an operation stage. # Unset for single-stage operations. # @!attribute [rw] metrics # @return [::Array<::Google::Cloud::Container::V1beta1::OperationProgress::Metric>] # Progress metric bundle, for example: # metrics: [\\{name: "nodes done", int_value: 15}, # \\{name: "nodes total", int_value: 32}] # or # metrics: [\\{name: "progress", double_value: 0.56}, # \\{name: "progress scale", double_value: 1.0}] # @!attribute [rw] stages # @return [::Array<::Google::Cloud::Container::V1beta1::OperationProgress>] # Substages of an operation or a stage. class OperationProgress include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # Progress metric is (string, int|float|string) pair. # @!attribute [rw] name # @return [::String] # Required. Metric name, e.g., "nodes total", "percent done". # @!attribute [rw] int_value # @return [::Integer] # For metrics with integer value. # @!attribute [rw] double_value # @return [::Float] # For metrics with floating point value. # @!attribute [rw] string_value # @return [::String] # For metrics with custom values (ratios, visual progress, etc.). class Metric include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end end # CreateClusterRequest creates a cluster. # @!attribute [rw] project_id # @return [::String] # Required. Deprecated. The Google Developers Console [project ID or project # number](https://support.google.com/cloud/answer/6158840). # This field has been deprecated and replaced by the parent field. # @!attribute [rw] zone # @return [::String] # Required. Deprecated. The name of the Google Compute Engine # [zone](https://cloud.google.com/compute/docs/zones#available) in which the # cluster resides. This field has been deprecated and replaced by the parent # field. # @!attribute [rw] cluster # @return [::Google::Cloud::Container::V1beta1::Cluster] # Required. A [cluster # resource](https://cloud.google.com/container-engine/reference/rest/v1beta1/projects.locations.clusters) # @!attribute [rw] parent # @return [::String] # The parent (project and location) where the cluster will be created. # Specified in the format `projects/*/locations/*`. class CreateClusterRequest include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # GetClusterRequest gets the settings of a cluster. # @!attribute [rw] project_id # @return [::String] # Required. Deprecated. The Google Developers Console [project ID or project # number](https://support.google.com/cloud/answer/6158840). # This field has been deprecated and replaced by the name field. # @!attribute [rw] zone # @return [::String] # Required. Deprecated. The name of the Google Compute Engine # [zone](https://cloud.google.com/compute/docs/zones#available) in which the # cluster resides. This field has been deprecated and replaced by the name # field. # @!attribute [rw] cluster_id # @return [::String] # Required. Deprecated. The name of the cluster to retrieve. # This field has been deprecated and replaced by the name field. # @!attribute [rw] name # @return [::String] # The name (project, location, cluster) of the cluster to retrieve. # Specified in the format `projects/*/locations/*/clusters/*`. class GetClusterRequest include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # UpdateClusterRequest updates the settings of a cluster. # @!attribute [rw] project_id # @return [::String] # Required. Deprecated. The Google Developers Console [project ID or project # number](https://support.google.com/cloud/answer/6158840). # This field has been deprecated and replaced by the name field. # @!attribute [rw] zone # @return [::String] # Required. Deprecated. The name of the Google Compute Engine # [zone](https://cloud.google.com/compute/docs/zones#available) in which the # cluster resides. This field has been deprecated and replaced by the name # field. # @!attribute [rw] cluster_id # @return [::String] # Required. Deprecated. The name of the cluster to upgrade. # This field has been deprecated and replaced by the name field. # @!attribute [rw] update # @return [::Google::Cloud::Container::V1beta1::ClusterUpdate] # Required. A description of the update. # @!attribute [rw] name # @return [::String] # The name (project, location, cluster) of the cluster to update. # Specified in the format `projects/*/locations/*/clusters/*`. class UpdateClusterRequest include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # SetNodePoolVersionRequest updates the version of a node pool. # @!attribute [rw] project_id # @return [::String] # Required. Deprecated. The Google Developers Console [project ID or project # number](https://support.google.com/cloud/answer/6158840). # This field has been deprecated and replaced by the name field. # @!attribute [rw] zone # @return [::String] # Required. Deprecated. The name of the Google Compute Engine # [zone](https://cloud.google.com/compute/docs/zones#available) in which the # cluster resides. This field has been deprecated and replaced by the name # field. # @!attribute [rw] cluster_id # @return [::String] # Required. Deprecated. The name of the cluster to upgrade. # This field has been deprecated and replaced by the name field. # @!attribute [rw] node_pool_id # @return [::String] # Required. Deprecated. The name of the node pool to upgrade. # This field has been deprecated and replaced by the name field. # @!attribute [rw] node_version # @return [::String] # Required. The Kubernetes version to change the nodes to (typically an # upgrade). # # Users may specify either explicit versions offered by Kubernetes Engine or # version aliases, which have the following behavior: # # - "latest": picks the highest valid Kubernetes version # - "1.X": picks the highest valid patch+gke.N patch in the 1.X version # - "1.X.Y": picks the highest valid gke.N patch in the 1.X.Y version # - "1.X.Y-gke.N": picks an explicit Kubernetes version # - "-": picks the Kubernetes master version # @!attribute [rw] image_type # @return [::String] # Required. The desired image type for the node pool. # @!attribute [rw] locations # @return [::Array<::String>] # The desired list of Google Compute Engine # [zones](https://cloud.google.com/compute/docs/zones#available) in which the # node pool's nodes should be located. Changing the locations for a node pool # will result in nodes being either created or removed from the node pool, # depending on whether locations are being added or removed. # @!attribute [rw] workload_metadata_config # @return [::Google::Cloud::Container::V1beta1::WorkloadMetadataConfig] # The desired workload metadata config for the node pool. # @!attribute [rw] name # @return [::String] # The name (project, location, cluster, node pool) of the node pool to # update. Specified in the format # `projects/*/locations/*/clusters/*/nodePools/*`. # @!attribute [rw] upgrade_settings # @return [::Google::Cloud::Container::V1beta1::NodePool::UpgradeSettings] # Upgrade settings control disruption and speed of the upgrade. # @!attribute [rw] linux_node_config # @return [::Google::Cloud::Container::V1beta1::LinuxNodeConfig] # Parameters that can be configured on Linux nodes. # @!attribute [rw] kubelet_config # @return [::Google::Cloud::Container::V1beta1::NodeKubeletConfig] # Node kubelet configs. class UpdateNodePoolRequest include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # SetNodePoolAutoscalingRequest sets the autoscaler settings of a node pool. # @!attribute [rw] project_id # @return [::String] # Required. Deprecated. The Google Developers Console [project ID or project # number](https://support.google.com/cloud/answer/6158840). # This field has been deprecated and replaced by the name field. # @!attribute [rw] zone # @return [::String] # Required. Deprecated. The name of the Google Compute Engine # [zone](https://cloud.google.com/compute/docs/zones#available) in which the # cluster resides. This field has been deprecated and replaced by the name # field. # @!attribute [rw] cluster_id # @return [::String] # Required. Deprecated. The name of the cluster to upgrade. # This field has been deprecated and replaced by the name field. # @!attribute [rw] node_pool_id # @return [::String] # Required. Deprecated. The name of the node pool to upgrade. # This field has been deprecated and replaced by the name field. # @!attribute [rw] autoscaling # @return [::Google::Cloud::Container::V1beta1::NodePoolAutoscaling] # Required. Autoscaling configuration for the node pool. # @!attribute [rw] name # @return [::String] # The name (project, location, cluster, node pool) of the node pool to set # autoscaler settings. Specified in the format # `projects/*/locations/*/clusters/*/nodePools/*`. class SetNodePoolAutoscalingRequest include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # SetLoggingServiceRequest sets the logging service of a cluster. # @!attribute [rw] project_id # @return [::String] # Required. Deprecated. The Google Developers Console [project ID or project # number](https://support.google.com/cloud/answer/6158840). # This field has been deprecated and replaced by the name field. # @!attribute [rw] zone # @return [::String] # Required. Deprecated. The name of the Google Compute Engine # [zone](https://cloud.google.com/compute/docs/zones#available) in which the # cluster resides. This field has been deprecated and replaced by the name # field. # @!attribute [rw] cluster_id # @return [::String] # Required. Deprecated. The name of the cluster to upgrade. # This field has been deprecated and replaced by the name field. # @!attribute [rw] logging_service # @return [::String] # Required. The logging service the cluster should use to write logs. # Currently available options: # # * `logging.googleapis.com/kubernetes` - The Cloud Logging # service with a Kubernetes-native resource model # * `logging.googleapis.com` - The legacy Cloud Logging service (no longer # available as of GKE 1.15). # * `none` - no logs will be exported from the cluster. # # If left as an empty string,`logging.googleapis.com/kubernetes` will be # used for GKE 1.14+ or `logging.googleapis.com` for earlier versions. # @!attribute [rw] name # @return [::String] # The name (project, location, cluster) of the cluster to set logging. # Specified in the format `projects/*/locations/*/clusters/*`. class SetLoggingServiceRequest include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # SetMonitoringServiceRequest sets the monitoring service of a cluster. # @!attribute [rw] project_id # @return [::String] # Required. Deprecated. The Google Developers Console [project ID or project # number](https://support.google.com/cloud/answer/6158840). # This field has been deprecated and replaced by the name field. # @!attribute [rw] zone # @return [::String] # Required. Deprecated. The name of the Google Compute Engine # [zone](https://cloud.google.com/compute/docs/zones#available) in which the # cluster resides. This field has been deprecated and replaced by the name # field. # @!attribute [rw] cluster_id # @return [::String] # Required. Deprecated. The name of the cluster to upgrade. # This field has been deprecated and replaced by the name field. # @!attribute [rw] monitoring_service # @return [::String] # Required. The monitoring service the cluster should use to write metrics. # Currently available options: # # * "monitoring.googleapis.com/kubernetes" - The Cloud Monitoring # service with a Kubernetes-native resource model # * `monitoring.googleapis.com` - The legacy Cloud Monitoring service (no # longer available as of GKE 1.15). # * `none` - No metrics will be exported from the cluster. # # If left as an empty string,`monitoring.googleapis.com/kubernetes` will be # used for GKE 1.14+ or `monitoring.googleapis.com` for earlier versions. # @!attribute [rw] name # @return [::String] # The name (project, location, cluster) of the cluster to set monitoring. # Specified in the format `projects/*/locations/*/clusters/*`. class SetMonitoringServiceRequest include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # SetAddonsRequest sets the addons associated with the cluster. # @!attribute [rw] project_id # @return [::String] # Required. Deprecated. The Google Developers Console [project ID or project # number](https://support.google.com/cloud/answer/6158840). # This field has been deprecated and replaced by the name field. # @!attribute [rw] zone # @return [::String] # Required. Deprecated. The name of the Google Compute Engine # [zone](https://cloud.google.com/compute/docs/zones#available) in which the # cluster resides. This field has been deprecated and replaced by the name # field. # @!attribute [rw] cluster_id # @return [::String] # Required. Deprecated. The name of the cluster to upgrade. # This field has been deprecated and replaced by the name field. # @!attribute [rw] addons_config # @return [::Google::Cloud::Container::V1beta1::AddonsConfig] # Required. The desired configurations for the various addons available to run in the # cluster. # @!attribute [rw] name # @return [::String] # The name (project, location, cluster) of the cluster to set addons. # Specified in the format `projects/*/locations/*/clusters/*`. class SetAddonsConfigRequest include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # SetLocationsRequest sets the locations of the cluster. # @!attribute [rw] project_id # @return [::String] # Required. Deprecated. The Google Developers Console [project ID or project # number](https://support.google.com/cloud/answer/6158840). # This field has been deprecated and replaced by the name field. # @!attribute [rw] zone # @return [::String] # Required. Deprecated. The name of the Google Compute Engine # [zone](https://cloud.google.com/compute/docs/zones#available) in which the # cluster resides. This field has been deprecated and replaced by the name # field. # @!attribute [rw] cluster_id # @return [::String] # Required. Deprecated. The name of the cluster to upgrade. # This field has been deprecated and replaced by the name field. # @!attribute [rw] locations # @return [::Array<::String>] # Required. The desired list of Google Compute Engine # [zones](https://cloud.google.com/compute/docs/zones#available) in which the # cluster's nodes should be located. Changing the locations a cluster is in # will result in nodes being either created or removed from the cluster, # depending on whether locations are being added or removed. # # This list must always include the cluster's primary zone. # @!attribute [rw] name # @return [::String] # The name (project, location, cluster) of the cluster to set locations. # Specified in the format `projects/*/locations/*/clusters/*`. class SetLocationsRequest include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # UpdateMasterRequest updates the master of the cluster. # @!attribute [rw] project_id # @return [::String] # Required. Deprecated. The Google Developers Console [project ID or project # number](https://support.google.com/cloud/answer/6158840). # This field has been deprecated and replaced by the name field. # @!attribute [rw] zone # @return [::String] # Required. Deprecated. The name of the Google Compute Engine # [zone](https://cloud.google.com/compute/docs/zones#available) in which the # cluster resides. This field has been deprecated and replaced by the name # field. # @!attribute [rw] cluster_id # @return [::String] # Required. Deprecated. The name of the cluster to upgrade. # This field has been deprecated and replaced by the name field. # @!attribute [rw] master_version # @return [::String] # Required. The Kubernetes version to change the master to. # # Users may specify either explicit versions offered by # Kubernetes Engine or version aliases, which have the following behavior: # # - "latest": picks the highest valid Kubernetes version # - "1.X": picks the highest valid patch+gke.N patch in the 1.X version # - "1.X.Y": picks the highest valid gke.N patch in the 1.X.Y version # - "1.X.Y-gke.N": picks an explicit Kubernetes version # - "-": picks the default Kubernetes version # @!attribute [rw] name # @return [::String] # The name (project, location, cluster) of the cluster to update. # Specified in the format `projects/*/locations/*/clusters/*`. class UpdateMasterRequest include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # SetMasterAuthRequest updates the admin password of a cluster. # @!attribute [rw] project_id # @return [::String] # Required. Deprecated. The Google Developers Console [project ID or project # number](https://support.google.com/cloud/answer/6158840). # This field has been deprecated and replaced by the name field. # @!attribute [rw] zone # @return [::String] # Required. Deprecated. The name of the Google Compute Engine # [zone](https://cloud.google.com/compute/docs/zones#available) in which the # cluster resides. This field has been deprecated and replaced by the name # field. # @!attribute [rw] cluster_id # @return [::String] # Required. Deprecated. The name of the cluster to upgrade. # This field has been deprecated and replaced by the name field. # @!attribute [rw] action # @return [::Google::Cloud::Container::V1beta1::SetMasterAuthRequest::Action] # Required. The exact form of action to be taken on the master auth. # @!attribute [rw] update # @return [::Google::Cloud::Container::V1beta1::MasterAuth] # Required. A description of the update. # @!attribute [rw] name # @return [::String] # The name (project, location, cluster) of the cluster to set auth. # Specified in the format `projects/*/locations/*/clusters/*`. class SetMasterAuthRequest include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # Operation type: what type update to perform. module Action # Operation is unknown and will error out. UNKNOWN = 0 # Set the password to a user generated value. SET_PASSWORD = 1 # Generate a new password and set it to that. GENERATE_PASSWORD = 2 # Set the username. If an empty username is provided, basic authentication # is disabled for the cluster. If a non-empty username is provided, basic # authentication is enabled, with either a provided password or a generated # one. SET_USERNAME = 3 end end # DeleteClusterRequest deletes a cluster. # @!attribute [rw] project_id # @return [::String] # Required. Deprecated. The Google Developers Console [project ID or project # number](https://support.google.com/cloud/answer/6158840). # This field has been deprecated and replaced by the name field. # @!attribute [rw] zone # @return [::String] # Required. Deprecated. The name of the Google Compute Engine # [zone](https://cloud.google.com/compute/docs/zones#available) in which the # cluster resides. This field has been deprecated and replaced by the name # field. # @!attribute [rw] cluster_id # @return [::String] # Required. Deprecated. The name of the cluster to delete. # This field has been deprecated and replaced by the name field. # @!attribute [rw] name # @return [::String] # The name (project, location, cluster) of the cluster to delete. # Specified in the format `projects/*/locations/*/clusters/*`. class DeleteClusterRequest include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # ListClustersRequest lists clusters. # @!attribute [rw] project_id # @return [::String] # Required. Deprecated. The Google Developers Console [project ID or project # number](https://support.google.com/cloud/answer/6158840). # This field has been deprecated and replaced by the parent field. # @!attribute [rw] zone # @return [::String] # Required. Deprecated. The name of the Google Compute Engine # [zone](https://cloud.google.com/compute/docs/zones#available) in which the # cluster resides, or "-" for all zones. This field has been deprecated and # replaced by the parent field. # @!attribute [rw] parent # @return [::String] # The parent (project and location) where the clusters will be listed. # Specified in the format `projects/*/locations/*`. # Location "-" matches all zones and all regions. class ListClustersRequest include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # ListClustersResponse is the result of ListClustersRequest. # @!attribute [rw] clusters # @return [::Array<::Google::Cloud::Container::V1beta1::Cluster>] # A list of clusters in the project in the specified zone, or # across all ones. # @!attribute [rw] missing_zones # @return [::Array<::String>] # If any zones are listed here, the list of clusters returned # may be missing those zones. class ListClustersResponse include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # GetOperationRequest gets a single operation. # @!attribute [rw] project_id # @return [::String] # Required. Deprecated. The Google Developers Console [project ID or project # number](https://support.google.com/cloud/answer/6158840). # This field has been deprecated and replaced by the name field. # @!attribute [rw] zone # @return [::String] # Required. Deprecated. The name of the Google Compute Engine # [zone](https://cloud.google.com/compute/docs/zones#available) in which the # cluster resides. This field has been deprecated and replaced by the name # field. # @!attribute [rw] operation_id # @return [::String] # Required. Deprecated. The server-assigned `name` of the operation. # This field has been deprecated and replaced by the name field. # @!attribute [rw] name # @return [::String] # The name (project, location, operation id) of the operation to get. # Specified in the format `projects/*/locations/*/operations/*`. class GetOperationRequest include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # ListOperationsRequest lists operations. # @!attribute [rw] project_id # @return [::String] # Required. Deprecated. The Google Developers Console [project ID or project # number](https://support.google.com/cloud/answer/6158840). # This field has been deprecated and replaced by the parent field. # @!attribute [rw] zone # @return [::String] # Required. Deprecated. The name of the Google Compute Engine # [zone](https://cloud.google.com/compute/docs/zones#available) to return # operations for, or `-` for all zones. This field has been deprecated and # replaced by the parent field. # @!attribute [rw] parent # @return [::String] # The parent (project and location) where the operations will be listed. # Specified in the format `projects/*/locations/*`. # Location "-" matches all zones and all regions. class ListOperationsRequest include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # CancelOperationRequest cancels a single operation. # @!attribute [rw] project_id # @return [::String] # Required. Deprecated. The Google Developers Console [project ID or project # number](https://support.google.com/cloud/answer/6158840). # This field has been deprecated and replaced by the name field. # @!attribute [rw] zone # @return [::String] # Required. Deprecated. The name of the Google Compute Engine # [zone](https://cloud.google.com/compute/docs/zones#available) in which the # operation resides. This field has been deprecated and replaced by the name # field. # @!attribute [rw] operation_id # @return [::String] # Required. Deprecated. The server-assigned `name` of the operation. # This field has been deprecated and replaced by the name field. # @!attribute [rw] name # @return [::String] # The name (project, location, operation id) of the operation to cancel. # Specified in the format `projects/*/locations/*/operations/*`. class CancelOperationRequest include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # ListOperationsResponse is the result of ListOperationsRequest. # @!attribute [rw] operations # @return [::Array<::Google::Cloud::Container::V1beta1::Operation>] # A list of operations in the project in the specified zone. # @!attribute [rw] missing_zones # @return [::Array<::String>] # If any zones are listed here, the list of operations returned # may be missing the operations from those zones. class ListOperationsResponse include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # Gets the current Kubernetes Engine service configuration. # @!attribute [rw] project_id # @return [::String] # Required. Deprecated. The Google Developers Console [project ID or project # number](https://support.google.com/cloud/answer/6158840). # This field has been deprecated and replaced by the name field. # @!attribute [rw] zone # @return [::String] # Required. Deprecated. The name of the Google Compute Engine # [zone](https://cloud.google.com/compute/docs/zones#available) to return # operations for. This field has been deprecated and replaced by the name # field. # @!attribute [rw] name # @return [::String] # The name (project and location) of the server config to get, # specified in the format `projects/*/locations/*`. class GetServerConfigRequest include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # Kubernetes Engine service configuration. # @!attribute [rw] default_cluster_version # @return [::String] # Version of Kubernetes the service deploys by default. # @!attribute [rw] valid_node_versions # @return [::Array<::String>] # List of valid node upgrade target versions, in descending order. # @!attribute [rw] default_image_type # @return [::String] # Default image type. # @!attribute [rw] valid_image_types # @return [::Array<::String>] # List of valid image types. # @!attribute [rw] valid_master_versions # @return [::Array<::String>] # List of valid master versions, in descending order. # @!attribute [rw] channels # @return [::Array<::Google::Cloud::Container::V1beta1::ServerConfig::ReleaseChannelConfig>] # List of release channel configurations. class ServerConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # ReleaseChannelConfig exposes configuration for a release channel. # @!attribute [rw] channel # @return [::Google::Cloud::Container::V1beta1::ReleaseChannel::Channel] # The release channel this configuration applies to. # @!attribute [rw] default_version # @return [::String] # The default version for newly created clusters on the channel. # @!attribute [rw] available_versions # @return [::Array<::Google::Cloud::Container::V1beta1::ServerConfig::ReleaseChannelConfig::AvailableVersion>] # Deprecated. # This field has been deprecated and replaced with the valid_versions # field. # @!attribute [rw] valid_versions # @return [::Array<::String>] # List of valid versions for the channel. class ReleaseChannelConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # Deprecated. # @!attribute [rw] version # @return [::String] # Kubernetes version. # @!attribute [rw] reason # @return [::String] # Reason for availability. class AvailableVersion include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end end end # CreateNodePoolRequest creates a node pool for a cluster. # @!attribute [rw] project_id # @return [::String] # Required. Deprecated. The Google Developers Console [project ID or project # number](https://developers.google.com/console/help/new/#projectnumber). # This field has been deprecated and replaced by the parent field. # @!attribute [rw] zone # @return [::String] # Required. Deprecated. The name of the Google Compute Engine # [zone](https://cloud.google.com/compute/docs/zones#available) in which the # cluster resides. This field has been deprecated and replaced by the parent # field. # @!attribute [rw] cluster_id # @return [::String] # Required. Deprecated. The name of the cluster. # This field has been deprecated and replaced by the parent field. # @!attribute [rw] node_pool # @return [::Google::Cloud::Container::V1beta1::NodePool] # Required. The node pool to create. # @!attribute [rw] parent # @return [::String] # The parent (project, location, cluster id) where the node pool will be # created. Specified in the format # `projects/*/locations/*/clusters/*`. class CreateNodePoolRequest include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # DeleteNodePoolRequest deletes a node pool for a cluster. # @!attribute [rw] project_id # @return [::String] # Required. Deprecated. The Google Developers Console [project ID or project # number](https://developers.google.com/console/help/new/#projectnumber). # This field has been deprecated and replaced by the name field. # @!attribute [rw] zone # @return [::String] # Required. Deprecated. The name of the Google Compute Engine # [zone](https://cloud.google.com/compute/docs/zones#available) in which the # cluster resides. This field has been deprecated and replaced by the name # field. # @!attribute [rw] cluster_id # @return [::String] # Required. Deprecated. The name of the cluster. # This field has been deprecated and replaced by the name field. # @!attribute [rw] node_pool_id # @return [::String] # Required. Deprecated. The name of the node pool to delete. # This field has been deprecated and replaced by the name field. # @!attribute [rw] name # @return [::String] # The name (project, location, cluster, node pool id) of the node pool to # delete. Specified in the format # `projects/*/locations/*/clusters/*/nodePools/*`. class DeleteNodePoolRequest include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # ListNodePoolsRequest lists the node pool(s) for a cluster. # @!attribute [rw] project_id # @return [::String] # Required. Deprecated. The Google Developers Console [project ID or project # number](https://developers.google.com/console/help/new/#projectnumber). # This field has been deprecated and replaced by the parent field. # @!attribute [rw] zone # @return [::String] # Required. Deprecated. The name of the Google Compute Engine # [zone](https://cloud.google.com/compute/docs/zones#available) in which the # cluster resides. This field has been deprecated and replaced by the parent # field. # @!attribute [rw] cluster_id # @return [::String] # Required. Deprecated. The name of the cluster. # This field has been deprecated and replaced by the parent field. # @!attribute [rw] parent # @return [::String] # The parent (project, location, cluster id) where the node pools will be # listed. Specified in the format `projects/*/locations/*/clusters/*`. class ListNodePoolsRequest include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # GetNodePoolRequest retrieves a node pool for a cluster. # @!attribute [rw] project_id # @return [::String] # Required. Deprecated. The Google Developers Console [project ID or project # number](https://developers.google.com/console/help/new/#projectnumber). # This field has been deprecated and replaced by the name field. # @!attribute [rw] zone # @return [::String] # Required. Deprecated. The name of the Google Compute Engine # [zone](https://cloud.google.com/compute/docs/zones#available) in which the # cluster resides. This field has been deprecated and replaced by the name # field. # @!attribute [rw] cluster_id # @return [::String] # Required. Deprecated. The name of the cluster. # This field has been deprecated and replaced by the name field. # @!attribute [rw] node_pool_id # @return [::String] # Required. Deprecated. The name of the node pool. # This field has been deprecated and replaced by the name field. # @!attribute [rw] name # @return [::String] # The name (project, location, cluster, node pool id) of the node pool to # get. Specified in the format # `projects/*/locations/*/clusters/*/nodePools/*`. class GetNodePoolRequest include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # NodePool contains the name and configuration for a cluster's node pool. # Node pools are a set of nodes (i.e. VM's), with a common configuration and # specification, under the control of the cluster master. They may have a set # of Kubernetes labels applied to them, which may be used to reference them # during pod scheduling. They may also be resized up or down, to accommodate # the workload. # @!attribute [rw] name # @return [::String] # The name of the node pool. # @!attribute [rw] config # @return [::Google::Cloud::Container::V1beta1::NodeConfig] # The node configuration of the pool. # @!attribute [rw] initial_node_count # @return [::Integer] # The initial node count for the pool. You must ensure that your # Compute Engine [resource quota](https://cloud.google.com/compute/quotas) # is sufficient for this number of instances. You must also have available # firewall and routes quota. # @!attribute [rw] locations # @return [::Array<::String>] # The list of Google Compute Engine # [zones](https://cloud.google.com/compute/docs/zones#available) in which the # NodePool's nodes should be located. # # If this value is unspecified during node pool creation, the # [Cluster.Locations](https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1/projects.locations.clusters#Cluster.FIELDS.locations) # value will be used, instead. # # Warning: changing node pool locations will result in nodes being added # and/or removed. # @!attribute [rw] self_link # @return [::String] # [Output only] Server-defined URL for the resource. # @!attribute [rw] version # @return [::String] # The version of the Kubernetes of this node. # @!attribute [rw] instance_group_urls # @return [::Array<::String>] # [Output only] The resource URLs of the [managed instance # groups](https://cloud.google.com/compute/docs/instance-groups/creating-groups-of-managed-instances) # associated with this node pool. # @!attribute [rw] status # @return [::Google::Cloud::Container::V1beta1::NodePool::Status] # [Output only] The status of the nodes in this pool instance. # @!attribute [rw] status_message # @return [::String] # [Output only] Deprecated. Use conditions instead. # Additional information about the current status of this # node pool instance, if available. # @!attribute [rw] autoscaling # @return [::Google::Cloud::Container::V1beta1::NodePoolAutoscaling] # Autoscaler configuration for this NodePool. Autoscaler is enabled # only if a valid configuration is present. # @!attribute [rw] management # @return [::Google::Cloud::Container::V1beta1::NodeManagement] # NodeManagement configuration for this NodePool. # @!attribute [rw] max_pods_constraint # @return [::Google::Cloud::Container::V1beta1::MaxPodsConstraint] # The constraint on the maximum number of pods that can be run # simultaneously on a node in the node pool. # @!attribute [rw] conditions # @return [::Array<::Google::Cloud::Container::V1beta1::StatusCondition>] # Which conditions caused the current node pool state. # @!attribute [rw] pod_ipv4_cidr_size # @return [::Integer] # [Output only] The pod CIDR block size per node in this node pool. # @!attribute [rw] upgrade_settings # @return [::Google::Cloud::Container::V1beta1::NodePool::UpgradeSettings] # Upgrade settings control disruption and speed of the upgrade. class NodePool include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # These upgrade settings control the level of parallelism and the level of # disruption caused by an upgrade. # # maxUnavailable controls the number of nodes that can be simultaneously # unavailable. # # maxSurge controls the number of additional nodes that can be added to the # node pool temporarily for the time of the upgrade to increase the number of # available nodes. # # (maxUnavailable + maxSurge) determines the level of parallelism (how many # nodes are being upgraded at the same time). # # Note: upgrades inevitably introduce some disruption since workloads need to # be moved from old nodes to new, upgraded ones. Even if maxUnavailable=0, # this holds true. (Disruption stays within the limits of # PodDisruptionBudget, if it is configured.) # # Consider a hypothetical node pool with 5 nodes having maxSurge=2, # maxUnavailable=1. This means the upgrade process upgrades 3 nodes # simultaneously. It creates 2 additional (upgraded) nodes, then it brings # down 3 old (not yet upgraded) nodes at the same time. This ensures that # there are always at least 4 nodes available. # @!attribute [rw] max_surge # @return [::Integer] # The maximum number of nodes that can be created beyond the current size # of the node pool during the upgrade process. # @!attribute [rw] max_unavailable # @return [::Integer] # The maximum number of nodes that can be simultaneously unavailable during # the upgrade process. A node is considered available if its status is # Ready. class UpgradeSettings include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # The current status of the node pool instance. module Status # Not set. STATUS_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 RUNNING_WITH_ERROR state indicates the node pool has been created # and is partially usable. Some error state has occurred and some # functionality may be impaired. Customer may need to reissue a request # or trigger a new update. RUNNING_WITH_ERROR = 3 # The RECONCILING state indicates that some work is actively being done on # the node pool, such as upgrading node software. Details can # be found in the `statusMessage` field. RECONCILING = 4 # The STOPPING state indicates the node pool is being deleted. STOPPING = 5 # The ERROR state indicates the node pool may be unusable. Details # can be found in the `statusMessage` field. ERROR = 6 end end # NodeManagement defines the set of node management services turned on for the # node pool. # @!attribute [rw] auto_upgrade # @return [::Boolean] # Whether the nodes will be automatically upgraded. # @!attribute [rw] auto_repair # @return [::Boolean] # Whether the nodes will be automatically repaired. # @!attribute [rw] upgrade_options # @return [::Google::Cloud::Container::V1beta1::AutoUpgradeOptions] # Specifies the Auto Upgrade knobs for the node pool. class NodeManagement include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # AutoUpgradeOptions defines the set of options for the user to control how # the Auto Upgrades will proceed. # @!attribute [rw] auto_upgrade_start_time # @return [::String] # [Output only] This field is set when upgrades are about to commence # with the approximate start time for the upgrades, in # [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format. # @!attribute [rw] description # @return [::String] # [Output only] This field is set when upgrades are about to commence # with the description of the upgrade. class AutoUpgradeOptions include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # MaintenancePolicy defines the maintenance policy to be used for the cluster. # @!attribute [rw] window # @return [::Google::Cloud::Container::V1beta1::MaintenanceWindow] # Specifies the maintenance window in which maintenance may be performed. # @!attribute [rw] resource_version # @return [::String] # A hash identifying the version of this policy, so that updates to fields of # the policy won't accidentally undo intermediate changes (and so that users # of the API unaware of some fields won't accidentally remove other fields). # Make a `get()` request to the cluster to get the current # resource version and include it with requests to set the policy. class MaintenancePolicy include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # MaintenanceWindow defines the maintenance window to be used for the cluster. # @!attribute [rw] daily_maintenance_window # @return [::Google::Cloud::Container::V1beta1::DailyMaintenanceWindow] # DailyMaintenanceWindow specifies a daily maintenance operation window. # @!attribute [rw] recurring_window # @return [::Google::Cloud::Container::V1beta1::RecurringTimeWindow] # RecurringWindow specifies some number of recurring time periods for # maintenance to occur. The time windows may be overlapping. If no # maintenance windows are set, maintenance can occur at any time. # @!attribute [rw] maintenance_exclusions # @return [::Google::Protobuf::Map{::String => ::Google::Cloud::Container::V1beta1::TimeWindow}] # Exceptions to maintenance window. Non-emergency maintenance should not # occur in these windows. class MaintenanceWindow include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::Google::Cloud::Container::V1beta1::TimeWindow] class MaintenanceExclusionsEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end end # Represents an arbitrary window of time. # @!attribute [rw] start_time # @return [::Google::Protobuf::Timestamp] # The time that the window first starts. # @!attribute [rw] end_time # @return [::Google::Protobuf::Timestamp] # The time that the window ends. The end time should take place after the # start time. class TimeWindow include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # Represents an arbitrary window of time that recurs. # @!attribute [rw] window # @return [::Google::Cloud::Container::V1beta1::TimeWindow] # The window of the first recurrence. # @!attribute [rw] recurrence # @return [::String] # An RRULE (https://tools.ietf.org/html/rfc5545#section-3.8.5.3) for how # this window reccurs. They go on for the span of time between the start and # end time. # # For example, to have something repeat every weekday, you'd use: # `FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR` # # To repeat some window daily (equivalent to the DailyMaintenanceWindow): # `FREQ=DAILY` # # For the first weekend of every month: # `FREQ=MONTHLY;BYSETPOS=1;BYDAY=SA,SU` # # This specifies how frequently the window starts. Eg, if you wanted to have # a 9-5 UTC-4 window every weekday, you'd use something like: # ``` # start time = 2019-01-01T09:00:00-0400 # end time = 2019-01-01T17:00:00-0400 # recurrence = FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR # ``` # # Windows can span multiple days. Eg, to make the window encompass every # weekend from midnight Saturday till the last minute of Sunday UTC: # ``` # start time = 2019-01-05T00:00:00Z # end time = 2019-01-07T23:59:00Z # recurrence = FREQ=WEEKLY;BYDAY=SA # ``` # # Note the start and end time's specific dates are largely arbitrary except # to specify duration of the window and when it first starts. # The FREQ values of HOURLY, MINUTELY, and SECONDLY are not supported. class RecurringTimeWindow include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # Time window specified for daily maintenance operations. # @!attribute [rw] start_time # @return [::String] # Time within the maintenance window to start the maintenance operations. # It must be in format "HH:MM", where HH : [00-23] and MM : [00-59] GMT. # @!attribute [rw] duration # @return [::String] # [Output only] Duration of the time window, automatically chosen to be # smallest possible in the given scenario. class DailyMaintenanceWindow include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # SetNodePoolManagementRequest sets the node management properties of a node # pool. # @!attribute [rw] project_id # @return [::String] # Required. Deprecated. The Google Developers Console [project ID or project # number](https://support.google.com/cloud/answer/6158840). # This field has been deprecated and replaced by the name field. # @!attribute [rw] zone # @return [::String] # Required. Deprecated. The name of the Google Compute Engine # [zone](https://cloud.google.com/compute/docs/zones#available) in which the # cluster resides. This field has been deprecated and replaced by the name # field. # @!attribute [rw] cluster_id # @return [::String] # Required. Deprecated. The name of the cluster to update. # This field has been deprecated and replaced by the name field. # @!attribute [rw] node_pool_id # @return [::String] # Required. Deprecated. The name of the node pool to update. # This field has been deprecated and replaced by the name field. # @!attribute [rw] management # @return [::Google::Cloud::Container::V1beta1::NodeManagement] # Required. NodeManagement configuration for the node pool. # @!attribute [rw] name # @return [::String] # The name (project, location, cluster, node pool id) of the node pool to set # management properties. Specified in the format # `projects/*/locations/*/clusters/*/nodePools/*`. class SetNodePoolManagementRequest include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # SetNodePoolSizeRequest sets the size a node # pool. # @!attribute [rw] project_id # @return [::String] # Required. Deprecated. The Google Developers Console [project ID or project # number](https://support.google.com/cloud/answer/6158840). # This field has been deprecated and replaced by the name field. # @!attribute [rw] zone # @return [::String] # Required. Deprecated. The name of the Google Compute Engine # [zone](https://cloud.google.com/compute/docs/zones#available) in which the # cluster resides. This field has been deprecated and replaced by the name # field. # @!attribute [rw] cluster_id # @return [::String] # Required. Deprecated. The name of the cluster to update. # This field has been deprecated and replaced by the name field. # @!attribute [rw] node_pool_id # @return [::String] # Required. Deprecated. The name of the node pool to update. # This field has been deprecated and replaced by the name field. # @!attribute [rw] node_count # @return [::Integer] # Required. The desired node count for the pool. # @!attribute [rw] name # @return [::String] # The name (project, location, cluster, node pool id) of the node pool to set # size. # Specified in the format `projects/*/locations/*/clusters/*/nodePools/*`. class SetNodePoolSizeRequest include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # RollbackNodePoolUpgradeRequest rollbacks the previously Aborted or Failed # NodePool upgrade. This will be an no-op if the last upgrade successfully # completed. # @!attribute [rw] project_id # @return [::String] # Required. Deprecated. The Google Developers Console [project ID or project # number](https://support.google.com/cloud/answer/6158840). # This field has been deprecated and replaced by the name field. # @!attribute [rw] zone # @return [::String] # Required. Deprecated. The name of the Google Compute Engine # [zone](https://cloud.google.com/compute/docs/zones#available) in which the # cluster resides. This field has been deprecated and replaced by the name # field. # @!attribute [rw] cluster_id # @return [::String] # Required. Deprecated. The name of the cluster to rollback. # This field has been deprecated and replaced by the name field. # @!attribute [rw] node_pool_id # @return [::String] # Required. Deprecated. The name of the node pool to rollback. # This field has been deprecated and replaced by the name field. # @!attribute [rw] name # @return [::String] # The name (project, location, cluster, node pool id) of the node poll to # rollback upgrade. # Specified in the format `projects/*/locations/*/clusters/*/nodePools/*`. class RollbackNodePoolUpgradeRequest include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # ListNodePoolsResponse is the result of ListNodePoolsRequest. # @!attribute [rw] node_pools # @return [::Array<::Google::Cloud::Container::V1beta1::NodePool>] # A list of node pools for a cluster. class ListNodePoolsResponse include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # ClusterAutoscaling contains global, per-cluster information # required by Cluster Autoscaler to automatically adjust # the size of the cluster and create/delete # node pools based on the current needs. # @!attribute [rw] enable_node_autoprovisioning # @return [::Boolean] # Enables automatic node pool creation and deletion. # @!attribute [rw] resource_limits # @return [::Array<::Google::Cloud::Container::V1beta1::ResourceLimit>] # Contains global constraints regarding minimum and maximum # amount of resources in the cluster. # @!attribute [rw] autoscaling_profile # @return [::Google::Cloud::Container::V1beta1::ClusterAutoscaling::AutoscalingProfile] # Defines autoscaling behaviour. # @!attribute [rw] autoprovisioning_node_pool_defaults # @return [::Google::Cloud::Container::V1beta1::AutoprovisioningNodePoolDefaults] # AutoprovisioningNodePoolDefaults contains defaults for a node pool # created by NAP. # @!attribute [rw] autoprovisioning_locations # @return [::Array<::String>] # The list of Google Compute Engine # [zones](https://cloud.google.com/compute/docs/zones#available) in which the # NodePool's nodes can be created by NAP. class ClusterAutoscaling include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # Defines possible options for autoscaling_profile field. module AutoscalingProfile # No change to autoscaling configuration. PROFILE_UNSPECIFIED = 0 # Prioritize optimizing utilization of resources. OPTIMIZE_UTILIZATION = 1 # Use default (balanced) autoscaling configuration. BALANCED = 2 end end # AutoprovisioningNodePoolDefaults contains defaults for a node pool created # by NAP. # @!attribute [rw] oauth_scopes # @return [::Array<::String>] # The set of Google API scopes to be made available on all of the # node VMs under the "default" service account. # # The following scopes are recommended, but not required, and by default are # not included: # # * `https://www.googleapis.com/auth/compute` is required for mounting # persistent storage on your nodes. # * `https://www.googleapis.com/auth/devstorage.read_only` is required for # communicating with **gcr.io** # (the [Google Container # Registry](https://cloud.google.com/container-registry/)). # # If unspecified, no scopes are added, unless Cloud Logging or Cloud # Monitoring are enabled, in which case their required scopes will be added. # @!attribute [rw] service_account # @return [::String] # The Google Cloud Platform Service Account to be used by the node VMs. # Specify the email address of the Service Account; otherwise, if no Service # Account is specified, the "default" service account is used. # @!attribute [rw] upgrade_settings # @return [::Google::Cloud::Container::V1beta1::NodePool::UpgradeSettings] # Upgrade settings control disruption and speed of the upgrade. # @!attribute [rw] management # @return [::Google::Cloud::Container::V1beta1::NodeManagement] # NodeManagement configuration for this NodePool. # @!attribute [rw] min_cpu_platform # @return [::String] # Minimum CPU platform to be used by this instance. The instance may be # scheduled on the specified or newer CPU platform. Applicable values are the # friendly names of CPU platforms, such as # `minCpuPlatform: "Intel Haswell"` or # `minCpuPlatform: "Intel Sandy Bridge"`. For more # information, read [how to specify min CPU # platform](https://cloud.google.com/compute/docs/instances/specify-min-cpu-platform) # To unset the min cpu platform field pass "automatic" # as field value. # @!attribute [rw] disk_size_gb # @return [::Integer] # Size of the disk attached to each node, specified in GB. # The smallest allowed disk size is 10GB. # # If unspecified, the default disk size is 100GB. # @!attribute [rw] disk_type # @return [::String] # Type of the disk attached to each node (e.g. 'pd-standard', 'pd-ssd' or # 'pd-balanced') # # If unspecified, the default disk type is 'pd-standard' # @!attribute [rw] shielded_instance_config # @return [::Google::Cloud::Container::V1beta1::ShieldedInstanceConfig] # Shielded Instance options. # @!attribute [rw] boot_disk_kms_key # @return [::String] # The Customer Managed Encryption Key used to encrypt the boot disk attached # to each node in the node pool. This should be of the form # projects/[KEY_PROJECT_ID]/locations/[LOCATION]/keyRings/[RING_NAME]/cryptoKeys/[KEY_NAME]. # For more information about protecting resources with Cloud KMS Keys please # see: # https://cloud.google.com/compute/docs/disks/customer-managed-encryption class AutoprovisioningNodePoolDefaults include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # Contains information about amount of some resource in the cluster. # For memory, value should be in GB. # @!attribute [rw] resource_type # @return [::String] # Resource name "cpu", "memory" or gpu-specific string. # @!attribute [rw] minimum # @return [::Integer] # Minimum amount of the resource in the cluster. # @!attribute [rw] maximum # @return [::Integer] # Maximum amount of the resource in the cluster. class ResourceLimit include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # NodePoolAutoscaling contains information required by cluster autoscaler to # adjust the size of the node pool to the current cluster usage. # @!attribute [rw] enabled # @return [::Boolean] # Is autoscaling enabled for this node pool. # @!attribute [rw] min_node_count # @return [::Integer] # Minimum number of nodes in the NodePool. Must be >= 1 and <= # max_node_count. # @!attribute [rw] max_node_count # @return [::Integer] # Maximum number of nodes in the NodePool. Must be >= min_node_count. There # has to enough quota to scale up the cluster. # @!attribute [rw] autoprovisioned # @return [::Boolean] # Can this node pool be deleted automatically. class NodePoolAutoscaling include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # SetLabelsRequest sets the Google Cloud Platform labels on a Google Container # Engine cluster, which will in turn set them for Google Compute Engine # resources used by that cluster # @!attribute [rw] project_id # @return [::String] # Required. Deprecated. The Google Developers Console [project ID or project # number](https://developers.google.com/console/help/new/#projectnumber). # This field has been deprecated and replaced by the name field. # @!attribute [rw] zone # @return [::String] # Required. Deprecated. The name of the Google Compute Engine # [zone](https://cloud.google.com/compute/docs/zones#available) in which the # cluster resides. This field has been deprecated and replaced by the name # field. # @!attribute [rw] cluster_id # @return [::String] # Required. Deprecated. The name of the cluster. # This field has been deprecated and replaced by the name field. # @!attribute [rw] resource_labels # @return [::Google::Protobuf::Map{::String => ::String}] # Required. The labels to set for that cluster. # @!attribute [rw] label_fingerprint # @return [::String] # Required. The fingerprint of the previous set of labels for this resource, # used to detect conflicts. The fingerprint is initially generated by # Kubernetes Engine and changes after every request to modify or update # labels. You must always provide an up-to-date fingerprint hash when # updating or changing labels. Make a `get()` request to the # resource to get the latest fingerprint. # @!attribute [rw] name # @return [::String] # The name (project, location, cluster id) of the cluster to set labels. # Specified in the format `projects/*/locations/*/clusters/*`. class SetLabelsRequest include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class ResourceLabelsEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end end # SetLegacyAbacRequest enables or disables the ABAC authorization mechanism for # a cluster. # @!attribute [rw] project_id # @return [::String] # Required. Deprecated. The Google Developers Console [project ID or project # number](https://support.google.com/cloud/answer/6158840). # This field has been deprecated and replaced by the name field. # @!attribute [rw] zone # @return [::String] # Required. Deprecated. The name of the Google Compute Engine # [zone](https://cloud.google.com/compute/docs/zones#available) in which the # cluster resides. This field has been deprecated and replaced by the name # field. # @!attribute [rw] cluster_id # @return [::String] # Required. Deprecated. The name of the cluster to update. # This field has been deprecated and replaced by the name field. # @!attribute [rw] enabled # @return [::Boolean] # Required. Whether ABAC authorization will be enabled in the cluster. # @!attribute [rw] name # @return [::String] # The name (project, location, cluster id) of the cluster to set legacy abac. # Specified in the format `projects/*/locations/*/clusters/*`. class SetLegacyAbacRequest include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # StartIPRotationRequest creates a new IP for the cluster and then performs # a node upgrade on each node pool to point to the new IP. # @!attribute [rw] project_id # @return [::String] # Required. Deprecated. The Google Developers Console [project ID or project # number](https://developers.google.com/console/help/new/#projectnumber). # This field has been deprecated and replaced by the name field. # @!attribute [rw] zone # @return [::String] # Required. Deprecated. The name of the Google Compute Engine # [zone](https://cloud.google.com/compute/docs/zones#available) in which the # cluster resides. This field has been deprecated and replaced by the name # field. # @!attribute [rw] cluster_id # @return [::String] # Required. Deprecated. The name of the cluster. # This field has been deprecated and replaced by the name field. # @!attribute [rw] name # @return [::String] # The name (project, location, cluster id) of the cluster to start IP # rotation. Specified in the format `projects/*/locations/*/clusters/*`. # @!attribute [rw] rotate_credentials # @return [::Boolean] # Whether to rotate credentials during IP rotation. class StartIPRotationRequest include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # CompleteIPRotationRequest moves the cluster master back into single-IP mode. # @!attribute [rw] project_id # @return [::String] # Required. Deprecated. The Google Developers Console [project ID or project # number](https://developers.google.com/console/help/new/#projectnumber). # This field has been deprecated and replaced by the name field. # @!attribute [rw] zone # @return [::String] # Required. Deprecated. The name of the Google Compute Engine # [zone](https://cloud.google.com/compute/docs/zones#available) in which the # cluster resides. This field has been deprecated and replaced by the name # field. # @!attribute [rw] cluster_id # @return [::String] # Required. Deprecated. The name of the cluster. # This field has been deprecated and replaced by the name field. # @!attribute [rw] name # @return [::String] # The name (project, location, cluster id) of the cluster to complete IP # rotation. Specified in the format `projects/*/locations/*/clusters/*`. class CompleteIPRotationRequest include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # AcceleratorConfig represents a Hardware Accelerator request. # @!attribute [rw] accelerator_count # @return [::Integer] # The number of the accelerator cards exposed to an instance. # @!attribute [rw] accelerator_type # @return [::String] # The accelerator type resource name. List of supported accelerators # [here](https://cloud.google.com/compute/docs/gpus) class AcceleratorConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # WorkloadMetadataConfig defines the metadata configuration to expose to # workloads on the node pool. # @!attribute [rw] node_metadata # @return [::Google::Cloud::Container::V1beta1::WorkloadMetadataConfig::NodeMetadata] # NodeMetadata is the configuration for how to expose metadata to the # workloads running on the node. # @!attribute [rw] mode # @return [::Google::Cloud::Container::V1beta1::WorkloadMetadataConfig::Mode] # Mode is the configuration for how to expose metadata to workloads running # on the node pool. class WorkloadMetadataConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # NodeMetadata is the configuration for if and how to expose the node # metadata to the workload running on the node. module NodeMetadata # Not set. UNSPECIFIED = 0 # Prevent workloads not in hostNetwork from accessing certain VM metadata, # specifically kube-env, which contains Kubelet credentials, and the # instance identity token. # # Metadata concealment is a temporary security solution available while the # bootstrapping process for cluster nodes is being redesigned with # significant security improvements. This feature is scheduled to be # deprecated in the future and later removed. SECURE = 1 # Expose all VM metadata to pods. EXPOSE = 2 # Run the GKE Metadata Server on this node. The GKE Metadata Server exposes # a metadata API to workloads that is compatible with the V1 Compute # Metadata APIs exposed by the Compute Engine and App Engine Metadata # Servers. This feature can only be enabled if Workload Identity is enabled # at the cluster level. GKE_METADATA_SERVER = 3 end # Mode is the configuration for how to expose metadata to workloads running # on the node. module Mode # Not set. MODE_UNSPECIFIED = 0 # Expose all Compute Engine metadata to pods. GCE_METADATA = 1 # Run the GKE Metadata Server on this node. The GKE Metadata Server exposes # a metadata API to workloads that is compatible with the V1 Compute # Metadata APIs exposed by the Compute Engine and App Engine Metadata # Servers. This feature can only be enabled if Workload Identity is enabled # at the cluster level. GKE_METADATA = 2 end end # SetNetworkPolicyRequest enables/disables network policy for a cluster. # @!attribute [rw] project_id # @return [::String] # Required. Deprecated. The Google Developers Console [project ID or project # number](https://developers.google.com/console/help/new/#projectnumber). # This field has been deprecated and replaced by the name field. # @!attribute [rw] zone # @return [::String] # Required. Deprecated. The name of the Google Compute Engine # [zone](https://cloud.google.com/compute/docs/zones#available) in which the # cluster resides. This field has been deprecated and replaced by the name # field. # @!attribute [rw] cluster_id # @return [::String] # Required. Deprecated. The name of the cluster. # This field has been deprecated and replaced by the name field. # @!attribute [rw] network_policy # @return [::Google::Cloud::Container::V1beta1::NetworkPolicy] # Required. Configuration options for the NetworkPolicy feature. # @!attribute [rw] name # @return [::String] # The name (project, location, cluster id) of the cluster to set networking # policy. Specified in the format `projects/*/locations/*/clusters/*`. class SetNetworkPolicyRequest include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # SetMaintenancePolicyRequest sets the maintenance policy for a cluster. # @!attribute [rw] project_id # @return [::String] # Required. The Google Developers Console [project ID or project # number](https://support.google.com/cloud/answer/6158840). # @!attribute [rw] zone # @return [::String] # Required. The name of the Google Compute Engine # [zone](https://cloud.google.com/compute/docs/zones#available) in which the # cluster resides. # @!attribute [rw] cluster_id # @return [::String] # Required. The name of the cluster to update. # @!attribute [rw] maintenance_policy # @return [::Google::Cloud::Container::V1beta1::MaintenancePolicy] # Required. The maintenance policy to be set for the cluster. An empty field # clears the existing maintenance policy. # @!attribute [rw] name # @return [::String] # The name (project, location, cluster id) of the cluster to set maintenance # policy. # Specified in the format `projects/*/locations/*/clusters/*`. class SetMaintenancePolicyRequest include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # ListLocationsRequest is used to request the locations that offer GKE. # @!attribute [rw] parent # @return [::String] # Required. Contains the name of the resource requested. # Specified in the format `projects/*`. class ListLocationsRequest include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # ListLocationsResponse returns the list of all GKE locations and their # recommendation state. # @!attribute [rw] locations # @return [::Array<::Google::Cloud::Container::V1beta1::Location>] # A full list of GKE locations. # @!attribute [rw] next_page_token # @return [::String] # Only return ListLocationsResponse that occur after the page_token. This # value should be populated from the ListLocationsResponse.next_page_token if # that response token was set (which happens when listing more Locations than # fit in a single ListLocationsResponse). class ListLocationsResponse include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # Location returns the location name, and if the location is recommended # for GKE cluster scheduling. # @!attribute [rw] type # @return [::Google::Cloud::Container::V1beta1::Location::LocationType] # Contains the type of location this Location is for. # Regional or Zonal. # @!attribute [rw] name # @return [::String] # Contains the name of the resource requested. # Specified in the format `projects/*/locations/*`. # @!attribute [rw] recommended # @return [::Boolean] # Whether the location is recomended for GKE cluster scheduling. class Location include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # LocationType is the type of GKE location, regional or zonal. module LocationType # LOCATION_TYPE_UNSPECIFIED means the location type was not determined. LOCATION_TYPE_UNSPECIFIED = 0 # A GKE Location where Zonal clusters can be created. ZONE = 1 # A GKE Location where Regional clusters can be created. REGION = 2 end end # StatusCondition describes why a cluster or a node pool has a certain status # (e.g., ERROR or DEGRADED). # @!attribute [rw] code # @return [::Google::Cloud::Container::V1beta1::StatusCondition::Code] # Machine-friendly representation of the condition # Deprecated. Use canonical_code instead. # @!attribute [rw] message # @return [::String] # Human-friendly representation of the condition # @!attribute [rw] canonical_code # @return [::Google::Rpc::Code] # Canonical code of the condition. class StatusCondition include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # Code for each condition module Code # UNKNOWN indicates a generic condition. UNKNOWN = 0 # GCE_STOCKOUT indicates that Google Compute Engine resources are # temporarily unavailable. GCE_STOCKOUT = 1 # GKE_SERVICE_ACCOUNT_DELETED indicates that the user deleted their robot # service account. GKE_SERVICE_ACCOUNT_DELETED = 2 # Google Compute Engine quota was exceeded. GCE_QUOTA_EXCEEDED = 3 # Cluster state was manually changed by an SRE due to a system logic error. SET_BY_OPERATOR = 4 # Unable to perform an encrypt operation against the CloudKMS key used for # etcd level encryption. # More codes TBA CLOUD_KMS_KEY_ERROR = 7 end end # NetworkConfig reports the relative names of network & subnetwork. # @!attribute [rw] network # @return [::String] # Output only. The relative name of the Google Compute Engine # {::Google::Cloud::Container::V1beta1::NetworkConfig#network network}(https://cloud.google.com/compute/docs/networks-and-firewalls#networks) # to which the cluster is connected. Example: # projects/my-project/global/networks/my-network # @!attribute [rw] subnetwork # @return [::String] # Output only. The relative name of the Google Compute Engine # [subnetwork](https://cloud.google.com/compute/docs/vpc) to which the # cluster is connected. Example: # projects/my-project/regions/us-central1/subnetworks/my-subnet # @!attribute [rw] enable_intra_node_visibility # @return [::Boolean] # Whether Intra-node visibility is enabled for this cluster. # This makes same node pod to pod traffic visible for VPC network. # @!attribute [rw] default_snat_status # @return [::Google::Cloud::Container::V1beta1::DefaultSnatStatus] # Whether the cluster disables default in-node sNAT rules. In-node sNAT rules # will be disabled when default_snat_status is disabled. When disabled is set # to false, default IP masquerade rules will be applied to the nodes to # prevent sNAT on cluster internal traffic. # @!attribute [rw] datapath_provider # @return [::Google::Cloud::Container::V1beta1::DatapathProvider] # The desired datapath provider for this cluster. By default, uses the # IPTables-based kube-proxy implementation. class NetworkConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # ListUsableSubnetworksRequest requests the list of usable subnetworks. # available to a user for creating clusters. # @!attribute [rw] parent # @return [::String] # Required. The parent project where subnetworks are usable. # Specified in the format `projects/*`. # @!attribute [rw] filter # @return [::String] # Filtering currently only supports equality on the networkProjectId and must # be in the form: "networkProjectId=[PROJECTID]", where `networkProjectId` # is the project which owns the listed subnetworks. This defaults to the # parent project ID. # @!attribute [rw] page_size # @return [::Integer] # The max number of results per page that should be returned. If the number # of available results is larger than `page_size`, a `next_page_token` is # returned which can be used to get the next page of results in subsequent # requests. Acceptable values are 0 to 500, inclusive. (Default: 500) # @!attribute [rw] page_token # @return [::String] # Specifies a page token to use. Set this to the nextPageToken returned by # previous list requests to get the next page of results. class ListUsableSubnetworksRequest include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # ListUsableSubnetworksResponse is the response of # ListUsableSubnetworksRequest. # @!attribute [rw] subnetworks # @return [::Array<::Google::Cloud::Container::V1beta1::UsableSubnetwork>] # A list of usable subnetworks in the specified network project. # @!attribute [rw] next_page_token # @return [::String] # This token allows you to get the next page of results for list requests. # If the number of results is larger than `page_size`, use the # `next_page_token` as a value for the query parameter `page_token` in the # next request. The value will become empty when there are no more pages. class ListUsableSubnetworksResponse include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # Secondary IP range of a usable subnetwork. # @!attribute [rw] range_name # @return [::String] # The name associated with this subnetwork secondary range, used when adding # an alias IP range to a VM instance. # @!attribute [rw] ip_cidr_range # @return [::String] # The range of IP addresses belonging to this subnetwork secondary range. # @!attribute [rw] status # @return [::Google::Cloud::Container::V1beta1::UsableSubnetworkSecondaryRange::Status] # This field is to determine the status of the secondary range programmably. class UsableSubnetworkSecondaryRange include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # Status shows the current usage of a secondary IP range. module Status # UNKNOWN is the zero value of the Status enum. It's not a valid status. UNKNOWN = 0 # UNUSED denotes that this range is unclaimed by any cluster. UNUSED = 1 # IN_USE_SERVICE denotes that this range is claimed by a cluster for # services. It cannot be used for other clusters. IN_USE_SERVICE = 2 # IN_USE_SHAREABLE_POD denotes this range was created by the network admin # and is currently claimed by a cluster for pods. It can only be used by # other clusters as a pod range. IN_USE_SHAREABLE_POD = 3 # IN_USE_MANAGED_POD denotes this range was created by GKE and is claimed # for pods. It cannot be used for other clusters. IN_USE_MANAGED_POD = 4 end end # UsableSubnetwork resource returns the subnetwork name, its associated network # and the primary CIDR range. # @!attribute [rw] subnetwork # @return [::String] # Subnetwork Name. # Example: projects/my-project/regions/us-central1/subnetworks/my-subnet # @!attribute [rw] network # @return [::String] # Network Name. # Example: projects/my-project/global/networks/my-network # @!attribute [rw] ip_cidr_range # @return [::String] # The range of internal addresses that are owned by this subnetwork. # @!attribute [rw] secondary_ip_ranges # @return [::Array<::Google::Cloud::Container::V1beta1::UsableSubnetworkSecondaryRange>] # Secondary IP ranges. # @!attribute [rw] status_message # @return [::String] # A human readable status message representing the reasons for cases where # the caller cannot use the secondary ranges under the subnet. For example if # the secondary_ip_ranges is empty due to a permission issue, an insufficient # permission message will be given by status_message. class UsableSubnetwork include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # VerticalPodAutoscaling contains global, per-cluster information # required by Vertical Pod Autoscaler to automatically adjust # the resources of pods controlled by it. # @!attribute [rw] enabled # @return [::Boolean] # Enables vertical pod autoscaling. class VerticalPodAutoscaling include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # DefaultSnatStatus contains the desired state of whether default sNAT should # be disabled on the cluster. # @!attribute [rw] disabled # @return [::Boolean] # Disables cluster default sNAT rules. class DefaultSnatStatus include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # IntraNodeVisibilityConfig contains the desired config of the intra-node # visibility on this cluster. # @!attribute [rw] enabled # @return [::Boolean] # Enables intra node visibility for this cluster. class IntraNodeVisibilityConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # Constraints applied to pods. # @!attribute [rw] max_pods_per_node # @return [::Integer] # Constraint enforced on the max num of pods per node. class MaxPodsConstraint include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # Configuration for the use of Kubernetes Service Accounts in GCP IAM # policies. # @!attribute [rw] identity_namespace # @return [::String] # IAM Identity Namespace to attach all Kubernetes Service Accounts to. # @!attribute [rw] workload_pool # @return [::String] # The workload pool to attach all Kubernetes service accounts to. # @!attribute [rw] identity_provider # @return [::String] # identity provider is the third party identity provider. class WorkloadIdentityConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # Configuration of etcd encryption. # @!attribute [rw] state # @return [::Google::Cloud::Container::V1beta1::DatabaseEncryption::State] # Denotes the state of etcd encryption. # @!attribute [rw] key_name # @return [::String] # Name of CloudKMS key to use for the encryption of secrets in etcd. # Ex. projects/my-project/locations/global/keyRings/my-ring/cryptoKeys/my-key class DatabaseEncryption include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # State of etcd encryption. module State # Should never be set UNKNOWN = 0 # Secrets in etcd are encrypted. ENCRYPTED = 1 # Secrets in etcd are stored in plain text (at etcd level) - this is # unrelated to Compute Engine level full disk encryption. DECRYPTED = 2 end end # Configuration for exporting cluster resource usages. # @!attribute [rw] bigquery_destination # @return [::Google::Cloud::Container::V1beta1::ResourceUsageExportConfig::BigQueryDestination] # Configuration to use BigQuery as usage export destination. # @!attribute [rw] enable_network_egress_metering # @return [::Boolean] # Whether to enable network egress metering for this cluster. If enabled, a # daemonset will be created in the cluster to meter network egress traffic. # @!attribute [rw] consumption_metering_config # @return [::Google::Cloud::Container::V1beta1::ResourceUsageExportConfig::ConsumptionMeteringConfig] # Configuration to enable resource consumption metering. class ResourceUsageExportConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # Parameters for using BigQuery as the destination of resource usage export. # @!attribute [rw] dataset_id # @return [::String] # The ID of a BigQuery Dataset. class BigQueryDestination include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # Parameters for controlling consumption metering. # @!attribute [rw] enabled # @return [::Boolean] # Whether to enable consumption metering for this cluster. If enabled, a # second BigQuery table will be created to hold resource consumption # records. class ConsumptionMeteringConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end end # Configuration of Shielded Nodes feature. # @!attribute [rw] enabled # @return [::Boolean] # Whether Shielded Nodes features are enabled on all nodes in this cluster. class ShieldedNodes include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # GetOpenIDConfigRequest gets the OIDC discovery document for the # cluster. See the OpenID Connect Discovery 1.0 specification for details. # @!attribute [rw] parent # @return [::String] # The cluster (project, location, cluster id) to get the discovery document # for. Specified in the format `projects/*/locations/*/clusters/*`. class GetOpenIDConfigRequest include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # GetOpenIDConfigResponse 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 GetOpenIDConfigResponse include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # GetJSONWebKeysRequest gets the public component of the keys used by the # cluster to sign token requests. This will be the jwks_uri for the discover # document returned by getOpenIDConfig. See the OpenID Connect # Discovery 1.0 specification for details. # @!attribute [rw] parent # @return [::String] # The cluster (project, location, cluster id) to get keys for. Specified in # the format `projects/*/locations/*/clusters/*`. class GetJSONWebKeysRequest include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # Jwk is a JSON Web Key as specified in RFC 7517 # @!attribute [rw] kty # @return [::String] # Key Type. # @!attribute [rw] alg # @return [::String] # Algorithm. # @!attribute [rw] use # @return [::String] # Permitted uses for the public keys. # @!attribute [rw] kid # @return [::String] # Key ID. # @!attribute [rw] n # @return [::String] # Used for RSA keys. # @!attribute [rw] e # @return [::String] # Used for RSA keys. # @!attribute [rw] x # @return [::String] # Used for ECDSA keys. # @!attribute [rw] y # @return [::String] # Used for ECDSA keys. # @!attribute [rw] crv # @return [::String] # Used for ECDSA keys. class Jwk include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # GetJSONWebKeysResponse is a valid JSON Web Key Set as specififed in rfc 7517 # @!attribute [rw] keys # @return [::Array<::Google::Cloud::Container::V1beta1::Jwk>] # The public component of the keys used by the cluster to sign token # requests. class GetJSONWebKeysResponse include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # ReleaseChannel indicates which release channel a cluster is # subscribed to. Release channels are arranged in order of risk. # # When a cluster is subscribed to a release channel, Google maintains # both the master version and the node version. Node auto-upgrade # defaults to true and cannot be disabled. # @!attribute [rw] channel # @return [::Google::Cloud::Container::V1beta1::ReleaseChannel::Channel] # channel specifies which release channel the cluster is subscribed to. class ReleaseChannel include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # Possible values for 'channel'. module Channel # No channel specified. UNSPECIFIED = 0 # RAPID channel is offered on an early access basis for customers who want # to test new releases. # # WARNING: Versions available in the RAPID Channel may be subject to # unresolved issues with no known workaround and are not subject to any # SLAs. RAPID = 1 # Clusters subscribed to REGULAR receive versions that are considered GA # quality. REGULAR is intended for production users who want to take # advantage of new features. REGULAR = 2 # Clusters subscribed to STABLE receive versions that are known to be # stable and reliable in production. STABLE = 3 end end # Configuration for Cloud TPU. # @!attribute [rw] enabled # @return [::Boolean] # Whether Cloud TPU integration is enabled or not. # @!attribute [rw] use_service_networking # @return [::Boolean] # Whether to use service networking for Cloud TPU or not. # @!attribute [rw] ipv4_cidr_block # @return [::String] # IPv4 CIDR block reserved for Cloud TPU in the VPC. class TpuConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # Master is the configuration for components on master. class Master include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # NotificationConfig is the configuration of notifications. # @!attribute [rw] pubsub # @return [::Google::Cloud::Container::V1beta1::NotificationConfig::PubSub] # Notification config for Pub/Sub. class NotificationConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # Pub/Sub specific notification config. # @!attribute [rw] enabled # @return [::Boolean] # Enable notifications for Pub/Sub. # @!attribute [rw] topic # @return [::String] # The desired Pub/Sub topic to which notifications will be # sent by GKE. Format is `projects/{project}/topics/{topic}`. class PubSub include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end end # ConfidentialNodes is configuration for the confidential nodes feature, which # makes nodes run on confidential VMs. # @!attribute [rw] enabled # @return [::Boolean] # Whether Confidential Nodes feature is enabled for all nodes in this # cluster. class ConfidentialNodes include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # UpgradeEvent is a notification sent to customers by the cluster server when # a resource is upgrading. # @!attribute [rw] resource_type # @return [::Google::Cloud::Container::V1beta1::UpgradeResourceType] # Required. The resource type that is upgrading. # @!attribute [rw] operation # @return [::String] # Required. The operation associated with this upgrade. # @!attribute [rw] operation_start_time # @return [::Google::Protobuf::Timestamp] # Required. The time when the operation was started. # @!attribute [rw] current_version # @return [::String] # Required. The current version before the upgrade. # @!attribute [rw] target_version # @return [::String] # Required. The target version for the upgrade. # @!attribute [rw] resource # @return [::String] # Optional. Optional relative path to the resource. For example in node pool upgrades, # the relative path of the node pool. class UpgradeEvent include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # The datapath provider selects the implementation of the Kubernetes networking # // model for service resolution and network policy enforcement. module DatapathProvider # Default value. DATAPATH_PROVIDER_UNSPECIFIED = 0 # Use the IPTables implementation based on kube-proxy. LEGACY_DATAPATH = 1 # Use the eBPF based GKE Dataplane V2 with additional features. See the [GKE # Dataplane V2 # documentation](https://cloud.google.com/kubernetes-enginw/docs/how-to/dataplane-v2) # for more. ADVANCED_DATAPATH = 2 end # UpgradeResourceType is the resource type that is upgrading. It is used # in upgrade notifications. module UpgradeResourceType # Default value. This shouldn't be used. UPGRADE_RESOURCE_TYPE_UNSPECIFIED = 0 # Master / control plane MASTER = 1 # Node pool NODE_POOL = 2 end end end end end