google-cloud-container-v1beta1 0.2.5 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,7 +1,7 @@
1
1
  # Generated by the protocol buffer compiler. DO NOT EDIT!
2
2
  # Source: google/container/v1beta1/cluster_service.proto for package 'Google.Cloud.Container.V1beta1'
3
3
  # Original file comments:
4
- # Copyright 2019 Google LLC.
4
+ # Copyright 2020 Google LLC
5
5
  #
6
6
  # Licensed under the Apache License, Version 2.0 (the "License");
7
7
  # you may not use this file except in compliance with the License.
@@ -15,7 +15,6 @@
15
15
  # See the License for the specific language governing permissions and
16
16
  # limitations under the License.
17
17
  #
18
- #
19
18
 
20
19
  require 'grpc'
21
20
  require 'google/container/v1beta1/cluster_service_pb'
@@ -36,14 +35,15 @@ module Google
36
35
 
37
36
  # Lists all clusters owned by a project in either the specified zone or all
38
37
  # zones.
39
- rpc :ListClusters, Google::Cloud::Container::V1beta1::ListClustersRequest, Google::Cloud::Container::V1beta1::ListClustersResponse
38
+ rpc :ListClusters, ::Google::Cloud::Container::V1beta1::ListClustersRequest, ::Google::Cloud::Container::V1beta1::ListClustersResponse
40
39
  # Gets the details for a specific cluster.
41
- rpc :GetCluster, Google::Cloud::Container::V1beta1::GetClusterRequest, Google::Cloud::Container::V1beta1::Cluster
40
+ rpc :GetCluster, ::Google::Cloud::Container::V1beta1::GetClusterRequest, ::Google::Cloud::Container::V1beta1::Cluster
42
41
  # Creates a cluster, consisting of the specified number and type of Google
43
42
  # Compute Engine instances.
44
43
  #
45
44
  # By default, the cluster is created in the project's
46
- # [default network](https://cloud.google.com/compute/docs/networks-and-firewalls#networks).
45
+ # [default
46
+ # network](https://cloud.google.com/compute/docs/networks-and-firewalls#networks).
47
47
  #
48
48
  # One firewall is added for the cluster. After cluster creation,
49
49
  # the Kubelet creates routes for each node to allow the containers
@@ -52,27 +52,30 @@ module Google
52
52
  #
53
53
  # Finally, an entry is added to the project's global metadata indicating
54
54
  # which CIDR range the cluster is using.
55
- rpc :CreateCluster, Google::Cloud::Container::V1beta1::CreateClusterRequest, Google::Cloud::Container::V1beta1::Operation
55
+ rpc :CreateCluster, ::Google::Cloud::Container::V1beta1::CreateClusterRequest, ::Google::Cloud::Container::V1beta1::Operation
56
56
  # Updates the settings for a specific cluster.
57
- rpc :UpdateCluster, Google::Cloud::Container::V1beta1::UpdateClusterRequest, Google::Cloud::Container::V1beta1::Operation
57
+ rpc :UpdateCluster, ::Google::Cloud::Container::V1beta1::UpdateClusterRequest, ::Google::Cloud::Container::V1beta1::Operation
58
58
  # Updates the version and/or image type of a specific node pool.
59
- rpc :UpdateNodePool, Google::Cloud::Container::V1beta1::UpdateNodePoolRequest, Google::Cloud::Container::V1beta1::Operation
59
+ rpc :UpdateNodePool, ::Google::Cloud::Container::V1beta1::UpdateNodePoolRequest, ::Google::Cloud::Container::V1beta1::Operation
60
60
  # Sets the autoscaling settings of a specific node pool.
61
- rpc :SetNodePoolAutoscaling, Google::Cloud::Container::V1beta1::SetNodePoolAutoscalingRequest, Google::Cloud::Container::V1beta1::Operation
61
+ rpc :SetNodePoolAutoscaling, ::Google::Cloud::Container::V1beta1::SetNodePoolAutoscalingRequest, ::Google::Cloud::Container::V1beta1::Operation
62
62
  # Sets the logging service for a specific cluster.
63
- rpc :SetLoggingService, Google::Cloud::Container::V1beta1::SetLoggingServiceRequest, Google::Cloud::Container::V1beta1::Operation
63
+ rpc :SetLoggingService, ::Google::Cloud::Container::V1beta1::SetLoggingServiceRequest, ::Google::Cloud::Container::V1beta1::Operation
64
64
  # Sets the monitoring service for a specific cluster.
65
- rpc :SetMonitoringService, Google::Cloud::Container::V1beta1::SetMonitoringServiceRequest, Google::Cloud::Container::V1beta1::Operation
65
+ rpc :SetMonitoringService, ::Google::Cloud::Container::V1beta1::SetMonitoringServiceRequest, ::Google::Cloud::Container::V1beta1::Operation
66
66
  # Sets the addons for a specific cluster.
67
- rpc :SetAddonsConfig, Google::Cloud::Container::V1beta1::SetAddonsConfigRequest, Google::Cloud::Container::V1beta1::Operation
67
+ rpc :SetAddonsConfig, ::Google::Cloud::Container::V1beta1::SetAddonsConfigRequest, ::Google::Cloud::Container::V1beta1::Operation
68
68
  # Sets the locations for a specific cluster.
69
- rpc :SetLocations, Google::Cloud::Container::V1beta1::SetLocationsRequest, Google::Cloud::Container::V1beta1::Operation
69
+ # Deprecated. Use
70
+ # [projects.locations.clusters.update](https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1beta1/projects.locations.clusters/update)
71
+ # instead.
72
+ rpc :SetLocations, ::Google::Cloud::Container::V1beta1::SetLocationsRequest, ::Google::Cloud::Container::V1beta1::Operation
70
73
  # Updates the master for a specific cluster.
71
- rpc :UpdateMaster, Google::Cloud::Container::V1beta1::UpdateMasterRequest, Google::Cloud::Container::V1beta1::Operation
74
+ rpc :UpdateMaster, ::Google::Cloud::Container::V1beta1::UpdateMasterRequest, ::Google::Cloud::Container::V1beta1::Operation
72
75
  # Sets master auth materials. Currently supports changing the admin password
73
76
  # or a specific cluster, either via password generation or explicitly setting
74
77
  # the password.
75
- rpc :SetMasterAuth, Google::Cloud::Container::V1beta1::SetMasterAuthRequest, Google::Cloud::Container::V1beta1::Operation
78
+ rpc :SetMasterAuth, ::Google::Cloud::Container::V1beta1::SetMasterAuthRequest, ::Google::Cloud::Container::V1beta1::Operation
76
79
  # Deletes the cluster, including the Kubernetes endpoint and all worker
77
80
  # nodes.
78
81
  #
@@ -82,46 +85,51 @@ module Google
82
85
  # Other Google Compute Engine resources that might be in use by the cluster,
83
86
  # such as load balancer resources, are not deleted if they weren't present
84
87
  # when the cluster was initially created.
85
- rpc :DeleteCluster, Google::Cloud::Container::V1beta1::DeleteClusterRequest, Google::Cloud::Container::V1beta1::Operation
88
+ rpc :DeleteCluster, ::Google::Cloud::Container::V1beta1::DeleteClusterRequest, ::Google::Cloud::Container::V1beta1::Operation
86
89
  # Lists all operations in a project in the specified zone or all zones.
87
- rpc :ListOperations, Google::Cloud::Container::V1beta1::ListOperationsRequest, Google::Cloud::Container::V1beta1::ListOperationsResponse
90
+ rpc :ListOperations, ::Google::Cloud::Container::V1beta1::ListOperationsRequest, ::Google::Cloud::Container::V1beta1::ListOperationsResponse
88
91
  # Gets the specified operation.
89
- rpc :GetOperation, Google::Cloud::Container::V1beta1::GetOperationRequest, Google::Cloud::Container::V1beta1::Operation
92
+ rpc :GetOperation, ::Google::Cloud::Container::V1beta1::GetOperationRequest, ::Google::Cloud::Container::V1beta1::Operation
90
93
  # Cancels the specified operation.
91
- rpc :CancelOperation, Google::Cloud::Container::V1beta1::CancelOperationRequest, Google::Protobuf::Empty
94
+ rpc :CancelOperation, ::Google::Cloud::Container::V1beta1::CancelOperationRequest, ::Google::Protobuf::Empty
92
95
  # Returns configuration info about the Google Kubernetes Engine service.
93
- rpc :GetServerConfig, Google::Cloud::Container::V1beta1::GetServerConfigRequest, Google::Cloud::Container::V1beta1::ServerConfig
96
+ rpc :GetServerConfig, ::Google::Cloud::Container::V1beta1::GetServerConfigRequest, ::Google::Cloud::Container::V1beta1::ServerConfig
94
97
  # Lists the node pools for a cluster.
95
- rpc :ListNodePools, Google::Cloud::Container::V1beta1::ListNodePoolsRequest, Google::Cloud::Container::V1beta1::ListNodePoolsResponse
98
+ rpc :ListNodePools, ::Google::Cloud::Container::V1beta1::ListNodePoolsRequest, ::Google::Cloud::Container::V1beta1::ListNodePoolsResponse
99
+ # Gets the public component of the cluster signing keys in
100
+ # JSON Web Key format.
101
+ # This API is not yet intended for general use, and is not available for all
102
+ # clusters.
103
+ rpc :GetJSONWebKeys, ::Google::Cloud::Container::V1beta1::GetJSONWebKeysRequest, ::Google::Cloud::Container::V1beta1::GetJSONWebKeysResponse
96
104
  # Retrieves the requested node pool.
97
- rpc :GetNodePool, Google::Cloud::Container::V1beta1::GetNodePoolRequest, Google::Cloud::Container::V1beta1::NodePool
105
+ rpc :GetNodePool, ::Google::Cloud::Container::V1beta1::GetNodePoolRequest, ::Google::Cloud::Container::V1beta1::NodePool
98
106
  # Creates a node pool for a cluster.
99
- rpc :CreateNodePool, Google::Cloud::Container::V1beta1::CreateNodePoolRequest, Google::Cloud::Container::V1beta1::Operation
107
+ rpc :CreateNodePool, ::Google::Cloud::Container::V1beta1::CreateNodePoolRequest, ::Google::Cloud::Container::V1beta1::Operation
100
108
  # Deletes a node pool from a cluster.
101
- rpc :DeleteNodePool, Google::Cloud::Container::V1beta1::DeleteNodePoolRequest, Google::Cloud::Container::V1beta1::Operation
109
+ rpc :DeleteNodePool, ::Google::Cloud::Container::V1beta1::DeleteNodePoolRequest, ::Google::Cloud::Container::V1beta1::Operation
102
110
  # Rolls back a previously Aborted or Failed NodePool upgrade.
103
111
  # This makes no changes if the last upgrade successfully completed.
104
- rpc :RollbackNodePoolUpgrade, Google::Cloud::Container::V1beta1::RollbackNodePoolUpgradeRequest, Google::Cloud::Container::V1beta1::Operation
112
+ rpc :RollbackNodePoolUpgrade, ::Google::Cloud::Container::V1beta1::RollbackNodePoolUpgradeRequest, ::Google::Cloud::Container::V1beta1::Operation
105
113
  # Sets the NodeManagement options for a node pool.
106
- rpc :SetNodePoolManagement, Google::Cloud::Container::V1beta1::SetNodePoolManagementRequest, Google::Cloud::Container::V1beta1::Operation
114
+ rpc :SetNodePoolManagement, ::Google::Cloud::Container::V1beta1::SetNodePoolManagementRequest, ::Google::Cloud::Container::V1beta1::Operation
107
115
  # Sets labels on a cluster.
108
- rpc :SetLabels, Google::Cloud::Container::V1beta1::SetLabelsRequest, Google::Cloud::Container::V1beta1::Operation
116
+ rpc :SetLabels, ::Google::Cloud::Container::V1beta1::SetLabelsRequest, ::Google::Cloud::Container::V1beta1::Operation
109
117
  # Enables or disables the ABAC authorization mechanism on a cluster.
110
- rpc :SetLegacyAbac, Google::Cloud::Container::V1beta1::SetLegacyAbacRequest, Google::Cloud::Container::V1beta1::Operation
118
+ rpc :SetLegacyAbac, ::Google::Cloud::Container::V1beta1::SetLegacyAbacRequest, ::Google::Cloud::Container::V1beta1::Operation
111
119
  # Starts master IP rotation.
112
- rpc :StartIPRotation, Google::Cloud::Container::V1beta1::StartIPRotationRequest, Google::Cloud::Container::V1beta1::Operation
120
+ rpc :StartIPRotation, ::Google::Cloud::Container::V1beta1::StartIPRotationRequest, ::Google::Cloud::Container::V1beta1::Operation
113
121
  # Completes master IP rotation.
114
- rpc :CompleteIPRotation, Google::Cloud::Container::V1beta1::CompleteIPRotationRequest, Google::Cloud::Container::V1beta1::Operation
122
+ rpc :CompleteIPRotation, ::Google::Cloud::Container::V1beta1::CompleteIPRotationRequest, ::Google::Cloud::Container::V1beta1::Operation
115
123
  # Sets the size for a specific node pool.
116
- rpc :SetNodePoolSize, Google::Cloud::Container::V1beta1::SetNodePoolSizeRequest, Google::Cloud::Container::V1beta1::Operation
124
+ rpc :SetNodePoolSize, ::Google::Cloud::Container::V1beta1::SetNodePoolSizeRequest, ::Google::Cloud::Container::V1beta1::Operation
117
125
  # Enables or disables Network Policy for a cluster.
118
- rpc :SetNetworkPolicy, Google::Cloud::Container::V1beta1::SetNetworkPolicyRequest, Google::Cloud::Container::V1beta1::Operation
126
+ rpc :SetNetworkPolicy, ::Google::Cloud::Container::V1beta1::SetNetworkPolicyRequest, ::Google::Cloud::Container::V1beta1::Operation
119
127
  # Sets the maintenance policy for a cluster.
120
- rpc :SetMaintenancePolicy, Google::Cloud::Container::V1beta1::SetMaintenancePolicyRequest, Google::Cloud::Container::V1beta1::Operation
128
+ rpc :SetMaintenancePolicy, ::Google::Cloud::Container::V1beta1::SetMaintenancePolicyRequest, ::Google::Cloud::Container::V1beta1::Operation
121
129
  # Lists subnetworks that can be used for creating clusters in a project.
122
- rpc :ListUsableSubnetworks, Google::Cloud::Container::V1beta1::ListUsableSubnetworksRequest, Google::Cloud::Container::V1beta1::ListUsableSubnetworksResponse
130
+ rpc :ListUsableSubnetworks, ::Google::Cloud::Container::V1beta1::ListUsableSubnetworksRequest, ::Google::Cloud::Container::V1beta1::ListUsableSubnetworksResponse
123
131
  # Fetches locations that offer Google Kubernetes Engine.
124
- rpc :ListLocations, Google::Cloud::Container::V1beta1::ListLocationsRequest, Google::Cloud::Container::V1beta1::ListLocationsResponse
132
+ rpc :ListLocations, ::Google::Cloud::Container::V1beta1::ListLocationsRequest, ::Google::Cloud::Container::V1beta1::ListLocationsResponse
125
133
  end
