google-apis-container_v1 0.43.0 → 0.95.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::ContainerV1::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).
@@ -58,11 +64,104 @@ module Google
58
64
  def update!(**args)
59
65
  @accelerator_count = args[:accelerator_count] if args.key?(:accelerator_count)
60
66
  @accelerator_type = args[:accelerator_type] if args.key?(:accelerator_type)
67
+ @gpu_driver_installation_config = args[:gpu_driver_installation_config] if args.key?(:gpu_driver_installation_config)
61
68
  @gpu_partition_size = args[:gpu_partition_size] if args.key?(:gpu_partition_size)
62
69
  @gpu_sharing_config = args[:gpu_sharing_config] if args.key?(:gpu_sharing_config)
63
70
  end
64
71
  end
65
72
 
73
+ # AdditionalNodeNetworkConfig is the configuration for additional node networks
74
+ # within the NodeNetworkConfig message
75
+ class AdditionalNodeNetworkConfig
76
+ include Google::Apis::Core::Hashable
77
+
78
+ # Name of the VPC where the additional interface belongs
79
+ # Corresponds to the JSON property `network`
80
+ # @return [String]
81
+ attr_accessor :network
82
+
83
+ # Name of the subnetwork where the additional interface belongs
84
+ # Corresponds to the JSON property `subnetwork`
85
+ # @return [String]
86
+ attr_accessor :subnetwork
87
+
88
+ def initialize(**args)
89
+ update!(**args)
90
+ end
91
+
92
+ # Update properties of this object
93
+ def update!(**args)
94
+ @network = args[:network] if args.key?(:network)
95
+ @subnetwork = args[:subnetwork] if args.key?(:subnetwork)
96
+ end
97
+ end
98
+
99
+ # AdditionalPodNetworkConfig is the configuration for additional pod networks
100
+ # within the NodeNetworkConfig message
101
+ class AdditionalPodNetworkConfig
102
+ include Google::Apis::Core::Hashable
103
+
104
+ # Constraints applied to pods.
105
+ # Corresponds to the JSON property `maxPodsPerNode`
106
+ # @return [Google::Apis::ContainerV1::MaxPodsConstraint]
107
+ attr_accessor :max_pods_per_node
108
+
109
+ # The name of the network attachment for pods to communicate to; cannot be
110
+ # specified along with subnetwork or secondary_pod_range.
111
+ # Corresponds to the JSON property `networkAttachment`
112
+ # @return [String]
113
+ attr_accessor :network_attachment
114
+
115
+ # The name of the secondary range on the subnet which provides IP address for
116
+ # this pod range.
117
+ # Corresponds to the JSON property `secondaryPodRange`
118
+ # @return [String]
119
+ attr_accessor :secondary_pod_range
120
+
121
+ # Name of the subnetwork where the additional pod network belongs.
122
+ # Corresponds to the JSON property `subnetwork`
123
+ # @return [String]
124
+ attr_accessor :subnetwork
125
+
126
+ def initialize(**args)
127
+ update!(**args)
128
+ end
129
+
130
+ # Update properties of this object
131
+ def update!(**args)
132
+ @max_pods_per_node = args[:max_pods_per_node] if args.key?(:max_pods_per_node)
133
+ @network_attachment = args[:network_attachment] if args.key?(:network_attachment)
134
+ @secondary_pod_range = args[:secondary_pod_range] if args.key?(:secondary_pod_range)
135
+ @subnetwork = args[:subnetwork] if args.key?(:subnetwork)
136
+ end
137
+ end
138
+
139
+ # AdditionalPodRangesConfig is the configuration for additional pod secondary
140
+ # ranges supporting the ClusterUpdate message.
141
+ class AdditionalPodRangesConfig
142
+ include Google::Apis::Core::Hashable
143
+
144
+ # Output only. Information for additional pod range.
145
+ # Corresponds to the JSON property `podRangeInfo`
146
+ # @return [Array<Google::Apis::ContainerV1::RangeInfo>]
147
+ attr_accessor :pod_range_info
148
+
149
+ # Name for pod secondary ipv4 range which has the actual range defined ahead.
150
+ # Corresponds to the JSON property `podRangeNames`
151
+ # @return [Array<String>]
152
+ attr_accessor :pod_range_names
153
+
154
+ def initialize(**args)
155
+ update!(**args)
156
+ end
157
+
158
+ # Update properties of this object
159
+ def update!(**args)
160
+ @pod_range_info = args[:pod_range_info] if args.key?(:pod_range_info)
161
+ @pod_range_names = args[:pod_range_names] if args.key?(:pod_range_names)
162
+ end
163
+ end
164
+
66
165
  # Configuration for the addons that can be automatically spun up in the cluster,
67
166
  # enabling additional functionality.
68
167
  class AddonsConfig
@@ -93,6 +192,11 @@ module Google
93
192
  # @return [Google::Apis::ContainerV1::GcpFilestoreCsiDriverConfig]
94
193
  attr_accessor :gcp_filestore_csi_driver_config
95
194
 
195
+ # Configuration for the Cloud Storage Fuse CSI driver.
196
+ # Corresponds to the JSON property `gcsFuseCsiDriverConfig`
197
+ # @return [Google::Apis::ContainerV1::GcsFuseCsiDriverConfig]
198
+ attr_accessor :gcs_fuse_csi_driver_config
199
+
96
200
  # Configuration for the Backup for GKE Agent.
97
201
  # Corresponds to the JSON property `gkeBackupAgentConfig`
98
202
  # @return [Google::Apis::ContainerV1::GkeBackupAgentConfig]
@@ -123,6 +227,21 @@ module Google
123
227
  # @return [Google::Apis::ContainerV1::NetworkPolicyConfig]
124
228
  attr_accessor :network_policy_config
125
229
 
230
+ # Configuration for the Cloud Storage Parallelstore CSI driver.
231
+ # Corresponds to the JSON property `parallelstoreCsiDriverConfig`
232
+ # @return [Google::Apis::ContainerV1::ParallelstoreCsiDriverConfig]
233
+ attr_accessor :parallelstore_csi_driver_config
234
+
235
+ # Configuration options for the Ray Operator add-on.
236
+ # Corresponds to the JSON property `rayOperatorConfig`
237
+ # @return [Google::Apis::ContainerV1::RayOperatorConfig]
238
+ attr_accessor :ray_operator_config
239
+
240
+ # Configuration for the Stateful HA add-on.
241
+ # Corresponds to the JSON property `statefulHaConfig`
242
+ # @return [Google::Apis::ContainerV1::StatefulHaConfig]
243
+ attr_accessor :stateful_ha_config
244
+
126
245
  def initialize(**args)
127
246
  update!(**args)
128
247
  end
@@ -134,11 +253,49 @@ module Google
134
253
  @dns_cache_config = args[:dns_cache_config] if args.key?(:dns_cache_config)
135
254
  @gce_persistent_disk_csi_driver_config = args[:gce_persistent_disk_csi_driver_config] if args.key?(:gce_persistent_disk_csi_driver_config)
136
255
  @gcp_filestore_csi_driver_config = args[:gcp_filestore_csi_driver_config] if args.key?(:gcp_filestore_csi_driver_config)
256
+ @gcs_fuse_csi_driver_config = args[:gcs_fuse_csi_driver_config] if args.key?(:gcs_fuse_csi_driver_config)
137
257
  @gke_backup_agent_config = args[:gke_backup_agent_config] if args.key?(:gke_backup_agent_config)
138
258
  @horizontal_pod_autoscaling = args[:horizontal_pod_autoscaling] if args.key?(:horizontal_pod_autoscaling)
139
259
  @http_load_balancing = args[:http_load_balancing] if args.key?(:http_load_balancing)
140
260
  @kubernetes_dashboard = args[:kubernetes_dashboard] if args.key?(:kubernetes_dashboard)
141
261
  @network_policy_config = args[:network_policy_config] if args.key?(:network_policy_config)
262
+ @parallelstore_csi_driver_config = args[:parallelstore_csi_driver_config] if args.key?(:parallelstore_csi_driver_config)
263
+ @ray_operator_config = args[:ray_operator_config] if args.key?(:ray_operator_config)
264
+ @stateful_ha_config = args[:stateful_ha_config] if args.key?(:stateful_ha_config)
265
+ end
266
+ end
267
+
268
+ # AdvancedDatapathObservabilityConfig specifies configuration of observability
269
+ # features of advanced datapath.
270
+ class AdvancedDatapathObservabilityConfig
271
+ include Google::Apis::Core::Hashable
272
+
273
+ # Expose flow metrics on nodes
274
+ # Corresponds to the JSON property `enableMetrics`
275
+ # @return [Boolean]
276
+ attr_accessor :enable_metrics
277
+ alias_method :enable_metrics?, :enable_metrics
278
+
279
+ # Enable Relay component
280
+ # Corresponds to the JSON property `enableRelay`
281
+ # @return [Boolean]
282
+ attr_accessor :enable_relay
283
+ alias_method :enable_relay?, :enable_relay
284
+
285
+ # Method used to make Relay available
286
+ # Corresponds to the JSON property `relayMode`
287
+ # @return [String]
288
+ attr_accessor :relay_mode
289
+
290
+ def initialize(**args)
291
+ update!(**args)
292
+ end
293
+
294
+ # Update properties of this object
295
+ def update!(**args)
296
+ @enable_metrics = args[:enable_metrics] if args.key?(:enable_metrics)
297
+ @enable_relay = args[:enable_relay] if args.key?(:enable_relay)
298
+ @relay_mode = args[:relay_mode] if args.key?(:relay_mode)
142
299
  end
143
300
  end
144
301
 
@@ -146,6 +303,12 @@ module Google
146
303
  class AdvancedMachineFeatures
147
304
  include Google::Apis::Core::Hashable
148
305
 
306
+ # Whether or not to enable nested virtualization (defaults to false).
307
+ # Corresponds to the JSON property `enableNestedVirtualization`
308
+ # @return [Boolean]
309
+ attr_accessor :enable_nested_virtualization
310
+ alias_method :enable_nested_virtualization?, :enable_nested_virtualization
311
+
149
312
  # The number of threads per physical core. To disable simultaneous
150
313
  # multithreading (SMT) set this to 1. If unset, the maximum number of threads
151
314
  # supported per core by the underlying processor is assumed.
@@ -159,6 +322,7 @@ module Google
159
322
 
160
323
  # Update properties of this object
161
324
  def update!(**args)
325
+ @enable_nested_virtualization = args[:enable_nested_virtualization] if args.key?(:enable_nested_virtualization)
162
326
  @threads_per_core = args[:threads_per_core] if args.key?(:threads_per_core)
163
327
  end
164
328
  end
@@ -191,19 +355,39 @@ module Google
191
355
  end
192
356
  end
193
357
 
358
+ # AutoMonitoringConfig defines the configuration for GKE Workload Auto-
359
+ # Monitoring.
360
+ class AutoMonitoringConfig
361
+ include Google::Apis::Core::Hashable
362
+
363
+ # Scope for GKE Workload Auto-Monitoring.
364
+ # Corresponds to the JSON property `scope`
365
+ # @return [String]
366
+ attr_accessor :scope
367
+
368
+ def initialize(**args)
369
+ update!(**args)
370
+ end
371
+
372
+ # Update properties of this object
373
+ def update!(**args)
374
+ @scope = args[:scope] if args.key?(:scope)
375
+ end
376
+ end
377
+
194
378
  # AutoUpgradeOptions defines the set of options for the user to control how the
195
379
  # Auto Upgrades will proceed.
196
380
  class AutoUpgradeOptions
197
381
  include Google::Apis::Core::Hashable
198
382
 
199
- # [Output only] This field is set when upgrades are about to commence with the
383
+ # Output only. This field is set when upgrades are about to commence with the
200
384
  # approximate start time for the upgrades, in [RFC3339](https://www.ietf.org/rfc/
201
385
  # rfc3339.txt) text format.
202
386
  # Corresponds to the JSON property `autoUpgradeStartTime`
203
387
  # @return [String]
204
388
  attr_accessor :auto_upgrade_start_time
205
389
 
206
- # [Output only] This field is set when upgrades are about to commence with the
390
+ # Output only. This field is set when upgrades are about to commence with the
207
391
  # description of the upgrade.
208
392
  # Corresponds to the JSON property `description`
209
393
  # @return [String]
@@ -230,6 +414,82 @@ module Google
230
414
  attr_accessor :enabled
231
415
  alias_method :enabled?, :enabled
232
416
 
417
+ # WorkloadPolicyConfig is the configuration related to GCW workload policy
418
+ # Corresponds to the JSON property `workloadPolicyConfig`
419
+ # @return [Google::Apis::ContainerV1::WorkloadPolicyConfig]
420
+ attr_accessor :workload_policy_config
421
+
422
+ def initialize(**args)
423
+ update!(**args)
424
+ end
425
+
426
+ # Update properties of this object
427
+ def update!(**args)
428
+ @enabled = args[:enabled] if args.key?(:enabled)
429
+ @workload_policy_config = args[:workload_policy_config] if args.key?(:workload_policy_config)
430
+ end
431
+ end
432
+
433
+ # AutopilotCompatibilityIssue contains information about a specific
434
+ # compatibility issue with Autopilot mode.
435
+ class AutopilotCompatibilityIssue
436
+ include Google::Apis::Core::Hashable
437
+
438
+ # The constraint type of the issue.
439
+ # Corresponds to the JSON property `constraintType`
440
+ # @return [String]
441
+ attr_accessor :constraint_type
442
+
443
+ # The description of the issue.
444
+ # Corresponds to the JSON property `description`
445
+ # @return [String]
446
+ attr_accessor :description
447
+
448
+ # A URL to a public documentation, which addresses resolving this issue.
449
+ # Corresponds to the JSON property `documentationUrl`
450
+ # @return [String]
451
+ attr_accessor :documentation_url
452
+
453
+ # The incompatibility type of this issue.
454
+ # Corresponds to the JSON property `incompatibilityType`
455
+ # @return [String]
456
+ attr_accessor :incompatibility_type
457
+
458
+ # The last time when this issue was observed.
459
+ # Corresponds to the JSON property `lastObservation`
460
+ # @return [String]
461
+ attr_accessor :last_observation
462
+
463
+ # The name of the resources which are subject to this issue.
464
+ # Corresponds to the JSON property `subjects`
465
+ # @return [Array<String>]
466
+ attr_accessor :subjects
467
+
468
+ def initialize(**args)
469
+ update!(**args)
470
+ end
471
+
472
+ # Update properties of this object
473
+ def update!(**args)
474
+ @constraint_type = args[:constraint_type] if args.key?(:constraint_type)
475
+ @description = args[:description] if args.key?(:description)
476
+ @documentation_url = args[:documentation_url] if args.key?(:documentation_url)
477
+ @incompatibility_type = args[:incompatibility_type] if args.key?(:incompatibility_type)
478
+ @last_observation = args[:last_observation] if args.key?(:last_observation)
479
+ @subjects = args[:subjects] if args.key?(:subjects)
480
+ end
481
+ end
482
+
483
+ # AutopilotConfig contains configuration of autopilot feature for this nodepool.
484
+ class AutopilotConfig
485
+ include Google::Apis::Core::Hashable
486
+
487
+ # Denotes that nodes belonging to this node pool are Autopilot nodes.
488
+ # Corresponds to the JSON property `enabled`
489
+ # @return [Boolean]
490
+ attr_accessor :enabled
491
+ alias_method :enabled?, :enabled
492
+
233
493
  def initialize(**args)
234
494
  update!(**args)
235
495
  end
@@ -266,11 +526,18 @@ module Google
266
526
  # @return [String]
267
527
  attr_accessor :disk_type
268
528
 
269
- # The image type to use for NAP created node.
529
+ # The image type to use for NAP created node. Please see https://cloud.google.
530
+ # com/kubernetes-engine/docs/concepts/node-images for available image types.
270
531
  # Corresponds to the JSON property `imageType`
271
532
  # @return [String]
272
533
  attr_accessor :image_type
273
534
 
535
+ # DEPRECATED. Use NodePoolAutoConfig.NodeKubeletConfig instead.
536
+ # Corresponds to the JSON property `insecureKubeletReadonlyPortEnabled`
537
+ # @return [Boolean]
538
+ attr_accessor :insecure_kubelet_readonly_port_enabled
539
+ alias_method :insecure_kubelet_readonly_port_enabled?, :insecure_kubelet_readonly_port_enabled
540
+
274
541
  # NodeManagement defines the set of node management services turned on for the
275
542
  # node pool.
276
543
  # Corresponds to the JSON property `management`
@@ -283,7 +550,7 @@ module Google
283
550
  # Haswell or minCpuPlatform: Intel Sandy Bridge. For more information, read [how
284
551
  # to specify min CPU platform](https://cloud.google.com/compute/docs/instances/
285
552
  # specify-min-cpu-platform). This field is deprecated, min_cpu_platform should
286
- # be specified using https://cloud.google.com/requested-min-cpu-platform label
553
+ # be specified using `cloud.google.com/requested-min-cpu-platform` label
287
554
  # selector on the pod. To unset the min cpu platform field pass "automatic" as
288
555
  # field value.
289
556
  # Corresponds to the JSON property `minCpuPlatform`
@@ -350,6 +617,7 @@ module Google
350
617
  @disk_size_gb = args[:disk_size_gb] if args.key?(:disk_size_gb)
351
618
  @disk_type = args[:disk_type] if args.key?(:disk_type)
352
619
  @image_type = args[:image_type] if args.key?(:image_type)
620
+ @insecure_kubelet_readonly_port_enabled = args[:insecure_kubelet_readonly_port_enabled] if args.key?(:insecure_kubelet_readonly_port_enabled)
353
621
  @management = args[:management] if args.key?(:management)
354
622
  @min_cpu_platform = args[:min_cpu_platform] if args.key?(:min_cpu_platform)
355
623
  @oauth_scopes = args[:oauth_scopes] if args.key?(:oauth_scopes)
@@ -359,6 +627,36 @@ module Google
359
627
  end
360
628
  end
361
629
 
630
+ # Best effort provisioning.
631
+ class BestEffortProvisioning
632
+ include Google::Apis::Core::Hashable
633
+
634
+ # When this is enabled, cluster/node pool creations will ignore non-fatal errors
635
+ # like stockout to best provision as many nodes as possible right now and
636
+ # eventually bring up all target number of nodes
637
+ # Corresponds to the JSON property `enabled`
638
+ # @return [Boolean]
639
+ attr_accessor :enabled
640
+ alias_method :enabled?, :enabled
641
+
642
+ # Minimum number of nodes to be provisioned to be considered as succeeded, and
643
+ # the rest of nodes will be provisioned gradually and eventually when stockout
644
+ # issue has been resolved.
645
+ # Corresponds to the JSON property `minProvisionNodes`
646
+ # @return [Fixnum]
647
+ attr_accessor :min_provision_nodes
648
+
649
+ def initialize(**args)
650
+ update!(**args)
651
+ end
652
+
653
+ # Update properties of this object
654
+ def update!(**args)
655
+ @enabled = args[:enabled] if args.key?(:enabled)
656
+ @min_provision_nodes = args[:min_provision_nodes] if args.key?(:min_provision_nodes)
657
+ end
658
+ end
659
+
362
660
  # Parameters for using BigQuery as the destination of resource usage export.
363
661
  class BigQueryDestination
364
662
  include Google::Apis::Core::Hashable
@@ -522,6 +820,59 @@ module Google
522
820
  end
523
821
  end
524
822
 
823
+ # CertificateAuthorityDomainConfig configures one or more fully qualified domain
824
+ # names (FQDN) to a specific certificate.
825
+ class CertificateAuthorityDomainConfig
826
+ include Google::Apis::Core::Hashable
827
+
828
+ # List of fully qualified domain names (FQDN). Specifying port is supported.
829
+ # Wildcards are NOT supported. Examples: - my.customdomain.com - 10.0.1.2:5000
830
+ # Corresponds to the JSON property `fqdns`
831
+ # @return [Array<String>]
832
+ attr_accessor :fqdns
833
+
834
+ # GCPSecretManagerCertificateConfig configures a secret from [Google Secret
835
+ # Manager](https://cloud.google.com/secret-manager).
836
+ # Corresponds to the JSON property `gcpSecretManagerCertificateConfig`
837
+ # @return [Google::Apis::ContainerV1::GcpSecretManagerCertificateConfig]
838
+ attr_accessor :gcp_secret_manager_certificate_config
839
+
840
+ def initialize(**args)
841
+ update!(**args)
842
+ end
843
+
844
+ # Update properties of this object
845
+ def update!(**args)
846
+ @fqdns = args[:fqdns] if args.key?(:fqdns)
847
+ @gcp_secret_manager_certificate_config = args[:gcp_secret_manager_certificate_config] if args.key?(:gcp_secret_manager_certificate_config)
848
+ end
849
+ end
850
+
851
+ # CheckAutopilotCompatibilityResponse has a list of compatibility issues.
852
+ class CheckAutopilotCompatibilityResponse
853
+ include Google::Apis::Core::Hashable
854
+
855
+ # The list of issues for the given operation.
856
+ # Corresponds to the JSON property `issues`
857
+ # @return [Array<Google::Apis::ContainerV1::AutopilotCompatibilityIssue>]
858
+ attr_accessor :issues
859
+
860
+ # The summary of the autopilot compatibility response.
861
+ # Corresponds to the JSON property `summary`
862
+ # @return [String]
863
+ attr_accessor :summary
864
+
865
+ def initialize(**args)
866
+ update!(**args)
867
+ end
868
+
869
+ # Update properties of this object
870
+ def update!(**args)
871
+ @issues = args[:issues] if args.key?(:issues)
872
+ @summary = args[:summary] if args.key?(:summary)
873
+ end
874
+ end
875
+
525
876
  # CidrBlock contains an optional name and one CIDR block.
526
877
  class CidrBlock
527
878
  include Google::Apis::Core::Hashable
@@ -633,6 +984,12 @@ module Google
633
984
  # @return [String]
634
985
  attr_accessor :cluster_ipv4_cidr
635
986
 
987
+ # CompliancePostureConfig defines the settings needed to enable/disable features
988
+ # for the Compliance Posture.
989
+ # Corresponds to the JSON property `compliancePostureConfig`
990
+ # @return [Google::Apis::ContainerV1::CompliancePostureConfig]
991
+ attr_accessor :compliance_posture_config
992
+
636
993
  # Which conditions caused the current cluster state.
637
994
  # Corresponds to the JSON property `conditions`
638
995
  # @return [Array<Google::Apis::ContainerV1::StatusCondition>]
@@ -644,29 +1001,34 @@ module Google
644
1001
  # @return [Google::Apis::ContainerV1::ConfidentialNodes]
645
1002
  attr_accessor :confidential_nodes
646
1003
 
1004
+ # Configuration for all of the cluster's control plane endpoints.
1005
+ # Corresponds to the JSON property `controlPlaneEndpointsConfig`
1006
+ # @return [Google::Apis::ContainerV1::ControlPlaneEndpointsConfig]
1007
+ attr_accessor :control_plane_endpoints_config
1008
+
647
1009
  # Configuration for fine-grained cost management feature.
648
1010
  # Corresponds to the JSON property `costManagementConfig`
649
1011
  # @return [Google::Apis::ContainerV1::CostManagementConfig]
650
1012
  attr_accessor :cost_management_config
651
1013
 
652
- # [Output only] The time the cluster was created, in [RFC3339](https://www.ietf.
1014
+ # Output only. The time the cluster was created, in [RFC3339](https://www.ietf.
653
1015
  # org/rfc/rfc3339.txt) text format.
654
1016
  # Corresponds to the JSON property `createTime`
655
1017
  # @return [String]
656
1018
  attr_accessor :create_time
657
1019
 
658
- # [Output only] The current software version of the master endpoint.
1020
+ # Output only. The current software version of the master endpoint.
659
1021
  # Corresponds to the JSON property `currentMasterVersion`
660
1022
  # @return [String]
661
1023
  attr_accessor :current_master_version
662
1024
 
663
- # [Output only] The number of nodes currently in the cluster. Deprecated. Call
1025
+ # Output only. The number of nodes currently in the cluster. Deprecated. Call
664
1026
  # Kubernetes API directly to retrieve node information.
665
1027
  # Corresponds to the JSON property `currentNodeCount`
666
1028
  # @return [Fixnum]
667
1029
  attr_accessor :current_node_count
668
1030
 
669
- # [Output only] Deprecated, use [NodePools.version](https://cloud.google.com/
1031
+ # Output only. Deprecated, use [NodePools.version](https://cloud.google.com/
670
1032
  # kubernetes-engine/docs/reference/rest/v1/projects.locations.clusters.nodePools)
671
1033
  # instead. The current version of the node software components. If they are
672
1034
  # currently at multiple versions because they're in the process of being
@@ -690,6 +1052,11 @@ module Google
690
1052
  # @return [String]
691
1053
  attr_accessor :description
692
1054
 
1055
+ # K8sBetaAPIConfig , configuration for beta APIs
1056
+ # Corresponds to the JSON property `enableK8sBetaApis`
1057
+ # @return [Google::Apis::ContainerV1::K8sBetaApiConfig]
1058
+ attr_accessor :enable_k8s_beta_apis
1059
+
693
1060
  # Kubernetes alpha features are enabled on this cluster. This includes alpha API
694
1061
  # groups (e.g. v1alpha1) and features that may not be production ready in the
695
1062
  # kubernetes version of the master and nodes. The cluster has no SLA for uptime
@@ -700,13 +1067,15 @@ module Google
700
1067
  attr_accessor :enable_kubernetes_alpha
701
1068
  alias_method :enable_kubernetes_alpha?, :enable_kubernetes_alpha
702
1069
 
703
- # Enable the ability to use Cloud TPUs in this cluster.
1070
+ # Enable the ability to use Cloud TPUs in this cluster. This field is deprecated
1071
+ # due to the deprecation of 2VM TPU. The end of life date for 2VM TPU is 2025-04-
1072
+ # 25.
704
1073
  # Corresponds to the JSON property `enableTpu`
705
1074
  # @return [Boolean]
706
1075
  attr_accessor :enable_tpu
707
1076
  alias_method :enable_tpu?, :enable_tpu
708
1077
 
709
- # [Output only] The IP address of this cluster's master endpoint. The endpoint
1078
+ # Output only. The IP address of this cluster's master endpoint. The endpoint
710
1079
  # can be accessed from the internet at `https://username:password@endpoint/`.
711
1080
  # See the `masterAuth` property of this resource for username and password
712
1081
  # information.
@@ -714,6 +1083,11 @@ module Google
714
1083
  # @return [String]
715
1084
  attr_accessor :endpoint
716
1085
 
1086
+ # EnterpriseConfig is the cluster enterprise configuration.
1087
+ # Corresponds to the JSON property `enterpriseConfig`
1088
+ # @return [Google::Apis::ContainerV1::EnterpriseConfig]
1089
+ attr_accessor :enterprise_config
1090
+
717
1091
  # This checksum is computed by the server based on the value of cluster fields,
718
1092
  # and may be sent on update requests to ensure the client has an up-to-date
719
1093
  # value before proceeding.
@@ -721,12 +1095,17 @@ module Google
721
1095
  # @return [String]
722
1096
  attr_accessor :etag
723
1097
 
724
- # [Output only] The time the cluster will be automatically deleted in [RFC3339](
1098
+ # Output only. The time the cluster will be automatically deleted in [RFC3339](
725
1099
  # https://www.ietf.org/rfc/rfc3339.txt) text format.
726
1100
  # Corresponds to the JSON property `expireTime`
727
1101
  # @return [String]
728
1102
  attr_accessor :expire_time
729
1103
 
1104
+ # Fleet is the fleet configuration for the cluster.
1105
+ # Corresponds to the JSON property `fleet`
1106
+ # @return [Google::Apis::ContainerV1::Fleet]
1107
+ attr_accessor :fleet
1108
+
730
1109
  # Output only. Unique id for the cluster.
731
1110
  # Corresponds to the JSON property `id`
