<html><body>
<style>

body, h1, h2, h3, div, span, p, pre, a {
  margin: 0;
  padding: 0;
  border: 0;
  font-weight: inherit;
  font-style: inherit;
  font-size: 100%;
  font-family: inherit;
  vertical-align: baseline;
}

body {
  font-size: 13px;
  padding: 1em;
}

h1 {
  font-size: 26px;
  margin-bottom: 1em;
}

h2 {
  font-size: 24px;
  margin-bottom: 1em;
}

h3 {
  font-size: 20px;
  margin-bottom: 1em;
  margin-top: 1em;
}

pre, code {
  line-height: 1.5;
  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
}

pre {
  margin-top: 0.5em;
}

h1, h2, h3, p {
  font-family: Arial, sans serif;
}

h1, h2, h3 {
  border-bottom: solid #CCC 1px;
}

.toc_element {
  margin-top: 0.5em;
}

.firstline {
  margin-left: 2 em;
}

.method  {
  margin-top: 1em;
  border: solid 1px #CCC;
  padding: 1em;
  background: #EEE;
}

.details {
  font-weight: bold;
  font-size: 14px;
}

</style>

<h1><a href="container_v1.html">Kubernetes Engine API</a> . <a href="container_v1.projects.html">projects</a> . <a href="container_v1.projects.locations.html">locations</a> . <a href="container_v1.projects.locations.clusters.html">clusters</a></h1>
<h2>Instance Methods</h2>
<p class="toc_element">
  <code><a href="container_v1.projects.locations.clusters.nodePools.html">nodePools()</a></code>
</p>
<p class="firstline">Returns the nodePools Resource.</p>

<p class="toc_element">
  <code><a href="container_v1.projects.locations.clusters.well_known.html">well_known()</a></code>
</p>
<p class="firstline">Returns the well_known Resource.</p>

<p class="toc_element">
  <code><a href="#checkAutopilotCompatibility">checkAutopilotCompatibility(name, x__xgafv=None)</a></code></p>
<p class="firstline">Checks the cluster compatibility with Autopilot mode, and returns a list of compatibility issues.</p>
<p class="toc_element">
  <code><a href="#close">close()</a></code></p>
<p class="firstline">Close httplib2 connections.</p>
<p class="toc_element">
  <code><a href="#completeIpRotation">completeIpRotation(name, body=None, x__xgafv=None)</a></code></p>
<p class="firstline">Completes master IP rotation.</p>
<p class="toc_element">
  <code><a href="#create">create(parent, body=None, x__xgafv=None)</a></code></p>
<p class="firstline">Creates a cluster, consisting of the specified number and type of Google Compute Engine instances. By default, the cluster is created in the project's [default network](https://cloud.google.com/compute/docs/networks-and-firewalls#networks). One firewall is added for the cluster. After cluster creation, the kubelet creates routes for each node to allow the containers on that node to communicate with all other instances in the cluster. Finally, an entry is added to the project's global metadata indicating which CIDR range the cluster is using.</p>
<p class="toc_element">
  <code><a href="#delete">delete(name, clusterId=None, projectId=None, x__xgafv=None, zone=None)</a></code></p>
<p class="firstline">Deletes the cluster, including the Kubernetes endpoint and all worker nodes. Firewalls and routes that were configured during cluster creation are also deleted. Other Google Compute Engine resources that might be in use by the cluster, such as load balancer resources, are not deleted if they weren't present when the cluster was initially created.</p>
<p class="toc_element">
  <code><a href="#fetchClusterUpgradeInfo">fetchClusterUpgradeInfo(name, version=None, x__xgafv=None)</a></code></p>
<p class="firstline">Fetch upgrade information of a specific cluster.</p>
<p class="toc_element">
  <code><a href="#get">get(name, clusterId=None, projectId=None, x__xgafv=None, zone=None)</a></code></p>
<p class="firstline">Gets the details of a specific cluster.</p>
<p class="toc_element">
  <code><a href="#getJwks">getJwks(parent, x__xgafv=None)</a></code></p>
<p class="firstline">Gets the public component of the cluster signing keys in JSON Web Key format.</p>
<p class="toc_element">
  <code><a href="#list">list(parent, projectId=None, x__xgafv=None, zone=None)</a></code></p>
<p class="firstline">Lists all clusters owned by a project in either the specified zone or all zones.</p>
<p class="toc_element">
  <code><a href="#setAddons">setAddons(name, body=None, x__xgafv=None)</a></code></p>
<p class="firstline">Sets the addons for a specific cluster.</p>
<p class="toc_element">
  <code><a href="#setLegacyAbac">setLegacyAbac(name, body=None, x__xgafv=None)</a></code></p>
<p class="firstline">Enables or disables the ABAC authorization mechanism on a cluster.</p>
<p class="toc_element">
  <code><a href="#setLocations">setLocations(name, body=None, x__xgafv=None)</a></code></p>
<p class="firstline">Sets the locations for a specific cluster. Deprecated. Use [projects.locations.clusters.update](https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1/projects.locations.clusters/update) instead.</p>
<p class="toc_element">
  <code><a href="#setLogging">setLogging(name, body=None, x__xgafv=None)</a></code></p>
<p class="firstline">Sets the logging service for a specific cluster.</p>
<p class="toc_element">
  <code><a href="#setMaintenancePolicy">setMaintenancePolicy(name, body=None, x__xgafv=None)</a></code></p>
<p class="firstline">Sets the maintenance policy for a cluster.</p>
<p class="toc_element">
  <code><a href="#setMasterAuth">setMasterAuth(name, body=None, x__xgafv=None)</a></code></p>
<p class="firstline">Sets master auth materials. Currently supports changing the admin password or a specific cluster, either via password generation or explicitly setting the password.</p>
<p class="toc_element">
  <code><a href="#setMonitoring">setMonitoring(name, body=None, x__xgafv=None)</a></code></p>
<p class="firstline">Sets the monitoring service for a specific cluster.</p>
<p class="toc_element">
  <code><a href="#setNetworkPolicy">setNetworkPolicy(name, body=None, x__xgafv=None)</a></code></p>
<p class="firstline">Enables or disables Network Policy for a cluster.</p>
<p class="toc_element">
  <code><a href="#setResourceLabels">setResourceLabels(name, body=None, x__xgafv=None)</a></code></p>
<p class="firstline">Sets labels on a cluster.</p>
<p class="toc_element">
  <code><a href="#startIpRotation">startIpRotation(name, body=None, x__xgafv=None)</a></code></p>
<p class="firstline">Starts master IP rotation.</p>
<p class="toc_element">
  <code><a href="#update">update(name, body=None, x__xgafv=None)</a></code></p>
<p class="firstline">Updates the settings of a specific cluster.</p>
<p class="toc_element">
  <code><a href="#updateMaster">updateMaster(name, body=None, x__xgafv=None)</a></code></p>
<p class="firstline">Updates the master for a specific cluster.</p>
<h3>Method Details</h3>
<div class="method">
    <code class="details" id="checkAutopilotCompatibility">checkAutopilotCompatibility(name, x__xgafv=None)</code>
  <pre>Checks the cluster compatibility with Autopilot mode, and returns a list of compatibility issues.

Args:
  name: string, The name (project, location, cluster) of the cluster to retrieve. Specified in the format `projects/*/locations/*/clusters/*`. (required)
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # CheckAutopilotCompatibilityResponse has a list of compatibility issues.
  &quot;issues&quot;: [ # The list of issues for the given operation.
    { # AutopilotCompatibilityIssue contains information about a specific compatibility issue with Autopilot mode.
      &quot;constraintType&quot;: &quot;A String&quot;, # The constraint type of the issue.
      &quot;description&quot;: &quot;A String&quot;, # The description of the issue.
      &quot;documentationUrl&quot;: &quot;A String&quot;, # A URL to a public documentation, which addresses resolving this issue.
      &quot;incompatibilityType&quot;: &quot;A String&quot;, # The incompatibility type of this issue.
      &quot;lastObservation&quot;: &quot;A String&quot;, # The last time when this issue was observed.
      &quot;subjects&quot;: [ # The name of the resources which are subject to this issue.
        &quot;A String&quot;,
      ],
    },
  ],
  &quot;summary&quot;: &quot;A String&quot;, # The summary of the autopilot compatibility response.
}</pre>
</div>

<div class="method">
    <code class="details" id="close">close()</code>
  <pre>Close httplib2 connections.</pre>
</div>

<div class="method">
    <code class="details" id="completeIpRotation">completeIpRotation(name, body=None, x__xgafv=None)</code>
  <pre>Completes master IP rotation.

Args:
  name: string, The name (project, location, cluster name) of the cluster to complete IP rotation. Specified in the format `projects/*/locations/*/clusters/*`. (required)
  body: object, The request body.
    The object takes the form of:

{ # CompleteIPRotationRequest moves the cluster master back into single-IP mode.
  &quot;clusterId&quot;: &quot;A String&quot;, # Deprecated. The name of the cluster. This field has been deprecated and replaced by the name field.
  &quot;name&quot;: &quot;A String&quot;, # The name (project, location, cluster name) of the cluster to complete IP rotation. Specified in the format `projects/*/locations/*/clusters/*`.
  &quot;projectId&quot;: &quot;A String&quot;, # Deprecated. The Google Developers Console [project ID or project number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). This field has been deprecated and replaced by the name field.
  &quot;zone&quot;: &quot;A String&quot;, # Deprecated. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster resides. This field has been deprecated and replaced by the name field.
}

  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # This operation resource represents operations that may have happened or are happening on the cluster. All fields are output only.
  &quot;clusterConditions&quot;: [ # Which conditions caused the current cluster state. Deprecated. Use field error instead.
    { # StatusCondition describes why a cluster or a node pool has a certain status (e.g., ERROR or DEGRADED).
      &quot;canonicalCode&quot;: &quot;A String&quot;, # Canonical code of the condition.
      &quot;code&quot;: &quot;A String&quot;, # Machine-friendly representation of the condition Deprecated. Use canonical_code instead.
      &quot;message&quot;: &quot;A String&quot;, # Human-friendly representation of the condition
    },
  ],
  &quot;detail&quot;: &quot;A String&quot;, # Output only. Detailed operation progress, if available.
  &quot;endTime&quot;: &quot;A String&quot;, # Output only. The time the operation completed, in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
  &quot;error&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure.
    &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
    &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
      {
        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
      },
    ],
    &quot;message&quot;: &quot;A String&quot;, # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
  },
  &quot;location&quot;: &quot;A String&quot;, # Output only. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/regions-zones/regions-zones#available) or [region](https://cloud.google.com/compute/docs/regions-zones/regions-zones#available) in which the cluster resides.
  &quot;name&quot;: &quot;A String&quot;, # Output only. The server-assigned ID for the operation.
  &quot;nodepoolConditions&quot;: [ # Which conditions caused the current node pool state. Deprecated. Use field error instead.
    { # StatusCondition describes why a cluster or a node pool has a certain status (e.g., ERROR or DEGRADED).
      &quot;canonicalCode&quot;: &quot;A String&quot;, # Canonical code of the condition.
      &quot;code&quot;: &quot;A String&quot;, # Machine-friendly representation of the condition Deprecated. Use canonical_code instead.
      &quot;message&quot;: &quot;A String&quot;, # Human-friendly representation of the condition
    },
  ],
  &quot;operationType&quot;: &quot;A String&quot;, # Output only. The operation type.
  &quot;progress&quot;: { # Information about operation (or operation stage) progress. # Output only. Progress information for an operation.
    &quot;metrics&quot;: [ # Progress metric bundle, for example: metrics: [{name: &quot;nodes done&quot;, int_value: 15}, {name: &quot;nodes total&quot;, int_value: 32}] or metrics: [{name: &quot;progress&quot;, double_value: 0.56}, {name: &quot;progress scale&quot;, double_value: 1.0}]
      { # Progress metric is (string, int|float|string) pair.
        &quot;doubleValue&quot;: 3.14, # For metrics with floating point value.
        &quot;intValue&quot;: &quot;A String&quot;, # For metrics with integer value.
        &quot;name&quot;: &quot;A String&quot;, # Required. Metric name, e.g., &quot;nodes total&quot;, &quot;percent done&quot;.
        &quot;stringValue&quot;: &quot;A String&quot;, # For metrics with custom values (ratios, visual progress, etc.).
      },
    ],
    &quot;name&quot;: &quot;A String&quot;, # A non-parameterized string describing an operation stage. Unset for single-stage operations.
    &quot;stages&quot;: [ # Substages of an operation or a stage.
      # Object with schema name: OperationProgress
    ],
    &quot;status&quot;: &quot;A String&quot;, # Status of an operation stage. Unset for single-stage operations.
  },
  &quot;selfLink&quot;: &quot;A String&quot;, # Output only. Server-defined URI for the operation. Example: `https://container.googleapis.com/v1alpha1/projects/123/locations/us-central1/operations/operation-123`.
  &quot;startTime&quot;: &quot;A String&quot;, # Output only. The time the operation started, in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
  &quot;status&quot;: &quot;A String&quot;, # Output only. The current status of the operation.
  &quot;statusMessage&quot;: &quot;A String&quot;, # Output only. If an error has occurred, a textual description of the error. Deprecated. Use the field error instead.
  &quot;targetLink&quot;: &quot;A String&quot;, # Output only. Server-defined URI for the target of the operation. The format of this is a URI to the resource being modified (such as a cluster, node pool, or node). For node pool repairs, there may be multiple nodes being repaired, but only one will be the target. Examples: - ## `https://container.googleapis.com/v1/projects/123/locations/us-central1/clusters/my-cluster` ## `https://container.googleapis.com/v1/projects/123/zones/us-central1-c/clusters/my-cluster/nodePools/my-np` `https://container.googleapis.com/v1/projects/123/zones/us-central1-c/clusters/my-cluster/nodePools/my-np/node/my-node`
  &quot;zone&quot;: &quot;A String&quot;, # Output only. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/zones#available) in which the operation is taking place. This field is deprecated, use location instead.
}</pre>
</div>

<div class="method">
    <code class="details" id="create">create(parent, body=None, x__xgafv=None)</code>
  <pre>Creates a cluster, consisting of the specified number and type of Google Compute Engine instances. By default, the cluster is created in the project&#x27;s [default network](https://cloud.google.com/compute/docs/networks-and-firewalls#networks). One firewall is added for the cluster. After cluster creation, the kubelet creates routes for each node to allow the containers on that node to communicate with all other instances in the cluster. Finally, an entry is added to the project&#x27;s global metadata indicating which CIDR range the cluster is using.

Args:
  parent: string, The parent (project and location) where the cluster will be created. Specified in the format `projects/*/locations/*`. (required)
  body: object, The request body.
    The object takes the form of:

{ # CreateClusterRequest creates a cluster.
  &quot;cluster&quot;: { # A Google Kubernetes Engine cluster. # Required. A [cluster resource](https://cloud.google.com/container-engine/reference/rest/v1/projects.locations.clusters)
    &quot;addonsConfig&quot;: { # Configuration for the addons that can be automatically spun up in the cluster, enabling additional functionality. # Configurations for the various addons available to run in the cluster.
      &quot;cloudRunConfig&quot;: { # Configuration options for the Cloud Run feature. # Configuration for the Cloud Run addon, which allows the user to use a managed Knative service.
        &quot;disabled&quot;: True or False, # Whether Cloud Run addon is enabled for this cluster.
        &quot;loadBalancerType&quot;: &quot;A String&quot;, # Which load balancer type is installed for Cloud Run.
      },
      &quot;configConnectorConfig&quot;: { # Configuration options for the Config Connector add-on. # Configuration for the ConfigConnector add-on, a Kubernetes extension to manage hosted Google Cloud services through the Kubernetes API.
        &quot;enabled&quot;: True or False, # Whether Cloud Connector is enabled for this cluster.
      },
      &quot;dnsCacheConfig&quot;: { # Configuration for NodeLocal DNSCache # Configuration for NodeLocalDNS, a dns cache running on cluster nodes
        &quot;enabled&quot;: True or False, # Whether NodeLocal DNSCache is enabled for this cluster.
      },
      &quot;gcePersistentDiskCsiDriverConfig&quot;: { # Configuration for the Compute Engine PD CSI driver. # Configuration for the Compute Engine Persistent Disk CSI driver.
        &quot;enabled&quot;: True or False, # Whether the Compute Engine PD CSI driver is enabled for this cluster.
      },
      &quot;gcpFilestoreCsiDriverConfig&quot;: { # Configuration for the Filestore CSI driver. # Configuration for the Filestore CSI driver.
        &quot;enabled&quot;: True or False, # Whether the Filestore CSI driver is enabled for this cluster.
      },
      &quot;gcsFuseCsiDriverConfig&quot;: { # Configuration for the Cloud Storage Fuse CSI driver. # Configuration for the Cloud Storage Fuse CSI driver.
        &quot;enabled&quot;: True or False, # Whether the Cloud Storage Fuse CSI driver is enabled for this cluster.
      },
      &quot;gkeBackupAgentConfig&quot;: { # Configuration for the Backup for GKE Agent. # Configuration for the Backup for GKE agent addon.
        &quot;enabled&quot;: True or False, # Whether the Backup for GKE agent is enabled for this cluster.
      },
      &quot;highScaleCheckpointingConfig&quot;: { # Configuration for the High Scale Checkpointing. # Configuration for the High Scale Checkpointing add-on.
        &quot;enabled&quot;: True or False, # Whether the High Scale Checkpointing is enabled for this cluster.
      },
      &quot;horizontalPodAutoscaling&quot;: { # Configuration options for the horizontal pod autoscaling feature, which increases or decreases the number of replica pods a replication controller has based on the resource usage of the existing pods. # 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.
        &quot;disabled&quot;: True or False, # Whether the Horizontal Pod Autoscaling feature is enabled in the cluster. When enabled, it ensures that metrics are collected into Stackdriver Monitoring.
      },
      &quot;httpLoadBalancing&quot;: { # Configuration options for the HTTP (L7) load balancing controller addon, which makes it easy to set up HTTP load balancers for services in a cluster. # Configuration for the HTTP (L7) load balancing controller addon, which makes it easy to set up HTTP load balancers for services in a cluster.
        &quot;disabled&quot;: True or False, # 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.
      },
      &quot;kubernetesDashboard&quot;: { # Configuration for the Kubernetes Dashboard. # Configuration for the Kubernetes Dashboard. This addon is deprecated, and will be disabled in 1.15. It is recommended to use the Cloud Console to manage and monitor your Kubernetes clusters, workloads and applications. For more information, see: https://cloud.google.com/kubernetes-engine/docs/concepts/dashboards
        &quot;disabled&quot;: True or False, # Whether the Kubernetes Dashboard is enabled for this cluster.
      },
      &quot;lustreCsiDriverConfig&quot;: { # Configuration for the Lustre CSI driver. # Configuration for the Lustre CSI driver.
        &quot;enableLegacyLustrePort&quot;: True or False, # If set to true, the Lustre CSI driver will install Lustre kernel modules using port 6988. This serves as a workaround for a port conflict with the gke-metadata-server. This field is required ONLY under the following conditions: 1. The GKE node version is older than 1.33.2-gke.4655000. 2. You&#x27;re connecting to a Lustre instance that has the &#x27;gke-support-enabled&#x27; flag.
        &quot;enabled&quot;: True or False, # Whether the Lustre CSI driver is enabled for this cluster.
      },
      &quot;networkPolicyConfig&quot;: { # 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. # 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.
        &quot;disabled&quot;: True or False, # Whether NetworkPolicy is enabled for this cluster.
      },
      &quot;parallelstoreCsiDriverConfig&quot;: { # Configuration for the Cloud Storage Parallelstore CSI driver. # Configuration for the Cloud Storage Parallelstore CSI driver.
        &quot;enabled&quot;: True or False, # Whether the Cloud Storage Parallelstore CSI driver is enabled for this cluster.
      },
      &quot;rayOperatorConfig&quot;: { # Configuration options for the Ray Operator add-on. # Optional. Configuration for Ray Operator addon.
        &quot;enabled&quot;: True or False, # Whether the Ray Operator addon is enabled for this cluster.
        &quot;rayClusterLoggingConfig&quot;: { # RayClusterLoggingConfig specifies configuration of Ray logging. # Optional. Logging configuration for Ray clusters.
          &quot;enabled&quot;: True or False, # Enable log collection for Ray clusters.
        },
        &quot;rayClusterMonitoringConfig&quot;: { # RayClusterMonitoringConfig specifies monitoring configuration for Ray clusters. # Optional. Monitoring configuration for Ray clusters.
          &quot;enabled&quot;: True or False, # Enable metrics collection for Ray clusters.
        },
      },
      &quot;statefulHaConfig&quot;: { # Configuration for the Stateful HA add-on. # Optional. Configuration for the StatefulHA add-on.
        &quot;enabled&quot;: True or False, # Whether the Stateful HA add-on is enabled for this cluster.
      },
    },
    &quot;alphaClusterFeatureGates&quot;: [ # The list of user specified Kubernetes feature gates. Each string represents the activation status of a feature gate (e.g. &quot;featureX=true&quot; or &quot;featureX=false&quot;)
      &quot;A String&quot;,
    ],
    &quot;anonymousAuthenticationConfig&quot;: { # AnonymousAuthenticationConfig defines the settings needed to limit endpoints that allow anonymous authentication. # Configuration for limiting anonymous access to all endpoints except the health checks.
      &quot;mode&quot;: &quot;A String&quot;, # Defines the mode of limiting anonymous access in the cluster.
    },
    &quot;authenticatorGroupsConfig&quot;: { # Configuration for returning group information from authenticators. # Configuration controlling RBAC group membership information.
      &quot;enabled&quot;: True or False, # Whether this cluster should return group membership lookups during authentication using a group of security groups.
      &quot;securityGroup&quot;: &quot;A String&quot;, # The name of the security group-of-groups to be used. Only relevant if enabled = true.
    },
    &quot;autopilot&quot;: { # Autopilot is the configuration for Autopilot settings on the cluster. # Autopilot configuration for the cluster.
      &quot;enabled&quot;: True or False, # Enable Autopilot
      &quot;privilegedAdmissionConfig&quot;: { # PrivilegedAdmissionConfig stores the list of authorized allowlist paths for the cluster. # PrivilegedAdmissionConfig is the configuration related to privileged admission control.
        &quot;allowlistPaths&quot;: [ # The customer allowlist Cloud Storage paths for the cluster. These paths are used with the `--autopilot-privileged-admission` flag to authorize privileged workloads in Autopilot clusters. Paths can be GKE-owned, in the format `gke:////`, or customer-owned, in the format `gs:///`. Wildcards (`*`) are supported to authorize all allowlists under specific paths or directories. Example: `gs://my-bucket/*` will authorize all allowlists under the `my-bucket` bucket.
          &quot;A String&quot;,
        ],
      },
      &quot;workloadPolicyConfig&quot;: { # WorkloadPolicyConfig is the configuration related to GCW workload policy # WorkloadPolicyConfig is the configuration related to GCW workload policy
        &quot;allowNetAdmin&quot;: True or False, # If true, workloads can use NET_ADMIN capability.
        &quot;autopilotCompatibilityAuditingEnabled&quot;: True or False, # If true, enables the GCW Auditor that audits workloads on standard clusters.
      },
    },
    &quot;autoscaling&quot;: { # ClusterAutoscaling contains global, per-cluster information required by Cluster Autoscaler to automatically adjust the size of the cluster and create/delete node pools based on the current needs. # Cluster-level autoscaling configuration.
      &quot;autoprovisioningLocations&quot;: [ # The list of Google Compute Engine [zones](https://cloud.google.com/compute/docs/zones#available) in which the NodePool&#x27;s nodes can be created by NAP.
        &quot;A String&quot;,
      ],
      &quot;autoprovisioningNodePoolDefaults&quot;: { # AutoprovisioningNodePoolDefaults contains defaults for a node pool created by NAP. # AutoprovisioningNodePoolDefaults contains defaults for a node pool created by NAP.
        &quot;bootDiskKmsKey&quot;: &quot;A String&quot;, # The Customer Managed Encryption Key used to encrypt the boot disk attached to each node in the node pool. This should be of the form projects/[KEY_PROJECT_ID]/locations/[LOCATION]/keyRings/[RING_NAME]/cryptoKeys/[KEY_NAME]. For more information about protecting resources with Cloud KMS Keys please see: https://cloud.google.com/compute/docs/disks/customer-managed-encryption
        &quot;diskSizeGb&quot;: 42, # 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.
        &quot;diskType&quot;: &quot;A String&quot;, # Type of the disk attached to each node (e.g. &#x27;pd-standard&#x27;, &#x27;pd-ssd&#x27; or &#x27;pd-balanced&#x27;) If unspecified, the default disk type is &#x27;pd-standard&#x27;
        &quot;imageType&quot;: &quot;A String&quot;, # The image type to use for NAP created node. Please see https://cloud.google.com/kubernetes-engine/docs/concepts/node-images for available image types.
        &quot;insecureKubeletReadonlyPortEnabled&quot;: True or False, # DEPRECATED. Use NodePoolAutoConfig.NodeKubeletConfig instead.
        &quot;management&quot;: { # NodeManagement defines the set of node management services turned on for the node pool. # Specifies the node management options for NAP created node-pools.
          &quot;autoRepair&quot;: True or False, # 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.
          &quot;autoUpgrade&quot;: True or False, # 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.
          &quot;upgradeOptions&quot;: { # AutoUpgradeOptions defines the set of options for the user to control how the Auto Upgrades will proceed. # Specifies the Auto Upgrade knobs for the node pool.
            &quot;autoUpgradeStartTime&quot;: &quot;A String&quot;, # Output only. This field is set when upgrades are about to commence with the approximate start time for the upgrades, in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
            &quot;description&quot;: &quot;A String&quot;, # Output only. This field is set when upgrades are about to commence with the description of the upgrade.
          },
        },
        &quot;minCpuPlatform&quot;: &quot;A String&quot;, # Deprecated. 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 [how to specify min CPU platform](https://cloud.google.com/compute/docs/instances/specify-min-cpu-platform). This field is deprecated, min_cpu_platform should be specified using `cloud.google.com/requested-min-cpu-platform` label selector on the pod. To unset the min cpu platform field pass &quot;automatic&quot; as field value.
        &quot;oauthScopes&quot;: [ # Scopes that are used by NAP when creating node pools.
          &quot;A String&quot;,
        ],
        &quot;serviceAccount&quot;: &quot;A String&quot;, # The Google Cloud Platform Service Account to be used by the node VMs.
        &quot;shieldedInstanceConfig&quot;: { # A set of Shielded Instance options. # Shielded Instance options.
          &quot;enableIntegrityMonitoring&quot;: True or False, # 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.
          &quot;enableSecureBoot&quot;: True or False, # 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.
        },
        &quot;upgradeSettings&quot;: { # These upgrade settings control the level of parallelism and the level of disruption caused by an upgrade. maxUnavailable controls the number of nodes that can be simultaneously unavailable. maxSurge controls the number of additional nodes that can be added to the node pool temporarily for the time of the upgrade to increase the number of available nodes. (maxUnavailable + maxSurge) determines the level of parallelism (how many nodes are being upgraded at the same time). Note: upgrades inevitably introduce some disruption since workloads need to be moved from old nodes to new, upgraded ones. Even if maxUnavailable=0, this holds true. (Disruption stays within the limits of PodDisruptionBudget, if it is configured.) Consider a hypothetical node pool with 5 nodes having maxSurge=2, maxUnavailable=1. This means the upgrade process upgrades 3 nodes simultaneously. It creates 2 additional (upgraded) nodes, then it brings down 3 old (not yet upgraded) nodes at the same time. This ensures that there are always at least 4 nodes available. These upgrade settings configure the upgrade strategy for the node pool. Use strategy to switch between the strategies applied to the node pool. If the strategy is ROLLING, use max_surge and max_unavailable to control the level of parallelism and the level of disruption caused by upgrade. 1. maxSurge controls the number of additional nodes that can be added to the node pool temporarily for the time of the upgrade to increase the number of available nodes. 2. maxUnavailable controls the number of nodes that can be simultaneously unavailable. 3. (maxUnavailable + maxSurge) determines the level of parallelism (how many nodes are being upgraded at the same time). If the strategy is BLUE_GREEN, use blue_green_settings to configure the blue-green upgrade related settings. 1. standard_rollout_policy is the default policy. The policy is used to control the way blue pool gets drained. The draining is executed in the batch mode. The batch size could be specified as either percentage of the node pool size or the number of nodes. batch_soak_duration is the soak time after each batch gets drained. 2. node_pool_soak_duration is the soak time after all blue nodes are drained. After this period, the blue pool nodes will be deleted. # Specifies the upgrade settings for NAP created node pools
          &quot;blueGreenSettings&quot;: { # Settings for blue-green upgrade. # Settings for blue-green upgrade strategy.
            &quot;autoscaledRolloutPolicy&quot;: { # Autoscaled rollout policy utilizes the cluster autoscaler during blue-green upgrade to scale both the blue and green pools. # Autoscaled policy for cluster autoscaler enabled blue-green upgrade.
              &quot;waitForDrainDuration&quot;: &quot;A String&quot;, # Optional. Time to wait after cordoning the blue pool before draining the nodes. Defaults to 3 days. The value can be set between 0 and 7 days, inclusive.
            },
            &quot;nodePoolSoakDuration&quot;: &quot;A String&quot;, # Time needed after draining entire blue pool. After this period, blue pool will be cleaned up.
            &quot;standardRolloutPolicy&quot;: { # Standard rollout policy is the default policy for blue-green. # Standard policy for the blue-green upgrade.
              &quot;batchNodeCount&quot;: 42, # Number of blue nodes to drain in a batch.
              &quot;batchPercentage&quot;: 3.14, # Percentage of the blue pool nodes to drain in a batch. The range of this field should be (0.0, 1.0].
              &quot;batchSoakDuration&quot;: &quot;A String&quot;, # Soak time after each batch gets drained. Default to zero.
            },
          },
          &quot;maxSurge&quot;: 42, # The maximum number of nodes that can be created beyond the current size of the node pool during the upgrade process.
          &quot;maxUnavailable&quot;: 42, # The maximum number of nodes that can be simultaneously unavailable during the upgrade process. A node is considered available if its status is Ready.
          &quot;strategy&quot;: &quot;A String&quot;, # Update strategy of the node pool.
        },
      },
      &quot;autoscalingProfile&quot;: &quot;A String&quot;, # Defines autoscaling behaviour.
      &quot;defaultComputeClassConfig&quot;: { # DefaultComputeClassConfig defines default compute class configuration. # Default compute class is a configuration for default compute class.
        &quot;enabled&quot;: True or False, # Enables default compute class.
      },
      &quot;enableNodeAutoprovisioning&quot;: True or False, # Enables automatic node pool creation and deletion.
      &quot;resourceLimits&quot;: [ # Contains global constraints regarding minimum and maximum amount of resources in the cluster.
        { # Contains information about amount of some resource in the cluster. For memory, value should be in GB.
          &quot;maximum&quot;: &quot;A String&quot;, # Maximum amount of the resource in the cluster.
          &quot;minimum&quot;: &quot;A String&quot;, # Minimum amount of the resource in the cluster.
          &quot;resourceType&quot;: &quot;A String&quot;, # Resource name &quot;cpu&quot;, &quot;memory&quot; or gpu-specific string.
        },
      ],
    },
    &quot;binaryAuthorization&quot;: { # Configuration for Binary Authorization. # Configuration for Binary Authorization.
      &quot;enabled&quot;: True or False, # This field is deprecated. Leave this unset and instead configure BinaryAuthorization using evaluation_mode. If evaluation_mode is set to anything other than EVALUATION_MODE_UNSPECIFIED, this field is ignored.
      &quot;evaluationMode&quot;: &quot;A String&quot;, # Mode of operation for binauthz policy evaluation. If unspecified, defaults to DISABLED.
    },
    &quot;clusterIpv4Cidr&quot;: &quot;A String&quot;, # The IP address range of the container pods in this cluster, in [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing) notation (e.g. `10.96.0.0/14`). Leave blank to have one automatically chosen or specify a `/14` block in `10.0.0.0/8`.
    &quot;compliancePostureConfig&quot;: { # CompliancePostureConfig defines the settings needed to enable/disable features for the Compliance Posture. # Enable/Disable Compliance Posture features for the cluster.
      &quot;complianceStandards&quot;: [ # List of enabled compliance standards.
        { # Defines the details of a compliance standard.
          &quot;standard&quot;: &quot;A String&quot;, # Name of the compliance standard.
        },
      ],
      &quot;mode&quot;: &quot;A String&quot;, # Defines the enablement mode for Compliance Posture.
    },
    &quot;conditions&quot;: [ # Which conditions caused the current cluster state.
      { # StatusCondition describes why a cluster or a node pool has a certain status (e.g., ERROR or DEGRADED).
        &quot;canonicalCode&quot;: &quot;A String&quot;, # Canonical code of the condition.
        &quot;code&quot;: &quot;A String&quot;, # Machine-friendly representation of the condition Deprecated. Use canonical_code instead.
        &quot;message&quot;: &quot;A String&quot;, # Human-friendly representation of the condition
      },
    ],
    &quot;confidentialNodes&quot;: { # ConfidentialNodes is configuration for the confidential nodes feature, which makes nodes run on confidential VMs. # Configuration of Confidential Nodes. All the nodes in the cluster will be Confidential VM once enabled.
      &quot;confidentialInstanceType&quot;: &quot;A String&quot;, # Defines the type of technology used by the confidential node.
      &quot;enabled&quot;: True or False, # Whether Confidential Nodes feature is enabled.
    },
    &quot;controlPlaneEndpointsConfig&quot;: { # Configuration for all of the cluster&#x27;s control plane endpoints. # Configuration for all cluster&#x27;s control plane endpoints.
      &quot;dnsEndpointConfig&quot;: { # Describes the configuration of a DNS endpoint. # DNS endpoint configuration.
        &quot;allowExternalTraffic&quot;: True or False, # Controls whether user traffic is allowed over this endpoint. Note that Google-managed services may still use the endpoint even if this is false.
        &quot;enableK8sCertsViaDns&quot;: True or False, # Controls whether the k8s certs auth is allowed via DNS.
        &quot;enableK8sTokensViaDns&quot;: True or False, # Controls whether the k8s token auth is allowed via DNS.
        &quot;endpoint&quot;: &quot;A String&quot;, # Output only. The cluster&#x27;s DNS endpoint configuration. A DNS format address. This is accessible from the public internet. Ex: uid.us-central1.gke.goog. Always present, but the behavior may change according to the value of DNSEndpointConfig.allow_external_traffic.
      },
      &quot;ipEndpointsConfig&quot;: { # IP endpoints configuration. # IP endpoints configuration.
        &quot;authorizedNetworksConfig&quot;: { # Configuration options for the master authorized networks feature. Enabled master authorized networks will disallow all external traffic to access Kubernetes master through HTTPS except traffic from the given CIDR blocks, Google Compute Engine Public IPs and Google Prod IPs. # Configuration of authorized networks. If enabled, restricts access to the control plane based on source IP. It is invalid to specify both Cluster.masterAuthorizedNetworksConfig and this field at the same time.
          &quot;cidrBlocks&quot;: [ # cidr_blocks define up to 50 external networks that could access Kubernetes master through HTTPS.
            { # CidrBlock contains an optional name and one CIDR block.
              &quot;cidrBlock&quot;: &quot;A String&quot;, # cidr_block must be specified in CIDR notation.
              &quot;displayName&quot;: &quot;A String&quot;, # display_name is an optional field for users to identify CIDR blocks.
            },
          ],
          &quot;enabled&quot;: True or False, # Whether or not master authorized networks is enabled.
          &quot;gcpPublicCidrsAccessEnabled&quot;: True or False, # Whether master is accessible via Google Compute Engine Public IP addresses.
          &quot;privateEndpointEnforcementEnabled&quot;: True or False, # Whether master authorized networks is enforced on private endpoint or not.
        },
        &quot;enablePublicEndpoint&quot;: True or False, # Controls whether the control plane allows access through a public IP. It is invalid to specify both PrivateClusterConfig.enablePrivateEndpoint and this field at the same time.
        &quot;enabled&quot;: True or False, # Controls whether to allow direct IP access.
        &quot;globalAccess&quot;: True or False, # Controls whether the control plane&#x27;s private endpoint is accessible from sources in other regions. It is invalid to specify both PrivateClusterMasterGlobalAccessConfig.enabled and this field at the same time.
        &quot;privateEndpoint&quot;: &quot;A String&quot;, # Output only. The internal IP address of this cluster&#x27;s control plane. Only populated if enabled.
        &quot;privateEndpointSubnetwork&quot;: &quot;A String&quot;, # Subnet to provision the master&#x27;s private endpoint during cluster creation. Specified in projects/*/regions/*/subnetworks/* format. It is invalid to specify both PrivateClusterConfig.privateEndpointSubnetwork and this field at the same time.
        &quot;publicEndpoint&quot;: &quot;A String&quot;, # Output only. The external IP address of this cluster&#x27;s control plane. Only populated if enabled.
      },
    },
    &quot;costManagementConfig&quot;: { # Configuration for fine-grained cost management feature. # Configuration for the fine-grained cost management feature.
      &quot;enabled&quot;: True or False, # Whether the feature is enabled or not.
    },
    &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time the cluster was created, in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
    &quot;currentMasterVersion&quot;: &quot;A String&quot;, # Output only. The current software version of the master endpoint.
    &quot;currentNodeCount&quot;: 42, # Output only. The number of nodes currently in the cluster. Deprecated. Call Kubernetes API directly to retrieve node information.
    &quot;currentNodeVersion&quot;: &quot;A String&quot;, # Output only. Deprecated, use [NodePools.version](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&#x27;re in the process of being upgraded, this reflects the minimum version of all nodes.
    &quot;databaseEncryption&quot;: { # Configuration of etcd encryption. # Configuration of etcd encryption.
      &quot;currentState&quot;: &quot;A String&quot;, # Output only. The current state of etcd encryption.
      &quot;decryptionKeys&quot;: [ # Output only. Keys in use by the cluster for decrypting existing objects, in addition to the key in `key_name`. Each item is a CloudKMS key resource.
        &quot;A String&quot;,
      ],
      &quot;keyName&quot;: &quot;A String&quot;, # Name of CloudKMS key to use for the encryption of secrets in etcd. Ex. projects/my-project/locations/global/keyRings/my-ring/cryptoKeys/my-key
      &quot;lastOperationErrors&quot;: [ # Output only. Records errors seen during DatabaseEncryption update operations.
        { # OperationError records errors seen from CloudKMS keys encountered during updates to DatabaseEncryption configuration.
          &quot;errorMessage&quot;: &quot;A String&quot;, # Description of the error seen during the operation.
          &quot;keyName&quot;: &quot;A String&quot;, # CloudKMS key resource that had the error.
          &quot;timestamp&quot;: &quot;A String&quot;, # Time when the CloudKMS error was seen.
        },
      ],
      &quot;state&quot;: &quot;A String&quot;, # The desired state of etcd encryption.
    },
    &quot;defaultMaxPodsConstraint&quot;: { # Constraints applied to pods. # 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.
      &quot;maxPodsPerNode&quot;: &quot;A String&quot;, # Constraint enforced on the max num of pods per node.
    },
    &quot;description&quot;: &quot;A String&quot;, # An optional description of this cluster.
    &quot;enableK8sBetaApis&quot;: { # K8sBetaAPIConfig , configuration for beta APIs # Beta APIs Config
      &quot;enabledApis&quot;: [ # Enabled k8s beta APIs.
        &quot;A String&quot;,
      ],
    },
    &quot;enableKubernetesAlpha&quot;: True or False, # Kubernetes alpha features are enabled on this cluster. This includes alpha API groups (e.g. v1alpha1) and features that may not be production ready in the kubernetes version of the master and nodes. The cluster has no SLA for uptime and master/node upgrades are disabled. Alpha enabled clusters are automatically deleted thirty days after creation.
    &quot;enableTpu&quot;: True or False, # Enable the ability to use Cloud TPUs in this cluster. This field is deprecated due to the deprecation of 2VM TPU. The end of life date for 2VM TPU is 2025-04-25.
    &quot;endpoint&quot;: &quot;A String&quot;, # Output only. The IP address of this cluster&#x27;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.
    &quot;enterpriseConfig&quot;: { # EnterpriseConfig is the cluster enterprise configuration. Deprecated: GKE Enterprise features are now available without an Enterprise tier. # GKE Enterprise Configuration. Deprecated: GKE Enterprise features are now available without an Enterprise tier.
      &quot;clusterTier&quot;: &quot;A String&quot;, # Output only. cluster_tier indicates the effective tier of the cluster.
      &quot;desiredTier&quot;: &quot;A String&quot;, # desired_tier specifies the desired tier of the cluster.
    },
    &quot;etag&quot;: &quot;A String&quot;, # This checksum is computed by the server based on the value of cluster fields, and may be sent on update requests to ensure the client has an up-to-date value before proceeding.
    &quot;expireTime&quot;: &quot;A String&quot;, # Output only. The time the cluster will be automatically deleted in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
    &quot;fleet&quot;: { # Fleet is the fleet configuration for the cluster. # Fleet information for the cluster.
      &quot;membership&quot;: &quot;A String&quot;, # Output only. The full resource name of the registered fleet membership of the cluster, in the format `//gkehub.googleapis.com/projects/*/locations/*/memberships/*`.
      &quot;membershipType&quot;: &quot;A String&quot;, # The type of the cluster&#x27;s fleet membership.
      &quot;preRegistered&quot;: True or False, # Output only. Whether the cluster has been registered through the fleet API.
      &quot;project&quot;: &quot;A String&quot;, # The Fleet host project(project ID or project number) where this cluster will be registered to. This field cannot be changed after the cluster has been registered.
    },
    &quot;gkeAutoUpgradeConfig&quot;: { # GkeAutoUpgradeConfig is the configuration for GKE auto upgrades. # Configuration for GKE auto upgrades.
      &quot;patchMode&quot;: &quot;A String&quot;, # PatchMode specifies how auto upgrade patch builds should be selected.
    },
    &quot;id&quot;: &quot;A String&quot;, # Output only. Unique id for the cluster.
    &quot;identityServiceConfig&quot;: { # IdentityServiceConfig is configuration for Identity Service which allows customers to use external identity providers with the K8S API # Configuration for Identity Service component.
      &quot;enabled&quot;: True or False, # Whether to enable the Identity Service component
    },
    &quot;initialClusterVersion&quot;: &quot;A String&quot;, # 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: - &quot;latest&quot;: picks the highest valid Kubernetes version - &quot;1.X&quot;: picks the highest valid patch+gke.N patch in the 1.X version - &quot;1.X.Y&quot;: picks the highest valid gke.N patch in the 1.X.Y version - &quot;1.X.Y-gke.N&quot;: picks an explicit Kubernetes version - &quot;&quot;,&quot;-&quot;: picks the default Kubernetes version
    &quot;initialNodeCount&quot;: 42, # The number of nodes to create in this cluster. You must ensure that your Compute Engine [resource quota](https://cloud.google.com/compute/quotas) is sufficient for this number of instances. You must also have available firewall and routes quota. For requests, this field should only be used in lieu of a &quot;node_pool&quot; object, since this configuration (along with the &quot;node_config&quot;) will be used to create a &quot;NodePool&quot; object with an auto-generated name. Do not use this and a node_pool at the same time. This field is deprecated, use node_pool.initial_node_count instead.
    &quot;instanceGroupUrls&quot;: [ # Output only. Deprecated. Use node_pools.instance_group_urls.
      &quot;A String&quot;,
    ],
    &quot;ipAllocationPolicy&quot;: { # Configuration for controlling how IPs are allocated in the cluster. # Configuration for cluster IP allocation.
      &quot;additionalIpRangesConfigs&quot;: [ # Output only. The additional IP ranges that are added to the cluster. These IP ranges can be used by new node pools to allocate node and pod IPs automatically. Each AdditionalIPRangesConfig corresponds to a single subnetwork. Once a range is removed it will not show up in IPAllocationPolicy.
        { # AdditionalIPRangesConfig is the configuration for individual additional subnetwork attached to the cluster
          &quot;podIpv4RangeNames&quot;: [ # List of secondary ranges names within this subnetwork that can be used for pod IPs. Example1: gke-pod-range1 Example2: gke-pod-range1,gke-pod-range2
            &quot;A String&quot;,
          ],
          &quot;subnetwork&quot;: &quot;A String&quot;, # Name of the subnetwork. This can be the full path of the subnetwork or just the name. Example1: my-subnet Example2: projects/gke-project/regions/us-central1/subnetworks/my-subnet
        },
      ],
      &quot;additionalPodRangesConfig&quot;: { # AdditionalPodRangesConfig is the configuration for additional pod secondary ranges supporting the ClusterUpdate message. # Output only. The additional pod ranges that are added to the cluster. These pod ranges can be used by new node pools to allocate pod IPs automatically. Once the range is removed it will not show up in IPAllocationPolicy.
        &quot;podRangeInfo&quot;: [ # Output only. Information for additional pod range.
          { # RangeInfo contains the range name and the range utilization by this cluster.
            &quot;rangeName&quot;: &quot;A String&quot;, # Output only. Name of a range.
            &quot;utilization&quot;: 3.14, # Output only. The utilization of the range.
          },
        ],
        &quot;podRangeNames&quot;: [ # Name for pod secondary ipv4 range which has the actual range defined ahead.
          &quot;A String&quot;,
        ],
      },
      &quot;autoIpamConfig&quot;: { # AutoIpamConfig contains all information related to Auto IPAM # Optional. AutoIpamConfig contains all information related to Auto IPAM
        &quot;enabled&quot;: True or False, # The flag that enables Auto IPAM on this cluster
      },
      &quot;clusterIpv4Cidr&quot;: &quot;A String&quot;, # This field is deprecated, use cluster_ipv4_cidr_block.
      &quot;clusterIpv4CidrBlock&quot;: &quot;A String&quot;, # The IP address range for the cluster pod IPs. If this field is set, then `cluster.cluster_ipv4_cidr` must be left blank. This field is only applicable when `use_ip_aliases` is true. Set to blank to have a range chosen with the default size. Set to /netmask (e.g. `/14`) to have a range chosen with a specific netmask. Set to a [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing) notation (e.g. `10.96.0.0/14`) from the RFC-1918 private networks (e.g. `10.0.0.0/8`, `172.16.0.0/12`, `192.168.0.0/16`) to pick a specific range to use.
      &quot;clusterSecondaryRangeName&quot;: &quot;A String&quot;, # The name of the secondary range to be used for the cluster CIDR block. The secondary range will be used for pod IP addresses. This must be an existing secondary range associated with the cluster subnetwork. This field is only applicable with use_ip_aliases is true and create_subnetwork is false.
      &quot;createSubnetwork&quot;: True or False, # Whether a new subnetwork will be created automatically for the cluster. This field is only applicable when `use_ip_aliases` is true.
      &quot;defaultPodIpv4RangeUtilization&quot;: 3.14, # Output only. The utilization of the cluster default IPv4 range for the pod. The ratio is Usage/[Total number of IPs in the secondary range], Usage=numNodes*numZones*podIPsPerNode.
      &quot;ipv6AccessType&quot;: &quot;A String&quot;, # The ipv6 access type (internal or external) when create_subnetwork is true
      &quot;networkTierConfig&quot;: { # NetworkTierConfig contains network tier information. # Cluster-level network tier configuration is used to determine the default network tier for external IP addresses on cluster resources, such as node pools and load balancers.
        &quot;networkTier&quot;: &quot;A String&quot;, # Network tier configuration.
      },
      &quot;nodeIpv4Cidr&quot;: &quot;A String&quot;, # This field is deprecated, use node_ipv4_cidr_block.
      &quot;nodeIpv4CidrBlock&quot;: &quot;A String&quot;, # The IP address range of the instance IPs in this cluster. This is applicable only if `create_subnetwork` is true. Set to blank to have a range chosen with the default size. Set to /netmask (e.g. `/14`) to have a range chosen with a specific netmask. Set to a [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing) notation (e.g. `10.96.0.0/14`) from the RFC-1918 private networks (e.g. `10.0.0.0/8`, `172.16.0.0/12`, `192.168.0.0/16`) to pick a specific range to use.
      &quot;podCidrOverprovisionConfig&quot;: { # [PRIVATE FIELD] Config for pod CIDR size overprovisioning. # [PRIVATE FIELD] Pod CIDR size overprovisioning config for the cluster. Pod CIDR size per node depends on max_pods_per_node. By default, the value of max_pods_per_node is doubled and then rounded off to next power of 2 to get the size of pod CIDR block per node. Example: max_pods_per_node of 30 would result in 64 IPs (/26). This config can disable the doubling of IPs (we still round off to next power of 2) Example: max_pods_per_node of 30 will result in 32 IPs (/27) when overprovisioning is disabled.
        &quot;disable&quot;: True or False, # Whether Pod CIDR overprovisioning is disabled. Note: Pod CIDR overprovisioning is enabled by default.
      },
      &quot;servicesIpv4Cidr&quot;: &quot;A String&quot;, # This field is deprecated, use services_ipv4_cidr_block.
      &quot;servicesIpv4CidrBlock&quot;: &quot;A String&quot;, # The IP address range of the services IPs in this cluster. If blank, a range will be automatically chosen with the default size. This field is only applicable when `use_ip_aliases` is true. Set to blank to have a range chosen with the default size. Set to /netmask (e.g. `/14`) to have a range chosen with a specific netmask. Set to a [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing) notation (e.g. `10.96.0.0/14`) from the RFC-1918 private networks (e.g. `10.0.0.0/8`, `172.16.0.0/12`, `192.168.0.0/16`) to pick a specific range to use.
      &quot;servicesIpv6CidrBlock&quot;: &quot;A String&quot;, # Output only. The services IPv6 CIDR block for the cluster.
      &quot;servicesSecondaryRangeName&quot;: &quot;A String&quot;, # The name of the secondary range to be used as for the services CIDR block. The secondary range will be used for service ClusterIPs. This must be an existing secondary range associated with the cluster subnetwork. This field is only applicable with use_ip_aliases is true and create_subnetwork is false.
      &quot;stackType&quot;: &quot;A String&quot;, # The IP stack type of the cluster
      &quot;subnetIpv6CidrBlock&quot;: &quot;A String&quot;, # Output only. The subnet&#x27;s IPv6 CIDR block used by nodes and pods.
      &quot;subnetworkName&quot;: &quot;A String&quot;, # A custom subnetwork name to be used if `create_subnetwork` is true. If this field is empty, then an automatic name will be chosen for the new subnetwork.
      &quot;tpuIpv4CidrBlock&quot;: &quot;A String&quot;, # The IP address range of the Cloud TPUs in this cluster. If unspecified, a range will be automatically chosen with the default size. This field is only applicable when `use_ip_aliases` is true. If unspecified, the range will use the default size. Set to /netmask (e.g. `/14`) to have a range chosen with a specific netmask. Set to a [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing) notation (e.g. `10.96.0.0/14`) from the RFC-1918 private networks (e.g. `10.0.0.0/8`, `172.16.0.0/12`, `192.168.0.0/16`) to pick a specific range to use. This field is deprecated due to the deprecation of 2VM TPU. The end of life date for 2VM TPU is 2025-04-25.
      &quot;useIpAliases&quot;: True or False, # Whether alias IPs will be used for pod IPs in the cluster. This is used in conjunction with use_routes. It cannot be true if use_routes is true. If both use_ip_aliases and use_routes are false, then the server picks the default IP allocation mode
      &quot;useRoutes&quot;: True or False, # 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
    },
    &quot;labelFingerprint&quot;: &quot;A String&quot;, # The fingerprint of the set of labels for this cluster.
    &quot;legacyAbac&quot;: { # Configuration for the legacy Attribute Based Access Control authorization mode. # Configuration for the legacy ABAC authorization mode.
      &quot;enabled&quot;: True or False, # 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.
    },
    &quot;location&quot;: &quot;A String&quot;, # Output only. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/regions-zones/regions-zones#available) or [region](https://cloud.google.com/compute/docs/regions-zones/regions-zones#available) in which the cluster resides.
    &quot;locations&quot;: [ # The list of Google Compute Engine [zones](https://cloud.google.com/compute/docs/zones#available) in which the cluster&#x27;s nodes should be located. This field provides a default value if [NodePool.Locations](https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1/projects.locations.clusters.nodePools#NodePool.FIELDS.locations) are not specified during node pool creation. Warning: changing cluster locations will update the [NodePool.Locations](https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1/projects.locations.clusters.nodePools#NodePool.FIELDS.locations) of all node pools and will result in nodes being added and/or removed.
      &quot;A String&quot;,
    ],
    &quot;loggingConfig&quot;: { # LoggingConfig is cluster logging configuration. # Logging configuration for the cluster.
      &quot;componentConfig&quot;: { # LoggingComponentConfig is cluster logging component configuration. # Logging components configuration
        &quot;enableComponents&quot;: [ # Select components to collect logs. An empty set would disable all logging.
          &quot;A String&quot;,
        ],
      },
    },
    &quot;loggingService&quot;: &quot;A String&quot;, # The logging service the cluster should use to write logs. Currently available options: * `logging.googleapis.com/kubernetes` - The Cloud Logging service with a Kubernetes-native resource model * `logging.googleapis.com` - The legacy Cloud Logging service (no longer available as of GKE 1.15). * `none` - no logs will be exported from the cluster. If left as an empty string,`logging.googleapis.com/kubernetes` will be used for GKE 1.14+ or `logging.googleapis.com` for earlier versions.
    &quot;maintenancePolicy&quot;: { # MaintenancePolicy defines the maintenance policy to be used for the cluster. # Configure the maintenance policy for this cluster.
      &quot;resourceVersion&quot;: &quot;A String&quot;, # A hash identifying the version of this policy, so that updates to fields of the policy won&#x27;t accidentally undo intermediate changes (and so that users of the API unaware of some fields won&#x27;t accidentally remove other fields). Make a `get()` request to the cluster to get the current resource version and include it with requests to set the policy.
      &quot;window&quot;: { # MaintenanceWindow defines the maintenance window to be used for the cluster. # Specifies the maintenance window in which maintenance may be performed.
        &quot;dailyMaintenanceWindow&quot;: { # Time window specified for daily maintenance operations. # DailyMaintenanceWindow specifies a daily maintenance operation window.
          &quot;duration&quot;: &quot;A String&quot;, # Output only. Duration of the time window, automatically chosen to be smallest possible in the given scenario. Duration will be in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) format &quot;PTnHnMnS&quot;.
          &quot;startTime&quot;: &quot;A String&quot;, # Time within the maintenance window to start the maintenance operations. Time format should be in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) format &quot;HH:MM&quot;, where HH : [00-23] and MM : [00-59] GMT.
        },
        &quot;maintenanceExclusions&quot;: { # Exceptions to maintenance window. Non-emergency maintenance should not occur in these windows.
          &quot;a_key&quot;: { # Represents an arbitrary window of time.
            &quot;endTime&quot;: &quot;A String&quot;, # The time that the window ends. The end time should take place after the start time.
            &quot;maintenanceExclusionOptions&quot;: { # Represents the Maintenance exclusion option. # MaintenanceExclusionOptions provides maintenance exclusion related options.
              &quot;endTimeBehavior&quot;: &quot;A String&quot;, # EndTimeBehavior specifies the behavior of the exclusion end time.
              &quot;scope&quot;: &quot;A String&quot;, # Scope specifies the upgrade scope which upgrades are blocked by the exclusion.
            },
            &quot;startTime&quot;: &quot;A String&quot;, # The time that the window first starts.
          },
        },
        &quot;recurringWindow&quot;: { # Represents an arbitrary window of time that recurs. # RecurringWindow specifies some number of recurring time periods for maintenance to occur. The time windows may be overlapping. If no maintenance windows are set, maintenance can occur at any time.
          &quot;recurrence&quot;: &quot;A String&quot;, # An RRULE (https://tools.ietf.org/html/rfc5545#section-3.8.5.3) for how this window reccurs. They go on for the span of time between the start and end time. For example, to have something repeat every weekday, you&#x27;d use: `FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR` To repeat some window daily (equivalent to the DailyMaintenanceWindow): `FREQ=DAILY` For the first weekend of every month: `FREQ=MONTHLY;BYSETPOS=1;BYDAY=SA,SU` This specifies how frequently the window starts. Eg, if you wanted to have a 9-5 UTC-4 window every weekday, you&#x27;d use something like: ``` start time = 2019-01-01T09:00:00-0400 end time = 2019-01-01T17:00:00-0400 recurrence = FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR ``` Windows can span multiple days. Eg, to make the window encompass every weekend from midnight Saturday till the last minute of Sunday UTC: ``` start time = 2019-01-05T00:00:00Z end time = 2019-01-07T23:59:00Z recurrence = FREQ=WEEKLY;BYDAY=SA ``` Note the start and end time&#x27;s specific dates are largely arbitrary except to specify duration of the window and when it first starts. The FREQ values of HOURLY, MINUTELY, and SECONDLY are not supported.
          &quot;window&quot;: { # Represents an arbitrary window of time. # The window of the first recurrence.
            &quot;endTime&quot;: &quot;A String&quot;, # The time that the window ends. The end time should take place after the start time.
            &quot;maintenanceExclusionOptions&quot;: { # Represents the Maintenance exclusion option. # MaintenanceExclusionOptions provides maintenance exclusion related options.
              &quot;endTimeBehavior&quot;: &quot;A String&quot;, # EndTimeBehavior specifies the behavior of the exclusion end time.
              &quot;scope&quot;: &quot;A String&quot;, # Scope specifies the upgrade scope which upgrades are blocked by the exclusion.
            },
            &quot;startTime&quot;: &quot;A String&quot;, # The time that the window first starts.
          },
        },
      },
    },
    &quot;masterAuth&quot;: { # The authentication information for accessing the master endpoint. Authentication can be done using HTTP basic auth or using client certificates. # The authentication information for accessing the master endpoint. If unspecified, the defaults are used: For clusters before v1.12, if master_auth is unspecified, `username` will be set to &quot;admin&quot;, a random password will be generated, and a client certificate will be issued.
      &quot;clientCertificate&quot;: &quot;A String&quot;, # Output only. Base64-encoded public certificate used by clients to authenticate to the cluster endpoint. Issued only if client_certificate_config is set.
      &quot;clientCertificateConfig&quot;: { # Configuration for client certificates on the cluster. # Configuration for client certificate authentication on the cluster. For clusters before v1.12, if no configuration is specified, a client certificate is issued.
        &quot;issueClientCertificate&quot;: True or False, # Issue a client certificate.
      },
      &quot;clientKey&quot;: &quot;A String&quot;, # Output only. Base64-encoded private key used by clients to authenticate to the cluster endpoint.
      &quot;clusterCaCertificate&quot;: &quot;A String&quot;, # Output only. Base64-encoded public certificate that is the root of trust for the cluster.
      &quot;password&quot;: &quot;A String&quot;, # The password to use for HTTP basic authentication to the master endpoint. Because the master endpoint is open to the Internet, you should create a strong password. If a password is provided for cluster creation, username must be non-empty. Warning: basic authentication is deprecated, and will be removed in GKE control plane versions 1.19 and newer. For a list of recommended authentication methods, see: https://cloud.google.com/kubernetes-engine/docs/how-to/api-server-authentication
      &quot;username&quot;: &quot;A String&quot;, # The username to use for HTTP basic authentication to the master endpoint. For clusters v1.6.0 and later, basic authentication can be disabled by leaving username unspecified (or setting it to the empty string). Warning: basic authentication is deprecated, and will be removed in GKE control plane versions 1.19 and newer. For a list of recommended authentication methods, see: https://cloud.google.com/kubernetes-engine/docs/how-to/api-server-authentication
    },
    &quot;masterAuthorizedNetworksConfig&quot;: { # Configuration options for the master authorized networks feature. Enabled master authorized networks will disallow all external traffic to access Kubernetes master through HTTPS except traffic from the given CIDR blocks, Google Compute Engine Public IPs and Google Prod IPs. # The configuration options for master authorized networks feature. Deprecated: Use ControlPlaneEndpointsConfig.IPEndpointsConfig.authorized_networks_config instead.
      &quot;cidrBlocks&quot;: [ # cidr_blocks define up to 50 external networks that could access Kubernetes master through HTTPS.
        { # CidrBlock contains an optional name and one CIDR block.
          &quot;cidrBlock&quot;: &quot;A String&quot;, # cidr_block must be specified in CIDR notation.
          &quot;displayName&quot;: &quot;A String&quot;, # display_name is an optional field for users to identify CIDR blocks.
        },
      ],
      &quot;enabled&quot;: True or False, # Whether or not master authorized networks is enabled.
      &quot;gcpPublicCidrsAccessEnabled&quot;: True or False, # Whether master is accessible via Google Compute Engine Public IP addresses.
      &quot;privateEndpointEnforcementEnabled&quot;: True or False, # Whether master authorized networks is enforced on private endpoint or not.
    },
    &quot;meshCertificates&quot;: { # Configuration for issuance of mTLS keys and certificates to Kubernetes pods. # Configuration for issuance of mTLS keys and certificates to Kubernetes pods.
      &quot;enableCertificates&quot;: True or False, # enable_certificates controls issuance of workload mTLS certificates. If set, the GKE Workload Identity Certificates controller and node agent will be deployed in the cluster, which can then be configured by creating a WorkloadCertificateConfig Custom Resource. Requires Workload Identity (workload_pool must be non-empty).
    },
    &quot;monitoringConfig&quot;: { # MonitoringConfig is cluster monitoring configuration. # Monitoring configuration for the cluster.
      &quot;advancedDatapathObservabilityConfig&quot;: { # AdvancedDatapathObservabilityConfig specifies configuration of observability features of advanced datapath. # Configuration of Advanced Datapath Observability features.
        &quot;enableMetrics&quot;: True or False, # Expose flow metrics on nodes
        &quot;enableRelay&quot;: True or False, # Enable Relay component
        &quot;relayMode&quot;: &quot;A String&quot;, # Method used to make Relay available
      },
      &quot;componentConfig&quot;: { # MonitoringComponentConfig is cluster monitoring component configuration. # Monitoring components configuration
        &quot;enableComponents&quot;: [ # Select components to collect metrics. An empty set would disable all monitoring.
          &quot;A String&quot;,
        ],
      },
      &quot;managedPrometheusConfig&quot;: { # ManagedPrometheusConfig defines the configuration for Google Cloud Managed Service for Prometheus. # Enable Google Cloud Managed Service for Prometheus in the cluster.
        &quot;autoMonitoringConfig&quot;: { # AutoMonitoringConfig defines the configuration for GKE Workload Auto-Monitoring. # GKE Workload Auto-Monitoring Configuration.
          &quot;scope&quot;: &quot;A String&quot;, # Scope for GKE Workload Auto-Monitoring.
        },
        &quot;enabled&quot;: True or False, # Enable Managed Collection.
      },
    },
    &quot;monitoringService&quot;: &quot;A String&quot;, # The monitoring service the cluster should use to write metrics. Currently available options: * `monitoring.googleapis.com/kubernetes` - The Cloud Monitoring service with a Kubernetes-native resource model * `monitoring.googleapis.com` - The legacy Cloud Monitoring service (no longer available as of GKE 1.15). * `none` - No metrics will be exported from the cluster. If left as an empty string,`monitoring.googleapis.com/kubernetes` will be used for GKE 1.14+ or `monitoring.googleapis.com` for earlier versions.
    &quot;name&quot;: &quot;A String&quot;, # The name of this cluster. The name must be unique within this project and location (e.g. zone or region), and can be up to 40 characters with the following restrictions: * Lowercase letters, numbers, and hyphens only. * Must start with a letter. * Must end with a number or a letter.
    &quot;network&quot;: &quot;A String&quot;, # The name of the Google Compute Engine [network](https://cloud.google.com/compute/docs/networks-and-firewalls#networks) to which the cluster is connected. If left unspecified, the `default` network will be used.
    &quot;networkConfig&quot;: { # NetworkConfig reports the relative names of network &amp; subnetwork. # Configuration for cluster networking.
      &quot;datapathProvider&quot;: &quot;A String&quot;, # The desired datapath provider for this cluster. By default, uses the IPTables-based kube-proxy implementation.
      &quot;defaultEnablePrivateNodes&quot;: True or False, # Controls whether by default nodes have private IP addresses only. It is invalid to specify both PrivateClusterConfig.enablePrivateNodes and this field at the same time. To update the default setting, use ClusterUpdate.desired_default_enable_private_nodes
      &quot;defaultSnatStatus&quot;: { # DefaultSnatStatus contains the desired state of whether default sNAT should be disabled on the cluster. # 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.
        &quot;disabled&quot;: True or False, # Disables cluster default sNAT rules.
      },
      &quot;disableL4LbFirewallReconciliation&quot;: True or False, # Disable L4 load balancer VPC firewalls to enable firewall policies.
      &quot;dnsConfig&quot;: { # DNSConfig contains the desired set of options for configuring clusterDNS. # DNSConfig contains clusterDNS config for this cluster.
        &quot;additiveVpcScopeDnsDomain&quot;: &quot;A String&quot;, # Optional. The domain used in Additive VPC scope.
        &quot;clusterDns&quot;: &quot;A String&quot;, # cluster_dns indicates which in-cluster DNS provider should be used.
        &quot;clusterDnsDomain&quot;: &quot;A String&quot;, # cluster_dns_domain is the suffix used for all cluster service records.
        &quot;clusterDnsScope&quot;: &quot;A String&quot;, # cluster_dns_scope indicates the scope of access to cluster DNS records.
      },
      &quot;enableCiliumClusterwideNetworkPolicy&quot;: True or False, # Whether CiliumClusterwideNetworkPolicy is enabled on this cluster.
      &quot;enableFqdnNetworkPolicy&quot;: True or False, # Whether FQDN Network Policy is enabled on this cluster.
      &quot;enableIntraNodeVisibility&quot;: True or False, # Whether Intra-node visibility is enabled for this cluster. This makes same node pod to pod traffic visible for VPC network.
      &quot;enableL4ilbSubsetting&quot;: True or False, # Whether L4ILB Subsetting is enabled for this cluster.
      &quot;enableMultiNetworking&quot;: True or False, # Whether multi-networking is enabled for this cluster.
      &quot;gatewayApiConfig&quot;: { # GatewayAPIConfig contains the desired config of Gateway API on this cluster. # GatewayAPIConfig contains the desired config of Gateway API on this cluster.
        &quot;channel&quot;: &quot;A String&quot;, # The Gateway API release channel to use for Gateway API.
      },
      &quot;inTransitEncryptionConfig&quot;: &quot;A String&quot;, # Specify the details of in-transit encryption. Now named inter-node transparent encryption.
      &quot;network&quot;: &quot;A String&quot;, # Output only. The relative name of the Google Compute Engine [network](https://cloud.google.com/compute/docs/networks-and-firewalls#networks) to which the cluster is connected. Example: projects/my-project/global/networks/my-network
      &quot;networkPerformanceConfig&quot;: { # Configuration of network bandwidth tiers # Network bandwidth tier configuration.
        &quot;totalEgressBandwidthTier&quot;: &quot;A String&quot;, # Specifies the total network bandwidth tier for NodePools in the cluster.
      },
      &quot;privateIpv6GoogleAccess&quot;: &quot;A String&quot;, # 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)
      &quot;serviceExternalIpsConfig&quot;: { # Config to block services with externalIPs field. # ServiceExternalIPsConfig specifies if services with externalIPs field are blocked or not.
        &quot;enabled&quot;: True or False, # Whether Services with ExternalIPs field are allowed or not.
      },
      &quot;subnetwork&quot;: &quot;A String&quot;, # Output only. The relative name of the Google Compute Engine [subnetwork](https://cloud.google.com/compute/docs/vpc) to which the cluster is connected. Example: projects/my-project/regions/us-central1/subnetworks/my-subnet
    },
    &quot;networkPolicy&quot;: { # Configuration options for the NetworkPolicy feature. https://kubernetes.io/docs/concepts/services-networking/networkpolicies/ # Configuration options for the NetworkPolicy feature.
      &quot;enabled&quot;: True or False, # Whether network policy is enabled on the cluster.
      &quot;provider&quot;: &quot;A String&quot;, # The selected network policy provider.
    },
    &quot;nodeConfig&quot;: { # Parameters that describe the nodes in a cluster. GKE Autopilot clusters do not recognize parameters in `NodeConfig`. Use AutoprovisioningNodePoolDefaults instead. # Parameters used in creating the cluster&#x27;s nodes. For requests, this field should only be used in lieu of a &quot;node_pool&quot; object, since this configuration (along with the &quot;initial_node_count&quot;) will be used to create a &quot;NodePool&quot; object with an auto-generated name. Do not use this and a node_pool at the same time. For responses, this field will be populated with the node configuration of the first node pool. (For configuration of each node pool, see `node_pool.config`) If unspecified, the defaults are used. This field is deprecated, use node_pool.config instead.
      &quot;accelerators&quot;: [ # 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.
        { # AcceleratorConfig represents a Hardware Accelerator request.
          &quot;acceleratorCount&quot;: &quot;A String&quot;, # The number of the accelerator cards exposed to an instance.
          &quot;acceleratorType&quot;: &quot;A String&quot;, # The accelerator type resource name. List of supported accelerators [here](https://cloud.google.com/compute/docs/gpus)
          &quot;gpuDriverInstallationConfig&quot;: { # GPUDriverInstallationConfig specifies the version of GPU driver to be auto installed. # The configuration for auto installation of GPU driver.
            &quot;gpuDriverVersion&quot;: &quot;A String&quot;, # Mode for how the GPU driver is installed.
          },
          &quot;gpuPartitionSize&quot;: &quot;A String&quot;, # Size of partitions to create on the GPU. Valid values are described in the NVIDIA [mig user guide](https://docs.nvidia.com/datacenter/tesla/mig-user-guide/#partitioning).
          &quot;gpuSharingConfig&quot;: { # GPUSharingConfig represents the GPU sharing configuration for Hardware Accelerators. # The configuration for GPU sharing options.
            &quot;gpuSharingStrategy&quot;: &quot;A String&quot;, # The type of GPU sharing strategy to enable on the GPU node.
            &quot;maxSharedClientsPerGpu&quot;: &quot;A String&quot;, # The max number of containers that can share a physical GPU.
          },
        },
      ],
      &quot;advancedMachineFeatures&quot;: { # Specifies options for controlling advanced machine features. # Advanced features for the Compute Engine VM.
        &quot;enableNestedVirtualization&quot;: True or False, # Whether or not to enable nested virtualization (defaults to false).
        &quot;performanceMonitoringUnit&quot;: &quot;A String&quot;, # Type of Performance Monitoring Unit (PMU) requested on node pool instances. If unset, PMU will not be available to the node.
        &quot;threadsPerCore&quot;: &quot;A String&quot;, # The number of threads per physical core. To disable simultaneous multithreading (SMT) set this to 1. If unset, the maximum number of threads supported per core by the underlying processor is assumed.
      },
      &quot;bootDisk&quot;: { # BootDisk specifies the boot disk configuration for nodepools. # The boot disk configuration for the node pool.
        &quot;diskType&quot;: &quot;A String&quot;, # Disk type of the boot disk. (i.e. Hyperdisk-Balanced, PD-Balanced, etc.)
        &quot;provisionedIops&quot;: &quot;A String&quot;, # For Hyperdisk-Balanced only, the provisioned IOPS config value.
        &quot;provisionedThroughput&quot;: &quot;A String&quot;, # For Hyperdisk-Balanced only, the provisioned throughput config value.
        &quot;sizeGb&quot;: &quot;A String&quot;, # Disk size in GB. Replaces NodeConfig.disk_size_gb
      },
      &quot;bootDiskKmsKey&quot;: &quot;A String&quot;, #  The Customer Managed Encryption Key used to encrypt the boot disk attached to each node in the node pool. This should be of the form projects/[KEY_PROJECT_ID]/locations/[LOCATION]/keyRings/[RING_NAME]/cryptoKeys/[KEY_NAME]. For more information about protecting resources with Cloud KMS Keys please see: https://cloud.google.com/compute/docs/disks/customer-managed-encryption
      &quot;confidentialNodes&quot;: { # ConfidentialNodes is configuration for the confidential nodes feature, which makes nodes run on confidential VMs. # Confidential nodes config. All the nodes in the node pool will be Confidential VM once enabled.
        &quot;confidentialInstanceType&quot;: &quot;A String&quot;, # Defines the type of technology used by the confidential node.
        &quot;enabled&quot;: True or False, # Whether Confidential Nodes feature is enabled.
      },
      &quot;containerdConfig&quot;: { # ContainerdConfig contains configuration to customize containerd. # Parameters for containerd customization.
        &quot;privateRegistryAccessConfig&quot;: { # PrivateRegistryAccessConfig contains access configuration for private container registries. # PrivateRegistryAccessConfig is used to configure access configuration for private container registries.
          &quot;certificateAuthorityDomainConfig&quot;: [ # Private registry access configuration.
            { # CertificateAuthorityDomainConfig configures one or more fully qualified domain names (FQDN) to a specific certificate.
              &quot;fqdns&quot;: [ # List of fully qualified domain names (FQDN). Specifying port is supported. Wildcards are NOT supported. Examples: - my.customdomain.com - 10.0.1.2:5000
                &quot;A String&quot;,
              ],
              &quot;gcpSecretManagerCertificateConfig&quot;: { # GCPSecretManagerCertificateConfig configures a secret from [Secret Manager](https://cloud.google.com/secret-manager). # Google Secret Manager (GCP) certificate configuration.
                &quot;secretUri&quot;: &quot;A String&quot;, # Secret URI, in the form &quot;projects/$PROJECT_ID/secrets/$SECRET_NAME/versions/$VERSION&quot;. Version can be fixed (e.g. &quot;2&quot;) or &quot;latest&quot;
              },
            },
          ],
          &quot;enabled&quot;: True or False, # Private registry access is enabled.
        },
        &quot;writableCgroups&quot;: { # Defines writable cgroups configuration. # Optional. WritableCgroups defines writable cgroups configuration for the node pool.
          &quot;enabled&quot;: True or False, # Optional. Whether writable cgroups is enabled.
        },
      },
      &quot;diskSizeGb&quot;: 42, # 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.
      &quot;diskType&quot;: &quot;A String&quot;, # Type of the disk attached to each node (e.g. &#x27;pd-standard&#x27;, &#x27;pd-ssd&#x27; or &#x27;pd-balanced&#x27;) If unspecified, the default disk type is &#x27;pd-standard&#x27;
      &quot;effectiveCgroupMode&quot;: &quot;A String&quot;, # Output only. effective_cgroup_mode is the cgroup mode actually used by the node pool. It is determined by the cgroup mode specified in the LinuxNodeConfig or the default cgroup mode based on the cluster creation version.
      &quot;enableConfidentialStorage&quot;: True or False, # Optional. Reserved for future use.
      &quot;ephemeralStorageLocalSsdConfig&quot;: { # EphemeralStorageLocalSsdConfig contains configuration for the node ephemeral storage using Local SSDs. # Parameters for the node ephemeral storage using Local SSDs. If unspecified, ephemeral storage is backed by the boot disk.
        &quot;dataCacheCount&quot;: 42, # Number of local SSDs to use for GKE Data Cache.
        &quot;localSsdCount&quot;: 42, # Number of local SSDs to use to back ephemeral storage. Uses NVMe interfaces. A zero (or unset) value has different meanings depending on machine type being used: 1. For pre-Gen3 machines, which support flexible numbers of local ssds, zero (or unset) means to disable using local SSDs as ephemeral storage. The limit for this value is dependent upon the maximum number of disk available on a machine per zone. See: https://cloud.google.com/compute/docs/disks/local-ssd for more information. 2. For Gen3 machines which dictate a specific number of local ssds, zero (or unset) means to use the default number of local ssds that goes with that machine type. For example, for a c3-standard-8-lssd machine, 2 local ssds would be provisioned. For c3-standard-8 (which doesn&#x27;t support local ssds), 0 will be provisioned. See https://cloud.google.com/compute/docs/disks/local-ssd#choose_number_local_ssds for more info.
      },
      &quot;fastSocket&quot;: { # Configuration of Fast Socket feature. # Enable or disable NCCL fast socket for the node pool.
        &quot;enabled&quot;: True or False, # Whether Fast Socket features are enabled in the node pool.
      },
      &quot;flexStart&quot;: True or False, # Flex Start flag for enabling Flex Start VM.
      &quot;gcfsConfig&quot;: { # GcfsConfig contains configurations of Google Container File System (image streaming). # Google Container File System (image streaming) configs.
        &quot;enabled&quot;: True or False, # Whether to use GCFS.
      },
      &quot;gvnic&quot;: { # Configuration of gVNIC feature. # Enable or disable gvnic in the node pool.
        &quot;enabled&quot;: True or False, # Whether gVNIC features are enabled in the node pool.
      },
      &quot;imageType&quot;: &quot;A String&quot;, # The image type to use for this node. Note that for a given image type, the latest version of it will be used. Please see https://cloud.google.com/kubernetes-engine/docs/concepts/node-images for available image types.
      &quot;kubeletConfig&quot;: { # Node kubelet configs. # Node kubelet configs.
        &quot;allowedUnsafeSysctls&quot;: [ # Optional. Defines a comma-separated allowlist of unsafe sysctls or sysctl patterns (ending in `*`). The unsafe namespaced sysctl groups are `kernel.shm*`, `kernel.msg*`, `kernel.sem`, `fs.mqueue.*`, and `net.*`. Leaving this allowlist empty means they cannot be set on Pods. To allow certain sysctls or sysctl patterns to be set on Pods, list them separated by commas. For example: `kernel.msg*,net.ipv4.route.min_pmtu`. See https://kubernetes.io/docs/tasks/administer-cluster/sysctl-cluster/ for more details.
          &quot;A String&quot;,
        ],
        &quot;containerLogMaxFiles&quot;: 42, # Optional. Defines the maximum number of container log files that can be present for a container. See https://kubernetes.io/docs/concepts/cluster-administration/logging/#log-rotation The value must be an integer between 2 and 10, inclusive. The default value is 5 if unspecified.
        &quot;containerLogMaxSize&quot;: &quot;A String&quot;, # Optional. Defines the maximum size of the container log file before it is rotated. See https://kubernetes.io/docs/concepts/cluster-administration/logging/#log-rotation Valid format is positive number + unit, e.g. 100Ki, 10Mi. Valid units are Ki, Mi, Gi. The value must be between 10Mi and 500Mi, inclusive. Note that the total container log size (container_log_max_size * container_log_max_files) cannot exceed 1% of the total storage of the node, to avoid disk pressure caused by log files. The default value is 10Mi if unspecified.
        &quot;cpuCfsQuota&quot;: True or False, # 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 &#x27;true&#x27; if unspecified.
        &quot;cpuCfsQuotaPeriod&quot;: &quot;A String&quot;, # Set the CPU CFS quota period value &#x27;cpu.cfs_period_us&#x27;. The string must be a sequence of decimal numbers, each with optional fraction and a unit suffix, such as &quot;300ms&quot;. Valid time units are &quot;ns&quot;, &quot;us&quot; (or &quot;µs&quot;), &quot;ms&quot;, &quot;s&quot;, &quot;m&quot;, &quot;h&quot;. The value must be a positive duration between 1ms and 1 second, inclusive.
        &quot;cpuManagerPolicy&quot;: &quot;A String&quot;, # Control the CPU management policy on the node. See https://kubernetes.io/docs/tasks/administer-cluster/cpu-management-policies/ The following values are allowed. * &quot;none&quot;: the default, which represents the existing scheduling behavior. * &quot;static&quot;: allows pods with certain resource characteristics to be granted increased CPU affinity and exclusivity on the node. The default value is &#x27;none&#x27; if unspecified.
        &quot;evictionMaxPodGracePeriodSeconds&quot;: 42, # Optional. eviction_max_pod_grace_period_seconds is the maximum allowed grace period (in seconds) to use when terminating pods in response to a soft eviction threshold being met. This value effectively caps the Pod&#x27;s terminationGracePeriodSeconds value during soft evictions. Default: 0. Range: [0, 300].
        &quot;evictionMinimumReclaim&quot;: { # Eviction minimum reclaims are the resource amounts of minimum reclaims for each eviction signal. # Optional. eviction_minimum_reclaim is a map of signal names to quantities that defines minimum reclaims, which describe the minimum amount of a given resource the kubelet will reclaim when performing a pod eviction while that resource is under pressure.
          &quot;imagefsAvailable&quot;: &quot;A String&quot;, # Optional. Minimum reclaim for eviction due to imagefs available signal. Only take percentage value for now. Sample format: &quot;10%&quot;. Must be &lt;=10%. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
          &quot;imagefsInodesFree&quot;: &quot;A String&quot;, # Optional. Minimum reclaim for eviction due to imagefs inodes free signal. Only take percentage value for now. Sample format: &quot;10%&quot;. Must be &lt;=10%. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
          &quot;memoryAvailable&quot;: &quot;A String&quot;, # Optional. Minimum reclaim for eviction due to memory available signal. Only take percentage value for now. Sample format: &quot;10%&quot;. Must be &lt;=10%. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
          &quot;nodefsAvailable&quot;: &quot;A String&quot;, # Optional. Minimum reclaim for eviction due to nodefs available signal. Only take percentage value for now. Sample format: &quot;10%&quot;. Must be &lt;=10%. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
          &quot;nodefsInodesFree&quot;: &quot;A String&quot;, # Optional. Minimum reclaim for eviction due to nodefs inodes free signal. Only take percentage value for now. Sample format: &quot;10%&quot;. Must be &lt;=10%. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
          &quot;pidAvailable&quot;: &quot;A String&quot;, # Optional. Minimum reclaim for eviction due to pid available signal. Only take percentage value for now. Sample format: &quot;10%&quot;. Must be &lt;=10%. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
        },
        &quot;evictionSoft&quot;: { # Eviction signals are the current state of a particular resource at a specific point in time. The kubelet uses eviction signals to make eviction decisions by comparing the signals to eviction thresholds, which are the minimum amount of the resource that should be available on the node. # Optional. eviction_soft is a map of signal names to quantities that defines soft eviction thresholds. Each signal is compared to its corresponding threshold to determine if a pod eviction should occur.
          &quot;imagefsAvailable&quot;: &quot;A String&quot;, # Optional. Amount of storage available on filesystem that container runtime uses for storing images layers. If the container filesystem and image filesystem are not separate, then imagefs can store both image layers and writeable layers. Defines the amount of &quot;imagefs.available&quot; signal in kubelet. Default is unset, if not specified in the kubelet config. It takses percentage value for now. Sample format: &quot;30%&quot;. Must be &gt;= 15% and &lt;= 50%. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
          &quot;imagefsInodesFree&quot;: &quot;A String&quot;, # Optional. Amount of inodes available on filesystem that container runtime uses for storing images layers. Defines the amount of &quot;imagefs.inodesFree&quot; signal in kubelet. Default is unset, if not specified in the kubelet config. Linux only. It takses percentage value for now. Sample format: &quot;30%&quot;. Must be &gt;= 5% and &lt;= 50%. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
          &quot;memoryAvailable&quot;: &quot;A String&quot;, # Optional. Memory available (i.e. capacity - workingSet), in bytes. Defines the amount of &quot;memory.available&quot; signal in kubelet. Default is unset, if not specified in the kubelet config. Format: positive number + unit, e.g. 100Ki, 10Mi, 5Gi. Valid units are Ki, Mi, Gi. Must be &gt;= 100Mi and &lt;= 50% of the node&#x27;s memory. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
          &quot;nodefsAvailable&quot;: &quot;A String&quot;, # Optional. Amount of storage available on filesystem that kubelet uses for volumes, daemon logs, etc. Defines the amount of &quot;nodefs.available&quot; signal in kubelet. Default is unset, if not specified in the kubelet config. It takses percentage value for now. Sample format: &quot;30%&quot;. Must be &gt;= 10% and &lt;= 50%. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
          &quot;nodefsInodesFree&quot;: &quot;A String&quot;, # Optional. Amount of inodes available on filesystem that kubelet uses for volumes, daemon logs, etc. Defines the amount of &quot;nodefs.inodesFree&quot; signal in kubelet. Default is unset, if not specified in the kubelet config. Linux only. It takses percentage value for now. Sample format: &quot;30%&quot;. Must be &gt;= 5% and &lt;= 50%. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
          &quot;pidAvailable&quot;: &quot;A String&quot;, # Optional. Amount of PID available for pod allocation. Defines the amount of &quot;pid.available&quot; signal in kubelet. Default is unset, if not specified in the kubelet config. It takses percentage value for now. Sample format: &quot;30%&quot;. Must be &gt;= 10% and &lt;= 50%. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
        },
        &quot;evictionSoftGracePeriod&quot;: { # Eviction grace periods are grace periods for each eviction signal. # Optional. eviction_soft_grace_period is a map of signal names to quantities that defines grace periods for each soft eviction signal. The grace period is the amount of time that a pod must be under pressure before an eviction occurs.
          &quot;imagefsAvailable&quot;: &quot;A String&quot;, # Optional. Grace period for eviction due to imagefs available signal. Sample format: &quot;10s&quot;. Must be &gt;= 0. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
          &quot;imagefsInodesFree&quot;: &quot;A String&quot;, # Optional. Grace period for eviction due to imagefs inodes free signal. Sample format: &quot;10s&quot;. Must be &gt;= 0. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
          &quot;memoryAvailable&quot;: &quot;A String&quot;, # Optional. Grace period for eviction due to memory available signal. Sample format: &quot;10s&quot;. Must be &gt;= 0. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
          &quot;nodefsAvailable&quot;: &quot;A String&quot;, # Optional. Grace period for eviction due to nodefs available signal. Sample format: &quot;10s&quot;. Must be &gt;= 0. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
          &quot;nodefsInodesFree&quot;: &quot;A String&quot;, # Optional. Grace period for eviction due to nodefs inodes free signal. Sample format: &quot;10s&quot;. Must be &gt;= 0. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
          &quot;pidAvailable&quot;: &quot;A String&quot;, # Optional. Grace period for eviction due to pid available signal. Sample format: &quot;10s&quot;. Must be &gt;= 0. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
        },
        &quot;imageGcHighThresholdPercent&quot;: 42, # Optional. Defines the percent of disk usage after which image garbage collection is always run. The percent is calculated as this field value out of 100. The value must be between 10 and 85, inclusive and greater than image_gc_low_threshold_percent. The default value is 85 if unspecified.
        &quot;imageGcLowThresholdPercent&quot;: 42, # Optional. Defines the percent of disk usage before which image garbage collection is never run. Lowest disk usage to garbage collect to. The percent is calculated as this field value out of 100. The value must be between 10 and 85, inclusive and smaller than image_gc_high_threshold_percent. The default value is 80 if unspecified.
        &quot;imageMaximumGcAge&quot;: &quot;A String&quot;, # Optional. Defines the maximum age an image can be unused before it is garbage collected. The string must be a sequence of decimal numbers, each with optional fraction and a unit suffix, such as &quot;300s&quot;, &quot;1.5h&quot;, and &quot;2h45m&quot;. Valid time units are &quot;ns&quot;, &quot;us&quot; (or &quot;µs&quot;), &quot;ms&quot;, &quot;s&quot;, &quot;m&quot;, &quot;h&quot;. The value must be a positive duration greater than image_minimum_gc_age or &quot;0s&quot;. The default value is &quot;0s&quot; if unspecified, which disables this field, meaning images won&#x27;t be garbage collected based on being unused for too long.
        &quot;imageMinimumGcAge&quot;: &quot;A String&quot;, # Optional. Defines the minimum age for an unused image before it is garbage collected. The string must be a sequence of decimal numbers, each with optional fraction and a unit suffix, such as &quot;300s&quot;, &quot;1.5h&quot;, and &quot;2h45m&quot;. Valid time units are &quot;ns&quot;, &quot;us&quot; (or &quot;µs&quot;), &quot;ms&quot;, &quot;s&quot;, &quot;m&quot;, &quot;h&quot;. The value must be a positive duration less than or equal to 2 minutes. The default value is &quot;2m0s&quot; if unspecified.
        &quot;insecureKubeletReadonlyPortEnabled&quot;: True or False, # Enable or disable Kubelet read only port.
        &quot;maxParallelImagePulls&quot;: 42, # Optional. Defines the maximum number of image pulls in parallel. The range is 2 to 5, inclusive. The default value is 2 or 3 depending on the disk type. See https://kubernetes.io/docs/concepts/containers/images/#maximum-parallel-image-pulls for more details.
        &quot;memoryManager&quot;: { # The option enables the Kubernetes NUMA-aware Memory Manager feature. Detailed description about the feature can be found [here](https://kubernetes.io/docs/tasks/administer-cluster/memory-manager/). # Optional. Controls NUMA-aware Memory Manager configuration on the node. For more information, see: https://kubernetes.io/docs/tasks/administer-cluster/memory-manager/
          &quot;policy&quot;: &quot;A String&quot;, # Controls the memory management policy on the Node. See https://kubernetes.io/docs/tasks/administer-cluster/memory-manager/#policies The following values are allowed. * &quot;none&quot; * &quot;static&quot; The default value is &#x27;none&#x27; if unspecified.
        },
        &quot;podPidsLimit&quot;: &quot;A String&quot;, # Set the Pod PID limits. See https://kubernetes.io/docs/concepts/policy/pid-limiting/#pod-pid-limits Controls the maximum number of processes allowed to run in a pod. The value must be greater than or equal to 1024 and less than 4194304.
        &quot;singleProcessOomKill&quot;: True or False, # Optional. Defines whether to enable single process OOM killer. If true, will prevent the memory.oom.group flag from being set for container cgroups in cgroups v2. This causes processes in the container to be OOM killed individually instead of as a group.
        &quot;topologyManager&quot;: { # TopologyManager defines the configuration options for Topology Manager feature. See https://kubernetes.io/docs/tasks/administer-cluster/topology-manager/ # Optional. Controls Topology Manager configuration on the node. For more information, see: https://kubernetes.io/docs/tasks/administer-cluster/topology-manager/
          &quot;policy&quot;: &quot;A String&quot;, # Configures the strategy for resource alignment. Allowed values are: * none: the default policy, and does not perform any topology alignment. * restricted: the topology manager stores the preferred NUMA node affinity for the container, and will reject the pod if the affinity if not preferred. * best-effort: the topology manager stores the preferred NUMA node affinity for the container. If the affinity is not preferred, the topology manager will admit the pod to the node anyway. * single-numa-node: the topology manager determines if the single NUMA node affinity is possible. If it is, Topology Manager will store this and the Hint Providers can then use this information when making the resource allocation decision. If, however, this is not possible then the Topology Manager will reject the pod from the node. This will result in a pod in a Terminated state with a pod admission failure. The default policy value is &#x27;none&#x27; if unspecified. Details about each strategy can be found [here](https://kubernetes.io/docs/tasks/administer-cluster/topology-manager/#topology-manager-policies).
          &quot;scope&quot;: &quot;A String&quot;, # The Topology Manager aligns resources in following scopes: * container * pod The default scope is &#x27;container&#x27; if unspecified. See https://kubernetes.io/docs/tasks/administer-cluster/topology-manager/#topology-manager-scopes
        },
      },
      &quot;labels&quot;: { # 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&#x27;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/
        &quot;a_key&quot;: &quot;A String&quot;,
      },
      &quot;linuxNodeConfig&quot;: { # Parameters that can be configured on Linux nodes. # Parameters that can be configured on Linux nodes.
        &quot;cgroupMode&quot;: &quot;A String&quot;, # cgroup_mode specifies the cgroup mode to be used on the node.
        &quot;hugepages&quot;: { # Hugepages amount in both 2m and 1g size # Optional. Amounts for 2M and 1G hugepages
          &quot;hugepageSize1g&quot;: 42, # Optional. Amount of 1G hugepages
          &quot;hugepageSize2m&quot;: 42, # Optional. Amount of 2M hugepages
        },
        &quot;nodeKernelModuleLoading&quot;: { # Configuration for kernel module loading on nodes. # Optional. Configuration for kernel module loading on nodes. When enabled, the node pool will be provisioned with a Container-Optimized OS image that enforces kernel module signature verification.
          &quot;policy&quot;: &quot;A String&quot;, # Set the node module loading policy for nodes in the node pool.
        },
        &quot;sysctls&quot;: { # The Linux kernel parameters to be applied to the nodes and all pods running on the nodes. The following parameters are supported. net.core.busy_poll net.core.busy_read net.core.netdev_max_backlog net.core.rmem_max net.core.rmem_default 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 net.ipv4.tcp_max_orphans net.netfilter.nf_conntrack_max net.netfilter.nf_conntrack_buckets net.netfilter.nf_conntrack_tcp_timeout_close_wait net.netfilter.nf_conntrack_tcp_timeout_time_wait net.netfilter.nf_conntrack_tcp_timeout_established net.netfilter.nf_conntrack_acct kernel.shmmni kernel.shmmax kernel.shmall fs.aio-max-nr fs.file-max fs.inotify.max_user_instances fs.inotify.max_user_watches fs.nr_open vm.dirty_background_ratio vm.dirty_expire_centisecs vm.dirty_ratio vm.dirty_writeback_centisecs vm.max_map_count vm.overcommit_memory vm.overcommit_ratio vm.vfs_cache_pressure vm.swappiness vm.watermark_scale_factor vm.min_free_kbytes
          &quot;a_key&quot;: &quot;A String&quot;,
        },
        &quot;transparentHugepageDefrag&quot;: &quot;A String&quot;, # Optional. Defines the transparent hugepage defrag configuration on the node. VM hugepage allocation can be managed by either limiting defragmentation for delayed allocation or skipping it entirely for immediate allocation only. See https://docs.kernel.org/admin-guide/mm/transhuge.html for more details.
        &quot;transparentHugepageEnabled&quot;: &quot;A String&quot;, # Optional. Transparent hugepage support for anonymous memory can be entirely disabled (mostly for debugging purposes) or only enabled inside MADV_HUGEPAGE regions (to avoid the risk of consuming more memory resources) or enabled system wide. See https://docs.kernel.org/admin-guide/mm/transhuge.html for more details.
      },
      &quot;localNvmeSsdBlockConfig&quot;: { # LocalNvmeSsdBlockConfig contains configuration for using raw-block local NVMe SSDs # Parameters for using raw-block Local NVMe SSDs.
        &quot;localSsdCount&quot;: 42, # Number of local NVMe SSDs to use. The limit for this value is dependent upon the maximum number of disk available on a machine per zone. See: https://cloud.google.com/compute/docs/disks/local-ssd for more information. A zero (or unset) value has different meanings depending on machine type being used: 1. For pre-Gen3 machines, which support flexible numbers of local ssds, zero (or unset) means to disable using local SSDs as ephemeral storage. 2. For Gen3 machines which dictate a specific number of local ssds, zero (or unset) means to use the default number of local ssds that goes with that machine type. For example, for a c3-standard-8-lssd machine, 2 local ssds would be provisioned. For c3-standard-8 (which doesn&#x27;t support local ssds), 0 will be provisioned. See https://cloud.google.com/compute/docs/disks/local-ssd#choose_number_local_ssds for more info.
      },
      &quot;localSsdCount&quot;: 42, # 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.
      &quot;localSsdEncryptionMode&quot;: &quot;A String&quot;, # Specifies which method should be used for encrypting the Local SSDs attached to the node.
      &quot;loggingConfig&quot;: { # NodePoolLoggingConfig specifies logging configuration for nodepools. # Logging configuration.
        &quot;variantConfig&quot;: { # LoggingVariantConfig specifies the behaviour of the logging component. # Logging variant configuration.
          &quot;variant&quot;: &quot;A String&quot;, # Logging variant deployed on nodes.
        },
      },
      &quot;machineType&quot;: &quot;A String&quot;, # The name of a Google Compute Engine [machine type](https://cloud.google.com/compute/docs/machine-types) If unspecified, the default machine type is `e2-medium`.
      &quot;maxRunDuration&quot;: &quot;A String&quot;, # The maximum duration for the nodes to exist. If unspecified, the nodes can exist indefinitely.
      &quot;metadata&quot;: { # The metadata key/value pairs assigned to instances in the cluster. Keys must conform to the regexp `[a-zA-Z0-9-_]+` and be less than 128 bytes in length. These are reflected as part of a URL in the metadata server. Additionally, to avoid ambiguity, keys must not conflict with any other metadata keys for the project or be one of the reserved keys: - &quot;cluster-location&quot; - &quot;cluster-name&quot; - &quot;cluster-uid&quot; - &quot;configure-sh&quot; - &quot;containerd-configure-sh&quot; - &quot;enable-os-login&quot; - &quot;gci-ensure-gke-docker&quot; - &quot;gci-metrics-enabled&quot; - &quot;gci-update-strategy&quot; - &quot;instance-template&quot; - &quot;kube-env&quot; - &quot;startup-script&quot; - &quot;user-data&quot; - &quot;disable-address-manager&quot; - &quot;windows-startup-script-ps1&quot; - &quot;common-psm1&quot; - &quot;k8s-node-setup-psm1&quot; - &quot;install-ssh-psm1&quot; - &quot;user-profile-psm1&quot; 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&#x27;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.
        &quot;a_key&quot;: &quot;A String&quot;,
      },
      &quot;minCpuPlatform&quot;: &quot;A String&quot;, # 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: &quot;Intel Haswell&quot;` or `minCpuPlatform: &quot;Intel Sandy Bridge&quot;`. For more information, read [how to specify min CPU platform](https://cloud.google.com/compute/docs/instances/specify-min-cpu-platform)
      &quot;nodeGroup&quot;: &quot;A String&quot;, # Setting this field will assign instances of this pool to run on the specified node group. This is useful for running workloads on [sole tenant nodes](https://cloud.google.com/compute/docs/nodes/sole-tenant-nodes).
      &quot;oauthScopes&quot;: [ # The set of Google API scopes to be made available on all of the node VMs under the &quot;default&quot; 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 [Artifact Registry](https://cloud.google.com/artifact-registry/)). If unspecified, no scopes are added, unless Cloud Logging or Cloud Monitoring are enabled, in which case their required scopes will be added.
        &quot;A String&quot;,
      ],
      &quot;preemptible&quot;: True or False, # 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.
      &quot;reservationAffinity&quot;: { # [ReservationAffinity](https://cloud.google.com/compute/docs/instances/reserving-zonal-resources) is the configuration of desired reservation which instances could take capacity from. # The optional reservation affinity. Setting this field will apply the specified [Zonal Compute Reservation](https://cloud.google.com/compute/docs/instances/reserving-zonal-resources) to this node pool.
        &quot;consumeReservationType&quot;: &quot;A String&quot;, # Corresponds to the type of reservation consumption.
        &quot;key&quot;: &quot;A String&quot;, # Corresponds to the label key of a reservation resource. To target a SPECIFIC_RESERVATION by name, specify &quot;compute.googleapis.com/reservation-name&quot; as the key and specify the name of your reservation as its value.
        &quot;values&quot;: [ # Corresponds to the label value(s) of reservation resource(s).
          &quot;A String&quot;,
        ],
      },
      &quot;resourceLabels&quot;: { # The resource labels for the node pool to use to annotate any related Google Compute Engine resources.
        &quot;a_key&quot;: &quot;A String&quot;,
      },
      &quot;resourceManagerTags&quot;: { # A map of resource manager tag keys and values to be attached to the nodes for managing Compute Engine firewalls using Network Firewall Policies. Tags must be according to specifications in https://cloud.google.com/vpc/docs/tags-firewalls-overview#specifications. A maximum of 5 tag key-value pairs can be specified. Existing tags will be replaced with new values. # A map of resource manager tag keys and values to be attached to the nodes.
        &quot;tags&quot;: { # TagKeyValue must be in one of the following formats ([KEY]=[VALUE]) 1. `tagKeys/{tag_key_id}=tagValues/{tag_value_id}` 2. `{org_id}/{tag_key_name}={tag_value_name}` 3. `{project_id}/{tag_key_name}={tag_value_name}`
          &quot;a_key&quot;: &quot;A String&quot;,
        },
      },
      &quot;sandboxConfig&quot;: { # SandboxConfig contains configurations of the sandbox to use for the node. # Sandbox configuration for this node.
        &quot;type&quot;: &quot;A String&quot;, # Type of the sandbox to use for the node.
      },
      &quot;secondaryBootDiskUpdateStrategy&quot;: { # SecondaryBootDiskUpdateStrategy is a placeholder which will be extended in the future to define different options for updating secondary boot disks. # Secondary boot disk update strategy.
      },
      &quot;secondaryBootDisks&quot;: [ # List of secondary boot disks attached to the nodes.
        { # SecondaryBootDisk represents a persistent disk attached to a node with special configurations based on its mode.
          &quot;diskImage&quot;: &quot;A String&quot;, # Fully-qualified resource ID for an existing disk image.
          &quot;mode&quot;: &quot;A String&quot;, # Disk mode (container image cache, etc.)
        },
      ],
      &quot;serviceAccount&quot;: &quot;A String&quot;, # 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 &quot;default&quot; service account is used.
      &quot;shieldedInstanceConfig&quot;: { # A set of Shielded Instance options. # Shielded Instance options.
        &quot;enableIntegrityMonitoring&quot;: True or False, # 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.
        &quot;enableSecureBoot&quot;: True or False, # 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.
      },
      &quot;soleTenantConfig&quot;: { # SoleTenantConfig contains the NodeAffinities to specify what shared sole tenant node groups should back the node pool. # Parameters for node pools to be backed by shared sole tenant node groups.
        &quot;minNodeCpus&quot;: 42, # Optional. The minimum number of virtual CPUs this instance will consume when running on a sole-tenant node. This field can only be set if the node pool is created in a shared sole-tenant node group.
        &quot;nodeAffinities&quot;: [ # NodeAffinities used to match to a shared sole tenant node group.
          { # Specifies the NodeAffinity key, values, and affinity operator according to [shared sole tenant node group affinities](https://cloud.google.com/compute/docs/nodes/sole-tenant-nodes#node_affinity_and_anti-affinity).
            &quot;key&quot;: &quot;A String&quot;, # Key for NodeAffinity.
            &quot;operator&quot;: &quot;A String&quot;, # Operator for NodeAffinity.
            &quot;values&quot;: [ # Values for NodeAffinity.
              &quot;A String&quot;,
            ],
          },
        ],
      },
      &quot;spot&quot;: True or False, # Spot flag for enabling Spot VM, which is a rebrand of the existing preemptible flag.
      &quot;storagePools&quot;: [ # List of Storage Pools where boot disks are provisioned.
        &quot;A String&quot;,
      ],
      &quot;tags&quot;: [ # 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.
        &quot;A String&quot;,
      ],
      &quot;taints&quot;: [ # 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/
        { # Kubernetes taint is composed of three fields: key, value, and effect. Effect can only be one of three types: NoSchedule, PreferNoSchedule or NoExecute. See [here](https://kubernetes.io/docs/concepts/configuration/taint-and-toleration) for more information, including usage and the valid values.
          &quot;effect&quot;: &quot;A String&quot;, # Effect for taint.
          &quot;key&quot;: &quot;A String&quot;, # Key for taint.
          &quot;value&quot;: &quot;A String&quot;, # Value for taint.
        },
      ],
      &quot;windowsNodeConfig&quot;: { # Parameters that can be configured on Windows nodes. Windows Node Config that define the parameters that will be used to configure the Windows node pool settings. # Parameters that can be configured on Windows nodes.
        &quot;osVersion&quot;: &quot;A String&quot;, # OSVersion specifies the Windows node config to be used on the node.
      },
      &quot;workloadMetadataConfig&quot;: { # WorkloadMetadataConfig defines the metadata configuration to expose to workloads on the node pool. # The workload metadata configuration for this node.
        &quot;mode&quot;: &quot;A String&quot;, # Mode is the configuration for how to expose metadata to workloads running on the node pool.
      },
    },
    &quot;nodeIpv4CidrSize&quot;: 42, # Output only. The size of the address space on each node for hosting containers. This is provisioned from within the `container_ipv4_cidr` range. This field will only be set when cluster is in route-based network mode.
    &quot;nodePoolAutoConfig&quot;: { # Node pool configs that apply to all auto-provisioned node pools in autopilot clusters and node auto-provisioning enabled clusters. # Node pool configs that apply to all auto-provisioned node pools in autopilot clusters and node auto-provisioning enabled clusters.
      &quot;linuxNodeConfig&quot;: { # Parameters that can be configured on Linux nodes. # Output only. Configuration options for Linux nodes.
        &quot;cgroupMode&quot;: &quot;A String&quot;, # cgroup_mode specifies the cgroup mode to be used on the node.
        &quot;hugepages&quot;: { # Hugepages amount in both 2m and 1g size # Optional. Amounts for 2M and 1G hugepages
          &quot;hugepageSize1g&quot;: 42, # Optional. Amount of 1G hugepages
          &quot;hugepageSize2m&quot;: 42, # Optional. Amount of 2M hugepages
        },
        &quot;nodeKernelModuleLoading&quot;: { # Configuration for kernel module loading on nodes. # Optional. Configuration for kernel module loading on nodes. When enabled, the node pool will be provisioned with a Container-Optimized OS image that enforces kernel module signature verification.
          &quot;policy&quot;: &quot;A String&quot;, # Set the node module loading policy for nodes in the node pool.
        },
        &quot;sysctls&quot;: { # The Linux kernel parameters to be applied to the nodes and all pods running on the nodes. The following parameters are supported. net.core.busy_poll net.core.busy_read net.core.netdev_max_backlog net.core.rmem_max net.core.rmem_default 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 net.ipv4.tcp_max_orphans net.netfilter.nf_conntrack_max net.netfilter.nf_conntrack_buckets net.netfilter.nf_conntrack_tcp_timeout_close_wait net.netfilter.nf_conntrack_tcp_timeout_time_wait net.netfilter.nf_conntrack_tcp_timeout_established net.netfilter.nf_conntrack_acct kernel.shmmni kernel.shmmax kernel.shmall fs.aio-max-nr fs.file-max fs.inotify.max_user_instances fs.inotify.max_user_watches fs.nr_open vm.dirty_background_ratio vm.dirty_expire_centisecs vm.dirty_ratio vm.dirty_writeback_centisecs vm.max_map_count vm.overcommit_memory vm.overcommit_ratio vm.vfs_cache_pressure vm.swappiness vm.watermark_scale_factor vm.min_free_kbytes
          &quot;a_key&quot;: &quot;A String&quot;,
        },
        &quot;transparentHugepageDefrag&quot;: &quot;A String&quot;, # Optional. Defines the transparent hugepage defrag configuration on the node. VM hugepage allocation can be managed by either limiting defragmentation for delayed allocation or skipping it entirely for immediate allocation only. See https://docs.kernel.org/admin-guide/mm/transhuge.html for more details.
        &quot;transparentHugepageEnabled&quot;: &quot;A String&quot;, # Optional. Transparent hugepage support for anonymous memory can be entirely disabled (mostly for debugging purposes) or only enabled inside MADV_HUGEPAGE regions (to avoid the risk of consuming more memory resources) or enabled system wide. See https://docs.kernel.org/admin-guide/mm/transhuge.html for more details.
      },
      &quot;networkTags&quot;: { # Collection of Compute Engine network tags that can be applied to a node&#x27;s underlying VM instance. # 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 creation. Each tag within the list must comply with RFC1035.
        &quot;tags&quot;: [ # List of network tags.
          &quot;A String&quot;,
        ],
      },
      &quot;nodeKubeletConfig&quot;: { # Node kubelet configs. # NodeKubeletConfig controls the defaults for autoprovisioned node-pools. Currently only `insecure_kubelet_readonly_port_enabled` can be set here.
        &quot;allowedUnsafeSysctls&quot;: [ # Optional. Defines a comma-separated allowlist of unsafe sysctls or sysctl patterns (ending in `*`). The unsafe namespaced sysctl groups are `kernel.shm*`, `kernel.msg*`, `kernel.sem`, `fs.mqueue.*`, and `net.*`. Leaving this allowlist empty means they cannot be set on Pods. To allow certain sysctls or sysctl patterns to be set on Pods, list them separated by commas. For example: `kernel.msg*,net.ipv4.route.min_pmtu`. See https://kubernetes.io/docs/tasks/administer-cluster/sysctl-cluster/ for more details.
          &quot;A String&quot;,
        ],
        &quot;containerLogMaxFiles&quot;: 42, # Optional. Defines the maximum number of container log files that can be present for a container. See https://kubernetes.io/docs/concepts/cluster-administration/logging/#log-rotation The value must be an integer between 2 and 10, inclusive. The default value is 5 if unspecified.
        &quot;containerLogMaxSize&quot;: &quot;A String&quot;, # Optional. Defines the maximum size of the container log file before it is rotated. See https://kubernetes.io/docs/concepts/cluster-administration/logging/#log-rotation Valid format is positive number + unit, e.g. 100Ki, 10Mi. Valid units are Ki, Mi, Gi. The value must be between 10Mi and 500Mi, inclusive. Note that the total container log size (container_log_max_size * container_log_max_files) cannot exceed 1% of the total storage of the node, to avoid disk pressure caused by log files. The default value is 10Mi if unspecified.
        &quot;cpuCfsQuota&quot;: True or False, # 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 &#x27;true&#x27; if unspecified.
        &quot;cpuCfsQuotaPeriod&quot;: &quot;A String&quot;, # Set the CPU CFS quota period value &#x27;cpu.cfs_period_us&#x27;. The string must be a sequence of decimal numbers, each with optional fraction and a unit suffix, such as &quot;300ms&quot;. Valid time units are &quot;ns&quot;, &quot;us&quot; (or &quot;µs&quot;), &quot;ms&quot;, &quot;s&quot;, &quot;m&quot;, &quot;h&quot;. The value must be a positive duration between 1ms and 1 second, inclusive.
        &quot;cpuManagerPolicy&quot;: &quot;A String&quot;, # Control the CPU management policy on the node. See https://kubernetes.io/docs/tasks/administer-cluster/cpu-management-policies/ The following values are allowed. * &quot;none&quot;: the default, which represents the existing scheduling behavior. * &quot;static&quot;: allows pods with certain resource characteristics to be granted increased CPU affinity and exclusivity on the node. The default value is &#x27;none&#x27; if unspecified.
        &quot;evictionMaxPodGracePeriodSeconds&quot;: 42, # Optional. eviction_max_pod_grace_period_seconds is the maximum allowed grace period (in seconds) to use when terminating pods in response to a soft eviction threshold being met. This value effectively caps the Pod&#x27;s terminationGracePeriodSeconds value during soft evictions. Default: 0. Range: [0, 300].
        &quot;evictionMinimumReclaim&quot;: { # Eviction minimum reclaims are the resource amounts of minimum reclaims for each eviction signal. # Optional. eviction_minimum_reclaim is a map of signal names to quantities that defines minimum reclaims, which describe the minimum amount of a given resource the kubelet will reclaim when performing a pod eviction while that resource is under pressure.
          &quot;imagefsAvailable&quot;: &quot;A String&quot;, # Optional. Minimum reclaim for eviction due to imagefs available signal. Only take percentage value for now. Sample format: &quot;10%&quot;. Must be &lt;=10%. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
          &quot;imagefsInodesFree&quot;: &quot;A String&quot;, # Optional. Minimum reclaim for eviction due to imagefs inodes free signal. Only take percentage value for now. Sample format: &quot;10%&quot;. Must be &lt;=10%. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
          &quot;memoryAvailable&quot;: &quot;A String&quot;, # Optional. Minimum reclaim for eviction due to memory available signal. Only take percentage value for now. Sample format: &quot;10%&quot;. Must be &lt;=10%. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
          &quot;nodefsAvailable&quot;: &quot;A String&quot;, # Optional. Minimum reclaim for eviction due to nodefs available signal. Only take percentage value for now. Sample format: &quot;10%&quot;. Must be &lt;=10%. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
          &quot;nodefsInodesFree&quot;: &quot;A String&quot;, # Optional. Minimum reclaim for eviction due to nodefs inodes free signal. Only take percentage value for now. Sample format: &quot;10%&quot;. Must be &lt;=10%. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
          &quot;pidAvailable&quot;: &quot;A String&quot;, # Optional. Minimum reclaim for eviction due to pid available signal. Only take percentage value for now. Sample format: &quot;10%&quot;. Must be &lt;=10%. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
        },
        &quot;evictionSoft&quot;: { # Eviction signals are the current state of a particular resource at a specific point in time. The kubelet uses eviction signals to make eviction decisions by comparing the signals to eviction thresholds, which are the minimum amount of the resource that should be available on the node. # Optional. eviction_soft is a map of signal names to quantities that defines soft eviction thresholds. Each signal is compared to its corresponding threshold to determine if a pod eviction should occur.
          &quot;imagefsAvailable&quot;: &quot;A String&quot;, # Optional. Amount of storage available on filesystem that container runtime uses for storing images layers. If the container filesystem and image filesystem are not separate, then imagefs can store both image layers and writeable layers. Defines the amount of &quot;imagefs.available&quot; signal in kubelet. Default is unset, if not specified in the kubelet config. It takses percentage value for now. Sample format: &quot;30%&quot;. Must be &gt;= 15% and &lt;= 50%. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
          &quot;imagefsInodesFree&quot;: &quot;A String&quot;, # Optional. Amount of inodes available on filesystem that container runtime uses for storing images layers. Defines the amount of &quot;imagefs.inodesFree&quot; signal in kubelet. Default is unset, if not specified in the kubelet config. Linux only. It takses percentage value for now. Sample format: &quot;30%&quot;. Must be &gt;= 5% and &lt;= 50%. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
          &quot;memoryAvailable&quot;: &quot;A String&quot;, # Optional. Memory available (i.e. capacity - workingSet), in bytes. Defines the amount of &quot;memory.available&quot; signal in kubelet. Default is unset, if not specified in the kubelet config. Format: positive number + unit, e.g. 100Ki, 10Mi, 5Gi. Valid units are Ki, Mi, Gi. Must be &gt;= 100Mi and &lt;= 50% of the node&#x27;s memory. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
          &quot;nodefsAvailable&quot;: &quot;A String&quot;, # Optional. Amount of storage available on filesystem that kubelet uses for volumes, daemon logs, etc. Defines the amount of &quot;nodefs.available&quot; signal in kubelet. Default is unset, if not specified in the kubelet config. It takses percentage value for now. Sample format: &quot;30%&quot;. Must be &gt;= 10% and &lt;= 50%. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
          &quot;nodefsInodesFree&quot;: &quot;A String&quot;, # Optional. Amount of inodes available on filesystem that kubelet uses for volumes, daemon logs, etc. Defines the amount of &quot;nodefs.inodesFree&quot; signal in kubelet. Default is unset, if not specified in the kubelet config. Linux only. It takses percentage value for now. Sample format: &quot;30%&quot;. Must be &gt;= 5% and &lt;= 50%. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
          &quot;pidAvailable&quot;: &quot;A String&quot;, # Optional. Amount of PID available for pod allocation. Defines the amount of &quot;pid.available&quot; signal in kubelet. Default is unset, if not specified in the kubelet config. It takses percentage value for now. Sample format: &quot;30%&quot;. Must be &gt;= 10% and &lt;= 50%. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
        },
        &quot;evictionSoftGracePeriod&quot;: { # Eviction grace periods are grace periods for each eviction signal. # Optional. eviction_soft_grace_period is a map of signal names to quantities that defines grace periods for each soft eviction signal. The grace period is the amount of time that a pod must be under pressure before an eviction occurs.
          &quot;imagefsAvailable&quot;: &quot;A String&quot;, # Optional. Grace period for eviction due to imagefs available signal. Sample format: &quot;10s&quot;. Must be &gt;= 0. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
          &quot;imagefsInodesFree&quot;: &quot;A String&quot;, # Optional. Grace period for eviction due to imagefs inodes free signal. Sample format: &quot;10s&quot;. Must be &gt;= 0. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
          &quot;memoryAvailable&quot;: &quot;A String&quot;, # Optional. Grace period for eviction due to memory available signal. Sample format: &quot;10s&quot;. Must be &gt;= 0. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
          &quot;nodefsAvailable&quot;: &quot;A String&quot;, # Optional. Grace period for eviction due to nodefs available signal. Sample format: &quot;10s&quot;. Must be &gt;= 0. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
          &quot;nodefsInodesFree&quot;: &quot;A String&quot;, # Optional. Grace period for eviction due to nodefs inodes free signal. Sample format: &quot;10s&quot;. Must be &gt;= 0. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
          &quot;pidAvailable&quot;: &quot;A String&quot;, # Optional. Grace period for eviction due to pid available signal. Sample format: &quot;10s&quot;. Must be &gt;= 0. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
        },
        &quot;imageGcHighThresholdPercent&quot;: 42, # Optional. Defines the percent of disk usage after which image garbage collection is always run. The percent is calculated as this field value out of 100. The value must be between 10 and 85, inclusive and greater than image_gc_low_threshold_percent. The default value is 85 if unspecified.
        &quot;imageGcLowThresholdPercent&quot;: 42, # Optional. Defines the percent of disk usage before which image garbage collection is never run. Lowest disk usage to garbage collect to. The percent is calculated as this field value out of 100. The value must be between 10 and 85, inclusive and smaller than image_gc_high_threshold_percent. The default value is 80 if unspecified.
        &quot;imageMaximumGcAge&quot;: &quot;A String&quot;, # Optional. Defines the maximum age an image can be unused before it is garbage collected. The string must be a sequence of decimal numbers, each with optional fraction and a unit suffix, such as &quot;300s&quot;, &quot;1.5h&quot;, and &quot;2h45m&quot;. Valid time units are &quot;ns&quot;, &quot;us&quot; (or &quot;µs&quot;), &quot;ms&quot;, &quot;s&quot;, &quot;m&quot;, &quot;h&quot;. The value must be a positive duration greater than image_minimum_gc_age or &quot;0s&quot;. The default value is &quot;0s&quot; if unspecified, which disables this field, meaning images won&#x27;t be garbage collected based on being unused for too long.
        &quot;imageMinimumGcAge&quot;: &quot;A String&quot;, # Optional. Defines the minimum age for an unused image before it is garbage collected. The string must be a sequence of decimal numbers, each with optional fraction and a unit suffix, such as &quot;300s&quot;, &quot;1.5h&quot;, and &quot;2h45m&quot;. Valid time units are &quot;ns&quot;, &quot;us&quot; (or &quot;µs&quot;), &quot;ms&quot;, &quot;s&quot;, &quot;m&quot;, &quot;h&quot;. The value must be a positive duration less than or equal to 2 minutes. The default value is &quot;2m0s&quot; if unspecified.
        &quot;insecureKubeletReadonlyPortEnabled&quot;: True or False, # Enable or disable Kubelet read only port.
        &quot;maxParallelImagePulls&quot;: 42, # Optional. Defines the maximum number of image pulls in parallel. The range is 2 to 5, inclusive. The default value is 2 or 3 depending on the disk type. See https://kubernetes.io/docs/concepts/containers/images/#maximum-parallel-image-pulls for more details.
        &quot;memoryManager&quot;: { # The option enables the Kubernetes NUMA-aware Memory Manager feature. Detailed description about the feature can be found [here](https://kubernetes.io/docs/tasks/administer-cluster/memory-manager/). # Optional. Controls NUMA-aware Memory Manager configuration on the node. For more information, see: https://kubernetes.io/docs/tasks/administer-cluster/memory-manager/
          &quot;policy&quot;: &quot;A String&quot;, # Controls the memory management policy on the Node. See https://kubernetes.io/docs/tasks/administer-cluster/memory-manager/#policies The following values are allowed. * &quot;none&quot; * &quot;static&quot; The default value is &#x27;none&#x27; if unspecified.
        },
        &quot;podPidsLimit&quot;: &quot;A String&quot;, # Set the Pod PID limits. See https://kubernetes.io/docs/concepts/policy/pid-limiting/#pod-pid-limits Controls the maximum number of processes allowed to run in a pod. The value must be greater than or equal to 1024 and less than 4194304.
        &quot;singleProcessOomKill&quot;: True or False, # Optional. Defines whether to enable single process OOM killer. If true, will prevent the memory.oom.group flag from being set for container cgroups in cgroups v2. This causes processes in the container to be OOM killed individually instead of as a group.
        &quot;topologyManager&quot;: { # TopologyManager defines the configuration options for Topology Manager feature. See https://kubernetes.io/docs/tasks/administer-cluster/topology-manager/ # Optional. Controls Topology Manager configuration on the node. For more information, see: https://kubernetes.io/docs/tasks/administer-cluster/topology-manager/
          &quot;policy&quot;: &quot;A String&quot;, # Configures the strategy for resource alignment. Allowed values are: * none: the default policy, and does not perform any topology alignment. * restricted: the topology manager stores the preferred NUMA node affinity for the container, and will reject the pod if the affinity if not preferred. * best-effort: the topology manager stores the preferred NUMA node affinity for the container. If the affinity is not preferred, the topology manager will admit the pod to the node anyway. * single-numa-node: the topology manager determines if the single NUMA node affinity is possible. If it is, Topology Manager will store this and the Hint Providers can then use this information when making the resource allocation decision. If, however, this is not possible then the Topology Manager will reject the pod from the node. This will result in a pod in a Terminated state with a pod admission failure. The default policy value is &#x27;none&#x27; if unspecified. Details about each strategy can be found [here](https://kubernetes.io/docs/tasks/administer-cluster/topology-manager/#topology-manager-policies).
          &quot;scope&quot;: &quot;A String&quot;, # The Topology Manager aligns resources in following scopes: * container * pod The default scope is &#x27;container&#x27; if unspecified. See https://kubernetes.io/docs/tasks/administer-cluster/topology-manager/#topology-manager-scopes
        },
      },
      &quot;resourceManagerTags&quot;: { # A map of resource manager tag keys and values to be attached to the nodes for managing Compute Engine firewalls using Network Firewall Policies. Tags must be according to specifications in https://cloud.google.com/vpc/docs/tags-firewalls-overview#specifications. A maximum of 5 tag key-value pairs can be specified. Existing tags will be replaced with new values. # Resource manager tag keys and values to be attached to the nodes for managing Compute Engine firewalls using Network Firewall Policies.
        &quot;tags&quot;: { # TagKeyValue must be in one of the following formats ([KEY]=[VALUE]) 1. `tagKeys/{tag_key_id}=tagValues/{tag_value_id}` 2. `{org_id}/{tag_key_name}={tag_value_name}` 3. `{project_id}/{tag_key_name}={tag_value_name}`
          &quot;a_key&quot;: &quot;A String&quot;,
        },
      },
    },
    &quot;nodePoolDefaults&quot;: { # Subset of Nodepool message that has defaults. # Default NodePool settings for the entire cluster. These settings are overridden if specified on the specific NodePool object.
      &quot;nodeConfigDefaults&quot;: { # Subset of NodeConfig message that has defaults. # Subset of NodeConfig message that has defaults.
        &quot;containerdConfig&quot;: { # ContainerdConfig contains configuration to customize containerd. # Parameters for containerd customization.
          &quot;privateRegistryAccessConfig&quot;: { # PrivateRegistryAccessConfig contains access configuration for private container registries. # PrivateRegistryAccessConfig is used to configure access configuration for private container registries.
            &quot;certificateAuthorityDomainConfig&quot;: [ # Private registry access configuration.
              { # CertificateAuthorityDomainConfig configures one or more fully qualified domain names (FQDN) to a specific certificate.
                &quot;fqdns&quot;: [ # List of fully qualified domain names (FQDN). Specifying port is supported. Wildcards are NOT supported. Examples: - my.customdomain.com - 10.0.1.2:5000
                  &quot;A String&quot;,
                ],
                &quot;gcpSecretManagerCertificateConfig&quot;: { # GCPSecretManagerCertificateConfig configures a secret from [Secret Manager](https://cloud.google.com/secret-manager). # Google Secret Manager (GCP) certificate configuration.
                  &quot;secretUri&quot;: &quot;A String&quot;, # Secret URI, in the form &quot;projects/$PROJECT_ID/secrets/$SECRET_NAME/versions/$VERSION&quot;. Version can be fixed (e.g. &quot;2&quot;) or &quot;latest&quot;
                },
              },
            ],
            &quot;enabled&quot;: True or False, # Private registry access is enabled.
          },
          &quot;writableCgroups&quot;: { # Defines writable cgroups configuration. # Optional. WritableCgroups defines writable cgroups configuration for the node pool.
            &quot;enabled&quot;: True or False, # Optional. Whether writable cgroups is enabled.
          },
        },
        &quot;gcfsConfig&quot;: { # GcfsConfig contains configurations of Google Container File System (image streaming). # GCFS (Google Container File System, also known as Riptide) options.
          &quot;enabled&quot;: True or False, # Whether to use GCFS.
        },
        &quot;loggingConfig&quot;: { # NodePoolLoggingConfig specifies logging configuration for nodepools. # Logging configuration for node pools.
          &quot;variantConfig&quot;: { # LoggingVariantConfig specifies the behaviour of the logging component. # Logging variant configuration.
            &quot;variant&quot;: &quot;A String&quot;, # Logging variant deployed on nodes.
          },
        },
        &quot;nodeKubeletConfig&quot;: { # Node kubelet configs. # NodeKubeletConfig controls the defaults for new node-pools. Currently only `insecure_kubelet_readonly_port_enabled` can be set here.
          &quot;allowedUnsafeSysctls&quot;: [ # Optional. Defines a comma-separated allowlist of unsafe sysctls or sysctl patterns (ending in `*`). The unsafe namespaced sysctl groups are `kernel.shm*`, `kernel.msg*`, `kernel.sem`, `fs.mqueue.*`, and `net.*`. Leaving this allowlist empty means they cannot be set on Pods. To allow certain sysctls or sysctl patterns to be set on Pods, list them separated by commas. For example: `kernel.msg*,net.ipv4.route.min_pmtu`. See https://kubernetes.io/docs/tasks/administer-cluster/sysctl-cluster/ for more details.
            &quot;A String&quot;,
          ],
          &quot;containerLogMaxFiles&quot;: 42, # Optional. Defines the maximum number of container log files that can be present for a container. See https://kubernetes.io/docs/concepts/cluster-administration/logging/#log-rotation The value must be an integer between 2 and 10, inclusive. The default value is 5 if unspecified.
          &quot;containerLogMaxSize&quot;: &quot;A String&quot;, # Optional. Defines the maximum size of the container log file before it is rotated. See https://kubernetes.io/docs/concepts/cluster-administration/logging/#log-rotation Valid format is positive number + unit, e.g. 100Ki, 10Mi. Valid units are Ki, Mi, Gi. The value must be between 10Mi and 500Mi, inclusive. Note that the total container log size (container_log_max_size * container_log_max_files) cannot exceed 1% of the total storage of the node, to avoid disk pressure caused by log files. The default value is 10Mi if unspecified.
          &quot;cpuCfsQuota&quot;: True or False, # 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 &#x27;true&#x27; if unspecified.
          &quot;cpuCfsQuotaPeriod&quot;: &quot;A String&quot;, # Set the CPU CFS quota period value &#x27;cpu.cfs_period_us&#x27;. The string must be a sequence of decimal numbers, each with optional fraction and a unit suffix, such as &quot;300ms&quot;. Valid time units are &quot;ns&quot;, &quot;us&quot; (or &quot;µs&quot;), &quot;ms&quot;, &quot;s&quot;, &quot;m&quot;, &quot;h&quot;. The value must be a positive duration between 1ms and 1 second, inclusive.
          &quot;cpuManagerPolicy&quot;: &quot;A String&quot;, # Control the CPU management policy on the node. See https://kubernetes.io/docs/tasks/administer-cluster/cpu-management-policies/ The following values are allowed. * &quot;none&quot;: the default, which represents the existing scheduling behavior. * &quot;static&quot;: allows pods with certain resource characteristics to be granted increased CPU affinity and exclusivity on the node. The default value is &#x27;none&#x27; if unspecified.
          &quot;evictionMaxPodGracePeriodSeconds&quot;: 42, # Optional. eviction_max_pod_grace_period_seconds is the maximum allowed grace period (in seconds) to use when terminating pods in response to a soft eviction threshold being met. This value effectively caps the Pod&#x27;s terminationGracePeriodSeconds value during soft evictions. Default: 0. Range: [0, 300].
          &quot;evictionMinimumReclaim&quot;: { # Eviction minimum reclaims are the resource amounts of minimum reclaims for each eviction signal. # Optional. eviction_minimum_reclaim is a map of signal names to quantities that defines minimum reclaims, which describe the minimum amount of a given resource the kubelet will reclaim when performing a pod eviction while that resource is under pressure.
            &quot;imagefsAvailable&quot;: &quot;A String&quot;, # Optional. Minimum reclaim for eviction due to imagefs available signal. Only take percentage value for now. Sample format: &quot;10%&quot;. Must be &lt;=10%. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
            &quot;imagefsInodesFree&quot;: &quot;A String&quot;, # Optional. Minimum reclaim for eviction due to imagefs inodes free signal. Only take percentage value for now. Sample format: &quot;10%&quot;. Must be &lt;=10%. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
            &quot;memoryAvailable&quot;: &quot;A String&quot;, # Optional. Minimum reclaim for eviction due to memory available signal. Only take percentage value for now. Sample format: &quot;10%&quot;. Must be &lt;=10%. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
            &quot;nodefsAvailable&quot;: &quot;A String&quot;, # Optional. Minimum reclaim for eviction due to nodefs available signal. Only take percentage value for now. Sample format: &quot;10%&quot;. Must be &lt;=10%. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
            &quot;nodefsInodesFree&quot;: &quot;A String&quot;, # Optional. Minimum reclaim for eviction due to nodefs inodes free signal. Only take percentage value for now. Sample format: &quot;10%&quot;. Must be &lt;=10%. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
            &quot;pidAvailable&quot;: &quot;A String&quot;, # Optional. Minimum reclaim for eviction due to pid available signal. Only take percentage value for now. Sample format: &quot;10%&quot;. Must be &lt;=10%. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
          },
          &quot;evictionSoft&quot;: { # Eviction signals are the current state of a particular resource at a specific point in time. The kubelet uses eviction signals to make eviction decisions by comparing the signals to eviction thresholds, which are the minimum amount of the resource that should be available on the node. # Optional. eviction_soft is a map of signal names to quantities that defines soft eviction thresholds. Each signal is compared to its corresponding threshold to determine if a pod eviction should occur.
            &quot;imagefsAvailable&quot;: &quot;A String&quot;, # Optional. Amount of storage available on filesystem that container runtime uses for storing images layers. If the container filesystem and image filesystem are not separate, then imagefs can store both image layers and writeable layers. Defines the amount of &quot;imagefs.available&quot; signal in kubelet. Default is unset, if not specified in the kubelet config. It takses percentage value for now. Sample format: &quot;30%&quot;. Must be &gt;= 15% and &lt;= 50%. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
            &quot;imagefsInodesFree&quot;: &quot;A String&quot;, # Optional. Amount of inodes available on filesystem that container runtime uses for storing images layers. Defines the amount of &quot;imagefs.inodesFree&quot; signal in kubelet. Default is unset, if not specified in the kubelet config. Linux only. It takses percentage value for now. Sample format: &quot;30%&quot;. Must be &gt;= 5% and &lt;= 50%. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
            &quot;memoryAvailable&quot;: &quot;A String&quot;, # Optional. Memory available (i.e. capacity - workingSet), in bytes. Defines the amount of &quot;memory.available&quot; signal in kubelet. Default is unset, if not specified in the kubelet config. Format: positive number + unit, e.g. 100Ki, 10Mi, 5Gi. Valid units are Ki, Mi, Gi. Must be &gt;= 100Mi and &lt;= 50% of the node&#x27;s memory. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
            &quot;nodefsAvailable&quot;: &quot;A String&quot;, # Optional. Amount of storage available on filesystem that kubelet uses for volumes, daemon logs, etc. Defines the amount of &quot;nodefs.available&quot; signal in kubelet. Default is unset, if not specified in the kubelet config. It takses percentage value for now. Sample format: &quot;30%&quot;. Must be &gt;= 10% and &lt;= 50%. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
            &quot;nodefsInodesFree&quot;: &quot;A String&quot;, # Optional. Amount of inodes available on filesystem that kubelet uses for volumes, daemon logs, etc. Defines the amount of &quot;nodefs.inodesFree&quot; signal in kubelet. Default is unset, if not specified in the kubelet config. Linux only. It takses percentage value for now. Sample format: &quot;30%&quot;. Must be &gt;= 5% and &lt;= 50%. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
            &quot;pidAvailable&quot;: &quot;A String&quot;, # Optional. Amount of PID available for pod allocation. Defines the amount of &quot;pid.available&quot; signal in kubelet. Default is unset, if not specified in the kubelet config. It takses percentage value for now. Sample format: &quot;30%&quot;. Must be &gt;= 10% and &lt;= 50%. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
          },
          &quot;evictionSoftGracePeriod&quot;: { # Eviction grace periods are grace periods for each eviction signal. # Optional. eviction_soft_grace_period is a map of signal names to quantities that defines grace periods for each soft eviction signal. The grace period is the amount of time that a pod must be under pressure before an eviction occurs.
            &quot;imagefsAvailable&quot;: &quot;A String&quot;, # Optional. Grace period for eviction due to imagefs available signal. Sample format: &quot;10s&quot;. Must be &gt;= 0. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
            &quot;imagefsInodesFree&quot;: &quot;A String&quot;, # Optional. Grace period for eviction due to imagefs inodes free signal. Sample format: &quot;10s&quot;. Must be &gt;= 0. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
            &quot;memoryAvailable&quot;: &quot;A String&quot;, # Optional. Grace period for eviction due to memory available signal. Sample format: &quot;10s&quot;. Must be &gt;= 0. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
            &quot;nodefsAvailable&quot;: &quot;A String&quot;, # Optional. Grace period for eviction due to nodefs available signal. Sample format: &quot;10s&quot;. Must be &gt;= 0. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
            &quot;nodefsInodesFree&quot;: &quot;A String&quot;, # Optional. Grace period for eviction due to nodefs inodes free signal. Sample format: &quot;10s&quot;. Must be &gt;= 0. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
            &quot;pidAvailable&quot;: &quot;A String&quot;, # Optional. Grace period for eviction due to pid available signal. Sample format: &quot;10s&quot;. Must be &gt;= 0. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
          },
          &quot;imageGcHighThresholdPercent&quot;: 42, # Optional. Defines the percent of disk usage after which image garbage collection is always run. The percent is calculated as this field value out of 100. The value must be between 10 and 85, inclusive and greater than image_gc_low_threshold_percent. The default value is 85 if unspecified.
          &quot;imageGcLowThresholdPercent&quot;: 42, # Optional. Defines the percent of disk usage before which image garbage collection is never run. Lowest disk usage to garbage collect to. The percent is calculated as this field value out of 100. The value must be between 10 and 85, inclusive and smaller than image_gc_high_threshold_percent. The default value is 80 if unspecified.
          &quot;imageMaximumGcAge&quot;: &quot;A String&quot;, # Optional. Defines the maximum age an image can be unused before it is garbage collected. The string must be a sequence of decimal numbers, each with optional fraction and a unit suffix, such as &quot;300s&quot;, &quot;1.5h&quot;, and &quot;2h45m&quot;. Valid time units are &quot;ns&quot;, &quot;us&quot; (or &quot;µs&quot;), &quot;ms&quot;, &quot;s&quot;, &quot;m&quot;, &quot;h&quot;. The value must be a positive duration greater than image_minimum_gc_age or &quot;0s&quot;. The default value is &quot;0s&quot; if unspecified, which disables this field, meaning images won&#x27;t be garbage collected based on being unused for too long.
          &quot;imageMinimumGcAge&quot;: &quot;A String&quot;, # Optional. Defines the minimum age for an unused image before it is garbage collected. The string must be a sequence of decimal numbers, each with optional fraction and a unit suffix, such as &quot;300s&quot;, &quot;1.5h&quot;, and &quot;2h45m&quot;. Valid time units are &quot;ns&quot;, &quot;us&quot; (or &quot;µs&quot;), &quot;ms&quot;, &quot;s&quot;, &quot;m&quot;, &quot;h&quot;. The value must be a positive duration less than or equal to 2 minutes. The default value is &quot;2m0s&quot; if unspecified.
          &quot;insecureKubeletReadonlyPortEnabled&quot;: True or False, # Enable or disable Kubelet read only port.
          &quot;maxParallelImagePulls&quot;: 42, # Optional. Defines the maximum number of image pulls in parallel. The range is 2 to 5, inclusive. The default value is 2 or 3 depending on the disk type. See https://kubernetes.io/docs/concepts/containers/images/#maximum-parallel-image-pulls for more details.
          &quot;memoryManager&quot;: { # The option enables the Kubernetes NUMA-aware Memory Manager feature. Detailed description about the feature can be found [here](https://kubernetes.io/docs/tasks/administer-cluster/memory-manager/). # Optional. Controls NUMA-aware Memory Manager configuration on the node. For more information, see: https://kubernetes.io/docs/tasks/administer-cluster/memory-manager/
            &quot;policy&quot;: &quot;A String&quot;, # Controls the memory management policy on the Node. See https://kubernetes.io/docs/tasks/administer-cluster/memory-manager/#policies The following values are allowed. * &quot;none&quot; * &quot;static&quot; The default value is &#x27;none&#x27; if unspecified.
          },
          &quot;podPidsLimit&quot;: &quot;A String&quot;, # Set the Pod PID limits. See https://kubernetes.io/docs/concepts/policy/pid-limiting/#pod-pid-limits Controls the maximum number of processes allowed to run in a pod. The value must be greater than or equal to 1024 and less than 4194304.
          &quot;singleProcessOomKill&quot;: True or False, # Optional. Defines whether to enable single process OOM killer. If true, will prevent the memory.oom.group flag from being set for container cgroups in cgroups v2. This causes processes in the container to be OOM killed individually instead of as a group.
          &quot;topologyManager&quot;: { # TopologyManager defines the configuration options for Topology Manager feature. See https://kubernetes.io/docs/tasks/administer-cluster/topology-manager/ # Optional. Controls Topology Manager configuration on the node. For more information, see: https://kubernetes.io/docs/tasks/administer-cluster/topology-manager/
            &quot;policy&quot;: &quot;A String&quot;, # Configures the strategy for resource alignment. Allowed values are: * none: the default policy, and does not perform any topology alignment. * restricted: the topology manager stores the preferred NUMA node affinity for the container, and will reject the pod if the affinity if not preferred. * best-effort: the topology manager stores the preferred NUMA node affinity for the container. If the affinity is not preferred, the topology manager will admit the pod to the node anyway. * single-numa-node: the topology manager determines if the single NUMA node affinity is possible. If it is, Topology Manager will store this and the Hint Providers can then use this information when making the resource allocation decision. If, however, this is not possible then the Topology Manager will reject the pod from the node. This will result in a pod in a Terminated state with a pod admission failure. The default policy value is &#x27;none&#x27; if unspecified. Details about each strategy can be found [here](https://kubernetes.io/docs/tasks/administer-cluster/topology-manager/#topology-manager-policies).
            &quot;scope&quot;: &quot;A String&quot;, # The Topology Manager aligns resources in following scopes: * container * pod The default scope is &#x27;container&#x27; if unspecified. See https://kubernetes.io/docs/tasks/administer-cluster/topology-manager/#topology-manager-scopes
          },
        },
      },
    },
    &quot;nodePools&quot;: [ # The node pools associated with this cluster. This field should not be set if &quot;node_config&quot; or &quot;initial_node_count&quot; are specified.
      { # NodePool contains the name and configuration for a cluster&#x27;s node pool. Node pools are a set of nodes (i.e. VM&#x27;s), with a common configuration and specification, under the control of the cluster master. They may have a set of Kubernetes labels applied to them, which may be used to reference them during pod scheduling. They may also be resized up or down, to accommodate the workload.
        &quot;autopilotConfig&quot;: { # AutopilotConfig contains configuration of autopilot feature for this nodepool. # Specifies the autopilot configuration for this node pool. This field is exclusively reserved for Cluster Autoscaler.
          &quot;enabled&quot;: True or False, # Denotes that nodes belonging to this node pool are Autopilot nodes.
        },
        &quot;autoscaling&quot;: { # NodePoolAutoscaling contains information required by cluster autoscaler to adjust the size of the node pool to the current cluster usage. # Autoscaler configuration for this NodePool. Autoscaler is enabled only if a valid configuration is present.
          &quot;autoprovisioned&quot;: True or False, # Can this node pool be deleted automatically.
          &quot;enabled&quot;: True or False, # Is autoscaling enabled for this node pool.
          &quot;locationPolicy&quot;: &quot;A String&quot;, # Location policy used when scaling up a nodepool.
          &quot;maxNodeCount&quot;: 42, # Maximum number of nodes for one location in the node pool. Must be &gt;= min_node_count. There has to be enough quota to scale up the cluster.
          &quot;minNodeCount&quot;: 42, # Minimum number of nodes for one location in the node pool. Must be greater than or equal to 0 and less than or equal to max_node_count.
          &quot;totalMaxNodeCount&quot;: 42, # Maximum number of nodes in the node pool. Must be greater than or equal to total_min_node_count. There has to be enough quota to scale up the cluster. The total_*_node_count fields are mutually exclusive with the *_node_count fields.
          &quot;totalMinNodeCount&quot;: 42, # Minimum number of nodes in the node pool. Must be greater than or equal to 0 and less than or equal to total_max_node_count. The total_*_node_count fields are mutually exclusive with the *_node_count fields.
        },
        &quot;bestEffortProvisioning&quot;: { # Best effort provisioning. # Enable best effort provisioning for nodes
          &quot;enabled&quot;: True or False, # When this is enabled, cluster/node pool creations will ignore non-fatal errors like stockout to best provision as many nodes as possible right now and eventually bring up all target number of nodes
          &quot;minProvisionNodes&quot;: 42, # Minimum number of nodes to be provisioned to be considered as succeeded, and the rest of nodes will be provisioned gradually and eventually when stockout issue has been resolved.
        },
        &quot;conditions&quot;: [ # Which conditions caused the current node pool state.
          { # StatusCondition describes why a cluster or a node pool has a certain status (e.g., ERROR or DEGRADED).
            &quot;canonicalCode&quot;: &quot;A String&quot;, # Canonical code of the condition.
            &quot;code&quot;: &quot;A String&quot;, # Machine-friendly representation of the condition Deprecated. Use canonical_code instead.
            &quot;message&quot;: &quot;A String&quot;, # Human-friendly representation of the condition
          },
        ],
        &quot;config&quot;: { # Parameters that describe the nodes in a cluster. GKE Autopilot clusters do not recognize parameters in `NodeConfig`. Use AutoprovisioningNodePoolDefaults instead. # The node configuration of the pool.
          &quot;accelerators&quot;: [ # 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.
            { # AcceleratorConfig represents a Hardware Accelerator request.
              &quot;acceleratorCount&quot;: &quot;A String&quot;, # The number of the accelerator cards exposed to an instance.
              &quot;acceleratorType&quot;: &quot;A String&quot;, # The accelerator type resource name. List of supported accelerators [here](https://cloud.google.com/compute/docs/gpus)
              &quot;gpuDriverInstallationConfig&quot;: { # GPUDriverInstallationConfig specifies the version of GPU driver to be auto installed. # The configuration for auto installation of GPU driver.
                &quot;gpuDriverVersion&quot;: &quot;A String&quot;, # Mode for how the GPU driver is installed.
              },
              &quot;gpuPartitionSize&quot;: &quot;A String&quot;, # Size of partitions to create on the GPU. Valid values are described in the NVIDIA [mig user guide](https://docs.nvidia.com/datacenter/tesla/mig-user-guide/#partitioning).
              &quot;gpuSharingConfig&quot;: { # GPUSharingConfig represents the GPU sharing configuration for Hardware Accelerators. # The configuration for GPU sharing options.
                &quot;gpuSharingStrategy&quot;: &quot;A String&quot;, # The type of GPU sharing strategy to enable on the GPU node.
                &quot;maxSharedClientsPerGpu&quot;: &quot;A String&quot;, # The max number of containers that can share a physical GPU.
              },
            },
          ],
          &quot;advancedMachineFeatures&quot;: { # Specifies options for controlling advanced machine features. # Advanced features for the Compute Engine VM.
            &quot;enableNestedVirtualization&quot;: True or False, # Whether or not to enable nested virtualization (defaults to false).
            &quot;performanceMonitoringUnit&quot;: &quot;A String&quot;, # Type of Performance Monitoring Unit (PMU) requested on node pool instances. If unset, PMU will not be available to the node.
            &quot;threadsPerCore&quot;: &quot;A String&quot;, # The number of threads per physical core. To disable simultaneous multithreading (SMT) set this to 1. If unset, the maximum number of threads supported per core by the underlying processor is assumed.
          },
          &quot;bootDisk&quot;: { # BootDisk specifies the boot disk configuration for nodepools. # The boot disk configuration for the node pool.
            &quot;diskType&quot;: &quot;A String&quot;, # Disk type of the boot disk. (i.e. Hyperdisk-Balanced, PD-Balanced, etc.)
            &quot;provisionedIops&quot;: &quot;A String&quot;, # For Hyperdisk-Balanced only, the provisioned IOPS config value.
            &quot;provisionedThroughput&quot;: &quot;A String&quot;, # For Hyperdisk-Balanced only, the provisioned throughput config value.
            &quot;sizeGb&quot;: &quot;A String&quot;, # Disk size in GB. Replaces NodeConfig.disk_size_gb
          },
          &quot;bootDiskKmsKey&quot;: &quot;A String&quot;, #  The Customer Managed Encryption Key used to encrypt the boot disk attached to each node in the node pool. This should be of the form projects/[KEY_PROJECT_ID]/locations/[LOCATION]/keyRings/[RING_NAME]/cryptoKeys/[KEY_NAME]. For more information about protecting resources with Cloud KMS Keys please see: https://cloud.google.com/compute/docs/disks/customer-managed-encryption
          &quot;confidentialNodes&quot;: { # ConfidentialNodes is configuration for the confidential nodes feature, which makes nodes run on confidential VMs. # Confidential nodes config. All the nodes in the node pool will be Confidential VM once enabled.
            &quot;confidentialInstanceType&quot;: &quot;A String&quot;, # Defines the type of technology used by the confidential node.
            &quot;enabled&quot;: True or False, # Whether Confidential Nodes feature is enabled.
          },
          &quot;containerdConfig&quot;: { # ContainerdConfig contains configuration to customize containerd. # Parameters for containerd customization.
            &quot;privateRegistryAccessConfig&quot;: { # PrivateRegistryAccessConfig contains access configuration for private container registries. # PrivateRegistryAccessConfig is used to configure access configuration for private container registries.
              &quot;certificateAuthorityDomainConfig&quot;: [ # Private registry access configuration.
                { # CertificateAuthorityDomainConfig configures one or more fully qualified domain names (FQDN) to a specific certificate.
                  &quot;fqdns&quot;: [ # List of fully qualified domain names (FQDN). Specifying port is supported. Wildcards are NOT supported. Examples: - my.customdomain.com - 10.0.1.2:5000
                    &quot;A String&quot;,
                  ],
                  &quot;gcpSecretManagerCertificateConfig&quot;: { # GCPSecretManagerCertificateConfig configures a secret from [Secret Manager](https://cloud.google.com/secret-manager). # Google Secret Manager (GCP) certificate configuration.
                    &quot;secretUri&quot;: &quot;A String&quot;, # Secret URI, in the form &quot;projects/$PROJECT_ID/secrets/$SECRET_NAME/versions/$VERSION&quot;. Version can be fixed (e.g. &quot;2&quot;) or &quot;latest&quot;
                  },
                },
              ],
              &quot;enabled&quot;: True or False, # Private registry access is enabled.
            },
            &quot;writableCgroups&quot;: { # Defines writable cgroups configuration. # Optional. WritableCgroups defines writable cgroups configuration for the node pool.
              &quot;enabled&quot;: True or False, # Optional. Whether writable cgroups is enabled.
            },
          },
          &quot;diskSizeGb&quot;: 42, # 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.
          &quot;diskType&quot;: &quot;A String&quot;, # Type of the disk attached to each node (e.g. &#x27;pd-standard&#x27;, &#x27;pd-ssd&#x27; or &#x27;pd-balanced&#x27;) If unspecified, the default disk type is &#x27;pd-standard&#x27;
          &quot;effectiveCgroupMode&quot;: &quot;A String&quot;, # Output only. effective_cgroup_mode is the cgroup mode actually used by the node pool. It is determined by the cgroup mode specified in the LinuxNodeConfig or the default cgroup mode based on the cluster creation version.
          &quot;enableConfidentialStorage&quot;: True or False, # Optional. Reserved for future use.
          &quot;ephemeralStorageLocalSsdConfig&quot;: { # EphemeralStorageLocalSsdConfig contains configuration for the node ephemeral storage using Local SSDs. # Parameters for the node ephemeral storage using Local SSDs. If unspecified, ephemeral storage is backed by the boot disk.
            &quot;dataCacheCount&quot;: 42, # Number of local SSDs to use for GKE Data Cache.
            &quot;localSsdCount&quot;: 42, # Number of local SSDs to use to back ephemeral storage. Uses NVMe interfaces. A zero (or unset) value has different meanings depending on machine type being used: 1. For pre-Gen3 machines, which support flexible numbers of local ssds, zero (or unset) means to disable using local SSDs as ephemeral storage. The limit for this value is dependent upon the maximum number of disk available on a machine per zone. See: https://cloud.google.com/compute/docs/disks/local-ssd for more information. 2. For Gen3 machines which dictate a specific number of local ssds, zero (or unset) means to use the default number of local ssds that goes with that machine type. For example, for a c3-standard-8-lssd machine, 2 local ssds would be provisioned. For c3-standard-8 (which doesn&#x27;t support local ssds), 0 will be provisioned. See https://cloud.google.com/compute/docs/disks/local-ssd#choose_number_local_ssds for more info.
          },
          &quot;fastSocket&quot;: { # Configuration of Fast Socket feature. # Enable or disable NCCL fast socket for the node pool.
            &quot;enabled&quot;: True or False, # Whether Fast Socket features are enabled in the node pool.
          },
          &quot;flexStart&quot;: True or False, # Flex Start flag for enabling Flex Start VM.
          &quot;gcfsConfig&quot;: { # GcfsConfig contains configurations of Google Container File System (image streaming). # Google Container File System (image streaming) configs.
            &quot;enabled&quot;: True or False, # Whether to use GCFS.
          },
          &quot;gvnic&quot;: { # Configuration of gVNIC feature. # Enable or disable gvnic in the node pool.
            &quot;enabled&quot;: True or False, # Whether gVNIC features are enabled in the node pool.
          },
          &quot;imageType&quot;: &quot;A String&quot;, # The image type to use for this node. Note that for a given image type, the latest version of it will be used. Please see https://cloud.google.com/kubernetes-engine/docs/concepts/node-images for available image types.
          &quot;kubeletConfig&quot;: { # Node kubelet configs. # Node kubelet configs.
            &quot;allowedUnsafeSysctls&quot;: [ # Optional. Defines a comma-separated allowlist of unsafe sysctls or sysctl patterns (ending in `*`). The unsafe namespaced sysctl groups are `kernel.shm*`, `kernel.msg*`, `kernel.sem`, `fs.mqueue.*`, and `net.*`. Leaving this allowlist empty means they cannot be set on Pods. To allow certain sysctls or sysctl patterns to be set on Pods, list them separated by commas. For example: `kernel.msg*,net.ipv4.route.min_pmtu`. See https://kubernetes.io/docs/tasks/administer-cluster/sysctl-cluster/ for more details.
              &quot;A String&quot;,
            ],
            &quot;containerLogMaxFiles&quot;: 42, # Optional. Defines the maximum number of container log files that can be present for a container. See https://kubernetes.io/docs/concepts/cluster-administration/logging/#log-rotation The value must be an integer between 2 and 10, inclusive. The default value is 5 if unspecified.
            &quot;containerLogMaxSize&quot;: &quot;A String&quot;, # Optional. Defines the maximum size of the container log file before it is rotated. See https://kubernetes.io/docs/concepts/cluster-administration/logging/#log-rotation Valid format is positive number + unit, e.g. 100Ki, 10Mi. Valid units are Ki, Mi, Gi. The value must be between 10Mi and 500Mi, inclusive. Note that the total container log size (container_log_max_size * container_log_max_files) cannot exceed 1% of the total storage of the node, to avoid disk pressure caused by log files. The default value is 10Mi if unspecified.
            &quot;cpuCfsQuota&quot;: True or False, # 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 &#x27;true&#x27; if unspecified.
            &quot;cpuCfsQuotaPeriod&quot;: &quot;A String&quot;, # Set the CPU CFS quota period value &#x27;cpu.cfs_period_us&#x27;. The string must be a sequence of decimal numbers, each with optional fraction and a unit suffix, such as &quot;300ms&quot;. Valid time units are &quot;ns&quot;, &quot;us&quot; (or &quot;µs&quot;), &quot;ms&quot;, &quot;s&quot;, &quot;m&quot;, &quot;h&quot;. The value must be a positive duration between 1ms and 1 second, inclusive.
            &quot;cpuManagerPolicy&quot;: &quot;A String&quot;, # Control the CPU management policy on the node. See https://kubernetes.io/docs/tasks/administer-cluster/cpu-management-policies/ The following values are allowed. * &quot;none&quot;: the default, which represents the existing scheduling behavior. * &quot;static&quot;: allows pods with certain resource characteristics to be granted increased CPU affinity and exclusivity on the node. The default value is &#x27;none&#x27; if unspecified.
            &quot;evictionMaxPodGracePeriodSeconds&quot;: 42, # Optional. eviction_max_pod_grace_period_seconds is the maximum allowed grace period (in seconds) to use when terminating pods in response to a soft eviction threshold being met. This value effectively caps the Pod&#x27;s terminationGracePeriodSeconds value during soft evictions. Default: 0. Range: [0, 300].
            &quot;evictionMinimumReclaim&quot;: { # Eviction minimum reclaims are the resource amounts of minimum reclaims for each eviction signal. # Optional. eviction_minimum_reclaim is a map of signal names to quantities that defines minimum reclaims, which describe the minimum amount of a given resource the kubelet will reclaim when performing a pod eviction while that resource is under pressure.
              &quot;imagefsAvailable&quot;: &quot;A String&quot;, # Optional. Minimum reclaim for eviction due to imagefs available signal. Only take percentage value for now. Sample format: &quot;10%&quot;. Must be &lt;=10%. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
              &quot;imagefsInodesFree&quot;: &quot;A String&quot;, # Optional. Minimum reclaim for eviction due to imagefs inodes free signal. Only take percentage value for now. Sample format: &quot;10%&quot;. Must be &lt;=10%. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
              &quot;memoryAvailable&quot;: &quot;A String&quot;, # Optional. Minimum reclaim for eviction due to memory available signal. Only take percentage value for now. Sample format: &quot;10%&quot;. Must be &lt;=10%. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
              &quot;nodefsAvailable&quot;: &quot;A String&quot;, # Optional. Minimum reclaim for eviction due to nodefs available signal. Only take percentage value for now. Sample format: &quot;10%&quot;. Must be &lt;=10%. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
              &quot;nodefsInodesFree&quot;: &quot;A String&quot;, # Optional. Minimum reclaim for eviction due to nodefs inodes free signal. Only take percentage value for now. Sample format: &quot;10%&quot;. Must be &lt;=10%. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
              &quot;pidAvailable&quot;: &quot;A String&quot;, # Optional. Minimum reclaim for eviction due to pid available signal. Only take percentage value for now. Sample format: &quot;10%&quot;. Must be &lt;=10%. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
            },
            &quot;evictionSoft&quot;: { # Eviction signals are the current state of a particular resource at a specific point in time. The kubelet uses eviction signals to make eviction decisions by comparing the signals to eviction thresholds, which are the minimum amount of the resource that should be available on the node. # Optional. eviction_soft is a map of signal names to quantities that defines soft eviction thresholds. Each signal is compared to its corresponding threshold to determine if a pod eviction should occur.
              &quot;imagefsAvailable&quot;: &quot;A String&quot;, # Optional. Amount of storage available on filesystem that container runtime uses for storing images layers. If the container filesystem and image filesystem are not separate, then imagefs can store both image layers and writeable layers. Defines the amount of &quot;imagefs.available&quot; signal in kubelet. Default is unset, if not specified in the kubelet config. It takses percentage value for now. Sample format: &quot;30%&quot;. Must be &gt;= 15% and &lt;= 50%. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
              &quot;imagefsInodesFree&quot;: &quot;A String&quot;, # Optional. Amount of inodes available on filesystem that container runtime uses for storing images layers. Defines the amount of &quot;imagefs.inodesFree&quot; signal in kubelet. Default is unset, if not specified in the kubelet config. Linux only. It takses percentage value for now. Sample format: &quot;30%&quot;. Must be &gt;= 5% and &lt;= 50%. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
              &quot;memoryAvailable&quot;: &quot;A String&quot;, # Optional. Memory available (i.e. capacity - workingSet), in bytes. Defines the amount of &quot;memory.available&quot; signal in kubelet. Default is unset, if not specified in the kubelet config. Format: positive number + unit, e.g. 100Ki, 10Mi, 5Gi. Valid units are Ki, Mi, Gi. Must be &gt;= 100Mi and &lt;= 50% of the node&#x27;s memory. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
              &quot;nodefsAvailable&quot;: &quot;A String&quot;, # Optional. Amount of storage available on filesystem that kubelet uses for volumes, daemon logs, etc. Defines the amount of &quot;nodefs.available&quot; signal in kubelet. Default is unset, if not specified in the kubelet config. It takses percentage value for now. Sample format: &quot;30%&quot;. Must be &gt;= 10% and &lt;= 50%. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
              &quot;nodefsInodesFree&quot;: &quot;A String&quot;, # Optional. Amount of inodes available on filesystem that kubelet uses for volumes, daemon logs, etc. Defines the amount of &quot;nodefs.inodesFree&quot; signal in kubelet. Default is unset, if not specified in the kubelet config. Linux only. It takses percentage value for now. Sample format: &quot;30%&quot;. Must be &gt;= 5% and &lt;= 50%. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
              &quot;pidAvailable&quot;: &quot;A String&quot;, # Optional. Amount of PID available for pod allocation. Defines the amount of &quot;pid.available&quot; signal in kubelet. Default is unset, if not specified in the kubelet config. It takses percentage value for now. Sample format: &quot;30%&quot;. Must be &gt;= 10% and &lt;= 50%. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
            },
            &quot;evictionSoftGracePeriod&quot;: { # Eviction grace periods are grace periods for each eviction signal. # Optional. eviction_soft_grace_period is a map of signal names to quantities that defines grace periods for each soft eviction signal. The grace period is the amount of time that a pod must be under pressure before an eviction occurs.
              &quot;imagefsAvailable&quot;: &quot;A String&quot;, # Optional. Grace period for eviction due to imagefs available signal. Sample format: &quot;10s&quot;. Must be &gt;= 0. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
              &quot;imagefsInodesFree&quot;: &quot;A String&quot;, # Optional. Grace period for eviction due to imagefs inodes free signal. Sample format: &quot;10s&quot;. Must be &gt;= 0. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
              &quot;memoryAvailable&quot;: &quot;A String&quot;, # Optional. Grace period for eviction due to memory available signal. Sample format: &quot;10s&quot;. Must be &gt;= 0. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
              &quot;nodefsAvailable&quot;: &quot;A String&quot;, # Optional. Grace period for eviction due to nodefs available signal. Sample format: &quot;10s&quot;. Must be &gt;= 0. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
              &quot;nodefsInodesFree&quot;: &quot;A String&quot;, # Optional. Grace period for eviction due to nodefs inodes free signal. Sample format: &quot;10s&quot;. Must be &gt;= 0. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
              &quot;pidAvailable&quot;: &quot;A String&quot;, # Optional. Grace period for eviction due to pid available signal. Sample format: &quot;10s&quot;. Must be &gt;= 0. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
            },
            &quot;imageGcHighThresholdPercent&quot;: 42, # Optional. Defines the percent of disk usage after which image garbage collection is always run. The percent is calculated as this field value out of 100. The value must be between 10 and 85, inclusive and greater than image_gc_low_threshold_percent. The default value is 85 if unspecified.
            &quot;imageGcLowThresholdPercent&quot;: 42, # Optional. Defines the percent of disk usage before which image garbage collection is never run. Lowest disk usage to garbage collect to. The percent is calculated as this field value out of 100. The value must be between 10 and 85, inclusive and smaller than image_gc_high_threshold_percent. The default value is 80 if unspecified.
            &quot;imageMaximumGcAge&quot;: &quot;A String&quot;, # Optional. Defines the maximum age an image can be unused before it is garbage collected. The string must be a sequence of decimal numbers, each with optional fraction and a unit suffix, such as &quot;300s&quot;, &quot;1.5h&quot;, and &quot;2h45m&quot;. Valid time units are &quot;ns&quot;, &quot;us&quot; (or &quot;µs&quot;), &quot;ms&quot;, &quot;s&quot;, &quot;m&quot;, &quot;h&quot;. The value must be a positive duration greater than image_minimum_gc_age or &quot;0s&quot;. The default value is &quot;0s&quot; if unspecified, which disables this field, meaning images won&#x27;t be garbage collected based on being unused for too long.
            &quot;imageMinimumGcAge&quot;: &quot;A String&quot;, # Optional. Defines the minimum age for an unused image before it is garbage collected. The string must be a sequence of decimal numbers, each with optional fraction and a unit suffix, such as &quot;300s&quot;, &quot;1.5h&quot;, and &quot;2h45m&quot;. Valid time units are &quot;ns&quot;, &quot;us&quot; (or &quot;µs&quot;), &quot;ms&quot;, &quot;s&quot;, &quot;m&quot;, &quot;h&quot;. The value must be a positive duration less than or equal to 2 minutes. The default value is &quot;2m0s&quot; if unspecified.
            &quot;insecureKubeletReadonlyPortEnabled&quot;: True or False, # Enable or disable Kubelet read only port.
            &quot;maxParallelImagePulls&quot;: 42, # Optional. Defines the maximum number of image pulls in parallel. The range is 2 to 5, inclusive. The default value is 2 or 3 depending on the disk type. See https://kubernetes.io/docs/concepts/containers/images/#maximum-parallel-image-pulls for more details.
            &quot;memoryManager&quot;: { # The option enables the Kubernetes NUMA-aware Memory Manager feature. Detailed description about the feature can be found [here](https://kubernetes.io/docs/tasks/administer-cluster/memory-manager/). # Optional. Controls NUMA-aware Memory Manager configuration on the node. For more information, see: https://kubernetes.io/docs/tasks/administer-cluster/memory-manager/
              &quot;policy&quot;: &quot;A String&quot;, # Controls the memory management policy on the Node. See https://kubernetes.io/docs/tasks/administer-cluster/memory-manager/#policies The following values are allowed. * &quot;none&quot; * &quot;static&quot; The default value is &#x27;none&#x27; if unspecified.
            },
            &quot;podPidsLimit&quot;: &quot;A String&quot;, # Set the Pod PID limits. See https://kubernetes.io/docs/concepts/policy/pid-limiting/#pod-pid-limits Controls the maximum number of processes allowed to run in a pod. The value must be greater than or equal to 1024 and less than 4194304.
            &quot;singleProcessOomKill&quot;: True or False, # Optional. Defines whether to enable single process OOM killer. If true, will prevent the memory.oom.group flag from being set for container cgroups in cgroups v2. This causes processes in the container to be OOM killed individually instead of as a group.
            &quot;topologyManager&quot;: { # TopologyManager defines the configuration options for Topology Manager feature. See https://kubernetes.io/docs/tasks/administer-cluster/topology-manager/ # Optional. Controls Topology Manager configuration on the node. For more information, see: https://kubernetes.io/docs/tasks/administer-cluster/topology-manager/
              &quot;policy&quot;: &quot;A String&quot;, # Configures the strategy for resource alignment. Allowed values are: * none: the default policy, and does not perform any topology alignment. * restricted: the topology manager stores the preferred NUMA node affinity for the container, and will reject the pod if the affinity if not preferred. * best-effort: the topology manager stores the preferred NUMA node affinity for the container. If the affinity is not preferred, the topology manager will admit the pod to the node anyway. * single-numa-node: the topology manager determines if the single NUMA node affinity is possible. If it is, Topology Manager will store this and the Hint Providers can then use this information when making the resource allocation decision. If, however, this is not possible then the Topology Manager will reject the pod from the node. This will result in a pod in a Terminated state with a pod admission failure. The default policy value is &#x27;none&#x27; if unspecified. Details about each strategy can be found [here](https://kubernetes.io/docs/tasks/administer-cluster/topology-manager/#topology-manager-policies).
              &quot;scope&quot;: &quot;A String&quot;, # The Topology Manager aligns resources in following scopes: * container * pod The default scope is &#x27;container&#x27; if unspecified. See https://kubernetes.io/docs/tasks/administer-cluster/topology-manager/#topology-manager-scopes
            },
          },
          &quot;labels&quot;: { # 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&#x27;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/
            &quot;a_key&quot;: &quot;A String&quot;,
          },
          &quot;linuxNodeConfig&quot;: { # Parameters that can be configured on Linux nodes. # Parameters that can be configured on Linux nodes.
            &quot;cgroupMode&quot;: &quot;A String&quot;, # cgroup_mode specifies the cgroup mode to be used on the node.
            &quot;hugepages&quot;: { # Hugepages amount in both 2m and 1g size # Optional. Amounts for 2M and 1G hugepages
              &quot;hugepageSize1g&quot;: 42, # Optional. Amount of 1G hugepages
              &quot;hugepageSize2m&quot;: 42, # Optional. Amount of 2M hugepages
            },
            &quot;nodeKernelModuleLoading&quot;: { # Configuration for kernel module loading on nodes. # Optional. Configuration for kernel module loading on nodes. When enabled, the node pool will be provisioned with a Container-Optimized OS image that enforces kernel module signature verification.
              &quot;policy&quot;: &quot;A String&quot;, # Set the node module loading policy for nodes in the node pool.
            },
            &quot;sysctls&quot;: { # The Linux kernel parameters to be applied to the nodes and all pods running on the nodes. The following parameters are supported. net.core.busy_poll net.core.busy_read net.core.netdev_max_backlog net.core.rmem_max net.core.rmem_default 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 net.ipv4.tcp_max_orphans net.netfilter.nf_conntrack_max net.netfilter.nf_conntrack_buckets net.netfilter.nf_conntrack_tcp_timeout_close_wait net.netfilter.nf_conntrack_tcp_timeout_time_wait net.netfilter.nf_conntrack_tcp_timeout_established net.netfilter.nf_conntrack_acct kernel.shmmni kernel.shmmax kernel.shmall fs.aio-max-nr fs.file-max fs.inotify.max_user_instances fs.inotify.max_user_watches fs.nr_open vm.dirty_background_ratio vm.dirty_expire_centisecs vm.dirty_ratio vm.dirty_writeback_centisecs vm.max_map_count vm.overcommit_memory vm.overcommit_ratio vm.vfs_cache_pressure vm.swappiness vm.watermark_scale_factor vm.min_free_kbytes
              &quot;a_key&quot;: &quot;A String&quot;,
            },
            &quot;transparentHugepageDefrag&quot;: &quot;A String&quot;, # Optional. Defines the transparent hugepage defrag configuration on the node. VM hugepage allocation can be managed by either limiting defragmentation for delayed allocation or skipping it entirely for immediate allocation only. See https://docs.kernel.org/admin-guide/mm/transhuge.html for more details.
            &quot;transparentHugepageEnabled&quot;: &quot;A String&quot;, # Optional. Transparent hugepage support for anonymous memory can be entirely disabled (mostly for debugging purposes) or only enabled inside MADV_HUGEPAGE regions (to avoid the risk of consuming more memory resources) or enabled system wide. See https://docs.kernel.org/admin-guide/mm/transhuge.html for more details.
          },
          &quot;localNvmeSsdBlockConfig&quot;: { # LocalNvmeSsdBlockConfig contains configuration for using raw-block local NVMe SSDs # Parameters for using raw-block Local NVMe SSDs.
            &quot;localSsdCount&quot;: 42, # Number of local NVMe SSDs to use. The limit for this value is dependent upon the maximum number of disk available on a machine per zone. See: https://cloud.google.com/compute/docs/disks/local-ssd for more information. A zero (or unset) value has different meanings depending on machine type being used: 1. For pre-Gen3 machines, which support flexible numbers of local ssds, zero (or unset) means to disable using local SSDs as ephemeral storage. 2. For Gen3 machines which dictate a specific number of local ssds, zero (or unset) means to use the default number of local ssds that goes with that machine type. For example, for a c3-standard-8-lssd machine, 2 local ssds would be provisioned. For c3-standard-8 (which doesn&#x27;t support local ssds), 0 will be provisioned. See https://cloud.google.com/compute/docs/disks/local-ssd#choose_number_local_ssds for more info.
          },
          &quot;localSsdCount&quot;: 42, # 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.
          &quot;localSsdEncryptionMode&quot;: &quot;A String&quot;, # Specifies which method should be used for encrypting the Local SSDs attached to the node.
          &quot;loggingConfig&quot;: { # NodePoolLoggingConfig specifies logging configuration for nodepools. # Logging configuration.
            &quot;variantConfig&quot;: { # LoggingVariantConfig specifies the behaviour of the logging component. # Logging variant configuration.
              &quot;variant&quot;: &quot;A String&quot;, # Logging variant deployed on nodes.
            },
          },
          &quot;machineType&quot;: &quot;A String&quot;, # The name of a Google Compute Engine [machine type](https://cloud.google.com/compute/docs/machine-types) If unspecified, the default machine type is `e2-medium`.
          &quot;maxRunDuration&quot;: &quot;A String&quot;, # The maximum duration for the nodes to exist. If unspecified, the nodes can exist indefinitely.
          &quot;metadata&quot;: { # The metadata key/value pairs assigned to instances in the cluster. Keys must conform to the regexp `[a-zA-Z0-9-_]+` and be less than 128 bytes in length. These are reflected as part of a URL in the metadata server. Additionally, to avoid ambiguity, keys must not conflict with any other metadata keys for the project or be one of the reserved keys: - &quot;cluster-location&quot; - &quot;cluster-name&quot; - &quot;cluster-uid&quot; - &quot;configure-sh&quot; - &quot;containerd-configure-sh&quot; - &quot;enable-os-login&quot; - &quot;gci-ensure-gke-docker&quot; - &quot;gci-metrics-enabled&quot; - &quot;gci-update-strategy&quot; - &quot;instance-template&quot; - &quot;kube-env&quot; - &quot;startup-script&quot; - &quot;user-data&quot; - &quot;disable-address-manager&quot; - &quot;windows-startup-script-ps1&quot; - &quot;common-psm1&quot; - &quot;k8s-node-setup-psm1&quot; - &quot;install-ssh-psm1&quot; - &quot;user-profile-psm1&quot; 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&#x27;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.
            &quot;a_key&quot;: &quot;A String&quot;,
          },
          &quot;minCpuPlatform&quot;: &quot;A String&quot;, # 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: &quot;Intel Haswell&quot;` or `minCpuPlatform: &quot;Intel Sandy Bridge&quot;`. For more information, read [how to specify min CPU platform](https://cloud.google.com/compute/docs/instances/specify-min-cpu-platform)
          &quot;nodeGroup&quot;: &quot;A String&quot;, # Setting this field will assign instances of this pool to run on the specified node group. This is useful for running workloads on [sole tenant nodes](https://cloud.google.com/compute/docs/nodes/sole-tenant-nodes).
          &quot;oauthScopes&quot;: [ # The set of Google API scopes to be made available on all of the node VMs under the &quot;default&quot; 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 [Artifact Registry](https://cloud.google.com/artifact-registry/)). If unspecified, no scopes are added, unless Cloud Logging or Cloud Monitoring are enabled, in which case their required scopes will be added.
            &quot;A String&quot;,
          ],
          &quot;preemptible&quot;: True or False, # 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.
          &quot;reservationAffinity&quot;: { # [ReservationAffinity](https://cloud.google.com/compute/docs/instances/reserving-zonal-resources) is the configuration of desired reservation which instances could take capacity from. # The optional reservation affinity. Setting this field will apply the specified [Zonal Compute Reservation](https://cloud.google.com/compute/docs/instances/reserving-zonal-resources) to this node pool.
            &quot;consumeReservationType&quot;: &quot;A String&quot;, # Corresponds to the type of reservation consumption.
            &quot;key&quot;: &quot;A String&quot;, # Corresponds to the label key of a reservation resource. To target a SPECIFIC_RESERVATION by name, specify &quot;compute.googleapis.com/reservation-name&quot; as the key and specify the name of your reservation as its value.
            &quot;values&quot;: [ # Corresponds to the label value(s) of reservation resource(s).
              &quot;A String&quot;,
            ],
          },
          &quot;resourceLabels&quot;: { # The resource labels for the node pool to use to annotate any related Google Compute Engine resources.
            &quot;a_key&quot;: &quot;A String&quot;,
          },
          &quot;resourceManagerTags&quot;: { # A map of resource manager tag keys and values to be attached to the nodes for managing Compute Engine firewalls using Network Firewall Policies. Tags must be according to specifications in https://cloud.google.com/vpc/docs/tags-firewalls-overview#specifications. A maximum of 5 tag key-value pairs can be specified. Existing tags will be replaced with new values. # A map of resource manager tag keys and values to be attached to the nodes.
            &quot;tags&quot;: { # TagKeyValue must be in one of the following formats ([KEY]=[VALUE]) 1. `tagKeys/{tag_key_id}=tagValues/{tag_value_id}` 2. `{org_id}/{tag_key_name}={tag_value_name}` 3. `{project_id}/{tag_key_name}={tag_value_name}`
              &quot;a_key&quot;: &quot;A String&quot;,
            },
          },
          &quot;sandboxConfig&quot;: { # SandboxConfig contains configurations of the sandbox to use for the node. # Sandbox configuration for this node.
            &quot;type&quot;: &quot;A String&quot;, # Type of the sandbox to use for the node.
          },
          &quot;secondaryBootDiskUpdateStrategy&quot;: { # SecondaryBootDiskUpdateStrategy is a placeholder which will be extended in the future to define different options for updating secondary boot disks. # Secondary boot disk update strategy.
          },
          &quot;secondaryBootDisks&quot;: [ # List of secondary boot disks attached to the nodes.
            { # SecondaryBootDisk represents a persistent disk attached to a node with special configurations based on its mode.
              &quot;diskImage&quot;: &quot;A String&quot;, # Fully-qualified resource ID for an existing disk image.
              &quot;mode&quot;: &quot;A String&quot;, # Disk mode (container image cache, etc.)
            },
          ],
          &quot;serviceAccount&quot;: &quot;A String&quot;, # 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 &quot;default&quot; service account is used.
          &quot;shieldedInstanceConfig&quot;: { # A set of Shielded Instance options. # Shielded Instance options.
            &quot;enableIntegrityMonitoring&quot;: True or False, # 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.
            &quot;enableSecureBoot&quot;: True or False, # 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.
          },
          &quot;soleTenantConfig&quot;: { # SoleTenantConfig contains the NodeAffinities to specify what shared sole tenant node groups should back the node pool. # Parameters for node pools to be backed by shared sole tenant node groups.
            &quot;minNodeCpus&quot;: 42, # Optional. The minimum number of virtual CPUs this instance will consume when running on a sole-tenant node. This field can only be set if the node pool is created in a shared sole-tenant node group.
            &quot;nodeAffinities&quot;: [ # NodeAffinities used to match to a shared sole tenant node group.
              { # Specifies the NodeAffinity key, values, and affinity operator according to [shared sole tenant node group affinities](https://cloud.google.com/compute/docs/nodes/sole-tenant-nodes#node_affinity_and_anti-affinity).
                &quot;key&quot;: &quot;A String&quot;, # Key for NodeAffinity.
                &quot;operator&quot;: &quot;A String&quot;, # Operator for NodeAffinity.
                &quot;values&quot;: [ # Values for NodeAffinity.
                  &quot;A String&quot;,
                ],
              },
            ],
          },
          &quot;spot&quot;: True or False, # Spot flag for enabling Spot VM, which is a rebrand of the existing preemptible flag.
          &quot;storagePools&quot;: [ # List of Storage Pools where boot disks are provisioned.
            &quot;A String&quot;,
          ],
          &quot;tags&quot;: [ # 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.
            &quot;A String&quot;,
          ],
          &quot;taints&quot;: [ # 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/
            { # Kubernetes taint is composed of three fields: key, value, and effect. Effect can only be one of three types: NoSchedule, PreferNoSchedule or NoExecute. See [here](https://kubernetes.io/docs/concepts/configuration/taint-and-toleration) for more information, including usage and the valid values.
              &quot;effect&quot;: &quot;A String&quot;, # Effect for taint.
              &quot;key&quot;: &quot;A String&quot;, # Key for taint.
              &quot;value&quot;: &quot;A String&quot;, # Value for taint.
            },
          ],
          &quot;windowsNodeConfig&quot;: { # Parameters that can be configured on Windows nodes. Windows Node Config that define the parameters that will be used to configure the Windows node pool settings. # Parameters that can be configured on Windows nodes.
            &quot;osVersion&quot;: &quot;A String&quot;, # OSVersion specifies the Windows node config to be used on the node.
          },
          &quot;workloadMetadataConfig&quot;: { # WorkloadMetadataConfig defines the metadata configuration to expose to workloads on the node pool. # The workload metadata configuration for this node.
            &quot;mode&quot;: &quot;A String&quot;, # Mode is the configuration for how to expose metadata to workloads running on the node pool.
          },
        },
        &quot;etag&quot;: &quot;A String&quot;, # This checksum is computed by the server based on the value of node pool fields, and may be sent on update requests to ensure the client has an up-to-date value before proceeding.
        &quot;initialNodeCount&quot;: 42, # The initial node count for the pool. You must ensure that your Compute Engine [resource quota](https://cloud.google.com/compute/quotas) is sufficient for this number of instances. You must also have available firewall and routes quota.
        &quot;instanceGroupUrls&quot;: [ # Output only. The resource URLs of the [managed instance groups](https://cloud.google.com/compute/docs/instance-groups/creating-groups-of-managed-instances) associated with this node pool. During the node pool blue-green upgrade operation, the URLs contain both blue and green resources.
          &quot;A String&quot;,
        ],
        &quot;locations&quot;: [ # The list of Google Compute Engine [zones](https://cloud.google.com/compute/docs/zones#available) in which the NodePool&#x27;s nodes should be located. If this value is unspecified during node pool creation, the [Cluster.Locations](https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1/projects.locations.clusters#Cluster.FIELDS.locations) value will be used, instead. Warning: changing node pool locations will result in nodes being added and/or removed.
          &quot;A String&quot;,
        ],
        &quot;management&quot;: { # NodeManagement defines the set of node management services turned on for the node pool. # NodeManagement configuration for this NodePool.
          &quot;autoRepair&quot;: True or False, # 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.
          &quot;autoUpgrade&quot;: True or False, # 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.
          &quot;upgradeOptions&quot;: { # AutoUpgradeOptions defines the set of options for the user to control how the Auto Upgrades will proceed. # Specifies the Auto Upgrade knobs for the node pool.
            &quot;autoUpgradeStartTime&quot;: &quot;A String&quot;, # Output only. This field is set when upgrades are about to commence with the approximate start time for the upgrades, in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
            &quot;description&quot;: &quot;A String&quot;, # Output only. This field is set when upgrades are about to commence with the description of the upgrade.
          },
        },
        &quot;maxPodsConstraint&quot;: { # Constraints applied to pods. # The constraint on the maximum number of pods that can be run simultaneously on a node in the node pool.
          &quot;maxPodsPerNode&quot;: &quot;A String&quot;, # Constraint enforced on the max num of pods per node.
        },
        &quot;name&quot;: &quot;A String&quot;, # The name of the node pool.
        &quot;networkConfig&quot;: { # Parameters for node pool-level network config. # Networking configuration for this NodePool. If specified, it overrides the cluster-level defaults.
          &quot;additionalNodeNetworkConfigs&quot;: [ # We specify the additional node networks for this node pool using this list. Each node network corresponds to an additional interface
            { # AdditionalNodeNetworkConfig is the configuration for additional node networks within the NodeNetworkConfig message
              &quot;network&quot;: &quot;A String&quot;, # Name of the VPC where the additional interface belongs
              &quot;subnetwork&quot;: &quot;A String&quot;, # Name of the subnetwork where the additional interface belongs
            },
          ],
          &quot;additionalPodNetworkConfigs&quot;: [ # We specify the additional pod networks for this node pool using this list. Each pod network corresponds to an additional alias IP range for the node
            { # AdditionalPodNetworkConfig is the configuration for additional pod networks within the NodeNetworkConfig message
              &quot;maxPodsPerNode&quot;: { # Constraints applied to pods. # The maximum number of pods per node which use this pod network.
                &quot;maxPodsPerNode&quot;: &quot;A String&quot;, # Constraint enforced on the max num of pods per node.
              },
              &quot;networkAttachment&quot;: &quot;A String&quot;, # The name of the network attachment for pods to communicate to; cannot be specified along with subnetwork or secondary_pod_range.
              &quot;secondaryPodRange&quot;: &quot;A String&quot;, # The name of the secondary range on the subnet which provides IP address for this pod range.
              &quot;subnetwork&quot;: &quot;A String&quot;, # Name of the subnetwork where the additional pod network belongs.
            },
          ],
          &quot;createPodRange&quot;: True or False, # 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. Only applicable if `ip_allocation_policy.use_ip_aliases` is true. This field cannot be changed after the node pool has been created.
          &quot;enablePrivateNodes&quot;: True or False, # Whether nodes have internal IP addresses only. If enable_private_nodes is not specified, then the value is derived from Cluster.NetworkConfig.default_enable_private_nodes
          &quot;networkPerformanceConfig&quot;: { # Configuration of all network bandwidth tiers # Network bandwidth tier configuration.
            &quot;totalEgressBandwidthTier&quot;: &quot;A String&quot;, # Specifies the total network bandwidth tier for the NodePool.
          },
          &quot;networkTierConfig&quot;: { # NetworkTierConfig contains network tier information. # Output only. The network tier configuration for the node pool inherits from the cluster-level configuration and remains immutable throughout the node pool&#x27;s lifecycle, including during upgrades.
            &quot;networkTier&quot;: &quot;A String&quot;, # Network tier configuration.
          },
          &quot;podCidrOverprovisionConfig&quot;: { # [PRIVATE FIELD] Config for pod CIDR size overprovisioning. # [PRIVATE FIELD] Pod CIDR size overprovisioning config for the nodepool. Pod CIDR size per node depends on max_pods_per_node. By default, the value of max_pods_per_node is rounded off to next power of 2 and we then double that to get the size of pod CIDR block per node. Example: max_pods_per_node of 30 would result in 64 IPs (/26). This config can disable the doubling of IPs (we still round off to next power of 2) Example: max_pods_per_node of 30 will result in 32 IPs (/27) when overprovisioning is disabled.
            &quot;disable&quot;: True or False, # Whether Pod CIDR overprovisioning is disabled. Note: Pod CIDR overprovisioning is enabled by default.
          },
          &quot;podIpv4CidrBlock&quot;: &quot;A String&quot;, # 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 [CIDR](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing) notation (e.g. `10.96.0.0/14`) to pick a specific range to use. Only applicable if `ip_allocation_policy.use_ip_aliases` is true. This field cannot be changed after the node pool has been created.
          &quot;podIpv4RangeUtilization&quot;: 3.14, # Output only. The utilization of the IPv4 range for the pod. The ratio is Usage/[Total number of IPs in the secondary range], Usage=numNodes*numZones*podIPsPerNode.
          &quot;podRange&quot;: &quot;A String&quot;, # 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. Only applicable if `ip_allocation_policy.use_ip_aliases` is true. This field cannot be changed after the node pool has been created.
          &quot;subnetwork&quot;: &quot;A String&quot;, # Output only. The subnetwork path for the node pool. Format: projects/{project}/regions/{region}/subnetworks/{subnetwork} If the cluster is associated with multiple subnetworks, the subnetwork for the node pool is picked based on the IP utilization during node pool creation and is immutable.
        },
        &quot;placementPolicy&quot;: { # PlacementPolicy defines the placement policy used by the node pool. # Specifies the node placement policy.
          &quot;policyName&quot;: &quot;A String&quot;, # If set, refers to the name of a custom resource policy supplied by the user. The resource policy must be in the same project and region as the node pool. If not found, InvalidArgument error is returned.
          &quot;tpuTopology&quot;: &quot;A String&quot;, # Optional. TPU placement topology for pod slice node pool. https://cloud.google.com/tpu/docs/types-topologies#tpu_topologies
          &quot;type&quot;: &quot;A String&quot;, # The type of placement.
        },
        &quot;podIpv4CidrSize&quot;: 42, # Output only. The pod CIDR block size per node in this node pool.
        &quot;queuedProvisioning&quot;: { # QueuedProvisioning defines the queued provisioning used by the node pool. # Specifies the configuration of queued provisioning.
          &quot;enabled&quot;: True or False, # Denotes that this nodepool is QRM specific, meaning nodes can be only obtained through queuing via the Cluster Autoscaler ProvisioningRequest API.
        },
        &quot;selfLink&quot;: &quot;A String&quot;, # Output only. Server-defined URL for the resource.
        &quot;status&quot;: &quot;A String&quot;, # Output only. The status of the nodes in this pool instance.
        &quot;statusMessage&quot;: &quot;A String&quot;, # Output only. Deprecated. Use conditions instead. Additional information about the current status of this node pool instance, if available.
        &quot;updateInfo&quot;: { # UpdateInfo contains resource (instance groups, etc), status and other intermediate information relevant to a node pool upgrade. # Output only. Update info contains relevant information during a node pool update.
          &quot;blueGreenInfo&quot;: { # Information relevant to blue-green upgrade. # Information of a blue-green upgrade.
            &quot;blueInstanceGroupUrls&quot;: [ # The resource URLs of the [managed instance groups] (/compute/docs/instance-groups/creating-groups-of-managed-instances) associated with blue pool.
              &quot;A String&quot;,
            ],
            &quot;bluePoolDeletionStartTime&quot;: &quot;A String&quot;, # Time to start deleting blue pool to complete blue-green upgrade, in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
            &quot;greenInstanceGroupUrls&quot;: [ # The resource URLs of the [managed instance groups] (/compute/docs/instance-groups/creating-groups-of-managed-instances) associated with green pool.
              &quot;A String&quot;,
            ],
            &quot;greenPoolVersion&quot;: &quot;A String&quot;, # Version of green pool.
            &quot;phase&quot;: &quot;A String&quot;, # Current blue-green upgrade phase.
          },
        },
        &quot;upgradeSettings&quot;: { # These upgrade settings control the level of parallelism and the level of disruption caused by an upgrade. maxUnavailable controls the number of nodes that can be simultaneously unavailable. maxSurge controls the number of additional nodes that can be added to the node pool temporarily for the time of the upgrade to increase the number of available nodes. (maxUnavailable + maxSurge) determines the level of parallelism (how many nodes are being upgraded at the same time). Note: upgrades inevitably introduce some disruption since workloads need to be moved from old nodes to new, upgraded ones. Even if maxUnavailable=0, this holds true. (Disruption stays within the limits of PodDisruptionBudget, if it is configured.) Consider a hypothetical node pool with 5 nodes having maxSurge=2, maxUnavailable=1. This means the upgrade process upgrades 3 nodes simultaneously. It creates 2 additional (upgraded) nodes, then it brings down 3 old (not yet upgraded) nodes at the same time. This ensures that there are always at least 4 nodes available. These upgrade settings configure the upgrade strategy for the node pool. Use strategy to switch between the strategies applied to the node pool. If the strategy is ROLLING, use max_surge and max_unavailable to control the level of parallelism and the level of disruption caused by upgrade. 1. maxSurge controls the number of additional nodes that can be added to the node pool temporarily for the time of the upgrade to increase the number of available nodes. 2. maxUnavailable controls the number of nodes that can be simultaneously unavailable. 3. (maxUnavailable + maxSurge) determines the level of parallelism (how many nodes are being upgraded at the same time). If the strategy is BLUE_GREEN, use blue_green_settings to configure the blue-green upgrade related settings. 1. standard_rollout_policy is the default policy. The policy is used to control the way blue pool gets drained. The draining is executed in the batch mode. The batch size could be specified as either percentage of the node pool size or the number of nodes. batch_soak_duration is the soak time after each batch gets drained. 2. node_pool_soak_duration is the soak time after all blue nodes are drained. After this period, the blue pool nodes will be deleted. # Upgrade settings control disruption and speed of the upgrade.
          &quot;blueGreenSettings&quot;: { # Settings for blue-green upgrade. # Settings for blue-green upgrade strategy.
            &quot;autoscaledRolloutPolicy&quot;: { # Autoscaled rollout policy utilizes the cluster autoscaler during blue-green upgrade to scale both the blue and green pools. # Autoscaled policy for cluster autoscaler enabled blue-green upgrade.
              &quot;waitForDrainDuration&quot;: &quot;A String&quot;, # Optional. Time to wait after cordoning the blue pool before draining the nodes. Defaults to 3 days. The value can be set between 0 and 7 days, inclusive.
            },
            &quot;nodePoolSoakDuration&quot;: &quot;A String&quot;, # Time needed after draining entire blue pool. After this period, blue pool will be cleaned up.
            &quot;standardRolloutPolicy&quot;: { # Standard rollout policy is the default policy for blue-green. # Standard policy for the blue-green upgrade.
              &quot;batchNodeCount&quot;: 42, # Number of blue nodes to drain in a batch.
              &quot;batchPercentage&quot;: 3.14, # Percentage of the blue pool nodes to drain in a batch. The range of this field should be (0.0, 1.0].
              &quot;batchSoakDuration&quot;: &quot;A String&quot;, # Soak time after each batch gets drained. Default to zero.
            },
          },
          &quot;maxSurge&quot;: 42, # The maximum number of nodes that can be created beyond the current size of the node pool during the upgrade process.
          &quot;maxUnavailable&quot;: 42, # The maximum number of nodes that can be simultaneously unavailable during the upgrade process. A node is considered available if its status is Ready.
          &quot;strategy&quot;: &quot;A String&quot;, # Update strategy of the node pool.
        },
        &quot;version&quot;: &quot;A String&quot;, # The version of Kubernetes running on this NodePool&#x27;s nodes. If unspecified, it defaults as described [here](https://cloud.google.com/kubernetes-engine/versioning#specifying_node_version).
      },
    ],
    &quot;notificationConfig&quot;: { # NotificationConfig is the configuration of notifications. # Notification configuration of the cluster.
      &quot;pubsub&quot;: { # Pub/Sub specific notification config. # Notification config for Pub/Sub.
        &quot;enabled&quot;: True or False, # Enable notifications for Pub/Sub.
        &quot;filter&quot;: { # Allows filtering to one or more specific event types. If event types are present, those and only those event types will be transmitted to the cluster. Other types will be skipped. If no filter is specified, or no event types are present, all event types will be sent # Allows filtering to one or more specific event types. If no filter is specified, or if a filter is specified with no event types, all event types will be sent
          &quot;eventType&quot;: [ # Event types to allowlist.
            &quot;A String&quot;,
          ],
        },
        &quot;topic&quot;: &quot;A String&quot;, # The desired Pub/Sub topic to which notifications will be sent by GKE. Format is `projects/{project}/topics/{topic}`.
      },
    },
    &quot;parentProductConfig&quot;: { # ParentProductConfig is the configuration of the parent product of the cluster. This field is used by Google internal products that are built on top of a GKE cluster and take the ownership of the cluster. # The configuration of the parent product of the cluster. This field is used by Google internal products that are built on top of the GKE cluster and take the ownership of the cluster.
      &quot;labels&quot;: { # Labels contain the configuration of the parent product.
        &quot;a_key&quot;: &quot;A String&quot;,
      },
      &quot;productName&quot;: &quot;A String&quot;, # Name of the parent product associated with the cluster.
    },
    &quot;podAutoscaling&quot;: { # PodAutoscaling is used for configuration of parameters for workload autoscaling. # The config for pod autoscaling.
      &quot;hpaProfile&quot;: &quot;A String&quot;, # Selected Horizontal Pod Autoscaling profile.
    },
    &quot;privateClusterConfig&quot;: { # Configuration options for private clusters. # Configuration for private cluster.
      &quot;enablePrivateEndpoint&quot;: True or False, # Whether the master&#x27;s internal IP address is used as the cluster endpoint. Deprecated: Use ControlPlaneEndpointsConfig.IPEndpointsConfig.enable_public_endpoint instead. Note that the value of enable_public_endpoint is reversed: if enable_private_endpoint is false, then enable_public_endpoint will be true.
      &quot;enablePrivateNodes&quot;: True or False, # 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. Deprecated: Use NetworkConfig.default_enable_private_nodes instead.
      &quot;masterGlobalAccessConfig&quot;: { # Configuration for controlling master global access settings. # Controls master global access settings. Deprecated: Use ControlPlaneEndpointsConfig.IPEndpointsConfig.enable_global_access instead.
        &quot;enabled&quot;: True or False, # Whenever master is accessible globally or not.
      },
      &quot;masterIpv4CidrBlock&quot;: &quot;A String&quot;, # 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&#x27;s network.
      &quot;peeringName&quot;: &quot;A String&quot;, # Output only. The peering name in the customer VPC used by this cluster.
      &quot;privateEndpoint&quot;: &quot;A String&quot;, # Output only. The internal IP address of this cluster&#x27;s master endpoint. Deprecated: Use ControlPlaneEndpointsConfig.IPEndpointsConfig.private_endpoint instead.
      &quot;privateEndpointSubnetwork&quot;: &quot;A String&quot;, # Subnet to provision the master&#x27;s private endpoint during cluster creation. Specified in projects/*/regions/*/subnetworks/* format. Deprecated: Use ControlPlaneEndpointsConfig.IPEndpointsConfig.private_endpoint_subnetwork instead.
      &quot;publicEndpoint&quot;: &quot;A String&quot;, # Output only. The external IP address of this cluster&#x27;s master endpoint. Deprecated:Use ControlPlaneEndpointsConfig.IPEndpointsConfig.public_endpoint instead.
    },
    &quot;rbacBindingConfig&quot;: { # RBACBindingConfig allows user to restrict ClusterRoleBindings an RoleBindings that can be created. # RBACBindingConfig allows user to restrict ClusterRoleBindings an RoleBindings that can be created.
      &quot;enableInsecureBindingSystemAuthenticated&quot;: True or False, # Setting this to true will allow any ClusterRoleBinding and RoleBinding with subjects system:authenticated.
      &quot;enableInsecureBindingSystemUnauthenticated&quot;: True or False, # Setting this to true will allow any ClusterRoleBinding and RoleBinding with subjets system:anonymous or system:unauthenticated.
    },
    &quot;releaseChannel&quot;: { # ReleaseChannel indicates which release channel a cluster is subscribed to. Release channels are arranged in order of risk. When a cluster is subscribed to a release channel, Google maintains both the master version and the node version. Node auto-upgrade defaults to true and cannot be disabled. # Release channel configuration. If left unspecified on cluster creation and a version is specified, the cluster is enrolled in the most mature release channel where the version is available (first checking STABLE, then REGULAR, and finally RAPID). Otherwise, if no release channel configuration and no version is specified, the cluster is enrolled in the REGULAR channel with its default version.
      &quot;channel&quot;: &quot;A String&quot;, # channel specifies which release channel the cluster is subscribed to.
    },
    &quot;resourceLabels&quot;: { # The resource labels for the cluster to use to annotate any related Google Compute Engine resources.
      &quot;a_key&quot;: &quot;A String&quot;,
    },
    &quot;resourceUsageExportConfig&quot;: { # Configuration for exporting cluster resource usages. # Configuration for exporting resource usages. Resource usage export is disabled when this config is unspecified.
      &quot;bigqueryDestination&quot;: { # Parameters for using BigQuery as the destination of resource usage export. # Configuration to use BigQuery as usage export destination.
        &quot;datasetId&quot;: &quot;A String&quot;, # The ID of a BigQuery Dataset.
      },
      &quot;consumptionMeteringConfig&quot;: { # Parameters for controlling consumption metering. # Configuration to enable resource consumption metering.
        &quot;enabled&quot;: True or False, # Whether to enable consumption metering for this cluster. If enabled, a second BigQuery table will be created to hold resource consumption records.
      },
      &quot;enableNetworkEgressMetering&quot;: True or False, # Whether to enable network egress metering for this cluster. If enabled, a daemonset will be created in the cluster to meter network egress traffic.
    },
    &quot;satisfiesPzi&quot;: True or False, # Output only. Reserved for future use.
    &quot;satisfiesPzs&quot;: True or False, # Output only. Reserved for future use.
    &quot;secretManagerConfig&quot;: { # SecretManagerConfig is config for secret manager enablement. # Secret CSI driver configuration.
      &quot;enabled&quot;: True or False, # Enable/Disable Secret Manager Config.
      &quot;rotationConfig&quot;: { # RotationConfig is config for secret manager auto rotation. # Rotation config for secret manager.
        &quot;enabled&quot;: True or False, # Whether the rotation is enabled.
        &quot;rotationInterval&quot;: &quot;A String&quot;, # The interval between two consecutive rotations. Default rotation interval is 2 minutes.
      },
    },
    &quot;securityPostureConfig&quot;: { # SecurityPostureConfig defines the flags needed to enable/disable features for the Security Posture API. # Enable/Disable Security Posture API features for the cluster.
      &quot;mode&quot;: &quot;A String&quot;, # Sets which mode to use for Security Posture features.
      &quot;vulnerabilityMode&quot;: &quot;A String&quot;, # Sets which mode to use for vulnerability scanning.
    },
    &quot;selfLink&quot;: &quot;A String&quot;, # Output only. Server-defined URL for the resource.
    &quot;servicesIpv4Cidr&quot;: &quot;A String&quot;, # Output only. The IP address range of the Kubernetes services in this cluster, in [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing) notation (e.g. `1.2.3.4/29`). Service addresses are typically put in the last `/16` from the container CIDR.
    &quot;shieldedNodes&quot;: { # Configuration of Shielded Nodes feature. # Shielded Nodes configuration.
      &quot;enabled&quot;: True or False, # Whether Shielded Nodes features are enabled on all nodes in this cluster.
    },
    &quot;status&quot;: &quot;A String&quot;, # Output only. The current status of this cluster.
    &quot;statusMessage&quot;: &quot;A String&quot;, # Output only. Deprecated. Use conditions instead. Additional information about the current status of this cluster, if available.
    &quot;subnetwork&quot;: &quot;A String&quot;, # The name of the Google Compute Engine [subnetwork](https://cloud.google.com/compute/docs/subnetworks) to which the cluster is connected.
    &quot;tpuIpv4CidrBlock&quot;: &quot;A String&quot;, # Output only. The IP address range of the Cloud TPUs in this cluster, in [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing) notation (e.g. `1.2.3.4/29`). This field is deprecated due to the deprecation of 2VM TPU. The end of life date for 2VM TPU is 2025-04-25.
    &quot;userManagedKeysConfig&quot;: { # UserManagedKeysConfig holds the resource address to Keys which are used for signing certs and token that are used for communication within cluster. # The Custom keys configuration for the cluster.
      &quot;aggregationCa&quot;: &quot;A String&quot;, # The Certificate Authority Service caPool to use for the aggregation CA in this cluster.
      &quot;clusterCa&quot;: &quot;A String&quot;, # The Certificate Authority Service caPool to use for the cluster CA in this cluster.
      &quot;controlPlaneDiskEncryptionKey&quot;: &quot;A String&quot;, # The Cloud KMS cryptoKey to use for Confidential Hyperdisk on the control plane nodes.
      &quot;etcdApiCa&quot;: &quot;A String&quot;, # Resource path of the Certificate Authority Service caPool to use for the etcd API CA in this cluster.
      &quot;etcdPeerCa&quot;: &quot;A String&quot;, # Resource path of the Certificate Authority Service caPool to use for the etcd peer CA in this cluster.
      &quot;gkeopsEtcdBackupEncryptionKey&quot;: &quot;A String&quot;, # Resource path of the Cloud KMS cryptoKey to use for encryption of internal etcd backups.
      &quot;serviceAccountSigningKeys&quot;: [ # The Cloud KMS cryptoKeyVersions to use for signing service account JWTs issued by this cluster. Format: `projects/{project}/locations/{location}/keyRings/{keyring}/cryptoKeys/{cryptoKey}/cryptoKeyVersions/{cryptoKeyVersion}`
        &quot;A String&quot;,
      ],
      &quot;serviceAccountVerificationKeys&quot;: [ # The Cloud KMS cryptoKeyVersions to use for verifying service account JWTs issued by this cluster. Format: `projects/{project}/locations/{location}/keyRings/{keyring}/cryptoKeys/{cryptoKey}/cryptoKeyVersions/{cryptoKeyVersion}`
        &quot;A String&quot;,
      ],
    },
    &quot;verticalPodAutoscaling&quot;: { # VerticalPodAutoscaling contains global, per-cluster information required by Vertical Pod Autoscaler to automatically adjust the resources of pods controlled by it. # Cluster-level Vertical Pod Autoscaling configuration.
      &quot;enabled&quot;: True or False, # Enables vertical pod autoscaling.
    },
    &quot;workloadIdentityConfig&quot;: { # Configuration for the use of Kubernetes Service Accounts in IAM policies. # Configuration for the use of Kubernetes Service Accounts in IAM policies.
      &quot;workloadPool&quot;: &quot;A String&quot;, # The workload pool to attach all Kubernetes service accounts to.
    },
    &quot;zone&quot;: &quot;A String&quot;, # Output only. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster resides. This field is deprecated, use location instead.
  },
  &quot;parent&quot;: &quot;A String&quot;, # The parent (project and location) where the cluster will be created. Specified in the format `projects/*/locations/*`.
  &quot;projectId&quot;: &quot;A String&quot;, # Deprecated. The Google Developers Console [project ID or project number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). This field has been deprecated and replaced by the parent field.
  &quot;zone&quot;: &quot;A String&quot;, # Deprecated. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster resides. This field has been deprecated and replaced by the parent field.
}

  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # This operation resource represents operations that may have happened or are happening on the cluster. All fields are output only.
  &quot;clusterConditions&quot;: [ # Which conditions caused the current cluster state. Deprecated. Use field error instead.
    { # StatusCondition describes why a cluster or a node pool has a certain status (e.g., ERROR or DEGRADED).
      &quot;canonicalCode&quot;: &quot;A String&quot;, # Canonical code of the condition.
      &quot;code&quot;: &quot;A String&quot;, # Machine-friendly representation of the condition Deprecated. Use canonical_code instead.
      &quot;message&quot;: &quot;A String&quot;, # Human-friendly representation of the condition
    },
  ],
  &quot;detail&quot;: &quot;A String&quot;, # Output only. Detailed operation progress, if available.
  &quot;endTime&quot;: &quot;A String&quot;, # Output only. The time the operation completed, in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
  &quot;error&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure.
    &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
    &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
      {
        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
      },
    ],
    &quot;message&quot;: &quot;A String&quot;, # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
  },
  &quot;location&quot;: &quot;A String&quot;, # Output only. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/regions-zones/regions-zones#available) or [region](https://cloud.google.com/compute/docs/regions-zones/regions-zones#available) in which the cluster resides.
  &quot;name&quot;: &quot;A String&quot;, # Output only. The server-assigned ID for the operation.
  &quot;nodepoolConditions&quot;: [ # Which conditions caused the current node pool state. Deprecated. Use field error instead.
    { # StatusCondition describes why a cluster or a node pool has a certain status (e.g., ERROR or DEGRADED).
      &quot;canonicalCode&quot;: &quot;A String&quot;, # Canonical code of the condition.
      &quot;code&quot;: &quot;A String&quot;, # Machine-friendly representation of the condition Deprecated. Use canonical_code instead.
      &quot;message&quot;: &quot;A String&quot;, # Human-friendly representation of the condition
    },
  ],
  &quot;operationType&quot;: &quot;A String&quot;, # Output only. The operation type.
  &quot;progress&quot;: { # Information about operation (or operation stage) progress. # Output only. Progress information for an operation.
    &quot;metrics&quot;: [ # Progress metric bundle, for example: metrics: [{name: &quot;nodes done&quot;, int_value: 15}, {name: &quot;nodes total&quot;, int_value: 32}] or metrics: [{name: &quot;progress&quot;, double_value: 0.56}, {name: &quot;progress scale&quot;, double_value: 1.0}]
      { # Progress metric is (string, int|float|string) pair.
        &quot;doubleValue&quot;: 3.14, # For metrics with floating point value.
        &quot;intValue&quot;: &quot;A String&quot;, # For metrics with integer value.
        &quot;name&quot;: &quot;A String&quot;, # Required. Metric name, e.g., &quot;nodes total&quot;, &quot;percent done&quot;.
        &quot;stringValue&quot;: &quot;A String&quot;, # For metrics with custom values (ratios, visual progress, etc.).
      },
    ],
    &quot;name&quot;: &quot;A String&quot;, # A non-parameterized string describing an operation stage. Unset for single-stage operations.
    &quot;stages&quot;: [ # Substages of an operation or a stage.
      # Object with schema name: OperationProgress
    ],
    &quot;status&quot;: &quot;A String&quot;, # Status of an operation stage. Unset for single-stage operations.
  },
  &quot;selfLink&quot;: &quot;A String&quot;, # Output only. Server-defined URI for the operation. Example: `https://container.googleapis.com/v1alpha1/projects/123/locations/us-central1/operations/operation-123`.
  &quot;startTime&quot;: &quot;A String&quot;, # Output only. The time the operation started, in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
  &quot;status&quot;: &quot;A String&quot;, # Output only. The current status of the operation.
  &quot;statusMessage&quot;: &quot;A String&quot;, # Output only. If an error has occurred, a textual description of the error. Deprecated. Use the field error instead.
  &quot;targetLink&quot;: &quot;A String&quot;, # Output only. Server-defined URI for the target of the operation. The format of this is a URI to the resource being modified (such as a cluster, node pool, or node). For node pool repairs, there may be multiple nodes being repaired, but only one will be the target. Examples: - ## `https://container.googleapis.com/v1/projects/123/locations/us-central1/clusters/my-cluster` ## `https://container.googleapis.com/v1/projects/123/zones/us-central1-c/clusters/my-cluster/nodePools/my-np` `https://container.googleapis.com/v1/projects/123/zones/us-central1-c/clusters/my-cluster/nodePools/my-np/node/my-node`
  &quot;zone&quot;: &quot;A String&quot;, # Output only. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/zones#available) in which the operation is taking place. This field is deprecated, use location instead.
}</pre>
</div>

<div class="method">
    <code class="details" id="delete">delete(name, clusterId=None, projectId=None, x__xgafv=None, zone=None)</code>
  <pre>Deletes the cluster, including the Kubernetes endpoint and all worker nodes. Firewalls and routes that were configured during cluster creation are also deleted. Other Google Compute Engine resources that might be in use by the cluster, such as load balancer resources, are not deleted if they weren&#x27;t present when the cluster was initially created.

Args:
  name: string, The name (project, location, cluster) of the cluster to delete. Specified in the format `projects/*/locations/*/clusters/*`. (required)
  clusterId: string, Deprecated. The name of the cluster to delete. This field has been deprecated and replaced by the name field.
  projectId: string, Deprecated. The Google Developers Console [project ID or project number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). This field has been deprecated and replaced by the name field.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format
  zone: string, Deprecated. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster resides. This field has been deprecated and replaced by the name field.

Returns:
  An object of the form:

    { # This operation resource represents operations that may have happened or are happening on the cluster. All fields are output only.
  &quot;clusterConditions&quot;: [ # Which conditions caused the current cluster state. Deprecated. Use field error instead.
    { # StatusCondition describes why a cluster or a node pool has a certain status (e.g., ERROR or DEGRADED).
      &quot;canonicalCode&quot;: &quot;A String&quot;, # Canonical code of the condition.
      &quot;code&quot;: &quot;A String&quot;, # Machine-friendly representation of the condition Deprecated. Use canonical_code instead.
      &quot;message&quot;: &quot;A String&quot;, # Human-friendly representation of the condition
    },
  ],
  &quot;detail&quot;: &quot;A String&quot;, # Output only. Detailed operation progress, if available.
  &quot;endTime&quot;: &quot;A String&quot;, # Output only. The time the operation completed, in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
  &quot;error&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure.
    &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
    &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
      {
        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
      },
    ],
    &quot;message&quot;: &quot;A String&quot;, # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
  },
  &quot;location&quot;: &quot;A String&quot;, # Output only. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/regions-zones/regions-zones#available) or [region](https://cloud.google.com/compute/docs/regions-zones/regions-zones#available) in which the cluster resides.
  &quot;name&quot;: &quot;A String&quot;, # Output only. The server-assigned ID for the operation.
  &quot;nodepoolConditions&quot;: [ # Which conditions caused the current node pool state. Deprecated. Use field error instead.
    { # StatusCondition describes why a cluster or a node pool has a certain status (e.g., ERROR or DEGRADED).
      &quot;canonicalCode&quot;: &quot;A String&quot;, # Canonical code of the condition.
      &quot;code&quot;: &quot;A String&quot;, # Machine-friendly representation of the condition Deprecated. Use canonical_code instead.
      &quot;message&quot;: &quot;A String&quot;, # Human-friendly representation of the condition
    },
  ],
  &quot;operationType&quot;: &quot;A String&quot;, # Output only. The operation type.
  &quot;progress&quot;: { # Information about operation (or operation stage) progress. # Output only. Progress information for an operation.
    &quot;metrics&quot;: [ # Progress metric bundle, for example: metrics: [{name: &quot;nodes done&quot;, int_value: 15}, {name: &quot;nodes total&quot;, int_value: 32}] or metrics: [{name: &quot;progress&quot;, double_value: 0.56}, {name: &quot;progress scale&quot;, double_value: 1.0}]
      { # Progress metric is (string, int|float|string) pair.
        &quot;doubleValue&quot;: 3.14, # For metrics with floating point value.
        &quot;intValue&quot;: &quot;A String&quot;, # For metrics with integer value.
        &quot;name&quot;: &quot;A String&quot;, # Required. Metric name, e.g., &quot;nodes total&quot;, &quot;percent done&quot;.
        &quot;stringValue&quot;: &quot;A String&quot;, # For metrics with custom values (ratios, visual progress, etc.).
      },
    ],
    &quot;name&quot;: &quot;A String&quot;, # A non-parameterized string describing an operation stage. Unset for single-stage operations.
    &quot;stages&quot;: [ # Substages of an operation or a stage.
      # Object with schema name: OperationProgress
    ],
    &quot;status&quot;: &quot;A String&quot;, # Status of an operation stage. Unset for single-stage operations.
  },
  &quot;selfLink&quot;: &quot;A String&quot;, # Output only. Server-defined URI for the operation. Example: `https://container.googleapis.com/v1alpha1/projects/123/locations/us-central1/operations/operation-123`.
  &quot;startTime&quot;: &quot;A String&quot;, # Output only. The time the operation started, in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
  &quot;status&quot;: &quot;A String&quot;, # Output only. The current status of the operation.
  &quot;statusMessage&quot;: &quot;A String&quot;, # Output only. If an error has occurred, a textual description of the error. Deprecated. Use the field error instead.
  &quot;targetLink&quot;: &quot;A String&quot;, # Output only. Server-defined URI for the target of the operation. The format of this is a URI to the resource being modified (such as a cluster, node pool, or node). For node pool repairs, there may be multiple nodes being repaired, but only one will be the target. Examples: - ## `https://container.googleapis.com/v1/projects/123/locations/us-central1/clusters/my-cluster` ## `https://container.googleapis.com/v1/projects/123/zones/us-central1-c/clusters/my-cluster/nodePools/my-np` `https://container.googleapis.com/v1/projects/123/zones/us-central1-c/clusters/my-cluster/nodePools/my-np/node/my-node`
  &quot;zone&quot;: &quot;A String&quot;, # Output only. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/zones#available) in which the operation is taking place. This field is deprecated, use location instead.
}</pre>
</div>

<div class="method">
    <code class="details" id="fetchClusterUpgradeInfo">fetchClusterUpgradeInfo(name, version=None, x__xgafv=None)</code>
  <pre>Fetch upgrade information of a specific cluster.

Args:
  name: string, Required. The name (project, location, cluster) of the cluster to get. Specified in the format `projects/*/locations/*/clusters/*` or `projects/*/zones/*/clusters/*`. (required)
  version: string, API request version that initiates this operation.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # ClusterUpgradeInfo contains the upgrade information of a cluster.
  &quot;autoUpgradeStatus&quot;: [ # The auto upgrade status.
    &quot;A String&quot;,
  ],
  &quot;endOfExtendedSupportTimestamp&quot;: &quot;A String&quot;, # The cluster&#x27;s current minor version&#x27;s end of extended support timestamp.
  &quot;endOfStandardSupportTimestamp&quot;: &quot;A String&quot;, # The cluster&#x27;s current minor version&#x27;s end of standard support timestamp.
  &quot;minorTargetVersion&quot;: &quot;A String&quot;, # minor_target_version indicates the target version for minor upgrade.
  &quot;patchTargetVersion&quot;: &quot;A String&quot;, # patch_target_version indicates the target version for patch upgrade.
  &quot;pausedReason&quot;: [ # The auto upgrade paused reason.
    &quot;A String&quot;,
  ],
  &quot;upgradeDetails&quot;: [ # The list of past auto upgrades.
    { # UpgradeDetails contains detailed information of each individual upgrade operation.
      &quot;endTime&quot;: &quot;A String&quot;, # The end timestamp of the upgrade.
      &quot;initialVersion&quot;: &quot;A String&quot;, # The version before the upgrade.
      &quot;startTime&quot;: &quot;A String&quot;, # The start timestamp of the upgrade.
      &quot;startType&quot;: &quot;A String&quot;, # The start type of the upgrade.
      &quot;state&quot;: &quot;A String&quot;, # Output only. The state of the upgrade.
      &quot;targetVersion&quot;: &quot;A String&quot;, # The version after the upgrade.
    },
  ],
}</pre>
</div>

<div class="method">
    <code class="details" id="get">get(name, clusterId=None, projectId=None, x__xgafv=None, zone=None)</code>
  <pre>Gets the details of a specific cluster.

Args:
  name: string, The name (project, location, cluster) of the cluster to retrieve. Specified in the format `projects/*/locations/*/clusters/*`. (required)
  clusterId: string, Deprecated. The name of the cluster to retrieve. This field has been deprecated and replaced by the name field.
  projectId: string, Deprecated. The Google Developers Console [project ID or project number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). This field has been deprecated and replaced by the name field.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format
  zone: string, Deprecated. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster resides. This field has been deprecated and replaced by the name field.

Returns:
  An object of the form:

    { # A Google Kubernetes Engine cluster.
  &quot;addonsConfig&quot;: { # Configuration for the addons that can be automatically spun up in the cluster, enabling additional functionality. # Configurations for the various addons available to run in the cluster.
    &quot;cloudRunConfig&quot;: { # Configuration options for the Cloud Run feature. # Configuration for the Cloud Run addon, which allows the user to use a managed Knative service.
      &quot;disabled&quot;: True or False, # Whether Cloud Run addon is enabled for this cluster.
      &quot;loadBalancerType&quot;: &quot;A String&quot;, # Which load balancer type is installed for Cloud Run.
    },
    &quot;configConnectorConfig&quot;: { # Configuration options for the Config Connector add-on. # Configuration for the ConfigConnector add-on, a Kubernetes extension to manage hosted Google Cloud services through the Kubernetes API.
      &quot;enabled&quot;: True or False, # Whether Cloud Connector is enabled for this cluster.
    },
    &quot;dnsCacheConfig&quot;: { # Configuration for NodeLocal DNSCache # Configuration for NodeLocalDNS, a dns cache running on cluster nodes
      &quot;enabled&quot;: True or False, # Whether NodeLocal DNSCache is enabled for this cluster.
    },
    &quot;gcePersistentDiskCsiDriverConfig&quot;: { # Configuration for the Compute Engine PD CSI driver. # Configuration for the Compute Engine Persistent Disk CSI driver.
      &quot;enabled&quot;: True or False, # Whether the Compute Engine PD CSI driver is enabled for this cluster.
    },
    &quot;gcpFilestoreCsiDriverConfig&quot;: { # Configuration for the Filestore CSI driver. # Configuration for the Filestore CSI driver.
      &quot;enabled&quot;: True or False, # Whether the Filestore CSI driver is enabled for this cluster.
    },
    &quot;gcsFuseCsiDriverConfig&quot;: { # Configuration for the Cloud Storage Fuse CSI driver. # Configuration for the Cloud Storage Fuse CSI driver.
      &quot;enabled&quot;: True or False, # Whether the Cloud Storage Fuse CSI driver is enabled for this cluster.
    },
    &quot;gkeBackupAgentConfig&quot;: { # Configuration for the Backup for GKE Agent. # Configuration for the Backup for GKE agent addon.
      &quot;enabled&quot;: True or False, # Whether the Backup for GKE agent is enabled for this cluster.
    },
    &quot;highScaleCheckpointingConfig&quot;: { # Configuration for the High Scale Checkpointing. # Configuration for the High Scale Checkpointing add-on.
      &quot;enabled&quot;: True or False, # Whether the High Scale Checkpointing is enabled for this cluster.
    },
    &quot;horizontalPodAutoscaling&quot;: { # Configuration options for the horizontal pod autoscaling feature, which increases or decreases the number of replica pods a replication controller has based on the resource usage of the existing pods. # 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.
      &quot;disabled&quot;: True or False, # Whether the Horizontal Pod Autoscaling feature is enabled in the cluster. When enabled, it ensures that metrics are collected into Stackdriver Monitoring.
    },
    &quot;httpLoadBalancing&quot;: { # Configuration options for the HTTP (L7) load balancing controller addon, which makes it easy to set up HTTP load balancers for services in a cluster. # Configuration for the HTTP (L7) load balancing controller addon, which makes it easy to set up HTTP load balancers for services in a cluster.
      &quot;disabled&quot;: True or False, # 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.
    },
    &quot;kubernetesDashboard&quot;: { # Configuration for the Kubernetes Dashboard. # Configuration for the Kubernetes Dashboard. This addon is deprecated, and will be disabled in 1.15. It is recommended to use the Cloud Console to manage and monitor your Kubernetes clusters, workloads and applications. For more information, see: https://cloud.google.com/kubernetes-engine/docs/concepts/dashboards
      &quot;disabled&quot;: True or False, # Whether the Kubernetes Dashboard is enabled for this cluster.
    },
    &quot;lustreCsiDriverConfig&quot;: { # Configuration for the Lustre CSI driver. # Configuration for the Lustre CSI driver.
      &quot;enableLegacyLustrePort&quot;: True or False, # If set to true, the Lustre CSI driver will install Lustre kernel modules using port 6988. This serves as a workaround for a port conflict with the gke-metadata-server. This field is required ONLY under the following conditions: 1. The GKE node version is older than 1.33.2-gke.4655000. 2. You&#x27;re connecting to a Lustre instance that has the &#x27;gke-support-enabled&#x27; flag.
      &quot;enabled&quot;: True or False, # Whether the Lustre CSI driver is enabled for this cluster.
    },
    &quot;networkPolicyConfig&quot;: { # 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. # 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.
      &quot;disabled&quot;: True or False, # Whether NetworkPolicy is enabled for this cluster.
    },
    &quot;parallelstoreCsiDriverConfig&quot;: { # Configuration for the Cloud Storage Parallelstore CSI driver. # Configuration for the Cloud Storage Parallelstore CSI driver.
      &quot;enabled&quot;: True or False, # Whether the Cloud Storage Parallelstore CSI driver is enabled for this cluster.
    },
    &quot;rayOperatorConfig&quot;: { # Configuration options for the Ray Operator add-on. # Optional. Configuration for Ray Operator addon.
      &quot;enabled&quot;: True or False, # Whether the Ray Operator addon is enabled for this cluster.
      &quot;rayClusterLoggingConfig&quot;: { # RayClusterLoggingConfig specifies configuration of Ray logging. # Optional. Logging configuration for Ray clusters.
        &quot;enabled&quot;: True or False, # Enable log collection for Ray clusters.
      },
      &quot;rayClusterMonitoringConfig&quot;: { # RayClusterMonitoringConfig specifies monitoring configuration for Ray clusters. # Optional. Monitoring configuration for Ray clusters.
        &quot;enabled&quot;: True or False, # Enable metrics collection for Ray clusters.
      },
    },
    &quot;statefulHaConfig&quot;: { # Configuration for the Stateful HA add-on. # Optional. Configuration for the StatefulHA add-on.
      &quot;enabled&quot;: True or False, # Whether the Stateful HA add-on is enabled for this cluster.
    },
  },
  &quot;alphaClusterFeatureGates&quot;: [ # The list of user specified Kubernetes feature gates. Each string represents the activation status of a feature gate (e.g. &quot;featureX=true&quot; or &quot;featureX=false&quot;)
    &quot;A String&quot;,
  ],
  &quot;anonymousAuthenticationConfig&quot;: { # AnonymousAuthenticationConfig defines the settings needed to limit endpoints that allow anonymous authentication. # Configuration for limiting anonymous access to all endpoints except the health checks.
    &quot;mode&quot;: &quot;A String&quot;, # Defines the mode of limiting anonymous access in the cluster.
  },
  &quot;authenticatorGroupsConfig&quot;: { # Configuration for returning group information from authenticators. # Configuration controlling RBAC group membership information.
    &quot;enabled&quot;: True or False, # Whether this cluster should return group membership lookups during authentication using a group of security groups.
    &quot;securityGroup&quot;: &quot;A String&quot;, # The name of the security group-of-groups to be used. Only relevant if enabled = true.
  },
  &quot;autopilot&quot;: { # Autopilot is the configuration for Autopilot settings on the cluster. # Autopilot configuration for the cluster.
    &quot;enabled&quot;: True or False, # Enable Autopilot
    &quot;privilegedAdmissionConfig&quot;: { # PrivilegedAdmissionConfig stores the list of authorized allowlist paths for the cluster. # PrivilegedAdmissionConfig is the configuration related to privileged admission control.
      &quot;allowlistPaths&quot;: [ # The customer allowlist Cloud Storage paths for the cluster. These paths are used with the `--autopilot-privileged-admission` flag to authorize privileged workloads in Autopilot clusters. Paths can be GKE-owned, in the format `gke:////`, or customer-owned, in the format `gs:///`. Wildcards (`*`) are supported to authorize all allowlists under specific paths or directories. Example: `gs://my-bucket/*` will authorize all allowlists under the `my-bucket` bucket.
        &quot;A String&quot;,
      ],
    },
    &quot;workloadPolicyConfig&quot;: { # WorkloadPolicyConfig is the configuration related to GCW workload policy # WorkloadPolicyConfig is the configuration related to GCW workload policy
      &quot;allowNetAdmin&quot;: True or False, # If true, workloads can use NET_ADMIN capability.
      &quot;autopilotCompatibilityAuditingEnabled&quot;: True or False, # If true, enables the GCW Auditor that audits workloads on standard clusters.
    },
  },
  &quot;autoscaling&quot;: { # ClusterAutoscaling contains global, per-cluster information required by Cluster Autoscaler to automatically adjust the size of the cluster and create/delete node pools based on the current needs. # Cluster-level autoscaling configuration.
    &quot;autoprovisioningLocations&quot;: [ # The list of Google Compute Engine [zones](https://cloud.google.com/compute/docs/zones#available) in which the NodePool&#x27;s nodes can be created by NAP.
      &quot;A String&quot;,
    ],
    &quot;autoprovisioningNodePoolDefaults&quot;: { # AutoprovisioningNodePoolDefaults contains defaults for a node pool created by NAP. # AutoprovisioningNodePoolDefaults contains defaults for a node pool created by NAP.
      &quot;bootDiskKmsKey&quot;: &quot;A String&quot;, # The Customer Managed Encryption Key used to encrypt the boot disk attached to each node in the node pool. This should be of the form projects/[KEY_PROJECT_ID]/locations/[LOCATION]/keyRings/[RING_NAME]/cryptoKeys/[KEY_NAME]. For more information about protecting resources with Cloud KMS Keys please see: https://cloud.google.com/compute/docs/disks/customer-managed-encryption
      &quot;diskSizeGb&quot;: 42, # 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.
      &quot;diskType&quot;: &quot;A String&quot;, # Type of the disk attached to each node (e.g. &#x27;pd-standard&#x27;, &#x27;pd-ssd&#x27; or &#x27;pd-balanced&#x27;) If unspecified, the default disk type is &#x27;pd-standard&#x27;
      &quot;imageType&quot;: &quot;A String&quot;, # The image type to use for NAP created node. Please see https://cloud.google.com/kubernetes-engine/docs/concepts/node-images for available image types.
      &quot;insecureKubeletReadonlyPortEnabled&quot;: True or False, # DEPRECATED. Use NodePoolAutoConfig.NodeKubeletConfig instead.
      &quot;management&quot;: { # NodeManagement defines the set of node management services turned on for the node pool. # Specifies the node management options for NAP created node-pools.
        &quot;autoRepair&quot;: True or False, # 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.
        &quot;autoUpgrade&quot;: True or False, # 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.
        &quot;upgradeOptions&quot;: { # AutoUpgradeOptions defines the set of options for the user to control how the Auto Upgrades will proceed. # Specifies the Auto Upgrade knobs for the node pool.
          &quot;autoUpgradeStartTime&quot;: &quot;A String&quot;, # Output only. This field is set when upgrades are about to commence with the approximate start time for the upgrades, in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
          &quot;description&quot;: &quot;A String&quot;, # Output only. This field is set when upgrades are about to commence with the description of the upgrade.
        },
      },
      &quot;minCpuPlatform&quot;: &quot;A String&quot;, # Deprecated. 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 [how to specify min CPU platform](https://cloud.google.com/compute/docs/instances/specify-min-cpu-platform). This field is deprecated, min_cpu_platform should be specified using `cloud.google.com/requested-min-cpu-platform` label selector on the pod. To unset the min cpu platform field pass &quot;automatic&quot; as field value.
      &quot;oauthScopes&quot;: [ # Scopes that are used by NAP when creating node pools.
        &quot;A String&quot;,
      ],
      &quot;serviceAccount&quot;: &quot;A String&quot;, # The Google Cloud Platform Service Account to be used by the node VMs.
      &quot;shieldedInstanceConfig&quot;: { # A set of Shielded Instance options. # Shielded Instance options.
        &quot;enableIntegrityMonitoring&quot;: True or False, # 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.
        &quot;enableSecureBoot&quot;: True or False, # 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.
      },
      &quot;upgradeSettings&quot;: { # These upgrade settings control the level of parallelism and the level of disruption caused by an upgrade. maxUnavailable controls the number of nodes that can be simultaneously unavailable. maxSurge controls the number of additional nodes that can be added to the node pool temporarily for the time of the upgrade to increase the number of available nodes. (maxUnavailable + maxSurge) determines the level of parallelism (how many nodes are being upgraded at the same time). Note: upgrades inevitably introduce some disruption since workloads need to be moved from old nodes to new, upgraded ones. Even if maxUnavailable=0, this holds true. (Disruption stays within the limits of PodDisruptionBudget, if it is configured.) Consider a hypothetical node pool with 5 nodes having maxSurge=2, maxUnavailable=1. This means the upgrade process upgrades 3 nodes simultaneously. It creates 2 additional (upgraded) nodes, then it brings down 3 old (not yet upgraded) nodes at the same time. This ensures that there are always at least 4 nodes available. These upgrade settings configure the upgrade strategy for the node pool. Use strategy to switch between the strategies applied to the node pool. If the strategy is ROLLING, use max_surge and max_unavailable to control the level of parallelism and the level of disruption caused by upgrade. 1. maxSurge controls the number of additional nodes that can be added to the node pool temporarily for the time of the upgrade to increase the number of available nodes. 2. maxUnavailable controls the number of nodes that can be simultaneously unavailable. 3. (maxUnavailable + maxSurge) determines the level of parallelism (how many nodes are being upgraded at the same time). If the strategy is BLUE_GREEN, use blue_green_settings to configure the blue-green upgrade related settings. 1. standard_rollout_policy is the default policy. The policy is used to control the way blue pool gets drained. The draining is executed in the batch mode. The batch size could be specified as either percentage of the node pool size or the number of nodes. batch_soak_duration is the soak time after each batch gets drained. 2. node_pool_soak_duration is the soak time after all blue nodes are drained. After this period, the blue pool nodes will be deleted. # Specifies the upgrade settings for NAP created node pools
        &quot;blueGreenSettings&quot;: { # Settings for blue-green upgrade. # Settings for blue-green upgrade strategy.
          &quot;autoscaledRolloutPolicy&quot;: { # Autoscaled rollout policy utilizes the cluster autoscaler during blue-green upgrade to scale both the blue and green pools. # Autoscaled policy for cluster autoscaler enabled blue-green upgrade.
            &quot;waitForDrainDuration&quot;: &quot;A String&quot;, # Optional. Time to wait after cordoning the blue pool before draining the nodes. Defaults to 3 days. The value can be set between 0 and 7 days, inclusive.
          },
          &quot;nodePoolSoakDuration&quot;: &quot;A String&quot;, # Time needed after draining entire blue pool. After this period, blue pool will be cleaned up.
          &quot;standardRolloutPolicy&quot;: { # Standard rollout policy is the default policy for blue-green. # Standard policy for the blue-green upgrade.
            &quot;batchNodeCount&quot;: 42, # Number of blue nodes to drain in a batch.
            &quot;batchPercentage&quot;: 3.14, # Percentage of the blue pool nodes to drain in a batch. The range of this field should be (0.0, 1.0].
            &quot;batchSoakDuration&quot;: &quot;A String&quot;, # Soak time after each batch gets drained. Default to zero.
          },
        },
        &quot;maxSurge&quot;: 42, # The maximum number of nodes that can be created beyond the current size of the node pool during the upgrade process.
        &quot;maxUnavailable&quot;: 42, # The maximum number of nodes that can be simultaneously unavailable during the upgrade process. A node is considered available if its status is Ready.
        &quot;strategy&quot;: &quot;A String&quot;, # Update strategy of the node pool.
      },
    },
    &quot;autoscalingProfile&quot;: &quot;A String&quot;, # Defines autoscaling behaviour.
    &quot;defaultComputeClassConfig&quot;: { # DefaultComputeClassConfig defines default compute class configuration. # Default compute class is a configuration for default compute class.
      &quot;enabled&quot;: True or False, # Enables default compute class.
    },
    &quot;enableNodeAutoprovisioning&quot;: True or False, # Enables automatic node pool creation and deletion.
    &quot;resourceLimits&quot;: [ # Contains global constraints regarding minimum and maximum amount of resources in the cluster.
      { # Contains information about amount of some resource in the cluster. For memory, value should be in GB.
        &quot;maximum&quot;: &quot;A String&quot;, # Maximum amount of the resource in the cluster.
        &quot;minimum&quot;: &quot;A String&quot;, # Minimum amount of the resource in the cluster.
        &quot;resourceType&quot;: &quot;A String&quot;, # Resource name &quot;cpu&quot;, &quot;memory&quot; or gpu-specific string.
      },
    ],
  },
  &quot;binaryAuthorization&quot;: { # Configuration for Binary Authorization. # Configuration for Binary Authorization.
    &quot;enabled&quot;: True or False, # This field is deprecated. Leave this unset and instead configure BinaryAuthorization using evaluation_mode. If evaluation_mode is set to anything other than EVALUATION_MODE_UNSPECIFIED, this field is ignored.
    &quot;evaluationMode&quot;: &quot;A String&quot;, # Mode of operation for binauthz policy evaluation. If unspecified, defaults to DISABLED.
  },
  &quot;clusterIpv4Cidr&quot;: &quot;A String&quot;, # The IP address range of the container pods in this cluster, in [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing) notation (e.g. `10.96.0.0/14`). Leave blank to have one automatically chosen or specify a `/14` block in `10.0.0.0/8`.
  &quot;compliancePostureConfig&quot;: { # CompliancePostureConfig defines the settings needed to enable/disable features for the Compliance Posture. # Enable/Disable Compliance Posture features for the cluster.
    &quot;complianceStandards&quot;: [ # List of enabled compliance standards.
      { # Defines the details of a compliance standard.
        &quot;standard&quot;: &quot;A String&quot;, # Name of the compliance standard.
      },
    ],
    &quot;mode&quot;: &quot;A String&quot;, # Defines the enablement mode for Compliance Posture.
  },
  &quot;conditions&quot;: [ # Which conditions caused the current cluster state.
    { # StatusCondition describes why a cluster or a node pool has a certain status (e.g., ERROR or DEGRADED).
      &quot;canonicalCode&quot;: &quot;A String&quot;, # Canonical code of the condition.
      &quot;code&quot;: &quot;A String&quot;, # Machine-friendly representation of the condition Deprecated. Use canonical_code instead.
      &quot;message&quot;: &quot;A String&quot;, # Human-friendly representation of the condition
    },
  ],
  &quot;confidentialNodes&quot;: { # ConfidentialNodes is configuration for the confidential nodes feature, which makes nodes run on confidential VMs. # Configuration of Confidential Nodes. All the nodes in the cluster will be Confidential VM once enabled.
    &quot;confidentialInstanceType&quot;: &quot;A String&quot;, # Defines the type of technology used by the confidential node.
    &quot;enabled&quot;: True or False, # Whether Confidential Nodes feature is enabled.
  },
  &quot;controlPlaneEndpointsConfig&quot;: { # Configuration for all of the cluster&#x27;s control plane endpoints. # Configuration for all cluster&#x27;s control plane endpoints.
    &quot;dnsEndpointConfig&quot;: { # Describes the configuration of a DNS endpoint. # DNS endpoint configuration.
      &quot;allowExternalTraffic&quot;: True or False, # Controls whether user traffic is allowed over this endpoint. Note that Google-managed services may still use the endpoint even if this is false.
      &quot;enableK8sCertsViaDns&quot;: True or False, # Controls whether the k8s certs auth is allowed via DNS.
      &quot;enableK8sTokensViaDns&quot;: True or False, # Controls whether the k8s token auth is allowed via DNS.
      &quot;endpoint&quot;: &quot;A String&quot;, # Output only. The cluster&#x27;s DNS endpoint configuration. A DNS format address. This is accessible from the public internet. Ex: uid.us-central1.gke.goog. Always present, but the behavior may change according to the value of DNSEndpointConfig.allow_external_traffic.
    },
    &quot;ipEndpointsConfig&quot;: { # IP endpoints configuration. # IP endpoints configuration.
      &quot;authorizedNetworksConfig&quot;: { # Configuration options for the master authorized networks feature. Enabled master authorized networks will disallow all external traffic to access Kubernetes master through HTTPS except traffic from the given CIDR blocks, Google Compute Engine Public IPs and Google Prod IPs. # Configuration of authorized networks. If enabled, restricts access to the control plane based on source IP. It is invalid to specify both Cluster.masterAuthorizedNetworksConfig and this field at the same time.
        &quot;cidrBlocks&quot;: [ # cidr_blocks define up to 50 external networks that could access Kubernetes master through HTTPS.
          { # CidrBlock contains an optional name and one CIDR block.
            &quot;cidrBlock&quot;: &quot;A String&quot;, # cidr_block must be specified in CIDR notation.
            &quot;displayName&quot;: &quot;A String&quot;, # display_name is an optional field for users to identify CIDR blocks.
          },
        ],
        &quot;enabled&quot;: True or False, # Whether or not master authorized networks is enabled.
        &quot;gcpPublicCidrsAccessEnabled&quot;: True or False, # Whether master is accessible via Google Compute Engine Public IP addresses.
        &quot;privateEndpointEnforcementEnabled&quot;: True or False, # Whether master authorized networks is enforced on private endpoint or not.
      },
      &quot;enablePublicEndpoint&quot;: True or False, # Controls whether the control plane allows access through a public IP. It is invalid to specify both PrivateClusterConfig.enablePrivateEndpoint and this field at the same time.
      &quot;enabled&quot;: True or False, # Controls whether to allow direct IP access.
      &quot;globalAccess&quot;: True or False, # Controls whether the control plane&#x27;s private endpoint is accessible from sources in other regions. It is invalid to specify both PrivateClusterMasterGlobalAccessConfig.enabled and this field at the same time.
      &quot;privateEndpoint&quot;: &quot;A String&quot;, # Output only. The internal IP address of this cluster&#x27;s control plane. Only populated if enabled.
      &quot;privateEndpointSubnetwork&quot;: &quot;A String&quot;, # Subnet to provision the master&#x27;s private endpoint during cluster creation. Specified in projects/*/regions/*/subnetworks/* format. It is invalid to specify both PrivateClusterConfig.privateEndpointSubnetwork and this field at the same time.
      &quot;publicEndpoint&quot;: &quot;A String&quot;, # Output only. The external IP address of this cluster&#x27;s control plane. Only populated if enabled.
    },
  },
  &quot;costManagementConfig&quot;: { # Configuration for fine-grained cost management feature. # Configuration for the fine-grained cost management feature.
    &quot;enabled&quot;: True or False, # Whether the feature is enabled or not.
  },
  &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time the cluster was created, in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
  &quot;currentMasterVersion&quot;: &quot;A String&quot;, # Output only. The current software version of the master endpoint.
  &quot;currentNodeCount&quot;: 42, # Output only. The number of nodes currently in the cluster. Deprecated. Call Kubernetes API directly to retrieve node information.
  &quot;currentNodeVersion&quot;: &quot;A String&quot;, # Output only. Deprecated, use [NodePools.version](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&#x27;re in the process of being upgraded, this reflects the minimum version of all nodes.
  &quot;databaseEncryption&quot;: { # Configuration of etcd encryption. # Configuration of etcd encryption.
    &quot;currentState&quot;: &quot;A String&quot;, # Output only. The current state of etcd encryption.
    &quot;decryptionKeys&quot;: [ # Output only. Keys in use by the cluster for decrypting existing objects, in addition to the key in `key_name`. Each item is a CloudKMS key resource.
      &quot;A String&quot;,
    ],
    &quot;keyName&quot;: &quot;A String&quot;, # Name of CloudKMS key to use for the encryption of secrets in etcd. Ex. projects/my-project/locations/global/keyRings/my-ring/cryptoKeys/my-key
    &quot;lastOperationErrors&quot;: [ # Output only. Records errors seen during DatabaseEncryption update operations.
      { # OperationError records errors seen from CloudKMS keys encountered during updates to DatabaseEncryption configuration.
        &quot;errorMessage&quot;: &quot;A String&quot;, # Description of the error seen during the operation.
        &quot;keyName&quot;: &quot;A String&quot;, # CloudKMS key resource that had the error.
        &quot;timestamp&quot;: &quot;A String&quot;, # Time when the CloudKMS error was seen.
      },
    ],
    &quot;state&quot;: &quot;A String&quot;, # The desired state of etcd encryption.
  },
  &quot;defaultMaxPodsConstraint&quot;: { # Constraints applied to pods. # 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.
    &quot;maxPodsPerNode&quot;: &quot;A String&quot;, # Constraint enforced on the max num of pods per node.
  },
  &quot;description&quot;: &quot;A String&quot;, # An optional description of this cluster.
  &quot;enableK8sBetaApis&quot;: { # K8sBetaAPIConfig , configuration for beta APIs # Beta APIs Config
    &quot;enabledApis&quot;: [ # Enabled k8s beta APIs.
      &quot;A String&quot;,
    ],
  },
  &quot;enableKubernetesAlpha&quot;: True or False, # Kubernetes alpha features are enabled on this cluster. This includes alpha API groups (e.g. v1alpha1) and features that may not be production ready in the kubernetes version of the master and nodes. The cluster has no SLA for uptime and master/node upgrades are disabled. Alpha enabled clusters are automatically deleted thirty days after creation.
  &quot;enableTpu&quot;: True or False, # Enable the ability to use Cloud TPUs in this cluster. This field is deprecated due to the deprecation of 2VM TPU. The end of life date for 2VM TPU is 2025-04-25.
  &quot;endpoint&quot;: &quot;A String&quot;, # Output only. The IP address of this cluster&#x27;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.
  &quot;enterpriseConfig&quot;: { # EnterpriseConfig is the cluster enterprise configuration. Deprecated: GKE Enterprise features are now available without an Enterprise tier. # GKE Enterprise Configuration. Deprecated: GKE Enterprise features are now available without an Enterprise tier.
    &quot;clusterTier&quot;: &quot;A String&quot;, # Output only. cluster_tier indicates the effective tier of the cluster.
    &quot;desiredTier&quot;: &quot;A String&quot;, # desired_tier specifies the desired tier of the cluster.
  },
  &quot;etag&quot;: &quot;A String&quot;, # This checksum is computed by the server based on the value of cluster fields, and may be sent on update requests to ensure the client has an up-to-date value before proceeding.
  &quot;expireTime&quot;: &quot;A String&quot;, # Output only. The time the cluster will be automatically deleted in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
  &quot;fleet&quot;: { # Fleet is the fleet configuration for the cluster. # Fleet information for the cluster.
    &quot;membership&quot;: &quot;A String&quot;, # Output only. The full resource name of the registered fleet membership of the cluster, in the format `//gkehub.googleapis.com/projects/*/locations/*/memberships/*`.
    &quot;membershipType&quot;: &quot;A String&quot;, # The type of the cluster&#x27;s fleet membership.
    &quot;preRegistered&quot;: True or False, # Output only. Whether the cluster has been registered through the fleet API.
    &quot;project&quot;: &quot;A String&quot;, # The Fleet host project(project ID or project number) where this cluster will be registered to. This field cannot be changed after the cluster has been registered.
  },
  &quot;gkeAutoUpgradeConfig&quot;: { # GkeAutoUpgradeConfig is the configuration for GKE auto upgrades. # Configuration for GKE auto upgrades.
    &quot;patchMode&quot;: &quot;A String&quot;, # PatchMode specifies how auto upgrade patch builds should be selected.
  },
  &quot;id&quot;: &quot;A String&quot;, # Output only. Unique id for the cluster.
  &quot;identityServiceConfig&quot;: { # IdentityServiceConfig is configuration for Identity Service which allows customers to use external identity providers with the K8S API # Configuration for Identity Service component.
    &quot;enabled&quot;: True or False, # Whether to enable the Identity Service component
  },
  &quot;initialClusterVersion&quot;: &quot;A String&quot;, # 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: - &quot;latest&quot;: picks the highest valid Kubernetes version - &quot;1.X&quot;: picks the highest valid patch+gke.N patch in the 1.X version - &quot;1.X.Y&quot;: picks the highest valid gke.N patch in the 1.X.Y version - &quot;1.X.Y-gke.N&quot;: picks an explicit Kubernetes version - &quot;&quot;,&quot;-&quot;: picks the default Kubernetes version
  &quot;initialNodeCount&quot;: 42, # The number of nodes to create in this cluster. You must ensure that your Compute Engine [resource quota](https://cloud.google.com/compute/quotas) is sufficient for this number of instances. You must also have available firewall and routes quota. For requests, this field should only be used in lieu of a &quot;node_pool&quot; object, since this configuration (along with the &quot;node_config&quot;) will be used to create a &quot;NodePool&quot; object with an auto-generated name. Do not use this and a node_pool at the same time. This field is deprecated, use node_pool.initial_node_count instead.
  &quot;instanceGroupUrls&quot;: [ # Output only. Deprecated. Use node_pools.instance_group_urls.
    &quot;A String&quot;,
  ],
  &quot;ipAllocationPolicy&quot;: { # Configuration for controlling how IPs are allocated in the cluster. # Configuration for cluster IP allocation.
    &quot;additionalIpRangesConfigs&quot;: [ # Output only. The additional IP ranges that are added to the cluster. These IP ranges can be used by new node pools to allocate node and pod IPs automatically. Each AdditionalIPRangesConfig corresponds to a single subnetwork. Once a range is removed it will not show up in IPAllocationPolicy.
      { # AdditionalIPRangesConfig is the configuration for individual additional subnetwork attached to the cluster
        &quot;podIpv4RangeNames&quot;: [ # List of secondary ranges names within this subnetwork that can be used for pod IPs. Example1: gke-pod-range1 Example2: gke-pod-range1,gke-pod-range2
          &quot;A String&quot;,
        ],
        &quot;subnetwork&quot;: &quot;A String&quot;, # Name of the subnetwork. This can be the full path of the subnetwork or just the name. Example1: my-subnet Example2: projects/gke-project/regions/us-central1/subnetworks/my-subnet
      },
    ],
    &quot;additionalPodRangesConfig&quot;: { # AdditionalPodRangesConfig is the configuration for additional pod secondary ranges supporting the ClusterUpdate message. # Output only. The additional pod ranges that are added to the cluster. These pod ranges can be used by new node pools to allocate pod IPs automatically. Once the range is removed it will not show up in IPAllocationPolicy.
      &quot;podRangeInfo&quot;: [ # Output only. Information for additional pod range.
        { # RangeInfo contains the range name and the range utilization by this cluster.
          &quot;rangeName&quot;: &quot;A String&quot;, # Output only. Name of a range.
          &quot;utilization&quot;: 3.14, # Output only. The utilization of the range.
        },
      ],
      &quot;podRangeNames&quot;: [ # Name for pod secondary ipv4 range which has the actual range defined ahead.
        &quot;A String&quot;,
      ],
    },
    &quot;autoIpamConfig&quot;: { # AutoIpamConfig contains all information related to Auto IPAM # Optional. AutoIpamConfig contains all information related to Auto IPAM
      &quot;enabled&quot;: True or False, # The flag that enables Auto IPAM on this cluster
    },
    &quot;clusterIpv4Cidr&quot;: &quot;A String&quot;, # This field is deprecated, use cluster_ipv4_cidr_block.
    &quot;clusterIpv4CidrBlock&quot;: &quot;A String&quot;, # The IP address range for the cluster pod IPs. If this field is set, then `cluster.cluster_ipv4_cidr` must be left blank. This field is only applicable when `use_ip_aliases` is true. Set to blank to have a range chosen with the default size. Set to /netmask (e.g. `/14`) to have a range chosen with a specific netmask. Set to a [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing) notation (e.g. `10.96.0.0/14`) from the RFC-1918 private networks (e.g. `10.0.0.0/8`, `172.16.0.0/12`, `192.168.0.0/16`) to pick a specific range to use.
    &quot;clusterSecondaryRangeName&quot;: &quot;A String&quot;, # The name of the secondary range to be used for the cluster CIDR block. The secondary range will be used for pod IP addresses. This must be an existing secondary range associated with the cluster subnetwork. This field is only applicable with use_ip_aliases is true and create_subnetwork is false.
    &quot;createSubnetwork&quot;: True or False, # Whether a new subnetwork will be created automatically for the cluster. This field is only applicable when `use_ip_aliases` is true.
    &quot;defaultPodIpv4RangeUtilization&quot;: 3.14, # Output only. The utilization of the cluster default IPv4 range for the pod. The ratio is Usage/[Total number of IPs in the secondary range], Usage=numNodes*numZones*podIPsPerNode.
    &quot;ipv6AccessType&quot;: &quot;A String&quot;, # The ipv6 access type (internal or external) when create_subnetwork is true
    &quot;networkTierConfig&quot;: { # NetworkTierConfig contains network tier information. # Cluster-level network tier configuration is used to determine the default network tier for external IP addresses on cluster resources, such as node pools and load balancers.
      &quot;networkTier&quot;: &quot;A String&quot;, # Network tier configuration.
    },
    &quot;nodeIpv4Cidr&quot;: &quot;A String&quot;, # This field is deprecated, use node_ipv4_cidr_block.
    &quot;nodeIpv4CidrBlock&quot;: &quot;A String&quot;, # The IP address range of the instance IPs in this cluster. This is applicable only if `create_subnetwork` is true. Set to blank to have a range chosen with the default size. Set to /netmask (e.g. `/14`) to have a range chosen with a specific netmask. Set to a [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing) notation (e.g. `10.96.0.0/14`) from the RFC-1918 private networks (e.g. `10.0.0.0/8`, `172.16.0.0/12`, `192.168.0.0/16`) to pick a specific range to use.
    &quot;podCidrOverprovisionConfig&quot;: { # [PRIVATE FIELD] Config for pod CIDR size overprovisioning. # [PRIVATE FIELD] Pod CIDR size overprovisioning config for the cluster. Pod CIDR size per node depends on max_pods_per_node. By default, the value of max_pods_per_node is doubled and then rounded off to next power of 2 to get the size of pod CIDR block per node. Example: max_pods_per_node of 30 would result in 64 IPs (/26). This config can disable the doubling of IPs (we still round off to next power of 2) Example: max_pods_per_node of 30 will result in 32 IPs (/27) when overprovisioning is disabled.
      &quot;disable&quot;: True or False, # Whether Pod CIDR overprovisioning is disabled. Note: Pod CIDR overprovisioning is enabled by default.
    },
    &quot;servicesIpv4Cidr&quot;: &quot;A String&quot;, # This field is deprecated, use services_ipv4_cidr_block.
    &quot;servicesIpv4CidrBlock&quot;: &quot;A String&quot;, # The IP address range of the services IPs in this cluster. If blank, a range will be automatically chosen with the default size. This field is only applicable when `use_ip_aliases` is true. Set to blank to have a range chosen with the default size. Set to /netmask (e.g. `/14`) to have a range chosen with a specific netmask. Set to a [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing) notation (e.g. `10.96.0.0/14`) from the RFC-1918 private networks (e.g. `10.0.0.0/8`, `172.16.0.0/12`, `192.168.0.0/16`) to pick a specific range to use.
    &quot;servicesIpv6CidrBlock&quot;: &quot;A String&quot;, # Output only. The services IPv6 CIDR block for the cluster.
    &quot;servicesSecondaryRangeName&quot;: &quot;A String&quot;, # The name of the secondary range to be used as for the services CIDR block. The secondary range will be used for service ClusterIPs. This must be an existing secondary range associated with the cluster subnetwork. This field is only applicable with use_ip_aliases is true and create_subnetwork is false.
    &quot;stackType&quot;: &quot;A String&quot;, # The IP stack type of the cluster
    &quot;subnetIpv6CidrBlock&quot;: &quot;A String&quot;, # Output only. The subnet&#x27;s IPv6 CIDR block used by nodes and pods.
    &quot;subnetworkName&quot;: &quot;A String&quot;, # A custom subnetwork name to be used if `create_subnetwork` is true. If this field is empty, then an automatic name will be chosen for the new subnetwork.
    &quot;tpuIpv4CidrBlock&quot;: &quot;A String&quot;, # The IP address range of the Cloud TPUs in this cluster. If unspecified, a range will be automatically chosen with the default size. This field is only applicable when `use_ip_aliases` is true. If unspecified, the range will use the default size. Set to /netmask (e.g. `/14`) to have a range chosen with a specific netmask. Set to a [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing) notation (e.g. `10.96.0.0/14`) from the RFC-1918 private networks (e.g. `10.0.0.0/8`, `172.16.0.0/12`, `192.168.0.0/16`) to pick a specific range to use. This field is deprecated due to the deprecation of 2VM TPU. The end of life date for 2VM TPU is 2025-04-25.
    &quot;useIpAliases&quot;: True or False, # Whether alias IPs will be used for pod IPs in the cluster. This is used in conjunction with use_routes. It cannot be true if use_routes is true. If both use_ip_aliases and use_routes are false, then the server picks the default IP allocation mode
    &quot;useRoutes&quot;: True or False, # 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
  },
  &quot;labelFingerprint&quot;: &quot;A String&quot;, # The fingerprint of the set of labels for this cluster.
  &quot;legacyAbac&quot;: { # Configuration for the legacy Attribute Based Access Control authorization mode. # Configuration for the legacy ABAC authorization mode.
    &quot;enabled&quot;: True or False, # 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.
  },
  &quot;location&quot;: &quot;A String&quot;, # Output only. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/regions-zones/regions-zones#available) or [region](https://cloud.google.com/compute/docs/regions-zones/regions-zones#available) in which the cluster resides.
  &quot;locations&quot;: [ # The list of Google Compute Engine [zones](https://cloud.google.com/compute/docs/zones#available) in which the cluster&#x27;s nodes should be located. This field provides a default value if [NodePool.Locations](https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1/projects.locations.clusters.nodePools#NodePool.FIELDS.locations) are not specified during node pool creation. Warning: changing cluster locations will update the [NodePool.Locations](https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1/projects.locations.clusters.nodePools#NodePool.FIELDS.locations) of all node pools and will result in nodes being added and/or removed.
    &quot;A String&quot;,
  ],
  &quot;loggingConfig&quot;: { # LoggingConfig is cluster logging configuration. # Logging configuration for the cluster.
    &quot;componentConfig&quot;: { # LoggingComponentConfig is cluster logging component configuration. # Logging components configuration
      &quot;enableComponents&quot;: [ # Select components to collect logs. An empty set would disable all logging.
        &quot;A String&quot;,
      ],
    },
  },
  &quot;loggingService&quot;: &quot;A String&quot;, # The logging service the cluster should use to write logs. Currently available options: * `logging.googleapis.com/kubernetes` - The Cloud Logging service with a Kubernetes-native resource model * `logging.googleapis.com` - The legacy Cloud Logging service (no longer available as of GKE 1.15). * `none` - no logs will be exported from the cluster. If left as an empty string,`logging.googleapis.com/kubernetes` will be used for GKE 1.14+ or `logging.googleapis.com` for earlier versions.
  &quot;maintenancePolicy&quot;: { # MaintenancePolicy defines the maintenance policy to be used for the cluster. # Configure the maintenance policy for this cluster.
    &quot;resourceVersion&quot;: &quot;A String&quot;, # A hash identifying the version of this policy, so that updates to fields of the policy won&#x27;t accidentally undo intermediate changes (and so that users of the API unaware of some fields won&#x27;t accidentally remove other fields). Make a `get()` request to the cluster to get the current resource version and include it with requests to set the policy.
    &quot;window&quot;: { # MaintenanceWindow defines the maintenance window to be used for the cluster. # Specifies the maintenance window in which maintenance may be performed.
      &quot;dailyMaintenanceWindow&quot;: { # Time window specified for daily maintenance operations. # DailyMaintenanceWindow specifies a daily maintenance operation window.
        &quot;duration&quot;: &quot;A String&quot;, # Output only. Duration of the time window, automatically chosen to be smallest possible in the given scenario. Duration will be in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) format &quot;PTnHnMnS&quot;.
        &quot;startTime&quot;: &quot;A String&quot;, # Time within the maintenance window to start the maintenance operations. Time format should be in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) format &quot;HH:MM&quot;, where HH : [00-23] and MM : [00-59] GMT.
      },
      &quot;maintenanceExclusions&quot;: { # Exceptions to maintenance window. Non-emergency maintenance should not occur in these windows.
        &quot;a_key&quot;: { # Represents an arbitrary window of time.
          &quot;endTime&quot;: &quot;A String&quot;, # The time that the window ends. The end time should take place after the start time.
          &quot;maintenanceExclusionOptions&quot;: { # Represents the Maintenance exclusion option. # MaintenanceExclusionOptions provides maintenance exclusion related options.
            &quot;endTimeBehavior&quot;: &quot;A String&quot;, # EndTimeBehavior specifies the behavior of the exclusion end time.
            &quot;scope&quot;: &quot;A String&quot;, # Scope specifies the upgrade scope which upgrades are blocked by the exclusion.
          },
          &quot;startTime&quot;: &quot;A String&quot;, # The time that the window first starts.
        },
      },
      &quot;recurringWindow&quot;: { # Represents an arbitrary window of time that recurs. # RecurringWindow specifies some number of recurring time periods for maintenance to occur. The time windows may be overlapping. If no maintenance windows are set, maintenance can occur at any time.
        &quot;recurrence&quot;: &quot;A String&quot;, # An RRULE (https://tools.ietf.org/html/rfc5545#section-3.8.5.3) for how this window reccurs. They go on for the span of time between the start and end time. For example, to have something repeat every weekday, you&#x27;d use: `FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR` To repeat some window daily (equivalent to the DailyMaintenanceWindow): `FREQ=DAILY` For the first weekend of every month: `FREQ=MONTHLY;BYSETPOS=1;BYDAY=SA,SU` This specifies how frequently the window starts. Eg, if you wanted to have a 9-5 UTC-4 window every weekday, you&#x27;d use something like: ``` start time = 2019-01-01T09:00:00-0400 end time = 2019-01-01T17:00:00-0400 recurrence = FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR ``` Windows can span multiple days. Eg, to make the window encompass every weekend from midnight Saturday till the last minute of Sunday UTC: ``` start time = 2019-01-05T00:00:00Z end time = 2019-01-07T23:59:00Z recurrence = FREQ=WEEKLY;BYDAY=SA ``` Note the start and end time&#x27;s specific dates are largely arbitrary except to specify duration of the window and when it first starts. The FREQ values of HOURLY, MINUTELY, and SECONDLY are not supported.
        &quot;window&quot;: { # Represents an arbitrary window of time. # The window of the first recurrence.
          &quot;endTime&quot;: &quot;A String&quot;, # The time that the window ends. The end time should take place after the start time.
          &quot;maintenanceExclusionOptions&quot;: { # Represents the Maintenance exclusion option. # MaintenanceExclusionOptions provides maintenance exclusion related options.
            &quot;endTimeBehavior&quot;: &quot;A String&quot;, # EndTimeBehavior specifies the behavior of the exclusion end time.
            &quot;scope&quot;: &quot;A String&quot;, # Scope specifies the upgrade scope which upgrades are blocked by the exclusion.
          },
          &quot;startTime&quot;: &quot;A String&quot;, # The time that the window first starts.
        },
      },
    },
  },
  &quot;masterAuth&quot;: { # The authentication information for accessing the master endpoint. Authentication can be done using HTTP basic auth or using client certificates. # The authentication information for accessing the master endpoint. If unspecified, the defaults are used: For clusters before v1.12, if master_auth is unspecified, `username` will be set to &quot;admin&quot;, a random password will be generated, and a client certificate will be issued.
    &quot;clientCertificate&quot;: &quot;A String&quot;, # Output only. Base64-encoded public certificate used by clients to authenticate to the cluster endpoint. Issued only if client_certificate_config is set.
    &quot;clientCertificateConfig&quot;: { # Configuration for client certificates on the cluster. # Configuration for client certificate authentication on the cluster. For clusters before v1.12, if no configuration is specified, a client certificate is issued.
      &quot;issueClientCertificate&quot;: True or False, # Issue a client certificate.
    },
    &quot;clientKey&quot;: &quot;A String&quot;, # Output only. Base64-encoded private key used by clients to authenticate to the cluster endpoint.
    &quot;clusterCaCertificate&quot;: &quot;A String&quot;, # Output only. Base64-encoded public certificate that is the root of trust for the cluster.
    &quot;password&quot;: &quot;A String&quot;, # The password to use for HTTP basic authentication to the master endpoint. Because the master endpoint is open to the Internet, you should create a strong password. If a password is provided for cluster creation, username must be non-empty. Warning: basic authentication is deprecated, and will be removed in GKE control plane versions 1.19 and newer. For a list of recommended authentication methods, see: https://cloud.google.com/kubernetes-engine/docs/how-to/api-server-authentication
    &quot;username&quot;: &quot;A String&quot;, # The username to use for HTTP basic authentication to the master endpoint. For clusters v1.6.0 and later, basic authentication can be disabled by leaving username unspecified (or setting it to the empty string). Warning: basic authentication is deprecated, and will be removed in GKE control plane versions 1.19 and newer. For a list of recommended authentication methods, see: https://cloud.google.com/kubernetes-engine/docs/how-to/api-server-authentication
  },
  &quot;masterAuthorizedNetworksConfig&quot;: { # Configuration options for the master authorized networks feature. Enabled master authorized networks will disallow all external traffic to access Kubernetes master through HTTPS except traffic from the given CIDR blocks, Google Compute Engine Public IPs and Google Prod IPs. # The configuration options for master authorized networks feature. Deprecated: Use ControlPlaneEndpointsConfig.IPEndpointsConfig.authorized_networks_config instead.
    &quot;cidrBlocks&quot;: [ # cidr_blocks define up to 50 external networks that could access Kubernetes master through HTTPS.
      { # CidrBlock contains an optional name and one CIDR block.
        &quot;cidrBlock&quot;: &quot;A String&quot;, # cidr_block must be specified in CIDR notation.
        &quot;displayName&quot;: &quot;A String&quot;, # display_name is an optional field for users to identify CIDR blocks.
      },
    ],
    &quot;enabled&quot;: True or False, # Whether or not master authorized networks is enabled.
    &quot;gcpPublicCidrsAccessEnabled&quot;: True or False, # Whether master is accessible via Google Compute Engine Public IP addresses.
    &quot;privateEndpointEnforcementEnabled&quot;: True or False, # Whether master authorized networks is enforced on private endpoint or not.
  },
  &quot;meshCertificates&quot;: { # Configuration for issuance of mTLS keys and certificates to Kubernetes pods. # Configuration for issuance of mTLS keys and certificates to Kubernetes pods.
    &quot;enableCertificates&quot;: True or False, # enable_certificates controls issuance of workload mTLS certificates. If set, the GKE Workload Identity Certificates controller and node agent will be deployed in the cluster, which can then be configured by creating a WorkloadCertificateConfig Custom Resource. Requires Workload Identity (workload_pool must be non-empty).
  },
  &quot;monitoringConfig&quot;: { # MonitoringConfig is cluster monitoring configuration. # Monitoring configuration for the cluster.
    &quot;advancedDatapathObservabilityConfig&quot;: { # AdvancedDatapathObservabilityConfig specifies configuration of observability features of advanced datapath. # Configuration of Advanced Datapath Observability features.
      &quot;enableMetrics&quot;: True or False, # Expose flow metrics on nodes
      &quot;enableRelay&quot;: True or False, # Enable Relay component
      &quot;relayMode&quot;: &quot;A String&quot;, # Method used to make Relay available
    },
    &quot;componentConfig&quot;: { # MonitoringComponentConfig is cluster monitoring component configuration. # Monitoring components configuration
      &quot;enableComponents&quot;: [ # Select components to collect metrics. An empty set would disable all monitoring.
        &quot;A String&quot;,
      ],
    },
    &quot;managedPrometheusConfig&quot;: { # ManagedPrometheusConfig defines the configuration for Google Cloud Managed Service for Prometheus. # Enable Google Cloud Managed Service for Prometheus in the cluster.
      &quot;autoMonitoringConfig&quot;: { # AutoMonitoringConfig defines the configuration for GKE Workload Auto-Monitoring. # GKE Workload Auto-Monitoring Configuration.
        &quot;scope&quot;: &quot;A String&quot;, # Scope for GKE Workload Auto-Monitoring.
      },
      &quot;enabled&quot;: True or False, # Enable Managed Collection.
    },
  },
  &quot;monitoringService&quot;: &quot;A String&quot;, # The monitoring service the cluster should use to write metrics. Currently available options: * `monitoring.googleapis.com/kubernetes` - The Cloud Monitoring service with a Kubernetes-native resource model * `monitoring.googleapis.com` - The legacy Cloud Monitoring service (no longer available as of GKE 1.15). * `none` - No metrics will be exported from the cluster. If left as an empty string,`monitoring.googleapis.com/kubernetes` will be used for GKE 1.14+ or `monitoring.googleapis.com` for earlier versions.
  &quot;name&quot;: &quot;A String&quot;, # The name of this cluster. The name must be unique within this project and location (e.g. zone or region), and can be up to 40 characters with the following restrictions: * Lowercase letters, numbers, and hyphens only. * Must start with a letter. * Must end with a number or a letter.
  &quot;network&quot;: &quot;A String&quot;, # The name of the Google Compute Engine [network](https://cloud.google.com/compute/docs/networks-and-firewalls#networks) to which the cluster is connected. If left unspecified, the `default` network will be used.
  &quot;networkConfig&quot;: { # NetworkConfig reports the relative names of network &amp; subnetwork. # Configuration for cluster networking.
    &quot;datapathProvider&quot;: &quot;A String&quot;, # The desired datapath provider for this cluster. By default, uses the IPTables-based kube-proxy implementation.
    &quot;defaultEnablePrivateNodes&quot;: True or False, # Controls whether by default nodes have private IP addresses only. It is invalid to specify both PrivateClusterConfig.enablePrivateNodes and this field at the same time. To update the default setting, use ClusterUpdate.desired_default_enable_private_nodes
    &quot;defaultSnatStatus&quot;: { # DefaultSnatStatus contains the desired state of whether default sNAT should be disabled on the cluster. # 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.
      &quot;disabled&quot;: True or False, # Disables cluster default sNAT rules.
    },
    &quot;disableL4LbFirewallReconciliation&quot;: True or False, # Disable L4 load balancer VPC firewalls to enable firewall policies.
    &quot;dnsConfig&quot;: { # DNSConfig contains the desired set of options for configuring clusterDNS. # DNSConfig contains clusterDNS config for this cluster.
      &quot;additiveVpcScopeDnsDomain&quot;: &quot;A String&quot;, # Optional. The domain used in Additive VPC scope.
      &quot;clusterDns&quot;: &quot;A String&quot;, # cluster_dns indicates which in-cluster DNS provider should be used.
      &quot;clusterDnsDomain&quot;: &quot;A String&quot;, # cluster_dns_domain is the suffix used for all cluster service records.
      &quot;clusterDnsScope&quot;: &quot;A String&quot;, # cluster_dns_scope indicates the scope of access to cluster DNS records.
    },
    &quot;enableCiliumClusterwideNetworkPolicy&quot;: True or False, # Whether CiliumClusterwideNetworkPolicy is enabled on this cluster.
    &quot;enableFqdnNetworkPolicy&quot;: True or False, # Whether FQDN Network Policy is enabled on this cluster.
    &quot;enableIntraNodeVisibility&quot;: True or False, # Whether Intra-node visibility is enabled for this cluster. This makes same node pod to pod traffic visible for VPC network.
    &quot;enableL4ilbSubsetting&quot;: True or False, # Whether L4ILB Subsetting is enabled for this cluster.
    &quot;enableMultiNetworking&quot;: True or False, # Whether multi-networking is enabled for this cluster.
    &quot;gatewayApiConfig&quot;: { # GatewayAPIConfig contains the desired config of Gateway API on this cluster. # GatewayAPIConfig contains the desired config of Gateway API on this cluster.
      &quot;channel&quot;: &quot;A String&quot;, # The Gateway API release channel to use for Gateway API.
    },
    &quot;inTransitEncryptionConfig&quot;: &quot;A String&quot;, # Specify the details of in-transit encryption. Now named inter-node transparent encryption.
    &quot;network&quot;: &quot;A String&quot;, # Output only. The relative name of the Google Compute Engine [network](https://cloud.google.com/compute/docs/networks-and-firewalls#networks) to which the cluster is connected. Example: projects/my-project/global/networks/my-network
    &quot;networkPerformanceConfig&quot;: { # Configuration of network bandwidth tiers # Network bandwidth tier configuration.
      &quot;totalEgressBandwidthTier&quot;: &quot;A String&quot;, # Specifies the total network bandwidth tier for NodePools in the cluster.
    },
    &quot;privateIpv6GoogleAccess&quot;: &quot;A String&quot;, # 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)
    &quot;serviceExternalIpsConfig&quot;: { # Config to block services with externalIPs field. # ServiceExternalIPsConfig specifies if services with externalIPs field are blocked or not.
      &quot;enabled&quot;: True or False, # Whether Services with ExternalIPs field are allowed or not.
    },
    &quot;subnetwork&quot;: &quot;A String&quot;, # Output only. The relative name of the Google Compute Engine [subnetwork](https://cloud.google.com/compute/docs/vpc) to which the cluster is connected. Example: projects/my-project/regions/us-central1/subnetworks/my-subnet
  },
  &quot;networkPolicy&quot;: { # Configuration options for the NetworkPolicy feature. https://kubernetes.io/docs/concepts/services-networking/networkpolicies/ # Configuration options for the NetworkPolicy feature.
    &quot;enabled&quot;: True or False, # Whether network policy is enabled on the cluster.
    &quot;provider&quot;: &quot;A String&quot;, # The selected network policy provider.
  },
  &quot;nodeConfig&quot;: { # Parameters that describe the nodes in a cluster. GKE Autopilot clusters do not recognize parameters in `NodeConfig`. Use AutoprovisioningNodePoolDefaults instead. # Parameters used in creating the cluster&#x27;s nodes. For requests, this field should only be used in lieu of a &quot;node_pool&quot; object, since this configuration (along with the &quot;initial_node_count&quot;) will be used to create a &quot;NodePool&quot; object with an auto-generated name. Do not use this and a node_pool at the same time. For responses, this field will be populated with the node configuration of the first node pool. (For configuration of each node pool, see `node_pool.config`) If unspecified, the defaults are used. This field is deprecated, use node_pool.config instead.
    &quot;accelerators&quot;: [ # 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.
      { # AcceleratorConfig represents a Hardware Accelerator request.
        &quot;acceleratorCount&quot;: &quot;A String&quot;, # The number of the accelerator cards exposed to an instance.
        &quot;acceleratorType&quot;: &quot;A String&quot;, # The accelerator type resource name. List of supported accelerators [here](https://cloud.google.com/compute/docs/gpus)
        &quot;gpuDriverInstallationConfig&quot;: { # GPUDriverInstallationConfig specifies the version of GPU driver to be auto installed. # The configuration for auto installation of GPU driver.
          &quot;gpuDriverVersion&quot;: &quot;A String&quot;, # Mode for how the GPU driver is installed.
        },
        &quot;gpuPartitionSize&quot;: &quot;A String&quot;, # Size of partitions to create on the GPU. Valid values are described in the NVIDIA [mig user guide](https://docs.nvidia.com/datacenter/tesla/mig-user-guide/#partitioning).
        &quot;gpuSharingConfig&quot;: { # GPUSharingConfig represents the GPU sharing configuration for Hardware Accelerators. # The configuration for GPU sharing options.
          &quot;gpuSharingStrategy&quot;: &quot;A String&quot;, # The type of GPU sharing strategy to enable on the GPU node.
          &quot;maxSharedClientsPerGpu&quot;: &quot;A String&quot;, # The max number of containers that can share a physical GPU.
        },
      },
    ],
    &quot;advancedMachineFeatures&quot;: { # Specifies options for controlling advanced machine features. # Advanced features for the Compute Engine VM.
      &quot;enableNestedVirtualization&quot;: True or False, # Whether or not to enable nested virtualization (defaults to false).
      &quot;performanceMonitoringUnit&quot;: &quot;A String&quot;, # Type of Performance Monitoring Unit (PMU) requested on node pool instances. If unset, PMU will not be available to the node.
      &quot;threadsPerCore&quot;: &quot;A String&quot;, # The number of threads per physical core. To disable simultaneous multithreading (SMT) set this to 1. If unset, the maximum number of threads supported per core by the underlying processor is assumed.
    },
    &quot;bootDisk&quot;: { # BootDisk specifies the boot disk configuration for nodepools. # The boot disk configuration for the node pool.
      &quot;diskType&quot;: &quot;A String&quot;, # Disk type of the boot disk. (i.e. Hyperdisk-Balanced, PD-Balanced, etc.)
      &quot;provisionedIops&quot;: &quot;A String&quot;, # For Hyperdisk-Balanced only, the provisioned IOPS config value.
      &quot;provisionedThroughput&quot;: &quot;A String&quot;, # For Hyperdisk-Balanced only, the provisioned throughput config value.
      &quot;sizeGb&quot;: &quot;A String&quot;, # Disk size in GB. Replaces NodeConfig.disk_size_gb
    },
    &quot;bootDiskKmsKey&quot;: &quot;A String&quot;, #  The Customer Managed Encryption Key used to encrypt the boot disk attached to each node in the node pool. This should be of the form projects/[KEY_PROJECT_ID]/locations/[LOCATION]/keyRings/[RING_NAME]/cryptoKeys/[KEY_NAME]. For more information about protecting resources with Cloud KMS Keys please see: https://cloud.google.com/compute/docs/disks/customer-managed-encryption
    &quot;confidentialNodes&quot;: { # ConfidentialNodes is configuration for the confidential nodes feature, which makes nodes run on confidential VMs. # Confidential nodes config. All the nodes in the node pool will be Confidential VM once enabled.
      &quot;confidentialInstanceType&quot;: &quot;A String&quot;, # Defines the type of technology used by the confidential node.
      &quot;enabled&quot;: True or False, # Whether Confidential Nodes feature is enabled.
    },
    &quot;containerdConfig&quot;: { # ContainerdConfig contains configuration to customize containerd. # Parameters for containerd customization.
      &quot;privateRegistryAccessConfig&quot;: { # PrivateRegistryAccessConfig contains access configuration for private container registries. # PrivateRegistryAccessConfig is used to configure access configuration for private container registries.
        &quot;certificateAuthorityDomainConfig&quot;: [ # Private registry access configuration.
          { # CertificateAuthorityDomainConfig configures one or more fully qualified domain names (FQDN) to a specific certificate.
            &quot;fqdns&quot;: [ # List of fully qualified domain names (FQDN). Specifying port is supported. Wildcards are NOT supported. Examples: - my.customdomain.com - 10.0.1.2:5000
              &quot;A String&quot;,
            ],
            &quot;gcpSecretManagerCertificateConfig&quot;: { # GCPSecretManagerCertificateConfig configures a secret from [Secret Manager](https://cloud.google.com/secret-manager). # Google Secret Manager (GCP) certificate configuration.
              &quot;secretUri&quot;: &quot;A String&quot;, # Secret URI, in the form &quot;projects/$PROJECT_ID/secrets/$SECRET_NAME/versions/$VERSION&quot;. Version can be fixed (e.g. &quot;2&quot;) or &quot;latest&quot;
            },
          },
        ],
        &quot;enabled&quot;: True or False, # Private registry access is enabled.
      },
      &quot;writableCgroups&quot;: { # Defines writable cgroups configuration. # Optional. WritableCgroups defines writable cgroups configuration for the node pool.
        &quot;enabled&quot;: True or False, # Optional. Whether writable cgroups is enabled.
      },
    },
    &quot;diskSizeGb&quot;: 42, # 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.
    &quot;diskType&quot;: &quot;A String&quot;, # Type of the disk attached to each node (e.g. &#x27;pd-standard&#x27;, &#x27;pd-ssd&#x27; or &#x27;pd-balanced&#x27;) If unspecified, the default disk type is &#x27;pd-standard&#x27;
    &quot;effectiveCgroupMode&quot;: &quot;A String&quot;, # Output only. effective_cgroup_mode is the cgroup mode actually used by the node pool. It is determined by the cgroup mode specified in the LinuxNodeConfig or the default cgroup mode based on the cluster creation version.
    &quot;enableConfidentialStorage&quot;: True or False, # Optional. Reserved for future use.
    &quot;ephemeralStorageLocalSsdConfig&quot;: { # EphemeralStorageLocalSsdConfig contains configuration for the node ephemeral storage using Local SSDs. # Parameters for the node ephemeral storage using Local SSDs. If unspecified, ephemeral storage is backed by the boot disk.
      &quot;dataCacheCount&quot;: 42, # Number of local SSDs to use for GKE Data Cache.
      &quot;localSsdCount&quot;: 42, # Number of local SSDs to use to back ephemeral storage. Uses NVMe interfaces. A zero (or unset) value has different meanings depending on machine type being used: 1. For pre-Gen3 machines, which support flexible numbers of local ssds, zero (or unset) means to disable using local SSDs as ephemeral storage. The limit for this value is dependent upon the maximum number of disk available on a machine per zone. See: https://cloud.google.com/compute/docs/disks/local-ssd for more information. 2. For Gen3 machines which dictate a specific number of local ssds, zero (or unset) means to use the default number of local ssds that goes with that machine type. For example, for a c3-standard-8-lssd machine, 2 local ssds would be provisioned. For c3-standard-8 (which doesn&#x27;t support local ssds), 0 will be provisioned. See https://cloud.google.com/compute/docs/disks/local-ssd#choose_number_local_ssds for more info.
    },
    &quot;fastSocket&quot;: { # Configuration of Fast Socket feature. # Enable or disable NCCL fast socket for the node pool.
      &quot;enabled&quot;: True or False, # Whether Fast Socket features are enabled in the node pool.
    },
    &quot;flexStart&quot;: True or False, # Flex Start flag for enabling Flex Start VM.
    &quot;gcfsConfig&quot;: { # GcfsConfig contains configurations of Google Container File System (image streaming). # Google Container File System (image streaming) configs.
      &quot;enabled&quot;: True or False, # Whether to use GCFS.
    },
    &quot;gvnic&quot;: { # Configuration of gVNIC feature. # Enable or disable gvnic in the node pool.
      &quot;enabled&quot;: True or False, # Whether gVNIC features are enabled in the node pool.
    },
    &quot;imageType&quot;: &quot;A String&quot;, # The image type to use for this node. Note that for a given image type, the latest version of it will be used. Please see https://cloud.google.com/kubernetes-engine/docs/concepts/node-images for available image types.
    &quot;kubeletConfig&quot;: { # Node kubelet configs. # Node kubelet configs.
      &quot;allowedUnsafeSysctls&quot;: [ # Optional. Defines a comma-separated allowlist of unsafe sysctls or sysctl patterns (ending in `*`). The unsafe namespaced sysctl groups are `kernel.shm*`, `kernel.msg*`, `kernel.sem`, `fs.mqueue.*`, and `net.*`. Leaving this allowlist empty means they cannot be set on Pods. To allow certain sysctls or sysctl patterns to be set on Pods, list them separated by commas. For example: `kernel.msg*,net.ipv4.route.min_pmtu`. See https://kubernetes.io/docs/tasks/administer-cluster/sysctl-cluster/ for more details.
        &quot;A String&quot;,
      ],
      &quot;containerLogMaxFiles&quot;: 42, # Optional. Defines the maximum number of container log files that can be present for a container. See https://kubernetes.io/docs/concepts/cluster-administration/logging/#log-rotation The value must be an integer between 2 and 10, inclusive. The default value is 5 if unspecified.
      &quot;containerLogMaxSize&quot;: &quot;A String&quot;, # Optional. Defines the maximum size of the container log file before it is rotated. See https://kubernetes.io/docs/concepts/cluster-administration/logging/#log-rotation Valid format is positive number + unit, e.g. 100Ki, 10Mi. Valid units are Ki, Mi, Gi. The value must be between 10Mi and 500Mi, inclusive. Note that the total container log size (container_log_max_size * container_log_max_files) cannot exceed 1% of the total storage of the node, to avoid disk pressure caused by log files. The default value is 10Mi if unspecified.
      &quot;cpuCfsQuota&quot;: True or False, # 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 &#x27;true&#x27; if unspecified.
      &quot;cpuCfsQuotaPeriod&quot;: &quot;A String&quot;, # Set the CPU CFS quota period value &#x27;cpu.cfs_period_us&#x27;. The string must be a sequence of decimal numbers, each with optional fraction and a unit suffix, such as &quot;300ms&quot;. Valid time units are &quot;ns&quot;, &quot;us&quot; (or &quot;µs&quot;), &quot;ms&quot;, &quot;s&quot;, &quot;m&quot;, &quot;h&quot;. The value must be a positive duration between 1ms and 1 second, inclusive.
      &quot;cpuManagerPolicy&quot;: &quot;A String&quot;, # Control the CPU management policy on the node. See https://kubernetes.io/docs/tasks/administer-cluster/cpu-management-policies/ The following values are allowed. * &quot;none&quot;: the default, which represents the existing scheduling behavior. * &quot;static&quot;: allows pods with certain resource characteristics to be granted increased CPU affinity and exclusivity on the node. The default value is &#x27;none&#x27; if unspecified.
      &quot;evictionMaxPodGracePeriodSeconds&quot;: 42, # Optional. eviction_max_pod_grace_period_seconds is the maximum allowed grace period (in seconds) to use when terminating pods in response to a soft eviction threshold being met. This value effectively caps the Pod&#x27;s terminationGracePeriodSeconds value during soft evictions. Default: 0. Range: [0, 300].
      &quot;evictionMinimumReclaim&quot;: { # Eviction minimum reclaims are the resource amounts of minimum reclaims for each eviction signal. # Optional. eviction_minimum_reclaim is a map of signal names to quantities that defines minimum reclaims, which describe the minimum amount of a given resource the kubelet will reclaim when performing a pod eviction while that resource is under pressure.
        &quot;imagefsAvailable&quot;: &quot;A String&quot;, # Optional. Minimum reclaim for eviction due to imagefs available signal. Only take percentage value for now. Sample format: &quot;10%&quot;. Must be &lt;=10%. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
        &quot;imagefsInodesFree&quot;: &quot;A String&quot;, # Optional. Minimum reclaim for eviction due to imagefs inodes free signal. Only take percentage value for now. Sample format: &quot;10%&quot;. Must be &lt;=10%. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
        &quot;memoryAvailable&quot;: &quot;A String&quot;, # Optional. Minimum reclaim for eviction due to memory available signal. Only take percentage value for now. Sample format: &quot;10%&quot;. Must be &lt;=10%. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
        &quot;nodefsAvailable&quot;: &quot;A String&quot;, # Optional. Minimum reclaim for eviction due to nodefs available signal. Only take percentage value for now. Sample format: &quot;10%&quot;. Must be &lt;=10%. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
        &quot;nodefsInodesFree&quot;: &quot;A String&quot;, # Optional. Minimum reclaim for eviction due to nodefs inodes free signal. Only take percentage value for now. Sample format: &quot;10%&quot;. Must be &lt;=10%. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
        &quot;pidAvailable&quot;: &quot;A String&quot;, # Optional. Minimum reclaim for eviction due to pid available signal. Only take percentage value for now. Sample format: &quot;10%&quot;. Must be &lt;=10%. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
      },
      &quot;evictionSoft&quot;: { # Eviction signals are the current state of a particular resource at a specific point in time. The kubelet uses eviction signals to make eviction decisions by comparing the signals to eviction thresholds, which are the minimum amount of the resource that should be available on the node. # Optional. eviction_soft is a map of signal names to quantities that defines soft eviction thresholds. Each signal is compared to its corresponding threshold to determine if a pod eviction should occur.
        &quot;imagefsAvailable&quot;: &quot;A String&quot;, # Optional. Amount of storage available on filesystem that container runtime uses for storing images layers. If the container filesystem and image filesystem are not separate, then imagefs can store both image layers and writeable layers. Defines the amount of &quot;imagefs.available&quot; signal in kubelet. Default is unset, if not specified in the kubelet config. It takses percentage value for now. Sample format: &quot;30%&quot;. Must be &gt;= 15% and &lt;= 50%. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
        &quot;imagefsInodesFree&quot;: &quot;A String&quot;, # Optional. Amount of inodes available on filesystem that container runtime uses for storing images layers. Defines the amount of &quot;imagefs.inodesFree&quot; signal in kubelet. Default is unset, if not specified in the kubelet config. Linux only. It takses percentage value for now. Sample format: &quot;30%&quot;. Must be &gt;= 5% and &lt;= 50%. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
        &quot;memoryAvailable&quot;: &quot;A String&quot;, # Optional. Memory available (i.e. capacity - workingSet), in bytes. Defines the amount of &quot;memory.available&quot; signal in kubelet. Default is unset, if not specified in the kubelet config. Format: positive number + unit, e.g. 100Ki, 10Mi, 5Gi. Valid units are Ki, Mi, Gi. Must be &gt;= 100Mi and &lt;= 50% of the node&#x27;s memory. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
        &quot;nodefsAvailable&quot;: &quot;A String&quot;, # Optional. Amount of storage available on filesystem that kubelet uses for volumes, daemon logs, etc. Defines the amount of &quot;nodefs.available&quot; signal in kubelet. Default is unset, if not specified in the kubelet config. It takses percentage value for now. Sample format: &quot;30%&quot;. Must be &gt;= 10% and &lt;= 50%. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
        &quot;nodefsInodesFree&quot;: &quot;A String&quot;, # Optional. Amount of inodes available on filesystem that kubelet uses for volumes, daemon logs, etc. Defines the amount of &quot;nodefs.inodesFree&quot; signal in kubelet. Default is unset, if not specified in the kubelet config. Linux only. It takses percentage value for now. Sample format: &quot;30%&quot;. Must be &gt;= 5% and &lt;= 50%. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
        &quot;pidAvailable&quot;: &quot;A String&quot;, # Optional. Amount of PID available for pod allocation. Defines the amount of &quot;pid.available&quot; signal in kubelet. Default is unset, if not specified in the kubelet config. It takses percentage value for now. Sample format: &quot;30%&quot;. Must be &gt;= 10% and &lt;= 50%. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
      },
      &quot;evictionSoftGracePeriod&quot;: { # Eviction grace periods are grace periods for each eviction signal. # Optional. eviction_soft_grace_period is a map of signal names to quantities that defines grace periods for each soft eviction signal. The grace period is the amount of time that a pod must be under pressure before an eviction occurs.
        &quot;imagefsAvailable&quot;: &quot;A String&quot;, # Optional. Grace period for eviction due to imagefs available signal. Sample format: &quot;10s&quot;. Must be &gt;= 0. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
        &quot;imagefsInodesFree&quot;: &quot;A String&quot;, # Optional. Grace period for eviction due to imagefs inodes free signal. Sample format: &quot;10s&quot;. Must be &gt;= 0. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
        &quot;memoryAvailable&quot;: &quot;A String&quot;, # Optional. Grace period for eviction due to memory available signal. Sample format: &quot;10s&quot;. Must be &gt;= 0. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
        &quot;nodefsAvailable&quot;: &quot;A String&quot;, # Optional. Grace period for eviction due to nodefs available signal. Sample format: &quot;10s&quot;. Must be &gt;= 0. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
        &quot;nodefsInodesFree&quot;: &quot;A String&quot;, # Optional. Grace period for eviction due to nodefs inodes free signal. Sample format: &quot;10s&quot;. Must be &gt;= 0. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
        &quot;pidAvailable&quot;: &quot;A String&quot;, # Optional. Grace period for eviction due to pid available signal. Sample format: &quot;10s&quot;. Must be &gt;= 0. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
      },
      &quot;imageGcHighThresholdPercent&quot;: 42, # Optional. Defines the percent of disk usage after which image garbage collection is always run. The percent is calculated as this field value out of 100. The value must be between 10 and 85, inclusive and greater than image_gc_low_threshold_percent. The default value is 85 if unspecified.
      &quot;imageGcLowThresholdPercent&quot;: 42, # Optional. Defines the percent of disk usage before which image garbage collection is never run. Lowest disk usage to garbage collect to. The percent is calculated as this field value out of 100. The value must be between 10 and 85, inclusive and smaller than image_gc_high_threshold_percent. The default value is 80 if unspecified.
      &quot;imageMaximumGcAge&quot;: &quot;A String&quot;, # Optional. Defines the maximum age an image can be unused before it is garbage collected. The string must be a sequence of decimal numbers, each with optional fraction and a unit suffix, such as &quot;300s&quot;, &quot;1.5h&quot;, and &quot;2h45m&quot;. Valid time units are &quot;ns&quot;, &quot;us&quot; (or &quot;µs&quot;), &quot;ms&quot;, &quot;s&quot;, &quot;m&quot;, &quot;h&quot;. The value must be a positive duration greater than image_minimum_gc_age or &quot;0s&quot;. The default value is &quot;0s&quot; if unspecified, which disables this field, meaning images won&#x27;t be garbage collected based on being unused for too long.
      &quot;imageMinimumGcAge&quot;: &quot;A String&quot;, # Optional. Defines the minimum age for an unused image before it is garbage collected. The string must be a sequence of decimal numbers, each with optional fraction and a unit suffix, such as &quot;300s&quot;, &quot;1.5h&quot;, and &quot;2h45m&quot;. Valid time units are &quot;ns&quot;, &quot;us&quot; (or &quot;µs&quot;), &quot;ms&quot;, &quot;s&quot;, &quot;m&quot;, &quot;h&quot;. The value must be a positive duration less than or equal to 2 minutes. The default value is &quot;2m0s&quot; if unspecified.
      &quot;insecureKubeletReadonlyPortEnabled&quot;: True or False, # Enable or disable Kubelet read only port.
      &quot;maxParallelImagePulls&quot;: 42, # Optional. Defines the maximum number of image pulls in parallel. The range is 2 to 5, inclusive. The default value is 2 or 3 depending on the disk type. See https://kubernetes.io/docs/concepts/containers/images/#maximum-parallel-image-pulls for more details.
      &quot;memoryManager&quot;: { # The option enables the Kubernetes NUMA-aware Memory Manager feature. Detailed description about the feature can be found [here](https://kubernetes.io/docs/tasks/administer-cluster/memory-manager/). # Optional. Controls NUMA-aware Memory Manager configuration on the node. For more information, see: https://kubernetes.io/docs/tasks/administer-cluster/memory-manager/
        &quot;policy&quot;: &quot;A String&quot;, # Controls the memory management policy on the Node. See https://kubernetes.io/docs/tasks/administer-cluster/memory-manager/#policies The following values are allowed. * &quot;none&quot; * &quot;static&quot; The default value is &#x27;none&#x27; if unspecified.
      },
      &quot;podPidsLimit&quot;: &quot;A String&quot;, # Set the Pod PID limits. See https://kubernetes.io/docs/concepts/policy/pid-limiting/#pod-pid-limits Controls the maximum number of processes allowed to run in a pod. The value must be greater than or equal to 1024 and less than 4194304.
      &quot;singleProcessOomKill&quot;: True or False, # Optional. Defines whether to enable single process OOM killer. If true, will prevent the memory.oom.group flag from being set for container cgroups in cgroups v2. This causes processes in the container to be OOM killed individually instead of as a group.
      &quot;topologyManager&quot;: { # TopologyManager defines the configuration options for Topology Manager feature. See https://kubernetes.io/docs/tasks/administer-cluster/topology-manager/ # Optional. Controls Topology Manager configuration on the node. For more information, see: https://kubernetes.io/docs/tasks/administer-cluster/topology-manager/
        &quot;policy&quot;: &quot;A String&quot;, # Configures the strategy for resource alignment. Allowed values are: * none: the default policy, and does not perform any topology alignment. * restricted: the topology manager stores the preferred NUMA node affinity for the container, and will reject the pod if the affinity if not preferred. * best-effort: the topology manager stores the preferred NUMA node affinity for the container. If the affinity is not preferred, the topology manager will admit the pod to the node anyway. * single-numa-node: the topology manager determines if the single NUMA node affinity is possible. If it is, Topology Manager will store this and the Hint Providers can then use this information when making the resource allocation decision. If, however, this is not possible then the Topology Manager will reject the pod from the node. This will result in a pod in a Terminated state with a pod admission failure. The default policy value is &#x27;none&#x27; if unspecified. Details about each strategy can be found [here](https://kubernetes.io/docs/tasks/administer-cluster/topology-manager/#topology-manager-policies).
        &quot;scope&quot;: &quot;A String&quot;, # The Topology Manager aligns resources in following scopes: * container * pod The default scope is &#x27;container&#x27; if unspecified. See https://kubernetes.io/docs/tasks/administer-cluster/topology-manager/#topology-manager-scopes
      },
    },
    &quot;labels&quot;: { # 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&#x27;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/
      &quot;a_key&quot;: &quot;A String&quot;,
    },
    &quot;linuxNodeConfig&quot;: { # Parameters that can be configured on Linux nodes. # Parameters that can be configured on Linux nodes.
      &quot;cgroupMode&quot;: &quot;A String&quot;, # cgroup_mode specifies the cgroup mode to be used on the node.
      &quot;hugepages&quot;: { # Hugepages amount in both 2m and 1g size # Optional. Amounts for 2M and 1G hugepages
        &quot;hugepageSize1g&quot;: 42, # Optional. Amount of 1G hugepages
        &quot;hugepageSize2m&quot;: 42, # Optional. Amount of 2M hugepages
      },
      &quot;nodeKernelModuleLoading&quot;: { # Configuration for kernel module loading on nodes. # Optional. Configuration for kernel module loading on nodes. When enabled, the node pool will be provisioned with a Container-Optimized OS image that enforces kernel module signature verification.
        &quot;policy&quot;: &quot;A String&quot;, # Set the node module loading policy for nodes in the node pool.
      },
      &quot;sysctls&quot;: { # The Linux kernel parameters to be applied to the nodes and all pods running on the nodes. The following parameters are supported. net.core.busy_poll net.core.busy_read net.core.netdev_max_backlog net.core.rmem_max net.core.rmem_default 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 net.ipv4.tcp_max_orphans net.netfilter.nf_conntrack_max net.netfilter.nf_conntrack_buckets net.netfilter.nf_conntrack_tcp_timeout_close_wait net.netfilter.nf_conntrack_tcp_timeout_time_wait net.netfilter.nf_conntrack_tcp_timeout_established net.netfilter.nf_conntrack_acct kernel.shmmni kernel.shmmax kernel.shmall fs.aio-max-nr fs.file-max fs.inotify.max_user_instances fs.inotify.max_user_watches fs.nr_open vm.dirty_background_ratio vm.dirty_expire_centisecs vm.dirty_ratio vm.dirty_writeback_centisecs vm.max_map_count vm.overcommit_memory vm.overcommit_ratio vm.vfs_cache_pressure vm.swappiness vm.watermark_scale_factor vm.min_free_kbytes
        &quot;a_key&quot;: &quot;A String&quot;,
      },
      &quot;transparentHugepageDefrag&quot;: &quot;A String&quot;, # Optional. Defines the transparent hugepage defrag configuration on the node. VM hugepage allocation can be managed by either limiting defragmentation for delayed allocation or skipping it entirely for immediate allocation only. See https://docs.kernel.org/admin-guide/mm/transhuge.html for more details.
      &quot;transparentHugepageEnabled&quot;: &quot;A String&quot;, # Optional. Transparent hugepage support for anonymous memory can be entirely disabled (mostly for debugging purposes) or only enabled inside MADV_HUGEPAGE regions (to avoid the risk of consuming more memory resources) or enabled system wide. See https://docs.kernel.org/admin-guide/mm/transhuge.html for more details.
    },
    &quot;localNvmeSsdBlockConfig&quot;: { # LocalNvmeSsdBlockConfig contains configuration for using raw-block local NVMe SSDs # Parameters for using raw-block Local NVMe SSDs.
      &quot;localSsdCount&quot;: 42, # Number of local NVMe SSDs to use. The limit for this value is dependent upon the maximum number of disk available on a machine per zone. See: https://cloud.google.com/compute/docs/disks/local-ssd for more information. A zero (or unset) value has different meanings depending on machine type being used: 1. For pre-Gen3 machines, which support flexible numbers of local ssds, zero (or unset) means to disable using local SSDs as ephemeral storage. 2. For Gen3 machines which dictate a specific number of local ssds, zero (or unset) means to use the default number of local ssds that goes with that machine type. For example, for a c3-standard-8-lssd machine, 2 local ssds would be provisioned. For c3-standard-8 (which doesn&#x27;t support local ssds), 0 will be provisioned. See https://cloud.google.com/compute/docs/disks/local-ssd#choose_number_local_ssds for more info.
    },
    &quot;localSsdCount&quot;: 42, # 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.
    &quot;localSsdEncryptionMode&quot;: &quot;A String&quot;, # Specifies which method should be used for encrypting the Local SSDs attached to the node.
    &quot;loggingConfig&quot;: { # NodePoolLoggingConfig specifies logging configuration for nodepools. # Logging configuration.
      &quot;variantConfig&quot;: { # LoggingVariantConfig specifies the behaviour of the logging component. # Logging variant configuration.
        &quot;variant&quot;: &quot;A String&quot;, # Logging variant deployed on nodes.
      },
    },
    &quot;machineType&quot;: &quot;A String&quot;, # The name of a Google Compute Engine [machine type](https://cloud.google.com/compute/docs/machine-types) If unspecified, the default machine type is `e2-medium`.
    &quot;maxRunDuration&quot;: &quot;A String&quot;, # The maximum duration for the nodes to exist. If unspecified, the nodes can exist indefinitely.
    &quot;metadata&quot;: { # The metadata key/value pairs assigned to instances in the cluster. Keys must conform to the regexp `[a-zA-Z0-9-_]+` and be less than 128 bytes in length. These are reflected as part of a URL in the metadata server. Additionally, to avoid ambiguity, keys must not conflict with any other metadata keys for the project or be one of the reserved keys: - &quot;cluster-location&quot; - &quot;cluster-name&quot; - &quot;cluster-uid&quot; - &quot;configure-sh&quot; - &quot;containerd-configure-sh&quot; - &quot;enable-os-login&quot; - &quot;gci-ensure-gke-docker&quot; - &quot;gci-metrics-enabled&quot; - &quot;gci-update-strategy&quot; - &quot;instance-template&quot; - &quot;kube-env&quot; - &quot;startup-script&quot; - &quot;user-data&quot; - &quot;disable-address-manager&quot; - &quot;windows-startup-script-ps1&quot; - &quot;common-psm1&quot; - &quot;k8s-node-setup-psm1&quot; - &quot;install-ssh-psm1&quot; - &quot;user-profile-psm1&quot; 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&#x27;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.
      &quot;a_key&quot;: &quot;A String&quot;,
    },
    &quot;minCpuPlatform&quot;: &quot;A String&quot;, # 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: &quot;Intel Haswell&quot;` or `minCpuPlatform: &quot;Intel Sandy Bridge&quot;`. For more information, read [how to specify min CPU platform](https://cloud.google.com/compute/docs/instances/specify-min-cpu-platform)
    &quot;nodeGroup&quot;: &quot;A String&quot;, # Setting this field will assign instances of this pool to run on the specified node group. This is useful for running workloads on [sole tenant nodes](https://cloud.google.com/compute/docs/nodes/sole-tenant-nodes).
    &quot;oauthScopes&quot;: [ # The set of Google API scopes to be made available on all of the node VMs under the &quot;default&quot; 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 [Artifact Registry](https://cloud.google.com/artifact-registry/)). If unspecified, no scopes are added, unless Cloud Logging or Cloud Monitoring are enabled, in which case their required scopes will be added.
      &quot;A String&quot;,
    ],
    &quot;preemptible&quot;: True or False, # 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.
    &quot;reservationAffinity&quot;: { # [ReservationAffinity](https://cloud.google.com/compute/docs/instances/reserving-zonal-resources) is the configuration of desired reservation which instances could take capacity from. # The optional reservation affinity. Setting this field will apply the specified [Zonal Compute Reservation](https://cloud.google.com/compute/docs/instances/reserving-zonal-resources) to this node pool.
      &quot;consumeReservationType&quot;: &quot;A String&quot;, # Corresponds to the type of reservation consumption.
      &quot;key&quot;: &quot;A String&quot;, # Corresponds to the label key of a reservation resource. To target a SPECIFIC_RESERVATION by name, specify &quot;compute.googleapis.com/reservation-name&quot; as the key and specify the name of your reservation as its value.
      &quot;values&quot;: [ # Corresponds to the label value(s) of reservation resource(s).
        &quot;A String&quot;,
      ],
    },
    &quot;resourceLabels&quot;: { # The resource labels for the node pool to use to annotate any related Google Compute Engine resources.
      &quot;a_key&quot;: &quot;A String&quot;,
    },
    &quot;resourceManagerTags&quot;: { # A map of resource manager tag keys and values to be attached to the nodes for managing Compute Engine firewalls using Network Firewall Policies. Tags must be according to specifications in https://cloud.google.com/vpc/docs/tags-firewalls-overview#specifications. A maximum of 5 tag key-value pairs can be specified. Existing tags will be replaced with new values. # A map of resource manager tag keys and values to be attached to the nodes.
      &quot;tags&quot;: { # TagKeyValue must be in one of the following formats ([KEY]=[VALUE]) 1. `tagKeys/{tag_key_id}=tagValues/{tag_value_id}` 2. `{org_id}/{tag_key_name}={tag_value_name}` 3. `{project_id}/{tag_key_name}={tag_value_name}`
        &quot;a_key&quot;: &quot;A String&quot;,
      },
    },
    &quot;sandboxConfig&quot;: { # SandboxConfig contains configurations of the sandbox to use for the node. # Sandbox configuration for this node.
      &quot;type&quot;: &quot;A String&quot;, # Type of the sandbox to use for the node.
    },
    &quot;secondaryBootDiskUpdateStrategy&quot;: { # SecondaryBootDiskUpdateStrategy is a placeholder which will be extended in the future to define different options for updating secondary boot disks. # Secondary boot disk update strategy.
    },
    &quot;secondaryBootDisks&quot;: [ # List of secondary boot disks attached to the nodes.
      { # SecondaryBootDisk represents a persistent disk attached to a node with special configurations based on its mode.
        &quot;diskImage&quot;: &quot;A String&quot;, # Fully-qualified resource ID for an existing disk image.
        &quot;mode&quot;: &quot;A String&quot;, # Disk mode (container image cache, etc.)
      },
    ],
    &quot;serviceAccount&quot;: &quot;A String&quot;, # 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 &quot;default&quot; service account is used.
    &quot;shieldedInstanceConfig&quot;: { # A set of Shielded Instance options. # Shielded Instance options.
      &quot;enableIntegrityMonitoring&quot;: True or False, # 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.
      &quot;enableSecureBoot&quot;: True or False, # 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.
    },
    &quot;soleTenantConfig&quot;: { # SoleTenantConfig contains the NodeAffinities to specify what shared sole tenant node groups should back the node pool. # Parameters for node pools to be backed by shared sole tenant node groups.
      &quot;minNodeCpus&quot;: 42, # Optional. The minimum number of virtual CPUs this instance will consume when running on a sole-tenant node. This field can only be set if the node pool is created in a shared sole-tenant node group.
      &quot;nodeAffinities&quot;: [ # NodeAffinities used to match to a shared sole tenant node group.
        { # Specifies the NodeAffinity key, values, and affinity operator according to [shared sole tenant node group affinities](https://cloud.google.com/compute/docs/nodes/sole-tenant-nodes#node_affinity_and_anti-affinity).
          &quot;key&quot;: &quot;A String&quot;, # Key for NodeAffinity.
          &quot;operator&quot;: &quot;A String&quot;, # Operator for NodeAffinity.
          &quot;values&quot;: [ # Values for NodeAffinity.
            &quot;A String&quot;,
          ],
        },
      ],
    },
    &quot;spot&quot;: True or False, # Spot flag for enabling Spot VM, which is a rebrand of the existing preemptible flag.
    &quot;storagePools&quot;: [ # List of Storage Pools where boot disks are provisioned.
      &quot;A String&quot;,
    ],
    &quot;tags&quot;: [ # 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.
      &quot;A String&quot;,
    ],
    &quot;taints&quot;: [ # 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/
      { # Kubernetes taint is composed of three fields: key, value, and effect. Effect can only be one of three types: NoSchedule, PreferNoSchedule or NoExecute. See [here](https://kubernetes.io/docs/concepts/configuration/taint-and-toleration) for more information, including usage and the valid values.
        &quot;effect&quot;: &quot;A String&quot;, # Effect for taint.
        &quot;key&quot;: &quot;A String&quot;, # Key for taint.
        &quot;value&quot;: &quot;A String&quot;, # Value for taint.
      },
    ],
    &quot;windowsNodeConfig&quot;: { # Parameters that can be configured on Windows nodes. Windows Node Config that define the parameters that will be used to configure the Windows node pool settings. # Parameters that can be configured on Windows nodes.
      &quot;osVersion&quot;: &quot;A String&quot;, # OSVersion specifies the Windows node config to be used on the node.
    },
    &quot;workloadMetadataConfig&quot;: { # WorkloadMetadataConfig defines the metadata configuration to expose to workloads on the node pool. # The workload metadata configuration for this node.
      &quot;mode&quot;: &quot;A String&quot;, # Mode is the configuration for how to expose metadata to workloads running on the node pool.
    },
  },
  &quot;nodeIpv4CidrSize&quot;: 42, # Output only. The size of the address space on each node for hosting containers. This is provisioned from within the `container_ipv4_cidr` range. This field will only be set when cluster is in route-based network mode.
  &quot;nodePoolAutoConfig&quot;: { # Node pool configs that apply to all auto-provisioned node pools in autopilot clusters and node auto-provisioning enabled clusters. # Node pool configs that apply to all auto-provisioned node pools in autopilot clusters and node auto-provisioning enabled clusters.
    &quot;linuxNodeConfig&quot;: { # Parameters that can be configured on Linux nodes. # Output only. Configuration options for Linux nodes.
      &quot;cgroupMode&quot;: &quot;A String&quot;, # cgroup_mode specifies the cgroup mode to be used on the node.
      &quot;hugepages&quot;: { # Hugepages amount in both 2m and 1g size # Optional. Amounts for 2M and 1G hugepages
        &quot;hugepageSize1g&quot;: 42, # Optional. Amount of 1G hugepages
        &quot;hugepageSize2m&quot;: 42, # Optional. Amount of 2M hugepages
      },
      &quot;nodeKernelModuleLoading&quot;: { # Configuration for kernel module loading on nodes. # Optional. Configuration for kernel module loading on nodes. When enabled, the node pool will be provisioned with a Container-Optimized OS image that enforces kernel module signature verification.
        &quot;policy&quot;: &quot;A String&quot;, # Set the node module loading policy for nodes in the node pool.
      },
      &quot;sysctls&quot;: { # The Linux kernel parameters to be applied to the nodes and all pods running on the nodes. The following parameters are supported. net.core.busy_poll net.core.busy_read net.core.netdev_max_backlog net.core.rmem_max net.core.rmem_default 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 net.ipv4.tcp_max_orphans net.netfilter.nf_conntrack_max net.netfilter.nf_conntrack_buckets net.netfilter.nf_conntrack_tcp_timeout_close_wait net.netfilter.nf_conntrack_tcp_timeout_time_wait net.netfilter.nf_conntrack_tcp_timeout_established net.netfilter.nf_conntrack_acct kernel.shmmni kernel.shmmax kernel.shmall fs.aio-max-nr fs.file-max fs.inotify.max_user_instances fs.inotify.max_user_watches fs.nr_open vm.dirty_background_ratio vm.dirty_expire_centisecs vm.dirty_ratio vm.dirty_writeback_centisecs vm.max_map_count vm.overcommit_memory vm.overcommit_ratio vm.vfs_cache_pressure vm.swappiness vm.watermark_scale_factor vm.min_free_kbytes
        &quot;a_key&quot;: &quot;A String&quot;,
      },
      &quot;transparentHugepageDefrag&quot;: &quot;A String&quot;, # Optional. Defines the transparent hugepage defrag configuration on the node. VM hugepage allocation can be managed by either limiting defragmentation for delayed allocation or skipping it entirely for immediate allocation only. See https://docs.kernel.org/admin-guide/mm/transhuge.html for more details.
      &quot;transparentHugepageEnabled&quot;: &quot;A String&quot;, # Optional. Transparent hugepage support for anonymous memory can be entirely disabled (mostly for debugging purposes) or only enabled inside MADV_HUGEPAGE regions (to avoid the risk of consuming more memory resources) or enabled system wide. See https://docs.kernel.org/admin-guide/mm/transhuge.html for more details.
    },
    &quot;networkTags&quot;: { # Collection of Compute Engine network tags that can be applied to a node&#x27;s underlying VM instance. # 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 creation. Each tag within the list must comply with RFC1035.
      &quot;tags&quot;: [ # List of network tags.
        &quot;A String&quot;,
      ],
    },
    &quot;nodeKubeletConfig&quot;: { # Node kubelet configs. # NodeKubeletConfig controls the defaults for autoprovisioned node-pools. Currently only `insecure_kubelet_readonly_port_enabled` can be set here.
      &quot;allowedUnsafeSysctls&quot;: [ # Optional. Defines a comma-separated allowlist of unsafe sysctls or sysctl patterns (ending in `*`). The unsafe namespaced sysctl groups are `kernel.shm*`, `kernel.msg*`, `kernel.sem`, `fs.mqueue.*`, and `net.*`. Leaving this allowlist empty means they cannot be set on Pods. To allow certain sysctls or sysctl patterns to be set on Pods, list them separated by commas. For example: `kernel.msg*,net.ipv4.route.min_pmtu`. See https://kubernetes.io/docs/tasks/administer-cluster/sysctl-cluster/ for more details.
        &quot;A String&quot;,
      ],
      &quot;containerLogMaxFiles&quot;: 42, # Optional. Defines the maximum number of container log files that can be present for a container. See https://kubernetes.io/docs/concepts/cluster-administration/logging/#log-rotation The value must be an integer between 2 and 10, inclusive. The default value is 5 if unspecified.
      &quot;containerLogMaxSize&quot;: &quot;A String&quot;, # Optional. Defines the maximum size of the container log file before it is rotated. See https://kubernetes.io/docs/concepts/cluster-administration/logging/#log-rotation Valid format is positive number + unit, e.g. 100Ki, 10Mi. Valid units are Ki, Mi, Gi. The value must be between 10Mi and 500Mi, inclusive. Note that the total container log size (container_log_max_size * container_log_max_files) cannot exceed 1% of the total storage of the node, to avoid disk pressure caused by log files. The default value is 10Mi if unspecified.
      &quot;cpuCfsQuota&quot;: True or False, # 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 &#x27;true&#x27; if unspecified.
      &quot;cpuCfsQuotaPeriod&quot;: &quot;A String&quot;, # Set the CPU CFS quota period value &#x27;cpu.cfs_period_us&#x27;. The string must be a sequence of decimal numbers, each with optional fraction and a unit suffix, such as &quot;300ms&quot;. Valid time units are &quot;ns&quot;, &quot;us&quot; (or &quot;µs&quot;), &quot;ms&quot;, &quot;s&quot;, &quot;m&quot;, &quot;h&quot;. The value must be a positive duration between 1ms and 1 second, inclusive.
      &quot;cpuManagerPolicy&quot;: &quot;A String&quot;, # Control the CPU management policy on the node. See https://kubernetes.io/docs/tasks/administer-cluster/cpu-management-policies/ The following values are allowed. * &quot;none&quot;: the default, which represents the existing scheduling behavior. * &quot;static&quot;: allows pods with certain resource characteristics to be granted increased CPU affinity and exclusivity on the node. The default value is &#x27;none&#x27; if unspecified.
      &quot;evictionMaxPodGracePeriodSeconds&quot;: 42, # Optional. eviction_max_pod_grace_period_seconds is the maximum allowed grace period (in seconds) to use when terminating pods in response to a soft eviction threshold being met. This value effectively caps the Pod&#x27;s terminationGracePeriodSeconds value during soft evictions. Default: 0. Range: [0, 300].
      &quot;evictionMinimumReclaim&quot;: { # Eviction minimum reclaims are the resource amounts of minimum reclaims for each eviction signal. # Optional. eviction_minimum_reclaim is a map of signal names to quantities that defines minimum reclaims, which describe the minimum amount of a given resource the kubelet will reclaim when performing a pod eviction while that resource is under pressure.
        &quot;imagefsAvailable&quot;: &quot;A String&quot;, # Optional. Minimum reclaim for eviction due to imagefs available signal. Only take percentage value for now. Sample format: &quot;10%&quot;. Must be &lt;=10%. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
        &quot;imagefsInodesFree&quot;: &quot;A String&quot;, # Optional. Minimum reclaim for eviction due to imagefs inodes free signal. Only take percentage value for now. Sample format: &quot;10%&quot;. Must be &lt;=10%. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
        &quot;memoryAvailable&quot;: &quot;A String&quot;, # Optional. Minimum reclaim for eviction due to memory available signal. Only take percentage value for now. Sample format: &quot;10%&quot;. Must be &lt;=10%. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
        &quot;nodefsAvailable&quot;: &quot;A String&quot;, # Optional. Minimum reclaim for eviction due to nodefs available signal. Only take percentage value for now. Sample format: &quot;10%&quot;. Must be &lt;=10%. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
        &quot;nodefsInodesFree&quot;: &quot;A String&quot;, # Optional. Minimum reclaim for eviction due to nodefs inodes free signal. Only take percentage value for now. Sample format: &quot;10%&quot;. Must be &lt;=10%. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
        &quot;pidAvailable&quot;: &quot;A String&quot;, # Optional. Minimum reclaim for eviction due to pid available signal. Only take percentage value for now. Sample format: &quot;10%&quot;. Must be &lt;=10%. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
      },
      &quot;evictionSoft&quot;: { # Eviction signals are the current state of a particular resource at a specific point in time. The kubelet uses eviction signals to make eviction decisions by comparing the signals to eviction thresholds, which are the minimum amount of the resource that should be available on the node. # Optional. eviction_soft is a map of signal names to quantities that defines soft eviction thresholds. Each signal is compared to its corresponding threshold to determine if a pod eviction should occur.
        &quot;imagefsAvailable&quot;: &quot;A String&quot;, # Optional. Amount of storage available on filesystem that container runtime uses for storing images layers. If the container filesystem and image filesystem are not separate, then imagefs can store both image layers and writeable layers. Defines the amount of &quot;imagefs.available&quot; signal in kubelet. Default is unset, if not specified in the kubelet config. It takses percentage value for now. Sample format: &quot;30%&quot;. Must be &gt;= 15% and &lt;= 50%. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
        &quot;imagefsInodesFree&quot;: &quot;A String&quot;, # Optional. Amount of inodes available on filesystem that container runtime uses for storing images layers. Defines the amount of &quot;imagefs.inodesFree&quot; signal in kubelet. Default is unset, if not specified in the kubelet config. Linux only. It takses percentage value for now. Sample format: &quot;30%&quot;. Must be &gt;= 5% and &lt;= 50%. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
        &quot;memoryAvailable&quot;: &quot;A String&quot;, # Optional. Memory available (i.e. capacity - workingSet), in bytes. Defines the amount of &quot;memory.available&quot; signal in kubelet. Default is unset, if not specified in the kubelet config. Format: positive number + unit, e.g. 100Ki, 10Mi, 5Gi. Valid units are Ki, Mi, Gi. Must be &gt;= 100Mi and &lt;= 50% of the node&#x27;s memory. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
        &quot;nodefsAvailable&quot;: &quot;A String&quot;, # Optional. Amount of storage available on filesystem that kubelet uses for volumes, daemon logs, etc. Defines the amount of &quot;nodefs.available&quot; signal in kubelet. Default is unset, if not specified in the kubelet config. It takses percentage value for now. Sample format: &quot;30%&quot;. Must be &gt;= 10% and &lt;= 50%. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
        &quot;nodefsInodesFree&quot;: &quot;A String&quot;, # Optional. Amount of inodes available on filesystem that kubelet uses for volumes, daemon logs, etc. Defines the amount of &quot;nodefs.inodesFree&quot; signal in kubelet. Default is unset, if not specified in the kubelet config. Linux only. It takses percentage value for now. Sample format: &quot;30%&quot;. Must be &gt;= 5% and &lt;= 50%. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
        &quot;pidAvailable&quot;: &quot;A String&quot;, # Optional. Amount of PID available for pod allocation. Defines the amount of &quot;pid.available&quot; signal in kubelet. Default is unset, if not specified in the kubelet config. It takses percentage value for now. Sample format: &quot;30%&quot;. Must be &gt;= 10% and &lt;= 50%. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
      },
      &quot;evictionSoftGracePeriod&quot;: { # Eviction grace periods are grace periods for each eviction signal. # Optional. eviction_soft_grace_period is a map of signal names to quantities that defines grace periods for each soft eviction signal. The grace period is the amount of time that a pod must be under pressure before an eviction occurs.
        &quot;imagefsAvailable&quot;: &quot;A String&quot;, # Optional. Grace period for eviction due to imagefs available signal. Sample format: &quot;10s&quot;. Must be &gt;= 0. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
        &quot;imagefsInodesFree&quot;: &quot;A String&quot;, # Optional. Grace period for eviction due to imagefs inodes free signal. Sample format: &quot;10s&quot;. Must be &gt;= 0. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
        &quot;memoryAvailable&quot;: &quot;A String&quot;, # Optional. Grace period for eviction due to memory available signal. Sample format: &quot;10s&quot;. Must be &gt;= 0. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
        &quot;nodefsAvailable&quot;: &quot;A String&quot;, # Optional. Grace period for eviction due to nodefs available signal. Sample format: &quot;10s&quot;. Must be &gt;= 0. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
        &quot;nodefsInodesFree&quot;: &quot;A String&quot;, # Optional. Grace period for eviction due to nodefs inodes free signal. Sample format: &quot;10s&quot;. Must be &gt;= 0. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
        &quot;pidAvailable&quot;: &quot;A String&quot;, # Optional. Grace period for eviction due to pid available signal. Sample format: &quot;10s&quot;. Must be &gt;= 0. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
      },
      &quot;imageGcHighThresholdPercent&quot;: 42, # Optional. Defines the percent of disk usage after which image garbage collection is always run. The percent is calculated as this field value out of 100. The value must be between 10 and 85, inclusive and greater than image_gc_low_threshold_percent. The default value is 85 if unspecified.
      &quot;imageGcLowThresholdPercent&quot;: 42, # Optional. Defines the percent of disk usage before which image garbage collection is never run. Lowest disk usage to garbage collect to. The percent is calculated as this field value out of 100. The value must be between 10 and 85, inclusive and smaller than image_gc_high_threshold_percent. The default value is 80 if unspecified.
      &quot;imageMaximumGcAge&quot;: &quot;A String&quot;, # Optional. Defines the maximum age an image can be unused before it is garbage collected. The string must be a sequence of decimal numbers, each with optional fraction and a unit suffix, such as &quot;300s&quot;, &quot;1.5h&quot;, and &quot;2h45m&quot;. Valid time units are &quot;ns&quot;, &quot;us&quot; (or &quot;µs&quot;), &quot;ms&quot;, &quot;s&quot;, &quot;m&quot;, &quot;h&quot;. The value must be a positive duration greater than image_minimum_gc_age or &quot;0s&quot;. The default value is &quot;0s&quot; if unspecified, which disables this field, meaning images won&#x27;t be garbage collected based on being unused for too long.
      &quot;imageMinimumGcAge&quot;: &quot;A String&quot;, # Optional. Defines the minimum age for an unused image before it is garbage collected. The string must be a sequence of decimal numbers, each with optional fraction and a unit suffix, such as &quot;300s&quot;, &quot;1.5h&quot;, and &quot;2h45m&quot;. Valid time units are &quot;ns&quot;, &quot;us&quot; (or &quot;µs&quot;), &quot;ms&quot;, &quot;s&quot;, &quot;m&quot;, &quot;h&quot;. The value must be a positive duration less than or equal to 2 minutes. The default value is &quot;2m0s&quot; if unspecified.
      &quot;insecureKubeletReadonlyPortEnabled&quot;: True or False, # Enable or disable Kubelet read only port.
      &quot;maxParallelImagePulls&quot;: 42, # Optional. Defines the maximum number of image pulls in parallel. The range is 2 to 5, inclusive. The default value is 2 or 3 depending on the disk type. See https://kubernetes.io/docs/concepts/containers/images/#maximum-parallel-image-pulls for more details.
      &quot;memoryManager&quot;: { # The option enables the Kubernetes NUMA-aware Memory Manager feature. Detailed description about the feature can be found [here](https://kubernetes.io/docs/tasks/administer-cluster/memory-manager/). # Optional. Controls NUMA-aware Memory Manager configuration on the node. For more information, see: https://kubernetes.io/docs/tasks/administer-cluster/memory-manager/
        &quot;policy&quot;: &quot;A String&quot;, # Controls the memory management policy on the Node. See https://kubernetes.io/docs/tasks/administer-cluster/memory-manager/#policies The following values are allowed. * &quot;none&quot; * &quot;static&quot; The default value is &#x27;none&#x27; if unspecified.
      },
      &quot;podPidsLimit&quot;: &quot;A String&quot;, # Set the Pod PID limits. See https://kubernetes.io/docs/concepts/policy/pid-limiting/#pod-pid-limits Controls the maximum number of processes allowed to run in a pod. The value must be greater than or equal to 1024 and less than 4194304.
      &quot;singleProcessOomKill&quot;: True or False, # Optional. Defines whether to enable single process OOM killer. If true, will prevent the memory.oom.group flag from being set for container cgroups in cgroups v2. This causes processes in the container to be OOM killed individually instead of as a group.
      &quot;topologyManager&quot;: { # TopologyManager defines the configuration options for Topology Manager feature. See https://kubernetes.io/docs/tasks/administer-cluster/topology-manager/ # Optional. Controls Topology Manager configuration on the node. For more information, see: https://kubernetes.io/docs/tasks/administer-cluster/topology-manager/
        &quot;policy&quot;: &quot;A String&quot;, # Configures the strategy for resource alignment. Allowed values are: * none: the default policy, and does not perform any topology alignment. * restricted: the topology manager stores the preferred NUMA node affinity for the container, and will reject the pod if the affinity if not preferred. * best-effort: the topology manager stores the preferred NUMA node affinity for the container. If the affinity is not preferred, the topology manager will admit the pod to the node anyway. * single-numa-node: the topology manager determines if the single NUMA node affinity is possible. If it is, Topology Manager will store this and the Hint Providers can then use this information when making the resource allocation decision. If, however, this is not possible then the Topology Manager will reject the pod from the node. This will result in a pod in a Terminated state with a pod admission failure. The default policy value is &#x27;none&#x27; if unspecified. Details about each strategy can be found [here](https://kubernetes.io/docs/tasks/administer-cluster/topology-manager/#topology-manager-policies).
        &quot;scope&quot;: &quot;A String&quot;, # The Topology Manager aligns resources in following scopes: * container * pod The default scope is &#x27;container&#x27; if unspecified. See https://kubernetes.io/docs/tasks/administer-cluster/topology-manager/#topology-manager-scopes
      },
    },
    &quot;resourceManagerTags&quot;: { # A map of resource manager tag keys and values to be attached to the nodes for managing Compute Engine firewalls using Network Firewall Policies. Tags must be according to specifications in https://cloud.google.com/vpc/docs/tags-firewalls-overview#specifications. A maximum of 5 tag key-value pairs can be specified. Existing tags will be replaced with new values. # Resource manager tag keys and values to be attached to the nodes for managing Compute Engine firewalls using Network Firewall Policies.
      &quot;tags&quot;: { # TagKeyValue must be in one of the following formats ([KEY]=[VALUE]) 1. `tagKeys/{tag_key_id}=tagValues/{tag_value_id}` 2. `{org_id}/{tag_key_name}={tag_value_name}` 3. `{project_id}/{tag_key_name}={tag_value_name}`
        &quot;a_key&quot;: &quot;A String&quot;,
      },
    },
  },
  &quot;nodePoolDefaults&quot;: { # Subset of Nodepool message that has defaults. # Default NodePool settings for the entire cluster. These settings are overridden if specified on the specific NodePool object.
    &quot;nodeConfigDefaults&quot;: { # Subset of NodeConfig message that has defaults. # Subset of NodeConfig message that has defaults.
      &quot;containerdConfig&quot;: { # ContainerdConfig contains configuration to customize containerd. # Parameters for containerd customization.
        &quot;privateRegistryAccessConfig&quot;: { # PrivateRegistryAccessConfig contains access configuration for private container registries. # PrivateRegistryAccessConfig is used to configure access configuration for private container registries.
          &quot;certificateAuthorityDomainConfig&quot;: [ # Private registry access configuration.
            { # CertificateAuthorityDomainConfig configures one or more fully qualified domain names (FQDN) to a specific certificate.
              &quot;fqdns&quot;: [ # List of fully qualified domain names (FQDN). Specifying port is supported. Wildcards are NOT supported. Examples: - my.customdomain.com - 10.0.1.2:5000
                &quot;A String&quot;,
              ],
              &quot;gcpSecretManagerCertificateConfig&quot;: { # GCPSecretManagerCertificateConfig configures a secret from [Secret Manager](https://cloud.google.com/secret-manager). # Google Secret Manager (GCP) certificate configuration.
                &quot;secretUri&quot;: &quot;A String&quot;, # Secret URI, in the form &quot;projects/$PROJECT_ID/secrets/$SECRET_NAME/versions/$VERSION&quot;. Version can be fixed (e.g. &quot;2&quot;) or &quot;latest&quot;
              },
            },
          ],
          &quot;enabled&quot;: True or False, # Private registry access is enabled.
        },
        &quot;writableCgroups&quot;: { # Defines writable cgroups configuration. # Optional. WritableCgroups defines writable cgroups configuration for the node pool.
          &quot;enabled&quot;: True or False, # Optional. Whether writable cgroups is enabled.
        },
      },
      &quot;gcfsConfig&quot;: { # GcfsConfig contains configurations of Google Container File System (image streaming). # GCFS (Google Container File System, also known as Riptide) options.
        &quot;enabled&quot;: True or False, # Whether to use GCFS.
      },
      &quot;loggingConfig&quot;: { # NodePoolLoggingConfig specifies logging configuration for nodepools. # Logging configuration for node pools.
        &quot;variantConfig&quot;: { # LoggingVariantConfig specifies the behaviour of the logging component. # Logging variant configuration.
          &quot;variant&quot;: &quot;A String&quot;, # Logging variant deployed on nodes.
        },
      },
      &quot;nodeKubeletConfig&quot;: { # Node kubelet configs. # NodeKubeletConfig controls the defaults for new node-pools. Currently only `insecure_kubelet_readonly_port_enabled` can be set here.
        &quot;allowedUnsafeSysctls&quot;: [ # Optional. Defines a comma-separated allowlist of unsafe sysctls or sysctl patterns (ending in `*`). The unsafe namespaced sysctl groups are `kernel.shm*`, `kernel.msg*`, `kernel.sem`, `fs.mqueue.*`, and `net.*`. Leaving this allowlist empty means they cannot be set on Pods. To allow certain sysctls or sysctl patterns to be set on Pods, list them separated by commas. For example: `kernel.msg*,net.ipv4.route.min_pmtu`. See https://kubernetes.io/docs/tasks/administer-cluster/sysctl-cluster/ for more details.
          &quot;A String&quot;,
        ],
        &quot;containerLogMaxFiles&quot;: 42, # Optional. Defines the maximum number of container log files that can be present for a container. See https://kubernetes.io/docs/concepts/cluster-administration/logging/#log-rotation The value must be an integer between 2 and 10, inclusive. The default value is 5 if unspecified.
        &quot;containerLogMaxSize&quot;: &quot;A String&quot;, # Optional. Defines the maximum size of the container log file before it is rotated. See https://kubernetes.io/docs/concepts/cluster-administration/logging/#log-rotation Valid format is positive number + unit, e.g. 100Ki, 10Mi. Valid units are Ki, Mi, Gi. The value must be between 10Mi and 500Mi, inclusive. Note that the total container log size (container_log_max_size * container_log_max_files) cannot exceed 1% of the total storage of the node, to avoid disk pressure caused by log files. The default value is 10Mi if unspecified.
        &quot;cpuCfsQuota&quot;: True or False, # 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 &#x27;true&#x27; if unspecified.
        &quot;cpuCfsQuotaPeriod&quot;: &quot;A String&quot;, # Set the CPU CFS quota period value &#x27;cpu.cfs_period_us&#x27;. The string must be a sequence of decimal numbers, each with optional fraction and a unit suffix, such as &quot;300ms&quot;. Valid time units are &quot;ns&quot;, &quot;us&quot; (or &quot;µs&quot;), &quot;ms&quot;, &quot;s&quot;, &quot;m&quot;, &quot;h&quot;. The value must be a positive duration between 1ms and 1 second, inclusive.
        &quot;cpuManagerPolicy&quot;: &quot;A String&quot;, # Control the CPU management policy on the node. See https://kubernetes.io/docs/tasks/administer-cluster/cpu-management-policies/ The following values are allowed. * &quot;none&quot;: the default, which represents the existing scheduling behavior. * &quot;static&quot;: allows pods with certain resource characteristics to be granted increased CPU affinity and exclusivity on the node. The default value is &#x27;none&#x27; if unspecified.
        &quot;evictionMaxPodGracePeriodSeconds&quot;: 42, # Optional. eviction_max_pod_grace_period_seconds is the maximum allowed grace period (in seconds) to use when terminating pods in response to a soft eviction threshold being met. This value effectively caps the Pod&#x27;s terminationGracePeriodSeconds value during soft evictions. Default: 0. Range: [0, 300].
        &quot;evictionMinimumReclaim&quot;: { # Eviction minimum reclaims are the resource amounts of minimum reclaims for each eviction signal. # Optional. eviction_minimum_reclaim is a map of signal names to quantities that defines minimum reclaims, which describe the minimum amount of a given resource the kubelet will reclaim when performing a pod eviction while that resource is under pressure.
          &quot;imagefsAvailable&quot;: &quot;A String&quot;, # Optional. Minimum reclaim for eviction due to imagefs available signal. Only take percentage value for now. Sample format: &quot;10%&quot;. Must be &lt;=10%. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
          &quot;imagefsInodesFree&quot;: &quot;A String&quot;, # Optional. Minimum reclaim for eviction due to imagefs inodes free signal. Only take percentage value for now. Sample format: &quot;10%&quot;. Must be &lt;=10%. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
          &quot;memoryAvailable&quot;: &quot;A String&quot;, # Optional. Minimum reclaim for eviction due to memory available signal. Only take percentage value for now. Sample format: &quot;10%&quot;. Must be &lt;=10%. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
          &quot;nodefsAvailable&quot;: &quot;A String&quot;, # Optional. Minimum reclaim for eviction due to nodefs available signal. Only take percentage value for now. Sample format: &quot;10%&quot;. Must be &lt;=10%. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
          &quot;nodefsInodesFree&quot;: &quot;A String&quot;, # Optional. Minimum reclaim for eviction due to nodefs inodes free signal. Only take percentage value for now. Sample format: &quot;10%&quot;. Must be &lt;=10%. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
          &quot;pidAvailable&quot;: &quot;A String&quot;, # Optional. Minimum reclaim for eviction due to pid available signal. Only take percentage value for now. Sample format: &quot;10%&quot;. Must be &lt;=10%. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
        },
        &quot;evictionSoft&quot;: { # Eviction signals are the current state of a particular resource at a specific point in time. The kubelet uses eviction signals to make eviction decisions by comparing the signals to eviction thresholds, which are the minimum amount of the resource that should be available on the node. # Optional. eviction_soft is a map of signal names to quantities that defines soft eviction thresholds. Each signal is compared to its corresponding threshold to determine if a pod eviction should occur.
          &quot;imagefsAvailable&quot;: &quot;A String&quot;, # Optional. Amount of storage available on filesystem that container runtime uses for storing images layers. If the container filesystem and image filesystem are not separate, then imagefs can store both image layers and writeable layers. Defines the amount of &quot;imagefs.available&quot; signal in kubelet. Default is unset, if not specified in the kubelet config. It takses percentage value for now. Sample format: &quot;30%&quot;. Must be &gt;= 15% and &lt;= 50%. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
          &quot;imagefsInodesFree&quot;: &quot;A String&quot;, # Optional. Amount of inodes available on filesystem that container runtime uses for storing images layers. Defines the amount of &quot;imagefs.inodesFree&quot; signal in kubelet. Default is unset, if not specified in the kubelet config. Linux only. It takses percentage value for now. Sample format: &quot;30%&quot;. Must be &gt;= 5% and &lt;= 50%. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
          &quot;memoryAvailable&quot;: &quot;A String&quot;, # Optional. Memory available (i.e. capacity - workingSet), in bytes. Defines the amount of &quot;memory.available&quot; signal in kubelet. Default is unset, if not specified in the kubelet config. Format: positive number + unit, e.g. 100Ki, 10Mi, 5Gi. Valid units are Ki, Mi, Gi. Must be &gt;= 100Mi and &lt;= 50% of the node&#x27;s memory. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
          &quot;nodefsAvailable&quot;: &quot;A String&quot;, # Optional. Amount of storage available on filesystem that kubelet uses for volumes, daemon logs, etc. Defines the amount of &quot;nodefs.available&quot; signal in kubelet. Default is unset, if not specified in the kubelet config. It takses percentage value for now. Sample format: &quot;30%&quot;. Must be &gt;= 10% and &lt;= 50%. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
          &quot;nodefsInodesFree&quot;: &quot;A String&quot;, # Optional. Amount of inodes available on filesystem that kubelet uses for volumes, daemon logs, etc. Defines the amount of &quot;nodefs.inodesFree&quot; signal in kubelet. Default is unset, if not specified in the kubelet config. Linux only. It takses percentage value for now. Sample format: &quot;30%&quot;. Must be &gt;= 5% and &lt;= 50%. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
          &quot;pidAvailable&quot;: &quot;A String&quot;, # Optional. Amount of PID available for pod allocation. Defines the amount of &quot;pid.available&quot; signal in kubelet. Default is unset, if not specified in the kubelet config. It takses percentage value for now. Sample format: &quot;30%&quot;. Must be &gt;= 10% and &lt;= 50%. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
        },
        &quot;evictionSoftGracePeriod&quot;: { # Eviction grace periods are grace periods for each eviction signal. # Optional. eviction_soft_grace_period is a map of signal names to quantities that defines grace periods for each soft eviction signal. The grace period is the amount of time that a pod must be under pressure before an eviction occurs.
          &quot;imagefsAvailable&quot;: &quot;A String&quot;, # Optional. Grace period for eviction due to imagefs available signal. Sample format: &quot;10s&quot;. Must be &gt;= 0. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
          &quot;imagefsInodesFree&quot;: &quot;A String&quot;, # Optional. Grace period for eviction due to imagefs inodes free signal. Sample format: &quot;10s&quot;. Must be &gt;= 0. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
          &quot;memoryAvailable&quot;: &quot;A String&quot;, # Optional. Grace period for eviction due to memory available signal. Sample format: &quot;10s&quot;. Must be &gt;= 0. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
          &quot;nodefsAvailable&quot;: &quot;A String&quot;, # Optional. Grace period for eviction due to nodefs available signal. Sample format: &quot;10s&quot;. Must be &gt;= 0. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
          &quot;nodefsInodesFree&quot;: &quot;A String&quot;, # Optional. Grace period for eviction due to nodefs inodes free signal. Sample format: &quot;10s&quot;. Must be &gt;= 0. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
          &quot;pidAvailable&quot;: &quot;A String&quot;, # Optional. Grace period for eviction due to pid available signal. Sample format: &quot;10s&quot;. Must be &gt;= 0. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
        },
        &quot;imageGcHighThresholdPercent&quot;: 42, # Optional. Defines the percent of disk usage after which image garbage collection is always run. The percent is calculated as this field value out of 100. The value must be between 10 and 85, inclusive and greater than image_gc_low_threshold_percent. The default value is 85 if unspecified.
        &quot;imageGcLowThresholdPercent&quot;: 42, # Optional. Defines the percent of disk usage before which image garbage collection is never run. Lowest disk usage to garbage collect to. The percent is calculated as this field value out of 100. The value must be between 10 and 85, inclusive and smaller than image_gc_high_threshold_percent. The default value is 80 if unspecified.
        &quot;imageMaximumGcAge&quot;: &quot;A String&quot;, # Optional. Defines the maximum age an image can be unused before it is garbage collected. The string must be a sequence of decimal numbers, each with optional fraction and a unit suffix, such as &quot;300s&quot;, &quot;1.5h&quot;, and &quot;2h45m&quot;. Valid time units are &quot;ns&quot;, &quot;us&quot; (or &quot;µs&quot;), &quot;ms&quot;, &quot;s&quot;, &quot;m&quot;, &quot;h&quot;. The value must be a positive duration greater than image_minimum_gc_age or &quot;0s&quot;. The default value is &quot;0s&quot; if unspecified, which disables this field, meaning images won&#x27;t be garbage collected based on being unused for too long.
        &quot;imageMinimumGcAge&quot;: &quot;A String&quot;, # Optional. Defines the minimum age for an unused image before it is garbage collected. The string must be a sequence of decimal numbers, each with optional fraction and a unit suffix, such as &quot;300s&quot;, &quot;1.5h&quot;, and &quot;2h45m&quot;. Valid time units are &quot;ns&quot;, &quot;us&quot; (or &quot;µs&quot;), &quot;ms&quot;, &quot;s&quot;, &quot;m&quot;, &quot;h&quot;. The value must be a positive duration less than or equal to 2 minutes. The default value is &quot;2m0s&quot; if unspecified.
        &quot;insecureKubeletReadonlyPortEnabled&quot;: True or False, # Enable or disable Kubelet read only port.
        &quot;maxParallelImagePulls&quot;: 42, # Optional. Defines the maximum number of image pulls in parallel. The range is 2 to 5, inclusive. The default value is 2 or 3 depending on the disk type. See https://kubernetes.io/docs/concepts/containers/images/#maximum-parallel-image-pulls for more details.
        &quot;memoryManager&quot;: { # The option enables the Kubernetes NUMA-aware Memory Manager feature. Detailed description about the feature can be found [here](https://kubernetes.io/docs/tasks/administer-cluster/memory-manager/). # Optional. Controls NUMA-aware Memory Manager configuration on the node. For more information, see: https://kubernetes.io/docs/tasks/administer-cluster/memory-manager/
          &quot;policy&quot;: &quot;A String&quot;, # Controls the memory management policy on the Node. See https://kubernetes.io/docs/tasks/administer-cluster/memory-manager/#policies The following values are allowed. * &quot;none&quot; * &quot;static&quot; The default value is &#x27;none&#x27; if unspecified.
        },
        &quot;podPidsLimit&quot;: &quot;A String&quot;, # Set the Pod PID limits. See https://kubernetes.io/docs/concepts/policy/pid-limiting/#pod-pid-limits Controls the maximum number of processes allowed to run in a pod. The value must be greater than or equal to 1024 and less than 4194304.
        &quot;singleProcessOomKill&quot;: True or False, # Optional. Defines whether to enable single process OOM killer. If true, will prevent the memory.oom.group flag from being set for container cgroups in cgroups v2. This causes processes in the container to be OOM killed individually instead of as a group.
        &quot;topologyManager&quot;: { # TopologyManager defines the configuration options for Topology Manager feature. See https://kubernetes.io/docs/tasks/administer-cluster/topology-manager/ # Optional. Controls Topology Manager configuration on the node. For more information, see: https://kubernetes.io/docs/tasks/administer-cluster/topology-manager/
          &quot;policy&quot;: &quot;A String&quot;, # Configures the strategy for resource alignment. Allowed values are: * none: the default policy, and does not perform any topology alignment. * restricted: the topology manager stores the preferred NUMA node affinity for the container, and will reject the pod if the affinity if not preferred. * best-effort: the topology manager stores the preferred NUMA node affinity for the container. If the affinity is not preferred, the topology manager will admit the pod to the node anyway. * single-numa-node: the topology manager determines if the single NUMA node affinity is possible. If it is, Topology Manager will store this and the Hint Providers can then use this information when making the resource allocation decision. If, however, this is not possible then the Topology Manager will reject the pod from the node. This will result in a pod in a Terminated state with a pod admission failure. The default policy value is &#x27;none&#x27; if unspecified. Details about each strategy can be found [here](https://kubernetes.io/docs/tasks/administer-cluster/topology-manager/#topology-manager-policies).
          &quot;scope&quot;: &quot;A String&quot;, # The Topology Manager aligns resources in following scopes: * container * pod The default scope is &#x27;container&#x27; if unspecified. See https://kubernetes.io/docs/tasks/administer-cluster/topology-manager/#topology-manager-scopes
        },
      },
    },
  },
  &quot;nodePools&quot;: [ # The node pools associated with this cluster. This field should not be set if &quot;node_config&quot; or &quot;initial_node_count&quot; are specified.
    { # NodePool contains the name and configuration for a cluster&#x27;s node pool. Node pools are a set of nodes (i.e. VM&#x27;s), with a common configuration and specification, under the control of the cluster master. They may have a set of Kubernetes labels applied to them, which may be used to reference them during pod scheduling. They may also be resized up or down, to accommodate the workload.
      &quot;autopilotConfig&quot;: { # AutopilotConfig contains configuration of autopilot feature for this nodepool. # Specifies the autopilot configuration for this node pool. This field is exclusively reserved for Cluster Autoscaler.
        &quot;enabled&quot;: True or False, # Denotes that nodes belonging to this node pool are Autopilot nodes.
      },
      &quot;autoscaling&quot;: { # NodePoolAutoscaling contains information required by cluster autoscaler to adjust the size of the node pool to the current cluster usage. # Autoscaler configuration for this NodePool. Autoscaler is enabled only if a valid configuration is present.
        &quot;autoprovisioned&quot;: True or False, # Can this node pool be deleted automatically.
        &quot;enabled&quot;: True or False, # Is autoscaling enabled for this node pool.
        &quot;locationPolicy&quot;: &quot;A String&quot;, # Location policy used when scaling up a nodepool.
        &quot;maxNodeCount&quot;: 42, # Maximum number of nodes for one location in the node pool. Must be &gt;= min_node_count. There has to be enough quota to scale up the cluster.
        &quot;minNodeCount&quot;: 42, # Minimum number of nodes for one location in the node pool. Must be greater than or equal to 0 and less than or equal to max_node_count.
        &quot;totalMaxNodeCount&quot;: 42, # Maximum number of nodes in the node pool. Must be greater than or equal to total_min_node_count. There has to be enough quota to scale up the cluster. The total_*_node_count fields are mutually exclusive with the *_node_count fields.
        &quot;totalMinNodeCount&quot;: 42, # Minimum number of nodes in the node pool. Must be greater than or equal to 0 and less than or equal to total_max_node_count. The total_*_node_count fields are mutually exclusive with the *_node_count fields.
      },
      &quot;bestEffortProvisioning&quot;: { # Best effort provisioning. # Enable best effort provisioning for nodes
        &quot;enabled&quot;: True or False, # When this is enabled, cluster/node pool creations will ignore non-fatal errors like stockout to best provision as many nodes as possible right now and eventually bring up all target number of nodes
        &quot;minProvisionNodes&quot;: 42, # Minimum number of nodes to be provisioned to be considered as succeeded, and the rest of nodes will be provisioned gradually and eventually when stockout issue has been resolved.
      },
      &quot;conditions&quot;: [ # Which conditions caused the current node pool state.
        { # StatusCondition describes why a cluster or a node pool has a certain status (e.g., ERROR or DEGRADED).
          &quot;canonicalCode&quot;: &quot;A String&quot;, # Canonical code of the condition.
          &quot;code&quot;: &quot;A String&quot;, # Machine-friendly representation of the condition Deprecated. Use canonical_code instead.
          &quot;message&quot;: &quot;A String&quot;, # Human-friendly representation of the condition
        },
      ],
      &quot;config&quot;: { # Parameters that describe the nodes in a cluster. GKE Autopilot clusters do not recognize parameters in `NodeConfig`. Use AutoprovisioningNodePoolDefaults instead. # The node configuration of the pool.
        &quot;accelerators&quot;: [ # 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.
          { # AcceleratorConfig represents a Hardware Accelerator request.
            &quot;acceleratorCount&quot;: &quot;A String&quot;, # The number of the accelerator cards exposed to an instance.
            &quot;acceleratorType&quot;: &quot;A String&quot;, # The accelerator type resource name. List of supported accelerators [here](https://cloud.google.com/compute/docs/gpus)
            &quot;gpuDriverInstallationConfig&quot;: { # GPUDriverInstallationConfig specifies the version of GPU driver to be auto installed. # The configuration for auto installation of GPU driver.
              &quot;gpuDriverVersion&quot;: &quot;A String&quot;, # Mode for how the GPU driver is installed.
            },
            &quot;gpuPartitionSize&quot;: &quot;A String&quot;, # Size of partitions to create on the GPU. Valid values are described in the NVIDIA [mig user guide](https://docs.nvidia.com/datacenter/tesla/mig-user-guide/#partitioning).
            &quot;gpuSharingConfig&quot;: { # GPUSharingConfig represents the GPU sharing configuration for Hardware Accelerators. # The configuration for GPU sharing options.
              &quot;gpuSharingStrategy&quot;: &quot;A String&quot;, # The type of GPU sharing strategy to enable on the GPU node.
              &quot;maxSharedClientsPerGpu&quot;: &quot;A String&quot;, # The max number of containers that can share a physical GPU.
            },
          },
        ],
        &quot;advancedMachineFeatures&quot;: { # Specifies options for controlling advanced machine features. # Advanced features for the Compute Engine VM.
          &quot;enableNestedVirtualization&quot;: True or False, # Whether or not to enable nested virtualization (defaults to false).
          &quot;performanceMonitoringUnit&quot;: &quot;A String&quot;, # Type of Performance Monitoring Unit (PMU) requested on node pool instances. If unset, PMU will not be available to the node.
          &quot;threadsPerCore&quot;: &quot;A String&quot;, # The number of threads per physical core. To disable simultaneous multithreading (SMT) set this to 1. If unset, the maximum number of threads supported per core by the underlying processor is assumed.
        },
        &quot;bootDisk&quot;: { # BootDisk specifies the boot disk configuration for nodepools. # The boot disk configuration for the node pool.
          &quot;diskType&quot;: &quot;A String&quot;, # Disk type of the boot disk. (i.e. Hyperdisk-Balanced, PD-Balanced, etc.)
          &quot;provisionedIops&quot;: &quot;A String&quot;, # For Hyperdisk-Balanced only, the provisioned IOPS config value.
          &quot;provisionedThroughput&quot;: &quot;A String&quot;, # For Hyperdisk-Balanced only, the provisioned throughput config value.
          &quot;sizeGb&quot;: &quot;A String&quot;, # Disk size in GB. Replaces NodeConfig.disk_size_gb
        },
        &quot;bootDiskKmsKey&quot;: &quot;A String&quot;, #  The Customer Managed Encryption Key used to encrypt the boot disk attached to each node in the node pool. This should be of the form projects/[KEY_PROJECT_ID]/locations/[LOCATION]/keyRings/[RING_NAME]/cryptoKeys/[KEY_NAME]. For more information about protecting resources with Cloud KMS Keys please see: https://cloud.google.com/compute/docs/disks/customer-managed-encryption
        &quot;confidentialNodes&quot;: { # ConfidentialNodes is configuration for the confidential nodes feature, which makes nodes run on confidential VMs. # Confidential nodes config. All the nodes in the node pool will be Confidential VM once enabled.
          &quot;confidentialInstanceType&quot;: &quot;A String&quot;, # Defines the type of technology used by the confidential node.
          &quot;enabled&quot;: True or False, # Whether Confidential Nodes feature is enabled.
        },
        &quot;containerdConfig&quot;: { # ContainerdConfig contains configuration to customize containerd. # Parameters for containerd customization.
          &quot;privateRegistryAccessConfig&quot;: { # PrivateRegistryAccessConfig contains access configuration for private container registries. # PrivateRegistryAccessConfig is used to configure access configuration for private container registries.
            &quot;certificateAuthorityDomainConfig&quot;: [ # Private registry access configuration.
              { # CertificateAuthorityDomainConfig configures one or more fully qualified domain names (FQDN) to a specific certificate.
                &quot;fqdns&quot;: [ # List of fully qualified domain names (FQDN). Specifying port is supported. Wildcards are NOT supported. Examples: - my.customdomain.com - 10.0.1.2:5000
                  &quot;A String&quot;,
                ],
                &quot;gcpSecretManagerCertificateConfig&quot;: { # GCPSecretManagerCertificateConfig configures a secret from [Secret Manager](https://cloud.google.com/secret-manager). # Google Secret Manager (GCP) certificate configuration.
                  &quot;secretUri&quot;: &quot;A String&quot;, # Secret URI, in the form &quot;projects/$PROJECT_ID/secrets/$SECRET_NAME/versions/$VERSION&quot;. Version can be fixed (e.g. &quot;2&quot;) or &quot;latest&quot;
                },
              },
            ],
            &quot;enabled&quot;: True or False, # Private registry access is enabled.
          },
          &quot;writableCgroups&quot;: { # Defines writable cgroups configuration. # Optional. WritableCgroups defines writable cgroups configuration for the node pool.
            &quot;enabled&quot;: True or False, # Optional. Whether writable cgroups is enabled.
          },
        },
        &quot;diskSizeGb&quot;: 42, # 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.
        &quot;diskType&quot;: &quot;A String&quot;, # Type of the disk attached to each node (e.g. &#x27;pd-standard&#x27;, &#x27;pd-ssd&#x27; or &#x27;pd-balanced&#x27;) If unspecified, the default disk type is &#x27;pd-standard&#x27;
        &quot;effectiveCgroupMode&quot;: &quot;A String&quot;, # Output only. effective_cgroup_mode is the cgroup mode actually used by the node pool. It is determined by the cgroup mode specified in the LinuxNodeConfig or the default cgroup mode based on the cluster creation version.
        &quot;enableConfidentialStorage&quot;: True or False, # Optional. Reserved for future use.
        &quot;ephemeralStorageLocalSsdConfig&quot;: { # EphemeralStorageLocalSsdConfig contains configuration for the node ephemeral storage using Local SSDs. # Parameters for the node ephemeral storage using Local SSDs. If unspecified, ephemeral storage is backed by the boot disk.
          &quot;dataCacheCount&quot;: 42, # Number of local SSDs to use for GKE Data Cache.
          &quot;localSsdCount&quot;: 42, # Number of local SSDs to use to back ephemeral storage. Uses NVMe interfaces. A zero (or unset) value has different meanings depending on machine type being used: 1. For pre-Gen3 machines, which support flexible numbers of local ssds, zero (or unset) means to disable using local SSDs as ephemeral storage. The limit for this value is dependent upon the maximum number of disk available on a machine per zone. See: https://cloud.google.com/compute/docs/disks/local-ssd for more information. 2. For Gen3 machines which dictate a specific number of local ssds, zero (or unset) means to use the default number of local ssds that goes with that machine type. For example, for a c3-standard-8-lssd machine, 2 local ssds would be provisioned. For c3-standard-8 (which doesn&#x27;t support local ssds), 0 will be provisioned. See https://cloud.google.com/compute/docs/disks/local-ssd#choose_number_local_ssds for more info.
        },
        &quot;fastSocket&quot;: { # Configuration of Fast Socket feature. # Enable or disable NCCL fast socket for the node pool.
          &quot;enabled&quot;: True or False, # Whether Fast Socket features are enabled in the node pool.
        },
        &quot;flexStart&quot;: True or False, # Flex Start flag for enabling Flex Start VM.
        &quot;gcfsConfig&quot;: { # GcfsConfig contains configurations of Google Container File System (image streaming). # Google Container File System (image streaming) configs.
          &quot;enabled&quot;: True or False, # Whether to use GCFS.
        },
        &quot;gvnic&quot;: { # Configuration of gVNIC feature. # Enable or disable gvnic in the node pool.
          &quot;enabled&quot;: True or False, # Whether gVNIC features are enabled in the node pool.
        },
        &quot;imageType&quot;: &quot;A String&quot;, # The image type to use for this node. Note that for a given image type, the latest version of it will be used. Please see https://cloud.google.com/kubernetes-engine/docs/concepts/node-images for available image types.
        &quot;kubeletConfig&quot;: { # Node kubelet configs. # Node kubelet configs.
          &quot;allowedUnsafeSysctls&quot;: [ # Optional. Defines a comma-separated allowlist of unsafe sysctls or sysctl patterns (ending in `*`). The unsafe namespaced sysctl groups are `kernel.shm*`, `kernel.msg*`, `kernel.sem`, `fs.mqueue.*`, and `net.*`. Leaving this allowlist empty means they cannot be set on Pods. To allow certain sysctls or sysctl patterns to be set on Pods, list them separated by commas. For example: `kernel.msg*,net.ipv4.route.min_pmtu`. See https://kubernetes.io/docs/tasks/administer-cluster/sysctl-cluster/ for more details.
            &quot;A String&quot;,
          ],
          &quot;containerLogMaxFiles&quot;: 42, # Optional. Defines the maximum number of container log files that can be present for a container. See https://kubernetes.io/docs/concepts/cluster-administration/logging/#log-rotation The value must be an integer between 2 and 10, inclusive. The default value is 5 if unspecified.
          &quot;containerLogMaxSize&quot;: &quot;A String&quot;, # Optional. Defines the maximum size of the container log file before it is rotated. See https://kubernetes.io/docs/concepts/cluster-administration/logging/#log-rotation Valid format is positive number + unit, e.g. 100Ki, 10Mi. Valid units are Ki, Mi, Gi. The value must be between 10Mi and 500Mi, inclusive. Note that the total container log size (container_log_max_size * container_log_max_files) cannot exceed 1% of the total storage of the node, to avoid disk pressure caused by log files. The default value is 10Mi if unspecified.
          &quot;cpuCfsQuota&quot;: True or False, # 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 &#x27;true&#x27; if unspecified.
          &quot;cpuCfsQuotaPeriod&quot;: &quot;A String&quot;, # Set the CPU CFS quota period value &#x27;cpu.cfs_period_us&#x27;. The string must be a sequence of decimal numbers, each with optional fraction and a unit suffix, such as &quot;300ms&quot;. Valid time units are &quot;ns&quot;, &quot;us&quot; (or &quot;µs&quot;), &quot;ms&quot;, &quot;s&quot;, &quot;m&quot;, &quot;h&quot;. The value must be a positive duration between 1ms and 1 second, inclusive.
          &quot;cpuManagerPolicy&quot;: &quot;A String&quot;, # Control the CPU management policy on the node. See https://kubernetes.io/docs/tasks/administer-cluster/cpu-management-policies/ The following values are allowed. * &quot;none&quot;: the default, which represents the existing scheduling behavior. * &quot;static&quot;: allows pods with certain resource characteristics to be granted increased CPU affinity and exclusivity on the node. The default value is &#x27;none&#x27; if unspecified.
          &quot;evictionMaxPodGracePeriodSeconds&quot;: 42, # Optional. eviction_max_pod_grace_period_seconds is the maximum allowed grace period (in seconds) to use when terminating pods in response to a soft eviction threshold being met. This value effectively caps the Pod&#x27;s terminationGracePeriodSeconds value during soft evictions. Default: 0. Range: [0, 300].
          &quot;evictionMinimumReclaim&quot;: { # Eviction minimum reclaims are the resource amounts of minimum reclaims for each eviction signal. # Optional. eviction_minimum_reclaim is a map of signal names to quantities that defines minimum reclaims, which describe the minimum amount of a given resource the kubelet will reclaim when performing a pod eviction while that resource is under pressure.
            &quot;imagefsAvailable&quot;: &quot;A String&quot;, # Optional. Minimum reclaim for eviction due to imagefs available signal. Only take percentage value for now. Sample format: &quot;10%&quot;. Must be &lt;=10%. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
            &quot;imagefsInodesFree&quot;: &quot;A String&quot;, # Optional. Minimum reclaim for eviction due to imagefs inodes free signal. Only take percentage value for now. Sample format: &quot;10%&quot;. Must be &lt;=10%. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
            &quot;memoryAvailable&quot;: &quot;A String&quot;, # Optional. Minimum reclaim for eviction due to memory available signal. Only take percentage value for now. Sample format: &quot;10%&quot;. Must be &lt;=10%. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
            &quot;nodefsAvailable&quot;: &quot;A String&quot;, # Optional. Minimum reclaim for eviction due to nodefs available signal. Only take percentage value for now. Sample format: &quot;10%&quot;. Must be &lt;=10%. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
            &quot;nodefsInodesFree&quot;: &quot;A String&quot;, # Optional. Minimum reclaim for eviction due to nodefs inodes free signal. Only take percentage value for now. Sample format: &quot;10%&quot;. Must be &lt;=10%. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
            &quot;pidAvailable&quot;: &quot;A String&quot;, # Optional. Minimum reclaim for eviction due to pid available signal. Only take percentage value for now. Sample format: &quot;10%&quot;. Must be &lt;=10%. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
          },
          &quot;evictionSoft&quot;: { # Eviction signals are the current state of a particular resource at a specific point in time. The kubelet uses eviction signals to make eviction decisions by comparing the signals to eviction thresholds, which are the minimum amount of the resource that should be available on the node. # Optional. eviction_soft is a map of signal names to quantities that defines soft eviction thresholds. Each signal is compared to its corresponding threshold to determine if a pod eviction should occur.
            &quot;imagefsAvailable&quot;: &quot;A String&quot;, # Optional. Amount of storage available on filesystem that container runtime uses for storing images layers. If the container filesystem and image filesystem are not separate, then imagefs can store both image layers and writeable layers. Defines the amount of &quot;imagefs.available&quot; signal in kubelet. Default is unset, if not specified in the kubelet config. It takses percentage value for now. Sample format: &quot;30%&quot;. Must be &gt;= 15% and &lt;= 50%. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
            &quot;imagefsInodesFree&quot;: &quot;A String&quot;, # Optional. Amount of inodes available on filesystem that container runtime uses for storing images layers. Defines the amount of &quot;imagefs.inodesFree&quot; signal in kubelet. Default is unset, if not specified in the kubelet config. Linux only. It takses percentage value for now. Sample format: &quot;30%&quot;. Must be &gt;= 5% and &lt;= 50%. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
            &quot;memoryAvailable&quot;: &quot;A String&quot;, # Optional. Memory available (i.e. capacity - workingSet), in bytes. Defines the amount of &quot;memory.available&quot; signal in kubelet. Default is unset, if not specified in the kubelet config. Format: positive number + unit, e.g. 100Ki, 10Mi, 5Gi. Valid units are Ki, Mi, Gi. Must be &gt;= 100Mi and &lt;= 50% of the node&#x27;s memory. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
            &quot;nodefsAvailable&quot;: &quot;A String&quot;, # Optional. Amount of storage available on filesystem that kubelet uses for volumes, daemon logs, etc. Defines the amount of &quot;nodefs.available&quot; signal in kubelet. Default is unset, if not specified in the kubelet config. It takses percentage value for now. Sample format: &quot;30%&quot;. Must be &gt;= 10% and &lt;= 50%. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
            &quot;nodefsInodesFree&quot;: &quot;A String&quot;, # Optional. Amount of inodes available on filesystem that kubelet uses for volumes, daemon logs, etc. Defines the amount of &quot;nodefs.inodesFree&quot; signal in kubelet. Default is unset, if not specified in the kubelet config. Linux only. It takses percentage value for now. Sample format: &quot;30%&quot;. Must be &gt;= 5% and &lt;= 50%. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
            &quot;pidAvailable&quot;: &quot;A String&quot;, # Optional. Amount of PID available for pod allocation. Defines the amount of &quot;pid.available&quot; signal in kubelet. Default is unset, if not specified in the kubelet config. It takses percentage value for now. Sample format: &quot;30%&quot;. Must be &gt;= 10% and &lt;= 50%. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
          },
          &quot;evictionSoftGracePeriod&quot;: { # Eviction grace periods are grace periods for each eviction signal. # Optional. eviction_soft_grace_period is a map of signal names to quantities that defines grace periods for each soft eviction signal. The grace period is the amount of time that a pod must be under pressure before an eviction occurs.
            &quot;imagefsAvailable&quot;: &quot;A String&quot;, # Optional. Grace period for eviction due to imagefs available signal. Sample format: &quot;10s&quot;. Must be &gt;= 0. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
            &quot;imagefsInodesFree&quot;: &quot;A String&quot;, # Optional. Grace period for eviction due to imagefs inodes free signal. Sample format: &quot;10s&quot;. Must be &gt;= 0. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
            &quot;memoryAvailable&quot;: &quot;A String&quot;, # Optional. Grace period for eviction due to memory available signal. Sample format: &quot;10s&quot;. Must be &gt;= 0. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
            &quot;nodefsAvailable&quot;: &quot;A String&quot;, # Optional. Grace period for eviction due to nodefs available signal. Sample format: &quot;10s&quot;. Must be &gt;= 0. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
            &quot;nodefsInodesFree&quot;: &quot;A String&quot;, # Optional. Grace period for eviction due to nodefs inodes free signal. Sample format: &quot;10s&quot;. Must be &gt;= 0. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
            &quot;pidAvailable&quot;: &quot;A String&quot;, # Optional. Grace period for eviction due to pid available signal. Sample format: &quot;10s&quot;. Must be &gt;= 0. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
          },
          &quot;imageGcHighThresholdPercent&quot;: 42, # Optional. Defines the percent of disk usage after which image garbage collection is always run. The percent is calculated as this field value out of 100. The value must be between 10 and 85, inclusive and greater than image_gc_low_threshold_percent. The default value is 85 if unspecified.
          &quot;imageGcLowThresholdPercent&quot;: 42, # Optional. Defines the percent of disk usage before which image garbage collection is never run. Lowest disk usage to garbage collect to. The percent is calculated as this field value out of 100. The value must be between 10 and 85, inclusive and smaller than image_gc_high_threshold_percent. The default value is 80 if unspecified.
          &quot;imageMaximumGcAge&quot;: &quot;A String&quot;, # Optional. Defines the maximum age an image can be unused before it is garbage collected. The string must be a sequence of decimal numbers, each with optional fraction and a unit suffix, such as &quot;300s&quot;, &quot;1.5h&quot;, and &quot;2h45m&quot;. Valid time units are &quot;ns&quot;, &quot;us&quot; (or &quot;µs&quot;), &quot;ms&quot;, &quot;s&quot;, &quot;m&quot;, &quot;h&quot;. The value must be a positive duration greater than image_minimum_gc_age or &quot;0s&quot;. The default value is &quot;0s&quot; if unspecified, which disables this field, meaning images won&#x27;t be garbage collected based on being unused for too long.
          &quot;imageMinimumGcAge&quot;: &quot;A String&quot;, # Optional. Defines the minimum age for an unused image before it is garbage collected. The string must be a sequence of decimal numbers, each with optional fraction and a unit suffix, such as &quot;300s&quot;, &quot;1.5h&quot;, and &quot;2h45m&quot;. Valid time units are &quot;ns&quot;, &quot;us&quot; (or &quot;µs&quot;), &quot;ms&quot;, &quot;s&quot;, &quot;m&quot;, &quot;h&quot;. The value must be a positive duration less than or equal to 2 minutes. The default value is &quot;2m0s&quot; if unspecified.
          &quot;insecureKubeletReadonlyPortEnabled&quot;: True or False, # Enable or disable Kubelet read only port.
          &quot;maxParallelImagePulls&quot;: 42, # Optional. Defines the maximum number of image pulls in parallel. The range is 2 to 5, inclusive. The default value is 2 or 3 depending on the disk type. See https://kubernetes.io/docs/concepts/containers/images/#maximum-parallel-image-pulls for more details.
          &quot;memoryManager&quot;: { # The option enables the Kubernetes NUMA-aware Memory Manager feature. Detailed description about the feature can be found [here](https://kubernetes.io/docs/tasks/administer-cluster/memory-manager/). # Optional. Controls NUMA-aware Memory Manager configuration on the node. For more information, see: https://kubernetes.io/docs/tasks/administer-cluster/memory-manager/
            &quot;policy&quot;: &quot;A String&quot;, # Controls the memory management policy on the Node. See https://kubernetes.io/docs/tasks/administer-cluster/memory-manager/#policies The following values are allowed. * &quot;none&quot; * &quot;static&quot; The default value is &#x27;none&#x27; if unspecified.
          },
          &quot;podPidsLimit&quot;: &quot;A String&quot;, # Set the Pod PID limits. See https://kubernetes.io/docs/concepts/policy/pid-limiting/#pod-pid-limits Controls the maximum number of processes allowed to run in a pod. The value must be greater than or equal to 1024 and less than 4194304.
          &quot;singleProcessOomKill&quot;: True or False, # Optional. Defines whether to enable single process OOM killer. If true, will prevent the memory.oom.group flag from being set for container cgroups in cgroups v2. This causes processes in the container to be OOM killed individually instead of as a group.
          &quot;topologyManager&quot;: { # TopologyManager defines the configuration options for Topology Manager feature. See https://kubernetes.io/docs/tasks/administer-cluster/topology-manager/ # Optional. Controls Topology Manager configuration on the node. For more information, see: https://kubernetes.io/docs/tasks/administer-cluster/topology-manager/
            &quot;policy&quot;: &quot;A String&quot;, # Configures the strategy for resource alignment. Allowed values are: * none: the default policy, and does not perform any topology alignment. * restricted: the topology manager stores the preferred NUMA node affinity for the container, and will reject the pod if the affinity if not preferred. * best-effort: the topology manager stores the preferred NUMA node affinity for the container. If the affinity is not preferred, the topology manager will admit the pod to the node anyway. * single-numa-node: the topology manager determines if the single NUMA node affinity is possible. If it is, Topology Manager will store this and the Hint Providers can then use this information when making the resource allocation decision. If, however, this is not possible then the Topology Manager will reject the pod from the node. This will result in a pod in a Terminated state with a pod admission failure. The default policy value is &#x27;none&#x27; if unspecified. Details about each strategy can be found [here](https://kubernetes.io/docs/tasks/administer-cluster/topology-manager/#topology-manager-policies).
            &quot;scope&quot;: &quot;A String&quot;, # The Topology Manager aligns resources in following scopes: * container * pod The default scope is &#x27;container&#x27; if unspecified. See https://kubernetes.io/docs/tasks/administer-cluster/topology-manager/#topology-manager-scopes
          },
        },
        &quot;labels&quot;: { # 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&#x27;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/
          &quot;a_key&quot;: &quot;A String&quot;,
        },
        &quot;linuxNodeConfig&quot;: { # Parameters that can be configured on Linux nodes. # Parameters that can be configured on Linux nodes.
          &quot;cgroupMode&quot;: &quot;A String&quot;, # cgroup_mode specifies the cgroup mode to be used on the node.
          &quot;hugepages&quot;: { # Hugepages amount in both 2m and 1g size # Optional. Amounts for 2M and 1G hugepages
            &quot;hugepageSize1g&quot;: 42, # Optional. Amount of 1G hugepages
            &quot;hugepageSize2m&quot;: 42, # Optional. Amount of 2M hugepages
          },
          &quot;nodeKernelModuleLoading&quot;: { # Configuration for kernel module loading on nodes. # Optional. Configuration for kernel module loading on nodes. When enabled, the node pool will be provisioned with a Container-Optimized OS image that enforces kernel module signature verification.
            &quot;policy&quot;: &quot;A String&quot;, # Set the node module loading policy for nodes in the node pool.
          },
          &quot;sysctls&quot;: { # The Linux kernel parameters to be applied to the nodes and all pods running on the nodes. The following parameters are supported. net.core.busy_poll net.core.busy_read net.core.netdev_max_backlog net.core.rmem_max net.core.rmem_default 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 net.ipv4.tcp_max_orphans net.netfilter.nf_conntrack_max net.netfilter.nf_conntrack_buckets net.netfilter.nf_conntrack_tcp_timeout_close_wait net.netfilter.nf_conntrack_tcp_timeout_time_wait net.netfilter.nf_conntrack_tcp_timeout_established net.netfilter.nf_conntrack_acct kernel.shmmni kernel.shmmax kernel.shmall fs.aio-max-nr fs.file-max fs.inotify.max_user_instances fs.inotify.max_user_watches fs.nr_open vm.dirty_background_ratio vm.dirty_expire_centisecs vm.dirty_ratio vm.dirty_writeback_centisecs vm.max_map_count vm.overcommit_memory vm.overcommit_ratio vm.vfs_cache_pressure vm.swappiness vm.watermark_scale_factor vm.min_free_kbytes
            &quot;a_key&quot;: &quot;A String&quot;,
          },
          &quot;transparentHugepageDefrag&quot;: &quot;A String&quot;, # Optional. Defines the transparent hugepage defrag configuration on the node. VM hugepage allocation can be managed by either limiting defragmentation for delayed allocation or skipping it entirely for immediate allocation only. See https://docs.kernel.org/admin-guide/mm/transhuge.html for more details.
          &quot;transparentHugepageEnabled&quot;: &quot;A String&quot;, # Optional. Transparent hugepage support for anonymous memory can be entirely disabled (mostly for debugging purposes) or only enabled inside MADV_HUGEPAGE regions (to avoid the risk of consuming more memory resources) or enabled system wide. See https://docs.kernel.org/admin-guide/mm/transhuge.html for more details.
        },
        &quot;localNvmeSsdBlockConfig&quot;: { # LocalNvmeSsdBlockConfig contains configuration for using raw-block local NVMe SSDs # Parameters for using raw-block Local NVMe SSDs.
          &quot;localSsdCount&quot;: 42, # Number of local NVMe SSDs to use. The limit for this value is dependent upon the maximum number of disk available on a machine per zone. See: https://cloud.google.com/compute/docs/disks/local-ssd for more information. A zero (or unset) value has different meanings depending on machine type being used: 1. For pre-Gen3 machines, which support flexible numbers of local ssds, zero (or unset) means to disable using local SSDs as ephemeral storage. 2. For Gen3 machines which dictate a specific number of local ssds, zero (or unset) means to use the default number of local ssds that goes with that machine type. For example, for a c3-standard-8-lssd machine, 2 local ssds would be provisioned. For c3-standard-8 (which doesn&#x27;t support local ssds), 0 will be provisioned. See https://cloud.google.com/compute/docs/disks/local-ssd#choose_number_local_ssds for more info.
        },
        &quot;localSsdCount&quot;: 42, # 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.
        &quot;localSsdEncryptionMode&quot;: &quot;A String&quot;, # Specifies which method should be used for encrypting the Local SSDs attached to the node.
        &quot;loggingConfig&quot;: { # NodePoolLoggingConfig specifies logging configuration for nodepools. # Logging configuration.
          &quot;variantConfig&quot;: { # LoggingVariantConfig specifies the behaviour of the logging component. # Logging variant configuration.
            &quot;variant&quot;: &quot;A String&quot;, # Logging variant deployed on nodes.
          },
        },
        &quot;machineType&quot;: &quot;A String&quot;, # The name of a Google Compute Engine [machine type](https://cloud.google.com/compute/docs/machine-types) If unspecified, the default machine type is `e2-medium`.
        &quot;maxRunDuration&quot;: &quot;A String&quot;, # The maximum duration for the nodes to exist. If unspecified, the nodes can exist indefinitely.
        &quot;metadata&quot;: { # The metadata key/value pairs assigned to instances in the cluster. Keys must conform to the regexp `[a-zA-Z0-9-_]+` and be less than 128 bytes in length. These are reflected as part of a URL in the metadata server. Additionally, to avoid ambiguity, keys must not conflict with any other metadata keys for the project or be one of the reserved keys: - &quot;cluster-location&quot; - &quot;cluster-name&quot; - &quot;cluster-uid&quot; - &quot;configure-sh&quot; - &quot;containerd-configure-sh&quot; - &quot;enable-os-login&quot; - &quot;gci-ensure-gke-docker&quot; - &quot;gci-metrics-enabled&quot; - &quot;gci-update-strategy&quot; - &quot;instance-template&quot; - &quot;kube-env&quot; - &quot;startup-script&quot; - &quot;user-data&quot; - &quot;disable-address-manager&quot; - &quot;windows-startup-script-ps1&quot; - &quot;common-psm1&quot; - &quot;k8s-node-setup-psm1&quot; - &quot;install-ssh-psm1&quot; - &quot;user-profile-psm1&quot; 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&#x27;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.
          &quot;a_key&quot;: &quot;A String&quot;,
        },
        &quot;minCpuPlatform&quot;: &quot;A String&quot;, # 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: &quot;Intel Haswell&quot;` or `minCpuPlatform: &quot;Intel Sandy Bridge&quot;`. For more information, read [how to specify min CPU platform](https://cloud.google.com/compute/docs/instances/specify-min-cpu-platform)
        &quot;nodeGroup&quot;: &quot;A String&quot;, # Setting this field will assign instances of this pool to run on the specified node group. This is useful for running workloads on [sole tenant nodes](https://cloud.google.com/compute/docs/nodes/sole-tenant-nodes).
        &quot;oauthScopes&quot;: [ # The set of Google API scopes to be made available on all of the node VMs under the &quot;default&quot; 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 [Artifact Registry](https://cloud.google.com/artifact-registry/)). If unspecified, no scopes are added, unless Cloud Logging or Cloud Monitoring are enabled, in which case their required scopes will be added.
          &quot;A String&quot;,
        ],
        &quot;preemptible&quot;: True or False, # 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.
        &quot;reservationAffinity&quot;: { # [ReservationAffinity](https://cloud.google.com/compute/docs/instances/reserving-zonal-resources) is the configuration of desired reservation which instances could take capacity from. # The optional reservation affinity. Setting this field will apply the specified [Zonal Compute Reservation](https://cloud.google.com/compute/docs/instances/reserving-zonal-resources) to this node pool.
          &quot;consumeReservationType&quot;: &quot;A String&quot;, # Corresponds to the type of reservation consumption.
          &quot;key&quot;: &quot;A String&quot;, # Corresponds to the label key of a reservation resource. To target a SPECIFIC_RESERVATION by name, specify &quot;compute.googleapis.com/reservation-name&quot; as the key and specify the name of your reservation as its value.
          &quot;values&quot;: [ # Corresponds to the label value(s) of reservation resource(s).
            &quot;A String&quot;,
          ],
        },
        &quot;resourceLabels&quot;: { # The resource labels for the node pool to use to annotate any related Google Compute Engine resources.
          &quot;a_key&quot;: &quot;A String&quot;,
        },
        &quot;resourceManagerTags&quot;: { # A map of resource manager tag keys and values to be attached to the nodes for managing Compute Engine firewalls using Network Firewall Policies. Tags must be according to specifications in https://cloud.google.com/vpc/docs/tags-firewalls-overview#specifications. A maximum of 5 tag key-value pairs can be specified. Existing tags will be replaced with new values. # A map of resource manager tag keys and values to be attached to the nodes.
          &quot;tags&quot;: { # TagKeyValue must be in one of the following formats ([KEY]=[VALUE]) 1. `tagKeys/{tag_key_id}=tagValues/{tag_value_id}` 2. `{org_id}/{tag_key_name}={tag_value_name}` 3. `{project_id}/{tag_key_name}={tag_value_name}`
            &quot;a_key&quot;: &quot;A String&quot;,
          },
        },
        &quot;sandboxConfig&quot;: { # SandboxConfig contains configurations of the sandbox to use for the node. # Sandbox configuration for this node.
          &quot;type&quot;: &quot;A String&quot;, # Type of the sandbox to use for the node.
        },
        &quot;secondaryBootDiskUpdateStrategy&quot;: { # SecondaryBootDiskUpdateStrategy is a placeholder which will be extended in the future to define different options for updating secondary boot disks. # Secondary boot disk update strategy.
        },
        &quot;secondaryBootDisks&quot;: [ # List of secondary boot disks attached to the nodes.
          { # SecondaryBootDisk represents a persistent disk attached to a node with special configurations based on its mode.
            &quot;diskImage&quot;: &quot;A String&quot;, # Fully-qualified resource ID for an existing disk image.
            &quot;mode&quot;: &quot;A String&quot;, # Disk mode (container image cache, etc.)
          },
        ],
        &quot;serviceAccount&quot;: &quot;A String&quot;, # 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 &quot;default&quot; service account is used.
        &quot;shieldedInstanceConfig&quot;: { # A set of Shielded Instance options. # Shielded Instance options.
          &quot;enableIntegrityMonitoring&quot;: True or False, # 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.
          &quot;enableSecureBoot&quot;: True or False, # 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.
        },
        &quot;soleTenantConfig&quot;: { # SoleTenantConfig contains the NodeAffinities to specify what shared sole tenant node groups should back the node pool. # Parameters for node pools to be backed by shared sole tenant node groups.
          &quot;minNodeCpus&quot;: 42, # Optional. The minimum number of virtual CPUs this instance will consume when running on a sole-tenant node. This field can only be set if the node pool is created in a shared sole-tenant node group.
          &quot;nodeAffinities&quot;: [ # NodeAffinities used to match to a shared sole tenant node group.
            { # Specifies the NodeAffinity key, values, and affinity operator according to [shared sole tenant node group affinities](https://cloud.google.com/compute/docs/nodes/sole-tenant-nodes#node_affinity_and_anti-affinity).
              &quot;key&quot;: &quot;A String&quot;, # Key for NodeAffinity.
              &quot;operator&quot;: &quot;A String&quot;, # Operator for NodeAffinity.
              &quot;values&quot;: [ # Values for NodeAffinity.
                &quot;A String&quot;,
              ],
            },
          ],
        },
        &quot;spot&quot;: True or False, # Spot flag for enabling Spot VM, which is a rebrand of the existing preemptible flag.
        &quot;storagePools&quot;: [ # List of Storage Pools where boot disks are provisioned.
          &quot;A String&quot;,
        ],
        &quot;tags&quot;: [ # 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.
          &quot;A String&quot;,
        ],
        &quot;taints&quot;: [ # 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/
          { # Kubernetes taint is composed of three fields: key, value, and effect. Effect can only be one of three types: NoSchedule, PreferNoSchedule or NoExecute. See [here](https://kubernetes.io/docs/concepts/configuration/taint-and-toleration) for more information, including usage and the valid values.
            &quot;effect&quot;: &quot;A String&quot;, # Effect for taint.
            &quot;key&quot;: &quot;A String&quot;, # Key for taint.
            &quot;value&quot;: &quot;A String&quot;, # Value for taint.
          },
        ],
        &quot;windowsNodeConfig&quot;: { # Parameters that can be configured on Windows nodes. Windows Node Config that define the parameters that will be used to configure the Windows node pool settings. # Parameters that can be configured on Windows nodes.
          &quot;osVersion&quot;: &quot;A String&quot;, # OSVersion specifies the Windows node config to be used on the node.
        },
        &quot;workloadMetadataConfig&quot;: { # WorkloadMetadataConfig defines the metadata configuration to expose to workloads on the node pool. # The workload metadata configuration for this node.
          &quot;mode&quot;: &quot;A String&quot;, # Mode is the configuration for how to expose metadata to workloads running on the node pool.
        },
      },
      &quot;etag&quot;: &quot;A String&quot;, # This checksum is computed by the server based on the value of node pool fields, and may be sent on update requests to ensure the client has an up-to-date value before proceeding.
      &quot;initialNodeCount&quot;: 42, # The initial node count for the pool. You must ensure that your Compute Engine [resource quota](https://cloud.google.com/compute/quotas) is sufficient for this number of instances. You must also have available firewall and routes quota.
      &quot;instanceGroupUrls&quot;: [ # Output only. The resource URLs of the [managed instance groups](https://cloud.google.com/compute/docs/instance-groups/creating-groups-of-managed-instances) associated with this node pool. During the node pool blue-green upgrade operation, the URLs contain both blue and green resources.
        &quot;A String&quot;,
      ],
      &quot;locations&quot;: [ # The list of Google Compute Engine [zones](https://cloud.google.com/compute/docs/zones#available) in which the NodePool&#x27;s nodes should be located. If this value is unspecified during node pool creation, the [Cluster.Locations](https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1/projects.locations.clusters#Cluster.FIELDS.locations) value will be used, instead. Warning: changing node pool locations will result in nodes being added and/or removed.
        &quot;A String&quot;,
      ],
      &quot;management&quot;: { # NodeManagement defines the set of node management services turned on for the node pool. # NodeManagement configuration for this NodePool.
        &quot;autoRepair&quot;: True or False, # 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.
        &quot;autoUpgrade&quot;: True or False, # 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.
        &quot;upgradeOptions&quot;: { # AutoUpgradeOptions defines the set of options for the user to control how the Auto Upgrades will proceed. # Specifies the Auto Upgrade knobs for the node pool.
          &quot;autoUpgradeStartTime&quot;: &quot;A String&quot;, # Output only. This field is set when upgrades are about to commence with the approximate start time for the upgrades, in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
          &quot;description&quot;: &quot;A String&quot;, # Output only. This field is set when upgrades are about to commence with the description of the upgrade.
        },
      },
      &quot;maxPodsConstraint&quot;: { # Constraints applied to pods. # The constraint on the maximum number of pods that can be run simultaneously on a node in the node pool.
        &quot;maxPodsPerNode&quot;: &quot;A String&quot;, # Constraint enforced on the max num of pods per node.
      },
      &quot;name&quot;: &quot;A String&quot;, # The name of the node pool.
      &quot;networkConfig&quot;: { # Parameters for node pool-level network config. # Networking configuration for this NodePool. If specified, it overrides the cluster-level defaults.
        &quot;additionalNodeNetworkConfigs&quot;: [ # We specify the additional node networks for this node pool using this list. Each node network corresponds to an additional interface
          { # AdditionalNodeNetworkConfig is the configuration for additional node networks within the NodeNetworkConfig message
            &quot;network&quot;: &quot;A String&quot;, # Name of the VPC where the additional interface belongs
            &quot;subnetwork&quot;: &quot;A String&quot;, # Name of the subnetwork where the additional interface belongs
          },
        ],
        &quot;additionalPodNetworkConfigs&quot;: [ # We specify the additional pod networks for this node pool using this list. Each pod network corresponds to an additional alias IP range for the node
          { # AdditionalPodNetworkConfig is the configuration for additional pod networks within the NodeNetworkConfig message
            &quot;maxPodsPerNode&quot;: { # Constraints applied to pods. # The maximum number of pods per node which use this pod network.
              &quot;maxPodsPerNode&quot;: &quot;A String&quot;, # Constraint enforced on the max num of pods per node.
            },
            &quot;networkAttachment&quot;: &quot;A String&quot;, # The name of the network attachment for pods to communicate to; cannot be specified along with subnetwork or secondary_pod_range.
            &quot;secondaryPodRange&quot;: &quot;A String&quot;, # The name of the secondary range on the subnet which provides IP address for this pod range.
            &quot;subnetwork&quot;: &quot;A String&quot;, # Name of the subnetwork where the additional pod network belongs.
          },
        ],
        &quot;createPodRange&quot;: True or False, # 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. Only applicable if `ip_allocation_policy.use_ip_aliases` is true. This field cannot be changed after the node pool has been created.
        &quot;enablePrivateNodes&quot;: True or False, # Whether nodes have internal IP addresses only. If enable_private_nodes is not specified, then the value is derived from Cluster.NetworkConfig.default_enable_private_nodes
        &quot;networkPerformanceConfig&quot;: { # Configuration of all network bandwidth tiers # Network bandwidth tier configuration.
          &quot;totalEgressBandwidthTier&quot;: &quot;A String&quot;, # Specifies the total network bandwidth tier for the NodePool.
        },
        &quot;networkTierConfig&quot;: { # NetworkTierConfig contains network tier information. # Output only. The network tier configuration for the node pool inherits from the cluster-level configuration and remains immutable throughout the node pool&#x27;s lifecycle, including during upgrades.
          &quot;networkTier&quot;: &quot;A String&quot;, # Network tier configuration.
        },
        &quot;podCidrOverprovisionConfig&quot;: { # [PRIVATE FIELD] Config for pod CIDR size overprovisioning. # [PRIVATE FIELD] Pod CIDR size overprovisioning config for the nodepool. Pod CIDR size per node depends on max_pods_per_node. By default, the value of max_pods_per_node is rounded off to next power of 2 and we then double that to get the size of pod CIDR block per node. Example: max_pods_per_node of 30 would result in 64 IPs (/26). This config can disable the doubling of IPs (we still round off to next power of 2) Example: max_pods_per_node of 30 will result in 32 IPs (/27) when overprovisioning is disabled.
          &quot;disable&quot;: True or False, # Whether Pod CIDR overprovisioning is disabled. Note: Pod CIDR overprovisioning is enabled by default.
        },
        &quot;podIpv4CidrBlock&quot;: &quot;A String&quot;, # 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 [CIDR](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing) notation (e.g. `10.96.0.0/14`) to pick a specific range to use. Only applicable if `ip_allocation_policy.use_ip_aliases` is true. This field cannot be changed after the node pool has been created.
        &quot;podIpv4RangeUtilization&quot;: 3.14, # Output only. The utilization of the IPv4 range for the pod. The ratio is Usage/[Total number of IPs in the secondary range], Usage=numNodes*numZones*podIPsPerNode.
        &quot;podRange&quot;: &quot;A String&quot;, # 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. Only applicable if `ip_allocation_policy.use_ip_aliases` is true. This field cannot be changed after the node pool has been created.
        &quot;subnetwork&quot;: &quot;A String&quot;, # Output only. The subnetwork path for the node pool. Format: projects/{project}/regions/{region}/subnetworks/{subnetwork} If the cluster is associated with multiple subnetworks, the subnetwork for the node pool is picked based on the IP utilization during node pool creation and is immutable.
      },
      &quot;placementPolicy&quot;: { # PlacementPolicy defines the placement policy used by the node pool. # Specifies the node placement policy.
        &quot;policyName&quot;: &quot;A String&quot;, # If set, refers to the name of a custom resource policy supplied by the user. The resource policy must be in the same project and region as the node pool. If not found, InvalidArgument error is returned.
        &quot;tpuTopology&quot;: &quot;A String&quot;, # Optional. TPU placement topology for pod slice node pool. https://cloud.google.com/tpu/docs/types-topologies#tpu_topologies
        &quot;type&quot;: &quot;A String&quot;, # The type of placement.
      },
      &quot;podIpv4CidrSize&quot;: 42, # Output only. The pod CIDR block size per node in this node pool.
      &quot;queuedProvisioning&quot;: { # QueuedProvisioning defines the queued provisioning used by the node pool. # Specifies the configuration of queued provisioning.
        &quot;enabled&quot;: True or False, # Denotes that this nodepool is QRM specific, meaning nodes can be only obtained through queuing via the Cluster Autoscaler ProvisioningRequest API.
      },
      &quot;selfLink&quot;: &quot;A String&quot;, # Output only. Server-defined URL for the resource.
      &quot;status&quot;: &quot;A String&quot;, # Output only. The status of the nodes in this pool instance.
      &quot;statusMessage&quot;: &quot;A String&quot;, # Output only. Deprecated. Use conditions instead. Additional information about the current status of this node pool instance, if available.
      &quot;updateInfo&quot;: { # UpdateInfo contains resource (instance groups, etc), status and other intermediate information relevant to a node pool upgrade. # Output only. Update info contains relevant information during a node pool update.
        &quot;blueGreenInfo&quot;: { # Information relevant to blue-green upgrade. # Information of a blue-green upgrade.
          &quot;blueInstanceGroupUrls&quot;: [ # The resource URLs of the [managed instance groups] (/compute/docs/instance-groups/creating-groups-of-managed-instances) associated with blue pool.
            &quot;A String&quot;,
          ],
          &quot;bluePoolDeletionStartTime&quot;: &quot;A String&quot;, # Time to start deleting blue pool to complete blue-green upgrade, in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
          &quot;greenInstanceGroupUrls&quot;: [ # The resource URLs of the [managed instance groups] (/compute/docs/instance-groups/creating-groups-of-managed-instances) associated with green pool.
            &quot;A String&quot;,
          ],
          &quot;greenPoolVersion&quot;: &quot;A String&quot;, # Version of green pool.
          &quot;phase&quot;: &quot;A String&quot;, # Current blue-green upgrade phase.
        },
      },
      &quot;upgradeSettings&quot;: { # These upgrade settings control the level of parallelism and the level of disruption caused by an upgrade. maxUnavailable controls the number of nodes that can be simultaneously unavailable. maxSurge controls the number of additional nodes that can be added to the node pool temporarily for the time of the upgrade to increase the number of available nodes. (maxUnavailable + maxSurge) determines the level of parallelism (how many nodes are being upgraded at the same time). Note: upgrades inevitably introduce some disruption since workloads need to be moved from old nodes to new, upgraded ones. Even if maxUnavailable=0, this holds true. (Disruption stays within the limits of PodDisruptionBudget, if it is configured.) Consider a hypothetical node pool with 5 nodes having maxSurge=2, maxUnavailable=1. This means the upgrade process upgrades 3 nodes simultaneously. It creates 2 additional (upgraded) nodes, then it brings down 3 old (not yet upgraded) nodes at the same time. This ensures that there are always at least 4 nodes available. These upgrade settings configure the upgrade strategy for the node pool. Use strategy to switch between the strategies applied to the node pool. If the strategy is ROLLING, use max_surge and max_unavailable to control the level of parallelism and the level of disruption caused by upgrade. 1. maxSurge controls the number of additional nodes that can be added to the node pool temporarily for the time of the upgrade to increase the number of available nodes. 2. maxUnavailable controls the number of nodes that can be simultaneously unavailable. 3. (maxUnavailable + maxSurge) determines the level of parallelism (how many nodes are being upgraded at the same time). If the strategy is BLUE_GREEN, use blue_green_settings to configure the blue-green upgrade related settings. 1. standard_rollout_policy is the default policy. The policy is used to control the way blue pool gets drained. The draining is executed in the batch mode. The batch size could be specified as either percentage of the node pool size or the number of nodes. batch_soak_duration is the soak time after each batch gets drained. 2. node_pool_soak_duration is the soak time after all blue nodes are drained. After this period, the blue pool nodes will be deleted. # Upgrade settings control disruption and speed of the upgrade.
        &quot;blueGreenSettings&quot;: { # Settings for blue-green upgrade. # Settings for blue-green upgrade strategy.
          &quot;autoscaledRolloutPolicy&quot;: { # Autoscaled rollout policy utilizes the cluster autoscaler during blue-green upgrade to scale both the blue and green pools. # Autoscaled policy for cluster autoscaler enabled blue-green upgrade.
            &quot;waitForDrainDuration&quot;: &quot;A String&quot;, # Optional. Time to wait after cordoning the blue pool before draining the nodes. Defaults to 3 days. The value can be set between 0 and 7 days, inclusive.
          },
          &quot;nodePoolSoakDuration&quot;: &quot;A String&quot;, # Time needed after draining entire blue pool. After this period, blue pool will be cleaned up.
          &quot;standardRolloutPolicy&quot;: { # Standard rollout policy is the default policy for blue-green. # Standard policy for the blue-green upgrade.
            &quot;batchNodeCount&quot;: 42, # Number of blue nodes to drain in a batch.
            &quot;batchPercentage&quot;: 3.14, # Percentage of the blue pool nodes to drain in a batch. The range of this field should be (0.0, 1.0].
            &quot;batchSoakDuration&quot;: &quot;A String&quot;, # Soak time after each batch gets drained. Default to zero.
          },
        },
        &quot;maxSurge&quot;: 42, # The maximum number of nodes that can be created beyond the current size of the node pool during the upgrade process.
        &quot;maxUnavailable&quot;: 42, # The maximum number of nodes that can be simultaneously unavailable during the upgrade process. A node is considered available if its status is Ready.
        &quot;strategy&quot;: &quot;A String&quot;, # Update strategy of the node pool.
      },
      &quot;version&quot;: &quot;A String&quot;, # The version of Kubernetes running on this NodePool&#x27;s nodes. If unspecified, it defaults as described [here](https://cloud.google.com/kubernetes-engine/versioning#specifying_node_version).
    },
  ],
  &quot;notificationConfig&quot;: { # NotificationConfig is the configuration of notifications. # Notification configuration of the cluster.
    &quot;pubsub&quot;: { # Pub/Sub specific notification config. # Notification config for Pub/Sub.
      &quot;enabled&quot;: True or False, # Enable notifications for Pub/Sub.
      &quot;filter&quot;: { # Allows filtering to one or more specific event types. If event types are present, those and only those event types will be transmitted to the cluster. Other types will be skipped. If no filter is specified, or no event types are present, all event types will be sent # Allows filtering to one or more specific event types. If no filter is specified, or if a filter is specified with no event types, all event types will be sent
        &quot;eventType&quot;: [ # Event types to allowlist.
          &quot;A String&quot;,
        ],
      },
      &quot;topic&quot;: &quot;A String&quot;, # The desired Pub/Sub topic to which notifications will be sent by GKE. Format is `projects/{project}/topics/{topic}`.
    },
  },
  &quot;parentProductConfig&quot;: { # ParentProductConfig is the configuration of the parent product of the cluster. This field is used by Google internal products that are built on top of a GKE cluster and take the ownership of the cluster. # The configuration of the parent product of the cluster. This field is used by Google internal products that are built on top of the GKE cluster and take the ownership of the cluster.
    &quot;labels&quot;: { # Labels contain the configuration of the parent product.
      &quot;a_key&quot;: &quot;A String&quot;,
    },
    &quot;productName&quot;: &quot;A String&quot;, # Name of the parent product associated with the cluster.
  },
  &quot;podAutoscaling&quot;: { # PodAutoscaling is used for configuration of parameters for workload autoscaling. # The config for pod autoscaling.
    &quot;hpaProfile&quot;: &quot;A String&quot;, # Selected Horizontal Pod Autoscaling profile.
  },
  &quot;privateClusterConfig&quot;: { # Configuration options for private clusters. # Configuration for private cluster.
    &quot;enablePrivateEndpoint&quot;: True or False, # Whether the master&#x27;s internal IP address is used as the cluster endpoint. Deprecated: Use ControlPlaneEndpointsConfig.IPEndpointsConfig.enable_public_endpoint instead. Note that the value of enable_public_endpoint is reversed: if enable_private_endpoint is false, then enable_public_endpoint will be true.
    &quot;enablePrivateNodes&quot;: True or False, # 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. Deprecated: Use NetworkConfig.default_enable_private_nodes instead.
    &quot;masterGlobalAccessConfig&quot;: { # Configuration for controlling master global access settings. # Controls master global access settings. Deprecated: Use ControlPlaneEndpointsConfig.IPEndpointsConfig.enable_global_access instead.
      &quot;enabled&quot;: True or False, # Whenever master is accessible globally or not.
    },
    &quot;masterIpv4CidrBlock&quot;: &quot;A String&quot;, # 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&#x27;s network.
    &quot;peeringName&quot;: &quot;A String&quot;, # Output only. The peering name in the customer VPC used by this cluster.
    &quot;privateEndpoint&quot;: &quot;A String&quot;, # Output only. The internal IP address of this cluster&#x27;s master endpoint. Deprecated: Use ControlPlaneEndpointsConfig.IPEndpointsConfig.private_endpoint instead.
    &quot;privateEndpointSubnetwork&quot;: &quot;A String&quot;, # Subnet to provision the master&#x27;s private endpoint during cluster creation. Specified in projects/*/regions/*/subnetworks/* format. Deprecated: Use ControlPlaneEndpointsConfig.IPEndpointsConfig.private_endpoint_subnetwork instead.
    &quot;publicEndpoint&quot;: &quot;A String&quot;, # Output only. The external IP address of this cluster&#x27;s master endpoint. Deprecated:Use ControlPlaneEndpointsConfig.IPEndpointsConfig.public_endpoint instead.
  },
  &quot;rbacBindingConfig&quot;: { # RBACBindingConfig allows user to restrict ClusterRoleBindings an RoleBindings that can be created. # RBACBindingConfig allows user to restrict ClusterRoleBindings an RoleBindings that can be created.
    &quot;enableInsecureBindingSystemAuthenticated&quot;: True or False, # Setting this to true will allow any ClusterRoleBinding and RoleBinding with subjects system:authenticated.
    &quot;enableInsecureBindingSystemUnauthenticated&quot;: True or False, # Setting this to true will allow any ClusterRoleBinding and RoleBinding with subjets system:anonymous or system:unauthenticated.
  },
  &quot;releaseChannel&quot;: { # ReleaseChannel indicates which release channel a cluster is subscribed to. Release channels are arranged in order of risk. When a cluster is subscribed to a release channel, Google maintains both the master version and the node version. Node auto-upgrade defaults to true and cannot be disabled. # Release channel configuration. If left unspecified on cluster creation and a version is specified, the cluster is enrolled in the most mature release channel where the version is available (first checking STABLE, then REGULAR, and finally RAPID). Otherwise, if no release channel configuration and no version is specified, the cluster is enrolled in the REGULAR channel with its default version.
    &quot;channel&quot;: &quot;A String&quot;, # channel specifies which release channel the cluster is subscribed to.
  },
  &quot;resourceLabels&quot;: { # The resource labels for the cluster to use to annotate any related Google Compute Engine resources.
    &quot;a_key&quot;: &quot;A String&quot;,
  },
  &quot;resourceUsageExportConfig&quot;: { # Configuration for exporting cluster resource usages. # Configuration for exporting resource usages. Resource usage export is disabled when this config is unspecified.
    &quot;bigqueryDestination&quot;: { # Parameters for using BigQuery as the destination of resource usage export. # Configuration to use BigQuery as usage export destination.
      &quot;datasetId&quot;: &quot;A String&quot;, # The ID of a BigQuery Dataset.
    },
    &quot;consumptionMeteringConfig&quot;: { # Parameters for controlling consumption metering. # Configuration to enable resource consumption metering.
      &quot;enabled&quot;: True or False, # Whether to enable consumption metering for this cluster. If enabled, a second BigQuery table will be created to hold resource consumption records.
    },
    &quot;enableNetworkEgressMetering&quot;: True or False, # Whether to enable network egress metering for this cluster. If enabled, a daemonset will be created in the cluster to meter network egress traffic.
  },
  &quot;satisfiesPzi&quot;: True or False, # Output only. Reserved for future use.
  &quot;satisfiesPzs&quot;: True or False, # Output only. Reserved for future use.
  &quot;secretManagerConfig&quot;: { # SecretManagerConfig is config for secret manager enablement. # Secret CSI driver configuration.
    &quot;enabled&quot;: True or False, # Enable/Disable Secret Manager Config.
    &quot;rotationConfig&quot;: { # RotationConfig is config for secret manager auto rotation. # Rotation config for secret manager.
      &quot;enabled&quot;: True or False, # Whether the rotation is enabled.
      &quot;rotationInterval&quot;: &quot;A String&quot;, # The interval between two consecutive rotations. Default rotation interval is 2 minutes.
    },
  },
  &quot;securityPostureConfig&quot;: { # SecurityPostureConfig defines the flags needed to enable/disable features for the Security Posture API. # Enable/Disable Security Posture API features for the cluster.
    &quot;mode&quot;: &quot;A String&quot;, # Sets which mode to use for Security Posture features.
    &quot;vulnerabilityMode&quot;: &quot;A String&quot;, # Sets which mode to use for vulnerability scanning.
  },
  &quot;selfLink&quot;: &quot;A String&quot;, # Output only. Server-defined URL for the resource.
  &quot;servicesIpv4Cidr&quot;: &quot;A String&quot;, # Output only. The IP address range of the Kubernetes services in this cluster, in [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing) notation (e.g. `1.2.3.4/29`). Service addresses are typically put in the last `/16` from the container CIDR.
  &quot;shieldedNodes&quot;: { # Configuration of Shielded Nodes feature. # Shielded Nodes configuration.
    &quot;enabled&quot;: True or False, # Whether Shielded Nodes features are enabled on all nodes in this cluster.
  },
  &quot;status&quot;: &quot;A String&quot;, # Output only. The current status of this cluster.
  &quot;statusMessage&quot;: &quot;A String&quot;, # Output only. Deprecated. Use conditions instead. Additional information about the current status of this cluster, if available.
  &quot;subnetwork&quot;: &quot;A String&quot;, # The name of the Google Compute Engine [subnetwork](https://cloud.google.com/compute/docs/subnetworks) to which the cluster is connected.
  &quot;tpuIpv4CidrBlock&quot;: &quot;A String&quot;, # Output only. The IP address range of the Cloud TPUs in this cluster, in [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing) notation (e.g. `1.2.3.4/29`). This field is deprecated due to the deprecation of 2VM TPU. The end of life date for 2VM TPU is 2025-04-25.
  &quot;userManagedKeysConfig&quot;: { # UserManagedKeysConfig holds the resource address to Keys which are used for signing certs and token that are used for communication within cluster. # The Custom keys configuration for the cluster.
    &quot;aggregationCa&quot;: &quot;A String&quot;, # The Certificate Authority Service caPool to use for the aggregation CA in this cluster.
    &quot;clusterCa&quot;: &quot;A String&quot;, # The Certificate Authority Service caPool to use for the cluster CA in this cluster.
    &quot;controlPlaneDiskEncryptionKey&quot;: &quot;A String&quot;, # The Cloud KMS cryptoKey to use for Confidential Hyperdisk on the control plane nodes.
    &quot;etcdApiCa&quot;: &quot;A String&quot;, # Resource path of the Certificate Authority Service caPool to use for the etcd API CA in this cluster.
    &quot;etcdPeerCa&quot;: &quot;A String&quot;, # Resource path of the Certificate Authority Service caPool to use for the etcd peer CA in this cluster.
    &quot;gkeopsEtcdBackupEncryptionKey&quot;: &quot;A String&quot;, # Resource path of the Cloud KMS cryptoKey to use for encryption of internal etcd backups.
    &quot;serviceAccountSigningKeys&quot;: [ # The Cloud KMS cryptoKeyVersions to use for signing service account JWTs issued by this cluster. Format: `projects/{project}/locations/{location}/keyRings/{keyring}/cryptoKeys/{cryptoKey}/cryptoKeyVersions/{cryptoKeyVersion}`
      &quot;A String&quot;,
    ],
    &quot;serviceAccountVerificationKeys&quot;: [ # The Cloud KMS cryptoKeyVersions to use for verifying service account JWTs issued by this cluster. Format: `projects/{project}/locations/{location}/keyRings/{keyring}/cryptoKeys/{cryptoKey}/cryptoKeyVersions/{cryptoKeyVersion}`
      &quot;A String&quot;,
    ],
  },
  &quot;verticalPodAutoscaling&quot;: { # VerticalPodAutoscaling contains global, per-cluster information required by Vertical Pod Autoscaler to automatically adjust the resources of pods controlled by it. # Cluster-level Vertical Pod Autoscaling configuration.
    &quot;enabled&quot;: True or False, # Enables vertical pod autoscaling.
  },
  &quot;workloadIdentityConfig&quot;: { # Configuration for the use of Kubernetes Service Accounts in IAM policies. # Configuration for the use of Kubernetes Service Accounts in IAM policies.
    &quot;workloadPool&quot;: &quot;A String&quot;, # The workload pool to attach all Kubernetes service accounts to.
  },
  &quot;zone&quot;: &quot;A String&quot;, # Output only. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster resides. This field is deprecated, use location instead.
}</pre>
</div>

<div class="method">
    <code class="details" id="getJwks">getJwks(parent, x__xgafv=None)</code>
  <pre>Gets the public component of the cluster signing keys in JSON Web Key format.

Args:
  parent: string, The cluster (project, location, cluster name) to get keys for. Specified in the format `projects/*/locations/*/clusters/*`. (required)
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # GetJSONWebKeysResponse is a valid JSON Web Key Set as specified in rfc 7517
  &quot;cacheHeader&quot;: { # RFC-2616: cache control support # For HTTP requests, this field is automatically extracted into the Cache-Control HTTP header.
    &quot;age&quot;: &quot;A String&quot;, # 14.6 response cache age, in seconds since the response is generated
    &quot;directive&quot;: &quot;A String&quot;, # 14.9 request and response directives
    &quot;expires&quot;: &quot;A String&quot;, # 14.21 response cache expires, in RFC 1123 date format
  },
  &quot;keys&quot;: [ # The public component of the keys used by the cluster to sign token requests.
    { # Jwk is a JSON Web Key as specified in RFC 7517
      &quot;alg&quot;: &quot;A String&quot;, # Algorithm.
      &quot;crv&quot;: &quot;A String&quot;, # Used for ECDSA keys.
      &quot;e&quot;: &quot;A String&quot;, # Used for RSA keys.
      &quot;kid&quot;: &quot;A String&quot;, # Key ID.
      &quot;kty&quot;: &quot;A String&quot;, # Key Type.
      &quot;n&quot;: &quot;A String&quot;, # Used for RSA keys.
      &quot;use&quot;: &quot;A String&quot;, # Permitted uses for the public keys.
      &quot;x&quot;: &quot;A String&quot;, # Used for ECDSA keys.
      &quot;y&quot;: &quot;A String&quot;, # Used for ECDSA keys.
    },
  ],
}</pre>
</div>

<div class="method">
    <code class="details" id="list">list(parent, projectId=None, x__xgafv=None, zone=None)</code>
  <pre>Lists all clusters owned by a project in either the specified zone or all zones.

Args:
  parent: string, The parent (project and location) where the clusters will be listed. Specified in the format `projects/*/locations/*`. Location &quot;-&quot; matches all zones and all regions. (required)
  projectId: string, Deprecated. The Google Developers Console [project ID or project number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). This field has been deprecated and replaced by the parent field.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format
  zone: string, Deprecated. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster resides, or &quot;-&quot; for all zones. This field has been deprecated and replaced by the parent field.

Returns:
  An object of the form:

    { # ListClustersResponse is the result of ListClustersRequest.
  &quot;clusters&quot;: [ # A list of clusters in the project in the specified zone, or across all ones.
    { # A Google Kubernetes Engine cluster.
      &quot;addonsConfig&quot;: { # Configuration for the addons that can be automatically spun up in the cluster, enabling additional functionality. # Configurations for the various addons available to run in the cluster.
        &quot;cloudRunConfig&quot;: { # Configuration options for the Cloud Run feature. # Configuration for the Cloud Run addon, which allows the user to use a managed Knative service.
          &quot;disabled&quot;: True or False, # Whether Cloud Run addon is enabled for this cluster.
          &quot;loadBalancerType&quot;: &quot;A String&quot;, # Which load balancer type is installed for Cloud Run.
        },
        &quot;configConnectorConfig&quot;: { # Configuration options for the Config Connector add-on. # Configuration for the ConfigConnector add-on, a Kubernetes extension to manage hosted Google Cloud services through the Kubernetes API.
          &quot;enabled&quot;: True or False, # Whether Cloud Connector is enabled for this cluster.
        },
        &quot;dnsCacheConfig&quot;: { # Configuration for NodeLocal DNSCache # Configuration for NodeLocalDNS, a dns cache running on cluster nodes
          &quot;enabled&quot;: True or False, # Whether NodeLocal DNSCache is enabled for this cluster.
        },
        &quot;gcePersistentDiskCsiDriverConfig&quot;: { # Configuration for the Compute Engine PD CSI driver. # Configuration for the Compute Engine Persistent Disk CSI driver.
          &quot;enabled&quot;: True or False, # Whether the Compute Engine PD CSI driver is enabled for this cluster.
        },
        &quot;gcpFilestoreCsiDriverConfig&quot;: { # Configuration for the Filestore CSI driver. # Configuration for the Filestore CSI driver.
          &quot;enabled&quot;: True or False, # Whether the Filestore CSI driver is enabled for this cluster.
        },
        &quot;gcsFuseCsiDriverConfig&quot;: { # Configuration for the Cloud Storage Fuse CSI driver. # Configuration for the Cloud Storage Fuse CSI driver.
          &quot;enabled&quot;: True or False, # Whether the Cloud Storage Fuse CSI driver is enabled for this cluster.
        },
        &quot;gkeBackupAgentConfig&quot;: { # Configuration for the Backup for GKE Agent. # Configuration for the Backup for GKE agent addon.
          &quot;enabled&quot;: True or False, # Whether the Backup for GKE agent is enabled for this cluster.
        },
        &quot;highScaleCheckpointingConfig&quot;: { # Configuration for the High Scale Checkpointing. # Configuration for the High Scale Checkpointing add-on.
          &quot;enabled&quot;: True or False, # Whether the High Scale Checkpointing is enabled for this cluster.
        },
        &quot;horizontalPodAutoscaling&quot;: { # Configuration options for the horizontal pod autoscaling feature, which increases or decreases the number of replica pods a replication controller has based on the resource usage of the existing pods. # 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.
          &quot;disabled&quot;: True or False, # Whether the Horizontal Pod Autoscaling feature is enabled in the cluster. When enabled, it ensures that metrics are collected into Stackdriver Monitoring.
        },
        &quot;httpLoadBalancing&quot;: { # Configuration options for the HTTP (L7) load balancing controller addon, which makes it easy to set up HTTP load balancers for services in a cluster. # Configuration for the HTTP (L7) load balancing controller addon, which makes it easy to set up HTTP load balancers for services in a cluster.
          &quot;disabled&quot;: True or False, # 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.
        },
        &quot;kubernetesDashboard&quot;: { # Configuration for the Kubernetes Dashboard. # Configuration for the Kubernetes Dashboard. This addon is deprecated, and will be disabled in 1.15. It is recommended to use the Cloud Console to manage and monitor your Kubernetes clusters, workloads and applications. For more information, see: https://cloud.google.com/kubernetes-engine/docs/concepts/dashboards
          &quot;disabled&quot;: True or False, # Whether the Kubernetes Dashboard is enabled for this cluster.
        },
        &quot;lustreCsiDriverConfig&quot;: { # Configuration for the Lustre CSI driver. # Configuration for the Lustre CSI driver.
          &quot;enableLegacyLustrePort&quot;: True or False, # If set to true, the Lustre CSI driver will install Lustre kernel modules using port 6988. This serves as a workaround for a port conflict with the gke-metadata-server. This field is required ONLY under the following conditions: 1. The GKE node version is older than 1.33.2-gke.4655000. 2. You&#x27;re connecting to a Lustre instance that has the &#x27;gke-support-enabled&#x27; flag.
          &quot;enabled&quot;: True or False, # Whether the Lustre CSI driver is enabled for this cluster.
        },
        &quot;networkPolicyConfig&quot;: { # 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. # 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.
          &quot;disabled&quot;: True or False, # Whether NetworkPolicy is enabled for this cluster.
        },
        &quot;parallelstoreCsiDriverConfig&quot;: { # Configuration for the Cloud Storage Parallelstore CSI driver. # Configuration for the Cloud Storage Parallelstore CSI driver.
          &quot;enabled&quot;: True or False, # Whether the Cloud Storage Parallelstore CSI driver is enabled for this cluster.
        },
        &quot;rayOperatorConfig&quot;: { # Configuration options for the Ray Operator add-on. # Optional. Configuration for Ray Operator addon.
          &quot;enabled&quot;: True or False, # Whether the Ray Operator addon is enabled for this cluster.
          &quot;rayClusterLoggingConfig&quot;: { # RayClusterLoggingConfig specifies configuration of Ray logging. # Optional. Logging configuration for Ray clusters.
            &quot;enabled&quot;: True or False, # Enable log collection for Ray clusters.
          },
          &quot;rayClusterMonitoringConfig&quot;: { # RayClusterMonitoringConfig specifies monitoring configuration for Ray clusters. # Optional. Monitoring configuration for Ray clusters.
            &quot;enabled&quot;: True or False, # Enable metrics collection for Ray clusters.
          },
        },
        &quot;statefulHaConfig&quot;: { # Configuration for the Stateful HA add-on. # Optional. Configuration for the StatefulHA add-on.
          &quot;enabled&quot;: True or False, # Whether the Stateful HA add-on is enabled for this cluster.
        },
      },
      &quot;alphaClusterFeatureGates&quot;: [ # The list of user specified Kubernetes feature gates. Each string represents the activation status of a feature gate (e.g. &quot;featureX=true&quot; or &quot;featureX=false&quot;)
        &quot;A String&quot;,
      ],
      &quot;anonymousAuthenticationConfig&quot;: { # AnonymousAuthenticationConfig defines the settings needed to limit endpoints that allow anonymous authentication. # Configuration for limiting anonymous access to all endpoints except the health checks.
        &quot;mode&quot;: &quot;A String&quot;, # Defines the mode of limiting anonymous access in the cluster.
      },
      &quot;authenticatorGroupsConfig&quot;: { # Configuration for returning group information from authenticators. # Configuration controlling RBAC group membership information.
        &quot;enabled&quot;: True or False, # Whether this cluster should return group membership lookups during authentication using a group of security groups.
        &quot;securityGroup&quot;: &quot;A String&quot;, # The name of the security group-of-groups to be used. Only relevant if enabled = true.
      },
      &quot;autopilot&quot;: { # Autopilot is the configuration for Autopilot settings on the cluster. # Autopilot configuration for the cluster.
        &quot;enabled&quot;: True or False, # Enable Autopilot
        &quot;privilegedAdmissionConfig&quot;: { # PrivilegedAdmissionConfig stores the list of authorized allowlist paths for the cluster. # PrivilegedAdmissionConfig is the configuration related to privileged admission control.
          &quot;allowlistPaths&quot;: [ # The customer allowlist Cloud Storage paths for the cluster. These paths are used with the `--autopilot-privileged-admission` flag to authorize privileged workloads in Autopilot clusters. Paths can be GKE-owned, in the format `gke:////`, or customer-owned, in the format `gs:///`. Wildcards (`*`) are supported to authorize all allowlists under specific paths or directories. Example: `gs://my-bucket/*` will authorize all allowlists under the `my-bucket` bucket.
            &quot;A String&quot;,
          ],
        },
        &quot;workloadPolicyConfig&quot;: { # WorkloadPolicyConfig is the configuration related to GCW workload policy # WorkloadPolicyConfig is the configuration related to GCW workload policy
          &quot;allowNetAdmin&quot;: True or False, # If true, workloads can use NET_ADMIN capability.
          &quot;autopilotCompatibilityAuditingEnabled&quot;: True or False, # If true, enables the GCW Auditor that audits workloads on standard clusters.
        },
      },
      &quot;autoscaling&quot;: { # ClusterAutoscaling contains global, per-cluster information required by Cluster Autoscaler to automatically adjust the size of the cluster and create/delete node pools based on the current needs. # Cluster-level autoscaling configuration.
        &quot;autoprovisioningLocations&quot;: [ # The list of Google Compute Engine [zones](https://cloud.google.com/compute/docs/zones#available) in which the NodePool&#x27;s nodes can be created by NAP.
          &quot;A String&quot;,
        ],
        &quot;autoprovisioningNodePoolDefaults&quot;: { # AutoprovisioningNodePoolDefaults contains defaults for a node pool created by NAP. # AutoprovisioningNodePoolDefaults contains defaults for a node pool created by NAP.
          &quot;bootDiskKmsKey&quot;: &quot;A String&quot;, # The Customer Managed Encryption Key used to encrypt the boot disk attached to each node in the node pool. This should be of the form projects/[KEY_PROJECT_ID]/locations/[LOCATION]/keyRings/[RING_NAME]/cryptoKeys/[KEY_NAME]. For more information about protecting resources with Cloud KMS Keys please see: https://cloud.google.com/compute/docs/disks/customer-managed-encryption
          &quot;diskSizeGb&quot;: 42, # 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.
          &quot;diskType&quot;: &quot;A String&quot;, # Type of the disk attached to each node (e.g. &#x27;pd-standard&#x27;, &#x27;pd-ssd&#x27; or &#x27;pd-balanced&#x27;) If unspecified, the default disk type is &#x27;pd-standard&#x27;
          &quot;imageType&quot;: &quot;A String&quot;, # The image type to use for NAP created node. Please see https://cloud.google.com/kubernetes-engine/docs/concepts/node-images for available image types.
          &quot;insecureKubeletReadonlyPortEnabled&quot;: True or False, # DEPRECATED. Use NodePoolAutoConfig.NodeKubeletConfig instead.
          &quot;management&quot;: { # NodeManagement defines the set of node management services turned on for the node pool. # Specifies the node management options for NAP created node-pools.
            &quot;autoRepair&quot;: True or False, # 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.
            &quot;autoUpgrade&quot;: True or False, # 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.
            &quot;upgradeOptions&quot;: { # AutoUpgradeOptions defines the set of options for the user to control how the Auto Upgrades will proceed. # Specifies the Auto Upgrade knobs for the node pool.
              &quot;autoUpgradeStartTime&quot;: &quot;A String&quot;, # Output only. This field is set when upgrades are about to commence with the approximate start time for the upgrades, in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
              &quot;description&quot;: &quot;A String&quot;, # Output only. This field is set when upgrades are about to commence with the description of the upgrade.
            },
          },
          &quot;minCpuPlatform&quot;: &quot;A String&quot;, # Deprecated. 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 [how to specify min CPU platform](https://cloud.google.com/compute/docs/instances/specify-min-cpu-platform). This field is deprecated, min_cpu_platform should be specified using `cloud.google.com/requested-min-cpu-platform` label selector on the pod. To unset the min cpu platform field pass &quot;automatic&quot; as field value.
          &quot;oauthScopes&quot;: [ # Scopes that are used by NAP when creating node pools.
            &quot;A String&quot;,
          ],
          &quot;serviceAccount&quot;: &quot;A String&quot;, # The Google Cloud Platform Service Account to be used by the node VMs.
          &quot;shieldedInstanceConfig&quot;: { # A set of Shielded Instance options. # Shielded Instance options.
            &quot;enableIntegrityMonitoring&quot;: True or False, # 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.
            &quot;enableSecureBoot&quot;: True or False, # 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.
          },
          &quot;upgradeSettings&quot;: { # These upgrade settings control the level of parallelism and the level of disruption caused by an upgrade. maxUnavailable controls the number of nodes that can be simultaneously unavailable. maxSurge controls the number of additional nodes that can be added to the node pool temporarily for the time of the upgrade to increase the number of available nodes. (maxUnavailable + maxSurge) determines the level of parallelism (how many nodes are being upgraded at the same time). Note: upgrades inevitably introduce some disruption since workloads need to be moved from old nodes to new, upgraded ones. Even if maxUnavailable=0, this holds true. (Disruption stays within the limits of PodDisruptionBudget, if it is configured.) Consider a hypothetical node pool with 5 nodes having maxSurge=2, maxUnavailable=1. This means the upgrade process upgrades 3 nodes simultaneously. It creates 2 additional (upgraded) nodes, then it brings down 3 old (not yet upgraded) nodes at the same time. This ensures that there are always at least 4 nodes available. These upgrade settings configure the upgrade strategy for the node pool. Use strategy to switch between the strategies applied to the node pool. If the strategy is ROLLING, use max_surge and max_unavailable to control the level of parallelism and the level of disruption caused by upgrade. 1. maxSurge controls the number of additional nodes that can be added to the node pool temporarily for the time of the upgrade to increase the number of available nodes. 2. maxUnavailable controls the number of nodes that can be simultaneously unavailable. 3. (maxUnavailable + maxSurge) determines the level of parallelism (how many nodes are being upgraded at the same time). If the strategy is BLUE_GREEN, use blue_green_settings to configure the blue-green upgrade related settings. 1. standard_rollout_policy is the default policy. The policy is used to control the way blue pool gets drained. The draining is executed in the batch mode. The batch size could be specified as either percentage of the node pool size or the number of nodes. batch_soak_duration is the soak time after each batch gets drained. 2. node_pool_soak_duration is the soak time after all blue nodes are drained. After this period, the blue pool nodes will be deleted. # Specifies the upgrade settings for NAP created node pools
            &quot;blueGreenSettings&quot;: { # Settings for blue-green upgrade. # Settings for blue-green upgrade strategy.
              &quot;autoscaledRolloutPolicy&quot;: { # Autoscaled rollout policy utilizes the cluster autoscaler during blue-green upgrade to scale both the blue and green pools. # Autoscaled policy for cluster autoscaler enabled blue-green upgrade.
                &quot;waitForDrainDuration&quot;: &quot;A String&quot;, # Optional. Time to wait after cordoning the blue pool before draining the nodes. Defaults to 3 days. The value can be set between 0 and 7 days, inclusive.
              },
              &quot;nodePoolSoakDuration&quot;: &quot;A String&quot;, # Time needed after draining entire blue pool. After this period, blue pool will be cleaned up.
              &quot;standardRolloutPolicy&quot;: { # Standard rollout policy is the default policy for blue-green. # Standard policy for the blue-green upgrade.
                &quot;batchNodeCount&quot;: 42, # Number of blue nodes to drain in a batch.
                &quot;batchPercentage&quot;: 3.14, # Percentage of the blue pool nodes to drain in a batch. The range of this field should be (0.0, 1.0].
                &quot;batchSoakDuration&quot;: &quot;A String&quot;, # Soak time after each batch gets drained. Default to zero.
              },
            },
            &quot;maxSurge&quot;: 42, # The maximum number of nodes that can be created beyond the current size of the node pool during the upgrade process.
            &quot;maxUnavailable&quot;: 42, # The maximum number of nodes that can be simultaneously unavailable during the upgrade process. A node is considered available if its status is Ready.
            &quot;strategy&quot;: &quot;A String&quot;, # Update strategy of the node pool.
          },
        },
        &quot;autoscalingProfile&quot;: &quot;A String&quot;, # Defines autoscaling behaviour.
        &quot;defaultComputeClassConfig&quot;: { # DefaultComputeClassConfig defines default compute class configuration. # Default compute class is a configuration for default compute class.
          &quot;enabled&quot;: True or False, # Enables default compute class.
        },
        &quot;enableNodeAutoprovisioning&quot;: True or False, # Enables automatic node pool creation and deletion.
        &quot;resourceLimits&quot;: [ # Contains global constraints regarding minimum and maximum amount of resources in the cluster.
          { # Contains information about amount of some resource in the cluster. For memory, value should be in GB.
            &quot;maximum&quot;: &quot;A String&quot;, # Maximum amount of the resource in the cluster.
            &quot;minimum&quot;: &quot;A String&quot;, # Minimum amount of the resource in the cluster.
            &quot;resourceType&quot;: &quot;A String&quot;, # Resource name &quot;cpu&quot;, &quot;memory&quot; or gpu-specific string.
          },
        ],
      },
      &quot;binaryAuthorization&quot;: { # Configuration for Binary Authorization. # Configuration for Binary Authorization.
        &quot;enabled&quot;: True or False, # This field is deprecated. Leave this unset and instead configure BinaryAuthorization using evaluation_mode. If evaluation_mode is set to anything other than EVALUATION_MODE_UNSPECIFIED, this field is ignored.
        &quot;evaluationMode&quot;: &quot;A String&quot;, # Mode of operation for binauthz policy evaluation. If unspecified, defaults to DISABLED.
      },
      &quot;clusterIpv4Cidr&quot;: &quot;A String&quot;, # The IP address range of the container pods in this cluster, in [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing) notation (e.g. `10.96.0.0/14`). Leave blank to have one automatically chosen or specify a `/14` block in `10.0.0.0/8`.
      &quot;compliancePostureConfig&quot;: { # CompliancePostureConfig defines the settings needed to enable/disable features for the Compliance Posture. # Enable/Disable Compliance Posture features for the cluster.
        &quot;complianceStandards&quot;: [ # List of enabled compliance standards.
          { # Defines the details of a compliance standard.
            &quot;standard&quot;: &quot;A String&quot;, # Name of the compliance standard.
          },
        ],
        &quot;mode&quot;: &quot;A String&quot;, # Defines the enablement mode for Compliance Posture.
      },
      &quot;conditions&quot;: [ # Which conditions caused the current cluster state.
        { # StatusCondition describes why a cluster or a node pool has a certain status (e.g., ERROR or DEGRADED).
          &quot;canonicalCode&quot;: &quot;A String&quot;, # Canonical code of the condition.
          &quot;code&quot;: &quot;A String&quot;, # Machine-friendly representation of the condition Deprecated. Use canonical_code instead.
          &quot;message&quot;: &quot;A String&quot;, # Human-friendly representation of the condition
        },
      ],
      &quot;confidentialNodes&quot;: { # ConfidentialNodes is configuration for the confidential nodes feature, which makes nodes run on confidential VMs. # Configuration of Confidential Nodes. All the nodes in the cluster will be Confidential VM once enabled.
        &quot;confidentialInstanceType&quot;: &quot;A String&quot;, # Defines the type of technology used by the confidential node.
        &quot;enabled&quot;: True or False, # Whether Confidential Nodes feature is enabled.
      },
      &quot;controlPlaneEndpointsConfig&quot;: { # Configuration for all of the cluster&#x27;s control plane endpoints. # Configuration for all cluster&#x27;s control plane endpoints.
        &quot;dnsEndpointConfig&quot;: { # Describes the configuration of a DNS endpoint. # DNS endpoint configuration.
          &quot;allowExternalTraffic&quot;: True or False, # Controls whether user traffic is allowed over this endpoint. Note that Google-managed services may still use the endpoint even if this is false.
          &quot;enableK8sCertsViaDns&quot;: True or False, # Controls whether the k8s certs auth is allowed via DNS.
          &quot;enableK8sTokensViaDns&quot;: True or False, # Controls whether the k8s token auth is allowed via DNS.
          &quot;endpoint&quot;: &quot;A String&quot;, # Output only. The cluster&#x27;s DNS endpoint configuration. A DNS format address. This is accessible from the public internet. Ex: uid.us-central1.gke.goog. Always present, but the behavior may change according to the value of DNSEndpointConfig.allow_external_traffic.
        },
        &quot;ipEndpointsConfig&quot;: { # IP endpoints configuration. # IP endpoints configuration.
          &quot;authorizedNetworksConfig&quot;: { # Configuration options for the master authorized networks feature. Enabled master authorized networks will disallow all external traffic to access Kubernetes master through HTTPS except traffic from the given CIDR blocks, Google Compute Engine Public IPs and Google Prod IPs. # Configuration of authorized networks. If enabled, restricts access to the control plane based on source IP. It is invalid to specify both Cluster.masterAuthorizedNetworksConfig and this field at the same time.
            &quot;cidrBlocks&quot;: [ # cidr_blocks define up to 50 external networks that could access Kubernetes master through HTTPS.
              { # CidrBlock contains an optional name and one CIDR block.
                &quot;cidrBlock&quot;: &quot;A String&quot;, # cidr_block must be specified in CIDR notation.
                &quot;displayName&quot;: &quot;A String&quot;, # display_name is an optional field for users to identify CIDR blocks.
              },
            ],
            &quot;enabled&quot;: True or False, # Whether or not master authorized networks is enabled.
            &quot;gcpPublicCidrsAccessEnabled&quot;: True or False, # Whether master is accessible via Google Compute Engine Public IP addresses.
            &quot;privateEndpointEnforcementEnabled&quot;: True or False, # Whether master authorized networks is enforced on private endpoint or not.
          },
          &quot;enablePublicEndpoint&quot;: True or False, # Controls whether the control plane allows access through a public IP. It is invalid to specify both PrivateClusterConfig.enablePrivateEndpoint and this field at the same time.
          &quot;enabled&quot;: True or False, # Controls whether to allow direct IP access.
          &quot;globalAccess&quot;: True or False, # Controls whether the control plane&#x27;s private endpoint is accessible from sources in other regions. It is invalid to specify both PrivateClusterMasterGlobalAccessConfig.enabled and this field at the same time.
          &quot;privateEndpoint&quot;: &quot;A String&quot;, # Output only. The internal IP address of this cluster&#x27;s control plane. Only populated if enabled.
          &quot;privateEndpointSubnetwork&quot;: &quot;A String&quot;, # Subnet to provision the master&#x27;s private endpoint during cluster creation. Specified in projects/*/regions/*/subnetworks/* format. It is invalid to specify both PrivateClusterConfig.privateEndpointSubnetwork and this field at the same time.
          &quot;publicEndpoint&quot;: &quot;A String&quot;, # Output only. The external IP address of this cluster&#x27;s control plane. Only populated if enabled.
        },
      },
      &quot;costManagementConfig&quot;: { # Configuration for fine-grained cost management feature. # Configuration for the fine-grained cost management feature.
        &quot;enabled&quot;: True or False, # Whether the feature is enabled or not.
      },
      &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time the cluster was created, in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
      &quot;currentMasterVersion&quot;: &quot;A String&quot;, # Output only. The current software version of the master endpoint.
      &quot;currentNodeCount&quot;: 42, # Output only. The number of nodes currently in the cluster. Deprecated. Call Kubernetes API directly to retrieve node information.
      &quot;currentNodeVersion&quot;: &quot;A String&quot;, # Output only. Deprecated, use [NodePools.version](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&#x27;re in the process of being upgraded, this reflects the minimum version of all nodes.
      &quot;databaseEncryption&quot;: { # Configuration of etcd encryption. # Configuration of etcd encryption.
        &quot;currentState&quot;: &quot;A String&quot;, # Output only. The current state of etcd encryption.
        &quot;decryptionKeys&quot;: [ # Output only. Keys in use by the cluster for decrypting existing objects, in addition to the key in `key_name`. Each item is a CloudKMS key resource.
          &quot;A String&quot;,
        ],
        &quot;keyName&quot;: &quot;A String&quot;, # Name of CloudKMS key to use for the encryption of secrets in etcd. Ex. projects/my-project/locations/global/keyRings/my-ring/cryptoKeys/my-key
        &quot;lastOperationErrors&quot;: [ # Output only. Records errors seen during DatabaseEncryption update operations.
          { # OperationError records errors seen from CloudKMS keys encountered during updates to DatabaseEncryption configuration.
            &quot;errorMessage&quot;: &quot;A String&quot;, # Description of the error seen during the operation.
            &quot;keyName&quot;: &quot;A String&quot;, # CloudKMS key resource that had the error.
            &quot;timestamp&quot;: &quot;A String&quot;, # Time when the CloudKMS error was seen.
          },
        ],
        &quot;state&quot;: &quot;A String&quot;, # The desired state of etcd encryption.
      },
      &quot;defaultMaxPodsConstraint&quot;: { # Constraints applied to pods. # 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.
        &quot;maxPodsPerNode&quot;: &quot;A String&quot;, # Constraint enforced on the max num of pods per node.
      },
      &quot;description&quot;: &quot;A String&quot;, # An optional description of this cluster.
      &quot;enableK8sBetaApis&quot;: { # K8sBetaAPIConfig , configuration for beta APIs # Beta APIs Config
        &quot;enabledApis&quot;: [ # Enabled k8s beta APIs.
          &quot;A String&quot;,
        ],
      },
      &quot;enableKubernetesAlpha&quot;: True or False, # Kubernetes alpha features are enabled on this cluster. This includes alpha API groups (e.g. v1alpha1) and features that may not be production ready in the kubernetes version of the master and nodes. The cluster has no SLA for uptime and master/node upgrades are disabled. Alpha enabled clusters are automatically deleted thirty days after creation.
      &quot;enableTpu&quot;: True or False, # Enable the ability to use Cloud TPUs in this cluster. This field is deprecated due to the deprecation of 2VM TPU. The end of life date for 2VM TPU is 2025-04-25.
      &quot;endpoint&quot;: &quot;A String&quot;, # Output only. The IP address of this cluster&#x27;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.
      &quot;enterpriseConfig&quot;: { # EnterpriseConfig is the cluster enterprise configuration. Deprecated: GKE Enterprise features are now available without an Enterprise tier. # GKE Enterprise Configuration. Deprecated: GKE Enterprise features are now available without an Enterprise tier.
        &quot;clusterTier&quot;: &quot;A String&quot;, # Output only. cluster_tier indicates the effective tier of the cluster.
        &quot;desiredTier&quot;: &quot;A String&quot;, # desired_tier specifies the desired tier of the cluster.
      },
      &quot;etag&quot;: &quot;A String&quot;, # This checksum is computed by the server based on the value of cluster fields, and may be sent on update requests to ensure the client has an up-to-date value before proceeding.
      &quot;expireTime&quot;: &quot;A String&quot;, # Output only. The time the cluster will be automatically deleted in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
      &quot;fleet&quot;: { # Fleet is the fleet configuration for the cluster. # Fleet information for the cluster.
        &quot;membership&quot;: &quot;A String&quot;, # Output only. The full resource name of the registered fleet membership of the cluster, in the format `//gkehub.googleapis.com/projects/*/locations/*/memberships/*`.
        &quot;membershipType&quot;: &quot;A String&quot;, # The type of the cluster&#x27;s fleet membership.
        &quot;preRegistered&quot;: True or False, # Output only. Whether the cluster has been registered through the fleet API.
        &quot;project&quot;: &quot;A String&quot;, # The Fleet host project(project ID or project number) where this cluster will be registered to. This field cannot be changed after the cluster has been registered.
      },
      &quot;gkeAutoUpgradeConfig&quot;: { # GkeAutoUpgradeConfig is the configuration for GKE auto upgrades. # Configuration for GKE auto upgrades.
        &quot;patchMode&quot;: &quot;A String&quot;, # PatchMode specifies how auto upgrade patch builds should be selected.
      },
      &quot;id&quot;: &quot;A String&quot;, # Output only. Unique id for the cluster.
      &quot;identityServiceConfig&quot;: { # IdentityServiceConfig is configuration for Identity Service which allows customers to use external identity providers with the K8S API # Configuration for Identity Service component.
        &quot;enabled&quot;: True or False, # Whether to enable the Identity Service component
      },
      &quot;initialClusterVersion&quot;: &quot;A String&quot;, # 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: - &quot;latest&quot;: picks the highest valid Kubernetes version - &quot;1.X&quot;: picks the highest valid patch+gke.N patch in the 1.X version - &quot;1.X.Y&quot;: picks the highest valid gke.N patch in the 1.X.Y version - &quot;1.X.Y-gke.N&quot;: picks an explicit Kubernetes version - &quot;&quot;,&quot;-&quot;: picks the default Kubernetes version
      &quot;initialNodeCount&quot;: 42, # The number of nodes to create in this cluster. You must ensure that your Compute Engine [resource quota](https://cloud.google.com/compute/quotas) is sufficient for this number of instances. You must also have available firewall and routes quota. For requests, this field should only be used in lieu of a &quot;node_pool&quot; object, since this configuration (along with the &quot;node_config&quot;) will be used to create a &quot;NodePool&quot; object with an auto-generated name. Do not use this and a node_pool at the same time. This field is deprecated, use node_pool.initial_node_count instead.
      &quot;instanceGroupUrls&quot;: [ # Output only. Deprecated. Use node_pools.instance_group_urls.
        &quot;A String&quot;,
      ],
      &quot;ipAllocationPolicy&quot;: { # Configuration for controlling how IPs are allocated in the cluster. # Configuration for cluster IP allocation.
        &quot;additionalIpRangesConfigs&quot;: [ # Output only. The additional IP ranges that are added to the cluster. These IP ranges can be used by new node pools to allocate node and pod IPs automatically. Each AdditionalIPRangesConfig corresponds to a single subnetwork. Once a range is removed it will not show up in IPAllocationPolicy.
          { # AdditionalIPRangesConfig is the configuration for individual additional subnetwork attached to the cluster
            &quot;podIpv4RangeNames&quot;: [ # List of secondary ranges names within this subnetwork that can be used for pod IPs. Example1: gke-pod-range1 Example2: gke-pod-range1,gke-pod-range2
              &quot;A String&quot;,
            ],
            &quot;subnetwork&quot;: &quot;A String&quot;, # Name of the subnetwork. This can be the full path of the subnetwork or just the name. Example1: my-subnet Example2: projects/gke-project/regions/us-central1/subnetworks/my-subnet
          },
        ],
        &quot;additionalPodRangesConfig&quot;: { # AdditionalPodRangesConfig is the configuration for additional pod secondary ranges supporting the ClusterUpdate message. # Output only. The additional pod ranges that are added to the cluster. These pod ranges can be used by new node pools to allocate pod IPs automatically. Once the range is removed it will not show up in IPAllocationPolicy.
          &quot;podRangeInfo&quot;: [ # Output only. Information for additional pod range.
            { # RangeInfo contains the range name and the range utilization by this cluster.
              &quot;rangeName&quot;: &quot;A String&quot;, # Output only. Name of a range.
              &quot;utilization&quot;: 3.14, # Output only. The utilization of the range.
            },
          ],
          &quot;podRangeNames&quot;: [ # Name for pod secondary ipv4 range which has the actual range defined ahead.
            &quot;A String&quot;,
          ],
        },
        &quot;autoIpamConfig&quot;: { # AutoIpamConfig contains all information related to Auto IPAM # Optional. AutoIpamConfig contains all information related to Auto IPAM
          &quot;enabled&quot;: True or False, # The flag that enables Auto IPAM on this cluster
        },
        &quot;clusterIpv4Cidr&quot;: &quot;A String&quot;, # This field is deprecated, use cluster_ipv4_cidr_block.
        &quot;clusterIpv4CidrBlock&quot;: &quot;A String&quot;, # The IP address range for the cluster pod IPs. If this field is set, then `cluster.cluster_ipv4_cidr` must be left blank. This field is only applicable when `use_ip_aliases` is true. Set to blank to have a range chosen with the default size. Set to /netmask (e.g. `/14`) to have a range chosen with a specific netmask. Set to a [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing) notation (e.g. `10.96.0.0/14`) from the RFC-1918 private networks (e.g. `10.0.0.0/8`, `172.16.0.0/12`, `192.168.0.0/16`) to pick a specific range to use.
        &quot;clusterSecondaryRangeName&quot;: &quot;A String&quot;, # The name of the secondary range to be used for the cluster CIDR block. The secondary range will be used for pod IP addresses. This must be an existing secondary range associated with the cluster subnetwork. This field is only applicable with use_ip_aliases is true and create_subnetwork is false.
        &quot;createSubnetwork&quot;: True or False, # Whether a new subnetwork will be created automatically for the cluster. This field is only applicable when `use_ip_aliases` is true.
        &quot;defaultPodIpv4RangeUtilization&quot;: 3.14, # Output only. The utilization of the cluster default IPv4 range for the pod. The ratio is Usage/[Total number of IPs in the secondary range], Usage=numNodes*numZones*podIPsPerNode.
        &quot;ipv6AccessType&quot;: &quot;A String&quot;, # The ipv6 access type (internal or external) when create_subnetwork is true
        &quot;networkTierConfig&quot;: { # NetworkTierConfig contains network tier information. # Cluster-level network tier configuration is used to determine the default network tier for external IP addresses on cluster resources, such as node pools and load balancers.
          &quot;networkTier&quot;: &quot;A String&quot;, # Network tier configuration.
        },
        &quot;nodeIpv4Cidr&quot;: &quot;A String&quot;, # This field is deprecated, use node_ipv4_cidr_block.
        &quot;nodeIpv4CidrBlock&quot;: &quot;A String&quot;, # The IP address range of the instance IPs in this cluster. This is applicable only if `create_subnetwork` is true. Set to blank to have a range chosen with the default size. Set to /netmask (e.g. `/14`) to have a range chosen with a specific netmask. Set to a [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing) notation (e.g. `10.96.0.0/14`) from the RFC-1918 private networks (e.g. `10.0.0.0/8`, `172.16.0.0/12`, `192.168.0.0/16`) to pick a specific range to use.
        &quot;podCidrOverprovisionConfig&quot;: { # [PRIVATE FIELD] Config for pod CIDR size overprovisioning. # [PRIVATE FIELD] Pod CIDR size overprovisioning config for the cluster. Pod CIDR size per node depends on max_pods_per_node. By default, the value of max_pods_per_node is doubled and then rounded off to next power of 2 to get the size of pod CIDR block per node. Example: max_pods_per_node of 30 would result in 64 IPs (/26). This config can disable the doubling of IPs (we still round off to next power of 2) Example: max_pods_per_node of 30 will result in 32 IPs (/27) when overprovisioning is disabled.
          &quot;disable&quot;: True or False, # Whether Pod CIDR overprovisioning is disabled. Note: Pod CIDR overprovisioning is enabled by default.
        },
        &quot;servicesIpv4Cidr&quot;: &quot;A String&quot;, # This field is deprecated, use services_ipv4_cidr_block.
        &quot;servicesIpv4CidrBlock&quot;: &quot;A String&quot;, # The IP address range of the services IPs in this cluster. If blank, a range will be automatically chosen with the default size. This field is only applicable when `use_ip_aliases` is true. Set to blank to have a range chosen with the default size. Set to /netmask (e.g. `/14`) to have a range chosen with a specific netmask. Set to a [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing) notation (e.g. `10.96.0.0/14`) from the RFC-1918 private networks (e.g. `10.0.0.0/8`, `172.16.0.0/12`, `192.168.0.0/16`) to pick a specific range to use.
        &quot;servicesIpv6CidrBlock&quot;: &quot;A String&quot;, # Output only. The services IPv6 CIDR block for the cluster.
        &quot;servicesSecondaryRangeName&quot;: &quot;A String&quot;, # The name of the secondary range to be used as for the services CIDR block. The secondary range will be used for service ClusterIPs. This must be an existing secondary range associated with the cluster subnetwork. This field is only applicable with use_ip_aliases is true and create_subnetwork is false.
        &quot;stackType&quot;: &quot;A String&quot;, # The IP stack type of the cluster
        &quot;subnetIpv6CidrBlock&quot;: &quot;A String&quot;, # Output only. The subnet&#x27;s IPv6 CIDR block used by nodes and pods.
        &quot;subnetworkName&quot;: &quot;A String&quot;, # A custom subnetwork name to be used if `create_subnetwork` is true. If this field is empty, then an automatic name will be chosen for the new subnetwork.
        &quot;tpuIpv4CidrBlock&quot;: &quot;A String&quot;, # The IP address range of the Cloud TPUs in this cluster. If unspecified, a range will be automatically chosen with the default size. This field is only applicable when `use_ip_aliases` is true. If unspecified, the range will use the default size. Set to /netmask (e.g. `/14`) to have a range chosen with a specific netmask. Set to a [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing) notation (e.g. `10.96.0.0/14`) from the RFC-1918 private networks (e.g. `10.0.0.0/8`, `172.16.0.0/12`, `192.168.0.0/16`) to pick a specific range to use. This field is deprecated due to the deprecation of 2VM TPU. The end of life date for 2VM TPU is 2025-04-25.
        &quot;useIpAliases&quot;: True or False, # Whether alias IPs will be used for pod IPs in the cluster. This is used in conjunction with use_routes. It cannot be true if use_routes is true. If both use_ip_aliases and use_routes are false, then the server picks the default IP allocation mode
        &quot;useRoutes&quot;: True or False, # 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
      },
      &quot;labelFingerprint&quot;: &quot;A String&quot;, # The fingerprint of the set of labels for this cluster.
      &quot;legacyAbac&quot;: { # Configuration for the legacy Attribute Based Access Control authorization mode. # Configuration for the legacy ABAC authorization mode.
        &quot;enabled&quot;: True or False, # 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.
      },
      &quot;location&quot;: &quot;A String&quot;, # Output only. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/regions-zones/regions-zones#available) or [region](https://cloud.google.com/compute/docs/regions-zones/regions-zones#available) in which the cluster resides.
      &quot;locations&quot;: [ # The list of Google Compute Engine [zones](https://cloud.google.com/compute/docs/zones#available) in which the cluster&#x27;s nodes should be located. This field provides a default value if [NodePool.Locations](https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1/projects.locations.clusters.nodePools#NodePool.FIELDS.locations) are not specified during node pool creation. Warning: changing cluster locations will update the [NodePool.Locations](https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1/projects.locations.clusters.nodePools#NodePool.FIELDS.locations) of all node pools and will result in nodes being added and/or removed.
        &quot;A String&quot;,
      ],
      &quot;loggingConfig&quot;: { # LoggingConfig is cluster logging configuration. # Logging configuration for the cluster.
        &quot;componentConfig&quot;: { # LoggingComponentConfig is cluster logging component configuration. # Logging components configuration
          &quot;enableComponents&quot;: [ # Select components to collect logs. An empty set would disable all logging.
            &quot;A String&quot;,
          ],
        },
      },
      &quot;loggingService&quot;: &quot;A String&quot;, # The logging service the cluster should use to write logs. Currently available options: * `logging.googleapis.com/kubernetes` - The Cloud Logging service with a Kubernetes-native resource model * `logging.googleapis.com` - The legacy Cloud Logging service (no longer available as of GKE 1.15). * `none` - no logs will be exported from the cluster. If left as an empty string,`logging.googleapis.com/kubernetes` will be used for GKE 1.14+ or `logging.googleapis.com` for earlier versions.
      &quot;maintenancePolicy&quot;: { # MaintenancePolicy defines the maintenance policy to be used for the cluster. # Configure the maintenance policy for this cluster.
        &quot;resourceVersion&quot;: &quot;A String&quot;, # A hash identifying the version of this policy, so that updates to fields of the policy won&#x27;t accidentally undo intermediate changes (and so that users of the API unaware of some fields won&#x27;t accidentally remove other fields). Make a `get()` request to the cluster to get the current resource version and include it with requests to set the policy.
        &quot;window&quot;: { # MaintenanceWindow defines the maintenance window to be used for the cluster. # Specifies the maintenance window in which maintenance may be performed.
          &quot;dailyMaintenanceWindow&quot;: { # Time window specified for daily maintenance operations. # DailyMaintenanceWindow specifies a daily maintenance operation window.
            &quot;duration&quot;: &quot;A String&quot;, # Output only. Duration of the time window, automatically chosen to be smallest possible in the given scenario. Duration will be in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) format &quot;PTnHnMnS&quot;.
            &quot;startTime&quot;: &quot;A String&quot;, # Time within the maintenance window to start the maintenance operations. Time format should be in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) format &quot;HH:MM&quot;, where HH : [00-23] and MM : [00-59] GMT.
          },
          &quot;maintenanceExclusions&quot;: { # Exceptions to maintenance window. Non-emergency maintenance should not occur in these windows.
            &quot;a_key&quot;: { # Represents an arbitrary window of time.
              &quot;endTime&quot;: &quot;A String&quot;, # The time that the window ends. The end time should take place after the start time.
              &quot;maintenanceExclusionOptions&quot;: { # Represents the Maintenance exclusion option. # MaintenanceExclusionOptions provides maintenance exclusion related options.
                &quot;endTimeBehavior&quot;: &quot;A String&quot;, # EndTimeBehavior specifies the behavior of the exclusion end time.
                &quot;scope&quot;: &quot;A String&quot;, # Scope specifies the upgrade scope which upgrades are blocked by the exclusion.
              },
              &quot;startTime&quot;: &quot;A String&quot;, # The time that the window first starts.
            },
          },
          &quot;recurringWindow&quot;: { # Represents an arbitrary window of time that recurs. # RecurringWindow specifies some number of recurring time periods for maintenance to occur. The time windows may be overlapping. If no maintenance windows are set, maintenance can occur at any time.
            &quot;recurrence&quot;: &quot;A String&quot;, # An RRULE (https://tools.ietf.org/html/rfc5545#section-3.8.5.3) for how this window reccurs. They go on for the span of time between the start and end time. For example, to have something repeat every weekday, you&#x27;d use: `FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR` To repeat some window daily (equivalent to the DailyMaintenanceWindow): `FREQ=DAILY` For the first weekend of every month: `FREQ=MONTHLY;BYSETPOS=1;BYDAY=SA,SU` This specifies how frequently the window starts. Eg, if you wanted to have a 9-5 UTC-4 window every weekday, you&#x27;d use something like: ``` start time = 2019-01-01T09:00:00-0400 end time = 2019-01-01T17:00:00-0400 recurrence = FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR ``` Windows can span multiple days. Eg, to make the window encompass every weekend from midnight Saturday till the last minute of Sunday UTC: ``` start time = 2019-01-05T00:00:00Z end time = 2019-01-07T23:59:00Z recurrence = FREQ=WEEKLY;BYDAY=SA ``` Note the start and end time&#x27;s specific dates are largely arbitrary except to specify duration of the window and when it first starts. The FREQ values of HOURLY, MINUTELY, and SECONDLY are not supported.
            &quot;window&quot;: { # Represents an arbitrary window of time. # The window of the first recurrence.
              &quot;endTime&quot;: &quot;A String&quot;, # The time that the window ends. The end time should take place after the start time.
              &quot;maintenanceExclusionOptions&quot;: { # Represents the Maintenance exclusion option. # MaintenanceExclusionOptions provides maintenance exclusion related options.
                &quot;endTimeBehavior&quot;: &quot;A String&quot;, # EndTimeBehavior specifies the behavior of the exclusion end time.
                &quot;scope&quot;: &quot;A String&quot;, # Scope specifies the upgrade scope which upgrades are blocked by the exclusion.
              },
              &quot;startTime&quot;: &quot;A String&quot;, # The time that the window first starts.
            },
          },
        },
      },
      &quot;masterAuth&quot;: { # The authentication information for accessing the master endpoint. Authentication can be done using HTTP basic auth or using client certificates. # The authentication information for accessing the master endpoint. If unspecified, the defaults are used: For clusters before v1.12, if master_auth is unspecified, `username` will be set to &quot;admin&quot;, a random password will be generated, and a client certificate will be issued.
        &quot;clientCertificate&quot;: &quot;A String&quot;, # Output only. Base64-encoded public certificate used by clients to authenticate to the cluster endpoint. Issued only if client_certificate_config is set.
        &quot;clientCertificateConfig&quot;: { # Configuration for client certificates on the cluster. # Configuration for client certificate authentication on the cluster. For clusters before v1.12, if no configuration is specified, a client certificate is issued.
          &quot;issueClientCertificate&quot;: True or False, # Issue a client certificate.
        },
        &quot;clientKey&quot;: &quot;A String&quot;, # Output only. Base64-encoded private key used by clients to authenticate to the cluster endpoint.
        &quot;clusterCaCertificate&quot;: &quot;A String&quot;, # Output only. Base64-encoded public certificate that is the root of trust for the cluster.
        &quot;password&quot;: &quot;A String&quot;, # The password to use for HTTP basic authentication to the master endpoint. Because the master endpoint is open to the Internet, you should create a strong password. If a password is provided for cluster creation, username must be non-empty. Warning: basic authentication is deprecated, and will be removed in GKE control plane versions 1.19 and newer. For a list of recommended authentication methods, see: https://cloud.google.com/kubernetes-engine/docs/how-to/api-server-authentication
        &quot;username&quot;: &quot;A String&quot;, # The username to use for HTTP basic authentication to the master endpoint. For clusters v1.6.0 and later, basic authentication can be disabled by leaving username unspecified (or setting it to the empty string). Warning: basic authentication is deprecated, and will be removed in GKE control plane versions 1.19 and newer. For a list of recommended authentication methods, see: https://cloud.google.com/kubernetes-engine/docs/how-to/api-server-authentication
      },
      &quot;masterAuthorizedNetworksConfig&quot;: { # Configuration options for the master authorized networks feature. Enabled master authorized networks will disallow all external traffic to access Kubernetes master through HTTPS except traffic from the given CIDR blocks, Google Compute Engine Public IPs and Google Prod IPs. # The configuration options for master authorized networks feature. Deprecated: Use ControlPlaneEndpointsConfig.IPEndpointsConfig.authorized_networks_config instead.
        &quot;cidrBlocks&quot;: [ # cidr_blocks define up to 50 external networks that could access Kubernetes master through HTTPS.
          { # CidrBlock contains an optional name and one CIDR block.
            &quot;cidrBlock&quot;: &quot;A String&quot;, # cidr_block must be specified in CIDR notation.
            &quot;displayName&quot;: &quot;A String&quot;, # display_name is an optional field for users to identify CIDR blocks.
          },
        ],
        &quot;enabled&quot;: True or False, # Whether or not master authorized networks is enabled.
        &quot;gcpPublicCidrsAccessEnabled&quot;: True or False, # Whether master is accessible via Google Compute Engine Public IP addresses.
        &quot;privateEndpointEnforcementEnabled&quot;: True or False, # Whether master authorized networks is enforced on private endpoint or not.
      },
      &quot;meshCertificates&quot;: { # Configuration for issuance of mTLS keys and certificates to Kubernetes pods. # Configuration for issuance of mTLS keys and certificates to Kubernetes pods.
        &quot;enableCertificates&quot;: True or False, # enable_certificates controls issuance of workload mTLS certificates. If set, the GKE Workload Identity Certificates controller and node agent will be deployed in the cluster, which can then be configured by creating a WorkloadCertificateConfig Custom Resource. Requires Workload Identity (workload_pool must be non-empty).
      },
      &quot;monitoringConfig&quot;: { # MonitoringConfig is cluster monitoring configuration. # Monitoring configuration for the cluster.
        &quot;advancedDatapathObservabilityConfig&quot;: { # AdvancedDatapathObservabilityConfig specifies configuration of observability features of advanced datapath. # Configuration of Advanced Datapath Observability features.
          &quot;enableMetrics&quot;: True or False, # Expose flow metrics on nodes
          &quot;enableRelay&quot;: True or False, # Enable Relay component
          &quot;relayMode&quot;: &quot;A String&quot;, # Method used to make Relay available
        },
        &quot;componentConfig&quot;: { # MonitoringComponentConfig is cluster monitoring component configuration. # Monitoring components configuration
          &quot;enableComponents&quot;: [ # Select components to collect metrics. An empty set would disable all monitoring.
            &quot;A String&quot;,
          ],
        },
        &quot;managedPrometheusConfig&quot;: { # ManagedPrometheusConfig defines the configuration for Google Cloud Managed Service for Prometheus. # Enable Google Cloud Managed Service for Prometheus in the cluster.
          &quot;autoMonitoringConfig&quot;: { # AutoMonitoringConfig defines the configuration for GKE Workload Auto-Monitoring. # GKE Workload Auto-Monitoring Configuration.
            &quot;scope&quot;: &quot;A String&quot;, # Scope for GKE Workload Auto-Monitoring.
          },
          &quot;enabled&quot;: True or False, # Enable Managed Collection.
        },
      },
      &quot;monitoringService&quot;: &quot;A String&quot;, # The monitoring service the cluster should use to write metrics. Currently available options: * `monitoring.googleapis.com/kubernetes` - The Cloud Monitoring service with a Kubernetes-native resource model * `monitoring.googleapis.com` - The legacy Cloud Monitoring service (no longer available as of GKE 1.15). * `none` - No metrics will be exported from the cluster. If left as an empty string,`monitoring.googleapis.com/kubernetes` will be used for GKE 1.14+ or `monitoring.googleapis.com` for earlier versions.
      &quot;name&quot;: &quot;A String&quot;, # The name of this cluster. The name must be unique within this project and location (e.g. zone or region), and can be up to 40 characters with the following restrictions: * Lowercase letters, numbers, and hyphens only. * Must start with a letter. * Must end with a number or a letter.
      &quot;network&quot;: &quot;A String&quot;, # The name of the Google Compute Engine [network](https://cloud.google.com/compute/docs/networks-and-firewalls#networks) to which the cluster is connected. If left unspecified, the `default` network will be used.
      &quot;networkConfig&quot;: { # NetworkConfig reports the relative names of network &amp; subnetwork. # Configuration for cluster networking.
        &quot;datapathProvider&quot;: &quot;A String&quot;, # The desired datapath provider for this cluster. By default, uses the IPTables-based kube-proxy implementation.
        &quot;defaultEnablePrivateNodes&quot;: True or False, # Controls whether by default nodes have private IP addresses only. It is invalid to specify both PrivateClusterConfig.enablePrivateNodes and this field at the same time. To update the default setting, use ClusterUpdate.desired_default_enable_private_nodes
        &quot;defaultSnatStatus&quot;: { # DefaultSnatStatus contains the desired state of whether default sNAT should be disabled on the cluster. # 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.
          &quot;disabled&quot;: True or False, # Disables cluster default sNAT rules.
        },
        &quot;disableL4LbFirewallReconciliation&quot;: True or False, # Disable L4 load balancer VPC firewalls to enable firewall policies.
        &quot;dnsConfig&quot;: { # DNSConfig contains the desired set of options for configuring clusterDNS. # DNSConfig contains clusterDNS config for this cluster.
          &quot;additiveVpcScopeDnsDomain&quot;: &quot;A String&quot;, # Optional. The domain used in Additive VPC scope.
          &quot;clusterDns&quot;: &quot;A String&quot;, # cluster_dns indicates which in-cluster DNS provider should be used.
          &quot;clusterDnsDomain&quot;: &quot;A String&quot;, # cluster_dns_domain is the suffix used for all cluster service records.
          &quot;clusterDnsScope&quot;: &quot;A String&quot;, # cluster_dns_scope indicates the scope of access to cluster DNS records.
        },
        &quot;enableCiliumClusterwideNetworkPolicy&quot;: True or False, # Whether CiliumClusterwideNetworkPolicy is enabled on this cluster.
        &quot;enableFqdnNetworkPolicy&quot;: True or False, # Whether FQDN Network Policy is enabled on this cluster.
        &quot;enableIntraNodeVisibility&quot;: True or False, # Whether Intra-node visibility is enabled for this cluster. This makes same node pod to pod traffic visible for VPC network.
        &quot;enableL4ilbSubsetting&quot;: True or False, # Whether L4ILB Subsetting is enabled for this cluster.
        &quot;enableMultiNetworking&quot;: True or False, # Whether multi-networking is enabled for this cluster.
        &quot;gatewayApiConfig&quot;: { # GatewayAPIConfig contains the desired config of Gateway API on this cluster. # GatewayAPIConfig contains the desired config of Gateway API on this cluster.
          &quot;channel&quot;: &quot;A String&quot;, # The Gateway API release channel to use for Gateway API.
        },
        &quot;inTransitEncryptionConfig&quot;: &quot;A String&quot;, # Specify the details of in-transit encryption. Now named inter-node transparent encryption.
        &quot;network&quot;: &quot;A String&quot;, # Output only. The relative name of the Google Compute Engine [network](https://cloud.google.com/compute/docs/networks-and-firewalls#networks) to which the cluster is connected. Example: projects/my-project/global/networks/my-network
        &quot;networkPerformanceConfig&quot;: { # Configuration of network bandwidth tiers # Network bandwidth tier configuration.
          &quot;totalEgressBandwidthTier&quot;: &quot;A String&quot;, # Specifies the total network bandwidth tier for NodePools in the cluster.
        },
        &quot;privateIpv6GoogleAccess&quot;: &quot;A String&quot;, # 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)
        &quot;serviceExternalIpsConfig&quot;: { # Config to block services with externalIPs field. # ServiceExternalIPsConfig specifies if services with externalIPs field are blocked or not.
          &quot;enabled&quot;: True or False, # Whether Services with ExternalIPs field are allowed or not.
        },
        &quot;subnetwork&quot;: &quot;A String&quot;, # Output only. The relative name of the Google Compute Engine [subnetwork](https://cloud.google.com/compute/docs/vpc) to which the cluster is connected. Example: projects/my-project/regions/us-central1/subnetworks/my-subnet
      },
      &quot;networkPolicy&quot;: { # Configuration options for the NetworkPolicy feature. https://kubernetes.io/docs/concepts/services-networking/networkpolicies/ # Configuration options for the NetworkPolicy feature.
        &quot;enabled&quot;: True or False, # Whether network policy is enabled on the cluster.
        &quot;provider&quot;: &quot;A String&quot;, # The selected network policy provider.
      },
      &quot;nodeConfig&quot;: { # Parameters that describe the nodes in a cluster. GKE Autopilot clusters do not recognize parameters in `NodeConfig`. Use AutoprovisioningNodePoolDefaults instead. # Parameters used in creating the cluster&#x27;s nodes. For requests, this field should only be used in lieu of a &quot;node_pool&quot; object, since this configuration (along with the &quot;initial_node_count&quot;) will be used to create a &quot;NodePool&quot; object with an auto-generated name. Do not use this and a node_pool at the same time. For responses, this field will be populated with the node configuration of the first node pool. (For configuration of each node pool, see `node_pool.config`) If unspecified, the defaults are used. This field is deprecated, use node_pool.config instead.
        &quot;accelerators&quot;: [ # 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.
          { # AcceleratorConfig represents a Hardware Accelerator request.
            &quot;acceleratorCount&quot;: &quot;A String&quot;, # The number of the accelerator cards exposed to an instance.
            &quot;acceleratorType&quot;: &quot;A String&quot;, # The accelerator type resource name. List of supported accelerators [here](https://cloud.google.com/compute/docs/gpus)
            &quot;gpuDriverInstallationConfig&quot;: { # GPUDriverInstallationConfig specifies the version of GPU driver to be auto installed. # The configuration for auto installation of GPU driver.
              &quot;gpuDriverVersion&quot;: &quot;A String&quot;, # Mode for how the GPU driver is installed.
            },
            &quot;gpuPartitionSize&quot;: &quot;A String&quot;, # Size of partitions to create on the GPU. Valid values are described in the NVIDIA [mig user guide](https://docs.nvidia.com/datacenter/tesla/mig-user-guide/#partitioning).
            &quot;gpuSharingConfig&quot;: { # GPUSharingConfig represents the GPU sharing configuration for Hardware Accelerators. # The configuration for GPU sharing options.
              &quot;gpuSharingStrategy&quot;: &quot;A String&quot;, # The type of GPU sharing strategy to enable on the GPU node.
              &quot;maxSharedClientsPerGpu&quot;: &quot;A String&quot;, # The max number of containers that can share a physical GPU.
            },
          },
        ],
        &quot;advancedMachineFeatures&quot;: { # Specifies options for controlling advanced machine features. # Advanced features for the Compute Engine VM.
          &quot;enableNestedVirtualization&quot;: True or False, # Whether or not to enable nested virtualization (defaults to false).
          &quot;performanceMonitoringUnit&quot;: &quot;A String&quot;, # Type of Performance Monitoring Unit (PMU) requested on node pool instances. If unset, PMU will not be available to the node.
          &quot;threadsPerCore&quot;: &quot;A String&quot;, # The number of threads per physical core. To disable simultaneous multithreading (SMT) set this to 1. If unset, the maximum number of threads supported per core by the underlying processor is assumed.
        },
        &quot;bootDisk&quot;: { # BootDisk specifies the boot disk configuration for nodepools. # The boot disk configuration for the node pool.
          &quot;diskType&quot;: &quot;A String&quot;, # Disk type of the boot disk. (i.e. Hyperdisk-Balanced, PD-Balanced, etc.)
          &quot;provisionedIops&quot;: &quot;A String&quot;, # For Hyperdisk-Balanced only, the provisioned IOPS config value.
          &quot;provisionedThroughput&quot;: &quot;A String&quot;, # For Hyperdisk-Balanced only, the provisioned throughput config value.
          &quot;sizeGb&quot;: &quot;A String&quot;, # Disk size in GB. Replaces NodeConfig.disk_size_gb
        },
        &quot;bootDiskKmsKey&quot;: &quot;A String&quot;, #  The Customer Managed Encryption Key used to encrypt the boot disk attached to each node in the node pool. This should be of the form projects/[KEY_PROJECT_ID]/locations/[LOCATION]/keyRings/[RING_NAME]/cryptoKeys/[KEY_NAME]. For more information about protecting resources with Cloud KMS Keys please see: https://cloud.google.com/compute/docs/disks/customer-managed-encryption
        &quot;confidentialNodes&quot;: { # ConfidentialNodes is configuration for the confidential nodes feature, which makes nodes run on confidential VMs. # Confidential nodes config. All the nodes in the node pool will be Confidential VM once enabled.
          &quot;confidentialInstanceType&quot;: &quot;A String&quot;, # Defines the type of technology used by the confidential node.
          &quot;enabled&quot;: True or False, # Whether Confidential Nodes feature is enabled.
        },
        &quot;containerdConfig&quot;: { # ContainerdConfig contains configuration to customize containerd. # Parameters for containerd customization.
          &quot;privateRegistryAccessConfig&quot;: { # PrivateRegistryAccessConfig contains access configuration for private container registries. # PrivateRegistryAccessConfig is used to configure access configuration for private container registries.
            &quot;certificateAuthorityDomainConfig&quot;: [ # Private registry access configuration.
              { # CertificateAuthorityDomainConfig configures one or more fully qualified domain names (FQDN) to a specific certificate.
                &quot;fqdns&quot;: [ # List of fully qualified domain names (FQDN). Specifying port is supported. Wildcards are NOT supported. Examples: - my.customdomain.com - 10.0.1.2:5000
                  &quot;A String&quot;,
                ],
                &quot;gcpSecretManagerCertificateConfig&quot;: { # GCPSecretManagerCertificateConfig configures a secret from [Secret Manager](https://cloud.google.com/secret-manager). # Google Secret Manager (GCP) certificate configuration.
                  &quot;secretUri&quot;: &quot;A String&quot;, # Secret URI, in the form &quot;projects/$PROJECT_ID/secrets/$SECRET_NAME/versions/$VERSION&quot;. Version can be fixed (e.g. &quot;2&quot;) or &quot;latest&quot;
                },
              },
            ],
            &quot;enabled&quot;: True or False, # Private registry access is enabled.
          },
          &quot;writableCgroups&quot;: { # Defines writable cgroups configuration. # Optional. WritableCgroups defines writable cgroups configuration for the node pool.
            &quot;enabled&quot;: True or False, # Optional. Whether writable cgroups is enabled.
          },
        },
        &quot;diskSizeGb&quot;: 42, # 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.
        &quot;diskType&quot;: &quot;A String&quot;, # Type of the disk attached to each node (e.g. &#x27;pd-standard&#x27;, &#x27;pd-ssd&#x27; or &#x27;pd-balanced&#x27;) If unspecified, the default disk type is &#x27;pd-standard&#x27;
        &quot;effectiveCgroupMode&quot;: &quot;A String&quot;, # Output only. effective_cgroup_mode is the cgroup mode actually used by the node pool. It is determined by the cgroup mode specified in the LinuxNodeConfig or the default cgroup mode based on the cluster creation version.
        &quot;enableConfidentialStorage&quot;: True or False, # Optional. Reserved for future use.
        &quot;ephemeralStorageLocalSsdConfig&quot;: { # EphemeralStorageLocalSsdConfig contains configuration for the node ephemeral storage using Local SSDs. # Parameters for the node ephemeral storage using Local SSDs. If unspecified, ephemeral storage is backed by the boot disk.
          &quot;dataCacheCount&quot;: 42, # Number of local SSDs to use for GKE Data Cache.
          &quot;localSsdCount&quot;: 42, # Number of local SSDs to use to back ephemeral storage. Uses NVMe interfaces. A zero (or unset) value has different meanings depending on machine type being used: 1. For pre-Gen3 machines, which support flexible numbers of local ssds, zero (or unset) means to disable using local SSDs as ephemeral storage. The limit for this value is dependent upon the maximum number of disk available on a machine per zone. See: https://cloud.google.com/compute/docs/disks/local-ssd for more information. 2. For Gen3 machines which dictate a specific number of local ssds, zero (or unset) means to use the default number of local ssds that goes with that machine type. For example, for a c3-standard-8-lssd machine, 2 local ssds would be provisioned. For c3-standard-8 (which doesn&#x27;t support local ssds), 0 will be provisioned. See https://cloud.google.com/compute/docs/disks/local-ssd#choose_number_local_ssds for more info.
        },
        &quot;fastSocket&quot;: { # Configuration of Fast Socket feature. # Enable or disable NCCL fast socket for the node pool.
          &quot;enabled&quot;: True or False, # Whether Fast Socket features are enabled in the node pool.
        },
        &quot;flexStart&quot;: True or False, # Flex Start flag for enabling Flex Start VM.
        &quot;gcfsConfig&quot;: { # GcfsConfig contains configurations of Google Container File System (image streaming). # Google Container File System (image streaming) configs.
          &quot;enabled&quot;: True or False, # Whether to use GCFS.
        },
        &quot;gvnic&quot;: { # Configuration of gVNIC feature. # Enable or disable gvnic in the node pool.
          &quot;enabled&quot;: True or False, # Whether gVNIC features are enabled in the node pool.
        },
        &quot;imageType&quot;: &quot;A String&quot;, # The image type to use for this node. Note that for a given image type, the latest version of it will be used. Please see https://cloud.google.com/kubernetes-engine/docs/concepts/node-images for available image types.
        &quot;kubeletConfig&quot;: { # Node kubelet configs. # Node kubelet configs.
          &quot;allowedUnsafeSysctls&quot;: [ # Optional. Defines a comma-separated allowlist of unsafe sysctls or sysctl patterns (ending in `*`). The unsafe namespaced sysctl groups are `kernel.shm*`, `kernel.msg*`, `kernel.sem`, `fs.mqueue.*`, and `net.*`. Leaving this allowlist empty means they cannot be set on Pods. To allow certain sysctls or sysctl patterns to be set on Pods, list them separated by commas. For example: `kernel.msg*,net.ipv4.route.min_pmtu`. See https://kubernetes.io/docs/tasks/administer-cluster/sysctl-cluster/ for more details.
            &quot;A String&quot;,
          ],
          &quot;containerLogMaxFiles&quot;: 42, # Optional. Defines the maximum number of container log files that can be present for a container. See https://kubernetes.io/docs/concepts/cluster-administration/logging/#log-rotation The value must be an integer between 2 and 10, inclusive. The default value is 5 if unspecified.
          &quot;containerLogMaxSize&quot;: &quot;A String&quot;, # Optional. Defines the maximum size of the container log file before it is rotated. See https://kubernetes.io/docs/concepts/cluster-administration/logging/#log-rotation Valid format is positive number + unit, e.g. 100Ki, 10Mi. Valid units are Ki, Mi, Gi. The value must be between 10Mi and 500Mi, inclusive. Note that the total container log size (container_log_max_size * container_log_max_files) cannot exceed 1% of the total storage of the node, to avoid disk pressure caused by log files. The default value is 10Mi if unspecified.
          &quot;cpuCfsQuota&quot;: True or False, # 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 &#x27;true&#x27; if unspecified.
          &quot;cpuCfsQuotaPeriod&quot;: &quot;A String&quot;, # Set the CPU CFS quota period value &#x27;cpu.cfs_period_us&#x27;. The string must be a sequence of decimal numbers, each with optional fraction and a unit suffix, such as &quot;300ms&quot;. Valid time units are &quot;ns&quot;, &quot;us&quot; (or &quot;µs&quot;), &quot;ms&quot;, &quot;s&quot;, &quot;m&quot;, &quot;h&quot;. The value must be a positive duration between 1ms and 1 second, inclusive.
          &quot;cpuManagerPolicy&quot;: &quot;A String&quot;, # Control the CPU management policy on the node. See https://kubernetes.io/docs/tasks/administer-cluster/cpu-management-policies/ The following values are allowed. * &quot;none&quot;: the default, which represents the existing scheduling behavior. * &quot;static&quot;: allows pods with certain resource characteristics to be granted increased CPU affinity and exclusivity on the node. The default value is &#x27;none&#x27; if unspecified.
          &quot;evictionMaxPodGracePeriodSeconds&quot;: 42, # Optional. eviction_max_pod_grace_period_seconds is the maximum allowed grace period (in seconds) to use when terminating pods in response to a soft eviction threshold being met. This value effectively caps the Pod&#x27;s terminationGracePeriodSeconds value during soft evictions. Default: 0. Range: [0, 300].
          &quot;evictionMinimumReclaim&quot;: { # Eviction minimum reclaims are the resource amounts of minimum reclaims for each eviction signal. # Optional. eviction_minimum_reclaim is a map of signal names to quantities that defines minimum reclaims, which describe the minimum amount of a given resource the kubelet will reclaim when performing a pod eviction while that resource is under pressure.
            &quot;imagefsAvailable&quot;: &quot;A String&quot;, # Optional. Minimum reclaim for eviction due to imagefs available signal. Only take percentage value for now. Sample format: &quot;10%&quot;. Must be &lt;=10%. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
            &quot;imagefsInodesFree&quot;: &quot;A String&quot;, # Optional. Minimum reclaim for eviction due to imagefs inodes free signal. Only take percentage value for now. Sample format: &quot;10%&quot;. Must be &lt;=10%. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
            &quot;memoryAvailable&quot;: &quot;A String&quot;, # Optional. Minimum reclaim for eviction due to memory available signal. Only take percentage value for now. Sample format: &quot;10%&quot;. Must be &lt;=10%. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
            &quot;nodefsAvailable&quot;: &quot;A String&quot;, # Optional. Minimum reclaim for eviction due to nodefs available signal. Only take percentage value for now. Sample format: &quot;10%&quot;. Must be &lt;=10%. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
            &quot;nodefsInodesFree&quot;: &quot;A String&quot;, # Optional. Minimum reclaim for eviction due to nodefs inodes free signal. Only take percentage value for now. Sample format: &quot;10%&quot;. Must be &lt;=10%. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
            &quot;pidAvailable&quot;: &quot;A String&quot;, # Optional. Minimum reclaim for eviction due to pid available signal. Only take percentage value for now. Sample format: &quot;10%&quot;. Must be &lt;=10%. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
          },
          &quot;evictionSoft&quot;: { # Eviction signals are the current state of a particular resource at a specific point in time. The kubelet uses eviction signals to make eviction decisions by comparing the signals to eviction thresholds, which are the minimum amount of the resource that should be available on the node. # Optional. eviction_soft is a map of signal names to quantities that defines soft eviction thresholds. Each signal is compared to its corresponding threshold to determine if a pod eviction should occur.
            &quot;imagefsAvailable&quot;: &quot;A String&quot;, # Optional. Amount of storage available on filesystem that container runtime uses for storing images layers. If the container filesystem and image filesystem are not separate, then imagefs can store both image layers and writeable layers. Defines the amount of &quot;imagefs.available&quot; signal in kubelet. Default is unset, if not specified in the kubelet config. It takses percentage value for now. Sample format: &quot;30%&quot;. Must be &gt;= 15% and &lt;= 50%. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
            &quot;imagefsInodesFree&quot;: &quot;A String&quot;, # Optional. Amount of inodes available on filesystem that container runtime uses for storing images layers. Defines the amount of &quot;imagefs.inodesFree&quot; signal in kubelet. Default is unset, if not specified in the kubelet config. Linux only. It takses percentage value for now. Sample format: &quot;30%&quot;. Must be &gt;= 5% and &lt;= 50%. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
            &quot;memoryAvailable&quot;: &quot;A String&quot;, # Optional. Memory available (i.e. capacity - workingSet), in bytes. Defines the amount of &quot;memory.available&quot; signal in kubelet. Default is unset, if not specified in the kubelet config. Format: positive number + unit, e.g. 100Ki, 10Mi, 5Gi. Valid units are Ki, Mi, Gi. Must be &gt;= 100Mi and &lt;= 50% of the node&#x27;s memory. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
            &quot;nodefsAvailable&quot;: &quot;A String&quot;, # Optional. Amount of storage available on filesystem that kubelet uses for volumes, daemon logs, etc. Defines the amount of &quot;nodefs.available&quot; signal in kubelet. Default is unset, if not specified in the kubelet config. It takses percentage value for now. Sample format: &quot;30%&quot;. Must be &gt;= 10% and &lt;= 50%. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
            &quot;nodefsInodesFree&quot;: &quot;A String&quot;, # Optional. Amount of inodes available on filesystem that kubelet uses for volumes, daemon logs, etc. Defines the amount of &quot;nodefs.inodesFree&quot; signal in kubelet. Default is unset, if not specified in the kubelet config. Linux only. It takses percentage value for now. Sample format: &quot;30%&quot;. Must be &gt;= 5% and &lt;= 50%. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
            &quot;pidAvailable&quot;: &quot;A String&quot;, # Optional. Amount of PID available for pod allocation. Defines the amount of &quot;pid.available&quot; signal in kubelet. Default is unset, if not specified in the kubelet config. It takses percentage value for now. Sample format: &quot;30%&quot;. Must be &gt;= 10% and &lt;= 50%. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
          },
          &quot;evictionSoftGracePeriod&quot;: { # Eviction grace periods are grace periods for each eviction signal. # Optional. eviction_soft_grace_period is a map of signal names to quantities that defines grace periods for each soft eviction signal. The grace period is the amount of time that a pod must be under pressure before an eviction occurs.
            &quot;imagefsAvailable&quot;: &quot;A String&quot;, # Optional. Grace period for eviction due to imagefs available signal. Sample format: &quot;10s&quot;. Must be &gt;= 0. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
            &quot;imagefsInodesFree&quot;: &quot;A String&quot;, # Optional. Grace period for eviction due to imagefs inodes free signal. Sample format: &quot;10s&quot;. Must be &gt;= 0. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
            &quot;memoryAvailable&quot;: &quot;A String&quot;, # Optional. Grace period for eviction due to memory available signal. Sample format: &quot;10s&quot;. Must be &gt;= 0. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
            &quot;nodefsAvailable&quot;: &quot;A String&quot;, # Optional. Grace period for eviction due to nodefs available signal. Sample format: &quot;10s&quot;. Must be &gt;= 0. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
            &quot;nodefsInodesFree&quot;: &quot;A String&quot;, # Optional. Grace period for eviction due to nodefs inodes free signal. Sample format: &quot;10s&quot;. Must be &gt;= 0. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
            &quot;pidAvailable&quot;: &quot;A String&quot;, # Optional. Grace period for eviction due to pid available signal. Sample format: &quot;10s&quot;. Must be &gt;= 0. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
          },
          &quot;imageGcHighThresholdPercent&quot;: 42, # Optional. Defines the percent of disk usage after which image garbage collection is always run. The percent is calculated as this field value out of 100. The value must be between 10 and 85, inclusive and greater than image_gc_low_threshold_percent. The default value is 85 if unspecified.
          &quot;imageGcLowThresholdPercent&quot;: 42, # Optional. Defines the percent of disk usage before which image garbage collection is never run. Lowest disk usage to garbage collect to. The percent is calculated as this field value out of 100. The value must be between 10 and 85, inclusive and smaller than image_gc_high_threshold_percent. The default value is 80 if unspecified.
          &quot;imageMaximumGcAge&quot;: &quot;A String&quot;, # Optional. Defines the maximum age an image can be unused before it is garbage collected. The string must be a sequence of decimal numbers, each with optional fraction and a unit suffix, such as &quot;300s&quot;, &quot;1.5h&quot;, and &quot;2h45m&quot;. Valid time units are &quot;ns&quot;, &quot;us&quot; (or &quot;µs&quot;), &quot;ms&quot;, &quot;s&quot;, &quot;m&quot;, &quot;h&quot;. The value must be a positive duration greater than image_minimum_gc_age or &quot;0s&quot;. The default value is &quot;0s&quot; if unspecified, which disables this field, meaning images won&#x27;t be garbage collected based on being unused for too long.
          &quot;imageMinimumGcAge&quot;: &quot;A String&quot;, # Optional. Defines the minimum age for an unused image before it is garbage collected. The string must be a sequence of decimal numbers, each with optional fraction and a unit suffix, such as &quot;300s&quot;, &quot;1.5h&quot;, and &quot;2h45m&quot;. Valid time units are &quot;ns&quot;, &quot;us&quot; (or &quot;µs&quot;), &quot;ms&quot;, &quot;s&quot;, &quot;m&quot;, &quot;h&quot;. The value must be a positive duration less than or equal to 2 minutes. The default value is &quot;2m0s&quot; if unspecified.
          &quot;insecureKubeletReadonlyPortEnabled&quot;: True or False, # Enable or disable Kubelet read only port.
          &quot;maxParallelImagePulls&quot;: 42, # Optional. Defines the maximum number of image pulls in parallel. The range is 2 to 5, inclusive. The default value is 2 or 3 depending on the disk type. See https://kubernetes.io/docs/concepts/containers/images/#maximum-parallel-image-pulls for more details.
          &quot;memoryManager&quot;: { # The option enables the Kubernetes NUMA-aware Memory Manager feature. Detailed description about the feature can be found [here](https://kubernetes.io/docs/tasks/administer-cluster/memory-manager/). # Optional. Controls NUMA-aware Memory Manager configuration on the node. For more information, see: https://kubernetes.io/docs/tasks/administer-cluster/memory-manager/
            &quot;policy&quot;: &quot;A String&quot;, # Controls the memory management policy on the Node. See https://kubernetes.io/docs/tasks/administer-cluster/memory-manager/#policies The following values are allowed. * &quot;none&quot; * &quot;static&quot; The default value is &#x27;none&#x27; if unspecified.
          },
          &quot;podPidsLimit&quot;: &quot;A String&quot;, # Set the Pod PID limits. See https://kubernetes.io/docs/concepts/policy/pid-limiting/#pod-pid-limits Controls the maximum number of processes allowed to run in a pod. The value must be greater than or equal to 1024 and less than 4194304.
          &quot;singleProcessOomKill&quot;: True or False, # Optional. Defines whether to enable single process OOM killer. If true, will prevent the memory.oom.group flag from being set for container cgroups in cgroups v2. This causes processes in the container to be OOM killed individually instead of as a group.
          &quot;topologyManager&quot;: { # TopologyManager defines the configuration options for Topology Manager feature. See https://kubernetes.io/docs/tasks/administer-cluster/topology-manager/ # Optional. Controls Topology Manager configuration on the node. For more information, see: https://kubernetes.io/docs/tasks/administer-cluster/topology-manager/
            &quot;policy&quot;: &quot;A String&quot;, # Configures the strategy for resource alignment. Allowed values are: * none: the default policy, and does not perform any topology alignment. * restricted: the topology manager stores the preferred NUMA node affinity for the container, and will reject the pod if the affinity if not preferred. * best-effort: the topology manager stores the preferred NUMA node affinity for the container. If the affinity is not preferred, the topology manager will admit the pod to the node anyway. * single-numa-node: the topology manager determines if the single NUMA node affinity is possible. If it is, Topology Manager will store this and the Hint Providers can then use this information when making the resource allocation decision. If, however, this is not possible then the Topology Manager will reject the pod from the node. This will result in a pod in a Terminated state with a pod admission failure. The default policy value is &#x27;none&#x27; if unspecified. Details about each strategy can be found [here](https://kubernetes.io/docs/tasks/administer-cluster/topology-manager/#topology-manager-policies).
            &quot;scope&quot;: &quot;A String&quot;, # The Topology Manager aligns resources in following scopes: * container * pod The default scope is &#x27;container&#x27; if unspecified. See https://kubernetes.io/docs/tasks/administer-cluster/topology-manager/#topology-manager-scopes
          },
        },
        &quot;labels&quot;: { # 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&#x27;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/
          &quot;a_key&quot;: &quot;A String&quot;,
        },
        &quot;linuxNodeConfig&quot;: { # Parameters that can be configured on Linux nodes. # Parameters that can be configured on Linux nodes.
          &quot;cgroupMode&quot;: &quot;A String&quot;, # cgroup_mode specifies the cgroup mode to be used on the node.
          &quot;hugepages&quot;: { # Hugepages amount in both 2m and 1g size # Optional. Amounts for 2M and 1G hugepages
            &quot;hugepageSize1g&quot;: 42, # Optional. Amount of 1G hugepages
            &quot;hugepageSize2m&quot;: 42, # Optional. Amount of 2M hugepages
          },
          &quot;nodeKernelModuleLoading&quot;: { # Configuration for kernel module loading on nodes. # Optional. Configuration for kernel module loading on nodes. When enabled, the node pool will be provisioned with a Container-Optimized OS image that enforces kernel module signature verification.
            &quot;policy&quot;: &quot;A String&quot;, # Set the node module loading policy for nodes in the node pool.
          },
          &quot;sysctls&quot;: { # The Linux kernel parameters to be applied to the nodes and all pods running on the nodes. The following parameters are supported. net.core.busy_poll net.core.busy_read net.core.netdev_max_backlog net.core.rmem_max net.core.rmem_default 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 net.ipv4.tcp_max_orphans net.netfilter.nf_conntrack_max net.netfilter.nf_conntrack_buckets net.netfilter.nf_conntrack_tcp_timeout_close_wait net.netfilter.nf_conntrack_tcp_timeout_time_wait net.netfilter.nf_conntrack_tcp_timeout_established net.netfilter.nf_conntrack_acct kernel.shmmni kernel.shmmax kernel.shmall fs.aio-max-nr fs.file-max fs.inotify.max_user_instances fs.inotify.max_user_watches fs.nr_open vm.dirty_background_ratio vm.dirty_expire_centisecs vm.dirty_ratio vm.dirty_writeback_centisecs vm.max_map_count vm.overcommit_memory vm.overcommit_ratio vm.vfs_cache_pressure vm.swappiness vm.watermark_scale_factor vm.min_free_kbytes
            &quot;a_key&quot;: &quot;A String&quot;,
          },
          &quot;transparentHugepageDefrag&quot;: &quot;A String&quot;, # Optional. Defines the transparent hugepage defrag configuration on the node. VM hugepage allocation can be managed by either limiting defragmentation for delayed allocation or skipping it entirely for immediate allocation only. See https://docs.kernel.org/admin-guide/mm/transhuge.html for more details.
          &quot;transparentHugepageEnabled&quot;: &quot;A String&quot;, # Optional. Transparent hugepage support for anonymous memory can be entirely disabled (mostly for debugging purposes) or only enabled inside MADV_HUGEPAGE regions (to avoid the risk of consuming more memory resources) or enabled system wide. See https://docs.kernel.org/admin-guide/mm/transhuge.html for more details.
        },
        &quot;localNvmeSsdBlockConfig&quot;: { # LocalNvmeSsdBlockConfig contains configuration for using raw-block local NVMe SSDs # Parameters for using raw-block Local NVMe SSDs.
          &quot;localSsdCount&quot;: 42, # Number of local NVMe SSDs to use. The limit for this value is dependent upon the maximum number of disk available on a machine per zone. See: https://cloud.google.com/compute/docs/disks/local-ssd for more information. A zero (or unset) value has different meanings depending on machine type being used: 1. For pre-Gen3 machines, which support flexible numbers of local ssds, zero (or unset) means to disable using local SSDs as ephemeral storage. 2. For Gen3 machines which dictate a specific number of local ssds, zero (or unset) means to use the default number of local ssds that goes with that machine type. For example, for a c3-standard-8-lssd machine, 2 local ssds would be provisioned. For c3-standard-8 (which doesn&#x27;t support local ssds), 0 will be provisioned. See https://cloud.google.com/compute/docs/disks/local-ssd#choose_number_local_ssds for more info.
        },
        &quot;localSsdCount&quot;: 42, # 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.
        &quot;localSsdEncryptionMode&quot;: &quot;A String&quot;, # Specifies which method should be used for encrypting the Local SSDs attached to the node.
        &quot;loggingConfig&quot;: { # NodePoolLoggingConfig specifies logging configuration for nodepools. # Logging configuration.
          &quot;variantConfig&quot;: { # LoggingVariantConfig specifies the behaviour of the logging component. # Logging variant configuration.
            &quot;variant&quot;: &quot;A String&quot;, # Logging variant deployed on nodes.
          },
        },
        &quot;machineType&quot;: &quot;A String&quot;, # The name of a Google Compute Engine [machine type](https://cloud.google.com/compute/docs/machine-types) If unspecified, the default machine type is `e2-medium`.
        &quot;maxRunDuration&quot;: &quot;A String&quot;, # The maximum duration for the nodes to exist. If unspecified, the nodes can exist indefinitely.
        &quot;metadata&quot;: { # The metadata key/value pairs assigned to instances in the cluster. Keys must conform to the regexp `[a-zA-Z0-9-_]+` and be less than 128 bytes in length. These are reflected as part of a URL in the metadata server. Additionally, to avoid ambiguity, keys must not conflict with any other metadata keys for the project or be one of the reserved keys: - &quot;cluster-location&quot; - &quot;cluster-name&quot; - &quot;cluster-uid&quot; - &quot;configure-sh&quot; - &quot;containerd-configure-sh&quot; - &quot;enable-os-login&quot; - &quot;gci-ensure-gke-docker&quot; - &quot;gci-metrics-enabled&quot; - &quot;gci-update-strategy&quot; - &quot;instance-template&quot; - &quot;kube-env&quot; - &quot;startup-script&quot; - &quot;user-data&quot; - &quot;disable-address-manager&quot; - &quot;windows-startup-script-ps1&quot; - &quot;common-psm1&quot; - &quot;k8s-node-setup-psm1&quot; - &quot;install-ssh-psm1&quot; - &quot;user-profile-psm1&quot; 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&#x27;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.
          &quot;a_key&quot;: &quot;A String&quot;,
        },
        &quot;minCpuPlatform&quot;: &quot;A String&quot;, # 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: &quot;Intel Haswell&quot;` or `minCpuPlatform: &quot;Intel Sandy Bridge&quot;`. For more information, read [how to specify min CPU platform](https://cloud.google.com/compute/docs/instances/specify-min-cpu-platform)
        &quot;nodeGroup&quot;: &quot;A String&quot;, # Setting this field will assign instances of this pool to run on the specified node group. This is useful for running workloads on [sole tenant nodes](https://cloud.google.com/compute/docs/nodes/sole-tenant-nodes).
        &quot;oauthScopes&quot;: [ # The set of Google API scopes to be made available on all of the node VMs under the &quot;default&quot; 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 [Artifact Registry](https://cloud.google.com/artifact-registry/)). If unspecified, no scopes are added, unless Cloud Logging or Cloud Monitoring are enabled, in which case their required scopes will be added.
          &quot;A String&quot;,
        ],
        &quot;preemptible&quot;: True or False, # 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.
        &quot;reservationAffinity&quot;: { # [ReservationAffinity](https://cloud.google.com/compute/docs/instances/reserving-zonal-resources) is the configuration of desired reservation which instances could take capacity from. # The optional reservation affinity. Setting this field will apply the specified [Zonal Compute Reservation](https://cloud.google.com/compute/docs/instances/reserving-zonal-resources) to this node pool.
          &quot;consumeReservationType&quot;: &quot;A String&quot;, # Corresponds to the type of reservation consumption.
          &quot;key&quot;: &quot;A String&quot;, # Corresponds to the label key of a reservation resource. To target a SPECIFIC_RESERVATION by name, specify &quot;compute.googleapis.com/reservation-name&quot; as the key and specify the name of your reservation as its value.
          &quot;values&quot;: [ # Corresponds to the label value(s) of reservation resource(s).
            &quot;A String&quot;,
          ],
        },
        &quot;resourceLabels&quot;: { # The resource labels for the node pool to use to annotate any related Google Compute Engine resources.
          &quot;a_key&quot;: &quot;A String&quot;,
        },
        &quot;resourceManagerTags&quot;: { # A map of resource manager tag keys and values to be attached to the nodes for managing Compute Engine firewalls using Network Firewall Policies. Tags must be according to specifications in https://cloud.google.com/vpc/docs/tags-firewalls-overview#specifications. A maximum of 5 tag key-value pairs can be specified. Existing tags will be replaced with new values. # A map of resource manager tag keys and values to be attached to the nodes.
          &quot;tags&quot;: { # TagKeyValue must be in one of the following formats ([KEY]=[VALUE]) 1. `tagKeys/{tag_key_id}=tagValues/{tag_value_id}` 2. `{org_id}/{tag_key_name}={tag_value_name}` 3. `{project_id}/{tag_key_name}={tag_value_name}`
            &quot;a_key&quot;: &quot;A String&quot;,
          },
        },
        &quot;sandboxConfig&quot;: { # SandboxConfig contains configurations of the sandbox to use for the node. # Sandbox configuration for this node.
          &quot;type&quot;: &quot;A String&quot;, # Type of the sandbox to use for the node.
        },
        &quot;secondaryBootDiskUpdateStrategy&quot;: { # SecondaryBootDiskUpdateStrategy is a placeholder which will be extended in the future to define different options for updating secondary boot disks. # Secondary boot disk update strategy.
        },
        &quot;secondaryBootDisks&quot;: [ # List of secondary boot disks attached to the nodes.
          { # SecondaryBootDisk represents a persistent disk attached to a node with special configurations based on its mode.
            &quot;diskImage&quot;: &quot;A String&quot;, # Fully-qualified resource ID for an existing disk image.
            &quot;mode&quot;: &quot;A String&quot;, # Disk mode (container image cache, etc.)
          },
        ],
        &quot;serviceAccount&quot;: &quot;A String&quot;, # 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 &quot;default&quot; service account is used.
        &quot;shieldedInstanceConfig&quot;: { # A set of Shielded Instance options. # Shielded Instance options.
          &quot;enableIntegrityMonitoring&quot;: True or False, # 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.
          &quot;enableSecureBoot&quot;: True or False, # 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.
        },
        &quot;soleTenantConfig&quot;: { # SoleTenantConfig contains the NodeAffinities to specify what shared sole tenant node groups should back the node pool. # Parameters for node pools to be backed by shared sole tenant node groups.
          &quot;minNodeCpus&quot;: 42, # Optional. The minimum number of virtual CPUs this instance will consume when running on a sole-tenant node. This field can only be set if the node pool is created in a shared sole-tenant node group.
          &quot;nodeAffinities&quot;: [ # NodeAffinities used to match to a shared sole tenant node group.
            { # Specifies the NodeAffinity key, values, and affinity operator according to [shared sole tenant node group affinities](https://cloud.google.com/compute/docs/nodes/sole-tenant-nodes#node_affinity_and_anti-affinity).
              &quot;key&quot;: &quot;A String&quot;, # Key for NodeAffinity.
              &quot;operator&quot;: &quot;A String&quot;, # Operator for NodeAffinity.
              &quot;values&quot;: [ # Values for NodeAffinity.
                &quot;A String&quot;,
              ],
            },
          ],
        },
        &quot;spot&quot;: True or False, # Spot flag for enabling Spot VM, which is a rebrand of the existing preemptible flag.
        &quot;storagePools&quot;: [ # List of Storage Pools where boot disks are provisioned.
          &quot;A String&quot;,
        ],
        &quot;tags&quot;: [ # 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.
          &quot;A String&quot;,
        ],
        &quot;taints&quot;: [ # 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/
          { # Kubernetes taint is composed of three fields: key, value, and effect. Effect can only be one of three types: NoSchedule, PreferNoSchedule or NoExecute. See [here](https://kubernetes.io/docs/concepts/configuration/taint-and-toleration) for more information, including usage and the valid values.
            &quot;effect&quot;: &quot;A String&quot;, # Effect for taint.
            &quot;key&quot;: &quot;A String&quot;, # Key for taint.
            &quot;value&quot;: &quot;A String&quot;, # Value for taint.
          },
        ],
        &quot;windowsNodeConfig&quot;: { # Parameters that can be configured on Windows nodes. Windows Node Config that define the parameters that will be used to configure the Windows node pool settings. # Parameters that can be configured on Windows nodes.
          &quot;osVersion&quot;: &quot;A String&quot;, # OSVersion specifies the Windows node config to be used on the node.
        },
        &quot;workloadMetadataConfig&quot;: { # WorkloadMetadataConfig defines the metadata configuration to expose to workloads on the node pool. # The workload metadata configuration for this node.
          &quot;mode&quot;: &quot;A String&quot;, # Mode is the configuration for how to expose metadata to workloads running on the node pool.
        },
      },
      &quot;nodeIpv4CidrSize&quot;: 42, # Output only. The size of the address space on each node for hosting containers. This is provisioned from within the `container_ipv4_cidr` range. This field will only be set when cluster is in route-based network mode.
      &quot;nodePoolAutoConfig&quot;: { # Node pool configs that apply to all auto-provisioned node pools in autopilot clusters and node auto-provisioning enabled clusters. # Node pool configs that apply to all auto-provisioned node pools in autopilot clusters and node auto-provisioning enabled clusters.
        &quot;linuxNodeConfig&quot;: { # Parameters that can be configured on Linux nodes. # Output only. Configuration options for Linux nodes.
          &quot;cgroupMode&quot;: &quot;A String&quot;, # cgroup_mode specifies the cgroup mode to be used on the node.
          &quot;hugepages&quot;: { # Hugepages amount in both 2m and 1g size # Optional. Amounts for 2M and 1G hugepages
            &quot;hugepageSize1g&quot;: 42, # Optional. Amount of 1G hugepages
            &quot;hugepageSize2m&quot;: 42, # Optional. Amount of 2M hugepages
          },
          &quot;nodeKernelModuleLoading&quot;: { # Configuration for kernel module loading on nodes. # Optional. Configuration for kernel module loading on nodes. When enabled, the node pool will be provisioned with a Container-Optimized OS image that enforces kernel module signature verification.
            &quot;policy&quot;: &quot;A String&quot;, # Set the node module loading policy for nodes in the node pool.
          },
          &quot;sysctls&quot;: { # The Linux kernel parameters to be applied to the nodes and all pods running on the nodes. The following parameters are supported. net.core.busy_poll net.core.busy_read net.core.netdev_max_backlog net.core.rmem_max net.core.rmem_default 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 net.ipv4.tcp_max_orphans net.netfilter.nf_conntrack_max net.netfilter.nf_conntrack_buckets net.netfilter.nf_conntrack_tcp_timeout_close_wait net.netfilter.nf_conntrack_tcp_timeout_time_wait net.netfilter.nf_conntrack_tcp_timeout_established net.netfilter.nf_conntrack_acct kernel.shmmni kernel.shmmax kernel.shmall fs.aio-max-nr fs.file-max fs.inotify.max_user_instances fs.inotify.max_user_watches fs.nr_open vm.dirty_background_ratio vm.dirty_expire_centisecs vm.dirty_ratio vm.dirty_writeback_centisecs vm.max_map_count vm.overcommit_memory vm.overcommit_ratio vm.vfs_cache_pressure vm.swappiness vm.watermark_scale_factor vm.min_free_kbytes
            &quot;a_key&quot;: &quot;A String&quot;,
          },
          &quot;transparentHugepageDefrag&quot;: &quot;A String&quot;, # Optional. Defines the transparent hugepage defrag configuration on the node. VM hugepage allocation can be managed by either limiting defragmentation for delayed allocation or skipping it entirely for immediate allocation only. See https://docs.kernel.org/admin-guide/mm/transhuge.html for more details.
          &quot;transparentHugepageEnabled&quot;: &quot;A String&quot;, # Optional. Transparent hugepage support for anonymous memory can be entirely disabled (mostly for debugging purposes) or only enabled inside MADV_HUGEPAGE regions (to avoid the risk of consuming more memory resources) or enabled system wide. See https://docs.kernel.org/admin-guide/mm/transhuge.html for more details.
        },
        &quot;networkTags&quot;: { # Collection of Compute Engine network tags that can be applied to a node&#x27;s underlying VM instance. # 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 creation. Each tag within the list must comply with RFC1035.
          &quot;tags&quot;: [ # List of network tags.
            &quot;A String&quot;,
          ],
        },
        &quot;nodeKubeletConfig&quot;: { # Node kubelet configs. # NodeKubeletConfig controls the defaults for autoprovisioned node-pools. Currently only `insecure_kubelet_readonly_port_enabled` can be set here.
          &quot;allowedUnsafeSysctls&quot;: [ # Optional. Defines a comma-separated allowlist of unsafe sysctls or sysctl patterns (ending in `*`). The unsafe namespaced sysctl groups are `kernel.shm*`, `kernel.msg*`, `kernel.sem`, `fs.mqueue.*`, and `net.*`. Leaving this allowlist empty means they cannot be set on Pods. To allow certain sysctls or sysctl patterns to be set on Pods, list them separated by commas. For example: `kernel.msg*,net.ipv4.route.min_pmtu`. See https://kubernetes.io/docs/tasks/administer-cluster/sysctl-cluster/ for more details.
            &quot;A String&quot;,
          ],
          &quot;containerLogMaxFiles&quot;: 42, # Optional. Defines the maximum number of container log files that can be present for a container. See https://kubernetes.io/docs/concepts/cluster-administration/logging/#log-rotation The value must be an integer between 2 and 10, inclusive. The default value is 5 if unspecified.
          &quot;containerLogMaxSize&quot;: &quot;A String&quot;, # Optional. Defines the maximum size of the container log file before it is rotated. See https://kubernetes.io/docs/concepts/cluster-administration/logging/#log-rotation Valid format is positive number + unit, e.g. 100Ki, 10Mi. Valid units are Ki, Mi, Gi. The value must be between 10Mi and 500Mi, inclusive. Note that the total container log size (container_log_max_size * container_log_max_files) cannot exceed 1% of the total storage of the node, to avoid disk pressure caused by log files. The default value is 10Mi if unspecified.
          &quot;cpuCfsQuota&quot;: True or False, # 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 &#x27;true&#x27; if unspecified.
          &quot;cpuCfsQuotaPeriod&quot;: &quot;A String&quot;, # Set the CPU CFS quota period value &#x27;cpu.cfs_period_us&#x27;. The string must be a sequence of decimal numbers, each with optional fraction and a unit suffix, such as &quot;300ms&quot;. Valid time units are &quot;ns&quot;, &quot;us&quot; (or &quot;µs&quot;), &quot;ms&quot;, &quot;s&quot;, &quot;m&quot;, &quot;h&quot;. The value must be a positive duration between 1ms and 1 second, inclusive.
          &quot;cpuManagerPolicy&quot;: &quot;A String&quot;, # Control the CPU management policy on the node. See https://kubernetes.io/docs/tasks/administer-cluster/cpu-management-policies/ The following values are allowed. * &quot;none&quot;: the default, which represents the existing scheduling behavior. * &quot;static&quot;: allows pods with certain resource characteristics to be granted increased CPU affinity and exclusivity on the node. The default value is &#x27;none&#x27; if unspecified.
          &quot;evictionMaxPodGracePeriodSeconds&quot;: 42, # Optional. eviction_max_pod_grace_period_seconds is the maximum allowed grace period (in seconds) to use when terminating pods in response to a soft eviction threshold being met. This value effectively caps the Pod&#x27;s terminationGracePeriodSeconds value during soft evictions. Default: 0. Range: [0, 300].
          &quot;evictionMinimumReclaim&quot;: { # Eviction minimum reclaims are the resource amounts of minimum reclaims for each eviction signal. # Optional. eviction_minimum_reclaim is a map of signal names to quantities that defines minimum reclaims, which describe the minimum amount of a given resource the kubelet will reclaim when performing a pod eviction while that resource is under pressure.
            &quot;imagefsAvailable&quot;: &quot;A String&quot;, # Optional. Minimum reclaim for eviction due to imagefs available signal. Only take percentage value for now. Sample format: &quot;10%&quot;. Must be &lt;=10%. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
            &quot;imagefsInodesFree&quot;: &quot;A String&quot;, # Optional. Minimum reclaim for eviction due to imagefs inodes free signal. Only take percentage value for now. Sample format: &quot;10%&quot;. Must be &lt;=10%. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
            &quot;memoryAvailable&quot;: &quot;A String&quot;, # Optional. Minimum reclaim for eviction due to memory available signal. Only take percentage value for now. Sample format: &quot;10%&quot;. Must be &lt;=10%. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
            &quot;nodefsAvailable&quot;: &quot;A String&quot;, # Optional. Minimum reclaim for eviction due to nodefs available signal. Only take percentage value for now. Sample format: &quot;10%&quot;. Must be &lt;=10%. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
            &quot;nodefsInodesFree&quot;: &quot;A String&quot;, # Optional. Minimum reclaim for eviction due to nodefs inodes free signal. Only take percentage value for now. Sample format: &quot;10%&quot;. Must be &lt;=10%. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
            &quot;pidAvailable&quot;: &quot;A String&quot;, # Optional. Minimum reclaim for eviction due to pid available signal. Only take percentage value for now. Sample format: &quot;10%&quot;. Must be &lt;=10%. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
          },
          &quot;evictionSoft&quot;: { # Eviction signals are the current state of a particular resource at a specific point in time. The kubelet uses eviction signals to make eviction decisions by comparing the signals to eviction thresholds, which are the minimum amount of the resource that should be available on the node. # Optional. eviction_soft is a map of signal names to quantities that defines soft eviction thresholds. Each signal is compared to its corresponding threshold to determine if a pod eviction should occur.
            &quot;imagefsAvailable&quot;: &quot;A String&quot;, # Optional. Amount of storage available on filesystem that container runtime uses for storing images layers. If the container filesystem and image filesystem are not separate, then imagefs can store both image layers and writeable layers. Defines the amount of &quot;imagefs.available&quot; signal in kubelet. Default is unset, if not specified in the kubelet config. It takses percentage value for now. Sample format: &quot;30%&quot;. Must be &gt;= 15% and &lt;= 50%. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
            &quot;imagefsInodesFree&quot;: &quot;A String&quot;, # Optional. Amount of inodes available on filesystem that container runtime uses for storing images layers. Defines the amount of &quot;imagefs.inodesFree&quot; signal in kubelet. Default is unset, if not specified in the kubelet config. Linux only. It takses percentage value for now. Sample format: &quot;30%&quot;. Must be &gt;= 5% and &lt;= 50%. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
            &quot;memoryAvailable&quot;: &quot;A String&quot;, # Optional. Memory available (i.e. capacity - workingSet), in bytes. Defines the amount of &quot;memory.available&quot; signal in kubelet. Default is unset, if not specified in the kubelet config. Format: positive number + unit, e.g. 100Ki, 10Mi, 5Gi. Valid units are Ki, Mi, Gi. Must be &gt;= 100Mi and &lt;= 50% of the node&#x27;s memory. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
            &quot;nodefsAvailable&quot;: &quot;A String&quot;, # Optional. Amount of storage available on filesystem that kubelet uses for volumes, daemon logs, etc. Defines the amount of &quot;nodefs.available&quot; signal in kubelet. Default is unset, if not specified in the kubelet config. It takses percentage value for now. Sample format: &quot;30%&quot;. Must be &gt;= 10% and &lt;= 50%. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
            &quot;nodefsInodesFree&quot;: &quot;A String&quot;, # Optional. Amount of inodes available on filesystem that kubelet uses for volumes, daemon logs, etc. Defines the amount of &quot;nodefs.inodesFree&quot; signal in kubelet. Default is unset, if not specified in the kubelet config. Linux only. It takses percentage value for now. Sample format: &quot;30%&quot;. Must be &gt;= 5% and &lt;= 50%. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
            &quot;pidAvailable&quot;: &quot;A String&quot;, # Optional. Amount of PID available for pod allocation. Defines the amount of &quot;pid.available&quot; signal in kubelet. Default is unset, if not specified in the kubelet config. It takses percentage value for now. Sample format: &quot;30%&quot;. Must be &gt;= 10% and &lt;= 50%. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
          },
          &quot;evictionSoftGracePeriod&quot;: { # Eviction grace periods are grace periods for each eviction signal. # Optional. eviction_soft_grace_period is a map of signal names to quantities that defines grace periods for each soft eviction signal. The grace period is the amount of time that a pod must be under pressure before an eviction occurs.
            &quot;imagefsAvailable&quot;: &quot;A String&quot;, # Optional. Grace period for eviction due to imagefs available signal. Sample format: &quot;10s&quot;. Must be &gt;= 0. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
            &quot;imagefsInodesFree&quot;: &quot;A String&quot;, # Optional. Grace period for eviction due to imagefs inodes free signal. Sample format: &quot;10s&quot;. Must be &gt;= 0. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
            &quot;memoryAvailable&quot;: &quot;A String&quot;, # Optional. Grace period for eviction due to memory available signal. Sample format: &quot;10s&quot;. Must be &gt;= 0. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
            &quot;nodefsAvailable&quot;: &quot;A String&quot;, # Optional. Grace period for eviction due to nodefs available signal. Sample format: &quot;10s&quot;. Must be &gt;= 0. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
            &quot;nodefsInodesFree&quot;: &quot;A String&quot;, # Optional. Grace period for eviction due to nodefs inodes free signal. Sample format: &quot;10s&quot;. Must be &gt;= 0. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
            &quot;pidAvailable&quot;: &quot;A String&quot;, # Optional. Grace period for eviction due to pid available signal. Sample format: &quot;10s&quot;. Must be &gt;= 0. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
          },
          &quot;imageGcHighThresholdPercent&quot;: 42, # Optional. Defines the percent of disk usage after which image garbage collection is always run. The percent is calculated as this field value out of 100. The value must be between 10 and 85, inclusive and greater than image_gc_low_threshold_percent. The default value is 85 if unspecified.
          &quot;imageGcLowThresholdPercent&quot;: 42, # Optional. Defines the percent of disk usage before which image garbage collection is never run. Lowest disk usage to garbage collect to. The percent is calculated as this field value out of 100. The value must be between 10 and 85, inclusive and smaller than image_gc_high_threshold_percent. The default value is 80 if unspecified.
          &quot;imageMaximumGcAge&quot;: &quot;A String&quot;, # Optional. Defines the maximum age an image can be unused before it is garbage collected. The string must be a sequence of decimal numbers, each with optional fraction and a unit suffix, such as &quot;300s&quot;, &quot;1.5h&quot;, and &quot;2h45m&quot;. Valid time units are &quot;ns&quot;, &quot;us&quot; (or &quot;µs&quot;), &quot;ms&quot;, &quot;s&quot;, &quot;m&quot;, &quot;h&quot;. The value must be a positive duration greater than image_minimum_gc_age or &quot;0s&quot;. The default value is &quot;0s&quot; if unspecified, which disables this field, meaning images won&#x27;t be garbage collected based on being unused for too long.
          &quot;imageMinimumGcAge&quot;: &quot;A String&quot;, # Optional. Defines the minimum age for an unused image before it is garbage collected. The string must be a sequence of decimal numbers, each with optional fraction and a unit suffix, such as &quot;300s&quot;, &quot;1.5h&quot;, and &quot;2h45m&quot;. Valid time units are &quot;ns&quot;, &quot;us&quot; (or &quot;µs&quot;), &quot;ms&quot;, &quot;s&quot;, &quot;m&quot;, &quot;h&quot;. The value must be a positive duration less than or equal to 2 minutes. The default value is &quot;2m0s&quot; if unspecified.
          &quot;insecureKubeletReadonlyPortEnabled&quot;: True or False, # Enable or disable Kubelet read only port.
          &quot;maxParallelImagePulls&quot;: 42, # Optional. Defines the maximum number of image pulls in parallel. The range is 2 to 5, inclusive. The default value is 2 or 3 depending on the disk type. See https://kubernetes.io/docs/concepts/containers/images/#maximum-parallel-image-pulls for more details.
          &quot;memoryManager&quot;: { # The option enables the Kubernetes NUMA-aware Memory Manager feature. Detailed description about the feature can be found [here](https://kubernetes.io/docs/tasks/administer-cluster/memory-manager/). # Optional. Controls NUMA-aware Memory Manager configuration on the node. For more information, see: https://kubernetes.io/docs/tasks/administer-cluster/memory-manager/
            &quot;policy&quot;: &quot;A String&quot;, # Controls the memory management policy on the Node. See https://kubernetes.io/docs/tasks/administer-cluster/memory-manager/#policies The following values are allowed. * &quot;none&quot; * &quot;static&quot; The default value is &#x27;none&#x27; if unspecified.
          },
          &quot;podPidsLimit&quot;: &quot;A String&quot;, # Set the Pod PID limits. See https://kubernetes.io/docs/concepts/policy/pid-limiting/#pod-pid-limits Controls the maximum number of processes allowed to run in a pod. The value must be greater than or equal to 1024 and less than 4194304.
          &quot;singleProcessOomKill&quot;: True or False, # Optional. Defines whether to enable single process OOM killer. If true, will prevent the memory.oom.group flag from being set for container cgroups in cgroups v2. This causes processes in the container to be OOM killed individually instead of as a group.
          &quot;topologyManager&quot;: { # TopologyManager defines the configuration options for Topology Manager feature. See https://kubernetes.io/docs/tasks/administer-cluster/topology-manager/ # Optional. Controls Topology Manager configuration on the node. For more information, see: https://kubernetes.io/docs/tasks/administer-cluster/topology-manager/
            &quot;policy&quot;: &quot;A String&quot;, # Configures the strategy for resource alignment. Allowed values are: * none: the default policy, and does not perform any topology alignment. * restricted: the topology manager stores the preferred NUMA node affinity for the container, and will reject the pod if the affinity if not preferred. * best-effort: the topology manager stores the preferred NUMA node affinity for the container. If the affinity is not preferred, the topology manager will admit the pod to the node anyway. * single-numa-node: the topology manager determines if the single NUMA node affinity is possible. If it is, Topology Manager will store this and the Hint Providers can then use this information when making the resource allocation decision. If, however, this is not possible then the Topology Manager will reject the pod from the node. This will result in a pod in a Terminated state with a pod admission failure. The default policy value is &#x27;none&#x27; if unspecified. Details about each strategy can be found [here](https://kubernetes.io/docs/tasks/administer-cluster/topology-manager/#topology-manager-policies).
            &quot;scope&quot;: &quot;A String&quot;, # The Topology Manager aligns resources in following scopes: * container * pod The default scope is &#x27;container&#x27; if unspecified. See https://kubernetes.io/docs/tasks/administer-cluster/topology-manager/#topology-manager-scopes
          },
        },
        &quot;resourceManagerTags&quot;: { # A map of resource manager tag keys and values to be attached to the nodes for managing Compute Engine firewalls using Network Firewall Policies. Tags must be according to specifications in https://cloud.google.com/vpc/docs/tags-firewalls-overview#specifications. A maximum of 5 tag key-value pairs can be specified. Existing tags will be replaced with new values. # Resource manager tag keys and values to be attached to the nodes for managing Compute Engine firewalls using Network Firewall Policies.
          &quot;tags&quot;: { # TagKeyValue must be in one of the following formats ([KEY]=[VALUE]) 1. `tagKeys/{tag_key_id}=tagValues/{tag_value_id}` 2. `{org_id}/{tag_key_name}={tag_value_name}` 3. `{project_id}/{tag_key_name}={tag_value_name}`
            &quot;a_key&quot;: &quot;A String&quot;,
          },
        },
      },
      &quot;nodePoolDefaults&quot;: { # Subset of Nodepool message that has defaults. # Default NodePool settings for the entire cluster. These settings are overridden if specified on the specific NodePool object.
        &quot;nodeConfigDefaults&quot;: { # Subset of NodeConfig message that has defaults. # Subset of NodeConfig message that has defaults.
          &quot;containerdConfig&quot;: { # ContainerdConfig contains configuration to customize containerd. # Parameters for containerd customization.
            &quot;privateRegistryAccessConfig&quot;: { # PrivateRegistryAccessConfig contains access configuration for private container registries. # PrivateRegistryAccessConfig is used to configure access configuration for private container registries.
              &quot;certificateAuthorityDomainConfig&quot;: [ # Private registry access configuration.
                { # CertificateAuthorityDomainConfig configures one or more fully qualified domain names (FQDN) to a specific certificate.
                  &quot;fqdns&quot;: [ # List of fully qualified domain names (FQDN). Specifying port is supported. Wildcards are NOT supported. Examples: - my.customdomain.com - 10.0.1.2:5000
                    &quot;A String&quot;,
                  ],
                  &quot;gcpSecretManagerCertificateConfig&quot;: { # GCPSecretManagerCertificateConfig configures a secret from [Secret Manager](https://cloud.google.com/secret-manager). # Google Secret Manager (GCP) certificate configuration.
                    &quot;secretUri&quot;: &quot;A String&quot;, # Secret URI, in the form &quot;projects/$PROJECT_ID/secrets/$SECRET_NAME/versions/$VERSION&quot;. Version can be fixed (e.g. &quot;2&quot;) or &quot;latest&quot;
                  },
                },
              ],
              &quot;enabled&quot;: True or False, # Private registry access is enabled.
            },
            &quot;writableCgroups&quot;: { # Defines writable cgroups configuration. # Optional. WritableCgroups defines writable cgroups configuration for the node pool.
              &quot;enabled&quot;: True or False, # Optional. Whether writable cgroups is enabled.
            },
          },
          &quot;gcfsConfig&quot;: { # GcfsConfig contains configurations of Google Container File System (image streaming). # GCFS (Google Container File System, also known as Riptide) options.
            &quot;enabled&quot;: True or False, # Whether to use GCFS.
          },
          &quot;loggingConfig&quot;: { # NodePoolLoggingConfig specifies logging configuration for nodepools. # Logging configuration for node pools.
            &quot;variantConfig&quot;: { # LoggingVariantConfig specifies the behaviour of the logging component. # Logging variant configuration.
              &quot;variant&quot;: &quot;A String&quot;, # Logging variant deployed on nodes.
            },
          },
          &quot;nodeKubeletConfig&quot;: { # Node kubelet configs. # NodeKubeletConfig controls the defaults for new node-pools. Currently only `insecure_kubelet_readonly_port_enabled` can be set here.
            &quot;allowedUnsafeSysctls&quot;: [ # Optional. Defines a comma-separated allowlist of unsafe sysctls or sysctl patterns (ending in `*`). The unsafe namespaced sysctl groups are `kernel.shm*`, `kernel.msg*`, `kernel.sem`, `fs.mqueue.*`, and `net.*`. Leaving this allowlist empty means they cannot be set on Pods. To allow certain sysctls or sysctl patterns to be set on Pods, list them separated by commas. For example: `kernel.msg*,net.ipv4.route.min_pmtu`. See https://kubernetes.io/docs/tasks/administer-cluster/sysctl-cluster/ for more details.
              &quot;A String&quot;,
            ],
            &quot;containerLogMaxFiles&quot;: 42, # Optional. Defines the maximum number of container log files that can be present for a container. See https://kubernetes.io/docs/concepts/cluster-administration/logging/#log-rotation The value must be an integer between 2 and 10, inclusive. The default value is 5 if unspecified.
            &quot;containerLogMaxSize&quot;: &quot;A String&quot;, # Optional. Defines the maximum size of the container log file before it is rotated. See https://kubernetes.io/docs/concepts/cluster-administration/logging/#log-rotation Valid format is positive number + unit, e.g. 100Ki, 10Mi. Valid units are Ki, Mi, Gi. The value must be between 10Mi and 500Mi, inclusive. Note that the total container log size (container_log_max_size * container_log_max_files) cannot exceed 1% of the total storage of the node, to avoid disk pressure caused by log files. The default value is 10Mi if unspecified.
            &quot;cpuCfsQuota&quot;: True or False, # 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 &#x27;true&#x27; if unspecified.
            &quot;cpuCfsQuotaPeriod&quot;: &quot;A String&quot;, # Set the CPU CFS quota period value &#x27;cpu.cfs_period_us&#x27;. The string must be a sequence of decimal numbers, each with optional fraction and a unit suffix, such as &quot;300ms&quot;. Valid time units are &quot;ns&quot;, &quot;us&quot; (or &quot;µs&quot;), &quot;ms&quot;, &quot;s&quot;, &quot;m&quot;, &quot;h&quot;. The value must be a positive duration between 1ms and 1 second, inclusive.
            &quot;cpuManagerPolicy&quot;: &quot;A String&quot;, # Control the CPU management policy on the node. See https://kubernetes.io/docs/tasks/administer-cluster/cpu-management-policies/ The following values are allowed. * &quot;none&quot;: the default, which represents the existing scheduling behavior. * &quot;static&quot;: allows pods with certain resource characteristics to be granted increased CPU affinity and exclusivity on the node. The default value is &#x27;none&#x27; if unspecified.
            &quot;evictionMaxPodGracePeriodSeconds&quot;: 42, # Optional. eviction_max_pod_grace_period_seconds is the maximum allowed grace period (in seconds) to use when terminating pods in response to a soft eviction threshold being met. This value effectively caps the Pod&#x27;s terminationGracePeriodSeconds value during soft evictions. Default: 0. Range: [0, 300].
            &quot;evictionMinimumReclaim&quot;: { # Eviction minimum reclaims are the resource amounts of minimum reclaims for each eviction signal. # Optional. eviction_minimum_reclaim is a map of signal names to quantities that defines minimum reclaims, which describe the minimum amount of a given resource the kubelet will reclaim when performing a pod eviction while that resource is under pressure.
              &quot;imagefsAvailable&quot;: &quot;A String&quot;, # Optional. Minimum reclaim for eviction due to imagefs available signal. Only take percentage value for now. Sample format: &quot;10%&quot;. Must be &lt;=10%. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
              &quot;imagefsInodesFree&quot;: &quot;A String&quot;, # Optional. Minimum reclaim for eviction due to imagefs inodes free signal. Only take percentage value for now. Sample format: &quot;10%&quot;. Must be &lt;=10%. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
              &quot;memoryAvailable&quot;: &quot;A String&quot;, # Optional. Minimum reclaim for eviction due to memory available signal. Only take percentage value for now. Sample format: &quot;10%&quot;. Must be &lt;=10%. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
              &quot;nodefsAvailable&quot;: &quot;A String&quot;, # Optional. Minimum reclaim for eviction due to nodefs available signal. Only take percentage value for now. Sample format: &quot;10%&quot;. Must be &lt;=10%. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
              &quot;nodefsInodesFree&quot;: &quot;A String&quot;, # Optional. Minimum reclaim for eviction due to nodefs inodes free signal. Only take percentage value for now. Sample format: &quot;10%&quot;. Must be &lt;=10%. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
              &quot;pidAvailable&quot;: &quot;A String&quot;, # Optional. Minimum reclaim for eviction due to pid available signal. Only take percentage value for now. Sample format: &quot;10%&quot;. Must be &lt;=10%. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
            },
            &quot;evictionSoft&quot;: { # Eviction signals are the current state of a particular resource at a specific point in time. The kubelet uses eviction signals to make eviction decisions by comparing the signals to eviction thresholds, which are the minimum amount of the resource that should be available on the node. # Optional. eviction_soft is a map of signal names to quantities that defines soft eviction thresholds. Each signal is compared to its corresponding threshold to determine if a pod eviction should occur.
              &quot;imagefsAvailable&quot;: &quot;A String&quot;, # Optional. Amount of storage available on filesystem that container runtime uses for storing images layers. If the container filesystem and image filesystem are not separate, then imagefs can store both image layers and writeable layers. Defines the amount of &quot;imagefs.available&quot; signal in kubelet. Default is unset, if not specified in the kubelet config. It takses percentage value for now. Sample format: &quot;30%&quot;. Must be &gt;= 15% and &lt;= 50%. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
              &quot;imagefsInodesFree&quot;: &quot;A String&quot;, # Optional. Amount of inodes available on filesystem that container runtime uses for storing images layers. Defines the amount of &quot;imagefs.inodesFree&quot; signal in kubelet. Default is unset, if not specified in the kubelet config. Linux only. It takses percentage value for now. Sample format: &quot;30%&quot;. Must be &gt;= 5% and &lt;= 50%. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
              &quot;memoryAvailable&quot;: &quot;A String&quot;, # Optional. Memory available (i.e. capacity - workingSet), in bytes. Defines the amount of &quot;memory.available&quot; signal in kubelet. Default is unset, if not specified in the kubelet config. Format: positive number + unit, e.g. 100Ki, 10Mi, 5Gi. Valid units are Ki, Mi, Gi. Must be &gt;= 100Mi and &lt;= 50% of the node&#x27;s memory. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
              &quot;nodefsAvailable&quot;: &quot;A String&quot;, # Optional. Amount of storage available on filesystem that kubelet uses for volumes, daemon logs, etc. Defines the amount of &quot;nodefs.available&quot; signal in kubelet. Default is unset, if not specified in the kubelet config. It takses percentage value for now. Sample format: &quot;30%&quot;. Must be &gt;= 10% and &lt;= 50%. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
              &quot;nodefsInodesFree&quot;: &quot;A String&quot;, # Optional. Amount of inodes available on filesystem that kubelet uses for volumes, daemon logs, etc. Defines the amount of &quot;nodefs.inodesFree&quot; signal in kubelet. Default is unset, if not specified in the kubelet config. Linux only. It takses percentage value for now. Sample format: &quot;30%&quot;. Must be &gt;= 5% and &lt;= 50%. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
              &quot;pidAvailable&quot;: &quot;A String&quot;, # Optional. Amount of PID available for pod allocation. Defines the amount of &quot;pid.available&quot; signal in kubelet. Default is unset, if not specified in the kubelet config. It takses percentage value for now. Sample format: &quot;30%&quot;. Must be &gt;= 10% and &lt;= 50%. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
            },
            &quot;evictionSoftGracePeriod&quot;: { # Eviction grace periods are grace periods for each eviction signal. # Optional. eviction_soft_grace_period is a map of signal names to quantities that defines grace periods for each soft eviction signal. The grace period is the amount of time that a pod must be under pressure before an eviction occurs.
              &quot;imagefsAvailable&quot;: &quot;A String&quot;, # Optional. Grace period for eviction due to imagefs available signal. Sample format: &quot;10s&quot;. Must be &gt;= 0. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
              &quot;imagefsInodesFree&quot;: &quot;A String&quot;, # Optional. Grace period for eviction due to imagefs inodes free signal. Sample format: &quot;10s&quot;. Must be &gt;= 0. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
              &quot;memoryAvailable&quot;: &quot;A String&quot;, # Optional. Grace period for eviction due to memory available signal. Sample format: &quot;10s&quot;. Must be &gt;= 0. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
              &quot;nodefsAvailable&quot;: &quot;A String&quot;, # Optional. Grace period for eviction due to nodefs available signal. Sample format: &quot;10s&quot;. Must be &gt;= 0. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
              &quot;nodefsInodesFree&quot;: &quot;A String&quot;, # Optional. Grace period for eviction due to nodefs inodes free signal. Sample format: &quot;10s&quot;. Must be &gt;= 0. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
              &quot;pidAvailable&quot;: &quot;A String&quot;, # Optional. Grace period for eviction due to pid available signal. Sample format: &quot;10s&quot;. Must be &gt;= 0. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
            },
            &quot;imageGcHighThresholdPercent&quot;: 42, # Optional. Defines the percent of disk usage after which image garbage collection is always run. The percent is calculated as this field value out of 100. The value must be between 10 and 85, inclusive and greater than image_gc_low_threshold_percent. The default value is 85 if unspecified.
            &quot;imageGcLowThresholdPercent&quot;: 42, # Optional. Defines the percent of disk usage before which image garbage collection is never run. Lowest disk usage to garbage collect to. The percent is calculated as this field value out of 100. The value must be between 10 and 85, inclusive and smaller than image_gc_high_threshold_percent. The default value is 80 if unspecified.
            &quot;imageMaximumGcAge&quot;: &quot;A String&quot;, # Optional. Defines the maximum age an image can be unused before it is garbage collected. The string must be a sequence of decimal numbers, each with optional fraction and a unit suffix, such as &quot;300s&quot;, &quot;1.5h&quot;, and &quot;2h45m&quot;. Valid time units are &quot;ns&quot;, &quot;us&quot; (or &quot;µs&quot;), &quot;ms&quot;, &quot;s&quot;, &quot;m&quot;, &quot;h&quot;. The value must be a positive duration greater than image_minimum_gc_age or &quot;0s&quot;. The default value is &quot;0s&quot; if unspecified, which disables this field, meaning images won&#x27;t be garbage collected based on being unused for too long.
            &quot;imageMinimumGcAge&quot;: &quot;A String&quot;, # Optional. Defines the minimum age for an unused image before it is garbage collected. The string must be a sequence of decimal numbers, each with optional fraction and a unit suffix, such as &quot;300s&quot;, &quot;1.5h&quot;, and &quot;2h45m&quot;. Valid time units are &quot;ns&quot;, &quot;us&quot; (or &quot;µs&quot;), &quot;ms&quot;, &quot;s&quot;, &quot;m&quot;, &quot;h&quot;. The value must be a positive duration less than or equal to 2 minutes. The default value is &quot;2m0s&quot; if unspecified.
            &quot;insecureKubeletReadonlyPortEnabled&quot;: True or False, # Enable or disable Kubelet read only port.
            &quot;maxParallelImagePulls&quot;: 42, # Optional. Defines the maximum number of image pulls in parallel. The range is 2 to 5, inclusive. The default value is 2 or 3 depending on the disk type. See https://kubernetes.io/docs/concepts/containers/images/#maximum-parallel-image-pulls for more details.
            &quot;memoryManager&quot;: { # The option enables the Kubernetes NUMA-aware Memory Manager feature. Detailed description about the feature can be found [here](https://kubernetes.io/docs/tasks/administer-cluster/memory-manager/). # Optional. Controls NUMA-aware Memory Manager configuration on the node. For more information, see: https://kubernetes.io/docs/tasks/administer-cluster/memory-manager/
              &quot;policy&quot;: &quot;A String&quot;, # Controls the memory management policy on the Node. See https://kubernetes.io/docs/tasks/administer-cluster/memory-manager/#policies The following values are allowed. * &quot;none&quot; * &quot;static&quot; The default value is &#x27;none&#x27; if unspecified.
            },
            &quot;podPidsLimit&quot;: &quot;A String&quot;, # Set the Pod PID limits. See https://kubernetes.io/docs/concepts/policy/pid-limiting/#pod-pid-limits Controls the maximum number of processes allowed to run in a pod. The value must be greater than or equal to 1024 and less than 4194304.
            &quot;singleProcessOomKill&quot;: True or False, # Optional. Defines whether to enable single process OOM killer. If true, will prevent the memory.oom.group flag from being set for container cgroups in cgroups v2. This causes processes in the container to be OOM killed individually instead of as a group.
            &quot;topologyManager&quot;: { # TopologyManager defines the configuration options for Topology Manager feature. See https://kubernetes.io/docs/tasks/administer-cluster/topology-manager/ # Optional. Controls Topology Manager configuration on the node. For more information, see: https://kubernetes.io/docs/tasks/administer-cluster/topology-manager/
              &quot;policy&quot;: &quot;A String&quot;, # Configures the strategy for resource alignment. Allowed values are: * none: the default policy, and does not perform any topology alignment. * restricted: the topology manager stores the preferred NUMA node affinity for the container, and will reject the pod if the affinity if not preferred. * best-effort: the topology manager stores the preferred NUMA node affinity for the container. If the affinity is not preferred, the topology manager will admit the pod to the node anyway. * single-numa-node: the topology manager determines if the single NUMA node affinity is possible. If it is, Topology Manager will store this and the Hint Providers can then use this information when making the resource allocation decision. If, however, this is not possible then the Topology Manager will reject the pod from the node. This will result in a pod in a Terminated state with a pod admission failure. The default policy value is &#x27;none&#x27; if unspecified. Details about each strategy can be found [here](https://kubernetes.io/docs/tasks/administer-cluster/topology-manager/#topology-manager-policies).
              &quot;scope&quot;: &quot;A String&quot;, # The Topology Manager aligns resources in following scopes: * container * pod The default scope is &#x27;container&#x27; if unspecified. See https://kubernetes.io/docs/tasks/administer-cluster/topology-manager/#topology-manager-scopes
            },
          },
        },
      },
      &quot;nodePools&quot;: [ # The node pools associated with this cluster. This field should not be set if &quot;node_config&quot; or &quot;initial_node_count&quot; are specified.
        { # NodePool contains the name and configuration for a cluster&#x27;s node pool. Node pools are a set of nodes (i.e. VM&#x27;s), with a common configuration and specification, under the control of the cluster master. They may have a set of Kubernetes labels applied to them, which may be used to reference them during pod scheduling. They may also be resized up or down, to accommodate the workload.
          &quot;autopilotConfig&quot;: { # AutopilotConfig contains configuration of autopilot feature for this nodepool. # Specifies the autopilot configuration for this node pool. This field is exclusively reserved for Cluster Autoscaler.
            &quot;enabled&quot;: True or False, # Denotes that nodes belonging to this node pool are Autopilot nodes.
          },
          &quot;autoscaling&quot;: { # NodePoolAutoscaling contains information required by cluster autoscaler to adjust the size of the node pool to the current cluster usage. # Autoscaler configuration for this NodePool. Autoscaler is enabled only if a valid configuration is present.
            &quot;autoprovisioned&quot;: True or False, # Can this node pool be deleted automatically.
            &quot;enabled&quot;: True or False, # Is autoscaling enabled for this node pool.
            &quot;locationPolicy&quot;: &quot;A String&quot;, # Location policy used when scaling up a nodepool.
            &quot;maxNodeCount&quot;: 42, # Maximum number of nodes for one location in the node pool. Must be &gt;= min_node_count. There has to be enough quota to scale up the cluster.
            &quot;minNodeCount&quot;: 42, # Minimum number of nodes for one location in the node pool. Must be greater than or equal to 0 and less than or equal to max_node_count.
            &quot;totalMaxNodeCount&quot;: 42, # Maximum number of nodes in the node pool. Must be greater than or equal to total_min_node_count. There has to be enough quota to scale up the cluster. The total_*_node_count fields are mutually exclusive with the *_node_count fields.
            &quot;totalMinNodeCount&quot;: 42, # Minimum number of nodes in the node pool. Must be greater than or equal to 0 and less than or equal to total_max_node_count. The total_*_node_count fields are mutually exclusive with the *_node_count fields.
          },
          &quot;bestEffortProvisioning&quot;: { # Best effort provisioning. # Enable best effort provisioning for nodes
            &quot;enabled&quot;: True or False, # When this is enabled, cluster/node pool creations will ignore non-fatal errors like stockout to best provision as many nodes as possible right now and eventually bring up all target number of nodes
            &quot;minProvisionNodes&quot;: 42, # Minimum number of nodes to be provisioned to be considered as succeeded, and the rest of nodes will be provisioned gradually and eventually when stockout issue has been resolved.
          },
          &quot;conditions&quot;: [ # Which conditions caused the current node pool state.
            { # StatusCondition describes why a cluster or a node pool has a certain status (e.g., ERROR or DEGRADED).
              &quot;canonicalCode&quot;: &quot;A String&quot;, # Canonical code of the condition.
              &quot;code&quot;: &quot;A String&quot;, # Machine-friendly representation of the condition Deprecated. Use canonical_code instead.
              &quot;message&quot;: &quot;A String&quot;, # Human-friendly representation of the condition
            },
          ],
          &quot;config&quot;: { # Parameters that describe the nodes in a cluster. GKE Autopilot clusters do not recognize parameters in `NodeConfig`. Use AutoprovisioningNodePoolDefaults instead. # The node configuration of the pool.
            &quot;accelerators&quot;: [ # 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.
              { # AcceleratorConfig represents a Hardware Accelerator request.
                &quot;acceleratorCount&quot;: &quot;A String&quot;, # The number of the accelerator cards exposed to an instance.
                &quot;acceleratorType&quot;: &quot;A String&quot;, # The accelerator type resource name. List of supported accelerators [here](https://cloud.google.com/compute/docs/gpus)
                &quot;gpuDriverInstallationConfig&quot;: { # GPUDriverInstallationConfig specifies the version of GPU driver to be auto installed. # The configuration for auto installation of GPU driver.
                  &quot;gpuDriverVersion&quot;: &quot;A String&quot;, # Mode for how the GPU driver is installed.
                },
                &quot;gpuPartitionSize&quot;: &quot;A String&quot;, # Size of partitions to create on the GPU. Valid values are described in the NVIDIA [mig user guide](https://docs.nvidia.com/datacenter/tesla/mig-user-guide/#partitioning).
                &quot;gpuSharingConfig&quot;: { # GPUSharingConfig represents the GPU sharing configuration for Hardware Accelerators. # The configuration for GPU sharing options.
                  &quot;gpuSharingStrategy&quot;: &quot;A String&quot;, # The type of GPU sharing strategy to enable on the GPU node.
                  &quot;maxSharedClientsPerGpu&quot;: &quot;A String&quot;, # The max number of containers that can share a physical GPU.
                },
              },
            ],
            &quot;advancedMachineFeatures&quot;: { # Specifies options for controlling advanced machine features. # Advanced features for the Compute Engine VM.
              &quot;enableNestedVirtualization&quot;: True or False, # Whether or not to enable nested virtualization (defaults to false).
              &quot;performanceMonitoringUnit&quot;: &quot;A String&quot;, # Type of Performance Monitoring Unit (PMU) requested on node pool instances. If unset, PMU will not be available to the node.
              &quot;threadsPerCore&quot;: &quot;A String&quot;, # The number of threads per physical core. To disable simultaneous multithreading (SMT) set this to 1. If unset, the maximum number of threads supported per core by the underlying processor is assumed.
            },
            &quot;bootDisk&quot;: { # BootDisk specifies the boot disk configuration for nodepools. # The boot disk configuration for the node pool.
              &quot;diskType&quot;: &quot;A String&quot;, # Disk type of the boot disk. (i.e. Hyperdisk-Balanced, PD-Balanced, etc.)
              &quot;provisionedIops&quot;: &quot;A String&quot;, # For Hyperdisk-Balanced only, the provisioned IOPS config value.
              &quot;provisionedThroughput&quot;: &quot;A String&quot;, # For Hyperdisk-Balanced only, the provisioned throughput config value.
              &quot;sizeGb&quot;: &quot;A String&quot;, # Disk size in GB. Replaces NodeConfig.disk_size_gb
            },
            &quot;bootDiskKmsKey&quot;: &quot;A String&quot;, #  The Customer Managed Encryption Key used to encrypt the boot disk attached to each node in the node pool. This should be of the form projects/[KEY_PROJECT_ID]/locations/[LOCATION]/keyRings/[RING_NAME]/cryptoKeys/[KEY_NAME]. For more information about protecting resources with Cloud KMS Keys please see: https://cloud.google.com/compute/docs/disks/customer-managed-encryption
            &quot;confidentialNodes&quot;: { # ConfidentialNodes is configuration for the confidential nodes feature, which makes nodes run on confidential VMs. # Confidential nodes config. All the nodes in the node pool will be Confidential VM once enabled.
              &quot;confidentialInstanceType&quot;: &quot;A String&quot;, # Defines the type of technology used by the confidential node.
              &quot;enabled&quot;: True or False, # Whether Confidential Nodes feature is enabled.
            },
            &quot;containerdConfig&quot;: { # ContainerdConfig contains configuration to customize containerd. # Parameters for containerd customization.
              &quot;privateRegistryAccessConfig&quot;: { # PrivateRegistryAccessConfig contains access configuration for private container registries. # PrivateRegistryAccessConfig is used to configure access configuration for private container registries.
                &quot;certificateAuthorityDomainConfig&quot;: [ # Private registry access configuration.
                  { # CertificateAuthorityDomainConfig configures one or more fully qualified domain names (FQDN) to a specific certificate.
                    &quot;fqdns&quot;: [ # List of fully qualified domain names (FQDN). Specifying port is supported. Wildcards are NOT supported. Examples: - my.customdomain.com - 10.0.1.2:5000
                      &quot;A String&quot;,
                    ],
                    &quot;gcpSecretManagerCertificateConfig&quot;: { # GCPSecretManagerCertificateConfig configures a secret from [Secret Manager](https://cloud.google.com/secret-manager). # Google Secret Manager (GCP) certificate configuration.
                      &quot;secretUri&quot;: &quot;A String&quot;, # Secret URI, in the form &quot;projects/$PROJECT_ID/secrets/$SECRET_NAME/versions/$VERSION&quot;. Version can be fixed (e.g. &quot;2&quot;) or &quot;latest&quot;
                    },
                  },
                ],
                &quot;enabled&quot;: True or False, # Private registry access is enabled.
              },
              &quot;writableCgroups&quot;: { # Defines writable cgroups configuration. # Optional. WritableCgroups defines writable cgroups configuration for the node pool.
                &quot;enabled&quot;: True or False, # Optional. Whether writable cgroups is enabled.
              },
            },
            &quot;diskSizeGb&quot;: 42, # 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.
            &quot;diskType&quot;: &quot;A String&quot;, # Type of the disk attached to each node (e.g. &#x27;pd-standard&#x27;, &#x27;pd-ssd&#x27; or &#x27;pd-balanced&#x27;) If unspecified, the default disk type is &#x27;pd-standard&#x27;
            &quot;effectiveCgroupMode&quot;: &quot;A String&quot;, # Output only. effective_cgroup_mode is the cgroup mode actually used by the node pool. It is determined by the cgroup mode specified in the LinuxNodeConfig or the default cgroup mode based on the cluster creation version.
            &quot;enableConfidentialStorage&quot;: True or False, # Optional. Reserved for future use.
            &quot;ephemeralStorageLocalSsdConfig&quot;: { # EphemeralStorageLocalSsdConfig contains configuration for the node ephemeral storage using Local SSDs. # Parameters for the node ephemeral storage using Local SSDs. If unspecified, ephemeral storage is backed by the boot disk.
              &quot;dataCacheCount&quot;: 42, # Number of local SSDs to use for GKE Data Cache.
              &quot;localSsdCount&quot;: 42, # Number of local SSDs to use to back ephemeral storage. Uses NVMe interfaces. A zero (or unset) value has different meanings depending on machine type being used: 1. For pre-Gen3 machines, which support flexible numbers of local ssds, zero (or unset) means to disable using local SSDs as ephemeral storage. The limit for this value is dependent upon the maximum number of disk available on a machine per zone. See: https://cloud.google.com/compute/docs/disks/local-ssd for more information. 2. For Gen3 machines which dictate a specific number of local ssds, zero (or unset) means to use the default number of local ssds that goes with that machine type. For example, for a c3-standard-8-lssd machine, 2 local ssds would be provisioned. For c3-standard-8 (which doesn&#x27;t support local ssds), 0 will be provisioned. See https://cloud.google.com/compute/docs/disks/local-ssd#choose_number_local_ssds for more info.
            },
            &quot;fastSocket&quot;: { # Configuration of Fast Socket feature. # Enable or disable NCCL fast socket for the node pool.
              &quot;enabled&quot;: True or False, # Whether Fast Socket features are enabled in the node pool.
            },
            &quot;flexStart&quot;: True or False, # Flex Start flag for enabling Flex Start VM.
            &quot;gcfsConfig&quot;: { # GcfsConfig contains configurations of Google Container File System (image streaming). # Google Container File System (image streaming) configs.
              &quot;enabled&quot;: True or False, # Whether to use GCFS.
            },
            &quot;gvnic&quot;: { # Configuration of gVNIC feature. # Enable or disable gvnic in the node pool.
              &quot;enabled&quot;: True or False, # Whether gVNIC features are enabled in the node pool.
            },
            &quot;imageType&quot;: &quot;A String&quot;, # The image type to use for this node. Note that for a given image type, the latest version of it will be used. Please see https://cloud.google.com/kubernetes-engine/docs/concepts/node-images for available image types.
            &quot;kubeletConfig&quot;: { # Node kubelet configs. # Node kubelet configs.
              &quot;allowedUnsafeSysctls&quot;: [ # Optional. Defines a comma-separated allowlist of unsafe sysctls or sysctl patterns (ending in `*`). The unsafe namespaced sysctl groups are `kernel.shm*`, `kernel.msg*`, `kernel.sem`, `fs.mqueue.*`, and `net.*`. Leaving this allowlist empty means they cannot be set on Pods. To allow certain sysctls or sysctl patterns to be set on Pods, list them separated by commas. For example: `kernel.msg*,net.ipv4.route.min_pmtu`. See https://kubernetes.io/docs/tasks/administer-cluster/sysctl-cluster/ for more details.
                &quot;A String&quot;,
              ],
              &quot;containerLogMaxFiles&quot;: 42, # Optional. Defines the maximum number of container log files that can be present for a container. See https://kubernetes.io/docs/concepts/cluster-administration/logging/#log-rotation The value must be an integer between 2 and 10, inclusive. The default value is 5 if unspecified.
              &quot;containerLogMaxSize&quot;: &quot;A String&quot;, # Optional. Defines the maximum size of the container log file before it is rotated. See https://kubernetes.io/docs/concepts/cluster-administration/logging/#log-rotation Valid format is positive number + unit, e.g. 100Ki, 10Mi. Valid units are Ki, Mi, Gi. The value must be between 10Mi and 500Mi, inclusive. Note that the total container log size (container_log_max_size * container_log_max_files) cannot exceed 1% of the total storage of the node, to avoid disk pressure caused by log files. The default value is 10Mi if unspecified.
              &quot;cpuCfsQuota&quot;: True or False, # 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 &#x27;true&#x27; if unspecified.
              &quot;cpuCfsQuotaPeriod&quot;: &quot;A String&quot;, # Set the CPU CFS quota period value &#x27;cpu.cfs_period_us&#x27;. The string must be a sequence of decimal numbers, each with optional fraction and a unit suffix, such as &quot;300ms&quot;. Valid time units are &quot;ns&quot;, &quot;us&quot; (or &quot;µs&quot;), &quot;ms&quot;, &quot;s&quot;, &quot;m&quot;, &quot;h&quot;. The value must be a positive duration between 1ms and 1 second, inclusive.
              &quot;cpuManagerPolicy&quot;: &quot;A String&quot;, # Control the CPU management policy on the node. See https://kubernetes.io/docs/tasks/administer-cluster/cpu-management-policies/ The following values are allowed. * &quot;none&quot;: the default, which represents the existing scheduling behavior. * &quot;static&quot;: allows pods with certain resource characteristics to be granted increased CPU affinity and exclusivity on the node. The default value is &#x27;none&#x27; if unspecified.
              &quot;evictionMaxPodGracePeriodSeconds&quot;: 42, # Optional. eviction_max_pod_grace_period_seconds is the maximum allowed grace period (in seconds) to use when terminating pods in response to a soft eviction threshold being met. This value effectively caps the Pod&#x27;s terminationGracePeriodSeconds value during soft evictions. Default: 0. Range: [0, 300].
              &quot;evictionMinimumReclaim&quot;: { # Eviction minimum reclaims are the resource amounts of minimum reclaims for each eviction signal. # Optional. eviction_minimum_reclaim is a map of signal names to quantities that defines minimum reclaims, which describe the minimum amount of a given resource the kubelet will reclaim when performing a pod eviction while that resource is under pressure.
                &quot;imagefsAvailable&quot;: &quot;A String&quot;, # Optional. Minimum reclaim for eviction due to imagefs available signal. Only take percentage value for now. Sample format: &quot;10%&quot;. Must be &lt;=10%. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
                &quot;imagefsInodesFree&quot;: &quot;A String&quot;, # Optional. Minimum reclaim for eviction due to imagefs inodes free signal. Only take percentage value for now. Sample format: &quot;10%&quot;. Must be &lt;=10%. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
                &quot;memoryAvailable&quot;: &quot;A String&quot;, # Optional. Minimum reclaim for eviction due to memory available signal. Only take percentage value for now. Sample format: &quot;10%&quot;. Must be &lt;=10%. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
                &quot;nodefsAvailable&quot;: &quot;A String&quot;, # Optional. Minimum reclaim for eviction due to nodefs available signal. Only take percentage value for now. Sample format: &quot;10%&quot;. Must be &lt;=10%. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
                &quot;nodefsInodesFree&quot;: &quot;A String&quot;, # Optional. Minimum reclaim for eviction due to nodefs inodes free signal. Only take percentage value for now. Sample format: &quot;10%&quot;. Must be &lt;=10%. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
                &quot;pidAvailable&quot;: &quot;A String&quot;, # Optional. Minimum reclaim for eviction due to pid available signal. Only take percentage value for now. Sample format: &quot;10%&quot;. Must be &lt;=10%. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
              },
              &quot;evictionSoft&quot;: { # Eviction signals are the current state of a particular resource at a specific point in time. The kubelet uses eviction signals to make eviction decisions by comparing the signals to eviction thresholds, which are the minimum amount of the resource that should be available on the node. # Optional. eviction_soft is a map of signal names to quantities that defines soft eviction thresholds. Each signal is compared to its corresponding threshold to determine if a pod eviction should occur.
                &quot;imagefsAvailable&quot;: &quot;A String&quot;, # Optional. Amount of storage available on filesystem that container runtime uses for storing images layers. If the container filesystem and image filesystem are not separate, then imagefs can store both image layers and writeable layers. Defines the amount of &quot;imagefs.available&quot; signal in kubelet. Default is unset, if not specified in the kubelet config. It takses percentage value for now. Sample format: &quot;30%&quot;. Must be &gt;= 15% and &lt;= 50%. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
                &quot;imagefsInodesFree&quot;: &quot;A String&quot;, # Optional. Amount of inodes available on filesystem that container runtime uses for storing images layers. Defines the amount of &quot;imagefs.inodesFree&quot; signal in kubelet. Default is unset, if not specified in the kubelet config. Linux only. It takses percentage value for now. Sample format: &quot;30%&quot;. Must be &gt;= 5% and &lt;= 50%. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
                &quot;memoryAvailable&quot;: &quot;A String&quot;, # Optional. Memory available (i.e. capacity - workingSet), in bytes. Defines the amount of &quot;memory.available&quot; signal in kubelet. Default is unset, if not specified in the kubelet config. Format: positive number + unit, e.g. 100Ki, 10Mi, 5Gi. Valid units are Ki, Mi, Gi. Must be &gt;= 100Mi and &lt;= 50% of the node&#x27;s memory. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
                &quot;nodefsAvailable&quot;: &quot;A String&quot;, # Optional. Amount of storage available on filesystem that kubelet uses for volumes, daemon logs, etc. Defines the amount of &quot;nodefs.available&quot; signal in kubelet. Default is unset, if not specified in the kubelet config. It takses percentage value for now. Sample format: &quot;30%&quot;. Must be &gt;= 10% and &lt;= 50%. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
                &quot;nodefsInodesFree&quot;: &quot;A String&quot;, # Optional. Amount of inodes available on filesystem that kubelet uses for volumes, daemon logs, etc. Defines the amount of &quot;nodefs.inodesFree&quot; signal in kubelet. Default is unset, if not specified in the kubelet config. Linux only. It takses percentage value for now. Sample format: &quot;30%&quot;. Must be &gt;= 5% and &lt;= 50%. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
                &quot;pidAvailable&quot;: &quot;A String&quot;, # Optional. Amount of PID available for pod allocation. Defines the amount of &quot;pid.available&quot; signal in kubelet. Default is unset, if not specified in the kubelet config. It takses percentage value for now. Sample format: &quot;30%&quot;. Must be &gt;= 10% and &lt;= 50%. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
              },
              &quot;evictionSoftGracePeriod&quot;: { # Eviction grace periods are grace periods for each eviction signal. # Optional. eviction_soft_grace_period is a map of signal names to quantities that defines grace periods for each soft eviction signal. The grace period is the amount of time that a pod must be under pressure before an eviction occurs.
                &quot;imagefsAvailable&quot;: &quot;A String&quot;, # Optional. Grace period for eviction due to imagefs available signal. Sample format: &quot;10s&quot;. Must be &gt;= 0. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
                &quot;imagefsInodesFree&quot;: &quot;A String&quot;, # Optional. Grace period for eviction due to imagefs inodes free signal. Sample format: &quot;10s&quot;. Must be &gt;= 0. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
                &quot;memoryAvailable&quot;: &quot;A String&quot;, # Optional. Grace period for eviction due to memory available signal. Sample format: &quot;10s&quot;. Must be &gt;= 0. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
                &quot;nodefsAvailable&quot;: &quot;A String&quot;, # Optional. Grace period for eviction due to nodefs available signal. Sample format: &quot;10s&quot;. Must be &gt;= 0. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
                &quot;nodefsInodesFree&quot;: &quot;A String&quot;, # Optional. Grace period for eviction due to nodefs inodes free signal. Sample format: &quot;10s&quot;. Must be &gt;= 0. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
                &quot;pidAvailable&quot;: &quot;A String&quot;, # Optional. Grace period for eviction due to pid available signal. Sample format: &quot;10s&quot;. Must be &gt;= 0. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
              },
              &quot;imageGcHighThresholdPercent&quot;: 42, # Optional. Defines the percent of disk usage after which image garbage collection is always run. The percent is calculated as this field value out of 100. The value must be between 10 and 85, inclusive and greater than image_gc_low_threshold_percent. The default value is 85 if unspecified.
              &quot;imageGcLowThresholdPercent&quot;: 42, # Optional. Defines the percent of disk usage before which image garbage collection is never run. Lowest disk usage to garbage collect to. The percent is calculated as this field value out of 100. The value must be between 10 and 85, inclusive and smaller than image_gc_high_threshold_percent. The default value is 80 if unspecified.
              &quot;imageMaximumGcAge&quot;: &quot;A String&quot;, # Optional. Defines the maximum age an image can be unused before it is garbage collected. The string must be a sequence of decimal numbers, each with optional fraction and a unit suffix, such as &quot;300s&quot;, &quot;1.5h&quot;, and &quot;2h45m&quot;. Valid time units are &quot;ns&quot;, &quot;us&quot; (or &quot;µs&quot;), &quot;ms&quot;, &quot;s&quot;, &quot;m&quot;, &quot;h&quot;. The value must be a positive duration greater than image_minimum_gc_age or &quot;0s&quot;. The default value is &quot;0s&quot; if unspecified, which disables this field, meaning images won&#x27;t be garbage collected based on being unused for too long.
              &quot;imageMinimumGcAge&quot;: &quot;A String&quot;, # Optional. Defines the minimum age for an unused image before it is garbage collected. The string must be a sequence of decimal numbers, each with optional fraction and a unit suffix, such as &quot;300s&quot;, &quot;1.5h&quot;, and &quot;2h45m&quot;. Valid time units are &quot;ns&quot;, &quot;us&quot; (or &quot;µs&quot;), &quot;ms&quot;, &quot;s&quot;, &quot;m&quot;, &quot;h&quot;. The value must be a positive duration less than or equal to 2 minutes. The default value is &quot;2m0s&quot; if unspecified.
              &quot;insecureKubeletReadonlyPortEnabled&quot;: True or False, # Enable or disable Kubelet read only port.
              &quot;maxParallelImagePulls&quot;: 42, # Optional. Defines the maximum number of image pulls in parallel. The range is 2 to 5, inclusive. The default value is 2 or 3 depending on the disk type. See https://kubernetes.io/docs/concepts/containers/images/#maximum-parallel-image-pulls for more details.
              &quot;memoryManager&quot;: { # The option enables the Kubernetes NUMA-aware Memory Manager feature. Detailed description about the feature can be found [here](https://kubernetes.io/docs/tasks/administer-cluster/memory-manager/). # Optional. Controls NUMA-aware Memory Manager configuration on the node. For more information, see: https://kubernetes.io/docs/tasks/administer-cluster/memory-manager/
                &quot;policy&quot;: &quot;A String&quot;, # Controls the memory management policy on the Node. See https://kubernetes.io/docs/tasks/administer-cluster/memory-manager/#policies The following values are allowed. * &quot;none&quot; * &quot;static&quot; The default value is &#x27;none&#x27; if unspecified.
              },
              &quot;podPidsLimit&quot;: &quot;A String&quot;, # Set the Pod PID limits. See https://kubernetes.io/docs/concepts/policy/pid-limiting/#pod-pid-limits Controls the maximum number of processes allowed to run in a pod. The value must be greater than or equal to 1024 and less than 4194304.
              &quot;singleProcessOomKill&quot;: True or False, # Optional. Defines whether to enable single process OOM killer. If true, will prevent the memory.oom.group flag from being set for container cgroups in cgroups v2. This causes processes in the container to be OOM killed individually instead of as a group.
              &quot;topologyManager&quot;: { # TopologyManager defines the configuration options for Topology Manager feature. See https://kubernetes.io/docs/tasks/administer-cluster/topology-manager/ # Optional. Controls Topology Manager configuration on the node. For more information, see: https://kubernetes.io/docs/tasks/administer-cluster/topology-manager/
                &quot;policy&quot;: &quot;A String&quot;, # Configures the strategy for resource alignment. Allowed values are: * none: the default policy, and does not perform any topology alignment. * restricted: the topology manager stores the preferred NUMA node affinity for the container, and will reject the pod if the affinity if not preferred. * best-effort: the topology manager stores the preferred NUMA node affinity for the container. If the affinity is not preferred, the topology manager will admit the pod to the node anyway. * single-numa-node: the topology manager determines if the single NUMA node affinity is possible. If it is, Topology Manager will store this and the Hint Providers can then use this information when making the resource allocation decision. If, however, this is not possible then the Topology Manager will reject the pod from the node. This will result in a pod in a Terminated state with a pod admission failure. The default policy value is &#x27;none&#x27; if unspecified. Details about each strategy can be found [here](https://kubernetes.io/docs/tasks/administer-cluster/topology-manager/#topology-manager-policies).
                &quot;scope&quot;: &quot;A String&quot;, # The Topology Manager aligns resources in following scopes: * container * pod The default scope is &#x27;container&#x27; if unspecified. See https://kubernetes.io/docs/tasks/administer-cluster/topology-manager/#topology-manager-scopes
              },
            },
            &quot;labels&quot;: { # 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&#x27;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/
              &quot;a_key&quot;: &quot;A String&quot;,
            },
            &quot;linuxNodeConfig&quot;: { # Parameters that can be configured on Linux nodes. # Parameters that can be configured on Linux nodes.
              &quot;cgroupMode&quot;: &quot;A String&quot;, # cgroup_mode specifies the cgroup mode to be used on the node.
              &quot;hugepages&quot;: { # Hugepages amount in both 2m and 1g size # Optional. Amounts for 2M and 1G hugepages
                &quot;hugepageSize1g&quot;: 42, # Optional. Amount of 1G hugepages
                &quot;hugepageSize2m&quot;: 42, # Optional. Amount of 2M hugepages
              },
              &quot;nodeKernelModuleLoading&quot;: { # Configuration for kernel module loading on nodes. # Optional. Configuration for kernel module loading on nodes. When enabled, the node pool will be provisioned with a Container-Optimized OS image that enforces kernel module signature verification.
                &quot;policy&quot;: &quot;A String&quot;, # Set the node module loading policy for nodes in the node pool.
              },
              &quot;sysctls&quot;: { # The Linux kernel parameters to be applied to the nodes and all pods running on the nodes. The following parameters are supported. net.core.busy_poll net.core.busy_read net.core.netdev_max_backlog net.core.rmem_max net.core.rmem_default 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 net.ipv4.tcp_max_orphans net.netfilter.nf_conntrack_max net.netfilter.nf_conntrack_buckets net.netfilter.nf_conntrack_tcp_timeout_close_wait net.netfilter.nf_conntrack_tcp_timeout_time_wait net.netfilter.nf_conntrack_tcp_timeout_established net.netfilter.nf_conntrack_acct kernel.shmmni kernel.shmmax kernel.shmall fs.aio-max-nr fs.file-max fs.inotify.max_user_instances fs.inotify.max_user_watches fs.nr_open vm.dirty_background_ratio vm.dirty_expire_centisecs vm.dirty_ratio vm.dirty_writeback_centisecs vm.max_map_count vm.overcommit_memory vm.overcommit_ratio vm.vfs_cache_pressure vm.swappiness vm.watermark_scale_factor vm.min_free_kbytes
                &quot;a_key&quot;: &quot;A String&quot;,
              },
              &quot;transparentHugepageDefrag&quot;: &quot;A String&quot;, # Optional. Defines the transparent hugepage defrag configuration on the node. VM hugepage allocation can be managed by either limiting defragmentation for delayed allocation or skipping it entirely for immediate allocation only. See https://docs.kernel.org/admin-guide/mm/transhuge.html for more details.
              &quot;transparentHugepageEnabled&quot;: &quot;A String&quot;, # Optional. Transparent hugepage support for anonymous memory can be entirely disabled (mostly for debugging purposes) or only enabled inside MADV_HUGEPAGE regions (to avoid the risk of consuming more memory resources) or enabled system wide. See https://docs.kernel.org/admin-guide/mm/transhuge.html for more details.
            },
            &quot;localNvmeSsdBlockConfig&quot;: { # LocalNvmeSsdBlockConfig contains configuration for using raw-block local NVMe SSDs # Parameters for using raw-block Local NVMe SSDs.
              &quot;localSsdCount&quot;: 42, # Number of local NVMe SSDs to use. The limit for this value is dependent upon the maximum number of disk available on a machine per zone. See: https://cloud.google.com/compute/docs/disks/local-ssd for more information. A zero (or unset) value has different meanings depending on machine type being used: 1. For pre-Gen3 machines, which support flexible numbers of local ssds, zero (or unset) means to disable using local SSDs as ephemeral storage. 2. For Gen3 machines which dictate a specific number of local ssds, zero (or unset) means to use the default number of local ssds that goes with that machine type. For example, for a c3-standard-8-lssd machine, 2 local ssds would be provisioned. For c3-standard-8 (which doesn&#x27;t support local ssds), 0 will be provisioned. See https://cloud.google.com/compute/docs/disks/local-ssd#choose_number_local_ssds for more info.
            },
            &quot;localSsdCount&quot;: 42, # 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.
            &quot;localSsdEncryptionMode&quot;: &quot;A String&quot;, # Specifies which method should be used for encrypting the Local SSDs attached to the node.
            &quot;loggingConfig&quot;: { # NodePoolLoggingConfig specifies logging configuration for nodepools. # Logging configuration.
              &quot;variantConfig&quot;: { # LoggingVariantConfig specifies the behaviour of the logging component. # Logging variant configuration.
                &quot;variant&quot;: &quot;A String&quot;, # Logging variant deployed on nodes.
              },
            },
            &quot;machineType&quot;: &quot;A String&quot;, # The name of a Google Compute Engine [machine type](https://cloud.google.com/compute/docs/machine-types) If unspecified, the default machine type is `e2-medium`.
            &quot;maxRunDuration&quot;: &quot;A String&quot;, # The maximum duration for the nodes to exist. If unspecified, the nodes can exist indefinitely.
            &quot;metadata&quot;: { # The metadata key/value pairs assigned to instances in the cluster. Keys must conform to the regexp `[a-zA-Z0-9-_]+` and be less than 128 bytes in length. These are reflected as part of a URL in the metadata server. Additionally, to avoid ambiguity, keys must not conflict with any other metadata keys for the project or be one of the reserved keys: - &quot;cluster-location&quot; - &quot;cluster-name&quot; - &quot;cluster-uid&quot; - &quot;configure-sh&quot; - &quot;containerd-configure-sh&quot; - &quot;enable-os-login&quot; - &quot;gci-ensure-gke-docker&quot; - &quot;gci-metrics-enabled&quot; - &quot;gci-update-strategy&quot; - &quot;instance-template&quot; - &quot;kube-env&quot; - &quot;startup-script&quot; - &quot;user-data&quot; - &quot;disable-address-manager&quot; - &quot;windows-startup-script-ps1&quot; - &quot;common-psm1&quot; - &quot;k8s-node-setup-psm1&quot; - &quot;install-ssh-psm1&quot; - &quot;user-profile-psm1&quot; 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&#x27;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.
              &quot;a_key&quot;: &quot;A String&quot;,
            },
            &quot;minCpuPlatform&quot;: &quot;A String&quot;, # 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: &quot;Intel Haswell&quot;` or `minCpuPlatform: &quot;Intel Sandy Bridge&quot;`. For more information, read [how to specify min CPU platform](https://cloud.google.com/compute/docs/instances/specify-min-cpu-platform)
            &quot;nodeGroup&quot;: &quot;A String&quot;, # Setting this field will assign instances of this pool to run on the specified node group. This is useful for running workloads on [sole tenant nodes](https://cloud.google.com/compute/docs/nodes/sole-tenant-nodes).
            &quot;oauthScopes&quot;: [ # The set of Google API scopes to be made available on all of the node VMs under the &quot;default&quot; 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 [Artifact Registry](https://cloud.google.com/artifact-registry/)). If unspecified, no scopes are added, unless Cloud Logging or Cloud Monitoring are enabled, in which case their required scopes will be added.
              &quot;A String&quot;,
            ],
            &quot;preemptible&quot;: True or False, # 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.
            &quot;reservationAffinity&quot;: { # [ReservationAffinity](https://cloud.google.com/compute/docs/instances/reserving-zonal-resources) is the configuration of desired reservation which instances could take capacity from. # The optional reservation affinity. Setting this field will apply the specified [Zonal Compute Reservation](https://cloud.google.com/compute/docs/instances/reserving-zonal-resources) to this node pool.
              &quot;consumeReservationType&quot;: &quot;A String&quot;, # Corresponds to the type of reservation consumption.
              &quot;key&quot;: &quot;A String&quot;, # Corresponds to the label key of a reservation resource. To target a SPECIFIC_RESERVATION by name, specify &quot;compute.googleapis.com/reservation-name&quot; as the key and specify the name of your reservation as its value.
              &quot;values&quot;: [ # Corresponds to the label value(s) of reservation resource(s).
                &quot;A String&quot;,
              ],
            },
            &quot;resourceLabels&quot;: { # The resource labels for the node pool to use to annotate any related Google Compute Engine resources.
              &quot;a_key&quot;: &quot;A String&quot;,
            },
            &quot;resourceManagerTags&quot;: { # A map of resource manager tag keys and values to be attached to the nodes for managing Compute Engine firewalls using Network Firewall Policies. Tags must be according to specifications in https://cloud.google.com/vpc/docs/tags-firewalls-overview#specifications. A maximum of 5 tag key-value pairs can be specified. Existing tags will be replaced with new values. # A map of resource manager tag keys and values to be attached to the nodes.
              &quot;tags&quot;: { # TagKeyValue must be in one of the following formats ([KEY]=[VALUE]) 1. `tagKeys/{tag_key_id}=tagValues/{tag_value_id}` 2. `{org_id}/{tag_key_name}={tag_value_name}` 3. `{project_id}/{tag_key_name}={tag_value_name}`
                &quot;a_key&quot;: &quot;A String&quot;,
              },
            },
            &quot;sandboxConfig&quot;: { # SandboxConfig contains configurations of the sandbox to use for the node. # Sandbox configuration for this node.
              &quot;type&quot;: &quot;A String&quot;, # Type of the sandbox to use for the node.
            },
            &quot;secondaryBootDiskUpdateStrategy&quot;: { # SecondaryBootDiskUpdateStrategy is a placeholder which will be extended in the future to define different options for updating secondary boot disks. # Secondary boot disk update strategy.
            },
            &quot;secondaryBootDisks&quot;: [ # List of secondary boot disks attached to the nodes.
              { # SecondaryBootDisk represents a persistent disk attached to a node with special configurations based on its mode.
                &quot;diskImage&quot;: &quot;A String&quot;, # Fully-qualified resource ID for an existing disk image.
                &quot;mode&quot;: &quot;A String&quot;, # Disk mode (container image cache, etc.)
              },
            ],
            &quot;serviceAccount&quot;: &quot;A String&quot;, # 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 &quot;default&quot; service account is used.
            &quot;shieldedInstanceConfig&quot;: { # A set of Shielded Instance options. # Shielded Instance options.
              &quot;enableIntegrityMonitoring&quot;: True or False, # 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.
              &quot;enableSecureBoot&quot;: True or False, # 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.
            },
            &quot;soleTenantConfig&quot;: { # SoleTenantConfig contains the NodeAffinities to specify what shared sole tenant node groups should back the node pool. # Parameters for node pools to be backed by shared sole tenant node groups.
              &quot;minNodeCpus&quot;: 42, # Optional. The minimum number of virtual CPUs this instance will consume when running on a sole-tenant node. This field can only be set if the node pool is created in a shared sole-tenant node group.
              &quot;nodeAffinities&quot;: [ # NodeAffinities used to match to a shared sole tenant node group.
                { # Specifies the NodeAffinity key, values, and affinity operator according to [shared sole tenant node group affinities](https://cloud.google.com/compute/docs/nodes/sole-tenant-nodes#node_affinity_and_anti-affinity).
                  &quot;key&quot;: &quot;A String&quot;, # Key for NodeAffinity.
                  &quot;operator&quot;: &quot;A String&quot;, # Operator for NodeAffinity.
                  &quot;values&quot;: [ # Values for NodeAffinity.
                    &quot;A String&quot;,
                  ],
                },
              ],
            },
            &quot;spot&quot;: True or False, # Spot flag for enabling Spot VM, which is a rebrand of the existing preemptible flag.
            &quot;storagePools&quot;: [ # List of Storage Pools where boot disks are provisioned.
              &quot;A String&quot;,
            ],
            &quot;tags&quot;: [ # 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.
              &quot;A String&quot;,
            ],
            &quot;taints&quot;: [ # 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/
              { # Kubernetes taint is composed of three fields: key, value, and effect. Effect can only be one of three types: NoSchedule, PreferNoSchedule or NoExecute. See [here](https://kubernetes.io/docs/concepts/configuration/taint-and-toleration) for more information, including usage and the valid values.
                &quot;effect&quot;: &quot;A String&quot;, # Effect for taint.
                &quot;key&quot;: &quot;A String&quot;, # Key for taint.
                &quot;value&quot;: &quot;A String&quot;, # Value for taint.
              },
            ],
            &quot;windowsNodeConfig&quot;: { # Parameters that can be configured on Windows nodes. Windows Node Config that define the parameters that will be used to configure the Windows node pool settings. # Parameters that can be configured on Windows nodes.
              &quot;osVersion&quot;: &quot;A String&quot;, # OSVersion specifies the Windows node config to be used on the node.
            },
            &quot;workloadMetadataConfig&quot;: { # WorkloadMetadataConfig defines the metadata configuration to expose to workloads on the node pool. # The workload metadata configuration for this node.
              &quot;mode&quot;: &quot;A String&quot;, # Mode is the configuration for how to expose metadata to workloads running on the node pool.
            },
          },
          &quot;etag&quot;: &quot;A String&quot;, # This checksum is computed by the server based on the value of node pool fields, and may be sent on update requests to ensure the client has an up-to-date value before proceeding.
          &quot;initialNodeCount&quot;: 42, # The initial node count for the pool. You must ensure that your Compute Engine [resource quota](https://cloud.google.com/compute/quotas) is sufficient for this number of instances. You must also have available firewall and routes quota.
          &quot;instanceGroupUrls&quot;: [ # Output only. The resource URLs of the [managed instance groups](https://cloud.google.com/compute/docs/instance-groups/creating-groups-of-managed-instances) associated with this node pool. During the node pool blue-green upgrade operation, the URLs contain both blue and green resources.
            &quot;A String&quot;,
          ],
          &quot;locations&quot;: [ # The list of Google Compute Engine [zones](https://cloud.google.com/compute/docs/zones#available) in which the NodePool&#x27;s nodes should be located. If this value is unspecified during node pool creation, the [Cluster.Locations](https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1/projects.locations.clusters#Cluster.FIELDS.locations) value will be used, instead. Warning: changing node pool locations will result in nodes being added and/or removed.
            &quot;A String&quot;,
          ],
          &quot;management&quot;: { # NodeManagement defines the set of node management services turned on for the node pool. # NodeManagement configuration for this NodePool.
            &quot;autoRepair&quot;: True or False, # 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.
            &quot;autoUpgrade&quot;: True or False, # 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.
            &quot;upgradeOptions&quot;: { # AutoUpgradeOptions defines the set of options for the user to control how the Auto Upgrades will proceed. # Specifies the Auto Upgrade knobs for the node pool.
              &quot;autoUpgradeStartTime&quot;: &quot;A String&quot;, # Output only. This field is set when upgrades are about to commence with the approximate start time for the upgrades, in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
              &quot;description&quot;: &quot;A String&quot;, # Output only. This field is set when upgrades are about to commence with the description of the upgrade.
            },
          },
          &quot;maxPodsConstraint&quot;: { # Constraints applied to pods. # The constraint on the maximum number of pods that can be run simultaneously on a node in the node pool.
            &quot;maxPodsPerNode&quot;: &quot;A String&quot;, # Constraint enforced on the max num of pods per node.
          },
          &quot;name&quot;: &quot;A String&quot;, # The name of the node pool.
          &quot;networkConfig&quot;: { # Parameters for node pool-level network config. # Networking configuration for this NodePool. If specified, it overrides the cluster-level defaults.
            &quot;additionalNodeNetworkConfigs&quot;: [ # We specify the additional node networks for this node pool using this list. Each node network corresponds to an additional interface
              { # AdditionalNodeNetworkConfig is the configuration for additional node networks within the NodeNetworkConfig message
                &quot;network&quot;: &quot;A String&quot;, # Name of the VPC where the additional interface belongs
                &quot;subnetwork&quot;: &quot;A String&quot;, # Name of the subnetwork where the additional interface belongs
              },
            ],
            &quot;additionalPodNetworkConfigs&quot;: [ # We specify the additional pod networks for this node pool using this list. Each pod network corresponds to an additional alias IP range for the node
              { # AdditionalPodNetworkConfig is the configuration for additional pod networks within the NodeNetworkConfig message
                &quot;maxPodsPerNode&quot;: { # Constraints applied to pods. # The maximum number of pods per node which use this pod network.
                  &quot;maxPodsPerNode&quot;: &quot;A String&quot;, # Constraint enforced on the max num of pods per node.
                },
                &quot;networkAttachment&quot;: &quot;A String&quot;, # The name of the network attachment for pods to communicate to; cannot be specified along with subnetwork or secondary_pod_range.
                &quot;secondaryPodRange&quot;: &quot;A String&quot;, # The name of the secondary range on the subnet which provides IP address for this pod range.
                &quot;subnetwork&quot;: &quot;A String&quot;, # Name of the subnetwork where the additional pod network belongs.
              },
            ],
            &quot;createPodRange&quot;: True or False, # 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. Only applicable if `ip_allocation_policy.use_ip_aliases` is true. This field cannot be changed after the node pool has been created.
            &quot;enablePrivateNodes&quot;: True or False, # Whether nodes have internal IP addresses only. If enable_private_nodes is not specified, then the value is derived from Cluster.NetworkConfig.default_enable_private_nodes
            &quot;networkPerformanceConfig&quot;: { # Configuration of all network bandwidth tiers # Network bandwidth tier configuration.
              &quot;totalEgressBandwidthTier&quot;: &quot;A String&quot;, # Specifies the total network bandwidth tier for the NodePool.
            },
            &quot;networkTierConfig&quot;: { # NetworkTierConfig contains network tier information. # Output only. The network tier configuration for the node pool inherits from the cluster-level configuration and remains immutable throughout the node pool&#x27;s lifecycle, including during upgrades.
              &quot;networkTier&quot;: &quot;A String&quot;, # Network tier configuration.
            },
            &quot;podCidrOverprovisionConfig&quot;: { # [PRIVATE FIELD] Config for pod CIDR size overprovisioning. # [PRIVATE FIELD] Pod CIDR size overprovisioning config for the nodepool. Pod CIDR size per node depends on max_pods_per_node. By default, the value of max_pods_per_node is rounded off to next power of 2 and we then double that to get the size of pod CIDR block per node. Example: max_pods_per_node of 30 would result in 64 IPs (/26). This config can disable the doubling of IPs (we still round off to next power of 2) Example: max_pods_per_node of 30 will result in 32 IPs (/27) when overprovisioning is disabled.
              &quot;disable&quot;: True or False, # Whether Pod CIDR overprovisioning is disabled. Note: Pod CIDR overprovisioning is enabled by default.
            },
            &quot;podIpv4CidrBlock&quot;: &quot;A String&quot;, # 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 [CIDR](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing) notation (e.g. `10.96.0.0/14`) to pick a specific range to use. Only applicable if `ip_allocation_policy.use_ip_aliases` is true. This field cannot be changed after the node pool has been created.
            &quot;podIpv4RangeUtilization&quot;: 3.14, # Output only. The utilization of the IPv4 range for the pod. The ratio is Usage/[Total number of IPs in the secondary range], Usage=numNodes*numZones*podIPsPerNode.
            &quot;podRange&quot;: &quot;A String&quot;, # 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. Only applicable if `ip_allocation_policy.use_ip_aliases` is true. This field cannot be changed after the node pool has been created.
            &quot;subnetwork&quot;: &quot;A String&quot;, # Output only. The subnetwork path for the node pool. Format: projects/{project}/regions/{region}/subnetworks/{subnetwork} If the cluster is associated with multiple subnetworks, the subnetwork for the node pool is picked based on the IP utilization during node pool creation and is immutable.
          },
          &quot;placementPolicy&quot;: { # PlacementPolicy defines the placement policy used by the node pool. # Specifies the node placement policy.
            &quot;policyName&quot;: &quot;A String&quot;, # If set, refers to the name of a custom resource policy supplied by the user. The resource policy must be in the same project and region as the node pool. If not found, InvalidArgument error is returned.
            &quot;tpuTopology&quot;: &quot;A String&quot;, # Optional. TPU placement topology for pod slice node pool. https://cloud.google.com/tpu/docs/types-topologies#tpu_topologies
            &quot;type&quot;: &quot;A String&quot;, # The type of placement.
          },
          &quot;podIpv4CidrSize&quot;: 42, # Output only. The pod CIDR block size per node in this node pool.
          &quot;queuedProvisioning&quot;: { # QueuedProvisioning defines the queued provisioning used by the node pool. # Specifies the configuration of queued provisioning.
            &quot;enabled&quot;: True or False, # Denotes that this nodepool is QRM specific, meaning nodes can be only obtained through queuing via the Cluster Autoscaler ProvisioningRequest API.
          },
          &quot;selfLink&quot;: &quot;A String&quot;, # Output only. Server-defined URL for the resource.
          &quot;status&quot;: &quot;A String&quot;, # Output only. The status of the nodes in this pool instance.
          &quot;statusMessage&quot;: &quot;A String&quot;, # Output only. Deprecated. Use conditions instead. Additional information about the current status of this node pool instance, if available.
          &quot;updateInfo&quot;: { # UpdateInfo contains resource (instance groups, etc), status and other intermediate information relevant to a node pool upgrade. # Output only. Update info contains relevant information during a node pool update.
            &quot;blueGreenInfo&quot;: { # Information relevant to blue-green upgrade. # Information of a blue-green upgrade.
              &quot;blueInstanceGroupUrls&quot;: [ # The resource URLs of the [managed instance groups] (/compute/docs/instance-groups/creating-groups-of-managed-instances) associated with blue pool.
                &quot;A String&quot;,
              ],
              &quot;bluePoolDeletionStartTime&quot;: &quot;A String&quot;, # Time to start deleting blue pool to complete blue-green upgrade, in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
              &quot;greenInstanceGroupUrls&quot;: [ # The resource URLs of the [managed instance groups] (/compute/docs/instance-groups/creating-groups-of-managed-instances) associated with green pool.
                &quot;A String&quot;,
              ],
              &quot;greenPoolVersion&quot;: &quot;A String&quot;, # Version of green pool.
              &quot;phase&quot;: &quot;A String&quot;, # Current blue-green upgrade phase.
            },
          },
          &quot;upgradeSettings&quot;: { # These upgrade settings control the level of parallelism and the level of disruption caused by an upgrade. maxUnavailable controls the number of nodes that can be simultaneously unavailable. maxSurge controls the number of additional nodes that can be added to the node pool temporarily for the time of the upgrade to increase the number of available nodes. (maxUnavailable + maxSurge) determines the level of parallelism (how many nodes are being upgraded at the same time). Note: upgrades inevitably introduce some disruption since workloads need to be moved from old nodes to new, upgraded ones. Even if maxUnavailable=0, this holds true. (Disruption stays within the limits of PodDisruptionBudget, if it is configured.) Consider a hypothetical node pool with 5 nodes having maxSurge=2, maxUnavailable=1. This means the upgrade process upgrades 3 nodes simultaneously. It creates 2 additional (upgraded) nodes, then it brings down 3 old (not yet upgraded) nodes at the same time. This ensures that there are always at least 4 nodes available. These upgrade settings configure the upgrade strategy for the node pool. Use strategy to switch between the strategies applied to the node pool. If the strategy is ROLLING, use max_surge and max_unavailable to control the level of parallelism and the level of disruption caused by upgrade. 1. maxSurge controls the number of additional nodes that can be added to the node pool temporarily for the time of the upgrade to increase the number of available nodes. 2. maxUnavailable controls the number of nodes that can be simultaneously unavailable. 3. (maxUnavailable + maxSurge) determines the level of parallelism (how many nodes are being upgraded at the same time). If the strategy is BLUE_GREEN, use blue_green_settings to configure the blue-green upgrade related settings. 1. standard_rollout_policy is the default policy. The policy is used to control the way blue pool gets drained. The draining is executed in the batch mode. The batch size could be specified as either percentage of the node pool size or the number of nodes. batch_soak_duration is the soak time after each batch gets drained. 2. node_pool_soak_duration is the soak time after all blue nodes are drained. After this period, the blue pool nodes will be deleted. # Upgrade settings control disruption and speed of the upgrade.
            &quot;blueGreenSettings&quot;: { # Settings for blue-green upgrade. # Settings for blue-green upgrade strategy.
              &quot;autoscaledRolloutPolicy&quot;: { # Autoscaled rollout policy utilizes the cluster autoscaler during blue-green upgrade to scale both the blue and green pools. # Autoscaled policy for cluster autoscaler enabled blue-green upgrade.
                &quot;waitForDrainDuration&quot;: &quot;A String&quot;, # Optional. Time to wait after cordoning the blue pool before draining the nodes. Defaults to 3 days. The value can be set between 0 and 7 days, inclusive.
              },
              &quot;nodePoolSoakDuration&quot;: &quot;A String&quot;, # Time needed after draining entire blue pool. After this period, blue pool will be cleaned up.
              &quot;standardRolloutPolicy&quot;: { # Standard rollout policy is the default policy for blue-green. # Standard policy for the blue-green upgrade.
                &quot;batchNodeCount&quot;: 42, # Number of blue nodes to drain in a batch.
                &quot;batchPercentage&quot;: 3.14, # Percentage of the blue pool nodes to drain in a batch. The range of this field should be (0.0, 1.0].
                &quot;batchSoakDuration&quot;: &quot;A String&quot;, # Soak time after each batch gets drained. Default to zero.
              },
            },
            &quot;maxSurge&quot;: 42, # The maximum number of nodes that can be created beyond the current size of the node pool during the upgrade process.
            &quot;maxUnavailable&quot;: 42, # The maximum number of nodes that can be simultaneously unavailable during the upgrade process. A node is considered available if its status is Ready.
            &quot;strategy&quot;: &quot;A String&quot;, # Update strategy of the node pool.
          },
          &quot;version&quot;: &quot;A String&quot;, # The version of Kubernetes running on this NodePool&#x27;s nodes. If unspecified, it defaults as described [here](https://cloud.google.com/kubernetes-engine/versioning#specifying_node_version).
        },
      ],
      &quot;notificationConfig&quot;: { # NotificationConfig is the configuration of notifications. # Notification configuration of the cluster.
        &quot;pubsub&quot;: { # Pub/Sub specific notification config. # Notification config for Pub/Sub.
          &quot;enabled&quot;: True or False, # Enable notifications for Pub/Sub.
          &quot;filter&quot;: { # Allows filtering to one or more specific event types. If event types are present, those and only those event types will be transmitted to the cluster. Other types will be skipped. If no filter is specified, or no event types are present, all event types will be sent # Allows filtering to one or more specific event types. If no filter is specified, or if a filter is specified with no event types, all event types will be sent
            &quot;eventType&quot;: [ # Event types to allowlist.
              &quot;A String&quot;,
            ],
          },
          &quot;topic&quot;: &quot;A String&quot;, # The desired Pub/Sub topic to which notifications will be sent by GKE. Format is `projects/{project}/topics/{topic}`.
        },
      },
      &quot;parentProductConfig&quot;: { # ParentProductConfig is the configuration of the parent product of the cluster. This field is used by Google internal products that are built on top of a GKE cluster and take the ownership of the cluster. # The configuration of the parent product of the cluster. This field is used by Google internal products that are built on top of the GKE cluster and take the ownership of the cluster.
        &quot;labels&quot;: { # Labels contain the configuration of the parent product.
          &quot;a_key&quot;: &quot;A String&quot;,
        },
        &quot;productName&quot;: &quot;A String&quot;, # Name of the parent product associated with the cluster.
      },
      &quot;podAutoscaling&quot;: { # PodAutoscaling is used for configuration of parameters for workload autoscaling. # The config for pod autoscaling.
        &quot;hpaProfile&quot;: &quot;A String&quot;, # Selected Horizontal Pod Autoscaling profile.
      },
      &quot;privateClusterConfig&quot;: { # Configuration options for private clusters. # Configuration for private cluster.
        &quot;enablePrivateEndpoint&quot;: True or False, # Whether the master&#x27;s internal IP address is used as the cluster endpoint. Deprecated: Use ControlPlaneEndpointsConfig.IPEndpointsConfig.enable_public_endpoint instead. Note that the value of enable_public_endpoint is reversed: if enable_private_endpoint is false, then enable_public_endpoint will be true.
        &quot;enablePrivateNodes&quot;: True or False, # 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. Deprecated: Use NetworkConfig.default_enable_private_nodes instead.
        &quot;masterGlobalAccessConfig&quot;: { # Configuration for controlling master global access settings. # Controls master global access settings. Deprecated: Use ControlPlaneEndpointsConfig.IPEndpointsConfig.enable_global_access instead.
          &quot;enabled&quot;: True or False, # Whenever master is accessible globally or not.
        },
        &quot;masterIpv4CidrBlock&quot;: &quot;A String&quot;, # 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&#x27;s network.
        &quot;peeringName&quot;: &quot;A String&quot;, # Output only. The peering name in the customer VPC used by this cluster.
        &quot;privateEndpoint&quot;: &quot;A String&quot;, # Output only. The internal IP address of this cluster&#x27;s master endpoint. Deprecated: Use ControlPlaneEndpointsConfig.IPEndpointsConfig.private_endpoint instead.
        &quot;privateEndpointSubnetwork&quot;: &quot;A String&quot;, # Subnet to provision the master&#x27;s private endpoint during cluster creation. Specified in projects/*/regions/*/subnetworks/* format. Deprecated: Use ControlPlaneEndpointsConfig.IPEndpointsConfig.private_endpoint_subnetwork instead.
        &quot;publicEndpoint&quot;: &quot;A String&quot;, # Output only. The external IP address of this cluster&#x27;s master endpoint. Deprecated:Use ControlPlaneEndpointsConfig.IPEndpointsConfig.public_endpoint instead.
      },
      &quot;rbacBindingConfig&quot;: { # RBACBindingConfig allows user to restrict ClusterRoleBindings an RoleBindings that can be created. # RBACBindingConfig allows user to restrict ClusterRoleBindings an RoleBindings that can be created.
        &quot;enableInsecureBindingSystemAuthenticated&quot;: True or False, # Setting this to true will allow any ClusterRoleBinding and RoleBinding with subjects system:authenticated.
        &quot;enableInsecureBindingSystemUnauthenticated&quot;: True or False, # Setting this to true will allow any ClusterRoleBinding and RoleBinding with subjets system:anonymous or system:unauthenticated.
      },
      &quot;releaseChannel&quot;: { # ReleaseChannel indicates which release channel a cluster is subscribed to. Release channels are arranged in order of risk. When a cluster is subscribed to a release channel, Google maintains both the master version and the node version. Node auto-upgrade defaults to true and cannot be disabled. # Release channel configuration. If left unspecified on cluster creation and a version is specified, the cluster is enrolled in the most mature release channel where the version is available (first checking STABLE, then REGULAR, and finally RAPID). Otherwise, if no release channel configuration and no version is specified, the cluster is enrolled in the REGULAR channel with its default version.
        &quot;channel&quot;: &quot;A String&quot;, # channel specifies which release channel the cluster is subscribed to.
      },
      &quot;resourceLabels&quot;: { # The resource labels for the cluster to use to annotate any related Google Compute Engine resources.
        &quot;a_key&quot;: &quot;A String&quot;,
      },
      &quot;resourceUsageExportConfig&quot;: { # Configuration for exporting cluster resource usages. # Configuration for exporting resource usages. Resource usage export is disabled when this config is unspecified.
        &quot;bigqueryDestination&quot;: { # Parameters for using BigQuery as the destination of resource usage export. # Configuration to use BigQuery as usage export destination.
          &quot;datasetId&quot;: &quot;A String&quot;, # The ID of a BigQuery Dataset.
        },
        &quot;consumptionMeteringConfig&quot;: { # Parameters for controlling consumption metering. # Configuration to enable resource consumption metering.
          &quot;enabled&quot;: True or False, # Whether to enable consumption metering for this cluster. If enabled, a second BigQuery table will be created to hold resource consumption records.
        },
        &quot;enableNetworkEgressMetering&quot;: True or False, # Whether to enable network egress metering for this cluster. If enabled, a daemonset will be created in the cluster to meter network egress traffic.
      },
      &quot;satisfiesPzi&quot;: True or False, # Output only. Reserved for future use.
      &quot;satisfiesPzs&quot;: True or False, # Output only. Reserved for future use.
      &quot;secretManagerConfig&quot;: { # SecretManagerConfig is config for secret manager enablement. # Secret CSI driver configuration.
        &quot;enabled&quot;: True or False, # Enable/Disable Secret Manager Config.
        &quot;rotationConfig&quot;: { # RotationConfig is config for secret manager auto rotation. # Rotation config for secret manager.
          &quot;enabled&quot;: True or False, # Whether the rotation is enabled.
          &quot;rotationInterval&quot;: &quot;A String&quot;, # The interval between two consecutive rotations. Default rotation interval is 2 minutes.
        },
      },
      &quot;securityPostureConfig&quot;: { # SecurityPostureConfig defines the flags needed to enable/disable features for the Security Posture API. # Enable/Disable Security Posture API features for the cluster.
        &quot;mode&quot;: &quot;A String&quot;, # Sets which mode to use for Security Posture features.
        &quot;vulnerabilityMode&quot;: &quot;A String&quot;, # Sets which mode to use for vulnerability scanning.
      },
      &quot;selfLink&quot;: &quot;A String&quot;, # Output only. Server-defined URL for the resource.
      &quot;servicesIpv4Cidr&quot;: &quot;A String&quot;, # Output only. The IP address range of the Kubernetes services in this cluster, in [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing) notation (e.g. `1.2.3.4/29`). Service addresses are typically put in the last `/16` from the container CIDR.
      &quot;shieldedNodes&quot;: { # Configuration of Shielded Nodes feature. # Shielded Nodes configuration.
        &quot;enabled&quot;: True or False, # Whether Shielded Nodes features are enabled on all nodes in this cluster.
      },
      &quot;status&quot;: &quot;A String&quot;, # Output only. The current status of this cluster.
      &quot;statusMessage&quot;: &quot;A String&quot;, # Output only. Deprecated. Use conditions instead. Additional information about the current status of this cluster, if available.
      &quot;subnetwork&quot;: &quot;A String&quot;, # The name of the Google Compute Engine [subnetwork](https://cloud.google.com/compute/docs/subnetworks) to which the cluster is connected.
      &quot;tpuIpv4CidrBlock&quot;: &quot;A String&quot;, # Output only. The IP address range of the Cloud TPUs in this cluster, in [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing) notation (e.g. `1.2.3.4/29`). This field is deprecated due to the deprecation of 2VM TPU. The end of life date for 2VM TPU is 2025-04-25.
      &quot;userManagedKeysConfig&quot;: { # UserManagedKeysConfig holds the resource address to Keys which are used for signing certs and token that are used for communication within cluster. # The Custom keys configuration for the cluster.
        &quot;aggregationCa&quot;: &quot;A String&quot;, # The Certificate Authority Service caPool to use for the aggregation CA in this cluster.
        &quot;clusterCa&quot;: &quot;A String&quot;, # The Certificate Authority Service caPool to use for the cluster CA in this cluster.
        &quot;controlPlaneDiskEncryptionKey&quot;: &quot;A String&quot;, # The Cloud KMS cryptoKey to use for Confidential Hyperdisk on the control plane nodes.
        &quot;etcdApiCa&quot;: &quot;A String&quot;, # Resource path of the Certificate Authority Service caPool to use for the etcd API CA in this cluster.
        &quot;etcdPeerCa&quot;: &quot;A String&quot;, # Resource path of the Certificate Authority Service caPool to use for the etcd peer CA in this cluster.
        &quot;gkeopsEtcdBackupEncryptionKey&quot;: &quot;A String&quot;, # Resource path of the Cloud KMS cryptoKey to use for encryption of internal etcd backups.
        &quot;serviceAccountSigningKeys&quot;: [ # The Cloud KMS cryptoKeyVersions to use for signing service account JWTs issued by this cluster. Format: `projects/{project}/locations/{location}/keyRings/{keyring}/cryptoKeys/{cryptoKey}/cryptoKeyVersions/{cryptoKeyVersion}`
          &quot;A String&quot;,
        ],
        &quot;serviceAccountVerificationKeys&quot;: [ # The Cloud KMS cryptoKeyVersions to use for verifying service account JWTs issued by this cluster. Format: `projects/{project}/locations/{location}/keyRings/{keyring}/cryptoKeys/{cryptoKey}/cryptoKeyVersions/{cryptoKeyVersion}`
          &quot;A String&quot;,
        ],
      },
      &quot;verticalPodAutoscaling&quot;: { # VerticalPodAutoscaling contains global, per-cluster information required by Vertical Pod Autoscaler to automatically adjust the resources of pods controlled by it. # Cluster-level Vertical Pod Autoscaling configuration.
        &quot;enabled&quot;: True or False, # Enables vertical pod autoscaling.
      },
      &quot;workloadIdentityConfig&quot;: { # Configuration for the use of Kubernetes Service Accounts in IAM policies. # Configuration for the use of Kubernetes Service Accounts in IAM policies.
        &quot;workloadPool&quot;: &quot;A String&quot;, # The workload pool to attach all Kubernetes service accounts to.
      },
      &quot;zone&quot;: &quot;A String&quot;, # Output only. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster resides. This field is deprecated, use location instead.
    },
  ],
  &quot;missingZones&quot;: [ # If any zones are listed here, the list of clusters returned may be missing those zones.
    &quot;A String&quot;,
  ],
}</pre>
</div>

<div class="method">
    <code class="details" id="setAddons">setAddons(name, body=None, x__xgafv=None)</code>
  <pre>Sets the addons for a specific cluster.

Args:
  name: string, The name (project, location, cluster) of the cluster to set addons. Specified in the format `projects/*/locations/*/clusters/*`. (required)
  body: object, The request body.
    The object takes the form of:

{ # SetAddonsConfigRequest sets the addons associated with the cluster.
  &quot;addonsConfig&quot;: { # Configuration for the addons that can be automatically spun up in the cluster, enabling additional functionality. # Required. The desired configurations for the various addons available to run in the cluster.
    &quot;cloudRunConfig&quot;: { # Configuration options for the Cloud Run feature. # Configuration for the Cloud Run addon, which allows the user to use a managed Knative service.
      &quot;disabled&quot;: True or False, # Whether Cloud Run addon is enabled for this cluster.
      &quot;loadBalancerType&quot;: &quot;A String&quot;, # Which load balancer type is installed for Cloud Run.
    },
    &quot;configConnectorConfig&quot;: { # Configuration options for the Config Connector add-on. # Configuration for the ConfigConnector add-on, a Kubernetes extension to manage hosted Google Cloud services through the Kubernetes API.
      &quot;enabled&quot;: True or False, # Whether Cloud Connector is enabled for this cluster.
    },
    &quot;dnsCacheConfig&quot;: { # Configuration for NodeLocal DNSCache # Configuration for NodeLocalDNS, a dns cache running on cluster nodes
      &quot;enabled&quot;: True or False, # Whether NodeLocal DNSCache is enabled for this cluster.
    },
    &quot;gcePersistentDiskCsiDriverConfig&quot;: { # Configuration for the Compute Engine PD CSI driver. # Configuration for the Compute Engine Persistent Disk CSI driver.
      &quot;enabled&quot;: True or False, # Whether the Compute Engine PD CSI driver is enabled for this cluster.
    },
    &quot;gcpFilestoreCsiDriverConfig&quot;: { # Configuration for the Filestore CSI driver. # Configuration for the Filestore CSI driver.
      &quot;enabled&quot;: True or False, # Whether the Filestore CSI driver is enabled for this cluster.
    },
    &quot;gcsFuseCsiDriverConfig&quot;: { # Configuration for the Cloud Storage Fuse CSI driver. # Configuration for the Cloud Storage Fuse CSI driver.
      &quot;enabled&quot;: True or False, # Whether the Cloud Storage Fuse CSI driver is enabled for this cluster.
    },
    &quot;gkeBackupAgentConfig&quot;: { # Configuration for the Backup for GKE Agent. # Configuration for the Backup for GKE agent addon.
      &quot;enabled&quot;: True or False, # Whether the Backup for GKE agent is enabled for this cluster.
    },
    &quot;highScaleCheckpointingConfig&quot;: { # Configuration for the High Scale Checkpointing. # Configuration for the High Scale Checkpointing add-on.
      &quot;enabled&quot;: True or False, # Whether the High Scale Checkpointing is enabled for this cluster.
    },
    &quot;horizontalPodAutoscaling&quot;: { # Configuration options for the horizontal pod autoscaling feature, which increases or decreases the number of replica pods a replication controller has based on the resource usage of the existing pods. # 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.
      &quot;disabled&quot;: True or False, # Whether the Horizontal Pod Autoscaling feature is enabled in the cluster. When enabled, it ensures that metrics are collected into Stackdriver Monitoring.
    },
    &quot;httpLoadBalancing&quot;: { # Configuration options for the HTTP (L7) load balancing controller addon, which makes it easy to set up HTTP load balancers for services in a cluster. # Configuration for the HTTP (L7) load balancing controller addon, which makes it easy to set up HTTP load balancers for services in a cluster.
      &quot;disabled&quot;: True or False, # 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.
    },
    &quot;kubernetesDashboard&quot;: { # Configuration for the Kubernetes Dashboard. # Configuration for the Kubernetes Dashboard. This addon is deprecated, and will be disabled in 1.15. It is recommended to use the Cloud Console to manage and monitor your Kubernetes clusters, workloads and applications. For more information, see: https://cloud.google.com/kubernetes-engine/docs/concepts/dashboards
      &quot;disabled&quot;: True or False, # Whether the Kubernetes Dashboard is enabled for this cluster.
    },
    &quot;lustreCsiDriverConfig&quot;: { # Configuration for the Lustre CSI driver. # Configuration for the Lustre CSI driver.
      &quot;enableLegacyLustrePort&quot;: True or False, # If set to true, the Lustre CSI driver will install Lustre kernel modules using port 6988. This serves as a workaround for a port conflict with the gke-metadata-server. This field is required ONLY under the following conditions: 1. The GKE node version is older than 1.33.2-gke.4655000. 2. You&#x27;re connecting to a Lustre instance that has the &#x27;gke-support-enabled&#x27; flag.
      &quot;enabled&quot;: True or False, # Whether the Lustre CSI driver is enabled for this cluster.
    },
    &quot;networkPolicyConfig&quot;: { # 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. # 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.
      &quot;disabled&quot;: True or False, # Whether NetworkPolicy is enabled for this cluster.
    },
    &quot;parallelstoreCsiDriverConfig&quot;: { # Configuration for the Cloud Storage Parallelstore CSI driver. # Configuration for the Cloud Storage Parallelstore CSI driver.
      &quot;enabled&quot;: True or False, # Whether the Cloud Storage Parallelstore CSI driver is enabled for this cluster.
    },
    &quot;rayOperatorConfig&quot;: { # Configuration options for the Ray Operator add-on. # Optional. Configuration for Ray Operator addon.
      &quot;enabled&quot;: True or False, # Whether the Ray Operator addon is enabled for this cluster.
      &quot;rayClusterLoggingConfig&quot;: { # RayClusterLoggingConfig specifies configuration of Ray logging. # Optional. Logging configuration for Ray clusters.
        &quot;enabled&quot;: True or False, # Enable log collection for Ray clusters.
      },
      &quot;rayClusterMonitoringConfig&quot;: { # RayClusterMonitoringConfig specifies monitoring configuration for Ray clusters. # Optional. Monitoring configuration for Ray clusters.
        &quot;enabled&quot;: True or False, # Enable metrics collection for Ray clusters.
      },
    },
    &quot;statefulHaConfig&quot;: { # Configuration for the Stateful HA add-on. # Optional. Configuration for the StatefulHA add-on.
      &quot;enabled&quot;: True or False, # Whether the Stateful HA add-on is enabled for this cluster.
    },
  },
  &quot;clusterId&quot;: &quot;A String&quot;, # Deprecated. The name of the cluster to upgrade. This field has been deprecated and replaced by the name field.
  &quot;name&quot;: &quot;A String&quot;, # The name (project, location, cluster) of the cluster to set addons. Specified in the format `projects/*/locations/*/clusters/*`.
  &quot;projectId&quot;: &quot;A String&quot;, # Deprecated. The Google Developers Console [project ID or project number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). This field has been deprecated and replaced by the name field.
  &quot;zone&quot;: &quot;A String&quot;, # Deprecated. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster resides. This field has been deprecated and replaced by the name field.
}

  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # This operation resource represents operations that may have happened or are happening on the cluster. All fields are output only.
  &quot;clusterConditions&quot;: [ # Which conditions caused the current cluster state. Deprecated. Use field error instead.
    { # StatusCondition describes why a cluster or a node pool has a certain status (e.g., ERROR or DEGRADED).
      &quot;canonicalCode&quot;: &quot;A String&quot;, # Canonical code of the condition.
      &quot;code&quot;: &quot;A String&quot;, # Machine-friendly representation of the condition Deprecated. Use canonical_code instead.
      &quot;message&quot;: &quot;A String&quot;, # Human-friendly representation of the condition
    },
  ],
  &quot;detail&quot;: &quot;A String&quot;, # Output only. Detailed operation progress, if available.
  &quot;endTime&quot;: &quot;A String&quot;, # Output only. The time the operation completed, in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
  &quot;error&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure.
    &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
    &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
      {
        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
      },
    ],
    &quot;message&quot;: &quot;A String&quot;, # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
  },
  &quot;location&quot;: &quot;A String&quot;, # Output only. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/regions-zones/regions-zones#available) or [region](https://cloud.google.com/compute/docs/regions-zones/regions-zones#available) in which the cluster resides.
  &quot;name&quot;: &quot;A String&quot;, # Output only. The server-assigned ID for the operation.
  &quot;nodepoolConditions&quot;: [ # Which conditions caused the current node pool state. Deprecated. Use field error instead.
    { # StatusCondition describes why a cluster or a node pool has a certain status (e.g., ERROR or DEGRADED).
      &quot;canonicalCode&quot;: &quot;A String&quot;, # Canonical code of the condition.
      &quot;code&quot;: &quot;A String&quot;, # Machine-friendly representation of the condition Deprecated. Use canonical_code instead.
      &quot;message&quot;: &quot;A String&quot;, # Human-friendly representation of the condition
    },
  ],
  &quot;operationType&quot;: &quot;A String&quot;, # Output only. The operation type.
  &quot;progress&quot;: { # Information about operation (or operation stage) progress. # Output only. Progress information for an operation.
    &quot;metrics&quot;: [ # Progress metric bundle, for example: metrics: [{name: &quot;nodes done&quot;, int_value: 15}, {name: &quot;nodes total&quot;, int_value: 32}] or metrics: [{name: &quot;progress&quot;, double_value: 0.56}, {name: &quot;progress scale&quot;, double_value: 1.0}]
      { # Progress metric is (string, int|float|string) pair.
        &quot;doubleValue&quot;: 3.14, # For metrics with floating point value.
        &quot;intValue&quot;: &quot;A String&quot;, # For metrics with integer value.
        &quot;name&quot;: &quot;A String&quot;, # Required. Metric name, e.g., &quot;nodes total&quot;, &quot;percent done&quot;.
        &quot;stringValue&quot;: &quot;A String&quot;, # For metrics with custom values (ratios, visual progress, etc.).
      },
    ],
    &quot;name&quot;: &quot;A String&quot;, # A non-parameterized string describing an operation stage. Unset for single-stage operations.
    &quot;stages&quot;: [ # Substages of an operation or a stage.
      # Object with schema name: OperationProgress
    ],
    &quot;status&quot;: &quot;A String&quot;, # Status of an operation stage. Unset for single-stage operations.
  },
  &quot;selfLink&quot;: &quot;A String&quot;, # Output only. Server-defined URI for the operation. Example: `https://container.googleapis.com/v1alpha1/projects/123/locations/us-central1/operations/operation-123`.
  &quot;startTime&quot;: &quot;A String&quot;, # Output only. The time the operation started, in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
  &quot;status&quot;: &quot;A String&quot;, # Output only. The current status of the operation.
  &quot;statusMessage&quot;: &quot;A String&quot;, # Output only. If an error has occurred, a textual description of the error. Deprecated. Use the field error instead.
  &quot;targetLink&quot;: &quot;A String&quot;, # Output only. Server-defined URI for the target of the operation. The format of this is a URI to the resource being modified (such as a cluster, node pool, or node). For node pool repairs, there may be multiple nodes being repaired, but only one will be the target. Examples: - ## `https://container.googleapis.com/v1/projects/123/locations/us-central1/clusters/my-cluster` ## `https://container.googleapis.com/v1/projects/123/zones/us-central1-c/clusters/my-cluster/nodePools/my-np` `https://container.googleapis.com/v1/projects/123/zones/us-central1-c/clusters/my-cluster/nodePools/my-np/node/my-node`
  &quot;zone&quot;: &quot;A String&quot;, # Output only. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/zones#available) in which the operation is taking place. This field is deprecated, use location instead.
}</pre>
</div>

<div class="method">
    <code class="details" id="setLegacyAbac">setLegacyAbac(name, body=None, x__xgafv=None)</code>
  <pre>Enables or disables the ABAC authorization mechanism on a cluster.

Args:
  name: string, The name (project, location, cluster name) of the cluster to set legacy abac. Specified in the format `projects/*/locations/*/clusters/*`. (required)
  body: object, The request body.
    The object takes the form of:

{ # SetLegacyAbacRequest enables or disables the ABAC authorization mechanism for a cluster.
  &quot;clusterId&quot;: &quot;A String&quot;, # Deprecated. The name of the cluster to update. This field has been deprecated and replaced by the name field.
  &quot;enabled&quot;: True or False, # Required. Whether ABAC authorization will be enabled in the cluster.
  &quot;name&quot;: &quot;A String&quot;, # The name (project, location, cluster name) of the cluster to set legacy abac. Specified in the format `projects/*/locations/*/clusters/*`.
  &quot;projectId&quot;: &quot;A String&quot;, # Deprecated. The Google Developers Console [project ID or project number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). This field has been deprecated and replaced by the name field.
  &quot;zone&quot;: &quot;A String&quot;, # Deprecated. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster resides. This field has been deprecated and replaced by the name field.
}

  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # This operation resource represents operations that may have happened or are happening on the cluster. All fields are output only.
  &quot;clusterConditions&quot;: [ # Which conditions caused the current cluster state. Deprecated. Use field error instead.
    { # StatusCondition describes why a cluster or a node pool has a certain status (e.g., ERROR or DEGRADED).
      &quot;canonicalCode&quot;: &quot;A String&quot;, # Canonical code of the condition.
      &quot;code&quot;: &quot;A String&quot;, # Machine-friendly representation of the condition Deprecated. Use canonical_code instead.
      &quot;message&quot;: &quot;A String&quot;, # Human-friendly representation of the condition
    },
  ],
  &quot;detail&quot;: &quot;A String&quot;, # Output only. Detailed operation progress, if available.
  &quot;endTime&quot;: &quot;A String&quot;, # Output only. The time the operation completed, in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
  &quot;error&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure.
    &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
    &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
      {
        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
      },
    ],
    &quot;message&quot;: &quot;A String&quot;, # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
  },
  &quot;location&quot;: &quot;A String&quot;, # Output only. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/regions-zones/regions-zones#available) or [region](https://cloud.google.com/compute/docs/regions-zones/regions-zones#available) in which the cluster resides.
  &quot;name&quot;: &quot;A String&quot;, # Output only. The server-assigned ID for the operation.
  &quot;nodepoolConditions&quot;: [ # Which conditions caused the current node pool state. Deprecated. Use field error instead.
    { # StatusCondition describes why a cluster or a node pool has a certain status (e.g., ERROR or DEGRADED).
      &quot;canonicalCode&quot;: &quot;A String&quot;, # Canonical code of the condition.
      &quot;code&quot;: &quot;A String&quot;, # Machine-friendly representation of the condition Deprecated. Use canonical_code instead.
      &quot;message&quot;: &quot;A String&quot;, # Human-friendly representation of the condition
    },
  ],
  &quot;operationType&quot;: &quot;A String&quot;, # Output only. The operation type.
  &quot;progress&quot;: { # Information about operation (or operation stage) progress. # Output only. Progress information for an operation.
    &quot;metrics&quot;: [ # Progress metric bundle, for example: metrics: [{name: &quot;nodes done&quot;, int_value: 15}, {name: &quot;nodes total&quot;, int_value: 32}] or metrics: [{name: &quot;progress&quot;, double_value: 0.56}, {name: &quot;progress scale&quot;, double_value: 1.0}]
      { # Progress metric is (string, int|float|string) pair.
        &quot;doubleValue&quot;: 3.14, # For metrics with floating point value.
        &quot;intValue&quot;: &quot;A String&quot;, # For metrics with integer value.
        &quot;name&quot;: &quot;A String&quot;, # Required. Metric name, e.g., &quot;nodes total&quot;, &quot;percent done&quot;.
        &quot;stringValue&quot;: &quot;A String&quot;, # For metrics with custom values (ratios, visual progress, etc.).
      },
    ],
    &quot;name&quot;: &quot;A String&quot;, # A non-parameterized string describing an operation stage. Unset for single-stage operations.
    &quot;stages&quot;: [ # Substages of an operation or a stage.
      # Object with schema name: OperationProgress
    ],
    &quot;status&quot;: &quot;A String&quot;, # Status of an operation stage. Unset for single-stage operations.
  },
  &quot;selfLink&quot;: &quot;A String&quot;, # Output only. Server-defined URI for the operation. Example: `https://container.googleapis.com/v1alpha1/projects/123/locations/us-central1/operations/operation-123`.
  &quot;startTime&quot;: &quot;A String&quot;, # Output only. The time the operation started, in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
  &quot;status&quot;: &quot;A String&quot;, # Output only. The current status of the operation.
  &quot;statusMessage&quot;: &quot;A String&quot;, # Output only. If an error has occurred, a textual description of the error. Deprecated. Use the field error instead.
  &quot;targetLink&quot;: &quot;A String&quot;, # Output only. Server-defined URI for the target of the operation. The format of this is a URI to the resource being modified (such as a cluster, node pool, or node). For node pool repairs, there may be multiple nodes being repaired, but only one will be the target. Examples: - ## `https://container.googleapis.com/v1/projects/123/locations/us-central1/clusters/my-cluster` ## `https://container.googleapis.com/v1/projects/123/zones/us-central1-c/clusters/my-cluster/nodePools/my-np` `https://container.googleapis.com/v1/projects/123/zones/us-central1-c/clusters/my-cluster/nodePools/my-np/node/my-node`
  &quot;zone&quot;: &quot;A String&quot;, # Output only. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/zones#available) in which the operation is taking place. This field is deprecated, use location instead.
}</pre>
</div>

<div class="method">
    <code class="details" id="setLocations">setLocations(name, body=None, x__xgafv=None)</code>
  <pre>Sets the locations for a specific cluster. Deprecated. Use [projects.locations.clusters.update](https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1/projects.locations.clusters/update) instead.

Args:
  name: string, The name (project, location, cluster) of the cluster to set locations. Specified in the format `projects/*/locations/*/clusters/*`. (required)
  body: object, The request body.
    The object takes the form of:

{ # SetLocationsRequest sets the locations of the cluster.
  &quot;clusterId&quot;: &quot;A String&quot;, # Deprecated. The name of the cluster to upgrade. This field has been deprecated and replaced by the name field.
  &quot;locations&quot;: [ # Required. The desired list of Google Compute Engine [zones](https://cloud.google.com/compute/docs/zones#available) in which the cluster&#x27;s nodes should be located. Changing the locations a cluster is in will result in nodes being either created or removed from the cluster, depending on whether locations are being added or removed. This list must always include the cluster&#x27;s primary zone.
    &quot;A String&quot;,
  ],
  &quot;name&quot;: &quot;A String&quot;, # The name (project, location, cluster) of the cluster to set locations. Specified in the format `projects/*/locations/*/clusters/*`.
  &quot;projectId&quot;: &quot;A String&quot;, # Deprecated. The Google Developers Console [project ID or project number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). This field has been deprecated and replaced by the name field.
  &quot;zone&quot;: &quot;A String&quot;, # Deprecated. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster resides. This field has been deprecated and replaced by the name field.
}

  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # This operation resource represents operations that may have happened or are happening on the cluster. All fields are output only.
  &quot;clusterConditions&quot;: [ # Which conditions caused the current cluster state. Deprecated. Use field error instead.
    { # StatusCondition describes why a cluster or a node pool has a certain status (e.g., ERROR or DEGRADED).
      &quot;canonicalCode&quot;: &quot;A String&quot;, # Canonical code of the condition.
      &quot;code&quot;: &quot;A String&quot;, # Machine-friendly representation of the condition Deprecated. Use canonical_code instead.
      &quot;message&quot;: &quot;A String&quot;, # Human-friendly representation of the condition
    },
  ],
  &quot;detail&quot;: &quot;A String&quot;, # Output only. Detailed operation progress, if available.
  &quot;endTime&quot;: &quot;A String&quot;, # Output only. The time the operation completed, in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
  &quot;error&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure.
    &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
    &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
      {
        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
      },
    ],
    &quot;message&quot;: &quot;A String&quot;, # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
  },
  &quot;location&quot;: &quot;A String&quot;, # Output only. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/regions-zones/regions-zones#available) or [region](https://cloud.google.com/compute/docs/regions-zones/regions-zones#available) in which the cluster resides.
  &quot;name&quot;: &quot;A String&quot;, # Output only. The server-assigned ID for the operation.
  &quot;nodepoolConditions&quot;: [ # Which conditions caused the current node pool state. Deprecated. Use field error instead.
    { # StatusCondition describes why a cluster or a node pool has a certain status (e.g., ERROR or DEGRADED).
      &quot;canonicalCode&quot;: &quot;A String&quot;, # Canonical code of the condition.
      &quot;code&quot;: &quot;A String&quot;, # Machine-friendly representation of the condition Deprecated. Use canonical_code instead.
      &quot;message&quot;: &quot;A String&quot;, # Human-friendly representation of the condition
    },
  ],
  &quot;operationType&quot;: &quot;A String&quot;, # Output only. The operation type.
  &quot;progress&quot;: { # Information about operation (or operation stage) progress. # Output only. Progress information for an operation.
    &quot;metrics&quot;: [ # Progress metric bundle, for example: metrics: [{name: &quot;nodes done&quot;, int_value: 15}, {name: &quot;nodes total&quot;, int_value: 32}] or metrics: [{name: &quot;progress&quot;, double_value: 0.56}, {name: &quot;progress scale&quot;, double_value: 1.0}]
      { # Progress metric is (string, int|float|string) pair.
        &quot;doubleValue&quot;: 3.14, # For metrics with floating point value.
        &quot;intValue&quot;: &quot;A String&quot;, # For metrics with integer value.
        &quot;name&quot;: &quot;A String&quot;, # Required. Metric name, e.g., &quot;nodes total&quot;, &quot;percent done&quot;.
        &quot;stringValue&quot;: &quot;A String&quot;, # For metrics with custom values (ratios, visual progress, etc.).
      },
    ],
    &quot;name&quot;: &quot;A String&quot;, # A non-parameterized string describing an operation stage. Unset for single-stage operations.
    &quot;stages&quot;: [ # Substages of an operation or a stage.
      # Object with schema name: OperationProgress
    ],
    &quot;status&quot;: &quot;A String&quot;, # Status of an operation stage. Unset for single-stage operations.
  },
  &quot;selfLink&quot;: &quot;A String&quot;, # Output only. Server-defined URI for the operation. Example: `https://container.googleapis.com/v1alpha1/projects/123/locations/us-central1/operations/operation-123`.
  &quot;startTime&quot;: &quot;A String&quot;, # Output only. The time the operation started, in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
  &quot;status&quot;: &quot;A String&quot;, # Output only. The current status of the operation.
  &quot;statusMessage&quot;: &quot;A String&quot;, # Output only. If an error has occurred, a textual description of the error. Deprecated. Use the field error instead.
  &quot;targetLink&quot;: &quot;A String&quot;, # Output only. Server-defined URI for the target of the operation. The format of this is a URI to the resource being modified (such as a cluster, node pool, or node). For node pool repairs, there may be multiple nodes being repaired, but only one will be the target. Examples: - ## `https://container.googleapis.com/v1/projects/123/locations/us-central1/clusters/my-cluster` ## `https://container.googleapis.com/v1/projects/123/zones/us-central1-c/clusters/my-cluster/nodePools/my-np` `https://container.googleapis.com/v1/projects/123/zones/us-central1-c/clusters/my-cluster/nodePools/my-np/node/my-node`
  &quot;zone&quot;: &quot;A String&quot;, # Output only. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/zones#available) in which the operation is taking place. This field is deprecated, use location instead.
}</pre>
</div>

<div class="method">
    <code class="details" id="setLogging">setLogging(name, body=None, x__xgafv=None)</code>
  <pre>Sets the logging service for a specific cluster.

Args:
  name: string, The name (project, location, cluster) of the cluster to set logging. Specified in the format `projects/*/locations/*/clusters/*`. (required)
  body: object, The request body.
    The object takes the form of:

{ # SetLoggingServiceRequest sets the logging service of a cluster.
  &quot;clusterId&quot;: &quot;A String&quot;, # Deprecated. The name of the cluster to upgrade. This field has been deprecated and replaced by the name field.
  &quot;loggingService&quot;: &quot;A String&quot;, # Required. The logging service the cluster should use to write logs. Currently available options: * `logging.googleapis.com/kubernetes` - The Cloud Logging service with a Kubernetes-native resource model * `logging.googleapis.com` - The legacy Cloud Logging service (no longer available as of GKE 1.15). * `none` - no logs will be exported from the cluster. If left as an empty string,`logging.googleapis.com/kubernetes` will be used for GKE 1.14+ or `logging.googleapis.com` for earlier versions.
  &quot;name&quot;: &quot;A String&quot;, # The name (project, location, cluster) of the cluster to set logging. Specified in the format `projects/*/locations/*/clusters/*`.
  &quot;projectId&quot;: &quot;A String&quot;, # Deprecated. The Google Developers Console [project ID or project number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). This field has been deprecated and replaced by the name field.
  &quot;zone&quot;: &quot;A String&quot;, # Deprecated. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster resides. This field has been deprecated and replaced by the name field.
}

  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # This operation resource represents operations that may have happened or are happening on the cluster. All fields are output only.
  &quot;clusterConditions&quot;: [ # Which conditions caused the current cluster state. Deprecated. Use field error instead.
    { # StatusCondition describes why a cluster or a node pool has a certain status (e.g., ERROR or DEGRADED).
      &quot;canonicalCode&quot;: &quot;A String&quot;, # Canonical code of the condition.
      &quot;code&quot;: &quot;A String&quot;, # Machine-friendly representation of the condition Deprecated. Use canonical_code instead.
      &quot;message&quot;: &quot;A String&quot;, # Human-friendly representation of the condition
    },
  ],
  &quot;detail&quot;: &quot;A String&quot;, # Output only. Detailed operation progress, if available.
  &quot;endTime&quot;: &quot;A String&quot;, # Output only. The time the operation completed, in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
  &quot;error&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure.
    &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
    &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
      {
        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
      },
    ],
    &quot;message&quot;: &quot;A String&quot;, # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
  },
  &quot;location&quot;: &quot;A String&quot;, # Output only. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/regions-zones/regions-zones#available) or [region](https://cloud.google.com/compute/docs/regions-zones/regions-zones#available) in which the cluster resides.
  &quot;name&quot;: &quot;A String&quot;, # Output only. The server-assigned ID for the operation.
  &quot;nodepoolConditions&quot;: [ # Which conditions caused the current node pool state. Deprecated. Use field error instead.
    { # StatusCondition describes why a cluster or a node pool has a certain status (e.g., ERROR or DEGRADED).
      &quot;canonicalCode&quot;: &quot;A String&quot;, # Canonical code of the condition.
      &quot;code&quot;: &quot;A String&quot;, # Machine-friendly representation of the condition Deprecated. Use canonical_code instead.
      &quot;message&quot;: &quot;A String&quot;, # Human-friendly representation of the condition
    },
  ],
  &quot;operationType&quot;: &quot;A String&quot;, # Output only. The operation type.
  &quot;progress&quot;: { # Information about operation (or operation stage) progress. # Output only. Progress information for an operation.
    &quot;metrics&quot;: [ # Progress metric bundle, for example: metrics: [{name: &quot;nodes done&quot;, int_value: 15}, {name: &quot;nodes total&quot;, int_value: 32}] or metrics: [{name: &quot;progress&quot;, double_value: 0.56}, {name: &quot;progress scale&quot;, double_value: 1.0}]
      { # Progress metric is (string, int|float|string) pair.
        &quot;doubleValue&quot;: 3.14, # For metrics with floating point value.
        &quot;intValue&quot;: &quot;A String&quot;, # For metrics with integer value.
        &quot;name&quot;: &quot;A String&quot;, # Required. Metric name, e.g., &quot;nodes total&quot;, &quot;percent done&quot;.
        &quot;stringValue&quot;: &quot;A String&quot;, # For metrics with custom values (ratios, visual progress, etc.).
      },
    ],
    &quot;name&quot;: &quot;A String&quot;, # A non-parameterized string describing an operation stage. Unset for single-stage operations.
    &quot;stages&quot;: [ # Substages of an operation or a stage.
      # Object with schema name: OperationProgress
    ],
    &quot;status&quot;: &quot;A String&quot;, # Status of an operation stage. Unset for single-stage operations.
  },
  &quot;selfLink&quot;: &quot;A String&quot;, # Output only. Server-defined URI for the operation. Example: `https://container.googleapis.com/v1alpha1/projects/123/locations/us-central1/operations/operation-123`.
  &quot;startTime&quot;: &quot;A String&quot;, # Output only. The time the operation started, in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
  &quot;status&quot;: &quot;A String&quot;, # Output only. The current status of the operation.
  &quot;statusMessage&quot;: &quot;A String&quot;, # Output only. If an error has occurred, a textual description of the error. Deprecated. Use the field error instead.
  &quot;targetLink&quot;: &quot;A String&quot;, # Output only. Server-defined URI for the target of the operation. The format of this is a URI to the resource being modified (such as a cluster, node pool, or node). For node pool repairs, there may be multiple nodes being repaired, but only one will be the target. Examples: - ## `https://container.googleapis.com/v1/projects/123/locations/us-central1/clusters/my-cluster` ## `https://container.googleapis.com/v1/projects/123/zones/us-central1-c/clusters/my-cluster/nodePools/my-np` `https://container.googleapis.com/v1/projects/123/zones/us-central1-c/clusters/my-cluster/nodePools/my-np/node/my-node`
  &quot;zone&quot;: &quot;A String&quot;, # Output only. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/zones#available) in which the operation is taking place. This field is deprecated, use location instead.
}</pre>
</div>

<div class="method">
    <code class="details" id="setMaintenancePolicy">setMaintenancePolicy(name, body=None, x__xgafv=None)</code>
  <pre>Sets the maintenance policy for a cluster.

Args:
  name: string, The name (project, location, cluster name) of the cluster to set maintenance policy. Specified in the format `projects/*/locations/*/clusters/*`. (required)
  body: object, The request body.
    The object takes the form of:

{ # SetMaintenancePolicyRequest sets the maintenance policy for a cluster.
  &quot;clusterId&quot;: &quot;A String&quot;, # Required. The name of the cluster to update.
  &quot;maintenancePolicy&quot;: { # MaintenancePolicy defines the maintenance policy to be used for the cluster. # Required. The maintenance policy to be set for the cluster. An empty field clears the existing maintenance policy.
    &quot;resourceVersion&quot;: &quot;A String&quot;, # A hash identifying the version of this policy, so that updates to fields of the policy won&#x27;t accidentally undo intermediate changes (and so that users of the API unaware of some fields won&#x27;t accidentally remove other fields). Make a `get()` request to the cluster to get the current resource version and include it with requests to set the policy.
    &quot;window&quot;: { # MaintenanceWindow defines the maintenance window to be used for the cluster. # Specifies the maintenance window in which maintenance may be performed.
      &quot;dailyMaintenanceWindow&quot;: { # Time window specified for daily maintenance operations. # DailyMaintenanceWindow specifies a daily maintenance operation window.
        &quot;duration&quot;: &quot;A String&quot;, # Output only. Duration of the time window, automatically chosen to be smallest possible in the given scenario. Duration will be in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) format &quot;PTnHnMnS&quot;.
        &quot;startTime&quot;: &quot;A String&quot;, # Time within the maintenance window to start the maintenance operations. Time format should be in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) format &quot;HH:MM&quot;, where HH : [00-23] and MM : [00-59] GMT.
      },
      &quot;maintenanceExclusions&quot;: { # Exceptions to maintenance window. Non-emergency maintenance should not occur in these windows.
        &quot;a_key&quot;: { # Represents an arbitrary window of time.
          &quot;endTime&quot;: &quot;A String&quot;, # The time that the window ends. The end time should take place after the start time.
          &quot;maintenanceExclusionOptions&quot;: { # Represents the Maintenance exclusion option. # MaintenanceExclusionOptions provides maintenance exclusion related options.
            &quot;endTimeBehavior&quot;: &quot;A String&quot;, # EndTimeBehavior specifies the behavior of the exclusion end time.
            &quot;scope&quot;: &quot;A String&quot;, # Scope specifies the upgrade scope which upgrades are blocked by the exclusion.
          },
          &quot;startTime&quot;: &quot;A String&quot;, # The time that the window first starts.
        },
      },
      &quot;recurringWindow&quot;: { # Represents an arbitrary window of time that recurs. # RecurringWindow specifies some number of recurring time periods for maintenance to occur. The time windows may be overlapping. If no maintenance windows are set, maintenance can occur at any time.
        &quot;recurrence&quot;: &quot;A String&quot;, # An RRULE (https://tools.ietf.org/html/rfc5545#section-3.8.5.3) for how this window reccurs. They go on for the span of time between the start and end time. For example, to have something repeat every weekday, you&#x27;d use: `FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR` To repeat some window daily (equivalent to the DailyMaintenanceWindow): `FREQ=DAILY` For the first weekend of every month: `FREQ=MONTHLY;BYSETPOS=1;BYDAY=SA,SU` This specifies how frequently the window starts. Eg, if you wanted to have a 9-5 UTC-4 window every weekday, you&#x27;d use something like: ``` start time = 2019-01-01T09:00:00-0400 end time = 2019-01-01T17:00:00-0400 recurrence = FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR ``` Windows can span multiple days. Eg, to make the window encompass every weekend from midnight Saturday till the last minute of Sunday UTC: ``` start time = 2019-01-05T00:00:00Z end time = 2019-01-07T23:59:00Z recurrence = FREQ=WEEKLY;BYDAY=SA ``` Note the start and end time&#x27;s specific dates are largely arbitrary except to specify duration of the window and when it first starts. The FREQ values of HOURLY, MINUTELY, and SECONDLY are not supported.
        &quot;window&quot;: { # Represents an arbitrary window of time. # The window of the first recurrence.
          &quot;endTime&quot;: &quot;A String&quot;, # The time that the window ends. The end time should take place after the start time.
          &quot;maintenanceExclusionOptions&quot;: { # Represents the Maintenance exclusion option. # MaintenanceExclusionOptions provides maintenance exclusion related options.
            &quot;endTimeBehavior&quot;: &quot;A String&quot;, # EndTimeBehavior specifies the behavior of the exclusion end time.
            &quot;scope&quot;: &quot;A String&quot;, # Scope specifies the upgrade scope which upgrades are blocked by the exclusion.
          },
          &quot;startTime&quot;: &quot;A String&quot;, # The time that the window first starts.
        },
      },
    },
  },
  &quot;name&quot;: &quot;A String&quot;, # The name (project, location, cluster name) of the cluster to set maintenance policy. Specified in the format `projects/*/locations/*/clusters/*`.
  &quot;projectId&quot;: &quot;A String&quot;, # Required. The Google Developers Console [project ID or project number](https://cloud.google.com/resource-manager/docs/creating-managing-projects).
  &quot;zone&quot;: &quot;A String&quot;, # Required. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster resides.
}

  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # This operation resource represents operations that may have happened or are happening on the cluster. All fields are output only.
  &quot;clusterConditions&quot;: [ # Which conditions caused the current cluster state. Deprecated. Use field error instead.
    { # StatusCondition describes why a cluster or a node pool has a certain status (e.g., ERROR or DEGRADED).
      &quot;canonicalCode&quot;: &quot;A String&quot;, # Canonical code of the condition.
      &quot;code&quot;: &quot;A String&quot;, # Machine-friendly representation of the condition Deprecated. Use canonical_code instead.
      &quot;message&quot;: &quot;A String&quot;, # Human-friendly representation of the condition
    },
  ],
  &quot;detail&quot;: &quot;A String&quot;, # Output only. Detailed operation progress, if available.
  &quot;endTime&quot;: &quot;A String&quot;, # Output only. The time the operation completed, in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
  &quot;error&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure.
    &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
    &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
      {
        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
      },
    ],
    &quot;message&quot;: &quot;A String&quot;, # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
  },
  &quot;location&quot;: &quot;A String&quot;, # Output only. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/regions-zones/regions-zones#available) or [region](https://cloud.google.com/compute/docs/regions-zones/regions-zones#available) in which the cluster resides.
  &quot;name&quot;: &quot;A String&quot;, # Output only. The server-assigned ID for the operation.
  &quot;nodepoolConditions&quot;: [ # Which conditions caused the current node pool state. Deprecated. Use field error instead.
    { # StatusCondition describes why a cluster or a node pool has a certain status (e.g., ERROR or DEGRADED).
      &quot;canonicalCode&quot;: &quot;A String&quot;, # Canonical code of the condition.
      &quot;code&quot;: &quot;A String&quot;, # Machine-friendly representation of the condition Deprecated. Use canonical_code instead.
      &quot;message&quot;: &quot;A String&quot;, # Human-friendly representation of the condition
    },
  ],
  &quot;operationType&quot;: &quot;A String&quot;, # Output only. The operation type.
  &quot;progress&quot;: { # Information about operation (or operation stage) progress. # Output only. Progress information for an operation.
    &quot;metrics&quot;: [ # Progress metric bundle, for example: metrics: [{name: &quot;nodes done&quot;, int_value: 15}, {name: &quot;nodes total&quot;, int_value: 32}] or metrics: [{name: &quot;progress&quot;, double_value: 0.56}, {name: &quot;progress scale&quot;, double_value: 1.0}]
      { # Progress metric is (string, int|float|string) pair.
        &quot;doubleValue&quot;: 3.14, # For metrics with floating point value.
        &quot;intValue&quot;: &quot;A String&quot;, # For metrics with integer value.
        &quot;name&quot;: &quot;A String&quot;, # Required. Metric name, e.g., &quot;nodes total&quot;, &quot;percent done&quot;.
        &quot;stringValue&quot;: &quot;A String&quot;, # For metrics with custom values (ratios, visual progress, etc.).
      },
    ],
    &quot;name&quot;: &quot;A String&quot;, # A non-parameterized string describing an operation stage. Unset for single-stage operations.
    &quot;stages&quot;: [ # Substages of an operation or a stage.
      # Object with schema name: OperationProgress
    ],
    &quot;status&quot;: &quot;A String&quot;, # Status of an operation stage. Unset for single-stage operations.
  },
  &quot;selfLink&quot;: &quot;A String&quot;, # Output only. Server-defined URI for the operation. Example: `https://container.googleapis.com/v1alpha1/projects/123/locations/us-central1/operations/operation-123`.
  &quot;startTime&quot;: &quot;A String&quot;, # Output only. The time the operation started, in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
  &quot;status&quot;: &quot;A String&quot;, # Output only. The current status of the operation.
  &quot;statusMessage&quot;: &quot;A String&quot;, # Output only. If an error has occurred, a textual description of the error. Deprecated. Use the field error instead.
  &quot;targetLink&quot;: &quot;A String&quot;, # Output only. Server-defined URI for the target of the operation. The format of this is a URI to the resource being modified (such as a cluster, node pool, or node). For node pool repairs, there may be multiple nodes being repaired, but only one will be the target. Examples: - ## `https://container.googleapis.com/v1/projects/123/locations/us-central1/clusters/my-cluster` ## `https://container.googleapis.com/v1/projects/123/zones/us-central1-c/clusters/my-cluster/nodePools/my-np` `https://container.googleapis.com/v1/projects/123/zones/us-central1-c/clusters/my-cluster/nodePools/my-np/node/my-node`
  &quot;zone&quot;: &quot;A String&quot;, # Output only. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/zones#available) in which the operation is taking place. This field is deprecated, use location instead.
}</pre>
</div>

<div class="method">
    <code class="details" id="setMasterAuth">setMasterAuth(name, body=None, x__xgafv=None)</code>
  <pre>Sets master auth materials. Currently supports changing the admin password or a specific cluster, either via password generation or explicitly setting the password.

Args:
  name: string, The name (project, location, cluster) of the cluster to set auth. Specified in the format `projects/*/locations/*/clusters/*`. (required)
  body: object, The request body.
    The object takes the form of:

{ # SetMasterAuthRequest updates the admin password of a cluster.
  &quot;action&quot;: &quot;A String&quot;, # Required. The exact form of action to be taken on the master auth.
  &quot;clusterId&quot;: &quot;A String&quot;, # Deprecated. The name of the cluster to upgrade. This field has been deprecated and replaced by the name field.
  &quot;name&quot;: &quot;A String&quot;, # The name (project, location, cluster) of the cluster to set auth. Specified in the format `projects/*/locations/*/clusters/*`.
  &quot;projectId&quot;: &quot;A String&quot;, # Deprecated. The Google Developers Console [project ID or project number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). This field has been deprecated and replaced by the name field.
  &quot;update&quot;: { # The authentication information for accessing the master endpoint. Authentication can be done using HTTP basic auth or using client certificates. # Required. A description of the update.
    &quot;clientCertificate&quot;: &quot;A String&quot;, # Output only. Base64-encoded public certificate used by clients to authenticate to the cluster endpoint. Issued only if client_certificate_config is set.
    &quot;clientCertificateConfig&quot;: { # Configuration for client certificates on the cluster. # Configuration for client certificate authentication on the cluster. For clusters before v1.12, if no configuration is specified, a client certificate is issued.
      &quot;issueClientCertificate&quot;: True or False, # Issue a client certificate.
    },
    &quot;clientKey&quot;: &quot;A String&quot;, # Output only. Base64-encoded private key used by clients to authenticate to the cluster endpoint.
    &quot;clusterCaCertificate&quot;: &quot;A String&quot;, # Output only. Base64-encoded public certificate that is the root of trust for the cluster.
    &quot;password&quot;: &quot;A String&quot;, # The password to use for HTTP basic authentication to the master endpoint. Because the master endpoint is open to the Internet, you should create a strong password. If a password is provided for cluster creation, username must be non-empty. Warning: basic authentication is deprecated, and will be removed in GKE control plane versions 1.19 and newer. For a list of recommended authentication methods, see: https://cloud.google.com/kubernetes-engine/docs/how-to/api-server-authentication
    &quot;username&quot;: &quot;A String&quot;, # The username to use for HTTP basic authentication to the master endpoint. For clusters v1.6.0 and later, basic authentication can be disabled by leaving username unspecified (or setting it to the empty string). Warning: basic authentication is deprecated, and will be removed in GKE control plane versions 1.19 and newer. For a list of recommended authentication methods, see: https://cloud.google.com/kubernetes-engine/docs/how-to/api-server-authentication
  },
  &quot;zone&quot;: &quot;A String&quot;, # Deprecated. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster resides. This field has been deprecated and replaced by the name field.
}

  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # This operation resource represents operations that may have happened or are happening on the cluster. All fields are output only.
  &quot;clusterConditions&quot;: [ # Which conditions caused the current cluster state. Deprecated. Use field error instead.
    { # StatusCondition describes why a cluster or a node pool has a certain status (e.g., ERROR or DEGRADED).
      &quot;canonicalCode&quot;: &quot;A String&quot;, # Canonical code of the condition.
      &quot;code&quot;: &quot;A String&quot;, # Machine-friendly representation of the condition Deprecated. Use canonical_code instead.
      &quot;message&quot;: &quot;A String&quot;, # Human-friendly representation of the condition
    },
  ],
  &quot;detail&quot;: &quot;A String&quot;, # Output only. Detailed operation progress, if available.
  &quot;endTime&quot;: &quot;A String&quot;, # Output only. The time the operation completed, in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
  &quot;error&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure.
    &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
    &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
      {
        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
      },
    ],
    &quot;message&quot;: &quot;A String&quot;, # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
  },
  &quot;location&quot;: &quot;A String&quot;, # Output only. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/regions-zones/regions-zones#available) or [region](https://cloud.google.com/compute/docs/regions-zones/regions-zones#available) in which the cluster resides.
  &quot;name&quot;: &quot;A String&quot;, # Output only. The server-assigned ID for the operation.
  &quot;nodepoolConditions&quot;: [ # Which conditions caused the current node pool state. Deprecated. Use field error instead.
    { # StatusCondition describes why a cluster or a node pool has a certain status (e.g., ERROR or DEGRADED).
      &quot;canonicalCode&quot;: &quot;A String&quot;, # Canonical code of the condition.
      &quot;code&quot;: &quot;A String&quot;, # Machine-friendly representation of the condition Deprecated. Use canonical_code instead.
      &quot;message&quot;: &quot;A String&quot;, # Human-friendly representation of the condition
    },
  ],
  &quot;operationType&quot;: &quot;A String&quot;, # Output only. The operation type.
  &quot;progress&quot;: { # Information about operation (or operation stage) progress. # Output only. Progress information for an operation.
    &quot;metrics&quot;: [ # Progress metric bundle, for example: metrics: [{name: &quot;nodes done&quot;, int_value: 15}, {name: &quot;nodes total&quot;, int_value: 32}] or metrics: [{name: &quot;progress&quot;, double_value: 0.56}, {name: &quot;progress scale&quot;, double_value: 1.0}]
      { # Progress metric is (string, int|float|string) pair.
        &quot;doubleValue&quot;: 3.14, # For metrics with floating point value.
        &quot;intValue&quot;: &quot;A String&quot;, # For metrics with integer value.
        &quot;name&quot;: &quot;A String&quot;, # Required. Metric name, e.g., &quot;nodes total&quot;, &quot;percent done&quot;.
        &quot;stringValue&quot;: &quot;A String&quot;, # For metrics with custom values (ratios, visual progress, etc.).
      },
    ],
    &quot;name&quot;: &quot;A String&quot;, # A non-parameterized string describing an operation stage. Unset for single-stage operations.
    &quot;stages&quot;: [ # Substages of an operation or a stage.
      # Object with schema name: OperationProgress
    ],
    &quot;status&quot;: &quot;A String&quot;, # Status of an operation stage. Unset for single-stage operations.
  },
  &quot;selfLink&quot;: &quot;A String&quot;, # Output only. Server-defined URI for the operation. Example: `https://container.googleapis.com/v1alpha1/projects/123/locations/us-central1/operations/operation-123`.
  &quot;startTime&quot;: &quot;A String&quot;, # Output only. The time the operation started, in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
  &quot;status&quot;: &quot;A String&quot;, # Output only. The current status of the operation.
  &quot;statusMessage&quot;: &quot;A String&quot;, # Output only. If an error has occurred, a textual description of the error. Deprecated. Use the field error instead.
  &quot;targetLink&quot;: &quot;A String&quot;, # Output only. Server-defined URI for the target of the operation. The format of this is a URI to the resource being modified (such as a cluster, node pool, or node). For node pool repairs, there may be multiple nodes being repaired, but only one will be the target. Examples: - ## `https://container.googleapis.com/v1/projects/123/locations/us-central1/clusters/my-cluster` ## `https://container.googleapis.com/v1/projects/123/zones/us-central1-c/clusters/my-cluster/nodePools/my-np` `https://container.googleapis.com/v1/projects/123/zones/us-central1-c/clusters/my-cluster/nodePools/my-np/node/my-node`
  &quot;zone&quot;: &quot;A String&quot;, # Output only. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/zones#available) in which the operation is taking place. This field is deprecated, use location instead.
}</pre>
</div>

<div class="method">
    <code class="details" id="setMonitoring">setMonitoring(name, body=None, x__xgafv=None)</code>
  <pre>Sets the monitoring service for a specific cluster.

Args:
  name: string, The name (project, location, cluster) of the cluster to set monitoring. Specified in the format `projects/*/locations/*/clusters/*`. (required)
  body: object, The request body.
    The object takes the form of:

{ # SetMonitoringServiceRequest sets the monitoring service of a cluster.
  &quot;clusterId&quot;: &quot;A String&quot;, # Deprecated. The name of the cluster to upgrade. This field has been deprecated and replaced by the name field.
  &quot;monitoringService&quot;: &quot;A String&quot;, # Required. The monitoring service the cluster should use to write metrics. Currently available options: * `monitoring.googleapis.com/kubernetes` - The Cloud Monitoring service with a Kubernetes-native resource model * `monitoring.googleapis.com` - The legacy Cloud Monitoring service (no longer available as of GKE 1.15). * `none` - No metrics will be exported from the cluster. If left as an empty string,`monitoring.googleapis.com/kubernetes` will be used for GKE 1.14+ or `monitoring.googleapis.com` for earlier versions.
  &quot;name&quot;: &quot;A String&quot;, # The name (project, location, cluster) of the cluster to set monitoring. Specified in the format `projects/*/locations/*/clusters/*`.
  &quot;projectId&quot;: &quot;A String&quot;, # Deprecated. The Google Developers Console [project ID or project number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). This field has been deprecated and replaced by the name field.
  &quot;zone&quot;: &quot;A String&quot;, # Deprecated. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster resides. This field has been deprecated and replaced by the name field.
}

  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # This operation resource represents operations that may have happened or are happening on the cluster. All fields are output only.
  &quot;clusterConditions&quot;: [ # Which conditions caused the current cluster state. Deprecated. Use field error instead.
    { # StatusCondition describes why a cluster or a node pool has a certain status (e.g., ERROR or DEGRADED).
      &quot;canonicalCode&quot;: &quot;A String&quot;, # Canonical code of the condition.
      &quot;code&quot;: &quot;A String&quot;, # Machine-friendly representation of the condition Deprecated. Use canonical_code instead.
      &quot;message&quot;: &quot;A String&quot;, # Human-friendly representation of the condition
    },
  ],
  &quot;detail&quot;: &quot;A String&quot;, # Output only. Detailed operation progress, if available.
  &quot;endTime&quot;: &quot;A String&quot;, # Output only. The time the operation completed, in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
  &quot;error&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure.
    &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
    &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
      {
        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
      },
    ],
    &quot;message&quot;: &quot;A String&quot;, # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
  },
  &quot;location&quot;: &quot;A String&quot;, # Output only. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/regions-zones/regions-zones#available) or [region](https://cloud.google.com/compute/docs/regions-zones/regions-zones#available) in which the cluster resides.
  &quot;name&quot;: &quot;A String&quot;, # Output only. The server-assigned ID for the operation.
  &quot;nodepoolConditions&quot;: [ # Which conditions caused the current node pool state. Deprecated. Use field error instead.
    { # StatusCondition describes why a cluster or a node pool has a certain status (e.g., ERROR or DEGRADED).
      &quot;canonicalCode&quot;: &quot;A String&quot;, # Canonical code of the condition.
      &quot;code&quot;: &quot;A String&quot;, # Machine-friendly representation of the condition Deprecated. Use canonical_code instead.
      &quot;message&quot;: &quot;A String&quot;, # Human-friendly representation of the condition
    },
  ],
  &quot;operationType&quot;: &quot;A String&quot;, # Output only. The operation type.
  &quot;progress&quot;: { # Information about operation (or operation stage) progress. # Output only. Progress information for an operation.
    &quot;metrics&quot;: [ # Progress metric bundle, for example: metrics: [{name: &quot;nodes done&quot;, int_value: 15}, {name: &quot;nodes total&quot;, int_value: 32}] or metrics: [{name: &quot;progress&quot;, double_value: 0.56}, {name: &quot;progress scale&quot;, double_value: 1.0}]
      { # Progress metric is (string, int|float|string) pair.
        &quot;doubleValue&quot;: 3.14, # For metrics with floating point value.
        &quot;intValue&quot;: &quot;A String&quot;, # For metrics with integer value.
        &quot;name&quot;: &quot;A String&quot;, # Required. Metric name, e.g., &quot;nodes total&quot;, &quot;percent done&quot;.
        &quot;stringValue&quot;: &quot;A String&quot;, # For metrics with custom values (ratios, visual progress, etc.).
      },
    ],
    &quot;name&quot;: &quot;A String&quot;, # A non-parameterized string describing an operation stage. Unset for single-stage operations.
    &quot;stages&quot;: [ # Substages of an operation or a stage.
      # Object with schema name: OperationProgress
    ],
    &quot;status&quot;: &quot;A String&quot;, # Status of an operation stage. Unset for single-stage operations.
  },
  &quot;selfLink&quot;: &quot;A String&quot;, # Output only. Server-defined URI for the operation. Example: `https://container.googleapis.com/v1alpha1/projects/123/locations/us-central1/operations/operation-123`.
  &quot;startTime&quot;: &quot;A String&quot;, # Output only. The time the operation started, in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
  &quot;status&quot;: &quot;A String&quot;, # Output only. The current status of the operation.
  &quot;statusMessage&quot;: &quot;A String&quot;, # Output only. If an error has occurred, a textual description of the error. Deprecated. Use the field error instead.
  &quot;targetLink&quot;: &quot;A String&quot;, # Output only. Server-defined URI for the target of the operation. The format of this is a URI to the resource being modified (such as a cluster, node pool, or node). For node pool repairs, there may be multiple nodes being repaired, but only one will be the target. Examples: - ## `https://container.googleapis.com/v1/projects/123/locations/us-central1/clusters/my-cluster` ## `https://container.googleapis.com/v1/projects/123/zones/us-central1-c/clusters/my-cluster/nodePools/my-np` `https://container.googleapis.com/v1/projects/123/zones/us-central1-c/clusters/my-cluster/nodePools/my-np/node/my-node`
  &quot;zone&quot;: &quot;A String&quot;, # Output only. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/zones#available) in which the operation is taking place. This field is deprecated, use location instead.
}</pre>
</div>

<div class="method">
    <code class="details" id="setNetworkPolicy">setNetworkPolicy(name, body=None, x__xgafv=None)</code>
  <pre>Enables or disables Network Policy for a cluster.

Args:
  name: string, The name (project, location, cluster name) of the cluster to set networking policy. Specified in the format `projects/*/locations/*/clusters/*`. (required)
  body: object, The request body.
    The object takes the form of:

{ # SetNetworkPolicyRequest enables/disables network policy for a cluster.
  &quot;clusterId&quot;: &quot;A String&quot;, # Deprecated. The name of the cluster. This field has been deprecated and replaced by the name field.
  &quot;name&quot;: &quot;A String&quot;, # The name (project, location, cluster name) of the cluster to set networking policy. Specified in the format `projects/*/locations/*/clusters/*`.
  &quot;networkPolicy&quot;: { # Configuration options for the NetworkPolicy feature. https://kubernetes.io/docs/concepts/services-networking/networkpolicies/ # Required. Configuration options for the NetworkPolicy feature.
    &quot;enabled&quot;: True or False, # Whether network policy is enabled on the cluster.
    &quot;provider&quot;: &quot;A String&quot;, # The selected network policy provider.
  },
  &quot;projectId&quot;: &quot;A String&quot;, # Deprecated. The Google Developers Console [project ID or project number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). This field has been deprecated and replaced by the name field.
  &quot;zone&quot;: &quot;A String&quot;, # Deprecated. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster resides. This field has been deprecated and replaced by the name field.
}

  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # This operation resource represents operations that may have happened or are happening on the cluster. All fields are output only.
  &quot;clusterConditions&quot;: [ # Which conditions caused the current cluster state. Deprecated. Use field error instead.
    { # StatusCondition describes why a cluster or a node pool has a certain status (e.g., ERROR or DEGRADED).
      &quot;canonicalCode&quot;: &quot;A String&quot;, # Canonical code of the condition.
      &quot;code&quot;: &quot;A String&quot;, # Machine-friendly representation of the condition Deprecated. Use canonical_code instead.
      &quot;message&quot;: &quot;A String&quot;, # Human-friendly representation of the condition
    },
  ],
  &quot;detail&quot;: &quot;A String&quot;, # Output only. Detailed operation progress, if available.
  &quot;endTime&quot;: &quot;A String&quot;, # Output only. The time the operation completed, in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
  &quot;error&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure.
    &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
    &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
      {
        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
      },
    ],
    &quot;message&quot;: &quot;A String&quot;, # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
  },
  &quot;location&quot;: &quot;A String&quot;, # Output only. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/regions-zones/regions-zones#available) or [region](https://cloud.google.com/compute/docs/regions-zones/regions-zones#available) in which the cluster resides.
  &quot;name&quot;: &quot;A String&quot;, # Output only. The server-assigned ID for the operation.
  &quot;nodepoolConditions&quot;: [ # Which conditions caused the current node pool state. Deprecated. Use field error instead.
    { # StatusCondition describes why a cluster or a node pool has a certain status (e.g., ERROR or DEGRADED).
      &quot;canonicalCode&quot;: &quot;A String&quot;, # Canonical code of the condition.
      &quot;code&quot;: &quot;A String&quot;, # Machine-friendly representation of the condition Deprecated. Use canonical_code instead.
      &quot;message&quot;: &quot;A String&quot;, # Human-friendly representation of the condition
    },
  ],
  &quot;operationType&quot;: &quot;A String&quot;, # Output only. The operation type.
  &quot;progress&quot;: { # Information about operation (or operation stage) progress. # Output only. Progress information for an operation.
    &quot;metrics&quot;: [ # Progress metric bundle, for example: metrics: [{name: &quot;nodes done&quot;, int_value: 15}, {name: &quot;nodes total&quot;, int_value: 32}] or metrics: [{name: &quot;progress&quot;, double_value: 0.56}, {name: &quot;progress scale&quot;, double_value: 1.0}]
      { # Progress metric is (string, int|float|string) pair.
        &quot;doubleValue&quot;: 3.14, # For metrics with floating point value.
        &quot;intValue&quot;: &quot;A String&quot;, # For metrics with integer value.
        &quot;name&quot;: &quot;A String&quot;, # Required. Metric name, e.g., &quot;nodes total&quot;, &quot;percent done&quot;.
        &quot;stringValue&quot;: &quot;A String&quot;, # For metrics with custom values (ratios, visual progress, etc.).
      },
    ],
    &quot;name&quot;: &quot;A String&quot;, # A non-parameterized string describing an operation stage. Unset for single-stage operations.
    &quot;stages&quot;: [ # Substages of an operation or a stage.
      # Object with schema name: OperationProgress
    ],
    &quot;status&quot;: &quot;A String&quot;, # Status of an operation stage. Unset for single-stage operations.
  },
  &quot;selfLink&quot;: &quot;A String&quot;, # Output only. Server-defined URI for the operation. Example: `https://container.googleapis.com/v1alpha1/projects/123/locations/us-central1/operations/operation-123`.
  &quot;startTime&quot;: &quot;A String&quot;, # Output only. The time the operation started, in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
  &quot;status&quot;: &quot;A String&quot;, # Output only. The current status of the operation.
  &quot;statusMessage&quot;: &quot;A String&quot;, # Output only. If an error has occurred, a textual description of the error. Deprecated. Use the field error instead.
  &quot;targetLink&quot;: &quot;A String&quot;, # Output only. Server-defined URI for the target of the operation. The format of this is a URI to the resource being modified (such as a cluster, node pool, or node). For node pool repairs, there may be multiple nodes being repaired, but only one will be the target. Examples: - ## `https://container.googleapis.com/v1/projects/123/locations/us-central1/clusters/my-cluster` ## `https://container.googleapis.com/v1/projects/123/zones/us-central1-c/clusters/my-cluster/nodePools/my-np` `https://container.googleapis.com/v1/projects/123/zones/us-central1-c/clusters/my-cluster/nodePools/my-np/node/my-node`
  &quot;zone&quot;: &quot;A String&quot;, # Output only. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/zones#available) in which the operation is taking place. This field is deprecated, use location instead.
}</pre>
</div>

<div class="method">
    <code class="details" id="setResourceLabels">setResourceLabels(name, body=None, x__xgafv=None)</code>
  <pre>Sets labels on a cluster.

Args:
  name: string, The name (project, location, cluster name) of the cluster to set labels. Specified in the format `projects/*/locations/*/clusters/*`. (required)
  body: object, The request body.
    The object takes the form of:

{ # SetLabelsRequest sets the Google Cloud Platform labels on a Google Container Engine cluster, which will in turn set them for Google Compute Engine resources used by that cluster
  &quot;clusterId&quot;: &quot;A String&quot;, # Deprecated. The name of the cluster. This field has been deprecated and replaced by the name field.
  &quot;labelFingerprint&quot;: &quot;A String&quot;, # Required. The fingerprint of the previous set of labels for this resource, used to detect conflicts. The fingerprint is initially generated by Kubernetes Engine and changes after every request to modify or update labels. You must always provide an up-to-date fingerprint hash when updating or changing labels. Make a `get()` request to the resource to get the latest fingerprint.
  &quot;name&quot;: &quot;A String&quot;, # The name (project, location, cluster name) of the cluster to set labels. Specified in the format `projects/*/locations/*/clusters/*`.
  &quot;projectId&quot;: &quot;A String&quot;, # Deprecated. The Google Developers Console [project ID or project number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). This field has been deprecated and replaced by the name field.
  &quot;resourceLabels&quot;: { # Required. The labels to set for that cluster.
    &quot;a_key&quot;: &quot;A String&quot;,
  },
  &quot;zone&quot;: &quot;A String&quot;, # Deprecated. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster resides. This field has been deprecated and replaced by the name field.
}

  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # This operation resource represents operations that may have happened or are happening on the cluster. All fields are output only.
  &quot;clusterConditions&quot;: [ # Which conditions caused the current cluster state. Deprecated. Use field error instead.
    { # StatusCondition describes why a cluster or a node pool has a certain status (e.g., ERROR or DEGRADED).
      &quot;canonicalCode&quot;: &quot;A String&quot;, # Canonical code of the condition.
      &quot;code&quot;: &quot;A String&quot;, # Machine-friendly representation of the condition Deprecated. Use canonical_code instead.
      &quot;message&quot;: &quot;A String&quot;, # Human-friendly representation of the condition
    },
  ],
  &quot;detail&quot;: &quot;A String&quot;, # Output only. Detailed operation progress, if available.
  &quot;endTime&quot;: &quot;A String&quot;, # Output only. The time the operation completed, in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
  &quot;error&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure.
    &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
    &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
      {
        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
      },
    ],
    &quot;message&quot;: &quot;A String&quot;, # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
  },
  &quot;location&quot;: &quot;A String&quot;, # Output only. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/regions-zones/regions-zones#available) or [region](https://cloud.google.com/compute/docs/regions-zones/regions-zones#available) in which the cluster resides.
  &quot;name&quot;: &quot;A String&quot;, # Output only. The server-assigned ID for the operation.
  &quot;nodepoolConditions&quot;: [ # Which conditions caused the current node pool state. Deprecated. Use field error instead.
    { # StatusCondition describes why a cluster or a node pool has a certain status (e.g., ERROR or DEGRADED).
      &quot;canonicalCode&quot;: &quot;A String&quot;, # Canonical code of the condition.
      &quot;code&quot;: &quot;A String&quot;, # Machine-friendly representation of the condition Deprecated. Use canonical_code instead.
      &quot;message&quot;: &quot;A String&quot;, # Human-friendly representation of the condition
    },
  ],
  &quot;operationType&quot;: &quot;A String&quot;, # Output only. The operation type.
  &quot;progress&quot;: { # Information about operation (or operation stage) progress. # Output only. Progress information for an operation.
    &quot;metrics&quot;: [ # Progress metric bundle, for example: metrics: [{name: &quot;nodes done&quot;, int_value: 15}, {name: &quot;nodes total&quot;, int_value: 32}] or metrics: [{name: &quot;progress&quot;, double_value: 0.56}, {name: &quot;progress scale&quot;, double_value: 1.0}]
      { # Progress metric is (string, int|float|string) pair.
        &quot;doubleValue&quot;: 3.14, # For metrics with floating point value.
        &quot;intValue&quot;: &quot;A String&quot;, # For metrics with integer value.
        &quot;name&quot;: &quot;A String&quot;, # Required. Metric name, e.g., &quot;nodes total&quot;, &quot;percent done&quot;.
        &quot;stringValue&quot;: &quot;A String&quot;, # For metrics with custom values (ratios, visual progress, etc.).
      },
    ],
    &quot;name&quot;: &quot;A String&quot;, # A non-parameterized string describing an operation stage. Unset for single-stage operations.
    &quot;stages&quot;: [ # Substages of an operation or a stage.
      # Object with schema name: OperationProgress
    ],
    &quot;status&quot;: &quot;A String&quot;, # Status of an operation stage. Unset for single-stage operations.
  },
  &quot;selfLink&quot;: &quot;A String&quot;, # Output only. Server-defined URI for the operation. Example: `https://container.googleapis.com/v1alpha1/projects/123/locations/us-central1/operations/operation-123`.
  &quot;startTime&quot;: &quot;A String&quot;, # Output only. The time the operation started, in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
  &quot;status&quot;: &quot;A String&quot;, # Output only. The current status of the operation.
  &quot;statusMessage&quot;: &quot;A String&quot;, # Output only. If an error has occurred, a textual description of the error. Deprecated. Use the field error instead.
  &quot;targetLink&quot;: &quot;A String&quot;, # Output only. Server-defined URI for the target of the operation. The format of this is a URI to the resource being modified (such as a cluster, node pool, or node). For node pool repairs, there may be multiple nodes being repaired, but only one will be the target. Examples: - ## `https://container.googleapis.com/v1/projects/123/locations/us-central1/clusters/my-cluster` ## `https://container.googleapis.com/v1/projects/123/zones/us-central1-c/clusters/my-cluster/nodePools/my-np` `https://container.googleapis.com/v1/projects/123/zones/us-central1-c/clusters/my-cluster/nodePools/my-np/node/my-node`
  &quot;zone&quot;: &quot;A String&quot;, # Output only. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/zones#available) in which the operation is taking place. This field is deprecated, use location instead.
}</pre>
</div>

<div class="method">
    <code class="details" id="startIpRotation">startIpRotation(name, body=None, x__xgafv=None)</code>
  <pre>Starts master IP rotation.

Args:
  name: string, The name (project, location, cluster name) of the cluster to start IP rotation. Specified in the format `projects/*/locations/*/clusters/*`. (required)
  body: object, The request body.
    The object takes the form of:

{ # StartIPRotationRequest creates a new IP for the cluster and then performs a node upgrade on each node pool to point to the new IP.
  &quot;clusterId&quot;: &quot;A String&quot;, # Deprecated. The name of the cluster. This field has been deprecated and replaced by the name field.
  &quot;name&quot;: &quot;A String&quot;, # The name (project, location, cluster name) of the cluster to start IP rotation. Specified in the format `projects/*/locations/*/clusters/*`.
  &quot;projectId&quot;: &quot;A String&quot;, # Deprecated. The Google Developers Console [project ID or project number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). This field has been deprecated and replaced by the name field.
  &quot;rotateCredentials&quot;: True or False, # Whether to rotate credentials during IP rotation.
  &quot;zone&quot;: &quot;A String&quot;, # Deprecated. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster resides. This field has been deprecated and replaced by the name field.
}

  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # This operation resource represents operations that may have happened or are happening on the cluster. All fields are output only.
  &quot;clusterConditions&quot;: [ # Which conditions caused the current cluster state. Deprecated. Use field error instead.
    { # StatusCondition describes why a cluster or a node pool has a certain status (e.g., ERROR or DEGRADED).
      &quot;canonicalCode&quot;: &quot;A String&quot;, # Canonical code of the condition.
      &quot;code&quot;: &quot;A String&quot;, # Machine-friendly representation of the condition Deprecated. Use canonical_code instead.
      &quot;message&quot;: &quot;A String&quot;, # Human-friendly representation of the condition
    },
  ],
  &quot;detail&quot;: &quot;A String&quot;, # Output only. Detailed operation progress, if available.
  &quot;endTime&quot;: &quot;A String&quot;, # Output only. The time the operation completed, in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
  &quot;error&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure.
    &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
    &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
      {
        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
      },
    ],
    &quot;message&quot;: &quot;A String&quot;, # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
  },
  &quot;location&quot;: &quot;A String&quot;, # Output only. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/regions-zones/regions-zones#available) or [region](https://cloud.google.com/compute/docs/regions-zones/regions-zones#available) in which the cluster resides.
  &quot;name&quot;: &quot;A String&quot;, # Output only. The server-assigned ID for the operation.
  &quot;nodepoolConditions&quot;: [ # Which conditions caused the current node pool state. Deprecated. Use field error instead.
    { # StatusCondition describes why a cluster or a node pool has a certain status (e.g., ERROR or DEGRADED).
      &quot;canonicalCode&quot;: &quot;A String&quot;, # Canonical code of the condition.
      &quot;code&quot;: &quot;A String&quot;, # Machine-friendly representation of the condition Deprecated. Use canonical_code instead.
      &quot;message&quot;: &quot;A String&quot;, # Human-friendly representation of the condition
    },
  ],
  &quot;operationType&quot;: &quot;A String&quot;, # Output only. The operation type.
  &quot;progress&quot;: { # Information about operation (or operation stage) progress. # Output only. Progress information for an operation.
    &quot;metrics&quot;: [ # Progress metric bundle, for example: metrics: [{name: &quot;nodes done&quot;, int_value: 15}, {name: &quot;nodes total&quot;, int_value: 32}] or metrics: [{name: &quot;progress&quot;, double_value: 0.56}, {name: &quot;progress scale&quot;, double_value: 1.0}]
      { # Progress metric is (string, int|float|string) pair.
        &quot;doubleValue&quot;: 3.14, # For metrics with floating point value.
        &quot;intValue&quot;: &quot;A String&quot;, # For metrics with integer value.
        &quot;name&quot;: &quot;A String&quot;, # Required. Metric name, e.g., &quot;nodes total&quot;, &quot;percent done&quot;.
        &quot;stringValue&quot;: &quot;A String&quot;, # For metrics with custom values (ratios, visual progress, etc.).
      },
    ],
    &quot;name&quot;: &quot;A String&quot;, # A non-parameterized string describing an operation stage. Unset for single-stage operations.
    &quot;stages&quot;: [ # Substages of an operation or a stage.
      # Object with schema name: OperationProgress
    ],
    &quot;status&quot;: &quot;A String&quot;, # Status of an operation stage. Unset for single-stage operations.
  },
  &quot;selfLink&quot;: &quot;A String&quot;, # Output only. Server-defined URI for the operation. Example: `https://container.googleapis.com/v1alpha1/projects/123/locations/us-central1/operations/operation-123`.
  &quot;startTime&quot;: &quot;A String&quot;, # Output only. The time the operation started, in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
  &quot;status&quot;: &quot;A String&quot;, # Output only. The current status of the operation.
  &quot;statusMessage&quot;: &quot;A String&quot;, # Output only. If an error has occurred, a textual description of the error. Deprecated. Use the field error instead.
  &quot;targetLink&quot;: &quot;A String&quot;, # Output only. Server-defined URI for the target of the operation. The format of this is a URI to the resource being modified (such as a cluster, node pool, or node). For node pool repairs, there may be multiple nodes being repaired, but only one will be the target. Examples: - ## `https://container.googleapis.com/v1/projects/123/locations/us-central1/clusters/my-cluster` ## `https://container.googleapis.com/v1/projects/123/zones/us-central1-c/clusters/my-cluster/nodePools/my-np` `https://container.googleapis.com/v1/projects/123/zones/us-central1-c/clusters/my-cluster/nodePools/my-np/node/my-node`
  &quot;zone&quot;: &quot;A String&quot;, # Output only. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/zones#available) in which the operation is taking place. This field is deprecated, use location instead.
}</pre>
</div>

<div class="method">
    <code class="details" id="update">update(name, body=None, x__xgafv=None)</code>
  <pre>Updates the settings of a specific cluster.

Args:
  name: string, The name (project, location, cluster) of the cluster to update. Specified in the format `projects/*/locations/*/clusters/*`. (required)
  body: object, The request body.
    The object takes the form of:

{ # UpdateClusterRequest updates the settings of a cluster.
  &quot;clusterId&quot;: &quot;A String&quot;, # Deprecated. The name of the cluster to upgrade. This field has been deprecated and replaced by the name field.
  &quot;name&quot;: &quot;A String&quot;, # The name (project, location, cluster) of the cluster to update. Specified in the format `projects/*/locations/*/clusters/*`.
  &quot;projectId&quot;: &quot;A String&quot;, # Deprecated. The Google Developers Console [project ID or project number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). This field has been deprecated and replaced by the name field.
  &quot;update&quot;: { # ClusterUpdate describes an update to the cluster. Exactly one update can be applied to a cluster with each request, so at most one field can be provided. # Required. A description of the update.
    &quot;additionalPodRangesConfig&quot;: { # AdditionalPodRangesConfig is the configuration for additional pod secondary ranges supporting the ClusterUpdate message. # The additional pod ranges to be added to the cluster. These pod ranges can be used by node pools to allocate pod IPs.
      &quot;podRangeInfo&quot;: [ # Output only. Information for additional pod range.
        { # RangeInfo contains the range name and the range utilization by this cluster.
          &quot;rangeName&quot;: &quot;A String&quot;, # Output only. Name of a range.
          &quot;utilization&quot;: 3.14, # Output only. The utilization of the range.
        },
      ],
      &quot;podRangeNames&quot;: [ # Name for pod secondary ipv4 range which has the actual range defined ahead.
        &quot;A String&quot;,
      ],
    },
    &quot;desiredAdditionalIpRangesConfig&quot;: { # DesiredAdditionalIPRangesConfig is a wrapper used for cluster update operation and contains multiple AdditionalIPRangesConfigs. # The desired config for additional subnetworks attached to the cluster.
      &quot;additionalIpRangesConfigs&quot;: [ # List of additional IP ranges configs where each AdditionalIPRangesConfig corresponds to one subnetwork&#x27;s IP ranges
        { # AdditionalIPRangesConfig is the configuration for individual additional subnetwork attached to the cluster
          &quot;podIpv4RangeNames&quot;: [ # List of secondary ranges names within this subnetwork that can be used for pod IPs. Example1: gke-pod-range1 Example2: gke-pod-range1,gke-pod-range2
            &quot;A String&quot;,
          ],
          &quot;subnetwork&quot;: &quot;A String&quot;, # Name of the subnetwork. This can be the full path of the subnetwork or just the name. Example1: my-subnet Example2: projects/gke-project/regions/us-central1/subnetworks/my-subnet
        },
      ],
    },
    &quot;desiredAddonsConfig&quot;: { # Configuration for the addons that can be automatically spun up in the cluster, enabling additional functionality. # Configurations for the various addons available to run in the cluster.
      &quot;cloudRunConfig&quot;: { # Configuration options for the Cloud Run feature. # Configuration for the Cloud Run addon, which allows the user to use a managed Knative service.
        &quot;disabled&quot;: True or False, # Whether Cloud Run addon is enabled for this cluster.
        &quot;loadBalancerType&quot;: &quot;A String&quot;, # Which load balancer type is installed for Cloud Run.
      },
      &quot;configConnectorConfig&quot;: { # Configuration options for the Config Connector add-on. # Configuration for the ConfigConnector add-on, a Kubernetes extension to manage hosted Google Cloud services through the Kubernetes API.
        &quot;enabled&quot;: True or False, # Whether Cloud Connector is enabled for this cluster.
      },
      &quot;dnsCacheConfig&quot;: { # Configuration for NodeLocal DNSCache # Configuration for NodeLocalDNS, a dns cache running on cluster nodes
        &quot;enabled&quot;: True or False, # Whether NodeLocal DNSCache is enabled for this cluster.
      },
      &quot;gcePersistentDiskCsiDriverConfig&quot;: { # Configuration for the Compute Engine PD CSI driver. # Configuration for the Compute Engine Persistent Disk CSI driver.
        &quot;enabled&quot;: True or False, # Whether the Compute Engine PD CSI driver is enabled for this cluster.
      },
      &quot;gcpFilestoreCsiDriverConfig&quot;: { # Configuration for the Filestore CSI driver. # Configuration for the Filestore CSI driver.
        &quot;enabled&quot;: True or False, # Whether the Filestore CSI driver is enabled for this cluster.
      },
      &quot;gcsFuseCsiDriverConfig&quot;: { # Configuration for the Cloud Storage Fuse CSI driver. # Configuration for the Cloud Storage Fuse CSI driver.
        &quot;enabled&quot;: True or False, # Whether the Cloud Storage Fuse CSI driver is enabled for this cluster.
      },
      &quot;gkeBackupAgentConfig&quot;: { # Configuration for the Backup for GKE Agent. # Configuration for the Backup for GKE agent addon.
        &quot;enabled&quot;: True or False, # Whether the Backup for GKE agent is enabled for this cluster.
      },
      &quot;highScaleCheckpointingConfig&quot;: { # Configuration for the High Scale Checkpointing. # Configuration for the High Scale Checkpointing add-on.
        &quot;enabled&quot;: True or False, # Whether the High Scale Checkpointing is enabled for this cluster.
      },
      &quot;horizontalPodAutoscaling&quot;: { # Configuration options for the horizontal pod autoscaling feature, which increases or decreases the number of replica pods a replication controller has based on the resource usage of the existing pods. # 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.
        &quot;disabled&quot;: True or False, # Whether the Horizontal Pod Autoscaling feature is enabled in the cluster. When enabled, it ensures that metrics are collected into Stackdriver Monitoring.
      },
      &quot;httpLoadBalancing&quot;: { # Configuration options for the HTTP (L7) load balancing controller addon, which makes it easy to set up HTTP load balancers for services in a cluster. # Configuration for the HTTP (L7) load balancing controller addon, which makes it easy to set up HTTP load balancers for services in a cluster.
        &quot;disabled&quot;: True or False, # 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.
      },
      &quot;kubernetesDashboard&quot;: { # Configuration for the Kubernetes Dashboard. # Configuration for the Kubernetes Dashboard. This addon is deprecated, and will be disabled in 1.15. It is recommended to use the Cloud Console to manage and monitor your Kubernetes clusters, workloads and applications. For more information, see: https://cloud.google.com/kubernetes-engine/docs/concepts/dashboards
        &quot;disabled&quot;: True or False, # Whether the Kubernetes Dashboard is enabled for this cluster.
      },
      &quot;lustreCsiDriverConfig&quot;: { # Configuration for the Lustre CSI driver. # Configuration for the Lustre CSI driver.
        &quot;enableLegacyLustrePort&quot;: True or False, # If set to true, the Lustre CSI driver will install Lustre kernel modules using port 6988. This serves as a workaround for a port conflict with the gke-metadata-server. This field is required ONLY under the following conditions: 1. The GKE node version is older than 1.33.2-gke.4655000. 2. You&#x27;re connecting to a Lustre instance that has the &#x27;gke-support-enabled&#x27; flag.
        &quot;enabled&quot;: True or False, # Whether the Lustre CSI driver is enabled for this cluster.
      },
      &quot;networkPolicyConfig&quot;: { # 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. # 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.
        &quot;disabled&quot;: True or False, # Whether NetworkPolicy is enabled for this cluster.
      },
      &quot;parallelstoreCsiDriverConfig&quot;: { # Configuration for the Cloud Storage Parallelstore CSI driver. # Configuration for the Cloud Storage Parallelstore CSI driver.
        &quot;enabled&quot;: True or False, # Whether the Cloud Storage Parallelstore CSI driver is enabled for this cluster.
      },
      &quot;rayOperatorConfig&quot;: { # Configuration options for the Ray Operator add-on. # Optional. Configuration for Ray Operator addon.
        &quot;enabled&quot;: True or False, # Whether the Ray Operator addon is enabled for this cluster.
        &quot;rayClusterLoggingConfig&quot;: { # RayClusterLoggingConfig specifies configuration of Ray logging. # Optional. Logging configuration for Ray clusters.
          &quot;enabled&quot;: True or False, # Enable log collection for Ray clusters.
        },
        &quot;rayClusterMonitoringConfig&quot;: { # RayClusterMonitoringConfig specifies monitoring configuration for Ray clusters. # Optional. Monitoring configuration for Ray clusters.
          &quot;enabled&quot;: True or False, # Enable metrics collection for Ray clusters.
        },
      },
      &quot;statefulHaConfig&quot;: { # Configuration for the Stateful HA add-on. # Optional. Configuration for the StatefulHA add-on.
        &quot;enabled&quot;: True or False, # Whether the Stateful HA add-on is enabled for this cluster.
      },
    },
    &quot;desiredAnonymousAuthenticationConfig&quot;: { # AnonymousAuthenticationConfig defines the settings needed to limit endpoints that allow anonymous authentication. # Configuration for limiting anonymous access to all endpoints except the health checks.
      &quot;mode&quot;: &quot;A String&quot;, # Defines the mode of limiting anonymous access in the cluster.
    },
    &quot;desiredAuthenticatorGroupsConfig&quot;: { # Configuration for returning group information from authenticators. # The desired authenticator groups config for the cluster.
      &quot;enabled&quot;: True or False, # Whether this cluster should return group membership lookups during authentication using a group of security groups.
      &quot;securityGroup&quot;: &quot;A String&quot;, # The name of the security group-of-groups to be used. Only relevant if enabled = true.
    },
    &quot;desiredAutoIpamConfig&quot;: { # AutoIpamConfig contains all information related to Auto IPAM # AutoIpamConfig contains all information related to Auto IPAM
      &quot;enabled&quot;: True or False, # The flag that enables Auto IPAM on this cluster
    },
    &quot;desiredAutopilotWorkloadPolicyConfig&quot;: { # WorkloadPolicyConfig is the configuration related to GCW workload policy # WorkloadPolicyConfig is the configuration related to GCW workload policy
      &quot;allowNetAdmin&quot;: True or False, # If true, workloads can use NET_ADMIN capability.
      &quot;autopilotCompatibilityAuditingEnabled&quot;: True or False, # If true, enables the GCW Auditor that audits workloads on standard clusters.
    },
    &quot;desiredBinaryAuthorization&quot;: { # Configuration for Binary Authorization. # The desired configuration options for the Binary Authorization feature.
      &quot;enabled&quot;: True or False, # This field is deprecated. Leave this unset and instead configure BinaryAuthorization using evaluation_mode. If evaluation_mode is set to anything other than EVALUATION_MODE_UNSPECIFIED, this field is ignored.
      &quot;evaluationMode&quot;: &quot;A String&quot;, # Mode of operation for binauthz policy evaluation. If unspecified, defaults to DISABLED.
    },
    &quot;desiredClusterAutoscaling&quot;: { # ClusterAutoscaling contains global, per-cluster information required by Cluster Autoscaler to automatically adjust the size of the cluster and create/delete node pools based on the current needs. # Cluster-level autoscaling configuration.
      &quot;autoprovisioningLocations&quot;: [ # The list of Google Compute Engine [zones](https://cloud.google.com/compute/docs/zones#available) in which the NodePool&#x27;s nodes can be created by NAP.
        &quot;A String&quot;,
      ],
      &quot;autoprovisioningNodePoolDefaults&quot;: { # AutoprovisioningNodePoolDefaults contains defaults for a node pool created by NAP. # AutoprovisioningNodePoolDefaults contains defaults for a node pool created by NAP.
        &quot;bootDiskKmsKey&quot;: &quot;A String&quot;, # The Customer Managed Encryption Key used to encrypt the boot disk attached to each node in the node pool. This should be of the form projects/[KEY_PROJECT_ID]/locations/[LOCATION]/keyRings/[RING_NAME]/cryptoKeys/[KEY_NAME]. For more information about protecting resources with Cloud KMS Keys please see: https://cloud.google.com/compute/docs/disks/customer-managed-encryption
        &quot;diskSizeGb&quot;: 42, # 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.
        &quot;diskType&quot;: &quot;A String&quot;, # Type of the disk attached to each node (e.g. &#x27;pd-standard&#x27;, &#x27;pd-ssd&#x27; or &#x27;pd-balanced&#x27;) If unspecified, the default disk type is &#x27;pd-standard&#x27;
        &quot;imageType&quot;: &quot;A String&quot;, # The image type to use for NAP created node. Please see https://cloud.google.com/kubernetes-engine/docs/concepts/node-images for available image types.
        &quot;insecureKubeletReadonlyPortEnabled&quot;: True or False, # DEPRECATED. Use NodePoolAutoConfig.NodeKubeletConfig instead.
        &quot;management&quot;: { # NodeManagement defines the set of node management services turned on for the node pool. # Specifies the node management options for NAP created node-pools.
          &quot;autoRepair&quot;: True or False, # 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.
          &quot;autoUpgrade&quot;: True or False, # 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.
          &quot;upgradeOptions&quot;: { # AutoUpgradeOptions defines the set of options for the user to control how the Auto Upgrades will proceed. # Specifies the Auto Upgrade knobs for the node pool.
            &quot;autoUpgradeStartTime&quot;: &quot;A String&quot;, # Output only. This field is set when upgrades are about to commence with the approximate start time for the upgrades, in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
            &quot;description&quot;: &quot;A String&quot;, # Output only. This field is set when upgrades are about to commence with the description of the upgrade.
          },
        },
        &quot;minCpuPlatform&quot;: &quot;A String&quot;, # Deprecated. 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 [how to specify min CPU platform](https://cloud.google.com/compute/docs/instances/specify-min-cpu-platform). This field is deprecated, min_cpu_platform should be specified using `cloud.google.com/requested-min-cpu-platform` label selector on the pod. To unset the min cpu platform field pass &quot;automatic&quot; as field value.
        &quot;oauthScopes&quot;: [ # Scopes that are used by NAP when creating node pools.
          &quot;A String&quot;,
        ],
        &quot;serviceAccount&quot;: &quot;A String&quot;, # The Google Cloud Platform Service Account to be used by the node VMs.
        &quot;shieldedInstanceConfig&quot;: { # A set of Shielded Instance options. # Shielded Instance options.
          &quot;enableIntegrityMonitoring&quot;: True or False, # 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.
          &quot;enableSecureBoot&quot;: True or False, # 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.
        },
        &quot;upgradeSettings&quot;: { # These upgrade settings control the level of parallelism and the level of disruption caused by an upgrade. maxUnavailable controls the number of nodes that can be simultaneously unavailable. maxSurge controls the number of additional nodes that can be added to the node pool temporarily for the time of the upgrade to increase the number of available nodes. (maxUnavailable + maxSurge) determines the level of parallelism (how many nodes are being upgraded at the same time). Note: upgrades inevitably introduce some disruption since workloads need to be moved from old nodes to new, upgraded ones. Even if maxUnavailable=0, this holds true. (Disruption stays within the limits of PodDisruptionBudget, if it is configured.) Consider a hypothetical node pool with 5 nodes having maxSurge=2, maxUnavailable=1. This means the upgrade process upgrades 3 nodes simultaneously. It creates 2 additional (upgraded) nodes, then it brings down 3 old (not yet upgraded) nodes at the same time. This ensures that there are always at least 4 nodes available. These upgrade settings configure the upgrade strategy for the node pool. Use strategy to switch between the strategies applied to the node pool. If the strategy is ROLLING, use max_surge and max_unavailable to control the level of parallelism and the level of disruption caused by upgrade. 1. maxSurge controls the number of additional nodes that can be added to the node pool temporarily for the time of the upgrade to increase the number of available nodes. 2. maxUnavailable controls the number of nodes that can be simultaneously unavailable. 3. (maxUnavailable + maxSurge) determines the level of parallelism (how many nodes are being upgraded at the same time). If the strategy is BLUE_GREEN, use blue_green_settings to configure the blue-green upgrade related settings. 1. standard_rollout_policy is the default policy. The policy is used to control the way blue pool gets drained. The draining is executed in the batch mode. The batch size could be specified as either percentage of the node pool size or the number of nodes. batch_soak_duration is the soak time after each batch gets drained. 2. node_pool_soak_duration is the soak time after all blue nodes are drained. After this period, the blue pool nodes will be deleted. # Specifies the upgrade settings for NAP created node pools
          &quot;blueGreenSettings&quot;: { # Settings for blue-green upgrade. # Settings for blue-green upgrade strategy.
            &quot;autoscaledRolloutPolicy&quot;: { # Autoscaled rollout policy utilizes the cluster autoscaler during blue-green upgrade to scale both the blue and green pools. # Autoscaled policy for cluster autoscaler enabled blue-green upgrade.
              &quot;waitForDrainDuration&quot;: &quot;A String&quot;, # Optional. Time to wait after cordoning the blue pool before draining the nodes. Defaults to 3 days. The value can be set between 0 and 7 days, inclusive.
            },
            &quot;nodePoolSoakDuration&quot;: &quot;A String&quot;, # Time needed after draining entire blue pool. After this period, blue pool will be cleaned up.
            &quot;standardRolloutPolicy&quot;: { # Standard rollout policy is the default policy for blue-green. # Standard policy for the blue-green upgrade.
              &quot;batchNodeCount&quot;: 42, # Number of blue nodes to drain in a batch.
              &quot;batchPercentage&quot;: 3.14, # Percentage of the blue pool nodes to drain in a batch. The range of this field should be (0.0, 1.0].
              &quot;batchSoakDuration&quot;: &quot;A String&quot;, # Soak time after each batch gets drained. Default to zero.
            },
          },
          &quot;maxSurge&quot;: 42, # The maximum number of nodes that can be created beyond the current size of the node pool during the upgrade process.
          &quot;maxUnavailable&quot;: 42, # The maximum number of nodes that can be simultaneously unavailable during the upgrade process. A node is considered available if its status is Ready.
          &quot;strategy&quot;: &quot;A String&quot;, # Update strategy of the node pool.
        },
      },
      &quot;autoscalingProfile&quot;: &quot;A String&quot;, # Defines autoscaling behaviour.
      &quot;defaultComputeClassConfig&quot;: { # DefaultComputeClassConfig defines default compute class configuration. # Default compute class is a configuration for default compute class.
        &quot;enabled&quot;: True or False, # Enables default compute class.
      },
      &quot;enableNodeAutoprovisioning&quot;: True or False, # Enables automatic node pool creation and deletion.
      &quot;resourceLimits&quot;: [ # Contains global constraints regarding minimum and maximum amount of resources in the cluster.
        { # Contains information about amount of some resource in the cluster. For memory, value should be in GB.
          &quot;maximum&quot;: &quot;A String&quot;, # Maximum amount of the resource in the cluster.
          &quot;minimum&quot;: &quot;A String&quot;, # Minimum amount of the resource in the cluster.
          &quot;resourceType&quot;: &quot;A String&quot;, # Resource name &quot;cpu&quot;, &quot;memory&quot; or gpu-specific string.
        },
      ],
    },
    &quot;desiredCompliancePostureConfig&quot;: { # CompliancePostureConfig defines the settings needed to enable/disable features for the Compliance Posture. # Enable/Disable Compliance Posture features for the cluster.
      &quot;complianceStandards&quot;: [ # List of enabled compliance standards.
        { # Defines the details of a compliance standard.
          &quot;standard&quot;: &quot;A String&quot;, # Name of the compliance standard.
        },
      ],
      &quot;mode&quot;: &quot;A String&quot;, # Defines the enablement mode for Compliance Posture.
    },
    &quot;desiredContainerdConfig&quot;: { # ContainerdConfig contains configuration to customize containerd. # The desired containerd config for the cluster.
      &quot;privateRegistryAccessConfig&quot;: { # PrivateRegistryAccessConfig contains access configuration for private container registries. # PrivateRegistryAccessConfig is used to configure access configuration for private container registries.
        &quot;certificateAuthorityDomainConfig&quot;: [ # Private registry access configuration.
          { # CertificateAuthorityDomainConfig configures one or more fully qualified domain names (FQDN) to a specific certificate.
            &quot;fqdns&quot;: [ # List of fully qualified domain names (FQDN). Specifying port is supported. Wildcards are NOT supported. Examples: - my.customdomain.com - 10.0.1.2:5000
              &quot;A String&quot;,
            ],
            &quot;gcpSecretManagerCertificateConfig&quot;: { # GCPSecretManagerCertificateConfig configures a secret from [Secret Manager](https://cloud.google.com/secret-manager). # Google Secret Manager (GCP) certificate configuration.
              &quot;secretUri&quot;: &quot;A String&quot;, # Secret URI, in the form &quot;projects/$PROJECT_ID/secrets/$SECRET_NAME/versions/$VERSION&quot;. Version can be fixed (e.g. &quot;2&quot;) or &quot;latest&quot;
            },
          },
        ],
        &quot;enabled&quot;: True or False, # Private registry access is enabled.
      },
      &quot;writableCgroups&quot;: { # Defines writable cgroups configuration. # Optional. WritableCgroups defines writable cgroups configuration for the node pool.
        &quot;enabled&quot;: True or False, # Optional. Whether writable cgroups is enabled.
      },
    },
    &quot;desiredControlPlaneEndpointsConfig&quot;: { # Configuration for all of the cluster&#x27;s control plane endpoints. # Control plane endpoints configuration.
      &quot;dnsEndpointConfig&quot;: { # Describes the configuration of a DNS endpoint. # DNS endpoint configuration.
        &quot;allowExternalTraffic&quot;: True or False, # Controls whether user traffic is allowed over this endpoint. Note that Google-managed services may still use the endpoint even if this is false.
        &quot;enableK8sCertsViaDns&quot;: True or False, # Controls whether the k8s certs auth is allowed via DNS.
        &quot;enableK8sTokensViaDns&quot;: True or False, # Controls whether the k8s token auth is allowed via DNS.
        &quot;endpoint&quot;: &quot;A String&quot;, # Output only. The cluster&#x27;s DNS endpoint configuration. A DNS format address. This is accessible from the public internet. Ex: uid.us-central1.gke.goog. Always present, but the behavior may change according to the value of DNSEndpointConfig.allow_external_traffic.
      },
      &quot;ipEndpointsConfig&quot;: { # IP endpoints configuration. # IP endpoints configuration.
        &quot;authorizedNetworksConfig&quot;: { # Configuration options for the master authorized networks feature. Enabled master authorized networks will disallow all external traffic to access Kubernetes master through HTTPS except traffic from the given CIDR blocks, Google Compute Engine Public IPs and Google Prod IPs. # Configuration of authorized networks. If enabled, restricts access to the control plane based on source IP. It is invalid to specify both Cluster.masterAuthorizedNetworksConfig and this field at the same time.
          &quot;cidrBlocks&quot;: [ # cidr_blocks define up to 50 external networks that could access Kubernetes master through HTTPS.
            { # CidrBlock contains an optional name and one CIDR block.
              &quot;cidrBlock&quot;: &quot;A String&quot;, # cidr_block must be specified in CIDR notation.
              &quot;displayName&quot;: &quot;A String&quot;, # display_name is an optional field for users to identify CIDR blocks.
            },
          ],
          &quot;enabled&quot;: True or False, # Whether or not master authorized networks is enabled.
          &quot;gcpPublicCidrsAccessEnabled&quot;: True or False, # Whether master is accessible via Google Compute Engine Public IP addresses.
          &quot;privateEndpointEnforcementEnabled&quot;: True or False, # Whether master authorized networks is enforced on private endpoint or not.
        },
        &quot;enablePublicEndpoint&quot;: True or False, # Controls whether the control plane allows access through a public IP. It is invalid to specify both PrivateClusterConfig.enablePrivateEndpoint and this field at the same time.
        &quot;enabled&quot;: True or False, # Controls whether to allow direct IP access.
        &quot;globalAccess&quot;: True or False, # Controls whether the control plane&#x27;s private endpoint is accessible from sources in other regions. It is invalid to specify both PrivateClusterMasterGlobalAccessConfig.enabled and this field at the same time.
        &quot;privateEndpoint&quot;: &quot;A String&quot;, # Output only. The internal IP address of this cluster&#x27;s control plane. Only populated if enabled.
        &quot;privateEndpointSubnetwork&quot;: &quot;A String&quot;, # Subnet to provision the master&#x27;s private endpoint during cluster creation. Specified in projects/*/regions/*/subnetworks/* format. It is invalid to specify both PrivateClusterConfig.privateEndpointSubnetwork and this field at the same time.
        &quot;publicEndpoint&quot;: &quot;A String&quot;, # Output only. The external IP address of this cluster&#x27;s control plane. Only populated if enabled.
      },
    },
    &quot;desiredCostManagementConfig&quot;: { # Configuration for fine-grained cost management feature. # The desired configuration for the fine-grained cost management feature.
      &quot;enabled&quot;: True or False, # Whether the feature is enabled or not.
    },
    &quot;desiredDatabaseEncryption&quot;: { # Configuration of etcd encryption. # Configuration of etcd encryption.
      &quot;currentState&quot;: &quot;A String&quot;, # Output only. The current state of etcd encryption.
      &quot;decryptionKeys&quot;: [ # Output only. Keys in use by the cluster for decrypting existing objects, in addition to the key in `key_name`. Each item is a CloudKMS key resource.
        &quot;A String&quot;,
      ],
      &quot;keyName&quot;: &quot;A String&quot;, # Name of CloudKMS key to use for the encryption of secrets in etcd. Ex. projects/my-project/locations/global/keyRings/my-ring/cryptoKeys/my-key
      &quot;lastOperationErrors&quot;: [ # Output only. Records errors seen during DatabaseEncryption update operations.
        { # OperationError records errors seen from CloudKMS keys encountered during updates to DatabaseEncryption configuration.
          &quot;errorMessage&quot;: &quot;A String&quot;, # Description of the error seen during the operation.
          &quot;keyName&quot;: &quot;A String&quot;, # CloudKMS key resource that had the error.
          &quot;timestamp&quot;: &quot;A String&quot;, # Time when the CloudKMS error was seen.
        },
      ],
      &quot;state&quot;: &quot;A String&quot;, # The desired state of etcd encryption.
    },
    &quot;desiredDatapathProvider&quot;: &quot;A String&quot;, # The desired datapath provider for the cluster.
    &quot;desiredDefaultEnablePrivateNodes&quot;: True or False, # Override the default setting of whether future created nodes have private IP addresses only, namely NetworkConfig.default_enable_private_nodes
    &quot;desiredDefaultSnatStatus&quot;: { # DefaultSnatStatus contains the desired state of whether default sNAT should be disabled on the cluster. # The desired status of whether to disable default sNAT for this cluster.
      &quot;disabled&quot;: True or False, # Disables cluster default sNAT rules.
    },
    &quot;desiredDisableL4LbFirewallReconciliation&quot;: True or False, # Enable/Disable L4 LB VPC firewall reconciliation for the cluster.
    &quot;desiredDnsConfig&quot;: { # DNSConfig contains the desired set of options for configuring clusterDNS. # DNSConfig contains clusterDNS config for this cluster.
      &quot;additiveVpcScopeDnsDomain&quot;: &quot;A String&quot;, # Optional. The domain used in Additive VPC scope.
      &quot;clusterDns&quot;: &quot;A String&quot;, # cluster_dns indicates which in-cluster DNS provider should be used.
      &quot;clusterDnsDomain&quot;: &quot;A String&quot;, # cluster_dns_domain is the suffix used for all cluster service records.
      &quot;clusterDnsScope&quot;: &quot;A String&quot;, # cluster_dns_scope indicates the scope of access to cluster DNS records.
    },
    &quot;desiredEnableCiliumClusterwideNetworkPolicy&quot;: True or False, # Enable/Disable Cilium Clusterwide Network Policy for the cluster.
    &quot;desiredEnableFqdnNetworkPolicy&quot;: True or False, # Enable/Disable FQDN Network Policy for the cluster.
    &quot;desiredEnableMultiNetworking&quot;: True or False, # Enable/Disable Multi-Networking for the cluster
    &quot;desiredEnablePrivateEndpoint&quot;: True or False, # Enable/Disable private endpoint for the cluster&#x27;s master. Deprecated: Use desired_control_plane_endpoints_config.ip_endpoints_config.enable_public_endpoint instead. Note that the value of enable_public_endpoint is reversed: if enable_private_endpoint is false, then enable_public_endpoint will be true.
    &quot;desiredEnterpriseConfig&quot;: { # DesiredEnterpriseConfig is a wrapper used for updating enterprise_config. Deprecated: GKE Enterprise features are now available without an Enterprise tier. # The desired enterprise configuration for the cluster. Deprecated: GKE Enterprise features are now available without an Enterprise tier.
      &quot;desiredTier&quot;: &quot;A String&quot;, # desired_tier specifies the desired tier of the cluster.
    },
    &quot;desiredFleet&quot;: { # Fleet is the fleet configuration for the cluster. # The desired fleet configuration for the cluster.
      &quot;membership&quot;: &quot;A String&quot;, # Output only. The full resource name of the registered fleet membership of the cluster, in the format `//gkehub.googleapis.com/projects/*/locations/*/memberships/*`.
      &quot;membershipType&quot;: &quot;A String&quot;, # The type of the cluster&#x27;s fleet membership.
      &quot;preRegistered&quot;: True or False, # Output only. Whether the cluster has been registered through the fleet API.
      &quot;project&quot;: &quot;A String&quot;, # The Fleet host project(project ID or project number) where this cluster will be registered to. This field cannot be changed after the cluster has been registered.
    },
    &quot;desiredGatewayApiConfig&quot;: { # GatewayAPIConfig contains the desired config of Gateway API on this cluster. # The desired config of Gateway API on this cluster.
      &quot;channel&quot;: &quot;A String&quot;, # The Gateway API release channel to use for Gateway API.
    },
    &quot;desiredGcfsConfig&quot;: { # GcfsConfig contains configurations of Google Container File System (image streaming). # The desired GCFS config for the cluster
      &quot;enabled&quot;: True or False, # Whether to use GCFS.
    },
    &quot;desiredIdentityServiceConfig&quot;: { # IdentityServiceConfig is configuration for Identity Service which allows customers to use external identity providers with the K8S API # The desired Identity Service component configuration.
      &quot;enabled&quot;: True or False, # Whether to enable the Identity Service component
    },
    &quot;desiredImageType&quot;: &quot;A String&quot;, # The desired image type for the node pool. NOTE: Set the &quot;desired_node_pool&quot; field as well.
    &quot;desiredInTransitEncryptionConfig&quot;: &quot;A String&quot;, # Specify the details of in-transit encryption.
    &quot;desiredIntraNodeVisibilityConfig&quot;: { # IntraNodeVisibilityConfig contains the desired config of the intra-node visibility on this cluster. # The desired config of Intra-node visibility.
      &quot;enabled&quot;: True or False, # Enables intra node visibility for this cluster.
    },
    &quot;desiredK8sBetaApis&quot;: { # K8sBetaAPIConfig , configuration for beta APIs # Desired Beta APIs to be enabled for cluster.
      &quot;enabledApis&quot;: [ # Enabled k8s beta APIs.
        &quot;A String&quot;,
      ],
    },
    &quot;desiredL4ilbSubsettingConfig&quot;: { # ILBSubsettingConfig contains the desired config of L4 Internal LoadBalancer subsetting on this cluster. # The desired L4 Internal Load Balancer Subsetting configuration.
      &quot;enabled&quot;: True or False, # Enables l4 ILB subsetting for this cluster.
    },
    &quot;desiredLocations&quot;: [ # The desired list of Google Compute Engine [zones](https://cloud.google.com/compute/docs/zones#available) in which the cluster&#x27;s nodes should be located. This list must always include the cluster&#x27;s primary zone. Warning: changing cluster locations will update the locations of all node pools and will result in nodes being added and/or removed.
      &quot;A String&quot;,
    ],
    &quot;desiredLoggingConfig&quot;: { # LoggingConfig is cluster logging configuration. # The desired logging configuration.
      &quot;componentConfig&quot;: { # LoggingComponentConfig is cluster logging component configuration. # Logging components configuration
        &quot;enableComponents&quot;: [ # Select components to collect logs. An empty set would disable all logging.
          &quot;A String&quot;,
        ],
      },
    },
    &quot;desiredLoggingService&quot;: &quot;A String&quot;, # The logging service the cluster should use to write logs. Currently available options: * `logging.googleapis.com/kubernetes` - The Cloud Logging service with a Kubernetes-native resource model * `logging.googleapis.com` - The legacy Cloud Logging service (no longer available as of GKE 1.15). * `none` - no logs will be exported from the cluster. If left as an empty string,`logging.googleapis.com/kubernetes` will be used for GKE 1.14+ or `logging.googleapis.com` for earlier versions.
    &quot;desiredMasterAuthorizedNetworksConfig&quot;: { # Configuration options for the master authorized networks feature. Enabled master authorized networks will disallow all external traffic to access Kubernetes master through HTTPS except traffic from the given CIDR blocks, Google Compute Engine Public IPs and Google Prod IPs. # The desired configuration options for master authorized networks feature. Deprecated: Use desired_control_plane_endpoints_config.ip_endpoints_config.authorized_networks_config instead.
      &quot;cidrBlocks&quot;: [ # cidr_blocks define up to 50 external networks that could access Kubernetes master through HTTPS.
        { # CidrBlock contains an optional name and one CIDR block.
          &quot;cidrBlock&quot;: &quot;A String&quot;, # cidr_block must be specified in CIDR notation.
          &quot;displayName&quot;: &quot;A String&quot;, # display_name is an optional field for users to identify CIDR blocks.
        },
      ],
      &quot;enabled&quot;: True or False, # Whether or not master authorized networks is enabled.
      &quot;gcpPublicCidrsAccessEnabled&quot;: True or False, # Whether master is accessible via Google Compute Engine Public IP addresses.
      &quot;privateEndpointEnforcementEnabled&quot;: True or False, # Whether master authorized networks is enforced on private endpoint or not.
    },
    &quot;desiredMasterVersion&quot;: &quot;A String&quot;, # The Kubernetes version to change the master to. Users may specify either explicit versions offered by Kubernetes Engine or version aliases, which have the following behavior: - &quot;latest&quot;: picks the highest valid Kubernetes version - &quot;1.X&quot;: picks the highest valid patch+gke.N patch in the 1.X version - &quot;1.X.Y&quot;: picks the highest valid gke.N patch in the 1.X.Y version - &quot;1.X.Y-gke.N&quot;: picks an explicit Kubernetes version - &quot;-&quot;: picks the default Kubernetes version
    &quot;desiredMeshCertificates&quot;: { # Configuration for issuance of mTLS keys and certificates to Kubernetes pods. # Configuration for issuance of mTLS keys and certificates to Kubernetes pods.
      &quot;enableCertificates&quot;: True or False, # enable_certificates controls issuance of workload mTLS certificates. If set, the GKE Workload Identity Certificates controller and node agent will be deployed in the cluster, which can then be configured by creating a WorkloadCertificateConfig Custom Resource. Requires Workload Identity (workload_pool must be non-empty).
    },
    &quot;desiredMonitoringConfig&quot;: { # MonitoringConfig is cluster monitoring configuration. # The desired monitoring configuration.
      &quot;advancedDatapathObservabilityConfig&quot;: { # AdvancedDatapathObservabilityConfig specifies configuration of observability features of advanced datapath. # Configuration of Advanced Datapath Observability features.
        &quot;enableMetrics&quot;: True or False, # Expose flow metrics on nodes
        &quot;enableRelay&quot;: True or False, # Enable Relay component
        &quot;relayMode&quot;: &quot;A String&quot;, # Method used to make Relay available
      },
      &quot;componentConfig&quot;: { # MonitoringComponentConfig is cluster monitoring component configuration. # Monitoring components configuration
        &quot;enableComponents&quot;: [ # Select components to collect metrics. An empty set would disable all monitoring.
          &quot;A String&quot;,
        ],
      },
      &quot;managedPrometheusConfig&quot;: { # ManagedPrometheusConfig defines the configuration for Google Cloud Managed Service for Prometheus. # Enable Google Cloud Managed Service for Prometheus in the cluster.
        &quot;autoMonitoringConfig&quot;: { # AutoMonitoringConfig defines the configuration for GKE Workload Auto-Monitoring. # GKE Workload Auto-Monitoring Configuration.
          &quot;scope&quot;: &quot;A String&quot;, # Scope for GKE Workload Auto-Monitoring.
        },
        &quot;enabled&quot;: True or False, # Enable Managed Collection.
      },
    },
    &quot;desiredMonitoringService&quot;: &quot;A String&quot;, # The monitoring service the cluster should use to write metrics. Currently available options: * `monitoring.googleapis.com/kubernetes` - The Cloud Monitoring service with a Kubernetes-native resource model * `monitoring.googleapis.com` - The legacy Cloud Monitoring service (no longer available as of GKE 1.15). * `none` - No metrics will be exported from the cluster. If left as an empty string,`monitoring.googleapis.com/kubernetes` will be used for GKE 1.14+ or `monitoring.googleapis.com` for earlier versions.
    &quot;desiredNetworkPerformanceConfig&quot;: { # Configuration of network bandwidth tiers # The desired network performance config.
      &quot;totalEgressBandwidthTier&quot;: &quot;A String&quot;, # Specifies the total network bandwidth tier for NodePools in the cluster.
    },
    &quot;desiredNetworkTierConfig&quot;: { # NetworkTierConfig contains network tier information. # The desired network tier configuration for the cluster.
      &quot;networkTier&quot;: &quot;A String&quot;, # Network tier configuration.
    },
    &quot;desiredNodeKubeletConfig&quot;: { # Node kubelet configs. # The desired node kubelet config for the cluster.
      &quot;allowedUnsafeSysctls&quot;: [ # Optional. Defines a comma-separated allowlist of unsafe sysctls or sysctl patterns (ending in `*`). The unsafe namespaced sysctl groups are `kernel.shm*`, `kernel.msg*`, `kernel.sem`, `fs.mqueue.*`, and `net.*`. Leaving this allowlist empty means they cannot be set on Pods. To allow certain sysctls or sysctl patterns to be set on Pods, list them separated by commas. For example: `kernel.msg*,net.ipv4.route.min_pmtu`. See https://kubernetes.io/docs/tasks/administer-cluster/sysctl-cluster/ for more details.
        &quot;A String&quot;,
      ],
      &quot;containerLogMaxFiles&quot;: 42, # Optional. Defines the maximum number of container log files that can be present for a container. See https://kubernetes.io/docs/concepts/cluster-administration/logging/#log-rotation The value must be an integer between 2 and 10, inclusive. The default value is 5 if unspecified.
      &quot;containerLogMaxSize&quot;: &quot;A String&quot;, # Optional. Defines the maximum size of the container log file before it is rotated. See https://kubernetes.io/docs/concepts/cluster-administration/logging/#log-rotation Valid format is positive number + unit, e.g. 100Ki, 10Mi. Valid units are Ki, Mi, Gi. The value must be between 10Mi and 500Mi, inclusive. Note that the total container log size (container_log_max_size * container_log_max_files) cannot exceed 1% of the total storage of the node, to avoid disk pressure caused by log files. The default value is 10Mi if unspecified.
      &quot;cpuCfsQuota&quot;: True or False, # 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 &#x27;true&#x27; if unspecified.
      &quot;cpuCfsQuotaPeriod&quot;: &quot;A String&quot;, # Set the CPU CFS quota period value &#x27;cpu.cfs_period_us&#x27;. The string must be a sequence of decimal numbers, each with optional fraction and a unit suffix, such as &quot;300ms&quot;. Valid time units are &quot;ns&quot;, &quot;us&quot; (or &quot;µs&quot;), &quot;ms&quot;, &quot;s&quot;, &quot;m&quot;, &quot;h&quot;. The value must be a positive duration between 1ms and 1 second, inclusive.
      &quot;cpuManagerPolicy&quot;: &quot;A String&quot;, # Control the CPU management policy on the node. See https://kubernetes.io/docs/tasks/administer-cluster/cpu-management-policies/ The following values are allowed. * &quot;none&quot;: the default, which represents the existing scheduling behavior. * &quot;static&quot;: allows pods with certain resource characteristics to be granted increased CPU affinity and exclusivity on the node. The default value is &#x27;none&#x27; if unspecified.
      &quot;evictionMaxPodGracePeriodSeconds&quot;: 42, # Optional. eviction_max_pod_grace_period_seconds is the maximum allowed grace period (in seconds) to use when terminating pods in response to a soft eviction threshold being met. This value effectively caps the Pod&#x27;s terminationGracePeriodSeconds value during soft evictions. Default: 0. Range: [0, 300].
      &quot;evictionMinimumReclaim&quot;: { # Eviction minimum reclaims are the resource amounts of minimum reclaims for each eviction signal. # Optional. eviction_minimum_reclaim is a map of signal names to quantities that defines minimum reclaims, which describe the minimum amount of a given resource the kubelet will reclaim when performing a pod eviction while that resource is under pressure.
        &quot;imagefsAvailable&quot;: &quot;A String&quot;, # Optional. Minimum reclaim for eviction due to imagefs available signal. Only take percentage value for now. Sample format: &quot;10%&quot;. Must be &lt;=10%. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
        &quot;imagefsInodesFree&quot;: &quot;A String&quot;, # Optional. Minimum reclaim for eviction due to imagefs inodes free signal. Only take percentage value for now. Sample format: &quot;10%&quot;. Must be &lt;=10%. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
        &quot;memoryAvailable&quot;: &quot;A String&quot;, # Optional. Minimum reclaim for eviction due to memory available signal. Only take percentage value for now. Sample format: &quot;10%&quot;. Must be &lt;=10%. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
        &quot;nodefsAvailable&quot;: &quot;A String&quot;, # Optional. Minimum reclaim for eviction due to nodefs available signal. Only take percentage value for now. Sample format: &quot;10%&quot;. Must be &lt;=10%. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
        &quot;nodefsInodesFree&quot;: &quot;A String&quot;, # Optional. Minimum reclaim for eviction due to nodefs inodes free signal. Only take percentage value for now. Sample format: &quot;10%&quot;. Must be &lt;=10%. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
        &quot;pidAvailable&quot;: &quot;A String&quot;, # Optional. Minimum reclaim for eviction due to pid available signal. Only take percentage value for now. Sample format: &quot;10%&quot;. Must be &lt;=10%. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
      },
      &quot;evictionSoft&quot;: { # Eviction signals are the current state of a particular resource at a specific point in time. The kubelet uses eviction signals to make eviction decisions by comparing the signals to eviction thresholds, which are the minimum amount of the resource that should be available on the node. # Optional. eviction_soft is a map of signal names to quantities that defines soft eviction thresholds. Each signal is compared to its corresponding threshold to determine if a pod eviction should occur.
        &quot;imagefsAvailable&quot;: &quot;A String&quot;, # Optional. Amount of storage available on filesystem that container runtime uses for storing images layers. If the container filesystem and image filesystem are not separate, then imagefs can store both image layers and writeable layers. Defines the amount of &quot;imagefs.available&quot; signal in kubelet. Default is unset, if not specified in the kubelet config. It takses percentage value for now. Sample format: &quot;30%&quot;. Must be &gt;= 15% and &lt;= 50%. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
        &quot;imagefsInodesFree&quot;: &quot;A String&quot;, # Optional. Amount of inodes available on filesystem that container runtime uses for storing images layers. Defines the amount of &quot;imagefs.inodesFree&quot; signal in kubelet. Default is unset, if not specified in the kubelet config. Linux only. It takses percentage value for now. Sample format: &quot;30%&quot;. Must be &gt;= 5% and &lt;= 50%. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
        &quot;memoryAvailable&quot;: &quot;A String&quot;, # Optional. Memory available (i.e. capacity - workingSet), in bytes. Defines the amount of &quot;memory.available&quot; signal in kubelet. Default is unset, if not specified in the kubelet config. Format: positive number + unit, e.g. 100Ki, 10Mi, 5Gi. Valid units are Ki, Mi, Gi. Must be &gt;= 100Mi and &lt;= 50% of the node&#x27;s memory. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
        &quot;nodefsAvailable&quot;: &quot;A String&quot;, # Optional. Amount of storage available on filesystem that kubelet uses for volumes, daemon logs, etc. Defines the amount of &quot;nodefs.available&quot; signal in kubelet. Default is unset, if not specified in the kubelet config. It takses percentage value for now. Sample format: &quot;30%&quot;. Must be &gt;= 10% and &lt;= 50%. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
        &quot;nodefsInodesFree&quot;: &quot;A String&quot;, # Optional. Amount of inodes available on filesystem that kubelet uses for volumes, daemon logs, etc. Defines the amount of &quot;nodefs.inodesFree&quot; signal in kubelet. Default is unset, if not specified in the kubelet config. Linux only. It takses percentage value for now. Sample format: &quot;30%&quot;. Must be &gt;= 5% and &lt;= 50%. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
        &quot;pidAvailable&quot;: &quot;A String&quot;, # Optional. Amount of PID available for pod allocation. Defines the amount of &quot;pid.available&quot; signal in kubelet. Default is unset, if not specified in the kubelet config. It takses percentage value for now. Sample format: &quot;30%&quot;. Must be &gt;= 10% and &lt;= 50%. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
      },
      &quot;evictionSoftGracePeriod&quot;: { # Eviction grace periods are grace periods for each eviction signal. # Optional. eviction_soft_grace_period is a map of signal names to quantities that defines grace periods for each soft eviction signal. The grace period is the amount of time that a pod must be under pressure before an eviction occurs.
        &quot;imagefsAvailable&quot;: &quot;A String&quot;, # Optional. Grace period for eviction due to imagefs available signal. Sample format: &quot;10s&quot;. Must be &gt;= 0. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
        &quot;imagefsInodesFree&quot;: &quot;A String&quot;, # Optional. Grace period for eviction due to imagefs inodes free signal. Sample format: &quot;10s&quot;. Must be &gt;= 0. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
        &quot;memoryAvailable&quot;: &quot;A String&quot;, # Optional. Grace period for eviction due to memory available signal. Sample format: &quot;10s&quot;. Must be &gt;= 0. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
        &quot;nodefsAvailable&quot;: &quot;A String&quot;, # Optional. Grace period for eviction due to nodefs available signal. Sample format: &quot;10s&quot;. Must be &gt;= 0. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
        &quot;nodefsInodesFree&quot;: &quot;A String&quot;, # Optional. Grace period for eviction due to nodefs inodes free signal. Sample format: &quot;10s&quot;. Must be &gt;= 0. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
        &quot;pidAvailable&quot;: &quot;A String&quot;, # Optional. Grace period for eviction due to pid available signal. Sample format: &quot;10s&quot;. Must be &gt;= 0. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
      },
      &quot;imageGcHighThresholdPercent&quot;: 42, # Optional. Defines the percent of disk usage after which image garbage collection is always run. The percent is calculated as this field value out of 100. The value must be between 10 and 85, inclusive and greater than image_gc_low_threshold_percent. The default value is 85 if unspecified.
      &quot;imageGcLowThresholdPercent&quot;: 42, # Optional. Defines the percent of disk usage before which image garbage collection is never run. Lowest disk usage to garbage collect to. The percent is calculated as this field value out of 100. The value must be between 10 and 85, inclusive and smaller than image_gc_high_threshold_percent. The default value is 80 if unspecified.
      &quot;imageMaximumGcAge&quot;: &quot;A String&quot;, # Optional. Defines the maximum age an image can be unused before it is garbage collected. The string must be a sequence of decimal numbers, each with optional fraction and a unit suffix, such as &quot;300s&quot;, &quot;1.5h&quot;, and &quot;2h45m&quot;. Valid time units are &quot;ns&quot;, &quot;us&quot; (or &quot;µs&quot;), &quot;ms&quot;, &quot;s&quot;, &quot;m&quot;, &quot;h&quot;. The value must be a positive duration greater than image_minimum_gc_age or &quot;0s&quot;. The default value is &quot;0s&quot; if unspecified, which disables this field, meaning images won&#x27;t be garbage collected based on being unused for too long.
      &quot;imageMinimumGcAge&quot;: &quot;A String&quot;, # Optional. Defines the minimum age for an unused image before it is garbage collected. The string must be a sequence of decimal numbers, each with optional fraction and a unit suffix, such as &quot;300s&quot;, &quot;1.5h&quot;, and &quot;2h45m&quot;. Valid time units are &quot;ns&quot;, &quot;us&quot; (or &quot;µs&quot;), &quot;ms&quot;, &quot;s&quot;, &quot;m&quot;, &quot;h&quot;. The value must be a positive duration less than or equal to 2 minutes. The default value is &quot;2m0s&quot; if unspecified.
      &quot;insecureKubeletReadonlyPortEnabled&quot;: True or False, # Enable or disable Kubelet read only port.
      &quot;maxParallelImagePulls&quot;: 42, # Optional. Defines the maximum number of image pulls in parallel. The range is 2 to 5, inclusive. The default value is 2 or 3 depending on the disk type. See https://kubernetes.io/docs/concepts/containers/images/#maximum-parallel-image-pulls for more details.
      &quot;memoryManager&quot;: { # The option enables the Kubernetes NUMA-aware Memory Manager feature. Detailed description about the feature can be found [here](https://kubernetes.io/docs/tasks/administer-cluster/memory-manager/). # Optional. Controls NUMA-aware Memory Manager configuration on the node. For more information, see: https://kubernetes.io/docs/tasks/administer-cluster/memory-manager/
        &quot;policy&quot;: &quot;A String&quot;, # Controls the memory management policy on the Node. See https://kubernetes.io/docs/tasks/administer-cluster/memory-manager/#policies The following values are allowed. * &quot;none&quot; * &quot;static&quot; The default value is &#x27;none&#x27; if unspecified.
      },
      &quot;podPidsLimit&quot;: &quot;A String&quot;, # Set the Pod PID limits. See https://kubernetes.io/docs/concepts/policy/pid-limiting/#pod-pid-limits Controls the maximum number of processes allowed to run in a pod. The value must be greater than or equal to 1024 and less than 4194304.
      &quot;singleProcessOomKill&quot;: True or False, # Optional. Defines whether to enable single process OOM killer. If true, will prevent the memory.oom.group flag from being set for container cgroups in cgroups v2. This causes processes in the container to be OOM killed individually instead of as a group.
      &quot;topologyManager&quot;: { # TopologyManager defines the configuration options for Topology Manager feature. See https://kubernetes.io/docs/tasks/administer-cluster/topology-manager/ # Optional. Controls Topology Manager configuration on the node. For more information, see: https://kubernetes.io/docs/tasks/administer-cluster/topology-manager/
        &quot;policy&quot;: &quot;A String&quot;, # Configures the strategy for resource alignment. Allowed values are: * none: the default policy, and does not perform any topology alignment. * restricted: the topology manager stores the preferred NUMA node affinity for the container, and will reject the pod if the affinity if not preferred. * best-effort: the topology manager stores the preferred NUMA node affinity for the container. If the affinity is not preferred, the topology manager will admit the pod to the node anyway. * single-numa-node: the topology manager determines if the single NUMA node affinity is possible. If it is, Topology Manager will store this and the Hint Providers can then use this information when making the resource allocation decision. If, however, this is not possible then the Topology Manager will reject the pod from the node. This will result in a pod in a Terminated state with a pod admission failure. The default policy value is &#x27;none&#x27; if unspecified. Details about each strategy can be found [here](https://kubernetes.io/docs/tasks/administer-cluster/topology-manager/#topology-manager-policies).
        &quot;scope&quot;: &quot;A String&quot;, # The Topology Manager aligns resources in following scopes: * container * pod The default scope is &#x27;container&#x27; if unspecified. See https://kubernetes.io/docs/tasks/administer-cluster/topology-manager/#topology-manager-scopes
      },
    },
    &quot;desiredNodePoolAutoConfigKubeletConfig&quot;: { # Node kubelet configs. # The desired node kubelet config for all auto-provisioned node pools in autopilot clusters and node auto-provisioning enabled clusters.
      &quot;allowedUnsafeSysctls&quot;: [ # Optional. Defines a comma-separated allowlist of unsafe sysctls or sysctl patterns (ending in `*`). The unsafe namespaced sysctl groups are `kernel.shm*`, `kernel.msg*`, `kernel.sem`, `fs.mqueue.*`, and `net.*`. Leaving this allowlist empty means they cannot be set on Pods. To allow certain sysctls or sysctl patterns to be set on Pods, list them separated by commas. For example: `kernel.msg*,net.ipv4.route.min_pmtu`. See https://kubernetes.io/docs/tasks/administer-cluster/sysctl-cluster/ for more details.
        &quot;A String&quot;,
      ],
      &quot;containerLogMaxFiles&quot;: 42, # Optional. Defines the maximum number of container log files that can be present for a container. See https://kubernetes.io/docs/concepts/cluster-administration/logging/#log-rotation The value must be an integer between 2 and 10, inclusive. The default value is 5 if unspecified.
      &quot;containerLogMaxSize&quot;: &quot;A String&quot;, # Optional. Defines the maximum size of the container log file before it is rotated. See https://kubernetes.io/docs/concepts/cluster-administration/logging/#log-rotation Valid format is positive number + unit, e.g. 100Ki, 10Mi. Valid units are Ki, Mi, Gi. The value must be between 10Mi and 500Mi, inclusive. Note that the total container log size (container_log_max_size * container_log_max_files) cannot exceed 1% of the total storage of the node, to avoid disk pressure caused by log files. The default value is 10Mi if unspecified.
      &quot;cpuCfsQuota&quot;: True or False, # 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 &#x27;true&#x27; if unspecified.
      &quot;cpuCfsQuotaPeriod&quot;: &quot;A String&quot;, # Set the CPU CFS quota period value &#x27;cpu.cfs_period_us&#x27;. The string must be a sequence of decimal numbers, each with optional fraction and a unit suffix, such as &quot;300ms&quot;. Valid time units are &quot;ns&quot;, &quot;us&quot; (or &quot;µs&quot;), &quot;ms&quot;, &quot;s&quot;, &quot;m&quot;, &quot;h&quot;. The value must be a positive duration between 1ms and 1 second, inclusive.
      &quot;cpuManagerPolicy&quot;: &quot;A String&quot;, # Control the CPU management policy on the node. See https://kubernetes.io/docs/tasks/administer-cluster/cpu-management-policies/ The following values are allowed. * &quot;none&quot;: the default, which represents the existing scheduling behavior. * &quot;static&quot;: allows pods with certain resource characteristics to be granted increased CPU affinity and exclusivity on the node. The default value is &#x27;none&#x27; if unspecified.
      &quot;evictionMaxPodGracePeriodSeconds&quot;: 42, # Optional. eviction_max_pod_grace_period_seconds is the maximum allowed grace period (in seconds) to use when terminating pods in response to a soft eviction threshold being met. This value effectively caps the Pod&#x27;s terminationGracePeriodSeconds value during soft evictions. Default: 0. Range: [0, 300].
      &quot;evictionMinimumReclaim&quot;: { # Eviction minimum reclaims are the resource amounts of minimum reclaims for each eviction signal. # Optional. eviction_minimum_reclaim is a map of signal names to quantities that defines minimum reclaims, which describe the minimum amount of a given resource the kubelet will reclaim when performing a pod eviction while that resource is under pressure.
        &quot;imagefsAvailable&quot;: &quot;A String&quot;, # Optional. Minimum reclaim for eviction due to imagefs available signal. Only take percentage value for now. Sample format: &quot;10%&quot;. Must be &lt;=10%. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
        &quot;imagefsInodesFree&quot;: &quot;A String&quot;, # Optional. Minimum reclaim for eviction due to imagefs inodes free signal. Only take percentage value for now. Sample format: &quot;10%&quot;. Must be &lt;=10%. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
        &quot;memoryAvailable&quot;: &quot;A String&quot;, # Optional. Minimum reclaim for eviction due to memory available signal. Only take percentage value for now. Sample format: &quot;10%&quot;. Must be &lt;=10%. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
        &quot;nodefsAvailable&quot;: &quot;A String&quot;, # Optional. Minimum reclaim for eviction due to nodefs available signal. Only take percentage value for now. Sample format: &quot;10%&quot;. Must be &lt;=10%. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
        &quot;nodefsInodesFree&quot;: &quot;A String&quot;, # Optional. Minimum reclaim for eviction due to nodefs inodes free signal. Only take percentage value for now. Sample format: &quot;10%&quot;. Must be &lt;=10%. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
        &quot;pidAvailable&quot;: &quot;A String&quot;, # Optional. Minimum reclaim for eviction due to pid available signal. Only take percentage value for now. Sample format: &quot;10%&quot;. Must be &lt;=10%. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
      },
      &quot;evictionSoft&quot;: { # Eviction signals are the current state of a particular resource at a specific point in time. The kubelet uses eviction signals to make eviction decisions by comparing the signals to eviction thresholds, which are the minimum amount of the resource that should be available on the node. # Optional. eviction_soft is a map of signal names to quantities that defines soft eviction thresholds. Each signal is compared to its corresponding threshold to determine if a pod eviction should occur.
        &quot;imagefsAvailable&quot;: &quot;A String&quot;, # Optional. Amount of storage available on filesystem that container runtime uses for storing images layers. If the container filesystem and image filesystem are not separate, then imagefs can store both image layers and writeable layers. Defines the amount of &quot;imagefs.available&quot; signal in kubelet. Default is unset, if not specified in the kubelet config. It takses percentage value for now. Sample format: &quot;30%&quot;. Must be &gt;= 15% and &lt;= 50%. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
        &quot;imagefsInodesFree&quot;: &quot;A String&quot;, # Optional. Amount of inodes available on filesystem that container runtime uses for storing images layers. Defines the amount of &quot;imagefs.inodesFree&quot; signal in kubelet. Default is unset, if not specified in the kubelet config. Linux only. It takses percentage value for now. Sample format: &quot;30%&quot;. Must be &gt;= 5% and &lt;= 50%. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
        &quot;memoryAvailable&quot;: &quot;A String&quot;, # Optional. Memory available (i.e. capacity - workingSet), in bytes. Defines the amount of &quot;memory.available&quot; signal in kubelet. Default is unset, if not specified in the kubelet config. Format: positive number + unit, e.g. 100Ki, 10Mi, 5Gi. Valid units are Ki, Mi, Gi. Must be &gt;= 100Mi and &lt;= 50% of the node&#x27;s memory. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
        &quot;nodefsAvailable&quot;: &quot;A String&quot;, # Optional. Amount of storage available on filesystem that kubelet uses for volumes, daemon logs, etc. Defines the amount of &quot;nodefs.available&quot; signal in kubelet. Default is unset, if not specified in the kubelet config. It takses percentage value for now. Sample format: &quot;30%&quot;. Must be &gt;= 10% and &lt;= 50%. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
        &quot;nodefsInodesFree&quot;: &quot;A String&quot;, # Optional. Amount of inodes available on filesystem that kubelet uses for volumes, daemon logs, etc. Defines the amount of &quot;nodefs.inodesFree&quot; signal in kubelet. Default is unset, if not specified in the kubelet config. Linux only. It takses percentage value for now. Sample format: &quot;30%&quot;. Must be &gt;= 5% and &lt;= 50%. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
        &quot;pidAvailable&quot;: &quot;A String&quot;, # Optional. Amount of PID available for pod allocation. Defines the amount of &quot;pid.available&quot; signal in kubelet. Default is unset, if not specified in the kubelet config. It takses percentage value for now. Sample format: &quot;30%&quot;. Must be &gt;= 10% and &lt;= 50%. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
      },
      &quot;evictionSoftGracePeriod&quot;: { # Eviction grace periods are grace periods for each eviction signal. # Optional. eviction_soft_grace_period is a map of signal names to quantities that defines grace periods for each soft eviction signal. The grace period is the amount of time that a pod must be under pressure before an eviction occurs.
        &quot;imagefsAvailable&quot;: &quot;A String&quot;, # Optional. Grace period for eviction due to imagefs available signal. Sample format: &quot;10s&quot;. Must be &gt;= 0. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
        &quot;imagefsInodesFree&quot;: &quot;A String&quot;, # Optional. Grace period for eviction due to imagefs inodes free signal. Sample format: &quot;10s&quot;. Must be &gt;= 0. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
        &quot;memoryAvailable&quot;: &quot;A String&quot;, # Optional. Grace period for eviction due to memory available signal. Sample format: &quot;10s&quot;. Must be &gt;= 0. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
        &quot;nodefsAvailable&quot;: &quot;A String&quot;, # Optional. Grace period for eviction due to nodefs available signal. Sample format: &quot;10s&quot;. Must be &gt;= 0. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
        &quot;nodefsInodesFree&quot;: &quot;A String&quot;, # Optional. Grace period for eviction due to nodefs inodes free signal. Sample format: &quot;10s&quot;. Must be &gt;= 0. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
        &quot;pidAvailable&quot;: &quot;A String&quot;, # Optional. Grace period for eviction due to pid available signal. Sample format: &quot;10s&quot;. Must be &gt;= 0. See https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#eviction-signals
      },
      &quot;imageGcHighThresholdPercent&quot;: 42, # Optional. Defines the percent of disk usage after which image garbage collection is always run. The percent is calculated as this field value out of 100. The value must be between 10 and 85, inclusive and greater than image_gc_low_threshold_percent. The default value is 85 if unspecified.
      &quot;imageGcLowThresholdPercent&quot;: 42, # Optional. Defines the percent of disk usage before which image garbage collection is never run. Lowest disk usage to garbage collect to. The percent is calculated as this field value out of 100. The value must be between 10 and 85, inclusive and smaller than image_gc_high_threshold_percent. The default value is 80 if unspecified.
      &quot;imageMaximumGcAge&quot;: &quot;A String&quot;, # Optional. Defines the maximum age an image can be unused before it is garbage collected. The string must be a sequence of decimal numbers, each with optional fraction and a unit suffix, such as &quot;300s&quot;, &quot;1.5h&quot;, and &quot;2h45m&quot;. Valid time units are &quot;ns&quot;, &quot;us&quot; (or &quot;µs&quot;), &quot;ms&quot;, &quot;s&quot;, &quot;m&quot;, &quot;h&quot;. The value must be a positive duration greater than image_minimum_gc_age or &quot;0s&quot;. The default value is &quot;0s&quot; if unspecified, which disables this field, meaning images won&#x27;t be garbage collected based on being unused for too long.
      &quot;imageMinimumGcAge&quot;: &quot;A String&quot;, # Optional. Defines the minimum age for an unused image before it is garbage collected. The string must be a sequence of decimal numbers, each with optional fraction and a unit suffix, such as &quot;300s&quot;, &quot;1.5h&quot;, and &quot;2h45m&quot;. Valid time units are &quot;ns&quot;, &quot;us&quot; (or &quot;µs&quot;), &quot;ms&quot;, &quot;s&quot;, &quot;m&quot;, &quot;h&quot;. The value must be a positive duration less than or equal to 2 minutes. The default value is &quot;2m0s&quot; if unspecified.
      &quot;insecureKubeletReadonlyPortEnabled&quot;: True or False, # Enable or disable Kubelet read only port.
      &quot;maxParallelImagePulls&quot;: 42, # Optional. Defines the maximum number of image pulls in parallel. The range is 2 to 5, inclusive. The default value is 2 or 3 depending on the disk type. See https://kubernetes.io/docs/concepts/containers/images/#maximum-parallel-image-pulls for more details.
      &quot;memoryManager&quot;: { # The option enables the Kubernetes NUMA-aware Memory Manager feature. Detailed description about the feature can be found [here](https://kubernetes.io/docs/tasks/administer-cluster/memory-manager/). # Optional. Controls NUMA-aware Memory Manager configuration on the node. For more information, see: https://kubernetes.io/docs/tasks/administer-cluster/memory-manager/
        &quot;policy&quot;: &quot;A String&quot;, # Controls the memory management policy on the Node. See https://kubernetes.io/docs/tasks/administer-cluster/memory-manager/#policies The following values are allowed. * &quot;none&quot; * &quot;static&quot; The default value is &#x27;none&#x27; if unspecified.
      },
      &quot;podPidsLimit&quot;: &quot;A String&quot;, # Set the Pod PID limits. See https://kubernetes.io/docs/concepts/policy/pid-limiting/#pod-pid-limits Controls the maximum number of processes allowed to run in a pod. The value must be greater than or equal to 1024 and less than 4194304.
      &quot;singleProcessOomKill&quot;: True or False, # Optional. Defines whether to enable single process OOM killer. If true, will prevent the memory.oom.group flag from being set for container cgroups in cgroups v2. This causes processes in the container to be OOM killed individually instead of as a group.
      &quot;topologyManager&quot;: { # TopologyManager defines the configuration options for Topology Manager feature. See https://kubernetes.io/docs/tasks/administer-cluster/topology-manager/ # Optional. Controls Topology Manager configuration on the node. For more information, see: https://kubernetes.io/docs/tasks/administer-cluster/topology-manager/
        &quot;policy&quot;: &quot;A String&quot;, # Configures the strategy for resource alignment. Allowed values are: * none: the default policy, and does not perform any topology alignment. * restricted: the topology manager stores the preferred NUMA node affinity for the container, and will reject the pod if the affinity if not preferred. * best-effort: the topology manager stores the preferred NUMA node affinity for the container. If the affinity is not preferred, the topology manager will admit the pod to the node anyway. * single-numa-node: the topology manager determines if the single NUMA node affinity is possible. If it is, Topology Manager will store this and the Hint Providers can then use this information when making the resource allocation decision. If, however, this is not possible then the Topology Manager will reject the pod from the node. This will result in a pod in a Terminated state with a pod admission failure. The default policy value is &#x27;none&#x27; if unspecified. Details about each strategy can be found [here](https://kubernetes.io/docs/tasks/administer-cluster/topology-manager/#topology-manager-policies).
        &quot;scope&quot;: &quot;A String&quot;, # The Topology Manager aligns resources in following scopes: * container * pod The default scope is &#x27;container&#x27; if unspecified. See https://kubernetes.io/docs/tasks/administer-cluster/topology-manager/#topology-manager-scopes
      },
    },
    &quot;desiredNodePoolAutoConfigLinuxNodeConfig&quot;: { # Parameters that can be configured on Linux nodes. # The desired Linux node config for all auto-provisioned node pools in autopilot clusters and node auto-provisioning enabled clusters. Currently only `cgroup_mode` can be set here.
      &quot;cgroupMode&quot;: &quot;A String&quot;, # cgroup_mode specifies the cgroup mode to be used on the node.
      &quot;hugepages&quot;: { # Hugepages amount in both 2m and 1g size # Optional. Amounts for 2M and 1G hugepages
        &quot;hugepageSize1g&quot;: 42, # Optional. Amount of 1G hugepages
        &quot;hugepageSize2m&quot;: 42, # Optional. Amount of 2M hugepages
      },
      &quot;nodeKernelModuleLoading&quot;: { # Configuration for kernel module loading on nodes. # Optional. Configuration for kernel module loading on nodes. When enabled, the node pool will be provisioned with a Container-Optimized OS image that enforces kernel module signature verification.
        &quot;policy&quot;: &quot;A String&quot;, # Set the node module loading policy for nodes in the node pool.
      },
      &quot;sysctls&quot;: { # The Linux kernel parameters to be applied to the nodes and all pods running on the nodes. The following parameters are supported. net.core.busy_poll net.core.busy_read net.core.netdev_max_backlog net.core.rmem_max net.core.rmem_default 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 net.ipv4.tcp_max_orphans net.netfilter.nf_conntrack_max net.netfilter.nf_conntrack_buckets net.netfilter.nf_conntrack_tcp_timeout_close_wait net.netfilter.nf_conntrack_tcp_timeout_time_wait net.netfilter.nf_conntrack_tcp_timeout_established net.netfilter.nf_conntrack_acct kernel.shmmni kernel.shmmax kernel.shmall fs.aio-max-nr fs.file-max fs.inotify.max_user_instances fs.inotify.max_user_watches fs.nr_open vm.dirty_background_ratio vm.dirty_expire_centisecs vm.dirty_ratio vm.dirty_writeback_centisecs vm.max_map_count vm.overcommit_memory vm.overcommit_ratio vm.vfs_cache_pressure vm.swappiness vm.watermark_scale_factor vm.min_free_kbytes
        &quot;a_key&quot;: &quot;A String&quot;,
      },
      &quot;transparentHugepageDefrag&quot;: &quot;A String&quot;, # Optional. Defines the transparent hugepage defrag configuration on the node. VM hugepage allocation can be managed by either limiting defragmentation for delayed allocation or skipping it entirely for immediate allocation only. See https://docs.kernel.org/admin-guide/mm/transhuge.html for more details.
      &quot;transparentHugepageEnabled&quot;: &quot;A String&quot;, # Optional. Transparent hugepage support for anonymous memory can be entirely disabled (mostly for debugging purposes) or only enabled inside MADV_HUGEPAGE regions (to avoid the risk of consuming more memory resources) or enabled system wide. See https://docs.kernel.org/admin-guide/mm/transhuge.html for more details.
    },
    &quot;desiredNodePoolAutoConfigNetworkTags&quot;: { # Collection of Compute Engine network tags that can be applied to a node&#x27;s underlying VM instance. # The desired network tags that apply to all auto-provisioned node pools in autopilot clusters and node auto-provisioning enabled clusters.
      &quot;tags&quot;: [ # List of network tags.
        &quot;A String&quot;,
      ],
    },
    &quot;desiredNodePoolAutoConfigResourceManagerTags&quot;: { # A map of resource manager tag keys and values to be attached to the nodes for managing Compute Engine firewalls using Network Firewall Policies. Tags must be according to specifications in https://cloud.google.com/vpc/docs/tags-firewalls-overview#specifications. A maximum of 5 tag key-value pairs can be specified. Existing tags will be replaced with new values. # The desired resource manager tags that apply to all auto-provisioned node pools in autopilot clusters and node auto-provisioning enabled clusters.
      &quot;tags&quot;: { # TagKeyValue must be in one of the following formats ([KEY]=[VALUE]) 1. `tagKeys/{tag_key_id}=tagValues/{tag_value_id}` 2. `{org_id}/{tag_key_name}={tag_value_name}` 3. `{project_id}/{tag_key_name}={tag_value_name}`
        &quot;a_key&quot;: &quot;A String&quot;,
      },
    },
    &quot;desiredNodePoolAutoscaling&quot;: { # NodePoolAutoscaling contains information required by cluster autoscaler to adjust the size of the node pool to the current cluster usage. # Autoscaler configuration for the node pool specified in desired_node_pool_id. If there is only one pool in the cluster and desired_node_pool_id is not provided then the change applies to that single node pool.
      &quot;autoprovisioned&quot;: True or False, # Can this node pool be deleted automatically.
      &quot;enabled&quot;: True or False, # Is autoscaling enabled for this node pool.
      &quot;locationPolicy&quot;: &quot;A String&quot;, # Location policy used when scaling up a nodepool.
      &quot;maxNodeCount&quot;: 42, # Maximum number of nodes for one location in the node pool. Must be &gt;= min_node_count. There has to be enough quota to scale up the cluster.
      &quot;minNodeCount&quot;: 42, # Minimum number of nodes for one location in the node pool. Must be greater than or equal to 0 and less than or equal to max_node_count.
      &quot;totalMaxNodeCount&quot;: 42, # Maximum number of nodes in the node pool. Must be greater than or equal to total_min_node_count. There has to be enough quota to scale up the cluster. The total_*_node_count fields are mutually exclusive with the *_node_count fields.
      &quot;totalMinNodeCount&quot;: 42, # Minimum number of nodes in the node pool. Must be greater than or equal to 0 and less than or equal to total_max_node_count. The total_*_node_count fields are mutually exclusive with the *_node_count fields.
    },
    &quot;desiredNodePoolId&quot;: &quot;A String&quot;, # The node pool to be upgraded. This field is mandatory if &quot;desired_node_version&quot;, &quot;desired_image_family&quot; or &quot;desired_node_pool_autoscaling&quot; is specified and there is more than one node pool on the cluster.
    &quot;desiredNodePoolLoggingConfig&quot;: { # NodePoolLoggingConfig specifies logging configuration for nodepools. # The desired node pool logging configuration defaults for the cluster.
      &quot;variantConfig&quot;: { # LoggingVariantConfig specifies the behaviour of the logging component. # Logging variant configuration.
        &quot;variant&quot;: &quot;A String&quot;, # Logging variant deployed on nodes.
      },
    },
    &quot;desiredNodeVersion&quot;: &quot;A String&quot;, # The Kubernetes version to change the nodes to (typically an upgrade). Users may specify either explicit versions offered by Kubernetes Engine or version aliases, which have the following behavior: - &quot;latest&quot;: picks the highest valid Kubernetes version - &quot;1.X&quot;: picks the highest valid patch+gke.N patch in the 1.X version - &quot;1.X.Y&quot;: picks the highest valid gke.N patch in the 1.X.Y version - &quot;1.X.Y-gke.N&quot;: picks an explicit Kubernetes version - &quot;-&quot;: picks the Kubernetes master version
    &quot;desiredNotificationConfig&quot;: { # NotificationConfig is the configuration of notifications. # The desired notification configuration.
      &quot;pubsub&quot;: { # Pub/Sub specific notification config. # Notification config for Pub/Sub.
        &quot;enabled&quot;: True or False, # Enable notifications for Pub/Sub.
        &quot;filter&quot;: { # Allows filtering to one or more specific event types. If event types are present, those and only those event types will be transmitted to the cluster. Other types will be skipped. If no filter is specified, or no event types are present, all event types will be sent # Allows filtering to one or more specific event types. If no filter is specified, or if a filter is specified with no event types, all event types will be sent
          &quot;eventType&quot;: [ # Event types to allowlist.
            &quot;A String&quot;,
          ],
        },
        &quot;topic&quot;: &quot;A String&quot;, # The desired Pub/Sub topic to which notifications will be sent by GKE. Format is `projects/{project}/topics/{topic}`.
      },
    },
    &quot;desiredParentProductConfig&quot;: { # ParentProductConfig is the configuration of the parent product of the cluster. This field is used by Google internal products that are built on top of a GKE cluster and take the ownership of the cluster. # The desired parent product config for the cluster.
      &quot;labels&quot;: { # Labels contain the configuration of the parent product.
        &quot;a_key&quot;: &quot;A String&quot;,
      },
      &quot;productName&quot;: &quot;A String&quot;, # Name of the parent product associated with the cluster.
    },
    &quot;desiredPodAutoscaling&quot;: { # PodAutoscaling is used for configuration of parameters for workload autoscaling. # The desired config for pod autoscaling.
      &quot;hpaProfile&quot;: &quot;A String&quot;, # Selected Horizontal Pod Autoscaling profile.
    },
    &quot;desiredPrivateClusterConfig&quot;: { # Configuration options for private clusters. # The desired private cluster configuration. master_global_access_config is the only field that can be changed via this field. See also ClusterUpdate.desired_enable_private_endpoint for modifying other fields within PrivateClusterConfig. Deprecated: Use desired_control_plane_endpoints_config.ip_endpoints_config.global_access instead.
      &quot;enablePrivateEndpoint&quot;: True or False, # Whether the master&#x27;s internal IP address is used as the cluster endpoint. Deprecated: Use ControlPlaneEndpointsConfig.IPEndpointsConfig.enable_public_endpoint instead. Note that the value of enable_public_endpoint is reversed: if enable_private_endpoint is false, then enable_public_endpoint will be true.
      &quot;enablePrivateNodes&quot;: True or False, # 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. Deprecated: Use NetworkConfig.default_enable_private_nodes instead.
      &quot;masterGlobalAccessConfig&quot;: { # Configuration for controlling master global access settings. # Controls master global access settings. Deprecated: Use ControlPlaneEndpointsConfig.IPEndpointsConfig.enable_global_access instead.
        &quot;enabled&quot;: True or False, # Whenever master is accessible globally or not.
      },
      &quot;masterIpv4CidrBlock&quot;: &quot;A String&quot;, # 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&#x27;s network.
      &quot;peeringName&quot;: &quot;A String&quot;, # Output only. The peering name in the customer VPC used by this cluster.
      &quot;privateEndpoint&quot;: &quot;A String&quot;, # Output only. The internal IP address of this cluster&#x27;s master endpoint. Deprecated: Use ControlPlaneEndpointsConfig.IPEndpointsConfig.private_endpoint instead.
      &quot;privateEndpointSubnetwork&quot;: &quot;A String&quot;, # Subnet to provision the master&#x27;s private endpoint during cluster creation. Specified in projects/*/regions/*/subnetworks/* format. Deprecated: Use ControlPlaneEndpointsConfig.IPEndpointsConfig.private_endpoint_subnetwork instead.
      &quot;publicEndpoint&quot;: &quot;A String&quot;, # Output only. The external IP address of this cluster&#x27;s master endpoint. Deprecated:Use ControlPlaneEndpointsConfig.IPEndpointsConfig.public_endpoint instead.
    },
    &quot;desiredPrivateIpv6GoogleAccess&quot;: &quot;A String&quot;, # The desired state of IPv6 connectivity to Google Services.
    &quot;desiredRbacBindingConfig&quot;: { # RBACBindingConfig allows user to restrict ClusterRoleBindings an RoleBindings that can be created. # RBACBindingConfig allows user to restrict ClusterRoleBindings an RoleBindings that can be created.
      &quot;enableInsecureBindingSystemAuthenticated&quot;: True or False, # Setting this to true will allow any ClusterRoleBinding and RoleBinding with subjects system:authenticated.
      &quot;enableInsecureBindingSystemUnauthenticated&quot;: True or False, # Setting this to true will allow any ClusterRoleBinding and RoleBinding with subjets system:anonymous or system:unauthenticated.
    },
    &quot;desiredReleaseChannel&quot;: { # ReleaseChannel indicates which release channel a cluster is subscribed to. Release channels are arranged in order of risk. When a cluster is subscribed to a release channel, Google maintains both the master version and the node version. Node auto-upgrade defaults to true and cannot be disabled. # The desired release channel configuration.
      &quot;channel&quot;: &quot;A String&quot;, # channel specifies which release channel the cluster is subscribed to.
    },
    &quot;desiredResourceUsageExportConfig&quot;: { # Configuration for exporting cluster resource usages. # The desired configuration for exporting resource usage.
      &quot;bigqueryDestination&quot;: { # Parameters for using BigQuery as the destination of resource usage export. # Configuration to use BigQuery as usage export destination.
        &quot;datasetId&quot;: &quot;A String&quot;, # The ID of a BigQuery Dataset.
      },
      &quot;consumptionMeteringConfig&quot;: { # Parameters for controlling consumption metering. # Configuration to enable resource consumption metering.
        &quot;enabled&quot;: True or False, # Whether to enable consumption metering for this cluster. If enabled, a second BigQuery table will be created to hold resource consumption records.
      },
      &quot;enableNetworkEgressMetering&quot;: True or False, # Whether to enable network egress metering for this cluster. If enabled, a daemonset will be created in the cluster to meter network egress traffic.
    },
    &quot;desiredSecretManagerConfig&quot;: { # SecretManagerConfig is config for secret manager enablement. # Enable/Disable Secret Manager Config.
      &quot;enabled&quot;: True or False, # Enable/Disable Secret Manager Config.
      &quot;rotationConfig&quot;: { # RotationConfig is config for secret manager auto rotation. # Rotation config for secret manager.
        &quot;enabled&quot;: True or False, # Whether the rotation is enabled.
        &quot;rotationInterval&quot;: &quot;A String&quot;, # The interval between two consecutive rotations. Default rotation interval is 2 minutes.
      },
    },
    &quot;desiredSecurityPostureConfig&quot;: { # SecurityPostureConfig defines the flags needed to enable/disable features for the Security Posture API. # Enable/Disable Security Posture API features for the cluster.
      &quot;mode&quot;: &quot;A String&quot;, # Sets which mode to use for Security Posture features.
      &quot;vulnerabilityMode&quot;: &quot;A String&quot;, # Sets which mode to use for vulnerability scanning.
    },
    &quot;desiredServiceExternalIpsConfig&quot;: { # Config to block services with externalIPs field. # ServiceExternalIPsConfig specifies the config for the use of Services with ExternalIPs field.
      &quot;enabled&quot;: True or False, # Whether Services with ExternalIPs field are allowed or not.
    },
    &quot;desiredShieldedNodes&quot;: { # Configuration of Shielded Nodes feature. # Configuration for Shielded Nodes.
      &quot;enabled&quot;: True or False, # Whether Shielded Nodes features are enabled on all nodes in this cluster.
    },
    &quot;desiredStackType&quot;: &quot;A String&quot;, # The desired stack type of the cluster. If a stack type is provided and does not match the current stack type of the cluster, update will attempt to change the stack type to the new type.
    &quot;desiredUserManagedKeysConfig&quot;: { # UserManagedKeysConfig holds the resource address to Keys which are used for signing certs and token that are used for communication within cluster. # The desired user managed keys config for the cluster.
      &quot;aggregationCa&quot;: &quot;A String&quot;, # The Certificate Authority Service caPool to use for the aggregation CA in this cluster.
      &quot;clusterCa&quot;: &quot;A String&quot;, # The Certificate Authority Service caPool to use for the cluster CA in this cluster.
      &quot;controlPlaneDiskEncryptionKey&quot;: &quot;A String&quot;, # The Cloud KMS cryptoKey to use for Confidential Hyperdisk on the control plane nodes.
      &quot;etcdApiCa&quot;: &quot;A String&quot;, # Resource path of the Certificate Authority Service caPool to use for the etcd API CA in this cluster.
      &quot;etcdPeerCa&quot;: &quot;A String&quot;, # Resource path of the Certificate Authority Service caPool to use for the etcd peer CA in this cluster.
      &quot;gkeopsEtcdBackupEncryptionKey&quot;: &quot;A String&quot;, # Resource path of the Cloud KMS cryptoKey to use for encryption of internal etcd backups.
      &quot;serviceAccountSigningKeys&quot;: [ # The Cloud KMS cryptoKeyVersions to use for signing service account JWTs issued by this cluster. Format: `projects/{project}/locations/{location}/keyRings/{keyring}/cryptoKeys/{cryptoKey}/cryptoKeyVersions/{cryptoKeyVersion}`
        &quot;A String&quot;,
      ],
      &quot;serviceAccountVerificationKeys&quot;: [ # The Cloud KMS cryptoKeyVersions to use for verifying service account JWTs issued by this cluster. Format: `projects/{project}/locations/{location}/keyRings/{keyring}/cryptoKeys/{cryptoKey}/cryptoKeyVersions/{cryptoKeyVersion}`
        &quot;A String&quot;,
      ],
    },
    &quot;desiredVerticalPodAutoscaling&quot;: { # VerticalPodAutoscaling contains global, per-cluster information required by Vertical Pod Autoscaler to automatically adjust the resources of pods controlled by it. # Cluster-level Vertical Pod Autoscaling configuration.
      &quot;enabled&quot;: True or False, # Enables vertical pod autoscaling.
    },
    &quot;desiredWorkloadIdentityConfig&quot;: { # Configuration for the use of Kubernetes Service Accounts in IAM policies. # Configuration for Workload Identity.
      &quot;workloadPool&quot;: &quot;A String&quot;, # The workload pool to attach all Kubernetes service accounts to.
    },
    &quot;enableK8sBetaApis&quot;: { # K8sBetaAPIConfig , configuration for beta APIs # Kubernetes open source beta apis enabled on the cluster. Only beta apis
      &quot;enabledApis&quot;: [ # Enabled k8s beta APIs.
        &quot;A String&quot;,
      ],
    },
    &quot;etag&quot;: &quot;A String&quot;, # The current etag of the cluster. If an etag is provided and does not match the current etag of the cluster, update will be blocked and an ABORTED error will be returned.
    &quot;gkeAutoUpgradeConfig&quot;: { # GkeAutoUpgradeConfig is the configuration for GKE auto upgrades. # Configuration for GKE auto upgrade.
      &quot;patchMode&quot;: &quot;A String&quot;, # PatchMode specifies how auto upgrade patch builds should be selected.
    },
    &quot;removedAdditionalPodRangesConfig&quot;: { # AdditionalPodRangesConfig is the configuration for additional pod secondary ranges supporting the ClusterUpdate message. # The additional pod ranges that are to be removed from the cluster. The pod ranges specified here must have been specified earlier in the &#x27;additional_pod_ranges_config&#x27; argument.
      &quot;podRangeInfo&quot;: [ # Output only. Information for additional pod range.
        { # RangeInfo contains the range name and the range utilization by this cluster.
          &quot;rangeName&quot;: &quot;A String&quot;, # Output only. Name of a range.
          &quot;utilization&quot;: 3.14, # Output only. The utilization of the range.
        },
      ],
      &quot;podRangeNames&quot;: [ # Name for pod secondary ipv4 range which has the actual range defined ahead.
        &quot;A String&quot;,
      ],
    },
    &quot;userManagedKeysConfig&quot;: { # UserManagedKeysConfig holds the resource address to Keys which are used for signing certs and token that are used for communication within cluster. # The Custom keys configuration for the cluster. This field is deprecated. Use ClusterUpdate.desired_user_managed_keys_config instead.
      &quot;aggregationCa&quot;: &quot;A String&quot;, # The Certificate Authority Service caPool to use for the aggregation CA in this cluster.
      &quot;clusterCa&quot;: &quot;A String&quot;, # The Certificate Authority Service caPool to use for the cluster CA in this cluster.
      &quot;controlPlaneDiskEncryptionKey&quot;: &quot;A String&quot;, # The Cloud KMS cryptoKey to use for Confidential Hyperdisk on the control plane nodes.
      &quot;etcdApiCa&quot;: &quot;A String&quot;, # Resource path of the Certificate Authority Service caPool to use for the etcd API CA in this cluster.
      &quot;etcdPeerCa&quot;: &quot;A String&quot;, # Resource path of the Certificate Authority Service caPool to use for the etcd peer CA in this cluster.
      &quot;gkeopsEtcdBackupEncryptionKey&quot;: &quot;A String&quot;, # Resource path of the Cloud KMS cryptoKey to use for encryption of internal etcd backups.
      &quot;serviceAccountSigningKeys&quot;: [ # The Cloud KMS cryptoKeyVersions to use for signing service account JWTs issued by this cluster. Format: `projects/{project}/locations/{location}/keyRings/{keyring}/cryptoKeys/{cryptoKey}/cryptoKeyVersions/{cryptoKeyVersion}`
        &quot;A String&quot;,
      ],
      &quot;serviceAccountVerificationKeys&quot;: [ # The Cloud KMS cryptoKeyVersions to use for verifying service account JWTs issued by this cluster. Format: `projects/{project}/locations/{location}/keyRings/{keyring}/cryptoKeys/{cryptoKey}/cryptoKeyVersions/{cryptoKeyVersion}`
        &quot;A String&quot;,
      ],
    },
  },
  &quot;zone&quot;: &quot;A String&quot;, # Deprecated. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster resides. This field has been deprecated and replaced by the name field.
}

  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # This operation resource represents operations that may have happened or are happening on the cluster. All fields are output only.
  &quot;clusterConditions&quot;: [ # Which conditions caused the current cluster state. Deprecated. Use field error instead.
    { # StatusCondition describes why a cluster or a node pool has a certain status (e.g., ERROR or DEGRADED).
      &quot;canonicalCode&quot;: &quot;A String&quot;, # Canonical code of the condition.
      &quot;code&quot;: &quot;A String&quot;, # Machine-friendly representation of the condition Deprecated. Use canonical_code instead.
      &quot;message&quot;: &quot;A String&quot;, # Human-friendly representation of the condition
    },
  ],
  &quot;detail&quot;: &quot;A String&quot;, # Output only. Detailed operation progress, if available.
  &quot;endTime&quot;: &quot;A String&quot;, # Output only. The time the operation completed, in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
  &quot;error&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure.
    &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
    &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
      {
        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
      },
    ],
    &quot;message&quot;: &quot;A String&quot;, # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
  },
  &quot;location&quot;: &quot;A String&quot;, # Output only. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/regions-zones/regions-zones#available) or [region](https://cloud.google.com/compute/docs/regions-zones/regions-zones#available) in which the cluster resides.
  &quot;name&quot;: &quot;A String&quot;, # Output only. The server-assigned ID for the operation.
  &quot;nodepoolConditions&quot;: [ # Which conditions caused the current node pool state. Deprecated. Use field error instead.
    { # StatusCondition describes why a cluster or a node pool has a certain status (e.g., ERROR or DEGRADED).
      &quot;canonicalCode&quot;: &quot;A String&quot;, # Canonical code of the condition.
      &quot;code&quot;: &quot;A String&quot;, # Machine-friendly representation of the condition Deprecated. Use canonical_code instead.
      &quot;message&quot;: &quot;A String&quot;, # Human-friendly representation of the condition
    },
  ],
  &quot;operationType&quot;: &quot;A String&quot;, # Output only. The operation type.
  &quot;progress&quot;: { # Information about operation (or operation stage) progress. # Output only. Progress information for an operation.
    &quot;metrics&quot;: [ # Progress metric bundle, for example: metrics: [{name: &quot;nodes done&quot;, int_value: 15}, {name: &quot;nodes total&quot;, int_value: 32}] or metrics: [{name: &quot;progress&quot;, double_value: 0.56}, {name: &quot;progress scale&quot;, double_value: 1.0}]
      { # Progress metric is (string, int|float|string) pair.
        &quot;doubleValue&quot;: 3.14, # For metrics with floating point value.
        &quot;intValue&quot;: &quot;A String&quot;, # For metrics with integer value.
        &quot;name&quot;: &quot;A String&quot;, # Required. Metric name, e.g., &quot;nodes total&quot;, &quot;percent done&quot;.
        &quot;stringValue&quot;: &quot;A String&quot;, # For metrics with custom values (ratios, visual progress, etc.).
      },
    ],
    &quot;name&quot;: &quot;A String&quot;, # A non-parameterized string describing an operation stage. Unset for single-stage operations.
    &quot;stages&quot;: [ # Substages of an operation or a stage.
      # Object with schema name: OperationProgress
    ],
    &quot;status&quot;: &quot;A String&quot;, # Status of an operation stage. Unset for single-stage operations.
  },
  &quot;selfLink&quot;: &quot;A String&quot;, # Output only. Server-defined URI for the operation. Example: `https://container.googleapis.com/v1alpha1/projects/123/locations/us-central1/operations/operation-123`.
  &quot;startTime&quot;: &quot;A String&quot;, # Output only. The time the operation started, in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
  &quot;status&quot;: &quot;A String&quot;, # Output only. The current status of the operation.
  &quot;statusMessage&quot;: &quot;A String&quot;, # Output only. If an error has occurred, a textual description of the error. Deprecated. Use the field error instead.
  &quot;targetLink&quot;: &quot;A String&quot;, # Output only. Server-defined URI for the target of the operation. The format of this is a URI to the resource being modified (such as a cluster, node pool, or node). For node pool repairs, there may be multiple nodes being repaired, but only one will be the target. Examples: - ## `https://container.googleapis.com/v1/projects/123/locations/us-central1/clusters/my-cluster` ## `https://container.googleapis.com/v1/projects/123/zones/us-central1-c/clusters/my-cluster/nodePools/my-np` `https://container.googleapis.com/v1/projects/123/zones/us-central1-c/clusters/my-cluster/nodePools/my-np/node/my-node`
  &quot;zone&quot;: &quot;A String&quot;, # Output only. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/zones#available) in which the operation is taking place. This field is deprecated, use location instead.
}</pre>
</div>

<div class="method">
    <code class="details" id="updateMaster">updateMaster(name, body=None, x__xgafv=None)</code>
  <pre>Updates the master for a specific cluster.

Args:
  name: string, The name (project, location, cluster) of the cluster to update. Specified in the format `projects/*/locations/*/clusters/*`. (required)
  body: object, The request body.
    The object takes the form of:

{ # UpdateMasterRequest updates the master of the cluster.
  &quot;clusterId&quot;: &quot;A String&quot;, # Deprecated. The name of the cluster to upgrade. This field has been deprecated and replaced by the name field.
  &quot;masterVersion&quot;: &quot;A String&quot;, # Required. The Kubernetes version to change the master to. Users may specify either explicit versions offered by Kubernetes Engine or version aliases, which have the following behavior: - &quot;latest&quot;: picks the highest valid Kubernetes version - &quot;1.X&quot;: picks the highest valid patch+gke.N patch in the 1.X version - &quot;1.X.Y&quot;: picks the highest valid gke.N patch in the 1.X.Y version - &quot;1.X.Y-gke.N&quot;: picks an explicit Kubernetes version - &quot;-&quot;: picks the default Kubernetes version
  &quot;name&quot;: &quot;A String&quot;, # The name (project, location, cluster) of the cluster to update. Specified in the format `projects/*/locations/*/clusters/*`.
  &quot;projectId&quot;: &quot;A String&quot;, # Deprecated. The Google Developers Console [project ID or project number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). This field has been deprecated and replaced by the name field.
  &quot;zone&quot;: &quot;A String&quot;, # Deprecated. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster resides. This field has been deprecated and replaced by the name field.
}

  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # This operation resource represents operations that may have happened or are happening on the cluster. All fields are output only.
  &quot;clusterConditions&quot;: [ # Which conditions caused the current cluster state. Deprecated. Use field error instead.
    { # StatusCondition describes why a cluster or a node pool has a certain status (e.g., ERROR or DEGRADED).
      &quot;canonicalCode&quot;: &quot;A String&quot;, # Canonical code of the condition.
      &quot;code&quot;: &quot;A String&quot;, # Machine-friendly representation of the condition Deprecated. Use canonical_code instead.
      &quot;message&quot;: &quot;A String&quot;, # Human-friendly representation of the condition
    },
  ],
  &quot;detail&quot;: &quot;A String&quot;, # Output only. Detailed operation progress, if available.
  &quot;endTime&quot;: &quot;A String&quot;, # Output only. The time the operation completed, in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
  &quot;error&quot;: { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure.
    &quot;code&quot;: 42, # The status code, which should be an enum value of google.rpc.Code.
    &quot;details&quot;: [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
      {
        &quot;a_key&quot;: &quot;&quot;, # Properties of the object. Contains field @type with type URL.
      },
    ],
    &quot;message&quot;: &quot;A String&quot;, # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
  },
  &quot;location&quot;: &quot;A String&quot;, # Output only. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/regions-zones/regions-zones#available) or [region](https://cloud.google.com/compute/docs/regions-zones/regions-zones#available) in which the cluster resides.
  &quot;name&quot;: &quot;A String&quot;, # Output only. The server-assigned ID for the operation.
  &quot;nodepoolConditions&quot;: [ # Which conditions caused the current node pool state. Deprecated. Use field error instead.
    { # StatusCondition describes why a cluster or a node pool has a certain status (e.g., ERROR or DEGRADED).
      &quot;canonicalCode&quot;: &quot;A String&quot;, # Canonical code of the condition.
      &quot;code&quot;: &quot;A String&quot;, # Machine-friendly representation of the condition Deprecated. Use canonical_code instead.
      &quot;message&quot;: &quot;A String&quot;, # Human-friendly representation of the condition
    },
  ],
  &quot;operationType&quot;: &quot;A String&quot;, # Output only. The operation type.
  &quot;progress&quot;: { # Information about operation (or operation stage) progress. # Output only. Progress information for an operation.
    &quot;metrics&quot;: [ # Progress metric bundle, for example: metrics: [{name: &quot;nodes done&quot;, int_value: 15}, {name: &quot;nodes total&quot;, int_value: 32}] or metrics: [{name: &quot;progress&quot;, double_value: 0.56}, {name: &quot;progress scale&quot;, double_value: 1.0}]
      { # Progress metric is (string, int|float|string) pair.
        &quot;doubleValue&quot;: 3.14, # For metrics with floating point value.
        &quot;intValue&quot;: &quot;A String&quot;, # For metrics with integer value.
        &quot;name&quot;: &quot;A String&quot;, # Required. Metric name, e.g., &quot;nodes total&quot;, &quot;percent done&quot;.
        &quot;stringValue&quot;: &quot;A String&quot;, # For metrics with custom values (ratios, visual progress, etc.).
      },
    ],
    &quot;name&quot;: &quot;A String&quot;, # A non-parameterized string describing an operation stage. Unset for single-stage operations.
    &quot;stages&quot;: [ # Substages of an operation or a stage.
      # Object with schema name: OperationProgress
    ],
    &quot;status&quot;: &quot;A String&quot;, # Status of an operation stage. Unset for single-stage operations.
  },
  &quot;selfLink&quot;: &quot;A String&quot;, # Output only. Server-defined URI for the operation. Example: `https://container.googleapis.com/v1alpha1/projects/123/locations/us-central1/operations/operation-123`.
  &quot;startTime&quot;: &quot;A String&quot;, # Output only. The time the operation started, in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
  &quot;status&quot;: &quot;A String&quot;, # Output only. The current status of the operation.
  &quot;statusMessage&quot;: &quot;A String&quot;, # Output only. If an error has occurred, a textual description of the error. Deprecated. Use the field error instead.
  &quot;targetLink&quot;: &quot;A String&quot;, # Output only. Server-defined URI for the target of the operation. The format of this is a URI to the resource being modified (such as a cluster, node pool, or node). For node pool repairs, there may be multiple nodes being repaired, but only one will be the target. Examples: - ## `https://container.googleapis.com/v1/projects/123/locations/us-central1/clusters/my-cluster` ## `https://container.googleapis.com/v1/projects/123/zones/us-central1-c/clusters/my-cluster/nodePools/my-np` `https://container.googleapis.com/v1/projects/123/zones/us-central1-c/clusters/my-cluster/nodePools/my-np/node/my-node`
  &quot;zone&quot;: &quot;A String&quot;, # Output only. The name of the Google Compute Engine [zone](https://cloud.google.com/compute/docs/zones#available) in which the operation is taking place. This field is deprecated, use location instead.
}</pre>
</div>

</body></html>