google-apis-container_v1beta1 0.43.0 → 0.78.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.
@@ -37,6 +37,12 @@ module Google
37
37
  # @return [String]
38
38
  attr_accessor :accelerator_type
39
39
 
40
+ # GPUDriverInstallationConfig specifies the version of GPU driver to be auto
41
+ # installed.
42
+ # Corresponds to the JSON property `gpuDriverInstallationConfig`
43
+ # @return [Google::Apis::ContainerV1beta1::GpuDriverInstallationConfig]
44
+ attr_accessor :gpu_driver_installation_config
45
+
40
46
  # Size of partitions to create on the GPU. Valid values are described in the
41
47
  # NVIDIA [mig user guide](https://docs.nvidia.com/datacenter/tesla/mig-user-
42
48
  # guide/#partitioning).
@@ -63,12 +69,105 @@ module Google
63
69
  def update!(**args)
64
70
  @accelerator_count = args[:accelerator_count] if args.key?(:accelerator_count)
65
71
  @accelerator_type = args[:accelerator_type] if args.key?(:accelerator_type)
72
+ @gpu_driver_installation_config = args[:gpu_driver_installation_config] if args.key?(:gpu_driver_installation_config)
66
73
  @gpu_partition_size = args[:gpu_partition_size] if args.key?(:gpu_partition_size)
67
74
  @gpu_sharing_config = args[:gpu_sharing_config] if args.key?(:gpu_sharing_config)
68
75
  @max_time_shared_clients_per_gpu = args[:max_time_shared_clients_per_gpu] if args.key?(:max_time_shared_clients_per_gpu)
69
76
  end
70
77
  end
71
78
 
79
+ # AdditionalNodeNetworkConfig is the configuration for additional node networks
80
+ # within the NodeNetworkConfig message
81
+ class AdditionalNodeNetworkConfig
82
+ include Google::Apis::Core::Hashable
83
+
84
+ # Name of the VPC where the additional interface belongs
85
+ # Corresponds to the JSON property `network`
86
+ # @return [String]
87
+ attr_accessor :network
88
+
89
+ # Name of the subnetwork where the additional interface belongs
90
+ # Corresponds to the JSON property `subnetwork`
91
+ # @return [String]
92
+ attr_accessor :subnetwork
93
+
94
+ def initialize(**args)
95
+ update!(**args)
96
+ end
97
+
98
+ # Update properties of this object
99
+ def update!(**args)
100
+ @network = args[:network] if args.key?(:network)
101
+ @subnetwork = args[:subnetwork] if args.key?(:subnetwork)
102
+ end
103
+ end
104
+
105
+ # AdditionalPodNetworkConfig is the configuration for additional pod networks
106
+ # within the NodeNetworkConfig message
107
+ class AdditionalPodNetworkConfig
108
+ include Google::Apis::Core::Hashable
109
+
110
+ # Constraints applied to pods.
111
+ # Corresponds to the JSON property `maxPodsPerNode`
112
+ # @return [Google::Apis::ContainerV1beta1::MaxPodsConstraint]
113
+ attr_accessor :max_pods_per_node
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
+
121
+ # The name of the secondary range on the subnet which provides IP address for
122
+ # this pod range.
123
+ # Corresponds to the JSON property `secondaryPodRange`
124
+ # @return [String]
125
+ attr_accessor :secondary_pod_range
126
+
127
+ # Name of the subnetwork where the additional pod network belongs.
128
+ # Corresponds to the JSON property `subnetwork`
129
+ # @return [String]
130
+ attr_accessor :subnetwork
131
+
132
+ def initialize(**args)
133
+ update!(**args)
134
+ end
135
+
136
+ # Update properties of this object
137
+ def update!(**args)
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)
140
+ @secondary_pod_range = args[:secondary_pod_range] if args.key?(:secondary_pod_range)
141
+ @subnetwork = args[:subnetwork] if args.key?(:subnetwork)
142
+ end
143
+ end
144
+
145
+ # AdditionalPodRangesConfig is the configuration for additional pod secondary
146
+ # ranges supporting the ClusterUpdate message.
147
+ class AdditionalPodRangesConfig
148
+ include Google::Apis::Core::Hashable
149
+
150
+ # Output only. Information for additional pod range.
151
+ # Corresponds to the JSON property `podRangeInfo`
152
+ # @return [Array<Google::Apis::ContainerV1beta1::RangeInfo>]
153
+ attr_accessor :pod_range_info
154
+
155
+ # Name for pod secondary ipv4 range which has the actual range defined ahead.
156
+ # Corresponds to the JSON property `podRangeNames`
157
+ # @return [Array<String>]
158
+ attr_accessor :pod_range_names
159
+
160
+ def initialize(**args)
161
+ update!(**args)
162
+ end
163
+
164
+ # Update properties of this object
165
+ def update!(**args)
166
+ @pod_range_info = args[:pod_range_info] if args.key?(:pod_range_info)
167
+ @pod_range_names = args[:pod_range_names] if args.key?(:pod_range_names)
168
+ end
169
+ end
170
+
72
171
  # Configuration for the addons that can be automatically spun up in the cluster,
73
172
  # enabling additional functionality.
74
173
  class AddonsConfig
@@ -99,6 +198,11 @@ module Google
99
198
  # @return [Google::Apis::ContainerV1beta1::GcpFilestoreCsiDriverConfig]
100
199
  attr_accessor :gcp_filestore_csi_driver_config
101
200
 
201
+ # Configuration for the Cloud Storage Fuse CSI driver.
202
+ # Corresponds to the JSON property `gcsFuseCsiDriverConfig`
203
+ # @return [Google::Apis::ContainerV1beta1::GcsFuseCsiDriverConfig]
204
+ attr_accessor :gcs_fuse_csi_driver_config
205
+
102
206
  # Configuration for the Backup for GKE Agent.
103
207
  # Corresponds to the JSON property `gkeBackupAgentConfig`
104
208
  # @return [Google::Apis::ContainerV1beta1::GkeBackupAgentConfig]
@@ -139,6 +243,21 @@ module Google
139
243
  # @return [Google::Apis::ContainerV1beta1::NetworkPolicyConfig]
140
244
  attr_accessor :network_policy_config
141
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
+
251
+ # Configuration options for the Ray Operator add-on.
252
+ # Corresponds to the JSON property `rayOperatorConfig`
253
+ # @return [Google::Apis::ContainerV1beta1::RayOperatorConfig]
254
+ attr_accessor :ray_operator_config
255
+
256
+ # Configuration for the Stateful HA add-on.
257
+ # Corresponds to the JSON property `statefulHaConfig`
258
+ # @return [Google::Apis::ContainerV1beta1::StatefulHaConfig]
259
+ attr_accessor :stateful_ha_config
260
+
142
261
  def initialize(**args)
143
262
  update!(**args)
144
263
  end
@@ -150,6 +269,7 @@ module Google
150
269
  @dns_cache_config = args[:dns_cache_config] if args.key?(:dns_cache_config)
151
270
  @gce_persistent_disk_csi_driver_config = args[:gce_persistent_disk_csi_driver_config] if args.key?(:gce_persistent_disk_csi_driver_config)
152
271
  @gcp_filestore_csi_driver_config = args[:gcp_filestore_csi_driver_config] if args.key?(:gcp_filestore_csi_driver_config)
272
+ @gcs_fuse_csi_driver_config = args[:gcs_fuse_csi_driver_config] if args.key?(:gcs_fuse_csi_driver_config)
153
273
  @gke_backup_agent_config = args[:gke_backup_agent_config] if args.key?(:gke_backup_agent_config)
154
274
  @horizontal_pod_autoscaling = args[:horizontal_pod_autoscaling] if args.key?(:horizontal_pod_autoscaling)
155
275
  @http_load_balancing = args[:http_load_balancing] if args.key?(:http_load_balancing)
@@ -157,6 +277,43 @@ module Google
157
277
  @kalm_config = args[:kalm_config] if args.key?(:kalm_config)
158
278
  @kubernetes_dashboard = args[:kubernetes_dashboard] if args.key?(:kubernetes_dashboard)
159
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)
281
+ @ray_operator_config = args[:ray_operator_config] if args.key?(:ray_operator_config)
282
+ @stateful_ha_config = args[:stateful_ha_config] if args.key?(:stateful_ha_config)
283
+ end
284
+ end
285
+
286
+ # AdvancedDatapathObservabilityConfig specifies configuration of observability
287
+ # features of advanced datapath.
288
+ class AdvancedDatapathObservabilityConfig
289
+ include Google::Apis::Core::Hashable
290
+
291
+ # Expose flow metrics on nodes
292
+ # Corresponds to the JSON property `enableMetrics`
293
+ # @return [Boolean]
294
+ attr_accessor :enable_metrics
295
+ alias_method :enable_metrics?, :enable_metrics
296
+
297
+ # Enable Relay component
298
+ # Corresponds to the JSON property `enableRelay`
299
+ # @return [Boolean]
300
+ attr_accessor :enable_relay
301
+ alias_method :enable_relay?, :enable_relay
302
+
303
+ # Method used to make Relay available
304
+ # Corresponds to the JSON property `relayMode`
305
+ # @return [String]
306
+ attr_accessor :relay_mode
307
+
308
+ def initialize(**args)
309
+ update!(**args)
310
+ end
311
+
312
+ # Update properties of this object
313
+ def update!(**args)
314
+ @enable_metrics = args[:enable_metrics] if args.key?(:enable_metrics)
315
+ @enable_relay = args[:enable_relay] if args.key?(:enable_relay)
316
+ @relay_mode = args[:relay_mode] if args.key?(:relay_mode)
160
317
  end
161
318
  end
162
319
 
@@ -164,6 +321,12 @@ module Google
164
321
  class AdvancedMachineFeatures
165
322
  include Google::Apis::Core::Hashable
166
323
 
324
+ # Whether or not to enable nested virtualization (defaults to false).
325
+ # Corresponds to the JSON property `enableNestedVirtualization`
326
+ # @return [Boolean]
327
+ attr_accessor :enable_nested_virtualization
328
+ alias_method :enable_nested_virtualization?, :enable_nested_virtualization
329
+
167
330
  # The number of threads per physical core. To disable simultaneous
168
331
  # multithreading (SMT) set this to 1. If unset, the maximum number of threads
169
332
  # supported per core by the underlying processor is assumed.
@@ -177,6 +340,7 @@ module Google
177
340
 
178
341
  # Update properties of this object
179
342
  def update!(**args)
343
+ @enable_nested_virtualization = args[:enable_nested_virtualization] if args.key?(:enable_nested_virtualization)
180
344
  @threads_per_core = args[:threads_per_core] if args.key?(:threads_per_core)
181
345
  end
182
346
  end
@@ -209,19 +373,39 @@ module Google
209
373
  end
210
374
  end
211
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
+
212
396
  # AutoUpgradeOptions defines the set of options for the user to control how the
213
397
  # Auto Upgrades will proceed.
214
398
  class AutoUpgradeOptions
215
399
  include Google::Apis::Core::Hashable
216
400
 
217
- # [Output only] This field is set when upgrades are about to commence with the
401
+ # Output only. This field is set when upgrades are about to commence with the
218
402
  # approximate start time for the upgrades, in [RFC3339](https://www.ietf.org/rfc/
219
403
  # rfc3339.txt) text format.
220
404
  # Corresponds to the JSON property `autoUpgradeStartTime`
221
405
  # @return [String]
222
406
  attr_accessor :auto_upgrade_start_time
223
407
 
224
- # [Output only] This field is set when upgrades are about to commence with the
408
+ # Output only. This field is set when upgrades are about to commence with the
225
409
  # description of the upgrade.
226
410
  # Corresponds to the JSON property `description`
227
411
  # @return [String]
@@ -242,19 +426,100 @@ module Google
242
426
  class Autopilot
243
427
  include Google::Apis::Core::Hashable
244
428
 
429
+ # AutopilotConversionStatus represents conversion status.
430
+ # Corresponds to the JSON property `conversionStatus`
431
+ # @return [Google::Apis::ContainerV1beta1::AutopilotConversionStatus]
432
+ attr_accessor :conversion_status
433
+
245
434
  # Enable Autopilot
246
435
  # Corresponds to the JSON property `enabled`
247
436
  # @return [Boolean]
248
437
  attr_accessor :enabled
249
438
  alias_method :enabled?, :enabled
250
439
 
440
+ # WorkloadPolicyConfig is the configuration related to GCW workload policy
441
+ # Corresponds to the JSON property `workloadPolicyConfig`
442
+ # @return [Google::Apis::ContainerV1beta1::WorkloadPolicyConfig]
443
+ attr_accessor :workload_policy_config
444
+
251
445
  def initialize(**args)
252
446
  update!(**args)
253
447
  end
254
448
 
255
449
  # Update properties of this object
256
450
  def update!(**args)
451
+ @conversion_status = args[:conversion_status] if args.key?(:conversion_status)
257
452
  @enabled = args[:enabled] if args.key?(:enabled)
453
+ @workload_policy_config = args[:workload_policy_config] if args.key?(:workload_policy_config)
454
+ end
455
+ end
456
+
457
+ # AutopilotCompatibilityIssue contains information about a specific
458
+ # compatibility issue with Autopilot mode.
459
+ class AutopilotCompatibilityIssue
460
+ include Google::Apis::Core::Hashable
461
+
462
+ # The constraint type of the issue.
463
+ # Corresponds to the JSON property `constraintType`
464
+ # @return [String]
465
+ attr_accessor :constraint_type
466
+
467
+ # The description of the issue.
468
+ # Corresponds to the JSON property `description`
469
+ # @return [String]
470
+ attr_accessor :description
471
+
472
+ # A URL to a public documnetation, which addresses resolving this issue.
473
+ # Corresponds to the JSON property `documentationUrl`
474
+ # @return [String]
475
+ attr_accessor :documentation_url
476
+
477
+ # The incompatibility type of this issue.
478
+ # Corresponds to the JSON property `incompatibilityType`
479
+ # @return [String]
480
+ attr_accessor :incompatibility_type
481
+
482
+ # The last time when this issue was observed.
483
+ # Corresponds to the JSON property `lastObservation`
484
+ # @return [String]
485
+ attr_accessor :last_observation
486
+
487
+ # The name of the resources which are subject to this issue.
488
+ # Corresponds to the JSON property `subjects`
489
+ # @return [Array<String>]
490
+ attr_accessor :subjects
491
+
492
+ def initialize(**args)
493
+ update!(**args)
494
+ end
495
+
496
+ # Update properties of this object
497
+ def update!(**args)
498
+ @constraint_type = args[:constraint_type] if args.key?(:constraint_type)
499
+ @description = args[:description] if args.key?(:description)
500
+ @documentation_url = args[:documentation_url] if args.key?(:documentation_url)
501
+ @incompatibility_type = args[:incompatibility_type] if args.key?(:incompatibility_type)
502
+ @last_observation = args[:last_observation] if args.key?(:last_observation)
503
+ @subjects = args[:subjects] if args.key?(:subjects)
504
+ end
505
+ end
506
+
507
+ # AutopilotConversionStatus represents conversion status.
508
+ class AutopilotConversionStatus
509
+ include Google::Apis::Core::Hashable
510
+
511
+ # Output only. The current state of the conversion.
512
+ # Corresponds to the JSON property `state`
513
+ # @return [String]
514
+ attr_accessor :state
515
+
516
+ def initialize(**args)
517
+ update!(**args)
518
+ end
519
+
520
+ # Update properties of this object
521
+ def update!(**args)
522
+ @state = args[:state] if args.key?(:state)
258
523
  end
259
524
  end
260
525
 
@@ -284,11 +549,18 @@ module Google
284
549
  # @return [String]
285
550
  attr_accessor :disk_type
286
551
 
287
- # The image type to use for NAP created node.
552
+ # The image type to use for NAP created node. Please see https://cloud.google.
553
+ # com/kubernetes-engine/docs/concepts/node-images for available image types.
288
554
  # Corresponds to the JSON property `imageType`
289
555
  # @return [String]
290
556
  attr_accessor :image_type
291
557
 
558
+ # Enable or disable Kubelet read only port.
559
+ # Corresponds to the JSON property `insecureKubeletReadonlyPortEnabled`
560
+ # @return [Boolean]
561
+ attr_accessor :insecure_kubelet_readonly_port_enabled
562
+ alias_method :insecure_kubelet_readonly_port_enabled?, :insecure_kubelet_readonly_port_enabled
563
+
292
564
  # NodeManagement defines the set of node management services turned on for the
293
565
  # node pool.
294
566
  # Corresponds to the JSON property `management`
@@ -301,7 +573,7 @@ module Google
301
573
  # Haswell or minCpuPlatform: Intel Sandy Bridge. For more information, read [how
302
574
  # to specify min CPU platform](https://cloud.google.com/compute/docs/instances/
303
575
  # specify-min-cpu-platform). This field is deprecated, min_cpu_platform should
304
- # be specified using https://cloud.google.com/requested-min-cpu-platform label
576
+ # be specified using `cloud.google.com/requested-min-cpu-platform` label
305
577
  # selector on the pod. To unset the min cpu platform field pass "automatic" as
306
578
  # field value.
307
579
  # Corresponds to the JSON property `minCpuPlatform`
@@ -333,6 +605,20 @@ module Google
333
605
  # @return [Google::Apis::ContainerV1beta1::ShieldedInstanceConfig]
334
606
  attr_accessor :shielded_instance_config
335
607
 
608
+ # These upgrade settings control the level of parallelism and the level of
609
+ # disruption caused by an upgrade. maxUnavailable controls the number of nodes
610
+ # that can be simultaneously unavailable. maxSurge controls the number of
611
+ # additional nodes that can be added to the node pool temporarily for the time
612
+ # of the upgrade to increase the number of available nodes. (maxUnavailable +
613
+ # maxSurge) determines the level of parallelism (how many nodes are being
614
+ # upgraded at the same time). Note: upgrades inevitably introduce some
615
+ # disruption since workloads need to be moved from old nodes to new, upgraded
616
+ # ones. Even if maxUnavailable=0, this holds true. (Disruption stays within the
617
+ # limits of PodDisruptionBudget, if it is configured.) Consider a hypothetical
618
+ # node pool with 5 nodes having maxSurge=2, maxUnavailable=1. This means the
619
+ # upgrade process upgrades 3 nodes simultaneously. It creates 2 additional (
620
+ # upgraded) nodes, then it brings down 3 old (not yet upgraded) nodes at the
621
+ # same time. This ensures that there are always at least 4 nodes available.
336
622
  # These upgrade settings configure the upgrade strategy for the node pool. Use
337
623
  # strategy to switch between the strategies applied to the node pool. If the
338
624
  # strategy is SURGE, use max_surge and max_unavailable to control the level of
@@ -364,6 +650,7 @@ module Google
364
650
  @disk_size_gb = args[:disk_size_gb] if args.key?(:disk_size_gb)
365
651
  @disk_type = args[:disk_type] if args.key?(:disk_type)
366
652
  @image_type = args[:image_type] if args.key?(:image_type)
653
+ @insecure_kubelet_readonly_port_enabled = args[:insecure_kubelet_readonly_port_enabled] if args.key?(:insecure_kubelet_readonly_port_enabled)
367
654
  @management = args[:management] if args.key?(:management)
368
655
  @min_cpu_platform = args[:min_cpu_platform] if args.key?(:min_cpu_platform)
369
656
  @oauth_scopes = args[:oauth_scopes] if args.key?(:oauth_scopes)
@@ -373,6 +660,20 @@ module Google
373
660
  end
374
661
  end
375
662
 
663
+ # Autoscaled rollout policy uses cluster autoscaler during blue-green upgrades
664
+ # to scale both the green and blue pools.
665
+ class AutoscaledRolloutPolicy
666
+ include Google::Apis::Core::Hashable
667
+
668
+ def initialize(**args)
669
+ update!(**args)
670
+ end
671
+
672
+ # Update properties of this object
673
+ def update!(**args)
674
+ end
675
+ end
676
+
376
677
  # Deprecated.
377
678
  class AvailableVersion
378
679
  include Google::Apis::Core::Hashable
@@ -398,6 +699,36 @@ module Google
398
699
  end
399
700
  end
400
701
 
702
+ # Best effort provisioning.
703
+ class BestEffortProvisioning
704
+ include Google::Apis::Core::Hashable
705
+
706
+ # When this is enabled, cluster/node pool creations will ignore non-fatal errors
707
+ # like stockout to best provision as many nodes as possible right now and
708
+ # eventually bring up all target number of nodes
709
+ # Corresponds to the JSON property `enabled`
710
+ # @return [Boolean]
711
+ attr_accessor :enabled
712
+ alias_method :enabled?, :enabled
713
+
714
+ # Minimum number of nodes to be provisioned to be considered as succeeded, and
715
+ # the rest of nodes will be provisioned gradually and eventually when stockout
716
+ # issue has been resolved.
717
+ # Corresponds to the JSON property `minProvisionNodes`
718
+ # @return [Fixnum]
719
+ attr_accessor :min_provision_nodes
720
+
721
+ def initialize(**args)
722
+ update!(**args)
723
+ end
724
+
725
+ # Update properties of this object
726
+ def update!(**args)
727
+ @enabled = args[:enabled] if args.key?(:enabled)
728
+ @min_provision_nodes = args[:min_provision_nodes] if args.key?(:min_provision_nodes)
729
+ end
730
+ end
731
+
401
732
  # Parameters for using BigQuery as the destination of resource usage export.
402
733
  class BigQueryDestination
403
734
  include Google::Apis::Core::Hashable
@@ -435,6 +766,11 @@ module Google
435
766
  # @return [String]
436
767
  attr_accessor :evaluation_mode
437
768
 
769
+ # Optional. Binauthz policies that apply to this cluster.
770
+ # Corresponds to the JSON property `policyBindings`
771
+ # @return [Array<Google::Apis::ContainerV1beta1::PolicyBinding>]
772
+ attr_accessor :policy_bindings
773
+
438
774
  def initialize(**args)
439
775
  update!(**args)
440
776
  end
@@ -443,6 +779,7 @@ module Google
443
779
  def update!(**args)
444
780
  @enabled = args[:enabled] if args.key?(:enabled)
445
781
  @evaluation_mode = args[:evaluation_mode] if args.key?(:evaluation_mode)
782
+ @policy_bindings = args[:policy_bindings] if args.key?(:policy_bindings)
446
783
  end
447
784
  end
448
785
 
@@ -496,6 +833,12 @@ module Google
496
833
  class BlueGreenSettings
497
834
  include Google::Apis::Core::Hashable
498
835
 
836
+ # Autoscaled rollout policy uses cluster autoscaler during blue-green upgrades
837
+ # to scale both the green and blue pools.
838
+ # Corresponds to the JSON property `autoscaledRolloutPolicy`
839
+ # @return [Google::Apis::ContainerV1beta1::AutoscaledRolloutPolicy]
840
+ attr_accessor :autoscaled_rollout_policy
841
+
499
842
  # Time needed after draining entire blue pool. After this period, blue pool will
500
843
  # be cleaned up.
501
844
  # Corresponds to the JSON property `nodePoolSoakDuration`
@@ -513,6 +856,7 @@ module Google
513
856
 
514
857
  # Update properties of this object
515
858
  def update!(**args)
859
+ @autoscaled_rollout_policy = args[:autoscaled_rollout_policy] if args.key?(:autoscaled_rollout_policy)
516
860
  @node_pool_soak_duration = args[:node_pool_soak_duration] if args.key?(:node_pool_soak_duration)
517
861
  @standard_rollout_policy = args[:standard_rollout_policy] if args.key?(:standard_rollout_policy)
518
862
  end
@@ -561,6 +905,59 @@ module Google
561
905
  end
562
906
  end
563
907
 
908
+ # CertificateAuthorityDomainConfig configures one or more fully qualified domain
909
+ # names (FQDN) to a specific certificate.
910
+ class CertificateAuthorityDomainConfig
911
+ include Google::Apis::Core::Hashable
912
+
913
+ # List of fully qualified domain names (FQDN). Specifying port is supported.
914
+ # Wilcards are NOT supported. Examples: - my.customdomain.com - 10.0.1.2:5000
915
+ # Corresponds to the JSON property `fqdns`
916
+ # @return [Array<String>]
917
+ attr_accessor :fqdns
918
+
919
+ # GCPSecretManagerCertificateConfig configures a secret from [Google Secret
920
+ # Manager](https://cloud.google.com/secret-manager).
921
+ # Corresponds to the JSON property `gcpSecretManagerCertificateConfig`
922
+ # @return [Google::Apis::ContainerV1beta1::GcpSecretManagerCertificateConfig]
923
+ attr_accessor :gcp_secret_manager_certificate_config
924
+
925
+ def initialize(**args)
926
+ update!(**args)
927
+ end
928
+
929
+ # Update properties of this object
930
+ def update!(**args)
931
+ @fqdns = args[:fqdns] if args.key?(:fqdns)
932
+ @gcp_secret_manager_certificate_config = args[:gcp_secret_manager_certificate_config] if args.key?(:gcp_secret_manager_certificate_config)
933
+ end
934
+ end
935
+
936
+ # CheckAutopilotCompatibilityResponse has a list of compatibility issues.
937
+ class CheckAutopilotCompatibilityResponse
938
+ include Google::Apis::Core::Hashable
939
+
940
+ # The list of issues for the given operation.
941
+ # Corresponds to the JSON property `issues`
942
+ # @return [Array<Google::Apis::ContainerV1beta1::AutopilotCompatibilityIssue>]
943
+ attr_accessor :issues
944
+
945
+ # The summary of the autopilot compatibility response.
946
+ # Corresponds to the JSON property `summary`
947
+ # @return [String]
948
+ attr_accessor :summary
949
+
950
+ def initialize(**args)
951
+ update!(**args)
952
+ end
953
+
954
+ # Update properties of this object
955
+ def update!(**args)
956
+ @issues = args[:issues] if args.key?(:issues)
957
+ @summary = args[:summary] if args.key?(:summary)
958
+ end
959
+ end
960
+
564
961
  # CidrBlock contains an optional name and one CIDR block.
565
962
  class CidrBlock
566
963
  include Google::Apis::Core::Hashable
@@ -677,6 +1074,12 @@ module Google
677
1074
  # @return [Google::Apis::ContainerV1beta1::ClusterTelemetry]
678
1075
  attr_accessor :cluster_telemetry
679
1076
 
1077
+ # CompliancePostureConfig defines the settings needed to enable/disable features
1078
+ # for the Compliance Posture.
1079
+ # Corresponds to the JSON property `compliancePostureConfig`
1080
+ # @return [Google::Apis::ContainerV1beta1::CompliancePostureConfig]
1081
+ attr_accessor :compliance_posture_config
1082
+
680
1083
  # Which conditions caused the current cluster state.
681
1084
  # Corresponds to the JSON property `conditions`
682
1085
  # @return [Array<Google::Apis::ContainerV1beta1::StatusCondition>]
@@ -688,29 +1091,34 @@ module Google
688
1091
  # @return [Google::Apis::ContainerV1beta1::ConfidentialNodes]
689
1092
  attr_accessor :confidential_nodes
690
1093
 
1094
+ # Configuration for all of the cluster's control plane endpoints.
1095
+ # Corresponds to the JSON property `controlPlaneEndpointsConfig`
1096
+ # @return [Google::Apis::ContainerV1beta1::ControlPlaneEndpointsConfig]
1097
+ attr_accessor :control_plane_endpoints_config
1098
+
691
1099
  # Configuration for fine-grained cost management feature.
692
1100
  # Corresponds to the JSON property `costManagementConfig`
693
1101
  # @return [Google::Apis::ContainerV1beta1::CostManagementConfig]
694
1102
  attr_accessor :cost_management_config
695
1103
 
696
- # [Output only] The time the cluster was created, in [RFC3339](https://www.ietf.
1104
+ # Output only. The time the cluster was created, in [RFC3339](https://www.ietf.
697
1105
  # org/rfc/rfc3339.txt) text format.
