google-cloud-container-v1 0.2.5 → 0.6.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -54,6 +54,12 @@ module Google
54
54
  # This indicates that the field may be set once in a request to create a
55
55
  # resource, but may not be changed thereafter.
56
56
  IMMUTABLE = 5
57
+
58
+ # Denotes that a (repeated) field is an unordered list.
59
+ # This indicates that the service may provide the elements of the list
60
+ # in any arbitrary order, rather than the order the user originally
61
+ # provided. Additionally, the list's order may or may not be stable.
62
+ UNORDERED_LIST = 6
57
63
  end
58
64
  end
59
65
  end
@@ -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,53 @@ 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
2551
+ # @!attribute [rw] image_type
2552
+ # @return [::String]
2553
+ # The image type to use for NAP created node.
2155
2554
  class AutoprovisioningNodePoolDefaults
2156
2555
  include ::Google::Protobuf::MessageExts
2157
2556
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -2205,9 +2604,9 @@ module Google
2205
2604
  # @!attribute [rw] zone
2206
2605
  # @return [::String]
2207
2606
  # 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.
2607
+ # [zone](https://cloud.google.com/compute/docs/zones#available) in which the
2608
+ # cluster resides. This field has been deprecated and replaced by the name
2609
+ # field.
2211
2610
  # @!attribute [rw] cluster_id
2212
2611
  # @return [::String]
2213
2612
  # Deprecated. The name of the cluster.
@@ -2221,7 +2620,7 @@ module Google
2221
2620
  # used to detect conflicts. The fingerprint is initially generated by
2222
2621
  # Kubernetes Engine and changes after every request to modify or update
2223
2622
  # 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
2623
+ # updating or changing labels. Make a `get()` request to the
2225
2624
  # resource to get the latest fingerprint.
2226
2625
  # @!attribute [rw] name
2227
2626
  # @return [::String]
@@ -2251,9 +2650,9 @@ module Google
2251
2650
  # @!attribute [rw] zone
2252
2651
  # @return [::String]
2253
2652
  # 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.
2653
+ # [zone](https://cloud.google.com/compute/docs/zones#available) in which the
2654
+ # cluster resides. This field has been deprecated and replaced by the name
2655
+ # field.
2257
2656
  # @!attribute [rw] cluster_id
2258
2657
  # @return [::String]
2259
2658
  # Deprecated. The name of the cluster to update.
@@ -2280,9 +2679,9 @@ module Google
2280
2679
  # @!attribute [rw] zone
2281
2680
  # @return [::String]
2282
2681
  # 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.
2682
+ # [zone](https://cloud.google.com/compute/docs/zones#available) in which the
2683
+ # cluster resides. This field has been deprecated and replaced by the name
2684
+ # field.
2286
2685
  # @!attribute [rw] cluster_id
2287
2686
  # @return [::String]
2288
2687
  # Deprecated. The name of the cluster.
@@ -2308,9 +2707,9 @@ module Google
2308
2707
  # @!attribute [rw] zone
2309
2708
  # @return [::String]
2310
2709
  # 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.
2710
+ # [zone](https://cloud.google.com/compute/docs/zones#available) in which the
2711
+ # cluster resides. This field has been deprecated and replaced by the name
2712
+ # field.
2314
2713
  # @!attribute [rw] cluster_id
2315
2714
  # @return [::String]
2316
2715
  # Deprecated. The name of the cluster.
@@ -2337,6 +2736,34 @@ module Google
2337
2736
  extend ::Google::Protobuf::MessageExts::ClassMethods
2338
2737
  end
2339
2738
 
2739
+ # WorkloadMetadataConfig defines the metadata configuration to expose to
2740
+ # workloads on the node pool.
2741
+ # @!attribute [rw] mode
2742
+ # @return [::Google::Cloud::Container::V1::WorkloadMetadataConfig::Mode]
2743
+ # Mode is the configuration for how to expose metadata to workloads running
2744
+ # on the node pool.
2745
+ class WorkloadMetadataConfig
2746
+ include ::Google::Protobuf::MessageExts
2747
+ extend ::Google::Protobuf::MessageExts::ClassMethods
2748
+
2749
+ # Mode is the configuration for how to expose metadata to workloads running
2750
+ # on the node.
2751
+ module Mode
2752
+ # Not set.
2753
+ MODE_UNSPECIFIED = 0
2754
+
2755
+ # Expose all Compute Engine metadata to pods.
2756
+ GCE_METADATA = 1
2757
+
2758
+ # Run the GKE Metadata Server on this node. The GKE Metadata Server exposes
2759
+ # a metadata API to workloads that is compatible with the V1 Compute
2760
+ # Metadata APIs exposed by the Compute Engine and App Engine Metadata
2761
+ # Servers. This feature can only be enabled if Workload Identity is enabled
2762
+ # at the cluster level.
2763
+ GKE_METADATA = 2
2764
+ end
2765
+ end
2766
+
2340
2767
  # SetNetworkPolicyRequest enables/disables network policy for a cluster.
