google-apis-container_v1beta1 0.75.0 → 0.76.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -112,6 +112,12 @@ module Google
112
112
  # @return [Google::Apis::ContainerV1beta1::MaxPodsConstraint]
113
113
  attr_accessor :max_pods_per_node
114
114
 
115
+ # The name of the network attachment for pods to communicate to; cannot be
116
+ # specified along with subnetwork or secondary_pod_range.
117
+ # Corresponds to the JSON property `networkAttachment`
118
+ # @return [String]
119
+ attr_accessor :network_attachment
120
+
115
121
  # The name of the secondary range on the subnet which provides IP address for
116
122
  # this pod range.
117
123
  # Corresponds to the JSON property `secondaryPodRange`
@@ -130,6 +136,7 @@ module Google
130
136
  # Update properties of this object
131
137
  def update!(**args)
132
138
  @max_pods_per_node = args[:max_pods_per_node] if args.key?(:max_pods_per_node)
139
+ @network_attachment = args[:network_attachment] if args.key?(:network_attachment)
133
140
  @secondary_pod_range = args[:secondary_pod_range] if args.key?(:secondary_pod_range)
134
141
  @subnetwork = args[:subnetwork] if args.key?(:subnetwork)
135
142
  end
@@ -236,6 +243,11 @@ module Google
236
243
  # @return [Google::Apis::ContainerV1beta1::NetworkPolicyConfig]
237
244
  attr_accessor :network_policy_config
238
245
 
246
+ # Configuration for the Cloud Storage Parallelstore CSI driver.
247
+ # Corresponds to the JSON property `parallelstoreCsiDriverConfig`
248
+ # @return [Google::Apis::ContainerV1beta1::ParallelstoreCsiDriverConfig]
249
+ attr_accessor :parallelstore_csi_driver_config
250
+
239
251
  # Configuration options for the Ray Operator add-on.
240
252
  # Corresponds to the JSON property `rayOperatorConfig`
241
253
  # @return [Google::Apis::ContainerV1beta1::RayOperatorConfig]
@@ -265,6 +277,7 @@ module Google
265
277
  @kalm_config = args[:kalm_config] if args.key?(:kalm_config)
266
278
  @kubernetes_dashboard = args[:kubernetes_dashboard] if args.key?(:kubernetes_dashboard)
267
279
  @network_policy_config = args[:network_policy_config] if args.key?(:network_policy_config)
280
+ @parallelstore_csi_driver_config = args[:parallelstore_csi_driver_config] if args.key?(:parallelstore_csi_driver_config)
268
281
  @ray_operator_config = args[:ray_operator_config] if args.key?(:ray_operator_config)
269
282
  @stateful_ha_config = args[:stateful_ha_config] if args.key?(:stateful_ha_config)
270
283
  end
@@ -360,6 +373,26 @@ module Google
360
373
  end
361
374
  end
362
375
 
376
+ # AutoMonitoringConfig defines the configuration for GKE Workload Auto-
377
+ # Monitoring.
378
+ class AutoMonitoringConfig
379
+ include Google::Apis::Core::Hashable
380
+
381
+ # Scope for GKE Workload Auto-Monitoring.
382
+ # Corresponds to the JSON property `scope`
383
+ # @return [String]
384
+ attr_accessor :scope
385
+
386
+ def initialize(**args)
387
+ update!(**args)
388
+ end
389
+
390
+ # Update properties of this object
391
+ def update!(**args)
392
+ @scope = args[:scope] if args.key?(:scope)
393
+ end
394
+ end
395
+
363
396
  # AutoUpgradeOptions defines the set of options for the user to control how the
364
397
  # Auto Upgrades will proceed.
365
398
  class AutoUpgradeOptions
@@ -1059,6 +1092,11 @@ module Google
1059
1092
  # @return [Google::Apis::ContainerV1beta1::ConfidentialNodes]
1060
1093
  attr_accessor :confidential_nodes
1061
1094
 
1095
+ # Configuration for all of the cluster's control plane endpoints.
1096
+ # Corresponds to the JSON property `controlPlaneEndpointsConfig`
1097
+ # @return [Google::Apis::ContainerV1beta1::ControlPlaneEndpointsConfig]
1098
+ attr_accessor :control_plane_endpoints_config
1099
+
1062
1100
  # Configuration for fine-grained cost management feature.
1063
1101
  # Corresponds to the JSON property `costManagementConfig`
1064
1102
  # @return [Google::Apis::ContainerV1beta1::CostManagementConfig]
@@ -1374,6 +1412,12 @@ module Google
1374
1412
  # @return [Google::Apis::ContainerV1beta1::ParentProductConfig]
1375
1413
  attr_accessor :parent_product_config
1376
1414
 
1415
+ # PodAutoscaling is used for configuration of parameters for workload
1416
+ # autoscaling.
1417
+ # Corresponds to the JSON property `podAutoscaling`
1418
+ # @return [Google::Apis::ContainerV1beta1::PodAutoscaling]
1419
+ attr_accessor :pod_autoscaling
1420
+
1377
1421
  # Configuration for the PodSecurityPolicy feature.
1378
1422
  # Corresponds to the JSON property `podSecurityPolicyConfig`
1379
1423
  # @return [Google::Apis::ContainerV1beta1::PodSecurityPolicyConfig]
@@ -1399,6 +1443,12 @@ module Google
1399
1443
  # @return [Google::Apis::ContainerV1beta1::ProtectConfig]
1400
1444
  attr_accessor :protect_config
1401
1445
 
1446
+ # RBACBindingConfig allows user to restrict ClusterRoleBindings an RoleBindings
1447
+ # that can be created.
1448
+ # Corresponds to the JSON property `rbacBindingConfig`
1449
+ # @return [Google::Apis::ContainerV1beta1::RbacBindingConfig]
1450
+ attr_accessor :rbac_binding_config
1451
+
1402
1452
  # ReleaseChannel indicates which release channel a cluster is subscribed to.
1403
1453
  # Release channels are arranged in order of risk. When a cluster is subscribed
1404
1454
  # to a release channel, Google maintains both the master version and the node
@@ -1489,6 +1539,12 @@ module Google
1489
1539
  # @return [String]
1490
1540
  attr_accessor :tpu_ipv4_cidr_block
1491
1541
 
1542
+ # UserManagedKeysConfig holds the resource address to Keys which are used for
1543
+ # signing certs and token that are used for communication within cluster.
1544
+ # Corresponds to the JSON property `userManagedKeysConfig`
1545
+ # @return [Google::Apis::ContainerV1beta1::UserManagedKeysConfig]
1546
+ attr_accessor :user_managed_keys_config
1547
+
1492
1548
  # VerticalPodAutoscaling contains global, per-cluster information required by
1493
1549
  # Vertical Pod Autoscaler to automatically adjust the resources of pods
1494
1550
  # controlled by it.
@@ -1534,6 +1590,7 @@ module Google
1534
1590
  @compliance_posture_config = args[:compliance_posture_config] if args.key?(:compliance_posture_config)
1535
1591
  @conditions = args[:conditions] if args.key?(:conditions)
1536
1592
  @confidential_nodes = args[:confidential_nodes] if args.key?(:confidential_nodes)
1593
+ @control_plane_endpoints_config = args[:control_plane_endpoints_config] if args.key?(:control_plane_endpoints_config)
1537
1594
  @cost_management_config = args[:cost_management_config] if args.key?(:cost_management_config)
1538
1595
  @create_time = args[:create_time] if args.key?(:create_time)
1539
1596
  @current_master_version = args[:current_master_version] if args.key?(:current_master_version)
@@ -1581,10 +1638,12 @@ module Google
1581
1638
  @node_pools = args[:node_pools] if args.key?(:node_pools)
1582
1639
  @notification_config = args[:notification_config] if args.key?(:notification_config)
1583
1640
  @parent_product_config = args[:parent_product_config] if args.key?(:parent_product_config)
1641
+ @pod_autoscaling = args[:pod_autoscaling] if args.key?(:pod_autoscaling)
1584
1642
  @pod_security_policy_config = args[:pod_security_policy_config] if args.key?(:pod_security_policy_config)
1585
1643
  @private_cluster = args[:private_cluster] if args.key?(:private_cluster)
1586
1644
  @private_cluster_config = args[:private_cluster_config] if args.key?(:private_cluster_config)
1587
1645
  @protect_config = args[:protect_config] if args.key?(:protect_config)
1646
+ @rbac_binding_config = args[:rbac_binding_config] if args.key?(:rbac_binding_config)
1588
1647
  @release_channel = args[:release_channel] if args.key?(:release_channel)
1589
1648
  @resource_labels = args[:resource_labels] if args.key?(:resource_labels)
1590
1649
  @resource_usage_export_config = args[:resource_usage_export_config] if args.key?(:resource_usage_export_config)
@@ -1600,6 +1659,7 @@ module Google
1600
1659
  @subnetwork = args[:subnetwork] if args.key?(:subnetwork)
