Class: Google::Apis::ContainerV1::ClusterUpdate

Inherits:
Object
  • Object
show all
Includes:
Google::Apis::Core::Hashable, Google::Apis::Core::JsonObjectSupport
Defined in:
lib/google/apis/container_v1/classes.rb,
lib/google/apis/container_v1/representations.rb,
lib/google/apis/container_v1/representations.rb

Overview

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.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(**args) ⇒ ClusterUpdate

Returns a new instance of ClusterUpdate.



1847
1848
1849
# File 'lib/google/apis/container_v1/classes.rb', line 1847

def initialize(**args)
   update!(**args)
end

Instance Attribute Details

#additional_pod_ranges_configGoogle::Apis::ContainerV1::AdditionalPodRangesConfig

AdditionalPodRangesConfig is the configuration for additional pod secondary ranges supporting the ClusterUpdate message. Corresponds to the JSON property additionalPodRangesConfig



1499
1500
1501
# File 'lib/google/apis/container_v1/classes.rb', line 1499

def additional_pod_ranges_config
  @additional_pod_ranges_config
end

#desired_addons_configGoogle::Apis::ContainerV1::AddonsConfig

Configuration for the addons that can be automatically spun up in the cluster, enabling additional functionality. Corresponds to the JSON property desiredAddonsConfig



1505
1506
1507
# File 'lib/google/apis/container_v1/classes.rb', line 1505

def desired_addons_config
  @desired_addons_config
end

#desired_authenticator_groups_configGoogle::Apis::ContainerV1::AuthenticatorGroupsConfig

Configuration for returning group information from authenticators. Corresponds to the JSON property desiredAuthenticatorGroupsConfig



1510
1511
1512
# File 'lib/google/apis/container_v1/classes.rb', line 1510

def desired_authenticator_groups_config
  @desired_authenticator_groups_config
end

#desired_autopilot_workload_policy_configGoogle::Apis::ContainerV1::WorkloadPolicyConfig

WorkloadPolicyConfig is the configuration of workload policy for autopilot clusters. Corresponds to the JSON property desiredAutopilotWorkloadPolicyConfig



1516
1517
1518
# File 'lib/google/apis/container_v1/classes.rb', line 1516

def desired_autopilot_workload_policy_config
  @desired_autopilot_workload_policy_config
end

#desired_binary_authorizationGoogle::Apis::ContainerV1::BinaryAuthorization

Configuration for Binary Authorization. Corresponds to the JSON property desiredBinaryAuthorization



1521
1522
1523
# File 'lib/google/apis/container_v1/classes.rb', line 1521

def desired_binary_authorization
  @desired_binary_authorization
end

#desired_cluster_autoscalingGoogle::Apis::ContainerV1::ClusterAutoscaling

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. Corresponds to the JSON property desiredClusterAutoscaling



1528
1529
1530
# File 'lib/google/apis/container_v1/classes.rb', line 1528

def desired_cluster_autoscaling
  @desired_cluster_autoscaling
end

#desired_containerd_configGoogle::Apis::ContainerV1::ContainerdConfig

ContainerdConfig contains configuration to customize containerd. Corresponds to the JSON property desiredContainerdConfig



1533
1534
1535
# File 'lib/google/apis/container_v1/classes.rb', line 1533

def desired_containerd_config
  @desired_containerd_config
end

#desired_cost_management_configGoogle::Apis::ContainerV1::CostManagementConfig

Configuration for fine-grained cost management feature. Corresponds to the JSON property desiredCostManagementConfig



1538
1539
1540
# File 'lib/google/apis/container_v1/classes.rb', line 1538

def desired_cost_management_config
  @desired_cost_management_config
end

#desired_database_encryptionGoogle::Apis::ContainerV1::DatabaseEncryption

Configuration of etcd encryption. Corresponds to the JSON property desiredDatabaseEncryption



1543
1544
1545
# File 'lib/google/apis/container_v1/classes.rb', line 1543

def desired_database_encryption
  @desired_database_encryption
end

#desired_datapath_providerString

The desired datapath provider for the cluster. Corresponds to the JSON property desiredDatapathProvider

Returns:

  • (String)


1548
1549
1550
# File 'lib/google/apis/container_v1/classes.rb', line 1548

def desired_datapath_provider
  @desired_datapath_provider
end

