google-cloud-container-v1 0.2.5 → 0.3.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.
@@ -43,12 +43,12 @@ module Google
43
43
  #
44
44
  # The ResourceDescriptor Yaml config will look like:
45
45
  #
46
- # resources:
47
- # - type: "pubsub.googleapis.com/Topic"
48
- # name_descriptor:
49
- # - pattern: "projects/\\{project}/topics/\\{topic}"
50
- # parent_type: "cloudresourcemanager.googleapis.com/Project"
51
- # parent_name_extractor: "projects/\\{project}"
46
+ # resources:
47
+ # - type: "pubsub.googleapis.com/Topic"
48
+ # name_descriptor:
49
+ # - pattern: "projects/{project}/topics/{topic}"
50
+ # parent_type: "cloudresourcemanager.googleapis.com/Project"
51
+ # parent_name_extractor: "projects/{project}"
52
52
  #
53
53
  # Sometimes, resources have multiple patterns, typically because they can
54
54
  # live under multiple parents.
@@ -183,15 +183,24 @@ module Google
183
183
  # }
184
184
  # @!attribute [rw] plural
185
185
  # @return [::String]
186
- # The plural name used in the resource name, such as 'projects' for
187
- # the name of 'projects/\\{project}'. It is the same concept of the `plural`
188
- # field in k8s CRD spec
186
+ # The plural name used in the resource name and permission names, such as
187
+ # 'projects' for the resource name of 'projects/\\{project}' and the permission
188
+ # name of 'cloudresourcemanager.googleapis.com/projects.get'. It is the same
189
+ # concept of the `plural` field in k8s CRD spec
189
190
  # https://kubernetes.io/docs/tasks/access-kubernetes-api/custom-resources/custom-resource-definitions/
191
+ #
192
+ # Note: The plural form is required even for singleton resources. See
193
+ # https://aip.dev/156
190
194
  # @!attribute [rw] singular
191
195
  # @return [::String]
192
196
  # The same concept of the `singular` field in k8s CRD spec
193
197
  # https://kubernetes.io/docs/tasks/access-kubernetes-api/custom-resources/custom-resource-definitions/
194
198
  # Such as "project" for the `resourcemanager.googleapis.com/Project` type.
199
+ # @!attribute [rw] style
200
+ # @return [::Array<::Google::Api::ResourceDescriptor::Style>]
201
+ # Style flag(s) for this resource.
202
+ # These indicate that a resource is expected to conform to a given
203
+ # style. See the specific style flags for additional information.
195
204
  class ResourceDescriptor
196
205
  include ::Google::Protobuf::MessageExts
197
206
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -211,6 +220,22 @@ module Google
211
220
  # that from being necessary once there are multiple patterns.)
212
221
  FUTURE_MULTI_PATTERN = 2
213
222
  end
223
+
224
+ # A flag representing a specific style that a resource claims to conform to.
225
+ module Style
226
+ # The unspecified value. Do not use.
227
+ STYLE_UNSPECIFIED = 0
228
+
229
+ # This resource is intended to be "declarative-friendly".
230
+ #
231
+ # Declarative-friendly resources must be more strictly consistent, and
232
+ # setting this to true communicates to tools that this resource should
233
+ # adhere to declarative-friendly expectations.
234
+ #
235
+ # Note: This is used by the API linter (linter.aip.dev) to enable
236
+ # additional checks.
237
+ DECLARATIVE_FRIENDLY = 1
238
+ end
214
239
  end
215
240
 
216
241
  # Defines a proto annotation that describes a string field that refers to
@@ -226,6 +251,17 @@ module Google
226
251
  # type: "pubsub.googleapis.com/Topic"
227
252
  # }];
228
253
  # }
254
+ #
255
+ # Occasionally, a field may reference an arbitrary resource. In this case,
256
+ # APIs use the special value * in their resource reference.
257
+ #
258
+ # Example:
259
+ #
260
+ # message GetIamPolicyRequest {
261
+ # string resource = 2 [(google.api.resource_reference) = {
262
+ # type: "*"
263
+ # }];
264
+ # }
229
265
  # @!attribute [rw] child_type
230
266
  # @return [::String]
231
267
  # The resource type of a child collection that the annotated field
@@ -234,11 +270,11 @@ module Google
234
270
  #
235
271
  # Example:
236
272
  #
237
- # message ListLogEntriesRequest {
238
- # string parent = 1 [(google.api.resource_reference) = {
239
- # child_type: "logging.googleapis.com/LogEntry"
240
- # };
241
- # }
273
+ # message ListLogEntriesRequest {
274
+ # string parent = 1 [(google.api.resource_reference) = {
275
+ # child_type: "logging.googleapis.com/LogEntry"
276
+ # };
277
+ # }
242
278
  class ResourceReference
243
279
  include ::Google::Protobuf::MessageExts
244
280
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -25,11 +25,9 @@ module Google
25
25
  # @!attribute [rw] machine_type
26
26
  # @return [::String]
27
27
  # The name of a Google Compute Engine [machine
28
- # type](https://cloud.google.com/compute/docs/machine-types) (e.g.
29
- # `n1-standard-1`).
28
+ # type](https://cloud.google.com/compute/docs/machine-types)
30
29
  #
31
- # If unspecified, the default machine type is
32
- # `n1-standard-1`.
30
+ # If unspecified, the default machine type is `e2-medium`.
33
31
  # @!attribute [rw] disk_size_gb
34
32
  # @return [::Integer]
35
33
  # Size of the disk attached to each node, specified in GB.
@@ -48,41 +46,46 @@ module Google
48
46
  # persistent storage on your nodes.
49
47
  # * `https://www.googleapis.com/auth/devstorage.read_only` is required for
50
48
  # communicating with **gcr.io**
51
- # (the [Google Container Registry](https://cloud.google.com/container-registry/)).
49
+ # (the [Google Container
50
+ # Registry](https://cloud.google.com/container-registry/)).
52
51
  #
53
52
  # If unspecified, no scopes are added, unless Cloud Logging or Cloud
54
53
  # Monitoring are enabled, in which case their required scopes will be added.
55
54
  # @!attribute [rw] service_account
56
55
  # @return [::String]
57
- # The Google Cloud Platform Service Account to be used by the node VMs. If
58
- # no Service Account is specified, the "default" service account is used.
56
+ # The Google Cloud Platform Service Account to be used by the node VMs.
57
+ # Specify the email address of the Service Account; otherwise, if no Service
58
+ # Account is specified, the "default" service account is used.
59
59
  # @!attribute [rw] metadata
60
60
  # @return [::Google::Protobuf::Map{::String => ::String}]
61
61
  # The metadata key/value pairs assigned to instances in the cluster.
62
62
  #
63
- # Keys must conform to the regexp [a-zA-Z0-9-_]+ and be less than 128 bytes
63
+ # Keys must conform to the regexp `[a-zA-Z0-9-_]+` and be less than 128 bytes
64
64
  # in length. These are reflected as part of a URL in the metadata server.
65
65
  # Additionally, to avoid ambiguity, keys must not conflict with any other
66
66
  # metadata keys for the project or be one of the reserved keys:
67
- # "cluster-location"
68
- # "cluster-name"
69
- # "cluster-uid"
70
- # "configure-sh"
71
- # "containerd-configure-sh"
72
- # "enable-os-login"
73
- # "gci-update-strategy"
74
- # "gci-ensure-gke-docker"
75
- # "instance-template"
76
- # "kube-env"
77
- # "startup-script"
78
- # "user-data"
79
- # "disable-address-manager"
80
- # "windows-startup-script-ps1"
81
- # "common-psm1"
82
- # "k8s-node-setup-psm1"
83
- # "install-ssh-psm1"
84
- # "user-profile-psm1"
85
- # "serial-port-logging-enable"
67
+ # - "cluster-location"
68
+ # - "cluster-name"
69
+ # - "cluster-uid"
70
+ # - "configure-sh"
71
+ # - "containerd-configure-sh"
72
+ # - "enable-os-login"
73
+ # - "gci-ensure-gke-docker"
74
+ # - "gci-metrics-enabled"
75
+ # - "gci-update-strategy"
76
+ # - "instance-template"
77
+ # - "kube-env"
78
+ # - "startup-script"
79
+ # - "user-data"
80
+ # - "disable-address-manager"
81
+ # - "windows-startup-script-ps1"
82
+ # - "common-psm1"
83
+ # - "k8s-node-setup-psm1"
84
+ # - "install-ssh-psm1"
85
+ # - "user-profile-psm1"
86
+ #
87
+ # The following keys are reserved for Windows nodes:
88
+ # - "serial-port-logging-enable"
86
89
  #
87
90
  # Values are free-form strings, and only have meaning as interpreted by
88
91
  # the image running in the instance. The only restriction placed on them is
@@ -129,7 +132,8 @@ module Google
129
132
  # support for GPUs.
130
133
  # @!attribute [rw] disk_type
131
134
  # @return [::String]
132
- # Type of the disk attached to each node (e.g. 'pd-standard' or 'pd-ssd')
135
+ # Type of the disk attached to each node (e.g. 'pd-standard', 'pd-ssd' or
136
+ # 'pd-balanced')
133
137
  #
134
138
  # If unspecified, the default disk type is 'pd-standard'
135
139
  # @!attribute [rw] min_cpu_platform
@@ -137,19 +141,45 @@ module Google
137
141
  # Minimum CPU platform to be used by this instance. The instance may be
138
142
  # scheduled on the specified or newer CPU platform. Applicable values are the
139
143
  # friendly names of CPU platforms, such as
140
- # <code>minCpuPlatform: &quot;Intel Haswell&quot;</code> or
141
- # <code>minCpuPlatform: &quot;Intel Sandy Bridge&quot;</code>. For more
144
+ # `minCpuPlatform: "Intel Haswell"` or
145
+ # `minCpuPlatform: "Intel Sandy Bridge"`. For more
142
146
  # information, read [how to specify min CPU
143
147
  # platform](https://cloud.google.com/compute/docs/instances/specify-min-cpu-platform)
148
+ # @!attribute [rw] workload_metadata_config
149
+ # @return [::Google::Cloud::Container::V1::WorkloadMetadataConfig]
150
+ # The workload metadata configuration for this node.
144
151
  # @!attribute [rw] taints
145
152
  # @return [::Array<::Google::Cloud::Container::V1::NodeTaint>]
146
153
  # List of kubernetes taints to be applied to each node.
147
154
  #
148
155
  # For more information, including usage and the valid values, see:
149
156
  # https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
157
+ # @!attribute [rw] sandbox_config
158
+ # @return [::Google::Cloud::Container::V1::SandboxConfig]
159
+ # Sandbox configuration for this node.
160
+ # @!attribute [rw] node_group
161
+ # @return [::String]
162
+ # Setting this field will assign instances of this
163
+ # pool to run on the specified node group. This is useful for running
164
+ # workloads on [sole tenant
165
+ # nodes](https://cloud.google.com/compute/docs/nodes/sole-tenant-nodes).
166
+ # @!attribute [rw] reservation_affinity
167
+ # @return [::Google::Cloud::Container::V1::ReservationAffinity]
168
+ # The optional reservation affinity. Setting this field will apply
169
+ # the specified [Zonal Compute
170
+ # Reservation](https://cloud.google.com/compute/docs/instances/reserving-zonal-resources)
171
+ # to this node pool.
150
172
  # @!attribute [rw] shielded_instance_config
151
173
  # @return [::Google::Cloud::Container::V1::ShieldedInstanceConfig]
152
174
  # Shielded Instance options.