1601
1660
  @tpu_config = args[:tpu_config] if args.key?(:tpu_config)
1602
1661
  @tpu_ipv4_cidr_block = args[:tpu_ipv4_cidr_block] if args.key?(:tpu_ipv4_cidr_block)
1662
+ @user_managed_keys_config = args[:user_managed_keys_config] if args.key?(:user_managed_keys_config)
1603
1663
  @vertical_pod_autoscaling = args[:vertical_pod_autoscaling] if args.key?(:vertical_pod_autoscaling)
1604
1664
  @workload_alts_config = args[:workload_alts_config] if args.key?(:workload_alts_config)
1605
1665
  @workload_certificates = args[:workload_certificates] if args.key?(:workload_certificates)
@@ -1740,11 +1800,22 @@ module Google
1740
1800
  # @return [Google::Apis::ContainerV1beta1::ClusterTelemetry]
1741
1801
  attr_accessor :desired_cluster_telemetry
1742
1802
 
1803
+ # CompliancePostureConfig defines the settings needed to enable/disable features
1804
+ # for the Compliance Posture.
1805
+ # Corresponds to the JSON property `desiredCompliancePostureConfig`
1806
+ # @return [Google::Apis::ContainerV1beta1::CompliancePostureConfig]
1807
+ attr_accessor :desired_compliance_posture_config
1808
+
1743
1809
  # ContainerdConfig contains configuration to customize containerd.
1744
1810
  # Corresponds to the JSON property `desiredContainerdConfig`
1745
1811
  # @return [Google::Apis::ContainerV1beta1::ContainerdConfig]
1746
1812
  attr_accessor :desired_containerd_config
1747
1813
 
1814
+ # Configuration for all of the cluster's control plane endpoints.
1815
+ # Corresponds to the JSON property `desiredControlPlaneEndpointsConfig`
1816
+ # @return [Google::Apis::ContainerV1beta1::ControlPlaneEndpointsConfig]
1817
+ attr_accessor :desired_control_plane_endpoints_config
1818
+
1748
1819
  # Configuration for fine-grained cost management feature.
1749
1820
  # Corresponds to the JSON property `desiredCostManagementConfig`
1750
1821
  # @return [Google::Apis::ContainerV1beta1::CostManagementConfig]
@@ -1760,6 +1831,13 @@ module Google
1760
1831
  # @return [String]
1761
1832
  attr_accessor :desired_datapath_provider
1762
1833
 
1834
+ # Override the default setting of whether future created nodes have private IP
1835
+ # addresses only, namely NetworkConfig.default_enable_private_nodes
1836
+ # Corresponds to the JSON property `desiredDefaultEnablePrivateNodes`
1837
+ # @return [Boolean]
1838
+ attr_accessor :desired_default_enable_private_nodes
1839
+ alias_method :desired_default_enable_private_nodes?, :desired_default_enable_private_nodes
1840
+
1763
1841
  # DefaultSnatStatus contains the desired state of whether default sNAT should be
1764
1842
  # disabled on the cluster.
1765
1843
  # Corresponds to the JSON property `desiredDefaultSnatStatus`
@@ -1789,12 +1867,21 @@ module Google
1789
1867
  attr_accessor :desired_enable_multi_networking
1790
1868
  alias_method :desired_enable_multi_networking?, :desired_enable_multi_networking
1791
1869
 
1792
- # Enable/Disable private endpoint for the cluster's master.
1870
+ # Enable/Disable private endpoint for the cluster's master. Deprecated: Use
1871
+ # desired_control_plane_endpoints_config.ip_endpoints_config.
1872
+ # enable_public_endpoint instead. Note that the value of enable_public_endpoint
1873
+ # is reversed: if enable_private_endpoint is false, then enable_public_endpoint
1874
+ # will be true.
1793
1875
  # Corresponds to the JSON property `desiredEnablePrivateEndpoint`
1794
1876
  # @return [Boolean]
1795
1877
  attr_accessor :desired_enable_private_endpoint
1796
1878
  alias_method :desired_enable_private_endpoint?, :desired_enable_private_endpoint
1797
1879
 
1880
+ # DesiredEnterpriseConfig is a wrapper used for updating enterprise_config.
1881
+ # Corresponds to the JSON property `desiredEnterpriseConfig`
1882
+ # @return [Google::Apis::ContainerV1beta1::DesiredEnterpriseConfig]
1883
+ attr_accessor :desired_enterprise_config
1884
+
1798
1885
  # Fleet is the fleet configuration for the cluster.
1799
1886
  # Corresponds to the JSON property `desiredFleet`
1800
1887
  # @return [Google::Apis::ContainerV1beta1::Fleet]
@@ -1936,6 +2023,11 @@ module Google
1936
2023
  # @return [Google::Apis::ContainerV1beta1::NodeKubeletConfig]
1937
2024
  attr_accessor :desired_node_pool_auto_config_kubelet_config
1938
2025
 
2026
+ # Parameters that can be configured on Linux nodes.
2027
+ # Corresponds to the JSON property `desiredNodePoolAutoConfigLinuxNodeConfig`
2028
+ # @return [Google::Apis::ContainerV1beta1::LinuxNodeConfig]
2029
+ attr_accessor :desired_node_pool_auto_config_linux_node_config
2030
+
1939
2031
  # Collection of Compute Engine network tags that can be applied to a node's
1940
2032
  # underlying VM instance. (See `tags` field in [`NodeConfig`](/kubernetes-engine/
1941
2033
  # docs/reference/rest/v1/NodeConfig)).
@@ -1994,6 +2086,12 @@ module Google
1994
2086
  # @return [Google::Apis::ContainerV1beta1::ParentProductConfig]
1995
2087
  attr_accessor :desired_parent_product_config
1996
2088
 
2089
+ # PodAutoscaling is used for configuration of parameters for workload
2090
+ # autoscaling.
2091
+ # Corresponds to the JSON property `desiredPodAutoscaling`
2092
+ # @return [Google::Apis::ContainerV1beta1::PodAutoscaling]
2093
+ attr_accessor :desired_pod_autoscaling
2094
+
1997
2095
  # Configuration for the PodSecurityPolicy feature.
1998
2096
  # Corresponds to the JSON property `desiredPodSecurityPolicyConfig`
1999
2097
  # @return [Google::Apis::ContainerV1beta1::PodSecurityPolicyConfig]
@@ -2015,6 +2113,12 @@ module Google
2015
2113
  # @return [Google::Apis::ContainerV1beta1::ProtectConfig]
2016
2114
  attr_accessor :desired_protect_config
2017
2115
 
2116
+ # RBACBindingConfig allows user to restrict ClusterRoleBindings an RoleBindings
2117
+ # that can be created.
2118
+ # Corresponds to the JSON property `desiredRbacBindingConfig`
2119
+ # @return [Google::Apis::ContainerV1beta1::RbacBindingConfig]
2120
+ attr_accessor :desired_rbac_binding_config
2121
+
2018
2122
  # ReleaseChannel indicates which release channel a cluster is subscribed to.
2019
2123
  # Release channels are arranged in order of risk. When a cluster is subscribed
2020
2124
  # to a release channel, Google maintains both the master version and the node
@@ -2106,6 +2210,12 @@ module Google
2106
2210
  # @return [Google::Apis::ContainerV1beta1::AdditionalPodRangesConfig]
2107
2211
  attr_accessor :removed_additional_pod_ranges_config
2108
2212
 
2213
+ # UserManagedKeysConfig holds the resource address to Keys which are used for
2214
+ # signing certs and token that are used for communication within cluster.
2215
+ # Corresponds to the JSON property `userManagedKeysConfig`
2216
+ # @return [Google::Apis::ContainerV1beta1::UserManagedKeysConfig]
2217
+ attr_accessor :user_managed_keys_config
2218
+
2109
2219
  def initialize(**args)
2110
2220
  update!(**args)
2111
2221
  end
@@ -2119,16 +2229,20 @@ module Google
2119
2229
  @desired_binary_authorization = args[:desired_binary_authorization] if args.key?(:desired_binary_authorization)
2120
2230
  @desired_cluster_autoscaling = args[:desired_cluster_autoscaling] if args.key?(:desired_cluster_autoscaling)
2121
2231
  @desired_cluster_telemetry = args[:desired_cluster_telemetry] if args.key?(:desired_cluster_telemetry)
2232
+ @desired_compliance_posture_config = args[:desired_compliance_posture_config] if args.key?(:desired_compliance_posture_config)
2122
2233
  @desired_containerd_config = args[:desired_containerd_config] if args.key?(:desired_containerd_config)
2234
+ @desired_control_plane_endpoints_config = args[:desired_control_plane_endpoints_config] if args.key?(:desired_control_plane_endpoints_config)
2123
2235
  @desired_cost_management_config = args[:desired_cost_management_config] if args.key?(:desired_cost_management_config)