#desired_default_snat_statusGoogle::Apis::ContainerV1::DefaultSnatStatus

DefaultSnatStatus contains the desired state of whether default sNAT should be disabled on the cluster. Corresponds to the JSON property desiredDefaultSnatStatus



1554
1555
1556
# File 'lib/google/apis/container_v1/classes.rb', line 1554

def desired_default_snat_status
  @desired_default_snat_status
end

#desired_dns_configGoogle::Apis::ContainerV1::DnsConfig

DNSConfig contains the desired set of options for configuring clusterDNS. Corresponds to the JSON property desiredDnsConfig



1559
1560
1561
# File 'lib/google/apis/container_v1/classes.rb', line 1559

def desired_dns_config
  @desired_dns_config
end

#desired_enable_cilium_clusterwide_network_policyBoolean Also known as: desired_enable_cilium_clusterwide_network_policy?

Enable/Disable Cilium Clusterwide Network Policy for the cluster. Corresponds to the JSON property desiredEnableCiliumClusterwideNetworkPolicy

Returns:

  • (Boolean)


1564
1565
1566
# File 'lib/google/apis/container_v1/classes.rb', line 1564

def desired_enable_cilium_clusterwide_network_policy
  @desired_enable_cilium_clusterwide_network_policy
end

#desired_enable_fqdn_network_policyBoolean Also known as: desired_enable_fqdn_network_policy?

Enable/Disable FQDN Network Policy for the cluster. Corresponds to the JSON property desiredEnableFqdnNetworkPolicy

Returns:

  • (Boolean)


1570
1571
1572
# File 'lib/google/apis/container_v1/classes.rb', line 1570

def desired_enable_fqdn_network_policy
  @desired_enable_fqdn_network_policy
end

#desired_enable_multi_networkingBoolean Also known as: desired_enable_multi_networking?

Enable/Disable Multi-Networking for the cluster Corresponds to the JSON property desiredEnableMultiNetworking

Returns:

  • (Boolean)


1576
1577
1578
# File 'lib/google/apis/container_v1/classes.rb', line 1576

def desired_enable_multi_networking
  @desired_enable_multi_networking
end

#desired_enable_private_endpointBoolean Also known as: desired_enable_private_endpoint?

Enable/Disable private endpoint for the cluster's master. Corresponds to the JSON property desiredEnablePrivateEndpoint

Returns:

  • (Boolean)


1582
1583
1584
# File 'lib/google/apis/container_v1/classes.rb', line 1582

def desired_enable_private_endpoint
  @desired_enable_private_endpoint
end

#desired_fleetGoogle::Apis::ContainerV1::Fleet

Fleet is the fleet configuration for the cluster. Corresponds to the JSON property desiredFleet



1588
1589
1590
# File 'lib/google/apis/container_v1/classes.rb', line 1588

def desired_fleet
  @desired_fleet
end

#desired_gateway_api_configGoogle::Apis::ContainerV1::GatewayApiConfig

GatewayAPIConfig contains the desired config of Gateway API on this cluster. Corresponds to the JSON property desiredGatewayApiConfig



1593
1594
1595
# File 'lib/google/apis/container_v1/classes.rb', line 1593

def desired_gateway_api_config
  @desired_gateway_api_config
end

#desired_gcfs_configGoogle::Apis::ContainerV1::GcfsConfig

GcfsConfig contains configurations of Google Container File System (image streaming). Corresponds to the JSON property desiredGcfsConfig



1599
1600
1601
# File 'lib/google/apis/container_v1/classes.rb', line 1599

def desired_gcfs_config
  @desired_gcfs_config
end

#desired_identity_service_configGoogle::Apis::ContainerV1::IdentityServiceConfig

IdentityServiceConfig is configuration for Identity Service which allows customers to use external identity providers with the K8S API Corresponds to the JSON property desiredIdentityServiceConfig



1605
1606
1607
# File 'lib/google/apis/container_v1/classes.rb', line 1605

def desired_identity_service_config
  @desired_identity_service_config
end

#desired_image_typeString

The desired image type for the node pool. NOTE: Set the "desired_node_pool" field as well. Corresponds to the JSON property desiredImageType

Returns:

  • (String)


1611
1612
1613
# File 'lib/google/apis/container_v1/classes.rb', line 1611

def desired_image_type
  @desired_image_type
end