2341
2768
  # @!attribute [rw] project_id
2342
2769
  # @return [::String]
@@ -2346,9 +2773,9 @@ module Google
2346
2773
  # @!attribute [rw] zone
2347
2774
  # @return [::String]
2348
2775
  # 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.
2776
+ # [zone](https://cloud.google.com/compute/docs/zones#available) in which the
2777
+ # cluster resides. This field has been deprecated and replaced by the name
2778
+ # field.
2352
2779
  # @!attribute [rw] cluster_id
2353
2780
  # @return [::String]
2354
2781
  # Deprecated. The name of the cluster.
@@ -2373,8 +2800,8 @@ module Google
2373
2800
  # @!attribute [rw] zone
2374
2801
  # @return [::String]
2375
2802
  # Required. The name of the Google Compute Engine
2376
- # [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster
2377
- # resides.
2803
+ # [zone](https://cloud.google.com/compute/docs/zones#available) in which the
2804
+ # cluster resides.
2378
2805
  # @!attribute [rw] cluster_id
2379
2806
  # @return [::String]
2380
2807
  # Required. The name of the cluster to update.
@@ -2409,7 +2836,8 @@ module Google
2409
2836
  # UNKNOWN indicates a generic condition.
2410
2837
  UNKNOWN = 0
2411
2838
 
2412
- # GCE_STOCKOUT indicates a Google Compute Engine stockout.
2839
+ # GCE_STOCKOUT indicates that Google Compute Engine resources are
2840
+ # temporarily unavailable.
2413
2841
  GCE_STOCKOUT = 1
2414
2842
 
2415
2843
  # GKE_SERVICE_ACCOUNT_DELETED indicates that the user deleted their robot
@@ -2433,23 +2861,162 @@ module Google
2433
2861
  # @!attribute [rw] network
2434
2862
  # @return [::String]
2435
2863
  # 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
2864
+ # {::Google::Cloud::Container::V1::NetworkConfig#network network}(https://cloud.google.com/compute/docs/networks-and-firewalls#networks)
2865
+ # to which the cluster is connected. Example:
2866
+ # projects/my-project/global/networks/my-network
2439
2867
  # @!attribute [rw] subnetwork
2440
2868
  # @return [::String]
2441
2869
  # 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
2870
+ # [subnetwork](https://cloud.google.com/compute/docs/vpc) to which the
2871
+ # cluster is connected. Example:
2872
+ # projects/my-project/regions/us-central1/subnetworks/my-subnet
2444
2873
  # @!attribute [rw] enable_intra_node_visibility
2445
2874
  # @return [::Boolean]
2446
2875
  # Whether Intra-node visibility is enabled for this cluster.
2447
2876
  # This makes same node pod to pod traffic visible for VPC network.
2877
+ # @!attribute [rw] default_snat_status
2878
+ # @return [::Google::Cloud::Container::V1::DefaultSnatStatus]
2879
+ # Whether the cluster disables default in-node sNAT rules. In-node sNAT rules
2880
+ # will be disabled when default_snat_status is disabled. When disabled is set
2881
+ # to false, default IP masquerade rules will be applied to the nodes to
2882
+ # prevent sNAT on cluster internal traffic.
2448
2883
  class NetworkConfig
2449
2884
  include ::Google::Protobuf::MessageExts
2450
2885
  extend ::Google::Protobuf::MessageExts::ClassMethods
2451
2886
  end
2452
2887
 