2124
2236
  @desired_database_encryption = args[:desired_database_encryption] if args.key?(:desired_database_encryption)
2125
2237
  @desired_datapath_provider = args[:desired_datapath_provider] if args.key?(:desired_datapath_provider)
2238
+ @desired_default_enable_private_nodes = args[:desired_default_enable_private_nodes] if args.key?(:desired_default_enable_private_nodes)
2126
2239
  @desired_default_snat_status = args[:desired_default_snat_status] if args.key?(:desired_default_snat_status)
2127
2240
  @desired_dns_config = args[:desired_dns_config] if args.key?(:desired_dns_config)
2128
2241
  @desired_enable_cilium_clusterwide_network_policy = args[:desired_enable_cilium_clusterwide_network_policy] if args.key?(:desired_enable_cilium_clusterwide_network_policy)
2129
2242
  @desired_enable_fqdn_network_policy = args[:desired_enable_fqdn_network_policy] if args.key?(:desired_enable_fqdn_network_policy)
2130
2243
  @desired_enable_multi_networking = args[:desired_enable_multi_networking] if args.key?(:desired_enable_multi_networking)
2131
2244
  @desired_enable_private_endpoint = args[:desired_enable_private_endpoint] if args.key?(:desired_enable_private_endpoint)
2245
+ @desired_enterprise_config = args[:desired_enterprise_config] if args.key?(:desired_enterprise_config)
2132
2246
  @desired_fleet = args[:desired_fleet] if args.key?(:desired_fleet)
2133
2247
  @desired_gateway_api_config = args[:desired_gateway_api_config] if args.key?(:desired_gateway_api_config)
2134
2248
  @desired_gcfs_config = args[:desired_gcfs_config] if args.key?(:desired_gcfs_config)
@@ -2151,6 +2265,7 @@ module Google
2151
2265
  @desired_network_performance_config = args[:desired_network_performance_config] if args.key?(:desired_network_performance_config)
2152
2266
  @desired_node_kubelet_config = args[:desired_node_kubelet_config] if args.key?(:desired_node_kubelet_config)
2153
2267
  @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)
2268
+ @desired_node_pool_auto_config_linux_node_config = args[:desired_node_pool_auto_config_linux_node_config] if args.key?(:desired_node_pool_auto_config_linux_node_config)
2154
2269
  @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)
2155
2270
  @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)
2156
2271
  @desired_node_pool_autoscaling = args[:desired_node_pool_autoscaling] if args.key?(:desired_node_pool_autoscaling)
@@ -2159,10 +2274,12 @@ module Google
2159
2274
  @desired_node_version = args[:desired_node_version] if args.key?(:desired_node_version)
2160
2275
  @desired_notification_config = args[:desired_notification_config] if args.key?(:desired_notification_config)
2161
2276
  @desired_parent_product_config = args[:desired_parent_product_config] if args.key?(:desired_parent_product_config)
2277
+ @desired_pod_autoscaling = args[:desired_pod_autoscaling] if args.key?(:desired_pod_autoscaling)
2162
2278
  @desired_pod_security_policy_config = args[:desired_pod_security_policy_config] if args.key?(:desired_pod_security_policy_config)
2163
2279
  @desired_private_cluster_config = args[:desired_private_cluster_config] if args.key?(:desired_private_cluster_config)
2164
2280
  @desired_private_ipv6_google_access = args[:desired_private_ipv6_google_access] if args.key?(:desired_private_ipv6_google_access)
2165
2281
  @desired_protect_config = args[:desired_protect_config] if args.key?(:desired_protect_config)
2282
+ @desired_rbac_binding_config = args[:desired_rbac_binding_config] if args.key?(:desired_rbac_binding_config)
2166
2283
  @desired_release_channel = args[:desired_release_channel] if args.key?(:desired_release_channel)
2167
2284
  @desired_resource_usage_export_config = args[:desired_resource_usage_export_config] if args.key?(:desired_resource_usage_export_config)
2168
2285
  @desired_secret_manager_config = args[:desired_secret_manager_config] if args.key?(:desired_secret_manager_config)
@@ -2179,6 +2296,62 @@ module Google
2179
2296
  @etag = args[:etag] if args.key?(:etag)
2180
2297
  @private_cluster_config = args[:private_cluster_config] if args.key?(:private_cluster_config)
2181
2298
  @removed_additional_pod_ranges_config = args[:removed_additional_pod_ranges_config] if args.key?(:removed_additional_pod_ranges_config)
2299
+ @user_managed_keys_config = args[:user_managed_keys_config] if args.key?(:user_managed_keys_config)
2300
+ end
2301
+ end
2302
+
2303
+ # ClusterUpgradeInfo contains the upgrade information of a cluster.
2304
+ class ClusterUpgradeInfo
2305
+ include Google::Apis::Core::Hashable
2306
+
2307
+ # The auto upgrade status.
2308
+ # Corresponds to the JSON property `autoUpgradeStatus`
2309
+ # @return [Array<String>]
2310
+ attr_accessor :auto_upgrade_status
2311
+
2312
+ # The cluster's current minor version's end of extended support timestamp.
2313
+ # Corresponds to the JSON property `endOfExtendedSupportTimestamp`
2314
+ # @return [String]
2315
+ attr_accessor :end_of_extended_support_timestamp
2316
+
2317
+ # The cluster's current minor version's end of standard support timestamp.
2318
+ # Corresponds to the JSON property `endOfStandardSupportTimestamp`
2319
+ # @return [String]
2320
+ attr_accessor :end_of_standard_support_timestamp
2321
+
2322
+ # minor_target_version indicates the target version for minor upgrade.
2323
+ # Corresponds to the JSON property `minorTargetVersion`
2324
+ # @return [String]
2325
+ attr_accessor :minor_target_version
2326
+
2327
+ # patch_target_version indicates the target version for patch upgrade.
2328
+ # Corresponds to the JSON property `patchTargetVersion`
2329
+ # @return [String]
2330
+ attr_accessor :patch_target_version
2331
+
2332
+ # The auto upgrade paused reason.
2333
+ # Corresponds to the JSON property `pausedReason`
2334
+ # @return [Array<String>]
2335
+ attr_accessor :paused_reason
2336
+
2337
+ # The list of past auto upgrades.
2338
+ # Corresponds to the JSON property `upgradeDetails`
2339
+ # @return [Array<Google::Apis::ContainerV1beta1::UpgradeDetails>]
2340
+ attr_accessor :upgrade_details
2341
+
2342
+ def initialize(**args)
2343
+ update!(**args)
2344
+ end
2345
+
2346
+ # Update properties of this object
2347
+ def update!(**args)
2348
+ @auto_upgrade_status = args[:auto_upgrade_status] if args.key?(:auto_upgrade_status)
2349
+ @end_of_extended_support_timestamp = args[:end_of_extended_support_timestamp] if args.key?(:end_of_extended_support_timestamp)
2350
+ @end_of_standard_support_timestamp = args[:end_of_standard_support_timestamp] if args.key?(:end_of_standard_support_timestamp)
2351
+ @minor_target_version = args[:minor_target_version] if args.key?(:minor_target_version)
2352
+ @patch_target_version = args[:patch_target_version] if args.key?(:patch_target_version)
2353
+ @paused_reason = args[:paused_reason] if args.key?(:paused_reason)
2354
+ @upgrade_details = args[:upgrade_details] if args.key?(:upgrade_details)
2182
2355
  end
2183
2356
  end
2184
2357
 
@@ -2366,6 +2539,31 @@ module Google
2366
2539
  end
2367
2540
  end
2368
2541
 
2542
+ # Configuration for all of the cluster's control plane endpoints.
2543
+ class ControlPlaneEndpointsConfig
2544
+ include Google::Apis::Core::Hashable
2545
+
2546
+ # Describes the configuration of a DNS endpoint.
2547
+ # Corresponds to the JSON property `dnsEndpointConfig`
2548
+ # @return [Google::Apis::ContainerV1beta1::DnsEndpointConfig]
2549
+ attr_accessor :dns_endpoint_config
2550
+
2551
+ # IP endpoints configuration.
2552
+ # Corresponds to the JSON property `ipEndpointsConfig`
2553
+ # @return [Google::Apis::ContainerV1beta1::IpEndpointsConfig]
2554
+ attr_accessor :ip_endpoints_config
2555
+
2556
+ def initialize(**args)
2557
+ update!(**args)
2558
+ end
2559
+
2560
+ # Update properties of this object
2561
+ def update!(**args)
2562
+ @dns_endpoint_config = args[:dns_endpoint_config] if args.key?(:dns_endpoint_config)
2563
+ @ip_endpoints_config = args[:ip_endpoints_config] if args.key?(:ip_endpoints_config)
2564
+ end
2565
+ end
2566
+
2369
2567
  # Configuration for fine-grained cost management feature.
2370
2568
  class CostManagementConfig
2371
2569
  include Google::Apis::Core::Hashable
@@ -2519,6 +2717,36 @@ module Google
2519
2717
  end