732
1111
  # @return [String]
@@ -763,7 +1142,7 @@ module Google
763
1142
  # @return [Fixnum]
764
1143
  attr_accessor :initial_node_count
765
1144
 
766
- # Deprecated. Use node_pools.instance_group_urls.
1145
+ # Output only. Deprecated. Use node_pools.instance_group_urls.
767
1146
  # Corresponds to the JSON property `instanceGroupUrls`
768
1147
  # @return [Array<String>]
769
1148
  attr_accessor :instance_group_urls
@@ -783,10 +1162,10 @@ module Google
783
1162
  # @return [Google::Apis::ContainerV1::LegacyAbac]
784
1163
  attr_accessor :legacy_abac
785
1164
 
786
- # [Output only] The name of the Google Compute Engine [zone](https://cloud.
787
- # google.com/compute/docs/regions-zones/regions-zones#available) or [region](
788
- # https://cloud.google.com/compute/docs/regions-zones/regions-zones#available)
789
- # in which the cluster resides.
1165
+ # Output only. The name of the Google Compute Engine [zone](https://cloud.google.
1166
+ # com/compute/docs/regions-zones/regions-zones#available) or [region](https://
1167
+ # cloud.google.com/compute/docs/regions-zones/regions-zones#available) in which
1168
+ # the cluster resides.
790
1169
  # Corresponds to the JSON property `location`
791
1170
  # @return [String]
792
1171
  attr_accessor :location
@@ -850,7 +1229,7 @@ module Google
850
1229
  attr_accessor :monitoring_config
851
1230
 
852
1231
  # The monitoring service the cluster should use to write metrics. Currently
853
- # available options: * "monitoring.googleapis.com/kubernetes" - The Cloud
1232
+ # available options: * `monitoring.googleapis.com/kubernetes` - The Cloud
854
1233
  # Monitoring service with a Kubernetes-native resource model * `monitoring.
855
1234
  # googleapis.com` - The legacy Cloud Monitoring service (no longer available as
856
1235
  # of GKE 1.15). * `none` - No metrics will be exported from the cluster. If left
@@ -893,9 +1272,9 @@ module Google
893
1272
  # @return [Google::Apis::ContainerV1::NodeConfig]
894
1273
  attr_accessor :node_config
895
1274
 
896
- # [Output only] The size of the address space on each node for hosting
897
- # containers. This is provisioned from within the `container_ipv4_cidr` range.
898
- # This field will only be set when cluster is in route-based network mode.
1275
+ # Output only. The size of the address space on each node for hosting containers.
1276
+ # This is provisioned from within the `container_ipv4_cidr` range. This field
1277
+ # will only be set when cluster is in route-based network mode.
899
1278
  # Corresponds to the JSON property `nodeIpv4CidrSize`
900
1279
  # @return [Fixnum]
901
1280
  attr_accessor :node_ipv4_cidr_size
@@ -922,11 +1301,30 @@ module Google
922
1301
  # @return [Google::Apis::ContainerV1::NotificationConfig]
923
1302
  attr_accessor :notification_config
924
1303
 
1304
+ # ParentProductConfig is the configuration of the parent product of the cluster.
1305
+ # This field is used by Google internal products that are built on top of a GKE
1306
+ # cluster and take the ownership of the cluster.
1307
+ # Corresponds to the JSON property `parentProductConfig`
1308
+ # @return [Google::Apis::ContainerV1::ParentProductConfig]
1309
+ attr_accessor :parent_product_config
1310
+
1311
+ # PodAutoscaling is used for configuration of parameters for workload
1312
+ # autoscaling.
1313
+ # Corresponds to the JSON property `podAutoscaling`
1314
+ # @return [Google::Apis::ContainerV1::PodAutoscaling]
1315
+ attr_accessor :pod_autoscaling
1316
+
925
1317
  # Configuration options for private clusters.
926
1318
  # Corresponds to the JSON property `privateClusterConfig`
927
1319
  # @return [Google::Apis::ContainerV1::PrivateClusterConfig]
928
1320
  attr_accessor :private_cluster_config
929
1321
 
1322
+ # RBACBindingConfig allows user to restrict ClusterRoleBindings an RoleBindings
1323
+ # that can be created.
1324
+ # Corresponds to the JSON property `rbacBindingConfig`
1325
+ # @return [Google::Apis::ContainerV1::RbacBindingConfig]
1326
+ attr_accessor :rbac_binding_config
1327
+
930
1328
  # ReleaseChannel indicates which release channel a cluster is subscribed to.
931
1329
  # Release channels are arranged in order of risk. When a cluster is subscribed
932
1330
  # to a release channel, Google maintains both the master version and the node
@@ -946,12 +1344,35 @@ module Google
946
1344
  # @return [Google::Apis::ContainerV1::ResourceUsageExportConfig]
947
1345
  attr_accessor :resource_usage_export_config
948
1346
 
949
- # [Output only] Server-defined URL for the resource.
1347
+ # Output only. Reserved for future use.
1348
+ # Corresponds to the JSON property `satisfiesPzi`
1349
+ # @return [Boolean]
1350
+ attr_accessor :satisfies_pzi
1351
+ alias_method :satisfies_pzi?, :satisfies_pzi
1352
+
1353
+ # Output only. Reserved for future use.
1354
+ # Corresponds to the JSON property `satisfiesPzs`
1355
+ # @return [Boolean]
1356
+ attr_accessor :satisfies_pzs
1357
+ alias_method :satisfies_pzs?, :satisfies_pzs
1358
+
1359
+ # SecretManagerConfig is config for secret manager enablement.
1360
+ # Corresponds to the JSON property `secretManagerConfig`
1361
+ # @return [Google::Apis::ContainerV1::SecretManagerConfig]
1362
+ attr_accessor :secret_manager_config
1363
+
1364
+ # SecurityPostureConfig defines the flags needed to enable/disable features for
1365
+ # the Security Posture API.
1366
+ # Corresponds to the JSON property `securityPostureConfig`
1367
+ # @return [Google::Apis::ContainerV1::SecurityPostureConfig]
1368
+ attr_accessor :security_posture_config
1369
+
1370
+ # Output only. Server-defined URL for the resource.
950
1371
  # Corresponds to the JSON property `selfLink`
951
1372
  # @return [String]
952
1373
  attr_accessor :self_link
953
1374
 
954
- # [Output only] The IP address range of the Kubernetes services in this cluster,
1375
+ # Output only. The IP address range of the Kubernetes services in this cluster,
955
1376
  # in [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)
956
1377
  # notation (e.g. `1.2.3.4/29`). Service addresses are typically put in the last `
957
1378
  # /16` from the container CIDR.
@@ -964,12 +1385,12 @@ module Google
964
1385
  # @return [Google::Apis::ContainerV1::ShieldedNodes]
965
1386
  attr_accessor :shielded_nodes
966
1387
 
967
- # [Output only] The current status of this cluster.
1388
+ # Output only. The current status of this cluster.
968
1389
  # Corresponds to the JSON property `status`
969
1390
  # @return [String]
970
1391
  attr_accessor :status
971
1392
 
972
- # [Output only] Deprecated. Use conditions instead. Additional information about
1393
+ # Output only. Deprecated. Use conditions instead. Additional information about
973
1394
  # the current status of this cluster, if available.
974
1395
  # Corresponds to the JSON property `statusMessage`
975
1396
  # @return [String]
@@ -981,13 +1402,20 @@ module Google
981
1402
  # @return [String]
982
1403
  attr_accessor :subnetwork
983
1404
 
984
- # [Output only] The IP address range of the Cloud TPUs in this cluster, in [CIDR]
985
- # (http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing) notation (e.g. `
986
- # 1.2.3.4/29`).
1405
+ # Output only. The IP address range of the Cloud TPUs in this cluster, in [CIDR](
1406
+ # http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing) notation (e.g. `1.
1407
+ # 2.3.4/29`). This field is deprecated due to the deprecation of 2VM TPU. The
1408
+ # end of life date for 2VM TPU is 2025-04-25.
987
1409
  # Corresponds to the JSON property `tpuIpv4CidrBlock`
988
1410
  # @return [String]
989
1411
  attr_accessor :tpu_ipv4_cidr_block
990
1412
 
1413
+ # UserManagedKeysConfig holds the resource address to Keys which are used for
1414
+ # signing certs and token that are used for communication within cluster.
1415
+ # Corresponds to the JSON property `userManagedKeysConfig`
1416
+ # @return [Google::Apis::ContainerV1::UserManagedKeysConfig]
1417
+ attr_accessor :user_managed_keys_config
1418
+
991
1419
  # VerticalPodAutoscaling contains global, per-cluster information required by
992
1420
  # Vertical Pod Autoscaler to automatically adjust the resources of pods
993
1421
  # controlled by it.
@@ -1000,9 +1428,9 @@ module Google
1000
1428
  # @return [Google::Apis::ContainerV1::WorkloadIdentityConfig]
1001
1429
  attr_accessor :workload_identity_config
1002
1430
 
1003
- # [Output only] The name of the Google Compute Engine [zone](https://cloud.
1004
- # google.com/compute/docs/zones#available) in which the cluster resides. This
1005
- # field is deprecated, use location instead.
1431
+ # Output only. The name of the Google Compute Engine [zone](https://cloud.google.
1432
+ # com/compute/docs/zones#available) in which the cluster resides. This field is
1433
+ # deprecated, use location instead.
1006
1434
  # Corresponds to the JSON property `zone`
1007
1435
  # @return [String]
1008
1436
  attr_accessor :zone
@@ -1019,8 +1447,10 @@ module Google
1019
1447
  @autoscaling = args[:autoscaling] if args.key?(:autoscaling)
1020
1448
  @binary_authorization = args[:binary_authorization] if args.key?(:binary_authorization)
1021
1449
  @cluster_ipv4_cidr = args[:cluster_ipv4_cidr] if args.key?(:cluster_ipv4_cidr)
1450
+ @compliance_posture_config = args[:compliance_posture_config] if args.key?(:compliance_posture_config)
1022
1451
  @conditions = args[:conditions] if args.key?(:conditions)
1023
1452
  @confidential_nodes = args[:confidential_nodes] if args.key?(:confidential_nodes)
1453
+ @control_plane_endpoints_config = args[:control_plane_endpoints_config] if args.key?(:control_plane_endpoints_config)
1024
1454
  @cost_management_config = args[:cost_management_config] if args.key?(:cost_management_config)
1025
1455
  @create_time = args[:create_time] if args.key?(:create_time)
1026
1456
  @current_master_version = args[:current_master_version] if args.key?(:current_master_version)
@@ -1029,11 +1459,14 @@ module Google
1029
1459
  @database_encryption = args[:database_encryption] if args.key?(:database_encryption)
1030
1460
  @default_max_pods_constraint = args[:default_max_pods_constraint] if args.key?(:default_max_pods_constraint)
1031
1461
  @description = args[:description] if args.key?(:description)
1462
+ @enable_k8s_beta_apis = args[:enable_k8s_beta_apis] if args.key?(:enable_k8s_beta_apis)
1032
1463
  @enable_kubernetes_alpha = args[:enable_kubernetes_alpha] if args.key?(:enable_kubernetes_alpha)
1033
1464
  @enable_tpu = args[:enable_tpu] if args.key?(:enable_tpu)
1034
1465
  @endpoint = args[:endpoint] if args.key?(:endpoint)
1466
+ @enterprise_config = args[:enterprise_config] if args.key?(:enterprise_config)
1035
1467
  @etag = args[:etag] if args.key?(:etag)
1036
1468
  @expire_time = args[:expire_time] if args.key?(:expire_time)
1469
+ @fleet = args[:fleet] if args.key?(:fleet)
1037
1470
  @id = args[:id] if args.key?(:id)
1038
1471
  @identity_service_config = args[:identity_service_config] if args.key?(:identity_service_config)
1039
1472
  @initial_cluster_version = args[:initial_cluster_version] if args.key?(:initial_cluster_version)
@@ -1062,10 +1495,17 @@ module Google
1062
1495
  @node_pool_defaults = args[:node_pool_defaults] if args.key?(:node_pool_defaults)
1063
1496
  @node_pools = args[:node_pools] if args.key?(:node_pools)
1064
1497
  @notification_config = args[:notification_config] if args.key?(:notification_config)
1498
+ @parent_product_config = args[:parent_product_config] if args.key?(:parent_product_config)
1499
+ @pod_autoscaling = args[:pod_autoscaling] if args.key?(:pod_autoscaling)
1065
1500
  @private_cluster_config = args[:private_cluster_config] if args.key?(:private_cluster_config)
1501
+ @rbac_binding_config = args[:rbac_binding_config] if args.key?(:rbac_binding_config)
1066
1502
  @release_channel = args[:release_channel] if args.key?(:release_channel)
1067
1503
  @resource_labels = args[:resource_labels] if args.key?(:resource_labels)
1068
1504
  @resource_usage_export_config = args[:resource_usage_export_config] if args.key?(:resource_usage_export_config)
1505
+ @satisfies_pzi = args[:satisfies_pzi] if args.key?(:satisfies_pzi)
1506
+ @satisfies_pzs = args[:satisfies_pzs] if args.key?(:satisfies_pzs)
1507
+ @secret_manager_config = args[:secret_manager_config] if args.key?(:secret_manager_config)
1508
+ @security_posture_config = args[:security_posture_config] if args.key?(:security_posture_config)
1069
1509
  @self_link = args[:self_link] if args.key?(:self_link)
1070
1510
  @services_ipv4_cidr = args[:services_ipv4_cidr] if args.key?(:services_ipv4_cidr)
1071
1511
  @shielded_nodes = args[:shielded_nodes] if args.key?(:shielded_nodes)
@@ -1073,6 +1513,7 @@ module Google
1073
1513
  @status_message = args[:status_message] if args.key?(:status_message)
1074
1514
  @subnetwork = args[:subnetwork] if args.key?(:subnetwork)
1075
1515
  @tpu_ipv4_cidr_block = args[:tpu_ipv4_cidr_block] if args.key?(:tpu_ipv4_cidr_block)
1516
+ @user_managed_keys_config = args[:user_managed_keys_config] if args.key?(:user_managed_keys_config)
1076
1517
  @vertical_pod_autoscaling = args[:vertical_pod_autoscaling] if args.key?(:vertical_pod_autoscaling)
1077
1518
  @workload_identity_config = args[:workload_identity_config] if args.key?(:workload_identity_config)
1078
1519
  @zone = args[:zone] if args.key?(:zone)
@@ -1128,11 +1569,36 @@ module Google
1128
1569
  end
1129
1570
  end
1130
1571
 
1572
+ # Configuration of network bandwidth tiers
1573
+ class ClusterNetworkPerformanceConfig
1574
+ include Google::Apis::Core::Hashable
1575
+
1576
+ # Specifies the total network bandwidth tier for NodePools in the cluster.
1577
+ # Corresponds to the JSON property `totalEgressBandwidthTier`
1578
+ # @return [String]
1579
+ attr_accessor :total_egress_bandwidth_tier
1580
+
1581
+ def initialize(**args)
1582
+ update!(**args)
1583
+ end
1584
+
1585
+ # Update properties of this object
1586
+ def update!(**args)
1587
+ @total_egress_bandwidth_tier = args[:total_egress_bandwidth_tier] if args.key?(:total_egress_bandwidth_tier)
1588
+ end
1589
+ end
1590
+
1131
1591
  # ClusterUpdate describes an update to the cluster. Exactly one update can be
1132
1592
  # applied to a cluster with each request, so at most one field can be provided.
1133
1593
  class ClusterUpdate
1134
1594
  include Google::Apis::Core::Hashable
1135
1595
 
1596
+ # AdditionalPodRangesConfig is the configuration for additional pod secondary
1597
+ # ranges supporting the ClusterUpdate message.
1598
+ # Corresponds to the JSON property `additionalPodRangesConfig`
1599
+ # @return [Google::Apis::ContainerV1::AdditionalPodRangesConfig]
1600
+ attr_accessor :additional_pod_ranges_config
1601
+
1136
1602
  # Configuration for the addons that can be automatically spun up in the cluster,
1137
1603
  # enabling additional functionality.
1138
1604
  # Corresponds to the JSON property `desiredAddonsConfig`
@@ -1144,6 +1610,11 @@ module Google
1144
1610
  # @return [Google::Apis::ContainerV1::AuthenticatorGroupsConfig]
1145
1611
  attr_accessor :desired_authenticator_groups_config
1146
1612
 
1613
+ # WorkloadPolicyConfig is the configuration related to GCW workload policy
1614
+ # Corresponds to the JSON property `desiredAutopilotWorkloadPolicyConfig`
1615
+ # @return [Google::Apis::ContainerV1::WorkloadPolicyConfig]
1616
+ attr_accessor :desired_autopilot_workload_policy_config
1617
+
1147
1618
  # Configuration for Binary Authorization.
1148
1619
  # Corresponds to the JSON property `desiredBinaryAuthorization`
1149
1620
  # @return [Google::Apis::ContainerV1::BinaryAuthorization]
@@ -1156,6 +1627,22 @@ module Google
1156
1627
  # @return [Google::Apis::ContainerV1::ClusterAutoscaling]
1157
1628
  attr_accessor :desired_cluster_autoscaling
1158
1629
 
1630
+ # CompliancePostureConfig defines the settings needed to enable/disable features
1631
+ # for the Compliance Posture.
1632
+ # Corresponds to the JSON property `desiredCompliancePostureConfig`
1633
+ # @return [Google::Apis::ContainerV1::CompliancePostureConfig]
1634
+ attr_accessor :desired_compliance_posture_config
1635
+
1636
+ # ContainerdConfig contains configuration to customize containerd.
1637
+ # Corresponds to the JSON property `desiredContainerdConfig`
1638
+ # @return [Google::Apis::ContainerV1::ContainerdConfig]
1639
+ attr_accessor :desired_containerd_config
1640
+
1641
+ # Configuration for all of the cluster's control plane endpoints.
1642
+ # Corresponds to the JSON property `desiredControlPlaneEndpointsConfig`
1643
+ # @return [Google::Apis::ContainerV1::ControlPlaneEndpointsConfig]
1644
+ attr_accessor :desired_control_plane_endpoints_config
1645
+
1159
1646
  # Configuration for fine-grained cost management feature.
1160
1647
  # Corresponds to the JSON property `desiredCostManagementConfig`
1161
1648
  # @return [Google::Apis::ContainerV1::CostManagementConfig]
@@ -1171,23 +1658,68 @@ module Google
1171
1658
  # @return [String]
1172
1659
  attr_accessor :desired_datapath_provider
1173
1660
 
1661
+ # Override the default setting of whether future created nodes have private IP
1662
+ # addresses only, namely NetworkConfig.default_enable_private_nodes
1663
+ # Corresponds to the JSON property `desiredDefaultEnablePrivateNodes`
1664
+ # @return [Boolean]
1665
+ attr_accessor :desired_default_enable_private_nodes
1666
+ alias_method :desired_default_enable_private_nodes?, :desired_default_enable_private_nodes
1667
+
1174
1668
  # DefaultSnatStatus contains the desired state of whether default sNAT should be
1175
1669
  # disabled on the cluster.
1176
1670
  # Corresponds to the JSON property `desiredDefaultSnatStatus`
1177
1671
  # @return [Google::Apis::ContainerV1::DefaultSnatStatus]
1178
1672
  attr_accessor :desired_default_snat_status
1179
1673
 
1674
+ # Enable/Disable L4 LB VPC firewall reconciliation for the cluster.
1675
+ # Corresponds to the JSON property `desiredDisableL4LbFirewallReconciliation`
1676
+ # @return [Boolean]
1677
+ attr_accessor :desired_disable_l4_lb_firewall_reconciliation
1678
+ alias_method :desired_disable_l4_lb_firewall_reconciliation?, :desired_disable_l4_lb_firewall_reconciliation
1679
+
1180
1680
  # DNSConfig contains the desired set of options for configuring clusterDNS.
1181
1681
  # Corresponds to the JSON property `desiredDnsConfig`
1182
1682
  # @return [Google::Apis::ContainerV1::DnsConfig]
1183
1683
  attr_accessor :desired_dns_config
1184
1684
 
1185
- # Enable/Disable private endpoint for the cluster's master.
1685
+ # Enable/Disable Cilium Clusterwide Network Policy for the cluster.
1686
+ # Corresponds to the JSON property `desiredEnableCiliumClusterwideNetworkPolicy`
1687
+ # @return [Boolean]
1688
+ attr_accessor :desired_enable_cilium_clusterwide_network_policy
1689
+ alias_method :desired_enable_cilium_clusterwide_network_policy?, :desired_enable_cilium_clusterwide_network_policy
1690
+
1691
+ # Enable/Disable FQDN Network Policy for the cluster.
1692
+ # Corresponds to the JSON property `desiredEnableFqdnNetworkPolicy`
1693
+ # @return [Boolean]
1694
+ attr_accessor :desired_enable_fqdn_network_policy
1695
+ alias_method :desired_enable_fqdn_network_policy?, :desired_enable_fqdn_network_policy
1696
+
1697
+ # Enable/Disable Multi-Networking for the cluster
1698
+ # Corresponds to the JSON property `desiredEnableMultiNetworking`
1699
+ # @return [Boolean]
1700
+ attr_accessor :desired_enable_multi_networking
1701
+ alias_method :desired_enable_multi_networking?, :desired_enable_multi_networking
1702
+
1703
+ # Enable/Disable private endpoint for the cluster's master. Deprecated: Use
1704
+ # desired_control_plane_endpoints_config.ip_endpoints_config.
1705
+ # enable_public_endpoint instead. Note that the value of enable_public_endpoint
1706
+ # is reversed: if enable_private_endpoint is false, then enable_public_endpoint
1707
+ # will be true.
1186
1708
  # Corresponds to the JSON property `desiredEnablePrivateEndpoint`
1187
1709
  # @return [Boolean]
1188
1710
  attr_accessor :desired_enable_private_endpoint
1189
1711
  alias_method :desired_enable_private_endpoint?, :desired_enable_private_endpoint
1190
1712
 
1713
+ # DesiredEnterpriseConfig is a wrapper used for updating enterprise_config.
1714
+ # Corresponds to the JSON property `desiredEnterpriseConfig`
1715
+ # @return [Google::Apis::ContainerV1::DesiredEnterpriseConfig]
1716
+ attr_accessor :desired_enterprise_config
1717
+
1718
+ # Fleet is the fleet configuration for the cluster.
1719
+ # Corresponds to the JSON property `desiredFleet`
1720
+ # @return [Google::Apis::ContainerV1::Fleet]
1721
+ attr_accessor :desired_fleet
1722
+
1191
1723
  # GatewayAPIConfig contains the desired config of Gateway API on this cluster.
1192
1724
  # Corresponds to the JSON property `desiredGatewayApiConfig`
1193
1725
  # @return [Google::Apis::ContainerV1::GatewayApiConfig]
@@ -1211,12 +1743,22 @@ module Google
1211
1743
  # @return [String]
1212
1744
  attr_accessor :desired_image_type
1213
1745
 
1746
+ # Specify the details of in-transit encryption.
1747
+ # Corresponds to the JSON property `desiredInTransitEncryptionConfig`
1748
+ # @return [String]
1749
+ attr_accessor :desired_in_transit_encryption_config
1750
+
1214
1751
  # IntraNodeVisibilityConfig contains the desired config of the intra-node
1215
1752
  # visibility on this cluster.
1216
1753
  # Corresponds to the JSON property `desiredIntraNodeVisibilityConfig`
1217
1754
  # @return [Google::Apis::ContainerV1::IntraNodeVisibilityConfig]
1218
1755
  attr_accessor :desired_intra_node_visibility_config
1219
1756
 
1757
+ # K8sBetaAPIConfig , configuration for beta APIs
1758
+ # Corresponds to the JSON property `desiredK8sBetaApis`
1759
+ # @return [Google::Apis::ContainerV1::K8sBetaApiConfig]
1760
+ attr_accessor :desired_k8s_beta_apis
1761
+
1220
1762
  # ILBSubsettingConfig contains the desired config of L4 Internal LoadBalancer
1221
1763
  # subsetting on this cluster.
1222
1764
  # Corresponds to the JSON property `desiredL4ilbSubsettingConfig`
@@ -1278,7 +1820,7 @@ module Google
1278
1820
  attr_accessor :desired_monitoring_config
1279
1821
 
1280
1822
  # The monitoring service the cluster should use to write metrics. Currently
1281
- # available options: * "monitoring.googleapis.com/kubernetes" - The Cloud
1823
+ # available options: * `monitoring.googleapis.com/kubernetes` - The Cloud
1282
1824
  # Monitoring service with a Kubernetes-native resource model * `monitoring.
1283
1825
  # googleapis.com` - The legacy Cloud Monitoring service (no longer available as
1284
1826
  # of GKE 1.15). * `none` - No metrics will be exported from the cluster. If left
@@ -1288,12 +1830,41 @@ module Google
1288
1830
  # @return [String]
1289
1831
  attr_accessor :desired_monitoring_service
1290
1832
 
1833
+ # Configuration of network bandwidth tiers
1834
+ # Corresponds to the JSON property `desiredNetworkPerformanceConfig`
1835
+ # @return [Google::Apis::ContainerV1::ClusterNetworkPerformanceConfig]
1836
+ attr_accessor :desired_network_performance_config
1837
+
1838
+ # Node kubelet configs.
1839
+ # Corresponds to the JSON property `desiredNodeKubeletConfig`
1840
+ # @return [Google::Apis::ContainerV1::NodeKubeletConfig]
1841
+ attr_accessor :desired_node_kubelet_config
1842
+
1843
+ # Node kubelet configs.
1844
+ # Corresponds to the JSON property `desiredNodePoolAutoConfigKubeletConfig`
1845
+ # @return [Google::Apis::ContainerV1::NodeKubeletConfig]
1846
+ attr_accessor :desired_node_pool_auto_config_kubelet_config
1847
+
1848
+ # Parameters that can be configured on Linux nodes.
1849
+ # Corresponds to the JSON property `desiredNodePoolAutoConfigLinuxNodeConfig`
1850
+ # @return [Google::Apis::ContainerV1::LinuxNodeConfig]
1851
+ attr_accessor :desired_node_pool_auto_config_linux_node_config
1852
+
1291
1853
  # Collection of Compute Engine network tags that can be applied to a node's
1292
1854
  # underlying VM instance.
1293
1855
  # Corresponds to the JSON property `desiredNodePoolAutoConfigNetworkTags`
1294
1856
  # @return [Google::Apis::ContainerV1::NetworkTags]
1295
1857
  attr_accessor :desired_node_pool_auto_config_network_tags
1296
1858
 
1859
+ # A map of resource manager tag keys and values to be attached to the nodes for
1860
+ # managing Compute Engine firewalls using Network Firewall Policies. Tags must
1861
+ # be according to specifications in https://cloud.google.com/vpc/docs/tags-
1862
+ # firewalls-overview#specifications. A maximum of 5 tag key-value pairs can be
1863
+ # specified. Existing tags will be replaced with new values.
1864
+ # Corresponds to the JSON property `desiredNodePoolAutoConfigResourceManagerTags`
1865
+ # @return [Google::Apis::ContainerV1::ResourceManagerTags]
1866
+ attr_accessor :desired_node_pool_auto_config_resource_manager_tags
1867
+
1297
1868
  # NodePoolAutoscaling contains information required by cluster autoscaler to
1298
1869
  # adjust the size of the node pool to the current cluster usage.
1299
1870
  # Corresponds to the JSON property `desiredNodePoolAutoscaling`
@@ -1328,6 +1899,19 @@ module Google
1328
1899
  # @return [Google::Apis::ContainerV1::NotificationConfig]
1329
1900
  attr_accessor :desired_notification_config
1330
1901
 