175
+ # @!attribute [rw] boot_disk_kms_key
176
+ # @return [::String]
177
+ # The Customer Managed Encryption Key used to encrypt the boot disk attached
178
+ # to each node in the node pool. This should be of the form
179
+ # projects/[KEY_PROJECT_ID]/locations/[LOCATION]/keyRings/[RING_NAME]/cryptoKeys/[KEY_NAME].
180
+ # For more information about protecting resources with Cloud KMS Keys please
181
+ # see:
182
+ # https://cloud.google.com/compute/docs/disks/customer-managed-encryption
153
183
  class NodeConfig
154
184
  include ::Google::Protobuf::MessageExts
155
185
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -194,11 +224,65 @@ module Google
194
224
  extend ::Google::Protobuf::MessageExts::ClassMethods
195
225
  end
196
226
 
227
+ # SandboxConfig contains configurations of the sandbox to use for the node.
228
+ # @!attribute [rw] type
229
+ # @return [::Google::Cloud::Container::V1::SandboxConfig::Type]
230
+ # Type of the sandbox to use for the node.
231
+ class SandboxConfig
232
+ include ::Google::Protobuf::MessageExts
233
+ extend ::Google::Protobuf::MessageExts::ClassMethods
234
+
235
+ # Possible types of sandboxes.
236
+ module Type
237
+ # Default value. This should not be used.
238
+ UNSPECIFIED = 0
239
+
240
+ # Run sandbox using gvisor.
241
+ GVISOR = 1
242
+ end
243
+ end
244
+
245
+ # [ReservationAffinity](https://cloud.google.com/compute/docs/instances/reserving-zonal-resources)
246
+ # is the configuration of desired reservation which instances could take
247
+ # capacity from.
248
+ # @!attribute [rw] consume_reservation_type
249
+ # @return [::Google::Cloud::Container::V1::ReservationAffinity::Type]
250
+ # Corresponds to the type of reservation consumption.
251
+ # @!attribute [rw] key
252
+ # @return [::String]
253
+ # Corresponds to the label key of a reservation resource. To target a
254
+ # SPECIFIC_RESERVATION by name, specify "googleapis.com/reservation-name" as
255
+ # the key and specify the name of your reservation as its value.
256
+ # @!attribute [rw] values
257
+ # @return [::Array<::String>]
258
+ # Corresponds to the label value(s) of reservation resource(s).
259
+ class ReservationAffinity
260
+ include ::Google::Protobuf::MessageExts
261
+ extend ::Google::Protobuf::MessageExts::ClassMethods
262
+
263
+ # Indicates whether to consume capacity from a reservation or not.
264
+ module Type
265
+ # Default value. This should not be used.
266
+ UNSPECIFIED = 0
267
+
268
+ # Do not consume from any reserved capacity.
269
+ NO_RESERVATION = 1
270
+
271
+ # Consume any reservation available.
272
+ ANY_RESERVATION = 2
273
+
274
+ # Must consume from a specific reservation. Must specify key value fields
275
+ # for specifying the reservations.
276
+ SPECIFIC_RESERVATION = 3
277
+ end
278
+ end
279
+
197
280
  # Kubernetes taint is comprised of three fields: key, value, and effect. Effect
198
281
  # can only be one of three types: NoSchedule, PreferNoSchedule or NoExecute.
199
282
  #
200
- # For more information, including usage and the valid values, see:
201
- # https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
283
+ # See
284
+ # [here](https://kubernetes.io/docs/concepts/configuration/taint-and-toleration)
285
+ # for more information, including usage and the valid values.
202
286
  # @!attribute [rw] key
203
287
  # @return [::String]
204
288
  # Key for taint.
@@ -236,12 +320,22 @@ module Google
236
320
  # The username to use for HTTP basic authentication to the master endpoint.
237
321
  # For clusters v1.6.0 and later, basic authentication can be disabled by
238
322
  # leaving username unspecified (or setting it to the empty string).
323
+ #
324
+ # Warning: basic authentication is deprecated, and will be removed in GKE
325
+ # control plane versions 1.19 and newer. For a list of recommended
326
+ # authentication methods, see:
327
+ # https://cloud.google.com/kubernetes-engine/docs/how-to/api-server-authentication
239
328
  # @!attribute [rw] password
240
329
  # @return [::String]
241
330
  # The password to use for HTTP basic authentication to the master endpoint.
242
331
  # Because the master endpoint is open to the Internet, you should create a
243
332
  # strong password. If a password is provided for cluster creation, username
244
333
  # must be non-empty.
334
+ #
335
+ # Warning: basic authentication is deprecated, and will be removed in GKE
336
+ # control plane versions 1.19 and newer. For a list of recommended
337
+ # authentication methods, see:
338
+ # https://cloud.google.com/kubernetes-engine/docs/how-to/api-server-authentication
245
339
  # @!attribute [rw] client_certificate_config
246
340
  # @return [::Google::Cloud::Container::V1::ClientCertificateConfig]
247
341
  # Configuration for client certificate authentication on the cluster. For
@@ -300,6 +394,13 @@ module Google
300
394
  # @return [::Google::Cloud::Container::V1::CloudRunConfig]
301
395
  # Configuration for the Cloud Run addon, which allows the user to use a
302
396
  # managed Knative service.
397
+ # @!attribute [rw] dns_cache_config
398
+ # @return [::Google::Cloud::Container::V1::DnsCacheConfig]
399
+ # Configuration for NodeLocalDNS, a dns cache running on cluster nodes
400
+ # @!attribute [rw] config_connector_config
401
+ # @return [::Google::Cloud::Container::V1::ConfigConnectorConfig]
402
+ # Configuration for the ConfigConnector add-on, a Kubernetes
403
+ # extension to manage hosted GCP services through the Kubernetes API
303
404
  class AddonsConfig
304
405
  include ::Google::Protobuf::MessageExts
305
406
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -323,8 +424,8 @@ module Google
323
424
  # @!attribute [rw] disabled
324
425
  # @return [::Boolean]
325
426
  # Whether the Horizontal Pod Autoscaling feature is enabled in the cluster.
326
- # When enabled, it ensures that a Heapster pod is running in the cluster,
327
- # which is also used by the Cloud Monitoring service.
427
+ # When enabled, it ensures that metrics are collected into Stackdriver
428
+ # Monitoring.
328
429
  class HorizontalPodAutoscaling
329
430
  include ::Google::Protobuf::MessageExts
330
431
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -350,6 +451,24 @@ module Google
350
451
  extend ::Google::Protobuf::MessageExts::ClassMethods
351
452
  end
352
453
 
454
+ # Configuration for NodeLocal DNSCache
455
+ # @!attribute [rw] enabled
456
+ # @return [::Boolean]
457
+ # Whether NodeLocal DNSCache is enabled for this cluster.
458
+ class DnsCacheConfig
459
+ include ::Google::Protobuf::MessageExts
460
+ extend ::Google::Protobuf::MessageExts::ClassMethods
461
+ end
462
+
463
+ # Configuration for controlling master global access settings.
464
+ # @!attribute [rw] enabled
465
+ # @return [::Boolean]
466
+ # Whenever master is accessible globally or not.
467
+ class PrivateClusterMasterGlobalAccessConfig
468
+ include ::Google::Protobuf::MessageExts
469
+ extend ::Google::Protobuf::MessageExts::ClassMethods
470
+ end
471
+
353
472
  # Configuration options for private clusters.
354
473
  # @!attribute [rw] enable_private_nodes
355
474
  # @return [::Boolean]
@@ -371,6 +490,12 @@ module Google
371
490
  # @!attribute [rw] public_endpoint
372
491
  # @return [::String]
373
492
  # Output only. The external IP address of this cluster's master endpoint.
493
+ # @!attribute [rw] peering_name
494
+ # @return [::String]
495
+ # Output only. The peering name in the customer VPC used by this cluster.
496
+ # @!attribute [rw] master_global_access_config
497
+ # @return [::Google::Cloud::Container::V1::PrivateClusterMasterGlobalAccessConfig]
498
+ # Controls master global access settings.
374
499
  class PrivateClusterConfig
375
500
  include ::Google::Protobuf::MessageExts
376
501
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -394,9 +519,33 @@ module Google
394
519
  # @!attribute [rw] disabled
395
520
  # @return [::Boolean]
396
521
  # Whether Cloud Run addon is enabled for this cluster.
522
+ # @!attribute [rw] load_balancer_type
523
+ # @return [::Google::Cloud::Container::V1::CloudRunConfig::LoadBalancerType]
524
+ # Which load balancer type is installed for Cloud Run.
397
525
  class CloudRunConfig
398
526
  include ::Google::Protobuf::MessageExts
399
527
  extend ::Google::Protobuf::MessageExts::ClassMethods
528
+
529
+ # Load balancer type of ingress service of Cloud Run.
530
+ module LoadBalancerType
531
+ # Load balancer type for Cloud Run is unspecified.
532
+ LOAD_BALANCER_TYPE_UNSPECIFIED = 0
533
+
534
+ # Install external load balancer for Cloud Run.
535
+ LOAD_BALANCER_TYPE_EXTERNAL = 1
536
+
537
+ # Install internal load balancer for Cloud Run.
538
+ LOAD_BALANCER_TYPE_INTERNAL = 2
539
+ end
540
+ end
541
+
542
+ # Configuration options for the Config Connector add-on.
543
+ # @!attribute [rw] enabled
544
+ # @return [::Boolean]
545
+ # Whether Cloud Connector is enabled for this cluster.
546
+ class ConfigConnectorConfig
547
+ include ::Google::Protobuf::MessageExts
548
+ extend ::Google::Protobuf::MessageExts::ClassMethods
400
549
  end
401
550
 
402
551
  # Configuration options for the master authorized networks feature. Enabled
@@ -476,6 +625,9 @@ module Google
476
625
  # @!attribute [rw] use_ip_aliases
477
626
  # @return [::Boolean]
478
627
  # Whether alias IPs will be used for pod IPs in the cluster.
628
+ # This is used in conjunction with use_routes. It cannot
629
+ # be true if use_routes is true. If both use_ip_aliases and use_routes are
630
+ # false, then the server picks the default IP allocation mode
479
631
  # @!attribute [rw] create_subnetwork
480
632
  # @return [::Boolean]
481
633
  # Whether a new subnetwork will be created automatically for the cluster.
@@ -580,6 +732,12 @@ module Google
580
732
  # notation (e.g. `10.96.0.0/14`) from the RFC-1918 private networks (e.g.
581
733
  # `10.0.0.0/8`, `172.16.0.0/12`, `192.168.0.0/16`) to pick a specific range
582
734
  # to use.
735
+ # @!attribute [rw] use_routes
736
+ # @return [::Boolean]
737
+ # Whether routes will be used for pod IPs in the cluster.
738
+ # This is used in conjunction with use_ip_aliases. It cannot be true if
739
+ # use_ip_aliases is true. If both use_ip_aliases and use_routes are false,
740
+ # then the server picks the default IP allocation mode
583
741
  class IPAllocationPolicy
584
742
  include ::Google::Protobuf::MessageExts
585
743
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -635,25 +793,33 @@ module Google
635
793
  # The logging service the cluster should use to write logs.
636
794
  # Currently available options:
637
795
  #
638
- # * "logging.googleapis.com/kubernetes" - the Google Cloud Logging
639
- # service with Kubernetes-native resource model
640
- # * `logging.googleapis.com` - the Google Cloud Logging service.
796
+ # * `logging.googleapis.com/kubernetes` - The Cloud Logging
797
+ # service with a Kubernetes-native resource model
798
+ # * `logging.googleapis.com` - The legacy Cloud Logging service (no longer
799
+ # available as of GKE 1.15).
641
800
  # * `none` - no logs will be exported from the cluster.