126
134
 
127
135
  Stub = Service.rpc_stub_class
@@ -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
@@ -21,15 +21,83 @@ module Google
21
21
  module Cloud
22
22
  module Container
23
23
  module V1beta1
24
+ # Parameters that can be configured on Linux nodes.
25
+ # @!attribute [rw] sysctls
26
+ # @return [::Google::Protobuf::Map{::String => ::String}]
27
+ # The Linux kernel parameters to be applied to the nodes and all pods running
28
+ # on the nodes.
29
+ #
30
+ # The following parameters are supported.
31
+ #
32
+ # net.core.netdev_max_backlog
33
+ # net.core.rmem_max
34
+ # net.core.wmem_default
35
+ # net.core.wmem_max
36
+ # net.core.optmem_max
37
+ # net.core.somaxconn
38
+ # net.ipv4.tcp_rmem
39
+ # net.ipv4.tcp_wmem
40
+ # net.ipv4.tcp_tw_reuse
41
+ class LinuxNodeConfig
42
+ include ::Google::Protobuf::MessageExts
43
+ extend ::Google::Protobuf::MessageExts::ClassMethods
44
+
45
+ # @!attribute [rw] key
46
+ # @return [::String]
47
+ # @!attribute [rw] value
48
+ # @return [::String]
49
+ class SysctlsEntry
50
+ include ::Google::Protobuf::MessageExts
51
+ extend ::Google::Protobuf::MessageExts::ClassMethods
52
+ end
53
+ end
54
+
55
+ # Node kubelet configs.
56
+ # @!attribute [rw] cpu_manager_policy
57
+ # @return [::String]
58
+ # Control the CPU management policy on the node.
59
+ # See
60
+ # https://kubernetes.io/docs/tasks/administer-cluster/cpu-management-policies/
61
+ #
62
+ # The following values are allowed.
63
+ # - "none": the default, which represents the existing scheduling behavior.
64
+ # - "static": allows pods with certain resource characteristics to be
65
+ # granted increased CPU affinity and exclusivity on the node.
66
+ # The default value is 'none' if unspecified.
67
+ # @!attribute [rw] cpu_cfs_quota
68
+ # @return [::Google::Protobuf::BoolValue]
69
+ # Enable CPU CFS quota enforcement for containers that specify CPU limits.
70
+ #
71
+ # This option is enabled by default which makes kubelet use CFS quota
72
+ # (https://www.kernel.org/doc/Documentation/scheduler/sched-bwc.txt) to
73
+ # enforce container CPU limits. Otherwise, CPU limits will not be enforced at
74
+ # all.
75
+ #
76
+ # Disable this option to mitigate CPU throttling problems while still having
77
+ # your pods to be in Guaranteed QoS class by specifying the CPU limits.
78
+ #
79
+ # The default value is 'true' if unspecified.
80
+ # @!attribute [rw] cpu_cfs_quota_period
81
+ # @return [::String]
82
+ # Set the CPU CFS quota period value 'cpu.cfs_period_us'.
83
+ #
84
+ # The string must be a sequence of decimal numbers, each with optional
85
+ # fraction and a unit suffix, such as "300ms".
86
+ # Valid time units are "ns", "us" (or "µs"), "ms", "s", "m", "h".
87
+ # The value must be a positive duration.
88
+ class NodeKubeletConfig
89
+ include ::Google::Protobuf::MessageExts
90
+ extend ::Google::Protobuf::MessageExts::ClassMethods
91
+ end
92
+
24
93
  # Parameters that describe the nodes in a cluster.
25
94
  # @!attribute [rw] machine_type
26
95
  # @return [::String]
27
96
  # The name of a Google Compute Engine [machine
28
- # type](https://cloud.google.com/compute/docs/machine-types) (e.g.
29
- # `n1-standard-1`).
97
+ # type](https://cloud.google.com/compute/docs/machine-types).
30
98
  #
31
99
  # If unspecified, the default machine type is
32
- # `n1-standard-1`.
100
+ # `e2-medium`.
33
101
  # @!attribute [rw] disk_size_gb
34
102
  # @return [::Integer]
35
103
  # Size of the disk attached to each node, specified in GB.
@@ -48,42 +116,47 @@ module Google
48
116
  # persistent storage on your nodes.
49
117
  # * `https://www.googleapis.com/auth/devstorage.read_only` is required for
50
118
  # communicating with **gcr.io**
51
- # (the [Google Container Registry](https://cloud.google.com/container-registry/)).
119
+ # (the [Google Container
120
+ # Registry](https://cloud.google.com/container-registry/)).
52
121
  #
53
122
  # If unspecified, no scopes are added, unless Cloud Logging or Cloud
54
123
  # Monitoring are enabled, in which case their required scopes will be added.
55
124
  # @!attribute [rw] service_account
56
125
  # @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.
126
+ # The Google Cloud Platform Service Account to be used by the node VMs.
127
+ # Specify the email address of the Service Account; otherwise, if no Service
128
+ # Account is specified, the "default" service account is used.
59
129
  # @!attribute [rw] metadata
60
130
  # @return [::Google::Protobuf::Map{::String => ::String}]
61
131
  # The metadata key/value pairs assigned to instances in the cluster.
62
132
  #
63
- # Keys must conform to the regexp [a-zA-Z0-9-_]+ and be less than 128 bytes
133
+ # Keys must conform to the regexp `[a-zA-Z0-9-_]+` and be less than 128 bytes
64
134
  # in length. These are reflected as part of a URL in the metadata server.
65
135
  # Additionally, to avoid ambiguity, keys must not conflict with any other
66
136
  # 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-oslogin"
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
- # "serial-port-logging-enable"
137
+ # - "cluster-location"
138
+ # - "cluster-name"
139
+ # - "cluster-uid"
140
+ # - "configure-sh"
141
+ # - "containerd-configure-sh"
142
+ # - "enable-oslogin"
143
+ # - "gci-ensure-gke-docker"
144
+ # - "gci-metrics-enabled"
145
+ # - "gci-update-strategy"
146
+ # - "instance-template"
147
+ # - "kube-env"
148
+ # - "startup-script"
149
+ # - "user-data"
150
+ # - "disable-address-manager"
151
+ # - "windows-startup-script-ps1"
152
+ # - "common-psm1"
153
+ # - "k8s-node-setup-psm1"
154
+ # - "install-ssh-psm1"
155
+ # - "user-profile-psm1"
156
+ #
157
+ # The following keys are reserved for Windows nodes:
158
+ # - "serial-port-logging-enable"
159
+ #
87
160
  # Values are free-form strings, and only have meaning as interpreted by
88
161
  # the image running in the instance. The only restriction placed on them is
89
162
  # that each value's size must be less than or equal to 32 KB.
@@ -127,9 +200,25 @@ module Google
127
200
  # A list of hardware accelerators to be attached to each node.
128
201
  # See https://cloud.google.com/compute/docs/gpus for more information about
129
202
  # support for GPUs.
203
+ # @!attribute [rw] sandbox_config
204
+ # @return [::Google::Cloud::Container::V1beta1::SandboxConfig]
205
+ # Sandbox configuration for this node.
206
+ # @!attribute [rw] node_group
207
+ # @return [::String]
208
+ # Setting this field will assign instances of this
209
+ # pool to run on the specified node group. This is useful for running
210
+ # workloads on [sole tenant
211
+ # nodes](https://cloud.google.com/compute/docs/nodes/sole-tenant-nodes).
212
+ # @!attribute [rw] reservation_affinity
213
+ # @return [::Google::Cloud::Container::V1beta1::ReservationAffinity]
214
+ # The optional reservation affinity. Setting this field will apply
215
+ # the specified [Zonal Compute
216
+ # Reservation](https://cloud.google.com/compute/docs/instances/reserving-zonal-resources)
217
+ # to this node pool.
130
218
  # @!attribute [rw] disk_type
131
219
  # @return [::String]
132
- # Type of the disk attached to each node (e.g. 'pd-standard' or 'pd-ssd')
220
+ # Type of the disk attached to each node (e.g. 'pd-standard', 'pd-ssd' or
221
+ # 'pd-balanced')
133
222
  #
134
223
  # If unspecified, the default disk type is 'pd-standard'
135
224
  # @!attribute [rw] min_cpu_platform
@@ -137,11 +226,10 @@ module Google
137
226
  # Minimum CPU platform to be used by this instance. The instance may be
138
227
  # scheduled on the specified or newer CPU platform. Applicable values are the
139
228
  # 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
229
+ # `minCpuPlatform: "Intel Haswell"` or
230
+ # `minCpuPlatform: "Intel Sandy Bridge"`. For more
142
231
  # information, read [how to specify min CPU
143
232
  # platform](https://cloud.google.com/compute/docs/instances/specify-min-cpu-platform)
144
- # To unset the min cpu platform field pass "automatic" as field value.
145
233
  # @!attribute [rw] workload_metadata_config
146
234
  # @return [::Google::Cloud::Container::V1beta1::WorkloadMetadataConfig]
147
235
  # The workload metadata configuration for this node.
@@ -151,9 +239,27 @@ module Google
151
239
  #
152
240
  # For more information, including usage and the valid values, see:
153
241
  # https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
242
+ # @!attribute [rw] boot_disk_kms_key
243
+ # @return [::String]
244
+ # The Customer Managed Encryption Key used to encrypt the boot disk attached
245
+ # to each node in the node pool. This should be of the form
246
+ # projects/[KEY_PROJECT_ID]/locations/[LOCATION]/keyRings/[RING_NAME]/cryptoKeys/[KEY_NAME].
247
+ # For more information about protecting resources with Cloud KMS Keys please
248
+ # see:
249
+ # https://cloud.google.com/compute/docs/disks/customer-managed-encryption
154
250
  # @!attribute [rw] shielded_instance_config
155
251
  # @return [::Google::Cloud::Container::V1beta1::ShieldedInstanceConfig]
156
252
  # Shielded Instance options.
253
+ # @!attribute [rw] linux_node_config
254
+ # @return [::Google::Cloud::Container::V1beta1::LinuxNodeConfig]
255
+ # Parameters that can be configured on Linux nodes.
256
+ # @!attribute [rw] kubelet_config
257
+ # @return [::Google::Cloud::Container::V1beta1::NodeKubeletConfig]
258
+ # Node kubelet configs.
259
+ # @!attribute [rw] ephemeral_storage_config
260
+ # @return [::Google::Cloud::Container::V1beta1::EphemeralStorageConfig]
261
+ # Parameters for the ephemeral storage filesystem.
262
+ # If unspecified, ephemeral storage is backed by the boot disk.
157
263
  class NodeConfig
158
264
  include ::Google::Protobuf::MessageExts
159
265
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -198,11 +304,80 @@ module Google
198
304
  extend ::Google::Protobuf::MessageExts::ClassMethods
199
305
  end
200
306
 
307
+ # SandboxConfig contains configurations of the sandbox to use for the node.
308
+ # @!attribute [rw] sandbox_type
309
+ # @return [::String]
310
+ # Type of the sandbox to use for the node (e.g. 'gvisor')
311
+ # @!attribute [rw] type
312
+ # @return [::Google::Cloud::Container::V1beta1::SandboxConfig::Type]
313
+ # Type of the sandbox to use for the node.
314
+ class SandboxConfig
315
+ include ::Google::Protobuf::MessageExts
316
+ extend ::Google::Protobuf::MessageExts::ClassMethods
317
+
318
+ # Possible types of sandboxes.
319
+ module Type
320
+ # Default value. This should not be used.
321
+ UNSPECIFIED = 0
322
+
323
+ # Run sandbox using gvisor.
324
+ GVISOR = 1
325
+ end
326
+ end
327
+
328
+ # EphemeralStorageConfig contains configuration for the ephemeral storage
329
+ # filesystem.
330
+ # @!attribute [rw] local_ssd_count
331
+ # @return [::Integer]
332
+ # Number of local SSDs to use to back ephemeral storage. Uses NVMe
333
+ # interfaces. Each local SSD is 375 GB in size.
334
+ # If zero, it means to disable using local SSDs as ephemeral storage.
335
+ class EphemeralStorageConfig
336
+ include ::Google::Protobuf::MessageExts
337
+ extend ::Google::Protobuf::MessageExts::ClassMethods
338
+ end
339
+
340
+ # [ReservationAffinity](https://cloud.google.com/compute/docs/instances/reserving-zonal-resources)
341
+ # is the configuration of desired reservation which instances could take
342
+ # capacity from.
343
+ # @!attribute [rw] consume_reservation_type
344
+ # @return [::Google::Cloud::Container::V1beta1::ReservationAffinity::Type]
345
+ # Corresponds to the type of reservation consumption.
346
+ # @!attribute [rw] key
347
+ # @return [::String]
348
+ # Corresponds to the label key of a reservation resource. To target a
349
+ # SPECIFIC_RESERVATION by name, specify "googleapis.com/reservation-name" as
350
+ # the key and specify the name of your reservation as its value.
351
+ # @!attribute [rw] values
352
+ # @return [::Array<::String>]
353
+ # Corresponds to the label value(s) of reservation resource(s).
354
+ class ReservationAffinity
355
+ include ::Google::Protobuf::MessageExts
356
+ extend ::Google::Protobuf::MessageExts::ClassMethods
357
+
358
+ # Indicates whether to consume capacity from a reservation or not.
359
+ module Type
360
+ # Default value. This should not be used.
361
+ UNSPECIFIED = 0
362
+
363
+ # Do not consume from any reserved capacity.
364
+ NO_RESERVATION = 1
365
+
366
+ # Consume any reservation available.
367
+ ANY_RESERVATION = 2
368
+
369
+ # Must consume from a specific reservation. Must specify key value fields
370
+ # for specifying the reservations.
371
+ SPECIFIC_RESERVATION = 3
372
+ end
373
+ end
374
+
201
375
  # Kubernetes taint is comprised of three fields: key, value, and effect. Effect
202
376
  # can only be one of three types: NoSchedule, PreferNoSchedule or NoExecute.
203
377
  #
204
- # For more information, including usage and the valid values, see:
205
- # https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
378
+ # See
379
+ # [here](https://kubernetes.io/docs/concepts/configuration/taint-and-toleration)
380
+ # for more information, including usage and the valid values.
206
381
  # @!attribute [rw] key
207
382
  # @return [::String]
208
383
  # Key for taint.
@@ -240,12 +415,22 @@ module Google
240
415
  # The username to use for HTTP basic authentication to the master endpoint.
241
416
  # For clusters v1.6.0 and later, basic authentication can be disabled by
242
417
  # leaving username unspecified (or setting it to the empty string).
418
+ #
419
+ # Warning: basic authentication is deprecated, and will be removed in GKE
420
+ # control plane versions 1.19 and newer. For a list of recommended
421
+ # authentication methods, see:
422
+ # https://cloud.google.com/kubernetes-engine/docs/how-to/api-server-authentication
243
423
  # @!attribute [rw] password
244
424
  # @return [::String]
245
425
  # The password to use for HTTP basic authentication to the master endpoint.