1902
+ # ParentProductConfig is the configuration of the parent product of the cluster.
1903
+ # This field is used by Google internal products that are built on top of a GKE
1904
+ # cluster and take the ownership of the cluster.
1905
+ # Corresponds to the JSON property `desiredParentProductConfig`
1906
+ # @return [Google::Apis::ContainerV1::ParentProductConfig]
1907
+ attr_accessor :desired_parent_product_config
1908
+
1909
+ # PodAutoscaling is used for configuration of parameters for workload
1910
+ # autoscaling.
1911
+ # Corresponds to the JSON property `desiredPodAutoscaling`
1912
+ # @return [Google::Apis::ContainerV1::PodAutoscaling]
1913
+ attr_accessor :desired_pod_autoscaling
1914
+
1331
1915
  # Configuration options for private clusters.
1332
1916
  # Corresponds to the JSON property `desiredPrivateClusterConfig`
1333
1917
  # @return [Google::Apis::ContainerV1::PrivateClusterConfig]
@@ -1338,6 +1922,12 @@ module Google
1338
1922
  # @return [String]
1339
1923
  attr_accessor :desired_private_ipv6_google_access
1340
1924
 
1925
+ # RBACBindingConfig allows user to restrict ClusterRoleBindings an RoleBindings
1926
+ # that can be created.
1927
+ # Corresponds to the JSON property `desiredRbacBindingConfig`
1928
+ # @return [Google::Apis::ContainerV1::RbacBindingConfig]
1929
+ attr_accessor :desired_rbac_binding_config
1930
+
1341
1931
  # ReleaseChannel indicates which release channel a cluster is subscribed to.
1342
1932
  # Release channels are arranged in order of risk. When a cluster is subscribed
1343
1933
  # to a release channel, Google maintains both the master version and the node
@@ -1351,6 +1941,17 @@ module Google
1351
1941
  # @return [Google::Apis::ContainerV1::ResourceUsageExportConfig]
1352
1942
  attr_accessor :desired_resource_usage_export_config
1353
1943
 
1944
+ # SecretManagerConfig is config for secret manager enablement.
1945
+ # Corresponds to the JSON property `desiredSecretManagerConfig`
1946
+ # @return [Google::Apis::ContainerV1::SecretManagerConfig]
1947
+ attr_accessor :desired_secret_manager_config
1948
+
1949
+ # SecurityPostureConfig defines the flags needed to enable/disable features for
1950
+ # the Security Posture API.
1951
+ # Corresponds to the JSON property `desiredSecurityPostureConfig`
1952
+ # @return [Google::Apis::ContainerV1::SecurityPostureConfig]
1953
+ attr_accessor :desired_security_posture_config
1954
+
1354
1955
  # Config to block services with externalIPs field.
1355
1956
  # Corresponds to the JSON property `desiredServiceExternalIpsConfig`
1356
1957
  # @return [Google::Apis::ContainerV1::ServiceExternalIPsConfig]
@@ -1380,6 +1981,11 @@ module Google
1380
1981
  # @return [Google::Apis::ContainerV1::WorkloadIdentityConfig]
1381
1982
  attr_accessor :desired_workload_identity_config
1382
1983
 
1984
+ # K8sBetaAPIConfig , configuration for beta APIs
1985
+ # Corresponds to the JSON property `enableK8sBetaApis`
1986
+ # @return [Google::Apis::ContainerV1::K8sBetaApiConfig]
1987
+ attr_accessor :enable_k8s_beta_apis
1988
+
1383
1989
  # The current etag of the cluster. If an etag is provided and does not match the
1384
1990
  # current etag of the cluster, update will be blocked and an ABORTED error will
1385
1991
  # be returned.
@@ -1387,27 +1993,53 @@ module Google
1387
1993
  # @return [String]
1388
1994
  attr_accessor :etag
1389
1995
 
1996
+ # AdditionalPodRangesConfig is the configuration for additional pod secondary
1997
+ # ranges supporting the ClusterUpdate message.
1998
+ # Corresponds to the JSON property `removedAdditionalPodRangesConfig`
1999
+ # @return [Google::Apis::ContainerV1::AdditionalPodRangesConfig]
2000
+ attr_accessor :removed_additional_pod_ranges_config
2001
+
2002
+ # UserManagedKeysConfig holds the resource address to Keys which are used for
2003
+ # signing certs and token that are used for communication within cluster.
2004
+ # Corresponds to the JSON property `userManagedKeysConfig`
2005
+ # @return [Google::Apis::ContainerV1::UserManagedKeysConfig]
2006
+ attr_accessor :user_managed_keys_config
2007
+
1390
2008
  def initialize(**args)
1391
2009
  update!(**args)
1392
2010
  end
1393
2011
 
1394
2012
  # Update properties of this object
1395
2013
  def update!(**args)
2014
+ @additional_pod_ranges_config = args[:additional_pod_ranges_config] if args.key?(:additional_pod_ranges_config)
1396
2015
  @desired_addons_config = args[:desired_addons_config] if args.key?(:desired_addons_config)
1397
2016
  @desired_authenticator_groups_config = args[:desired_authenticator_groups_config] if args.key?(:desired_authenticator_groups_config)
2017
+ @desired_autopilot_workload_policy_config = args[:desired_autopilot_workload_policy_config] if args.key?(:desired_autopilot_workload_policy_config)
1398
2018
  @desired_binary_authorization = args[:desired_binary_authorization] if args.key?(:desired_binary_authorization)
1399
2019
  @desired_cluster_autoscaling = args[:desired_cluster_autoscaling] if args.key?(:desired_cluster_autoscaling)
2020
+ @desired_compliance_posture_config = args[:desired_compliance_posture_config] if args.key?(:desired_compliance_posture_config)
2021
+ @desired_containerd_config = args[:desired_containerd_config] if args.key?(:desired_containerd_config)
2022
+ @desired_control_plane_endpoints_config = args[:desired_control_plane_endpoints_config] if args.key?(:desired_control_plane_endpoints_config)
1400
2023
  @desired_cost_management_config = args[:desired_cost_management_config] if args.key?(:desired_cost_management_config)
1401
2024
  @desired_database_encryption = args[:desired_database_encryption] if args.key?(:desired_database_encryption)
1402
2025
  @desired_datapath_provider = args[:desired_datapath_provider] if args.key?(:desired_datapath_provider)
2026
+ @desired_default_enable_private_nodes = args[:desired_default_enable_private_nodes] if args.key?(:desired_default_enable_private_nodes)
1403
2027
  @desired_default_snat_status = args[:desired_default_snat_status] if args.key?(:desired_default_snat_status)
2028
+ @desired_disable_l4_lb_firewall_reconciliation = args[:desired_disable_l4_lb_firewall_reconciliation] if args.key?(:desired_disable_l4_lb_firewall_reconciliation)
1404
2029
  @desired_dns_config = args[:desired_dns_config] if args.key?(:desired_dns_config)
2030
+ @desired_enable_cilium_clusterwide_network_policy = args[:desired_enable_cilium_clusterwide_network_policy] if args.key?(:desired_enable_cilium_clusterwide_network_policy)
2031
+ @desired_enable_fqdn_network_policy = args[:desired_enable_fqdn_network_policy] if args.key?(:desired_enable_fqdn_network_policy)
2032
+ @desired_enable_multi_networking = args[:desired_enable_multi_networking] if args.key?(:desired_enable_multi_networking)
1405
2033
  @desired_enable_private_endpoint = args[:desired_enable_private_endpoint] if args.key?(:desired_enable_private_endpoint)
2034
+ @desired_enterprise_config = args[:desired_enterprise_config] if args.key?(:desired_enterprise_config)
2035
+ @desired_fleet = args[:desired_fleet] if args.key?(:desired_fleet)
1406
2036
  @desired_gateway_api_config = args[:desired_gateway_api_config] if args.key?(:desired_gateway_api_config)
1407
2037
  @desired_gcfs_config = args[:desired_gcfs_config] if args.key?(:desired_gcfs_config)
1408
2038
  @desired_identity_service_config = args[:desired_identity_service_config] if args.key?(:desired_identity_service_config)
1409
2039
  @desired_image_type = args[:desired_image_type] if args.key?(:desired_image_type)
2040
+ @desired_in_transit_encryption_config = args[:desired_in_transit_encryption_config] if args.key?(:desired_in_transit_encryption_config)
1410
2041
  @desired_intra_node_visibility_config = args[:desired_intra_node_visibility_config] if args.key?(:desired_intra_node_visibility_config)
2042
+ @desired_k8s_beta_apis = args[:desired_k8s_beta_apis] if args.key?(:desired_k8s_beta_apis)
1411
2043
  @desired_l4ilb_subsetting_config = args[:desired_l4ilb_subsetting_config] if args.key?(:desired_l4ilb_subsetting_config)
1412
2044
  @desired_locations = args[:desired_locations] if args.key?(:desired_locations)
1413
2045
  @desired_logging_config = args[:desired_logging_config] if args.key?(:desired_logging_config)
@@ -1417,22 +2049,90 @@ module Google
1417
2049
  @desired_mesh_certificates = args[:desired_mesh_certificates] if args.key?(:desired_mesh_certificates)
1418
2050
  @desired_monitoring_config = args[:desired_monitoring_config] if args.key?(:desired_monitoring_config)
1419
2051
  @desired_monitoring_service = args[:desired_monitoring_service] if args.key?(:desired_monitoring_service)
2052
+ @desired_network_performance_config = args[:desired_network_performance_config] if args.key?(:desired_network_performance_config)
2053
+ @desired_node_kubelet_config = args[:desired_node_kubelet_config] if args.key?(:desired_node_kubelet_config)
2054
+ @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)
2055
+ @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)
1420
2056
  @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)
2057
+ @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)
1421
2058
  @desired_node_pool_autoscaling = args[:desired_node_pool_autoscaling] if args.key?(:desired_node_pool_autoscaling)
1422
2059
  @desired_node_pool_id = args[:desired_node_pool_id] if args.key?(:desired_node_pool_id)
1423
2060
  @desired_node_pool_logging_config = args[:desired_node_pool_logging_config] if args.key?(:desired_node_pool_logging_config)
1424
2061
  @desired_node_version = args[:desired_node_version] if args.key?(:desired_node_version)
1425
2062
  @desired_notification_config = args[:desired_notification_config] if args.key?(:desired_notification_config)
2063
+ @desired_parent_product_config = args[:desired_parent_product_config] if args.key?(:desired_parent_product_config)
2064
+ @desired_pod_autoscaling = args[:desired_pod_autoscaling] if args.key?(:desired_pod_autoscaling)
1426
2065
  @desired_private_cluster_config = args[:desired_private_cluster_config] if args.key?(:desired_private_cluster_config)
1427
2066
  @desired_private_ipv6_google_access = args[:desired_private_ipv6_google_access] if args.key?(:desired_private_ipv6_google_access)
2067
+ @desired_rbac_binding_config = args[:desired_rbac_binding_config] if args.key?(:desired_rbac_binding_config)
1428
2068
  @desired_release_channel = args[:desired_release_channel] if args.key?(:desired_release_channel)
1429
2069
  @desired_resource_usage_export_config = args[:desired_resource_usage_export_config] if args.key?(:desired_resource_usage_export_config)
2070
+ @desired_secret_manager_config = args[:desired_secret_manager_config] if args.key?(:desired_secret_manager_config)
2071
+ @desired_security_posture_config = args[:desired_security_posture_config] if args.key?(:desired_security_posture_config)
1430
2072
  @desired_service_external_ips_config = args[:desired_service_external_ips_config] if args.key?(:desired_service_external_ips_config)
1431
2073
  @desired_shielded_nodes = args[:desired_shielded_nodes] if args.key?(:desired_shielded_nodes)
1432
2074
  @desired_stack_type = args[:desired_stack_type] if args.key?(:desired_stack_type)
1433
2075
  @desired_vertical_pod_autoscaling = args[:desired_vertical_pod_autoscaling] if args.key?(:desired_vertical_pod_autoscaling)
1434
2076
  @desired_workload_identity_config = args[:desired_workload_identity_config] if args.key?(:desired_workload_identity_config)
2077
+ @enable_k8s_beta_apis = args[:enable_k8s_beta_apis] if args.key?(:enable_k8s_beta_apis)
1435
2078
  @etag = args[:etag] if args.key?(:etag)
2079
+ @removed_additional_pod_ranges_config = args[:removed_additional_pod_ranges_config] if args.key?(:removed_additional_pod_ranges_config)
2080
+ @user_managed_keys_config = args[:user_managed_keys_config] if args.key?(:user_managed_keys_config)
2081
+ end
2082
+ end
2083
+
2084
+ # ClusterUpgradeInfo contains the upgrade information of a cluster.
2085
+ class ClusterUpgradeInfo
2086
+ include Google::Apis::Core::Hashable
2087
+
2088
+ # The auto upgrade status.
2089
+ # Corresponds to the JSON property `autoUpgradeStatus`
2090
+ # @return [Array<String>]
2091
+ attr_accessor :auto_upgrade_status
2092
+
2093
+ # The cluster's current minor version's end of extended support timestamp.
2094
+ # Corresponds to the JSON property `endOfExtendedSupportTimestamp`
2095
+ # @return [String]
2096
+ attr_accessor :end_of_extended_support_timestamp
2097
+
2098
+ # The cluster's current minor version's end of standard support timestamp.
2099
+ # Corresponds to the JSON property `endOfStandardSupportTimestamp`
2100
+ # @return [String]
2101
+ attr_accessor :end_of_standard_support_timestamp
2102
+
2103
+ # minor_target_version indicates the target version for minor upgrade.
2104
+ # Corresponds to the JSON property `minorTargetVersion`
2105
+ # @return [String]
2106
+ attr_accessor :minor_target_version
2107
+
2108
+ # patch_target_version indicates the target version for patch upgrade.
2109
+ # Corresponds to the JSON property `patchTargetVersion`
2110
+ # @return [String]
2111
+ attr_accessor :patch_target_version
2112
+
2113
+ # The auto upgrade paused reason.
2114
+ # Corresponds to the JSON property `pausedReason`
2115
+ # @return [Array<String>]
2116
+ attr_accessor :paused_reason
2117
+
2118
+ # The list of past auto upgrades.
2119
+ # Corresponds to the JSON property `upgradeDetails`
2120
+ # @return [Array<Google::Apis::ContainerV1::UpgradeDetails>]
2121
+ attr_accessor :upgrade_details
2122
+
2123
+ def initialize(**args)
2124
+ update!(**args)
2125
+ end
2126
+
2127
+ # Update properties of this object
2128
+ def update!(**args)
2129
+ @auto_upgrade_status = args[:auto_upgrade_status] if args.key?(:auto_upgrade_status)
2130
+ @end_of_extended_support_timestamp = args[:end_of_extended_support_timestamp] if args.key?(:end_of_extended_support_timestamp)
2131
+ @end_of_standard_support_timestamp = args[:end_of_standard_support_timestamp] if args.key?(:end_of_standard_support_timestamp)
2132
+ @minor_target_version = args[:minor_target_version] if args.key?(:minor_target_version)
2133
+ @patch_target_version = args[:patch_target_version] if args.key?(:patch_target_version)
2134
+ @paused_reason = args[:paused_reason] if args.key?(:paused_reason)
2135
+ @upgrade_details = args[:upgrade_details] if args.key?(:upgrade_details)
1436
2136
  end
1437
2137
  end
1438
2138
 
@@ -1493,11 +2193,61 @@ module Google
1493
2193
  end
1494
2194
  end
1495
2195
 
2196
+ # CompliancePostureConfig defines the settings needed to enable/disable features
2197
+ # for the Compliance Posture.
2198
+ class CompliancePostureConfig
2199
+ include Google::Apis::Core::Hashable
2200
+
2201
+ # List of enabled compliance standards.
2202
+ # Corresponds to the JSON property `complianceStandards`
2203
+ # @return [Array<Google::Apis::ContainerV1::ComplianceStandard>]
2204
+ attr_accessor :compliance_standards
2205
+
2206
+ # Defines the enablement mode for Compliance Posture.
2207
+ # Corresponds to the JSON property `mode`
2208
+ # @return [String]
2209
+ attr_accessor :mode
2210
+
2211
+ def initialize(**args)
2212
+ update!(**args)
2213
+ end
2214
+
2215
+ # Update properties of this object
2216
+ def update!(**args)
2217
+ @compliance_standards = args[:compliance_standards] if args.key?(:compliance_standards)
2218
+ @mode = args[:mode] if args.key?(:mode)
2219
+ end
2220
+ end
2221
+
2222
+ # Defines the details of a compliance standard.
2223
+ class ComplianceStandard
2224
+ include Google::Apis::Core::Hashable
2225
+
2226
+ # Name of the compliance standard.
2227
+ # Corresponds to the JSON property `standard`
2228
+ # @return [String]
2229
+ attr_accessor :standard
2230
+
2231
+ def initialize(**args)
2232
+ update!(**args)
2233
+ end
2234
+
2235
+ # Update properties of this object
2236
+ def update!(**args)
2237
+ @standard = args[:standard] if args.key?(:standard)
2238
+ end
2239
+ end
2240
+
1496
2241
  # ConfidentialNodes is configuration for the confidential nodes feature, which
1497
2242
  # makes nodes run on confidential VMs.
1498
2243
  class ConfidentialNodes
1499
2244
  include Google::Apis::Core::Hashable
1500
2245
 
2246
+ # Defines the type of technology used by the confidential node.
2247
+ # Corresponds to the JSON property `confidentialInstanceType`
2248
+ # @return [String]
2249
+ attr_accessor :confidential_instance_type
2250
+
1501
2251
  # Whether Confidential Nodes feature is enabled.
1502
2252
  # Corresponds to the JSON property `enabled`
1503
2253
  # @return [Boolean]
@@ -1510,6 +2260,7 @@ module Google
1510
2260
 
1511
2261
  # Update properties of this object
1512
2262
  def update!(**args)
2263
+ @confidential_instance_type = args[:confidential_instance_type] if args.key?(:confidential_instance_type)
1513
2264
  @enabled = args[:enabled] if args.key?(:enabled)
1514
2265
  end
1515
2266
  end
@@ -1555,6 +2306,51 @@ module Google
1555
2306
  end
1556
2307
  end
1557
2308
 
2309
+ # ContainerdConfig contains configuration to customize containerd.
2310
+ class ContainerdConfig
2311
+ include Google::Apis::Core::Hashable
2312
+
2313
+ # PrivateRegistryAccessConfig contains access configuration for private
2314
+ # container registries.
2315
+ # Corresponds to the JSON property `privateRegistryAccessConfig`
2316
+ # @return [Google::Apis::ContainerV1::PrivateRegistryAccessConfig]
2317
+ attr_accessor :private_registry_access_config
2318
+
2319
+ def initialize(**args)
2320
+ update!(**args)
2321
+ end
2322
+
2323
+ # Update properties of this object
2324
+ def update!(**args)
2325
+ @private_registry_access_config = args[:private_registry_access_config] if args.key?(:private_registry_access_config)
2326
+ end
2327
+ end
2328
+
2329
+ # Configuration for all of the cluster's control plane endpoints.
2330
+ class ControlPlaneEndpointsConfig
2331
+ include Google::Apis::Core::Hashable
2332
+
2333
+ # Describes the configuration of a DNS endpoint.
2334
+ # Corresponds to the JSON property `dnsEndpointConfig`
2335
+ # @return [Google::Apis::ContainerV1::DnsEndpointConfig]
2336
+ attr_accessor :dns_endpoint_config
2337
+
2338
+ # IP endpoints configuration.
2339
+ # Corresponds to the JSON property `ipEndpointsConfig`
2340
+ # @return [Google::Apis::ContainerV1::IpEndpointsConfig]
2341
+ attr_accessor :ip_endpoints_config
2342
+
2343
+ def initialize(**args)
2344
+ update!(**args)
2345
+ end
2346
+
2347
+ # Update properties of this object
2348
+ def update!(**args)
2349
+ @dns_endpoint_config = args[:dns_endpoint_config] if args.key?(:dns_endpoint_config)
2350
+ @ip_endpoints_config = args[:ip_endpoints_config] if args.key?(:ip_endpoints_config)
2351
+ end
2352
+ end
2353
+
1558
2354
  # Configuration for fine-grained cost management feature.
1559
2355
  class CostManagementConfig
1560
2356
  include Google::Apis::Core::Hashable
@@ -1675,6 +2471,11 @@ module Google
1675
2471
  class DnsConfig
1676
2472
  include Google::Apis::Core::Hashable
1677
2473
 
2474
+ # Optional. The domain used in Additive VPC scope.
2475
+ # Corresponds to the JSON property `additiveVpcScopeDnsDomain`
2476
+ # @return [String]
2477
+ attr_accessor :additive_vpc_scope_dns_domain
2478
+
1678
2479
  # cluster_dns indicates which in-cluster DNS provider should be used.
1679
2480
  # Corresponds to the JSON property `clusterDns`
1680
2481
  # @return [String]
@@ -1696,17 +2497,48 @@ module Google
1696
2497
 
1697
2498
  # Update properties of this object
1698
2499
  def update!(**args)
2500
+ @additive_vpc_scope_dns_domain = args[:additive_vpc_scope_dns_domain] if args.key?(:additive_vpc_scope_dns_domain)
1699
2501
  @cluster_dns = args[:cluster_dns] if args.key?(:cluster_dns)
1700
2502
  @cluster_dns_domain = args[:cluster_dns_domain] if args.key?(:cluster_dns_domain)
1701
2503
  @cluster_dns_scope = args[:cluster_dns_scope] if args.key?(:cluster_dns_scope)
1702
2504
  end
1703
2505
  end
1704
2506
 
2507
+ # Describes the configuration of a DNS endpoint.
2508
+ class DnsEndpointConfig
2509
+ include Google::Apis::Core::Hashable
2510
+
2511
+ # Controls whether user traffic is allowed over this endpoint. Note that GCP-
2512
+ # managed services may still use the endpoint even if this is false.
2513
+ # Corresponds to the JSON property `allowExternalTraffic`
2514
+ # @return [Boolean]
2515
+ attr_accessor :allow_external_traffic
2516
+ alias_method :allow_external_traffic?, :allow_external_traffic
2517
+
2518
+ # Output only. The cluster's DNS endpoint configuration. A DNS format address.
2519
+ # This is accessible from the public internet. Ex: uid.us-central1.gke.goog.
2520
+ # Always present, but the behavior may change according to the value of
2521
+ # DNSEndpointConfig.allow_external_traffic.
2522
+ # Corresponds to the JSON property `endpoint`
2523
+ # @return [String]
2524
+ attr_accessor :endpoint
2525
+
2526
+ def initialize(**args)
2527
+ update!(**args)
2528
+ end
2529
+
2530
+ # Update properties of this object
2531
+ def update!(**args)
2532
+ @allow_external_traffic = args[:allow_external_traffic] if args.key?(:allow_external_traffic)
2533
+ @endpoint = args[:endpoint] if args.key?(:endpoint)
2534
+ end
2535
+ end
2536
+
1705
2537
  # Time window specified for daily maintenance operations.
1706
2538
  class DailyMaintenanceWindow
1707
2539
  include Google::Apis::Core::Hashable
1708
2540
 
1709
- # [Output only] Duration of the time window, automatically chosen to be smallest
2541
+ # Output only. Duration of the time window, automatically chosen to be smallest
1710
2542
  # possible in the given scenario. Duration will be in [RFC3339](https://www.ietf.
1711
2543
  # org/rfc/rfc3339.txt) format "PTnHnMnS".
1712
2544
  # Corresponds to the JSON property `duration`
@@ -1735,13 +2567,29 @@ module Google
1735
2567
  class DatabaseEncryption
1736
2568
  include Google::Apis::Core::Hashable
1737
2569
 
2570
+ # Output only. The current state of etcd encryption.
2571
+ # Corresponds to the JSON property `currentState`
2572
+ # @return [String]
2573
+ attr_accessor :current_state
2574
+
2575
+ # Output only. Keys in use by the cluster for decrypting existing objects, in
2576
+ # addition to the key in `key_name`. Each item is a CloudKMS key resource.
2577
+ # Corresponds to the JSON property `decryptionKeys`
2578
+ # @return [Array<String>]
2579
+ attr_accessor :decryption_keys
2580
+
1738
2581
  # Name of CloudKMS key to use for the encryption of secrets in etcd. Ex.
1739
2582
  # projects/my-project/locations/global/keyRings/my-ring/cryptoKeys/my-key
1740
2583
  # Corresponds to the JSON property `keyName`
1741
2584
  # @return [String]
1742
2585
  attr_accessor :key_name
1743
2586
 
1744
- # Denotes the state of etcd encryption.
2587
+ # Output only. Records errors seen during DatabaseEncryption update operations.
2588
+ # Corresponds to the JSON property `lastOperationErrors`
2589
+ # @return [Array<Google::Apis::ContainerV1::OperationError>]
2590
+ attr_accessor :last_operation_errors
2591
+
2592
+ # The desired state of etcd encryption.
1745
2593
  # Corresponds to the JSON property `state`
1746
2594
  # @return [String]
1747
2595
  attr_accessor :state
@@ -1752,7 +2600,10 @@ module Google
1752
2600
 
1753
2601
  # Update properties of this object
1754
2602
  def update!(**args)
2603
+ @current_state = args[:current_state] if args.key?(:current_state)
2604
+ @decryption_keys = args[:decryption_keys] if args.key?(:decryption_keys)
1755
2605
  @key_name = args[:key_name] if args.key?(:key_name)
2606
+ @last_operation_errors = args[:last_operation_errors] if args.key?(:last_operation_errors)
1756
2607
  @state = args[:state] if args.key?(:state)
1757
2608
  end
1758
2609
  end
@@ -1778,6 +2629,25 @@ module Google
1778
2629
  end
1779
2630
  end
1780
2631
 
2632
+ # DesiredEnterpriseConfig is a wrapper used for updating enterprise_config.
2633
+ class DesiredEnterpriseConfig
2634
+ include Google::Apis::Core::Hashable
2635
+
2636
+ # desired_tier specifies the desired tier of the cluster.
2637
+ # Corresponds to the JSON property `desiredTier`
2638
+ # @return [String]
2639
+ attr_accessor :desired_tier
2640
+
2641
+ def initialize(**args)
2642
+ update!(**args)
2643
+ end
2644
+
2645
+ # Update properties of this object
2646
+ def update!(**args)
2647
+ @desired_tier = args[:desired_tier] if args.key?(:desired_tier)
2648
+ end
2649
+ end
2650
+
1781
2651
  # Configuration for NodeLocal DNSCache
1782
2652
  class DnsCacheConfig
1783
2653
  include Google::Apis::Core::Hashable
@@ -1814,16 +2684,53 @@ module Google
1814
2684
  end
1815
2685
  end
1816
2686
 
2687
+ # EnterpriseConfig is the cluster enterprise configuration.
2688
+ class EnterpriseConfig
2689
+ include Google::Apis::Core::Hashable
2690
+
2691
+ # Output only. cluster_tier indicates the effective tier of the cluster.
2692
+ # Corresponds to the JSON property `clusterTier`
2693
+ # @return [String]
2694
+ attr_accessor :cluster_tier
2695
+
2696
+ # desired_tier specifies the desired tier of the cluster.
2697
+ # Corresponds to the JSON property `desiredTier`
2698
+ # @return [String]
2699
+ attr_accessor :desired_tier
2700
+
2701
+ def initialize(**args)
2702
+ update!(**args)
2703
+ end
2704
+
2705
+ # Update properties of this object
2706
+ def update!(**args)
2707
+ @cluster_tier = args[:cluster_tier] if args.key?(:cluster_tier)
2708
+ @desired_tier = args[:desired_tier] if args.key?(:desired_tier)
2709
+ end
2710
+ end
2711
+
1817
2712
  # EphemeralStorageLocalSsdConfig contains configuration for the node ephemeral
1818
- # storage using Local SSD.
2713
+ # storage using Local SSDs.
1819
2714
  class EphemeralStorageLocalSsdConfig
1820
2715
  include Google::Apis::Core::Hashable
1821
2716
 