698
1106
  # Corresponds to the JSON property `createTime`
699
1107
  # @return [String]
700
1108
  attr_accessor :create_time
701
1109
 
702
- # [Output only] The current software version of the master endpoint.
1110
+ # Output only. The current software version of the master endpoint.
703
1111
  # Corresponds to the JSON property `currentMasterVersion`
704
1112
  # @return [String]
705
1113
  attr_accessor :current_master_version
706
1114
 
707
- # [Output only] The number of nodes currently in the cluster. Deprecated. Call
1115
+ # Output only. The number of nodes currently in the cluster. Deprecated. Call
708
1116
  # Kubernetes API directly to retrieve node information.
709
1117
  # Corresponds to the JSON property `currentNodeCount`
710
1118
  # @return [Fixnum]
711
1119
  attr_accessor :current_node_count
712
1120
 
713
- # [Output only] Deprecated, use [NodePool.version](https://cloud.google.com/
1121
+ # Output only. Deprecated, use [NodePool.version](https://cloud.google.com/
714
1122
  # kubernetes-engine/docs/reference/rest/v1beta1/projects.locations.clusters.
715
1123
  # nodePools) instead. The current version of the node software components. If
716
1124
  # they are currently at multiple versions because they're in the process of
@@ -734,6 +1142,11 @@ module Google
734
1142
  # @return [String]
735
1143
  attr_accessor :description
736
1144
 
1145
+ # Kubernetes open source beta apis enabled on the cluster.
1146
+ # Corresponds to the JSON property `enableK8sBetaApis`
1147
+ # @return [Google::Apis::ContainerV1beta1::K8sBetaApiConfig]
1148
+ attr_accessor :enable_k8s_beta_apis
1149
+
737
1150
  # Kubernetes alpha features are enabled on this cluster. This includes alpha API
738
1151
  # groups (e.g. v1beta1) and features that may not be production ready in the
739
1152
  # kubernetes version of the master and nodes. The cluster has no SLA for uptime
@@ -751,7 +1164,7 @@ module Google
751
1164
  attr_accessor :enable_tpu
752
1165
  alias_method :enable_tpu?, :enable_tpu
753
1166
 
754
- # [Output only] The IP address of this cluster's master endpoint. The endpoint
1167
+ # Output only. The IP address of this cluster's master endpoint. The endpoint
755
1168
  # can be accessed from the internet at `https://username:password@endpoint/`.
756
1169
  # See the `masterAuth` property of this resource for username and password
757
1170
  # information.
@@ -759,6 +1172,11 @@ module Google
759
1172
  # @return [String]
760
1173
  attr_accessor :endpoint
761
1174
 
1175
+ # EnterpriseConfig is the cluster enterprise configuration.
1176
+ # Corresponds to the JSON property `enterpriseConfig`
1177
+ # @return [Google::Apis::ContainerV1beta1::EnterpriseConfig]
1178
+ attr_accessor :enterprise_config
1179
+
762
1180
  # This checksum is computed by the server based on the value of cluster fields,
763
1181
  # and may be sent on update requests to ensure the client has an up-to-date
764
1182
  # value before proceeding.
@@ -766,12 +1184,17 @@ module Google
766
1184
  # @return [String]
767
1185
  attr_accessor :etag
768
1186
 
769
- # [Output only] The time the cluster will be automatically deleted in [RFC3339](
1187
+ # Output only. The time the cluster will be automatically deleted in [RFC3339](
770
1188
  # https://www.ietf.org/rfc/rfc3339.txt) text format.
771
1189
  # Corresponds to the JSON property `expireTime`
772
1190
  # @return [String]
773
1191
  attr_accessor :expire_time
774
1192
 
1193
+ # Fleet is the fleet configuration for the cluster.
1194
+ # Corresponds to the JSON property `fleet`
1195
+ # @return [Google::Apis::ContainerV1beta1::Fleet]
1196
+ attr_accessor :fleet
1197
+
775
1198
  # Output only. Unique id for the cluster.
776
1199
  # Corresponds to the JSON property `id`
777
1200
  # @return [String]
@@ -808,7 +1231,7 @@ module Google
808
1231
  # @return [Fixnum]
809
1232
  attr_accessor :initial_node_count
810
1233
 
811
- # Deprecated. Use node_pools.instance_group_urls.
1234
+ # Output only. Deprecated. Use node_pools.instance_group_urls.
812
1235
  # Corresponds to the JSON property `instanceGroupUrls`
813
1236
  # @return [Array<String>]
814
1237
  attr_accessor :instance_group_urls
@@ -828,10 +1251,10 @@ module Google
828
1251
  # @return [Google::Apis::ContainerV1beta1::LegacyAbac]
829
1252
  attr_accessor :legacy_abac
830
1253
 
831
- # [Output only] The name of the Google Compute Engine [zone](https://cloud.
832
- # google.com/compute/docs/regions-zones/regions-zones#available) or [region](
833
- # https://cloud.google.com/compute/docs/regions-zones/regions-zones#available)
834
- # in which the cluster resides.
1254
+ # Output only. The name of the Google Compute Engine [zone](https://cloud.google.
1255
+ # com/compute/docs/regions-zones/regions-zones#available) or [region](https://
1256
+ # cloud.google.com/compute/docs/regions-zones/regions-zones#available) in which
1257
+ # the cluster resides.
835
1258
  # Corresponds to the JSON property `location`
836
1259
  # @return [String]
837
1260
  attr_accessor :location
@@ -952,9 +1375,9 @@ module Google
952
1375
  # @return [Google::Apis::ContainerV1beta1::NodeConfig]
953
1376
  attr_accessor :node_config
954
1377
 
955
- # [Output only] The size of the address space on each node for hosting
956
- # containers. This is provisioned from within the `container_ipv4_cidr` range.
957
- # This field will only be set when cluster is in route-based network mode.
1378
+ # Output only. The size of the address space on each node for hosting containers.
1379
+ # This is provisioned from within the `container_ipv4_cidr` range. This field
1380
+ # will only be set when cluster is in route-based network mode.
958
1381
  # Corresponds to the JSON property `nodeIpv4CidrSize`
959
1382
  # @return [Fixnum]
960
1383
  attr_accessor :node_ipv4_cidr_size
@@ -981,6 +1404,19 @@ module Google
981
1404
  # @return [Google::Apis::ContainerV1beta1::NotificationConfig]
982
1405
  attr_accessor :notification_config
983
1406
 
1407
+ # ParentProductConfig is the configuration of the parent product of the cluster.
1408
+ # This field is used by Google internal products that are built on top of a GKE
1409
+ # cluster and take the ownership of the cluster.
1410
+ # Corresponds to the JSON property `parentProductConfig`
1411
+ # @return [Google::Apis::ContainerV1beta1::ParentProductConfig]
1412
+ attr_accessor :parent_product_config
1413
+
1414
+ # PodAutoscaling is used for configuration of parameters for workload
1415
+ # autoscaling.
1416
+ # Corresponds to the JSON property `podAutoscaling`
1417
+ # @return [Google::Apis::ContainerV1beta1::PodAutoscaling]
1418
+ attr_accessor :pod_autoscaling
1419
+
984
1420
  # Configuration for the PodSecurityPolicy feature.
985
1421
  # Corresponds to the JSON property `podSecurityPolicyConfig`
986
1422
  # @return [Google::Apis::ContainerV1beta1::PodSecurityPolicyConfig]
@@ -1006,6 +1442,12 @@ module Google
1006
1442
  # @return [Google::Apis::ContainerV1beta1::ProtectConfig]
1007
1443
  attr_accessor :protect_config
1008
1444
 
1445
+ # RBACBindingConfig allows user to restrict ClusterRoleBindings an RoleBindings
1446
+ # that can be created.
1447
+ # Corresponds to the JSON property `rbacBindingConfig`
1448
+ # @return [Google::Apis::ContainerV1beta1::RbacBindingConfig]
1449
+ attr_accessor :rbac_binding_config
1450
+
1009
1451
  # ReleaseChannel indicates which release channel a cluster is subscribed to.
1010
1452
  # Release channels are arranged in order of risk. When a cluster is subscribed
1011
1453
  # to a release channel, Google maintains both the master version and the node
@@ -1025,12 +1467,35 @@ module Google
1025
1467
  # @return [Google::Apis::ContainerV1beta1::ResourceUsageExportConfig]
1026
1468
  attr_accessor :resource_usage_export_config
1027
1469
 
1028
- # [Output only] Server-defined URL for the resource.
1470
+ # Output only. Reserved for future use.
1471
+ # Corresponds to the JSON property `satisfiesPzi`
1472
+ # @return [Boolean]
1473
+ attr_accessor :satisfies_pzi
1474
+ alias_method :satisfies_pzi?, :satisfies_pzi
1475
+
1476
+ # Output only. Reserved for future use.
1477
+ # Corresponds to the JSON property `satisfiesPzs`
1478
+ # @return [Boolean]
1479
+ attr_accessor :satisfies_pzs
1480
+ alias_method :satisfies_pzs?, :satisfies_pzs
1481
+
1482
+ # SecretManagerConfig is config for secret manager enablement.
1483
+ # Corresponds to the JSON property `secretManagerConfig`
1484
+ # @return [Google::Apis::ContainerV1beta1::SecretManagerConfig]
1485
+ attr_accessor :secret_manager_config
1486
+
1487
+ # SecurityPostureConfig defines the flags needed to enable/disable features for
1488
+ # the Security Posture API.
1489
+ # Corresponds to the JSON property `securityPostureConfig`
1490
+ # @return [Google::Apis::ContainerV1beta1::SecurityPostureConfig]
1491
+ attr_accessor :security_posture_config
1492
+
1493
+ # Output only. Server-defined URL for the resource.
1029
1494
  # Corresponds to the JSON property `selfLink`
1030
1495
  # @return [String]
1031
1496
  attr_accessor :self_link
1032
1497
 
1033
- # [Output only] The IP address range of the Kubernetes services in this cluster,
1498
+ # Output only. The IP address range of the Kubernetes services in this cluster,
1034
1499
  # in [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)
1035
1500
  # notation (e.g. `1.2.3.4/29`). Service addresses are typically put in the last `
1036
1501
  # /16` from the container CIDR.
@@ -1043,12 +1508,12 @@ module Google
1043
1508
  # @return [Google::Apis::ContainerV1beta1::ShieldedNodes]
1044
1509
  attr_accessor :shielded_nodes
1045
1510
 
1046
- # [Output only] The current status of this cluster.
1511
+ # Output only. The current status of this cluster.
1047
1512
  # Corresponds to the JSON property `status`
1048
1513
  # @return [String]
1049
1514
  attr_accessor :status
1050
1515
 
1051
- # [Output only] Deprecated. Use conditions instead. Additional information about
1516
+ # Output only. Deprecated. Use conditions instead. Additional information about
1052
1517
  # the current status of this cluster, if available.
1053
1518
  # Corresponds to the JSON property `statusMessage`
1054
1519
  # @return [String]
@@ -1066,13 +1531,19 @@ module Google
1066
1531
  # @return [Google::Apis::ContainerV1beta1::TpuConfig]
1067
1532
  attr_accessor :tpu_config
1068
1533
 
1069
- # [Output only] The IP address range of the Cloud TPUs in this cluster, in [CIDR]
1070
- # (http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing) notation (e.g. `
1071
- # 1.2.3.4/29`).
1534
+ # Output only. The IP address range of the Cloud TPUs in this cluster, in [CIDR](
1535
+ # http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing) notation (e.g. `1.
1536
+ # 2.3.4/29`).
1072
1537
  # Corresponds to the JSON property `tpuIpv4CidrBlock`
1073
1538
  # @return [String]
1074
1539
  attr_accessor :tpu_ipv4_cidr_block
1075
1540
 
1541
+ # UserManagedKeysConfig holds the resource address to Keys which are used for
1542
+ # signing certs and token that are used for communication within cluster.
1543
+ # Corresponds to the JSON property `userManagedKeysConfig`
1544
+ # @return [Google::Apis::ContainerV1beta1::UserManagedKeysConfig]
1545
+ attr_accessor :user_managed_keys_config
1546
+
1076
1547
  # VerticalPodAutoscaling contains global, per-cluster information required by
1077
1548
  # Vertical Pod Autoscaler to automatically adjust the resources of pods
1078
1549
  # controlled by it.
@@ -1095,9 +1566,9 @@ module Google
1095
1566
  # @return [Google::Apis::ContainerV1beta1::WorkloadIdentityConfig]
1096
1567
  attr_accessor :workload_identity_config
1097
1568
 
1098
- # [Output only] The name of the Google Compute Engine [zone](https://cloud.
1099
- # google.com/compute/docs/zones#available) in which the cluster resides. This
1100
- # field is deprecated, use location instead.
1569
+ # Output only. The name of the Google Compute Engine [zone](https://cloud.google.
1570
+ # com/compute/docs/zones#available) in which the cluster resides. This field is
1571
+ # deprecated, use location instead.
1101
1572
  # Corresponds to the JSON property `zone`
1102
1573
  # @return [String]
1103
1574
  attr_accessor :zone
@@ -1115,8 +1586,10 @@ module Google
1115
1586
  @binary_authorization = args[:binary_authorization] if args.key?(:binary_authorization)
1116
1587
  @cluster_ipv4_cidr = args[:cluster_ipv4_cidr] if args.key?(:cluster_ipv4_cidr)
1117
1588
  @cluster_telemetry = args[:cluster_telemetry] if args.key?(:cluster_telemetry)
1589
+ @compliance_posture_config = args[:compliance_posture_config] if args.key?(:compliance_posture_config)
1118
1590
  @conditions = args[:conditions] if args.key?(:conditions)
1119
1591
  @confidential_nodes = args[:confidential_nodes] if args.key?(:confidential_nodes)
1592
+ @control_plane_endpoints_config = args[:control_plane_endpoints_config] if args.key?(:control_plane_endpoints_config)
1120
1593
  @cost_management_config = args[:cost_management_config] if args.key?(:cost_management_config)
1121
1594
  @create_time = args[:create_time] if args.key?(:create_time)
1122
1595
  @current_master_version = args[:current_master_version] if args.key?(:current_master_version)
@@ -1125,11 +1598,14 @@ module Google
1125
1598
  @database_encryption = args[:database_encryption] if args.key?(:database_encryption)
1126
1599
  @default_max_pods_constraint = args[:default_max_pods_constraint] if args.key?(:default_max_pods_constraint)
1127
1600
  @description = args[:description] if args.key?(:description)
1601
+ @enable_k8s_beta_apis = args[:enable_k8s_beta_apis] if args.key?(:enable_k8s_beta_apis)
1128
1602
  @enable_kubernetes_alpha = args[:enable_kubernetes_alpha] if args.key?(:enable_kubernetes_alpha)
1129
1603
  @enable_tpu = args[:enable_tpu] if args.key?(:enable_tpu)
1130
1604
  @endpoint = args[:endpoint] if args.key?(:endpoint)
1605
+ @enterprise_config = args[:enterprise_config] if args.key?(:enterprise_config)
1131
1606
  @etag = args[:etag] if args.key?(:etag)
1132
1607
  @expire_time = args[:expire_time] if args.key?(:expire_time)
1608
+ @fleet = args[:fleet] if args.key?(:fleet)
1133
1609
  @id = args[:id] if args.key?(:id)
1134
1610
  @identity_service_config = args[:identity_service_config] if args.key?(:identity_service_config)
1135
1611
  @initial_cluster_version = args[:initial_cluster_version] if args.key?(:initial_cluster_version)
@@ -1160,13 +1636,20 @@ module Google
1160
1636
  @node_pool_defaults = args[:node_pool_defaults] if args.key?(:node_pool_defaults)
1161
1637
  @node_pools = args[:node_pools] if args.key?(:node_pools)
1162
1638
  @notification_config = args[:notification_config] if args.key?(:notification_config)
1639
+ @parent_product_config = args[:parent_product_config] if args.key?(:parent_product_config)
1640
+ @pod_autoscaling = args[:pod_autoscaling] if args.key?(:pod_autoscaling)
1163
1641
  @pod_security_policy_config = args[:pod_security_policy_config] if args.key?(:pod_security_policy_config)
1164
1642
  @private_cluster = args[:private_cluster] if args.key?(:private_cluster)
1165
1643
  @private_cluster_config = args[:private_cluster_config] if args.key?(:private_cluster_config)
1166
1644
  @protect_config = args[:protect_config] if args.key?(:protect_config)
1645
+ @rbac_binding_config = args[:rbac_binding_config] if args.key?(:rbac_binding_config)
1167
1646
  @release_channel = args[:release_channel] if args.key?(:release_channel)
1168
1647
  @resource_labels = args[:resource_labels] if args.key?(:resource_labels)
1169
1648
  @resource_usage_export_config = args[:resource_usage_export_config] if args.key?(:resource_usage_export_config)
1649
+ @satisfies_pzi = args[:satisfies_pzi] if args.key?(:satisfies_pzi)
1650
+ @satisfies_pzs = args[:satisfies_pzs] if args.key?(:satisfies_pzs)
1651
+ @secret_manager_config = args[:secret_manager_config] if args.key?(:secret_manager_config)
1652
+ @security_posture_config = args[:security_posture_config] if args.key?(:security_posture_config)
1170
1653
  @self_link = args[:self_link] if args.key?(:self_link)
1171
1654
  @services_ipv4_cidr = args[:services_ipv4_cidr] if args.key?(:services_ipv4_cidr)
1172
1655
  @shielded_nodes = args[:shielded_nodes] if args.key?(:shielded_nodes)
@@ -1175,6 +1658,7 @@ module Google
1175
1658
  @subnetwork = args[:subnetwork] if args.key?(:subnetwork)
1176
1659
  @tpu_config = args[:tpu_config] if args.key?(:tpu_config)
1177
1660
  @tpu_ipv4_cidr_block = args[:tpu_ipv4_cidr_block] if args.key?(:tpu_ipv4_cidr_block)
1661
+ @user_managed_keys_config = args[:user_managed_keys_config] if args.key?(:user_managed_keys_config)
1178
1662
  @vertical_pod_autoscaling = args[:vertical_pod_autoscaling] if args.key?(:vertical_pod_autoscaling)
1179
1663
  @workload_alts_config = args[:workload_alts_config] if args.key?(:workload_alts_config)
1180
1664
  @workload_certificates = args[:workload_certificates] if args.key?(:workload_certificates)
@@ -1232,6 +1716,25 @@ module Google
1232
1716
  end
1233
1717
  end
1234
1718
 
1719
+ # Configuration of all network bandwidth tiers
1720
+ class ClusterNetworkPerformanceConfig
1721
+ include Google::Apis::Core::Hashable
1722
+
1723
+ # Specifies the total network bandwidth tier for the NodePool.
1724
+ # Corresponds to the JSON property `totalEgressBandwidthTier`
1725
+ # @return [String]
1726
+ attr_accessor :total_egress_bandwidth_tier
1727
+
1728
+ def initialize(**args)
1729
+ update!(**args)
1730
+ end
1731
+
1732
+ # Update properties of this object
1733
+ def update!(**args)
1734
+ @total_egress_bandwidth_tier = args[:total_egress_bandwidth_tier] if args.key?(:total_egress_bandwidth_tier)
1735
+ end
1736
+ end
1737
+
1235
1738
  # Telemetry integration for the cluster.
1236
1739
  class ClusterTelemetry
1237
1740
  include Google::Apis::Core::Hashable
@@ -1256,6 +1759,12 @@ module Google
1256
1759
  class ClusterUpdate
1257
1760
  include Google::Apis::Core::Hashable
1258
1761
 
1762
+ # AdditionalPodRangesConfig is the configuration for additional pod secondary
1763
+ # ranges supporting the ClusterUpdate message.
1764
+ # Corresponds to the JSON property `additionalPodRangesConfig`
1765
+ # @return [Google::Apis::ContainerV1beta1::AdditionalPodRangesConfig]
1766
+ attr_accessor :additional_pod_ranges_config
1767
+
1259
1768
  # Configuration for the addons that can be automatically spun up in the cluster,
1260
1769
  # enabling additional functionality.
1261
1770
  # Corresponds to the JSON property `desiredAddonsConfig`
@@ -1267,6 +1776,11 @@ module Google
1267
1776
  # @return [Google::Apis::ContainerV1beta1::AuthenticatorGroupsConfig]
1268
1777
  attr_accessor :desired_authenticator_groups_config
1269
1778
 
1779
+ # WorkloadPolicyConfig is the configuration related to GCW workload policy
1780
+ # Corresponds to the JSON property `desiredAutopilotWorkloadPolicyConfig`
1781
+ # @return [Google::Apis::ContainerV1beta1::WorkloadPolicyConfig]
1782
+ attr_accessor :desired_autopilot_workload_policy_config
1783
+
1270
1784
  # Configuration for Binary Authorization.
1271
1785
  # Corresponds to the JSON property `desiredBinaryAuthorization`
1272
1786
  # @return [Google::Apis::ContainerV1beta1::BinaryAuthorization]
@@ -1284,6 +1798,22 @@ module Google
1284
1798
  # @return [Google::Apis::ContainerV1beta1::ClusterTelemetry]
1285
1799
  attr_accessor :desired_cluster_telemetry
1286
1800
 
1801
+ # CompliancePostureConfig defines the settings needed to enable/disable features
1802
+ # for the Compliance Posture.
1803
+ # Corresponds to the JSON property `desiredCompliancePostureConfig`
1804
+ # @return [Google::Apis::ContainerV1beta1::CompliancePostureConfig]
1805
+ attr_accessor :desired_compliance_posture_config
1806
+
1807
+ # ContainerdConfig contains configuration to customize containerd.
1808
+ # Corresponds to the JSON property `desiredContainerdConfig`
1809
+ # @return [Google::Apis::ContainerV1beta1::ContainerdConfig]
1810
+ attr_accessor :desired_containerd_config
1811
+
1812
+ # Configuration for all of the cluster's control plane endpoints.
1813
+ # Corresponds to the JSON property `desiredControlPlaneEndpointsConfig`
1814
+ # @return [Google::Apis::ContainerV1beta1::ControlPlaneEndpointsConfig]
1815
+ attr_accessor :desired_control_plane_endpoints_config
1816
+
1287
1817
  # Configuration for fine-grained cost management feature.
1288
1818
  # Corresponds to the JSON property `desiredCostManagementConfig`
1289
1819
  # @return [Google::Apis::ContainerV1beta1::CostManagementConfig]
@@ -1299,23 +1829,68 @@ module Google
1299
1829
  # @return [String]
1300
1830
  attr_accessor :desired_datapath_provider
1301
1831
 
1302
- # DefaultSnatStatus contains the desired state of whether default sNAT should be
1832
+ # Override the default setting of whether future created nodes have private IP
1833
+ # addresses only, namely NetworkConfig.default_enable_private_nodes
1834
+ # Corresponds to the JSON property `desiredDefaultEnablePrivateNodes`
1835
+ # @return [Boolean]
1836
+ attr_accessor :desired_default_enable_private_nodes
1837
+ alias_method :desired_default_enable_private_nodes?, :desired_default_enable_private_nodes
1838
+
1839
+ # DefaultSnatStatus contains the desired state of whether default sNAT should be
1303
1840
  # disabled on the cluster.
1304
1841
  # Corresponds to the JSON property `desiredDefaultSnatStatus`
1305
1842
  # @return [Google::Apis::ContainerV1beta1::DefaultSnatStatus]
1306
1843
  attr_accessor :desired_default_snat_status
1307
1844
 
1845
+ # Enable/Disable L4 LB VPC firewall reconciliation for the cluster.
1846
+ # Corresponds to the JSON property `desiredDisableL4LbFirewallReconciliation`
1847
+ # @return [Boolean]
1848
+ attr_accessor :desired_disable_l4_lb_firewall_reconciliation
1849
+ alias_method :desired_disable_l4_lb_firewall_reconciliation?, :desired_disable_l4_lb_firewall_reconciliation
1850
+
1308
1851
  # DNSConfig contains the desired set of options for configuring clusterDNS.
1309
1852
  # Corresponds to the JSON property `desiredDnsConfig`
1310
1853
  # @return [Google::Apis::ContainerV1beta1::DnsConfig]
1311
1854
  attr_accessor :desired_dns_config
1312
1855
 
1313
- # Enable/Disable private endpoint for the cluster's master.
1856
+ # Enable/Disable Cilium Clusterwide Network Policy for the cluster.
1857
+ # Corresponds to the JSON property `desiredEnableCiliumClusterwideNetworkPolicy`
1858
+ # @return [Boolean]
1859
+ attr_accessor :desired_enable_cilium_clusterwide_network_policy
1860
+ alias_method :desired_enable_cilium_clusterwide_network_policy?, :desired_enable_cilium_clusterwide_network_policy
1861
+
1862
+ # Enable/Disable FQDN Network Policy for the cluster.
1863
+ # Corresponds to the JSON property `desiredEnableFqdnNetworkPolicy`
1864
+ # @return [Boolean]
1865
+ attr_accessor :desired_enable_fqdn_network_policy
1866
+ alias_method :desired_enable_fqdn_network_policy?, :desired_enable_fqdn_network_policy
1867
+
1868
+ # Enable/Disable Multi-Networking for the cluster
1869
+ # Corresponds to the JSON property `desiredEnableMultiNetworking`
1870
+ # @return [Boolean]
1871
+ attr_accessor :desired_enable_multi_networking
1872
+ alias_method :desired_enable_multi_networking?, :desired_enable_multi_networking
1873
+
1874
+ # Enable/Disable private endpoint for the cluster's master. Deprecated: Use
1875
+ # desired_control_plane_endpoints_config.ip_endpoints_config.
1876
+ # enable_public_endpoint instead. Note that the value of enable_public_endpoint
1877
+ # is reversed: if enable_private_endpoint is false, then enable_public_endpoint
1878
+ # will be true.
1314
1879
  # Corresponds to the JSON property `desiredEnablePrivateEndpoint`
1315
1880
  # @return [Boolean]
1316
1881
  attr_accessor :desired_enable_private_endpoint
1317
1882
  alias_method :desired_enable_private_endpoint?, :desired_enable_private_endpoint
1318
1883
 
1884
+ # DesiredEnterpriseConfig is a wrapper used for updating enterprise_config.
1885
+ # Corresponds to the JSON property `desiredEnterpriseConfig`
1886
+ # @return [Google::Apis::ContainerV1beta1::DesiredEnterpriseConfig]
1887
+ attr_accessor :desired_enterprise_config
1888
+
1889
+ # Fleet is the fleet configuration for the cluster.
1890
+ # Corresponds to the JSON property `desiredFleet`
1891
+ # @return [Google::Apis::ContainerV1beta1::Fleet]
1892
+ attr_accessor :desired_fleet
1893
+
1319
1894
  # GatewayAPIConfig contains the desired config of Gateway API on this cluster.
1320
1895
  # Corresponds to the JSON property `desiredGatewayApiConfig`
1321
1896
  # @return [Google::Apis::ContainerV1beta1::GatewayApiConfig]
@@ -1326,6 +1901,12 @@ module Google
1326
1901
  # @return [Google::Apis::ContainerV1beta1::GcfsConfig]
1327
1902
  attr_accessor :desired_gcfs_config
1328
1903
 
1904
+ # HostMaintenancePolicy contains the maintenance policy for the hosts on which
1905
+ # the GKE VMs run on.
1906
+ # Corresponds to the JSON property `desiredHostMaintenancePolicy`
1907
+ # @return [Google::Apis::ContainerV1beta1::HostMaintenancePolicy]
1908
+ attr_accessor :desired_host_maintenance_policy
1909
+
1329
1910
  # IdentityServiceConfig is configuration for Identity Service which allows
1330
1911
  # customers to use external identity providers with the K8S API
1331
1912
  # Corresponds to the JSON property `desiredIdentityServiceConfig`
@@ -1338,12 +1919,23 @@ module Google
1338
1919
  # @return [String]
1339
1920
  attr_accessor :desired_image_type
1340
1921
 
