google-apis-container_v1beta1 0.75.0 → 0.76.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -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.