1822
- # Number of local SSDs to use to back ephemeral storage. Uses NVMe interfaces.
1823
- # Each local SSD is 375 GB in size. If zero, it means to disable using local
1824
- # SSDs as ephemeral storage. The limit for this value is dependent upon the
1825
- # maximum number of disks available on a machine per zone. See: https://cloud.
1826
- # google.com/compute/docs/disks/local-ssd for more information.
2717
+ # Number of local SSDs to use for GKE Data Cache.
2718
+ # Corresponds to the JSON property `dataCacheCount`
2719
+ # @return [Fixnum]
2720
+ attr_accessor :data_cache_count
2721
+
2722
+ # Number of local SSDs to use to back ephemeral storage. Uses NVMe interfaces. A
2723
+ # zero (or unset) value has different meanings depending on machine type being
2724
+ # used: 1. For pre-Gen3 machines, which support flexible numbers of local ssds,
2725
+ # zero (or unset) means to disable using local SSDs as ephemeral storage. The
2726
+ # limit for this value is dependent upon the maximum number of disk available on
2727
+ # a machine per zone. See: https://cloud.google.com/compute/docs/disks/local-ssd
2728
+ # for more information. 2. For Gen3 machines which dictate a specific number of
2729
+ # local ssds, zero (or unset) means to use the default number of local ssds that
2730
+ # goes with that machine type. For example, for a c3-standard-8-lssd machine, 2
2731
+ # local ssds would be provisioned. For c3-standard-8 (which doesn't support
2732
+ # local ssds), 0 will be provisioned. See https://cloud.google.com/compute/docs/
2733
+ # disks/local-ssd#choose_number_local_ssds for more info.
1827
2734
  # Corresponds to the JSON property `localSsdCount`
1828
2735
  # @return [Fixnum]
1829
2736
  attr_accessor :local_ssd_count
@@ -1834,6 +2741,7 @@ module Google
1834
2741
 
1835
2742
  # Update properties of this object
1836
2743
  def update!(**args)
2744
+ @data_cache_count = args[:data_cache_count] if args.key?(:data_cache_count)
1837
2745
  @local_ssd_count = args[:local_ssd_count] if args.key?(:local_ssd_count)
1838
2746
  end
1839
2747
  end
@@ -1880,6 +2788,83 @@ module Google
1880
2788
  end
1881
2789
  end
1882
2790
 
2791
+ # Fleet is the fleet configuration for the cluster.
2792
+ class Fleet
2793
+ include Google::Apis::Core::Hashable
2794
+
2795
+ # Output only. The full resource name of the registered fleet membership of the
2796
+ # cluster, in the format `//gkehub.googleapis.com/projects/*/locations/*/
2797
+ # memberships/*`.
2798
+ # Corresponds to the JSON property `membership`
2799
+ # @return [String]
2800
+ attr_accessor :membership
2801
+
2802
+ # Output only. Whether the cluster has been registered through the fleet API.
2803
+ # Corresponds to the JSON property `preRegistered`
2804
+ # @return [Boolean]
2805
+ attr_accessor :pre_registered
2806
+ alias_method :pre_registered?, :pre_registered
2807
+
2808
+ # The Fleet host project(project ID or project number) where this cluster will
2809
+ # be registered to. This field cannot be changed after the cluster has been
2810
+ # registered.
2811
+ # Corresponds to the JSON property `project`
2812
+ # @return [String]
2813
+ attr_accessor :project
2814
+
2815
+ def initialize(**args)
2816
+ update!(**args)
2817
+ end
2818
+
2819
+ # Update properties of this object
2820
+ def update!(**args)
2821
+ @membership = args[:membership] if args.key?(:membership)
2822
+ @pre_registered = args[:pre_registered] if args.key?(:pre_registered)
2823
+ @project = args[:project] if args.key?(:project)
2824
+ end
2825
+ end
2826
+
2827
+ # GCPSecretManagerCertificateConfig configures a secret from [Google Secret
2828
+ # Manager](https://cloud.google.com/secret-manager).
2829
+ class GcpSecretManagerCertificateConfig
2830
+ include Google::Apis::Core::Hashable
2831
+
2832
+ # Secret URI, in the form "projects/$PROJECT_ID/secrets/$SECRET_NAME/versions/$
2833
+ # VERSION". Version can be fixed (e.g. "2") or "latest"
2834
+ # Corresponds to the JSON property `secretUri`
2835
+ # @return [String]
2836
+ attr_accessor :secret_uri
2837
+
2838
+ def initialize(**args)
2839
+ update!(**args)
2840
+ end
2841
+
2842
+ # Update properties of this object
2843
+ def update!(**args)
2844
+ @secret_uri = args[:secret_uri] if args.key?(:secret_uri)
2845
+ end
2846
+ end
2847
+
2848
+ # GPUDriverInstallationConfig specifies the version of GPU driver to be auto
2849
+ # installed.
2850
+ class GpuDriverInstallationConfig
2851
+ include Google::Apis::Core::Hashable
2852
+
2853
+ # Mode for how the GPU driver is installed.
2854
+ # Corresponds to the JSON property `gpuDriverVersion`
2855
+ # @return [String]
2856
+ attr_accessor :gpu_driver_version
2857
+
2858
+ def initialize(**args)
2859
+ update!(**args)
2860
+ end
2861
+
2862
+ # Update properties of this object
2863
+ def update!(**args)
2864
+ @gpu_driver_version = args[:gpu_driver_version] if args.key?(:gpu_driver_version)
2865
+ end
2866
+ end
2867
+
1883
2868
  # GPUSharingConfig represents the GPU sharing configuration for Hardware
1884
2869
  # Accelerators.
1885
2870
  class GpuSharingConfig
@@ -1986,7 +2971,27 @@ module Google
1986
2971
  end
1987
2972
  end
1988
2973
 
1989
- # GetJSONWebKeysResponse is a valid JSON Web Key Set as specififed in rfc 7517
2974
+ # Configuration for the Cloud Storage Fuse CSI driver.
2975
+ class GcsFuseCsiDriverConfig
2976
+ include Google::Apis::Core::Hashable
2977
+
2978
+ # Whether the Cloud Storage Fuse CSI driver is enabled for this cluster.
2979
+ # Corresponds to the JSON property `enabled`
2980
+ # @return [Boolean]
2981
+ attr_accessor :enabled
2982
+ alias_method :enabled?, :enabled
2983
+
2984
+ def initialize(**args)
2985
+ update!(**args)
2986
+ end
2987
+
2988
+ # Update properties of this object
2989
+ def update!(**args)
2990
+ @enabled = args[:enabled] if args.key?(:enabled)
2991
+ end
2992
+ end
2993
+
2994
+ # GetJSONWebKeysResponse is a valid JSON Web Key Set as specified in rfc 7517
1990
2995
  class GetJsonWebKeysResponse
1991
2996
  include Google::Apis::Core::Hashable
1992
2997
 
@@ -2169,6 +3174,31 @@ module Google
2169
3174
  end
2170
3175
  end
2171
3176
 
3177
+ # Hugepages amount in both 2m and 1g size
3178
+ class HugepagesConfig
3179
+ include Google::Apis::Core::Hashable
3180
+
3181
+ # Optional. Amount of 1G hugepages
3182
+ # Corresponds to the JSON property `hugepageSize1g`
3183
+ # @return [Fixnum]
3184
+ attr_accessor :hugepage_size1g
3185
+
3186
+ # Optional. Amount of 2M hugepages
3187
+ # Corresponds to the JSON property `hugepageSize2m`
3188
+ # @return [Fixnum]
3189
+ attr_accessor :hugepage_size2m
3190
+
3191
+ def initialize(**args)
3192
+ update!(**args)
3193
+ end
3194
+
3195
+ # Update properties of this object
3196
+ def update!(**args)
3197
+ @hugepage_size1g = args[:hugepage_size1g] if args.key?(:hugepage_size1g)
3198
+ @hugepage_size2m = args[:hugepage_size2m] if args.key?(:hugepage_size2m)
3199
+ end
3200
+ end
3201
+
2172
3202
  # ILBSubsettingConfig contains the desired config of L4 Internal LoadBalancer
2173
3203
  # subsetting on this cluster.
2174
3204
  class IlbSubsettingConfig
@@ -2194,6 +3224,12 @@ module Google
2194
3224
  class IpAllocationPolicy
2195
3225
  include Google::Apis::Core::Hashable
2196
3226
 
3227
+ # AdditionalPodRangesConfig is the configuration for additional pod secondary
3228
+ # ranges supporting the ClusterUpdate message.
3229
+ # Corresponds to the JSON property `additionalPodRangesConfig`
3230
+ # @return [Google::Apis::ContainerV1::AdditionalPodRangesConfig]
3231
+ attr_accessor :additional_pod_ranges_config
3232
+
2197
3233
  # This field is deprecated, use cluster_ipv4_cidr_block.
2198
3234
  # Corresponds to the JSON property `clusterIpv4Cidr`
2199
3235
  # @return [String]
@@ -2226,6 +3262,13 @@ module Google
2226
3262
  attr_accessor :create_subnetwork
2227
3263
  alias_method :create_subnetwork?, :create_subnetwork
2228
3264
 
3265
+ # Output only. The utilization of the cluster default IPv4 range for the pod.
3266
+ # The ratio is Usage/[Total number of IPs in the secondary range], Usage=
3267
+ # numNodes*numZones*podIPsPerNode.
3268
+ # Corresponds to the JSON property `defaultPodIpv4RangeUtilization`
3269
+ # @return [Float]
3270
+ attr_accessor :default_pod_ipv4_range_utilization
3271
+
2229
3272
  # The ipv6 access type (internal or external) when create_subnetwork is true
2230
3273
  # Corresponds to the JSON property `ipv6AccessType`
2231
3274
  # @return [String]
@@ -2247,6 +3290,11 @@ module Google
2247
3290
  # @return [String]
2248
3291
  attr_accessor :node_ipv4_cidr_block
2249
3292
 
3293
+ # [PRIVATE FIELD] Config for pod CIDR size overprovisioning.
3294
+ # Corresponds to the JSON property `podCidrOverprovisionConfig`
3295
+ # @return [Google::Apis::ContainerV1::PodCidrOverprovisionConfig]
3296
+ attr_accessor :pod_cidr_overprovision_config
3297
+
2250
3298
  # This field is deprecated, use services_ipv4_cidr_block.
2251
3299
  # Corresponds to the JSON property `servicesIpv4Cidr`
2252
3300
  # @return [String]
@@ -2264,6 +3312,11 @@ module Google
2264
3312
  # @return [String]
2265
3313
  attr_accessor :services_ipv4_cidr_block
2266
3314
 
3315
+ # Output only. The services IPv6 CIDR block for the cluster.
3316
+ # Corresponds to the JSON property `servicesIpv6CidrBlock`
3317
+ # @return [String]
3318
+ attr_accessor :services_ipv6_cidr_block
3319
+
2267
3320
  # The name of the secondary range to be used as for the services CIDR block. The
2268
3321
  # secondary range will be used for service ClusterIPs. This must be an existing
2269
3322
  # secondary range associated with the cluster subnetwork. This field is only
@@ -2277,6 +3330,11 @@ module Google
2277
3330
  # @return [String]
2278
3331
  attr_accessor :stack_type
2279
3332
 
3333
+ # Output only. The subnet's IPv6 CIDR block used by nodes and pods.
3334
+ # Corresponds to the JSON property `subnetIpv6CidrBlock`
3335
+ # @return [String]
3336
+ attr_accessor :subnet_ipv6_cidr_block
3337
+
2280
3338
  # A custom subnetwork name to be used if `create_subnetwork` is true. If this
2281
3339
  # field is empty, then an automatic name will be chosen for the new subnetwork.
2282
3340
  # Corresponds to the JSON property `subnetworkName`
@@ -2290,7 +3348,8 @@ module Google
2290
3348
  # specific netmask. Set to a [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-
2291
3349
  # Domain_Routing) notation (e.g. `10.96.0.0/14`) from the RFC-1918 private
2292
3350
  # networks (e.g. `10.0.0.0/8`, `172.16.0.0/12`, `192.168.0.0/16`) to pick a
2293
- # specific range to use.
3351
+ # specific range to use. This field is deprecated due to the deprecation of 2VM
3352
+ # TPU. The end of life date for 2VM TPU is 2025-04-25.
2294
3353
  # Corresponds to the JSON property `tpuIpv4CidrBlock`
2295
3354
  # @return [String]
2296
3355
  attr_accessor :tpu_ipv4_cidr_block
@@ -2319,17 +3378,22 @@ module Google
2319
3378
 
2320
3379
  # Update properties of this object
2321
3380
  def update!(**args)
3381
+ @additional_pod_ranges_config = args[:additional_pod_ranges_config] if args.key?(:additional_pod_ranges_config)
2322
3382
  @cluster_ipv4_cidr = args[:cluster_ipv4_cidr] if args.key?(:cluster_ipv4_cidr)
2323
3383
  @cluster_ipv4_cidr_block = args[:cluster_ipv4_cidr_block] if args.key?(:cluster_ipv4_cidr_block)
2324
3384
  @cluster_secondary_range_name = args[:cluster_secondary_range_name] if args.key?(:cluster_secondary_range_name)
2325
3385
  @create_subnetwork = args[:create_subnetwork] if args.key?(:create_subnetwork)
3386
+ @default_pod_ipv4_range_utilization = args[:default_pod_ipv4_range_utilization] if args.key?(:default_pod_ipv4_range_utilization)
2326
3387
  @ipv6_access_type = args[:ipv6_access_type] if args.key?(:ipv6_access_type)
2327
3388
  @node_ipv4_cidr = args[:node_ipv4_cidr] if args.key?(:node_ipv4_cidr)
2328
3389
  @node_ipv4_cidr_block = args[:node_ipv4_cidr_block] if args.key?(:node_ipv4_cidr_block)
3390
+ @pod_cidr_overprovision_config = args[:pod_cidr_overprovision_config] if args.key?(:pod_cidr_overprovision_config)
2329
3391
  @services_ipv4_cidr = args[:services_ipv4_cidr] if args.key?(:services_ipv4_cidr)
2330
3392
  @services_ipv4_cidr_block = args[:services_ipv4_cidr_block] if args.key?(:services_ipv4_cidr_block)
3393
+ @services_ipv6_cidr_block = args[:services_ipv6_cidr_block] if args.key?(:services_ipv6_cidr_block)
2331
3394
  @services_secondary_range_name = args[:services_secondary_range_name] if args.key?(:services_secondary_range_name)
2332
3395
  @stack_type = args[:stack_type] if args.key?(:stack_type)
3396
+ @subnet_ipv6_cidr_block = args[:subnet_ipv6_cidr_block] if args.key?(:subnet_ipv6_cidr_block)
2333
3397
  @subnetwork_name = args[:subnetwork_name] if args.key?(:subnetwork_name)
2334
3398
  @tpu_ipv4_cidr_block = args[:tpu_ipv4_cidr_block] if args.key?(:tpu_ipv4_cidr_block)
2335
3399
  @use_ip_aliases = args[:use_ip_aliases] if args.key?(:use_ip_aliases)
@@ -2337,25 +3401,95 @@ module Google
2337
3401
  end
2338
3402
  end
2339
3403
 
2340
- # IdentityServiceConfig is configuration for Identity Service which allows
2341
- # customers to use external identity providers with the K8S API
2342
- class IdentityServiceConfig
3404
+ # IP endpoints configuration.
3405
+ class IpEndpointsConfig
2343
3406
  include Google::Apis::Core::Hashable
2344
3407
 
2345
- # Whether to enable the Identity Service component
3408
+ # Configuration options for the master authorized networks feature. Enabled
3409
+ # master authorized networks will disallow all external traffic to access
3410
+ # Kubernetes master through HTTPS except traffic from the given CIDR blocks,
3411
+ # Google Compute Engine Public IPs and Google Prod IPs.
3412
+ # Corresponds to the JSON property `authorizedNetworksConfig`
3413
+ # @return [Google::Apis::ContainerV1::MasterAuthorizedNetworksConfig]
3414
+ attr_accessor :authorized_networks_config
3415
+
3416
+ # Controls whether the control plane allows access through a public IP. It is
3417
+ # invalid to specify both PrivateClusterConfig.enablePrivateEndpoint and this
3418
+ # field at the same time.
3419
+ # Corresponds to the JSON property `enablePublicEndpoint`
3420
+ # @return [Boolean]
3421
+ attr_accessor :enable_public_endpoint
3422
+ alias_method :enable_public_endpoint?, :enable_public_endpoint
3423
+
3424
+ # Controls whether to allow direct IP access.
2346
3425
  # Corresponds to the JSON property `enabled`
2347
3426
  # @return [Boolean]
2348
3427
  attr_accessor :enabled
2349
3428
  alias_method :enabled?, :enabled
2350
3429
 
3430
+ # Controls whether the control plane's private endpoint is accessible from
3431
+ # sources in other regions. It is invalid to specify both
3432
+ # PrivateClusterMasterGlobalAccessConfig.enabled and this field at the same time.
3433
+ # Corresponds to the JSON property `globalAccess`
3434
+ # @return [Boolean]
3435
+ attr_accessor :global_access
3436
+ alias_method :global_access?, :global_access
3437
+
3438
+ # Output only. The internal IP address of this cluster's control plane. Only
3439
+ # populated if enabled.
3440
+ # Corresponds to the JSON property `privateEndpoint`
3441
+ # @return [String]
3442
+ attr_accessor :private_endpoint
3443
+
3444
+ # Subnet to provision the master's private endpoint during cluster creation.
3445
+ # Specified in projects/*/regions/*/subnetworks/* format. It is invalid to
3446
+ # specify both PrivateClusterConfig.privateEndpointSubnetwork and this field at
3447
+ # the same time.
3448
+ # Corresponds to the JSON property `privateEndpointSubnetwork`
3449
+ # @return [String]
3450
+ attr_accessor :private_endpoint_subnetwork
3451
+
3452
+ # Output only. The external IP address of this cluster's control plane. Only
3453
+ # populated if enabled.
3454
+ # Corresponds to the JSON property `publicEndpoint`
3455
+ # @return [String]
3456
+ attr_accessor :public_endpoint
3457
+
2351
3458
  def initialize(**args)
2352
3459
  update!(**args)
2353
3460
  end
2354
3461
 
2355
3462
  # Update properties of this object
2356
3463
  def update!(**args)
3464
+ @authorized_networks_config = args[:authorized_networks_config] if args.key?(:authorized_networks_config)
3465
+ @enable_public_endpoint = args[:enable_public_endpoint] if args.key?(:enable_public_endpoint)
2357
3466
  @enabled = args[:enabled] if args.key?(:enabled)
2358
- end
3467
+ @global_access = args[:global_access] if args.key?(:global_access)
3468
+ @private_endpoint = args[:private_endpoint] if args.key?(:private_endpoint)
3469
+ @private_endpoint_subnetwork = args[:private_endpoint_subnetwork] if args.key?(:private_endpoint_subnetwork)
3470
+ @public_endpoint = args[:public_endpoint] if args.key?(:public_endpoint)
3471
+ end
3472
+ end
3473
+
3474
+ # IdentityServiceConfig is configuration for Identity Service which allows
3475
+ # customers to use external identity providers with the K8S API
3476
+ class IdentityServiceConfig
3477
+ include Google::Apis::Core::Hashable
3478
+
3479
+ # Whether to enable the Identity Service component
3480
+ # Corresponds to the JSON property `enabled`
3481
+ # @return [Boolean]
3482
+ attr_accessor :enabled
3483
+ alias_method :enabled?, :enabled
3484
+
3485
+ def initialize(**args)
3486
+ update!(**args)
3487
+ end
3488
+
3489
+ # Update properties of this object
3490
+ def update!(**args)
3491
+ @enabled = args[:enabled] if args.key?(:enabled)
3492
+ end
2359
3493
  end
2360
3494
 
2361
3495
  # IntraNodeVisibilityConfig contains the desired config of the intra-node
@@ -2446,6 +3580,25 @@ module Google
2446
3580
  end
2447
3581
  end
2448
3582
 
3583
+ # K8sBetaAPIConfig , configuration for beta APIs
3584
+ class K8sBetaApiConfig
3585
+ include Google::Apis::Core::Hashable
3586
+
3587
+ # Enabled k8s beta APIs.
3588
+ # Corresponds to the JSON property `enabledApis`
3589
+ # @return [Array<String>]
3590
+ attr_accessor :enabled_apis
3591
+
3592
+ def initialize(**args)
3593
+ update!(**args)
3594
+ end
3595
+
3596
+ # Update properties of this object
3597
+ def update!(**args)
3598
+ @enabled_apis = args[:enabled_apis] if args.key?(:enabled_apis)
3599
+ end
3600
+ end
3601
+
2449
3602
  # Configuration for the Kubernetes Dashboard.
2450
3603
  class KubernetesDashboard
2451
3604
  include Google::Apis::Core::Hashable
@@ -2498,11 +3651,21 @@ module Google
2498
3651
  # @return [String]
2499
3652
  attr_accessor :cgroup_mode
2500
3653
 
3654
+ # Hugepages amount in both 2m and 1g size
3655
+ # Corresponds to the JSON property `hugepages`
3656
+ # @return [Google::Apis::ContainerV1::HugepagesConfig]
3657
+ attr_accessor :hugepages
3658
+
2501
3659
  # The Linux kernel parameters to be applied to the nodes and all pods running on
2502
3660
  # the nodes. The following parameters are supported. net.core.busy_poll net.core.
2503
- # busy_read net.core.netdev_max_backlog net.core.rmem_max net.core.wmem_default
2504
- # net.core.wmem_max net.core.optmem_max net.core.somaxconn net.ipv4.tcp_rmem net.
2505
- # ipv4.tcp_wmem net.ipv4.tcp_tw_reuse
3661
+ # busy_read net.core.netdev_max_backlog net.core.rmem_max net.core.rmem_default
3662
+ # net.core.wmem_default net.core.wmem_max net.core.optmem_max net.core.somaxconn
3663
+ # net.ipv4.tcp_rmem net.ipv4.tcp_wmem net.ipv4.tcp_tw_reuse net.netfilter.
3664
+ # nf_conntrack_max net.netfilter.nf_conntrack_buckets net.netfilter.
3665
+ # nf_conntrack_tcp_timeout_close_wait net.netfilter.
3666
+ # nf_conntrack_tcp_timeout_time_wait net.netfilter.
3667
+ # nf_conntrack_tcp_timeout_established net.netfilter.nf_conntrack_acct kernel.
3668
+ # shmmni kernel.shmmax kernel.shmall vm.max_map_count
2506
3669
  # Corresponds to the JSON property `sysctls`
2507
3670
  # @return [Hash<String,String>]
2508
3671
  attr_accessor :sysctls
@@ -2514,6 +3677,7 @@ module Google
2514
3677
  # Update properties of this object
2515
3678
  def update!(**args)
2516
3679
  @cgroup_mode = args[:cgroup_mode] if args.key?(:cgroup_mode)
3680
+ @hugepages = args[:hugepages] if args.key?(:hugepages)
2517
3681
  @sysctls = args[:sysctls] if args.key?(:sysctls)
2518
3682
  end
2519
3683
  end
@@ -2618,15 +3782,22 @@ module Google
2618
3782
  end
2619
3783
 
2620
3784
  # LocalNvmeSsdBlockConfig contains configuration for using raw-block local NVMe
2621
- # SSD.
3785
+ # SSDs
2622
3786
  class LocalNvmeSsdBlockConfig
2623
3787
  include Google::Apis::Core::Hashable
2624
3788
 
2625
- # The number of raw-block local NVMe SSD disks to be attached to the node. Each
2626
- # local SSD is 375 GB in size. If zero, it means no raw-block local NVMe SSD
2627
- # disks to be attached to the node. The limit for this value is dependent upon
2628
- # the maximum number of disks available on a machine per zone. See: https://
2629
- # cloud.google.com/compute/docs/disks/local-ssd for more information.
3789
+ # Number of local NVMe SSDs to use. The limit for this value is dependent upon
3790
+ # the maximum number of disk available on a machine per zone. See: https://cloud.
3791
+ # google.com/compute/docs/disks/local-ssd for more information. A zero (or unset)
3792
+ # value has different meanings depending on machine type being used: 1. For pre-
3793
+ # Gen3 machines, which support flexible numbers of local ssds, zero (or unset)
3794
+ # means to disable using local SSDs as ephemeral storage. 2. For Gen3 machines
3795
+ # which dictate a specific number of local ssds, zero (or unset) means to use
3796
+ # the default number of local ssds that goes with that machine type. For example,
3797
+ # for a c3-standard-8-lssd machine, 2 local ssds would be provisioned. For c3-
3798
+ # standard-8 (which doesn't support local ssds), 0 will be provisioned. See
3799
+ # https://cloud.google.com/compute/docs/disks/local-ssd#choose_number_local_ssds
3800
+ # for more info.
2630
3801
  # Corresponds to the JSON property `localSsdCount`
2631
3802
  # @return [Fixnum]
2632
3803
  attr_accessor :local_ssd_count
@@ -2783,6 +3954,12 @@ module Google
2783
3954
  class ManagedPrometheusConfig
2784
3955
  include Google::Apis::Core::Hashable
2785
3956
 
3957
+ # AutoMonitoringConfig defines the configuration for GKE Workload Auto-
3958
+ # Monitoring.
3959
+ # Corresponds to the JSON property `autoMonitoringConfig`
3960
+ # @return [Google::Apis::ContainerV1::AutoMonitoringConfig]
3961
+ attr_accessor :auto_monitoring_config
3962
+
2786
3963
  # Enable Managed Collection.
2787
3964
  # Corresponds to the JSON property `enabled`
2788
3965
  # @return [Boolean]
@@ -2795,6 +3972,7 @@ module Google
2795
3972
 
2796
3973
  # Update properties of this object
2797
3974
  def update!(**args)
3975
+ @auto_monitoring_config = args[:auto_monitoring_config] if args.key?(:auto_monitoring_config)
2798
3976
  @enabled = args[:enabled] if args.key?(:enabled)
2799
3977
  end
2800
3978
  end
@@ -2804,8 +3982,8 @@ module Google
2804
3982
  class MasterAuth
2805
3983
  include Google::Apis::Core::Hashable
2806
3984
 
2807
- # [Output only] Base64-encoded public certificate used by clients to
2808
- # authenticate to the cluster endpoint.
3985
+ # Output only. Base64-encoded public certificate used by clients to authenticate
3986
+ # to the cluster endpoint. Issued only if client_certificate_config is set.
2809
3987
  # Corresponds to the JSON property `clientCertificate`
2810
3988
  # @return [String]
2811
3989
  attr_accessor :client_certificate
@@ -2815,13 +3993,13 @@ module Google
2815
3993
  # @return [Google::Apis::ContainerV1::ClientCertificateConfig]
2816
3994
  attr_accessor :client_certificate_config
2817
3995
 
2818
- # [Output only] Base64-encoded private key used by clients to authenticate to
2819
- # the cluster endpoint.
3996
+ # Output only. Base64-encoded private key used by clients to authenticate to the
3997
+ # cluster endpoint.
2820
3998
  # Corresponds to the JSON property `clientKey`
2821
3999
  # @return [String]
2822
4000
  attr_accessor :client_key
2823
4001
 
2824
- # [Output only] Base64-encoded public certificate that is the root of trust for
4002
+ # Output only. Base64-encoded public certificate that is the root of trust for
2825
4003
  # the cluster.
2826
4004
  # Corresponds to the JSON property `clusterCaCertificate`
2827
4005
  # @return [String]
@@ -2883,12 +4061,18 @@ module Google
2883
4061
  attr_accessor :enabled
2884
4062
  alias_method :enabled?, :enabled
2885
4063
 
2886
- # Whether master is accessbile via Google Compute Engine Public IP addresses.
4064
+ # Whether master is accessible via Google Compute Engine Public IP addresses.
2887
4065
  # Corresponds to the JSON property `gcpPublicCidrsAccessEnabled`
2888
4066
  # @return [Boolean]
2889
4067
  attr_accessor :gcp_public_cidrs_access_enabled