246
426
  # Because the master endpoint is open to the Internet, you should create a
247
427
  # strong password. If a password is provided for cluster creation, username
248
428
  # must be non-empty.
429
+ #
430
+ # Warning: basic authentication is deprecated, and will be removed in GKE
431
+ # control plane versions 1.19 and newer. For a list of recommended
432
+ # authentication methods, see:
433
+ # https://cloud.google.com/kubernetes-engine/docs/how-to/api-server-authentication
249
434
  # @!attribute [rw] client_certificate_config
250
435
  # @return [::Google::Cloud::Container::V1beta1::ClientCertificateConfig]
251
436
  # Configuration for client certificate authentication on the cluster. For
@@ -253,8 +438,6 @@ module Google
253
438
  # certificate is issued.
254
439
  # @!attribute [rw] cluster_ca_certificate
255
440
  # @return [::String]
256
- # [Output only] Base64-encoded public certificate that is the root of
257
- # trust for the cluster.
258
441
  # @!attribute [rw] client_certificate
259
442
  # @return [::String]
260
443
  # [Output only] Base64-encoded public certificate used by clients to
@@ -309,6 +492,20 @@ module Google
309
492
  # Configuration for the Cloud Run addon. The `IstioConfig` addon must be
310
493
  # enabled in order to enable Cloud Run addon. This option can only be enabled
311
494
  # at cluster creation time.
495
+ # @!attribute [rw] dns_cache_config
496
+ # @return [::Google::Cloud::Container::V1beta1::DnsCacheConfig]
497
+ # Configuration for NodeLocalDNS, a dns cache running on cluster nodes
498
+ # @!attribute [rw] config_connector_config
499
+ # @return [::Google::Cloud::Container::V1beta1::ConfigConnectorConfig]
500
+ # Configuration for the ConfigConnector add-on, a Kubernetes
501
+ # extension to manage hosted GCP services through the Kubernetes API
502
+ # @!attribute [rw] gce_persistent_disk_csi_driver_config
503
+ # @return [::Google::Cloud::Container::V1beta1::GcePersistentDiskCsiDriverConfig]
504
+ # Configuration for the Compute Engine Persistent Disk CSI driver.
505
+ # @!attribute [rw] kalm_config
506
+ # @return [::Google::Cloud::Container::V1beta1::KalmConfig]
507
+ # Configuration for the KALM addon, which manages the lifecycle of k8s
508
+ # applications.
312
509
  class AddonsConfig
313
510
  include ::Google::Protobuf::MessageExts
314
511
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -332,8 +529,8 @@ module Google
332
529
  # @!attribute [rw] disabled
333
530
  # @return [::Boolean]
334
531
  # Whether the Horizontal Pod Autoscaling feature is enabled in the cluster.
335
- # When enabled, it ensures that a Heapster pod is running in the cluster,
336
- # which is also used by the Cloud Monitoring service.
532
+ # When enabled, it ensures that metrics are collected into Stackdriver
533
+ # Monitoring.
337
534
  class HorizontalPodAutoscaling
338
535
  include ::Google::Protobuf::MessageExts
339
536
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -359,6 +556,52 @@ module Google
359
556
  extend ::Google::Protobuf::MessageExts::ClassMethods
360
557
  end
361
558
 
559
+ # Configuration for NodeLocal DNSCache
560
+ # @!attribute [rw] enabled
561
+ # @return [::Boolean]
562
+ # Whether NodeLocal DNSCache is enabled for this cluster.
563
+ class DnsCacheConfig
564
+ include ::Google::Protobuf::MessageExts
565
+ extend ::Google::Protobuf::MessageExts::ClassMethods
566
+ end
567
+
568
+ # Configuration options for the KALM addon.
569
+ # @!attribute [rw] enabled
570
+ # @return [::Boolean]
571
+ # Whether KALM is enabled for this cluster.
572
+ class KalmConfig
573
+ include ::Google::Protobuf::MessageExts
574
+ extend ::Google::Protobuf::MessageExts::ClassMethods
575
+ end
576
+
577
+ # Configuration options for the Config Connector add-on.
578
+ # @!attribute [rw] enabled
579
+ # @return [::Boolean]
580
+ # Whether Cloud Connector is enabled for this cluster.
581
+ class ConfigConnectorConfig
582
+ include ::Google::Protobuf::MessageExts
583
+ extend ::Google::Protobuf::MessageExts::ClassMethods
584
+ end
585
+
586
+ # Configuration for the Compute Engine PD CSI driver. This option can only be
587
+ # enabled at cluster creation time.
588
+ # @!attribute [rw] enabled
589
+ # @return [::Boolean]
590
+ # Whether the Compute Engine PD CSI driver is enabled for this cluster.
591
+ class GcePersistentDiskCsiDriverConfig
592
+ include ::Google::Protobuf::MessageExts
593
+ extend ::Google::Protobuf::MessageExts::ClassMethods
594
+ end
595
+
596
+ # Configuration for controlling master global access settings.
597
+ # @!attribute [rw] enabled
598
+ # @return [::Boolean]
599
+ # Whenever master is accessible globally or not.
600
+ class PrivateClusterMasterGlobalAccessConfig
601
+ include ::Google::Protobuf::MessageExts
602
+ extend ::Google::Protobuf::MessageExts::ClassMethods
603
+ end
604
+
362
605
  # Configuration options for private clusters.
363
606
  # @!attribute [rw] enable_private_nodes
364
607
  # @return [::Boolean]
@@ -380,6 +623,12 @@ module Google
380
623
  # @!attribute [rw] public_endpoint
381
624
  # @return [::String]
382
625
  # Output only. The external IP address of this cluster's master endpoint.
626
+ # @!attribute [rw] peering_name
627
+ # @return [::String]
628
+ # Output only. The peering name in the customer VPC used by this cluster.
629
+ # @!attribute [rw] master_global_access_config
630
+ # @return [::Google::Cloud::Container::V1beta1::PrivateClusterMasterGlobalAccessConfig]
631
+ # Controls master global access settings.
383
632
  class PrivateClusterConfig
384
633
  include ::Google::Protobuf::MessageExts
385
634
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -410,9 +659,24 @@ module Google
410
659
  # @!attribute [rw] disabled
411
660
  # @return [::Boolean]
412
661
  # Whether Cloud Run addon is enabled for this cluster.
662
+ # @!attribute [rw] load_balancer_type
663
+ # @return [::Google::Cloud::Container::V1beta1::CloudRunConfig::LoadBalancerType]
664
+ # Which load balancer type is installed for Cloud Run.
413
665
  class CloudRunConfig
414
666
  include ::Google::Protobuf::MessageExts
415
667
  extend ::Google::Protobuf::MessageExts::ClassMethods
668
+
669
+ # Load balancer type of ingress service of Cloud Run.
670
+ module LoadBalancerType
671
+ # Load balancer type for Cloud Run is unspecified.
672
+ LOAD_BALANCER_TYPE_UNSPECIFIED = 0
673
+
674
+ # Install external load balancer for Cloud Run.
675
+ LOAD_BALANCER_TYPE_EXTERNAL = 1
676
+
677
+ # Install internal load balancer for Cloud Run.
678
+ LOAD_BALANCER_TYPE_INTERNAL = 2
679
+ end
416
680
  end
417
681
 
418
682
  # Configuration options for the master authorized networks feature. Enabled
@@ -482,6 +746,9 @@ module Google
482
746
  # @!attribute [rw] use_ip_aliases
483
747
  # @return [::Boolean]
484
748
  # Whether alias IPs will be used for pod IPs in the cluster.
749
+ # This is used in conjunction with use_routes. It cannot
750
+ # be true if use_routes is true. If both use_ip_aliases and use_routes are
751
+ # false, then the server picks the default IP allocation mode
485
752
  # @!attribute [rw] create_subnetwork
486
753
  # @return [::Boolean]
487
754
  # Whether a new subnetwork will be created automatically for the cluster.
@@ -600,6 +867,13 @@ module Google
600
867
  # notation (e.g. `10.96.0.0/14`) from the RFC-1918 private networks (e.g.
601
868
  # `10.0.0.0/8`, `172.16.0.0/12`, `192.168.0.0/16`) to pick a specific range
602
869
  # to use.
870
+ # This field is deprecated, use cluster.tpu_config.ipv4_cidr_block instead.
871
+ # @!attribute [rw] use_routes
872
+ # @return [::Boolean]
873
+ # Whether routes will be used for pod IPs in the cluster.
874
+ # This is used in conjunction with use_ip_aliases. It cannot be true if
875
+ # use_ip_aliases is true. If both use_ip_aliases and use_routes are false,
876
+ # then the server picks the default IP allocation mode
603
877
  class IPAllocationPolicy
604
878
  include ::Google::Protobuf::MessageExts
605
879
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -639,6 +913,30 @@ module Google
639
913
  extend ::Google::Protobuf::MessageExts::ClassMethods
640
914
  end
641
915
 
916
+ # Telemetry integration for the cluster.
917
+ # @!attribute [rw] type
918
+ # @return [::Google::Cloud::Container::V1beta1::ClusterTelemetry::Type]
919
+ # Type of the integration.
920
+ class ClusterTelemetry
921
+ include ::Google::Protobuf::MessageExts
922
+ extend ::Google::Protobuf::MessageExts::ClassMethods
923
+
924
+ # Type of the integration.
925
+ module Type
926
+ # Not set.
927
+ UNSPECIFIED = 0
928
+
929
+ # Monitoring integration is disabled.
930
+ DISABLED = 1
931
+
932
+ # Monitoring integration is enabled.
933
+ ENABLED = 2
934
+
935
+ # Only system components are monitored and logged.
936
+ SYSTEM_ONLY = 3
937
+ end
938
+ end
939
+
642
940
  # A Google Kubernetes Engine cluster.
643
941
  # @!attribute [rw] name
644
942
  # @return [::String]
@@ -689,24 +987,34 @@ module Google
689
987
  # The logging service the cluster should use to write logs.
690
988
  # Currently available options:
691
989
  #
692
- # * `logging.googleapis.com` - the Google Cloud Logging service.
990
+ # * `logging.googleapis.com/kubernetes` - The Cloud Logging
991
+ # service with a Kubernetes-native resource model
992
+ # * `logging.googleapis.com` - The legacy Cloud Logging service (no longer
993
+ # available as of GKE 1.15).
693
994
  # * `none` - no logs will be exported from the cluster.
694
- # * if left as an empty string,`logging.googleapis.com` will be used.
995
+ #
996
+ # If left as an empty string,`logging.googleapis.com/kubernetes` will be
997
+ # used for GKE 1.14+ or `logging.googleapis.com` for earlier versions.
695
998
  # @!attribute [rw] monitoring_service
696
999
  # @return [::String]
697
1000
  # The monitoring service the cluster should use to write metrics.
698
1001
  # Currently available options:
699
1002
  #
700
- # * `monitoring.googleapis.com` - the Google Cloud Monitoring service.
701
- # * `none` - no metrics will be exported from the cluster.
702
- # * if left as an empty string, `monitoring.googleapis.com` will be used.
1003
+ # * "monitoring.googleapis.com/kubernetes" - The Cloud Monitoring
1004
+ # service with a Kubernetes-native resource model
1005
+ # * `monitoring.googleapis.com` - The legacy Cloud Monitoring service (no
1006
+ # longer available as of GKE 1.15).
1007
+ # * `none` - No metrics will be exported from the cluster.
1008
+ #
1009
+ # If left as an empty string,`monitoring.googleapis.com/kubernetes` will be
1010
+ # used for GKE 1.14+ or `monitoring.googleapis.com` for earlier versions.
703
1011
  # @!attribute [rw] network
704
1012
  # @return [::String]
705
1013
  # The name of the Google Compute Engine
706
- # [network](https://cloud.google.com/compute/docs/networks-and-firewalls#networks) to which the
707
- # cluster is connected. If left unspecified, the `default` network
708
- # will be used. On output this shows the network ID instead of
709
- # the name.
1014
+ # [network](https://cloud.google.com/compute/docs/networks-and-firewalls#networks)
1015
+ # to which the cluster is connected. If left unspecified, the `default`
1016
+ # network will be used. On output this shows the network ID instead of the
1017
+ # name.
710
1018
  # @!attribute [rw] cluster_ipv4_cidr
711
1019
  # @return [::String]
712
1020
  # The IP address range of the container pods in this cluster, in
@@ -719,8 +1027,8 @@ module Google
719
1027
  # @!attribute [rw] subnetwork
720
1028
  # @return [::String]
721
1029
  # The name of the Google Compute Engine
722
- # [subnetwork](https://cloud.google.com/compute/docs/subnetworks) to which the
723
- # cluster is connected. On output this shows the subnetwork ID instead of
1030
+ # [subnetwork](https://cloud.google.com/compute/docs/subnetworks) to which
1031
+ # the cluster is connected. On output this shows the subnetwork ID instead of
724
1032
  # the name.
725
1033
  # @!attribute [rw] node_pools
726
1034
  # @return [::Array<::Google::Cloud::Container::V1beta1::NodePool>]
@@ -730,8 +1038,16 @@ module Google
730
1038
  # @!attribute [rw] locations
731
1039
  # @return [::Array<::String>]
732
1040
  # The list of Google Compute Engine
733
- # [zones](https://cloud.google.com/compute/docs/zones#available) in which the cluster's nodes
734
- # should be located.
1041
+ # [zones](https://cloud.google.com/compute/docs/zones#available) in which the
1042
+ # cluster's nodes should be located.
1043
+ #
1044
+ # This field provides a default value if
1045
+ # [NodePool.Locations](https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1/projects.locations.clusters.nodePools#NodePool.FIELDS.locations)
1046
+ # are not specified during node pool creation.
1047
+ #
1048
+ # Warning: changing cluster locations will update the
1049
+ # [NodePool.Locations](https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1/projects.locations.clusters.nodePools#NodePool.FIELDS.locations)
1050
+ # of all node pools and will result in nodes being added and/or removed.
735
1051
  # @!attribute [rw] enable_kubernetes_alpha
736
1052
  # @return [::Boolean]
737
1053
  # Kubernetes alpha features are enabled on this cluster. This includes alpha
@@ -806,15 +1122,36 @@ module Google
806
1122
  # @!attribute [rw] vertical_pod_autoscaling
807
1123
  # @return [::Google::Cloud::Container::V1beta1::VerticalPodAutoscaling]
808
1124
  # Cluster-level Vertical Pod Autoscaling configuration.