2888
+ # GetOpenIDConfigRequest gets the OIDC discovery document for the
2889
+ # cluster. See the OpenID Connect Discovery 1.0 specification for details.
2890
+ # @!attribute [rw] parent
2891
+ # @return [::String]
2892
+ # The cluster (project, location, cluster id) to get the discovery document
2893
+ # for. Specified in the format `projects/*/locations/*/clusters/*`.
2894
+ class GetOpenIDConfigRequest
2895
+ include ::Google::Protobuf::MessageExts
2896
+ extend ::Google::Protobuf::MessageExts::ClassMethods
2897
+ end
2898
+
2899
+ # GetOpenIDConfigResponse is an OIDC discovery document for the cluster.
2900
+ # See the OpenID Connect Discovery 1.0 specification for details.
2901
+ # @!attribute [rw] issuer
2902
+ # @return [::String]
2903
+ # OIDC Issuer.
2904
+ # @!attribute [rw] jwks_uri
2905
+ # @return [::String]
2906
+ # JSON Web Key uri.
2907
+ # @!attribute [rw] response_types_supported
2908
+ # @return [::Array<::String>]
2909
+ # Supported response types.
2910
+ # @!attribute [rw] subject_types_supported
2911
+ # @return [::Array<::String>]
2912
+ # Supported subject types.
2913
+ # @!attribute [rw] id_token_signing_alg_values_supported
2914
+ # @return [::Array<::String>]
2915
+ # supported ID Token signing Algorithms.
2916
+ # @!attribute [rw] claims_supported
2917
+ # @return [::Array<::String>]
2918
+ # Supported claims.
2919
+ # @!attribute [rw] grant_types
2920
+ # @return [::Array<::String>]
2921
+ # Supported grant types.
2922
+ class GetOpenIDConfigResponse
2923
+ include ::Google::Protobuf::MessageExts
2924
+ extend ::Google::Protobuf::MessageExts::ClassMethods
2925
+ end
2926
+
2927
+ # GetJSONWebKeysRequest gets the public component of the keys used by the
2928
+ # cluster to sign token requests. This will be the jwks_uri for the discover
2929
+ # document returned by getOpenIDConfig. See the OpenID Connect
2930
+ # Discovery 1.0 specification for details.
2931
+ # @!attribute [rw] parent
2932
+ # @return [::String]
2933
+ # The cluster (project, location, cluster id) to get keys for. Specified in
2934
+ # the format `projects/*/locations/*/clusters/*`.
2935
+ class GetJSONWebKeysRequest
2936
+ include ::Google::Protobuf::MessageExts
2937
+ extend ::Google::Protobuf::MessageExts::ClassMethods
2938
+ end
2939
+
2940
+ # Jwk is a JSON Web Key as specified in RFC 7517
2941
+ # @!attribute [rw] kty
2942
+ # @return [::String]
2943
+ # Key Type.
2944
+ # @!attribute [rw] alg
2945
+ # @return [::String]
2946
+ # Algorithm.
2947
+ # @!attribute [rw] use
2948
+ # @return [::String]
2949
+ # Permitted uses for the public keys.
2950
+ # @!attribute [rw] kid
2951
+ # @return [::String]
2952
+ # Key ID.
2953
+ # @!attribute [rw] n
2954
+ # @return [::String]
2955
+ # Used for RSA keys.
2956
+ # @!attribute [rw] e
2957
+ # @return [::String]
2958
+ # Used for RSA keys.
2959
+ # @!attribute [rw] x
2960
+ # @return [::String]
2961
+ # Used for ECDSA keys.
2962
+ # @!attribute [rw] y
2963
+ # @return [::String]
2964
+ # Used for ECDSA keys.
2965
+ # @!attribute [rw] crv
2966
+ # @return [::String]
2967
+ # Used for ECDSA keys.
2968
+ class Jwk
2969
+ include ::Google::Protobuf::MessageExts
2970
+ extend ::Google::Protobuf::MessageExts::ClassMethods
2971
+ end
2972
+
2973
+ # GetJSONWebKeysResponse is a valid JSON Web Key Set as specififed in rfc 7517
2974
+ # @!attribute [rw] keys
2975
+ # @return [::Array<::Google::Cloud::Container::V1::Jwk>]
2976
+ # The public component of the keys used by the cluster to sign token
2977
+ # requests.
2978
+ class GetJSONWebKeysResponse
2979
+ include ::Google::Protobuf::MessageExts
2980
+ extend ::Google::Protobuf::MessageExts::ClassMethods
2981
+ end
2982
+
2983
+ # ReleaseChannel indicates which release channel a cluster is
2984
+ # subscribed to. Release channels are arranged in order of risk.
2985
+ #
2986
+ # When a cluster is subscribed to a release channel, Google maintains
2987
+ # both the master version and the node version. Node auto-upgrade
2988
+ # defaults to true and cannot be disabled.
2989
+ # @!attribute [rw] channel
2990
+ # @return [::Google::Cloud::Container::V1::ReleaseChannel::Channel]
2991
+ # channel specifies which release channel the cluster is subscribed to.
2992
+ class ReleaseChannel
2993
+ include ::Google::Protobuf::MessageExts
2994
+ extend ::Google::Protobuf::MessageExts::ClassMethods
2995
+
2996
+ # Possible values for 'channel'.
2997
+ module Channel
2998
+ # No channel specified.
2999
+ UNSPECIFIED = 0
3000
+
3001
+ # RAPID channel is offered on an early access basis for customers who want
3002
+ # to test new releases.
3003
+ #
3004
+ # WARNING: Versions available in the RAPID Channel may be subject to
3005
+ # unresolved issues with no known workaround and are not subject to any
3006
+ # SLAs.
3007
+ RAPID = 1
3008
+
3009
+ # Clusters subscribed to REGULAR receive versions that are considered GA
3010
+ # quality. REGULAR is intended for production users who want to take
3011
+ # advantage of new features.
3012
+ REGULAR = 2
3013
+
3014
+ # Clusters subscribed to STABLE receive versions that are known to be
3015
+ # stable and reliable in production.
3016
+ STABLE = 3
3017
+ end
3018
+ end
3019
+
2453
3020
  # IntraNodeVisibilityConfig contains the desired config of the intra-node