2520
2718
  end
2521
2719
 
2720
+ # Describes the configuration of a DNS endpoint.
2721
+ class DnsEndpointConfig
2722
+ include Google::Apis::Core::Hashable
2723
+
2724
+ # Controls whether user traffic is allowed over this endpoint. Note that GCP-
2725
+ # managed services may still use the endpoint even if this is false.
2726
+ # Corresponds to the JSON property `allowExternalTraffic`
2727
+ # @return [Boolean]
2728
+ attr_accessor :allow_external_traffic
2729
+ alias_method :allow_external_traffic?, :allow_external_traffic
2730
+
2731
+ # Output only. The cluster's DNS endpoint configuration. A DNS format address.
2732
+ # This is accessible from the public internet. Ex: uid.us-central1.gke.goog.
2733
+ # Always present, but the behavior may change according to the value of
2734
+ # DNSEndpointConfig.allow_external_traffic.
2735
+ # Corresponds to the JSON property `endpoint`
2736
+ # @return [String]
2737
+ attr_accessor :endpoint
2738
+
2739
+ def initialize(**args)
2740
+ update!(**args)
2741
+ end
2742
+
2743
+ # Update properties of this object
2744
+ def update!(**args)
2745
+ @allow_external_traffic = args[:allow_external_traffic] if args.key?(:allow_external_traffic)
2746
+ @endpoint = args[:endpoint] if args.key?(:endpoint)
2747
+ end
2748
+ end
2749
+
2522
2750
  # Time window specified for daily maintenance operations.
2523
2751
  class DailyMaintenanceWindow
2524
2752
  include Google::Apis::Core::Hashable
@@ -2653,6 +2881,25 @@ module Google
2653
2881
  end
2654
2882
  end
2655
2883
 
2884
+ # DesiredEnterpriseConfig is a wrapper used for updating enterprise_config.
2885
+ class DesiredEnterpriseConfig
2886
+ include Google::Apis::Core::Hashable
2887
+
2888
+ # desired_tier specifies the desired tier of the cluster.
2889
+ # Corresponds to the JSON property `desiredTier`
2890
+ # @return [String]
2891
+ attr_accessor :desired_tier
2892
+
2893
+ def initialize(**args)
2894
+ update!(**args)
2895
+ end
2896
+
2897
+ # Update properties of this object
2898
+ def update!(**args)
2899
+ @desired_tier = args[:desired_tier] if args.key?(:desired_tier)
2900
+ end
2901
+ end
2902
+
2656
2903
  # Configuration for NodeLocal DNSCache
2657
2904
  class DnsCacheConfig
2658
2905
  include Google::Apis::Core::Hashable
@@ -2693,11 +2940,16 @@ module Google
2693
2940
  class EnterpriseConfig
2694
2941
  include Google::Apis::Core::Hashable
2695
2942
 
2696
- # Output only. cluster_tier specifies the premium tier of the cluster.
2943
+ # Output only. cluster_tier indicates the effective tier of the cluster.
2697
2944
  # Corresponds to the JSON property `clusterTier`
2698
2945
  # @return [String]
2699
2946
  attr_accessor :cluster_tier
2700
2947
 
2948
+ # desired_tier specifies the desired tier of the cluster.
2949
+ # Corresponds to the JSON property `desiredTier`
2950
+ # @return [String]
2951
+ attr_accessor :desired_tier
2952
+
2701
2953
  def initialize(**args)
2702
2954
  update!(**args)
2703
2955
  end
@@ -2705,6 +2957,7 @@ module Google
2705
2957
  # Update properties of this object
2706
2958
  def update!(**args)
2707
2959
  @cluster_tier = args[:cluster_tier] if args.key?(:cluster_tier)
2960
+ @desired_tier = args[:desired_tier] if args.key?(:desired_tier)
2708
2961
  end
2709
2962
  end
2710
2963
 
@@ -3465,6 +3718,76 @@ module Google
3465
3718
  end
3466
3719
  end
3467
3720
 
3721
+ # IP endpoints configuration.
3722
+ class IpEndpointsConfig
3723
+ include Google::Apis::Core::Hashable
3724
+
3725
+ # Configuration options for the master authorized networks feature. Enabled
3726
+ # master authorized networks will disallow all external traffic to access
3727
+ # Kubernetes master through HTTPS except traffic from the given CIDR blocks,
3728
+ # Google Compute Engine Public IPs and Google Prod IPs.
3729
+ # Corresponds to the JSON property `authorizedNetworksConfig`
3730
+ # @return [Google::Apis::ContainerV1beta1::MasterAuthorizedNetworksConfig]
3731
+ attr_accessor :authorized_networks_config
3732
+
3733
+ # Controls whether the control plane allows access through a public IP. It is
3734
+ # invalid to specify both PrivateClusterConfig.enablePrivateEndpoint and this
3735
+ # field at the same time.
3736
+ # Corresponds to the JSON property `enablePublicEndpoint`
3737
+ # @return [Boolean]
3738
+ attr_accessor :enable_public_endpoint
3739
+ alias_method :enable_public_endpoint?, :enable_public_endpoint
3740
+
3741
+ # Controls whether to allow direct IP access.
3742
+ # Corresponds to the JSON property `enabled`
3743
+ # @return [Boolean]
3744
+ attr_accessor :enabled
3745
+ alias_method :enabled?, :enabled
3746
+
3747
+ # Controls whether the control plane's private endpoint is accessible from
3748
+ # sources in other regions. It is invalid to specify both
3749
+ # PrivateClusterMasterGlobalAccessConfig.enabled and this field at the same time.
3750
+ # Corresponds to the JSON property `globalAccess`
3751
+ # @return [Boolean]
3752
+ attr_accessor :global_access
3753
+ alias_method :global_access?, :global_access
3754
+
3755
+ # Output only. The internal IP address of this cluster's control plane. Only
3756
+ # populated if enabled.
3757
+ # Corresponds to the JSON property `privateEndpoint`
3758
+ # @return [String]
3759
+ attr_accessor :private_endpoint
3760
+
3761
+ # Subnet to provision the master's private endpoint during cluster creation.
3762
+ # Specified in projects/*/regions/*/subnetworks/* format. It is invalid to
3763
+ # specify both PrivateClusterConfig.privateEndpointSubnetwork and this field at
3764
+ # the same time.
3765
+ # Corresponds to the JSON property `privateEndpointSubnetwork`
3766
+ # @return [String]
3767
+ attr_accessor :private_endpoint_subnetwork
3768
+
3769
+ # Output only. The external IP address of this cluster's control plane. Only
3770
+ # populated if enabled.
3771
+ # Corresponds to the JSON property `publicEndpoint`
3772
+ # @return [String]
3773
+ attr_accessor :public_endpoint
3774
+
3775
+ def initialize(**args)
3776
+ update!(**args)
3777
+ end
3778
+
3779
+ # Update properties of this object
3780
+ def update!(**args)
3781
+ @authorized_networks_config = args[:authorized_networks_config] if args.key?(:authorized_networks_config)
3782
+ @enable_public_endpoint = args[:enable_public_endpoint] if args.key?(:enable_public_endpoint)
3783
+ @enabled = args[:enabled] if args.key?(:enabled)
3784
+ @global_access = args[:global_access] if args.key?(:global_access)
3785
+ @private_endpoint = args[:private_endpoint] if args.key?(:private_endpoint)
3786
+ @private_endpoint_subnetwork = args[:private_endpoint_subnetwork] if args.key?(:private_endpoint_subnetwork)
3787
+ @public_endpoint = args[:public_endpoint] if args.key?(:public_endpoint)
3788
+ end
3789
+ end
3790
+
3468
3791
  # IdentityServiceConfig is configuration for Identity Service which allows
3469
3792
  # customers to use external identity providers with the K8S API
3470
3793
  class IdentityServiceConfig
@@ -3700,7 +4023,7 @@ module Google
3700
4023
  # the nodes. The following parameters are supported. net.core.busy_poll net.core.
3701
4024
  # busy_read net.core.netdev_max_backlog net.core.rmem_max net.core.wmem_default
3702
4025
  # net.core.wmem_max net.core.optmem_max net.core.somaxconn net.ipv4.tcp_rmem net.
3703
- # ipv4.tcp_wmem net.ipv4.tcp_tw_reuse
4026
+ # ipv4.tcp_wmem net.ipv4.tcp_tw_reuse kernel.shmmni kernel.shmmax kernel.shmall
3704
4027
  # Corresponds to the JSON property `sysctls`
3705
4028
  # @return [Hash<String,String>]
3706
4029
  attr_accessor :sysctls
@@ -4052,6 +4375,12 @@ module Google
4052
4375
  class ManagedPrometheusConfig
4053
4376
  include Google::Apis::Core::Hashable
4054
4377
 