1125
+ # @!attribute [rw] shielded_nodes
1126
+ # @return [::Google::Cloud::Container::V1beta1::ShieldedNodes]
1127
+ # Shielded Nodes configuration.
1128
+ # @!attribute [rw] release_channel
1129
+ # @return [::Google::Cloud::Container::V1beta1::ReleaseChannel]
1130
+ # Release channel configuration.
1131
+ # @!attribute [rw] workload_identity_config
1132
+ # @return [::Google::Cloud::Container::V1beta1::WorkloadIdentityConfig]
1133
+ # Configuration for the use of Kubernetes Service Accounts in GCP IAM
1134
+ # policies.
1135
+ # @!attribute [rw] cluster_telemetry
1136
+ # @return [::Google::Cloud::Container::V1beta1::ClusterTelemetry]
1137
+ # Telemetry integration for the cluster.
1138
+ # @!attribute [rw] tpu_config
1139
+ # @return [::Google::Cloud::Container::V1beta1::TpuConfig]
1140
+ # Configuration for Cloud TPU support;
1141
+ # @!attribute [rw] notification_config
1142
+ # @return [::Google::Cloud::Container::V1beta1::NotificationConfig]
1143
+ # Notification configuration of the cluster.
1144
+ # @!attribute [rw] confidential_nodes
1145
+ # @return [::Google::Cloud::Container::V1beta1::ConfidentialNodes]
1146
+ # Configuration of Confidential Nodes
809
1147
  # @!attribute [rw] self_link
810
1148
  # @return [::String]
811
1149
  # [Output only] Server-defined URL for the resource.
812
1150
  # @!attribute [rw] zone
813
1151
  # @return [::String]
814
1152
  # [Output only] The name of the Google Compute Engine
815
- # [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster
816
- # resides.
817
- # This field is deprecated, use location instead.
1153
+ # [zone](https://cloud.google.com/compute/docs/zones#available) in which the
1154
+ # cluster resides. This field is deprecated, use location instead.
818
1155
  # @!attribute [rw] endpoint
819
1156
  # @return [::String]
820
1157
  # [Output only] The IP address of this cluster's master endpoint.
@@ -857,7 +1194,8 @@ module Google
857
1194
  # [Output only] The current status of this cluster.
858
1195
  # @!attribute [rw] status_message
859
1196
  # @return [::String]
860
- # [Output only] Additional information about the current status of this
1197
+ # [Output only] Deprecated. Use conditions instead.
1198
+ # Additional information about the current status of this
861
1199
  # cluster, if available.
862
1200
  # @!attribute [rw] node_ipv4_cidr_size
863
1201
  # @return [::Integer]
@@ -886,12 +1224,14 @@ module Google
886
1224
  # @!attribute [rw] location
887
1225
  # @return [::String]
888
1226
  # [Output only] The name of the Google Compute Engine
889
- # [zone](https://cloud.google.com/compute/docs/regions-zones/regions-zones#available) or
890
- # [region](https://cloud.google.com/compute/docs/regions-zones/regions-zones#available) in which
891
- # the cluster resides.
1227
+ # [zone](https://cloud.google.com/compute/docs/regions-zones/regions-zones#available)
1228
+ # or
1229
+ # [region](https://cloud.google.com/compute/docs/regions-zones/regions-zones#available)
1230
+ # in which the cluster resides.
892
1231
  # @!attribute [rw] enable_tpu
893
1232
  # @return [::Boolean]
894
1233
  # Enable the ability to use Cloud TPUs in this cluster.
1234
+ # This field is deprecated, use tpu_config.enabled instead.
895
1235
  # @!attribute [rw] tpu_ipv4_cidr_block
896
1236
  # @return [::String]
897
1237
  # [Output only] The IP address range of the Cloud TPUs in this cluster, in
@@ -903,6 +1243,9 @@ module Google
903
1243
  # @!attribute [rw] conditions
904
1244
  # @return [::Array<::Google::Cloud::Container::V1beta1::StatusCondition>]
905
1245
  # Which conditions caused the current cluster state.
1246
+ # @!attribute [rw] master
1247
+ # @return [::Google::Cloud::Container::V1beta1::Master]
1248
+ # Configuration for master components.
906
1249
  class Cluster
907
1250
  include ::Google::Protobuf::MessageExts
908
1251
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -967,10 +1310,14 @@ module Google
967
1310
  # The monitoring service the cluster should use to write metrics.
968
1311
  # Currently available options:
969
1312
  #
970
- # * "monitoring.googleapis.com/kubernetes" - the Google Cloud Monitoring
971
- # service with Kubernetes-native resource model
972
- # * "monitoring.googleapis.com" - the Google Cloud Monitoring service
973
- # * "none" - no metrics will be exported from the cluster
1313
+ # * "monitoring.googleapis.com/kubernetes" - The Cloud Monitoring
1314
+ # service with a Kubernetes-native resource model
1315
+ # * `monitoring.googleapis.com` - The legacy Cloud Monitoring service (no
1316
+ # longer available as of GKE 1.15).
1317
+ # * `none` - No metrics will be exported from the cluster.
1318
+ #
1319
+ # If left as an empty string,`monitoring.googleapis.com/kubernetes` will be
1320
+ # used for GKE 1.14+ or `monitoring.googleapis.com` for earlier versions.
974
1321
  # @!attribute [rw] desired_addons_config
975
1322
  # @return [::Google::Cloud::Container::V1beta1::AddonsConfig]
976
1323
  # Configurations for the various addons available to run in the cluster.
@@ -993,12 +1340,13 @@ module Google
993
1340
  # @!attribute [rw] desired_locations
994
1341
  # @return [::Array<::String>]
995
1342
  # The desired list of Google Compute Engine
996
- # [zones](https://cloud.google.com/compute/docs/zones#available) in which the cluster's nodes
997
- # should be located. Changing the locations a cluster is in will result
998
- # in nodes being either created or removed from the cluster, depending on
999
- # whether locations are being added or removed.
1343
+ # [zones](https://cloud.google.com/compute/docs/zones#available) in which the
1344
+ # cluster's nodes should be located.
1000
1345
  #
1001
1346
  # This list must always include the cluster's primary zone.
1347
+ #
1348
+ # Warning: changing cluster locations will update the locations of all node
1349
+ # pools and will result in nodes being added and/or removed.
1002
1350
  # @!attribute [rw] desired_master_authorized_networks_config
1003
1351
  # @return [::Google::Cloud::Container::V1beta1::MasterAuthorizedNetworksConfig]
1004
1352
  # The desired configuration options for master authorized networks feature.
@@ -1013,22 +1361,47 @@ module Google
1013
1361
  # The desired configuration options for the Binary Authorization feature.
1014
1362
  # @!attribute [rw] desired_logging_service
1015
1363
  # @return [::String]
1016
- # The logging service the cluster should use to write metrics.
1364
+ # The logging service the cluster should use to write logs.
1017
1365
  # Currently available options:
1018
1366
  #
1019
- # * "logging.googleapis.com/kubernetes" - the Google Cloud Logging
1020
- # service with Kubernetes-native resource model
1021
- # * "logging.googleapis.com" - the Google Cloud Logging service
1022
- # * "none" - no logs will be exported from the cluster
1367
+ # * `logging.googleapis.com/kubernetes` - The Cloud Logging
1368
+ # service with a Kubernetes-native resource model
1369
+ # * `logging.googleapis.com` - The legacy Cloud Logging service (no longer
1370
+ # available as of GKE 1.15).
1371
+ # * `none` - no logs will be exported from the cluster.
1372
+ #
1373
+ # If left as an empty string,`logging.googleapis.com/kubernetes` will be
1374
+ # used for GKE 1.14+ or `logging.googleapis.com` for earlier versions.
1023
1375
  # @!attribute [rw] desired_resource_usage_export_config
1024
1376
  # @return [::Google::Cloud::Container::V1beta1::ResourceUsageExportConfig]
1025
1377
  # The desired configuration for exporting resource usage.
1026
1378
  # @!attribute [rw] desired_vertical_pod_autoscaling
1027
1379
  # @return [::Google::Cloud::Container::V1beta1::VerticalPodAutoscaling]
1028
1380
  # Cluster-level Vertical Pod Autoscaling configuration.
1381
+ # @!attribute [rw] desired_private_cluster_config
1382
+ # @return [::Google::Cloud::Container::V1beta1::PrivateClusterConfig]
1383
+ # The desired private cluster configuration.
1029
1384
  # @!attribute [rw] desired_intra_node_visibility_config
1030
1385
  # @return [::Google::Cloud::Container::V1beta1::IntraNodeVisibilityConfig]
1031
1386
  # The desired config of Intra-node visibility.
1387
+ # @!attribute [rw] desired_default_snat_status
1388
+ # @return [::Google::Cloud::Container::V1beta1::DefaultSnatStatus]
1389
+ # The desired status of whether to disable default sNAT for this cluster.
1390
+ # @!attribute [rw] desired_cluster_telemetry
1391
+ # @return [::Google::Cloud::Container::V1beta1::ClusterTelemetry]
1392
+ # The desired telemetry integration for the cluster.
1393
+ # @!attribute [rw] desired_release_channel
1394
+ # @return [::Google::Cloud::Container::V1beta1::ReleaseChannel]
1395
+ # The desired release channel configuration.
1396
+ # @!attribute [rw] desired_tpu_config
1397
+ # @return [::Google::Cloud::Container::V1beta1::TpuConfig]
1398
+ # The desired Cloud TPU configuration.
1399
+ # @!attribute [rw] desired_datapath_provider
1400
+ # @return [::Google::Cloud::Container::V1beta1::DatapathProvider]
1401
+ # The desired datapath provider for the cluster.
1402
+ # @!attribute [rw] desired_notification_config
1403
+ # @return [::Google::Cloud::Container::V1beta1::NotificationConfig]
1404
+ # The desired notification configuration.
1032
1405
  # @!attribute [rw] desired_master_version
1033
1406
  # @return [::String]
1034
1407
  # The Kubernetes version to change the master to. The only valid value is the
@@ -1042,6 +1415,18 @@ module Google
1042
1415
  # - "1.X.Y": picks the highest valid gke.N patch in the 1.X.Y version
1043
1416
  # - "1.X.Y-gke.N": picks an explicit Kubernetes version
1044
1417
  # - "-": picks the default Kubernetes version
1418
+ # @!attribute [rw] desired_database_encryption
1419
+ # @return [::Google::Cloud::Container::V1beta1::DatabaseEncryption]
1420
+ # Configuration of etcd encryption.
1421
+ # @!attribute [rw] desired_workload_identity_config
1422
+ # @return [::Google::Cloud::Container::V1beta1::WorkloadIdentityConfig]
1423
+ # Configuration for Workload Identity.
1424
+ # @!attribute [rw] desired_shielded_nodes
1425
+ # @return [::Google::Cloud::Container::V1beta1::ShieldedNodes]
1426
+ # Configuration for Shielded Nodes.
1427
+ # @!attribute [rw] desired_master
1428
+ # @return [::Google::Cloud::Container::V1beta1::Master]
1429
+ # Configuration for master components.
1045
1430
  class ClusterUpdate
1046
1431
  include ::Google::Protobuf::MessageExts
1047
1432
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -1055,9 +1440,8 @@ module Google
1055
1440
  # @!attribute [rw] zone
1056
1441
  # @return [::String]
1057
1442
  # The name of the Google Compute Engine
1058
- # [zone](https://cloud.google.com/compute/docs/zones#available) in which the operation
1059
- # is taking place.
1060
- # This field is deprecated, use location instead.
1443
+ # [zone](https://cloud.google.com/compute/docs/zones#available) in which the
1444
+ # operation is taking place. This field is deprecated, use location instead.
1061
1445
  # @!attribute [rw] operation_type
1062
1446
  # @return [::Google::Cloud::Container::V1beta1::Operation::Type]
1063
1447
  # The operation type.
@@ -1067,9 +1451,10 @@ module Google
1067
1451
  # @!attribute [rw] detail
1068
1452
  # @return [::String]
1069
1453
  # Detailed operation progress, if available.
1070
- # @!attribute [rw] status_message
1454
+ # @!attribute [r] status_message
1071
1455
  # @return [::String]
1072
- # If an error has occurred, a textual description of the error.
1456
+ # Output only. If an error has occurred, a textual description of the error.
1457
+ # Deprecated. Use field error instead.
1073
1458
  # @!attribute [rw] self_link
1074
1459
  # @return [::String]
1075
1460
  # Server-defined URL for the resource.
@@ -1079,9 +1464,10 @@ module Google
1079
1464
  # @!attribute [rw] location
1080
1465
  # @return [::String]
1081
1466
  # [Output only] The name of the Google Compute Engine
1082
- # [zone](https://cloud.google.com/compute/docs/regions-zones/regions-zones#available) or
1083
- # [region](https://cloud.google.com/compute/docs/regions-zones/regions-zones#available) in which
1084
- # the cluster resides.
1467
+ # [zone](https://cloud.google.com/compute/docs/regions-zones/regions-zones#available)
1468
+ # or
1469
+ # [region](https://cloud.google.com/compute/docs/regions-zones/regions-zones#available)
1470
+ # in which the cluster resides.
1085
1471
  # @!attribute [rw] start_time
1086
1472
  # @return [::String]
1087
1473
  # [Output only] The time the operation started, in
@@ -1090,15 +1476,20 @@ module Google
1090
1476
  # @return [::String]
1091
1477
  # [Output only] The time the operation completed, in
1092
1478
  # [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
1093
- # @!attribute [rw] progress
1479
+ # @!attribute [r] progress
1094
1480
  # @return [::Google::Cloud::Container::V1beta1::OperationProgress]
1095
- # [Output only] Progress information for an operation.
1481
+ # Output only. [Output only] Progress information for an operation.
1096
1482
  # @!attribute [rw] cluster_conditions
1097
1483
  # @return [::Array<::Google::Cloud::Container::V1beta1::StatusCondition>]
1098
1484
  # Which conditions caused the current cluster state.
1485
+ # Deprecated. Use field error instead.
1099
1486
  # @!attribute [rw] nodepool_conditions
1100
1487
  # @return [::Array<::Google::Cloud::Container::V1beta1::StatusCondition>]
1101
1488
  # Which conditions caused the current node pool state.
1489
+ # Deprecated. Use field error instead.
1490
+ # @!attribute [rw] error
1491
+ # @return [::Google::Rpc::Status]
1492
+ # The error result of the operation in case of failure.
1102
1493
  class Operation
1103
1494
  include ::Google::Protobuf::MessageExts
1104
1495
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -1203,8 +1594,7 @@ module Google
1203
1594
  # Progress metric is (string, int|float|string) pair.
1204
1595
  # @!attribute [rw] name
1205
1596
  # @return [::String]
1206
- # Metric name, required.
1207
- # e.g., "nodes total", "percent done"
1597
+ # Required. Metric name, e.g., "nodes total", "percent done".
1208
1598
  # @!attribute [rw] int_value
1209
1599
  # @return [::Integer]
1210
1600
  # For metrics with integer value.
@@ -1229,13 +1619,13 @@ module Google
1229
1619
  # @!attribute [rw] zone
1230
1620
  # @return [::String]
1231
1621
  # Required. Deprecated. The name of the Google Compute Engine
1232
- # [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster
1233
- # resides.
1234
- # This field has been deprecated and replaced by the parent field.
1622
+ # [zone](https://cloud.google.com/compute/docs/zones#available) in which the
1623
+ # cluster resides. This field has been deprecated and replaced by the parent
1624
+ # field.
1235
1625
  # @!attribute [rw] cluster
1236
1626
  # @return [::Google::Cloud::Container::V1beta1::Cluster]
1237
1627
  # Required. A [cluster