1922
+ # Specify the details of in-transit encryption. Now named inter-node transparent
1923
+ # encryption.
1924
+ # Corresponds to the JSON property `desiredInTransitEncryptionConfig`
1925
+ # @return [String]
1926
+ attr_accessor :desired_in_transit_encryption_config
1927
+
1341
1928
  # IntraNodeVisibilityConfig contains the desired config of the intra-node
1342
1929
  # visibility on this cluster.
1343
1930
  # Corresponds to the JSON property `desiredIntraNodeVisibilityConfig`
1344
1931
  # @return [Google::Apis::ContainerV1beta1::IntraNodeVisibilityConfig]
1345
1932
  attr_accessor :desired_intra_node_visibility_config
1346
1933
 
1934
+ # Kubernetes open source beta apis enabled on the cluster.
1935
+ # Corresponds to the JSON property `desiredK8sBetaApis`
1936
+ # @return [Google::Apis::ContainerV1beta1::K8sBetaApiConfig]
1937
+ attr_accessor :desired_k8s_beta_apis
1938
+
1347
1939
  # ILBSubsettingConfig contains the desired config of L4 Internal LoadBalancer
1348
1940
  # subsetting on this cluster.
1349
1941
  # Corresponds to the JSON property `desiredL4ilbSubsettingConfig`
@@ -1420,6 +2012,26 @@ module Google
1420
2012
  # @return [String]
1421
2013
  attr_accessor :desired_monitoring_service
1422
2014
 
2015
+ # Configuration of all network bandwidth tiers
2016
+ # Corresponds to the JSON property `desiredNetworkPerformanceConfig`
2017
+ # @return [Google::Apis::ContainerV1beta1::ClusterNetworkPerformanceConfig]
2018
+ attr_accessor :desired_network_performance_config
2019
+
2020
+ # Node kubelet configs.
2021
+ # Corresponds to the JSON property `desiredNodeKubeletConfig`
2022
+ # @return [Google::Apis::ContainerV1beta1::NodeKubeletConfig]
2023
+ attr_accessor :desired_node_kubelet_config
2024
+
2025
+ # Node kubelet configs.
2026
+ # Corresponds to the JSON property `desiredNodePoolAutoConfigKubeletConfig`
2027
+ # @return [Google::Apis::ContainerV1beta1::NodeKubeletConfig]
2028
+ attr_accessor :desired_node_pool_auto_config_kubelet_config
2029
+
2030
+ # Parameters that can be configured on Linux nodes.
2031
+ # Corresponds to the JSON property `desiredNodePoolAutoConfigLinuxNodeConfig`
2032
+ # @return [Google::Apis::ContainerV1beta1::LinuxNodeConfig]
2033
+ attr_accessor :desired_node_pool_auto_config_linux_node_config
2034
+
1423
2035
  # Collection of Compute Engine network tags that can be applied to a node's
1424
2036
  # underlying VM instance. (See `tags` field in [`NodeConfig`](/kubernetes-engine/
1425
2037
  # docs/reference/rest/v1/NodeConfig)).
@@ -1427,6 +2039,15 @@ module Google
1427
2039
  # @return [Google::Apis::ContainerV1beta1::NetworkTags]
1428
2040
  attr_accessor :desired_node_pool_auto_config_network_tags
1429
2041
 
2042
+ # A map of resource manager tag keys and values to be attached to the nodes for
2043
+ # managing Compute Engine firewalls using Network Firewall Policies. Tags must
2044
+ # be according to specifications in https://cloud.google.com/vpc/docs/tags-
2045
+ # firewalls-overview#specifications. A maximum of 5 tag key-value pairs can be
2046
+ # specified. Existing tags will be replaced with new values.
2047
+ # Corresponds to the JSON property `desiredNodePoolAutoConfigResourceManagerTags`
2048
+ # @return [Google::Apis::ContainerV1beta1::ResourceManagerTags]
2049
+ attr_accessor :desired_node_pool_auto_config_resource_manager_tags
2050
+
1430
2051
  # NodePoolAutoscaling contains information required by cluster autoscaler to
1431
2052
  # adjust the size of the node pool to the current cluster usage.
1432
2053
  # Corresponds to the JSON property `desiredNodePoolAutoscaling`
@@ -1462,6 +2083,19 @@ module Google
1462
2083
  # @return [Google::Apis::ContainerV1beta1::NotificationConfig]
1463
2084
  attr_accessor :desired_notification_config
1464
2085
 
2086
+ # ParentProductConfig is the configuration of the parent product of the cluster.
2087
+ # This field is used by Google internal products that are built on top of a GKE
2088
+ # cluster and take the ownership of the cluster.
2089
+ # Corresponds to the JSON property `desiredParentProductConfig`
2090
+ # @return [Google::Apis::ContainerV1beta1::ParentProductConfig]
2091
+ attr_accessor :desired_parent_product_config
2092
+
2093
+ # PodAutoscaling is used for configuration of parameters for workload
2094
+ # autoscaling.
2095
+ # Corresponds to the JSON property `desiredPodAutoscaling`
2096
+ # @return [Google::Apis::ContainerV1beta1::PodAutoscaling]
2097
+ attr_accessor :desired_pod_autoscaling
2098
+
1465
2099
  # Configuration for the PodSecurityPolicy feature.
1466
2100
  # Corresponds to the JSON property `desiredPodSecurityPolicyConfig`
1467
2101
  # @return [Google::Apis::ContainerV1beta1::PodSecurityPolicyConfig]
@@ -1483,6 +2117,12 @@ module Google
1483
2117
  # @return [Google::Apis::ContainerV1beta1::ProtectConfig]
1484
2118
  attr_accessor :desired_protect_config
1485
2119
 
2120
+ # RBACBindingConfig allows user to restrict ClusterRoleBindings an RoleBindings
2121
+ # that can be created.
2122
+ # Corresponds to the JSON property `desiredRbacBindingConfig`
2123
+ # @return [Google::Apis::ContainerV1beta1::RbacBindingConfig]
2124
+ attr_accessor :desired_rbac_binding_config
2125
+
1486
2126
  # ReleaseChannel indicates which release channel a cluster is subscribed to.
1487
2127
  # Release channels are arranged in order of risk. When a cluster is subscribed
1488
2128
  # to a release channel, Google maintains both the master version and the node
@@ -1496,6 +2136,17 @@ module Google
1496
2136
  # @return [Google::Apis::ContainerV1beta1::ResourceUsageExportConfig]
1497
2137
  attr_accessor :desired_resource_usage_export_config
1498
2138
 
2139
+ # SecretManagerConfig is config for secret manager enablement.
2140
+ # Corresponds to the JSON property `desiredSecretManagerConfig`
2141
+ # @return [Google::Apis::ContainerV1beta1::SecretManagerConfig]
2142
+ attr_accessor :desired_secret_manager_config
2143
+
2144
+ # SecurityPostureConfig defines the flags needed to enable/disable features for
2145
+ # the Security Posture API.
2146
+ # Corresponds to the JSON property `desiredSecurityPostureConfig`
2147
+ # @return [Google::Apis::ContainerV1beta1::SecurityPostureConfig]
2148
+ attr_accessor :desired_security_posture_config
2149
+
1499
2150
  # Config to block services with externalIPs field.
1500
2151
  # Corresponds to the JSON property `desiredServiceExternalIpsConfig`
1501
2152
  # @return [Google::Apis::ContainerV1beta1::ServiceExternalIPsConfig]
@@ -1540,6 +2191,11 @@ module Google
1540
2191
  # @return [Google::Apis::ContainerV1beta1::WorkloadIdentityConfig]
1541
2192
  attr_accessor :desired_workload_identity_config
1542
2193
 
2194
+ # Kubernetes open source beta apis enabled on the cluster.
2195
+ # Corresponds to the JSON property `enableK8sBetaApis`
2196
+ # @return [Google::Apis::ContainerV1beta1::K8sBetaApiConfig]
2197
+ attr_accessor :enable_k8s_beta_apis
2198
+
1543
2199
  # The current etag of the cluster. If an etag is provided and does not match the
1544
2200
  # current etag of the cluster, update will be blocked and an ABORTED error will
1545
2201
  # be returned.
@@ -1547,28 +2203,60 @@ module Google
1547
2203
  # @return [String]
1548
2204
  attr_accessor :etag
1549
2205
 
2206
+ # Configuration options for private clusters.
2207
+ # Corresponds to the JSON property `privateClusterConfig`
2208
+ # @return [Google::Apis::ContainerV1beta1::PrivateClusterConfig]
2209
+ attr_accessor :private_cluster_config
2210
+
2211
+ # AdditionalPodRangesConfig is the configuration for additional pod secondary
2212
+ # ranges supporting the ClusterUpdate message.
2213
+ # Corresponds to the JSON property `removedAdditionalPodRangesConfig`
2214
+ # @return [Google::Apis::ContainerV1beta1::AdditionalPodRangesConfig]
2215
+ attr_accessor :removed_additional_pod_ranges_config
2216
+
2217
+ # UserManagedKeysConfig holds the resource address to Keys which are used for
2218
+ # signing certs and token that are used for communication within cluster.
2219
+ # Corresponds to the JSON property `userManagedKeysConfig`
2220
+ # @return [Google::Apis::ContainerV1beta1::UserManagedKeysConfig]
2221
+ attr_accessor :user_managed_keys_config
2222
+
1550
2223
  def initialize(**args)
1551
2224
  update!(**args)
1552
2225
  end
1553
2226
 
1554
2227
  # Update properties of this object
1555
2228
  def update!(**args)
2229
+ @additional_pod_ranges_config = args[:additional_pod_ranges_config] if args.key?(:additional_pod_ranges_config)
1556
2230
  @desired_addons_config = args[:desired_addons_config] if args.key?(:desired_addons_config)
1557
2231
  @desired_authenticator_groups_config = args[:desired_authenticator_groups_config] if args.key?(:desired_authenticator_groups_config)
2232
+ @desired_autopilot_workload_policy_config = args[:desired_autopilot_workload_policy_config] if args.key?(:desired_autopilot_workload_policy_config)
1558
2233
  @desired_binary_authorization = args[:desired_binary_authorization] if args.key?(:desired_binary_authorization)
1559
2234
  @desired_cluster_autoscaling = args[:desired_cluster_autoscaling] if args.key?(:desired_cluster_autoscaling)
1560
2235
  @desired_cluster_telemetry = args[:desired_cluster_telemetry] if args.key?(:desired_cluster_telemetry)
2236
+ @desired_compliance_posture_config = args[:desired_compliance_posture_config] if args.key?(:desired_compliance_posture_config)
2237
+ @desired_containerd_config = args[:desired_containerd_config] if args.key?(:desired_containerd_config)
2238
+ @desired_control_plane_endpoints_config = args[:desired_control_plane_endpoints_config] if args.key?(:desired_control_plane_endpoints_config)
1561
2239
  @desired_cost_management_config = args[:desired_cost_management_config] if args.key?(:desired_cost_management_config)
1562
2240
  @desired_database_encryption = args[:desired_database_encryption] if args.key?(:desired_database_encryption)
1563
2241
  @desired_datapath_provider = args[:desired_datapath_provider] if args.key?(:desired_datapath_provider)
2242
+ @desired_default_enable_private_nodes = args[:desired_default_enable_private_nodes] if args.key?(:desired_default_enable_private_nodes)
1564
2243
  @desired_default_snat_status = args[:desired_default_snat_status] if args.key?(:desired_default_snat_status)
2244
+ @desired_disable_l4_lb_firewall_reconciliation = args[:desired_disable_l4_lb_firewall_reconciliation] if args.key?(:desired_disable_l4_lb_firewall_reconciliation)
1565
2245
  @desired_dns_config = args[:desired_dns_config] if args.key?(:desired_dns_config)
2246
+ @desired_enable_cilium_clusterwide_network_policy = args[:desired_enable_cilium_clusterwide_network_policy] if args.key?(:desired_enable_cilium_clusterwide_network_policy)
2247
+ @desired_enable_fqdn_network_policy = args[:desired_enable_fqdn_network_policy] if args.key?(:desired_enable_fqdn_network_policy)
2248
+ @desired_enable_multi_networking = args[:desired_enable_multi_networking] if args.key?(:desired_enable_multi_networking)
1566
2249
  @desired_enable_private_endpoint = args[:desired_enable_private_endpoint] if args.key?(:desired_enable_private_endpoint)
2250
+ @desired_enterprise_config = args[:desired_enterprise_config] if args.key?(:desired_enterprise_config)
2251
+ @desired_fleet = args[:desired_fleet] if args.key?(:desired_fleet)
1567
2252
  @desired_gateway_api_config = args[:desired_gateway_api_config] if args.key?(:desired_gateway_api_config)
1568
2253
  @desired_gcfs_config = args[:desired_gcfs_config] if args.key?(:desired_gcfs_config)
2254
+ @desired_host_maintenance_policy = args[:desired_host_maintenance_policy] if args.key?(:desired_host_maintenance_policy)
1569
2255
  @desired_identity_service_config = args[:desired_identity_service_config] if args.key?(:desired_identity_service_config)
1570
2256
  @desired_image_type = args[:desired_image_type] if args.key?(:desired_image_type)
2257
+ @desired_in_transit_encryption_config = args[:desired_in_transit_encryption_config] if args.key?(:desired_in_transit_encryption_config)
1571
2258
  @desired_intra_node_visibility_config = args[:desired_intra_node_visibility_config] if args.key?(:desired_intra_node_visibility_config)
2259
+ @desired_k8s_beta_apis = args[:desired_k8s_beta_apis] if args.key?(:desired_k8s_beta_apis)
1572
2260
  @desired_l4ilb_subsetting_config = args[:desired_l4ilb_subsetting_config] if args.key?(:desired_l4ilb_subsetting_config)
1573
2261
  @desired_locations = args[:desired_locations] if args.key?(:desired_locations)
1574
2262
  @desired_logging_config = args[:desired_logging_config] if args.key?(:desired_logging_config)
@@ -1579,18 +2267,28 @@ module Google
1579
2267
  @desired_mesh_certificates = args[:desired_mesh_certificates] if args.key?(:desired_mesh_certificates)
1580
2268
  @desired_monitoring_config = args[:desired_monitoring_config] if args.key?(:desired_monitoring_config)
1581
2269
  @desired_monitoring_service = args[:desired_monitoring_service] if args.key?(:desired_monitoring_service)
2270
+ @desired_network_performance_config = args[:desired_network_performance_config] if args.key?(:desired_network_performance_config)
2271
+ @desired_node_kubelet_config = args[:desired_node_kubelet_config] if args.key?(:desired_node_kubelet_config)
2272
+ @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)
2273
+ @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)
1582
2274
  @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)
2275
+ @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)
1583
2276
  @desired_node_pool_autoscaling = args[:desired_node_pool_autoscaling] if args.key?(:desired_node_pool_autoscaling)
1584
2277
  @desired_node_pool_id = args[:desired_node_pool_id] if args.key?(:desired_node_pool_id)
1585
2278
  @desired_node_pool_logging_config = args[:desired_node_pool_logging_config] if args.key?(:desired_node_pool_logging_config)
1586
2279
  @desired_node_version = args[:desired_node_version] if args.key?(:desired_node_version)
1587
2280
  @desired_notification_config = args[:desired_notification_config] if args.key?(:desired_notification_config)
2281
+ @desired_parent_product_config = args[:desired_parent_product_config] if args.key?(:desired_parent_product_config)
2282
+ @desired_pod_autoscaling = args[:desired_pod_autoscaling] if args.key?(:desired_pod_autoscaling)
1588
2283
  @desired_pod_security_policy_config = args[:desired_pod_security_policy_config] if args.key?(:desired_pod_security_policy_config)
1589
2284
  @desired_private_cluster_config = args[:desired_private_cluster_config] if args.key?(:desired_private_cluster_config)
1590
2285
  @desired_private_ipv6_google_access = args[:desired_private_ipv6_google_access] if args.key?(:desired_private_ipv6_google_access)
1591
2286
  @desired_protect_config = args[:desired_protect_config] if args.key?(:desired_protect_config)
2287
+ @desired_rbac_binding_config = args[:desired_rbac_binding_config] if args.key?(:desired_rbac_binding_config)
1592
2288
  @desired_release_channel = args[:desired_release_channel] if args.key?(:desired_release_channel)
1593
2289
  @desired_resource_usage_export_config = args[:desired_resource_usage_export_config] if args.key?(:desired_resource_usage_export_config)
2290
+ @desired_secret_manager_config = args[:desired_secret_manager_config] if args.key?(:desired_secret_manager_config)
2291
+ @desired_security_posture_config = args[:desired_security_posture_config] if args.key?(:desired_security_posture_config)
1594
2292
  @desired_service_external_ips_config = args[:desired_service_external_ips_config] if args.key?(:desired_service_external_ips_config)
1595
2293
  @desired_shielded_nodes = args[:desired_shielded_nodes] if args.key?(:desired_shielded_nodes)
1596
2294
  @desired_stack_type = args[:desired_stack_type] if args.key?(:desired_stack_type)
@@ -1599,7 +2297,66 @@ module Google
1599
2297
  @desired_workload_alts_config = args[:desired_workload_alts_config] if args.key?(:desired_workload_alts_config)
1600
2298
  @desired_workload_certificates = args[:desired_workload_certificates] if args.key?(:desired_workload_certificates)
1601
2299
  @desired_workload_identity_config = args[:desired_workload_identity_config] if args.key?(:desired_workload_identity_config)
2300
+ @enable_k8s_beta_apis = args[:enable_k8s_beta_apis] if args.key?(:enable_k8s_beta_apis)
1602
2301
  @etag = args[:etag] if args.key?(:etag)
2302
+ @private_cluster_config = args[:private_cluster_config] if args.key?(:private_cluster_config)
2303
+ @removed_additional_pod_ranges_config = args[:removed_additional_pod_ranges_config] if args.key?(:removed_additional_pod_ranges_config)
2304
+ @user_managed_keys_config = args[:user_managed_keys_config] if args.key?(:user_managed_keys_config)
2305
+ end
2306
+ end
2307
+
2308
+ # ClusterUpgradeInfo contains the upgrade information of a cluster.
2309
+ class ClusterUpgradeInfo
2310
+ include Google::Apis::Core::Hashable
2311
+
2312
+ # The auto upgrade status.
2313
+ # Corresponds to the JSON property `autoUpgradeStatus`
2314
+ # @return [Array<String>]
2315
+ attr_accessor :auto_upgrade_status
2316
+
2317
+ # The cluster's current minor version's end of extended support timestamp.
2318
+ # Corresponds to the JSON property `endOfExtendedSupportTimestamp`
2319
+ # @return [String]
2320
+ attr_accessor :end_of_extended_support_timestamp
2321
+
2322
+ # The cluster's current minor version's end of standard support timestamp.
2323
+ # Corresponds to the JSON property `endOfStandardSupportTimestamp`
2324
+ # @return [String]
2325
+ attr_accessor :end_of_standard_support_timestamp
2326
+
2327
+ # minor_target_version indicates the target version for minor upgrade.
2328
+ # Corresponds to the JSON property `minorTargetVersion`
2329
+ # @return [String]
2330
+ attr_accessor :minor_target_version
2331
+
2332
+ # patch_target_version indicates the target version for patch upgrade.
2333
+ # Corresponds to the JSON property `patchTargetVersion`
2334
+ # @return [String]
2335
+ attr_accessor :patch_target_version
2336
+
2337
+ # The auto upgrade paused reason.
2338
+ # Corresponds to the JSON property `pausedReason`
2339
+ # @return [Array<String>]
2340
+ attr_accessor :paused_reason
2341
+
2342
+ # The list of past auto upgrades.
2343
+ # Corresponds to the JSON property `upgradeDetails`
2344
+ # @return [Array<Google::Apis::ContainerV1beta1::UpgradeDetails>]
2345
+ attr_accessor :upgrade_details
2346
+
2347
+ def initialize(**args)
2348
+ update!(**args)
2349
+ end
2350
+
2351
+ # Update properties of this object
2352
+ def update!(**args)
2353
+ @auto_upgrade_status = args[:auto_upgrade_status] if args.key?(:auto_upgrade_status)
2354
+ @end_of_extended_support_timestamp = args[:end_of_extended_support_timestamp] if args.key?(:end_of_extended_support_timestamp)
2355
+ @end_of_standard_support_timestamp = args[:end_of_standard_support_timestamp] if args.key?(:end_of_standard_support_timestamp)
2356
+ @minor_target_version = args[:minor_target_version] if args.key?(:minor_target_version)
2357
+ @patch_target_version = args[:patch_target_version] if args.key?(:patch_target_version)
2358
+ @paused_reason = args[:paused_reason] if args.key?(:paused_reason)
2359
+ @upgrade_details = args[:upgrade_details] if args.key?(:upgrade_details)
1603
2360
  end
1604
2361
  end
1605
2362
 
@@ -1660,6 +2417,51 @@ module Google
1660
2417
  end
1661
2418
  end
1662
2419
 
2420
+ # CompliancePostureConfig defines the settings needed to enable/disable features
2421
+ # for the Compliance Posture.
2422
+ class CompliancePostureConfig
2423
+ include Google::Apis::Core::Hashable
2424
+
2425
+ # List of enabled compliance standards.
2426
+ # Corresponds to the JSON property `complianceStandards`
2427
+ # @return [Array<Google::Apis::ContainerV1beta1::ComplianceStandard>]
2428
+ attr_accessor :compliance_standards
2429
+
2430
+ # Defines the enablement mode for Compliance Posture.
2431
+ # Corresponds to the JSON property `mode`
2432
+ # @return [String]
2433
+ attr_accessor :mode
2434
+
2435
+ def initialize(**args)
2436
+ update!(**args)
2437
+ end
2438
+
2439
+ # Update properties of this object
2440
+ def update!(**args)
2441
+ @compliance_standards = args[:compliance_standards] if args.key?(:compliance_standards)
2442
+ @mode = args[:mode] if args.key?(:mode)
2443
+ end
2444
+ end
2445
+
2446
+ # Defines the details of a compliance standard.
2447
+ class ComplianceStandard
2448
+ include Google::Apis::Core::Hashable
2449
+
2450
+ # Name of the compliance standard.
2451
+ # Corresponds to the JSON property `standard`
2452
+ # @return [String]
2453
+ attr_accessor :standard
2454
+
2455
+ def initialize(**args)
2456
+ update!(**args)
2457
+ end
2458
+
2459
+ # Update properties of this object
2460
+ def update!(**args)
2461
+ @standard = args[:standard] if args.key?(:standard)
2462
+ end
2463
+ end
2464
+
1663
2465
  # ConfidentialNodes is configuration for the confidential nodes feature, which
1664
2466
  # makes nodes run on confidential VMs.
1665
2467
  class ConfidentialNodes
@@ -1722,6 +2524,51 @@ module Google
1722
2524
  end
1723
2525
  end
1724
2526
 
2527
+ # ContainerdConfig contains configuration to customize containerd.
2528
+ class ContainerdConfig
2529
+ include Google::Apis::Core::Hashable
2530
+
2531
+ # PrivateRegistryAccessConfig contains access configuration for private
2532
+ # container registries.
2533
+ # Corresponds to the JSON property `privateRegistryAccessConfig`
2534
+ # @return [Google::Apis::ContainerV1beta1::PrivateRegistryAccessConfig]
2535
+ attr_accessor :private_registry_access_config
2536
+
2537
+ def initialize(**args)
2538
+ update!(**args)
2539
+ end
2540
+
2541
+ # Update properties of this object
2542
+ def update!(**args)
2543
+ @private_registry_access_config = args[:private_registry_access_config] if args.key?(:private_registry_access_config)
2544
+ end
2545
+ end
2546
+
2547
+ # Configuration for all of the cluster's control plane endpoints.
2548
+ class ControlPlaneEndpointsConfig
2549
+ include Google::Apis::Core::Hashable
2550
+
2551
+ # Describes the configuration of a DNS endpoint.
2552
+ # Corresponds to the JSON property `dnsEndpointConfig`
2553
+ # @return [Google::Apis::ContainerV1beta1::DnsEndpointConfig]
2554
+ attr_accessor :dns_endpoint_config
2555
+
2556
+ # IP endpoints configuration.
2557
+ # Corresponds to the JSON property `ipEndpointsConfig`
2558
+ # @return [Google::Apis::ContainerV1beta1::IpEndpointsConfig]
2559
+ attr_accessor :ip_endpoints_config
2560
+
2561
+ def initialize(**args)
2562
+ update!(**args)
2563
+ end
2564
+
2565
+ # Update properties of this object
2566
+ def update!(**args)
2567
+ @dns_endpoint_config = args[:dns_endpoint_config] if args.key?(:dns_endpoint_config)
2568
+ @ip_endpoints_config = args[:ip_endpoints_config] if args.key?(:ip_endpoints_config)
2569
+ end
2570
+ end
2571
+
1725
2572
  # Configuration for fine-grained cost management feature.
1726
2573
  class CostManagementConfig
1727
2574
  include Google::Apis::Core::Hashable
@@ -1799,20 +2646,7 @@ module Google
1799
2646
  # specification, under the control of the cluster master. They may have a set of
1800
2647
  # Kubernetes labels applied to them, which may be used to reference them during
1801
2648
  # pod scheduling. They may also be resized up or down, to accommodate the
1802
- # workload. These upgrade settings control the level of parallelism and the
1803
- # level of disruption caused by an upgrade. maxUnavailable controls the number
1804
- # of nodes that can be simultaneously unavailable. maxSurge controls the number
1805
- # of additional nodes that can be added to the node pool temporarily for the
1806
- # time of the upgrade to increase the number of available nodes. (maxUnavailable
1807
- # + maxSurge) determines the level of parallelism (how many nodes are being
1808
- # upgraded at the same time). Note: upgrades inevitably introduce some
1809
- # disruption since workloads need to be moved from old nodes to new, upgraded
1810
- # ones. Even if maxUnavailable=0, this holds true. (Disruption stays within the
1811
- # limits of PodDisruptionBudget, if it is configured.) Consider a hypothetical
1812
- # node pool with 5 nodes having maxSurge=2, maxUnavailable=1. This means the
1813
- # upgrade process upgrades 3 nodes simultaneously. It creates 2 additional (
1814
- # upgraded) nodes, then it brings down 3 old (not yet upgraded) nodes at the
1815
- # same time. This ensures that there are always at least 4 nodes available.
2649
+ # workload.
1816
2650
  # Corresponds to the JSON property `nodePool`
1817
2651
  # @return [Google::Apis::ContainerV1beta1::NodePool]
1818
2652
  attr_accessor :node_pool
@@ -1855,6 +2689,11 @@ module Google
1855
2689
  class DnsConfig
1856
2690
  include Google::Apis::Core::Hashable
1857
2691
 
2692
+ # Optional. The domain used in Additive VPC scope.
2693
+ # Corresponds to the JSON property `additiveVpcScopeDnsDomain`
2694
+ # @return [String]
2695
+ attr_accessor :additive_vpc_scope_dns_domain
2696
+
1858
2697
  # cluster_dns indicates which in-cluster DNS provider should be used.
1859
2698
  # Corresponds to the JSON property `clusterDns`
1860
2699
  # @return [String]
@@ -1876,17 +2715,48 @@ module Google
1876
2715
 
1877
2716
  # Update properties of this object
1878
2717
  def update!(**args)
2718
+ @additive_vpc_scope_dns_domain = args[:additive_vpc_scope_dns_domain] if args.key?(:additive_vpc_scope_dns_domain)
1879
2719
  @cluster_dns = args[:cluster_dns] if args.key?(:cluster_dns)
1880
2720
  @cluster_dns_domain = args[:cluster_dns_domain] if args.key?(:cluster_dns_domain)
1881
2721
  @cluster_dns_scope = args[:cluster_dns_scope] if args.key?(:cluster_dns_scope)
1882
2722
  end
1883
2723
  end
1884
2724
 