4378
+ # AutoMonitoringConfig defines the configuration for GKE Workload Auto-
4379
+ # Monitoring.
4380
+ # Corresponds to the JSON property `autoMonitoringConfig`
4381
+ # @return [Google::Apis::ContainerV1beta1::AutoMonitoringConfig]
4382
+ attr_accessor :auto_monitoring_config
4383
+
4055
4384
  # Enable Managed Collection.
4056
4385
  # Corresponds to the JSON property `enabled`
4057
4386
  # @return [Boolean]
@@ -4064,6 +4393,7 @@ module Google
4064
4393
 
4065
4394
  # Update properties of this object
4066
4395
  def update!(**args)
4396
+ @auto_monitoring_config = args[:auto_monitoring_config] if args.key?(:auto_monitoring_config)
4067
4397
  @enabled = args[:enabled] if args.key?(:enabled)
4068
4398
  end
4069
4399
  end
@@ -4087,7 +4417,7 @@ module Google
4087
4417
  include Google::Apis::Core::Hashable
4088
4418
 
4089
4419
  # Output only. Base64-encoded public certificate used by clients to authenticate
4090
- # to the cluster endpoint.
4420
+ # to the cluster endpoint. Issued only if client_certificate_config is set.
4091
4421
  # Corresponds to the JSON property `clientCertificate`
4092
4422
  # @return [String]
4093
4423
  attr_accessor :client_certificate
@@ -4171,6 +4501,12 @@ module Google
4171
4501
  attr_accessor :gcp_public_cidrs_access_enabled
4172
4502
  alias_method :gcp_public_cidrs_access_enabled?, :gcp_public_cidrs_access_enabled
4173
4503
 
4504
+ # Whether master authorized networks is enforced on private endpoint or not.
4505
+ # Corresponds to the JSON property `privateEndpointEnforcementEnabled`
4506
+ # @return [Boolean]
4507
+ attr_accessor :private_endpoint_enforcement_enabled
4508
+ alias_method :private_endpoint_enforcement_enabled?, :private_endpoint_enforcement_enabled
4509
+
4174
4510
  def initialize(**args)
4175
4511
  update!(**args)
4176
4512
  end
@@ -4180,6 +4516,7 @@ module Google
4180
4516
  @cidr_blocks = args[:cidr_blocks] if args.key?(:cidr_blocks)
4181
4517
  @enabled = args[:enabled] if args.key?(:enabled)
4182
4518
  @gcp_public_cidrs_access_enabled = args[:gcp_public_cidrs_access_enabled] if args.key?(:gcp_public_cidrs_access_enabled)
4519
+ @private_endpoint_enforcement_enabled = args[:private_endpoint_enforcement_enabled] if args.key?(:private_endpoint_enforcement_enabled)
4183
4520
  end
4184
4521
  end
4185
4522
 
@@ -4326,6 +4663,15 @@ module Google
4326
4663
  # @return [String]
4327
4664
  attr_accessor :datapath_provider
4328
4665
 
4666
+ # Controls whether by default nodes have private IP addresses only. It is
4667
+ # invalid to specify both PrivateClusterConfig.enablePrivateNodes and this field
4668
+ # at the same time. To update the default setting, use ClusterUpdate.
4669
+ # desired_default_enable_private_nodes
4670
+ # Corresponds to the JSON property `defaultEnablePrivateNodes`
4671
+ # @return [Boolean]
4672
+ attr_accessor :default_enable_private_nodes
4673
+ alias_method :default_enable_private_nodes?, :default_enable_private_nodes
4674
+
4329
4675
  # DefaultSnatStatus contains the desired state of whether default sNAT should be
4330
4676
  # disabled on the cluster.
4331
4677
  # Corresponds to the JSON property `defaultSnatStatus`
@@ -4415,6 +4761,7 @@ module Google
4415
4761
  # Update properties of this object
4416
4762
  def update!(**args)
4417
4763
  @datapath_provider = args[:datapath_provider] if args.key?(:datapath_provider)
4764
+ @default_enable_private_nodes = args[:default_enable_private_nodes] if args.key?(:default_enable_private_nodes)
4418
4765
  @default_snat_status = args[:default_snat_status] if args.key?(:default_snat_status)
4419
4766
  @dns_config = args[:dns_config] if args.key?(:dns_config)
4420
4767
  @enable_cilium_clusterwide_network_policy = args[:enable_cilium_clusterwide_network_policy] if args.key?(:enable_cilium_clusterwide_network_policy)
@@ -4610,6 +4957,14 @@ module Google
4610
4957
  # @return [String]
4611
4958
  attr_accessor :disk_type
4612
4959
 
4960
+ # Output only. effective_cgroup_mode is the cgroup mode actually used by the
4961
+ # node pool. It is determined by the cgroup mode specified in the
4962
+ # LinuxNodeConfig or the default cgroup mode based on the cluster creation
4963
+ # version.
4964
+ # Corresponds to the JSON property `effectiveCgroupMode`
4965
+ # @return [String]
4966
+ attr_accessor :effective_cgroup_mode
4967
+
4613
4968
  # Optional. Reserved for future use.
4614
4969
  # Corresponds to the JSON property `enableConfidentialStorage`
4615
4970
  # @return [Boolean]
@@ -4691,6 +5046,12 @@ module Google
4691
5046
  # @return [Fixnum]
4692
5047
  attr_accessor :local_ssd_count
4693
5048
 
5049
+ # Specifies which method should be used for encrypting the Local SSDs attahced
5050
+ # to the node.
5051
+ # Corresponds to the JSON property `localSsdEncryptionMode`
5052
+ # @return [String]
5053
+ attr_accessor :local_ssd_encryption_mode
5054
+
4694
5055
  # NodePoolLoggingConfig specifies logging configuration for nodepools.
4695
5056
  # Corresponds to the JSON property `loggingConfig`
4696
5057
  # @return [Google::Apis::ContainerV1beta1::NodePoolLoggingConfig]
@@ -4822,6 +5183,11 @@ module Google
4822
5183
  attr_accessor :spot
4823
5184
  alias_method :spot?, :spot
4824
5185
 
5186
+ # List of Storage Pools where boot disks are provisioned.
5187
+ # Corresponds to the JSON property `storagePools`
5188
+ # @return [Array<String>]
5189
+ attr_accessor :storage_pools
5190
+
4825
5191
  # The list of instance tags applied to all nodes. Tags are used to identify
4826
5192
  # valid sources or targets for network firewalls and are specified by the client
4827
5193
  # during cluster or node pool creation. Each tag within the list must comply
@@ -4863,6 +5229,7 @@ module Google
4863
5229
  @containerd_config = args[:containerd_config] if args.key?(:containerd_config)
4864
5230
  @disk_size_gb = args[:disk_size_gb] if args.key?(:disk_size_gb)
4865
5231
  @disk_type = args[:disk_type] if args.key?(:disk_type)
5232
+ @effective_cgroup_mode = args[:effective_cgroup_mode] if args.key?(:effective_cgroup_mode)
4866
5233
  @enable_confidential_storage = args[:enable_confidential_storage] if args.key?(:enable_confidential_storage)
4867
5234
  @ephemeral_storage_config = args[:ephemeral_storage_config] if args.key?(:ephemeral_storage_config)
4868
5235
  @ephemeral_storage_local_ssd_config = args[:ephemeral_storage_local_ssd_config] if args.key?(:ephemeral_storage_local_ssd_config)
@@ -4876,6 +5243,7 @@ module Google
4876
5243
  @linux_node_config = args[:linux_node_config] if args.key?(:linux_node_config)
4877
5244
  @local_nvme_ssd_block_config = args[:local_nvme_ssd_block_config] if args.key?(:local_nvme_ssd_block_config)
4878
5245
  @local_ssd_count = args[:local_ssd_count] if args.key?(:local_ssd_count)
5246
+ @local_ssd_encryption_mode = args[:local_ssd_encryption_mode] if args.key?(:local_ssd_encryption_mode)
4879
5247
  @logging_config = args[:logging_config] if args.key?(:logging_config)
4880
5248
  @machine_type = args[:machine_type] if args.key?(:machine_type)
4881
5249
  @metadata = args[:metadata] if args.key?(:metadata)
@@ -4893,6 +5261,7 @@ module Google
4893
5261
  @shielded_instance_config = args[:shielded_instance_config] if args.key?(:shielded_instance_config)
4894
5262
  @sole_tenant_config = args[:sole_tenant_config] if args.key?(:sole_tenant_config)
4895
5263
  @spot = args[:spot] if args.key?(:spot)
5264
+ @storage_pools = args[:storage_pools] if args.key?(:storage_pools)
4896
5265
  @tags = args[:tags] if args.key?(:tags)
4897
5266
  @taints = args[:taints] if args.key?(:taints)
4898
5267
  @windows_node_config = args[:windows_node_config] if args.key?(:windows_node_config)
@@ -5089,8 +5458,8 @@ module Google
5089
5458
  alias_method :create_pod_range?, :create_pod_range
5090
5459
 