642
- # * if left as an empty string,`logging.googleapis.com` will be used.
801
+ #
802
+ # If left as an empty string,`logging.googleapis.com/kubernetes` will be
803
+ # used for GKE 1.14+ or `logging.googleapis.com` for earlier versions.
643
804
  # @!attribute [rw] monitoring_service
644
805
  # @return [::String]
645
806
  # The monitoring service the cluster should use to write metrics.
646
807
  # Currently available options:
647
808
  #
648
- # * `monitoring.googleapis.com` - the Google Cloud Monitoring service.
649
- # * `none` - no metrics will be exported from the cluster.
650
- # * if left as an empty string, `monitoring.googleapis.com` will be used.
809
+ # * "monitoring.googleapis.com/kubernetes" - The Cloud Monitoring
810
+ # service with a Kubernetes-native resource model
811
+ # * `monitoring.googleapis.com` - The legacy Cloud Monitoring service (no
812
+ # longer available as of GKE 1.15).
813
+ # * `none` - No metrics will be exported from the cluster.
814
+ #
815
+ # If left as an empty string,`monitoring.googleapis.com/kubernetes` will be
816
+ # used for GKE 1.14+ or `monitoring.googleapis.com` for earlier versions.
651
817
  # @!attribute [rw] network
652
818
  # @return [::String]
653
819
  # The name of the Google Compute Engine
654
- # [network](https://cloud.google.com/compute/docs/networks-and-firewalls#networks) to which the
655
- # cluster is connected. If left unspecified, the `default` network
656
- # will be used.
820
+ # [network](https://cloud.google.com/compute/docs/networks-and-firewalls#networks)
821
+ # to which the cluster is connected. If left unspecified, the `default`
822
+ # network will be used.
657
823
  # @!attribute [rw] cluster_ipv4_cidr
658
824
  # @return [::String]
659
825
  # The IP address range of the container pods in this cluster, in
@@ -666,8 +832,8 @@ module Google
666
832
  # @!attribute [rw] subnetwork
667
833
  # @return [::String]
668
834
  # The name of the Google Compute Engine
669
- # [subnetwork](https://cloud.google.com/compute/docs/subnetworks) to which the
670
- # cluster is connected.
835
+ # [subnetwork](https://cloud.google.com/compute/docs/subnetworks) to which
836
+ # the cluster is connected.
671
837
  # @!attribute [rw] node_pools
672
838
  # @return [::Array<::Google::Cloud::Container::V1::NodePool>]
673
839
  # The node pools associated with this cluster.
@@ -676,8 +842,16 @@ module Google
676
842
  # @!attribute [rw] locations
677
843
  # @return [::Array<::String>]
678
844
  # The list of Google Compute Engine
679
- # [zones](https://cloud.google.com/compute/docs/zones#available) in which the cluster's nodes
680
- # should be located.
845
+ # [zones](https://cloud.google.com/compute/docs/zones#available) in which the
846
+ # cluster's nodes should be located.
847
+ #
848
+ # This field provides a default value if
849
+ # [NodePool.Locations](https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1/projects.locations.clusters.nodePools#NodePool.FIELDS.locations)
850
+ # are not specified during node pool creation.
851
+ #
852
+ # Warning: changing cluster locations will update the
853
+ # [NodePool.Locations](https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1/projects.locations.clusters.nodePools#NodePool.FIELDS.locations)
854
+ # of all node pools and will result in nodes being added and/or removed.
681
855
  # @!attribute [rw] enable_kubernetes_alpha
682
856
  # @return [::Boolean]
683
857
  # Kubernetes alpha features are enabled on this cluster. This includes alpha
@@ -738,15 +912,24 @@ module Google
738
912
  # @!attribute [rw] vertical_pod_autoscaling
739
913
  # @return [::Google::Cloud::Container::V1::VerticalPodAutoscaling]
740
914
  # Cluster-level Vertical Pod Autoscaling configuration.
915
+ # @!attribute [rw] shielded_nodes
916
+ # @return [::Google::Cloud::Container::V1::ShieldedNodes]
917
+ # Shielded Nodes configuration.
918
+ # @!attribute [rw] release_channel
919
+ # @return [::Google::Cloud::Container::V1::ReleaseChannel]
920
+ # Release channel configuration.
921
+ # @!attribute [rw] workload_identity_config
922
+ # @return [::Google::Cloud::Container::V1::WorkloadIdentityConfig]
923
+ # Configuration for the use of Kubernetes Service Accounts in GCP IAM
924
+ # policies.
741
925
  # @!attribute [rw] self_link
742
926
  # @return [::String]
743
927
  # [Output only] Server-defined URL for the resource.
744
928
  # @!attribute [rw] zone
745
929
  # @return [::String]
746
930
  # [Output only] The name of the Google Compute Engine
747
- # [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster
748
- # resides.
749
- # This field is deprecated, use location instead.
931
+ # [zone](https://cloud.google.com/compute/docs/zones#available) in which the
932
+ # cluster resides. This field is deprecated, use location instead.
750
933
  # @!attribute [rw] endpoint
751
934
  # @return [::String]
752
935
  # [Output only] The IP address of this cluster's master endpoint.
@@ -776,7 +959,7 @@ module Google
776
959
  # @!attribute [rw] current_node_version
777
960
  # @return [::String]
778
961
  # [Output only] Deprecated, use
779
- # [NodePools.version](https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1/projects.zones.clusters.nodePools)
962
+ # [NodePools.version](https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1/projects.locations.clusters.nodePools)
780
963
  # instead. The current version of the node software components. If they are
781
964
  # currently at multiple versions because they're in the process of being
782
965
  # upgraded, this reflects the minimum version of all nodes.
@@ -789,7 +972,8 @@ module Google
789
972
  # [Output only] The current status of this cluster.
790
973
  # @!attribute [rw] status_message
791
974
  # @return [::String]
792
- # [Output only] Additional information about the current status of this
975
+ # [Output only] Deprecated. Use conditions instead.
976
+ # Additional information about the current status of this
793
977
  # cluster, if available.
794
978
  # @!attribute [rw] node_ipv4_cidr_size
795
979
  # @return [::Integer]
@@ -818,9 +1002,10 @@ module Google
818
1002
  # @!attribute [rw] location
819
1003
  # @return [::String]
820
1004
  # [Output only] The name of the Google Compute Engine
821
- # [zone](https://cloud.google.com/compute/docs/regions-zones/regions-zones#available) or
822
- # [region](https://cloud.google.com/compute/docs/regions-zones/regions-zones#available) in which
823
- # the cluster resides.
1005
+ # [zone](https://cloud.google.com/compute/docs/regions-zones/regions-zones#available)
1006
+ # or
1007
+ # [region](https://cloud.google.com/compute/docs/regions-zones/regions-zones#available)
1008
+ # in which the cluster resides.
824
1009
  # @!attribute [rw] enable_tpu
825
1010
  # @return [::Boolean]
826
1011
  # Enable the ability to use Cloud TPUs in this cluster.
@@ -865,8 +1050,8 @@ module Google
865
1050
  # The STOPPING state indicates the cluster is being deleted.
866
1051
  STOPPING = 4
867
1052
 
868
- # The ERROR state indicates the cluster may be unusable. Details
869
- # can be found in the `statusMessage` field.
1053
+ # The ERROR state indicates the cluster is unusable. It will be
1054
+ # automatically deleted. Details can be found in the `statusMessage` field.
870
1055
  ERROR = 5
871
1056
 
872
1057
  # The DEGRADED state indicates the cluster requires user action to restore
@@ -896,10 +1081,14 @@ module Google
896
1081
  # The monitoring service the cluster should use to write metrics.
897
1082
  # Currently available options:
898
1083
  #
899
- # * "monitoring.googleapis.com/kubernetes" - the Google Cloud Monitoring
900
- # service with Kubernetes-native resource model
901
- # * "monitoring.googleapis.com" - the Google Cloud Monitoring service
902
- # * "none" - no metrics will be exported from the cluster
1084
+ # * "monitoring.googleapis.com/kubernetes" - The Cloud Monitoring
1085
+ # service with a Kubernetes-native resource model
1086
+ # * `monitoring.googleapis.com` - The legacy Cloud Monitoring service (no
1087
+ # longer available as of GKE 1.15).
1088
+ # * `none` - No metrics will be exported from the cluster.
1089
+ #
1090
+ # If left as an empty string,`monitoring.googleapis.com/kubernetes` will be
1091
+ # used for GKE 1.14+ or `monitoring.googleapis.com` for earlier versions.
903
1092
  # @!attribute [rw] desired_addons_config
904
1093
  # @return [::Google::Cloud::Container::V1::AddonsConfig]
905
1094
  # Configurations for the various addons available to run in the cluster.
@@ -916,6 +1105,12 @@ module Google
916
1105
  # @!attribute [rw] desired_database_encryption
917
1106
  # @return [::Google::Cloud::Container::V1::DatabaseEncryption]
918
1107
  # Configuration of etcd encryption.
1108
+ # @!attribute [rw] desired_workload_identity_config
1109
+ # @return [::Google::Cloud::Container::V1::WorkloadIdentityConfig]
1110
+ # Configuration for Workload Identity.
1111
+ # @!attribute [rw] desired_shielded_nodes
1112
+ # @return [::Google::Cloud::Container::V1::ShieldedNodes]
1113
+ # Configuration for Shielded Nodes.
919
1114
  # @!attribute [rw] desired_node_pool_autoscaling
920
1115
  # @return [::Google::Cloud::Container::V1::NodePoolAutoscaling]
921
1116
  # Autoscaler configuration for the node pool specified in
@@ -925,12 +1120,13 @@ module Google
925
1120
  # @!attribute [rw] desired_locations
926
1121
  # @return [::Array<::String>]
927
1122
  # The desired list of Google Compute Engine
928
- # [zones](https://cloud.google.com/compute/docs/zones#available) in which the cluster's nodes
929
- # should be located. Changing the locations a cluster is in will result
930
- # in nodes being either created or removed from the cluster, depending on
931
- # whether locations are being added or removed.
1123
+ # [zones](https://cloud.google.com/compute/docs/zones#available) in which the
1124
+ # cluster's nodes should be located.
932
1125
  #
933
1126
  # This list must always include the cluster's primary zone.
1127
+ #
1128
+ # Warning: changing cluster locations will update the locations of all node
1129
+ # pools and will result in nodes being added and/or removed.
934
1130
  # @!attribute [rw] desired_master_authorized_networks_config
935
1131
  # @return [::Google::Cloud::Container::V1::MasterAuthorizedNetworksConfig]
936
1132
  # The desired configuration options for master authorized networks feature.
@@ -945,19 +1141,32 @@ module Google
945
1141
  # The logging service the cluster should use to write logs.
946
1142
  # Currently available options:
947
1143
  #
948
- # * "logging.googleapis.com/kubernetes" - the Google Cloud Logging
949
- # service with Kubernetes-native resource model
950
- # * "logging.googleapis.com" - the Google Cloud Logging service
951
- # * "none" - no logs will be exported from the cluster
1144
+ # * `logging.googleapis.com/kubernetes` - The Cloud Logging
1145
+ # service with a Kubernetes-native resource model
1146
+ # * `logging.googleapis.com` - The legacy Cloud Logging service (no longer
1147
+ # available as of GKE 1.15).
1148
+ # * `none` - no logs will be exported from the cluster.
1149
+ #
1150
+ # If left as an empty string,`logging.googleapis.com/kubernetes` will be
1151
+ # used for GKE 1.14+ or `logging.googleapis.com` for earlier versions.
952
1152
  # @!attribute [rw] desired_resource_usage_export_config