2890
4068
  alias_method :gcp_public_cidrs_access_enabled?, :gcp_public_cidrs_access_enabled
2891
4069
 
4070
+ # Whether master authorized networks is enforced on private endpoint or not.
4071
+ # Corresponds to the JSON property `privateEndpointEnforcementEnabled`
4072
+ # @return [Boolean]
4073
+ attr_accessor :private_endpoint_enforcement_enabled
4074
+ alias_method :private_endpoint_enforcement_enabled?, :private_endpoint_enforcement_enabled
4075
+
2892
4076
  def initialize(**args)
2893
4077
  update!(**args)
2894
4078
  end
@@ -2898,6 +4082,7 @@ module Google
2898
4082
  @cidr_blocks = args[:cidr_blocks] if args.key?(:cidr_blocks)
2899
4083
  @enabled = args[:enabled] if args.key?(:enabled)
2900
4084
  @gcp_public_cidrs_access_enabled = args[:gcp_public_cidrs_access_enabled] if args.key?(:gcp_public_cidrs_access_enabled)
4085
+ @private_endpoint_enforcement_enabled = args[:private_endpoint_enforcement_enabled] if args.key?(:private_endpoint_enforcement_enabled)
2901
4086
  end
2902
4087
  end
2903
4088
 
@@ -2920,6 +4105,29 @@ module Google
2920
4105
  end
2921
4106
  end
2922
4107
 
4108
+ # The option enables the Kubernetes NUMA-aware Memory Manager feature. Detailed
4109
+ # description about the feature can be found [here](https://kubernetes.io/docs/
4110
+ # tasks/administer-cluster/memory-manager/).
4111
+ class MemoryManager
4112
+ include Google::Apis::Core::Hashable
4113
+
4114
+ # Controls the memory management policy on the Node. See https://kubernetes.io/
4115
+ # docs/tasks/administer-cluster/memory-manager/#policies The following values
4116
+ # are allowed. * "none" * "static" The default value is 'none' if unspecified.
4117
+ # Corresponds to the JSON property `policy`
4118
+ # @return [String]
4119
+ attr_accessor :policy
4120
+
4121
+ def initialize(**args)
4122
+ update!(**args)
4123
+ end
4124
+
4125
+ # Update properties of this object
4126
+ def update!(**args)
4127
+ @policy = args[:policy] if args.key?(:policy)
4128
+ end
4129
+ end
4130
+
2923
4131
  # Configuration for issuance of mTLS keys and certificates to Kubernetes pods.
2924
4132
  class MeshCertificates
2925
4133
  include Google::Apis::Core::Hashable
@@ -3005,6 +4213,12 @@ module Google
3005
4213
  class MonitoringConfig
3006
4214
  include Google::Apis::Core::Hashable
3007
4215
 
4216
+ # AdvancedDatapathObservabilityConfig specifies configuration of observability
4217
+ # features of advanced datapath.
4218
+ # Corresponds to the JSON property `advancedDatapathObservabilityConfig`
4219
+ # @return [Google::Apis::ContainerV1::AdvancedDatapathObservabilityConfig]
4220
+ attr_accessor :advanced_datapath_observability_config
4221
+
3008
4222
  # MonitoringComponentConfig is cluster monitoring component configuration.
3009
4223
  # Corresponds to the JSON property `componentConfig`
3010
4224
  # @return [Google::Apis::ContainerV1::MonitoringComponentConfig]
@@ -3022,6 +4236,7 @@ module Google
3022
4236
 
3023
4237
  # Update properties of this object
3024
4238
  def update!(**args)
4239
+ @advanced_datapath_observability_config = args[:advanced_datapath_observability_config] if args.key?(:advanced_datapath_observability_config)
3025
4240
  @component_config = args[:component_config] if args.key?(:component_config)
3026
4241
  @managed_prometheus_config = args[:managed_prometheus_config] if args.key?(:managed_prometheus_config)
3027
4242
  end
@@ -3037,17 +4252,44 @@ module Google
3037
4252
  # @return [String]
3038
4253
  attr_accessor :datapath_provider
3039
4254
 
4255
+ # Controls whether by default nodes have private IP addresses only. It is
4256
+ # invalid to specify both PrivateClusterConfig.enablePrivateNodes and this field
4257
+ # at the same time. To update the default setting, use ClusterUpdate.
4258
+ # desired_default_enable_private_nodes
4259
+ # Corresponds to the JSON property `defaultEnablePrivateNodes`
4260
+ # @return [Boolean]
4261
+ attr_accessor :default_enable_private_nodes
4262
+ alias_method :default_enable_private_nodes?, :default_enable_private_nodes
4263
+
3040
4264
  # DefaultSnatStatus contains the desired state of whether default sNAT should be
3041
4265
  # disabled on the cluster.
3042
4266
  # Corresponds to the JSON property `defaultSnatStatus`
3043
4267
  # @return [Google::Apis::ContainerV1::DefaultSnatStatus]
3044
4268
  attr_accessor :default_snat_status
3045
4269
 
4270
+ # Disable L4 load balancer VPC firewalls to enable firewall policies.
4271
+ # Corresponds to the JSON property `disableL4LbFirewallReconciliation`
4272
+ # @return [Boolean]
4273
+ attr_accessor :disable_l4_lb_firewall_reconciliation
4274
+ alias_method :disable_l4_lb_firewall_reconciliation?, :disable_l4_lb_firewall_reconciliation
4275
+
3046
4276
  # DNSConfig contains the desired set of options for configuring clusterDNS.
3047
4277
  # Corresponds to the JSON property `dnsConfig`
3048
4278
  # @return [Google::Apis::ContainerV1::DnsConfig]
3049
4279
  attr_accessor :dns_config
3050
4280
 
4281
+ # Whether CiliumClusterwideNetworkPolicy is enabled on this cluster.
4282
+ # Corresponds to the JSON property `enableCiliumClusterwideNetworkPolicy`
4283
+ # @return [Boolean]
4284
+ attr_accessor :enable_cilium_clusterwide_network_policy
4285
+ alias_method :enable_cilium_clusterwide_network_policy?, :enable_cilium_clusterwide_network_policy
4286
+
4287
+ # Whether FQDN Network Policy is enabled on this cluster.
4288
+ # Corresponds to the JSON property `enableFqdnNetworkPolicy`
4289
+ # @return [Boolean]
4290
+ attr_accessor :enable_fqdn_network_policy
4291
+ alias_method :enable_fqdn_network_policy?, :enable_fqdn_network_policy
4292
+
3051
4293
  # Whether Intra-node visibility is enabled for this cluster. This makes same
3052
4294
  # node pod to pod traffic visible for VPC network.
3053
4295
  # Corresponds to the JSON property `enableIntraNodeVisibility`
@@ -3061,18 +4303,35 @@ module Google
3061
4303
  attr_accessor :enable_l4ilb_subsetting
3062
4304
  alias_method :enable_l4ilb_subsetting?, :enable_l4ilb_subsetting
3063
4305
 
4306
+ # Whether multi-networking is enabled for this cluster.
4307
+ # Corresponds to the JSON property `enableMultiNetworking`
4308
+ # @return [Boolean]
4309
+ attr_accessor :enable_multi_networking
4310
+ alias_method :enable_multi_networking?, :enable_multi_networking
4311
+
3064
4312
  # GatewayAPIConfig contains the desired config of Gateway API on this cluster.
3065
4313
  # Corresponds to the JSON property `gatewayApiConfig`
3066
4314
  # @return [Google::Apis::ContainerV1::GatewayApiConfig]
3067
4315
  attr_accessor :gateway_api_config
3068
4316
 
3069
- # Output only. The relative name of the Google Compute Engine network(https://
4317
+ # Specify the details of in-transit encryption. Now named inter-node transparent
4318
+ # encryption.
4319
+ # Corresponds to the JSON property `inTransitEncryptionConfig`
4320
+ # @return [String]
4321
+ attr_accessor :in_transit_encryption_config
4322
+
4323
+ # Output only. The relative name of the Google Compute Engine [network](https://
3070
4324
  # cloud.google.com/compute/docs/networks-and-firewalls#networks) to which the
3071
4325
  # cluster is connected. Example: projects/my-project/global/networks/my-network
3072
4326
  # Corresponds to the JSON property `network`
3073
4327
  # @return [String]
3074
4328
  attr_accessor :network
3075
4329
 
4330
+ # Configuration of network bandwidth tiers
4331
+ # Corresponds to the JSON property `networkPerformanceConfig`
4332
+ # @return [Google::Apis::ContainerV1::ClusterNetworkPerformanceConfig]
4333
+ attr_accessor :network_performance_config
4334
+
3076
4335
  # The desired state of IPv6 connectivity to Google Services. By default, no
3077
4336
  # private IPv6 access to or from Google Services (all access will be via IPv4)
3078
4337
  # Corresponds to the JSON property `privateIpv6GoogleAccess`
@@ -3098,12 +4357,19 @@ module Google
3098
4357
  # Update properties of this object
3099
4358
  def update!(**args)
3100
4359
  @datapath_provider = args[:datapath_provider] if args.key?(:datapath_provider)
4360
+ @default_enable_private_nodes = args[:default_enable_private_nodes] if args.key?(:default_enable_private_nodes)
3101
4361
  @default_snat_status = args[:default_snat_status] if args.key?(:default_snat_status)
4362
+ @disable_l4_lb_firewall_reconciliation = args[:disable_l4_lb_firewall_reconciliation] if args.key?(:disable_l4_lb_firewall_reconciliation)
3102
4363
  @dns_config = args[:dns_config] if args.key?(:dns_config)
4364
+ @enable_cilium_clusterwide_network_policy = args[:enable_cilium_clusterwide_network_policy] if args.key?(:enable_cilium_clusterwide_network_policy)
4365
+ @enable_fqdn_network_policy = args[:enable_fqdn_network_policy] if args.key?(:enable_fqdn_network_policy)
3103
4366
  @enable_intra_node_visibility = args[:enable_intra_node_visibility] if args.key?(:enable_intra_node_visibility)
3104
4367
  @enable_l4ilb_subsetting = args[:enable_l4ilb_subsetting] if args.key?(:enable_l4ilb_subsetting)
4368
+ @enable_multi_networking = args[:enable_multi_networking] if args.key?(:enable_multi_networking)
3105
4369
  @gateway_api_config = args[:gateway_api_config] if args.key?(:gateway_api_config)
4370
+ @in_transit_encryption_config = args[:in_transit_encryption_config] if args.key?(:in_transit_encryption_config)
3106
4371
  @network = args[:network] if args.key?(:network)
4372
+ @network_performance_config = args[:network_performance_config] if args.key?(:network_performance_config)
3107
4373
  @private_ipv6_google_access = args[:private_ipv6_google_access] if args.key?(:private_ipv6_google_access)
3108
4374
  @service_external_ips_config = args[:service_external_ips_config] if args.key?(:service_external_ips_config)
3109
4375
  @subnetwork = args[:subnetwork] if args.key?(:subnetwork)
@@ -3198,6 +4464,39 @@ module Google
3198
4464
  end
3199
4465
  end
3200
4466
 
4467
+ # Specifies the NodeAffinity key, values, and affinity operator according to [
4468
+ # shared sole tenant node group affinities](https://cloud.google.com/compute/
4469
+ # docs/nodes/sole-tenant-nodes#node_affinity_and_anti-affinity).
4470
+ class NodeAffinity
4471
+ include Google::Apis::Core::Hashable
4472
+
4473
+ # Key for NodeAffinity.
4474
+ # Corresponds to the JSON property `key`
4475
+ # @return [String]
4476
+ attr_accessor :key
4477
+
4478
+ # Operator for NodeAffinity.
4479
+ # Corresponds to the JSON property `operator`
4480
+ # @return [String]
4481
+ attr_accessor :operator
4482
+
4483
+ # Values for NodeAffinity.
4484
+ # Corresponds to the JSON property `values`
4485
+ # @return [Array<String>]
4486
+ attr_accessor :values
4487
+
4488
+ def initialize(**args)
4489
+ update!(**args)
4490
+ end
4491
+
4492
+ # Update properties of this object
4493
+ def update!(**args)
4494
+ @key = args[:key] if args.key?(:key)
4495
+ @operator = args[:operator] if args.key?(:operator)
4496
+ @values = args[:values] if args.key?(:values)
4497
+ end
4498
+ end
4499
+
3201
4500
  # Parameters that describe the nodes in a cluster. GKE Autopilot clusters do not
3202
4501
  # recognize parameters in `NodeConfig`. Use AutoprovisioningNodePoolDefaults
3203
4502
  # instead.
@@ -3230,6 +4529,11 @@ module Google
3230
4529
  # @return [Google::Apis::ContainerV1::ConfidentialNodes]
3231
4530
  attr_accessor :confidential_nodes
3232
4531
 
4532
+ # ContainerdConfig contains configuration to customize containerd.
4533
+ # Corresponds to the JSON property `containerdConfig`
4534
+ # @return [Google::Apis::ContainerV1::ContainerdConfig]
4535
+ attr_accessor :containerd_config
4536
+
3233
4537
  # Size of the disk attached to each node, specified in GB. The smallest allowed
3234
4538
  # disk size is 10GB. If unspecified, the default disk size is 100GB.
3235
4539
  # Corresponds to the JSON property `diskSizeGb`
@@ -3242,8 +4546,22 @@ module Google
3242
4546
  # @return [String]
3243
4547
  attr_accessor :disk_type
3244
4548
 
4549
+ # Output only. effective_cgroup_mode is the cgroup mode actually used by the
4550
+ # node pool. It is determined by the cgroup mode specified in the
4551
+ # LinuxNodeConfig or the default cgroup mode based on the cluster creation
4552
+ # version.
4553
+ # Corresponds to the JSON property `effectiveCgroupMode`
4554
+ # @return [String]
4555
+ attr_accessor :effective_cgroup_mode
4556
+
4557
+ # Optional. Reserved for future use.
4558
+ # Corresponds to the JSON property `enableConfidentialStorage`
4559
+ # @return [Boolean]
4560
+ attr_accessor :enable_confidential_storage
4561
+ alias_method :enable_confidential_storage?, :enable_confidential_storage
4562
+
3245
4563
  # EphemeralStorageLocalSsdConfig contains configuration for the node ephemeral
3246
- # storage using Local SSD.
4564
+ # storage using Local SSDs.
3247
4565
  # Corresponds to the JSON property `ephemeralStorageLocalSsdConfig`
3248
4566
  # @return [Google::Apis::ContainerV1::EphemeralStorageLocalSsdConfig]
3249
4567
  attr_accessor :ephemeral_storage_local_ssd_config
@@ -3253,6 +4571,12 @@ module Google
3253
4571
  # @return [Google::Apis::ContainerV1::FastSocket]
3254
4572
  attr_accessor :fast_socket
3255
4573
 
4574
+ # Flex Start flag for enabling Flex Start VM.
4575
+ # Corresponds to the JSON property `flexStart`
4576
+ # @return [Boolean]
4577
+ attr_accessor :flex_start
4578
+ alias_method :flex_start?, :flex_start
4579
+
3256
4580
  # GcfsConfig contains configurations of Google Container File System (image
3257
4581
  # streaming).
3258
4582
  # Corresponds to the JSON property `gcfsConfig`
@@ -3265,7 +4589,8 @@ module Google
3265
4589
  attr_accessor :gvnic
3266
4590
 
3267
4591
  # The image type to use for this node. Note that for a given image type, the
3268
- # latest version of it will be used.
4592
+ # latest version of it will be used. Please see https://cloud.google.com/
4593
+ # kubernetes-engine/docs/concepts/node-images for available image types.
3269
4594
  # Corresponds to the JSON property `imageType`
3270
4595
  # @return [String]
3271
4596
  attr_accessor :image_type
@@ -3292,7 +4617,7 @@ module Google
3292
4617
  attr_accessor :linux_node_config
3293
4618
 
3294
4619
  # LocalNvmeSsdBlockConfig contains configuration for using raw-block local NVMe
3295
- # SSD.
4620
+ # SSDs
3296
4621
  # Corresponds to the JSON property `localNvmeSsdBlockConfig`
3297
4622
  # @return [Google::Apis::ContainerV1::LocalNvmeSsdBlockConfig]
3298
4623
  attr_accessor :local_nvme_ssd_block_config
@@ -3305,6 +4630,12 @@ module Google
3305
4630
  # @return [Fixnum]
3306
4631
  attr_accessor :local_ssd_count
3307
4632
 
4633
+ # Specifies which method should be used for encrypting the Local SSDs attached
4634
+ # to the node.
4635
+ # Corresponds to the JSON property `localSsdEncryptionMode`
4636
+ # @return [String]
4637
+ attr_accessor :local_ssd_encryption_mode
4638
+
3308
4639
  # NodePoolLoggingConfig specifies logging configuration for nodepools.
3309
4640
  # Corresponds to the JSON property `loggingConfig`
3310
4641
  # @return [Google::Apis::ContainerV1::NodePoolLoggingConfig]
@@ -3317,6 +4648,12 @@ module Google
3317
4648
  # @return [String]
3318
4649
  attr_accessor :machine_type
3319
4650
 
4651
+ # The maximum duration for the nodes to exist. If unspecified, the nodes can
4652
+ # exist indefinitely.
4653
+ # Corresponds to the JSON property `maxRunDuration`
4654
+ # @return [String]
4655
+ attr_accessor :max_run_duration
4656
+
3320
4657
  # The metadata key/value pairs assigned to instances in the cluster. Keys must
3321
4658
  # conform to the regexp `[a-zA-Z0-9-_]+` and be less than 128 bytes in length.
3322
4659
  # These are reflected as part of a URL in the metadata server. Additionally, to
@@ -3386,11 +4723,31 @@ module Google
3386
4723
  # @return [Hash<String,String>]
3387
4724
  attr_accessor :resource_labels
3388
4725
 
4726
+ # A map of resource manager tag keys and values to be attached to the nodes for
4727
+ # managing Compute Engine firewalls using Network Firewall Policies. Tags must
4728
+ # be according to specifications in https://cloud.google.com/vpc/docs/tags-
4729
+ # firewalls-overview#specifications. A maximum of 5 tag key-value pairs can be
4730
+ # specified. Existing tags will be replaced with new values.
4731
+ # Corresponds to the JSON property `resourceManagerTags`
4732
+ # @return [Google::Apis::ContainerV1::ResourceManagerTags]
4733
+ attr_accessor :resource_manager_tags
4734
+
3389
4735
  # SandboxConfig contains configurations of the sandbox to use for the node.
3390
4736
  # Corresponds to the JSON property `sandboxConfig`
3391
4737
  # @return [Google::Apis::ContainerV1::SandboxConfig]
3392
4738
  attr_accessor :sandbox_config
3393
4739
 
4740
+ # SecondaryBootDiskUpdateStrategy is a placeholder which will be extended in the
4741
+ # future to define different options for updating secondary boot disks.
4742
+ # Corresponds to the JSON property `secondaryBootDiskUpdateStrategy`
4743
+ # @return [Google::Apis::ContainerV1::SecondaryBootDiskUpdateStrategy]
4744
+ attr_accessor :secondary_boot_disk_update_strategy
4745
+
4746
+ # List of secondary boot disks attached to the nodes.
4747
+ # Corresponds to the JSON property `secondaryBootDisks`
4748
+ # @return [Array<Google::Apis::ContainerV1::SecondaryBootDisk>]
4749
+ attr_accessor :secondary_boot_disks
4750
+
3394
4751
  # The Google Cloud Platform Service Account to be used by the node VMs. Specify
3395
4752
  # the email address of the Service Account; otherwise, if no Service Account is
3396
4753
  # specified, the "default" service account is used.
@@ -3403,6 +4760,12 @@ module Google
3403
4760
  # @return [Google::Apis::ContainerV1::ShieldedInstanceConfig]
3404
4761
  attr_accessor :shielded_instance_config
3405
4762
 
4763
+ # SoleTenantConfig contains the NodeAffinities to specify what shared sole
4764
+ # tenant node groups should back the node pool.
4765
+ # Corresponds to the JSON property `soleTenantConfig`
4766
+ # @return [Google::Apis::ContainerV1::SoleTenantConfig]
4767
+ attr_accessor :sole_tenant_config
4768
+
3406
4769
  # Spot flag for enabling Spot VM, which is a rebrand of the existing preemptible
3407
4770
  # flag.
3408
4771
  # Corresponds to the JSON property `spot`
@@ -3410,6 +4773,11 @@ module Google
3410
4773
  attr_accessor :spot
3411
4774
  alias_method :spot?, :spot
3412
4775
 
4776
+ # List of Storage Pools where boot disks are provisioned.
4777
+ # Corresponds to the JSON property `storagePools`
4778
+ # @return [Array<String>]
4779
+ attr_accessor :storage_pools
4780
+
3413
4781
  # The list of instance tags applied to all nodes. Tags are used to identify
3414
4782
  # valid sources or targets for network firewalls and are specified by the client
3415
4783
  # during cluster or node pool creation. Each tag within the list must comply
@@ -3427,7 +4795,7 @@ module Google
3427
4795
 
3428
4796
  # Parameters that can be configured on Windows nodes. Windows Node Config that
3429
4797
  # define the parameters that will be used to configure the Windows node pool
3430
- # settings
4798
+ # settings.
3431
4799
  # Corresponds to the JSON property `windowsNodeConfig`
3432
4800
  # @return [Google::Apis::ContainerV1::WindowsNodeConfig]
3433
4801
  attr_accessor :windows_node_config
@@ -3448,10 +4816,14 @@ module Google
3448
4816
  @advanced_machine_features = args[:advanced_machine_features] if args.key?(:advanced_machine_features)
3449
4817
  @boot_disk_kms_key = args[:boot_disk_kms_key] if args.key?(:boot_disk_kms_key)
3450
4818
  @confidential_nodes = args[:confidential_nodes] if args.key?(:confidential_nodes)
4819
+ @containerd_config = args[:containerd_config] if args.key?(:containerd_config)
3451
4820
  @disk_size_gb = args[:disk_size_gb] if args.key?(:disk_size_gb)
3452
4821
  @disk_type = args[:disk_type] if args.key?(:disk_type)
4822
+ @effective_cgroup_mode = args[:effective_cgroup_mode] if args.key?(:effective_cgroup_mode)
4823
+ @enable_confidential_storage = args[:enable_confidential_storage] if args.key?(:enable_confidential_storage)
3453
4824
  @ephemeral_storage_local_ssd_config = args[:ephemeral_storage_local_ssd_config] if args.key?(:ephemeral_storage_local_ssd_config)
3454
4825
  @fast_socket = args[:fast_socket] if args.key?(:fast_socket)
4826
+ @flex_start = args[:flex_start] if args.key?(:flex_start)
3455
4827
  @gcfs_config = args[:gcfs_config] if args.key?(:gcfs_config)
3456
4828
  @gvnic = args[:gvnic] if args.key?(:gvnic)
3457
4829
  @image_type = args[:image_type] if args.key?(:image_type)
@@ -3460,8 +4832,10 @@ module Google
3460
4832
  @linux_node_config = args[:linux_node_config] if args.key?(:linux_node_config)
3461
4833
  @local_nvme_ssd_block_config = args[:local_nvme_ssd_block_config] if args.key?(:local_nvme_ssd_block_config)
3462
4834
  @local_ssd_count = args[:local_ssd_count] if args.key?(:local_ssd_count)
4835
+ @local_ssd_encryption_mode = args[:local_ssd_encryption_mode] if args.key?(:local_ssd_encryption_mode)
3463
4836
  @logging_config = args[:logging_config] if args.key?(:logging_config)
3464
4837
  @machine_type = args[:machine_type] if args.key?(:machine_type)
4838
+ @max_run_duration = args[:max_run_duration] if args.key?(:max_run_duration)
3465
4839
  @metadata = args[:metadata] if args.key?(:metadata)
3466
4840
  @min_cpu_platform = args[:min_cpu_platform] if args.key?(:min_cpu_platform)
3467
4841
  @node_group = args[:node_group] if args.key?(:node_group)
@@ -3469,10 +4843,15 @@ module Google
3469
4843
  @preemptible = args[:preemptible] if args.key?(:preemptible)
3470
4844
  @reservation_affinity = args[:reservation_affinity] if args.key?(:reservation_affinity)
3471
4845
  @resource_labels = args[:resource_labels] if args.key?(:resource_labels)
4846
+ @resource_manager_tags = args[:resource_manager_tags] if args.key?(:resource_manager_tags)
3472
4847
  @sandbox_config = args[:sandbox_config] if args.key?(:sandbox_config)
4848
+ @secondary_boot_disk_update_strategy = args[:secondary_boot_disk_update_strategy] if args.key?(:secondary_boot_disk_update_strategy)
4849
+ @secondary_boot_disks = args[:secondary_boot_disks] if args.key?(:secondary_boot_disks)
3473
4850
  @service_account = args[:service_account] if args.key?(:service_account)
3474
4851
  @shielded_instance_config = args[:shielded_instance_config] if args.key?(:shielded_instance_config)
4852
+ @sole_tenant_config = args[:sole_tenant_config] if args.key?(:sole_tenant_config)
3475
4853
  @spot = args[:spot] if args.key?(:spot)
4854
+ @storage_pools = args[:storage_pools] if args.key?(:storage_pools)
3476
4855
  @tags = args[:tags] if args.key?(:tags)
3477
4856
  @taints = args[:taints] if args.key?(:taints)
3478
4857
  @windows_node_config = args[:windows_node_config] if args.key?(:windows_node_config)
@@ -3484,6 +4863,11 @@ module Google
3484
4863
  class NodeConfigDefaults
3485
4864
  include Google::Apis::Core::Hashable
3486
4865
 
4866
+ # ContainerdConfig contains configuration to customize containerd.
4867
+ # Corresponds to the JSON property `containerdConfig`
4868
+ # @return [Google::Apis::ContainerV1::ContainerdConfig]
4869
+ attr_accessor :containerd_config
4870
+
3487
4871
  # GcfsConfig contains configurations of Google Container File System (image
3488
4872
  # streaming).
3489
4873
  # Corresponds to the JSON property `gcfsConfig`
@@ -3495,14 +4879,21 @@ module Google
3495
4879
  # @return [Google::Apis::ContainerV1::NodePoolLoggingConfig]
3496
4880
  attr_accessor :logging_config
3497
4881
 
4882
+ # Node kubelet configs.
4883
+ # Corresponds to the JSON property `nodeKubeletConfig`
4884
+ # @return [Google::Apis::ContainerV1::NodeKubeletConfig]
4885
+ attr_accessor :node_kubelet_config
4886
+
3498
4887
  def initialize(**args)
3499
4888
  update!(**args)
3500
4889
  end
3501
4890
 
3502
4891
  # Update properties of this object
3503
4892
  def update!(**args)
4893
+ @containerd_config = args[:containerd_config] if args.key?(:containerd_config)
3504
4894
  @gcfs_config = args[:gcfs_config] if args.key?(:gcfs_config)
3505
4895
  @logging_config = args[:logging_config] if args.key?(:logging_config)
4896
+ @node_kubelet_config = args[:node_kubelet_config] if args.key?(:node_kubelet_config)
3506
4897
  end
3507
4898
  end
3508
4899
 
@@ -3510,6 +4901,37 @@ module Google
3510
4901
  class NodeKubeletConfig
3511
4902
  include Google::Apis::Core::Hashable
3512
4903
 