2725
+ # Describes the configuration of a DNS endpoint.
2726
+ class DnsEndpointConfig
2727
+ include Google::Apis::Core::Hashable
2728
+
2729
+ # Controls whether user traffic is allowed over this endpoint. Note that GCP-
2730
+ # managed services may still use the endpoint even if this is false.
2731
+ # Corresponds to the JSON property `allowExternalTraffic`
2732
+ # @return [Boolean]
2733
+ attr_accessor :allow_external_traffic
2734
+ alias_method :allow_external_traffic?, :allow_external_traffic
2735
+
2736
+ # Output only. The cluster's DNS endpoint configuration. A DNS format address.
2737
+ # This is accessible from the public internet. Ex: uid.us-central1.gke.goog.
2738
+ # Always present, but the behavior may change according to the value of
2739
+ # DNSEndpointConfig.allow_external_traffic.
2740
+ # Corresponds to the JSON property `endpoint`
2741
+ # @return [String]
2742
+ attr_accessor :endpoint
2743
+
2744
+ def initialize(**args)
2745
+ update!(**args)
2746
+ end
2747
+
2748
+ # Update properties of this object
2749
+ def update!(**args)
2750
+ @allow_external_traffic = args[:allow_external_traffic] if args.key?(:allow_external_traffic)
2751
+ @endpoint = args[:endpoint] if args.key?(:endpoint)
2752
+ end
2753
+ end
2754
+
1885
2755
  # Time window specified for daily maintenance operations.
1886
2756
  class DailyMaintenanceWindow
1887
2757
  include Google::Apis::Core::Hashable
1888
2758
 
1889
- # [Output only] Duration of the time window, automatically chosen to be smallest
2759
+ # Output only. Duration of the time window, automatically chosen to be smallest
1890
2760
  # possible in the given scenario.
1891
2761
  # Corresponds to the JSON property `duration`
1892
2762
  # @return [String]
@@ -1913,13 +2783,29 @@ module Google
1913
2783
  class DatabaseEncryption
1914
2784
  include Google::Apis::Core::Hashable
1915
2785
 
2786
+ # Output only. The current state of etcd encryption.
2787
+ # Corresponds to the JSON property `currentState`
2788
+ # @return [String]
2789
+ attr_accessor :current_state
2790
+
2791
+ # Output only. Keys in use by the cluster for decrypting existing objects, in
2792
+ # addition to the key in `key_name`. Each item is a CloudKMS key resource.
2793
+ # Corresponds to the JSON property `decryptionKeys`
2794
+ # @return [Array<String>]
2795
+ attr_accessor :decryption_keys
2796
+
1916
2797
  # Name of CloudKMS key to use for the encryption of secrets in etcd. Ex.
1917
2798
  # projects/my-project/locations/global/keyRings/my-ring/cryptoKeys/my-key
1918
2799
  # Corresponds to the JSON property `keyName`
1919
2800
  # @return [String]
1920
2801
  attr_accessor :key_name
1921
2802
 
1922
- # Denotes the state of etcd encryption.
2803
+ # Output only. Records errors seen during DatabaseEncryption update operations.
2804
+ # Corresponds to the JSON property `lastOperationErrors`
2805
+ # @return [Array<Google::Apis::ContainerV1beta1::OperationError>]
2806
+ attr_accessor :last_operation_errors
2807
+
2808
+ # The desired state of etcd encryption.
1923
2809
  # Corresponds to the JSON property `state`
1924
2810
  # @return [String]
1925
2811
  attr_accessor :state
@@ -1930,7 +2816,10 @@ module Google
1930
2816
 
1931
2817
  # Update properties of this object
1932
2818
  def update!(**args)
2819
+ @current_state = args[:current_state] if args.key?(:current_state)
2820
+ @decryption_keys = args[:decryption_keys] if args.key?(:decryption_keys)
1933
2821
  @key_name = args[:key_name] if args.key?(:key_name)
2822
+ @last_operation_errors = args[:last_operation_errors] if args.key?(:last_operation_errors)
1934
2823
  @state = args[:state] if args.key?(:state)
1935
2824
  end
1936
2825
  end
@@ -1997,6 +2886,25 @@ module Google
1997
2886
  end
1998
2887
  end
1999
2888
 
2889
+ # DesiredEnterpriseConfig is a wrapper used for updating enterprise_config.
2890
+ class DesiredEnterpriseConfig
2891
+ include Google::Apis::Core::Hashable
2892
+
2893
+ # desired_tier specifies the desired tier of the cluster.
2894
+ # Corresponds to the JSON property `desiredTier`
2895
+ # @return [String]
2896
+ attr_accessor :desired_tier
2897
+
2898
+ def initialize(**args)
2899
+ update!(**args)
2900
+ end
2901
+
2902
+ # Update properties of this object
2903
+ def update!(**args)
2904
+ @desired_tier = args[:desired_tier] if args.key?(:desired_tier)
2905
+ end
2906
+ end
2907
+
2000
2908
  # Configuration for NodeLocal DNSCache
2001
2909
  class DnsCacheConfig
2002
2910
  include Google::Apis::Core::Hashable
@@ -2033,14 +2941,48 @@ module Google
2033
2941
  end
2034
2942
  end
2035
2943
 
2944
+ # EnterpriseConfig is the cluster enterprise configuration.
2945
+ class EnterpriseConfig
2946
+ include Google::Apis::Core::Hashable
2947
+
2948
+ # Output only. cluster_tier indicates the effective tier of the cluster.
2949
+ # Corresponds to the JSON property `clusterTier`
2950
+ # @return [String]
2951
+ attr_accessor :cluster_tier
2952
+
2953
+ # desired_tier specifies the desired tier of the cluster.
2954
+ # Corresponds to the JSON property `desiredTier`
2955
+ # @return [String]
2956
+ attr_accessor :desired_tier
2957
+
2958
+ def initialize(**args)
2959
+ update!(**args)
2960
+ end
2961
+
2962
+ # Update properties of this object
2963
+ def update!(**args)
2964
+ @cluster_tier = args[:cluster_tier] if args.key?(:cluster_tier)
2965
+ @desired_tier = args[:desired_tier] if args.key?(:desired_tier)
2966
+ end
2967
+ end
2968
+
2036
2969
  # EphemeralStorageConfig contains configuration for the ephemeral storage
2037
2970
  # filesystem.
2038
2971
  class EphemeralStorageConfig
2039
2972
  include Google::Apis::Core::Hashable
2040
2973
 
2041
2974
  # Number of local SSDs to use to back ephemeral storage. Uses NVMe interfaces.
2042
- # Each local SSD is 375 GB in size. If zero, it means to disable using local
2043
- # SSDs as ephemeral storage.
2975
+ # The limit for this value is dependent upon the maximum number of disk
2976
+ # available on a machine per zone. See: https://cloud.google.com/compute/docs/
2977
+ # disks/local-ssd for more information. A zero (or unset) value has different
2978
+ # meanings depending on machine type being used: 1. For pre-Gen3 machines, which
2979
+ # support flexible numbers of local ssds, zero (or unset) means to disable using
2980
+ # local SSDs as ephemeral storage. 2. For Gen3 machines which dictate a specific
2981
+ # number of local ssds, zero (or unset) means to use the default number of local
2982
+ # ssds that goes with that machine type. For example, for a c3-standard-8-lssd
2983
+ # machine, 2 local ssds would be provisioned. For c3-standard-8 (which doesn't
2984
+ # support local ssds), 0 will be provisioned. See https://cloud.google.com/
2985
+ # compute/docs/disks/local-ssd#choose_number_local_ssds for more info.
2044
2986
  # Corresponds to the JSON property `localSsdCount`
2045
2987
  # @return [Fixnum]
2046
2988
  attr_accessor :local_ssd_count
@@ -2060,11 +3002,18 @@ module Google
2060
3002
  class EphemeralStorageLocalSsdConfig
2061
3003
  include Google::Apis::Core::Hashable
2062
3004
 
2063
- # Number of local SSDs to use to back ephemeral storage. Uses NVMe interfaces.
2064
- # Each local SSD is 375 GB in size. If zero, it means to disable using local
2065
- # SSDs as ephemeral storage. The limit for this value is dependent upon the
2066
- # maximum number of disks available on a machine per zone. See: https://cloud.
2067
- # google.com/compute/docs/disks/local-ssd for more information.
3005
+ # Number of local SSDs to use to back ephemeral storage. Uses NVMe interfaces. A
3006
+ # zero (or unset) value has different meanings depending on machine type being
3007
+ # used: 1. For pre-Gen3 machines, which support flexible numbers of local ssds,
3008
+ # zero (or unset) means to disable using local SSDs as ephemeral storage. The
3009
+ # limit for this value is dependent upon the maximum number of disk available on
3010
+ # a machine per zone. See: https://cloud.google.com/compute/docs/disks/local-ssd
3011
+ # for more information. 2. For Gen3 machines which dictate a specific number of
3012
+ # local ssds, zero (or unset) means to use the default number of local ssds that
3013
+ # goes with that machine type. For example, for a c3-standard-8-lssd machine, 2
3014
+ # local ssds would be provisioned. For c3-standard-8 (which doesn't support
3015
+ # local ssds), 0 will be provisioned. See https://cloud.google.com/compute/docs/
3016
+ # disks/local-ssd#choose_number_local_ssds for more info.
2068
3017
  # Corresponds to the JSON property `localSsdCount`
2069
3018
  # @return [Fixnum]
2070
3019
  attr_accessor :local_ssd_count
@@ -2121,6 +3070,83 @@ module Google
2121
3070
  end
2122
3071
  end
2123
3072
 
3073
+ # Fleet is the fleet configuration for the cluster.
3074
+ class Fleet
3075
+ include Google::Apis::Core::Hashable
3076
+
3077
+ # Output only. The full resource name of the registered fleet membership of the
3078
+ # cluster, in the format `//gkehub.googleapis.com/projects/*/locations/*/
3079
+ # memberships/*`.
3080
+ # Corresponds to the JSON property `membership`
3081
+ # @return [String]
3082
+ attr_accessor :membership
3083
+
3084
+ # Output only. Whether the cluster has been registered through the fleet API.
3085
+ # Corresponds to the JSON property `preRegistered`
3086
+ # @return [Boolean]
3087
+ attr_accessor :pre_registered
3088
+ alias_method :pre_registered?, :pre_registered
3089
+
3090
+ # The Fleet host project(project ID or project number) where this cluster will
3091
+ # be registered to. This field cannot be changed after the cluster has been
3092
+ # registered.
3093
+ # Corresponds to the JSON property `project`
3094
+ # @return [String]
3095
+ attr_accessor :project
3096
+
3097
+ def initialize(**args)
3098
+ update!(**args)
3099
+ end
3100
+
3101
+ # Update properties of this object
3102
+ def update!(**args)
3103
+ @membership = args[:membership] if args.key?(:membership)
3104
+ @pre_registered = args[:pre_registered] if args.key?(:pre_registered)
3105
+ @project = args[:project] if args.key?(:project)
3106
+ end
3107
+ end
3108
+
3109
+ # GCPSecretManagerCertificateConfig configures a secret from [Google Secret
3110
+ # Manager](https://cloud.google.com/secret-manager).
3111
+ class GcpSecretManagerCertificateConfig
3112
+ include Google::Apis::Core::Hashable
3113
+
3114
+ # Secret URI, in the form "projects/$PROJECT_ID/secrets/$SECRET_NAME/versions/$
3115
+ # VERSION". Version can be fixed (e.g. "2") or "latest"
3116
+ # Corresponds to the JSON property `secretUri`
3117
+ # @return [String]
3118
+ attr_accessor :secret_uri
3119
+
3120
+ def initialize(**args)
3121
+ update!(**args)
3122
+ end
3123
+
3124
+ # Update properties of this object
3125
+ def update!(**args)
3126
+ @secret_uri = args[:secret_uri] if args.key?(:secret_uri)
3127
+ end
3128
+ end
3129
+
3130
+ # GPUDriverInstallationConfig specifies the version of GPU driver to be auto
3131
+ # installed.
3132
+ class GpuDriverInstallationConfig
3133
+ include Google::Apis::Core::Hashable
3134
+
3135
+ # Mode for how the GPU driver is installed.
3136
+ # Corresponds to the JSON property `gpuDriverVersion`
3137
+ # @return [String]
3138
+ attr_accessor :gpu_driver_version
3139
+
3140
+ def initialize(**args)
3141
+ update!(**args)
3142
+ end
3143
+
3144
+ # Update properties of this object
3145
+ def update!(**args)
3146
+ @gpu_driver_version = args[:gpu_driver_version] if args.key?(:gpu_driver_version)
3147
+ end
3148
+ end
3149
+
2124
3150
  # GPUSharingConfig represents the GPU sharing configuration for Hardware
2125
3151
  # Accelerators.
2126
3152
  class GpuSharingConfig
@@ -2226,6 +3252,26 @@ module Google
2226
3252
  end
2227
3253
  end
2228
3254
 
3255
+ # Configuration for the Cloud Storage Fuse CSI driver.
3256
+ class GcsFuseCsiDriverConfig
3257
+ include Google::Apis::Core::Hashable
3258
+
3259
+ # Whether the Cloud Storage Fuse CSI driver is enabled for this cluster.
3260
+ # Corresponds to the JSON property `enabled`
3261
+ # @return [Boolean]
3262
+ attr_accessor :enabled
3263
+ alias_method :enabled?, :enabled
3264
+
3265
+ def initialize(**args)
3266
+ update!(**args)
3267
+ end
3268
+
3269
+ # Update properties of this object
3270
+ def update!(**args)
3271
+ @enabled = args[:enabled] if args.key?(:enabled)
3272
+ end
3273
+ end
3274
+
2229
3275
  # GetJSONWebKeysResponse is a valid JSON Web Key Set as specififed in rfc 7517
2230
3276
  class GetJsonWebKeysResponse
2231
3277
  include Google::Apis::Core::Hashable
@@ -2356,23 +3402,49 @@ module Google
2356
3402
  end
2357
3403
  end
2358
3404
 
2359
- # RFC-2616: cache control support
2360
- class HttpCacheControlResponseHeader
3405
+ # HostMaintenancePolicy contains the maintenance policy for the hosts on which
3406
+ # the GKE VMs run on.
3407
+ class HostMaintenancePolicy
2361
3408
  include Google::Apis::Core::Hashable
2362
3409
 
2363
- # 14.6 response cache age, in seconds since the response is generated
2364
- # Corresponds to the JSON property `age`
2365
- # @return [Fixnum]
2366
- attr_accessor :age
2367
-
2368
- # 14.9 request and response directives
2369
- # Corresponds to the JSON property `directive`
3410
+ # Specifies the frequency of planned maintenance events.
3411
+ # Corresponds to the JSON property `maintenanceInterval`
2370
3412
  # @return [String]
2371
- attr_accessor :directive
3413
+ attr_accessor :maintenance_interval
2372
3414
 
2373
- # 14.21 response cache expires, in RFC 1123 date format
2374
- # Corresponds to the JSON property `expires`
2375
- # @return [String]
3415
+ # Strategy that will trigger maintenance on behalf of the customer.
3416
+ # Corresponds to the JSON property `opportunisticMaintenanceStrategy`
3417
+ # @return [Google::Apis::ContainerV1beta1::OpportunisticMaintenanceStrategy]
3418
+ attr_accessor :opportunistic_maintenance_strategy
3419
+
3420
+ def initialize(**args)
3421
+ update!(**args)
3422
+ end
3423
+
3424
+ # Update properties of this object
3425
+ def update!(**args)
3426
+ @maintenance_interval = args[:maintenance_interval] if args.key?(:maintenance_interval)
3427
+ @opportunistic_maintenance_strategy = args[:opportunistic_maintenance_strategy] if args.key?(:opportunistic_maintenance_strategy)
3428
+ end
3429
+ end
3430
+
3431
+ # RFC-2616: cache control support
3432
+ class HttpCacheControlResponseHeader
3433
+ include Google::Apis::Core::Hashable
3434
+
3435
+ # 14.6 response cache age, in seconds since the response is generated
3436
+ # Corresponds to the JSON property `age`
3437
+ # @return [Fixnum]
3438
+ attr_accessor :age
3439
+
3440
+ # 14.9 request and response directives
3441
+ # Corresponds to the JSON property `directive`
3442
+ # @return [String]
3443
+ attr_accessor :directive
3444
+
3445
+ # 14.21 response cache expires, in RFC 1123 date format
3446
+ # Corresponds to the JSON property `expires`
3447
+ # @return [String]
2376
3448
  attr_accessor :expires
2377
3449
 
2378
3450
  def initialize(**args)
@@ -2409,6 +3481,31 @@ module Google
2409
3481
  end
2410
3482
  end
2411
3483
 
3484
+ # Hugepages amount in both 2m and 1g size
3485
+ class HugepagesConfig
3486
+ include Google::Apis::Core::Hashable
3487
+
3488
+ # Optional. Amount of 1G hugepages
3489
+ # Corresponds to the JSON property `hugepageSize1g`
3490
+ # @return [Fixnum]
3491
+ attr_accessor :hugepage_size1g
3492
+
3493
+ # Optional. Amount of 2M hugepages
3494
+ # Corresponds to the JSON property `hugepageSize2m`
3495
+ # @return [Fixnum]
3496
+ attr_accessor :hugepage_size2m
3497
+
3498
+ def initialize(**args)
3499
+ update!(**args)
3500
+ end
3501
+
3502
+ # Update properties of this object
3503
+ def update!(**args)
3504
+ @hugepage_size1g = args[:hugepage_size1g] if args.key?(:hugepage_size1g)
3505
+ @hugepage_size2m = args[:hugepage_size2m] if args.key?(:hugepage_size2m)
3506
+ end
3507
+ end
3508
+
2412
3509
  # ILBSubsettingConfig contains the desired config of L4 Internal LoadBalancer
2413
3510
  # subsetting on this cluster.
2414
3511
  class IlbSubsettingConfig
@@ -2434,6 +3531,12 @@ module Google
2434
3531
  class IpAllocationPolicy
2435
3532
  include Google::Apis::Core::Hashable
2436
3533
 
3534
+ # AdditionalPodRangesConfig is the configuration for additional pod secondary
3535
+ # ranges supporting the ClusterUpdate message.
3536
+ # Corresponds to the JSON property `additionalPodRangesConfig`
3537
+ # @return [Google::Apis::ContainerV1beta1::AdditionalPodRangesConfig]
3538
+ attr_accessor :additional_pod_ranges_config
3539
+
2437
3540
  # If true, allow allocation of cluster CIDR ranges that overlap with certain
2438
3541
  # kinds of network routes. By default we do not allow cluster CIDR ranges to
2439
3542
  # intersect with any user declared routes. With allow_route_overlap == true, we
@@ -2480,6 +3583,13 @@ module Google
2480
3583
  attr_accessor :create_subnetwork
2481
3584
  alias_method :create_subnetwork?, :create_subnetwork
2482
3585
 
3586
+ # Output only. The utilization of the cluster default IPv4 range for the pod.
3587
+ # The ratio is Usage/[Total number of IPs in the secondary range], Usage=
3588
+ # numNodes*numZones*podIPsPerNode.
3589
+ # Corresponds to the JSON property `defaultPodIpv4RangeUtilization`
3590
+ # @return [Float]
3591
+ attr_accessor :default_pod_ipv4_range_utilization
3592
+
2483
3593
  # The ipv6 access type (internal or external) when create_subnetwork is true
2484
3594
  # Corresponds to the JSON property `ipv6AccessType`
2485
3595
  # @return [String]
@@ -2501,6 +3611,11 @@ module Google
2501
3611
  # @return [String]
2502
3612
  attr_accessor :node_ipv4_cidr_block
2503
3613
 
3614
+ # [PRIVATE FIELD] Config for pod CIDR size overprovisioning.
3615
+ # Corresponds to the JSON property `podCidrOverprovisionConfig`
3616
+ # @return [Google::Apis::ContainerV1beta1::PodCidrOverprovisionConfig]
3617
+ attr_accessor :pod_cidr_overprovision_config
3618
+
2504
3619
  # This field is deprecated, use services_ipv4_cidr_block.
2505
3620
  # Corresponds to the JSON property `servicesIpv4Cidr`
2506
3621
  # @return [String]
@@ -2518,7 +3633,7 @@ module Google
2518
3633
  # @return [String]
2519
3634
  attr_accessor :services_ipv4_cidr_block
2520
3635
 
2521
- # Output only. [Output only] The services IPv6 CIDR block for the cluster.
3636
+ # Output only. The services IPv6 CIDR block for the cluster.
2522
3637
  # Corresponds to the JSON property `servicesIpv6CidrBlock`
2523
3638
  # @return [String]
2524
3639
  attr_accessor :services_ipv6_cidr_block
@@ -2536,7 +3651,7 @@ module Google
2536
3651
  # @return [String]
2537
3652
  attr_accessor :stack_type
2538
3653
 
2539
- # Output only. [Output only] The subnet's IPv6 CIDR block used by nodes and pods.
3654
+ # Output only. The subnet's IPv6 CIDR block used by nodes and pods.
2540
3655
  # Corresponds to the JSON property `subnetIpv6CidrBlock`
2541
3656
  # @return [String]
2542
3657
  attr_accessor :subnet_ipv6_cidr_block
@@ -2584,14 +3699,17 @@ module Google
2584
3699
 
2585
3700
  # Update properties of this object
2586
3701
  def update!(**args)
3702
+ @additional_pod_ranges_config = args[:additional_pod_ranges_config] if args.key?(:additional_pod_ranges_config)
2587
3703
  @allow_route_overlap = args[:allow_route_overlap] if args.key?(:allow_route_overlap)
2588
3704
  @cluster_ipv4_cidr = args[:cluster_ipv4_cidr] if args.key?(:cluster_ipv4_cidr)
2589
3705
  @cluster_ipv4_cidr_block = args[:cluster_ipv4_cidr_block] if args.key?(:cluster_ipv4_cidr_block)
2590
3706
  @cluster_secondary_range_name = args[:cluster_secondary_range_name] if args.key?(:cluster_secondary_range_name)
2591
3707
  @create_subnetwork = args[:create_subnetwork] if args.key?(:create_subnetwork)
3708
+ @default_pod_ipv4_range_utilization = args[:default_pod_ipv4_range_utilization] if args.key?(:default_pod_ipv4_range_utilization)
2592
3709
  @ipv6_access_type = args[:ipv6_access_type] if args.key?(:ipv6_access_type)
2593
3710
  @node_ipv4_cidr = args[:node_ipv4_cidr] if args.key?(:node_ipv4_cidr)
2594
3711
  @node_ipv4_cidr_block = args[:node_ipv4_cidr_block] if args.key?(:node_ipv4_cidr_block)
3712
+ @pod_cidr_overprovision_config = args[:pod_cidr_overprovision_config] if args.key?(:pod_cidr_overprovision_config)
2595
3713
  @services_ipv4_cidr = args[:services_ipv4_cidr] if args.key?(:services_ipv4_cidr)
2596
3714
  @services_ipv4_cidr_block = args[:services_ipv4_cidr_block] if args.key?(:services_ipv4_cidr_block)
2597
3715
  @services_ipv6_cidr_block = args[:services_ipv6_cidr_block] if args.key?(:services_ipv6_cidr_block)
@@ -2605,6 +3723,76 @@ module Google
2605
3723
  end
2606
3724
  end
2607
3725
 
3726
+ # IP endpoints configuration.
3727
+ class IpEndpointsConfig
3728
+ include Google::Apis::Core::Hashable
3729
+
3730
+ # Configuration options for the master authorized networks feature. Enabled
3731
+ # master authorized networks will disallow all external traffic to access
3732
+ # Kubernetes master through HTTPS except traffic from the given CIDR blocks,
3733
+ # Google Compute Engine Public IPs and Google Prod IPs.
3734
+ # Corresponds to the JSON property `authorizedNetworksConfig`
3735
+ # @return [Google::Apis::ContainerV1beta1::MasterAuthorizedNetworksConfig]
3736
+ attr_accessor :authorized_networks_config
3737
+
3738
+ # Controls whether the control plane allows access through a public IP. It is
3739
+ # invalid to specify both PrivateClusterConfig.enablePrivateEndpoint and this
3740
+ # field at the same time.
3741
+ # Corresponds to the JSON property `enablePublicEndpoint`
3742
+ # @return [Boolean]
3743
+ attr_accessor :enable_public_endpoint
3744
+ alias_method :enable_public_endpoint?, :enable_public_endpoint
3745
+
3746
+ # Controls whether to allow direct IP access.
3747
+ # Corresponds to the JSON property `enabled`
3748
+ # @return [Boolean]
3749
+ attr_accessor :enabled
3750
+ alias_method :enabled?, :enabled
3751
+
3752
+ # Controls whether the control plane's private endpoint is accessible from
3753
+ # sources in other regions. It is invalid to specify both
3754
+ # PrivateClusterMasterGlobalAccessConfig.enabled and this field at the same time.
3755
+ # Corresponds to the JSON property `globalAccess`
3756
+ # @return [Boolean]
3757
+ attr_accessor :global_access
3758
+ alias_method :global_access?, :global_access
3759
+
3760
+ # Output only. The internal IP address of this cluster's control plane. Only
3761
+ # populated if enabled.
3762
+ # Corresponds to the JSON property `privateEndpoint`
3763
+ # @return [String]
3764
+ attr_accessor :private_endpoint
3765
+
3766
+ # Subnet to provision the master's private endpoint during cluster creation.
3767
+ # Specified in projects/*/regions/*/subnetworks/* format. It is invalid to
3768
+ # specify both PrivateClusterConfig.privateEndpointSubnetwork and this field at
3769
+ # the same time.
3770
+ # Corresponds to the JSON property `privateEndpointSubnetwork`
3771
+ # @return [String]
3772
+ attr_accessor :private_endpoint_subnetwork
3773
+
3774
+ # Output only. The external IP address of this cluster's control plane. Only
3775
+ # populated if enabled.
3776
+ # Corresponds to the JSON property `publicEndpoint`
3777
+ # @return [String]
3778
+ attr_accessor :public_endpoint
3779
+
3780
+ def initialize(**args)
3781
+ update!(**args)
3782
+ end
3783
+
3784
+ # Update properties of this object
3785
+ def update!(**args)
3786
+ @authorized_networks_config = args[:authorized_networks_config] if args.key?(:authorized_networks_config)
3787
+ @enable_public_endpoint = args[:enable_public_endpoint] if args.key?(:enable_public_endpoint)
3788
+ @enabled = args[:enabled] if args.key?(:enabled)
3789
+ @global_access = args[:global_access] if args.key?(:global_access)
3790
+ @private_endpoint = args[:private_endpoint] if args.key?(:private_endpoint)
3791
+ @private_endpoint_subnetwork = args[:private_endpoint_subnetwork] if args.key?(:private_endpoint_subnetwork)
3792
+ @public_endpoint = args[:public_endpoint] if args.key?(:public_endpoint)
3793
+ end
3794
+ end
3795
+
2608
3796
  # IdentityServiceConfig is configuration for Identity Service which allows
2609
3797
  # customers to use external identity providers with the K8S API
2610
3798
  class IdentityServiceConfig
@@ -2740,6 +3928,25 @@ module Google
2740
3928
  end
2741
3929
  end
2742
3930
 
3931
+ # Kubernetes open source beta apis enabled on the cluster.
3932
+ class K8sBetaApiConfig
3933
+ include Google::Apis::Core::Hashable
3934
+
3935
+ # api name, e.g. storage.k8s.io/v1beta1/csistoragecapacities.
3936
+ # Corresponds to the JSON property `enabledApis`
3937
+ # @return [Array<String>]
3938
+ attr_accessor :enabled_apis
3939
+
3940
+ def initialize(**args)
3941
+ update!(**args)
3942
+ end
3943
+
3944
+ # Update properties of this object
3945
+ def update!(**args)
3946
+ @enabled_apis = args[:enabled_apis] if args.key?(:enabled_apis)
3947
+ end
3948
+ end
3949
+
2743
3950
  # Configuration options for the KALM addon.