5091
5460
  # Whether nodes have internal IP addresses only. If enable_private_nodes is not
5092
- # specified, then the value is derived from cluster.privateClusterConfig.
5093
- # enablePrivateNodes
5461
+ # specified, then the value is derived from Cluster.NetworkConfig.
5462
+ # default_enable_private_nodes
5094
5463
  # Corresponds to the JSON property `enablePrivateNodes`
5095
5464
  # @return [Boolean]
5096
5465
  attr_accessor :enable_private_nodes
@@ -5351,6 +5720,11 @@ module Google
5351
5720
  class NodePoolAutoConfig
5352
5721
  include Google::Apis::Core::Hashable
5353
5722
 
5723
+ # Parameters that can be configured on Linux nodes.
5724
+ # Corresponds to the JSON property `linuxNodeConfig`
5725
+ # @return [Google::Apis::ContainerV1beta1::LinuxNodeConfig]
5726
+ attr_accessor :linux_node_config
5727
+
5354
5728
  # Collection of Compute Engine network tags that can be applied to a node's
5355
5729
  # underlying VM instance. (See `tags` field in [`NodeConfig`](/kubernetes-engine/
5356
5730
  # docs/reference/rest/v1/NodeConfig)).
@@ -5378,6 +5752,7 @@ module Google
5378
5752
 
5379
5753
  # Update properties of this object
5380
5754
  def update!(**args)
5755
+ @linux_node_config = args[:linux_node_config] if args.key?(:linux_node_config)
5381
5756
  @network_tags = args[:network_tags] if args.key?(:network_tags)
5382
5757
  @node_kubelet_config = args[:node_kubelet_config] if args.key?(:node_kubelet_config)
5383
5758
  @resource_manager_tags = args[:resource_manager_tags] if args.key?(:resource_manager_tags)
@@ -5406,19 +5781,19 @@ module Google
5406
5781
  # @return [String]
5407
5782
  attr_accessor :location_policy
5408
5783
 
5409
- # Maximum number of nodes for one location in the NodePool. Must be >=
5784
+ # Maximum number of nodes for one location in the node pool. Must be >=
5410
5785
  # min_node_count. There has to be enough quota to scale up the cluster.
5411
5786
  # Corresponds to the JSON property `maxNodeCount`
5412
5787
  # @return [Fixnum]
5413
5788
  attr_accessor :max_node_count
5414
5789
 
5415
- # Minimum number of nodes for one location in the NodePool. Must be >= 1 and <=
5416
- # max_node_count.
5790
+ # Minimum number of nodes for one location in the node pool. Must be greater
5791
+ # than or equal to 0 and less than or equal to max_node_count.
5417
5792
  # Corresponds to the JSON property `minNodeCount`
5418
5793
  # @return [Fixnum]
5419
5794
  attr_accessor :min_node_count
5420
5795
 
5421
- # Maximum number of nodes in the node pool. Must be greater than
5796
+ # Maximum number of nodes in the node pool. Must be greater than or equal to
5422
5797
  # total_min_node_count. There has to be enough quota to scale up the cluster.
5423
5798
  # The total_*_node_count fields are mutually exclusive with the *_node_count
5424
5799
  # fields.
@@ -5426,9 +5801,9 @@ module Google
5426
5801
  # @return [Fixnum]
5427
5802
  attr_accessor :total_max_node_count
5428
5803
 
5429
- # Minimum number of nodes in the node pool. Must be greater than 1 less than
5430
- # total_max_node_count. The total_*_node_count fields are mutually exclusive
5431
- # with the *_node_count fields.
5804
+ # Minimum number of nodes in the node pool. Must be greater than or equal to 0
5805
+ # and less than or equal to total_max_node_count. The total_*_node_count fields
5806
+ # are mutually exclusive with the *_node_count fields.
5432
5807
  # Corresponds to the JSON property `totalMinNodeCount`
5433
5808
  # @return [Fixnum]
5434
5809
  attr_accessor :total_min_node_count
@@ -5487,6 +5862,61 @@ module Google
5487
5862
  end
5488
5863
  end
5489
5864
 
5865
+ # NodePoolUpgradeInfo contains the upgrade information of a nodepool.
5866
+ class NodePoolUpgradeInfo
5867
+ include Google::Apis::Core::Hashable
5868
+
5869
+ # The auto upgrade status.
5870
+ # Corresponds to the JSON property `autoUpgradeStatus`
5871
+ # @return [Array<String>]
5872
+ attr_accessor :auto_upgrade_status
5873
+
5874
+ # The nodepool's current minor version's end of extended support timestamp.
5875
+ # Corresponds to the JSON property `endOfExtendedSupportTimestamp`
5876
+ # @return [String]
5877
+ attr_accessor :end_of_extended_support_timestamp
5878
+
5879
+ # The nodepool's current minor version's end of standard support timestamp.
5880
+ # Corresponds to the JSON property `endOfStandardSupportTimestamp`
5881
+ # @return [String]
5882
+ attr_accessor :end_of_standard_support_timestamp
5883
+
5884
+ # minor_target_version indicates the target version for minor upgrade.
5885
+ # Corresponds to the JSON property `minorTargetVersion`
5886
+ # @return [String]
5887
+ attr_accessor :minor_target_version
5888
+
5889
+ # patch_target_version indicates the target version for patch upgrade.
5890
+ # Corresponds to the JSON property `patchTargetVersion`
5891
+ # @return [String]
5892
+ attr_accessor :patch_target_version
5893
+
5894
+ # The auto upgrade paused reason.
5895
+ # Corresponds to the JSON property `pausedReason`
5896
+ # @return [Array<String>]
5897
+ attr_accessor :paused_reason
5898
+
5899
+ # The list of past auto upgrades.
5900
+ # Corresponds to the JSON property `upgradeDetails`
5901
+ # @return [Array<Google::Apis::ContainerV1beta1::UpgradeDetails>]
5902
+ attr_accessor :upgrade_details
5903
+
5904
+ def initialize(**args)
5905
+ update!(**args)
5906
+ end
5907
+
5908
+ # Update properties of this object
5909
+ def update!(**args)
5910
+ @auto_upgrade_status = args[:auto_upgrade_status] if args.key?(:auto_upgrade_status)
5911
+ @end_of_extended_support_timestamp = args[:end_of_extended_support_timestamp] if args.key?(:end_of_extended_support_timestamp)
5912
+ @end_of_standard_support_timestamp = args[:end_of_standard_support_timestamp] if args.key?(:end_of_standard_support_timestamp)
5913
+ @minor_target_version = args[:minor_target_version] if args.key?(:minor_target_version)
5914
+ @patch_target_version = args[:patch_target_version] if args.key?(:patch_target_version)
5915
+ @paused_reason = args[:paused_reason] if args.key?(:paused_reason)
5916
+ @upgrade_details = args[:upgrade_details] if args.key?(:upgrade_details)
5917
+ end
5918
+ end
5919
+
5490
5920
  # Kubernetes taint is composed of three fields: key, value, and effect. Effect
5491
5921
  # can only be one of three types: NoSchedule, PreferNoSchedule or NoExecute. See
5492
5922
  # [here](https://kubernetes.io/docs/concepts/configuration/taint-and-toleration)
@@ -5797,6 +6227,26 @@ module Google
5797
6227
  end
5798
6228
  end
5799
6229
 
6230
+ # Configuration for the Cloud Storage Parallelstore CSI driver.
6231
+ class ParallelstoreCsiDriverConfig
6232
+ include Google::Apis::Core::Hashable
6233
+
6234
+ # Whether the Cloud Storage Parallelstore CSI driver is enabled for this cluster.
6235
+ # Corresponds to the JSON property `enabled`
6236
+ # @return [Boolean]
6237
+ attr_accessor :enabled
6238
+ alias_method :enabled?, :enabled
6239
+
6240
+ def initialize(**args)
6241
+ update!(**args)
6242
+ end
6243
+
6244
+ # Update properties of this object
6245
+ def update!(**args)
6246
+ @enabled = args[:enabled] if args.key?(:enabled)
6247
+ end
6248
+ end
6249
+
5800
6250
  # ParentProductConfig is the configuration of the parent product of the cluster.
5801
6251
  # This field is used by Google internal products that are built on top of a GKE
5802
6252
  # cluster and take the ownership of the cluster.
@@ -5858,6 +6308,26 @@ module Google
5858
6308
  end
5859
6309
  end
5860
6310
 
6311
+ # PodAutoscaling is used for configuration of parameters for workload
6312
+ # autoscaling.
6313
+ class PodAutoscaling
6314
+ include Google::Apis::Core::Hashable
6315
+
6316
+ # Selected Horizontal Pod Autoscaling profile.
6317
+ # Corresponds to the JSON property `hpaProfile`
6318
+ # @return [String]
6319
+ attr_accessor :hpa_profile
6320
+
6321
+ def initialize(**args)
6322
+ update!(**args)
6323
+ end
6324
+
6325
+ # Update properties of this object
6326
+ def update!(**args)
6327
+ @hpa_profile = args[:hpa_profile] if args.key?(:hpa_profile)
6328
+ end
6329
+ end
6330
+
5861
6331
  # [PRIVATE FIELD] Config for pod CIDR size overprovisioning.