4904
+ # Optional. Defines a comma-separated allowlist of unsafe sysctls or sysctl
4905
+ # patterns (ending in `*`). The unsafe namespaced sysctl groups are `kernel.shm*`
4906
+ # , `kernel.msg*`, `kernel.sem`, `fs.mqueue.*`, and `net.*`. Leaving this
4907
+ # allowlist empty means they cannot be set on Pods. To allow certain sysctls or
4908
+ # sysctl patterns to be set on Pods, list them separated by commas. For example:
4909
+ # `kernel.msg*,net.ipv4.route.min_pmtu`. See https://kubernetes.io/docs/tasks/
4910
+ # administer-cluster/sysctl-cluster/ for more details.
4911
+ # Corresponds to the JSON property `allowedUnsafeSysctls`
4912
+ # @return [Array<String>]
4913
+ attr_accessor :allowed_unsafe_sysctls
4914
+
4915
+ # Optional. Defines the maximum number of container log files that can be
4916
+ # present for a container. See https://kubernetes.io/docs/concepts/cluster-
4917
+ # administration/logging/#log-rotation The value must be an integer between 2
4918
+ # and 10, inclusive. The default value is 5 if unspecified.
4919
+ # Corresponds to the JSON property `containerLogMaxFiles`
4920
+ # @return [Fixnum]
4921
+ attr_accessor :container_log_max_files
4922
+
4923
+ # Optional. Defines the maximum size of the container log file before it is
4924
+ # rotated. See https://kubernetes.io/docs/concepts/cluster-administration/
4925
+ # logging/#log-rotation Valid format is positive number + unit, e.g. 100Ki, 10Mi.
4926
+ # Valid units are Ki, Mi, Gi. The value must be between 10Mi and 500Mi,
4927
+ # inclusive. Note that the total container log size (container_log_max_size *
4928
+ # container_log_max_files) cannot exceed 1% of the total storage of the node, to
4929
+ # avoid disk pressure caused by log files. The default value is 10Mi if
4930
+ # unspecified.
4931
+ # Corresponds to the JSON property `containerLogMaxSize`
4932
+ # @return [String]
4933
+ attr_accessor :container_log_max_size
4934
+
3513
4935
  # Enable CPU CFS quota enforcement for containers that specify CPU limits. This
3514
4936
  # option is enabled by default which makes kubelet use CFS quota (https://www.
3515
4937
  # kernel.org/doc/Documentation/scheduler/sched-bwc.txt) to enforce container CPU
@@ -3540,6 +4962,57 @@ module Google
3540
4962
  # @return [String]
3541
4963
  attr_accessor :cpu_manager_policy
3542
4964
 
4965
+ # Optional. Defines the percent of disk usage after which image garbage
4966
+ # collection is always run. The percent is calculated as this field value out of
4967
+ # 100. The value must be between 10 and 85, inclusive and greater than
4968
+ # image_gc_low_threshold_percent. The default value is 85 if unspecified.
4969
+ # Corresponds to the JSON property `imageGcHighThresholdPercent`
4970
+ # @return [Fixnum]
4971
+ attr_accessor :image_gc_high_threshold_percent
4972
+
4973
+ # Optional. Defines the percent of disk usage before which image garbage
4974
+ # collection is never run. Lowest disk usage to garbage collect to. The percent
4975
+ # is calculated as this field value out of 100. The value must be between 10 and
4976
+ # 85, inclusive and smaller than image_gc_high_threshold_percent. The default
4977
+ # value is 80 if unspecified.
4978
+ # Corresponds to the JSON property `imageGcLowThresholdPercent`
4979
+ # @return [Fixnum]
4980
+ attr_accessor :image_gc_low_threshold_percent
4981
+
4982
+ # Optional. Defines the maximum age an image can be unused before it is garbage
4983
+ # collected. The string must be a sequence of decimal numbers, each with
4984
+ # optional fraction and a unit suffix, such as "300s", "1.5h", and "2h45m".
4985
+ # Valid time units are "ns", "us" (or "µs"), "ms", "s", "m", "h". The value must
4986
+ # be a positive duration greater than image_minimum_gc_age or "0s". The default
4987
+ # value is "0s" if unspecified, which disables this field, meaning images won't
4988
+ # be garbage collected based on being unused for too long.
4989
+ # Corresponds to the JSON property `imageMaximumGcAge`
4990
+ # @return [String]
4991
+ attr_accessor :image_maximum_gc_age
4992
+
4993
+ # Optional. Defines the minimum age for an unused image before it is garbage
4994
+ # collected. The string must be a sequence of decimal numbers, each with
4995
+ # optional fraction and a unit suffix, such as "300s", "1.5h", and "2h45m".
4996
+ # Valid time units are "ns", "us" (or "µs"), "ms", "s", "m", "h". The value must
4997
+ # be a positive duration less than or equal to 2 minutes. The default value is "
4998
+ # 2m0s" if unspecified.
4999
+ # Corresponds to the JSON property `imageMinimumGcAge`
5000
+ # @return [String]
5001
+ attr_accessor :image_minimum_gc_age
5002
+
5003
+ # Enable or disable Kubelet read only port.
5004
+ # Corresponds to the JSON property `insecureKubeletReadonlyPortEnabled`
5005
+ # @return [Boolean]
5006
+ attr_accessor :insecure_kubelet_readonly_port_enabled
5007
+ alias_method :insecure_kubelet_readonly_port_enabled?, :insecure_kubelet_readonly_port_enabled
5008
+
5009
+ # The option enables the Kubernetes NUMA-aware Memory Manager feature. Detailed
5010
+ # description about the feature can be found [here](https://kubernetes.io/docs/
5011
+ # tasks/administer-cluster/memory-manager/).
5012
+ # Corresponds to the JSON property `memoryManager`
5013
+ # @return [Google::Apis::ContainerV1::MemoryManager]
5014
+ attr_accessor :memory_manager
5015
+
3543
5016
  # Set the Pod PID limits. See https://kubernetes.io/docs/concepts/policy/pid-
3544
5017
  # limiting/#pod-pid-limits Controls the maximum number of processes allowed to
3545
5018
  # run in a pod. The value must be greater than or equal to 1024 and less than
@@ -3548,16 +5021,32 @@ module Google
3548
5021
  # @return [Fixnum]
3549
5022
  attr_accessor :pod_pids_limit
3550
5023
 
5024
+ # TopologyManager defines the configuration options for Topology Manager feature.
5025
+ # See https://kubernetes.io/docs/tasks/administer-cluster/topology-manager/
5026
+ # Corresponds to the JSON property `topologyManager`
5027
+ # @return [Google::Apis::ContainerV1::TopologyManager]
5028
+ attr_accessor :topology_manager
5029
+
3551
5030
  def initialize(**args)
3552
5031
  update!(**args)
3553
5032
  end
3554
5033
 
3555
5034
  # Update properties of this object
3556
5035
  def update!(**args)
5036
+ @allowed_unsafe_sysctls = args[:allowed_unsafe_sysctls] if args.key?(:allowed_unsafe_sysctls)
5037
+ @container_log_max_files = args[:container_log_max_files] if args.key?(:container_log_max_files)
5038
+ @container_log_max_size = args[:container_log_max_size] if args.key?(:container_log_max_size)
3557
5039
  @cpu_cfs_quota = args[:cpu_cfs_quota] if args.key?(:cpu_cfs_quota)
3558
5040
  @cpu_cfs_quota_period = args[:cpu_cfs_quota_period] if args.key?(:cpu_cfs_quota_period)
3559
5041
  @cpu_manager_policy = args[:cpu_manager_policy] if args.key?(:cpu_manager_policy)
5042
+ @image_gc_high_threshold_percent = args[:image_gc_high_threshold_percent] if args.key?(:image_gc_high_threshold_percent)
5043
+ @image_gc_low_threshold_percent = args[:image_gc_low_threshold_percent] if args.key?(:image_gc_low_threshold_percent)
5044
+ @image_maximum_gc_age = args[:image_maximum_gc_age] if args.key?(:image_maximum_gc_age)
5045
+ @image_minimum_gc_age = args[:image_minimum_gc_age] if args.key?(:image_minimum_gc_age)
5046
+ @insecure_kubelet_readonly_port_enabled = args[:insecure_kubelet_readonly_port_enabled] if args.key?(:insecure_kubelet_readonly_port_enabled)
5047
+ @memory_manager = args[:memory_manager] if args.key?(:memory_manager)
3560
5048
  @pod_pids_limit = args[:pod_pids_limit] if args.key?(:pod_pids_limit)
5049
+ @topology_manager = args[:topology_manager] if args.key?(:topology_manager)
3561
5050
  end
3562
5051
  end
3563
5052
 
@@ -3625,6 +5114,18 @@ module Google
3625
5114
  class NodeNetworkConfig
3626
5115
  include Google::Apis::Core::Hashable
3627
5116
 
5117
+ # We specify the additional node networks for this node pool using this list.
5118
+ # Each node network corresponds to an additional interface
5119
+ # Corresponds to the JSON property `additionalNodeNetworkConfigs`
5120
+ # @return [Array<Google::Apis::ContainerV1::AdditionalNodeNetworkConfig>]
5121
+ attr_accessor :additional_node_network_configs
5122
+
5123
+ # We specify the additional pod networks for this node pool using this list.
5124
+ # Each pod network corresponds to an additional alias IP range for the node
5125
+ # Corresponds to the JSON property `additionalPodNetworkConfigs`
5126
+ # @return [Array<Google::Apis::ContainerV1::AdditionalPodNetworkConfig>]
5127
+ attr_accessor :additional_pod_network_configs
5128
+
3628
5129
  # Input only. Whether to create a new range for pod IPs in this node pool.
3629
5130
  # Defaults are provided for `pod_range` and `pod_ipv4_cidr_block` if they are
3630
5131
  # not specified. If neither `create_pod_range` or `pod_range` are specified, the
@@ -3637,8 +5138,8 @@ module Google
3637
5138
  alias_method :create_pod_range?, :create_pod_range
3638
5139
 
3639
5140
  # Whether nodes have internal IP addresses only. If enable_private_nodes is not
3640
- # specified, then the value is derived from cluster.privateClusterConfig.
3641
- # enablePrivateNodes
5141
+ # specified, then the value is derived from Cluster.NetworkConfig.
5142
+ # default_enable_private_nodes
3642
5143
  # Corresponds to the JSON property `enablePrivateNodes`
3643
5144
  # @return [Boolean]
3644
5145
  attr_accessor :enable_private_nodes
@@ -3649,6 +5150,11 @@ module Google
3649
5150
  # @return [Google::Apis::ContainerV1::NetworkPerformanceConfig]
3650
5151
  attr_accessor :network_performance_config
3651
5152
 
5153
+ # [PRIVATE FIELD] Config for pod CIDR size overprovisioning.
5154
+ # Corresponds to the JSON property `podCidrOverprovisionConfig`
5155
+ # @return [Google::Apis::ContainerV1::PodCidrOverprovisionConfig]
5156
+ attr_accessor :pod_cidr_overprovision_config
5157
+
3652
5158
  # The IP address range for pod IPs in this node pool. Only applicable if `
3653
5159
  # create_pod_range` is true. Set to blank to have a range chosen with the
3654
5160
  # default size. Set to /netmask (e.g. `/14`) to have a range chosen with a
@@ -3660,6 +5166,13 @@ module Google
3660
5166
  # @return [String]
3661
5167
  attr_accessor :pod_ipv4_cidr_block
3662
5168
 
5169
+ # Output only. The utilization of the IPv4 range for the pod. The ratio is Usage/
5170
+ # [Total number of IPs in the secondary range], Usage=numNodes*numZones*
5171
+ # podIPsPerNode.
5172
+ # Corresponds to the JSON property `podIpv4RangeUtilization`
5173
+ # @return [Float]
5174
+ attr_accessor :pod_ipv4_range_utilization
5175
+
3663
5176
  # The ID of the secondary range for pod IPs. If `create_pod_range` is true, this
3664
5177
  # ID is used for the new range. If `create_pod_range` is false, uses an existing
3665
5178
  # secondary range with this ID. Only applicable if `ip_allocation_policy.
@@ -3675,10 +5188,14 @@ module Google
3675
5188
 
3676
5189
  # Update properties of this object
3677
5190
  def update!(**args)
5191
+ @additional_node_network_configs = args[:additional_node_network_configs] if args.key?(:additional_node_network_configs)
5192
+ @additional_pod_network_configs = args[:additional_pod_network_configs] if args.key?(:additional_pod_network_configs)
3678
5193
  @create_pod_range = args[:create_pod_range] if args.key?(:create_pod_range)
3679
5194
  @enable_private_nodes = args[:enable_private_nodes] if args.key?(:enable_private_nodes)
3680
5195
  @network_performance_config = args[:network_performance_config] if args.key?(:network_performance_config)
5196
+ @pod_cidr_overprovision_config = args[:pod_cidr_overprovision_config] if args.key?(:pod_cidr_overprovision_config)
3681
5197
  @pod_ipv4_cidr_block = args[:pod_ipv4_cidr_block] if args.key?(:pod_ipv4_cidr_block)
5198
+ @pod_ipv4_range_utilization = args[:pod_ipv4_range_utilization] if args.key?(:pod_ipv4_range_utilization)
3682
5199
  @pod_range = args[:pod_range] if args.key?(:pod_range)
3683
5200
  end
3684
5201
  end
@@ -3692,12 +5209,22 @@ module Google
3692
5209
  class NodePool
3693
5210
  include Google::Apis::Core::Hashable
3694
5211
 
5212
+ # AutopilotConfig contains configuration of autopilot feature for this nodepool.
5213
+ # Corresponds to the JSON property `autopilotConfig`
5214
+ # @return [Google::Apis::ContainerV1::AutopilotConfig]
5215
+ attr_accessor :autopilot_config
5216
+
3695
5217
  # NodePoolAutoscaling contains information required by cluster autoscaler to
3696
5218
  # adjust the size of the node pool to the current cluster usage.
3697
5219
  # Corresponds to the JSON property `autoscaling`
3698
5220
  # @return [Google::Apis::ContainerV1::NodePoolAutoscaling]
3699
5221
  attr_accessor :autoscaling
3700
5222
 
5223
+ # Best effort provisioning.
5224
+ # Corresponds to the JSON property `bestEffortProvisioning`
5225
+ # @return [Google::Apis::ContainerV1::BestEffortProvisioning]
5226
+ attr_accessor :best_effort_provisioning
5227
+
3701
5228
  # Which conditions caused the current node pool state.
3702
5229
  # Corresponds to the JSON property `conditions`
3703
5230
  # @return [Array<Google::Apis::ContainerV1::StatusCondition>]
@@ -3725,7 +5252,7 @@ module Google
3725
5252
  # @return [Fixnum]
3726
5253
  attr_accessor :initial_node_count
3727
5254
 
3728
- # [Output only] The resource URLs of the [managed instance groups](https://cloud.
5255
+ # Output only. The resource URLs of the [managed instance groups](https://cloud.
3729
5256
  # google.com/compute/docs/instance-groups/creating-groups-of-managed-instances)
3730
5257
  # associated with this node pool. During the node pool blue-green upgrade
3731
5258
  # operation, the URLs contain both blue and green resources.
@@ -3769,22 +5296,27 @@ module Google
3769
5296
  # @return [Google::Apis::ContainerV1::PlacementPolicy]
3770
5297
  attr_accessor :placement_policy
3771
5298
 
3772
- # [Output only] The pod CIDR block size per node in this node pool.
5299
+ # Output only. The pod CIDR block size per node in this node pool.
3773
5300
  # Corresponds to the JSON property `podIpv4CidrSize`
3774
5301
  # @return [Fixnum]
3775
5302
  attr_accessor :pod_ipv4_cidr_size
3776
5303
 
3777
- # [Output only] Server-defined URL for the resource.
5304
+ # QueuedProvisioning defines the queued provisioning used by the node pool.
5305
+ # Corresponds to the JSON property `queuedProvisioning`
5306
+ # @return [Google::Apis::ContainerV1::QueuedProvisioning]
5307
+ attr_accessor :queued_provisioning
5308
+
5309
+ # Output only. Server-defined URL for the resource.
3778
5310
  # Corresponds to the JSON property `selfLink`
3779
5311
  # @return [String]
3780
5312
  attr_accessor :self_link
3781
5313
 
3782
- # [Output only] The status of the nodes in this pool instance.
5314
+ # Output only. The status of the nodes in this pool instance.
3783
5315
  # Corresponds to the JSON property `status`
3784
5316
  # @return [String]
3785
5317
  attr_accessor :status
3786
5318
 
3787
- # [Output only] Deprecated. Use conditions instead. Additional information about
5319
+ # Output only. Deprecated. Use conditions instead. Additional information about
3788
5320
  # the current status of this node pool instance, if available.
3789
5321
  # Corresponds to the JSON property `statusMessage`
3790
5322
  # @return [String]
@@ -3831,7 +5363,9 @@ module Google
3831
5363
  # @return [Google::Apis::ContainerV1::UpgradeSettings]
3832
5364
  attr_accessor :upgrade_settings
3833
5365
 
3834
- # The version of the Kubernetes of this node.
5366
+ # The version of Kubernetes running on this NodePool's nodes. If unspecified, it
5367
+ # defaults as described [here](https://cloud.google.com/kubernetes-engine/
5368
+ # versioning#specifying_node_version).
3835
5369
  # Corresponds to the JSON property `version`
3836
5370
  # @return [String]
3837
5371
  attr_accessor :version
@@ -3842,7 +5376,9 @@ module Google
3842
5376
 
3843
5377
  # Update properties of this object
3844
5378
  def update!(**args)
5379
+ @autopilot_config = args[:autopilot_config] if args.key?(:autopilot_config)
3845
5380
  @autoscaling = args[:autoscaling] if args.key?(:autoscaling)
5381
+ @best_effort_provisioning = args[:best_effort_provisioning] if args.key?(:best_effort_provisioning)
3846
5382
  @conditions = args[:conditions] if args.key?(:conditions)
3847
5383
  @config = args[:config] if args.key?(:config)
3848
5384
  @etag = args[:etag] if args.key?(:etag)
@@ -3855,6 +5391,7 @@ module Google
3855
5391
  @network_config = args[:network_config] if args.key?(:network_config)
3856
5392
  @placement_policy = args[:placement_policy] if args.key?(:placement_policy)
3857
5393
  @pod_ipv4_cidr_size = args[:pod_ipv4_cidr_size] if args.key?(:pod_ipv4_cidr_size)
5394
+ @queued_provisioning = args[:queued_provisioning] if args.key?(:queued_provisioning)
3858
5395
  @self_link = args[:self_link] if args.key?(:self_link)
3859
5396
  @status = args[:status] if args.key?(:status)
3860
5397
  @status_message = args[:status_message] if args.key?(:status_message)
@@ -3869,19 +5406,41 @@ module Google
3869
5406
  class NodePoolAutoConfig
3870
5407
  include Google::Apis::Core::Hashable
3871
5408
 
5409
+ # Parameters that can be configured on Linux nodes.
5410
+ # Corresponds to the JSON property `linuxNodeConfig`
5411
+ # @return [Google::Apis::ContainerV1::LinuxNodeConfig]
5412
+ attr_accessor :linux_node_config
5413
+
3872
5414
  # Collection of Compute Engine network tags that can be applied to a node's
3873
5415
  # underlying VM instance.
3874
5416
  # Corresponds to the JSON property `networkTags`
3875
5417
  # @return [Google::Apis::ContainerV1::NetworkTags]
3876
5418
  attr_accessor :network_tags
3877
5419
 
5420
+ # Node kubelet configs.
5421
+ # Corresponds to the JSON property `nodeKubeletConfig`
5422
+ # @return [Google::Apis::ContainerV1::NodeKubeletConfig]
5423
+ attr_accessor :node_kubelet_config
5424
+
5425
+ # A map of resource manager tag keys and values to be attached to the nodes for
5426
+ # managing Compute Engine firewalls using Network Firewall Policies. Tags must
5427
+ # be according to specifications in https://cloud.google.com/vpc/docs/tags-
5428
+ # firewalls-overview#specifications. A maximum of 5 tag key-value pairs can be
5429
+ # specified. Existing tags will be replaced with new values.
5430
+ # Corresponds to the JSON property `resourceManagerTags`
5431
+ # @return [Google::Apis::ContainerV1::ResourceManagerTags]
5432
+ attr_accessor :resource_manager_tags
5433
+
3878
5434
  def initialize(**args)
3879
5435
  update!(**args)
3880
5436
  end
3881
5437
 
3882
5438
  # Update properties of this object
3883
5439
  def update!(**args)
5440
+ @linux_node_config = args[:linux_node_config] if args.key?(:linux_node_config)
3884
5441
  @network_tags = args[:network_tags] if args.key?(:network_tags)
5442
+ @node_kubelet_config = args[:node_kubelet_config] if args.key?(:node_kubelet_config)
5443
+ @resource_manager_tags = args[:resource_manager_tags] if args.key?(:resource_manager_tags)
3885
5444
  end
3886
5445
  end
3887
5446
 
@@ -3907,19 +5466,19 @@ module Google
3907
5466
  # @return [String]
3908
5467
  attr_accessor :location_policy
3909
5468
 
3910
- # Maximum number of nodes for one location in the NodePool. Must be >=
5469
+ # Maximum number of nodes for one location in the node pool. Must be >=
3911
5470
  # min_node_count. There has to be enough quota to scale up the cluster.
3912
5471
  # Corresponds to the JSON property `maxNodeCount`
3913
5472
  # @return [Fixnum]
3914
5473
  attr_accessor :max_node_count
3915
5474
 
3916
- # Minimum number of nodes for one location in the NodePool. Must be >= 1 and <=
3917
- # max_node_count.
5475
+ # Minimum number of nodes for one location in the node pool. Must be greater
5476
+ # than or equal to 0 and less than or equal to max_node_count.
3918
5477
  # Corresponds to the JSON property `minNodeCount`
3919
5478
  # @return [Fixnum]
3920
5479
  attr_accessor :min_node_count
3921
5480
 
3922
- # Maximum number of nodes in the node pool. Must be greater than
5481
+ # Maximum number of nodes in the node pool. Must be greater than or equal to
3923
5482
  # total_min_node_count. There has to be enough quota to scale up the cluster.
3924
5483
  # The total_*_node_count fields are mutually exclusive with the *_node_count
3925
5484
  # fields.
@@ -3927,9 +5486,9 @@ module Google
3927
5486
  # @return [Fixnum]
3928
5487
  attr_accessor :total_max_node_count
3929
5488
 
3930
- # Minimum number of nodes in the node pool. Must be greater than 1 less than
3931
- # total_max_node_count. The total_*_node_count fields are mutually exclusive
3932
- # with the *_node_count fields.
5489
+ # Minimum number of nodes in the node pool. Must be greater than or equal to 0
5490
+ # and less than or equal to total_max_node_count. The total_*_node_count fields
5491
+ # are mutually exclusive with the *_node_count fields.
3933
5492
  # Corresponds to the JSON property `totalMinNodeCount`
3934
5493
  # @return [Fixnum]
3935
5494
  attr_accessor :total_min_node_count
@@ -3988,7 +5547,62 @@ module Google
3988
5547
  end
3989
5548
  end
3990
5549
 
3991
- # Kubernetes taint is comprised of three fields: key, value, and effect. Effect
5550
+ # NodePoolUpgradeInfo contains the upgrade information of a nodepool.
5551
+ class NodePoolUpgradeInfo
5552
+ include Google::Apis::Core::Hashable
5553
+
5554
+ # The auto upgrade status.
5555
+ # Corresponds to the JSON property `autoUpgradeStatus`
5556
+ # @return [Array<String>]
5557
+ attr_accessor :auto_upgrade_status
5558
+
5559
+ # The nodepool's current minor version's end of extended support timestamp.
5560
+ # Corresponds to the JSON property `endOfExtendedSupportTimestamp`
5561
+ # @return [String]
5562
+ attr_accessor :end_of_extended_support_timestamp
5563
+
5564
+ # The nodepool's current minor version's end of standard support timestamp.
5565
+ # Corresponds to the JSON property `endOfStandardSupportTimestamp`
5566
+ # @return [String]
5567
+ attr_accessor :end_of_standard_support_timestamp
5568
+
5569
+ # minor_target_version indicates the target version for minor upgrade.
5570
+ # Corresponds to the JSON property `minorTargetVersion`
5571
+ # @return [String]
5572
+ attr_accessor :minor_target_version
5573
+
5574
+ # patch_target_version indicates the target version for patch upgrade.
5575
+ # Corresponds to the JSON property `patchTargetVersion`
5576
+ # @return [String]
5577
+ attr_accessor :patch_target_version
5578
+
5579
+ # The auto upgrade paused reason.
5580
+ # Corresponds to the JSON property `pausedReason`
5581
+ # @return [Array<String>]
5582
+ attr_accessor :paused_reason
5583
+
5584
+ # The list of past auto upgrades.
5585
+ # Corresponds to the JSON property `upgradeDetails`
5586
+ # @return [Array<Google::Apis::ContainerV1::UpgradeDetails>]
5587
+ attr_accessor :upgrade_details
5588
+
5589
+ def initialize(**args)
5590
+ update!(**args)
5591
+ end
5592
+
5593
+ # Update properties of this object
5594
+ def update!(**args)
5595
+ @auto_upgrade_status = args[:auto_upgrade_status] if args.key?(:auto_upgrade_status)
5596
+ @end_of_extended_support_timestamp = args[:end_of_extended_support_timestamp] if args.key?(:end_of_extended_support_timestamp)
5597
+ @end_of_standard_support_timestamp = args[:end_of_standard_support_timestamp] if args.key?(:end_of_standard_support_timestamp)
5598
+ @minor_target_version = args[:minor_target_version] if args.key?(:minor_target_version)
5599
+ @patch_target_version = args[:patch_target_version] if args.key?(:patch_target_version)
5600
+ @paused_reason = args[:paused_reason] if args.key?(:paused_reason)
5601
+ @upgrade_details = args[:upgrade_details] if args.key?(:upgrade_details)
5602
+ end
5603
+ end
5604
+
5605
+ # Kubernetes taint is composed of three fields: key, value, and effect. Effect
3992
5606
  # can only be one of three types: NoSchedule, PreferNoSchedule or NoExecute. See
3993
5607
  # [here](https://kubernetes.io/docs/concepts/configuration/taint-and-toleration)
3994
5608
  # for more information, including usage and the valid values.
@@ -4072,12 +5686,12 @@ module Google
4072
5686
  # @return [Array<Google::Apis::ContainerV1::StatusCondition>]
4073
5687
  attr_accessor :cluster_conditions
4074
5688
 
4075
- # Detailed operation progress, if available.
5689
+ # Output only. Detailed operation progress, if available.
4076
5690
  # Corresponds to the JSON property `detail`
4077
5691
  # @return [String]
4078
5692
  attr_accessor :detail
4079
5693
 
4080
- # [Output only] The time the operation completed, in [RFC3339](https://www.ietf.
5694
+ # Output only. The time the operation completed, in [RFC3339](https://www.ietf.
4081
5695
  # org/rfc/rfc3339.txt) text format.
4082
5696
  # Corresponds to the JSON property `endTime`
4083
5697
  # @return [String]
@@ -4093,15 +5707,15 @@ module Google
4093
5707
  # @return [Google::Apis::ContainerV1::Status]
4094
5708
  attr_accessor :error
4095
5709
 
4096
- # [Output only] The name of the Google Compute Engine [zone](https://cloud.
4097
- # google.com/compute/docs/regions-zones/regions-zones#available) or [region](
4098
- # https://cloud.google.com/compute/docs/regions-zones/regions-zones#available)
4099
- # in which the cluster resides.
5710
+ # Output only. The name of the Google Compute Engine [zone](https://cloud.google.
5711
+ # com/compute/docs/regions-zones/regions-zones#available) or [region](https://
5712
+ # cloud.google.com/compute/docs/regions-zones/regions-zones#available) in which
5713
+ # the cluster resides.
4100
5714
  # Corresponds to the JSON property `location`
4101
5715
  # @return [String]
4102
5716
  attr_accessor :location
4103
5717
 
4104
- # The server-assigned ID for the operation.
5718
+ # Output only. The server-assigned ID for the operation.
4105
5719
  # Corresponds to the JSON property `name`
4106
5720
  # @return [String]
4107
5721
  attr_accessor :name
@@ -4112,7 +5726,7 @@ module Google
4112
5726
  # @return [Array<Google::Apis::ContainerV1::StatusCondition>]
4113
5727
  attr_accessor :nodepool_conditions