1238
- # resource](https://cloud.google.com/container-engine/reference/rest/v1beta1/projects.zones.clusters)
1628
+ # resource](https://cloud.google.com/container-engine/reference/rest/v1beta1/projects.locations.clusters)
1239
1629
  # @!attribute [rw] parent
1240
1630
  # @return [::String]
1241
1631
  # The parent (project and location) where the cluster will be created.
@@ -1254,9 +1644,9 @@ module Google
1254
1644
  # @!attribute [rw] zone
1255
1645
  # @return [::String]
1256
1646
  # Required. Deprecated. The name of the Google Compute Engine
1257
- # [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster
1258
- # resides.
1259
- # This field has been deprecated and replaced by the name field.
1647
+ # [zone](https://cloud.google.com/compute/docs/zones#available) in which the
1648
+ # cluster resides. This field has been deprecated and replaced by the name
1649
+ # field.
1260
1650
  # @!attribute [rw] cluster_id
1261
1651
  # @return [::String]
1262
1652
  # Required. Deprecated. The name of the cluster to retrieve.
@@ -1279,9 +1669,9 @@ module Google
1279
1669
  # @!attribute [rw] zone
1280
1670
  # @return [::String]
1281
1671
  # Required. Deprecated. The name of the Google Compute Engine
1282
- # [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster
1283
- # resides.
1284
- # This field has been deprecated and replaced by the name field.
1672
+ # [zone](https://cloud.google.com/compute/docs/zones#available) in which the
1673
+ # cluster resides. This field has been deprecated and replaced by the name
1674
+ # field.
1285
1675
  # @!attribute [rw] cluster_id
1286
1676
  # @return [::String]
1287
1677
  # Required. Deprecated. The name of the cluster to upgrade.
@@ -1307,9 +1697,9 @@ module Google
1307
1697
  # @!attribute [rw] zone
1308
1698
  # @return [::String]
1309
1699
  # Required. Deprecated. The name of the Google Compute Engine
1310
- # [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster
1311
- # resides.
1312
- # This field has been deprecated and replaced by the name field.
1700
+ # [zone](https://cloud.google.com/compute/docs/zones#available) in which the
1701
+ # cluster resides. This field has been deprecated and replaced by the name
1702
+ # field.
1313
1703
  # @!attribute [rw] cluster_id
1314
1704
  # @return [::String]
1315
1705
  # Required. Deprecated. The name of the cluster to upgrade.
@@ -1334,14 +1724,30 @@ module Google
1334
1724
  # @!attribute [rw] image_type
1335
1725
  # @return [::String]
1336
1726
  # Required. The desired image type for the node pool.
1727
+ # @!attribute [rw] locations
1728
+ # @return [::Array<::String>]
1729
+ # The desired list of Google Compute Engine
1730
+ # [zones](https://cloud.google.com/compute/docs/zones#available) in which the
1731
+ # node pool's nodes should be located. Changing the locations for a node pool
1732
+ # will result in nodes being either created or removed from the node pool,
1733
+ # depending on whether locations are being added or removed.
1337
1734
  # @!attribute [rw] workload_metadata_config
1338
1735
  # @return [::Google::Cloud::Container::V1beta1::WorkloadMetadataConfig]
1339
- # The desired image type for the node pool.
1736
+ # The desired workload metadata config for the node pool.
1340
1737
  # @!attribute [rw] name
1341
1738
  # @return [::String]
1342
1739
  # The name (project, location, cluster, node pool) of the node pool to
1343
1740
  # update. Specified in the format
1344
1741
  # `projects/*/locations/*/clusters/*/nodePools/*`.
1742
+ # @!attribute [rw] upgrade_settings
1743
+ # @return [::Google::Cloud::Container::V1beta1::NodePool::UpgradeSettings]
1744
+ # Upgrade settings control disruption and speed of the upgrade.
1745
+ # @!attribute [rw] linux_node_config
1746
+ # @return [::Google::Cloud::Container::V1beta1::LinuxNodeConfig]
1747
+ # Parameters that can be configured on Linux nodes.
1748
+ # @!attribute [rw] kubelet_config
1749
+ # @return [::Google::Cloud::Container::V1beta1::NodeKubeletConfig]
1750
+ # Node kubelet configs.
1345
1751
  class UpdateNodePoolRequest
1346
1752
  include ::Google::Protobuf::MessageExts
1347
1753
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -1356,9 +1762,9 @@ module Google
1356
1762
  # @!attribute [rw] zone
1357
1763
  # @return [::String]
1358
1764
  # Required. Deprecated. The name of the Google Compute Engine
1359
- # [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster
1360
- # resides.
1361
- # This field has been deprecated and replaced by the name field.
1765
+ # [zone](https://cloud.google.com/compute/docs/zones#available) in which the
1766
+ # cluster resides. This field has been deprecated and replaced by the name
1767
+ # field.
1362
1768
  # @!attribute [rw] cluster_id
1363
1769
  # @return [::String]
1364
1770
  # Required. Deprecated. The name of the cluster to upgrade.
@@ -1389,20 +1795,26 @@ module Google
1389
1795
  # @!attribute [rw] zone
1390
1796
  # @return [::String]
1391
1797
  # Required. Deprecated. The name of the Google Compute Engine
1392
- # [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster
1393
- # resides.
1394
- # This field has been deprecated and replaced by the name field.
1798
+ # [zone](https://cloud.google.com/compute/docs/zones#available) in which the
1799
+ # cluster resides. This field has been deprecated and replaced by the name
1800
+ # field.
1395
1801
  # @!attribute [rw] cluster_id
1396
1802
  # @return [::String]
1397
1803
  # Required. Deprecated. The name of the cluster to upgrade.
1398
1804
  # This field has been deprecated and replaced by the name field.
1399
1805
  # @!attribute [rw] logging_service
1400
1806
  # @return [::String]
1401
- # Required. The logging service the cluster should use to write metrics.
1807
+ # Required. The logging service the cluster should use to write logs.
1402
1808
  # Currently available options:
1403
1809
  #
1404
- # * "logging.googleapis.com" - the Google Cloud Logging service
1405
- # * "none" - no metrics will be exported from the cluster
1810
+ # * `logging.googleapis.com/kubernetes` - The Cloud Logging
1811
+ # service with a Kubernetes-native resource model
1812
+ # * `logging.googleapis.com` - The legacy Cloud Logging service (no longer
1813
+ # available as of GKE 1.15).
1814
+ # * `none` - no logs will be exported from the cluster.
1815
+ #
1816
+ # If left as an empty string,`logging.googleapis.com/kubernetes` will be
1817
+ # used for GKE 1.14+ or `logging.googleapis.com` for earlier versions.
1406
1818
  # @!attribute [rw] name
1407
1819
  # @return [::String]
1408
1820
  # The name (project, location, cluster) of the cluster to set logging.
@@ -1421,9 +1833,9 @@ module Google
1421
1833
  # @!attribute [rw] zone
1422
1834
  # @return [::String]
1423
1835
  # Required. Deprecated. The name of the Google Compute Engine
1424
- # [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster
1425
- # resides.
1426
- # This field has been deprecated and replaced by the name field.
1836
+ # [zone](https://cloud.google.com/compute/docs/zones#available) in which the
1837
+ # cluster resides. This field has been deprecated and replaced by the name
1838
+ # field.
1427
1839
  # @!attribute [rw] cluster_id
1428
1840
  # @return [::String]
1429
1841
  # Required. Deprecated. The name of the cluster to upgrade.
@@ -1433,8 +1845,14 @@ module Google
1433
1845
  # Required. The monitoring service the cluster should use to write metrics.
1434
1846
  # Currently available options:
1435
1847
  #
1436
- # * "monitoring.googleapis.com" - the Google Cloud Monitoring service
1437
- # * "none" - no metrics will be exported from the cluster
1848
+ # * "monitoring.googleapis.com/kubernetes" - The Cloud Monitoring
1849
+ # service with a Kubernetes-native resource model
1850
+ # * `monitoring.googleapis.com` - The legacy Cloud Monitoring service (no
1851
+ # longer available as of GKE 1.15).
1852
+ # * `none` - No metrics will be exported from the cluster.
1853
+ #
1854
+ # If left as an empty string,`monitoring.googleapis.com/kubernetes` will be
1855
+ # used for GKE 1.14+ or `monitoring.googleapis.com` for earlier versions.
1438
1856
  # @!attribute [rw] name
1439
1857
  # @return [::String]
1440
1858
  # The name (project, location, cluster) of the cluster to set monitoring.
@@ -1453,9 +1871,9 @@ module Google
1453
1871
  # @!attribute [rw] zone
1454
1872
  # @return [::String]
1455
1873
  # Required. Deprecated. The name of the Google Compute Engine
1456
- # [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster
1457
- # resides.
1458
- # This field has been deprecated and replaced by the name field.
1874
+ # [zone](https://cloud.google.com/compute/docs/zones#available) in which the
1875
+ # cluster resides. This field has been deprecated and replaced by the name
1876
+ # field.
1459
1877
  # @!attribute [rw] cluster_id
1460
1878
  # @return [::String]
1461
1879
  # Required. Deprecated. The name of the cluster to upgrade.
@@ -1482,9 +1900,9 @@ module Google
1482
1900
  # @!attribute [rw] zone
1483
1901
  # @return [::String]
1484
1902
  # Required. 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.
1903
+ # [zone](https://cloud.google.com/compute/docs/zones#available) in which the
1904
+ # cluster resides. This field has been deprecated and replaced by the name
1905
+ # field.
1488
1906
  # @!attribute [rw] cluster_id
1489
1907
  # @return [::String]
1490
1908
  # Required. Deprecated. The name of the cluster to upgrade.
@@ -1492,10 +1910,10 @@ module Google
1492
1910
  # @!attribute [rw] locations
1493
1911
  # @return [::Array<::String>]
1494
1912
  # Required. The desired list of Google Compute Engine
1495
- # [zones](https://cloud.google.com/compute/docs/zones#available) in which the cluster's nodes
1496
- # should be located. Changing the locations a cluster is in will result
1497
- # in nodes being either created or removed from the cluster, depending on
1498
- # whether locations are being added or removed.
1913
+ # [zones](https://cloud.google.com/compute/docs/zones#available) in which the
1914
+ # cluster's nodes should be located. Changing the locations a cluster is in
1915
+ # will result in nodes being either created or removed from the cluster,
1916
+ # depending on whether locations are being added or removed.
1499
1917
  #
1500
1918
  # This list must always include the cluster's primary zone.
1501
1919
  # @!attribute [rw] name
@@ -1516,9 +1934,9 @@ module Google
1516
1934
  # @!attribute [rw] zone
1517
1935
  # @return [::String]
1518
1936
  # Required. Deprecated. The name of the Google Compute Engine
1519
- # [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster
1520
- # resides.
1521
- # This field has been deprecated and replaced by the name field.
1937
+ # [zone](https://cloud.google.com/compute/docs/zones#available) in which the
1938
+ # cluster resides. This field has been deprecated and replaced by the name
1939
+ # field.
1522
1940
  # @!attribute [rw] cluster_id
1523
1941
  # @return [::String]
1524
1942
  # Required. Deprecated. The name of the cluster to upgrade.
@@ -1553,9 +1971,9 @@ module Google
1553
1971
  # @!attribute [rw] zone
1554
1972
  # @return [::String]
1555
1973
  # Required. Deprecated. The name of the Google Compute Engine
1556
- # [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster
1557
- # resides.
1558
- # This field has been deprecated and replaced by the name field.
1974
+ # [zone](https://cloud.google.com/compute/docs/zones#available) in which the
1975
+ # cluster resides. This field has been deprecated and replaced by the name
1976
+ # field.
1559
1977
  # @!attribute [rw] cluster_id
1560
1978
  # @return [::String]
1561
1979
  # Required. Deprecated. The name of the cluster to upgrade.
@@ -1602,9 +2020,9 @@ module Google
1602
2020
  # @!attribute [rw] zone
1603
2021
  # @return [::String]
1604
2022
  # Required. Deprecated. The name of the Google Compute Engine
1605
- # [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster
1606
- # resides.
1607
- # This field has been deprecated and replaced by the name field.
2023
+ # [zone](https://cloud.google.com/compute/docs/zones#available) in which the
2024
+ # cluster resides. This field has been deprecated and replaced by the name
2025
+ # field.
1608
2026
  # @!attribute [rw] cluster_id
1609
2027
  # @return [::String]
1610
2028
  # Required. Deprecated. The name of the cluster to delete.
@@ -1627,9 +2045,9 @@ module Google
1627
2045
  # @!attribute [rw] zone
1628
2046
  # @return [::String]
1629
2047
  # Required. Deprecated. The name of the Google Compute Engine
1630
- # [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster
1631
- # resides, or "-" for all zones.
1632
- # This field has been deprecated and replaced by the parent field.
2048
+ # [zone](https://cloud.google.com/compute/docs/zones#available) in which the
2049
+ # cluster resides, or "-" for all zones. This field has been deprecated and
2050
+ # replaced by the parent field.
1633
2051
  # @!attribute [rw] parent
1634
2052
  # @return [::String]
1635
2053
  # The parent (project and location) where the clusters will be listed.
@@ -1663,9 +2081,9 @@ module Google
1663
2081
  # @!attribute [rw] zone
1664
2082
  # @return [::String]
1665
2083
  # Required. Deprecated. The name of the Google Compute Engine
1666
- # [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster
1667
- # resides.
1668
- # This field has been deprecated and replaced by the name field.
2084
+ # [zone](https://cloud.google.com/compute/docs/zones#available) in which the
2085
+ # cluster resides. This field has been deprecated and replaced by the name
2086
+ # field.
1669
2087
  # @!attribute [rw] operation_id
1670
2088
  # @return [::String]
1671
2089
  # Required. Deprecated. The server-assigned `name` of the operation.
@@ -1688,8 +2106,9 @@ module Google
1688
2106
  # @!attribute [rw] zone
1689
2107
  # @return [::String]
1690
2108
  # Required. Deprecated. The name of the Google Compute Engine
1691
- # [zone](https://cloud.google.com/compute/docs/zones#available) to return operations for, or `-` for
1692
- # all zones. This field has been deprecated and replaced by the parent field.
2109
+ # [zone](https://cloud.google.com/compute/docs/zones#available) to return
2110
+ # operations for, or `-` for all zones. This field has been deprecated and
2111
+ # replaced by the parent field.
1693
2112
  # @!attribute [rw] parent
1694
2113
  # @return [::String]
1695
2114
  # The parent (project and location) where the operations will be listed.
@@ -1709,8 +2128,9 @@ module Google
1709
2128
  # @!attribute [rw] zone
1710
2129
  # @return [::String]
1711
2130
  # Required. Deprecated. The name of the Google Compute Engine
1712
- # [zone](https://cloud.google.com/compute/docs/zones#available) in which the operation resides.
1713
- # This field has been deprecated and replaced by the name field.
2131
+ # [zone](https://cloud.google.com/compute/docs/zones#available) in which the
2132
+ # operation resides. This field has been deprecated and replaced by the name
2133
+ # field.
1714
2134
  # @!attribute [rw] operation_id