5862
6332
  class PodCidrOverprovisionConfig
5863
6333
  include Google::Apis::Core::Hashable
@@ -5925,7 +6395,10 @@ module Google
5925
6395
  class PrivateClusterConfig
5926
6396
  include Google::Apis::Core::Hashable
5927
6397
 
5928
- # Whether the master's internal IP address is used as the cluster endpoint.
6398
+ # Whether the master's internal IP address is used as the cluster endpoint. Use
6399
+ # ControlPlaneEndpointsConfig.IPEndpointsConfig.enable_public_endpoint instead.
6400
+ # Note that the value of enable_public_endpoint is reversed: if
6401
+ # enable_private_endpoint is false, then enable_public_endpoint will be true.
5929
6402
  # Corresponds to the JSON property `enablePrivateEndpoint`
5930
6403
  # @return [Boolean]
5931
6404
  attr_accessor :enable_private_endpoint
@@ -5933,7 +6406,7 @@ module Google
5933
6406
 
5934
6407
  # Whether nodes have internal IP addresses only. If enabled, all nodes are given
5935
6408
  # only RFC 1918 private addresses and communicate with the master via private
5936
- # networking.
6409
+ # networking. Deprecated: Use NetworkConfig.default_enable_private_nodes instead.
5937
6410
  # Corresponds to the JSON property `enablePrivateNodes`
5938
6411
  # @return [Boolean]
5939
6412
  attr_accessor :enable_private_nodes
@@ -5958,17 +6431,23 @@ module Google
5958
6431
  attr_accessor :peering_name
5959
6432
 
5960
6433
  # Output only. The internal IP address of this cluster's master endpoint.
6434
+ # Deprecated: Use ControlPlaneEndpointsConfig.IPEndpointsConfig.private_endpoint
6435
+ # instead.
5961
6436
  # Corresponds to the JSON property `privateEndpoint`
5962
6437
  # @return [String]
5963
6438
  attr_accessor :private_endpoint
5964
6439
 
5965
6440
  # Subnet to provision the master's private endpoint during cluster creation.
5966
- # Specified in projects/*/regions/*/subnetworks/* format.
6441
+ # Specified in projects/*/regions/*/subnetworks/* format. Deprecated: Use
6442
+ # ControlPlaneEndpointsConfig.IPEndpointsConfig.private_endpoint_subnetwork
6443
+ # instead.
5967
6444
  # Corresponds to the JSON property `privateEndpointSubnetwork`
5968
6445
  # @return [String]
5969
6446
  attr_accessor :private_endpoint_subnetwork
5970
6447
 
5971
6448
  # Output only. The external IP address of this cluster's master endpoint.
6449
+ # Deprecated: Use ControlPlaneEndpointsConfig.IPEndpointsConfig.public_endpoint
6450
+ # instead.
5972
6451
  # Corresponds to the JSON property `publicEndpoint`
5973
6452
  # @return [String]
5974
6453
  attr_accessor :public_endpoint
@@ -6121,6 +6600,36 @@ module Google
6121
6600
  end
6122
6601
  end
6123
6602
 
6603
+ # RBACBindingConfig allows user to restrict ClusterRoleBindings an RoleBindings
6604
+ # that can be created.
6605
+ class RbacBindingConfig
6606
+ include Google::Apis::Core::Hashable
6607
+
6608
+ # Setting this to true will allow any ClusterRoleBinding and RoleBinding with
6609
+ # subjects system:authenticated.
6610
+ # Corresponds to the JSON property `enableInsecureBindingSystemAuthenticated`
6611
+ # @return [Boolean]
6612
+ attr_accessor :enable_insecure_binding_system_authenticated
6613
+ alias_method :enable_insecure_binding_system_authenticated?, :enable_insecure_binding_system_authenticated
6614
+
6615
+ # Setting this to true will allow any ClusterRoleBinding and RoleBinding with
6616
+ # subjets system:anonymous or system:unauthenticated.
6617
+ # Corresponds to the JSON property `enableInsecureBindingSystemUnauthenticated`
6618
+ # @return [Boolean]
6619
+ attr_accessor :enable_insecure_binding_system_unauthenticated
6620
+ alias_method :enable_insecure_binding_system_unauthenticated?, :enable_insecure_binding_system_unauthenticated
6621
+
6622
+ def initialize(**args)
6623
+ update!(**args)
6624
+ end
6625
+
6626
+ # Update properties of this object
6627
+ def update!(**args)
6628
+ @enable_insecure_binding_system_authenticated = args[:enable_insecure_binding_system_authenticated] if args.key?(:enable_insecure_binding_system_authenticated)
6629
+ @enable_insecure_binding_system_unauthenticated = args[:enable_insecure_binding_system_unauthenticated] if args.key?(:enable_insecure_binding_system_unauthenticated)
6630
+ end
6631
+ end
6632
+
6124
6633
  # RangeInfo contains the range name and the range utilization by this cluster.
6125
6634
  class RangeInfo
6126
6635
  include Google::Apis::Core::Hashable
@@ -6299,6 +6808,11 @@ module Google
6299
6808
  # @return [String]
6300
6809
  attr_accessor :default_version
6301
6810
 
6811
+ # The auto upgrade target version for clusters on the channel.
6812
+ # Corresponds to the JSON property `upgradeTargetVersion`
6813
+ # @return [String]
6814
+ attr_accessor :upgrade_target_version
6815
+
6302
6816
  # List of valid versions for the channel.
6303
6817
  # Corresponds to the JSON property `validVersions`
6304
6818
  # @return [Array<String>]
@@ -6313,6 +6827,7 @@ module Google
6313
6827
  @available_versions = args[:available_versions] if args.key?(:available_versions)
6314
6828
  @channel = args[:channel] if args.key?(:channel)
6315
6829
  @default_version = args[:default_version] if args.key?(:default_version)
6830
+ @upgrade_target_version = args[:upgrade_target_version] if args.key?(:upgrade_target_version)
6316
6831
  @valid_versions = args[:valid_versions] if args.key?(:valid_versions)
6317
6832
  end
6318
6833
  end
@@ -6591,7 +7106,7 @@ module Google
6591
7106
  class SecretManagerConfig
6592
7107
  include Google::Apis::Core::Hashable
6593
7108
 
6594
- # Whether the cluster is configured to use secret manager CSI component.
7109
+ # Enable/Disable Secret Manager Config.
6595
7110
  # Corresponds to the JSON property `enabled`
6596
7111
  # @return [Boolean]
6597
7112
  attr_accessor :enabled
@@ -8043,6 +8558,12 @@ module Google
8043
8558
  # @return [Google::Apis::ContainerV1beta1::ResourceManagerTags]
8044
8559
  attr_accessor :resource_manager_tags
8045
8560
 
8561
+ # List of Storage Pools where boot disks are provisioned. Existing Storage Pools
8562
+ # will be replaced with storage-pools.
8563
+ # Corresponds to the JSON property `storagePools`
8564
+ # @return [Array<String>]
8565
+ attr_accessor :storage_pools
8566
+
8046
8567
  # Collection of Compute Engine network tags that can be applied to a node's
8047
8568
  # underlying VM instance. (See `tags` field in [`NodeConfig`](/kubernetes-engine/
8048
8569
  # docs/reference/rest/v1/NodeConfig)).
@@ -8142,6 +8663,7 @@ module Google
8142
8663
  @queued_provisioning = args[:queued_provisioning] if args.key?(:queued_provisioning)
8143
8664
  @resource_labels = args[:resource_labels] if args.key?(:resource_labels)
8144
8665
  @resource_manager_tags = args[:resource_manager_tags] if args.key?(:resource_manager_tags)
8666
+ @storage_pools = args[:storage_pools] if args.key?(:storage_pools)
8145
8667
  @tags = args[:tags] if args.key?(:tags)
8146
8668
  @taints = args[:taints] if args.key?(:taints)
8147
8669
  @upgrade_settings = args[:upgrade_settings] if args.key?(:upgrade_settings)
@@ -8199,6 +8721,50 @@ module Google
8199
8721
  end
8200
8722
  end
8201
8723
 