#desired_in_transit_encryption_configString

Specify the details of in-transit encryption. Corresponds to the JSON property desiredInTransitEncryptionConfig

Returns:

  • (String)


1616
1617
1618
# File 'lib/google/apis/container_v1/classes.rb', line 1616

def desired_in_transit_encryption_config
  @desired_in_transit_encryption_config
end

#desired_intra_node_visibility_configGoogle::Apis::ContainerV1::IntraNodeVisibilityConfig

IntraNodeVisibilityConfig contains the desired config of the intra-node visibility on this cluster. Corresponds to the JSON property desiredIntraNodeVisibilityConfig



1622
1623
1624
# File 'lib/google/apis/container_v1/classes.rb', line 1622

def desired_intra_node_visibility_config
  @desired_intra_node_visibility_config
end

#desired_k8s_beta_apisGoogle::Apis::ContainerV1::K8sBetaApiConfig

K8sBetaAPIConfig , configuration for beta APIs Corresponds to the JSON property desiredK8sBetaApis



1627
1628
1629
# File 'lib/google/apis/container_v1/classes.rb', line 1627

def desired_k8s_beta_apis
  @desired_k8s_beta_apis
end

#desired_l4ilb_subsetting_configGoogle::Apis::ContainerV1::IlbSubsettingConfig

ILBSubsettingConfig contains the desired config of L4 Internal LoadBalancer subsetting on this cluster. Corresponds to the JSON property desiredL4ilbSubsettingConfig



1633
1634
1635
# File 'lib/google/apis/container_v1/classes.rb', line 1633

def desired_l4ilb_subsetting_config
  @desired_l4ilb_subsetting_config
end

#desired_locationsArray<String>

The desired list of Google Compute Engine zones in which the cluster's nodes should be located. This list must always include the cluster's primary zone. Warning: changing cluster locations will update the locations of all node pools and will result in nodes being added and/or removed. Corresponds to the JSON property desiredLocations

Returns:

  • (Array<String>)


1642
1643
1644
# File 'lib/google/apis/container_v1/classes.rb', line 1642

def desired_locations
  @desired_locations
end

#desired_logging_configGoogle::Apis::ContainerV1::LoggingConfig

LoggingConfig is cluster logging configuration. Corresponds to the JSON property desiredLoggingConfig



1647
1648
1649
# File 'lib/google/apis/container_v1/classes.rb', line 1647

def desired_logging_config
  @desired_logging_config
end

#desired_logging_serviceString

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. Corresponds to the JSON property desiredLoggingService

Returns:

  • (String)


1658
1659
1660
# File 'lib/google/apis/container_v1/classes.rb', line 1658

def desired_logging_service
  @desired_logging_service
end

#desired_master_authorized_networks_configGoogle::Apis::ContainerV1::MasterAuthorizedNetworksConfig

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. Corresponds to the JSON property desiredMasterAuthorizedNetworksConfig



1666
1667
1668
# File 'lib/google/apis/container_v1/classes.rb', line 1666

def desired_master_authorized_networks_config
  @desired_master_authorized_networks_config
end

#desired_master_versionString

The Kubernetes version to change the master to. Users may specify either explicit versions offered by Kubernetes Engine or version aliases, which have the following behavior: - "latest": picks the highest valid Kubernetes version

  • "1.X": picks the highest valid patch+gke.N patch in the 1.X version - "1.X.Y" : picks the highest valid gke.N patch in the 1.X.Y version - "1.X.Y-gke.N": picks an explicit Kubernetes version - "-": picks the default Kubernetes version Corresponds to the JSON property desiredMasterVersion

Returns:

  • (String)


1677
1678
1679
# File 'lib/google/apis/container_v1/classes.rb', line 1677

def desired_master_version
  @desired_master_version
end

#desired_mesh_certificatesGoogle::Apis::ContainerV1::MeshCertificates

Configuration for issuance of mTLS keys and certificates to Kubernetes pods. Corresponds to the JSON property desiredMeshCertificates



1682
1683
1684
# File 'lib/google/apis/container_v1/classes.rb', line 1682

def desired_mesh_certificates
  @desired_mesh_certificates
end

#desired_monitoring_configGoogle::Apis::ContainerV1::MonitoringConfig

MonitoringConfig is cluster monitoring configuration. Corresponds to the JSON property desiredMonitoringConfig