1715
2135
  # @return [::String]
1716
2136
  # Required. Deprecated. The server-assigned `name` of the operation.
@@ -1746,8 +2166,9 @@ module Google
1746
2166
  # @!attribute [rw] zone
1747
2167
  # @return [::String]
1748
2168
  # Required. Deprecated. The name of the Google Compute Engine
1749
- # [zone](https://cloud.google.com/compute/docs/zones#available) to return operations for.
1750
- # This field has been deprecated and replaced by the name field.
2169
+ # [zone](https://cloud.google.com/compute/docs/zones#available) to return
2170
+ # operations for. This field has been deprecated and replaced by the name
2171
+ # field.
1751
2172
  # @!attribute [rw] name
1752
2173
  # @return [::String]
1753
2174
  # The name (project and location) of the server config to get,
@@ -1763,7 +2184,7 @@ module Google
1763
2184
  # Version of Kubernetes the service deploys by default.
1764
2185
  # @!attribute [rw] valid_node_versions
1765
2186
  # @return [::Array<::String>]
1766
- # List of valid node upgrade target versions.
2187
+ # List of valid node upgrade target versions, in descending order.
1767
2188
  # @!attribute [rw] default_image_type
1768
2189
  # @return [::String]
1769
2190
  # Default image type.
@@ -1772,10 +2193,45 @@ module Google
1772
2193
  # List of valid image types.
1773
2194
  # @!attribute [rw] valid_master_versions
1774
2195
  # @return [::Array<::String>]
1775
- # List of valid master versions.
2196
+ # List of valid master versions, in descending order.
2197
+ # @!attribute [rw] channels
2198
+ # @return [::Array<::Google::Cloud::Container::V1beta1::ServerConfig::ReleaseChannelConfig>]
2199
+ # List of release channel configurations.
1776
2200
  class ServerConfig
1777
2201
  include ::Google::Protobuf::MessageExts
1778
2202
  extend ::Google::Protobuf::MessageExts::ClassMethods
2203
+
2204
+ # ReleaseChannelConfig exposes configuration for a release channel.
2205
+ # @!attribute [rw] channel
2206
+ # @return [::Google::Cloud::Container::V1beta1::ReleaseChannel::Channel]
2207
+ # The release channel this configuration applies to.
2208
+ # @!attribute [rw] default_version
2209
+ # @return [::String]
2210
+ # The default version for newly created clusters on the channel.
2211
+ # @!attribute [rw] available_versions
2212
+ # @return [::Array<::Google::Cloud::Container::V1beta1::ServerConfig::ReleaseChannelConfig::AvailableVersion>]
2213
+ # Deprecated.
2214
+ # This field has been deprecated and replaced with the valid_versions
2215
+ # field.
2216
+ # @!attribute [rw] valid_versions
2217
+ # @return [::Array<::String>]
2218
+ # List of valid versions for the channel.
2219
+ class ReleaseChannelConfig
2220
+ include ::Google::Protobuf::MessageExts
2221
+ extend ::Google::Protobuf::MessageExts::ClassMethods
2222
+
2223
+ # Deprecated.
2224
+ # @!attribute [rw] version
2225
+ # @return [::String]
2226
+ # Kubernetes version.
2227
+ # @!attribute [rw] reason
2228
+ # @return [::String]
2229
+ # Reason for availability.
2230
+ class AvailableVersion
2231
+ include ::Google::Protobuf::MessageExts
2232
+ extend ::Google::Protobuf::MessageExts::ClassMethods
2233
+ end
2234
+ end
1779
2235
  end
1780
2236
 
1781
2237
  # CreateNodePoolRequest creates a node pool for a cluster.
@@ -1787,9 +2243,9 @@ module Google
1787
2243
  # @!attribute [rw] zone
1788
2244
  # @return [::String]
1789
2245
  # Required. Deprecated. The name of the Google Compute Engine
1790
- # [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster
1791
- # resides.
1792
- # This field has been deprecated and replaced by the parent field.
2246
+ # [zone](https://cloud.google.com/compute/docs/zones#available) in which the
2247
+ # cluster resides. This field has been deprecated and replaced by the parent
2248
+ # field.
1793
2249
  # @!attribute [rw] cluster_id
1794
2250
  # @return [::String]
1795
2251
  # Required. Deprecated. The name of the cluster.
@@ -1816,9 +2272,9 @@ module Google
1816
2272
  # @!attribute [rw] zone
1817
2273
  # @return [::String]
1818
2274
  # Required. Deprecated. The name of the Google Compute Engine
1819
- # [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster
1820
- # resides.
1821
- # This field has been deprecated and replaced by the name field.
2275
+ # [zone](https://cloud.google.com/compute/docs/zones#available) in which the
2276
+ # cluster resides. This field has been deprecated and replaced by the name
2277
+ # field.
1822
2278
  # @!attribute [rw] cluster_id
1823
2279
  # @return [::String]
1824
2280
  # Required. Deprecated. The name of the cluster.
@@ -1846,9 +2302,9 @@ module Google
1846
2302
  # @!attribute [rw] zone
1847
2303
  # @return [::String]
1848
2304
  # Required. Deprecated. The name of the Google Compute Engine
1849
- # [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster
1850
- # resides.
1851
- # This field has been deprecated and replaced by the parent field.
2305
+ # [zone](https://cloud.google.com/compute/docs/zones#available) in which the
2306
+ # cluster resides. This field has been deprecated and replaced by the parent
2307
+ # field.
1852
2308
  # @!attribute [rw] cluster_id
1853
2309
  # @return [::String]
1854
2310
  # Required. Deprecated. The name of the cluster.
@@ -1871,9 +2327,9 @@ module Google
1871
2327
  # @!attribute [rw] zone
1872
2328
  # @return [::String]
1873
2329
  # Required. Deprecated. The name of the Google Compute Engine
1874
- # [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster
1875
- # resides.
1876
- # This field has been deprecated and replaced by the name field.
2330
+ # [zone](https://cloud.google.com/compute/docs/zones#available) in which the
2331
+ # cluster resides. This field has been deprecated and replaced by the name
2332
+ # field.
1877
2333
  # @!attribute [rw] cluster_id
1878
2334
  # @return [::String]
1879
2335
  # Required. Deprecated. The name of the cluster.
@@ -1910,6 +2366,18 @@ module Google
1910
2366
  # Compute Engine [resource quota](https://cloud.google.com/compute/quotas)
1911
2367
  # is sufficient for this number of instances. You must also have available
1912
2368
  # firewall and routes quota.
2369
+ # @!attribute [rw] locations
2370
+ # @return [::Array<::String>]
2371
+ # The list of Google Compute Engine
2372
+ # [zones](https://cloud.google.com/compute/docs/zones#available) in which the
2373
+ # NodePool's nodes should be located.
2374
+ #
2375
+ # If this value is unspecified during node pool creation, the
2376
+ # [Cluster.Locations](https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1/projects.locations.clusters#Cluster.FIELDS.locations)
2377
+ # value will be used, instead.
2378
+ #
2379
+ # Warning: changing node pool locations will result in nodes being added
2380
+ # and/or removed.
1913
2381
  # @!attribute [rw] self_link
1914
2382
  # @return [::String]
1915
2383
  # [Output only] Server-defined URL for the resource.
@@ -1926,7 +2394,8 @@ module Google
1926
2394
  # [Output only] The status of the nodes in this pool instance.
1927
2395
  # @!attribute [rw] status_message
1928
2396
  # @return [::String]
1929
- # [Output only] Additional information about the current status of this
2397
+ # [Output only] Deprecated. Use conditions instead.
2398
+ # Additional information about the current status of this
1930
2399
  # node pool instance, if available.
1931
2400
  # @!attribute [rw] autoscaling
1932
2401
  # @return [::Google::Cloud::Container::V1beta1::NodePoolAutoscaling]
@@ -1945,10 +2414,50 @@ module Google
1945
2414
  # @!attribute [rw] pod_ipv4_cidr_size
1946
2415
  # @return [::Integer]
1947
2416
  # [Output only] The pod CIDR block size per node in this node pool.
2417
+ # @!attribute [rw] upgrade_settings
2418
+ # @return [::Google::Cloud::Container::V1beta1::NodePool::UpgradeSettings]
2419
+ # Upgrade settings control disruption and speed of the upgrade.
1948
2420
  class NodePool
1949
2421
  include ::Google::Protobuf::MessageExts
1950
2422
  extend ::Google::Protobuf::MessageExts::ClassMethods
1951
2423
 
2424
+ # These upgrade settings control the level of parallelism and the level of
2425
+ # disruption caused by an upgrade.
2426
+ #
2427
+ # maxUnavailable controls the number of nodes that can be simultaneously
2428
+ # unavailable.
2429
+ #
2430
+ # maxSurge controls the number of additional nodes that can be added to the
2431
+ # node pool temporarily for the time of the upgrade to increase the number of
2432
+ # available nodes.
2433
+ #
2434
+ # (maxUnavailable + maxSurge) determines the level of parallelism (how many
2435
+ # nodes are being upgraded at the same time).
2436
+ #
2437
+ # Note: upgrades inevitably introduce some disruption since workloads need to
2438
+ # be moved from old nodes to new, upgraded ones. Even if maxUnavailable=0,
2439
+ # this holds true. (Disruption stays within the limits of
2440
+ # PodDisruptionBudget, if it is configured.)
2441
+ #
2442
+ # Consider a hypothetical node pool with 5 nodes having maxSurge=2,
2443
+ # maxUnavailable=1. This means the upgrade process upgrades 3 nodes
2444
+ # simultaneously. It creates 2 additional (upgraded) nodes, then it brings
2445
+ # down 3 old (not yet upgraded) nodes at the same time. This ensures that
2446
+ # there are always at least 4 nodes available.
2447
+ # @!attribute [rw] max_surge
2448
+ # @return [::Integer]
2449
+ # The maximum number of nodes that can be created beyond the current size
2450
+ # of the node pool during the upgrade process.
2451
+ # @!attribute [rw] max_unavailable
2452
+ # @return [::Integer]
2453
+ # The maximum number of nodes that can be simultaneously unavailable during
2454
+ # the upgrade process. A node is considered available if its status is
2455
+ # Ready.
2456
+ class UpgradeSettings
2457
+ include ::Google::Protobuf::MessageExts
2458
+ extend ::Google::Protobuf::MessageExts::ClassMethods
2459
+ end
2460
+
1952
2461
  # The current status of the node pool instance.
1953
2462
  module Status
1954
2463
  # Not set.
@@ -2022,7 +2531,7 @@ module Google
2022
2531
  # A hash identifying the version of this policy, so that updates to fields of
2023
2532
  # the policy won't accidentally undo intermediate changes (and so that users
2024
2533
  # of the API unaware of some fields won't accidentally remove other fields).
2025
- # Make a <code>get()</code> request to the cluster to get the current
2534
+ # Make a `get()` request to the cluster to get the current
2026
2535
  # resource version and include it with requests to set the policy.
2027
2536
  class MaintenancePolicy
2028
2537
  include ::Google::Protobuf::MessageExts
@@ -2080,25 +2589,30 @@ module Google
2080
2589
  # end time.
2081
2590
  #
2082
2591
  # For example, to have something repeat every weekday, you'd use:
2083
- # <code>FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR</code>
2592
+ # `FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR`
2593
+ #
2084
2594
  # To repeat some window daily (equivalent to the DailyMaintenanceWindow):
2085
- # <code>FREQ=DAILY</code>
2595
+ # `FREQ=DAILY`
2596
+ #
2086
2597
  # For the first weekend of every month:
2087
- # <code>FREQ=MONTHLY;BYSETPOS=1;BYDAY=SA,SU</code>
2598
+ # `FREQ=MONTHLY;BYSETPOS=1;BYDAY=SA,SU`
2599
+ #
2088
2600
  # This specifies how frequently the window starts. Eg, if you wanted to have
2089
2601
  # a 9-5 UTC-4 window every weekday, you'd use something like:
2090
- # <code>
2091
- # start time = 2019-01-01T09:00:00-0400
2092
- # end time = 2019-01-01T17:00:00-0400
2093
- # recurrence = FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR
2094
- # </code>
2602
+ # ```
2603
+ # start time = 2019-01-01T09:00:00-0400
2604
+ # end time = 2019-01-01T17:00:00-0400
2605
+ # recurrence = FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR
2606
+ # ```
2607
+ #
2095
2608
  # Windows can span multiple days. Eg, to make the window encompass every
2096
2609
  # weekend from midnight Saturday till the last minute of Sunday UTC:
2097
- # <code>
2098
- # start time = 2019-01-05T00:00:00Z
2099
- # end time = 2019-01-07T23:59:00Z
2100
- # recurrence = FREQ=WEEKLY;BYDAY=SA
2101
- # </code>
2610
+ # ```
2611
+ # start time = 2019-01-05T00:00:00Z
2612
+ # end time = 2019-01-07T23:59:00Z
2613
+ # recurrence = FREQ=WEEKLY;BYDAY=SA
2614
+ # ```
2615
+ #
2102
2616
  # Note the start and end time's specific dates are largely arbitrary except
2103
2617
  # to specify duration of the window and when it first starts.
2104
2618
  # The FREQ values of HOURLY, MINUTELY, and SECONDLY are not supported.
@@ -2131,9 +2645,9 @@ module Google
2131
2645
  # @!attribute [rw] zone
2132
2646
  # @return [::String]
2133
2647
  # Required. Deprecated. The name of the Google Compute Engine
2134
- # [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster
2135
- # resides.
2136
- # This field has been deprecated and replaced by the name field.
2648
+ # [zone](https://cloud.google.com/compute/docs/zones#available) in which the
2649
+ # cluster resides. This field has been deprecated and replaced by the name
2650
+ # field.
2137
2651
  # @!attribute [rw] cluster_id
2138
2652
  # @return [::String]
2139
2653
  # Required. Deprecated. The name of the cluster to update.
@@ -2165,9 +2679,9 @@ module Google
2165
2679
  # @!attribute [rw] zone
2166
2680
  # @return [::String]
2167
2681
  # Required. Deprecated. The name of the Google Compute Engine
2168
- # [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster
2169
- # resides.
2170
- # 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.
2171
2685
  # @!attribute [rw] cluster_id
2172
2686
  # @return [::String]
2173
2687
  # Required. Deprecated. The name of the cluster to update.
@@ -2200,9 +2714,9 @@ module Google
2200
2714
  # @!attribute [rw] zone
2201
2715
  # @return [::String]
2202
2716
  # Required. Deprecated. The name of the Google Compute Engine
2203
- # [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster
2204
- # resides.
2205
- # This field has been deprecated and replaced by the name field.
2717
+ # [zone](https://cloud.google.com/compute/docs/zones#available) in which the
2718
+ # cluster resides. This field has been deprecated and replaced by the name
2719
+ # field.
2206
2720
  # @!attribute [rw] cluster_id
2207
2721
  # @return [::String]
2208
2722
  # Required. Deprecated. The name of the cluster to rollback.