2744
3951
  class KalmConfig
2745
3952
  include Google::Apis::Core::Hashable
@@ -2812,11 +4019,16 @@ module Google
2812
4019
  # @return [String]
2813
4020
  attr_accessor :cgroup_mode
2814
4021
 
4022
+ # Hugepages amount in both 2m and 1g size
4023
+ # Corresponds to the JSON property `hugepages`
4024
+ # @return [Google::Apis::ContainerV1beta1::HugepagesConfig]
4025
+ attr_accessor :hugepages
4026
+
2815
4027
  # The Linux kernel parameters to be applied to the nodes and all pods running on
2816
4028
  # the nodes. The following parameters are supported. net.core.busy_poll net.core.
2817
4029
  # busy_read net.core.netdev_max_backlog net.core.rmem_max net.core.wmem_default
2818
4030
  # net.core.wmem_max net.core.optmem_max net.core.somaxconn net.ipv4.tcp_rmem net.
2819
- # ipv4.tcp_wmem net.ipv4.tcp_tw_reuse
4031
+ # ipv4.tcp_wmem net.ipv4.tcp_tw_reuse kernel.shmmni kernel.shmmax kernel.shmall
2820
4032
  # Corresponds to the JSON property `sysctls`
2821
4033
  # @return [Hash<String,String>]
2822
4034
  attr_accessor :sysctls
@@ -2828,6 +4040,7 @@ module Google
2828
4040
  # Update properties of this object
2829
4041
  def update!(**args)
2830
4042
  @cgroup_mode = args[:cgroup_mode] if args.key?(:cgroup_mode)
4043
+ @hugepages = args[:hugepages] if args.key?(:hugepages)
2831
4044
  @sysctls = args[:sysctls] if args.key?(:sysctls)
2832
4045
  end
2833
4046
  end
@@ -2965,11 +4178,18 @@ module Google
2965
4178
  class LocalNvmeSsdBlockConfig
2966
4179
  include Google::Apis::Core::Hashable
2967
4180
 
2968
- # The number of raw-block local NVMe SSD disks to be attached to the node. Each
2969
- # local SSD is 375 GB in size. If zero, it means no raw-block local NVMe SSD
2970
- # disks to be attached to the node. The limit for this value is dependent upon
2971
- # the maximum number of disks available on a machine per zone. See: https://
2972
- # cloud.google.com/compute/docs/disks/local-ssd for more information.
4181
+ # Number of local NVMe SSDs to use. The limit for this value is dependent upon
4182
+ # the maximum number of disk available on a machine per zone. See: https://cloud.
4183
+ # google.com/compute/docs/disks/local-ssd for more information. A zero (or unset)
4184
+ # value has different meanings depending on machine type being used: 1. For pre-
4185
+ # Gen3 machines, which support flexible numbers of local ssds, zero (or unset)
4186
+ # means to disable using local SSDs as ephemeral storage. 2. For Gen3 machines
4187
+ # which dictate a specific number of local ssds, zero (or unset) means to use
4188
+ # the default number of local ssds that goes with that machine type. For example,
4189
+ # for a c3-standard-8-lssd machine, 2 local ssds would be provisioned. For c3-
4190
+ # standard-8 (which doesn't support local ssds), 0 will be provisioned. See
4191
+ # https://cloud.google.com/compute/docs/disks/local-ssd#choose_number_local_ssds
4192
+ # for more info.
2973
4193
  # Corresponds to the JSON property `localSsdCount`
2974
4194
  # @return [Fixnum]
2975
4195
  attr_accessor :local_ssd_count
@@ -3160,6 +4380,12 @@ module Google
3160
4380
  class ManagedPrometheusConfig
3161
4381
  include Google::Apis::Core::Hashable
3162
4382
 
4383
+ # AutoMonitoringConfig defines the configuration for GKE Workload Auto-
4384
+ # Monitoring.
4385
+ # Corresponds to the JSON property `autoMonitoringConfig`
4386
+ # @return [Google::Apis::ContainerV1beta1::AutoMonitoringConfig]
4387
+ attr_accessor :auto_monitoring_config
4388
+
3163
4389
  # Enable Managed Collection.
3164
4390
  # Corresponds to the JSON property `enabled`
3165
4391
  # @return [Boolean]
@@ -3172,6 +4398,7 @@ module Google
3172
4398
 
3173
4399
  # Update properties of this object
3174
4400
  def update!(**args)
4401
+ @auto_monitoring_config = args[:auto_monitoring_config] if args.key?(:auto_monitoring_config)
3175
4402
  @enabled = args[:enabled] if args.key?(:enabled)
3176
4403
  end
3177
4404
  end
@@ -3194,8 +4421,8 @@ module Google
3194
4421
  class MasterAuth
3195
4422
  include Google::Apis::Core::Hashable
3196
4423
 
3197
- # [Output only] Base64-encoded public certificate used by clients to
3198
- # authenticate to the cluster endpoint.
4424
+ # Output only. Base64-encoded public certificate used by clients to authenticate
4425
+ # to the cluster endpoint. Issued only if client_certificate_config is set.
3199
4426
  # Corresponds to the JSON property `clientCertificate`
3200
4427
  # @return [String]
3201
4428
  attr_accessor :client_certificate
@@ -3205,13 +4432,14 @@ module Google
3205
4432
  # @return [Google::Apis::ContainerV1beta1::ClientCertificateConfig]
3206
4433
  attr_accessor :client_certificate_config
3207
4434
 
3208
- # [Output only] Base64-encoded private key used by clients to authenticate to
3209
- # the cluster endpoint.
4435
+ # Output only. Base64-encoded private key used by clients to authenticate to the
4436
+ # cluster endpoint.
3210
4437
  # Corresponds to the JSON property `clientKey`
3211
4438
  # @return [String]
3212
4439
  attr_accessor :client_key
3213
4440
 
3214
- #
4441
+ # Output only. Base64-encoded public certificate that is the root of trust for
4442
+ # the cluster.
3215
4443
  # Corresponds to the JSON property `clusterCaCertificate`
3216
4444
  # @return [String]
3217
4445
  attr_accessor :cluster_ca_certificate
@@ -3278,6 +4506,12 @@ module Google
3278
4506
  attr_accessor :gcp_public_cidrs_access_enabled
3279
4507
  alias_method :gcp_public_cidrs_access_enabled?, :gcp_public_cidrs_access_enabled
3280
4508
 
4509
+ # Whether master authorized networks is enforced on private endpoint or not.
4510
+ # Corresponds to the JSON property `privateEndpointEnforcementEnabled`
4511
+ # @return [Boolean]
4512
+ attr_accessor :private_endpoint_enforcement_enabled
4513
+ alias_method :private_endpoint_enforcement_enabled?, :private_endpoint_enforcement_enabled
4514
+
3281
4515
  def initialize(**args)
3282
4516
  update!(**args)
3283
4517
  end
@@ -3287,6 +4521,7 @@ module Google
3287
4521
  @cidr_blocks = args[:cidr_blocks] if args.key?(:cidr_blocks)
3288
4522
  @enabled = args[:enabled] if args.key?(:enabled)
3289
4523
  @gcp_public_cidrs_access_enabled = args[:gcp_public_cidrs_access_enabled] if args.key?(:gcp_public_cidrs_access_enabled)
4524
+ @private_endpoint_enforcement_enabled = args[:private_endpoint_enforcement_enabled] if args.key?(:private_endpoint_enforcement_enabled)
3290
4525
  end
3291
4526
  end
3292
4527
 
@@ -3394,6 +4629,12 @@ module Google
3394
4629
  class MonitoringConfig
3395
4630
  include Google::Apis::Core::Hashable
3396
4631
 
4632
+ # AdvancedDatapathObservabilityConfig specifies configuration of observability
4633
+ # features of advanced datapath.
4634
+ # Corresponds to the JSON property `advancedDatapathObservabilityConfig`
4635
+ # @return [Google::Apis::ContainerV1beta1::AdvancedDatapathObservabilityConfig]
4636
+ attr_accessor :advanced_datapath_observability_config
4637
+
3397
4638
  # MonitoringComponentConfig is cluster monitoring component configuration.
3398
4639
  # Corresponds to the JSON property `componentConfig`
3399
4640
  # @return [Google::Apis::ContainerV1beta1::MonitoringComponentConfig]
@@ -3411,6 +4652,7 @@ module Google
3411
4652
 
3412
4653
  # Update properties of this object
3413
4654
  def update!(**args)
4655
+ @advanced_datapath_observability_config = args[:advanced_datapath_observability_config] if args.key?(:advanced_datapath_observability_config)
3414
4656
  @component_config = args[:component_config] if args.key?(:component_config)
3415
4657
  @managed_prometheus_config = args[:managed_prometheus_config] if args.key?(:managed_prometheus_config)
3416
4658
  end
@@ -3426,17 +4668,44 @@ module Google
3426
4668
  # @return [String]
3427
4669
  attr_accessor :datapath_provider
3428
4670
 
4671
+ # Controls whether by default nodes have private IP addresses only. It is
4672
+ # invalid to specify both PrivateClusterConfig.enablePrivateNodes and this field
4673
+ # at the same time. To update the default setting, use ClusterUpdate.
4674
+ # desired_default_enable_private_nodes
4675
+ # Corresponds to the JSON property `defaultEnablePrivateNodes`
4676
+ # @return [Boolean]
4677
+ attr_accessor :default_enable_private_nodes
4678
+ alias_method :default_enable_private_nodes?, :default_enable_private_nodes
4679
+
3429
4680
  # DefaultSnatStatus contains the desired state of whether default sNAT should be
3430
4681
  # disabled on the cluster.
3431
4682
  # Corresponds to the JSON property `defaultSnatStatus`
3432
4683
  # @return [Google::Apis::ContainerV1beta1::DefaultSnatStatus]
3433
4684
  attr_accessor :default_snat_status
3434
4685
 
4686
+ # Disable L4 load balancer VPC firewalls to enable firewall policies.
4687
+ # Corresponds to the JSON property `disableL4LbFirewallReconciliation`
4688
+ # @return [Boolean]
4689
+ attr_accessor :disable_l4_lb_firewall_reconciliation
4690
+ alias_method :disable_l4_lb_firewall_reconciliation?, :disable_l4_lb_firewall_reconciliation
4691
+
3435
4692
  # DNSConfig contains the desired set of options for configuring clusterDNS.
3436
4693
  # Corresponds to the JSON property `dnsConfig`
3437
4694
  # @return [Google::Apis::ContainerV1beta1::DnsConfig]
3438
4695
  attr_accessor :dns_config
3439
4696
 
4697
+ # Whether CiliumClusterWideNetworkPolicy is enabled on this cluster.
4698
+ # Corresponds to the JSON property `enableCiliumClusterwideNetworkPolicy`
4699
+ # @return [Boolean]
4700
+ attr_accessor :enable_cilium_clusterwide_network_policy
4701
+ alias_method :enable_cilium_clusterwide_network_policy?, :enable_cilium_clusterwide_network_policy
4702
+
4703
+ # Whether FQDN Network Policy is enabled on this cluster.
4704
+ # Corresponds to the JSON property `enableFqdnNetworkPolicy`
4705
+ # @return [Boolean]
4706
+ attr_accessor :enable_fqdn_network_policy
4707
+ alias_method :enable_fqdn_network_policy?, :enable_fqdn_network_policy
4708
+
3440
4709
  # Whether Intra-node visibility is enabled for this cluster. This makes same
3441
4710
  # node pod to pod traffic visible for VPC network.
3442
4711
  # Corresponds to the JSON property `enableIntraNodeVisibility`
@@ -3450,11 +4719,22 @@ module Google
3450
4719
  attr_accessor :enable_l4ilb_subsetting
3451
4720
  alias_method :enable_l4ilb_subsetting?, :enable_l4ilb_subsetting
3452
4721
 
4722
+ # Whether multi-networking is enabled for this cluster.
4723
+ # Corresponds to the JSON property `enableMultiNetworking`
4724
+ # @return [Boolean]
4725
+ attr_accessor :enable_multi_networking
4726
+ alias_method :enable_multi_networking?, :enable_multi_networking
4727
+
3453
4728
  # GatewayAPIConfig contains the desired config of Gateway API on this cluster.
3454
4729
  # Corresponds to the JSON property `gatewayApiConfig`
3455
4730
  # @return [Google::Apis::ContainerV1beta1::GatewayApiConfig]
3456
4731
  attr_accessor :gateway_api_config
3457
4732
 
4733
+ # Specify the details of in-transit encryption.
4734
+ # Corresponds to the JSON property `inTransitEncryptionConfig`
4735
+ # @return [String]
4736
+ attr_accessor :in_transit_encryption_config
4737
+
3458
4738
  # Output only. The relative name of the Google Compute Engine network(https://
3459
4739
  # cloud.google.com/compute/docs/networks-and-firewalls#networks) to which the
3460
4740
  # cluster is connected. Example: projects/my-project/global/networks/my-network
@@ -3462,6 +4742,11 @@ module Google
3462
4742
  # @return [String]
3463
4743
  attr_accessor :network
3464
4744
 
4745
+ # Configuration of all network bandwidth tiers
4746
+ # Corresponds to the JSON property `networkPerformanceConfig`
4747
+ # @return [Google::Apis::ContainerV1beta1::ClusterNetworkPerformanceConfig]
4748
+ attr_accessor :network_performance_config
4749
+
3465
4750
  # The desired state of IPv6 connectivity to Google Services. By default, no
3466
4751
  # private IPv6 access to or from Google Services (all access will be via IPv4)
3467
4752
  # Corresponds to the JSON property `privateIpv6GoogleAccess`
@@ -3487,12 +4772,19 @@ module Google
3487
4772
  # Update properties of this object
3488
4773
  def update!(**args)
3489
4774
  @datapath_provider = args[:datapath_provider] if args.key?(:datapath_provider)
4775
+ @default_enable_private_nodes = args[:default_enable_private_nodes] if args.key?(:default_enable_private_nodes)
3490
4776
  @default_snat_status = args[:default_snat_status] if args.key?(:default_snat_status)
4777
+ @disable_l4_lb_firewall_reconciliation = args[:disable_l4_lb_firewall_reconciliation] if args.key?(:disable_l4_lb_firewall_reconciliation)
3491
4778
  @dns_config = args[:dns_config] if args.key?(:dns_config)
4779
+ @enable_cilium_clusterwide_network_policy = args[:enable_cilium_clusterwide_network_policy] if args.key?(:enable_cilium_clusterwide_network_policy)
4780
+ @enable_fqdn_network_policy = args[:enable_fqdn_network_policy] if args.key?(:enable_fqdn_network_policy)
3492
4781
  @enable_intra_node_visibility = args[:enable_intra_node_visibility] if args.key?(:enable_intra_node_visibility)
3493
4782
  @enable_l4ilb_subsetting = args[:enable_l4ilb_subsetting] if args.key?(:enable_l4ilb_subsetting)
4783
+ @enable_multi_networking = args[:enable_multi_networking] if args.key?(:enable_multi_networking)
3494
4784
  @gateway_api_config = args[:gateway_api_config] if args.key?(:gateway_api_config)
4785
+ @in_transit_encryption_config = args[:in_transit_encryption_config] if args.key?(:in_transit_encryption_config)
3495
4786
  @network = args[:network] if args.key?(:network)
4787
+ @network_performance_config = args[:network_performance_config] if args.key?(:network_performance_config)
3496
4788
  @private_ipv6_google_access = args[:private_ipv6_google_access] if args.key?(:private_ipv6_google_access)
3497
4789
  @service_external_ips_config = args[:service_external_ips_config] if args.key?(:service_external_ips_config)
3498
4790
  @subnetwork = args[:subnetwork] if args.key?(:subnetwork)
@@ -3595,6 +4887,39 @@ module Google
3595
4887
  end
3596
4888
  end
3597
4889
 
4890
+ # Specifies the NodeAffinity key, values, and affinity operator according to [
4891
+ # shared sole tenant node group affinities](https://cloud.google.com/compute/
4892
+ # docs/nodes/sole-tenant-nodes#node_affinity_and_anti-affinity).
4893
+ class NodeAffinity
4894
+ include Google::Apis::Core::Hashable
4895
+
4896
+ # Key for NodeAffinity.
4897
+ # Corresponds to the JSON property `key`
4898
+ # @return [String]
4899
+ attr_accessor :key
4900
+
4901
+ # Operator for NodeAffinity.
4902
+ # Corresponds to the JSON property `operator`
4903
+ # @return [String]
4904
+ attr_accessor :operator
4905
+
4906
+ # Values for NodeAffinity.
4907
+ # Corresponds to the JSON property `values`
4908
+ # @return [Array<String>]
4909
+ attr_accessor :values
4910
+
4911
+ def initialize(**args)
4912
+ update!(**args)
4913
+ end
4914
+
4915
+ # Update properties of this object
4916
+ def update!(**args)
4917
+ @key = args[:key] if args.key?(:key)
4918
+ @operator = args[:operator] if args.key?(:operator)
4919
+ @values = args[:values] if args.key?(:values)
4920
+ end
4921
+ end
4922
+
3598
4923
  # Parameters that describe the nodes in a cluster. GKE Autopilot clusters do not
3599
4924
  # recognize parameters in `NodeConfig`. Use AutoprovisioningNodePoolDefaults
3600
4925
  # instead.
@@ -3627,6 +4952,11 @@ module Google
3627
4952
  # @return [Google::Apis::ContainerV1beta1::ConfidentialNodes]
3628
4953
  attr_accessor :confidential_nodes
3629
4954
 
4955
+ # ContainerdConfig contains configuration to customize containerd.
4956
+ # Corresponds to the JSON property `containerdConfig`
4957
+ # @return [Google::Apis::ContainerV1beta1::ContainerdConfig]
4958
+ attr_accessor :containerd_config
4959
+
3630
4960
  # Size of the disk attached to each node, specified in GB. The smallest allowed
3631
4961
  # disk size is 10GB. If unspecified, the default disk size is 100GB.
3632
4962
  # Corresponds to the JSON property `diskSizeGb`
@@ -3639,6 +4969,20 @@ module Google
3639
4969
  # @return [String]
3640
4970
  attr_accessor :disk_type
3641
4971
 
4972
+ # Output only. effective_cgroup_mode is the cgroup mode actually used by the
4973
+ # node pool. It is determined by the cgroup mode specified in the
4974
+ # LinuxNodeConfig or the default cgroup mode based on the cluster creation
4975
+ # version.
4976
+ # Corresponds to the JSON property `effectiveCgroupMode`
4977
+ # @return [String]
4978
+ attr_accessor :effective_cgroup_mode
4979
+
4980
+ # Optional. Reserved for future use.
4981
+ # Corresponds to the JSON property `enableConfidentialStorage`
4982
+ # @return [Boolean]
4983
+ attr_accessor :enable_confidential_storage
4984
+ alias_method :enable_confidential_storage?, :enable_confidential_storage
4985
+
3642
4986
  # EphemeralStorageConfig contains configuration for the ephemeral storage
3643
4987
  # filesystem.
3644
4988
  # Corresponds to the JSON property `ephemeralStorageConfig`
@@ -3666,8 +5010,15 @@ module Google
3666
5010
  # @return [Google::Apis::ContainerV1beta1::VirtualNic]
3667
5011
  attr_accessor :gvnic
3668
5012
 
5013
+ # HostMaintenancePolicy contains the maintenance policy for the hosts on which
5014
+ # the GKE VMs run on.
5015
+ # Corresponds to the JSON property `hostMaintenancePolicy`
5016
+ # @return [Google::Apis::ContainerV1beta1::HostMaintenancePolicy]
5017
+ attr_accessor :host_maintenance_policy
5018
+
3669
5019
  # The image type to use for this node. Note that for a given image type, the
3670
- # latest version of it will be used.
5020
+ # latest version of it will be used. Please see https://cloud.google.com/
5021
+ # kubernetes-engine/docs/concepts/node-images for available image types.
3671
5022
  # Corresponds to the JSON property `imageType`
3672
5023
  # @return [String]
3673
5024
  attr_accessor :image_type
@@ -3707,6 +5058,12 @@ module Google
3707
5058
  # @return [Fixnum]
3708
5059
  attr_accessor :local_ssd_count
3709
5060
 
5061
+ # Specifies which method should be used for encrypting the Local SSDs attahced
5062
+ # to the node.
5063
+ # Corresponds to the JSON property `localSsdEncryptionMode`
5064
+ # @return [String]
5065
+ attr_accessor :local_ssd_encryption_mode
5066
+
3710
5067
  # NodePoolLoggingConfig specifies logging configuration for nodepools.
3711
5068
  # Corresponds to the JSON property `loggingConfig`
3712
5069
  # @return [Google::Apis::ContainerV1beta1::NodePoolLoggingConfig]
@@ -3719,6 +5076,12 @@ module Google
3719
5076
  # @return [String]
3720
5077
  attr_accessor :machine_type
3721
5078
 
5079
+ # The maximum duration for the nodes to exist. If unspecified, the nodes can
5080
+ # exist indefinitely.
5081
+ # Corresponds to the JSON property `maxRunDuration`
5082
+ # @return [String]
5083
+ attr_accessor :max_run_duration
5084
+
3722
5085
  # The metadata key/value pairs assigned to instances in the cluster. Keys must
3723
5086
  # conform to the regexp `[a-zA-Z0-9-_]+` and be less than 128 bytes in length.
3724
5087
  # These are reflected as part of a URL in the metadata server. Additionally, to
@@ -3768,7 +5131,7 @@ module Google
3768
5131
  attr_accessor :oauth_scopes
3769
5132
 
3770
5133
  # Whether the nodes are created as preemptible VM instances. See: https://cloud.
3771
- # google.com/compute/docs/instances/preemptible for more inforamtion about
5134
+ # google.com/compute/docs/instances/preemptible for more information about
3772
5135
  # preemptible VM instances.
3773
5136
  # Corresponds to the JSON property `preemptible`
3774
5137
  # @return [Boolean]
@@ -3788,11 +5151,31 @@ module Google
3788
5151
  # @return [Hash<String,String>]
3789
5152
  attr_accessor :resource_labels
3790
5153
 
5154
+ # A map of resource manager tag keys and values to be attached to the nodes for
5155
+ # managing Compute Engine firewalls using Network Firewall Policies. Tags must
5156
+ # be according to specifications in https://cloud.google.com/vpc/docs/tags-
5157
+ # firewalls-overview#specifications. A maximum of 5 tag key-value pairs can be
5158
+ # specified. Existing tags will be replaced with new values.
5159
+ # Corresponds to the JSON property `resourceManagerTags`
5160
+ # @return [Google::Apis::ContainerV1beta1::ResourceManagerTags]
5161
+ attr_accessor :resource_manager_tags
5162
+
3791
5163
  # SandboxConfig contains configurations of the sandbox to use for the node.
3792
5164
  # Corresponds to the JSON property `sandboxConfig`
3793
5165
  # @return [Google::Apis::ContainerV1beta1::SandboxConfig]
3794
5166
  attr_accessor :sandbox_config
3795
5167
 
5168
+ # SecondaryBootDiskUpdateStrategy is a placeholder which will be extended in the
5169
+ # future to define different options for updating secondary boot disks.
5170
+ # Corresponds to the JSON property `secondaryBootDiskUpdateStrategy`
5171
+ # @return [Google::Apis::ContainerV1beta1::SecondaryBootDiskUpdateStrategy]
5172
+ attr_accessor :secondary_boot_disk_update_strategy
5173
+
5174
+ # List of secondary boot disks attached to the nodes.
5175
+ # Corresponds to the JSON property `secondaryBootDisks`
5176
+ # @return [Array<Google::Apis::ContainerV1beta1::SecondaryBootDisk>]
5177
+ attr_accessor :secondary_boot_disks
5178
+
3796
5179
  # The Google Cloud Platform Service Account to be used by the node VMs. Specify
3797
5180
  # the email address of the Service Account; otherwise, if no Service Account is
3798
5181
  # specified, the "default" service account is used.
@@ -3805,6 +5188,12 @@ module Google
3805
5188
  # @return [Google::Apis::ContainerV1beta1::ShieldedInstanceConfig]
3806
5189
  attr_accessor :shielded_instance_config
3807
5190
 
5191
+ # SoleTenantConfig contains the NodeAffinities to specify what shared sole
5192
+ # tenant node groups should back the node pool.
5193
+ # Corresponds to the JSON property `soleTenantConfig`
5194
+ # @return [Google::Apis::ContainerV1beta1::SoleTenantConfig]
5195
+ attr_accessor :sole_tenant_config
5196
+
3808
5197
  # Spot flag for enabling Spot VM, which is a rebrand of the existing preemptible
3809
5198
  # flag.
3810
5199
  # Corresponds to the JSON property `spot`
@@ -3812,6 +5201,11 @@ module Google
3812
5201
  attr_accessor :spot
3813
5202
  alias_method :spot?, :spot
3814
5203
 
5204
+ # List of Storage Pools where boot disks are provisioned.
5205
+ # Corresponds to the JSON property `storagePools`
5206
+ # @return [Array<String>]
5207
+ attr_accessor :storage_pools
5208
+
3815
5209
  # The list of instance tags applied to all nodes. Tags are used to identify
3816
5210
  # valid sources or targets for network firewalls and are specified by the client
3817
5211
  # during cluster or node pool creation. Each tag within the list must comply
@@ -3850,21 +5244,27 @@ module Google
3850
5244
  @advanced_machine_features = args[:advanced_machine_features] if args.key?(:advanced_machine_features)
3851
5245
  @boot_disk_kms_key = args[:boot_disk_kms_key] if args.key?(:boot_disk_kms_key)
3852
5246
  @confidential_nodes = args[:confidential_nodes] if args.key?(:confidential_nodes)
5247
+ @containerd_config = args[:containerd_config] if args.key?(:containerd_config)
3853
5248
  @disk_size_gb = args[:disk_size_gb] if args.key?(:disk_size_gb)
3854
5249
  @disk_type = args[:disk_type] if args.key?(:disk_type)
5250
+ @effective_cgroup_mode = args[:effective_cgroup_mode] if args.key?(:effective_cgroup_mode)
5251
+ @enable_confidential_storage = args[:enable_confidential_storage] if args.key?(:enable_confidential_storage)
3855
5252
  @ephemeral_storage_config = args[:ephemeral_storage_config] if args.key?(:ephemeral_storage_config)
3856
5253
  @ephemeral_storage_local_ssd_config = args[:ephemeral_storage_local_ssd_config] if args.key?(:ephemeral_storage_local_ssd_config)
3857
5254
  @fast_socket = args[:fast_socket] if args.key?(:fast_socket)
3858
5255
  @gcfs_config = args[:gcfs_config] if args.key?(:gcfs_config)
3859
5256
  @gvnic = args[:gvnic] if args.key?(:gvnic)
5257
+ @host_maintenance_policy = args[:host_maintenance_policy] if args.key?(:host_maintenance_policy)
3860
5258
  @image_type = args[:image_type] if args.key?(:image_type)
3861
5259
  @kubelet_config = args[:kubelet_config] if args.key?(:kubelet_config)
3862
5260
  @labels = args[:labels] if args.key?(:labels)
3863
5261
  @linux_node_config = args[:linux_node_config] if args.key?(:linux_node_config)
3864
5262
  @local_nvme_ssd_block_config = args[:local_nvme_ssd_block_config] if args.key?(:local_nvme_ssd_block_config)
3865
5263
  @local_ssd_count = args[:local_ssd_count] if args.key?(:local_ssd_count)
5264
+ @local_ssd_encryption_mode = args[:local_ssd_encryption_mode] if args.key?(:local_ssd_encryption_mode)
3866
5265
  @logging_config = args[:logging_config] if args.key?(:logging_config)
3867
5266
  @machine_type = args[:machine_type] if args.key?(:machine_type)
5267
+ @max_run_duration = args[:max_run_duration] if args.key?(:max_run_duration)
3868
5268
  @metadata = args[:metadata] if args.key?(:metadata)