1687
1688
1689
# File 'lib/google/apis/container_v1/classes.rb', line 1687

def desired_monitoring_config
  @desired_monitoring_config
end

#desired_monitoring_serviceString

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. Corresponds to the JSON property desiredMonitoringService

Returns:

  • (String)


1698
1699
1700
# File 'lib/google/apis/container_v1/classes.rb', line 1698

def desired_monitoring_service
  @desired_monitoring_service
end

#desired_network_performance_configGoogle::Apis::ContainerV1::ClusterNetworkPerformanceConfig

Configuration of network bandwidth tiers Corresponds to the JSON property desiredNetworkPerformanceConfig



1703
1704
1705
# File 'lib/google/apis/container_v1/classes.rb', line 1703

def desired_network_performance_config
  @desired_network_performance_config
end

#desired_node_kubelet_configGoogle::Apis::ContainerV1::NodeKubeletConfig

Node kubelet configs. Corresponds to the JSON property desiredNodeKubeletConfig



1708
1709
1710
# File 'lib/google/apis/container_v1/classes.rb', line 1708

def desired_node_kubelet_config
  @desired_node_kubelet_config
end

#desired_node_pool_auto_config_kubelet_configGoogle::Apis::ContainerV1::NodeKubeletConfig

Node kubelet configs. Corresponds to the JSON property desiredNodePoolAutoConfigKubeletConfig



1713
1714
1715
# File 'lib/google/apis/container_v1/classes.rb', line 1713

def desired_node_pool_auto_config_kubelet_config
  @desired_node_pool_auto_config_kubelet_config
end

#desired_node_pool_auto_config_network_tagsGoogle::Apis::ContainerV1::NetworkTags

Collection of Compute Engine network tags that can be applied to a node's underlying VM instance. Corresponds to the JSON property desiredNodePoolAutoConfigNetworkTags



1719
1720
1721
# File 'lib/google/apis/container_v1/classes.rb', line 1719

def desired_node_pool_auto_config_network_tags
  @desired_node_pool_auto_config_network_tags
end

#desired_node_pool_auto_config_resource_manager_tagsGoogle::Apis::ContainerV1::ResourceManagerTags

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. Corresponds to the JSON property desiredNodePoolAutoConfigResourceManagerTags



1728
1729
1730
# File 'lib/google/apis/container_v1/classes.rb', line 1728

def desired_node_pool_auto_config_resource_manager_tags
  @desired_node_pool_auto_config_resource_manager_tags
end

#desired_node_pool_autoscalingGoogle::Apis::ContainerV1::NodePoolAutoscaling

NodePoolAutoscaling contains information required by cluster autoscaler to adjust the size of the node pool to the current cluster usage. Corresponds to the JSON property desiredNodePoolAutoscaling



1734
1735
1736
# File 'lib/google/apis/container_v1/classes.rb', line 1734

def desired_node_pool_autoscaling
  @desired_node_pool_autoscaling
end

#desired_node_pool_idString

The node pool to be upgraded. This field is mandatory if "desired_node_version" , "desired_image_family" or "desired_node_pool_autoscaling" is specified and there is more than one node pool on the cluster. Corresponds to the JSON property desiredNodePoolId

Returns:

  • (String)


1741
1742
1743
# File 'lib/google/apis/container_v1/classes.rb', line 1741

def desired_node_pool_id
  @desired_node_pool_id
end

#desired_node_pool_logging_configGoogle::Apis::ContainerV1::NodePoolLoggingConfig

NodePoolLoggingConfig specifies logging configuration for nodepools. Corresponds to the JSON property desiredNodePoolLoggingConfig



1746
1747
1748
# File 'lib/google/apis/container_v1/classes.rb', line 1746

def desired_node_pool_logging_config
  @desired_node_pool_logging_config
end

#desired_node_versionString

The Kubernetes version to change the nodes to (typically an upgrade). Users may specify either explicit versions offered by Kubernetes Engine or version aliases, which have the following behavior: - "latest": picks the highest valid Kubernetes version - "1.X": picks the highest valid patch+gke.N patch in the 1.X version - "1.X.Y": picks the highest valid gke.N patch in the 1.X.Y version - "1.X.Y-gke.N": picks an explicit Kubernetes version - "-": picks the Kubernetes master version Corresponds to the JSON property desiredNodeVersion