@@ -2241,29 +2755,99 @@ module Google
2241
2755
  # @return [::Array<::Google::Cloud::Container::V1beta1::ResourceLimit>]
2242
2756
  # Contains global constraints regarding minimum and maximum
2243
2757
  # amount of resources in the cluster.
2758
+ # @!attribute [rw] autoscaling_profile
2759
+ # @return [::Google::Cloud::Container::V1beta1::ClusterAutoscaling::AutoscalingProfile]
2760
+ # Defines autoscaling behaviour.
2244
2761
  # @!attribute [rw] autoprovisioning_node_pool_defaults
2245
2762
  # @return [::Google::Cloud::Container::V1beta1::AutoprovisioningNodePoolDefaults]
2246
2763
  # AutoprovisioningNodePoolDefaults contains defaults for a node pool
2247
2764
  # created by NAP.
2248
2765
  # @!attribute [rw] autoprovisioning_locations
2249
2766
  # @return [::Array<::String>]
2250
- # The list of Google Compute Engine [zones](https://cloud.google.com/compute/docs/zones#available)
2251
- # in which the NodePool's nodes can be created by NAP.
2767
+ # The list of Google Compute Engine
2768
+ # [zones](https://cloud.google.com/compute/docs/zones#available) in which the
2769
+ # NodePool's nodes can be created by NAP.
2252
2770
  class ClusterAutoscaling
2253
2771
  include ::Google::Protobuf::MessageExts
2254
2772
  extend ::Google::Protobuf::MessageExts::ClassMethods
2773
+
2774
+ # Defines possible options for autoscaling_profile field.
2775
+ module AutoscalingProfile
2776
+ # No change to autoscaling configuration.
2777
+ PROFILE_UNSPECIFIED = 0
2778
+
2779
+ # Prioritize optimizing utilization of resources.
2780
+ OPTIMIZE_UTILIZATION = 1
2781
+
2782
+ # Use default (balanced) autoscaling configuration.
2783
+ BALANCED = 2
2784
+ end
2255
2785
  end
2256
2786
 
2257
2787
  # AutoprovisioningNodePoolDefaults contains defaults for a node pool created
2258
2788
  # by NAP.
2259
2789
  # @!attribute [rw] oauth_scopes
2260
2790
  # @return [::Array<::String>]
2261
- # Scopes that are used by NAP when creating node pools. If oauth_scopes are
2262
- # specified, service_account should be empty.
2791
+ # The set of Google API scopes to be made available on all of the
2792
+ # node VMs under the "default" service account.
2793
+ #
2794
+ # The following scopes are recommended, but not required, and by default are
2795
+ # not included:
2796
+ #
2797
+ # * `https://www.googleapis.com/auth/compute` is required for mounting
2798
+ # persistent storage on your nodes.
2799
+ # * `https://www.googleapis.com/auth/devstorage.read_only` is required for
2800
+ # communicating with **gcr.io**
2801
+ # (the [Google Container
2802
+ # Registry](https://cloud.google.com/container-registry/)).
2803
+ #
2804
+ # If unspecified, no scopes are added, unless Cloud Logging or Cloud
2805
+ # Monitoring are enabled, in which case their required scopes will be added.
2263
2806
  # @!attribute [rw] service_account
2264
2807
  # @return [::String]
2265
- # The Google Cloud Platform Service Account to be used by the node VMs. If
2266
- # service_account is specified, scopes should be empty.
2808
+ # The Google Cloud Platform Service Account to be used by the node VMs.
2809
+ # Specify the email address of the Service Account; otherwise, if no Service
2810
+ # Account is specified, the "default" service account is used.
2811
+ # @!attribute [rw] upgrade_settings
2812
+ # @return [::Google::Cloud::Container::V1beta1::NodePool::UpgradeSettings]
2813
+ # Upgrade settings control disruption and speed of the upgrade.
2814
+ # @!attribute [rw] management
2815
+ # @return [::Google::Cloud::Container::V1beta1::NodeManagement]
2816
+ # NodeManagement configuration for this NodePool.
2817
+ # @!attribute [rw] min_cpu_platform
2818
+ # @return [::String]
2819
+ # Minimum CPU platform to be used by this instance. The instance may be
2820
+ # scheduled on the specified or newer CPU platform. Applicable values are the
2821
+ # friendly names of CPU platforms, such as
2822
+ # `minCpuPlatform: "Intel Haswell"` or
2823
+ # `minCpuPlatform: "Intel Sandy Bridge"`. For more
2824
+ # information, read [how to specify min CPU
2825
+ # platform](https://cloud.google.com/compute/docs/instances/specify-min-cpu-platform)
2826
+ # To unset the min cpu platform field pass "automatic"
2827
+ # as field value.
2828
+ # @!attribute [rw] disk_size_gb
2829
+ # @return [::Integer]
2830
+ # Size of the disk attached to each node, specified in GB.
2831
+ # The smallest allowed disk size is 10GB.
2832
+ #
2833
+ # If unspecified, the default disk size is 100GB.
2834
+ # @!attribute [rw] disk_type
2835
+ # @return [::String]
2836
+ # Type of the disk attached to each node (e.g. 'pd-standard', 'pd-ssd' or
2837
+ # 'pd-balanced')
2838
+ #
2839
+ # If unspecified, the default disk type is 'pd-standard'
2840
+ # @!attribute [rw] shielded_instance_config
2841
+ # @return [::Google::Cloud::Container::V1beta1::ShieldedInstanceConfig]
2842
+ # Shielded Instance options.
2843
+ # @!attribute [rw] boot_disk_kms_key
2844
+ # @return [::String]
2845
+ # The Customer Managed Encryption Key used to encrypt the boot disk attached
2846
+ # to each node in the node pool. This should be of the form
2847
+ # projects/[KEY_PROJECT_ID]/locations/[LOCATION]/keyRings/[RING_NAME]/cryptoKeys/[KEY_NAME].
2848
+ # For more information about protecting resources with Cloud KMS Keys please
2849
+ # see:
2850
+ # https://cloud.google.com/compute/docs/disks/customer-managed-encryption
2267
2851
  class AutoprovisioningNodePoolDefaults
2268
2852
  include ::Google::Protobuf::MessageExts
2269
2853
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -2317,9 +2901,9 @@ module Google
2317
2901
  # @!attribute [rw] zone
2318
2902
  # @return [::String]
2319
2903
  # Required. Deprecated. The name of the Google Compute Engine
2320
- # [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster
2321
- # resides.
2322
- # This field has been deprecated and replaced by the name field.
2904
+ # [zone](https://cloud.google.com/compute/docs/zones#available) in which the
2905
+ # cluster resides. This field has been deprecated and replaced by the name
2906
+ # field.
2323
2907
  # @!attribute [rw] cluster_id
2324
2908
  # @return [::String]
2325
2909
  # Required. Deprecated. The name of the cluster.
@@ -2333,7 +2917,7 @@ module Google
2333
2917
  # used to detect conflicts. The fingerprint is initially generated by
2334
2918
  # Kubernetes Engine and changes after every request to modify or update
2335
2919
  # labels. You must always provide an up-to-date fingerprint hash when
2336
- # updating or changing labels. Make a <code>get()</code> request to the
2920
+ # updating or changing labels. Make a `get()` request to the
2337
2921
  # resource to get the latest fingerprint.
2338
2922
  # @!attribute [rw] name
2339
2923
  # @return [::String]
@@ -2363,9 +2947,9 @@ module Google
2363
2947
  # @!attribute [rw] zone
2364
2948
  # @return [::String]
2365
2949
  # Required. Deprecated. The name of the Google Compute Engine
2366
- # [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster
2367
- # resides.
2368
- # This field has been deprecated and replaced by the name field.
2950
+ # [zone](https://cloud.google.com/compute/docs/zones#available) in which the
2951
+ # cluster resides. This field has been deprecated and replaced by the name
2952
+ # field.
2369
2953
  # @!attribute [rw] cluster_id
2370
2954
  # @return [::String]
2371
2955
  # Required. Deprecated. The name of the cluster to update.
@@ -2392,9 +2976,9 @@ module Google
2392
2976
  # @!attribute [rw] zone
2393
2977
  # @return [::String]
2394
2978
  # Required. Deprecated. The name of the Google Compute Engine
2395
- # [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster
2396
- # resides.
2397
- # This field has been deprecated and replaced by the name field.
2979
+ # [zone](https://cloud.google.com/compute/docs/zones#available) in which the
2980
+ # cluster resides. This field has been deprecated and replaced by the name
2981
+ # field.
2398
2982
  # @!attribute [rw] cluster_id
2399
2983
  # @return [::String]
2400
2984
  # Required. Deprecated. The name of the cluster.
@@ -2420,9 +3004,9 @@ module Google
2420
3004
  # @!attribute [rw] zone
2421
3005
  # @return [::String]
2422
3006
  # Required. Deprecated. The name of the Google Compute Engine
2423
- # [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster
2424
- # resides.
2425
- # This field has been deprecated and replaced by the name field.
3007
+ # [zone](https://cloud.google.com/compute/docs/zones#available) in which the
3008
+ # cluster resides. This field has been deprecated and replaced by the name
3009
+ # field.
2426
3010
  # @!attribute [rw] cluster_id
2427
3011
  # @return [::String]
2428
3012
  # Required. Deprecated. The name of the cluster.
@@ -2455,6 +3039,10 @@ module Google
2455
3039
  # @return [::Google::Cloud::Container::V1beta1::WorkloadMetadataConfig::NodeMetadata]
2456
3040
  # NodeMetadata is the configuration for how to expose metadata to the
2457
3041
  # workloads running on the node.
3042
+ # @!attribute [rw] mode
3043
+ # @return [::Google::Cloud::Container::V1beta1::WorkloadMetadataConfig::Mode]
3044
+ # Mode is the configuration for how to expose metadata to workloads running
3045
+ # on the node pool.
2458
3046
  class WorkloadMetadataConfig
2459
3047
  include ::Google::Protobuf::MessageExts
2460
3048
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -2477,6 +3065,30 @@ module Google
2477
3065
 
2478
3066
  # Expose all VM metadata to pods.
2479
3067
  EXPOSE = 2
3068
+
3069
+ # Run the GKE Metadata Server on this node. The GKE Metadata Server exposes
3070
+ # a metadata API to workloads that is compatible with the V1 Compute
3071
+ # Metadata APIs exposed by the Compute Engine and App Engine Metadata
3072
+ # Servers. This feature can only be enabled if Workload Identity is enabled
3073
+ # at the cluster level.
3074
+ GKE_METADATA_SERVER = 3
3075
+ end
3076
+
3077
+ # Mode is the configuration for how to expose metadata to workloads running
3078
+ # on the node.
3079
+ module Mode
3080
+ # Not set.
3081
+ MODE_UNSPECIFIED = 0
3082
+
3083
+ # Expose all Compute Engine metadata to pods.
3084
+ GCE_METADATA = 1
3085
+
3086
+ # Run the GKE Metadata Server on this node. The GKE Metadata Server exposes
3087
+ # a metadata API to workloads that is compatible with the V1 Compute
3088
+ # Metadata APIs exposed by the Compute Engine and App Engine Metadata
3089
+ # Servers. This feature can only be enabled if Workload Identity is enabled
3090
+ # at the cluster level.
3091
+ GKE_METADATA = 2
2480
3092
  end
2481
3093
  end
2482
3094
 
@@ -2489,9 +3101,9 @@ module Google
2489
3101
  # @!attribute [rw] zone
2490
3102
  # @return [::String]
2491
3103
  # Required. Deprecated. The name of the Google Compute Engine
2492
- # [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster
2493
- # resides.
2494
- # This field has been deprecated and replaced by the name field.
3104
+ # [zone](https://cloud.google.com/compute/docs/zones#available) in which the
3105
+ # cluster resides. This field has been deprecated and replaced by the name
3106
+ # field.
2495
3107
  # @!attribute [rw] cluster_id
2496
3108
  # @return [::String]
2497
3109
  # Required. Deprecated. The name of the cluster.
@@ -2516,8 +3128,8 @@ module Google
2516
3128
  # @!attribute [rw] zone
2517
3129
  # @return [::String]
2518
3130
  # Required. The name of the Google Compute Engine
2519
- # [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster
2520
- # resides.
3131
+ # [zone](https://cloud.google.com/compute/docs/zones#available) in which the
3132
+ # cluster resides.
2521
3133
  # @!attribute [rw] cluster_id
2522
3134
  # @return [::String]
2523
3135
  # Required. The name of the cluster to update.
@@ -2596,9 +3208,13 @@ module Google
2596
3208
  # @!attribute [rw] code
2597
3209
  # @return [::Google::Cloud::Container::V1beta1::StatusCondition::Code]
2598
3210
  # Machine-friendly representation of the condition
3211
+ # Deprecated. Use canonical_code instead.
2599
3212
  # @!attribute [rw] message
2600
3213
  # @return [::String]
2601
3214
  # Human-friendly representation of the condition
3215
+ # @!attribute [rw] canonical_code
3216
+ # @return [::Google::Rpc::Code]
3217
+ # Canonical code of the condition.
2602
3218
  class StatusCondition
2603
3219
  include ::Google::Protobuf::MessageExts
2604
3220
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -2608,7 +3224,8 @@ module Google
2608
3224
  # UNKNOWN indicates a generic condition.
2609
3225
  UNKNOWN = 0
2610
3226
 
2611
- # GCE_STOCKOUT indicates a Google Compute Engine stockout.
3227
+ # GCE_STOCKOUT indicates that Google Compute Engine resources are
3228
+ # temporarily unavailable.
2612
3229
  GCE_STOCKOUT = 1
2613
3230
 
2614
3231
  # GKE_SERVICE_ACCOUNT_DELETED indicates that the user deleted their robot
@@ -2632,18 +3249,29 @@ module Google
2632
3249
  # @!attribute [rw] network
2633
3250
  # @return [::String]
2634
3251
  # Output only. The relative name of the Google Compute Engine
2635
- # {::Google::Cloud::Container::V1beta1::NetworkConfig#network network}(https://cloud.google.com/compute/docs/networks-and-firewalls#networks) to which
2636
- # the cluster is connected.
2637
- # Example: projects/my-project/global/networks/my-network
3252
+ # {::Google::Cloud::Container::V1beta1::NetworkConfig#network network}(https://cloud.google.com/compute/docs/networks-and-firewalls#networks)
3253
+ # to which the cluster is connected. Example:
3254
+ # projects/my-project/global/networks/my-network
2638
3255
  # @!attribute [rw] subnetwork
2639
3256
  # @return [::String]
2640
3257
  # Output only. The relative name of the Google Compute Engine
2641
- # [subnetwork](https://cloud.google.com/compute/docs/vpc) to which the cluster is connected.
2642
- # Example: projects/my-project/regions/us-central1/subnetworks/my-subnet
3258
+ # [subnetwork](https://cloud.google.com/compute/docs/vpc) to which the
3259
+ # cluster is connected. Example:
3260
+ # projects/my-project/regions/us-central1/subnetworks/my-subnet
2643
3261
  # @!attribute [rw] enable_intra_node_visibility
2644
3262
  # @return [::Boolean]