4114
5728
 
4115
- # The operation type.
5729
+ # Output only. The operation type.
4116
5730
  # Corresponds to the JSON property `operationType`
4117
5731
  # @return [String]
4118
5732
  attr_accessor :operation_type
@@ -4122,18 +5736,20 @@ module Google
4122
5736
  # @return [Google::Apis::ContainerV1::OperationProgress]
4123
5737
  attr_accessor :progress
4124
5738
 
4125
- # Server-defined URL for the resource.
5739
+ # Output only. Server-defined URI for the operation. Example: `https://container.
5740
+ # googleapis.com/v1alpha1/projects/123/locations/us-central1/operations/
5741
+ # operation-123`.
4126
5742
  # Corresponds to the JSON property `selfLink`
4127
5743
  # @return [String]
4128
5744
  attr_accessor :self_link
4129
5745
 
4130
- # [Output only] The time the operation started, in [RFC3339](https://www.ietf.
4131
- # org/rfc/rfc3339.txt) text format.
5746
+ # Output only. The time the operation started, in [RFC3339](https://www.ietf.org/
5747
+ # rfc/rfc3339.txt) text format.
4132
5748
  # Corresponds to the JSON property `startTime`
4133
5749
  # @return [String]
4134
5750
  attr_accessor :start_time
4135
5751
 
4136
- # The current status of the operation.
5752
+ # Output only. The current status of the operation.
4137
5753
  # Corresponds to the JSON property `status`
4138
5754
  # @return [String]
4139
5755
  attr_accessor :status
@@ -4144,14 +5760,21 @@ module Google
4144
5760
  # @return [String]
4145
5761
  attr_accessor :status_message
4146
5762
 
4147
- # Server-defined URL for the target of the operation.
5763
+ # Output only. Server-defined URI for the target of the operation. The format of
5764
+ # this is a URI to the resource being modified (such as a cluster, node pool, or
5765
+ # node). For node pool repairs, there may be multiple nodes being repaired, but
5766
+ # only one will be the target. Examples: - ## `https://container.googleapis.com/
5767
+ # v1/projects/123/locations/us-central1/clusters/my-cluster` ## `https://
5768
+ # container.googleapis.com/v1/projects/123/zones/us-central1-c/clusters/my-
5769
+ # cluster/nodePools/my-np` `https://container.googleapis.com/v1/projects/123/
5770
+ # zones/us-central1-c/clusters/my-cluster/nodePools/my-np/node/my-node`
4148
5771
  # Corresponds to the JSON property `targetLink`
4149
5772
  # @return [String]
4150
5773
  attr_accessor :target_link
4151
5774
 
4152
- # The name of the Google Compute Engine [zone](https://cloud.google.com/compute/
4153
- # docs/zones#available) in which the operation is taking place. This field is
4154
- # deprecated, use location instead.
5775
+ # Output only. The name of the Google Compute Engine [zone](https://cloud.google.
5776
+ # com/compute/docs/zones#available) in which the operation is taking place. This
5777
+ # field is deprecated, use location instead.
4155
5778
  # Corresponds to the JSON property `zone`
4156
5779
  # @return [String]
4157
5780
  attr_accessor :zone
@@ -4180,6 +5803,38 @@ module Google
4180
5803
  end
4181
5804
  end
4182
5805
 
5806
+ # OperationError records errors seen from CloudKMS keys encountered during
5807
+ # updates to DatabaseEncryption configuration.
5808
+ class OperationError
5809
+ include Google::Apis::Core::Hashable
5810
+
5811
+ # Description of the error seen during the operation.
5812
+ # Corresponds to the JSON property `errorMessage`
5813
+ # @return [String]
5814
+ attr_accessor :error_message
5815
+
5816
+ # CloudKMS key resource that had the error.
5817
+ # Corresponds to the JSON property `keyName`
5818
+ # @return [String]
5819
+ attr_accessor :key_name
5820
+
5821
+ # Time when the CloudKMS error was seen.
5822
+ # Corresponds to the JSON property `timestamp`
5823
+ # @return [String]
5824
+ attr_accessor :timestamp
5825
+
5826
+ def initialize(**args)
5827
+ update!(**args)
5828
+ end
5829
+
5830
+ # Update properties of this object
5831
+ def update!(**args)
5832
+ @error_message = args[:error_message] if args.key?(:error_message)
5833
+ @key_name = args[:key_name] if args.key?(:key_name)
5834
+ @timestamp = args[:timestamp] if args.key?(:timestamp)
5835
+ end
5836
+ end
5837
+
4183
5838
  # Information about operation (or operation stage) progress.
4184
5839
  class OperationProgress
4185
5840
  include Google::Apis::Core::Hashable
@@ -4220,10 +5875,70 @@ module Google
4220
5875
  end
4221
5876
  end
4222
5877
 
5878
+ # Configuration for the Cloud Storage Parallelstore CSI driver.
5879
+ class ParallelstoreCsiDriverConfig
5880
+ include Google::Apis::Core::Hashable
5881
+
5882
+ # Whether the Cloud Storage Parallelstore CSI driver is enabled for this cluster.
5883
+ # Corresponds to the JSON property `enabled`
5884
+ # @return [Boolean]
5885
+ attr_accessor :enabled
5886
+ alias_method :enabled?, :enabled
5887
+
5888
+ def initialize(**args)
5889
+ update!(**args)
5890
+ end
5891
+
5892
+ # Update properties of this object
5893
+ def update!(**args)
5894
+ @enabled = args[:enabled] if args.key?(:enabled)
5895
+ end
5896
+ end
5897
+
5898
+ # ParentProductConfig is the configuration of the parent product of the cluster.
5899
+ # This field is used by Google internal products that are built on top of a GKE
5900
+ # cluster and take the ownership of the cluster.
5901
+ class ParentProductConfig
5902
+ include Google::Apis::Core::Hashable
5903
+
5904
+ # Labels contain the configuration of the parent product.
5905
+ # Corresponds to the JSON property `labels`
5906
+ # @return [Hash<String,String>]
5907
+ attr_accessor :labels
5908
+
5909
+ # Name of the parent product associated with the cluster.
5910
+ # Corresponds to the JSON property `productName`
5911
+ # @return [String]
5912
+ attr_accessor :product_name
5913
+
5914
+ def initialize(**args)
5915
+ update!(**args)
5916
+ end
5917
+
5918
+ # Update properties of this object
5919
+ def update!(**args)
5920
+ @labels = args[:labels] if args.key?(:labels)
5921
+ @product_name = args[:product_name] if args.key?(:product_name)
5922
+ end
5923
+ end
5924
+
4223
5925
  # PlacementPolicy defines the placement policy used by the node pool.
4224
5926
  class PlacementPolicy
4225
5927
  include Google::Apis::Core::Hashable
4226
5928
 
5929
+ # If set, refers to the name of a custom resource policy supplied by the user.
5930
+ # The resource policy must be in the same project and region as the node pool.
5931
+ # If not found, InvalidArgument error is returned.
5932
+ # Corresponds to the JSON property `policyName`
5933
+ # @return [String]
5934
+ attr_accessor :policy_name
5935
+
5936
+ # Optional. TPU placement topology for pod slice node pool. https://cloud.google.
5937
+ # com/tpu/docs/types-topologies#tpu_topologies
5938
+ # Corresponds to the JSON property `tpuTopology`
5939
+ # @return [String]
5940
+ attr_accessor :tpu_topology
5941
+
4227
5942
  # The type of placement.
4228
5943
  # Corresponds to the JSON property `type`
4229
5944
  # @return [String]
@@ -4235,15 +5950,62 @@ module Google
4235
5950
 
4236
5951
  # Update properties of this object
4237
5952
  def update!(**args)
5953
+ @policy_name = args[:policy_name] if args.key?(:policy_name)
5954
+ @tpu_topology = args[:tpu_topology] if args.key?(:tpu_topology)
4238
5955
  @type = args[:type] if args.key?(:type)
4239
5956
  end
4240
5957
  end
4241
5958
 
5959
+ # PodAutoscaling is used for configuration of parameters for workload
5960
+ # autoscaling.
5961
+ class PodAutoscaling
5962
+ include Google::Apis::Core::Hashable
5963
+
5964
+ # Selected Horizontal Pod Autoscaling profile.
5965
+ # Corresponds to the JSON property `hpaProfile`
5966
+ # @return [String]
5967
+ attr_accessor :hpa_profile
5968
+
5969
+ def initialize(**args)
5970
+ update!(**args)
5971
+ end
5972
+
5973
+ # Update properties of this object
5974
+ def update!(**args)
5975
+ @hpa_profile = args[:hpa_profile] if args.key?(:hpa_profile)
5976
+ end
5977
+ end
5978
+
5979
+ # [PRIVATE FIELD] Config for pod CIDR size overprovisioning.
5980
+ class PodCidrOverprovisionConfig
5981
+ include Google::Apis::Core::Hashable
5982
+
5983
+ # Whether Pod CIDR overprovisioning is disabled. Note: Pod CIDR overprovisioning
5984
+ # is enabled by default.
5985
+ # Corresponds to the JSON property `disable`
5986
+ # @return [Boolean]
5987
+ attr_accessor :disable
5988
+ alias_method :disable?, :disable
5989
+
5990
+ def initialize(**args)
5991
+ update!(**args)
5992
+ end
5993
+
5994
+ # Update properties of this object
5995
+ def update!(**args)
5996
+ @disable = args[:disable] if args.key?(:disable)
5997
+ end
5998
+ end
5999
+
4242
6000
  # Configuration options for private clusters.
4243
6001
  class PrivateClusterConfig
4244
6002
  include Google::Apis::Core::Hashable
4245
6003
 
4246
6004
  # Whether the master's internal IP address is used as the cluster endpoint.
6005
+ # Deprecated: Use ControlPlaneEndpointsConfig.IPEndpointsConfig.
6006
+ # enable_public_endpoint instead. Note that the value of enable_public_endpoint
6007
+ # is reversed: if enable_private_endpoint is false, then enable_public_endpoint
6008
+ # will be true.
4247
6009
  # Corresponds to the JSON property `enablePrivateEndpoint`
4248
6010
  # @return [Boolean]
4249
6011
  attr_accessor :enable_private_endpoint
@@ -4251,7 +6013,7 @@ module Google
4251
6013
 
4252
6014
  # Whether nodes have internal IP addresses only. If enabled, all nodes are given
4253
6015
  # only RFC 1918 private addresses and communicate with the master via private
4254
- # networking.
6016
+ # networking. Deprecated: Use NetworkConfig.default_enable_private_nodes instead.
4255
6017
  # Corresponds to the JSON property `enablePrivateNodes`
4256
6018
  # @return [Boolean]
4257
6019
  attr_accessor :enable_private_nodes
@@ -4276,17 +6038,23 @@ module Google
4276
6038
  attr_accessor :peering_name
4277
6039
 
4278
6040
  # Output only. The internal IP address of this cluster's master endpoint.
6041
+ # Deprecated: Use ControlPlaneEndpointsConfig.IPEndpointsConfig.private_endpoint
6042
+ # instead.
4279
6043
  # Corresponds to the JSON property `privateEndpoint`
4280
6044
  # @return [String]
4281
6045
  attr_accessor :private_endpoint
4282
6046
 
4283
6047
  # Subnet to provision the master's private endpoint during cluster creation.
4284
- # Specified in projects/*/regions/*/subnetworks/* format.
6048
+ # Specified in projects/*/regions/*/subnetworks/* format. Deprecated: Use
6049
+ # ControlPlaneEndpointsConfig.IPEndpointsConfig.private_endpoint_subnetwork
6050
+ # instead.
4285
6051
  # Corresponds to the JSON property `privateEndpointSubnetwork`
4286
6052
  # @return [String]
4287
6053
  attr_accessor :private_endpoint_subnetwork
4288
6054
 
4289
6055
  # Output only. The external IP address of this cluster's master endpoint.
6056
+ # Deprecated:Use ControlPlaneEndpointsConfig.IPEndpointsConfig.public_endpoint
6057
+ # instead.
4290
6058
  # Corresponds to the JSON property `publicEndpoint`
4291
6059
  # @return [String]
4292
6060
  attr_accessor :public_endpoint
@@ -4328,6 +6096,33 @@ module Google
4328
6096
  end
4329
6097
  end
4330
6098
 
6099
+ # PrivateRegistryAccessConfig contains access configuration for private
6100
+ # container registries.
6101
+ class PrivateRegistryAccessConfig
6102
+ include Google::Apis::Core::Hashable
6103
+
6104
+ # Private registry access configuration.
6105
+ # Corresponds to the JSON property `certificateAuthorityDomainConfig`
6106
+ # @return [Array<Google::Apis::ContainerV1::CertificateAuthorityDomainConfig>]
6107
+ attr_accessor :certificate_authority_domain_config
6108
+
6109
+ # Private registry access is enabled.
6110
+ # Corresponds to the JSON property `enabled`
6111
+ # @return [Boolean]
6112
+ attr_accessor :enabled
6113
+ alias_method :enabled?, :enabled
6114
+
6115
+ def initialize(**args)
6116
+ update!(**args)
6117
+ end
6118
+
6119
+ # Update properties of this object
6120
+ def update!(**args)
6121
+ @certificate_authority_domain_config = args[:certificate_authority_domain_config] if args.key?(:certificate_authority_domain_config)
6122
+ @enabled = args[:enabled] if args.key?(:enabled)
6123
+ end
6124
+ end
6125
+
4331
6126
  # Pub/Sub specific notification config.
4332
6127
  class PubSub
4333
6128
  include Google::Apis::Core::Hashable
@@ -4364,6 +6159,154 @@ module Google
4364
6159
  end
4365
6160
  end
4366
6161
 
6162
+ # QueuedProvisioning defines the queued provisioning used by the node pool.
6163
+ class QueuedProvisioning
6164
+ include Google::Apis::Core::Hashable
6165
+
6166
+ # Denotes that this nodepool is QRM specific, meaning nodes can be only obtained
6167
+ # through queuing via the Cluster Autoscaler ProvisioningRequest API.
6168
+ # Corresponds to the JSON property `enabled`
6169
+ # @return [Boolean]
6170
+ attr_accessor :enabled
6171
+ alias_method :enabled?, :enabled
6172
+
6173
+ def initialize(**args)
6174
+ update!(**args)
6175
+ end
6176
+
6177
+ # Update properties of this object
6178
+ def update!(**args)
6179
+ @enabled = args[:enabled] if args.key?(:enabled)
6180
+ end
6181
+ end
6182
+
6183
+ # RBACBindingConfig allows user to restrict ClusterRoleBindings an RoleBindings
6184
+ # that can be created.
6185
+ class RbacBindingConfig
6186
+ include Google::Apis::Core::Hashable
6187
+
6188
+ # Setting this to true will allow any ClusterRoleBinding and RoleBinding with
6189
+ # subjects system:authenticated.
6190
+ # Corresponds to the JSON property `enableInsecureBindingSystemAuthenticated`
6191
+ # @return [Boolean]
6192
+ attr_accessor :enable_insecure_binding_system_authenticated
6193
+ alias_method :enable_insecure_binding_system_authenticated?, :enable_insecure_binding_system_authenticated
6194
+
6195
+ # Setting this to true will allow any ClusterRoleBinding and RoleBinding with
6196
+ # subjets system:anonymous or system:unauthenticated.
6197
+ # Corresponds to the JSON property `enableInsecureBindingSystemUnauthenticated`
6198
+ # @return [Boolean]
6199
+ attr_accessor :enable_insecure_binding_system_unauthenticated
6200
+ alias_method :enable_insecure_binding_system_unauthenticated?, :enable_insecure_binding_system_unauthenticated
6201
+
6202
+ def initialize(**args)
6203
+ update!(**args)
6204
+ end
6205
+
6206
+ # Update properties of this object
6207
+ def update!(**args)
6208
+ @enable_insecure_binding_system_authenticated = args[:enable_insecure_binding_system_authenticated] if args.key?(:enable_insecure_binding_system_authenticated)
6209
+ @enable_insecure_binding_system_unauthenticated = args[:enable_insecure_binding_system_unauthenticated] if args.key?(:enable_insecure_binding_system_unauthenticated)
6210
+ end
6211
+ end
6212
+
6213
+ # RangeInfo contains the range name and the range utilization by this cluster.
6214
+ class RangeInfo
6215
+ include Google::Apis::Core::Hashable
6216
+
6217
+ # Output only. Name of a range.
6218
+ # Corresponds to the JSON property `rangeName`
6219
+ # @return [String]
6220
+ attr_accessor :range_name
6221
+
6222
+ # Output only. The utilization of the range.
6223
+ # Corresponds to the JSON property `utilization`
6224
+ # @return [Float]
6225
+ attr_accessor :utilization
6226
+
6227
+ def initialize(**args)
6228
+ update!(**args)
6229
+ end
6230
+
6231
+ # Update properties of this object
6232
+ def update!(**args)
6233
+ @range_name = args[:range_name] if args.key?(:range_name)
6234
+ @utilization = args[:utilization] if args.key?(:utilization)
6235
+ end
6236
+ end
6237
+
6238
+ # RayClusterLoggingConfig specifies configuration of Ray logging.
6239
+ class RayClusterLoggingConfig
6240
+ include Google::Apis::Core::Hashable
6241
+
6242
+ # Enable log collection for Ray clusters.
6243
+ # Corresponds to the JSON property `enabled`
6244
+ # @return [Boolean]
6245
+ attr_accessor :enabled
6246
+ alias_method :enabled?, :enabled
6247
+
6248
+ def initialize(**args)
6249
+ update!(**args)
6250
+ end
6251
+
6252
+ # Update properties of this object
6253
+ def update!(**args)
6254
+ @enabled = args[:enabled] if args.key?(:enabled)
6255
+ end
6256
+ end
6257
+
6258
+ # RayClusterMonitoringConfig specifies monitoring configuration for Ray clusters.
6259
+ class RayClusterMonitoringConfig
6260
+ include Google::Apis::Core::Hashable
6261
+
6262
+ # Enable metrics collection for Ray clusters.
6263
+ # Corresponds to the JSON property `enabled`
6264
+ # @return [Boolean]
6265
+ attr_accessor :enabled
6266
+ alias_method :enabled?, :enabled
6267
+
6268
+ def initialize(**args)
6269
+ update!(**args)
6270
+ end
6271
+
6272
+ # Update properties of this object
6273
+ def update!(**args)
6274
+ @enabled = args[:enabled] if args.key?(:enabled)
6275
+ end
6276
+ end
6277
+
6278
+ # Configuration options for the Ray Operator add-on.
6279
+ class RayOperatorConfig
6280
+ include Google::Apis::Core::Hashable
6281
+
6282
+ # Whether the Ray Operator addon is enabled for this cluster.
6283
+ # Corresponds to the JSON property `enabled`
6284
+ # @return [Boolean]
6285
+ attr_accessor :enabled
6286
+ alias_method :enabled?, :enabled
6287
+
6288
+ # RayClusterLoggingConfig specifies configuration of Ray logging.
6289
+ # Corresponds to the JSON property `rayClusterLoggingConfig`
6290
+ # @return [Google::Apis::ContainerV1::RayClusterLoggingConfig]
6291
+ attr_accessor :ray_cluster_logging_config
6292
+
6293
+ # RayClusterMonitoringConfig specifies monitoring configuration for Ray clusters.
6294
+ # Corresponds to the JSON property `rayClusterMonitoringConfig`
6295
+ # @return [Google::Apis::ContainerV1::RayClusterMonitoringConfig]
6296
+ attr_accessor :ray_cluster_monitoring_config
6297
+
6298
+ def initialize(**args)
6299
+ update!(**args)
6300
+ end
6301
+
6302
+ # Update properties of this object
6303
+ def update!(**args)
6304
+ @enabled = args[:enabled] if args.key?(:enabled)
6305
+ @ray_cluster_logging_config = args[:ray_cluster_logging_config] if args.key?(:ray_cluster_logging_config)
6306
+ @ray_cluster_monitoring_config = args[:ray_cluster_monitoring_config] if args.key?(:ray_cluster_monitoring_config)
6307
+ end
6308
+ end
6309
+
4367
6310
  # Represents an arbitrary window of time that recurs.
4368
6311
  class RecurringTimeWindow
4369
6312
  include Google::Apis::Core::Hashable
@@ -4439,6 +6382,11 @@ module Google
4439
6382
  # @return [String]
4440
6383
  attr_accessor :default_version
4441
6384
 
6385
+ # The auto upgrade target version for clusters on the channel.
6386
+ # Corresponds to the JSON property `upgradeTargetVersion`
6387
+ # @return [String]
6388
+ attr_accessor :upgrade_target_version
6389
+
4442
6390
  # List of valid versions for the channel.
4443
6391
  # Corresponds to the JSON property `validVersions`
4444
6392
  # @return [Array<String>]
@@ -4452,6 +6400,7 @@ module Google
4452
6400
  def update!(**args)
4453
6401
  @channel = args[:channel] if args.key?(:channel)
4454
6402
  @default_version = args[:default_version] if args.key?(:default_version)
6403
+ @upgrade_target_version = args[:upgrade_target_version] if args.key?(:upgrade_target_version)
4455
6404
  @valid_versions = args[:valid_versions] if args.key?(:valid_versions)
4456
6405
  end
4457
6406
  end
@@ -4543,6 +6492,31 @@ module Google
4543
6492
  end
4544
6493
  end
4545
6494
 
6495
+ # A map of resource manager tag keys and values to be attached to the nodes for
6496
+ # managing Compute Engine firewalls using Network Firewall Policies. Tags must
6497
+ # be according to specifications in https://cloud.google.com/vpc/docs/tags-
6498
+ # firewalls-overview#specifications. A maximum of 5 tag key-value pairs can be
6499
+ # specified. Existing tags will be replaced with new values.
6500
+ class ResourceManagerTags
6501
+ include Google::Apis::Core::Hashable
6502
+
6503
+ # TagKeyValue must be in one of the following formats ([KEY]=[VALUE]) 1. `
6504
+ # tagKeys/`tag_key_id`=tagValues/`tag_value_id`` 2. ``org_id`/`tag_key_name`=`
6505
+ # tag_value_name`` 3. ``project_id`/`tag_key_name`=`tag_value_name``
6506
+ # Corresponds to the JSON property `tags`
6507
+ # @return [Hash<String,String>]
6508
+ attr_accessor :tags
6509
+
6510
+ def initialize(**args)
6511
+ update!(**args)
6512
+ end
6513
+
6514
+ # Update properties of this object
6515
+ def update!(**args)
6516
+ @tags = args[:tags] if args.key?(:tags)
6517
+ end
6518
+ end
6519
+
4546
6520
  # Configuration for exporting cluster resource usages.
4547
6521
  class ResourceUsageExportConfig
4548
6522
  include Google::Apis::Core::Hashable
@@ -4640,10 +6614,70 @@ module Google
4640
6614
  class SandboxConfig
4641
6615
  include Google::Apis::Core::Hashable
4642
6616
 
4643
- # Type of the sandbox to use for the node.
4644
- # Corresponds to the JSON property `type`
4645
- # @return [String]
4646
- attr_accessor :type
6617
+ # Type of the sandbox to use for the node.
6618
+ # Corresponds to the JSON property `type`
6619
+ # @return [String]
6620
+ attr_accessor :type
6621
+
6622
+ def initialize(**args)
6623
+ update!(**args)
6624
+ end
6625
+
6626
+ # Update properties of this object
6627
+ def update!(**args)
6628
+ @type = args[:type] if args.key?(:type)
6629
+ end
6630
+ end
6631
+
6632
+ # SecondaryBootDisk represents a persistent disk attached to a node with special
6633
+ # configurations based on its mode.
6634
+ class SecondaryBootDisk
6635
+ include Google::Apis::Core::Hashable
6636
+
6637
+ # Fully-qualified resource ID for an existing disk image.
6638
+ # Corresponds to the JSON property `diskImage`
6639
+ # @return [String]
6640
+ attr_accessor :disk_image
6641
+
6642
+ # Disk mode (container image cache, etc.)
6643
+ # Corresponds to the JSON property `mode`
6644
+ # @return [String]
6645
+ attr_accessor :mode
6646
+
6647
+ def initialize(**args)
6648
+ update!(**args)
6649
+ end
6650
+
6651
+ # Update properties of this object
6652
+ def update!(**args)
6653
+ @disk_image = args[:disk_image] if args.key?(:disk_image)
6654
+ @mode = args[:mode] if args.key?(:mode)
6655
+ end
6656
+ end
6657
+
6658
+ # SecondaryBootDiskUpdateStrategy is a placeholder which will be extended in the
6659
+ # future to define different options for updating secondary boot disks.
6660
+ class SecondaryBootDiskUpdateStrategy
6661
+ include Google::Apis::Core::Hashable
6662
+
6663
+ def initialize(**args)
6664
+ update!(**args)
6665
+ end
6666
+
6667
+ # Update properties of this object
6668
+ def update!(**args)
6669
+ end
6670
+ end
6671
+
6672
+ # SecretManagerConfig is config for secret manager enablement.
6673
+ class SecretManagerConfig
6674
+ include Google::Apis::Core::Hashable
6675
+
6676
+ # Enable/Disable Secret Manager Config.
6677
+ # Corresponds to the JSON property `enabled`
6678
+ # @return [Boolean]
6679
+ attr_accessor :enabled
6680
+ alias_method :enabled?, :enabled
4647
6681
 
4648
6682
  def initialize(**args)
4649
6683
  update!(**args)
@@ -4651,7 +6685,7 @@ module Google
4651
6685
 
4652
6686
  # Update properties of this object
4653
6687
  def update!(**args)
4654
- @type = args[:type] if args.key?(:type)
6688
+ @enabled = args[:enabled] if args.key?(:enabled)
4655
6689
  end
4656
6690
  end
4657
6691
 
@@ -4693,6 +6727,11 @@ module Google
4693
6727
  attr_accessor :manual_steps_required
4694
6728
  alias_method :manual_steps_required?, :manual_steps_required
4695
6729
 
6730
+ # The GKE versions where this vulnerability is mitigated.
6731
+ # Corresponds to the JSON property `mitigatedVersions`
6732
+ # @return [Array<String>]
6733
+ attr_accessor :mitigated_versions
6734
+
4696
6735
  # The GKE versions where this vulnerability is patched.
4697
6736
  # Corresponds to the JSON property `patchedVersions`
4698
6737
  # @return [Array<String>]
@@ -4731,6 +6770,7 @@ module Google
4731
6770
  @bulletin_uri = args[:bulletin_uri] if args.key?(:bulletin_uri)
4732
6771
  @cve_ids = args[:cve_ids] if args.key?(:cve_ids)
4733
6772
  @manual_steps_required = args[:manual_steps_required] if args.key?(:manual_steps_required)
6773
+ @mitigated_versions = args[:mitigated_versions] if args.key?(:mitigated_versions)
4734
6774
  @patched_versions = args[:patched_versions] if args.key?(:patched_versions)
4735
6775
  @resource_type_affected = args[:resource_type_affected] if args.key?(:resource_type_affected)
4736
6776
  @severity = args[:severity] if args.key?(:severity)
@@ -4738,6 +6778,32 @@ module Google
4738
6778
  end
4739
6779
  end
4740
6780
 
6781
+ # SecurityPostureConfig defines the flags needed to enable/disable features for
6782
+ # the Security Posture API.
6783
+ class SecurityPostureConfig
6784
+ include Google::Apis::Core::Hashable
6785
+
6786
+ # Sets which mode to use for Security Posture features.
6787
+ # Corresponds to the JSON property `mode`
6788
+ # @return [String]
6789
+ attr_accessor :mode
6790
+
6791
+ # Sets which mode to use for vulnerability scanning.
6792
+ # Corresponds to the JSON property `vulnerabilityMode`
6793
+ # @return [String]
6794
+ attr_accessor :vulnerability_mode
6795
+
6796
+ def initialize(**args)
6797
+ update!(**args)
6798
+ end
6799
+
6800
+ # Update properties of this object
6801
+ def update!(**args)
6802
+ @mode = args[:mode] if args.key?(:mode)
6803
+ @vulnerability_mode = args[:vulnerability_mode] if args.key?(:vulnerability_mode)
6804
+ end
6805
+ end
6806
+
4741
6807
  # Kubernetes Engine service configuration.