953
1153
  # @return [::Google::Cloud::Container::V1::ResourceUsageExportConfig]
954
1154
  # The desired configuration for exporting resource usage.
955
1155
  # @!attribute [rw] desired_vertical_pod_autoscaling
956
1156
  # @return [::Google::Cloud::Container::V1::VerticalPodAutoscaling]
957
1157
  # Cluster-level Vertical Pod Autoscaling configuration.
1158
+ # @!attribute [rw] desired_private_cluster_config
1159
+ # @return [::Google::Cloud::Container::V1::PrivateClusterConfig]
1160
+ # The desired private cluster configuration.
958
1161
  # @!attribute [rw] desired_intra_node_visibility_config
959
1162
  # @return [::Google::Cloud::Container::V1::IntraNodeVisibilityConfig]
960
1163
  # The desired config of Intra-node visibility.
1164
+ # @!attribute [rw] desired_default_snat_status
1165
+ # @return [::Google::Cloud::Container::V1::DefaultSnatStatus]
1166
+ # The desired status of whether to disable default sNAT for this cluster.
1167
+ # @!attribute [rw] desired_release_channel
1168
+ # @return [::Google::Cloud::Container::V1::ReleaseChannel]
1169
+ # The desired release channel configuration.
961
1170
  # @!attribute [rw] desired_master_version
962
1171
  # @return [::String]
963
1172
  # The Kubernetes version to change the master to.
@@ -983,9 +1192,8 @@ module Google
983
1192
  # @!attribute [rw] zone
984
1193
  # @return [::String]
985
1194
  # The name of the Google Compute Engine
986
- # [zone](https://cloud.google.com/compute/docs/zones#available) in which the operation
987
- # is taking place.
988
- # This field is deprecated, use location instead.
1195
+ # [zone](https://cloud.google.com/compute/docs/zones#available) in which the
1196
+ # operation is taking place. This field is deprecated, use location instead.
989
1197
  # @!attribute [rw] operation_type
990
1198
  # @return [::Google::Cloud::Container::V1::Operation::Type]
991
1199
  # The operation type.
@@ -995,9 +1203,9 @@ module Google
995
1203
  # @!attribute [rw] detail
996
1204
  # @return [::String]
997
1205
  # Detailed operation progress, if available.
998
- # @!attribute [rw] status_message
1206
+ # @!attribute [r] status_message
999
1207
  # @return [::String]
1000
- # If an error has occurred, a textual description of the error.
1208
+ # Output only. If an error has occurred, a textual description of the error.
1001
1209
  # @!attribute [rw] self_link
1002
1210
  # @return [::String]
1003
1211
  # Server-defined URL for the resource.
@@ -1007,9 +1215,10 @@ module Google
1007
1215
  # @!attribute [rw] location
1008
1216
  # @return [::String]
1009
1217
  # [Output only] The name of the Google Compute Engine
1010
- # [zone](https://cloud.google.com/compute/docs/regions-zones/regions-zones#available) or
1011
- # [region](https://cloud.google.com/compute/docs/regions-zones/regions-zones#available) in which
1012
- # the cluster resides.
1218
+ # [zone](https://cloud.google.com/compute/docs/regions-zones/regions-zones#available)
1219
+ # or
1220
+ # [region](https://cloud.google.com/compute/docs/regions-zones/regions-zones#available)
1221
+ # in which the cluster resides.
1013
1222
  # @!attribute [rw] start_time
1014
1223
  # @return [::String]
1015
1224
  # [Output only] The time the operation started, in
@@ -1018,6 +1227,9 @@ module Google
1018
1227
  # @return [::String]
1019
1228
  # [Output only] The time the operation completed, in
1020
1229
  # [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
1230
+ # @!attribute [r] progress
1231
+ # @return [::Google::Cloud::Container::V1::OperationProgress]
1232
+ # Output only. [Output only] Progress information for an operation.
1021
1233
  # @!attribute [rw] cluster_conditions
1022
1234
  # @return [::Array<::Google::Cloud::Container::V1::StatusCondition>]
1023
1235
  # Which conditions caused the current cluster state.
@@ -1101,6 +1313,49 @@ module Google
1101
1313
  end
1102
1314
  end
1103
1315
 
1316
+ # Information about operation (or operation stage) progress.
1317
+ # @!attribute [rw] name
1318
+ # @return [::String]
1319
+ # A non-parameterized string describing an operation stage.
1320
+ # Unset for single-stage operations.
1321
+ # @!attribute [rw] status
1322
+ # @return [::Google::Cloud::Container::V1::Operation::Status]
1323
+ # Status of an operation stage.
1324
+ # Unset for single-stage operations.
1325
+ # @!attribute [rw] metrics
1326
+ # @return [::Array<::Google::Cloud::Container::V1::OperationProgress::Metric>]
1327
+ # Progress metric bundle, for example:
1328
+ # metrics: [\\{name: "nodes done", int_value: 15},
1329
+ # \\{name: "nodes total", int_value: 32}]
1330
+ # or
1331
+ # metrics: [\\{name: "progress", double_value: 0.56},
1332
+ # \\{name: "progress scale", double_value: 1.0}]
1333
+ # @!attribute [rw] stages
1334
+ # @return [::Array<::Google::Cloud::Container::V1::OperationProgress>]
1335
+ # Substages of an operation or a stage.
1336
+ class OperationProgress
1337
+ include ::Google::Protobuf::MessageExts
1338
+ extend ::Google::Protobuf::MessageExts::ClassMethods
1339
+
1340
+ # Progress metric is (string, int|float|string) pair.
1341
+ # @!attribute [rw] name
1342
+ # @return [::String]
1343
+ # Required. Metric name, e.g., "nodes total", "percent done".
1344
+ # @!attribute [rw] int_value
1345
+ # @return [::Integer]
1346
+ # For metrics with integer value.
1347
+ # @!attribute [rw] double_value
1348
+ # @return [::Float]
1349
+ # For metrics with floating point value.
1350
+ # @!attribute [rw] string_value
1351
+ # @return [::String]
1352
+ # For metrics with custom values (ratios, visual progress, etc.).
1353
+ class Metric
1354
+ include ::Google::Protobuf::MessageExts
1355
+ extend ::Google::Protobuf::MessageExts::ClassMethods
1356
+ end
1357
+ end
1358
+
1104
1359
  # CreateClusterRequest creates a cluster.
1105
1360
  # @!attribute [rw] project_id
1106
1361
  # @return [::String]
@@ -1110,13 +1365,13 @@ module Google
1110
1365
  # @!attribute [rw] zone
1111
1366
  # @return [::String]
1112
1367
  # Deprecated. The name of the Google Compute Engine
1113
- # [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster
1114
- # resides.
1115
- # This field has been deprecated and replaced by the parent field.
1368
+ # [zone](https://cloud.google.com/compute/docs/zones#available) in which the
1369
+ # cluster resides. This field has been deprecated and replaced by the parent
1370
+ # field.
1116
1371
  # @!attribute [rw] cluster
1117
1372
  # @return [::Google::Cloud::Container::V1::Cluster]
1118
1373
  # Required. A [cluster
1119
- # resource](https://cloud.google.com/container-engine/reference/rest/v1/projects.zones.clusters)
1374
+ # resource](https://cloud.google.com/container-engine/reference/rest/v1/projects.locations.clusters)
1120
1375
  # @!attribute [rw] parent
1121
1376
  # @return [::String]
1122
1377
  # The parent (project and location) where the cluster will be created.
@@ -1135,9 +1390,9 @@ module Google
1135
1390
  # @!attribute [rw] zone
1136
1391
  # @return [::String]
1137
1392
  # Deprecated. The name of the Google Compute Engine
1138
- # [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster
1139
- # resides.
1140
- # This field has been deprecated and replaced by the name field.
1393
+ # [zone](https://cloud.google.com/compute/docs/zones#available) in which the
1394
+ # cluster resides. This field has been deprecated and replaced by the name
1395
+ # field.
1141
1396
  # @!attribute [rw] cluster_id
1142
1397
  # @return [::String]
1143
1398
  # Deprecated. The name of the cluster to retrieve.
@@ -1160,9 +1415,9 @@ module Google
1160
1415
  # @!attribute [rw] zone
1161
1416
  # @return [::String]
1162
1417
  # Deprecated. The name of the Google Compute Engine
1163
- # [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster
1164
- # resides.
1165
- # This field has been deprecated and replaced by the name field.
1418
+ # [zone](https://cloud.google.com/compute/docs/zones#available) in which the
1419
+ # cluster resides. This field has been deprecated and replaced by the name
1420
+ # field.
1166
1421
  # @!attribute [rw] cluster_id
1167
1422
  # @return [::String]
1168
1423
  # Deprecated. The name of the cluster to upgrade.
@@ -1188,9 +1443,9 @@ module Google
1188
1443
  # @!attribute [rw] zone
1189
1444
  # @return [::String]
1190
1445
  # Deprecated. The name of the Google Compute Engine
1191
- # [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster
1192
- # resides.
1193
- # This field has been deprecated and replaced by the name field.
1446
+ # [zone](https://cloud.google.com/compute/docs/zones#available) in which the
1447
+ # cluster resides. This field has been deprecated and replaced by the name
1448
+ # field.
1194
1449
  # @!attribute [rw] cluster_id
1195
1450
  # @return [::String]
1196
1451
  # Deprecated. The name of the cluster to upgrade.
@@ -1220,6 +1475,19 @@ module Google
1220
1475
  # The name (project, location, cluster, node pool) of the node pool to
1221
1476
  # update. Specified in the format
1222
1477
  # `projects/*/locations/*/clusters/*/nodePools/*`.
1478
+ # @!attribute [rw] locations
1479
+ # @return [::Array<::String>]
1480
+ # The desired list of Google Compute Engine
1481
+ # [zones](https://cloud.google.com/compute/docs/zones#available) in which the
1482
+ # node pool's nodes should be located. Changing the locations for a node pool
1483
+ # will result in nodes being either created or removed from the node pool,
1484
+ # depending on whether locations are being added or removed.
1485
+ # @!attribute [rw] workload_metadata_config
1486
+ # @return [::Google::Cloud::Container::V1::WorkloadMetadataConfig]
1487
+ # The desired workload metadata config for the node pool.
1488
+ # @!attribute [rw] upgrade_settings
1489
+ # @return [::Google::Cloud::Container::V1::NodePool::UpgradeSettings]
1490
+ # Upgrade settings control disruption and speed of the upgrade.
1223
1491
  class UpdateNodePoolRequest
1224
1492
  include ::Google::Protobuf::MessageExts
1225
1493
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -1234,9 +1502,9 @@ module Google
1234
1502
  # @!attribute [rw] zone
1235
1503
  # @return [::String]
1236
1504
  # Deprecated. The name of the Google Compute Engine
1237
- # [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster
1238
- # resides.
1239
- # This field has been deprecated and replaced by the name field.
1505
+ # [zone](https://cloud.google.com/compute/docs/zones#available) in which the
1506
+ # cluster resides. This field has been deprecated and replaced by the name
1507
+ # field.
1240
1508
  # @!attribute [rw] cluster_id
1241
1509
  # @return [::String]
1242
1510
  # Deprecated. The name of the cluster to upgrade.