2645
3263
  # Whether Intra-node visibility is enabled for this cluster.
2646
3264
  # This makes same node pod to pod traffic visible for VPC network.
3265
+ # @!attribute [rw] default_snat_status
3266
+ # @return [::Google::Cloud::Container::V1beta1::DefaultSnatStatus]
3267
+ # Whether the cluster disables default in-node sNAT rules. In-node sNAT rules
3268
+ # will be disabled when default_snat_status is disabled. When disabled is set
3269
+ # to false, default IP masquerade rules will be applied to the nodes to
3270
+ # prevent sNAT on cluster internal traffic.
3271
+ # @!attribute [rw] datapath_provider
3272
+ # @return [::Google::Cloud::Container::V1beta1::DatapathProvider]
3273
+ # The desired datapath provider for this cluster. By default, uses the
3274
+ # IPTables-based kube-proxy implementation.
2647
3275
  class NetworkConfig
2648
3276
  include ::Google::Protobuf::MessageExts
2649
3277
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -2768,6 +3396,16 @@ module Google
2768
3396
  extend ::Google::Protobuf::MessageExts::ClassMethods
2769
3397
  end
2770
3398
 
3399
+ # DefaultSnatStatus contains the desired state of whether default sNAT should
3400
+ # be disabled on the cluster.
3401
+ # @!attribute [rw] disabled
3402
+ # @return [::Boolean]
3403
+ # Disables cluster default sNAT rules.
3404
+ class DefaultSnatStatus
3405
+ include ::Google::Protobuf::MessageExts
3406
+ extend ::Google::Protobuf::MessageExts::ClassMethods
3407
+ end
3408
+
2771
3409
  # IntraNodeVisibilityConfig contains the desired config of the intra-node
2772
3410
  # visibility on this cluster.
2773
3411
  # @!attribute [rw] enabled
@@ -2787,6 +3425,22 @@ module Google
2787
3425
  extend ::Google::Protobuf::MessageExts::ClassMethods
2788
3426
  end
2789
3427
 
3428
+ # Configuration for the use of Kubernetes Service Accounts in GCP IAM
3429
+ # policies.
3430
+ # @!attribute [rw] identity_namespace
3431
+ # @return [::String]
3432
+ # IAM Identity Namespace to attach all Kubernetes Service Accounts to.
3433
+ # @!attribute [rw] workload_pool
3434
+ # @return [::String]
3435
+ # The workload pool to attach all Kubernetes service accounts to.
3436
+ # @!attribute [rw] identity_provider
3437
+ # @return [::String]
3438
+ # identity provider is the third party identity provider.
3439
+ class WorkloadIdentityConfig
3440
+ include ::Google::Protobuf::MessageExts
3441
+ extend ::Google::Protobuf::MessageExts::ClassMethods
3442
+ end
3443
+
2790
3444
  # Configuration of etcd encryption.
2791
3445
  # @!attribute [rw] state
2792
3446
  # @return [::Google::Cloud::Container::V1beta1::DatabaseEncryption::State]
@@ -2808,7 +3462,7 @@ module Google
2808
3462
  ENCRYPTED = 1
2809
3463
 
2810
3464
  # Secrets in etcd are stored in plain text (at etcd level) - this is
2811
- # unrelated to Google Compute Engine level full disk encryption.
3465
+ # unrelated to Compute Engine level full disk encryption.
2812
3466
  DECRYPTED = 2
2813
3467
  end
2814
3468
  end
@@ -2848,6 +3502,256 @@ module Google
2848
3502
  extend ::Google::Protobuf::MessageExts::ClassMethods
2849
3503
  end
2850
3504
  end
3505
+
3506
+ # Configuration of Shielded Nodes feature.
3507
+ # @!attribute [rw] enabled
3508
+ # @return [::Boolean]
3509
+ # Whether Shielded Nodes features are enabled on all nodes in this cluster.
3510
+ class ShieldedNodes
3511
+ include ::Google::Protobuf::MessageExts
3512
+ extend ::Google::Protobuf::MessageExts::ClassMethods
3513
+ end
3514
+
3515
+ # GetOpenIDConfigRequest gets the OIDC discovery document for the
3516
+ # cluster. See the OpenID Connect Discovery 1.0 specification for details.
3517
+ # @!attribute [rw] parent
3518
+ # @return [::String]
3519
+ # The cluster (project, location, cluster id) to get the discovery document
3520
+ # for. Specified in the format `projects/*/locations/*/clusters/*`.
3521
+ class GetOpenIDConfigRequest
3522
+ include ::Google::Protobuf::MessageExts
3523
+ extend ::Google::Protobuf::MessageExts::ClassMethods
3524
+ end
3525
+
3526
+ # GetOpenIDConfigResponse is an OIDC discovery document for the cluster.
3527
+ # See the OpenID Connect Discovery 1.0 specification for details.
3528
+ # @!attribute [rw] issuer
3529
+ # @return [::String]
3530
+ # OIDC Issuer.
3531
+ # @!attribute [rw] jwks_uri
3532
+ # @return [::String]
3533
+ # JSON Web Key uri.
3534
+ # @!attribute [rw] response_types_supported
3535
+ # @return [::Array<::String>]
3536
+ # Supported response types.
3537
+ # @!attribute [rw] subject_types_supported
3538
+ # @return [::Array<::String>]
3539
+ # Supported subject types.
3540
+ # @!attribute [rw] id_token_signing_alg_values_supported
3541
+ # @return [::Array<::String>]
3542
+ # supported ID Token signing Algorithms.
3543
+ # @!attribute [rw] claims_supported
3544
+ # @return [::Array<::String>]
3545
+ # Supported claims.
3546
+ # @!attribute [rw] grant_types
3547
+ # @return [::Array<::String>]
3548
+ # Supported grant types.
3549
+ class GetOpenIDConfigResponse
3550
+ include ::Google::Protobuf::MessageExts
3551
+ extend ::Google::Protobuf::MessageExts::ClassMethods
3552
+ end
3553
+
3554
+ # GetJSONWebKeysRequest gets the public component of the keys used by the
3555
+ # cluster to sign token requests. This will be the jwks_uri for the discover
3556
+ # document returned by getOpenIDConfig. See the OpenID Connect
3557
+ # Discovery 1.0 specification for details.
3558
+ # @!attribute [rw] parent
3559
+ # @return [::String]
3560
+ # The cluster (project, location, cluster id) to get keys for. Specified in
3561
+ # the format `projects/*/locations/*/clusters/*`.
3562
+ class GetJSONWebKeysRequest
3563
+ include ::Google::Protobuf::MessageExts
3564
+ extend ::Google::Protobuf::MessageExts::ClassMethods
3565
+ end
3566
+
3567
+ # Jwk is a JSON Web Key as specified in RFC 7517
3568
+ # @!attribute [rw] kty
3569
+ # @return [::String]
3570
+ # Key Type.
3571
+ # @!attribute [rw] alg
3572
+ # @return [::String]
3573
+ # Algorithm.
3574
+ # @!attribute [rw] use
3575
+ # @return [::String]
3576
+ # Permitted uses for the public keys.
3577
+ # @!attribute [rw] kid
3578
+ # @return [::String]
3579
+ # Key ID.
3580
+ # @!attribute [rw] n
3581
+ # @return [::String]
3582
+ # Used for RSA keys.
3583
+ # @!attribute [rw] e
3584
+ # @return [::String]
3585
+ # Used for RSA keys.
3586
+ # @!attribute [rw] x
3587
+ # @return [::String]
3588
+ # Used for ECDSA keys.
3589
+ # @!attribute [rw] y
3590
+ # @return [::String]
3591
+ # Used for ECDSA keys.
3592
+ # @!attribute [rw] crv
3593
+ # @return [::String]
3594
+ # Used for ECDSA keys.
3595
+ class Jwk
3596
+ include ::Google::Protobuf::MessageExts
3597
+ extend ::Google::Protobuf::MessageExts::ClassMethods
3598
+ end
3599
+
3600
+ # GetJSONWebKeysResponse is a valid JSON Web Key Set as specififed in rfc 7517
3601
+ # @!attribute [rw] keys
3602
+ # @return [::Array<::Google::Cloud::Container::V1beta1::Jwk>]
3603
+ # The public component of the keys used by the cluster to sign token
3604
+ # requests.
3605
+ class GetJSONWebKeysResponse
3606
+ include ::Google::Protobuf::MessageExts
3607
+ extend ::Google::Protobuf::MessageExts::ClassMethods
3608
+ end
3609
+
3610
+ # ReleaseChannel indicates which release channel a cluster is
3611
+ # subscribed to. Release channels are arranged in order of risk.
3612
+ #
3613
+ # When a cluster is subscribed to a release channel, Google maintains
3614
+ # both the master version and the node version. Node auto-upgrade
3615
+ # defaults to true and cannot be disabled.
3616
+ # @!attribute [rw] channel
3617
+ # @return [::Google::Cloud::Container::V1beta1::ReleaseChannel::Channel]
3618
+ # channel specifies which release channel the cluster is subscribed to.
3619
+ class ReleaseChannel
3620
+ include ::Google::Protobuf::MessageExts
3621
+ extend ::Google::Protobuf::MessageExts::ClassMethods
3622
+
3623
+ # Possible values for 'channel'.
3624
+ module Channel
3625
+ # No channel specified.
3626
+ UNSPECIFIED = 0
3627
+
3628
+ # RAPID channel is offered on an early access basis for customers who want
3629
+ # to test new releases.
3630
+ #
3631
+ # WARNING: Versions available in the RAPID Channel may be subject to
3632
+ # unresolved issues with no known workaround and are not subject to any
3633
+ # SLAs.
3634
+ RAPID = 1
3635
+
3636
+ # Clusters subscribed to REGULAR receive versions that are considered GA
3637
+ # quality. REGULAR is intended for production users who want to take
3638
+ # advantage of new features.
3639
+ REGULAR = 2
3640
+
3641
+ # Clusters subscribed to STABLE receive versions that are known to be
3642
+ # stable and reliable in production.
3643
+ STABLE = 3
3644
+ end
3645
+ end
3646
+
3647
+ # Configuration for Cloud TPU.
3648
+ # @!attribute [rw] enabled
3649
+ # @return [::Boolean]
3650
+ # Whether Cloud TPU integration is enabled or not.
3651
+ # @!attribute [rw] use_service_networking
3652
+ # @return [::Boolean]
3653
+ # Whether to use service networking for Cloud TPU or not.
3654
+ # @!attribute [rw] ipv4_cidr_block
3655
+ # @return [::String]
3656
+ # IPv4 CIDR block reserved for Cloud TPU in the VPC.
3657
+ class TpuConfig
3658
+ include ::Google::Protobuf::MessageExts
3659
+ extend ::Google::Protobuf::MessageExts::ClassMethods
3660
+ end
3661
+
3662
+ # Master is the configuration for components on master.
3663
+ class Master
3664
+ include ::Google::Protobuf::MessageExts
3665
+ extend ::Google::Protobuf::MessageExts::ClassMethods
3666
+ end
3667
+
3668
+ # NotificationConfig is the configuration of notifications.
3669
+ # @!attribute [rw] pubsub
3670
+ # @return [::Google::Cloud::Container::V1beta1::NotificationConfig::PubSub]
3671
+ # Notification config for Pub/Sub.
3672
+ class NotificationConfig
3673
+ include ::Google::Protobuf::MessageExts
3674
+ extend ::Google::Protobuf::MessageExts::ClassMethods
3675
+
3676
+ # Pub/Sub specific notification config.
3677
+ # @!attribute [rw] enabled
3678
+ # @return [::Boolean]
3679
+ # Enable notifications for Pub/Sub.
3680
+ # @!attribute [rw] topic
3681
+ # @return [::String]
3682
+ # The desired Pub/Sub topic to which notifications will be
3683
+ # sent by GKE. Format is `projects/{project}/topics/{topic}`.
3684
+ class PubSub
3685
+ include ::Google::Protobuf::MessageExts
3686
+ extend ::Google::Protobuf::MessageExts::ClassMethods
3687
+ end
3688
+ end
3689
+
3690
+ # ConfidentialNodes is configuration for the confidential nodes feature, which
3691
+ # makes nodes run on confidential VMs.
3692
+ # @!attribute [rw] enabled
3693
+ # @return [::Boolean]
3694
+ # Whether Confidential Nodes feature is enabled for all nodes in this
3695
+ # cluster.
3696
+ class ConfidentialNodes
3697
+ include ::Google::Protobuf::MessageExts
3698
+ extend ::Google::Protobuf::MessageExts::ClassMethods
3699
+ end
3700
+
3701
+ # UpgradeEvent is a notification sent to customers by the cluster server when
3702
+ # a resource is upgrading.
3703
+ # @!attribute [rw] resource_type
3704
+ # @return [::Google::Cloud::Container::V1beta1::UpgradeResourceType]
3705
+ # Required. The resource type that is upgrading.
3706
+ # @!attribute [rw] operation
3707
+ # @return [::String]
3708
+ # Required. The operation associated with this upgrade.
3709
+ # @!attribute [rw] operation_start_time
3710
+ # @return [::Google::Protobuf::Timestamp]
3711
+ # Required. The time when the operation was started.
3712
+ # @!attribute [rw] current_version
3713
+ # @return [::String]
3714
+ # Required. The current version before the upgrade.
3715
+ # @!attribute [rw] target_version
3716
+ # @return [::String]
3717
+ # Required. The target version for the upgrade.
3718
+ # @!attribute [rw] resource
3719
+ # @return [::String]
3720
+ # Optional. Optional relative path to the resource. For example in node pool upgrades,
3721
+ # the relative path of the node pool.
3722
+ class UpgradeEvent
3723
+ include ::Google::Protobuf::MessageExts
3724
+ extend ::Google::Protobuf::MessageExts::ClassMethods
3725
+ end
3726
+
3727
+ # The datapath provider selects the implementation of the Kubernetes networking
3728
+ # // model for service resolution and network policy enforcement.
3729
+ module DatapathProvider
3730
+ # Default value.
3731
+ DATAPATH_PROVIDER_UNSPECIFIED = 0
3732
+
3733
+ # Use the IPTables implementation based on kube-proxy.
3734
+ LEGACY_DATAPATH = 1
3735
+
3736
+ # Use the eBPF based GKE Dataplane V2 with additional features. See the [GKE
3737
+ # Dataplane V2
3738
+ # documentation](https://cloud.google.com/kubernetes-enginw/docs/how-to/dataplane-v2)
3739
+ # for more.
3740
+ ADVANCED_DATAPATH = 2
3741
+ end
3742
+
3743
+ # UpgradeResourceType is the resource type that is upgrading. It is used
3744
+ # in upgrade notifications.
3745
+ module UpgradeResourceType
3746
+ # Default value. This shouldn't be used.
3747
+ UPGRADE_RESOURCE_TYPE_UNSPECIFIED = 0
3748
+
3749
+ # Master / control plane
3750
+ MASTER = 1
3751
+
3752
+ # Node pool
3753
+ NODE_POOL = 2
3754
+ end
2851
3755
  end
2852
3756
  end
2853
3757
  end