# Copyright 2025 Google LLC. All Rights Reserved.
# 
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# 
#     http://www.apache.org/licenses/LICENSE-2.0
# 
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
info:
  title: Container/Cluster
  description: The Container Cluster resource
  x-dcl-struct-name: Cluster
  x-dcl-has-iam: false
paths:
  get:
    description: The function used to get information about a Cluster
    parameters:
    - name: cluster
      required: true
      description: A full instance of a Cluster
  apply:
    description: The function used to apply information about a Cluster
    parameters:
    - name: cluster
      required: true
      description: A full instance of a Cluster
  delete:
    description: The function used to delete a Cluster
    parameters:
    - name: cluster
      required: true
      description: A full instance of a Cluster
  deleteAll:
    description: The function used to delete all Cluster
    parameters:
    - name: project
      required: true
      schema:
        type: string
    - name: location
      required: true
      schema:
        type: string
  list:
    description: The function used to list information about many Cluster
    parameters:
    - name: project
      required: true
      schema:
        type: string
    - name: location
      required: true
      schema:
        type: string
components:
  schemas:
    Cluster:
      title: Cluster
      x-dcl-id: projects/{{project}}/locations/{{location}}/clusters/{{name}}
      x-dcl-uses-state-hint: true
      x-dcl-parent-container: project
      x-dcl-labels: labelFingerprint
      x-dcl-has-create: true
      x-dcl-has-iam: false
      x-dcl-read-timeout: 0
      x-dcl-apply-timeout: 4800
      x-dcl-delete-timeout: 4800
      type: object
      required:
      - name
      - location
      - project
      properties:
        addonsConfig:
          type: object
          x-dcl-go-name: AddonsConfig
          x-dcl-go-type: ClusterAddonsConfig
          description: Configurations for the various addons available to run in the
            cluster.
          properties:
            cloudRunConfig:
              type: object
              x-dcl-go-name: CloudRunConfig
              x-dcl-go-type: ClusterAddonsConfigCloudRunConfig
              description: Configuration for Cloud Run.
              properties:
                disabled:
                  type: boolean
                  x-dcl-go-name: Disabled
                  description: Whether CloudRun is enabled for this cluster.
                  x-dcl-send-empty: true
                loadBalancerType:
                  type: string
                  x-dcl-go-name: LoadBalancerType
                  x-dcl-go-type: ClusterAddonsConfigCloudRunConfigLoadBalancerTypeEnum
                  description: 'Which load balancer type is installed for Cloud Run.
                    Possible values: LOAD_BALANCER_TYPE_UNSPECIFIED, LOAD_BALANCER_TYPE_EXTERNAL,
                    LOAD_BALANCER_TYPE_INTERNAL'
                  enum:
                  - LOAD_BALANCER_TYPE_UNSPECIFIED
                  - LOAD_BALANCER_TYPE_EXTERNAL
                  - LOAD_BALANCER_TYPE_INTERNAL
            configConnectorConfig:
              type: object
              x-dcl-go-name: ConfigConnectorConfig
              x-dcl-go-type: ClusterAddonsConfigConfigConnectorConfig
              description: Configuration for the ConfigConnector add-on, a Kubernetes
                extension to manage hosted GCP services through the Kubernetes API
              properties:
                enabled:
                  type: boolean
                  x-dcl-go-name: Enabled
                  description: Whether Cloud Connector is enabled for this cluster.
            dnsCacheConfig:
              type: object
              x-dcl-go-name: DnsCacheConfig
              x-dcl-go-type: ClusterAddonsConfigDnsCacheConfig
              description: Configuration for NodeLocalDNS, a dns cache running on
                cluster nodes
              properties:
                enabled:
                  type: boolean
                  x-dcl-go-name: Enabled
                  description: Whether NodeLocal DNSCache is enabled for this cluster.
            gcePersistentDiskCsiDriverConfig:
              type: object
              x-dcl-go-name: GcePersistentDiskCsiDriverConfig
              x-dcl-go-type: ClusterAddonsConfigGcePersistentDiskCsiDriverConfig
              description: Configuration for the Compute Engine Persistent Disk CSI
                driver.
              properties:
                enabled:
                  type: boolean
                  x-dcl-go-name: Enabled
                  description: Whether the Compute Engine PD CSI driver is enabled
                    for this cluster.
            horizontalPodAutoscaling:
              type: object
              x-dcl-go-name: HorizontalPodAutoscaling
              x-dcl-go-type: ClusterAddonsConfigHorizontalPodAutoscaling
              description: 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.
              properties:
                disabled:
                  type: boolean
                  x-dcl-go-name: Disabled
                  description: Whether the Horizontal Pod Autoscaling feature is enabled
                    in the cluster. When enabled, it ensures that a Heapster pod is
                    running in the cluster, which is also used by the Cloud Monitoring
                    service.
                  x-dcl-send-empty: true
            httpLoadBalancing:
              type: object
              x-dcl-go-name: HttpLoadBalancing
              x-dcl-go-type: ClusterAddonsConfigHttpLoadBalancing
              description: Configuration for the HTTP (L7) load balancing controller
                addon, which makes it easy to set up HTTP load balancers for services
                in a cluster.
              properties:
                disabled:
                  type: boolean
                  x-dcl-go-name: Disabled
                  description: 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.
                  x-dcl-send-empty: true
            istioConfig:
              type: object
              x-dcl-go-name: IstioConfig
              x-dcl-go-type: ClusterAddonsConfigIstioConfig
              description: Configuration for Istio, an open platform to connect, manage,
                and secure microservices.
              properties:
                auth:
                  type: string
                  x-dcl-go-name: Auth
                  x-dcl-go-type: ClusterAddonsConfigIstioConfigAuthEnum
                  description: 'The specified Istio auth mode, either none, or mutual
                    TLS. Possible values: AUTH_NONE, AUTH_MUTUAL_TLS'
                  enum:
                  - AUTH_NONE
                  - AUTH_MUTUAL_TLS
                disabled:
                  type: boolean
                  x-dcl-go-name: Disabled
                  description: Whether Istio is enabled for this cluster.
            kalmConfig:
              type: object
              x-dcl-go-name: KalmConfig
              x-dcl-go-type: ClusterAddonsConfigKalmConfig
              description: Configuration for the KALM addon, which manages the lifecycle
                of k8s applications.
              properties:
                enabled:
                  type: boolean
                  x-dcl-go-name: Enabled
                  description: Whether KALM is enabled for this cluster.
            networkPolicyConfig:
              type: object
              x-dcl-go-name: NetworkPolicyConfig
              x-dcl-go-type: ClusterAddonsConfigNetworkPolicyConfig
              description: 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.
              properties:
                disabled:
                  type: boolean
                  x-dcl-go-name: Disabled
                  description: Whether NetworkPolicy is enabled for this cluster.
                  x-dcl-send-empty: true
        authenticatorGroupsConfig:
          type: object
          x-dcl-go-name: AuthenticatorGroupsConfig
          x-dcl-go-type: ClusterAuthenticatorGroupsConfig
          description: Configuration for returning group information from authenticators.
          x-kubernetes-immutable: true
          properties:
            enabled:
              type: boolean
              x-dcl-go-name: Enabled
              description: Whether this cluster should return group membership lookups
                during authentication using a group of security groups.
              x-kubernetes-immutable: true
            securityGroup:
              type: string
              x-dcl-go-name: SecurityGroup
              description: The name of the security group-of-groups to be used
              x-kubernetes-immutable: true
        autopilot:
          type: object
          x-dcl-go-name: Autopilot
          x-dcl-go-type: ClusterAutopilot
          description: Configuration for autopilot setting on the cluster.
          x-kubernetes-immutable: true
          properties:
            enabled:
              type: boolean
              x-dcl-go-name: Enabled
              description: Whether the autopilot setting is enabled in the cluster.
              x-kubernetes-immutable: true
        autoscaling:
          type: object
          x-dcl-go-name: Autoscaling
          x-dcl-go-type: ClusterAutoscaling
          description: Cluster-level autoscaling configuration.
          properties:
            autoprovisioningLocations:
              type: array
              x-dcl-go-name: AutoprovisioningLocations
              description: The list of Google Compute Engine (https://cloud.google.com/compute/docs/zones#available)
                in which the NodePool's nodes can be created by NAP.
              x-kubernetes-immutable: true
              x-dcl-send-empty: true
              x-dcl-list-type: list
              items:
                type: string
                x-dcl-go-type: string
            autoprovisioningNodePoolDefaults:
              type: object
              x-dcl-go-name: AutoprovisioningNodePoolDefaults
              x-dcl-go-type: ClusterAutoscalingAutoprovisioningNodePoolDefaults
              properties:
                bootDiskKmsKey:
                  type: string
                  x-dcl-go-name: BootDiskKmsKey
                  description: '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/. For more information about protecting
                    resources with Cloud KMS Keys please see: https://cloud.google.com/compute/docs/disks/customer-managed-encryption'
                  x-kubernetes-immutable: true
                diskSizeGb:
                  type: integer
                  format: int64
                  x-dcl-go-name: DiskSizeGb
                  description: 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.
                  x-kubernetes-immutable: true
                diskType:
                  type: string
                  x-dcl-go-name: DiskType
                  description: 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'
                  x-kubernetes-immutable: true
                management:
                  type: object
                  x-dcl-go-name: Management
                  x-dcl-go-type: ClusterAutoscalingAutoprovisioningNodePoolDefaultsManagement
                  description: Specifies the node management options for NAP created
                    node-pools.
                  properties:
                    autoRepair:
                      type: boolean
                      x-dcl-go-name: AutoRepair
                      description: A flag that specifies whether the node auto-repair
                        is enabled for the node pool
                    autoUpgrade:
                      type: boolean
                      x-dcl-go-name: AutoUpgrade
                      description: A flag that specifies whether node auto-upgrade
                        is enabled for the node pool
                    upgradeOptions:
                      type: object
                      x-dcl-go-name: UpgradeOptions
                      x-dcl-go-type: ClusterAutoscalingAutoprovisioningNodePoolDefaultsManagementUpgradeOptions
                      description: Specifies the Auto Upgrade knobs for the node pool.
                      x-kubernetes-immutable: true
                      properties:
                        autoUpgradeStartTime:
                          type: string
                          x-dcl-go-name: AutoUpgradeStartTime
                          description: (https://www.ietf.org/rfc/rfc3339.txt) text
                            format.
                          x-kubernetes-immutable: true
                        description:
                          type: string
                          x-dcl-go-name: Description
                          description: This field is set when upgrades are about to
                            commence with the description of the upgrade.
                          x-kubernetes-immutable: true
                minCpuPlatform:
                  type: string
                  x-dcl-go-name: MinCpuPlatform
                  description: 'Minimum CPU platform to be used for NAP created node
                    pools. 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 (https://cloud.google.com/compute/docs/instances/specify-min-cpu-platform)
                    To unset the min cpu platform field pass "automatic" as field
                    value.'
                  x-kubernetes-immutable: true
                oauthScopes:
                  type: array
                  x-dcl-go-name: OAuthScopes
                  description: Scopes that are used by NAP when creating node pools.
                  x-dcl-send-empty: true
                  x-dcl-list-type: list
                  items:
                    type: string
                    x-dcl-go-type: string
                serviceAccount:
                  type: string
                  x-dcl-go-name: ServiceAccount
                  description: The Google Cloud Platform Service Account to be used
                    by the node VMs.
                shieldedInstanceConfig:
                  type: object
                  x-dcl-go-name: ShieldedInstanceConfig
                  x-dcl-go-type: ClusterAutoscalingAutoprovisioningNodePoolDefaultsShieldedInstanceConfig
                  description: Shielded Instance options.
                  x-kubernetes-immutable: true
                  properties:
                    enableIntegrityMonitoring:
                      type: boolean
                      x-dcl-go-name: EnableIntegrityMonitoring
                      description: 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.
                      x-kubernetes-immutable: true
                    enableSecureBoot:
                      type: boolean
                      x-dcl-go-name: EnableSecureBoot
                      description: 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.
                      x-kubernetes-immutable: true
                upgradeSettings:
                  type: object
                  x-dcl-go-name: UpgradeSettings
                  x-dcl-go-type: ClusterAutoscalingAutoprovisioningNodePoolDefaultsUpgradeSettings
                  description: Specifies the upgrade settings for NAP created node
                    pools
                  properties:
                    maxSurge:
                      type: integer
                      format: int64
                      x-dcl-go-name: MaxSurge
                      description: The maximum number of nodes that can be created
                        beyond the current size of the node pool during the upgrade
                        process.
                    maxUnavailable:
                      type: integer
                      format: int64
                      x-dcl-go-name: MaxUnavailable
                      description: The maximum number of nodes that can be simultaneously
                        unavailable during the upgrade process. A node is considered
                        available if its status is Ready.
            autoscalingProfile:
              type: string
              x-dcl-go-name: AutoscalingProfile
              x-dcl-go-type: ClusterAutoscalingAutoscalingProfileEnum
              description: 'Defines autoscaling behaviour. Possible values: PROFILE_UNSPECIFIED,
                OPTIMIZE_UTILIZATION, BALANCED'
              x-kubernetes-immutable: true
              enum:
              - PROFILE_UNSPECIFIED
              - OPTIMIZE_UTILIZATION
              - BALANCED
            enableNodeAutoprovisioning:
              type: boolean
              x-dcl-go-name: EnableNodeAutoprovisioning
              description: Enables automatic node pool creation and deletion
            resourceLimits:
              type: array
              x-dcl-go-name: ResourceLimits
              description: Contains global constraints regarding minimum and maximum
                amount of resources in the cluster.
              x-dcl-send-empty: true
              x-dcl-list-type: list
              items:
                type: object
                x-dcl-go-type: ClusterAutoscalingResourceLimits
                properties:
                  maximum:
                    type: integer
                    format: int64
                    x-dcl-go-name: Maximum
                    description: Maximum amount of the resource in the cluster
                  minimum:
                    type: integer
                    format: int64
                    x-dcl-go-name: Minimum
                    description: Minimum amount of the resource in the cluster
                  resourceType:
                    type: string
                    x-dcl-go-name: ResourceType
                    description: Resource name 'cpu', 'memory' or gpu-specific string.
        binaryAuthorization:
          type: object
          x-dcl-go-name: BinaryAuthorization
          x-dcl-go-type: ClusterBinaryAuthorization
          description: Configuration for Binary Authorization
          properties:
            enabled:
              type: boolean
              x-dcl-go-name: Enabled
              description: Enable Binary Authorization for this cluster. If enabled,
                all container images will be validated by Binary Authorization.
        clusterIPv4Cidr:
          type: string
          x-dcl-go-name: ClusterIPv4Cidr
          description: The IP address range of the container pods in this cluster,
            in CIDR 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.
          x-kubernetes-immutable: true
        clusterTelemetry:
          type: object
          x-dcl-go-name: ClusterTelemetry
          x-dcl-go-type: ClusterClusterTelemetry
          description: Telemetry integration for the cluster.
          x-kubernetes-immutable: true
          properties:
            type:
              type: string
              x-dcl-go-name: Type
              x-dcl-go-type: ClusterClusterTelemetryTypeEnum
              description: 'Type of the integration. Possible values: UNSPECIFIED,
                GVISOR'
              x-kubernetes-immutable: true
              enum:
              - UNSPECIFIED
              - GVISOR
        conditions:
          type: array
          x-dcl-go-name: Conditions
          readOnly: true
          description: Which conditions caused the current cluster state.
          x-kubernetes-immutable: true
          x-dcl-list-type: list
          items:
            type: object
            x-dcl-go-type: ClusterConditions
            properties:
              canonicalCode:
                type: string
                x-dcl-go-name: CanonicalCode
                x-dcl-go-type: ClusterConditionsCanonicalCodeEnum
                description: 'Canonical code of the condition. Possible values: OK,
                  CANCELLED, UNKNOWN, INVALID_ARGUMENT, DEADLINE_EXCEEDED, NOT_FOUND,
                  ALREADY_EXISTS, PERMISSION_DENIED, UNAUTHENTICATED, RESOURCE_EXHAUSTED,
                  FAILED_PRECONDITION, ABORTED, OUT_OF_RANGE, UNIMPLEMENTED, INTERNAL,
                  UNAVAILABLE, DATA_LOSS'
                x-kubernetes-immutable: true
                enum:
                - OK
                - CANCELLED
                - UNKNOWN
                - INVALID_ARGUMENT
                - DEADLINE_EXCEEDED
                - NOT_FOUND
                - ALREADY_EXISTS
                - PERMISSION_DENIED
                - UNAUTHENTICATED
                - RESOURCE_EXHAUSTED
                - FAILED_PRECONDITION
                - ABORTED
                - OUT_OF_RANGE
                - UNIMPLEMENTED
                - INTERNAL
                - UNAVAILABLE
                - DATA_LOSS
              code:
                type: string
                x-dcl-go-name: Code
                description: Machine-friendly representation of the condition
                x-kubernetes-immutable: true
              message:
                type: string
                x-dcl-go-name: Message
                description: Human-friendly representation of the condition
                x-kubernetes-immutable: true
        confidentialNodes:
          type: object
          x-dcl-go-name: ConfidentialNodes
          x-dcl-go-type: ClusterConfidentialNodes
          description: Configuration of Confidential Nodes
          x-kubernetes-immutable: true
          properties:
            enabled:
              type: boolean
              x-dcl-go-name: Enabled
              description: Whether Confidential Nodes feature is enabled for all nodes
                in this cluster.
              x-kubernetes-immutable: true
        createTime:
          type: string
          format: date-time
          x-dcl-go-name: CreateTime
          readOnly: true
          description: The time the cluster was created, in RFC3339 text format.
          x-kubernetes-immutable: true
        currentMasterVersion:
          type: string
          x-dcl-go-name: CurrentMasterVersion
          readOnly: true
          description: The current software version of the master endpoint.
          x-kubernetes-immutable: true
        currentNodeVersion:
          type: string
          x-dcl-go-name: CurrentNodeVersion
          readOnly: true
          description: (https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1/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.
          x-kubernetes-immutable: true
        databaseEncryption:
          type: object
          x-dcl-go-name: DatabaseEncryption
          x-dcl-go-type: ClusterDatabaseEncryption
          description: Configuration of etcd encryption
          properties:
            keyName:
              type: string
              x-dcl-go-name: KeyName
              description: Name of CloudKMS key to use
            state:
              type: string
              x-dcl-go-name: State
              x-dcl-go-type: ClusterDatabaseEncryptionStateEnum
              description: 'Denotes the state of etcd encryption. Possible values:
                UNKNOWN, ENCRYPTED, DECRYPTED'
              enum:
              - UNKNOWN
              - ENCRYPTED
              - DECRYPTED
        defaultMaxPodsConstraint:
          type: object
          x-dcl-go-name: DefaultMaxPodsConstraint
          x-dcl-go-type: ClusterDefaultMaxPodsConstraint
          description: 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.
          x-kubernetes-immutable: true
          properties:
            maxPodsPerNode:
              type: string
              x-dcl-go-name: MaxPodsPerNode
              description: Constraint enforced on the max num of pods per node.
              x-kubernetes-immutable: true
        description:
          type: string
          x-dcl-go-name: Description
          description: An optional description of this cluster.
          x-kubernetes-immutable: true
        enableKubernetesAlpha:
          type: boolean
          x-dcl-go-name: EnableKubernetesAlpha
          description: Kubernetes alpha features are enabled for this cluster. The
            cluster has no SLA for uptime and master/node upgrades are disabled. Alpha
            enabled clusters are automatically deleted thirty days after creation.
          x-kubernetes-immutable: true
        enableTPU:
          type: boolean
          x-dcl-go-name: EnableTPU
          description: Enable the ability to use Cloud TPUs in this cluster.
          x-kubernetes-immutable: true
        endpoint:
          type: string
          x-dcl-go-name: Endpoint
          readOnly: true
          description: 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.
          x-kubernetes-immutable: true
        expireTime:
          type: string
          format: date-time
          x-dcl-go-name: ExpireTime
          readOnly: true
          description: The time the cluster will be automatically deleted in RFC3339
            text format.
          x-kubernetes-immutable: true
        id:
          type: string
          x-dcl-go-name: Id
          readOnly: true
          description: Output only. Unique id for the cluster.
          x-kubernetes-immutable: true
        initialClusterVersion:
          type: string
          x-dcl-go-name: InitialClusterVersion
          description: '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'
          x-kubernetes-immutable: true
        ipAllocationPolicy:
          type: object
          x-dcl-go-name: IPAllocationPolicy
          x-dcl-go-type: ClusterIPAllocationPolicy
          description: Configuration for controlling how IPs are allocated in the
            cluster
          x-kubernetes-immutable: true
          properties:
            allowRouteOverlap:
              type: boolean
              x-dcl-go-name: AllowRouteOverlap
              description: '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.'
              x-kubernetes-immutable: true
            clusterIPv4CidrBlock:
              type: string
              x-dcl-go-name: ClusterIPv4CidrBlock
              description: 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 useIpAliases 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.
              x-kubernetes-immutable: true
            clusterSecondaryRangeName:
              type: string
              x-dcl-go-name: ClusterSecondaryRangeName
              description: '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 '
              x-kubernetes-immutable: true
            createSubnetwork:
              type: boolean
              x-dcl-go-name: CreateSubnetwork
              description: Whether a new subnetwork will be created automatically
                for the cluster
              x-kubernetes-immutable: true
            nodeIPv4CidrBlock:
              type: string
              x-dcl-go-name: NodeIPv4CidrBlock
              readOnly: true
              description: The IP address range of the instance IPs in this cluster.  This
                is applicable only if createSubnetwork 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.
              x-kubernetes-immutable: true
            servicesIPv4CidrBlock:
              type: string
              x-dcl-go-name: ServicesIPv4CidrBlock
              readOnly: true
              description: 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 useIpAliases 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.
              x-kubernetes-immutable: true
            servicesSecondaryRangeName:
              type: string
              x-dcl-go-name: ServicesSecondaryRangeName
              description: 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.
              x-kubernetes-immutable: true
            subnetworkName:
              type: string
              x-dcl-go-name: SubnetworkName
              description: A custom subnetwork name to be used if createSubnetwork
                is true. If this field is empty, then an automatic name will be chosen
                for the new subnetwork.
              x-kubernetes-immutable: true
            tpuIPv4CidrBlock:
              type: string
              x-dcl-go-name: TPUIPv4CidrBlock
              description: 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 useIpAliases 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.
              x-kubernetes-immutable: true
            useIPAliases:
              type: boolean
              x-dcl-go-name: UseIPAliases
              description: Whether alias IPs will be used for pod IPs in the cluster
              x-kubernetes-immutable: true
            useRoutes:
              type: boolean
              x-dcl-go-name: UseRoutes
              description: 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
              x-kubernetes-immutable: true
        labelFingerprint:
          type: string
          x-dcl-go-name: LabelFingerprint
          description: The fingerprint of the set of labels for this cluster.
          x-kubernetes-immutable: true
        legacyAbac:
          type: object
          x-dcl-go-name: LegacyAbac
          x-dcl-go-type: ClusterLegacyAbac
          description: Configuration for the legacy ABAC authorization mode.
          properties:
            enabled:
              type: boolean
              x-dcl-go-name: Enabled
              description: 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.
        location:
          type: string
          x-dcl-go-name: Location
          description: The location where the cluster is deployed
          x-kubernetes-immutable: true
        locations:
          type: array
          x-dcl-go-name: Locations
          description: The list of Google Compute Engine zones in which the cluster's
            nodes should be located.
          x-dcl-send-empty: true
          x-dcl-list-type: list
          items:
            type: string
            x-dcl-go-type: string
        loggingService:
          type: string
          x-dcl-go-name: LoggingService
          description: 'The logging service the cluster should use to write logs.
            Currently available options:  logging.googleapis.com - the Google Cloud
            Logging service. none - no logs will be exported from the cluster.  if
            left as an empty string,logging.googleapis.com will be used.'
        maintenancePolicy:
          type: object
          x-dcl-go-name: MaintenancePolicy
          x-dcl-go-type: ClusterMaintenancePolicy
          description: The maintenance policy to be used for the cluster.
          properties:
            resourceVersion:
              type: string
              x-dcl-go-name: ResourceVersion
              description: A hash identifying the version of this policy, so that
                updates to fields of the policy won't accidentally undo intermediate
                changes
            window:
              type: object
              x-dcl-go-name: Window
              x-dcl-go-type: ClusterMaintenancePolicyWindow
              properties:
                dailyMaintenanceWindow:
                  type: object
                  x-dcl-go-name: DailyMaintenanceWindow
                  x-dcl-go-type: ClusterMaintenancePolicyWindowDailyMaintenanceWindow
                  x-dcl-conflicts:
                  - recurringWindow
                  properties:
                    duration:
                      type: string
                      x-dcl-go-name: Duration
                      readOnly: true
                      description: Duration of the time window, automatically chosen
                        to be smallest possible in the given scenario
                    startTime:
                      type: string
                      format: date-time
                      x-dcl-go-name: StartTime
                      description: Time within the maintenance window to start the
                        maintenance operations
                maintenanceExclusions:
                  type: object
                  additionalProperties:
                    type: string
                  x-dcl-go-name: MaintenanceExclusions
                  description: Exceptions to maintenance window. Non-emergency maintenance
                    should not occur in these windows.
                recurringWindow:
                  type: object
                  x-dcl-go-name: RecurringWindow
                  x-dcl-go-type: ClusterMaintenancePolicyWindowRecurringWindow
                  x-dcl-conflicts:
                  - dailyMaintenanceWindow
                  properties:
                    recurrence:
                      type: string
                      x-dcl-go-name: Recurrence
                      description: 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.
                    window:
                      type: object
                      x-dcl-go-name: Window
                      x-dcl-go-type: ClusterMaintenancePolicyWindowRecurringWindowWindow
                      properties:
                        endTime:
                          type: string
                          format: date-time
                          x-dcl-go-name: EndTime
                          description: The time that the window ends.
                        startTime:
                          type: string
                          format: date-time
                          x-dcl-go-name: StartTime
                          description: The time that the window first starts.
        master:
          type: object
          x-dcl-go-name: Master
          x-dcl-go-type: ClusterMaster
          description: Configuration for master components.
          x-kubernetes-immutable: true
        masterAuth:
          type: object
          x-dcl-go-name: MasterAuth
          x-dcl-go-type: ClusterMasterAuth
          readOnly: true
          description: The authentication information for accessing the master endpoint.
          x-kubernetes-immutable: true
          properties:
            clientCertificate:
              type: string
              x-dcl-go-name: ClientCertificate
              readOnly: true
              description: Base64-encoded public certificate used by clients to authenticate
                to the cluster endpoint.
              x-kubernetes-immutable: true
            clientCertificateConfig:
              type: object
              x-dcl-go-name: ClientCertificateConfig
              x-dcl-go-type: ClusterMasterAuthClientCertificateConfig
              description: Configuration for client certificate authentication on
                the cluster. For clusters before v1.12, if no configuration is specified,
                a client certificate is issued.
              x-kubernetes-immutable: true
              properties:
                issueClientCertificate:
                  type: boolean
                  x-dcl-go-name: IssueClientCertificate
                  description: Issue a client certificate.
                  x-kubernetes-immutable: true
            clientKey:
              type: string
              x-dcl-go-name: ClientKey
              readOnly: true
              description: Base64-encoded private key used by clients to authenticate
                to the cluster endpoint.
              x-kubernetes-immutable: true
            clusterCaCertificate:
              type: string
              x-dcl-go-name: ClusterCaCertificate
              readOnly: true
              description: Base64-encoded public certificate that is the root of trust
                for the cluster.
              x-kubernetes-immutable: true
        masterAuthorizedNetworksConfig:
          type: object
          x-dcl-go-name: MasterAuthorizedNetworksConfig
          x-dcl-go-type: ClusterMasterAuthorizedNetworksConfig
          description: Configuration for controlling how IPs are allocated in the
            cluster
          properties:
            cidrBlocks:
              type: array
              x-dcl-go-name: CidrBlocks
              description: Define up to 50 external networks that could access Kubernetes
                master through HTTPS.
              x-dcl-send-empty: true
              x-dcl-list-type: list
              items:
                type: object
                x-dcl-go-type: ClusterMasterAuthorizedNetworksConfigCidrBlocks
                properties:
                  cidrBlock:
                    type: string
                    x-dcl-go-name: CidrBlock
                    description: Block specified in CIDR notation
                  displayName:
                    type: string
                    x-dcl-go-name: DisplayName
                    description: Optional field used to identify cidr blocks
            enabled:
              type: boolean
              x-dcl-go-name: Enabled
              description: Whether or not master authorized networks is enabled.
        masterIPv4CidrBlock:
          type: string
          x-dcl-go-name: MasterIPv4CidrBlock
          description: 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.
          x-kubernetes-immutable: true
        masterVersion:
          type: string
          x-dcl-go-name: MasterVersion
          description: The current software version of the master endpoint.
        monitoringService:
          type: string
          x-dcl-go-name: MonitoringService
          description: 'The monitoring service the cluster should use to write metrics.
            Currently available options:  monitoring.googleapis.com - the Google Cloud
            Monitoring service. none - no metrics will be exported from the cluster.  if
            left as an empty string, monitoring.googleapis.com will be used.'
        name:
          type: string
          x-dcl-go-name: Name
          description: The name of this cluster. The name must be unique within this
            project and location, and can be up to 40 characters. Must be Lowercase
            letters, numbers, and hyphens only. Must start with a letter. Must end
            with a number or a letter.
          x-kubernetes-immutable: true
        network:
          type: string
          x-dcl-go-name: Network
          description: The name of the Google Compute Engine network to which the
            cluster is connected. If left unspecified, the default network will be
            used.
          x-kubernetes-immutable: true
        networkConfig:
          type: object
          x-dcl-go-name: NetworkConfig
          x-dcl-go-type: ClusterNetworkConfig
          description: NetworkConfig reports the relative names of network & subnetwork.
          x-kubernetes-immutable: true
          properties:
            datapathProvider:
              type: string
              x-dcl-go-name: DatapathProvider
              x-dcl-go-type: ClusterNetworkConfigDatapathProviderEnum
              description: 'The desired datapath provider for this cluster. By default,
                uses the IPTables-based kube-proxy implementation. Possible values:
                DATAPATH_PROVIDER_UNSPECIFIED, LEGACY_DATAPATH, ADVANCED_DATAPATH'
              x-kubernetes-immutable: true
              enum:
              - DATAPATH_PROVIDER_UNSPECIFIED
              - LEGACY_DATAPATH
              - ADVANCED_DATAPATH
            defaultSnatStatus:
              type: object
              x-dcl-go-name: DefaultSnatStatus
              x-dcl-go-type: ClusterNetworkConfigDefaultSnatStatus
              description: 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.
              x-kubernetes-immutable: true
              properties:
                disabled:
                  type: boolean
                  x-dcl-go-name: Disabled
                  description: Disables cluster default sNAT rules.
                  x-kubernetes-immutable: true
            enableIntraNodeVisibility:
              type: boolean
              x-dcl-go-name: EnableIntraNodeVisibility
              description: Whether Intra-node visibility is enabled for this cluster.
                This makes same node pod to pod traffic visible for VPC network.
              x-kubernetes-immutable: true
            network:
              type: string
              x-dcl-go-name: Network
              readOnly: true
              description: Name of the GCE network where cluster is connected
              x-kubernetes-immutable: true
            privateIPv6GoogleAccess:
              type: string
              x-dcl-go-name: PrivateIPv6GoogleAccess
              x-dcl-go-type: ClusterNetworkConfigPrivateIPv6GoogleAccessEnum
              description: 'The desired state of IPv6 connectivity to Google Services.
                By default, no private IPv6 access to or from Google Services (all
                access will be via IPv4) Possible values: PRIVATE_IPV6_GOOGLE_ACCESS_UNSPECIFIED,
                PRIVATE_IPV6_GOOGLE_ACCESS_DISABLED, PRIVATE_IPV6_GOOGLE_ACCESS_TO_GOOGLE,
                PRIVATE_IPV6_GOOGLE_ACCESS_BIDIRECTIONAL'
              x-kubernetes-immutable: true
              enum:
              - PRIVATE_IPV6_GOOGLE_ACCESS_UNSPECIFIED
              - PRIVATE_IPV6_GOOGLE_ACCESS_DISABLED
              - PRIVATE_IPV6_GOOGLE_ACCESS_TO_GOOGLE
              - PRIVATE_IPV6_GOOGLE_ACCESS_BIDIRECTIONAL
            subnetwork:
              type: string
              x-dcl-go-name: Subnetwork
              readOnly: true
              description: Name of the GCE subnetwork where cluster is connected
              x-kubernetes-immutable: true
        networkPolicy:
          type: object
          x-dcl-go-name: NetworkPolicy
          x-dcl-go-type: ClusterNetworkPolicy
          description: Configuration options for the NetworkPolicy feature.
          x-kubernetes-immutable: true
          properties:
            enabled:
              type: boolean
              x-dcl-go-name: Enabled
              description: Whether network policy is enabled on the cluster.
              x-kubernetes-immutable: true
            provider:
              type: string
              x-dcl-go-name: Provider
              x-dcl-go-type: ClusterNetworkPolicyProviderEnum
              description: 'The selected network policy provider. Possible values:
                PROVIDER_UNSPECIFIED, CALICO'
              x-kubernetes-immutable: true
              enum:
              - PROVIDER_UNSPECIFIED
              - CALICO
        nodeIPv4CidrSize:
          type: integer
          format: int64
          x-dcl-go-name: NodeIPv4CidrSize
          readOnly: true
          description: The size of the address space on each node for hosting containers.
            This is provisioned from within the container_ipv4_cidr range.
          x-kubernetes-immutable: true
        nodePools:
          type: array
          x-dcl-go-name: NodePools
          readOnly: true
          description: The list of node pools in this cluster
          x-kubernetes-immutable: true
          x-dcl-list-type: list
          items:
            type: object
            x-dcl-go-type: ClusterNodePools
            properties:
              autoscaling:
                type: object
                x-dcl-go-name: Autoscaling
                x-dcl-go-type: ClusterNodePoolsAutoscaling
                description: Autoscaler configuration for this NodePool. Autoscaler
                  is enabled only if a valid configuration is present.
                x-kubernetes-immutable: true
                properties:
                  autoprovisioned:
                    type: boolean
                    x-dcl-go-name: Autoprovisioned
                    description: Can this node pool be deleted automatically.
                    x-kubernetes-immutable: true
                  enabled:
                    type: boolean
                    x-dcl-go-name: Enabled
                    description: Is autoscaling enabled for this node pool.
                    x-kubernetes-immutable: true
                  maxNodeCount:
                    type: integer
                    format: int64
                    x-dcl-go-name: MaxNodeCount
                    description: Maximum number of nodes in the NodePool. Must be
                      >= min_node_count. There has to enough quota to scale up the
                      cluster.
                    x-kubernetes-immutable: true
                  minNodeCount:
                    type: integer
                    format: int64
                    x-dcl-go-name: MinNodeCount
                    description: Minimum number of nodes in the NodePool. Must be
                      >= 1 and <= max_node_count.
                    x-kubernetes-immutable: true
              conditions:
                type: array
                x-dcl-go-name: Conditions
                readOnly: true
                description: Which conditions caused the current node pool state.
                x-kubernetes-immutable: true
                x-dcl-list-type: list
                items:
                  type: object
                  x-dcl-go-type: ClusterNodePoolsConditions
                  properties:
                    canonicalCode:
                      type: string
                      x-dcl-go-name: CanonicalCode
                      x-dcl-go-type: ClusterNodePoolsConditionsCanonicalCodeEnum
                      description: 'Canonical code of the condition. Possible values:
                        OK, CANCELLED, UNKNOWN, INVALID_ARGUMENT, DEADLINE_EXCEEDED,
                        NOT_FOUND, ALREADY_EXISTS, PERMISSION_DENIED, UNAUTHENTICATED,
                        RESOURCE_EXHAUSTED, FAILED_PRECONDITION, ABORTED, OUT_OF_RANGE,
                        UNIMPLEMENTED, INTERNAL, UNAVAILABLE, DATA_LOSS'
                      x-kubernetes-immutable: true
                      enum:
                      - OK
                      - CANCELLED
                      - UNKNOWN
                      - INVALID_ARGUMENT
                      - DEADLINE_EXCEEDED
                      - NOT_FOUND
                      - ALREADY_EXISTS
                      - PERMISSION_DENIED
                      - UNAUTHENTICATED
                      - RESOURCE_EXHAUSTED
                      - FAILED_PRECONDITION
                      - ABORTED
                      - OUT_OF_RANGE
                      - UNIMPLEMENTED
                      - INTERNAL
                      - UNAVAILABLE
                      - DATA_LOSS
                    message:
                      type: string
                      x-dcl-go-name: Message
                      description: Human-friendly representation of the condition
                      x-kubernetes-immutable: true
              config:
                type: object
                x-dcl-go-name: Config
                x-dcl-go-type: ClusterNodePoolsConfig
                description: The node configuration of the pool.
                x-kubernetes-immutable: true
                properties:
                  accelerators:
                    type: array
                    x-dcl-go-name: Accelerators
                    description: 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.
                    x-kubernetes-immutable: true
                    x-dcl-send-empty: true
                    x-dcl-list-type: list
                    items:
                      type: object
                      x-dcl-go-type: ClusterNodePoolsConfigAccelerators
                      properties:
                        acceleratorCount:
                          type: integer
                          format: int64
                          x-dcl-go-name: AcceleratorCount
                          description: The number of the accelerator cards exposed
                            to an instance.
                          x-kubernetes-immutable: true
                        acceleratorType:
                          type: string
                          x-dcl-go-name: AcceleratorType
                          description: The accelerator type resource name. List of
                            supported accelerators (https://cloud.google.com/compute/docs/gpus)
                          x-kubernetes-immutable: true
                  bootDiskKmsKey:
                    type: string
                    x-dcl-go-name: BootDiskKmsKey
                    description: '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/. For more information about protecting
                      resources with Cloud KMS Keys please see: https://cloud.google.com/compute/docs/disks/customer-managed-encryption'
                    x-kubernetes-immutable: true
                  diskSizeGb:
                    type: integer
                    format: int64
                    x-dcl-go-name: DiskSizeGb
                    description: 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.
                    x-kubernetes-immutable: true
                  diskType:
                    type: string
                    x-dcl-go-name: DiskType
                    description: 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'
                    x-kubernetes-immutable: true
                  ephemeralStorageConfig:
                    type: object
                    x-dcl-go-name: EphemeralStorageConfig
                    x-dcl-go-type: ClusterNodePoolsConfigEphemeralStorageConfig
                    description: Parameters for the ephemeral storage filesystem.
                      If unspecified, ephemeral storage is backed by the boot disk.
                    x-kubernetes-immutable: true
                    properties:
                      localSsdCount:
                        type: integer
                        format: int64
                        x-dcl-go-name: LocalSsdCount
                        description: 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.
                        x-kubernetes-immutable: true
                  imageType:
                    type: string
                    x-dcl-go-name: ImageType
                    x-kubernetes-immutable: true
                  kubeletConfig:
                    type: object
                    x-dcl-go-name: KubeletConfig
                    x-dcl-go-type: ClusterNodePoolsConfigKubeletConfig
                    description: Node kubelet configs.
                    x-kubernetes-immutable: true
                    properties:
                      cpuCfsQuota:
                        type: boolean
                        x-dcl-go-name: CpuCfsQuota
                        description: 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.
                        x-kubernetes-immutable: true
                      cpuCfsQuotaPeriod:
                        type: string
                        x-dcl-go-name: CpuCfsQuotaPeriod
                        description: 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.
                        x-kubernetes-immutable: true
                      cpuManagerPolicy:
                        type: string
                        x-dcl-go-name: CpuManagerPolicy
                        description: '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.'
                        x-kubernetes-immutable: true
                  labels:
                    type: object
                    additionalProperties:
                      type: string
                    x-dcl-go-name: Labels
                    description: '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/'
                    x-kubernetes-immutable: true
                  linuxNodeConfig:
                    type: object
                    x-dcl-go-name: LinuxNodeConfig
                    x-dcl-go-type: ClusterNodePoolsConfigLinuxNodeConfig
                    description: Parameters that can be configured on Linux nodes.
                    x-kubernetes-immutable: true
                    properties:
                      sysctls:
                        type: object
                        additionalProperties:
                          type: string
                        x-dcl-go-name: Sysctls
                        description: 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
                        x-kubernetes-immutable: true
                  localSsdCount:
                    type: integer
                    format: int64
                    x-dcl-go-name: LocalSsdCount
                    description: '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.'
                    x-kubernetes-immutable: true
                  machineType:
                    type: string
                    x-dcl-go-name: MachineType
                    description: The name of a Google Compute Engine (https://cloud.google.com/compute/docs/machine-types)
                      If unspecified, the default machine type is `e2-medium`.
                    x-kubernetes-immutable: true
                  metadata:
                    type: object
                    additionalProperties:
                      type: string
                    x-dcl-go-name: Metadata
                    description: 'The metadata key/value pairs assigned to instances
                      in the cluster. Keys must conform to the regexp `+` 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-os-login" - "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.'
                    x-kubernetes-immutable: true
                  minCpuPlatform:
                    type: string
                    x-dcl-go-name: MinCpuPlatform
                    description: '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 (https://cloud.google.com/compute/docs/instances/specify-min-cpu-platform)'
                    x-kubernetes-immutable: true
                  nodeGroup:
                    type: string
                    x-dcl-go-name: NodeGroup
                    description: Setting this field will assign instances of this
                      pool to run on the specified node group. This is useful for
                      running workloads on (https://cloud.google.com/compute/docs/nodes/sole-tenant-nodes).
                    x-kubernetes-immutable: true
                  oauthScopes:
                    type: array
                    x-dcl-go-name: OAuthScopes
                    description: '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 (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.'
                    x-kubernetes-immutable: true
                    x-dcl-send-empty: true
                    x-dcl-list-type: list
                    items:
                      type: string
                      x-dcl-go-type: string
                  preemptible:
                    type: boolean
                    x-dcl-go-name: Preemptible
                    description: 'Whether the nodes are created as preemptible VM
                      instances. See: https://cloud.google.com/compute/docs/instances/preemptible
                      for more information about preemptible VM instances.'
                    x-kubernetes-immutable: true
                  reservationAffinity:
                    type: object
                    x-dcl-go-name: ReservationAffinity
                    x-dcl-go-type: ClusterNodePoolsConfigReservationAffinity
                    description: The optional reservation affinity. Setting this field
                      will apply the specified (https://cloud.google.com/compute/docs/instances/reserving-zonal-resources)
                      to this node pool.
                    x-kubernetes-immutable: true
                    properties:
                      consumeReservationType:
                        type: string
                        x-dcl-go-name: ConsumeReservationType
                        x-dcl-go-type: ClusterNodePoolsConfigReservationAffinityConsumeReservationTypeEnum
                        description: 'Corresponds to the type of reservation consumption.
                          Possible values: UNSPECIFIED, NO_RESERVATION, ANY_RESERVATION,
                          SPECIFIC_RESERVATION'
                        x-kubernetes-immutable: true
                        enum:
                        - UNSPECIFIED
                        - NO_RESERVATION
                        - ANY_RESERVATION
                        - SPECIFIC_RESERVATION
                      key:
                        type: string
                        x-dcl-go-name: Key
                        description: 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.
                        x-kubernetes-immutable: true
                      values:
                        type: array
                        x-dcl-go-name: Values
                        description: Corresponds to the label value(s) of reservation
                          resource(s).
                        x-kubernetes-immutable: true
                        x-dcl-send-empty: true
                        x-dcl-list-type: list
                        items:
                          type: string
                          x-dcl-go-type: string
                  sandboxConfig:
                    type: object
                    x-dcl-go-name: SandboxConfig
                    x-dcl-go-type: ClusterNodePoolsConfigSandboxConfig
                    description: Sandbox configuration for this node.
                    x-kubernetes-immutable: true
                    properties:
                      sandboxType:
                        type: string
                        x-dcl-go-name: SandboxType
                        description: Type of the sandbox to use for the node (e.g.
                          'gvisor')
                        x-kubernetes-immutable: true
                      type:
                        type: string
                        x-dcl-go-name: Type
                        x-dcl-go-type: ClusterNodePoolsConfigSandboxConfigTypeEnum
                        description: 'Type of the sandbox to use for the node. Possible
                          values: UNSPECIFIED, GVISOR'
                        x-kubernetes-immutable: true
                        enum:
                        - UNSPECIFIED
                        - GVISOR
                  serviceAccount:
                    type: string
                    x-dcl-go-name: ServiceAccount
                    description: 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.
                    x-kubernetes-immutable: true
                  shieldedInstanceConfig:
                    type: object
                    x-dcl-go-name: ShieldedInstanceConfig
                    x-dcl-go-type: ClusterNodePoolsConfigShieldedInstanceConfig
                    description: Shielded Instance options.
                    x-kubernetes-immutable: true
                    properties:
                      enableIntegrityMonitoring:
                        type: boolean
                        x-dcl-go-name: EnableIntegrityMonitoring
                        description: 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.
                        x-kubernetes-immutable: true
                      enableSecureBoot:
                        type: boolean
                        x-dcl-go-name: EnableSecureBoot
                        description: 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.
                        x-kubernetes-immutable: true
                  tags:
                    type: array
                    x-dcl-go-name: Tags
                    description: 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.
                    x-kubernetes-immutable: true
                    x-dcl-send-empty: true
                    x-dcl-list-type: list
                    items:
                      type: string
                      x-dcl-go-type: string
                  taints:
                    type: array
                    x-dcl-go-name: Taints
                    description: '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/'
                    x-kubernetes-immutable: true
                    x-dcl-send-empty: true
                    x-dcl-list-type: list
                    items:
                      type: object
                      x-dcl-go-type: ClusterNodePoolsConfigTaints
                      properties:
                        effect:
                          type: string
                          x-dcl-go-name: Effect
                          x-dcl-go-type: ClusterNodePoolsConfigTaintsEffectEnum
                          description: 'Effect for taint. Possible values: EFFECT_UNSPECIFIED,
                            NO_SCHEDULE, PREFER_NO_SCHEDULE, NO_EXECUTE'
                          x-kubernetes-immutable: true
                          enum:
                          - EFFECT_UNSPECIFIED
                          - NO_SCHEDULE
                          - PREFER_NO_SCHEDULE
                          - NO_EXECUTE
                        key:
                          type: string
                          x-dcl-go-name: Key
                          description: Key for taint.
                          x-kubernetes-immutable: true
                        value:
                          type: string
                          x-dcl-go-name: Value
                          description: Value for taint.
                          x-kubernetes-immutable: true
                  workloadMetadataConfig:
                    type: object
                    x-dcl-go-name: WorkloadMetadataConfig
                    x-dcl-go-type: ClusterNodePoolsConfigWorkloadMetadataConfig
                    description: The workload metadata configuration for this node.
                    x-kubernetes-immutable: true
                    properties:
                      mode:
                        type: string
                        x-dcl-go-name: Mode
                        x-dcl-go-type: ClusterNodePoolsConfigWorkloadMetadataConfigModeEnum
                        description: 'Mode is the configuration for how to expose
                          metadata to workloads running on the node pool. Possible
                          values: MODE_UNSPECIFIED, GCE_METADATA, GKE_METADATA'
                        x-kubernetes-immutable: true
                        enum:
                        - MODE_UNSPECIFIED
                        - GCE_METADATA
                        - GKE_METADATA
                      nodeMetadata:
                        type: string
                        x-dcl-go-name: NodeMetadata
                        x-dcl-go-type: ClusterNodePoolsConfigWorkloadMetadataConfigNodeMetadataEnum
                        description: 'NodeMetadata is the configuration for how to
                          expose metadata to the workloads running on the node. Possible
                          values: UNSPECIFIED, SECURE, EXPOSE, GKE_METADATA_SERVER'
                        x-kubernetes-immutable: true
                        enum:
                        - UNSPECIFIED
                        - SECURE
                        - EXPOSE
                        - GKE_METADATA_SERVER
              initialNodeCount:
                type: integer
                format: int64
                x-dcl-go-name: InitialNodeCount
                description: The initial node count for the pool. You must ensure
                  that your Compute Engine (https://cloud.google.com/compute/quotas)
                  is sufficient for this number of instances. You must also have available
                  firewall and routes quota.
                x-kubernetes-immutable: true
              instanceGroupUrls:
                type: array
                x-dcl-go-name: InstanceGroupUrls
                readOnly: true
                description: (https://cloud.google.com/compute/docs/instance-groups/creating-groups-of-managed-instances)
                  associated with this node pool.
                x-kubernetes-immutable: true
                x-dcl-list-type: list
                items:
                  type: string
                  x-dcl-go-type: string
              locations:
                type: array
                x-dcl-go-name: Locations
                description: 'The list of Google Compute Engine (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.'
                x-kubernetes-immutable: true
                x-dcl-send-empty: true
                x-dcl-list-type: list
                items:
                  type: string
                  x-dcl-go-type: string
              management:
                type: object
                x-dcl-go-name: Management
                x-dcl-go-type: ClusterNodePoolsManagement
                description: NodeManagement configuration for this NodePool.
                x-kubernetes-immutable: true
                properties:
                  autoRepair:
                    type: boolean
                    x-dcl-go-name: AutoRepair
                    description: A flag that specifies whether the node auto-repair
                      is enabled for the node pool. If enabled, the nodes in this
                      node pool will be monitored and, if they fail health checks
                      too many times, an automatic repair action will be triggered.
                    x-kubernetes-immutable: true
                  autoUpgrade:
                    type: boolean
                    x-dcl-go-name: AutoUpgrade
                    description: A flag that specifies whether node auto-upgrade is
                      enabled for the node pool. If enabled, node auto-upgrade helps
                      keep the nodes in your node pool up to date with the latest
                      release version of Kubernetes.
                    x-kubernetes-immutable: true
                  upgradeOptions:
                    type: object
                    x-dcl-go-name: UpgradeOptions
                    x-dcl-go-type: ClusterNodePoolsManagementUpgradeOptions
                    description: Specifies the Auto Upgrade knobs for the node pool.
                    x-kubernetes-immutable: true
                    properties:
                      autoUpgradeStartTime:
                        type: string
                        x-dcl-go-name: AutoUpgradeStartTime
                        description: (https://www.ietf.org/rfc/rfc3339.txt) text format.
                        x-kubernetes-immutable: true
                      description:
                        type: string
                        x-dcl-go-name: Description
                        description: This field is set when upgrades are about to
                          commence with the description of the upgrade.
                        x-kubernetes-immutable: true
              maxPodsConstraint:
                type: object
                x-dcl-go-name: MaxPodsConstraint
                x-dcl-go-type: ClusterNodePoolsMaxPodsConstraint
                description: The constraint on the maximum number of pods that can
                  be run simultaneously on a node in the node pool.
                x-kubernetes-immutable: true
                properties:
                  maxPodsPerNode:
                    type: integer
                    format: int64
                    x-dcl-go-name: MaxPodsPerNode
                    description: Constraint enforced on the max num of pods per node.
                    x-kubernetes-immutable: true
              name:
                type: string
                x-dcl-go-name: Name
                description: The name of the node pool
                x-kubernetes-immutable: true
              networkConfig:
                type: object
                x-dcl-go-name: NetworkConfig
                x-dcl-go-type: ClusterNodePoolsNetworkConfig
                description: Networking configuration for this NodePool. If specified,
                  it overrides the cluster-level defaults.
                x-kubernetes-immutable: true
                properties:
                  createPodRange:
                    type: boolean
                    x-dcl-go-name: CreatePodRange
                    description: Input only. Whether to create a new range for pod
                      IPs in this node pool. Defaults are provided for `pod_range`
                      and `pod_ipv4_cidr_block` if they are not specified. If neither
                      `create_pod_range` or `pod_range` are specified, the cluster-level
                      default (`ip_allocation_policy.cluster_ipv4_cidr_block`) is
                      used.
                    x-kubernetes-immutable: true
                    x-dcl-mutable-unreadable: true
                  podIPv4CidrBlock:
                    type: string
                    x-dcl-go-name: PodIPv4CidrBlock
                    description: The IP address range for pod IPs in this node pool.
                      Only applicable if `create_pod_range` 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 (https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)
                      notation (e.g. `10.96.0.0/14`) to pick a specific range to use.
                    x-kubernetes-immutable: true
                  podRange:
                    type: string
                    x-dcl-go-name: PodRange
                    description: The ID of the secondary range for pod IPs. If `create_pod_range`
                      is true, this ID is used for the new range. If `create_pod_range`
                      is false, uses an existing secondary range with this ID.
                    x-kubernetes-immutable: true
              podIPv4CidrSize:
                type: integer
                format: int64
                x-dcl-go-name: PodIPv4CidrSize
                readOnly: true
                description: The pod CIDR block size per node in this node pool.
                x-kubernetes-immutable: true
              selfLink:
                type: string
                x-dcl-go-name: SelfLink
                readOnly: true
                description: Server-defined URL for the resource.
                x-kubernetes-immutable: true
              status:
                type: string
                x-dcl-go-name: Status
                x-dcl-go-type: ClusterNodePoolsStatusEnum
                readOnly: true
                description: 'The status of the nodes in this pool instance. Possible
                  values: STATUS_UNSPECIFIED, PROVISIONING, RUNNING, RECONCILING,
                  STOPPING, ERROR, DEGRADED'
                x-kubernetes-immutable: true
                enum:
                - STATUS_UNSPECIFIED
                - PROVISIONING
                - RUNNING
                - RECONCILING
                - STOPPING
                - ERROR
                - DEGRADED
              upgradeSettings:
                type: object
                x-dcl-go-name: UpgradeSettings
                x-dcl-go-type: ClusterNodePoolsUpgradeSettings
                description: Upgrade settings control disruption and speed of the
                  upgrade.
                x-kubernetes-immutable: true
                properties:
                  maxSurge:
                    type: integer
                    format: int64
                    x-dcl-go-name: MaxSurge
                    description: The maximum number of nodes that can be created beyond
                      the current size of the node pool during the upgrade process.
                    x-kubernetes-immutable: true
                  maxUnavailable:
                    type: integer
                    format: int64
                    x-dcl-go-name: MaxUnavailable
                    description: The maximum number of nodes that can be simultaneously
                      unavailable during the upgrade process. A node is considered
                      available if its status is Ready.
                    x-kubernetes-immutable: true
              version:
                type: string
                x-dcl-go-name: Version
                description: The version of the Kubernetes of this node.
                x-kubernetes-immutable: true
        notificationConfig:
          type: object
          x-dcl-go-name: NotificationConfig
          x-dcl-go-type: ClusterNotificationConfig
          description: Notification configuration of the cluster.
          x-kubernetes-immutable: true
          properties:
            pubsub:
              type: object
              x-dcl-go-name: Pubsub
              x-dcl-go-type: ClusterNotificationConfigPubsub
              description: Notification config for Pub/Sub.
              x-kubernetes-immutable: true
              properties:
                enabled:
                  type: boolean
                  x-dcl-go-name: Enabled
                  description: Enable notifications for Pub/Sub.
                  x-kubernetes-immutable: true
                topic:
                  type: string
                  x-dcl-go-name: Topic
                  description: The desired Pub/Sub topic to which notifications will
                    be sent by GKE. Format is `projects/{project}/topics/{topic}`.
                  x-kubernetes-immutable: true
                  x-dcl-references:
                  - resource: Pubsub/Topic
                    field: selfLink
        podSecurityPolicyConfig:
          type: object
          x-dcl-go-name: PodSecurityPolicyConfig
          x-dcl-go-type: ClusterPodSecurityPolicyConfig
          description: Configuration for the PodSecurityPolicy feature.
          x-kubernetes-immutable: true
          properties:
            enabled:
              type: boolean
              x-dcl-go-name: Enabled
              description: Enable the PodSecurityPolicy controller for this cluster.
                If enabled, pods must be valid under a PodSecurityPolicy to be created.
              x-kubernetes-immutable: true
        privateCluster:
          type: boolean
          x-dcl-go-name: PrivateCluster
          description: 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.
          x-kubernetes-immutable: true
        privateClusterConfig:
          type: object
          x-dcl-go-name: PrivateClusterConfig
          x-dcl-go-type: ClusterPrivateClusterConfig
          description: Configuration for a private cluster.
          x-kubernetes-immutable: true
          properties:
            enablePrivateEndpoint:
              type: boolean
              x-dcl-go-name: EnablePrivateEndpoint
              description: Whether the master's internal IP address is used as the
                cluster endpoint.
              x-kubernetes-immutable: true
            enablePrivateNodes:
              type: boolean
              x-dcl-go-name: EnablePrivateNodes
              description: 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.
              x-kubernetes-immutable: true
            masterGlobalAccessConfig:
              type: object
              x-dcl-go-name: MasterGlobalAccessConfig
              x-dcl-go-type: ClusterPrivateClusterConfigMasterGlobalAccessConfig
              description: Controls master global access settings.
              x-kubernetes-immutable: true
              properties:
                enabled:
                  type: boolean
                  x-dcl-go-name: Enabled
                  description: Whenever master is accessible globally or not.
                  x-kubernetes-immutable: true
            masterIPv4CidrBlock:
              type: string
              x-dcl-go-name: MasterIPv4CidrBlock
              description: 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.
              x-kubernetes-immutable: true
            peeringName:
              type: string
              x-dcl-go-name: PeeringName
              readOnly: true
              description: The peering name in the customer VPC used by this cluster.
              x-kubernetes-immutable: true
            privateEndpoint:
              type: string
              x-dcl-go-name: PrivateEndpoint
              readOnly: true
              description: The internal IP address of this cluster's master endpoint.
              x-kubernetes-immutable: true
            publicEndpoint:
              type: string
              x-dcl-go-name: PublicEndpoint
              readOnly: true
              description: The external IP address of this cluster's master endpoint.
              x-kubernetes-immutable: true
        project:
          type: string
          x-dcl-go-name: Project
          description: The project id of the resource.
          x-kubernetes-immutable: true
          x-dcl-references:
          - resource: Cloudresourcemanager/Project
            field: name
            parent: true
          x-dcl-parameter: true
        releaseChannel:
          type: object
          x-dcl-go-name: ReleaseChannel
          x-dcl-go-type: ClusterReleaseChannel
          description: Release channel configuration.
          x-kubernetes-immutable: true
          properties:
            channel:
              type: string
              x-dcl-go-name: Channel
              x-dcl-go-type: ClusterReleaseChannelChannelEnum
              description: 'channel specifies which release channel the cluster is
                subscribed to. Possible values: UNSPECIFIED, RAPID, REGULAR, STABLE'
              x-kubernetes-immutable: true
              enum:
              - UNSPECIFIED
              - RAPID
              - REGULAR
              - STABLE
        resourceLabels:
          type: object
          additionalProperties:
            type: string
          x-dcl-go-name: ResourceLabels
          description: The resource labels for the cluster to use to annotate any
            related Google Compute Engine resources.
          x-kubernetes-immutable: true
        resourceUsageExportConfig:
          type: object
          x-dcl-go-name: ResourceUsageExportConfig
          x-dcl-go-type: ClusterResourceUsageExportConfig
          description: Configuration for exporting cluster resource usages.
          x-kubernetes-immutable: true
          properties:
            bigqueryDestination:
              type: object
              x-dcl-go-name: BigqueryDestination
              x-dcl-go-type: ClusterResourceUsageExportConfigBigqueryDestination
              description: Configuration to use BigQuery as usage export destination.
              x-kubernetes-immutable: true
              properties:
                datasetId:
                  type: string
                  x-dcl-go-name: DatasetId
                  description: The ID of a BigQuery dataset
                  x-kubernetes-immutable: true
                  x-dcl-references:
                  - resource: Bigquery/Dataset
                    field: name
            consumptionMeteringConfig:
              type: object
              x-dcl-go-name: ConsumptionMeteringConfig
              x-dcl-go-type: ClusterResourceUsageExportConfigConsumptionMeteringConfig
              description: Configuration to enable resource consumption metering.
              x-kubernetes-immutable: true
              properties:
                enabled:
                  type: boolean
                  x-dcl-go-name: Enabled
                  description: Whether to enable consumption metering for this cluster.
                    If enabled, a second BigQuery table will be created to hold resource
                    consumption records.
                  x-kubernetes-immutable: true
            enableNetworkEgressMetering:
              type: boolean
              x-dcl-go-name: EnableNetworkEgressMetering
              description: Whether to enable network egress metering for this cluster.
                If enabled, a daemonset will be created in the cluster to meter network
                egress traffic.
              x-kubernetes-immutable: true
            enableNetworkEgressMonitoring:
              type: boolean
              x-dcl-go-name: EnableNetworkEgressMonitoring
              description: Whether to enable network egress metering for this cluster.
              x-kubernetes-immutable: true
        selfLink:
          type: string
          x-dcl-go-name: SelfLink
          readOnly: true
          description: Server-defined URL for the resource.
          x-kubernetes-immutable: true
        servicesIPv4Cidr:
          type: string
          x-dcl-go-name: ServicesIPv4Cidr
          readOnly: true
          description: The IP address range of the Kubernetes services in this cluster,
            in CIDR notation (e.g. 1.2.3.4/29). Service addresses are typically put
            in the last /16 from the container CIDR.
          x-kubernetes-immutable: true
        shieldedNodes:
          type: object
          x-dcl-go-name: ShieldedNodes
          x-dcl-go-type: ClusterShieldedNodes
          description: Configuration of Shielded Nodes feature.
          properties:
            enabled:
              type: boolean
              x-dcl-go-name: Enabled
              description: Whether or not shielded nodes are enabled
        status:
          type: string
          x-dcl-go-name: Status
          readOnly: true
          description: The current status of this cluster.
          x-kubernetes-immutable: true
        statusMessage:
          type: string
          x-dcl-go-name: StatusMessage
          readOnly: true
          description: Any message associated with the current status of this cluster
          x-kubernetes-immutable: true
        subnetwork:
          type: string
          x-dcl-go-name: Subnetwork
          description: The name of the Google Compute Engine subnetwork to which the
            cluster is connected.
          x-kubernetes-immutable: true
          x-dcl-references:
          - resource: Compute/Subnetwork
            field: name
        tpuConfig:
          type: object
          x-dcl-go-name: TPUConfig
          x-dcl-go-type: ClusterTPUConfig
          description: Configuration for Cloud TPU support;
          x-kubernetes-immutable: true
          properties:
            enabled:
              type: boolean
              x-dcl-go-name: Enabled
              description: Whether Cloud TPU integration is enabled or not.
              x-kubernetes-immutable: true
            ipv4CidrBlock:
              type: string
              x-dcl-go-name: IPv4CidrBlock
              description: IPv4 CIDR block reserved for Cloud TPU in the VPC.
              x-kubernetes-immutable: true
            useServiceNetworking:
              type: boolean
              x-dcl-go-name: UseServiceNetworking
              description: Whether to use service networking for Cloud TPU or not.
              x-kubernetes-immutable: true
        tpuIPv4CidrBlock:
          type: string
          x-dcl-go-name: TPUIPv4CidrBlock
          readOnly: true
          description: 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`).
          x-kubernetes-immutable: true
        verticalPodAutoscaling:
          type: object
          x-dcl-go-name: VerticalPodAutoscaling
          x-dcl-go-type: ClusterVerticalPodAutoscaling
          description: Cluster-level Vertical Pod Autoscaling configuration.
          properties:
            enableExperimentalFeatures:
              type: boolean
              x-dcl-go-name: EnableExperimentalFeatures
              description: Enables experimental features support for Vertical Pod
                Autoscaling.
            enabled:
              type: boolean
              x-dcl-go-name: Enabled
              description: Whether or not vertical pod autoscaling is enabled
        workloadIdentityConfig:
          type: object
          x-dcl-go-name: WorkloadIdentityConfig
          x-dcl-go-type: ClusterWorkloadIdentityConfig
          description: Configuration for the use of Kubernetes Service Accounts in
            GCP IAM policies.
          properties:
            identityNamespace:
              type: string
              x-dcl-go-name: IdentityNamespace
              description: IAM Identity Namespace to attach all Kubernetes Service
                Accounts to.
            identityProvider:
              type: string
              x-dcl-go-name: IdentityProvider
              description: identity provider is the third party identity provider.
            workloadPool:
              type: string
              x-dcl-go-name: WorkloadPool
              description: The workload pool to attach all Kubernetes service accounts
                to.