@@ -1267,20 +1535,26 @@ module Google
1267
1535
  # @!attribute [rw] zone
1268
1536
  # @return [::String]
1269
1537
  # Deprecated. The name of the Google Compute Engine
1270
- # [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster
1271
- # resides.
1272
- # This field has been deprecated and replaced by the name field.
1538
+ # [zone](https://cloud.google.com/compute/docs/zones#available) in which the
1539
+ # cluster resides. This field has been deprecated and replaced by the name
1540
+ # field.
1273
1541
  # @!attribute [rw] cluster_id
1274
1542
  # @return [::String]
1275
1543
  # Deprecated. The name of the cluster to upgrade.
1276
1544
  # This field has been deprecated and replaced by the name field.
1277
1545
  # @!attribute [rw] logging_service
1278
1546
  # @return [::String]
1279
- # Required. The logging service the cluster should use to write metrics.
1547
+ # Required. The logging service the cluster should use to write logs.
1280
1548
  # Currently available options:
1281
1549
  #
1282
- # * "logging.googleapis.com" - the Google Cloud Logging service
1283
- # * "none" - no metrics will be exported from the cluster
1550
+ # * `logging.googleapis.com/kubernetes` - The Cloud Logging
1551
+ # service with a Kubernetes-native resource model
1552
+ # * `logging.googleapis.com` - The legacy Cloud Logging service (no longer
1553
+ # available as of GKE 1.15).
1554
+ # * `none` - no logs will be exported from the cluster.
1555
+ #
1556
+ # If left as an empty string,`logging.googleapis.com/kubernetes` will be
1557
+ # used for GKE 1.14+ or `logging.googleapis.com` for earlier versions.
1284
1558
  # @!attribute [rw] name
1285
1559
  # @return [::String]
1286
1560
  # The name (project, location, cluster) of the cluster to set logging.
@@ -1299,9 +1573,9 @@ module Google
1299
1573
  # @!attribute [rw] zone
1300
1574
  # @return [::String]
1301
1575
  # Deprecated. The name of the Google Compute Engine
1302
- # [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster
1303
- # resides.
1304
- # This field has been deprecated and replaced by the name field.
1576
+ # [zone](https://cloud.google.com/compute/docs/zones#available) in which the
1577
+ # cluster resides. This field has been deprecated and replaced by the name
1578
+ # field.
1305
1579
  # @!attribute [rw] cluster_id
1306
1580
  # @return [::String]
1307
1581
  # Deprecated. The name of the cluster to upgrade.
@@ -1311,10 +1585,14 @@ module Google
1311
1585
  # Required. The monitoring service the cluster should use to write metrics.
1312
1586
  # Currently available options:
1313
1587
  #
1314
- # * "monitoring.googleapis.com/kubernetes" - the Google Cloud Monitoring
1315
- # service with Kubernetes-native resource model
1316
- # * "monitoring.googleapis.com" - the Google Cloud Monitoring service
1317
- # * "none" - no metrics will be exported from the cluster
1588
+ # * "monitoring.googleapis.com/kubernetes" - The Cloud Monitoring
1589
+ # service with a Kubernetes-native resource model
1590
+ # * `monitoring.googleapis.com` - The legacy Cloud Monitoring service (no
1591
+ # longer available as of GKE 1.15).
1592
+ # * `none` - No metrics will be exported from the cluster.
1593
+ #
1594
+ # If left as an empty string,`monitoring.googleapis.com/kubernetes` will be
1595
+ # used for GKE 1.14+ or `monitoring.googleapis.com` for earlier versions.
1318
1596
  # @!attribute [rw] name
1319
1597
  # @return [::String]
1320
1598
  # The name (project, location, cluster) of the cluster to set monitoring.
@@ -1333,9 +1611,9 @@ module Google
1333
1611
  # @!attribute [rw] zone
1334
1612
  # @return [::String]
1335
1613
  # Deprecated. The name of the Google Compute Engine
1336
- # [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster
1337
- # resides.
1338
- # This field has been deprecated and replaced by the name field.
1614
+ # [zone](https://cloud.google.com/compute/docs/zones#available) in which the
1615
+ # cluster resides. This field has been deprecated and replaced by the name
1616
+ # field.
1339
1617
  # @!attribute [rw] cluster_id
1340
1618
  # @return [::String]
1341
1619
  # Deprecated. The name of the cluster to upgrade.
@@ -1362,9 +1640,9 @@ module Google
1362
1640
  # @!attribute [rw] zone
1363
1641
  # @return [::String]
1364
1642
  # Deprecated. The name of the Google Compute Engine
1365
- # [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster
1366
- # resides.
1367
- # This field has been deprecated and replaced by the name field.
1643
+ # [zone](https://cloud.google.com/compute/docs/zones#available) in which the
1644
+ # cluster resides. This field has been deprecated and replaced by the name
1645
+ # field.
1368
1646
  # @!attribute [rw] cluster_id
1369
1647
  # @return [::String]
1370
1648
  # Deprecated. The name of the cluster to upgrade.
@@ -1372,10 +1650,10 @@ module Google
1372
1650
  # @!attribute [rw] locations
1373
1651
  # @return [::Array<::String>]
1374
1652
  # Required. The desired list of Google Compute Engine
1375
- # [zones](https://cloud.google.com/compute/docs/zones#available) in which the cluster's nodes
1376
- # should be located. Changing the locations a cluster is in will result
1377
- # in nodes being either created or removed from the cluster, depending on
1378
- # whether locations are being added or removed.
1653
+ # [zones](https://cloud.google.com/compute/docs/zones#available) in which the
1654
+ # cluster's nodes should be located. Changing the locations a cluster is in
1655
+ # will result in nodes being either created or removed from the cluster,
1656
+ # depending on whether locations are being added or removed.
1379
1657
  #
1380
1658
  # This list must always include the cluster's primary zone.
1381
1659
  # @!attribute [rw] name
@@ -1396,9 +1674,9 @@ module Google
1396
1674
  # @!attribute [rw] zone
1397
1675
  # @return [::String]
1398
1676
  # Deprecated. The name of the Google Compute Engine
1399
- # [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster
1400
- # resides.
1401
- # This field has been deprecated and replaced by the name field.
1677
+ # [zone](https://cloud.google.com/compute/docs/zones#available) in which the
1678
+ # cluster resides. This field has been deprecated and replaced by the name
1679
+ # field.
1402
1680
  # @!attribute [rw] cluster_id
1403
1681
  # @return [::String]
1404
1682
  # Deprecated. The name of the cluster to upgrade.
@@ -1433,9 +1711,9 @@ module Google
1433
1711
  # @!attribute [rw] zone
1434
1712
  # @return [::String]
1435
1713
  # Deprecated. The name of the Google Compute Engine
1436
- # [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster
1437
- # resides.
1438
- # This field has been deprecated and replaced by the name field.
1714
+ # [zone](https://cloud.google.com/compute/docs/zones#available) in which the
1715
+ # cluster resides. This field has been deprecated and replaced by the name
1716
+ # field.
1439
1717
  # @!attribute [rw] cluster_id
1440
1718
  # @return [::String]
1441
1719
  # Deprecated. The name of the cluster to upgrade.
@@ -1482,9 +1760,9 @@ module Google
1482
1760
  # @!attribute [rw] zone
1483
1761
  # @return [::String]
1484
1762
  # Deprecated. The name of the Google Compute Engine
1485
- # [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster
1486
- # resides.
1487
- # This field has been deprecated and replaced by the name field.
1763
+ # [zone](https://cloud.google.com/compute/docs/zones#available) in which the
1764
+ # cluster resides. This field has been deprecated and replaced by the name
1765
+ # field.
1488
1766
  # @!attribute [rw] cluster_id
1489
1767
  # @return [::String]
1490
1768
  # Deprecated. The name of the cluster to delete.
@@ -1507,9 +1785,9 @@ module Google
1507
1785
  # @!attribute [rw] zone
1508
1786
  # @return [::String]
1509
1787
  # Deprecated. The name of the Google Compute Engine
1510
- # [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster
1511
- # resides, or "-" for all zones.
1512
- # This field has been deprecated and replaced by the parent field.
1788
+ # [zone](https://cloud.google.com/compute/docs/zones#available) in which the
1789
+ # cluster resides, or "-" for all zones. This field has been deprecated and
1790
+ # replaced by the parent field.
1513
1791
  # @!attribute [rw] parent
1514
1792
  # @return [::String]
1515
1793
  # The parent (project and location) where the clusters will be listed.
@@ -1543,9 +1821,9 @@ module Google
1543
1821
  # @!attribute [rw] zone
1544
1822
  # @return [::String]
1545
1823
  # Deprecated. The name of the Google Compute Engine
1546
- # [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster
1547
- # resides.
1548
- # This field has been deprecated and replaced by the name field.
1824
+ # [zone](https://cloud.google.com/compute/docs/zones#available) in which the
1825
+ # cluster resides. This field has been deprecated and replaced by the name
1826
+ # field.
1549
1827
  # @!attribute [rw] operation_id
1550
1828
  # @return [::String]
1551
1829
  # Deprecated. The server-assigned `name` of the operation.
@@ -1568,8 +1846,9 @@ module Google
1568
1846
  # @!attribute [rw] zone
1569
1847
  # @return [::String]
1570
1848
  # Deprecated. The name of the Google Compute Engine
1571
- # [zone](https://cloud.google.com/compute/docs/zones#available) to return operations for, or `-` for
1572
- # all zones. This field has been deprecated and replaced by the parent field.
1849
+ # [zone](https://cloud.google.com/compute/docs/zones#available) to return
1850
+ # operations for, or `-` for all zones. This field has been deprecated and
1851
+ # replaced by the parent field.
1573
1852
  # @!attribute [rw] parent
1574
1853
  # @return [::String]
1575
1854
  # The parent (project and location) where the operations will be listed.
@@ -1589,8 +1868,9 @@ module Google
1589
1868
  # @!attribute [rw] zone
1590
1869
  # @return [::String]
1591
1870
  # Deprecated. The name of the Google Compute Engine
1592
- # [zone](https://cloud.google.com/compute/docs/zones#available) in which the operation resides.
1593
- # This field has been deprecated and replaced by the name field.
1871
+ # [zone](https://cloud.google.com/compute/docs/zones#available) in which the
1872
+ # operation resides. This field has been deprecated and replaced by the name
1873
+ # field.
1594
1874
  # @!attribute [rw] operation_id
1595
1875
  # @return [::String]
1596
1876
  # Deprecated. The server-assigned `name` of the operation.
@@ -1626,8 +1906,9 @@ module Google
1626
1906
  # @!attribute [rw] zone
1627
1907
  # @return [::String]
1628
1908
  # Deprecated. The name of the Google Compute Engine
1629
- # [zone](https://cloud.google.com/compute/docs/zones#available) to return operations for.
1630
- # This field has been deprecated and replaced by the name field.
1909
+ # [zone](https://cloud.google.com/compute/docs/zones#available) to return
1910
+ # operations for. This field has been deprecated and replaced by the name
1911
+ # field.
1631
1912
  # @!attribute [rw] name
1632
1913
  # @return [::String]
1633
1914
  # The name (project and location) of the server config to get,
@@ -1643,7 +1924,7 @@ module Google
1643
1924
  # Version of Kubernetes the service deploys by default.
1644
1925
  # @!attribute [rw] valid_node_versions
1645
1926
  # @return [::Array<::String>]
1646
- # List of valid node upgrade target versions.
1927
+ # List of valid node upgrade target versions, in descending order.
1647
1928
  # @!attribute [rw] default_image_type