3869
5269
  @min_cpu_platform = args[:min_cpu_platform] if args.key?(:min_cpu_platform)
3870
5270
  @node_group = args[:node_group] if args.key?(:node_group)
@@ -3872,10 +5272,15 @@ module Google
3872
5272
  @preemptible = args[:preemptible] if args.key?(:preemptible)
3873
5273
  @reservation_affinity = args[:reservation_affinity] if args.key?(:reservation_affinity)
3874
5274
  @resource_labels = args[:resource_labels] if args.key?(:resource_labels)
5275
+ @resource_manager_tags = args[:resource_manager_tags] if args.key?(:resource_manager_tags)
3875
5276
  @sandbox_config = args[:sandbox_config] if args.key?(:sandbox_config)
5277
+ @secondary_boot_disk_update_strategy = args[:secondary_boot_disk_update_strategy] if args.key?(:secondary_boot_disk_update_strategy)
5278
+ @secondary_boot_disks = args[:secondary_boot_disks] if args.key?(:secondary_boot_disks)
3876
5279
  @service_account = args[:service_account] if args.key?(:service_account)
3877
5280
  @shielded_instance_config = args[:shielded_instance_config] if args.key?(:shielded_instance_config)
5281
+ @sole_tenant_config = args[:sole_tenant_config] if args.key?(:sole_tenant_config)
3878
5282
  @spot = args[:spot] if args.key?(:spot)
5283
+ @storage_pools = args[:storage_pools] if args.key?(:storage_pools)
3879
5284
  @tags = args[:tags] if args.key?(:tags)
3880
5285
  @taints = args[:taints] if args.key?(:taints)
3881
5286
  @windows_node_config = args[:windows_node_config] if args.key?(:windows_node_config)
@@ -3887,24 +5292,43 @@ module Google
3887
5292
  class NodeConfigDefaults
3888
5293
  include Google::Apis::Core::Hashable
3889
5294
 
5295
+ # ContainerdConfig contains configuration to customize containerd.
5296
+ # Corresponds to the JSON property `containerdConfig`
5297
+ # @return [Google::Apis::ContainerV1beta1::ContainerdConfig]
5298
+ attr_accessor :containerd_config
5299
+
3890
5300
  # GcfsConfig contains configurations of Google Container File System.
3891
5301
  # Corresponds to the JSON property `gcfsConfig`
3892
5302
  # @return [Google::Apis::ContainerV1beta1::GcfsConfig]
3893
5303
  attr_accessor :gcfs_config
3894
5304
 
5305
+ # HostMaintenancePolicy contains the maintenance policy for the hosts on which
5306
+ # the GKE VMs run on.
5307
+ # Corresponds to the JSON property `hostMaintenancePolicy`
5308
+ # @return [Google::Apis::ContainerV1beta1::HostMaintenancePolicy]
5309
+ attr_accessor :host_maintenance_policy
5310
+
3895
5311
  # NodePoolLoggingConfig specifies logging configuration for nodepools.
3896
5312
  # Corresponds to the JSON property `loggingConfig`
3897
5313
  # @return [Google::Apis::ContainerV1beta1::NodePoolLoggingConfig]
3898
5314
  attr_accessor :logging_config
3899
5315
 
5316
+ # Node kubelet configs.
5317
+ # Corresponds to the JSON property `nodeKubeletConfig`
5318
+ # @return [Google::Apis::ContainerV1beta1::NodeKubeletConfig]
5319
+ attr_accessor :node_kubelet_config
5320
+
3900
5321
  def initialize(**args)
3901
5322
  update!(**args)
3902
5323
  end
3903
5324
 
3904
5325
  # Update properties of this object
3905
5326
  def update!(**args)
5327
+ @containerd_config = args[:containerd_config] if args.key?(:containerd_config)
3906
5328
  @gcfs_config = args[:gcfs_config] if args.key?(:gcfs_config)
5329
+ @host_maintenance_policy = args[:host_maintenance_policy] if args.key?(:host_maintenance_policy)
3907
5330
  @logging_config = args[:logging_config] if args.key?(:logging_config)
5331
+ @node_kubelet_config = args[:node_kubelet_config] if args.key?(:node_kubelet_config)
3908
5332
  end
3909
5333
  end
3910
5334
 
@@ -3942,6 +5366,12 @@ module Google
3942
5366
  # @return [String]
3943
5367
  attr_accessor :cpu_manager_policy
3944
5368
 
5369
+ # Enable or disable Kubelet read only port.
5370
+ # Corresponds to the JSON property `insecureKubeletReadonlyPortEnabled`
5371
+ # @return [Boolean]
5372
+ attr_accessor :insecure_kubelet_readonly_port_enabled
5373
+ alias_method :insecure_kubelet_readonly_port_enabled?, :insecure_kubelet_readonly_port_enabled
5374
+
3945
5375
  # Set the Pod PID limits. See https://kubernetes.io/docs/concepts/policy/pid-
3946
5376
  # limiting/#pod-pid-limits Controls the maximum number of processes allowed to
3947
5377
  # run in a pod. The value must be greater than or equal to 1024 and less than
@@ -3959,6 +5389,7 @@ module Google
3959
5389
  @cpu_cfs_quota = args[:cpu_cfs_quota] if args.key?(:cpu_cfs_quota)
3960
5390
  @cpu_cfs_quota_period = args[:cpu_cfs_quota_period] if args.key?(:cpu_cfs_quota_period)
3961
5391
  @cpu_manager_policy = args[:cpu_manager_policy] if args.key?(:cpu_manager_policy)
5392
+ @insecure_kubelet_readonly_port_enabled = args[:insecure_kubelet_readonly_port_enabled] if args.key?(:insecure_kubelet_readonly_port_enabled)
3962
5393
  @pod_pids_limit = args[:pod_pids_limit] if args.key?(:pod_pids_limit)
3963
5394
  end
3964
5395
  end
@@ -4022,6 +5453,18 @@ module Google
4022
5453
  class NodeNetworkConfig
4023
5454
  include Google::Apis::Core::Hashable
4024
5455
 
5456
+ # We specify the additional node networks for this node pool using this list.
5457
+ # Each node network corresponds to an additional interface
5458
+ # Corresponds to the JSON property `additionalNodeNetworkConfigs`
5459
+ # @return [Array<Google::Apis::ContainerV1beta1::AdditionalNodeNetworkConfig>]
5460
+ attr_accessor :additional_node_network_configs
5461
+
5462
+ # We specify the additional pod networks for this node pool using this list.
5463
+ # Each pod network corresponds to an additional alias IP range for the node
5464
+ # Corresponds to the JSON property `additionalPodNetworkConfigs`
5465
+ # @return [Array<Google::Apis::ContainerV1beta1::AdditionalPodNetworkConfig>]
5466
+ attr_accessor :additional_pod_network_configs
5467
+
4025
5468
  # Input only. Whether to create a new range for pod IPs in this node pool.
4026
5469
  # Defaults are provided for `pod_range` and `pod_ipv4_cidr_block` if they are
4027
5470
  # not specified. If neither `create_pod_range` or `pod_range` are specified, the
@@ -4034,8 +5477,8 @@ module Google
4034
5477
  alias_method :create_pod_range?, :create_pod_range
4035
5478
 
4036
5479
  # Whether nodes have internal IP addresses only. If enable_private_nodes is not
4037
- # specified, then the value is derived from cluster.privateClusterConfig.
4038
- # enablePrivateNodes
5480
+ # specified, then the value is derived from Cluster.NetworkConfig.
5481
+ # default_enable_private_nodes
4039
5482
  # Corresponds to the JSON property `enablePrivateNodes`
4040
5483
  # @return [Boolean]
4041
5484
  attr_accessor :enable_private_nodes
@@ -4046,6 +5489,11 @@ module Google
4046
5489
  # @return [Google::Apis::ContainerV1beta1::NetworkPerformanceConfig]
4047
5490
  attr_accessor :network_performance_config
4048
5491
 
5492
+ # [PRIVATE FIELD] Config for pod CIDR size overprovisioning.
5493
+ # Corresponds to the JSON property `podCidrOverprovisionConfig`
5494
+ # @return [Google::Apis::ContainerV1beta1::PodCidrOverprovisionConfig]
5495
+ attr_accessor :pod_cidr_overprovision_config
5496
+
4049
5497
  # The IP address range for pod IPs in this node pool. Only applicable if `
4050
5498
  # create_pod_range` is true. Set to blank to have a range chosen with the
4051
5499
  # default size. Set to /netmask (e.g. `/14`) to have a range chosen with a
@@ -4057,6 +5505,13 @@ module Google
4057
5505
  # @return [String]
4058
5506
  attr_accessor :pod_ipv4_cidr_block
4059
5507
 
5508
+ # Output only. The utilization of the IPv4 range for the pod. The ratio is Usage/
5509
+ # [Total number of IPs in the secondary range], Usage=numNodes*numZones*
5510
+ # podIPsPerNode.
5511
+ # Corresponds to the JSON property `podIpv4RangeUtilization`
5512
+ # @return [Float]
5513
+ attr_accessor :pod_ipv4_range_utilization
5514
+
4060
5515
  # The ID of the secondary range for pod IPs. If `create_pod_range` is true, this
4061
5516
  # ID is used for the new range. If `create_pod_range` is false, uses an existing
4062
5517
  # secondary range with this ID. Only applicable if `ip_allocation_policy.
@@ -4072,10 +5527,14 @@ module Google
4072
5527
 
4073
5528
  # Update properties of this object
4074
5529
  def update!(**args)
5530
+ @additional_node_network_configs = args[:additional_node_network_configs] if args.key?(:additional_node_network_configs)
5531
+ @additional_pod_network_configs = args[:additional_pod_network_configs] if args.key?(:additional_pod_network_configs)
4075
5532
  @create_pod_range = args[:create_pod_range] if args.key?(:create_pod_range)
4076
5533
  @enable_private_nodes = args[:enable_private_nodes] if args.key?(:enable_private_nodes)
4077
5534
  @network_performance_config = args[:network_performance_config] if args.key?(:network_performance_config)
5535
+ @pod_cidr_overprovision_config = args[:pod_cidr_overprovision_config] if args.key?(:pod_cidr_overprovision_config)
4078
5536
  @pod_ipv4_cidr_block = args[:pod_ipv4_cidr_block] if args.key?(:pod_ipv4_cidr_block)
5537
+ @pod_ipv4_range_utilization = args[:pod_ipv4_range_utilization] if args.key?(:pod_ipv4_range_utilization)
4079
5538
  @pod_range = args[:pod_range] if args.key?(:pod_range)
4080
5539
  end
4081
5540
  end
@@ -4085,20 +5544,7 @@ module Google
4085
5544
  # specification, under the control of the cluster master. They may have a set of
4086
5545
  # Kubernetes labels applied to them, which may be used to reference them during
4087
5546
  # pod scheduling. They may also be resized up or down, to accommodate the
4088
- # workload. These upgrade settings control the level of parallelism and the
4089
- # level of disruption caused by an upgrade. maxUnavailable controls the number
4090
- # of nodes that can be simultaneously unavailable. maxSurge controls the number
4091
- # of additional nodes that can be added to the node pool temporarily for the
4092
- # time of the upgrade to increase the number of available nodes. (maxUnavailable
4093
- # + maxSurge) determines the level of parallelism (how many nodes are being
4094
- # upgraded at the same time). Note: upgrades inevitably introduce some
4095
- # disruption since workloads need to be moved from old nodes to new, upgraded
4096
- # ones. Even if maxUnavailable=0, this holds true. (Disruption stays within the
4097
- # limits of PodDisruptionBudget, if it is configured.) Consider a hypothetical
4098
- # node pool with 5 nodes having maxSurge=2, maxUnavailable=1. This means the
4099
- # upgrade process upgrades 3 nodes simultaneously. It creates 2 additional (
4100
- # upgraded) nodes, then it brings down 3 old (not yet upgraded) nodes at the
4101
- # same time. This ensures that there are always at least 4 nodes available.
5547
+ # workload.
4102
5548
  class NodePool
4103
5549
  include Google::Apis::Core::Hashable
4104
5550
 
@@ -4108,6 +5554,11 @@ module Google
4108
5554
  # @return [Google::Apis::ContainerV1beta1::NodePoolAutoscaling]
4109
5555
  attr_accessor :autoscaling
4110
5556
 
5557
+ # Best effort provisioning.
5558
+ # Corresponds to the JSON property `bestEffortProvisioning`
5559
+ # @return [Google::Apis::ContainerV1beta1::BestEffortProvisioning]
5560
+ attr_accessor :best_effort_provisioning
5561
+
4111
5562
  # Which conditions caused the current node pool state.
4112
5563
  # Corresponds to the JSON property `conditions`
4113
5564
  # @return [Array<Google::Apis::ContainerV1beta1::StatusCondition>]
@@ -4135,7 +5586,7 @@ module Google
4135
5586
  # @return [Fixnum]
4136
5587
  attr_accessor :initial_node_count
4137
5588
 
4138
- # [Output only] The resource URLs of the [managed instance groups](https://cloud.
5589
+ # Output only. The resource URLs of the [managed instance groups](https://cloud.
4139
5590
  # google.com/compute/docs/instance-groups/creating-groups-of-managed-instances)
4140
5591
  # associated with this node pool. During the node pool blue-green upgrade
4141
5592
  # operation, the URLs contain both blue and green resources.
@@ -4179,22 +5630,27 @@ module Google
4179
5630
  # @return [Google::Apis::ContainerV1beta1::PlacementPolicy]
4180
5631
  attr_accessor :placement_policy
4181
5632
 
4182
- # [Output only] The pod CIDR block size per node in this node pool.
5633
+ # Output only. The pod CIDR block size per node in this node pool.
4183
5634
  # Corresponds to the JSON property `podIpv4CidrSize`
4184
5635
  # @return [Fixnum]
4185
5636
  attr_accessor :pod_ipv4_cidr_size
4186
5637
 
4187
- # [Output only] Server-defined URL for the resource.
5638
+ # QueuedProvisioning defines the queued provisioning used by the node pool.
5639
+ # Corresponds to the JSON property `queuedProvisioning`
5640
+ # @return [Google::Apis::ContainerV1beta1::QueuedProvisioning]
5641
+ attr_accessor :queued_provisioning
5642
+
5643
+ # Output only. Server-defined URL for the resource.
4188
5644
  # Corresponds to the JSON property `selfLink`
4189
5645
  # @return [String]
4190
5646
  attr_accessor :self_link
4191
5647
 
4192
- # [Output only] The status of the nodes in this pool instance.
5648
+ # Output only. The status of the nodes in this pool instance.
4193
5649
  # Corresponds to the JSON property `status`
4194
5650
  # @return [String]
4195
5651
  attr_accessor :status
4196
5652
 
4197
- # [Output only] Deprecated. Use conditions instead. Additional information about
5653
+ # Output only. Deprecated. Use conditions instead. Additional information about
4198
5654
  # the current status of this node pool instance, if available.
4199
5655
  # Corresponds to the JSON property `statusMessage`
4200
5656
  # @return [String]
@@ -4206,6 +5662,20 @@ module Google
4206
5662
  # @return [Google::Apis::ContainerV1beta1::UpdateInfo]
4207
5663
  attr_accessor :update_info
4208
5664
 
5665
+ # These upgrade settings control the level of parallelism and the level of
5666
+ # disruption caused by an upgrade. maxUnavailable controls the number of nodes
5667
+ # that can be simultaneously unavailable. maxSurge controls the number of
5668
+ # additional nodes that can be added to the node pool temporarily for the time
5669
+ # of the upgrade to increase the number of available nodes. (maxUnavailable +
5670
+ # maxSurge) determines the level of parallelism (how many nodes are being
5671
+ # upgraded at the same time). Note: upgrades inevitably introduce some
5672
+ # disruption since workloads need to be moved from old nodes to new, upgraded
5673
+ # ones. Even if maxUnavailable=0, this holds true. (Disruption stays within the
5674
+ # limits of PodDisruptionBudget, if it is configured.) Consider a hypothetical
5675
+ # node pool with 5 nodes having maxSurge=2, maxUnavailable=1. This means the
5676
+ # upgrade process upgrades 3 nodes simultaneously. It creates 2 additional (
5677
+ # upgraded) nodes, then it brings down 3 old (not yet upgraded) nodes at the
5678
+ # same time. This ensures that there are always at least 4 nodes available.
4209
5679
  # These upgrade settings configure the upgrade strategy for the node pool. Use
4210
5680
  # strategy to switch between the strategies applied to the node pool. If the
4211
5681
  # strategy is SURGE, use max_surge and max_unavailable to control the level of
@@ -4227,7 +5697,9 @@ module Google
4227
5697
  # @return [Google::Apis::ContainerV1beta1::UpgradeSettings]
4228
5698
  attr_accessor :upgrade_settings
4229
5699
 
4230
- # The version of the Kubernetes of this node.
5700
+ # The version of Kubernetes running on this NodePool's nodes. If unspecified, it
5701
+ # defaults as described [here](https://cloud.google.com/kubernetes-engine/
5702
+ # versioning#specifying_node_version).
4231
5703
  # Corresponds to the JSON property `version`
4232
5704
  # @return [String]
4233
5705
  attr_accessor :version
@@ -4239,6 +5711,7 @@ module Google
4239
5711
  # Update properties of this object
4240
5712
  def update!(**args)
4241
5713
  @autoscaling = args[:autoscaling] if args.key?(:autoscaling)
5714
+ @best_effort_provisioning = args[:best_effort_provisioning] if args.key?(:best_effort_provisioning)
4242
5715
  @conditions = args[:conditions] if args.key?(:conditions)
4243
5716
  @config = args[:config] if args.key?(:config)
4244
5717
  @etag = args[:etag] if args.key?(:etag)
@@ -4251,6 +5724,7 @@ module Google
4251
5724
  @network_config = args[:network_config] if args.key?(:network_config)
4252
5725
  @placement_policy = args[:placement_policy] if args.key?(:placement_policy)
4253
5726
  @pod_ipv4_cidr_size = args[:pod_ipv4_cidr_size] if args.key?(:pod_ipv4_cidr_size)
5727
+ @queued_provisioning = args[:queued_provisioning] if args.key?(:queued_provisioning)
4254
5728
  @self_link = args[:self_link] if args.key?(:self_link)
4255
5729
  @status = args[:status] if args.key?(:status)
4256
5730
  @status_message = args[:status_message] if args.key?(:status_message)
@@ -4265,6 +5739,11 @@ module Google
4265
5739
  class NodePoolAutoConfig
4266
5740
  include Google::Apis::Core::Hashable
4267
5741
 
5742
+ # Parameters that can be configured on Linux nodes.
5743
+ # Corresponds to the JSON property `linuxNodeConfig`
5744
+ # @return [Google::Apis::ContainerV1beta1::LinuxNodeConfig]
5745
+ attr_accessor :linux_node_config
5746
+
4268
5747
  # Collection of Compute Engine network tags that can be applied to a node's
4269
5748
  # underlying VM instance. (See `tags` field in [`NodeConfig`](/kubernetes-engine/
4270
5749
  # docs/reference/rest/v1/NodeConfig)).
@@ -4272,13 +5751,30 @@ module Google
4272
5751
  # @return [Google::Apis::ContainerV1beta1::NetworkTags]
4273
5752
  attr_accessor :network_tags
4274
5753
 
5754
+ # Node kubelet configs.
5755
+ # Corresponds to the JSON property `nodeKubeletConfig`
5756
+ # @return [Google::Apis::ContainerV1beta1::NodeKubeletConfig]
5757
+ attr_accessor :node_kubelet_config
5758
+
5759
+ # A map of resource manager tag keys and values to be attached to the nodes for
5760
+ # managing Compute Engine firewalls using Network Firewall Policies. Tags must
5761
+ # be according to specifications in https://cloud.google.com/vpc/docs/tags-
5762
+ # firewalls-overview#specifications. A maximum of 5 tag key-value pairs can be
5763
+ # specified. Existing tags will be replaced with new values.
5764
+ # Corresponds to the JSON property `resourceManagerTags`
5765
+ # @return [Google::Apis::ContainerV1beta1::ResourceManagerTags]
5766
+ attr_accessor :resource_manager_tags
5767
+
4275
5768
  def initialize(**args)
4276
5769
  update!(**args)
4277
5770
  end
4278
5771
 
4279
5772
  # Update properties of this object
4280
5773
  def update!(**args)
5774
+ @linux_node_config = args[:linux_node_config] if args.key?(:linux_node_config)
4281
5775
  @network_tags = args[:network_tags] if args.key?(:network_tags)
5776
+ @node_kubelet_config = args[:node_kubelet_config] if args.key?(:node_kubelet_config)
5777
+ @resource_manager_tags = args[:resource_manager_tags] if args.key?(:resource_manager_tags)
4282
5778
  end
4283
5779
  end
4284
5780
 
@@ -4304,19 +5800,19 @@ module Google
4304
5800
  # @return [String]
4305
5801
  attr_accessor :location_policy
4306
5802
 
4307
- # Maximum number of nodes for one location in the NodePool. Must be >=
5803
+ # Maximum number of nodes for one location in the node pool. Must be >=
4308
5804
  # min_node_count. There has to be enough quota to scale up the cluster.
4309
5805
  # Corresponds to the JSON property `maxNodeCount`
4310
5806
  # @return [Fixnum]
4311
5807
  attr_accessor :max_node_count
4312
5808
 
4313
- # Minimum number of nodes for one location in the NodePool. Must be >= 1 and <=
4314
- # max_node_count.
5809
+ # Minimum number of nodes for one location in the node pool. Must be greater
5810
+ # than or equal to 0 and less than or equal to max_node_count.
4315
5811
  # Corresponds to the JSON property `minNodeCount`
4316
5812
  # @return [Fixnum]
4317
5813
  attr_accessor :min_node_count
4318
5814
 
4319
- # Maximum number of nodes in the node pool. Must be greater than
5815
+ # Maximum number of nodes in the node pool. Must be greater than or equal to
4320
5816
  # total_min_node_count. There has to be enough quota to scale up the cluster.
4321
5817
  # The total_*_node_count fields are mutually exclusive with the *_node_count
4322
5818
  # fields.
@@ -4324,9 +5820,9 @@ module Google
4324
5820
  # @return [Fixnum]
4325
5821
  attr_accessor :total_max_node_count
4326
5822
 
4327
- # Minimum number of nodes in the node pool. Must be greater than 1 less than
4328
- # total_max_node_count. The total_*_node_count fields are mutually exclusive
4329
- # with the *_node_count fields.
5823
+ # Minimum number of nodes in the node pool. Must be greater than or equal to 0
5824
+ # and less than or equal to total_max_node_count. The total_*_node_count fields
5825
+ # are mutually exclusive with the *_node_count fields.
4330
5826
  # Corresponds to the JSON property `totalMinNodeCount`
4331
5827
  # @return [Fixnum]
4332
5828
  attr_accessor :total_min_node_count
@@ -4385,7 +5881,62 @@ module Google
4385
5881
  end
4386
5882
  end
4387
5883
 
4388
- # Kubernetes taint is comprised of three fields: key, value, and effect. Effect
5884
+ # NodePoolUpgradeInfo contains the upgrade information of a nodepool.
5885
+ class NodePoolUpgradeInfo
5886
+ include Google::Apis::Core::Hashable
5887
+
5888
+ # The auto upgrade status.
5889
+ # Corresponds to the JSON property `autoUpgradeStatus`
5890
+ # @return [Array<String>]
5891
+ attr_accessor :auto_upgrade_status
5892
+
5893
+ # The nodepool's current minor version's end of extended support timestamp.
5894
+ # Corresponds to the JSON property `endOfExtendedSupportTimestamp`
5895
+ # @return [String]
5896
+ attr_accessor :end_of_extended_support_timestamp
5897
+
5898
+ # The nodepool's current minor version's end of standard support timestamp.
5899
+ # Corresponds to the JSON property `endOfStandardSupportTimestamp`
5900
+ # @return [String]
5901
+ attr_accessor :end_of_standard_support_timestamp
5902
+
5903
+ # minor_target_version indicates the target version for minor upgrade.
5904
+ # Corresponds to the JSON property `minorTargetVersion`
5905
+ # @return [String]
5906
+ attr_accessor :minor_target_version
5907
+
5908
+ # patch_target_version indicates the target version for patch upgrade.
5909
+ # Corresponds to the JSON property `patchTargetVersion`
5910
+ # @return [String]
5911
+ attr_accessor :patch_target_version
5912
+
5913
+ # The auto upgrade paused reason.
5914
+ # Corresponds to the JSON property `pausedReason`
5915
+ # @return [Array<String>]
5916
+ attr_accessor :paused_reason
5917
+
5918
+ # The list of past auto upgrades.
5919
+ # Corresponds to the JSON property `upgradeDetails`
5920
+ # @return [Array<Google::Apis::ContainerV1beta1::UpgradeDetails>]
5921
+ attr_accessor :upgrade_details
5922
+
5923
+ def initialize(**args)
5924
+ update!(**args)
5925
+ end
5926
+
5927
+ # Update properties of this object
5928
+ def update!(**args)
5929
+ @auto_upgrade_status = args[:auto_upgrade_status] if args.key?(:auto_upgrade_status)
5930
+ @end_of_extended_support_timestamp = args[:end_of_extended_support_timestamp] if args.key?(:end_of_extended_support_timestamp)
5931
+ @end_of_standard_support_timestamp = args[:end_of_standard_support_timestamp] if args.key?(:end_of_standard_support_timestamp)
5932
+ @minor_target_version = args[:minor_target_version] if args.key?(:minor_target_version)
5933
+ @patch_target_version = args[:patch_target_version] if args.key?(:patch_target_version)
5934
+ @paused_reason = args[:paused_reason] if args.key?(:paused_reason)
5935
+ @upgrade_details = args[:upgrade_details] if args.key?(:upgrade_details)
5936
+ end
5937
+ end
5938
+
5939
+ # Kubernetes taint is composed of three fields: key, value, and effect. Effect
4389
5940
  # can only be one of three types: NoSchedule, PreferNoSchedule or NoExecute. See
4390
5941
  # [here](https://kubernetes.io/docs/concepts/configuration/taint-and-toleration)
4391
5942
  # for more information, including usage and the valid values.
@@ -4469,12 +6020,12 @@ module Google
4469
6020
  # @return [Array<Google::Apis::ContainerV1beta1::StatusCondition>]
4470
6021
  attr_accessor :cluster_conditions
4471
6022
 
4472
- # Detailed operation progress, if available.
6023
+ # Output only. Detailed operation progress, if available.
4473
6024
  # Corresponds to the JSON property `detail`
4474
6025
  # @return [String]
4475
6026
  attr_accessor :detail
4476
6027
 
4477
- # [Output only] The time the operation completed, in [RFC3339](https://www.ietf.
6028
+ # Output only. The time the operation completed, in [RFC3339](https://www.ietf.
4478
6029
  # org/rfc/rfc3339.txt) text format.
4479
6030
  # Corresponds to the JSON property `endTime`
4480
6031
  # @return [String]
@@ -4490,15 +6041,15 @@ module Google
4490
6041
  # @return [Google::Apis::ContainerV1beta1::Status]
4491
6042
  attr_accessor :error
4492
6043
 
4493
- # [Output only] The name of the Google Compute Engine [zone](https://cloud.
4494
- # google.com/compute/docs/regions-zones/regions-zones#available) or [region](
4495
- # https://cloud.google.com/compute/docs/regions-zones/regions-zones#available)
4496
- # in which the cluster resides.
6044
+ # Output only. The name of the Google Compute Engine [zone](https://cloud.google.
6045
+ # com/compute/docs/regions-zones/regions-zones#available) or [region](https://
6046
+ # cloud.google.com/compute/docs/regions-zones/regions-zones#available) in which
6047
+ # the cluster resides.
4497
6048
  # Corresponds to the JSON property `location`
4498
6049
  # @return [String]
4499
6050
  attr_accessor :location
4500
6051
 