4742
6808
  class ServerConfig
4743
6809
  include Google::Apis::Core::Hashable
@@ -5191,7 +7257,7 @@ module Google
5191
7257
  attr_accessor :cluster_id
5192
7258
 
5193
7259
  # Required. The monitoring service the cluster should use to write metrics.
5194
- # Currently available options: * "monitoring.googleapis.com/kubernetes" - The
7260
+ # Currently available options: * `monitoring.googleapis.com/kubernetes` - The
5195
7261
  # Cloud Monitoring service with a Kubernetes-native resource model * `monitoring.
5196
7262
  # googleapis.com` - The legacy Cloud Monitoring service (no longer available as
5197
7263
  # of GKE 1.15). * `none` - No metrics will be exported from the cluster. If left
@@ -5512,6 +7578,26 @@ module Google
5512
7578
  end
5513
7579
  end
5514
7580
 
7581
+ # SoleTenantConfig contains the NodeAffinities to specify what shared sole
7582
+ # tenant node groups should back the node pool.
7583
+ class SoleTenantConfig
7584
+ include Google::Apis::Core::Hashable
7585
+
7586
+ # NodeAffinities used to match to a shared sole tenant node group.
7587
+ # Corresponds to the JSON property `nodeAffinities`
7588
+ # @return [Array<Google::Apis::ContainerV1::NodeAffinity>]
7589
+ attr_accessor :node_affinities
7590
+
7591
+ def initialize(**args)
7592
+ update!(**args)
7593
+ end
7594
+
7595
+ # Update properties of this object
7596
+ def update!(**args)
7597
+ @node_affinities = args[:node_affinities] if args.key?(:node_affinities)
7598
+ end
7599
+ end
7600
+
5515
7601
  # Standard rollout policy is the default policy for blue-green.
5516
7602
  class StandardRolloutPolicy
5517
7603
  include Google::Apis::Core::Hashable
@@ -5595,6 +7681,26 @@ module Google
5595
7681
  end
5596
7682
  end
5597
7683
 
7684
+ # Configuration for the Stateful HA add-on.
7685
+ class StatefulHaConfig
7686
+ include Google::Apis::Core::Hashable
7687
+
7688
+ # Whether the Stateful HA add-on is enabled for this cluster.
7689
+ # Corresponds to the JSON property `enabled`
7690
+ # @return [Boolean]
7691
+ attr_accessor :enabled
7692
+ alias_method :enabled?, :enabled
7693
+
7694
+ def initialize(**args)
7695
+ update!(**args)
7696
+ end
7697
+
7698
+ # Update properties of this object
7699
+ def update!(**args)
7700
+ @enabled = args[:enabled] if args.key?(:enabled)
7701
+ end
7702
+ end
7703
+
5598
7704
  # The `Status` type defines a logical error model that is suitable for different
5599
7705
  # programming environments, including REST APIs and RPC APIs. It is used by [
5600
7706
  # gRPC](https://github.com/grpc). Each `Status` message contains three pieces of
@@ -5699,6 +7805,48 @@ module Google
5699
7805
  end
5700
7806
  end
5701
7807
 
7808
+ # TopologyManager defines the configuration options for Topology Manager feature.
7809
+ # See https://kubernetes.io/docs/tasks/administer-cluster/topology-manager/
7810
+ class TopologyManager
7811
+ include Google::Apis::Core::Hashable
7812
+
7813
+ # Configures the strategy for resource alignment. Allowed values are: * none:
7814
+ # the default policy, and does not perform any topology alignment. * restricted:
7815
+ # the topology manager stores the preferred NUMA node affinity for the container,
7816
+ # and will reject the pod if the affinity if not preferred. * best-effort: the
7817
+ # topology manager stores the preferred NUMA node affinity for the container. If
7818
+ # the affinity is not preferred, the topology manager will admit the pod to the
7819
+ # node anyway. * single-numa-node: the topology manager determines if the single
7820
+ # NUMA node affinity is possible. If it is, Topology Manager will store this and
7821
+ # the Hint Providers can then use this information when making the resource
7822
+ # allocation decision. If, however, this is not possible then the Topology
7823
+ # Manager will reject the pod from the node. This will result in a pod in a
7824
+ # Terminated state with a pod admission failure. The default policy value is '
7825
+ # none' if unspecified. Details about each strategy can be found [here](https://
7826
+ # kubernetes.io/docs/tasks/administer-cluster/topology-manager/#topology-manager-
7827
+ # policies).
7828
+ # Corresponds to the JSON property `policy`
7829
+ # @return [String]
7830
+ attr_accessor :policy
7831
+
7832
+ # The Topology Manager aligns resources in following scopes: * container * pod
7833
+ # The default scope is 'container' if unspecified. See https://kubernetes.io/
7834
+ # docs/tasks/administer-cluster/topology-manager/#topology-manager-scopes
7835
+ # Corresponds to the JSON property `scope`
7836
+ # @return [String]
7837
+ attr_accessor :scope
7838
+
7839
+ def initialize(**args)
7840
+ update!(**args)
7841
+ end
7842
+
7843
+ # Update properties of this object
7844
+ def update!(**args)
7845
+ @policy = args[:policy] if args.key?(:policy)
7846
+ @scope = args[:scope] if args.key?(:scope)
7847
+ end
7848
+ end
7849
+
5702
7850
  # UpdateClusterRequest updates the settings of a cluster.
5703
7851
  class UpdateClusterRequest
5704
7852
  include Google::Apis::Core::Hashable
@@ -5828,6 +7976,12 @@ module Google
5828
7976
  class UpdateNodePoolRequest
5829
7977
  include Google::Apis::Core::Hashable
5830
7978
 
7979
+ # A list of hardware accelerators to be attached to each node. See https://cloud.
7980
+ # google.com/compute/docs/gpus for more information about support for GPUs.
7981
+ # Corresponds to the JSON property `accelerators`
7982
+ # @return [Array<Google::Apis::ContainerV1::AcceleratorConfig>]
7983
+ attr_accessor :accelerators
7984
+
5831
7985
  # Deprecated. The name of the cluster to upgrade. This field has been deprecated
5832
7986
  # and replaced by the name field.
5833
7987
  # Corresponds to the JSON property `clusterId`
@@ -5840,6 +7994,25 @@ module Google
5840
7994
  # @return [Google::Apis::ContainerV1::ConfidentialNodes]
5841
7995
  attr_accessor :confidential_nodes
5842
7996
 
7997
+ # ContainerdConfig contains configuration to customize containerd.
7998
+ # Corresponds to the JSON property `containerdConfig`
7999
+ # @return [Google::Apis::ContainerV1::ContainerdConfig]
8000
+ attr_accessor :containerd_config
8001
+
8002
+ # Optional. The desired disk size for nodes in the node pool specified in GB.
8003
+ # The smallest allowed disk size is 10GB. Initiates an upgrade operation that
8004
+ # migrates the nodes in the node pool to the specified disk size.
8005
+ # Corresponds to the JSON property `diskSizeGb`
8006
+ # @return [Fixnum]
8007
+ attr_accessor :disk_size_gb
8008
+
8009
+ # Optional. The desired disk type (e.g. 'pd-standard', 'pd-ssd' or 'pd-balanced')
8010
+ # for nodes in the node pool. Initiates an upgrade operation that migrates the
8011
+ # nodes in the node pool to the specified disk type.
8012
+ # Corresponds to the JSON property `diskType`
8013
+ # @return [String]
8014
+ attr_accessor :disk_type
8015
+
5843
8016
  # The current etag of the node pool. If an etag is provided and does not match
5844
8017
  # the current etag of the node pool, update will be blocked and an ABORTED error
5845
8018
  # will be returned.
@@ -5852,6 +8025,12 @@ module Google
5852
8025
  # @return [Google::Apis::ContainerV1::FastSocket]
5853
8026
  attr_accessor :fast_socket
5854
8027
 
8028
+ # Flex Start flag for enabling Flex Start VM.
8029
+ # Corresponds to the JSON property `flexStart`
8030
+ # @return [Boolean]
8031
+ attr_accessor :flex_start
8032
+ alias_method :flex_start?, :flex_start
8033
+
5855
8034
  # GcfsConfig contains configurations of Google Container File System (image
5856
8035
  # streaming).
5857
8036
  # Corresponds to the JSON property `gcfsConfig`
@@ -5863,7 +8042,9 @@ module Google
5863
8042
  # @return [Google::Apis::ContainerV1::VirtualNic]
5864
8043
  attr_accessor :gvnic
5865
8044
 
5866
- # Required. The desired image type for the node pool.
8045
+ # Required. The desired image type for the node pool. Please see https://cloud.
8046
+ # google.com/kubernetes-engine/docs/concepts/node-images for available image
8047
+ # types.
5867
8048
  # Corresponds to the JSON property `imageType`
5868
8049
  # @return [String]
5869
8050
  attr_accessor :image_type
@@ -5898,6 +8079,20 @@ module Google
5898
8079
  # @return [Google::Apis::ContainerV1::NodePoolLoggingConfig]
5899
8080
  attr_accessor :logging_config
5900
8081
 
8082
+ # Optional. The desired [Google Compute Engine machine type](https://cloud.
8083
+ # google.com/compute/docs/machine-types) for nodes in the node pool. Initiates
8084
+ # an upgrade operation that migrates the nodes in the node pool to the specified
8085
+ # machine type.
8086
+ # Corresponds to the JSON property `machineType`
8087
+ # @return [String]
8088
+ attr_accessor :machine_type
8089
+
8090
+ # The maximum duration for the nodes to exist. If unspecified, the nodes can
8091
+ # exist indefinitely.
8092
+ # Corresponds to the JSON property `maxRunDuration`
8093
+ # @return [String]
8094
+ attr_accessor :max_run_duration
8095
+
5901
8096
  # The name (project, location, cluster, node pool) of the node pool to update.
5902
8097
  # Specified in the format `projects/*/locations/*/clusters/*/nodePools/*`.
5903
8098
  # Corresponds to the JSON property `name`
@@ -5933,12 +8128,32 @@ module Google
5933
8128
  # @return [String]
5934
8129
  attr_accessor :project_id
5935
8130
 
8131
+ # QueuedProvisioning defines the queued provisioning used by the node pool.
8132
+ # Corresponds to the JSON property `queuedProvisioning`
8133
+ # @return [Google::Apis::ContainerV1::QueuedProvisioning]
8134
+ attr_accessor :queued_provisioning
8135
+
5936
8136
  # Collection of [GCP labels](https://cloud.google.com/resource-manager/docs/
5937
8137
  # creating-managing-labels).
5938
8138
  # Corresponds to the JSON property `resourceLabels`
5939
8139
  # @return [Google::Apis::ContainerV1::ResourceLabels]
5940
8140
  attr_accessor :resource_labels
5941
8141
 
8142
+ # A map of resource manager tag keys and values to be attached to the nodes for
8143
+ # managing Compute Engine firewalls using Network Firewall Policies. Tags must
8144
+ # be according to specifications in https://cloud.google.com/vpc/docs/tags-
8145
+ # firewalls-overview#specifications. A maximum of 5 tag key-value pairs can be
8146
+ # specified. Existing tags will be replaced with new values.
8147
+ # Corresponds to the JSON property `resourceManagerTags`
8148
+ # @return [Google::Apis::ContainerV1::ResourceManagerTags]
8149
+ attr_accessor :resource_manager_tags
8150
+
8151
+ # List of Storage Pools where boot disks are provisioned. Existing Storage Pools
8152
+ # will be replaced with storage-pools.
8153
+ # Corresponds to the JSON property `storagePools`
8154
+ # @return [Array<String>]
8155
+ attr_accessor :storage_pools
8156
+
5942
8157
  # Collection of Compute Engine network tags that can be applied to a node's
5943
8158
  # underlying VM instance.
5944
8159
  # Corresponds to the JSON property `tags`
@@ -5988,7 +8203,7 @@ module Google
5988
8203
 
5989
8204
  # Parameters that can be configured on Windows nodes. Windows Node Config that
5990
8205
  # define the parameters that will be used to configure the Windows node pool
5991
- # settings
8206
+ # settings.
5992
8207
  # Corresponds to the JSON property `windowsNodeConfig`
5993
8208
  # @return [Google::Apis::ContainerV1::WindowsNodeConfig]
5994
8209
  attr_accessor :windows_node_config
@@ -6012,10 +8227,15 @@ module Google
6012
8227
 
6013
8228
  # Update properties of this object
6014
8229
  def update!(**args)
8230
+ @accelerators = args[:accelerators] if args.key?(:accelerators)
6015
8231
  @cluster_id = args[:cluster_id] if args.key?(:cluster_id)
6016
8232
  @confidential_nodes = args[:confidential_nodes] if args.key?(:confidential_nodes)
8233
+ @containerd_config = args[:containerd_config] if args.key?(:containerd_config)
8234
+ @disk_size_gb = args[:disk_size_gb] if args.key?(:disk_size_gb)
8235
+ @disk_type = args[:disk_type] if args.key?(:disk_type)
6017
8236
  @etag = args[:etag] if args.key?(:etag)
6018
8237
  @fast_socket = args[:fast_socket] if args.key?(:fast_socket)
8238
+ @flex_start = args[:flex_start] if args.key?(:flex_start)
6019
8239
  @gcfs_config = args[:gcfs_config] if args.key?(:gcfs_config)
6020
8240
  @gvnic = args[:gvnic] if args.key?(:gvnic)
6021
8241
  @image_type = args[:image_type] if args.key?(:image_type)
@@ -6024,12 +8244,17 @@ module Google
6024
8244
  @linux_node_config = args[:linux_node_config] if args.key?(:linux_node_config)
6025
8245
  @locations = args[:locations] if args.key?(:locations)
6026
8246
  @logging_config = args[:logging_config] if args.key?(:logging_config)
8247
+ @machine_type = args[:machine_type] if args.key?(:machine_type)
8248
+ @max_run_duration = args[:max_run_duration] if args.key?(:max_run_duration)
6027
8249
  @name = args[:name] if args.key?(:name)
6028
8250
  @node_network_config = args[:node_network_config] if args.key?(:node_network_config)
6029
8251
  @node_pool_id = args[:node_pool_id] if args.key?(:node_pool_id)
6030
8252
  @node_version = args[:node_version] if args.key?(:node_version)
6031
8253
  @project_id = args[:project_id] if args.key?(:project_id)
8254
+ @queued_provisioning = args[:queued_provisioning] if args.key?(:queued_provisioning)
6032
8255
  @resource_labels = args[:resource_labels] if args.key?(:resource_labels)
8256
+ @resource_manager_tags = args[:resource_manager_tags] if args.key?(:resource_manager_tags)
8257
+ @storage_pools = args[:storage_pools] if args.key?(:storage_pools)
6033
8258
  @tags = args[:tags] if args.key?(:tags)
6034
8259
  @taints = args[:taints] if args.key?(:taints)
6035
8260
  @upgrade_settings = args[:upgrade_settings] if args.key?(:upgrade_settings)
@@ -6081,6 +8306,56 @@ module Google
6081
8306
  end
6082
8307
  end
6083
8308
 
8309
+ # UpgradeDetails contains detailed information of each individual upgrade
8310
+ # operation.
8311
+ class UpgradeDetails
8312
+ include Google::Apis::Core::Hashable
8313
+
8314
+ # The end timestamp of the upgrade.
8315
+ # Corresponds to the JSON property `endTime`
8316
+ # @return [String]
8317
+ attr_accessor :end_time
8318
+
8319
+ # The version before the upgrade.
8320
+ # Corresponds to the JSON property `initialVersion`
8321
+ # @return [String]
8322
+ attr_accessor :initial_version
8323
+
8324
+ # The start timestamp of the upgrade.
8325
+ # Corresponds to the JSON property `startTime`
8326
+ # @return [String]
8327
+ attr_accessor :start_time
8328
+
8329
+ # The start type of the upgrade.
8330
+ # Corresponds to the JSON property `startType`
8331
+ # @return [String]
8332
+ attr_accessor :start_type
8333
+
8334
+ # Output only. The state of the upgrade.
8335
+ # Corresponds to the JSON property `state`
8336
+ # @return [String]
8337
+ attr_accessor :state
8338
+
8339
+ # The version after the upgrade.
8340
+ # Corresponds to the JSON property `targetVersion`
8341
+ # @return [String]
8342
+ attr_accessor :target_version
8343
+
8344
+ def initialize(**args)
8345
+ update!(**args)
8346
+ end
8347
+
8348
+ # Update properties of this object
8349
+ def update!(**args)
8350
+ @end_time = args[:end_time] if args.key?(:end_time)
8351
+ @initial_version = args[:initial_version] if args.key?(:initial_version)
8352
+ @start_time = args[:start_time] if args.key?(:start_time)
8353
+ @start_type = args[:start_type] if args.key?(:start_type)
8354
+ @state = args[:state] if args.key?(:state)
8355
+ @target_version = args[:target_version] if args.key?(:target_version)
8356
+ end
8357
+ end
8358
+
6084
8359
  # UpgradeEvent is a notification sent to customers by the cluster server when a
6085
8360
  # resource is upgrading.
6086
8361
  class UpgradeEvent
@@ -6132,6 +8407,93 @@ module Google
6132
8407
  end
6133
8408
  end
6134
8409
 
8410
+ # UpgradeInfoEvent is a notification sent to customers about the upgrade
8411
+ # information of a resource.
8412
+ class UpgradeInfoEvent
8413
+ include Google::Apis::Core::Hashable
8414
+
8415
+ # The current version before the upgrade.
8416
+ # Corresponds to the JSON property `currentVersion`
8417
+ # @return [String]
8418
+ attr_accessor :current_version
8419
+
8420
+ # A brief description of the event.
8421
+ # Corresponds to the JSON property `description`
8422
+ # @return [String]
8423
+ attr_accessor :description
8424
+
8425
+ # The time when the operation ended.
8426
+ # Corresponds to the JSON property `endTime`
8427
+ # @return [String]
8428
+ attr_accessor :end_time
8429
+
8430
+ # The type of the event.
8431
+ # Corresponds to the JSON property `eventType`
8432
+ # @return [String]
8433
+ attr_accessor :event_type
8434
+
8435
+ # The end of extended support timestamp.
8436
+ # Corresponds to the JSON property `extendedSupportEndTime`
8437
+ # @return [String]
8438
+ attr_accessor :extended_support_end_time
8439
+
8440
+ # The operation associated with this upgrade.
8441
+ # Corresponds to the JSON property `operation`
8442
+ # @return [String]
8443
+ attr_accessor :operation
8444
+
8445
+ # Optional relative path to the resource. For example in node pool upgrades, the
8446
+ # relative path of the node pool.
8447
+ # Corresponds to the JSON property `resource`
8448
+ # @return [String]
8449
+ attr_accessor :resource
8450
+
8451
+ # The resource type associated with the upgrade.
8452
+ # Corresponds to the JSON property `resourceType`
8453
+ # @return [String]
8454
+ attr_accessor :resource_type
8455
+
8456
+ # The end of standard support timestamp.
8457
+ # Corresponds to the JSON property `standardSupportEndTime`
8458
+ # @return [String]
8459
+ attr_accessor :standard_support_end_time
8460
+
8461
+ # The time when the operation was started.
8462
+ # Corresponds to the JSON property `startTime`
8463
+ # @return [String]
8464
+ attr_accessor :start_time
8465
+
8466
+ # Output only. The state of the upgrade.
8467
+ # Corresponds to the JSON property `state`
8468
+ # @return [String]
8469
+ attr_accessor :state
8470
+
8471
+ # The target version for the upgrade.
8472
+ # Corresponds to the JSON property `targetVersion`
8473
+ # @return [String]
8474
+ attr_accessor :target_version
8475
+
8476
+ def initialize(**args)
8477
+ update!(**args)
8478
+ end
8479
+
8480
+ # Update properties of this object
8481
+ def update!(**args)
8482
+ @current_version = args[:current_version] if args.key?(:current_version)
8483
+ @description = args[:description] if args.key?(:description)
8484
+ @end_time = args[:end_time] if args.key?(:end_time)
8485
+ @event_type = args[:event_type] if args.key?(:event_type)
8486
+ @extended_support_end_time = args[:extended_support_end_time] if args.key?(:extended_support_end_time)
8487
+ @operation = args[:operation] if args.key?(:operation)
8488
+ @resource = args[:resource] if args.key?(:resource)
8489
+ @resource_type = args[:resource_type] if args.key?(:resource_type)
8490
+ @standard_support_end_time = args[:standard_support_end_time] if args.key?(:standard_support_end_time)
8491
+ @start_time = args[:start_time] if args.key?(:start_time)
8492
+ @state = args[:state] if args.key?(:state)
8493
+ @target_version = args[:target_version] if args.key?(:target_version)
8494
+ end
8495
+ end
8496
+
6135
8497
  # These upgrade settings control the level of parallelism and the level of
6136
8498
  # disruption caused by an upgrade. maxUnavailable controls the number of nodes
6137
8499
  # that can be simultaneously unavailable. maxSurge controls the number of
@@ -6281,6 +8643,78 @@ module Google
6281
8643
  end
6282
8644
  end
6283
8645
 
8646
+ # UserManagedKeysConfig holds the resource address to Keys which are used for
8647
+ # signing certs and token that are used for communication within cluster.
8648
+ class UserManagedKeysConfig
8649
+ include Google::Apis::Core::Hashable
8650
+
8651
+ # The Certificate Authority Service caPool to use for the aggregation CA in this
8652
+ # cluster.
8653
+ # Corresponds to the JSON property `aggregationCa`
8654
+ # @return [String]
8655
+ attr_accessor :aggregation_ca
8656
+
8657
+ # The Certificate Authority Service caPool to use for the cluster CA in this
8658
+ # cluster.
8659
+ # Corresponds to the JSON property `clusterCa`
8660
+ # @return [String]
8661
+ attr_accessor :cluster_ca
8662
+
8663
+ # The Cloud KMS cryptoKey to use for Confidential Hyperdisk on the control plane
8664
+ # nodes.
8665
+ # Corresponds to the JSON property `controlPlaneDiskEncryptionKey`
8666
+ # @return [String]
8667
+ attr_accessor :control_plane_disk_encryption_key
8668
+
8669
+ # Resource path of the Certificate Authority Service caPool to use for the etcd
8670
+ # API CA in this cluster.
8671
+ # Corresponds to the JSON property `etcdApiCa`
8672
+ # @return [String]
8673
+ attr_accessor :etcd_api_ca
8674
+
8675
+ # Resource path of the Certificate Authority Service caPool to use for the etcd
8676
+ # peer CA in this cluster.
8677
+ # Corresponds to the JSON property `etcdPeerCa`
8678
+ # @return [String]
8679
+ attr_accessor :etcd_peer_ca
8680
+
8681
+ # Resource path of the Cloud KMS cryptoKey to use for encryption of internal
8682
+ # etcd backups.
8683
+ # Corresponds to the JSON property `gkeopsEtcdBackupEncryptionKey`
8684
+ # @return [String]
8685
+ attr_accessor :gkeops_etcd_backup_encryption_key
8686
+
8687
+ # The Cloud KMS cryptoKeyVersions to use for signing service account JWTs issued
8688
+ # by this cluster. Format: `projects/`project`/locations/`location`/keyRings/`
8689
+ # keyring`/cryptoKeys/`cryptoKey`/cryptoKeyVersions/`cryptoKeyVersion``
8690
+ # Corresponds to the JSON property `serviceAccountSigningKeys`
8691
+ # @return [Array<String>]
8692
+ attr_accessor :service_account_signing_keys
8693
+
8694
+ # The Cloud KMS cryptoKeyVersions to use for verifying service account JWTs
8695
+ # issued by this cluster. Format: `projects/`project`/locations/`location`/
8696
+ # keyRings/`keyring`/cryptoKeys/`cryptoKey`/cryptoKeyVersions/`cryptoKeyVersion``
8697
+ # Corresponds to the JSON property `serviceAccountVerificationKeys`
8698
+ # @return [Array<String>]
8699
+ attr_accessor :service_account_verification_keys
8700
+
8701
+ def initialize(**args)
8702
+ update!(**args)
8703
+ end
8704
+
8705
+ # Update properties of this object
8706
+ def update!(**args)
8707
+ @aggregation_ca = args[:aggregation_ca] if args.key?(:aggregation_ca)
8708
+ @cluster_ca = args[:cluster_ca] if args.key?(:cluster_ca)
8709
+ @control_plane_disk_encryption_key = args[:control_plane_disk_encryption_key] if args.key?(:control_plane_disk_encryption_key)
8710
+ @etcd_api_ca = args[:etcd_api_ca] if args.key?(:etcd_api_ca)
8711
+ @etcd_peer_ca = args[:etcd_peer_ca] if args.key?(:etcd_peer_ca)
8712
+ @gkeops_etcd_backup_encryption_key = args[:gkeops_etcd_backup_encryption_key] if args.key?(:gkeops_etcd_backup_encryption_key)
8713
+ @service_account_signing_keys = args[:service_account_signing_keys] if args.key?(:service_account_signing_keys)
8714
+ @service_account_verification_keys = args[:service_account_verification_keys] if args.key?(:service_account_verification_keys)
8715
+ end
8716
+ end
8717
+
6284
8718
  # VerticalPodAutoscaling contains global, per-cluster information required by
6285
8719
  # Vertical Pod Autoscaler to automatically adjust the resources of pods
6286
8720
  # controlled by it.
@@ -6325,11 +8759,11 @@ module Google
6325
8759
 
6326
8760
  # Parameters that can be configured on Windows nodes. Windows Node Config that
6327
8761
  # define the parameters that will be used to configure the Windows node pool
6328
- # settings
8762
+ # settings.
6329
8763
  class WindowsNodeConfig
6330
8764
  include Google::Apis::Core::Hashable
6331
8765
 
6332
- # OSVersion specifies the Windows node config to be used on the node
8766
+ # OSVersion specifies the Windows node config to be used on the node.
6333
8767
  # Corresponds to the JSON property `osVersion`
6334
8768
  # @return [String]
6335
8769
  attr_accessor :os_version
@@ -6383,6 +8817,33 @@ module Google
6383
8817
  @mode = args[:mode] if args.key?(:mode)
6384
8818
  end
6385
8819
  end
8820
+
8821
+ # WorkloadPolicyConfig is the configuration related to GCW workload policy
8822
+ class WorkloadPolicyConfig
8823
+ include Google::Apis::Core::Hashable
8824
+
8825
+ # If true, workloads can use NET_ADMIN capability.
8826
+ # Corresponds to the JSON property `allowNetAdmin`
8827
+ # @return [Boolean]
8828
+ attr_accessor :allow_net_admin
8829
+ alias_method :allow_net_admin?, :allow_net_admin
8830
+
8831
+ # If true, enables the GCW Auditor that audits workloads on standard clusters.
8832
+ # Corresponds to the JSON property `autopilotCompatibilityAuditingEnabled`
8833
+ # @return [Boolean]
8834
+ attr_accessor :autopilot_compatibility_auditing_enabled
8835
+ alias_method :autopilot_compatibility_auditing_enabled?, :autopilot_compatibility_auditing_enabled
8836
+
8837
+ def initialize(**args)
8838
+ update!(**args)
8839
+ end
8840
+
8841
+ # Update properties of this object
8842
+ def update!(**args)
8843
+ @allow_net_admin = args[:allow_net_admin] if args.key?(:allow_net_admin)
8844
+ @autopilot_compatibility_auditing_enabled = args[:autopilot_compatibility_auditing_enabled] if args.key?(:autopilot_compatibility_auditing_enabled)
8845
+ end
8846
+ end
6386
8847
  end
6387
8848
  end
6388
8849
  end