1648
1929
  # @return [::String]
1649
1930
  # Default image type.
@@ -1652,10 +1933,28 @@ module Google
1652
1933
  # List of valid image types.
1653
1934
  # @!attribute [rw] valid_master_versions
1654
1935
  # @return [::Array<::String>]
1655
- # List of valid master versions.
1936
+ # List of valid master versions, in descending order.
1937
+ # @!attribute [rw] channels
1938
+ # @return [::Array<::Google::Cloud::Container::V1::ServerConfig::ReleaseChannelConfig>]
1939
+ # List of release channel configurations.
1656
1940
  class ServerConfig
1657
1941
  include ::Google::Protobuf::MessageExts
1658
1942
  extend ::Google::Protobuf::MessageExts::ClassMethods
1943
+
1944
+ # ReleaseChannelConfig exposes configuration for a release channel.
1945
+ # @!attribute [rw] channel
1946
+ # @return [::Google::Cloud::Container::V1::ReleaseChannel::Channel]
1947
+ # The release channel this configuration applies to.
1948
+ # @!attribute [rw] default_version
1949
+ # @return [::String]
1950
+ # The default version for newly created clusters on the channel.
1951
+ # @!attribute [rw] valid_versions
1952
+ # @return [::Array<::String>]
1953
+ # List of valid versions for the channel.
1954
+ class ReleaseChannelConfig
1955
+ include ::Google::Protobuf::MessageExts
1956
+ extend ::Google::Protobuf::MessageExts::ClassMethods
1957
+ end
1659
1958
  end
1660
1959
 
1661
1960
  # CreateNodePoolRequest creates a node pool for a cluster.
@@ -1667,9 +1966,9 @@ module Google
1667
1966
  # @!attribute [rw] zone
1668
1967
  # @return [::String]
1669
1968
  # Deprecated. The name of the Google Compute Engine
1670
- # [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster
1671
- # resides.
1672
- # This field has been deprecated and replaced by the parent field.
1969
+ # [zone](https://cloud.google.com/compute/docs/zones#available) in which the
1970
+ # cluster resides. This field has been deprecated and replaced by the parent
1971
+ # field.
1673
1972
  # @!attribute [rw] cluster_id
1674
1973
  # @return [::String]
1675
1974
  # Deprecated. The name of the cluster.
@@ -1696,9 +1995,9 @@ module Google
1696
1995
  # @!attribute [rw] zone
1697
1996
  # @return [::String]
1698
1997
  # Deprecated. The name of the Google Compute Engine
1699
- # [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster
1700
- # resides.
1701
- # This field has been deprecated and replaced by the name field.
1998
+ # [zone](https://cloud.google.com/compute/docs/zones#available) in which the
1999
+ # cluster resides. This field has been deprecated and replaced by the name
2000
+ # field.
1702
2001
  # @!attribute [rw] cluster_id
1703
2002
  # @return [::String]
1704
2003
  # Deprecated. The name of the cluster.
@@ -1726,9 +2025,9 @@ module Google
1726
2025
  # @!attribute [rw] zone
1727
2026
  # @return [::String]
1728
2027
  # Deprecated. The name of the Google Compute Engine
1729
- # [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster
1730
- # resides.
1731
- # This field has been deprecated and replaced by the parent field.
2028
+ # [zone](https://cloud.google.com/compute/docs/zones#available) in which the
2029
+ # cluster resides. This field has been deprecated and replaced by the parent
2030
+ # field.
1732
2031
  # @!attribute [rw] cluster_id
1733
2032
  # @return [::String]
1734
2033
  # Deprecated. The name of the cluster.
@@ -1751,9 +2050,9 @@ module Google
1751
2050
  # @!attribute [rw] zone
1752
2051
  # @return [::String]
1753
2052
  # Deprecated. The name of the Google Compute Engine
1754
- # [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster
1755
- # resides.
1756
- # This field has been deprecated and replaced by the name field.
2053
+ # [zone](https://cloud.google.com/compute/docs/zones#available) in which the
2054
+ # cluster resides. This field has been deprecated and replaced by the name
2055
+ # field.
1757
2056
  # @!attribute [rw] cluster_id
1758
2057
  # @return [::String]
1759
2058
  # Deprecated. The name of the cluster.
@@ -1790,6 +2089,18 @@ module Google
1790
2089
  # Compute Engine [resource quota](https://cloud.google.com/compute/quotas)
1791
2090
  # is sufficient for this number of instances. You must also have available
1792
2091
  # firewall and routes quota.
2092
+ # @!attribute [rw] locations
2093
+ # @return [::Array<::String>]
2094
+ # The list of Google Compute Engine
2095
+ # [zones](https://cloud.google.com/compute/docs/zones#available) in which the
2096
+ # NodePool's nodes should be located.
2097
+ #
2098
+ # If this value is unspecified during node pool creation, the
2099
+ # [Cluster.Locations](https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1/projects.locations.clusters#Cluster.FIELDS.locations)
2100
+ # value will be used, instead.
2101
+ #
2102
+ # Warning: changing node pool locations will result in nodes being added
2103
+ # and/or removed.
1793
2104
  # @!attribute [rw] self_link
1794
2105
  # @return [::String]
1795
2106
  # [Output only] Server-defined URL for the resource.
@@ -1806,7 +2117,8 @@ module Google
1806
2117
  # [Output only] The status of the nodes in this pool instance.
1807
2118
  # @!attribute [rw] status_message
1808
2119
  # @return [::String]
1809
- # [Output only] Additional information about the current status of this
2120
+ # [Output only] Deprecated. Use conditions instead.
2121
+ # Additional information about the current status of this
1810
2122
  # node pool instance, if available.
1811
2123
  # @!attribute [rw] autoscaling
1812
2124
  # @return [::Google::Cloud::Container::V1::NodePoolAutoscaling]
@@ -1825,10 +2137,50 @@ module Google
1825
2137
  # @!attribute [rw] pod_ipv4_cidr_size
1826
2138
  # @return [::Integer]
1827
2139
  # [Output only] The pod CIDR block size per node in this node pool.
2140
+ # @!attribute [rw] upgrade_settings
2141
+ # @return [::Google::Cloud::Container::V1::NodePool::UpgradeSettings]
2142
+ # Upgrade settings control disruption and speed of the upgrade.
1828
2143
  class NodePool
1829
2144
  include ::Google::Protobuf::MessageExts
1830
2145
  extend ::Google::Protobuf::MessageExts::ClassMethods
1831
2146
 
2147
+ # These upgrade settings control the level of parallelism and the level of
2148
+ # disruption caused by an upgrade.
2149
+ #
2150
+ # maxUnavailable controls the number of nodes that can be simultaneously
2151
+ # unavailable.
2152
+ #
2153
+ # maxSurge controls the number of additional nodes that can be added to the
2154
+ # node pool temporarily for the time of the upgrade to increase the number of
2155
+ # available nodes.
2156
+ #
2157
+ # (maxUnavailable + maxSurge) determines the level of parallelism (how many
2158
+ # nodes are being upgraded at the same time).
2159
+ #
2160
+ # Note: upgrades inevitably introduce some disruption since workloads need to
2161
+ # be moved from old nodes to new, upgraded ones. Even if maxUnavailable=0,
2162
+ # this holds true. (Disruption stays within the limits of
2163
+ # PodDisruptionBudget, if it is configured.)
2164
+ #
2165
+ # Consider a hypothetical node pool with 5 nodes having maxSurge=2,
2166
+ # maxUnavailable=1. This means the upgrade process upgrades 3 nodes
2167
+ # simultaneously. It creates 2 additional (upgraded) nodes, then it brings
2168
+ # down 3 old (not yet upgraded) nodes at the same time. This ensures that
2169
+ # there are always at least 4 nodes available.
2170
+ # @!attribute [rw] max_surge
2171
+ # @return [::Integer]
2172
+ # The maximum number of nodes that can be created beyond the current size
2173
+ # of the node pool during the upgrade process.
2174
+ # @!attribute [rw] max_unavailable
2175
+ # @return [::Integer]
2176
+ # The maximum number of nodes that can be simultaneously unavailable during
2177
+ # the upgrade process. A node is considered available if its status is
2178
+ # Ready.
2179
+ class UpgradeSettings
2180
+ include ::Google::Protobuf::MessageExts
2181
+ extend ::Google::Protobuf::MessageExts::ClassMethods
2182
+ end
2183
+
1832
2184
  # The current status of the node pool instance.
1833
2185
  module Status
1834
2186
  # Not set.
@@ -1907,7 +2259,7 @@ module Google
1907
2259
  # A hash identifying the version of this policy, so that updates to fields of
1908
2260
  # the policy won't accidentally undo intermediate changes (and so that users
1909
2261
  # of the API unaware of some fields won't accidentally remove other fields).
1910
- # Make a <code>get()</code> request to the cluster to get the current
2262
+ # Make a `get()` request to the cluster to get the current
1911
2263
  # resource version and include it with requests to set the policy.
1912
2264
  class MaintenancePolicy
1913
2265
  include ::Google::Protobuf::MessageExts
@@ -1965,25 +2317,30 @@ module Google
1965
2317
  # end time.
1966
2318
  #
1967
2319
  # For example, to have something repeat every weekday, you'd use:
1968
- # <code>FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR</code>
2320
+ # `FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR`
2321
+ #
1969
2322
  # To repeat some window daily (equivalent to the DailyMaintenanceWindow):
1970
- # <code>FREQ=DAILY</code>
2323
+ # `FREQ=DAILY`
2324
+ #
1971
2325
  # For the first weekend of every month:
1972
- # <code>FREQ=MONTHLY;BYSETPOS=1;BYDAY=SA,SU</code>
2326
+ # `FREQ=MONTHLY;BYSETPOS=1;BYDAY=SA,SU`
2327
+ #
1973
2328
  # This specifies how frequently the window starts. Eg, if you wanted to have
1974
2329
  # a 9-5 UTC-4 window every weekday, you'd use something like:
1975
- # <code>
1976
- # start time = 2019-01-01T09:00:00-0400
1977
- # end time = 2019-01-01T17:00:00-0400
1978
- # recurrence = FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR
1979
- # </code>
2330
+ # ```
2331
+ # start time = 2019-01-01T09:00:00-0400
2332
+ # end time = 2019-01-01T17:00:00-0400
2333
+ # recurrence = FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR
2334
+ # ```
2335
+ #
1980
2336
  # Windows can span multiple days. Eg, to make the window encompass every
1981
2337
  # weekend from midnight Saturday till the last minute of Sunday UTC:
1982
- # <code>
1983
- # start time = 2019-01-05T00:00:00Z
1984
- # end time = 2019-01-07T23:59:00Z
1985
- # recurrence = FREQ=WEEKLY;BYDAY=SA
1986
- # </code>
2338
+ # ```
2339
+ # start time = 2019-01-05T00:00:00Z
2340
+ # end time = 2019-01-07T23:59:00Z
2341
+ # recurrence = FREQ=WEEKLY;BYDAY=SA
2342
+ # ```
2343
+ #
1987
2344
  # Note the start and end time's specific dates are largely arbitrary except
1988
2345
  # to specify duration of the window and when it first starts.
1989
2346
  # The FREQ values of HOURLY, MINUTELY, and SECONDLY are not supported.
@@ -2019,9 +2376,9 @@ module Google
2019
2376
  # @!attribute [rw] zone
2020
2377
  # @return [::String]
2021
2378
  # Deprecated. The name of the Google Compute Engine