4501
- # The server-assigned ID for the operation.
6052
+ # Output only. The server-assigned ID for the operation.
4502
6053
  # Corresponds to the JSON property `name`
4503
6054
  # @return [String]
4504
6055
  attr_accessor :name
@@ -4509,7 +6060,7 @@ module Google
4509
6060
  # @return [Array<Google::Apis::ContainerV1beta1::StatusCondition>]
4510
6061
  attr_accessor :nodepool_conditions
4511
6062
 
4512
- # The operation type.
6063
+ # Output only. The operation type.
4513
6064
  # Corresponds to the JSON property `operationType`
4514
6065
  # @return [String]
4515
6066
  attr_accessor :operation_type
@@ -4519,18 +6070,20 @@ module Google
4519
6070
  # @return [Google::Apis::ContainerV1beta1::OperationProgress]
4520
6071
  attr_accessor :progress
4521
6072
 
4522
- # Server-defined URL for the resource.
6073
+ # Output only. Server-defined URI for the operation. Example: `https://container.
6074
+ # googleapis.com/v1alpha1/projects/123/locations/us-central1/operations/
6075
+ # operation-123`.
4523
6076
  # Corresponds to the JSON property `selfLink`
4524
6077
  # @return [String]
4525
6078
  attr_accessor :self_link
4526
6079
 
4527
- # [Output only] The time the operation started, in [RFC3339](https://www.ietf.
4528
- # org/rfc/rfc3339.txt) text format.
6080
+ # Output only. The time the operation started, in [RFC3339](https://www.ietf.org/
6081
+ # rfc/rfc3339.txt) text format.
4529
6082
  # Corresponds to the JSON property `startTime`
4530
6083
  # @return [String]
4531
6084
  attr_accessor :start_time
4532
6085
 
4533
- # The current status of the operation.
6086
+ # Output only. The current status of the operation.
4534
6087
  # Corresponds to the JSON property `status`
4535
6088
  # @return [String]
4536
6089
  attr_accessor :status
@@ -4541,14 +6094,21 @@ module Google
4541
6094
  # @return [String]
4542
6095
  attr_accessor :status_message
4543
6096
 
4544
- # Server-defined URL for the target of the operation.
6097
+ # Output only. Server-defined URI for the target of the operation. The format of
6098
+ # this is a URI to the resource being modified (such as a cluster, node pool, or
6099
+ # node). For node pool repairs, there may be multiple nodes being repaired, but
6100
+ # only one will be the target. Examples: - ## `https://container.googleapis.com/
6101
+ # v1/projects/123/locations/us-central1/clusters/my-cluster` ## `https://
6102
+ # container.googleapis.com/v1/projects/123/zones/us-central1-c/clusters/my-
6103
+ # cluster/nodePools/my-np` `https://container.googleapis.com/v1/projects/123/
6104
+ # zones/us-central1-c/clusters/my-cluster/nodePools/my-np/node/my-node`
4545
6105
  # Corresponds to the JSON property `targetLink`
4546
6106
  # @return [String]
4547
6107
  attr_accessor :target_link
4548
6108
 
4549
- # The name of the Google Compute Engine [zone](https://cloud.google.com/compute/
4550
- # docs/zones#available) in which the operation is taking place. This field is
4551
- # deprecated, use location instead.
6109
+ # Output only. The name of the Google Compute Engine [zone](https://cloud.google.
6110
+ # com/compute/docs/zones#available) in which the operation is taking place. This
6111
+ # field is deprecated, use location instead.
4552
6112
  # Corresponds to the JSON property `zone`
4553
6113
  # @return [String]
4554
6114
  attr_accessor :zone
@@ -4577,6 +6137,38 @@ module Google
4577
6137
  end
4578
6138
  end
4579
6139
 
6140
+ # OperationError records errors seen from CloudKMS keys encountered during
6141
+ # updates to DatabaseEncryption configuration.
6142
+ class OperationError
6143
+ include Google::Apis::Core::Hashable
6144
+
6145
+ # Description of the error seen during the operation.
6146
+ # Corresponds to the JSON property `errorMessage`
6147
+ # @return [String]
6148
+ attr_accessor :error_message
6149
+
6150
+ # CloudKMS key resource that had the error.
6151
+ # Corresponds to the JSON property `keyName`
6152
+ # @return [String]
6153
+ attr_accessor :key_name
6154
+
6155
+ # Time when the CloudKMS error was seen.
6156
+ # Corresponds to the JSON property `timestamp`
6157
+ # @return [String]
6158
+ attr_accessor :timestamp
6159
+
6160
+ def initialize(**args)
6161
+ update!(**args)
6162
+ end
6163
+
6164
+ # Update properties of this object
6165
+ def update!(**args)
6166
+ @error_message = args[:error_message] if args.key?(:error_message)
6167
+ @key_name = args[:key_name] if args.key?(:key_name)
6168
+ @timestamp = args[:timestamp] if args.key?(:timestamp)
6169
+ end
6170
+ end
6171
+
4580
6172
  # Information about operation (or operation stage) progress.
4581
6173
  class OperationProgress
4582
6174
  include Google::Apis::Core::Hashable
@@ -4617,25 +6209,165 @@ module Google
4617
6209
  end
4618
6210
  end
4619
6211
 
4620
- # PlacementPolicy defines the placement policy used by the node pool.
4621
- class PlacementPolicy
6212
+ # Strategy that will trigger maintenance on behalf of the customer.
6213
+ class OpportunisticMaintenanceStrategy
4622
6214
  include Google::Apis::Core::Hashable
4623
6215
 
4624
- # The type of placement.
4625
- # Corresponds to the JSON property `type`
6216
+ # The window of time that opportunistic maintenance can run. Example: A setting
6217
+ # of 14 days implies that opportunistic maintenance can only be ran in the 2
6218
+ # weeks leading up to the scheduled maintenance date. Setting 28 days allows
6219
+ # opportunistic maintenance to run at any time in the scheduled maintenance
6220
+ # window (all `PERIODIC` maintenance is set 28 days in advance).
6221
+ # Corresponds to the JSON property `maintenanceAvailabilityWindow`
4626
6222
  # @return [String]
4627
- attr_accessor :type
6223
+ attr_accessor :maintenance_availability_window
4628
6224
 
4629
- def initialize(**args)
6225
+ # The minimum nodes required to be available in a pool. Blocks maintenance if it
6226
+ # would cause the number of running nodes to dip below this value.
6227
+ # Corresponds to the JSON property `minNodesPerPool`
6228
+ # @return [Fixnum]
6229
+ attr_accessor :min_nodes_per_pool
6230
+
6231
+ # The amount of time that a node can remain idle (no customer owned workloads
6232
+ # running), before triggering maintenance.
6233
+ # Corresponds to the JSON property `nodeIdleTimeWindow`
6234
+ # @return [String]
6235
+ attr_accessor :node_idle_time_window
6236
+
6237
+ def initialize(**args)
6238
+ update!(**args)
6239
+ end
6240
+
6241
+ # Update properties of this object
6242
+ def update!(**args)
6243
+ @maintenance_availability_window = args[:maintenance_availability_window] if args.key?(:maintenance_availability_window)
6244
+ @min_nodes_per_pool = args[:min_nodes_per_pool] if args.key?(:min_nodes_per_pool)
6245
+ @node_idle_time_window = args[:node_idle_time_window] if args.key?(:node_idle_time_window)
6246
+ end
6247
+ end
6248
+
6249
+ # Configuration for the Cloud Storage Parallelstore CSI driver.
6250
+ class ParallelstoreCsiDriverConfig
6251
+ include Google::Apis::Core::Hashable
6252
+
6253
+ # Whether the Cloud Storage Parallelstore CSI driver is enabled for this cluster.
6254
+ # Corresponds to the JSON property `enabled`
6255
+ # @return [Boolean]
6256
+ attr_accessor :enabled
6257
+ alias_method :enabled?, :enabled
6258
+
6259
+ def initialize(**args)
4630
6260
  update!(**args)
4631
6261
  end
4632
6262
 
4633
6263
  # Update properties of this object
4634
6264
  def update!(**args)
6265
+ @enabled = args[:enabled] if args.key?(:enabled)
6266
+ end
6267
+ end
6268
+
6269
+ # ParentProductConfig is the configuration of the parent product of the cluster.
6270
+ # This field is used by Google internal products that are built on top of a GKE
6271
+ # cluster and take the ownership of the cluster.
6272
+ class ParentProductConfig
6273
+ include Google::Apis::Core::Hashable
6274
+
6275
+ # Labels contain the configuration of the parent product.
6276
+ # Corresponds to the JSON property `labels`
6277
+ # @return [Hash<String,String>]
6278
+ attr_accessor :labels
6279
+
6280
+ # Name of the parent product associated with the cluster.
6281
+ # Corresponds to the JSON property `productName`
6282
+ # @return [String]
6283
+ attr_accessor :product_name
6284
+
6285
+ def initialize(**args)
6286
+ update!(**args)
6287
+ end
6288
+
6289
+ # Update properties of this object
6290
+ def update!(**args)
6291
+ @labels = args[:labels] if args.key?(:labels)
6292
+ @product_name = args[:product_name] if args.key?(:product_name)
6293
+ end
6294
+ end
6295
+
6296
+ # PlacementPolicy defines the placement policy used by the node pool.
6297
+ class PlacementPolicy
6298
+ include Google::Apis::Core::Hashable
6299
+
6300
+ # If set, refers to the name of a custom resource policy supplied by the user.
6301
+ # The resource policy must be in the same project and region as the node pool.
6302
+ # If not found, InvalidArgument error is returned.
6303
+ # Corresponds to the JSON property `policyName`
6304
+ # @return [String]
6305
+ attr_accessor :policy_name
6306
+
6307
+ # TPU placement topology for pod slice node pool. https://cloud.google.com/tpu/
6308
+ # docs/types-topologies#tpu_topologies
6309
+ # Corresponds to the JSON property `tpuTopology`
6310
+ # @return [String]
6311
+ attr_accessor :tpu_topology
6312
+
6313
+ # The type of placement.
6314
+ # Corresponds to the JSON property `type`
6315
+ # @return [String]
6316
+ attr_accessor :type
6317
+
6318
+ def initialize(**args)
6319
+ update!(**args)
6320
+ end
6321
+
6322
+ # Update properties of this object
6323
+ def update!(**args)
6324
+ @policy_name = args[:policy_name] if args.key?(:policy_name)
6325
+ @tpu_topology = args[:tpu_topology] if args.key?(:tpu_topology)
4635
6326
  @type = args[:type] if args.key?(:type)
4636
6327
  end
4637
6328
  end
4638
6329
 
6330
+ # PodAutoscaling is used for configuration of parameters for workload
6331
+ # autoscaling.
6332
+ class PodAutoscaling
6333
+ include Google::Apis::Core::Hashable
6334
+
6335
+ # Selected Horizontal Pod Autoscaling profile.
6336
+ # Corresponds to the JSON property `hpaProfile`
6337
+ # @return [String]
6338
+ attr_accessor :hpa_profile
6339
+
6340
+ def initialize(**args)
6341
+ update!(**args)
6342
+ end
6343
+
6344
+ # Update properties of this object
6345
+ def update!(**args)
6346
+ @hpa_profile = args[:hpa_profile] if args.key?(:hpa_profile)
6347
+ end
6348
+ end
6349
+
6350
+ # [PRIVATE FIELD] Config for pod CIDR size overprovisioning.
6351
+ class PodCidrOverprovisionConfig
6352
+ include Google::Apis::Core::Hashable
6353
+
6354
+ # Whether Pod CIDR overprovisioning is disabled. Note: Pod CIDR overprovisioning
6355
+ # is enabled by default.
6356
+ # Corresponds to the JSON property `disable`
6357
+ # @return [Boolean]
6358
+ attr_accessor :disable
6359
+ alias_method :disable?, :disable
6360
+
6361
+ def initialize(**args)
6362
+ update!(**args)
6363
+ end
6364
+
6365
+ # Update properties of this object
6366
+ def update!(**args)
6367
+ @disable = args[:disable] if args.key?(:disable)
6368
+ end
6369
+ end
6370
+
4639
6371
  # Configuration for the PodSecurityPolicy feature.
4640
6372
  class PodSecurityPolicyConfig
4641
6373
  include Google::Apis::Core::Hashable
@@ -4657,11 +6389,35 @@ module Google
4657
6389
  end
4658
6390
  end
4659
6391
 
6392
+ # Binauthz policy that applies to this cluster.
6393
+ class PolicyBinding
6394
+ include Google::Apis::Core::Hashable
6395
+
6396
+ # The relative resource name of the binauthz platform policy to evaluate. GKE
6397
+ # platform policies have the following format: `projects/`project_number`/
6398
+ # platforms/gke/policies/`policy_id``.
6399
+ # Corresponds to the JSON property `name`
6400
+ # @return [String]
6401
+ attr_accessor :name
6402
+
6403
+ def initialize(**args)
6404
+ update!(**args)
6405
+ end
6406
+
6407
+ # Update properties of this object
6408
+ def update!(**args)
6409
+ @name = args[:name] if args.key?(:name)
6410
+ end
6411
+ end
6412
+
4660
6413
  # Configuration options for private clusters.
4661
6414
  class PrivateClusterConfig
4662
6415
  include Google::Apis::Core::Hashable
4663
6416
 
4664
- # Whether the master's internal IP address is used as the cluster endpoint.
6417
+ # Whether the master's internal IP address is used as the cluster endpoint. Use
6418
+ # ControlPlaneEndpointsConfig.IPEndpointsConfig.enable_public_endpoint instead.
6419
+ # Note that the value of enable_public_endpoint is reversed: if
6420
+ # enable_private_endpoint is false, then enable_public_endpoint will be true.
4665
6421
  # Corresponds to the JSON property `enablePrivateEndpoint`
4666
6422
  # @return [Boolean]
4667
6423
  attr_accessor :enable_private_endpoint
@@ -4669,7 +6425,7 @@ module Google
4669
6425
 
4670
6426
  # Whether nodes have internal IP addresses only. If enabled, all nodes are given
4671
6427
  # only RFC 1918 private addresses and communicate with the master via private
4672
- # networking.
6428
+ # networking. Deprecated: Use NetworkConfig.default_enable_private_nodes instead.
4673
6429
  # Corresponds to the JSON property `enablePrivateNodes`
4674
6430
  # @return [Boolean]
4675
6431
  attr_accessor :enable_private_nodes
@@ -4694,17 +6450,23 @@ module Google
4694
6450
  attr_accessor :peering_name
4695
6451
 
4696
6452
  # Output only. The internal IP address of this cluster's master endpoint.
6453
+ # Deprecated: Use ControlPlaneEndpointsConfig.IPEndpointsConfig.private_endpoint
6454
+ # instead.
4697
6455
  # Corresponds to the JSON property `privateEndpoint`
4698
6456
  # @return [String]
4699
6457
  attr_accessor :private_endpoint
4700
6458
 
4701
6459
  # Subnet to provision the master's private endpoint during cluster creation.
4702
- # Specified in projects/*/regions/*/subnetworks/* format.
6460
+ # Specified in projects/*/regions/*/subnetworks/* format. Deprecated: Use
6461
+ # ControlPlaneEndpointsConfig.IPEndpointsConfig.private_endpoint_subnetwork
6462
+ # instead.
4703
6463
  # Corresponds to the JSON property `privateEndpointSubnetwork`
4704
6464
  # @return [String]
4705
6465
  attr_accessor :private_endpoint_subnetwork
4706
6466
 
4707
6467
  # Output only. The external IP address of this cluster's master endpoint.
6468
+ # Deprecated: Use ControlPlaneEndpointsConfig.IPEndpointsConfig.public_endpoint
6469
+ # instead.
4708
6470
  # Corresponds to the JSON property `publicEndpoint`
4709
6471
  # @return [String]
4710
6472
  attr_accessor :public_endpoint
@@ -4746,6 +6508,33 @@ module Google
4746
6508
  end
4747
6509
  end
4748
6510
 
6511
+ # PrivateRegistryAccessConfig contains access configuration for private
6512
+ # container registries.
6513
+ class PrivateRegistryAccessConfig
6514
+ include Google::Apis::Core::Hashable
6515
+
6516
+ # Private registry access configuration.
6517
+ # Corresponds to the JSON property `certificateAuthorityDomainConfig`
6518
+ # @return [Array<Google::Apis::ContainerV1beta1::CertificateAuthorityDomainConfig>]
6519
+ attr_accessor :certificate_authority_domain_config
6520
+
6521
+ # Private registry access is enabled.
6522
+ # Corresponds to the JSON property `enabled`
6523
+ # @return [Boolean]
6524
+ attr_accessor :enabled
6525
+ alias_method :enabled?, :enabled
6526
+
6527
+ def initialize(**args)
6528
+ update!(**args)
6529
+ end
6530
+
6531
+ # Update properties of this object
6532
+ def update!(**args)
6533
+ @certificate_authority_domain_config = args[:certificate_authority_domain_config] if args.key?(:certificate_authority_domain_config)
6534
+ @enabled = args[:enabled] if args.key?(:enabled)
6535
+ end
6536
+ end
6537
+
4749
6538
  # ProtectConfig defines the flags needed to enable/disable features for the
4750
6539
  # Protect API.
4751
6540
  class ProtectConfig
@@ -4809,6 +6598,154 @@ module Google
4809
6598
  end
4810
6599
  end
4811
6600
 
6601
+ # QueuedProvisioning defines the queued provisioning used by the node pool.
6602
+ class QueuedProvisioning
6603
+ include Google::Apis::Core::Hashable
6604
+
6605
+ # Denotes that this nodepool is QRM specific, meaning nodes can be only obtained
6606
+ # through queuing via the Cluster Autoscaler ProvisioningRequest API.
6607
+ # Corresponds to the JSON property `enabled`
6608
+ # @return [Boolean]
6609
+ attr_accessor :enabled
6610
+ alias_method :enabled?, :enabled
6611
+
6612
+ def initialize(**args)
6613
+ update!(**args)
6614
+ end
6615
+
6616
+ # Update properties of this object
6617
+ def update!(**args)
6618
+ @enabled = args[:enabled] if args.key?(:enabled)
6619
+ end
6620
+ end
6621
+
6622
+ # RBACBindingConfig allows user to restrict ClusterRoleBindings an RoleBindings
6623
+ # that can be created.
6624
+ class RbacBindingConfig
6625
+ include Google::Apis::Core::Hashable
6626
+
6627
+ # Setting this to true will allow any ClusterRoleBinding and RoleBinding with
6628
+ # subjects system:authenticated.
6629
+ # Corresponds to the JSON property `enableInsecureBindingSystemAuthenticated`
6630
+ # @return [Boolean]
6631
+ attr_accessor :enable_insecure_binding_system_authenticated
6632
+ alias_method :enable_insecure_binding_system_authenticated?, :enable_insecure_binding_system_authenticated
6633
+
6634
+ # Setting this to true will allow any ClusterRoleBinding and RoleBinding with
6635
+ # subjets system:anonymous or system:unauthenticated.
6636
+ # Corresponds to the JSON property `enableInsecureBindingSystemUnauthenticated`
6637
+ # @return [Boolean]
6638
+ attr_accessor :enable_insecure_binding_system_unauthenticated
6639
+ alias_method :enable_insecure_binding_system_unauthenticated?, :enable_insecure_binding_system_unauthenticated
6640
+
6641
+ def initialize(**args)
6642
+ update!(**args)
6643
+ end
6644
+
6645
+ # Update properties of this object
6646
+ def update!(**args)
6647
+ @enable_insecure_binding_system_authenticated = args[:enable_insecure_binding_system_authenticated] if args.key?(:enable_insecure_binding_system_authenticated)
6648
+ @enable_insecure_binding_system_unauthenticated = args[:enable_insecure_binding_system_unauthenticated] if args.key?(:enable_insecure_binding_system_unauthenticated)
6649
+ end
6650
+ end
6651
+
6652
+ # RangeInfo contains the range name and the range utilization by this cluster.
6653
+ class RangeInfo
6654
+ include Google::Apis::Core::Hashable
6655
+
6656
+ # Output only. Name of a range.
6657
+ # Corresponds to the JSON property `rangeName`
6658
+ # @return [String]
6659
+ attr_accessor :range_name
6660
+
6661
+ # Output only. The utilization of the range.
6662
+ # Corresponds to the JSON property `utilization`
6663
+ # @return [Float]
6664
+ attr_accessor :utilization
6665
+
6666
+ def initialize(**args)
6667
+ update!(**args)
6668
+ end
6669
+
6670
+ # Update properties of this object
6671
+ def update!(**args)
6672
+ @range_name = args[:range_name] if args.key?(:range_name)
6673
+ @utilization = args[:utilization] if args.key?(:utilization)
6674
+ end
6675
+ end
6676
+
6677
+ # RayClusterLoggingConfig specifies logging configuration for Ray clusters.
6678
+ class RayClusterLoggingConfig
6679
+ include Google::Apis::Core::Hashable
6680
+
6681
+ # Enable log collection for Ray clusters.
6682
+ # Corresponds to the JSON property `enabled`
6683
+ # @return [Boolean]
6684
+ attr_accessor :enabled
6685
+ alias_method :enabled?, :enabled
6686
+
6687
+ def initialize(**args)
6688
+ update!(**args)
6689
+ end
6690
+
6691
+ # Update properties of this object
6692
+ def update!(**args)
6693
+ @enabled = args[:enabled] if args.key?(:enabled)
6694
+ end
6695
+ end
6696
+
6697
+ # RayClusterMonitoringConfig specifies monitoring configuration for Ray clusters.
6698
+ class RayClusterMonitoringConfig
6699
+ include Google::Apis::Core::Hashable
6700
+
6701
+ # Enable metrics collection for Ray clusters.
6702
+ # Corresponds to the JSON property `enabled`
6703
+ # @return [Boolean]
6704
+ attr_accessor :enabled
6705
+ alias_method :enabled?, :enabled
6706
+
6707
+ def initialize(**args)
6708
+ update!(**args)
6709
+ end
6710
+
6711
+ # Update properties of this object
6712
+ def update!(**args)
6713
+ @enabled = args[:enabled] if args.key?(:enabled)
6714
+ end
6715
+ end
6716
+
6717
+ # Configuration options for the Ray Operator add-on.
6718
+ class RayOperatorConfig
6719
+ include Google::Apis::Core::Hashable
6720
+
6721
+ # Whether the Ray addon is enabled for this cluster.
6722
+ # Corresponds to the JSON property `enabled`
6723
+ # @return [Boolean]
6724
+ attr_accessor :enabled
6725
+ alias_method :enabled?, :enabled
6726
+
6727
+ # RayClusterLoggingConfig specifies logging configuration for Ray clusters.
6728
+ # Corresponds to the JSON property `rayClusterLoggingConfig`
6729
+ # @return [Google::Apis::ContainerV1beta1::RayClusterLoggingConfig]
6730
+ attr_accessor :ray_cluster_logging_config
6731
+
6732
+ # RayClusterMonitoringConfig specifies monitoring configuration for Ray clusters.
6733
+ # Corresponds to the JSON property `rayClusterMonitoringConfig`
6734
+ # @return [Google::Apis::ContainerV1beta1::RayClusterMonitoringConfig]
6735
+ attr_accessor :ray_cluster_monitoring_config
6736
+
6737
+ def initialize(**args)
6738
+ update!(**args)
6739
+ end
6740
+
6741
+ # Update properties of this object
6742
+ def update!(**args)
6743
+ @enabled = args[:enabled] if args.key?(:enabled)
6744
+ @ray_cluster_logging_config = args[:ray_cluster_logging_config] if args.key?(:ray_cluster_logging_config)
6745
+ @ray_cluster_monitoring_config = args[:ray_cluster_monitoring_config] if args.key?(:ray_cluster_monitoring_config)
6746
+ end
6747
+ end
6748
+
4812
6749
  # Represents an arbitrary window of time that recurs.
4813
6750
  class RecurringTimeWindow
4814
6751
  include Google::Apis::Core::Hashable
@@ -4890,6 +6827,11 @@ module Google
4890
6827
  # @return [String]
4891
6828
  attr_accessor :default_version
4892
6829
 
6830
+ # The auto upgrade target version for clusters on the channel.
6831
+ # Corresponds to the JSON property `upgradeTargetVersion`
6832
+ # @return [String]
6833
+ attr_accessor :upgrade_target_version
6834
+
4893
6835
  # List of valid versions for the channel.
4894
6836
  # Corresponds to the JSON property `validVersions`
4895
6837
  # @return [Array<String>]
@@ -4904,6 +6846,7 @@ module Google
4904
6846
  @available_versions = args[:available_versions] if args.key?(:available_versions)
4905
6847
  @channel = args[:channel] if args.key?(:channel)
4906
6848
  @default_version = args[:default_version] if args.key?(:default_version)
6849
+ @upgrade_target_version = args[:upgrade_target_version] if args.key?(:upgrade_target_version)
4907
6850
  @valid_versions = args[:valid_versions] if args.key?(:valid_versions)
4908
6851
  end
4909
6852
  end
@@ -4995,6 +6938,31 @@ module Google
4995
6938
  end
4996
6939
  end
4997
6940
 
6941
+ # A map of resource manager tag keys and values to be attached to the nodes for
6942
+ # managing Compute Engine firewalls using Network Firewall Policies. Tags must
6943
+ # be according to specifications in https://cloud.google.com/vpc/docs/tags-
6944
+ # firewalls-overview#specifications. A maximum of 5 tag key-value pairs can be
6945
+ # specified. Existing tags will be replaced with new values.
6946
+ class ResourceManagerTags
6947
+ include Google::Apis::Core::Hashable
6948
+
6949
+ # Tags must be in one of the following formats ([KEY]=[VALUE]) 1. `tagKeys/`
6950
+ # tag_key_id`=tagValues/`tag_value_id`` 2. ``org_id`/`tag_key_name`=`
6951
+ # tag_value_name`` 3. ``project_id`/`tag_key_name`=`tag_value_name``
6952
+ # Corresponds to the JSON property `tags`
6953
+ # @return [Hash<String,String>]
6954
+ attr_accessor :tags
6955
+
6956
+ def initialize(**args)
6957
+ update!(**args)
6958
+ end
6959
+
6960
+ # Update properties of this object
6961
+ def update!(**args)
6962
+ @tags = args[:tags] if args.key?(:tags)
6963
+ end
6964
+ end
6965
+
4998
6966
  # Configuration for exporting cluster resource usages.
4999
6967
  class ResourceUsageExportConfig
5000
6968
  include Google::Apis::Core::Hashable
@@ -5088,19 +7056,80 @@ module Google
5088
7056
  end
5089
7057
  end
5090
7058
 
5091
- # SandboxConfig contains configurations of the sandbox to use for the node.
5092
- class SandboxConfig
7059
+ # SandboxConfig contains configurations of the sandbox to use for the node.
7060
+ class SandboxConfig
7061
+ include Google::Apis::Core::Hashable
7062
+
7063
+ # Type of the sandbox to use for the node (e.g. 'gvisor')
7064
+ # Corresponds to the JSON property `sandboxType`
7065
+ # @return [String]
7066
+ attr_accessor :sandbox_type
7067
+
7068
+ # Type of the sandbox to use for the node.
7069
+ # Corresponds to the JSON property `type`
7070
+ # @return [String]
7071
+ attr_accessor :type
7072
+
7073
+ def initialize(**args)
7074
+ update!(**args)
7075
+ end
7076
+
7077
+ # Update properties of this object
7078
+ def update!(**args)
7079
+ @sandbox_type = args[:sandbox_type] if args.key?(:sandbox_type)
7080
+ @type = args[:type] if args.key?(:type)
7081
+ end
7082
+ end
7083
+
7084
+ # SecondaryBootDisk represents a persistent disk attached to a node with special
7085
+ # configurations based on its mode.
7086
+ class SecondaryBootDisk
7087
+ include Google::Apis::Core::Hashable
7088
+
7089
+ # Fully-qualified resource ID for an existing disk image.
7090
+ # Corresponds to the JSON property `diskImage`
7091
+ # @return [String]
7092
+ attr_accessor :disk_image
7093
+
7094
+ # Disk mode (container image cache, etc.)
7095
+ # Corresponds to the JSON property `mode`
7096
+ # @return [String]
7097
+ attr_accessor :mode
7098
+
7099
+ def initialize(**args)
7100
+ update!(**args)
7101
+ end
7102
+
7103
+ # Update properties of this object
7104
+ def update!(**args)
7105
+ @disk_image = args[:disk_image] if args.key?(:disk_image)
7106
+ @mode = args[:mode] if args.key?(:mode)
7107
+ end
7108
+ end
7109
+
7110
+ # SecondaryBootDiskUpdateStrategy is a placeholder which will be extended in the
7111
+ # future to define different options for updating secondary boot disks.
7112
+ class SecondaryBootDiskUpdateStrategy
7113
+ include Google::Apis::Core::Hashable
7114
+
7115
+ def initialize(**args)
7116
+ update!(**args)
7117
+ end
7118
+
7119
+ # Update properties of this object
7120
+ def update!(**args)
7121
+ end
7122
+ end
7123
+
7124
+ # SecretManagerConfig is config for secret manager enablement.
7125
+ class SecretManagerConfig
5093
7126
  include Google::Apis::Core::Hashable