Returns:

  • (String)


1757
1758
1759
# File 'lib/google/apis/container_v1/classes.rb', line 1757

def desired_node_version
  @desired_node_version
end

#desired_notification_configGoogle::Apis::ContainerV1::NotificationConfig

NotificationConfig is the configuration of notifications. Corresponds to the JSON property desiredNotificationConfig



1762
1763
1764
# File 'lib/google/apis/container_v1/classes.rb', line 1762

def desired_notification_config
  @desired_notification_config
end

#desired_parent_product_configGoogle::Apis::ContainerV1::ParentProductConfig

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. Corresponds to the JSON property desiredParentProductConfig



1769
1770
1771
# File 'lib/google/apis/container_v1/classes.rb', line 1769

def desired_parent_product_config
  @desired_parent_product_config
end

#desired_private_cluster_configGoogle::Apis::ContainerV1::PrivateClusterConfig

Configuration options for private clusters. Corresponds to the JSON property desiredPrivateClusterConfig



1774
1775
1776
# File 'lib/google/apis/container_v1/classes.rb', line 1774

def desired_private_cluster_config
  @desired_private_cluster_config
end

#desired_private_ipv6_google_accessString

The desired state of IPv6 connectivity to Google Services. Corresponds to the JSON property desiredPrivateIpv6GoogleAccess

Returns:

  • (String)


1779
1780
1781
# File 'lib/google/apis/container_v1/classes.rb', line 1779

def desired_private_ipv6_google_access
  @desired_private_ipv6_google_access
end

#desired_release_channelGoogle::Apis::ContainerV1::ReleaseChannel

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. Corresponds to the JSON property desiredReleaseChannel



1787
1788
1789
# File 'lib/google/apis/container_v1/classes.rb', line 1787

def desired_release_channel
  @desired_release_channel
end

#desired_resource_usage_export_configGoogle::Apis::ContainerV1::ResourceUsageExportConfig

Configuration for exporting cluster resource usages. Corresponds to the JSON property desiredResourceUsageExportConfig



1792
1793
1794
# File 'lib/google/apis/container_v1/classes.rb', line 1792

def desired_resource_usage_export_config
  @desired_resource_usage_export_config
end

#desired_security_posture_configGoogle::Apis::ContainerV1::SecurityPostureConfig

SecurityPostureConfig defines the flags needed to enable/disable features for the Security Posture API. Corresponds to the JSON property desiredSecurityPostureConfig



1798
1799
1800
# File 'lib/google/apis/container_v1/classes.rb', line 1798

def desired_security_posture_config
  @desired_security_posture_config
end

#desired_service_external_ips_configGoogle::Apis::ContainerV1::ServiceExternalIPsConfig

Config to block services with externalIPs field. Corresponds to the JSON property desiredServiceExternalIpsConfig



1803
1804
1805
# File 'lib/google/apis/container_v1/classes.rb', line 1803

def desired_service_external_ips_config
  @desired_service_external_ips_config
end

#desired_shielded_nodesGoogle::Apis::ContainerV1::ShieldedNodes

Configuration of Shielded Nodes feature. Corresponds to the JSON property desiredShieldedNodes



1808
1809
1810
# File 'lib/google/apis/container_v1/classes.rb', line 1808

def desired_shielded_nodes
  @desired_shielded_nodes
end

#desired_stack_typeString

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. Corresponds to the JSON property desiredStackType

Returns:

  • (String)


1815
1816
1817
# File 'lib/google/apis/container_v1/classes.rb', line 1815

def desired_stack_type
  @desired_stack_type
end

#desired_vertical_pod_autoscalingGoogle::Apis::ContainerV1::VerticalPodAutoscaling

VerticalPodAutoscaling contains global, per-cluster information required by Vertical Pod Autoscaler to automatically adjust the resources of pods controlled by it. Corresponds to the JSON property desiredVerticalPodAutoscaling



1822
1823
1824
# File 'lib/google/apis/container_v1/classes.rb', line 1822

def desired_vertical_pod_autoscaling
  @desired_vertical_pod_autoscaling
end

#desired_workload_identity_configGoogle::Apis::ContainerV1::WorkloadIdentityConfig

Configuration for the use of Kubernetes Service Accounts in GCP IAM policies. Corresponds to the JSON property desiredWorkloadIdentityConfig