8724
+ # UpgradeDetails contains detailed information of each individual upgrade
8725
+ # operation.
8726
+ class UpgradeDetails
8727
+ include Google::Apis::Core::Hashable
8728
+
8729
+ # The end timestamp of the upgrade.
8730
+ # Corresponds to the JSON property `endTime`
8731
+ # @return [String]
8732
+ attr_accessor :end_time
8733
+
8734
+ # The version before the upgrade.
8735
+ # Corresponds to the JSON property `initialVersion`
8736
+ # @return [String]
8737
+ attr_accessor :initial_version
8738
+
8739
+ # The start timestamp of the upgrade.
8740
+ # Corresponds to the JSON property `startTime`
8741
+ # @return [String]
8742
+ attr_accessor :start_time
8743
+
8744
+ # Output only. The state of the upgrade.
8745
+ # Corresponds to the JSON property `state`
8746
+ # @return [String]
8747
+ attr_accessor :state
8748
+
8749
+ # The version after the upgrade.
8750
+ # Corresponds to the JSON property `targetVersion`
8751
+ # @return [String]
8752
+ attr_accessor :target_version
8753
+
8754
+ def initialize(**args)
8755
+ update!(**args)
8756
+ end
8757
+
8758
+ # Update properties of this object
8759
+ def update!(**args)
8760
+ @end_time = args[:end_time] if args.key?(:end_time)
8761
+ @initial_version = args[:initial_version] if args.key?(:initial_version)
8762
+ @start_time = args[:start_time] if args.key?(:start_time)
8763
+ @state = args[:state] if args.key?(:state)
8764
+ @target_version = args[:target_version] if args.key?(:target_version)
8765
+ end
8766
+ end
8767
+
8202
8768
  # UpgradeEvent is a notification sent to customers by the cluster server when a
8203
8769
  # resource is upgrading.
8204
8770
  class UpgradeEvent
@@ -8250,6 +8816,75 @@ module Google
8250
8816
  end
8251
8817
  end
8252
8818
 
8819
+ # UpgradeInfoEvent is a notification sent to customers about the upgrade
8820
+ # information of a resource.
8821
+ class UpgradeInfoEvent
8822
+ include Google::Apis::Core::Hashable
8823
+
8824
+ # The current version before the upgrade.
8825
+ # Corresponds to the JSON property `currentVersion`
8826
+ # @return [String]
8827
+ attr_accessor :current_version
8828
+
8829
+ # A brief description of the event.
8830
+ # Corresponds to the JSON property `description`
8831
+ # @return [String]
8832
+ attr_accessor :description
8833
+
8834
+ # The time when the operation ended.
8835
+ # Corresponds to the JSON property `endTime`
8836
+ # @return [String]
8837
+ attr_accessor :end_time
8838
+
8839
+ # The operation associated with this upgrade.
8840
+ # Corresponds to the JSON property `operation`
8841
+ # @return [String]
8842
+ attr_accessor :operation
8843
+
8844
+ # Optional relative path to the resource. For example in node pool upgrades, the
8845
+ # relative path of the node pool.
8846
+ # Corresponds to the JSON property `resource`
8847
+ # @return [String]
8848
+ attr_accessor :resource
8849
+
8850
+ # The resource type associated with the upgrade.
8851
+ # Corresponds to the JSON property `resourceType`
8852
+ # @return [String]
8853
+ attr_accessor :resource_type
8854
+
8855
+ # The time when the operation was started.
8856
+ # Corresponds to the JSON property `startTime`
8857
+ # @return [String]
8858
+ attr_accessor :start_time
8859
+
8860
+ # Output only. The state of the upgrade.
8861
+ # Corresponds to the JSON property `state`
8862
+ # @return [String]
8863
+ attr_accessor :state
8864
+
8865
+ # The target version for the upgrade.
8866
+ # Corresponds to the JSON property `targetVersion`
8867
+ # @return [String]
8868
+ attr_accessor :target_version
8869
+
8870
+ def initialize(**args)
8871
+ update!(**args)
8872
+ end
8873
+
8874
+ # Update properties of this object
8875
+ def update!(**args)
8876
+ @current_version = args[:current_version] if args.key?(:current_version)
8877
+ @description = args[:description] if args.key?(:description)
8878
+ @end_time = args[:end_time] if args.key?(:end_time)
8879
+ @operation = args[:operation] if args.key?(:operation)
8880
+ @resource = args[:resource] if args.key?(:resource)
8881
+ @resource_type = args[:resource_type] if args.key?(:resource_type)
8882
+ @start_time = args[:start_time] if args.key?(:start_time)
8883
+ @state = args[:state] if args.key?(:state)
8884
+ @target_version = args[:target_version] if args.key?(:target_version)
8885
+ end
8886
+ end
8887
+
8253
8888
  # These upgrade settings control the level of parallelism and the level of
8254
8889
  # disruption caused by an upgrade. maxUnavailable controls the number of nodes
8255
8890
  # that can be simultaneously unavailable. maxSurge controls the number of
@@ -8399,6 +9034,78 @@ module Google
8399
9034
  end
8400
9035
  end
8401
9036
 
9037
+ # UserManagedKeysConfig holds the resource address to Keys which are used for
9038
+ # signing certs and token that are used for communication within cluster.
9039
+ class UserManagedKeysConfig
9040
+ include Google::Apis::Core::Hashable
9041
+
9042
+ # The Certificate Authority Service caPool to use for the aggregation CA in this
9043
+ # cluster.
9044
+ # Corresponds to the JSON property `aggregationCa`
9045
+ # @return [String]
9046
+ attr_accessor :aggregation_ca
9047
+
9048
+ # The Certificate Authority Service caPool to use for the cluster CA in this
9049
+ # cluster.
9050
+ # Corresponds to the JSON property `clusterCa`
9051
+ # @return [String]
9052
+ attr_accessor :cluster_ca
9053
+
9054
+ # The Cloud KMS cryptoKey to use for Confidential Hyperdisk on the control plane
9055
+ # nodes.
9056
+ # Corresponds to the JSON property `controlPlaneDiskEncryptionKey`
9057
+ # @return [String]
9058
+ attr_accessor :control_plane_disk_encryption_key
9059
+
9060
+ # Resource path of the Certificate Authority Service caPool to use for the etcd
9061
+ # API CA in this cluster.
9062
+ # Corresponds to the JSON property `etcdApiCa`
9063
+ # @return [String]
9064
+ attr_accessor :etcd_api_ca
9065
+
9066
+ # Resource path of the Certificate Authority Service caPool to use for the etcd
9067
+ # peer CA in this cluster.
9068
+ # Corresponds to the JSON property `etcdPeerCa`
9069
+ # @return [String]
9070
+ attr_accessor :etcd_peer_ca
9071
+
9072
+ # Resource path of the Cloud KMS cryptoKey to use for encryption of internal
9073
+ # etcd backups.
9074
+ # Corresponds to the JSON property `gkeopsEtcdBackupEncryptionKey`
9075
+ # @return [String]
9076
+ attr_accessor :gkeops_etcd_backup_encryption_key
9077
+
9078
+ # The Cloud KMS cryptoKeyVersions to use for signing service account JWTs issued
9079
+ # by this cluster. Format: `projects/`project`/locations/`location`/keyRings/`
9080
+ # keyring`/cryptoKeys/`cryptoKey`/cryptoKeyVersions/`cryptoKeyVersion``
9081
+ # Corresponds to the JSON property `serviceAccountSigningKeys`
9082
+ # @return [Array<String>]
9083
+ attr_accessor :service_account_signing_keys
9084
+
9085
+ # The Cloud KMS cryptoKeyVersions to use for verifying service account JWTs
9086
+ # issued by this cluster. Format: `projects/`project`/locations/`location`/
9087
+ # keyRings/`keyring`/cryptoKeys/`cryptoKey`/cryptoKeyVersions/`cryptoKeyVersion``
9088
+ # Corresponds to the JSON property `serviceAccountVerificationKeys`
9089
+ # @return [Array<String>]
9090
+ attr_accessor :service_account_verification_keys
9091
+
9092
+ def initialize(**args)
9093
+ update!(**args)
9094
+ end
9095
+
9096
+ # Update properties of this object
9097
+ def update!(**args)
9098
+ @aggregation_ca = args[:aggregation_ca] if args.key?(:aggregation_ca)
9099
+ @cluster_ca = args[:cluster_ca] if args.key?(:cluster_ca)
9100
+ @control_plane_disk_encryption_key = args[:control_plane_disk_encryption_key] if args.key?(:control_plane_disk_encryption_key)
9101
+ @etcd_api_ca = args[:etcd_api_ca] if args.key?(:etcd_api_ca)
9102
+ @etcd_peer_ca = args[:etcd_peer_ca] if args.key?(:etcd_peer_ca)
9103
+ @gkeops_etcd_backup_encryption_key = args[:gkeops_etcd_backup_encryption_key] if args.key?(:gkeops_etcd_backup_encryption_key)
9104
+ @service_account_signing_keys = args[:service_account_signing_keys] if args.key?(:service_account_signing_keys)
9105
+ @service_account_verification_keys = args[:service_account_verification_keys] if args.key?(:service_account_verification_keys)
9106
+ end
9107
+ end
9108
+
8402
9109
  # VerticalPodAutoscaling contains global, per-cluster information required by
8403
9110
  # Vertical Pod Autoscaler to automatically adjust the resources of pods
8404
9111
  # controlled by it.