5094
7127
 
5095
- # Type of the sandbox to use for the node (e.g. 'gvisor')
5096
- # Corresponds to the JSON property `sandboxType`
5097
- # @return [String]
5098
- attr_accessor :sandbox_type
5099
-
5100
- # Type of the sandbox to use for the node.
5101
- # Corresponds to the JSON property `type`
5102
- # @return [String]
5103
- attr_accessor :type
7128
+ # Enable/Disable Secret Manager Config.
7129
+ # Corresponds to the JSON property `enabled`
7130
+ # @return [Boolean]
7131
+ attr_accessor :enabled
7132
+ alias_method :enabled?, :enabled
5104
7133
 
5105
7134
  def initialize(**args)
5106
7135
  update!(**args)
@@ -5108,8 +7137,7 @@ module Google
5108
7137
 
5109
7138
  # Update properties of this object
5110
7139
  def update!(**args)
5111
- @sandbox_type = args[:sandbox_type] if args.key?(:sandbox_type)
5112
- @type = args[:type] if args.key?(:type)
7140
+ @enabled = args[:enabled] if args.key?(:enabled)
5113
7141
  end
5114
7142
  end
5115
7143
 
@@ -5196,6 +7224,32 @@ module Google
5196
7224
  end
5197
7225
  end
5198
7226
 
7227
+ # SecurityPostureConfig defines the flags needed to enable/disable features for
7228
+ # the Security Posture API.
7229
+ class SecurityPostureConfig
7230
+ include Google::Apis::Core::Hashable
7231
+
7232
+ # Sets which mode to use for Security Posture features.
7233
+ # Corresponds to the JSON property `mode`
7234
+ # @return [String]
7235
+ attr_accessor :mode
7236
+
7237
+ # Sets which mode to use for vulnerability scanning.
7238
+ # Corresponds to the JSON property `vulnerabilityMode`
7239
+ # @return [String]
7240
+ attr_accessor :vulnerability_mode
7241
+
7242
+ def initialize(**args)
7243
+ update!(**args)
7244
+ end
7245
+
7246
+ # Update properties of this object
7247
+ def update!(**args)
7248
+ @mode = args[:mode] if args.key?(:mode)
7249
+ @vulnerability_mode = args[:vulnerability_mode] if args.key?(:vulnerability_mode)
7250
+ end
7251
+ end
7252
+
5199
7253
  # Kubernetes Engine service configuration.
5200
7254
  class ServerConfig
5201
7255
  include Google::Apis::Core::Hashable
@@ -5976,6 +8030,26 @@ module Google
5976
8030
  end
5977
8031
  end
5978
8032
 
8033
+ # SoleTenantConfig contains the NodeAffinities to specify what shared sole
8034
+ # tenant node groups should back the node pool.
8035
+ class SoleTenantConfig
8036
+ include Google::Apis::Core::Hashable
8037
+
8038
+ # NodeAffinities used to match to a shared sole tenant node group.
8039
+ # Corresponds to the JSON property `nodeAffinities`
8040
+ # @return [Array<Google::Apis::ContainerV1beta1::NodeAffinity>]
8041
+ attr_accessor :node_affinities
8042
+
8043
+ def initialize(**args)
8044
+ update!(**args)
8045
+ end
8046
+
8047
+ # Update properties of this object
8048
+ def update!(**args)
8049
+ @node_affinities = args[:node_affinities] if args.key?(:node_affinities)
8050
+ end
8051
+ end
8052
+
5979
8053
  # Standard rollout policy is the default policy for blue-green.
5980
8054
  class StandardRolloutPolicy
5981
8055
  include Google::Apis::Core::Hashable
@@ -6059,6 +8133,26 @@ module Google
6059
8133
  end
6060
8134
  end
6061
8135
 
8136
+ # Configuration for the Stateful HA add-on.
8137
+ class StatefulHaConfig
8138
+ include Google::Apis::Core::Hashable
8139
+
8140
+ # Whether the Stateful HA add-on is enabled for this cluster.
8141
+ # Corresponds to the JSON property `enabled`
8142
+ # @return [Boolean]
8143
+ attr_accessor :enabled
8144
+ alias_method :enabled?, :enabled
8145
+
8146
+ def initialize(**args)
8147
+ update!(**args)
8148
+ end
8149
+
8150
+ # Update properties of this object
8151
+ def update!(**args)
8152
+ @enabled = args[:enabled] if args.key?(:enabled)
8153
+ end
8154
+ end
8155
+
6062
8156
  # The `Status` type defines a logical error model that is suitable for different
6063
8157
  # programming environments, including REST APIs and RPC APIs. It is used by [
6064
8158
  # gRPC](https://github.com/grpc). Each `Status` message contains three pieces of
@@ -6325,6 +8419,12 @@ module Google
6325
8419
  class UpdateNodePoolRequest
6326
8420
  include Google::Apis::Core::Hashable
6327
8421
 
8422
+ # A list of hardware accelerators to be attached to each node. See https://cloud.
8423
+ # google.com/compute/docs/gpus for more information about support for GPUs.
8424
+ # Corresponds to the JSON property `accelerators`
8425
+ # @return [Array<Google::Apis::ContainerV1beta1::AcceleratorConfig>]
8426
+ attr_accessor :accelerators
8427
+
6328
8428
  # Required. Deprecated. The name of the cluster to upgrade. This field has been
6329
8429
  # deprecated and replaced by the name field.
6330
8430
  # Corresponds to the JSON property `clusterId`
@@ -6337,6 +8437,25 @@ module Google
6337
8437
  # @return [Google::Apis::ContainerV1beta1::ConfidentialNodes]
6338
8438
  attr_accessor :confidential_nodes
6339
8439
 
8440
+ # ContainerdConfig contains configuration to customize containerd.
8441
+ # Corresponds to the JSON property `containerdConfig`
8442
+ # @return [Google::Apis::ContainerV1beta1::ContainerdConfig]
8443
+ attr_accessor :containerd_config
8444
+
8445
+ # Optional. The desired disk size for nodes in the node pool. Initiates an
8446
+ # upgrade operation that migrates the nodes in the node pool to the specified
8447
+ # disk size.
8448
+ # Corresponds to the JSON property `diskSizeGb`
8449
+ # @return [Fixnum]
8450
+ attr_accessor :disk_size_gb
8451
+
8452
+ # Optional. The desired disk type for nodes in the node pool. Initiates an
8453
+ # upgrade operation that migrates the nodes in the node pool to the specified
8454
+ # disk type.
8455
+ # Corresponds to the JSON property `diskType`
8456
+ # @return [String]
8457
+ attr_accessor :disk_type
8458
+
6340
8459
  # The current etag of the node pool. If an etag is provided and does not match
6341
8460
  # the current etag of the node pool, update will be blocked and an ABORTED error
6342
8461
  # will be returned.
@@ -6359,7 +8478,9 @@ module Google
6359
8478
  # @return [Google::Apis::ContainerV1beta1::VirtualNic]
6360
8479
  attr_accessor :gvnic
6361
8480
 
6362
- # Required. The desired image type for the node pool.
8481
+ # Required. The desired image type for the node pool. Please see https://cloud.
8482
+ # google.com/kubernetes-engine/docs/concepts/node-images for available image
8483
+ # types.
6363
8484
  # Corresponds to the JSON property `imageType`
6364
8485
  # @return [String]
6365
8486
  attr_accessor :image_type
@@ -6394,6 +8515,19 @@ module Google
6394
8515
  # @return [Google::Apis::ContainerV1beta1::NodePoolLoggingConfig]
6395
8516
  attr_accessor :logging_config
6396
8517
 
8518
+ # Optional. The desired machine type for nodes in the node pool. Initiates an
8519
+ # upgrade operation that migrates the nodes in the node pool to the specified
8520
+ # machine type.
8521
+ # Corresponds to the JSON property `machineType`
8522
+ # @return [String]
8523
+ attr_accessor :machine_type
8524
+
8525
+ # The maximum duration for the nodes to exist. If unspecified, the nodes can
8526
+ # exist indefinitely.
8527
+ # Corresponds to the JSON property `maxRunDuration`
8528
+ # @return [String]
8529
+ attr_accessor :max_run_duration
8530
+
6397
8531
  # The name (project, location, cluster, node pool) of the node pool to update.
6398
8532
  # Specified in the format `projects/*/locations/*/clusters/*/nodePools/*`.
6399
8533
  # Corresponds to the JSON property `name`
@@ -6429,12 +8563,32 @@ module Google
6429
8563
  # @return [String]
6430
8564
  attr_accessor :project_id
6431
8565
 
8566
+ # QueuedProvisioning defines the queued provisioning used by the node pool.
8567
+ # Corresponds to the JSON property `queuedProvisioning`
8568
+ # @return [Google::Apis::ContainerV1beta1::QueuedProvisioning]
8569
+ attr_accessor :queued_provisioning
8570
+
6432
8571
  # Collection of [GCP labels](https://cloud.google.com/resource-manager/docs/
6433
8572
  # creating-managing-labels).
6434
8573
  # Corresponds to the JSON property `resourceLabels`
6435
8574
  # @return [Google::Apis::ContainerV1beta1::ResourceLabels]
6436
8575
  attr_accessor :resource_labels
6437
8576
 
8577
+ # A map of resource manager tag keys and values to be attached to the nodes for
8578
+ # managing Compute Engine firewalls using Network Firewall Policies. Tags must
8579
+ # be according to specifications in https://cloud.google.com/vpc/docs/tags-
8580
+ # firewalls-overview#specifications. A maximum of 5 tag key-value pairs can be
8581
+ # specified. Existing tags will be replaced with new values.
8582
+ # Corresponds to the JSON property `resourceManagerTags`
8583
+ # @return [Google::Apis::ContainerV1beta1::ResourceManagerTags]
8584
+ attr_accessor :resource_manager_tags
8585
+
8586
+ # List of Storage Pools where boot disks are provisioned. Existing Storage Pools
8587
+ # will be replaced with storage-pools.
8588
+ # Corresponds to the JSON property `storagePools`
8589
+ # @return [Array<String>]
8590
+ attr_accessor :storage_pools
8591
+
6438
8592
  # Collection of Compute Engine network tags that can be applied to a node's
6439
8593
  # underlying VM instance. (See `tags` field in [`NodeConfig`](/kubernetes-engine/
6440
8594
  # docs/reference/rest/v1/NodeConfig)).
@@ -6448,6 +8602,20 @@ module Google
6448
8602
  # @return [Google::Apis::ContainerV1beta1::NodeTaints]
6449
8603
  attr_accessor :taints
6450
8604
 
8605
+ # These upgrade settings control the level of parallelism and the level of
8606
+ # disruption caused by an upgrade. maxUnavailable controls the number of nodes
8607
+ # that can be simultaneously unavailable. maxSurge controls the number of
8608
+ # additional nodes that can be added to the node pool temporarily for the time
8609
+ # of the upgrade to increase the number of available nodes. (maxUnavailable +
8610
+ # maxSurge) determines the level of parallelism (how many nodes are being
8611
+ # upgraded at the same time). Note: upgrades inevitably introduce some
8612
+ # disruption since workloads need to be moved from old nodes to new, upgraded
8613
+ # ones. Even if maxUnavailable=0, this holds true. (Disruption stays within the
8614
+ # limits of PodDisruptionBudget, if it is configured.) Consider a hypothetical
8615
+ # node pool with 5 nodes having maxSurge=2, maxUnavailable=1. This means the
8616
+ # upgrade process upgrades 3 nodes simultaneously. It creates 2 additional (
8617
+ # upgraded) nodes, then it brings down 3 old (not yet upgraded) nodes at the
8618
+ # same time. This ensures that there are always at least 4 nodes available.
6451
8619
  # These upgrade settings configure the upgrade strategy for the node pool. Use
6452
8620
  # strategy to switch between the strategies applied to the node pool. If the
6453
8621
  # strategy is SURGE, use max_surge and max_unavailable to control the level of
@@ -6495,8 +8663,12 @@ module Google
6495
8663
 
6496
8664
  # Update properties of this object
6497
8665
  def update!(**args)
8666
+ @accelerators = args[:accelerators] if args.key?(:accelerators)
6498
8667
  @cluster_id = args[:cluster_id] if args.key?(:cluster_id)
6499
8668
  @confidential_nodes = args[:confidential_nodes] if args.key?(:confidential_nodes)
8669
+ @containerd_config = args[:containerd_config] if args.key?(:containerd_config)
8670
+ @disk_size_gb = args[:disk_size_gb] if args.key?(:disk_size_gb)
8671
+ @disk_type = args[:disk_type] if args.key?(:disk_type)
6500
8672
  @etag = args[:etag] if args.key?(:etag)
6501
8673
  @fast_socket = args[:fast_socket] if args.key?(:fast_socket)
6502
8674
  @gcfs_config = args[:gcfs_config] if args.key?(:gcfs_config)
@@ -6507,12 +8679,17 @@ module Google
6507
8679
  @linux_node_config = args[:linux_node_config] if args.key?(:linux_node_config)
6508
8680
  @locations = args[:locations] if args.key?(:locations)
6509
8681
  @logging_config = args[:logging_config] if args.key?(:logging_config)
8682
+ @machine_type = args[:machine_type] if args.key?(:machine_type)
8683
+ @max_run_duration = args[:max_run_duration] if args.key?(:max_run_duration)
6510
8684
  @name = args[:name] if args.key?(:name)
6511
8685
  @node_network_config = args[:node_network_config] if args.key?(:node_network_config)
6512
8686
  @node_pool_id = args[:node_pool_id] if args.key?(:node_pool_id)
6513
8687
  @node_version = args[:node_version] if args.key?(:node_version)
6514
8688
  @project_id = args[:project_id] if args.key?(:project_id)
8689
+ @queued_provisioning = args[:queued_provisioning] if args.key?(:queued_provisioning)
6515
8690
  @resource_labels = args[:resource_labels] if args.key?(:resource_labels)
8691
+ @resource_manager_tags = args[:resource_manager_tags] if args.key?(:resource_manager_tags)
8692
+ @storage_pools = args[:storage_pools] if args.key?(:storage_pools)
6516
8693
  @tags = args[:tags] if args.key?(:tags)
6517
8694
  @taints = args[:taints] if args.key?(:taints)
6518
8695
  @upgrade_settings = args[:upgrade_settings] if args.key?(:upgrade_settings)
@@ -6570,6 +8747,50 @@ module Google
6570
8747
  end
6571
8748
  end
6572
8749
 
8750
+ # UpgradeDetails contains detailed information of each individual upgrade
8751
+ # operation.
8752
+ class UpgradeDetails
8753
+ include Google::Apis::Core::Hashable
8754
+
8755
+ # The end timestamp of the upgrade.
8756
+ # Corresponds to the JSON property `endTime`
8757
+ # @return [String]
8758
+ attr_accessor :end_time
8759
+
8760
+ # The version before the upgrade.
8761
+ # Corresponds to the JSON property `initialVersion`
8762
+ # @return [String]
8763
+ attr_accessor :initial_version
8764
+
8765
+ # The start timestamp of the upgrade.
8766
+ # Corresponds to the JSON property `startTime`
8767
+ # @return [String]
8768
+ attr_accessor :start_time
8769
+
8770
+ # Output only. The state of the upgrade.
8771
+ # Corresponds to the JSON property `state`
8772
+ # @return [String]
8773
+ attr_accessor :state
8774
+
8775
+ # The version after the upgrade.
8776
+ # Corresponds to the JSON property `targetVersion`
8777
+ # @return [String]
8778
+ attr_accessor :target_version
8779
+
8780
+ def initialize(**args)
8781
+ update!(**args)
8782
+ end
8783
+
8784
+ # Update properties of this object
8785
+ def update!(**args)
8786
+ @end_time = args[:end_time] if args.key?(:end_time)
8787
+ @initial_version = args[:initial_version] if args.key?(:initial_version)
8788
+ @start_time = args[:start_time] if args.key?(:start_time)
8789
+ @state = args[:state] if args.key?(:state)
8790
+ @target_version = args[:target_version] if args.key?(:target_version)
8791
+ end
8792
+ end
8793
+
6573
8794
  # UpgradeEvent is a notification sent to customers by the cluster server when a
6574
8795
  # resource is upgrading.
6575
8796
  class UpgradeEvent
@@ -6621,6 +8842,107 @@ module Google
6621
8842
  end
6622
8843
  end
6623
8844
 
8845
+ # UpgradeInfoEvent is a notification sent to customers about the upgrade
8846
+ # information of a resource.
8847
+ class UpgradeInfoEvent
8848
+ include Google::Apis::Core::Hashable
8849
+
8850
+ # The current version before the upgrade.
8851
+ # Corresponds to the JSON property `currentVersion`
8852
+ # @return [String]
8853
+ attr_accessor :current_version
8854
+
8855
+ # A brief description of the event.
8856
+ # Corresponds to the JSON property `description`
8857
+ # @return [String]
8858
+ attr_accessor :description
8859
+
8860
+ # The time when the operation ended.
8861
+ # Corresponds to the JSON property `endTime`
8862
+ # @return [String]
8863
+ attr_accessor :end_time
8864
+
8865
+ # The type of the event.
8866
+ # Corresponds to the JSON property `eventType`
8867
+ # @return [String]
8868
+ attr_accessor :event_type
8869
+
8870
+ # The end of extended support timestamp.
8871
+ # Corresponds to the JSON property `extendedSupportEndTime`
8872
+ # @return [String]
8873
+ attr_accessor :extended_support_end_time
8874
+
8875
+ # The operation associated with this upgrade.
8876
+ # Corresponds to the JSON property `operation`
8877
+ # @return [String]
8878
+ attr_accessor :operation
8879
+
8880
+ # Optional relative path to the resource. For example in node pool upgrades, the
8881
+ # relative path of the node pool.
8882
+ # Corresponds to the JSON property `resource`
8883
+ # @return [String]
8884
+ attr_accessor :resource
8885
+
8886
+ # The resource type associated with the upgrade.
8887
+ # Corresponds to the JSON property `resourceType`
8888
+ # @return [String]
8889
+ attr_accessor :resource_type
8890
+
8891
+ # The end of standard support timestamp.
8892
+ # Corresponds to the JSON property `standardSupportEndTime`
8893
+ # @return [String]
8894
+ attr_accessor :standard_support_end_time
8895
+
8896
+ # The time when the operation was started.
8897
+ # Corresponds to the JSON property `startTime`
8898
+ # @return [String]
8899
+ attr_accessor :start_time
8900
+
8901
+ # Output only. The state of the upgrade.
8902
+ # Corresponds to the JSON property `state`
8903
+ # @return [String]
8904
+ attr_accessor :state
8905
+
8906
+ # The target version for the upgrade.
8907
+ # Corresponds to the JSON property `targetVersion`
8908
+ # @return [String]
8909
+ attr_accessor :target_version
8910
+
8911
+ def initialize(**args)
8912
+ update!(**args)
8913
+ end
8914
+
8915
+ # Update properties of this object
8916
+ def update!(**args)
8917
+ @current_version = args[:current_version] if args.key?(:current_version)
8918
+ @description = args[:description] if args.key?(:description)
8919
+ @end_time = args[:end_time] if args.key?(:end_time)
8920
+ @event_type = args[:event_type] if args.key?(:event_type)
8921
+ @extended_support_end_time = args[:extended_support_end_time] if args.key?(:extended_support_end_time)
8922
+ @operation = args[:operation] if args.key?(:operation)
8923
+ @resource = args[:resource] if args.key?(:resource)
8924
+ @resource_type = args[:resource_type] if args.key?(:resource_type)
8925
+ @standard_support_end_time = args[:standard_support_end_time] if args.key?(:standard_support_end_time)
8926
+ @start_time = args[:start_time] if args.key?(:start_time)
8927
+ @state = args[:state] if args.key?(:state)
8928
+ @target_version = args[:target_version] if args.key?(:target_version)
8929
+ end
8930
+ end
8931
+
8932
+ # These upgrade settings control the level of parallelism and the level of
8933
+ # disruption caused by an upgrade. maxUnavailable controls the number of nodes
8934
+ # that can be simultaneously unavailable. maxSurge controls the number of
8935
+ # additional nodes that can be added to the node pool temporarily for the time
8936
+ # of the upgrade to increase the number of available nodes. (maxUnavailable +
8937
+ # maxSurge) determines the level of parallelism (how many nodes are being
8938
+ # upgraded at the same time). Note: upgrades inevitably introduce some
8939
+ # disruption since workloads need to be moved from old nodes to new, upgraded
8940
+ # ones. Even if maxUnavailable=0, this holds true. (Disruption stays within the
8941
+ # limits of PodDisruptionBudget, if it is configured.) Consider a hypothetical
8942
+ # node pool with 5 nodes having maxSurge=2, maxUnavailable=1. This means the
8943
+ # upgrade process upgrades 3 nodes simultaneously. It creates 2 additional (
8944
+ # upgraded) nodes, then it brings down 3 old (not yet upgraded) nodes at the
8945
+ # same time. This ensures that there are always at least 4 nodes available.
6624
8946
  # These upgrade settings configure the upgrade strategy for the node pool. Use
6625
8947
  # strategy to switch between the strategies applied to the node pool. If the
6626
8948
  # strategy is SURGE, use max_surge and max_unavailable to control the level of
@@ -6756,6 +9078,78 @@ module Google
6756
9078
  end
6757
9079
  end
6758
9080
 
9081
+ # UserManagedKeysConfig holds the resource address to Keys which are used for
9082
+ # signing certs and token that are used for communication within cluster.
9083
+ class UserManagedKeysConfig
9084
+ include Google::Apis::Core::Hashable
9085
+
9086
+ # The Certificate Authority Service caPool to use for the aggregation CA in this
9087
+ # cluster.
9088
+ # Corresponds to the JSON property `aggregationCa`
9089
+ # @return [String]
9090
+ attr_accessor :aggregation_ca
9091
+
9092
+ # The Certificate Authority Service caPool to use for the cluster CA in this
9093
+ # cluster.
9094
+ # Corresponds to the JSON property `clusterCa`
9095
+ # @return [String]
9096
+ attr_accessor :cluster_ca
9097
+
9098
+ # The Cloud KMS cryptoKey to use for Confidential Hyperdisk on the control plane
9099
+ # nodes.
9100
+ # Corresponds to the JSON property `controlPlaneDiskEncryptionKey`
9101
+ # @return [String]
9102
+ attr_accessor :control_plane_disk_encryption_key
9103
+
9104
+ # Resource path of the Certificate Authority Service caPool to use for the etcd
9105
+ # API CA in this cluster.
9106
+ # Corresponds to the JSON property `etcdApiCa`
9107
+ # @return [String]
9108
+ attr_accessor :etcd_api_ca
9109
+
9110
+ # Resource path of the Certificate Authority Service caPool to use for the etcd
9111
+ # peer CA in this cluster.
9112
+ # Corresponds to the JSON property `etcdPeerCa`
9113
+ # @return [String]
9114
+ attr_accessor :etcd_peer_ca
9115
+
9116
+ # Resource path of the Cloud KMS cryptoKey to use for encryption of internal
9117
+ # etcd backups.
9118
+ # Corresponds to the JSON property `gkeopsEtcdBackupEncryptionKey`
9119
+ # @return [String]
9120
+ attr_accessor :gkeops_etcd_backup_encryption_key
9121
+
9122
+ # The Cloud KMS cryptoKeyVersions to use for signing service account JWTs issued
9123
+ # by this cluster. Format: `projects/`project`/locations/`location`/keyRings/`
9124
+ # keyring`/cryptoKeys/`cryptoKey`/cryptoKeyVersions/`cryptoKeyVersion``
9125
+ # Corresponds to the JSON property `serviceAccountSigningKeys`
9126
+ # @return [Array<String>]
9127
+ attr_accessor :service_account_signing_keys
9128
+
9129
+ # The Cloud KMS cryptoKeyVersions to use for verifying service account JWTs
9130
+ # issued by this cluster. Format: `projects/`project`/locations/`location`/
9131
+ # keyRings/`keyring`/cryptoKeys/`cryptoKey`/cryptoKeyVersions/`cryptoKeyVersion``
9132
+ # Corresponds to the JSON property `serviceAccountVerificationKeys`
9133
+ # @return [Array<String>]
9134
+ attr_accessor :service_account_verification_keys
9135
+
9136
+ def initialize(**args)
9137
+ update!(**args)
9138
+ end
9139
+
9140
+ # Update properties of this object
9141
+ def update!(**args)
9142
+ @aggregation_ca = args[:aggregation_ca] if args.key?(:aggregation_ca)
9143
+ @cluster_ca = args[:cluster_ca] if args.key?(:cluster_ca)
9144
+ @control_plane_disk_encryption_key = args[:control_plane_disk_encryption_key] if args.key?(:control_plane_disk_encryption_key)
9145
+ @etcd_api_ca = args[:etcd_api_ca] if args.key?(:etcd_api_ca)
9146
+ @etcd_peer_ca = args[:etcd_peer_ca] if args.key?(:etcd_peer_ca)
9147
+ @gkeops_etcd_backup_encryption_key = args[:gkeops_etcd_backup_encryption_key] if args.key?(:gkeops_etcd_backup_encryption_key)
9148
+ @service_account_signing_keys = args[:service_account_signing_keys] if args.key?(:service_account_signing_keys)
9149
+ @service_account_verification_keys = args[:service_account_verification_keys] if args.key?(:service_account_verification_keys)
9150
+ end
9151
+ end
9152
+
6759
9153
  # VerticalPodAutoscaling contains global, per-cluster information required by
6760
9154
  # Vertical Pod Autoscaler to automatically adjust the resources of pods
6761
9155
  # controlled by it.
@@ -6999,6 +9393,26 @@ module Google
6999
9393
  @node_metadata = args[:node_metadata] if args.key?(:node_metadata)
7000
9394
  end
7001
9395
  end
9396
+
9397
+ # WorkloadPolicyConfig is the configuration related to GCW workload policy
9398
+ class WorkloadPolicyConfig
9399
+ include Google::Apis::Core::Hashable
9400
+
9401
+ # If true, workloads can use NET_ADMIN capability.
9402
+ # Corresponds to the JSON property `allowNetAdmin`
9403
+ # @return [Boolean]
9404
+ attr_accessor :allow_net_admin
9405
+ alias_method :allow_net_admin?, :allow_net_admin
9406
+
9407
+ def initialize(**args)
9408
+ update!(**args)
9409
+ end
9410
+
9411
+ # Update properties of this object
9412
+ def update!(**args)
9413
+ @allow_net_admin = args[:allow_net_admin] if args.key?(:allow_net_admin)
9414
+ end
9415
+ end
7002
9416
  end
7003
9417
  end
7004
9418
  end