1827
1828
1829
# File 'lib/google/apis/container_v1/classes.rb', line 1827

def desired_workload_identity_config
  @desired_workload_identity_config
end

#enable_k8s_beta_apisGoogle::Apis::ContainerV1::K8sBetaApiConfig

K8sBetaAPIConfig , configuration for beta APIs Corresponds to the JSON property enableK8sBetaApis



1832
1833
1834
# File 'lib/google/apis/container_v1/classes.rb', line 1832

def enable_k8s_beta_apis
  @enable_k8s_beta_apis
end

#etagString

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. Corresponds to the JSON property etag

Returns:

  • (String)


1839
1840
1841
# File 'lib/google/apis/container_v1/classes.rb', line 1839

def etag
  @etag
end

#removed_additional_pod_ranges_configGoogle::Apis::ContainerV1::AdditionalPodRangesConfig

AdditionalPodRangesConfig is the configuration for additional pod secondary ranges supporting the ClusterUpdate message. Corresponds to the JSON property removedAdditionalPodRangesConfig



1845
1846
1847
# File 'lib/google/apis/container_v1/classes.rb', line 1845

def removed_additional_pod_ranges_config
  @removed_additional_pod_ranges_config
end

Instance Method Details

#update!(**args) ⇒ Object

Update properties of this object



1852
1853
1854
1855
1856
1857
1858
1859
1860
1861
1862
1863
1864
1865
1866
1867
1868
1869
1870
1871
1872
1873
1874
1875
1876
1877
1878
1879
1880
1881
1882
1883
1884
1885
1886
1887
1888
1889
1890
1891
1892
1893
1894
1895
1896
1897
1898
1899
1900
1901
1902
1903
1904
1905
1906
1907
1908
1909
1910
# File 'lib/google/apis/container_v1/classes.rb', line 1852