2454
3021
  # visibility on this cluster.
2455
3022
  # @!attribute [rw] enabled
@@ -2469,6 +3036,16 @@ module Google
2469
3036
  extend ::Google::Protobuf::MessageExts::ClassMethods
2470
3037
  end
2471
3038
 
3039
+ # Configuration for the use of Kubernetes Service Accounts in GCP IAM
3040
+ # policies.
3041
+ # @!attribute [rw] workload_pool
3042
+ # @return [::String]
3043
+ # The workload pool to attach all Kubernetes service accounts to.
3044
+ class WorkloadIdentityConfig
3045
+ include ::Google::Protobuf::MessageExts
3046
+ extend ::Google::Protobuf::MessageExts::ClassMethods
3047
+ end
3048
+
2472
3049
  # Configuration of etcd encryption.
2473
3050
  # @!attribute [rw] state
2474
3051
  # @return [::Google::Cloud::Container::V1::DatabaseEncryption::State]
@@ -2490,7 +3067,7 @@ module Google
2490
3067
  ENCRYPTED = 1
2491
3068
 
2492
3069
  # Secrets in etcd are stored in plain text (at etcd level) - this is
2493
- # unrelated to GCE level full disk encryption.
3070
+ # unrelated to Compute Engine level full disk encryption.
2494
3071
  DECRYPTED = 2
2495
3072
  end
2496
3073
  end
@@ -2649,6 +3226,25 @@ module Google
2649
3226
  include ::Google::Protobuf::MessageExts
2650
3227
  extend ::Google::Protobuf::MessageExts::ClassMethods
2651
3228
  end
3229
+
3230
+ # DefaultSnatStatus contains the desired state of whether default sNAT should
3231
+ # be disabled on the cluster.
3232
+ # @!attribute [rw] disabled
3233
+ # @return [::Boolean]
3234
+ # Disables cluster default sNAT rules.
3235
+ class DefaultSnatStatus
3236
+ include ::Google::Protobuf::MessageExts
3237
+ extend ::Google::Protobuf::MessageExts::ClassMethods
3238
+ end
3239
+
3240
+ # Configuration of Shielded Nodes feature.
3241
+ # @!attribute [rw] enabled
3242
+ # @return [::Boolean]
3243
+ # Whether Shielded Nodes features are enabled on all nodes in this cluster.
3244
+ class ShieldedNodes
3245
+ include ::Google::Protobuf::MessageExts
3246
+ extend ::Google::Protobuf::MessageExts::ClassMethods
3247
+ end
2652
3248
  end
2653
3249
  end
2654
3250
  end