2022
- # [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster
2023
- # resides.
2024
- # This field has been deprecated and replaced by the name field.
2379
+ # [zone](https://cloud.google.com/compute/docs/zones#available) in which the
2380
+ # cluster resides. This field has been deprecated and replaced by the name
2381
+ # field.
2025
2382
  # @!attribute [rw] cluster_id
2026
2383
  # @return [::String]
2027
2384
  # Deprecated. The name of the cluster to update.
@@ -2053,9 +2410,9 @@ module Google
2053
2410
  # @!attribute [rw] zone
2054
2411
  # @return [::String]
2055
2412
  # Deprecated. The name of the Google Compute Engine
2056
- # [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster
2057
- # resides.
2058
- # This field has been deprecated and replaced by the name field.
2413
+ # [zone](https://cloud.google.com/compute/docs/zones#available) in which the
2414
+ # cluster resides. This field has been deprecated and replaced by the name
2415
+ # field.
2059
2416
  # @!attribute [rw] cluster_id
2060
2417
  # @return [::String]
2061
2418
  # Deprecated. The name of the cluster to update.
@@ -2088,9 +2445,9 @@ module Google
2088
2445
  # @!attribute [rw] zone
2089
2446
  # @return [::String]
2090
2447
  # Deprecated. The name of the Google Compute Engine
2091
- # [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster
2092
- # resides.
2093
- # This field has been deprecated and replaced by the name field.
2448
+ # [zone](https://cloud.google.com/compute/docs/zones#available) in which the
2449
+ # cluster resides. This field has been deprecated and replaced by the name
2450
+ # field.
2094
2451
  # @!attribute [rw] cluster_id
2095
2452
  # @return [::String]
2096
2453
  # Deprecated. The name of the cluster to rollback.
@@ -2135,8 +2492,9 @@ module Google
2135
2492
  # created by NAP.
2136
2493
  # @!attribute [rw] autoprovisioning_locations
2137
2494
  # @return [::Array<::String>]
2138
- # The list of Google Compute Engine [zones](https://cloud.google.com/compute/docs/zones#available)
2139
- # in which the NodePool's nodes can be created by NAP.
2495
+ # The list of Google Compute Engine
2496
+ # [zones](https://cloud.google.com/compute/docs/zones#available) in which the
2497
+ # NodePool's nodes can be created by NAP.
2140
2498
  class ClusterAutoscaling
2141
2499
  include ::Google::Protobuf::MessageExts
2142
2500
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -2146,12 +2504,50 @@ module Google
2146
2504
  # by NAP.
2147
2505
  # @!attribute [rw] oauth_scopes
2148
2506
  # @return [::Array<::String>]
2149
- # Scopes that are used by NAP when creating node pools. If oauth_scopes are
2150
- # specified, service_account should be empty.
2507
+ # Scopes that are used by NAP when creating node pools.
2151
2508
  # @!attribute [rw] service_account
2152
2509
  # @return [::String]
2153
- # The Google Cloud Platform Service Account to be used by the node VMs. If
2154
- # service_account is specified, scopes should be empty.
2510
+ # The Google Cloud Platform Service Account to be used by the node VMs.
2511
+ # @!attribute [rw] upgrade_settings
2512
+ # @return [::Google::Cloud::Container::V1::NodePool::UpgradeSettings]
2513
+ # Specifies the upgrade settings for NAP created node pools
2514
+ # @!attribute [rw] management
2515
+ # @return [::Google::Cloud::Container::V1::NodeManagement]
2516
+ # Specifies the node management options for NAP created node-pools.
2517
+ # @!attribute [rw] min_cpu_platform
2518
+ # @return [::String]
2519
+ # Minimum CPU platform to be used for NAP created node pools.
2520
+ # The instance may be scheduled on the specified or newer CPU platform.
2521
+ # Applicable values are the friendly names of CPU platforms, such as
2522
+ # minCpuPlatform: Intel Haswell or
2523
+ # minCpuPlatform: Intel Sandy Bridge. For more
2524
+ # information, read [how to specify min CPU
2525
+ # platform](https://cloud.google.com/compute/docs/instances/specify-min-cpu-platform)
2526
+ # To unset the min cpu platform field pass "automatic"
2527
+ # as field value.
2528
+ # @!attribute [rw] disk_size_gb
2529
+ # @return [::Integer]
2530
+ # Size of the disk attached to each node, specified in GB.
2531
+ # The smallest allowed disk size is 10GB.
2532
+ #
2533
+ # If unspecified, the default disk size is 100GB.
2534
+ # @!attribute [rw] disk_type
2535
+ # @return [::String]
2536
+ # Type of the disk attached to each node (e.g. 'pd-standard', 'pd-ssd' or
2537
+ # 'pd-balanced')
2538
+ #
2539
+ # If unspecified, the default disk type is 'pd-standard'
2540
+ # @!attribute [rw] shielded_instance_config
2541
+ # @return [::Google::Cloud::Container::V1::ShieldedInstanceConfig]
2542
+ # Shielded Instance options.
2543
+ # @!attribute [rw] boot_disk_kms_key
2544
+ # @return [::String]
2545
+ # The Customer Managed Encryption Key used to encrypt the boot disk attached
2546
+ # to each node in the node pool. This should be of the form
2547
+ # projects/[KEY_PROJECT_ID]/locations/[LOCATION]/keyRings/[RING_NAME]/cryptoKeys/[KEY_NAME].
2548
+ # For more information about protecting resources with Cloud KMS Keys please
2549
+ # see:
2550
+ # https://cloud.google.com/compute/docs/disks/customer-managed-encryption
2155
2551
  class AutoprovisioningNodePoolDefaults
2156
2552
  include ::Google::Protobuf::MessageExts
2157
2553
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -2205,9 +2601,9 @@ module Google
2205
2601
  # @!attribute [rw] zone
2206
2602
  # @return [::String]
2207
2603
  # Deprecated. The name of the Google Compute Engine
2208
- # [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster
2209
- # resides.
2210
- # This field has been deprecated and replaced by the name field.
2604
+ # [zone](https://cloud.google.com/compute/docs/zones#available) in which the
2605
+ # cluster resides. This field has been deprecated and replaced by the name
2606
+ # field.
2211
2607
  # @!attribute [rw] cluster_id
2212
2608
  # @return [::String]
2213
2609
  # Deprecated. The name of the cluster.
@@ -2221,7 +2617,7 @@ module Google
2221
2617
  # used to detect conflicts. The fingerprint is initially generated by
2222
2618
  # Kubernetes Engine and changes after every request to modify or update
2223
2619
  # labels. You must always provide an up-to-date fingerprint hash when
2224
- # updating or changing labels. Make a <code>get()</code> request to the
2620
+ # updating or changing labels. Make a `get()` request to the
2225
2621
  # resource to get the latest fingerprint.
2226
2622
  # @!attribute [rw] name
2227
2623
  # @return [::String]
@@ -2251,9 +2647,9 @@ module Google
2251
2647
  # @!attribute [rw] zone
2252
2648
  # @return [::String]
2253
2649
  # Deprecated. The name of the Google Compute Engine
2254
- # [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster
2255
- # resides.
2256
- # This field has been deprecated and replaced by the name field.
2650
+ # [zone](https://cloud.google.com/compute/docs/zones#available) in which the
2651
+ # cluster resides. This field has been deprecated and replaced by the name
2652
+ # field.
2257
2653
  # @!attribute [rw] cluster_id
2258
2654
  # @return [::String]
2259
2655
  # Deprecated. The name of the cluster to update.
@@ -2280,9 +2676,9 @@ module Google
2280
2676
  # @!attribute [rw] zone
2281
2677
  # @return [::String]
2282
2678
  # Deprecated. The name of the Google Compute Engine
2283
- # [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster
2284
- # resides.
2285
- # This field has been deprecated and replaced by the name field.
2679
+ # [zone](https://cloud.google.com/compute/docs/zones#available) in which the
2680
+ # cluster resides. This field has been deprecated and replaced by the name
2681
+ # field.
2286
2682
  # @!attribute [rw] cluster_id
2287
2683
  # @return [::String]
2288
2684
  # Deprecated. The name of the cluster.
@@ -2308,9 +2704,9 @@ module Google
2308
2704
  # @!attribute [rw] zone
2309
2705
  # @return [::String]
2310
2706
  # Deprecated. The name of the Google Compute Engine
2311
- # [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster
2312
- # resides.
2313
- # This field has been deprecated and replaced by the name field.
2707
+ # [zone](https://cloud.google.com/compute/docs/zones#available) in which the
2708
+ # cluster resides. This field has been deprecated and replaced by the name
2709
+ # field.
2314
2710
  # @!attribute [rw] cluster_id
2315
2711
  # @return [::String]
2316
2712
  # Deprecated. The name of the cluster.
@@ -2337,6 +2733,34 @@ module Google
2337
2733
  extend ::Google::Protobuf::MessageExts::ClassMethods
2338
2734
  end
2339
2735
 
2736
+ # WorkloadMetadataConfig defines the metadata configuration to expose to
2737
+ # workloads on the node pool.
2738
+ # @!attribute [rw] mode
2739
+ # @return [::Google::Cloud::Container::V1::WorkloadMetadataConfig::Mode]
2740
+ # Mode is the configuration for how to expose metadata to workloads running
2741
+ # on the node pool.
2742
+ class WorkloadMetadataConfig
2743
+ include ::Google::Protobuf::MessageExts
2744
+ extend ::Google::Protobuf::MessageExts::ClassMethods
2745
+
2746
+ # Mode is the configuration for how to expose metadata to workloads running
2747
+ # on the node.
2748
+ module Mode
2749
+ # Not set.
2750
+ MODE_UNSPECIFIED = 0
2751
+
2752
+ # Expose all Compute Engine metadata to pods.
2753
+ GCE_METADATA = 1
2754
+
2755
+ # Run the GKE Metadata Server on this node. The GKE Metadata Server exposes
2756
+ # a metadata API to workloads that is compatible with the V1 Compute
2757
+ # Metadata APIs exposed by the Compute Engine and App Engine Metadata
2758
+ # Servers. This feature can only be enabled if Workload Identity is enabled
2759
+ # at the cluster level.
2760
+ GKE_METADATA = 2
2761
+ end
2762
+ end
2763
+
2340
2764
  # SetNetworkPolicyRequest enables/disables network policy for a cluster.
2341
2765
  # @!attribute [rw] project_id
2342
2766
  # @return [::String]
@@ -2346,9 +2770,9 @@ module Google
2346
2770
  # @!attribute [rw] zone
2347
2771
  # @return [::String]
2348
2772
  # Deprecated. The name of the Google Compute Engine
2349
- # [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster
2350
- # resides.
2351
- # This field has been deprecated and replaced by the name field.
2773
+ # [zone](https://cloud.google.com/compute/docs/zones#available) in which the
2774
+ # cluster resides. This field has been deprecated and replaced by the name
2775
+ # field.
2352
2776
  # @!attribute [rw] cluster_id
2353
2777
  # @return [::String]
2354
2778
  # Deprecated. The name of the cluster.
@@ -2373,8 +2797,8 @@ module Google
2373
2797
  # @!attribute [rw] zone
2374
2798
  # @return [::String]
2375
2799
  # Required. The name of the Google Compute Engine
2376
- # [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster
2377
- # resides.
2800
+ # [zone](https://cloud.google.com/compute/docs/zones#available) in which the
2801
+ # cluster resides.
2378
2802
  # @!attribute [rw] cluster_id