def update!(**args)
  @additional_pod_ranges_config = args[:additional_pod_ranges_config] if args.key?(:additional_pod_ranges_config)
  @desired_addons_config = args[:desired_addons_config] if args.key?(:desired_addons_config)
  @desired_authenticator_groups_config = args[:desired_authenticator_groups_config] if args.key?(:desired_authenticator_groups_config)
  @desired_autopilot_workload_policy_config = args[:desired_autopilot_workload_policy_config] if args.key?(:desired_autopilot_workload_policy_config)
  @desired_binary_authorization = args[:desired_binary_authorization] if args.key?(:desired_binary_authorization)
  @desired_cluster_autoscaling = args[:desired_cluster_autoscaling] if args.key?(:desired_cluster_autoscaling)
  @desired_containerd_config = args[:desired_containerd_config] if args.key?(:desired_containerd_config)
  @desired_cost_management_config = args[:desired_cost_management_config] if args.key?(:desired_cost_management_config)
  @desired_database_encryption = args[:desired_database_encryption] if args.key?(:desired_database_encryption)
  @desired_datapath_provider = args[:desired_datapath_provider] if args.key?(:desired_datapath_provider)
  @desired_default_snat_status = args[:desired_default_snat_status] if args.key?(:desired_default_snat_status)
  @desired_dns_config = args[:desired_dns_config] if args.key?(:desired_dns_config)
  @desired_enable_cilium_clusterwide_network_policy = args[:desired_enable_cilium_clusterwide_network_policy] if args.key?(:desired_enable_cilium_clusterwide_network_policy)
  @desired_enable_fqdn_network_policy = args[:desired_enable_fqdn_network_policy] if args.key?(:desired_enable_fqdn_network_policy)
  @desired_enable_multi_networking = args[:desired_enable_multi_networking] if args.key?(:desired_enable_multi_networking)
  @desired_enable_private_endpoint = args[:desired_enable_private_endpoint] if args.key?(:desired_enable_private_endpoint)
  @desired_fleet = args[:desired_fleet] if args.key?(:desired_fleet)
  @desired_gateway_api_config = args[:desired_gateway_api_config] if args.key?(:desired_gateway_api_config)
  @desired_gcfs_config = args[:desired_gcfs_config] if args.key?(:desired_gcfs_config)
  @desired_identity_service_config = args[:desired_identity_service_config] if args.key?(:desired_identity_service_config)
  @desired_image_type = args[:desired_image_type] if args.key?(:desired_image_type)
  @desired_in_transit_encryption_config = args[:desired_in_transit_encryption_config] if args.key?(:desired_in_transit_encryption_config)
  @desired_intra_node_visibility_config = args[:desired_intra_node_visibility_config] if args.key?(:desired_intra_node_visibility_config)
  @desired_k8s_beta_apis = args[:desired_k8s_beta_apis] if args.key?(:desired_k8s_beta_apis)
  @desired_l4ilb_subsetting_config = args[:desired_l4ilb_subsetting_config] if args.key?(:desired_l4ilb_subsetting_config)
  @desired_locations = args[:desired_locations] if args.key?(:desired_locations)
  @desired_logging_config = args[:desired_logging_config] if args.key?(:desired_logging_config)
  @desired_logging_service = args[:desired_logging_service] if args.key?(:desired_logging_service)
  @desired_master_authorized_networks_config = args[:desired_master_authorized_networks_config] if args.key?(:desired_master_authorized_networks_config)
  @desired_master_version = args[:desired_master_version] if args.key?(:desired_master_version)
  @desired_mesh_certificates = args[:desired_mesh_certificates] if args.key?(:desired_mesh_certificates)
  @desired_monitoring_config = args[:desired_monitoring_config] if args.key?(:desired_monitoring_config)
  @desired_monitoring_service = args[:desired_monitoring_service] if args.key?(:desired_monitoring_service)
  @desired_network_performance_config = args[:desired_network_performance_config] if args.key?(:desired_network_performance_config)
  @desired_node_kubelet_config = args[:desired_node_kubelet_config] if args.key?(:desired_node_kubelet_config)
  @desired_node_pool_auto_config_kubelet_config = args[:desired_node_pool_auto_config_kubelet_config] if args.key?(:desired_node_pool_auto_config_kubelet_config)
  @desired_node_pool_auto_config_network_tags = args[:desired_node_pool_auto_config_network_tags] if args.key?(:desired_node_pool_auto_config_network_tags)
  @desired_node_pool_auto_config_resource_manager_tags = args[:desired_node_pool_auto_config_resource_manager_tags] if args.key?(:desired_node_pool_auto_config_resource_manager_tags)
  @desired_node_pool_autoscaling = args[:desired_node_pool_autoscaling] if args.key?(:desired_node_pool_autoscaling)
  @desired_node_pool_id = args[:desired_node_pool_id] if args.key?(:desired_node_pool_id)
  @desired_node_pool_logging_config = args[:desired_node_pool_logging_config] if args.key?(:desired_node_pool_logging_config)
  @desired_node_version = args[:desired_node_version] if args.key?(:desired_node_version)
  @desired_notification_config = args[:desired_notification_config] if args.key?(:desired_notification_config)
  @desired_parent_product_config = args[:desired_parent_product_config] if args.key?(:desired_parent_product_config)
  @desired_private_cluster_config = args[:desired_private_cluster_config] if args.key?(:desired_private_cluster_config)
  @desired_private_ipv6_google_access = args[:desired_private_ipv6_google_access] if args.key?(:desired_private_ipv6_google_access)
  @desired_release_channel = args[:desired_release_channel] if args.key?(:desired_release_channel)
  @desired_resource_usage_export_config = args[:desired_resource_usage_export_config] if args.key?(:desired_resource_usage_export_config)
  @desired_security_posture_config = args[:desired_security_posture_config] if args.key?(:desired_security_posture_config)
  @desired_service_external_ips_config = args[:desired_service_external_ips_config] if args.key?(:desired_service_external_ips_config)
  @desired_shielded_nodes = args[:desired_shielded_nodes] if args.key?(:desired_shielded_nodes)
  @desired_stack_type = args[:desired_stack_type] if args.key?(:desired_stack_type)
  @desired_vertical_pod_autoscaling = args[:desired_vertical_pod_autoscaling] if args.key?(:desired_vertical_pod_autoscaling)
  @desired_workload_identity_config = args[:desired_workload_identity_config] if args.key?(:desired_workload_identity_config)
  @enable_k8s_beta_apis = args[:enable_k8s_beta_apis] if args.key?(:enable_k8s_beta_apis)
  @etag = args[:etag] if args.key?(:etag)
  @removed_additional_pod_ranges_config = args[:removed_additional_pod_ranges_config] if args.key?(:removed_additional_pod_ranges_config)
end