2379
2803
  # @return [::String]
2380
2804
  # Required. The name of the cluster to update.
@@ -2409,7 +2833,8 @@ module Google
2409
2833
  # UNKNOWN indicates a generic condition.
2410
2834
  UNKNOWN = 0
2411
2835
 
2412
- # GCE_STOCKOUT indicates a Google Compute Engine stockout.
2836
+ # GCE_STOCKOUT indicates that Google Compute Engine resources are
2837
+ # temporarily unavailable.
2413
2838
  GCE_STOCKOUT = 1
2414
2839
 
2415
2840
  # GKE_SERVICE_ACCOUNT_DELETED indicates that the user deleted their robot
@@ -2433,23 +2858,162 @@ module Google
2433
2858
  # @!attribute [rw] network
2434
2859
  # @return [::String]
2435
2860
  # Output only. The relative name of the Google Compute Engine
2436
- # {::Google::Cloud::Container::V1::NetworkConfig#network network}(https://cloud.google.com/compute/docs/networks-and-firewalls#networks) to which
2437
- # the cluster is connected.
2438
- # Example: projects/my-project/global/networks/my-network
2861
+ # {::Google::Cloud::Container::V1::NetworkConfig#network network}(https://cloud.google.com/compute/docs/networks-and-firewalls#networks)
2862
+ # to which the cluster is connected. Example:
2863
+ # projects/my-project/global/networks/my-network
2439
2864
  # @!attribute [rw] subnetwork
2440
2865
  # @return [::String]
2441
2866
  # Output only. The relative name of the Google Compute Engine
2442
- # [subnetwork](https://cloud.google.com/compute/docs/vpc) to which the cluster is connected.
2443
- # Example: projects/my-project/regions/us-central1/subnetworks/my-subnet
2867
+ # [subnetwork](https://cloud.google.com/compute/docs/vpc) to which the
2868
+ # cluster is connected. Example:
2869
+ # projects/my-project/regions/us-central1/subnetworks/my-subnet
2444
2870
  # @!attribute [rw] enable_intra_node_visibility
2445
2871
  # @return [::Boolean]
2446
2872
  # Whether Intra-node visibility is enabled for this cluster.
2447
2873
  # This makes same node pod to pod traffic visible for VPC network.
2874
+ # @!attribute [rw] default_snat_status
2875
+ # @return [::Google::Cloud::Container::V1::DefaultSnatStatus]
2876
+ # Whether the cluster disables default in-node sNAT rules. In-node sNAT rules
2877
+ # will be disabled when default_snat_status is disabled. When disabled is set
2878
+ # to false, default IP masquerade rules will be applied to the nodes to
2879
+ # prevent sNAT on cluster internal traffic.
2448
2880
  class NetworkConfig
2449
2881
  include ::Google::Protobuf::MessageExts
2450
2882
  extend ::Google::Protobuf::MessageExts::ClassMethods
2451
2883
  end
2452
2884
 
2885
+ # GetOpenIDConfigRequest gets the OIDC discovery document for the
2886
+ # cluster. See the OpenID Connect Discovery 1.0 specification for details.
2887
+ # @!attribute [rw] parent
2888
+ # @return [::String]
2889
+ # The cluster (project, location, cluster id) to get the discovery document
2890
+ # for. Specified in the format `projects/*/locations/*/clusters/*`.
2891
+ class GetOpenIDConfigRequest
2892
+ include ::Google::Protobuf::MessageExts
2893
+ extend ::Google::Protobuf::MessageExts::ClassMethods
2894
+ end
2895
+
2896
+ # GetOpenIDConfigResponse is an OIDC discovery document for the cluster.
2897
+ # See the OpenID Connect Discovery 1.0 specification for details.
2898
+ # @!attribute [rw] issuer
2899
+ # @return [::String]
2900
+ # OIDC Issuer.
2901
+ # @!attribute [rw] jwks_uri
2902
+ # @return [::String]
2903
+ # JSON Web Key uri.
2904
+ # @!attribute [rw] response_types_supported
2905
+ # @return [::Array<::String>]
2906
+ # Supported response types.
2907
+ # @!attribute [rw] subject_types_supported
2908
+ # @return [::Array<::String>]
2909
+ # Supported subject types.
2910
+ # @!attribute [rw] id_token_signing_alg_values_supported
2911
+ # @return [::Array<::String>]
2912
+ # supported ID Token signing Algorithms.
2913
+ # @!attribute [rw] claims_supported
2914
+ # @return [::Array<::String>]
2915
+ # Supported claims.
2916
+ # @!attribute [rw] grant_types
2917
+ # @return [::Array<::String>]
2918
+ # Supported grant types.
2919
+ class GetOpenIDConfigResponse
2920
+ include ::Google::Protobuf::MessageExts
2921
+ extend ::Google::Protobuf::MessageExts::ClassMethods
2922
+ end
2923
+
2924
+ # GetJSONWebKeysRequest gets the public component of the keys used by the
2925
+ # cluster to sign token requests. This will be the jwks_uri for the discover
2926
+ # document returned by getOpenIDConfig. See the OpenID Connect
2927
+ # Discovery 1.0 specification for details.
2928
+ # @!attribute [rw] parent
2929
+ # @return [::String]
2930
+ # The cluster (project, location, cluster id) to get keys for. Specified in
2931
+ # the format `projects/*/locations/*/clusters/*`.
2932
+ class GetJSONWebKeysRequest
2933
+ include ::Google::Protobuf::MessageExts
2934
+ extend ::Google::Protobuf::MessageExts::ClassMethods
2935
+ end
2936
+
2937
+ # Jwk is a JSON Web Key as specified in RFC 7517
2938
+ # @!attribute [rw] kty
2939
+ # @return [::String]
2940
+ # Key Type.
2941
+ # @!attribute [rw] alg
2942
+ # @return [::String]
2943
+ # Algorithm.
2944
+ # @!attribute [rw] use
2945
+ # @return [::String]
2946
+ # Permitted uses for the public keys.
2947
+ # @!attribute [rw] kid
2948
+ # @return [::String]
2949
+ # Key ID.
2950
+ # @!attribute [rw] n
2951
+ # @return [::String]
2952
+ # Used for RSA keys.
2953
+ # @!attribute [rw] e
2954
+ # @return [::String]
2955
+ # Used for RSA keys.
2956
+ # @!attribute [rw] x
2957
+ # @return [::String]
2958
+ # Used for ECDSA keys.
2959
+ # @!attribute [rw] y
2960
+ # @return [::String]
2961
+ # Used for ECDSA keys.
2962
+ # @!attribute [rw] crv
2963
+ # @return [::String]
2964
+ # Used for ECDSA keys.
2965
+ class Jwk
2966
+ include ::Google::Protobuf::MessageExts
2967
+ extend ::Google::Protobuf::MessageExts::ClassMethods
2968
+ end
2969
+
2970
+ # GetJSONWebKeysResponse is a valid JSON Web Key Set as specififed in rfc 7517
2971
+ # @!attribute [rw] keys
2972
+ # @return [::Array<::Google::Cloud::Container::V1::Jwk>]
2973
+ # The public component of the keys used by the cluster to sign token
2974
+ # requests.
2975
+ class GetJSONWebKeysResponse
2976
+ include ::Google::Protobuf::MessageExts
2977
+ extend ::Google::Protobuf::MessageExts::ClassMethods
2978
+ end
2979
+
2980
+ # ReleaseChannel indicates which release channel a cluster is
2981
+ # subscribed to. Release channels are arranged in order of risk.
2982
+ #
2983
+ # When a cluster is subscribed to a release channel, Google maintains
2984
+ # both the master version and the node version. Node auto-upgrade
2985
+ # defaults to true and cannot be disabled.
2986
+ # @!attribute [rw] channel
2987
+ # @return [::Google::Cloud::Container::V1::ReleaseChannel::Channel]
2988
+ # channel specifies which release channel the cluster is subscribed to.
2989
+ class ReleaseChannel
2990
+ include ::Google::Protobuf::MessageExts
2991
+ extend ::Google::Protobuf::MessageExts::ClassMethods
2992
+
2993
+ # Possible values for 'channel'.
2994
+ module Channel
2995
+ # No channel specified.
2996
+ UNSPECIFIED = 0
2997
+
2998
+ # RAPID channel is offered on an early access basis for customers who want
2999
+ # to test new releases.
3000
+ #
3001
+ # WARNING: Versions available in the RAPID Channel may be subject to
3002
+ # unresolved issues with no known workaround and are not subject to any
3003
+ # SLAs.
3004
+ RAPID = 1
3005
+
3006
+ # Clusters subscribed to REGULAR receive versions that are considered GA
3007
+ # quality. REGULAR is intended for production users who want to take
3008
+ # advantage of new features.
3009
+ REGULAR = 2
3010
+
3011
+ # Clusters subscribed to STABLE receive versions that are known to be
3012
+ # stable and reliable in production.
3013
+ STABLE = 3
3014
+ end
3015
+ end
3016
+
2453
3017
  # IntraNodeVisibilityConfig contains the desired config of the intra-node
2454
3018
  # visibility on this cluster.
2455
3019
  # @!attribute [rw] enabled
@@ -2469,6 +3033,16 @@ module Google
2469
3033
  extend ::Google::Protobuf::MessageExts::ClassMethods
2470
3034
  end
2471
3035
 
3036
+ # Configuration for the use of Kubernetes Service Accounts in GCP IAM
3037
+ # policies.
3038
+ # @!attribute [rw] workload_pool
3039
+ # @return [::String]
3040
+ # The workload pool to attach all Kubernetes service accounts to.
3041
+ class WorkloadIdentityConfig
3042
+ include ::Google::Protobuf::MessageExts
3043
+ extend ::Google::Protobuf::MessageExts::ClassMethods
3044
+ end
3045
+
2472
3046
  # Configuration of etcd encryption.
2473
3047
  # @!attribute [rw] state
2474
3048
  # @return [::Google::Cloud::Container::V1::DatabaseEncryption::State]
@@ -2490,7 +3064,7 @@ module Google
2490
3064
  ENCRYPTED = 1
2491
3065
 
2492
3066
  # Secrets in etcd are stored in plain text (at etcd level) - this is
2493
- # unrelated to GCE level full disk encryption.
3067
+ # unrelated to Compute Engine level full disk encryption.
2494
3068
  DECRYPTED = 2
2495
3069
  end
2496
3070
  end
@@ -2649,6 +3223,25 @@ module Google
2649
3223
  include ::Google::Protobuf::MessageExts
2650
3224
  extend ::Google::Protobuf::MessageExts::ClassMethods
2651
3225
  end
3226
+
3227
+ # DefaultSnatStatus contains the desired state of whether default sNAT should
3228
+ # be disabled on the cluster.
3229
+ # @!attribute [rw] disabled
3230
+ # @return [::Boolean]
3231
+ # Disables cluster default sNAT rules.
3232
+ class DefaultSnatStatus
3233
+ include ::Google::Protobuf::MessageExts
3234
+ extend ::Google::Protobuf::MessageExts::ClassMethods
3235
+ end
3236
+
3237
+ # Configuration of Shielded Nodes feature.
3238
+ # @!attribute [rw] enabled
3239
+ # @return [::Boolean]
3240
+ # Whether Shielded Nodes features are enabled on all nodes in this cluster.
3241
+ class ShieldedNodes
3242
+ include ::Google::Protobuf::MessageExts
3243
+ extend ::Google::Protobuf::MessageExts::ClassMethods
3244
+ end
2652
3245
  end
2653
3246
  end
2654
3247
  end