google-cloud-container 0.3.0 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,186 @@
1
+ {
2
+ "interfaces": {
3
+ "google.container.v1beta1.ClusterManager": {
4
+ "retry_codes": {
5
+ "idempotent": [
6
+ "DEADLINE_EXCEEDED",
7
+ "UNAVAILABLE"
8
+ ],
9
+ "non_idempotent": []
10
+ },
11
+ "retry_params": {
12
+ "default": {
13
+ "initial_retry_delay_millis": 100,
14
+ "retry_delay_multiplier": 1.3,
15
+ "max_retry_delay_millis": 60000,
16
+ "initial_rpc_timeout_millis": 20000,
17
+ "rpc_timeout_multiplier": 1.0,
18
+ "max_rpc_timeout_millis": 20000,
19
+ "total_timeout_millis": 600000
20
+ }
21
+ },
22
+ "methods": {
23
+ "ListClusters": {
24
+ "timeout_millis": 20000,
25
+ "retry_codes_name": "idempotent",
26
+ "retry_params_name": "default"
27
+ },
28
+ "GetCluster": {
29
+ "timeout_millis": 20000,
30
+ "retry_codes_name": "idempotent",
31
+ "retry_params_name": "default"
32
+ },
33
+ "CreateCluster": {
34
+ "timeout_millis": 20000,
35
+ "retry_codes_name": "non_idempotent",
36
+ "retry_params_name": "default"
37
+ },
38
+ "UpdateCluster": {
39
+ "timeout_millis": 20000,
40
+ "retry_codes_name": "non_idempotent",
41
+ "retry_params_name": "default"
42
+ },
43
+ "UpdateNodePool": {
44
+ "timeout_millis": 20000,
45
+ "retry_codes_name": "non_idempotent",
46
+ "retry_params_name": "default"
47
+ },
48
+ "SetNodePoolAutoscaling": {
49
+ "timeout_millis": 20000,
50
+ "retry_codes_name": "non_idempotent",
51
+ "retry_params_name": "default"
52
+ },
53
+ "SetLoggingService": {
54
+ "timeout_millis": 20000,
55
+ "retry_codes_name": "non_idempotent",
56
+ "retry_params_name": "default"
57
+ },
58
+ "SetMonitoringService": {
59
+ "timeout_millis": 20000,
60
+ "retry_codes_name": "non_idempotent",
61
+ "retry_params_name": "default"
62
+ },
63
+ "SetAddonsConfig": {
64
+ "timeout_millis": 20000,
65
+ "retry_codes_name": "non_idempotent",
66
+ "retry_params_name": "default"
67
+ },
68
+ "SetLocations": {
69
+ "timeout_millis": 20000,
70
+ "retry_codes_name": "non_idempotent",
71
+ "retry_params_name": "default"
72
+ },
73
+ "UpdateMaster": {
74
+ "timeout_millis": 20000,
75
+ "retry_codes_name": "non_idempotent",
76
+ "retry_params_name": "default"
77
+ },
78
+ "SetMasterAuth": {
79
+ "timeout_millis": 20000,
80
+ "retry_codes_name": "non_idempotent",
81
+ "retry_params_name": "default"
82
+ },
83
+ "DeleteCluster": {
84
+ "timeout_millis": 20000,
85
+ "retry_codes_name": "idempotent",
86
+ "retry_params_name": "default"
87
+ },
88
+ "ListOperations": {
89
+ "timeout_millis": 20000,
90
+ "retry_codes_name": "idempotent",
91
+ "retry_params_name": "default"
92
+ },
93
+ "GetOperation": {
94
+ "timeout_millis": 20000,
95
+ "retry_codes_name": "idempotent",
96
+ "retry_params_name": "default"
97
+ },
98
+ "CancelOperation": {
99
+ "timeout_millis": 20000,
100
+ "retry_codes_name": "non_idempotent",
101
+ "retry_params_name": "default"
102
+ },
103
+ "GetServerConfig": {
104
+ "timeout_millis": 20000,
105
+ "retry_codes_name": "idempotent",
106
+ "retry_params_name": "default"
107
+ },
108
+ "ListNodePools": {
109
+ "timeout_millis": 20000,
110
+ "retry_codes_name": "idempotent",
111
+ "retry_params_name": "default"
112
+ },
113
+ "GetNodePool": {
114
+ "timeout_millis": 20000,
115
+ "retry_codes_name": "idempotent",
116
+ "retry_params_name": "default"
117
+ },
118
+ "CreateNodePool": {
119
+ "timeout_millis": 20000,
120
+ "retry_codes_name": "non_idempotent",
121
+ "retry_params_name": "default"
122
+ },
123
+ "DeleteNodePool": {
124
+ "timeout_millis": 20000,
125
+ "retry_codes_name": "idempotent",
126
+ "retry_params_name": "default"
127
+ },
128
+ "RollbackNodePoolUpgrade": {
129
+ "timeout_millis": 20000,
130
+ "retry_codes_name": "non_idempotent",
131
+ "retry_params_name": "default"
132
+ },
133
+ "SetNodePoolManagement": {
134
+ "timeout_millis": 20000,
135
+ "retry_codes_name": "non_idempotent",
136
+ "retry_params_name": "default"
137
+ },
138
+ "SetLabels": {
139
+ "timeout_millis": 20000,
140
+ "retry_codes_name": "non_idempotent",
141
+ "retry_params_name": "default"
142
+ },
143
+ "SetLegacyAbac": {
144
+ "timeout_millis": 20000,
145
+ "retry_codes_name": "non_idempotent",
146
+ "retry_params_name": "default"
147
+ },
148
+ "StartIPRotation": {
149
+ "timeout_millis": 20000,
150
+ "retry_codes_name": "non_idempotent",
151
+ "retry_params_name": "default"
152
+ },
153
+ "CompleteIPRotation": {
154
+ "timeout_millis": 20000,
155
+ "retry_codes_name": "non_idempotent",
156
+ "retry_params_name": "default"
157
+ },
158
+ "SetNodePoolSize": {
159
+ "timeout_millis": 20000,
160
+ "retry_codes_name": "non_idempotent",
161
+ "retry_params_name": "default"
162
+ },
163
+ "SetNetworkPolicy": {
164
+ "timeout_millis": 20000,
165
+ "retry_codes_name": "non_idempotent",
166
+ "retry_params_name": "default"
167
+ },
168
+ "SetMaintenancePolicy": {
169
+ "timeout_millis": 20000,
170
+ "retry_codes_name": "non_idempotent",
171
+ "retry_params_name": "default"
172
+ },
173
+ "ListUsableSubnetworks": {
174
+ "timeout_millis": 20000,
175
+ "retry_codes_name": "idempotent",
176
+ "retry_params_name": "default"
177
+ },
178
+ "ListLocations": {
179
+ "timeout_millis": 20000,
180
+ "retry_codes_name": "idempotent",
181
+ "retry_params_name": "default"
182
+ }
183
+ }
184
+ }
185
+ }
186
+ }
@@ -0,0 +1,41 @@
1
+ # Copyright 2019 Google LLC
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # https://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
15
+
16
+ require "googleauth"
17
+
18
+ module Google
19
+ module Cloud
20
+ module Container
21
+ module V1beta1
22
+ class Credentials < Google::Auth::Credentials
23
+ SCOPE = [
24
+ "https://www.googleapis.com/auth/cloud-platform"
25
+ ].freeze
26
+ PATH_ENV_VARS = %w(CONTAINER_CREDENTIALS
27
+ CONTAINER_KEYFILE
28
+ GOOGLE_CLOUD_CREDENTIALS
29
+ GOOGLE_CLOUD_KEYFILE
30
+ GCLOUD_KEYFILE)
31
+ JSON_ENV_VARS = %w(CONTAINER_CREDENTIALS_JSON
32
+ CONTAINER_KEYFILE_JSON
33
+ GOOGLE_CLOUD_CREDENTIALS_JSON
34
+ GOOGLE_CLOUD_KEYFILE_JSON
35
+ GCLOUD_KEYFILE_JSON)
36
+ DEFAULT_PATHS = ["~/.config/gcloud/application_default_credentials.json"]
37
+ end
38
+ end
39
+ end
40
+ end
41
+ end
@@ -0,0 +1,2338 @@
1
+ # Copyright 2019 Google LLC
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # https://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
15
+
16
+ module Google
17
+ module Container
18
+ module V1beta1
19
+ # Parameters that describe the nodes in a cluster.
20
+ # @!attribute [rw] machine_type
21
+ # @return [String]
22
+ # The name of a Google Compute Engine [machine
23
+ # type](/compute/docs/machine-types) (e.g.
24
+ # `n1-standard-1`).
25
+ #
26
+ # If unspecified, the default machine type is
27
+ # `n1-standard-1`.
28
+ # @!attribute [rw] disk_size_gb
29
+ # @return [Integer]
30
+ # Size of the disk attached to each node, specified in GB.
31
+ # The smallest allowed disk size is 10GB.
32
+ #
33
+ # If unspecified, the default disk size is 100GB.
34
+ # @!attribute [rw] oauth_scopes
35
+ # @return [Array<String>]
36
+ # The set of Google API scopes to be made available on all of the
37
+ # node VMs under the "default" service account.
38
+ #
39
+ # The following scopes are recommended, but not required, and by default are
40
+ # not included:
41
+ #
42
+ # * `https://www.googleapis.com/auth/compute` is required for mounting
43
+ # persistent storage on your nodes.
44
+ # * `https://www.googleapis.com/auth/devstorage.read_only` is required for
45
+ # communicating with **gcr.io**
46
+ # (the [Google Container Registry](https://cloud.google.com/container-registry/)).
47
+ #
48
+ # If unspecified, no scopes are added, unless Cloud Logging or Cloud
49
+ # Monitoring are enabled, in which case their required scopes will be added.
50
+ # @!attribute [rw] service_account
51
+ # @return [String]
52
+ # The Google Cloud Platform Service Account to be used by the node VMs. If
53
+ # no Service Account is specified, the "default" service account is used.
54
+ # @!attribute [rw] metadata
55
+ # @return [Hash{String => String}]
56
+ # The metadata key/value pairs assigned to instances in the cluster.
57
+ #
58
+ # Keys must conform to the regexp [a-zA-Z0-9-_]+ and be less than 128 bytes
59
+ # in length. These are reflected as part of a URL in the metadata server.
60
+ # Additionally, to avoid ambiguity, keys must not conflict with any other
61
+ # metadata keys for the project or be one of the reserved keys:
62
+ # "cluster-location"
63
+ # "cluster-name"
64
+ # "cluster-uid"
65
+ # "configure-sh"
66
+ # "enable-oslogin"
67
+ # "gci-ensure-gke-docker"
68
+ # "gci-update-strategy"
69
+ # "instance-template"
70
+ # "kube-env"
71
+ # "startup-script"
72
+ # "user-data"
73
+ #
74
+ # Values are free-form strings, and only have meaning as interpreted by
75
+ # the image running in the instance. The only restriction placed on them is
76
+ # that each value's size must be less than or equal to 32 KB.
77
+ #
78
+ # The total size of all keys and values must be less than 512 KB.
79
+ # @!attribute [rw] image_type
80
+ # @return [String]
81
+ # The image type to use for this node. Note that for a given image type,
82
+ # the latest version of it will be used.
83
+ # @!attribute [rw] labels
84
+ # @return [Hash{String => String}]
85
+ # The map of Kubernetes labels (key/value pairs) to be applied to each node.
86
+ # These will added in addition to any default label(s) that
87
+ # Kubernetes may apply to the node.
88
+ # In case of conflict in label keys, the applied set may differ depending on
89
+ # the Kubernetes version -- it's best to assume the behavior is undefined
90
+ # and conflicts should be avoided.
91
+ # For more information, including usage and the valid values, see:
92
+ # https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
93
+ # @!attribute [rw] local_ssd_count
94
+ # @return [Integer]
95
+ # The number of local SSD disks to be attached to the node.
96
+ #
97
+ # The limit for this value is dependant upon the maximum number of
98
+ # disks available on a machine per zone. See:
99
+ # https://cloud.google.com/compute/docs/disks/local-ssd#local_ssd_limits
100
+ # for more information.
101
+ # @!attribute [rw] tags
102
+ # @return [Array<String>]
103
+ # The list of instance tags applied to all nodes. Tags are used to identify
104
+ # valid sources or targets for network firewalls and are specified by
105
+ # the client during cluster or node pool creation. Each tag within the list
106
+ # must comply with RFC1035.
107
+ # @!attribute [rw] preemptible
108
+ # @return [true, false]
109
+ # Whether the nodes are created as preemptible VM instances. See:
110
+ # https://cloud.google.com/compute/docs/instances/preemptible for more
111
+ # inforamtion about preemptible VM instances.
112
+ # @!attribute [rw] accelerators
113
+ # @return [Array<Google::Container::V1beta1::AcceleratorConfig>]
114
+ # A list of hardware accelerators to be attached to each node.
115
+ # See https://cloud.google.com/compute/docs/gpus for more information about
116
+ # support for GPUs.
117
+ # @!attribute [rw] disk_type
118
+ # @return [String]
119
+ # Type of the disk attached to each node (e.g. 'pd-standard' or 'pd-ssd')
120
+ #
121
+ # If unspecified, the default disk type is 'pd-standard'
122
+ # @!attribute [rw] min_cpu_platform
123
+ # @return [String]
124
+ # Minimum CPU platform to be used by this instance. The instance may be
125
+ # scheduled on the specified or newer CPU platform. Applicable values are the
126
+ # friendly names of CPU platforms, such as
127
+ # <code>minCpuPlatform: &quot;Intel Haswell&quot;</code> or
128
+ # <code>minCpuPlatform: &quot;Intel Sandy Bridge&quot;</code>. For more
129
+ # information, read [how to specify min CPU
130
+ # platform](https://cloud.google.com/compute/docs/instances/specify-min-cpu-platform)
131
+ # @!attribute [rw] workload_metadata_config
132
+ # @return [Google::Container::V1beta1::WorkloadMetadataConfig]
133
+ # The workload metadata configuration for this node.
134
+ # @!attribute [rw] taints
135
+ # @return [Array<Google::Container::V1beta1::NodeTaint>]
136
+ # List of kubernetes taints to be applied to each node.
137
+ #
138
+ # For more information, including usage and the valid values, see:
139
+ # https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
140
+ class NodeConfig; end
141
+
142
+ # Kubernetes taint is comprised of three fields: key, value, and effect. Effect
143
+ # can only be one of three types: NoSchedule, PreferNoSchedule or NoExecute.
144
+ #
145
+ # For more information, including usage and the valid values, see:
146
+ # https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
147
+ # @!attribute [rw] key
148
+ # @return [String]
149
+ # Key for taint.
150
+ # @!attribute [rw] value
151
+ # @return [String]
152
+ # Value for taint.
153
+ # @!attribute [rw] effect
154
+ # @return [Google::Container::V1beta1::NodeTaint::Effect]
155
+ # Effect for taint.
156
+ class NodeTaint
157
+ # Possible values for Effect in taint.
158
+ module Effect
159
+ # Not set
160
+ EFFECT_UNSPECIFIED = 0
161
+
162
+ # NoSchedule
163
+ NO_SCHEDULE = 1
164
+
165
+ # PreferNoSchedule
166
+ PREFER_NO_SCHEDULE = 2
167
+
168
+ # NoExecute
169
+ NO_EXECUTE = 3
170
+ end
171
+ end
172
+
173
+ # The authentication information for accessing the master endpoint.
174
+ # Authentication can be done using HTTP basic auth or using client
175
+ # certificates.
176
+ # @!attribute [rw] username
177
+ # @return [String]
178
+ # The username to use for HTTP basic authentication to the master endpoint.
179
+ # For clusters v1.6.0 and later, basic authentication can be disabled by
180
+ # leaving username unspecified (or setting it to the empty string).
181
+ # @!attribute [rw] password
182
+ # @return [String]
183
+ # The password to use for HTTP basic authentication to the master endpoint.
184
+ # Because the master endpoint is open to the Internet, you should create a
185
+ # strong password. If a password is provided for cluster creation, username
186
+ # must be non-empty.
187
+ # @!attribute [rw] client_certificate_config
188
+ # @return [Google::Container::V1beta1::ClientCertificateConfig]
189
+ # Configuration for client certificate authentication on the cluster. For
190
+ # clusters before v1.12, if no configuration is specified, a client
191
+ # certificate is issued.
192
+ # @!attribute [rw] cluster_ca_certificate
193
+ # @return [String]
194
+ # [Output only] Base64-encoded public certificate that is the root of
195
+ # trust for the cluster.
196
+ # @!attribute [rw] client_certificate
197
+ # @return [String]
198
+ # [Output only] Base64-encoded public certificate used by clients to
199
+ # authenticate to the cluster endpoint.
200
+ # @!attribute [rw] client_key
201
+ # @return [String]
202
+ # [Output only] Base64-encoded private key used by clients to authenticate
203
+ # to the cluster endpoint.
204
+ class MasterAuth; end
205
+
206
+ # Configuration for client certificates on the cluster.
207
+ # @!attribute [rw] issue_client_certificate
208
+ # @return [true, false]
209
+ # Issue a client certificate.
210
+ class ClientCertificateConfig; end
211
+
212
+ # Configuration for the addons that can be automatically spun up in the
213
+ # cluster, enabling additional functionality.
214
+ # @!attribute [rw] http_load_balancing
215
+ # @return [Google::Container::V1beta1::HttpLoadBalancing]
216
+ # Configuration for the HTTP (L7) load balancing controller addon, which
217
+ # makes it easy to set up HTTP load balancers for services in a cluster.
218
+ # @!attribute [rw] horizontal_pod_autoscaling
219
+ # @return [Google::Container::V1beta1::HorizontalPodAutoscaling]
220
+ # Configuration for the horizontal pod autoscaling feature, which
221
+ # increases or decreases the number of replica pods a replication controller
222
+ # has based on the resource usage of the existing pods.
223
+ # @!attribute [rw] kubernetes_dashboard
224
+ # @return [Google::Container::V1beta1::KubernetesDashboard]
225
+ # Configuration for the Kubernetes Dashboard.
226
+ # @!attribute [rw] network_policy_config
227
+ # @return [Google::Container::V1beta1::NetworkPolicyConfig]
228
+ # Configuration for NetworkPolicy. This only tracks whether the addon
229
+ # is enabled or not on the Master, it does not track whether network policy
230
+ # is enabled for the nodes.
231
+ # @!attribute [rw] istio_config
232
+ # @return [Google::Container::V1beta1::IstioConfig]
233
+ # Configuration for Istio, an open platform to connect, manage, and secure
234
+ # microservices.
235
+ # @!attribute [rw] cloud_run_config
236
+ # @return [Google::Container::V1beta1::CloudRunConfig]
237
+ # Configuration for the Cloud Run addon. The `IstioConfig` addon must be
238
+ # enabled in order to enable Cloud Run addon. This option can only be enabled
239
+ # at cluster creation time.
240
+ class AddonsConfig; end
241
+
242
+ # Configuration options for the HTTP (L7) load balancing controller addon,
243
+ # which makes it easy to set up HTTP load balancers for services in a cluster.
244
+ # @!attribute [rw] disabled
245
+ # @return [true, false]
246
+ # Whether the HTTP Load Balancing controller is enabled in the cluster.
247
+ # When enabled, it runs a small pod in the cluster that manages the load
248
+ # balancers.
249
+ class HttpLoadBalancing; end
250
+
251
+ # Configuration options for the horizontal pod autoscaling feature, which
252
+ # increases or decreases the number of replica pods a replication controller
253
+ # has based on the resource usage of the existing pods.
254
+ # @!attribute [rw] disabled
255
+ # @return [true, false]
256
+ # Whether the Horizontal Pod Autoscaling feature is enabled in the cluster.
257
+ # When enabled, it ensures that a Heapster pod is running in the cluster,
258
+ # which is also used by the Cloud Monitoring service.
259
+ class HorizontalPodAutoscaling; end
260
+
261
+ # Configuration for the Kubernetes Dashboard.
262
+ # @!attribute [rw] disabled
263
+ # @return [true, false]
264
+ # Whether the Kubernetes Dashboard is enabled for this cluster.
265
+ class KubernetesDashboard; end
266
+
267
+ # Configuration for NetworkPolicy. This only tracks whether the addon
268
+ # is enabled or not on the Master, it does not track whether network policy
269
+ # is enabled for the nodes.
270
+ # @!attribute [rw] disabled
271
+ # @return [true, false]
272
+ # Whether NetworkPolicy is enabled for this cluster.
273
+ class NetworkPolicyConfig; end
274
+
275
+ # Configuration options for private clusters.
276
+ # @!attribute [rw] enable_private_nodes
277
+ # @return [true, false]
278
+ # Whether nodes have internal IP addresses only. If enabled, all nodes are
279
+ # given only RFC 1918 private addresses and communicate with the master via
280
+ # private networking.
281
+ # @!attribute [rw] enable_private_endpoint
282
+ # @return [true, false]
283
+ # Whether the master's internal IP address is used as the cluster endpoint.
284
+ # @!attribute [rw] master_ipv4_cidr_block
285
+ # @return [String]
286
+ # The IP range in CIDR notation to use for the hosted master network. This
287
+ # range will be used for assigning internal IP addresses to the master or
288
+ # set of masters, as well as the ILB VIP. This range must not overlap with
289
+ # any other ranges in use within the cluster's network.
290
+ # @!attribute [rw] private_endpoint
291
+ # @return [String]
292
+ # Output only. The internal IP address of this cluster's master endpoint.
293
+ # @!attribute [rw] public_endpoint
294
+ # @return [String]
295
+ # Output only. The external IP address of this cluster's master endpoint.
296
+ class PrivateClusterConfig; end
297
+
298
+ # Configuration options for Istio addon.
299
+ # @!attribute [rw] disabled
300
+ # @return [true, false]
301
+ # Whether Istio is enabled for this cluster.
302
+ # @!attribute [rw] auth
303
+ # @return [Google::Container::V1beta1::IstioConfig::IstioAuthMode]
304
+ # The specified Istio auth mode, either none, or mutual TLS.
305
+ class IstioConfig
306
+ # Istio auth mode, https://istio.io/docs/concepts/security/mutual-tls.html
307
+ module IstioAuthMode
308
+ # auth not enabled
309
+ AUTH_NONE = 0
310
+
311
+ # auth mutual TLS enabled
312
+ AUTH_MUTUAL_TLS = 1
313
+ end
314
+ end
315
+
316
+ # Configuration options for the Cloud Run feature.
317
+ # @!attribute [rw] disabled
318
+ # @return [true, false]
319
+ # Whether Cloud Run addon is enabled for this cluster.
320
+ class CloudRunConfig; end
321
+
322
+ # Configuration options for the master authorized networks feature. Enabled
323
+ # master authorized networks will disallow all external traffic to access
324
+ # Kubernetes master through HTTPS except traffic from the given CIDR blocks,
325
+ # Google Compute Engine Public IPs and Google Prod IPs.
326
+ # @!attribute [rw] enabled
327
+ # @return [true, false]
328
+ # Whether or not master authorized networks is enabled.
329
+ # @!attribute [rw] cidr_blocks
330
+ # @return [Array<Google::Container::V1beta1::MasterAuthorizedNetworksConfig::CidrBlock>]
331
+ # cidr_blocks define up to 10 external networks that could access
332
+ # Kubernetes master through HTTPS.
333
+ class MasterAuthorizedNetworksConfig
334
+ # CidrBlock contains an optional name and one CIDR block.
335
+ # @!attribute [rw] display_name
336
+ # @return [String]
337
+ # display_name is an optional field for users to identify CIDR blocks.
338
+ # @!attribute [rw] cidr_block
339
+ # @return [String]
340
+ # cidr_block must be specified in CIDR notation.
341
+ class CidrBlock; end
342
+ end
343
+
344
+ # Configuration for the legacy Attribute Based Access Control authorization
345
+ # mode.
346
+ # @!attribute [rw] enabled
347
+ # @return [true, false]
348
+ # Whether the ABAC authorizer is enabled for this cluster. When enabled,
349
+ # identities in the system, including service accounts, nodes, and
350
+ # controllers, will have statically granted permissions beyond those
351
+ # provided by the RBAC configuration or IAM.
352
+ class LegacyAbac; end
353
+
354
+ # Configuration options for the NetworkPolicy feature.
355
+ # https://kubernetes.io/docs/concepts/services-networking/networkpolicies/
356
+ # @!attribute [rw] provider
357
+ # @return [Google::Container::V1beta1::NetworkPolicy::Provider]
358
+ # The selected network policy provider.
359
+ # @!attribute [rw] enabled
360
+ # @return [true, false]
361
+ # Whether network policy is enabled on the cluster.
362
+ class NetworkPolicy
363
+ # Allowed Network Policy providers.
364
+ module Provider
365
+ # Not set
366
+ PROVIDER_UNSPECIFIED = 0
367
+
368
+ # Tigera (Calico Felix).
369
+ CALICO = 1
370
+ end
371
+ end
372
+
373
+ # Configuration for controlling how IPs are allocated in the cluster.
374
+ # @!attribute [rw] use_ip_aliases
375
+ # @return [true, false]
376
+ # Whether alias IPs will be used for pod IPs in the cluster.
377
+ # @!attribute [rw] create_subnetwork
378
+ # @return [true, false]
379
+ # Whether a new subnetwork will be created automatically for the cluster.
380
+ #
381
+ # This field is only applicable when `use_ip_aliases` is true.
382
+ # @!attribute [rw] subnetwork_name
383
+ # @return [String]
384
+ # A custom subnetwork name to be used if `create_subnetwork` is true. If
385
+ # this field is empty, then an automatic name will be chosen for the new
386
+ # subnetwork.
387
+ # @!attribute [rw] cluster_ipv4_cidr
388
+ # @return [String]
389
+ # This field is deprecated, use cluster_ipv4_cidr_block.
390
+ # @!attribute [rw] node_ipv4_cidr
391
+ # @return [String]
392
+ # This field is deprecated, use node_ipv4_cidr_block.
393
+ # @!attribute [rw] services_ipv4_cidr
394
+ # @return [String]
395
+ # This field is deprecated, use services_ipv4_cidr_block.
396
+ # @!attribute [rw] cluster_secondary_range_name
397
+ # @return [String]
398
+ # The name of the secondary range to be used for the cluster CIDR
399
+ # block. The secondary range will be used for pod IP
400
+ # addresses. This must be an existing secondary range associated
401
+ # with the cluster subnetwork.
402
+ #
403
+ # This field is only applicable with use_ip_aliases and
404
+ # create_subnetwork is false.
405
+ # @!attribute [rw] services_secondary_range_name
406
+ # @return [String]
407
+ # The name of the secondary range to be used as for the services
408
+ # CIDR block. The secondary range will be used for service
409
+ # ClusterIPs. This must be an existing secondary range associated
410
+ # with the cluster subnetwork.
411
+ #
412
+ # This field is only applicable with use_ip_aliases and
413
+ # create_subnetwork is false.
414
+ # @!attribute [rw] cluster_ipv4_cidr_block
415
+ # @return [String]
416
+ # The IP address range for the cluster pod IPs. If this field is set, then
417
+ # `cluster.cluster_ipv4_cidr` must be left blank.
418
+ #
419
+ # This field is only applicable when `use_ip_aliases` is true.
420
+ #
421
+ # Set to blank to have a range chosen with the default size.
422
+ #
423
+ # Set to /netmask (e.g. `/14`) to have a range chosen with a specific
424
+ # netmask.
425
+ #
426
+ # Set to a
427
+ # [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)
428
+ # notation (e.g. `10.96.0.0/14`) from the RFC-1918 private networks (e.g.
429
+ # `10.0.0.0/8`, `172.16.0.0/12`, `192.168.0.0/16`) to pick a specific range
430
+ # to use.
431
+ # @!attribute [rw] node_ipv4_cidr_block
432
+ # @return [String]
433
+ # The IP address range of the instance IPs in this cluster.
434
+ #
435
+ # This is applicable only if `create_subnetwork` is true.
436
+ #
437
+ # Set to blank to have a range chosen with the default size.
438
+ #
439
+ # Set to /netmask (e.g. `/14`) to have a range chosen with a specific
440
+ # netmask.
441
+ #
442
+ # Set to a
443
+ # [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)
444
+ # notation (e.g. `10.96.0.0/14`) from the RFC-1918 private networks (e.g.
445
+ # `10.0.0.0/8`, `172.16.0.0/12`, `192.168.0.0/16`) to pick a specific range
446
+ # to use.
447
+ # @!attribute [rw] services_ipv4_cidr_block
448
+ # @return [String]
449
+ # The IP address range of the services IPs in this cluster. If blank, a range
450
+ # will be automatically chosen with the default size.
451
+ #
452
+ # This field is only applicable when `use_ip_aliases` is true.
453
+ #
454
+ # Set to blank to have a range chosen with the default size.
455
+ #
456
+ # Set to /netmask (e.g. `/14`) to have a range chosen with a specific
457
+ # netmask.
458
+ #
459
+ # Set to a
460
+ # [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)
461
+ # notation (e.g. `10.96.0.0/14`) from the RFC-1918 private networks (e.g.
462
+ # `10.0.0.0/8`, `172.16.0.0/12`, `192.168.0.0/16`) to pick a specific range
463
+ # to use.
464
+ # @!attribute [rw] allow_route_overlap
465
+ # @return [true, false]
466
+ # If true, allow allocation of cluster CIDR ranges that overlap with certain
467
+ # kinds of network routes. By default we do not allow cluster CIDR ranges to
468
+ # intersect with any user declared routes. With allow_route_overlap == true,
469
+ # we allow overlapping with CIDR ranges that are larger than the cluster CIDR
470
+ # range.
471
+ #
472
+ # If this field is set to true, then cluster and services CIDRs must be
473
+ # fully-specified (e.g. `10.96.0.0/14`, but not `/14`), which means:
474
+ # 1) When `use_ip_aliases` is true, `cluster_ipv4_cidr_block` and
475
+ # `services_ipv4_cidr_block` must be fully-specified.
476
+ # 2) When `use_ip_aliases` is false, `cluster.cluster_ipv4_cidr` muse be
477
+ # fully-specified.
478
+ # @!attribute [rw] tpu_ipv4_cidr_block
479
+ # @return [String]
480
+ # The IP address range of the Cloud TPUs in this cluster. If unspecified, a
481
+ # range will be automatically chosen with the default size.
482
+ #
483
+ # This field is only applicable when `use_ip_aliases` is true.
484
+ #
485
+ # If unspecified, the range will use the default size.
486
+ #
487
+ # Set to /netmask (e.g. `/14`) to have a range chosen with a specific
488
+ # netmask.
489
+ #
490
+ # Set to a
491
+ # [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)
492
+ # notation (e.g. `10.96.0.0/14`) from the RFC-1918 private networks (e.g.
493
+ # `10.0.0.0/8`, `172.16.0.0/12`, `192.168.0.0/16`) to pick a specific range
494
+ # to use.
495
+ class IPAllocationPolicy; end
496
+
497
+ # Configuration for Binary Authorization.
498
+ # @!attribute [rw] enabled
499
+ # @return [true, false]
500
+ # Enable Binary Authorization for this cluster. If enabled, all container
501
+ # images will be validated by Google Binauthz.
502
+ class BinaryAuthorization; end
503
+
504
+ # Configuration for the PodSecurityPolicy feature.
505
+ # @!attribute [rw] enabled
506
+ # @return [true, false]
507
+ # Enable the PodSecurityPolicy controller for this cluster. If enabled, pods
508
+ # must be valid under a PodSecurityPolicy to be created.
509
+ class PodSecurityPolicyConfig; end
510
+
511
+ # A Google Kubernetes Engine cluster.
512
+ # @!attribute [rw] name
513
+ # @return [String]
514
+ # The name of this cluster. The name must be unique within this project
515
+ # and zone, and can be up to 40 characters with the following restrictions:
516
+ #
517
+ # * Lowercase letters, numbers, and hyphens only.
518
+ # * Must start with a letter.
519
+ # * Must end with a number or a letter.
520
+ # @!attribute [rw] description
521
+ # @return [String]
522
+ # An optional description of this cluster.
523
+ # @!attribute [rw] initial_node_count
524
+ # @return [Integer]
525
+ # The number of nodes to create in this cluster. You must ensure that your
526
+ # Compute Engine <a href="/compute/docs/resource-quotas">resource quota</a>
527
+ # is sufficient for this number of instances. You must also have available
528
+ # firewall and routes quota.
529
+ # For requests, this field should only be used in lieu of a
530
+ # "node_pool" object, since this configuration (along with the
531
+ # "node_config") will be used to create a "NodePool" object with an
532
+ # auto-generated name. Do not use this and a node_pool at the same time.
533
+ # @!attribute [rw] node_config
534
+ # @return [Google::Container::V1beta1::NodeConfig]
535
+ # Parameters used in creating the cluster's nodes.
536
+ # See `nodeConfig` for the description of its properties.
537
+ # For requests, this field should only be used in lieu of a
538
+ # "node_pool" object, since this configuration (along with the
539
+ # "initial_node_count") will be used to create a "NodePool" object with an
540
+ # auto-generated name. Do not use this and a node_pool at the same time.
541
+ # For responses, this field will be populated with the node configuration of
542
+ # the first node pool.
543
+ #
544
+ # If unspecified, the defaults are used.
545
+ # @!attribute [rw] master_auth
546
+ # @return [Google::Container::V1beta1::MasterAuth]
547
+ # The authentication information for accessing the master endpoint.
548
+ # If unspecified, the defaults are used:
549
+ # For clusters before v1.12, if master_auth is unspecified, `username` will
550
+ # be set to "admin", a random password will be generated, and a client
551
+ # certificate will be issued.
552
+ # @!attribute [rw] logging_service
553
+ # @return [String]
554
+ # The logging service the cluster should use to write logs.
555
+ # Currently available options:
556
+ #
557
+ # * `logging.googleapis.com` - the Google Cloud Logging service.
558
+ # * `none` - no logs will be exported from the cluster.
559
+ # * if left as an empty string,`logging.googleapis.com` will be used.
560
+ # @!attribute [rw] monitoring_service
561
+ # @return [String]
562
+ # The monitoring service the cluster should use to write metrics.
563
+ # Currently available options:
564
+ #
565
+ # * `monitoring.googleapis.com` - the Google Cloud Monitoring service.
566
+ # * `none` - no metrics will be exported from the cluster.
567
+ # * if left as an empty string, `monitoring.googleapis.com` will be used.
568
+ # @!attribute [rw] network
569
+ # @return [String]
570
+ # The name of the Google Compute Engine
571
+ # [network](https://cloud.google.com/compute/docs/networks-and-firewalls#networks) to which the
572
+ # cluster is connected. If left unspecified, the `default` network
573
+ # will be used. On output this shows the network ID instead of
574
+ # the name.
575
+ # @!attribute [rw] cluster_ipv4_cidr
576
+ # @return [String]
577
+ # The IP address range of the container pods in this cluster, in
578
+ # [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)
579
+ # notation (e.g. `10.96.0.0/14`). Leave blank to have
580
+ # one automatically chosen or specify a `/14` block in `10.0.0.0/8`.
581
+ # @!attribute [rw] addons_config
582
+ # @return [Google::Container::V1beta1::AddonsConfig]
583
+ # Configurations for the various addons available to run in the cluster.
584
+ # @!attribute [rw] subnetwork
585
+ # @return [String]
586
+ # The name of the Google Compute Engine
587
+ # [subnetwork](https://cloud.google.com/compute/docs/subnetworks) to which the
588
+ # cluster is connected. On output this shows the subnetwork ID instead of
589
+ # the name.
590
+ # @!attribute [rw] node_pools
591
+ # @return [Array<Google::Container::V1beta1::NodePool>]
592
+ # The node pools associated with this cluster.
593
+ # This field should not be set if "node_config" or "initial_node_count" are
594
+ # specified.
595
+ # @!attribute [rw] locations
596
+ # @return [Array<String>]
597
+ # The list of Google Compute Engine
598
+ # [zones](https://cloud.google.com/compute/docs/zones#available) in which the cluster's nodes
599
+ # should be located.
600
+ # @!attribute [rw] enable_kubernetes_alpha
601
+ # @return [true, false]
602
+ # Kubernetes alpha features are enabled on this cluster. This includes alpha
603
+ # API groups (e.g. v1beta1) and features that may not be production ready in
604
+ # the kubernetes version of the master and nodes.
605
+ # The cluster has no SLA for uptime and master/node upgrades are disabled.
606
+ # Alpha enabled clusters are automatically deleted thirty days after
607
+ # creation.
608
+ # @!attribute [rw] resource_labels
609
+ # @return [Hash{String => String}]
610
+ # The resource labels for the cluster to use to annotate any related
611
+ # Google Compute Engine resources.
612
+ # @!attribute [rw] label_fingerprint
613
+ # @return [String]
614
+ # The fingerprint of the set of labels for this cluster.
615
+ # @!attribute [rw] legacy_abac
616
+ # @return [Google::Container::V1beta1::LegacyAbac]
617
+ # Configuration for the legacy ABAC authorization mode.
618
+ # @!attribute [rw] network_policy
619
+ # @return [Google::Container::V1beta1::NetworkPolicy]
620
+ # Configuration options for the NetworkPolicy feature.
621
+ # @!attribute [rw] ip_allocation_policy
622
+ # @return [Google::Container::V1beta1::IPAllocationPolicy]
623
+ # Configuration for cluster IP allocation.
624
+ # @!attribute [rw] master_authorized_networks_config
625
+ # @return [Google::Container::V1beta1::MasterAuthorizedNetworksConfig]
626
+ # The configuration options for master authorized networks feature.
627
+ # @!attribute [rw] maintenance_policy
628
+ # @return [Google::Container::V1beta1::MaintenancePolicy]
629
+ # Configure the maintenance policy for this cluster.
630
+ # @!attribute [rw] binary_authorization
631
+ # @return [Google::Container::V1beta1::BinaryAuthorization]
632
+ # Configuration for Binary Authorization.
633
+ # @!attribute [rw] pod_security_policy_config
634
+ # @return [Google::Container::V1beta1::PodSecurityPolicyConfig]
635
+ # Configuration for the PodSecurityPolicy feature.
636
+ # @!attribute [rw] autoscaling
637
+ # @return [Google::Container::V1beta1::ClusterAutoscaling]
638
+ # Cluster-level autoscaling configuration.
639
+ # @!attribute [rw] network_config
640
+ # @return [Google::Container::V1beta1::NetworkConfig]
641
+ # Configuration for cluster networking.
642
+ # @!attribute [rw] private_cluster
643
+ # @return [true, false]
644
+ # If this is a private cluster setup. Private clusters are clusters that, by
645
+ # default have no external IP addresses on the nodes and where nodes and the
646
+ # master communicate over private IP addresses.
647
+ # This field is deprecated, use private_cluster_config.enable_private_nodes
648
+ # instead.
649
+ # @!attribute [rw] master_ipv4_cidr_block
650
+ # @return [String]
651
+ # The IP prefix in CIDR notation to use for the hosted master network.
652
+ # This prefix will be used for assigning private IP addresses to the
653
+ # master or set of masters, as well as the ILB VIP.
654
+ # This field is deprecated, use
655
+ # private_cluster_config.master_ipv4_cidr_block instead.
656
+ # @!attribute [rw] default_max_pods_constraint
657
+ # @return [Google::Container::V1beta1::MaxPodsConstraint]
658
+ # The default constraint on the maximum number of pods that can be run
659
+ # simultaneously on a node in the node pool of this cluster. Only honored
660
+ # if cluster created with IP Alias support.
661
+ # @!attribute [rw] resource_usage_export_config
662
+ # @return [Google::Container::V1beta1::ResourceUsageExportConfig]
663
+ # Configuration for exporting resource usages. Resource usage export is
664
+ # disabled when this config unspecified.
665
+ # @!attribute [rw] private_cluster_config
666
+ # @return [Google::Container::V1beta1::PrivateClusterConfig]
667
+ # Configuration for private cluster.
668
+ # @!attribute [rw] vertical_pod_autoscaling
669
+ # @return [Google::Container::V1beta1::VerticalPodAutoscaling]
670
+ # Cluster-level Vertical Pod Autoscaling configuration.
671
+ # @!attribute [rw] self_link
672
+ # @return [String]
673
+ # [Output only] Server-defined URL for the resource.
674
+ # @!attribute [rw] zone
675
+ # @return [String]
676
+ # [Output only] The name of the Google Compute Engine
677
+ # [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster
678
+ # resides.
679
+ # This field is deprecated, use location instead.
680
+ # @!attribute [rw] endpoint
681
+ # @return [String]
682
+ # [Output only] The IP address of this cluster's master endpoint.
683
+ # The endpoint can be accessed from the internet at
684
+ # `https://username:password@endpoint/`.
685
+ #
686
+ # See the `masterAuth` property of this resource for username and
687
+ # password information.
688
+ # @!attribute [rw] initial_cluster_version
689
+ # @return [String]
690
+ # The initial Kubernetes version for this cluster. Valid versions are those
691
+ # found in validMasterVersions returned by getServerConfig. The version can
692
+ # be upgraded over time; such upgrades are reflected in
693
+ # currentMasterVersion and currentNodeVersion.
694
+ #
695
+ # Users may specify either explicit versions offered by
696
+ # Kubernetes Engine or version aliases, which have the following behavior:
697
+ #
698
+ # * "latest": picks the highest valid Kubernetes version
699
+ # * "1.X": picks the highest valid patch+gke.N patch in the 1.X version
700
+ # * "1.X.Y": picks the highest valid gke.N patch in the 1.X.Y version
701
+ # * "1.X.Y-gke.N": picks an explicit Kubernetes version
702
+ # * "","-": picks the default Kubernetes version
703
+ # @!attribute [rw] current_master_version
704
+ # @return [String]
705
+ # [Output only] The current software version of the master endpoint.
706
+ # @!attribute [rw] current_node_version
707
+ # @return [String]
708
+ # [Output only] Deprecated, use
709
+ # [NodePool.version](https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1beta1/projects.zones.clusters.nodePool)
710
+ # instead. The current version of the node software components.
711
+ # If they are currently at multiple versions because they're in the process
712
+ # of being upgraded, this reflects the minimum version of all nodes.
713
+ # @!attribute [rw] create_time
714
+ # @return [String]
715
+ # [Output only] The time the cluster was created, in
716
+ # [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
717
+ # @!attribute [rw] status
718
+ # @return [Google::Container::V1beta1::Cluster::Status]
719
+ # [Output only] The current status of this cluster.
720
+ # @!attribute [rw] status_message
721
+ # @return [String]
722
+ # [Output only] Additional information about the current status of this
723
+ # cluster, if available.
724
+ # @!attribute [rw] node_ipv4_cidr_size
725
+ # @return [Integer]
726
+ # [Output only] The size of the address space on each node for hosting
727
+ # containers. This is provisioned from within the `container_ipv4_cidr`
728
+ # range.
729
+ # @!attribute [rw] services_ipv4_cidr
730
+ # @return [String]
731
+ # [Output only] The IP address range of the Kubernetes services in
732
+ # this cluster, in
733
+ # [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)
734
+ # notation (e.g. `1.2.3.4/29`). Service addresses are
735
+ # typically put in the last `/16` from the container CIDR.
736
+ # @!attribute [rw] instance_group_urls
737
+ # @return [Array<String>]
738
+ # Deprecated. Use node_pools.instance_group_urls.
739
+ # @!attribute [rw] current_node_count
740
+ # @return [Integer]
741
+ # [Output only] The number of nodes currently in the cluster. Deprecated.
742
+ # Call Kubernetes API directly to retrieve node information.
743
+ # @!attribute [rw] expire_time
744
+ # @return [String]
745
+ # [Output only] The time the cluster will be automatically
746
+ # deleted in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
747
+ # @!attribute [rw] location
748
+ # @return [String]
749
+ # [Output only] The name of the Google Compute Engine
750
+ # [zone](https://cloud.google.com/compute/docs/regions-zones/regions-zones#available) or
751
+ # [region](https://cloud.google.com/compute/docs/regions-zones/regions-zones#available) in which
752
+ # the cluster resides.
753
+ # @!attribute [rw] enable_tpu
754
+ # @return [true, false]
755
+ # Enable the ability to use Cloud TPUs in this cluster.
756
+ # @!attribute [rw] tpu_ipv4_cidr_block
757
+ # @return [String]
758
+ # [Output only] The IP address range of the Cloud TPUs in this cluster, in
759
+ # [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)
760
+ # notation (e.g. `1.2.3.4/29`).
761
+ # @!attribute [rw] conditions
762
+ # @return [Array<Google::Container::V1beta1::StatusCondition>]
763
+ # Which conditions caused the current cluster state.
764
+ class Cluster
765
+ # The current status of the cluster.
766
+ module Status
767
+ # Not set.
768
+ STATUS_UNSPECIFIED = 0
769
+
770
+ # The PROVISIONING state indicates the cluster is being created.
771
+ PROVISIONING = 1
772
+
773
+ # The RUNNING state indicates the cluster has been created and is fully
774
+ # usable.
775
+ RUNNING = 2
776
+
777
+ # The RECONCILING state indicates that some work is actively being done on
778
+ # the cluster, such as upgrading the master or node software. Details can
779
+ # be found in the `statusMessage` field.
780
+ RECONCILING = 3
781
+
782
+ # The STOPPING state indicates the cluster is being deleted.
783
+ STOPPING = 4
784
+
785
+ # The ERROR state indicates the cluster may be unusable. Details
786
+ # can be found in the `statusMessage` field.
787
+ ERROR = 5
788
+
789
+ # The DEGRADED state indicates the cluster requires user action to restore
790
+ # full functionality. Details can be found in the `statusMessage` field.
791
+ DEGRADED = 6
792
+ end
793
+ end
794
+
795
+ # ClusterUpdate describes an update to the cluster. Exactly one update can
796
+ # be applied to a cluster with each request, so at most one field can be
797
+ # provided.
798
+ # @!attribute [rw] desired_node_version
799
+ # @return [String]
800
+ # The Kubernetes version to change the nodes to (typically an
801
+ # upgrade).
802
+ #
803
+ # Users may specify either explicit versions offered by
804
+ # Kubernetes Engine or version aliases, which have the following behavior:
805
+ #
806
+ # * "latest": picks the highest valid Kubernetes version
807
+ # * "1.X": picks the highest valid patch+gke.N patch in the 1.X version
808
+ # * "1.X.Y": picks the highest valid gke.N patch in the 1.X.Y version
809
+ # * "1.X.Y-gke.N": picks an explicit Kubernetes version
810
+ # * "-": picks the Kubernetes master version
811
+ # @!attribute [rw] desired_monitoring_service
812
+ # @return [String]
813
+ # The monitoring service the cluster should use to write metrics.
814
+ # Currently available options:
815
+ #
816
+ # * "monitoring.googleapis.com/kubernetes" - the Google Cloud Monitoring
817
+ # service with Kubernetes-native resource model in Stackdriver
818
+ # * "monitoring.googleapis.com" - the Google Cloud Monitoring service
819
+ # * "none" - no metrics will be exported from the cluster
820
+ # @!attribute [rw] desired_addons_config
821
+ # @return [Google::Container::V1beta1::AddonsConfig]
822
+ # Configurations for the various addons available to run in the cluster.
823
+ # @!attribute [rw] desired_node_pool_id
824
+ # @return [String]
825
+ # The node pool to be upgraded. This field is mandatory if
826
+ # "desired_node_version", "desired_image_family" or
827
+ # "desired_node_pool_autoscaling" is specified and there is more than one
828
+ # node pool on the cluster.
829
+ # @!attribute [rw] desired_image_type
830
+ # @return [String]
831
+ # The desired image type for the node pool.
832
+ # NOTE: Set the "desired_node_pool" field as well.
833
+ # @!attribute [rw] desired_node_pool_autoscaling
834
+ # @return [Google::Container::V1beta1::NodePoolAutoscaling]
835
+ # Autoscaler configuration for the node pool specified in
836
+ # desired_node_pool_id. If there is only one pool in the
837
+ # cluster and desired_node_pool_id is not provided then
838
+ # the change applies to that single node pool.
839
+ # @!attribute [rw] desired_locations
840
+ # @return [Array<String>]
841
+ # The desired list of Google Compute Engine
842
+ # [zones](https://cloud.google.com/compute/docs/zones#available) in which the cluster's nodes
843
+ # should be located. Changing the locations a cluster is in will result
844
+ # in nodes being either created or removed from the cluster, depending on
845
+ # whether locations are being added or removed.
846
+ #
847
+ # This list must always include the cluster's primary zone.
848
+ # @!attribute [rw] desired_master_authorized_networks_config
849
+ # @return [Google::Container::V1beta1::MasterAuthorizedNetworksConfig]
850
+ # The desired configuration options for master authorized networks feature.
851
+ # @!attribute [rw] desired_pod_security_policy_config
852
+ # @return [Google::Container::V1beta1::PodSecurityPolicyConfig]
853
+ # The desired configuration options for the PodSecurityPolicy feature.
854
+ # @!attribute [rw] desired_cluster_autoscaling
855
+ # @return [Google::Container::V1beta1::ClusterAutoscaling]
856
+ # Cluster-level autoscaling configuration.
857
+ # @!attribute [rw] desired_binary_authorization
858
+ # @return [Google::Container::V1beta1::BinaryAuthorization]
859
+ # The desired configuration options for the Binary Authorization feature.
860
+ # @!attribute [rw] desired_logging_service
861
+ # @return [String]
862
+ # The logging service the cluster should use to write metrics.
863
+ # Currently available options:
864
+ #
865
+ # * "logging.googleapis.com/kubernetes" - the Google Cloud Logging
866
+ # service with Kubernetes-native resource model in Stackdriver
867
+ # * "logging.googleapis.com" - the Google Cloud Logging service
868
+ # * "none" - no logs will be exported from the cluster
869
+ # @!attribute [rw] desired_resource_usage_export_config
870
+ # @return [Google::Container::V1beta1::ResourceUsageExportConfig]
871
+ # The desired configuration for exporting resource usage.
872
+ # @!attribute [rw] desired_vertical_pod_autoscaling
873
+ # @return [Google::Container::V1beta1::VerticalPodAutoscaling]
874
+ # Cluster-level Vertical Pod Autoscaling configuration.
875
+ # @!attribute [rw] desired_master_version
876
+ # @return [String]
877
+ # The Kubernetes version to change the master to. The only valid value is the
878
+ # latest supported version.
879
+ #
880
+ # Users may specify either explicit versions offered by
881
+ # Kubernetes Engine or version aliases, which have the following behavior:
882
+ #
883
+ # * "latest": picks the highest valid Kubernetes version
884
+ # * "1.X": picks the highest valid patch+gke.N patch in the 1.X version
885
+ # * "1.X.Y": picks the highest valid gke.N patch in the 1.X.Y version
886
+ # * "1.X.Y-gke.N": picks an explicit Kubernetes version
887
+ # * "-": picks the default Kubernetes version
888
+ class ClusterUpdate; end
889
+
890
+ # This operation resource represents operations that may have happened or are
891
+ # happening on the cluster. All fields are output only.
892
+ # @!attribute [rw] name
893
+ # @return [String]
894
+ # The server-assigned ID for the operation.
895
+ # @!attribute [rw] zone
896
+ # @return [String]
897
+ # The name of the Google Compute Engine
898
+ # [zone](https://cloud.google.com/compute/docs/zones#available) in which the operation
899
+ # is taking place.
900
+ # This field is deprecated, use location instead.
901
+ # @!attribute [rw] operation_type
902
+ # @return [Google::Container::V1beta1::Operation::Type]
903
+ # The operation type.
904
+ # @!attribute [rw] status
905
+ # @return [Google::Container::V1beta1::Operation::Status]
906
+ # The current status of the operation.
907
+ # @!attribute [rw] detail
908
+ # @return [String]
909
+ # Detailed operation progress, if available.
910
+ # @!attribute [rw] status_message
911
+ # @return [String]
912
+ # If an error has occurred, a textual description of the error.
913
+ # @!attribute [rw] self_link
914
+ # @return [String]
915
+ # Server-defined URL for the resource.
916
+ # @!attribute [rw] target_link
917
+ # @return [String]
918
+ # Server-defined URL for the target of the operation.
919
+ # @!attribute [rw] location
920
+ # @return [String]
921
+ # [Output only] The name of the Google Compute Engine
922
+ # [zone](https://cloud.google.com/compute/docs/regions-zones/regions-zones#available) or
923
+ # [region](https://cloud.google.com/compute/docs/regions-zones/regions-zones#available) in which
924
+ # the cluster resides.
925
+ # @!attribute [rw] start_time
926
+ # @return [String]
927
+ # [Output only] The time the operation started, in
928
+ # [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
929
+ # @!attribute [rw] end_time
930
+ # @return [String]
931
+ # [Output only] The time the operation completed, in
932
+ # [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
933
+ # @!attribute [rw] progress
934
+ # @return [Google::Container::V1beta1::OperationProgress]
935
+ # [Output only] Progress information for an operation.
936
+ # @!attribute [rw] cluster_conditions
937
+ # @return [Array<Google::Container::V1beta1::StatusCondition>]
938
+ # Which conditions caused the current cluster state.
939
+ # @!attribute [rw] nodepool_conditions
940
+ # @return [Array<Google::Container::V1beta1::StatusCondition>]
941
+ # Which conditions caused the current node pool state.
942
+ class Operation
943
+ # Current status of the operation.
944
+ module Status
945
+ # Not set.
946
+ STATUS_UNSPECIFIED = 0
947
+
948
+ # The operation has been created.
949
+ PENDING = 1
950
+
951
+ # The operation is currently running.
952
+ RUNNING = 2
953
+
954
+ # The operation is done, either cancelled or completed.
955
+ DONE = 3
956
+
957
+ # The operation is aborting.
958
+ ABORTING = 4
959
+ end
960
+
961
+ # Operation type.
962
+ module Type
963
+ # Not set.
964
+ TYPE_UNSPECIFIED = 0
965
+
966
+ # Cluster create.
967
+ CREATE_CLUSTER = 1
968
+
969
+ # Cluster delete.
970
+ DELETE_CLUSTER = 2
971
+
972
+ # A master upgrade.
973
+ UPGRADE_MASTER = 3
974
+
975
+ # A node upgrade.
976
+ UPGRADE_NODES = 4
977
+
978
+ # Cluster repair.
979
+ REPAIR_CLUSTER = 5
980
+
981
+ # Cluster update.
982
+ UPDATE_CLUSTER = 6
983
+
984
+ # Node pool create.
985
+ CREATE_NODE_POOL = 7
986
+
987
+ # Node pool delete.
988
+ DELETE_NODE_POOL = 8
989
+
990
+ # Set node pool management.
991
+ SET_NODE_POOL_MANAGEMENT = 9
992
+
993
+ # Automatic node pool repair.
994
+ AUTO_REPAIR_NODES = 10
995
+
996
+ # Automatic node upgrade.
997
+ AUTO_UPGRADE_NODES = 11
998
+
999
+ # Set labels.
1000
+ SET_LABELS = 12
1001
+
1002
+ # Set/generate master auth materials
1003
+ SET_MASTER_AUTH = 13
1004
+
1005
+ # Set node pool size.
1006
+ SET_NODE_POOL_SIZE = 14
1007
+
1008
+ # Updates network policy for a cluster.
1009
+ SET_NETWORK_POLICY = 15
1010
+
1011
+ # Set the maintenance policy.
1012
+ SET_MAINTENANCE_POLICY = 16
1013
+ end
1014
+ end
1015
+
1016
+ # Information about operation (or operation stage) progress.
1017
+ # @!attribute [rw] name
1018
+ # @return [String]
1019
+ # A non-parameterized string describing an operation stage.
1020
+ # Unset for single-stage operations.
1021
+ # @!attribute [rw] status
1022
+ # @return [Google::Container::V1beta1::Operation::Status]
1023
+ # Status of an operation stage.
1024
+ # Unset for single-stage operations.
1025
+ # @!attribute [rw] metrics
1026
+ # @return [Array<Google::Container::V1beta1::OperationProgress::Metric>]
1027
+ # Progress metric bundle, for example:
1028
+ # metrics: [{name: "nodes done", int_value: 15},
1029
+ # {name: "nodes total", int_value: 32}]
1030
+ # or
1031
+ # metrics: [{name: "progress", double_value: 0.56},
1032
+ # {name: "progress scale", double_value: 1.0}]
1033
+ # @!attribute [rw] stages
1034
+ # @return [Array<Google::Container::V1beta1::OperationProgress>]
1035
+ # Substages of an operation or a stage.
1036
+ class OperationProgress
1037
+ # Progress metric is (string, int|float|string) pair.
1038
+ # @!attribute [rw] name
1039
+ # @return [String]
1040
+ # Metric name, required.
1041
+ # e.g., "nodes total", "percent done"
1042
+ # @!attribute [rw] int_value
1043
+ # @return [Integer]
1044
+ # For metrics with integer value.
1045
+ # @!attribute [rw] double_value
1046
+ # @return [Float]
1047
+ # For metrics with floating point value.
1048
+ # @!attribute [rw] string_value
1049
+ # @return [String]
1050
+ # For metrics with custom values (ratios, visual progress, etc.).
1051
+ class Metric; end
1052
+ end
1053
+
1054
+ # CreateClusterRequest creates a cluster.
1055
+ # @!attribute [rw] project_id
1056
+ # @return [String]
1057
+ # Deprecated. The Google Developers Console [project ID or project
1058
+ # number](https://support.google.com/cloud/answer/6158840).
1059
+ # This field has been deprecated and replaced by the parent field.
1060
+ # @!attribute [rw] zone
1061
+ # @return [String]
1062
+ # Deprecated. The name of the Google Compute Engine
1063
+ # [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster
1064
+ # resides.
1065
+ # This field has been deprecated and replaced by the parent field.
1066
+ # @!attribute [rw] cluster
1067
+ # @return [Google::Container::V1beta1::Cluster]
1068
+ # A [cluster
1069
+ # resource](/container-engine/reference/rest/v1beta1/projects.zones.clusters)
1070
+ # @!attribute [rw] parent
1071
+ # @return [String]
1072
+ # The parent (project and location) where the cluster will be created.
1073
+ # Specified in the format 'projects/*/locations/*'.
1074
+ class CreateClusterRequest; end
1075
+
1076
+ # GetClusterRequest gets the settings of a cluster.
1077
+ # @!attribute [rw] project_id
1078
+ # @return [String]
1079
+ # Deprecated. The Google Developers Console [project ID or project
1080
+ # number](https://support.google.com/cloud/answer/6158840).
1081
+ # This field has been deprecated and replaced by the name field.
1082
+ # @!attribute [rw] zone
1083
+ # @return [String]
1084
+ # Deprecated. The name of the Google Compute Engine
1085
+ # [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster
1086
+ # resides.
1087
+ # This field has been deprecated and replaced by the name field.
1088
+ # @!attribute [rw] cluster_id
1089
+ # @return [String]
1090
+ # Deprecated. The name of the cluster to retrieve.
1091
+ # This field has been deprecated and replaced by the name field.
1092
+ # @!attribute [rw] name
1093
+ # @return [String]
1094
+ # The name (project, location, cluster) of the cluster to retrieve.
1095
+ # Specified in the format 'projects/*/locations/*/clusters/*'.
1096
+ class GetClusterRequest; end
1097
+
1098
+ # UpdateClusterRequest updates the settings of a cluster.
1099
+ # @!attribute [rw] project_id
1100
+ # @return [String]
1101
+ # Deprecated. The Google Developers Console [project ID or project
1102
+ # number](https://support.google.com/cloud/answer/6158840).
1103
+ # This field has been deprecated and replaced by the name field.
1104
+ # @!attribute [rw] zone
1105
+ # @return [String]
1106
+ # Deprecated. The name of the Google Compute Engine
1107
+ # [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster
1108
+ # resides.
1109
+ # This field has been deprecated and replaced by the name field.
1110
+ # @!attribute [rw] cluster_id
1111
+ # @return [String]
1112
+ # Deprecated. The name of the cluster to upgrade.
1113
+ # This field has been deprecated and replaced by the name field.
1114
+ # @!attribute [rw] update
1115
+ # @return [Google::Container::V1beta1::ClusterUpdate]
1116
+ # A description of the update.
1117
+ # @!attribute [rw] name
1118
+ # @return [String]
1119
+ # The name (project, location, cluster) of the cluster to update.
1120
+ # Specified in the format 'projects/*/locations/*/clusters/*'.
1121
+ class UpdateClusterRequest; end
1122
+
1123
+ # SetNodePoolVersionRequest updates the version of a node pool.
1124
+ # @!attribute [rw] project_id
1125
+ # @return [String]
1126
+ # Deprecated. The Google Developers Console [project ID or project
1127
+ # number](https://support.google.com/cloud/answer/6158840).
1128
+ # This field has been deprecated and replaced by the name field.
1129
+ # @!attribute [rw] zone
1130
+ # @return [String]
1131
+ # Deprecated. The name of the Google Compute Engine
1132
+ # [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster
1133
+ # resides.
1134
+ # This field has been deprecated and replaced by the name field.
1135
+ # @!attribute [rw] cluster_id
1136
+ # @return [String]
1137
+ # Deprecated. The name of the cluster to upgrade.
1138
+ # This field has been deprecated and replaced by the name field.
1139
+ # @!attribute [rw] node_pool_id
1140
+ # @return [String]
1141
+ # Deprecated. The name of the node pool to upgrade.
1142
+ # This field has been deprecated and replaced by the name field.
1143
+ # @!attribute [rw] node_version
1144
+ # @return [String]
1145
+ # The Kubernetes version to change the nodes to (typically an
1146
+ # upgrade).
1147
+ #
1148
+ # Users may specify either explicit versions offered by Kubernetes Engine or
1149
+ # version aliases, which have the following behavior:
1150
+ #
1151
+ # * "latest": picks the highest valid Kubernetes version
1152
+ # * "1.X": picks the highest valid patch+gke.N patch in the 1.X version
1153
+ # * "1.X.Y": picks the highest valid gke.N patch in the 1.X.Y version
1154
+ # * "1.X.Y-gke.N": picks an explicit Kubernetes version
1155
+ # * "-": picks the Kubernetes master version
1156
+ # @!attribute [rw] image_type
1157
+ # @return [String]
1158
+ # The desired image type for the node pool.
1159
+ # @!attribute [rw] name
1160
+ # @return [String]
1161
+ # The name (project, location, cluster, node pool) of the node pool to
1162
+ # update. Specified in the format
1163
+ # 'projects/*/locations/*/clusters/*/nodePools/*'.
1164
+ class UpdateNodePoolRequest; end
1165
+
1166
+ # SetNodePoolAutoscalingRequest sets the autoscaler settings of a node pool.
1167
+ # @!attribute [rw] project_id
1168
+ # @return [String]
1169
+ # Deprecated. The Google Developers Console [project ID or project
1170
+ # number](https://support.google.com/cloud/answer/6158840).
1171
+ # This field has been deprecated and replaced by the name field.
1172
+ # @!attribute [rw] zone
1173
+ # @return [String]
1174
+ # Deprecated. The name of the Google Compute Engine
1175
+ # [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster
1176
+ # resides.
1177
+ # This field has been deprecated and replaced by the name field.
1178
+ # @!attribute [rw] cluster_id
1179
+ # @return [String]
1180
+ # Deprecated. The name of the cluster to upgrade.
1181
+ # This field has been deprecated and replaced by the name field.
1182
+ # @!attribute [rw] node_pool_id
1183
+ # @return [String]
1184
+ # Deprecated. The name of the node pool to upgrade.
1185
+ # This field has been deprecated and replaced by the name field.
1186
+ # @!attribute [rw] autoscaling
1187
+ # @return [Google::Container::V1beta1::NodePoolAutoscaling]
1188
+ # Autoscaling configuration for the node pool.
1189
+ # @!attribute [rw] name
1190
+ # @return [String]
1191
+ # The name (project, location, cluster, node pool) of the node pool to set
1192
+ # autoscaler settings. Specified in the format
1193
+ # 'projects/*/locations/*/clusters/*/nodePools/*'.
1194
+ class SetNodePoolAutoscalingRequest; end
1195
+
1196
+ # SetLoggingServiceRequest sets the logging service of a cluster.
1197
+ # @!attribute [rw] project_id
1198
+ # @return [String]
1199
+ # Deprecated. The Google Developers Console [project ID or project
1200
+ # number](https://support.google.com/cloud/answer/6158840).
1201
+ # This field has been deprecated and replaced by the name field.
1202
+ # @!attribute [rw] zone
1203
+ # @return [String]
1204
+ # Deprecated. The name of the Google Compute Engine
1205
+ # [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster
1206
+ # resides.
1207
+ # This field has been deprecated and replaced by the name field.
1208
+ # @!attribute [rw] cluster_id
1209
+ # @return [String]
1210
+ # Deprecated. The name of the cluster to upgrade.
1211
+ # This field has been deprecated and replaced by the name field.
1212
+ # @!attribute [rw] logging_service
1213
+ # @return [String]
1214
+ # The logging service the cluster should use to write metrics.
1215
+ # Currently available options:
1216
+ #
1217
+ # * "logging.googleapis.com" - the Google Cloud Logging service
1218
+ # * "none" - no metrics will be exported from the cluster
1219
+ # @!attribute [rw] name
1220
+ # @return [String]
1221
+ # The name (project, location, cluster) of the cluster to set logging.
1222
+ # Specified in the format 'projects/*/locations/*/clusters/*'.
1223
+ class SetLoggingServiceRequest; end
1224
+
1225
+ # SetMonitoringServiceRequest sets the monitoring service of a cluster.
1226
+ # @!attribute [rw] project_id
1227
+ # @return [String]
1228
+ # Deprecated. The Google Developers Console [project ID or project
1229
+ # number](https://support.google.com/cloud/answer/6158840).
1230
+ # This field has been deprecated and replaced by the name field.
1231
+ # @!attribute [rw] zone
1232
+ # @return [String]
1233
+ # Deprecated. The name of the Google Compute Engine
1234
+ # [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster
1235
+ # resides.
1236
+ # This field has been deprecated and replaced by the name field.
1237
+ # @!attribute [rw] cluster_id
1238
+ # @return [String]
1239
+ # Deprecated. The name of the cluster to upgrade.
1240
+ # This field has been deprecated and replaced by the name field.
1241
+ # @!attribute [rw] monitoring_service
1242
+ # @return [String]
1243
+ # The monitoring service the cluster should use to write metrics.
1244
+ # Currently available options:
1245
+ #
1246
+ # * "monitoring.googleapis.com" - the Google Cloud Monitoring service
1247
+ # * "none" - no metrics will be exported from the cluster
1248
+ # @!attribute [rw] name
1249
+ # @return [String]
1250
+ # The name (project, location, cluster) of the cluster to set monitoring.
1251
+ # Specified in the format 'projects/*/locations/*/clusters/*'.
1252
+ class SetMonitoringServiceRequest; end
1253
+
1254
+ # SetAddonsRequest sets the addons associated with the cluster.
1255
+ # @!attribute [rw] project_id
1256
+ # @return [String]
1257
+ # Deprecated. The Google Developers Console [project ID or project
1258
+ # number](https://support.google.com/cloud/answer/6158840).
1259
+ # This field has been deprecated and replaced by the name field.
1260
+ # @!attribute [rw] zone
1261
+ # @return [String]
1262
+ # Deprecated. The name of the Google Compute Engine
1263
+ # [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster
1264
+ # resides.
1265
+ # This field has been deprecated and replaced by the name field.
1266
+ # @!attribute [rw] cluster_id
1267
+ # @return [String]
1268
+ # Deprecated. The name of the cluster to upgrade.
1269
+ # This field has been deprecated and replaced by the name field.
1270
+ # @!attribute [rw] addons_config
1271
+ # @return [Google::Container::V1beta1::AddonsConfig]
1272
+ # The desired configurations for the various addons available to run in the
1273
+ # cluster.
1274
+ # @!attribute [rw] name
1275
+ # @return [String]
1276
+ # The name (project, location, cluster) of the cluster to set addons.
1277
+ # Specified in the format 'projects/*/locations/*/clusters/*'.
1278
+ class SetAddonsConfigRequest; end
1279
+
1280
+ # SetLocationsRequest sets the locations of the cluster.
1281
+ # @!attribute [rw] project_id
1282
+ # @return [String]
1283
+ # Deprecated. The Google Developers Console [project ID or project
1284
+ # number](https://support.google.com/cloud/answer/6158840).
1285
+ # This field has been deprecated and replaced by the name field.
1286
+ # @!attribute [rw] zone
1287
+ # @return [String]
1288
+ # Deprecated. The name of the Google Compute Engine
1289
+ # [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster
1290
+ # resides.
1291
+ # This field has been deprecated and replaced by the name field.
1292
+ # @!attribute [rw] cluster_id
1293
+ # @return [String]
1294
+ # Deprecated. The name of the cluster to upgrade.
1295
+ # This field has been deprecated and replaced by the name field.
1296
+ # @!attribute [rw] locations
1297
+ # @return [Array<String>]
1298
+ # The desired list of Google Compute Engine
1299
+ # [zones](https://cloud.google.com/compute/docs/zones#available) in which the cluster's nodes
1300
+ # should be located. Changing the locations a cluster is in will result
1301
+ # in nodes being either created or removed from the cluster, depending on
1302
+ # whether locations are being added or removed.
1303
+ #
1304
+ # This list must always include the cluster's primary zone.
1305
+ # @!attribute [rw] name
1306
+ # @return [String]
1307
+ # The name (project, location, cluster) of the cluster to set locations.
1308
+ # Specified in the format 'projects/*/locations/*/clusters/*'.
1309
+ class SetLocationsRequest; end
1310
+
1311
+ # UpdateMasterRequest updates the master of the cluster.
1312
+ # @!attribute [rw] project_id
1313
+ # @return [String]
1314
+ # Deprecated. The Google Developers Console [project ID or project
1315
+ # number](https://support.google.com/cloud/answer/6158840).
1316
+ # This field has been deprecated and replaced by the name field.
1317
+ # @!attribute [rw] zone
1318
+ # @return [String]
1319
+ # Deprecated. The name of the Google Compute Engine
1320
+ # [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster
1321
+ # resides.
1322
+ # This field has been deprecated and replaced by the name field.
1323
+ # @!attribute [rw] cluster_id
1324
+ # @return [String]
1325
+ # Deprecated. The name of the cluster to upgrade.
1326
+ # This field has been deprecated and replaced by the name field.
1327
+ # @!attribute [rw] master_version
1328
+ # @return [String]
1329
+ # The Kubernetes version to change the master to.
1330
+ #
1331
+ # Users may specify either explicit versions offered by
1332
+ # Kubernetes Engine or version aliases, which have the following behavior:
1333
+ #
1334
+ # * "latest": picks the highest valid Kubernetes version
1335
+ # * "1.X": picks the highest valid patch+gke.N patch in the 1.X version
1336
+ # * "1.X.Y": picks the highest valid gke.N patch in the 1.X.Y version
1337
+ # * "1.X.Y-gke.N": picks an explicit Kubernetes version
1338
+ # * "-": picks the default Kubernetes version
1339
+ # @!attribute [rw] name
1340
+ # @return [String]
1341
+ # The name (project, location, cluster) of the cluster to update.
1342
+ # Specified in the format 'projects/*/locations/*/clusters/*'.
1343
+ class UpdateMasterRequest; end
1344
+
1345
+ # SetMasterAuthRequest updates the admin password of a cluster.
1346
+ # @!attribute [rw] project_id
1347
+ # @return [String]
1348
+ # Deprecated. The Google Developers Console [project ID or project
1349
+ # number](https://support.google.com/cloud/answer/6158840).
1350
+ # This field has been deprecated and replaced by the name field.
1351
+ # @!attribute [rw] zone
1352
+ # @return [String]
1353
+ # Deprecated. The name of the Google Compute Engine
1354
+ # [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster
1355
+ # resides.
1356
+ # This field has been deprecated and replaced by the name field.
1357
+ # @!attribute [rw] cluster_id
1358
+ # @return [String]
1359
+ # Deprecated. The name of the cluster to upgrade.
1360
+ # This field has been deprecated and replaced by the name field.
1361
+ # @!attribute [rw] action
1362
+ # @return [Google::Container::V1beta1::SetMasterAuthRequest::Action]
1363
+ # The exact form of action to be taken on the master auth.
1364
+ # @!attribute [rw] update
1365
+ # @return [Google::Container::V1beta1::MasterAuth]
1366
+ # A description of the update.
1367
+ # @!attribute [rw] name
1368
+ # @return [String]
1369
+ # The name (project, location, cluster) of the cluster to set auth.
1370
+ # Specified in the format 'projects/*/locations/*/clusters/*'.
1371
+ class SetMasterAuthRequest
1372
+ # Operation type: what type update to perform.
1373
+ module Action
1374
+ # Operation is unknown and will error out.
1375
+ UNKNOWN = 0
1376
+
1377
+ # Set the password to a user generated value.
1378
+ SET_PASSWORD = 1
1379
+
1380
+ # Generate a new password and set it to that.
1381
+ GENERATE_PASSWORD = 2
1382
+
1383
+ # Set the username. If an empty username is provided, basic authentication
1384
+ # is disabled for the cluster. If a non-empty username is provided, basic
1385
+ # authentication is enabled, with either a provided password or a generated
1386
+ # one.
1387
+ SET_USERNAME = 3
1388
+ end
1389
+ end
1390
+
1391
+ # DeleteClusterRequest deletes a cluster.
1392
+ # @!attribute [rw] project_id
1393
+ # @return [String]
1394
+ # Deprecated. The Google Developers Console [project ID or project
1395
+ # number](https://support.google.com/cloud/answer/6158840).
1396
+ # This field has been deprecated and replaced by the name field.
1397
+ # @!attribute [rw] zone
1398
+ # @return [String]
1399
+ # Deprecated. The name of the Google Compute Engine
1400
+ # [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster
1401
+ # resides.
1402
+ # This field has been deprecated and replaced by the name field.
1403
+ # @!attribute [rw] cluster_id
1404
+ # @return [String]
1405
+ # Deprecated. The name of the cluster to delete.
1406
+ # This field has been deprecated and replaced by the name field.
1407
+ # @!attribute [rw] name
1408
+ # @return [String]
1409
+ # The name (project, location, cluster) of the cluster to delete.
1410
+ # Specified in the format 'projects/*/locations/*/clusters/*'.
1411
+ class DeleteClusterRequest; end
1412
+
1413
+ # ListClustersRequest lists clusters.
1414
+ # @!attribute [rw] project_id
1415
+ # @return [String]
1416
+ # Deprecated. The Google Developers Console [project ID or project
1417
+ # number](https://support.google.com/cloud/answer/6158840).
1418
+ # This field has been deprecated and replaced by the parent field.
1419
+ # @!attribute [rw] zone
1420
+ # @return [String]
1421
+ # Deprecated. The name of the Google Compute Engine
1422
+ # [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster
1423
+ # resides, or "-" for all zones.
1424
+ # This field has been deprecated and replaced by the parent field.
1425
+ # @!attribute [rw] parent
1426
+ # @return [String]
1427
+ # The parent (project and location) where the clusters will be listed.
1428
+ # Specified in the format 'projects/*/locations/*'.
1429
+ # Location "-" matches all zones and all regions.
1430
+ class ListClustersRequest; end
1431
+
1432
+ # ListClustersResponse is the result of ListClustersRequest.
1433
+ # @!attribute [rw] clusters
1434
+ # @return [Array<Google::Container::V1beta1::Cluster>]
1435
+ # A list of clusters in the project in the specified zone, or
1436
+ # across all ones.
1437
+ # @!attribute [rw] missing_zones
1438
+ # @return [Array<String>]
1439
+ # If any zones are listed here, the list of clusters returned
1440
+ # may be missing those zones.
1441
+ class ListClustersResponse; end
1442
+
1443
+ # GetOperationRequest gets a single operation.
1444
+ # @!attribute [rw] project_id
1445
+ # @return [String]
1446
+ # Deprecated. The Google Developers Console [project ID or project
1447
+ # number](https://support.google.com/cloud/answer/6158840).
1448
+ # This field has been deprecated and replaced by the name field.
1449
+ # @!attribute [rw] zone
1450
+ # @return [String]
1451
+ # Deprecated. The name of the Google Compute Engine
1452
+ # [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster
1453
+ # resides.
1454
+ # This field has been deprecated and replaced by the name field.
1455
+ # @!attribute [rw] operation_id
1456
+ # @return [String]
1457
+ # Deprecated. The server-assigned `name` of the operation.
1458
+ # This field has been deprecated and replaced by the name field.
1459
+ # @!attribute [rw] name
1460
+ # @return [String]
1461
+ # The name (project, location, operation id) of the operation to get.
1462
+ # Specified in the format 'projects/*/locations/*/operations/*'.
1463
+ class GetOperationRequest; end
1464
+
1465
+ # ListOperationsRequest lists operations.
1466
+ # @!attribute [rw] project_id
1467
+ # @return [String]
1468
+ # Deprecated. The Google Developers Console [project ID or project
1469
+ # number](https://support.google.com/cloud/answer/6158840).
1470
+ # This field has been deprecated and replaced by the parent field.
1471
+ # @!attribute [rw] zone
1472
+ # @return [String]
1473
+ # Deprecated. The name of the Google Compute Engine
1474
+ # [zone](https://cloud.google.com/compute/docs/zones#available) to return operations for, or `-` for
1475
+ # all zones. This field has been deprecated and replaced by the parent field.
1476
+ # @!attribute [rw] parent
1477
+ # @return [String]
1478
+ # The parent (project and location) where the operations will be listed.
1479
+ # Specified in the format 'projects/*/locations/*'.
1480
+ # Location "-" matches all zones and all regions.
1481
+ class ListOperationsRequest; end
1482
+
1483
+ # CancelOperationRequest cancels a single operation.
1484
+ # @!attribute [rw] project_id
1485
+ # @return [String]
1486
+ # Deprecated. The Google Developers Console [project ID or project
1487
+ # number](https://support.google.com/cloud/answer/6158840).
1488
+ # This field has been deprecated and replaced by the name field.
1489
+ # @!attribute [rw] zone
1490
+ # @return [String]
1491
+ # Deprecated. The name of the Google Compute Engine
1492
+ # [zone](https://cloud.google.com/compute/docs/zones#available) in which the operation resides.
1493
+ # This field has been deprecated and replaced by the name field.
1494
+ # @!attribute [rw] operation_id
1495
+ # @return [String]
1496
+ # Deprecated. The server-assigned `name` of the operation.
1497
+ # This field has been deprecated and replaced by the name field.
1498
+ # @!attribute [rw] name
1499
+ # @return [String]
1500
+ # The name (project, location, operation id) of the operation to cancel.
1501
+ # Specified in the format 'projects/*/locations/*/operations/*'.
1502
+ class CancelOperationRequest; end
1503
+
1504
+ # ListOperationsResponse is the result of ListOperationsRequest.
1505
+ # @!attribute [rw] operations
1506
+ # @return [Array<Google::Container::V1beta1::Operation>]
1507
+ # A list of operations in the project in the specified zone.
1508
+ # @!attribute [rw] missing_zones
1509
+ # @return [Array<String>]
1510
+ # If any zones are listed here, the list of operations returned
1511
+ # may be missing the operations from those zones.
1512
+ class ListOperationsResponse; end
1513
+
1514
+ # Gets the current Kubernetes Engine service configuration.
1515
+ # @!attribute [rw] project_id
1516
+ # @return [String]
1517
+ # Deprecated. The Google Developers Console [project ID or project
1518
+ # number](https://support.google.com/cloud/answer/6158840).
1519
+ # This field has been deprecated and replaced by the name field.
1520
+ # @!attribute [rw] zone
1521
+ # @return [String]
1522
+ # Deprecated. The name of the Google Compute Engine
1523
+ # [zone](https://cloud.google.com/compute/docs/zones#available) to return operations for.
1524
+ # This field has been deprecated and replaced by the name field.
1525
+ # @!attribute [rw] name
1526
+ # @return [String]
1527
+ # The name (project and location) of the server config to get
1528
+ # Specified in the format 'projects/*/locations/*'.
1529
+ class GetServerConfigRequest; end
1530
+
1531
+ # Kubernetes Engine service configuration.
1532
+ # @!attribute [rw] default_cluster_version
1533
+ # @return [String]
1534
+ # Version of Kubernetes the service deploys by default.
1535
+ # @!attribute [rw] valid_node_versions
1536
+ # @return [Array<String>]
1537
+ # List of valid node upgrade target versions.
1538
+ # @!attribute [rw] default_image_type
1539
+ # @return [String]
1540
+ # Default image type.
1541
+ # @!attribute [rw] valid_image_types
1542
+ # @return [Array<String>]
1543
+ # List of valid image types.
1544
+ # @!attribute [rw] valid_master_versions
1545
+ # @return [Array<String>]
1546
+ # List of valid master versions.
1547
+ class ServerConfig; end
1548
+
1549
+ # CreateNodePoolRequest creates a node pool for a cluster.
1550
+ # @!attribute [rw] project_id
1551
+ # @return [String]
1552
+ # Deprecated. The Google Developers Console [project ID or project
1553
+ # number](https://developers.google.com/console/help/new/#projectnumber).
1554
+ # This field has been deprecated and replaced by the parent field.
1555
+ # @!attribute [rw] zone
1556
+ # @return [String]
1557
+ # Deprecated. The name of the Google Compute Engine
1558
+ # [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster
1559
+ # resides.
1560
+ # This field has been deprecated and replaced by the parent field.
1561
+ # @!attribute [rw] cluster_id
1562
+ # @return [String]
1563
+ # Deprecated. The name of the cluster.
1564
+ # This field has been deprecated and replaced by the parent field.
1565
+ # @!attribute [rw] node_pool
1566
+ # @return [Google::Container::V1beta1::NodePool]
1567
+ # The node pool to create.
1568
+ # @!attribute [rw] parent
1569
+ # @return [String]
1570
+ # The parent (project, location, cluster id) where the node pool will be
1571
+ # created. Specified in the format
1572
+ # 'projects/*/locations/*/clusters/*'.
1573
+ class CreateNodePoolRequest; end
1574
+
1575
+ # DeleteNodePoolRequest deletes a node pool for a cluster.
1576
+ # @!attribute [rw] project_id
1577
+ # @return [String]
1578
+ # Deprecated. The Google Developers Console [project ID or project
1579
+ # number](https://developers.google.com/console/help/new/#projectnumber).
1580
+ # This field has been deprecated and replaced by the name field.
1581
+ # @!attribute [rw] zone
1582
+ # @return [String]
1583
+ # Deprecated. The name of the Google Compute Engine
1584
+ # [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster
1585
+ # resides.
1586
+ # This field has been deprecated and replaced by the name field.
1587
+ # @!attribute [rw] cluster_id
1588
+ # @return [String]
1589
+ # Deprecated. The name of the cluster.
1590
+ # This field has been deprecated and replaced by the name field.
1591
+ # @!attribute [rw] node_pool_id
1592
+ # @return [String]
1593
+ # Deprecated. The name of the node pool to delete.
1594
+ # This field has been deprecated and replaced by the name field.
1595
+ # @!attribute [rw] name
1596
+ # @return [String]
1597
+ # The name (project, location, cluster, node pool id) of the node pool to
1598
+ # delete. Specified in the format
1599
+ # 'projects/*/locations/*/clusters/*/nodePools/*'.
1600
+ class DeleteNodePoolRequest; end
1601
+
1602
+ # ListNodePoolsRequest lists the node pool(s) for a cluster.
1603
+ # @!attribute [rw] project_id
1604
+ # @return [String]
1605
+ # Deprecated. The Google Developers Console [project ID or project
1606
+ # number](https://developers.google.com/console/help/new/#projectnumber).
1607
+ # This field has been deprecated and replaced by the parent field.
1608
+ # @!attribute [rw] zone
1609
+ # @return [String]
1610
+ # Deprecated. The name of the Google Compute Engine
1611
+ # [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster
1612
+ # resides.
1613
+ # This field has been deprecated and replaced by the parent field.
1614
+ # @!attribute [rw] cluster_id
1615
+ # @return [String]
1616
+ # Deprecated. The name of the cluster.
1617
+ # This field has been deprecated and replaced by the parent field.
1618
+ # @!attribute [rw] parent
1619
+ # @return [String]
1620
+ # The parent (project, location, cluster id) where the node pools will be
1621
+ # listed. Specified in the format 'projects/*/locations/*/clusters/*'.
1622
+ class ListNodePoolsRequest; end
1623
+
1624
+ # GetNodePoolRequest retrieves a node pool for a cluster.
1625
+ # @!attribute [rw] project_id
1626
+ # @return [String]
1627
+ # Deprecated. The Google Developers Console [project ID or project
1628
+ # number](https://developers.google.com/console/help/new/#projectnumber).
1629
+ # This field has been deprecated and replaced by the name field.
1630
+ # @!attribute [rw] zone
1631
+ # @return [String]
1632
+ # Deprecated. The name of the Google Compute Engine
1633
+ # [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster
1634
+ # resides.
1635
+ # This field has been deprecated and replaced by the name field.
1636
+ # @!attribute [rw] cluster_id
1637
+ # @return [String]
1638
+ # Deprecated. The name of the cluster.
1639
+ # This field has been deprecated and replaced by the name field.
1640
+ # @!attribute [rw] node_pool_id
1641
+ # @return [String]
1642
+ # Deprecated. The name of the node pool.
1643
+ # This field has been deprecated and replaced by the name field.
1644
+ # @!attribute [rw] name
1645
+ # @return [String]
1646
+ # The name (project, location, cluster, node pool id) of the node pool to
1647
+ # get. Specified in the format
1648
+ # 'projects/*/locations/*/clusters/*/nodePools/*'.
1649
+ class GetNodePoolRequest; end
1650
+
1651
+ # NodePool contains the name and configuration for a cluster's node pool.
1652
+ # Node pools are a set of nodes (i.e. VM's), with a common configuration and
1653
+ # specification, under the control of the cluster master. They may have a set
1654
+ # of Kubernetes labels applied to them, which may be used to reference them
1655
+ # during pod scheduling. They may also be resized up or down, to accommodate
1656
+ # the workload.
1657
+ # @!attribute [rw] name
1658
+ # @return [String]
1659
+ # The name of the node pool.
1660
+ # @!attribute [rw] config
1661
+ # @return [Google::Container::V1beta1::NodeConfig]
1662
+ # The node configuration of the pool.
1663
+ # @!attribute [rw] initial_node_count
1664
+ # @return [Integer]
1665
+ # The initial node count for the pool. You must ensure that your
1666
+ # Compute Engine <a href="/compute/docs/resource-quotas">resource quota</a>
1667
+ # is sufficient for this number of instances. You must also have available
1668
+ # firewall and routes quota.
1669
+ # @!attribute [rw] self_link
1670
+ # @return [String]
1671
+ # [Output only] Server-defined URL for the resource.
1672
+ # @!attribute [rw] version
1673
+ # @return [String]
1674
+ # The version of the Kubernetes of this node.
1675
+ # @!attribute [rw] instance_group_urls
1676
+ # @return [Array<String>]
1677
+ # [Output only] The resource URLs of the [managed instance
1678
+ # groups](/compute/docs/instance-groups/creating-groups-of-managed-instances)
1679
+ # associated with this node pool.
1680
+ # @!attribute [rw] status
1681
+ # @return [Google::Container::V1beta1::NodePool::Status]
1682
+ # [Output only] The status of the nodes in this pool instance.
1683
+ # @!attribute [rw] status_message
1684
+ # @return [String]
1685
+ # [Output only] Additional information about the current status of this
1686
+ # node pool instance, if available.
1687
+ # @!attribute [rw] autoscaling
1688
+ # @return [Google::Container::V1beta1::NodePoolAutoscaling]
1689
+ # Autoscaler configuration for this NodePool. Autoscaler is enabled
1690
+ # only if a valid configuration is present.
1691
+ # @!attribute [rw] management
1692
+ # @return [Google::Container::V1beta1::NodeManagement]
1693
+ # NodeManagement configuration for this NodePool.
1694
+ # @!attribute [rw] max_pods_constraint
1695
+ # @return [Google::Container::V1beta1::MaxPodsConstraint]
1696
+ # The constraint on the maximum number of pods that can be run
1697
+ # simultaneously on a node in the node pool.
1698
+ # @!attribute [rw] conditions
1699
+ # @return [Array<Google::Container::V1beta1::StatusCondition>]
1700
+ # Which conditions caused the current node pool state.
1701
+ class NodePool
1702
+ # The current status of the node pool instance.
1703
+ module Status
1704
+ # Not set.
1705
+ STATUS_UNSPECIFIED = 0
1706
+
1707
+ # The PROVISIONING state indicates the node pool is being created.
1708
+ PROVISIONING = 1
1709
+
1710
+ # The RUNNING state indicates the node pool has been created
1711
+ # and is fully usable.
1712
+ RUNNING = 2
1713
+
1714
+ # The RUNNING_WITH_ERROR state indicates the node pool has been created
1715
+ # and is partially usable. Some error state has occurred and some
1716
+ # functionality may be impaired. Customer may need to reissue a request
1717
+ # or trigger a new update.
1718
+ RUNNING_WITH_ERROR = 3
1719
+
1720
+ # The RECONCILING state indicates that some work is actively being done on
1721
+ # the node pool, such as upgrading node software. Details can
1722
+ # be found in the `statusMessage` field.
1723
+ RECONCILING = 4
1724
+
1725
+ # The STOPPING state indicates the node pool is being deleted.
1726
+ STOPPING = 5
1727
+
1728
+ # The ERROR state indicates the node pool may be unusable. Details
1729
+ # can be found in the `statusMessage` field.
1730
+ ERROR = 6
1731
+ end
1732
+ end
1733
+
1734
+ # NodeManagement defines the set of node management services turned on for the
1735
+ # node pool.
1736
+ # @!attribute [rw] auto_upgrade
1737
+ # @return [true, false]
1738
+ # Whether the nodes will be automatically upgraded.
1739
+ # @!attribute [rw] auto_repair
1740
+ # @return [true, false]
1741
+ # Whether the nodes will be automatically repaired.
1742
+ # @!attribute [rw] upgrade_options
1743
+ # @return [Google::Container::V1beta1::AutoUpgradeOptions]
1744
+ # Specifies the Auto Upgrade knobs for the node pool.
1745
+ class NodeManagement; end
1746
+
1747
+ # AutoUpgradeOptions defines the set of options for the user to control how
1748
+ # the Auto Upgrades will proceed.
1749
+ # @!attribute [rw] auto_upgrade_start_time
1750
+ # @return [String]
1751
+ # [Output only] This field is set when upgrades are about to commence
1752
+ # with the approximate start time for the upgrades, in
1753
+ # [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
1754
+ # @!attribute [rw] description
1755
+ # @return [String]
1756
+ # [Output only] This field is set when upgrades are about to commence
1757
+ # with the description of the upgrade.
1758
+ class AutoUpgradeOptions; end
1759
+
1760
+ # MaintenancePolicy defines the maintenance policy to be used for the cluster.
1761
+ # @!attribute [rw] window
1762
+ # @return [Google::Container::V1beta1::MaintenanceWindow]
1763
+ # Specifies the maintenance window in which maintenance may be performed.
1764
+ class MaintenancePolicy; end
1765
+
1766
+ # MaintenanceWindow defines the maintenance window to be used for the cluster.
1767
+ # @!attribute [rw] daily_maintenance_window
1768
+ # @return [Google::Container::V1beta1::DailyMaintenanceWindow]
1769
+ # DailyMaintenanceWindow specifies a daily maintenance operation window.
1770
+ class MaintenanceWindow; end
1771
+
1772
+ # Time window specified for daily maintenance operations.
1773
+ # @!attribute [rw] start_time
1774
+ # @return [String]
1775
+ # Time within the maintenance window to start the maintenance operations.
1776
+ # It must be in format "HH:MM”, where HH : [00-23] and MM : [00-59] GMT.
1777
+ # @!attribute [rw] duration
1778
+ # @return [String]
1779
+ # [Output only] Duration of the time window, automatically chosen to be
1780
+ # smallest possible in the given scenario.
1781
+ class DailyMaintenanceWindow; end
1782
+
1783
+ # SetNodePoolManagementRequest sets the node management properties of a node
1784
+ # pool.
1785
+ # @!attribute [rw] project_id
1786
+ # @return [String]
1787
+ # Deprecated. The Google Developers Console [project ID or project
1788
+ # number](https://support.google.com/cloud/answer/6158840).
1789
+ # This field has been deprecated and replaced by the name field.
1790
+ # @!attribute [rw] zone
1791
+ # @return [String]
1792
+ # Deprecated. The name of the Google Compute Engine
1793
+ # [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster
1794
+ # resides.
1795
+ # This field has been deprecated and replaced by the name field.
1796
+ # @!attribute [rw] cluster_id
1797
+ # @return [String]
1798
+ # Deprecated. The name of the cluster to update.
1799
+ # This field has been deprecated and replaced by the name field.
1800
+ # @!attribute [rw] node_pool_id
1801
+ # @return [String]
1802
+ # Deprecated. The name of the node pool to update.
1803
+ # This field has been deprecated and replaced by the name field.
1804
+ # @!attribute [rw] management
1805
+ # @return [Google::Container::V1beta1::NodeManagement]
1806
+ # NodeManagement configuration for the node pool.
1807
+ # @!attribute [rw] name
1808
+ # @return [String]
1809
+ # The name (project, location, cluster, node pool id) of the node pool to set
1810
+ # management properties. Specified in the format
1811
+ # 'projects/*/locations/*/clusters/*/nodePools/*'.
1812
+ class SetNodePoolManagementRequest; end
1813
+
1814
+ # SetNodePoolSizeRequest sets the size a node
1815
+ # pool.
1816
+ # @!attribute [rw] project_id
1817
+ # @return [String]
1818
+ # Deprecated. The Google Developers Console [project ID or project
1819
+ # number](https://support.google.com/cloud/answer/6158840).
1820
+ # This field has been deprecated and replaced by the name field.
1821
+ # @!attribute [rw] zone
1822
+ # @return [String]
1823
+ # Deprecated. The name of the Google Compute Engine
1824
+ # [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster
1825
+ # resides.
1826
+ # This field has been deprecated and replaced by the name field.
1827
+ # @!attribute [rw] cluster_id
1828
+ # @return [String]
1829
+ # Deprecated. The name of the cluster to update.
1830
+ # This field has been deprecated and replaced by the name field.
1831
+ # @!attribute [rw] node_pool_id
1832
+ # @return [String]
1833
+ # Deprecated. The name of the node pool to update.
1834
+ # This field has been deprecated and replaced by the name field.
1835
+ # @!attribute [rw] node_count
1836
+ # @return [Integer]
1837
+ # The desired node count for the pool.
1838
+ # @!attribute [rw] name
1839
+ # @return [String]
1840
+ # The name (project, location, cluster, node pool id) of the node pool to set
1841
+ # size.
1842
+ # Specified in the format 'projects/*/locations/*/clusters/*/nodePools/*'.
1843
+ class SetNodePoolSizeRequest; end
1844
+
1845
+ # RollbackNodePoolUpgradeRequest rollbacks the previously Aborted or Failed
1846
+ # NodePool upgrade. This will be an no-op if the last upgrade successfully
1847
+ # completed.
1848
+ # @!attribute [rw] project_id
1849
+ # @return [String]
1850
+ # Deprecated. The Google Developers Console [project ID or project
1851
+ # number](https://support.google.com/cloud/answer/6158840).
1852
+ # This field has been deprecated and replaced by the name field.
1853
+ # @!attribute [rw] zone
1854
+ # @return [String]
1855
+ # Deprecated. The name of the Google Compute Engine
1856
+ # [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster
1857
+ # resides.
1858
+ # This field has been deprecated and replaced by the name field.
1859
+ # @!attribute [rw] cluster_id
1860
+ # @return [String]
1861
+ # Deprecated. The name of the cluster to rollback.
1862
+ # This field has been deprecated and replaced by the name field.
1863
+ # @!attribute [rw] node_pool_id
1864
+ # @return [String]
1865
+ # Deprecated. The name of the node pool to rollback.
1866
+ # This field has been deprecated and replaced by the name field.
1867
+ # @!attribute [rw] name
1868
+ # @return [String]
1869
+ # The name (project, location, cluster, node pool id) of the node poll to
1870
+ # rollback upgrade.
1871
+ # Specified in the format 'projects/*/locations/*/clusters/*/nodePools/*'.
1872
+ class RollbackNodePoolUpgradeRequest; end
1873
+
1874
+ # ListNodePoolsResponse is the result of ListNodePoolsRequest.
1875
+ # @!attribute [rw] node_pools
1876
+ # @return [Array<Google::Container::V1beta1::NodePool>]
1877
+ # A list of node pools for a cluster.
1878
+ class ListNodePoolsResponse; end
1879
+
1880
+ # ClusterAutoscaling contains global, per-cluster information
1881
+ # required by Cluster Autoscaler to automatically adjust
1882
+ # the size of the cluster and create/delete
1883
+ # node pools based on the current needs.
1884
+ # @!attribute [rw] enable_node_autoprovisioning
1885
+ # @return [true, false]
1886
+ # Enables automatic node pool creation and deletion.
1887
+ # @!attribute [rw] resource_limits
1888
+ # @return [Array<Google::Container::V1beta1::ResourceLimit>]
1889
+ # Contains global constraints regarding minimum and maximum
1890
+ # amount of resources in the cluster.
1891
+ class ClusterAutoscaling; end
1892
+
1893
+ # Contains information about amount of some resource in the cluster.
1894
+ # For memory, value should be in GB.
1895
+ # @!attribute [rw] resource_type
1896
+ # @return [String]
1897
+ # Resource name "cpu", "memory" or gpu-specific string.
1898
+ # @!attribute [rw] minimum
1899
+ # @return [Integer]
1900
+ # Minimum amount of the resource in the cluster.
1901
+ # @!attribute [rw] maximum
1902
+ # @return [Integer]
1903
+ # Maximum amount of the resource in the cluster.
1904
+ class ResourceLimit; end
1905
+
1906
+ # NodePoolAutoscaling contains information required by cluster autoscaler to
1907
+ # adjust the size of the node pool to the current cluster usage.
1908
+ # @!attribute [rw] enabled
1909
+ # @return [true, false]
1910
+ # Is autoscaling enabled for this node pool.
1911
+ # @!attribute [rw] min_node_count
1912
+ # @return [Integer]
1913
+ # Minimum number of nodes in the NodePool. Must be >= 1 and <=
1914
+ # max_node_count.
1915
+ # @!attribute [rw] max_node_count
1916
+ # @return [Integer]
1917
+ # Maximum number of nodes in the NodePool. Must be >= min_node_count. There
1918
+ # has to enough quota to scale up the cluster.
1919
+ # @!attribute [rw] autoprovisioned
1920
+ # @return [true, false]
1921
+ # Can this node pool be deleted automatically.
1922
+ class NodePoolAutoscaling; end
1923
+
1924
+ # SetLabelsRequest sets the Google Cloud Platform labels on a Google Container
1925
+ # Engine cluster, which will in turn set them for Google Compute Engine
1926
+ # resources used by that cluster
1927
+ # @!attribute [rw] project_id
1928
+ # @return [String]
1929
+ # Deprecated. The Google Developers Console [project ID or project
1930
+ # number](https://developers.google.com/console/help/new/#projectnumber).
1931
+ # This field has been deprecated and replaced by the name field.
1932
+ # @!attribute [rw] zone
1933
+ # @return [String]
1934
+ # Deprecated. The name of the Google Compute Engine
1935
+ # [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster
1936
+ # resides.
1937
+ # This field has been deprecated and replaced by the name field.
1938
+ # @!attribute [rw] cluster_id
1939
+ # @return [String]
1940
+ # Deprecated. The name of the cluster.
1941
+ # This field has been deprecated and replaced by the name field.
1942
+ # @!attribute [rw] resource_labels
1943
+ # @return [Hash{String => String}]
1944
+ # The labels to set for that cluster.
1945
+ # @!attribute [rw] label_fingerprint
1946
+ # @return [String]
1947
+ # The fingerprint of the previous set of labels for this resource,
1948
+ # used to detect conflicts. The fingerprint is initially generated by
1949
+ # Kubernetes Engine and changes after every request to modify or update
1950
+ # labels. You must always provide an up-to-date fingerprint hash when
1951
+ # updating or changing labels. Make a <code>get()</code> request to the
1952
+ # resource to get the latest fingerprint.
1953
+ # @!attribute [rw] name
1954
+ # @return [String]
1955
+ # The name (project, location, cluster id) of the cluster to set labels.
1956
+ # Specified in the format 'projects/*/locations/*/clusters/*'.
1957
+ class SetLabelsRequest; end
1958
+
1959
+ # SetLegacyAbacRequest enables or disables the ABAC authorization mechanism for
1960
+ # a cluster.
1961
+ # @!attribute [rw] project_id
1962
+ # @return [String]
1963
+ # Deprecated. The Google Developers Console [project ID or project
1964
+ # number](https://support.google.com/cloud/answer/6158840).
1965
+ # This field has been deprecated and replaced by the name field.
1966
+ # @!attribute [rw] zone
1967
+ # @return [String]
1968
+ # Deprecated. The name of the Google Compute Engine
1969
+ # [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster
1970
+ # resides.
1971
+ # This field has been deprecated and replaced by the name field.
1972
+ # @!attribute [rw] cluster_id
1973
+ # @return [String]
1974
+ # Deprecated. The name of the cluster to update.
1975
+ # This field has been deprecated and replaced by the name field.
1976
+ # @!attribute [rw] enabled
1977
+ # @return [true, false]
1978
+ # Whether ABAC authorization will be enabled in the cluster.
1979
+ # @!attribute [rw] name
1980
+ # @return [String]
1981
+ # The name (project, location, cluster id) of the cluster to set legacy abac.
1982
+ # Specified in the format 'projects/*/locations/*/clusters/*'.
1983
+ class SetLegacyAbacRequest; end
1984
+
1985
+ # StartIPRotationRequest creates a new IP for the cluster and then performs
1986
+ # a node upgrade on each node pool to point to the new IP.
1987
+ # @!attribute [rw] project_id
1988
+ # @return [String]
1989
+ # Deprecated. The Google Developers Console [project ID or project
1990
+ # number](https://developers.google.com/console/help/new/#projectnumber).
1991
+ # This field has been deprecated and replaced by the name field.
1992
+ # @!attribute [rw] zone
1993
+ # @return [String]
1994
+ # Deprecated. The name of the Google Compute Engine
1995
+ # [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster
1996
+ # resides.
1997
+ # This field has been deprecated and replaced by the name field.
1998
+ # @!attribute [rw] cluster_id
1999
+ # @return [String]
2000
+ # Deprecated. The name of the cluster.
2001
+ # This field has been deprecated and replaced by the name field.
2002
+ # @!attribute [rw] name
2003
+ # @return [String]
2004
+ # The name (project, location, cluster id) of the cluster to start IP
2005
+ # rotation. Specified in the format 'projects/*/locations/*/clusters/*'.
2006
+ # @!attribute [rw] rotate_credentials
2007
+ # @return [true, false]
2008
+ # Whether to rotate credentials during IP rotation.
2009
+ class StartIPRotationRequest; end
2010
+
2011
+ # CompleteIPRotationRequest moves the cluster master back into single-IP mode.
2012
+ # @!attribute [rw] project_id
2013
+ # @return [String]
2014
+ # Deprecated. The Google Developers Console [project ID or project
2015
+ # number](https://developers.google.com/console/help/new/#projectnumber).
2016
+ # This field has been deprecated and replaced by the name field.
2017
+ # @!attribute [rw] zone
2018
+ # @return [String]
2019
+ # Deprecated. The name of the Google Compute Engine
2020
+ # [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster
2021
+ # resides.
2022
+ # This field has been deprecated and replaced by the name field.
2023
+ # @!attribute [rw] cluster_id
2024
+ # @return [String]
2025
+ # Deprecated. The name of the cluster.
2026
+ # This field has been deprecated and replaced by the name field.
2027
+ # @!attribute [rw] name
2028
+ # @return [String]
2029
+ # The name (project, location, cluster id) of the cluster to complete IP
2030
+ # rotation. Specified in the format 'projects/*/locations/*/clusters/*'.
2031
+ class CompleteIPRotationRequest; end
2032
+
2033
+ # AcceleratorConfig represents a Hardware Accelerator request.
2034
+ # @!attribute [rw] accelerator_count
2035
+ # @return [Integer]
2036
+ # The number of the accelerator cards exposed to an instance.
2037
+ # @!attribute [rw] accelerator_type
2038
+ # @return [String]
2039
+ # The accelerator type resource name. List of supported accelerators
2040
+ # [here](https://cloud.google.com/compute/docs/gpus/#Introduction)
2041
+ class AcceleratorConfig; end
2042
+
2043
+ # WorkloadMetadataConfig defines the metadata configuration to expose to
2044
+ # workloads on the node pool.
2045
+ # @!attribute [rw] node_metadata
2046
+ # @return [Google::Container::V1beta1::WorkloadMetadataConfig::NodeMetadata]
2047
+ # NodeMetadata is the configuration for how to expose the node metadata to
2048
+ # the workload running on the node.
2049
+ class WorkloadMetadataConfig
2050
+ # NodeMetadata is the configuration for if and how to expose the node
2051
+ # metadata to the workload running on the node.
2052
+ module NodeMetadata
2053
+ # Not set.
2054
+ UNSPECIFIED = 0
2055
+
2056
+ # Prevent workloads not in hostNetwork from accessing certain VM metadata,
2057
+ # specifically kube-env, which contains Kubelet credentials, and the
2058
+ # instance identity token.
2059
+ #
2060
+ # Metadata concealment is a temporary security solution available while the
2061
+ # bootstrapping process for cluster nodes is being redesigned with
2062
+ # significant security improvements. This feature is scheduled to be
2063
+ # deprecated in the future and later removed.
2064
+ SECURE = 1
2065
+
2066
+ # Expose all VM metadata to pods.
2067
+ EXPOSE = 2
2068
+ end
2069
+ end
2070
+
2071
+ # SetNetworkPolicyRequest enables/disables network policy for a cluster.
2072
+ # @!attribute [rw] project_id
2073
+ # @return [String]
2074
+ # Deprecated. The Google Developers Console [project ID or project
2075
+ # number](https://developers.google.com/console/help/new/#projectnumber).
2076
+ # This field has been deprecated and replaced by the name field.
2077
+ # @!attribute [rw] zone
2078
+ # @return [String]
2079
+ # Deprecated. The name of the Google Compute Engine
2080
+ # [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster
2081
+ # resides.
2082
+ # This field has been deprecated and replaced by the name field.
2083
+ # @!attribute [rw] cluster_id
2084
+ # @return [String]
2085
+ # Deprecated. The name of the cluster.
2086
+ # This field has been deprecated and replaced by the name field.
2087
+ # @!attribute [rw] network_policy
2088
+ # @return [Google::Container::V1beta1::NetworkPolicy]
2089
+ # Configuration options for the NetworkPolicy feature.
2090
+ # @!attribute [rw] name
2091
+ # @return [String]
2092
+ # The name (project, location, cluster id) of the cluster to set networking
2093
+ # policy. Specified in the format 'projects/*/locations/*/clusters/*'.
2094
+ class SetNetworkPolicyRequest; end
2095
+
2096
+ # SetMaintenancePolicyRequest sets the maintenance policy for a cluster.
2097
+ # @!attribute [rw] project_id
2098
+ # @return [String]
2099
+ # The Google Developers Console [project ID or project
2100
+ # number](https://support.google.com/cloud/answer/6158840).
2101
+ # @!attribute [rw] zone
2102
+ # @return [String]
2103
+ # The name of the Google Compute Engine
2104
+ # [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster
2105
+ # resides.
2106
+ # @!attribute [rw] cluster_id
2107
+ # @return [String]
2108
+ # The name of the cluster to update.
2109
+ # @!attribute [rw] maintenance_policy
2110
+ # @return [Google::Container::V1beta1::MaintenancePolicy]
2111
+ # The maintenance policy to be set for the cluster. An empty field
2112
+ # clears the existing maintenance policy.
2113
+ # @!attribute [rw] name
2114
+ # @return [String]
2115
+ # The name (project, location, cluster id) of the cluster to set maintenance
2116
+ # policy.
2117
+ # Specified in the format 'projects/*/locations/*/clusters/*'.
2118
+ class SetMaintenancePolicyRequest; end
2119
+
2120
+ # ListLocationsRequest is used to request the locations that offer GKE.
2121
+ # @!attribute [rw] parent
2122
+ # @return [String]
2123
+ # Contains the name of the resource requested.
2124
+ # Specified in the format 'projects/*'.
2125
+ class ListLocationsRequest; end
2126
+
2127
+ # ListLocationsResponse returns the list of all GKE locations and their
2128
+ # recommendation state.
2129
+ # @!attribute [rw] locations
2130
+ # @return [Array<Google::Container::V1beta1::Location>]
2131
+ # A full list of GKE locations.
2132
+ # @!attribute [rw] next_page_token
2133
+ # @return [String]
2134
+ # Only return ListLocationsResponse that occur after the page_token. This
2135
+ # value should be populated from the ListLocationsResponse.next_page_token if
2136
+ # that response token was set (which happens when listing more Locations than
2137
+ # fit in a single ListLocationsResponse).
2138
+ class ListLocationsResponse; end
2139
+
2140
+ # Location returns the location name, and if the location is recommended
2141
+ # for GKE cluster scheduling.
2142
+ # @!attribute [rw] type
2143
+ # @return [Google::Container::V1beta1::Location::LocationType]
2144
+ # Contains the type of location this Location is for.
2145
+ # Regional or Zonal.
2146
+ # @!attribute [rw] name
2147
+ # @return [String]
2148
+ # Contains the name of the resource requested.
2149
+ # Specified in the format 'projects/*/locations/*'.
2150
+ # @!attribute [rw] recommended
2151
+ # @return [true, false]
2152
+ # Whether the location is recomended for GKE cluster scheduling.
2153
+ class Location
2154
+ # LocationType is the type of GKE location, regional or zonal.
2155
+ module LocationType
2156
+ # LOCATION_TYPE_UNSPECIFIED means the location type was not determined.
2157
+ LOCATION_TYPE_UNSPECIFIED = 0
2158
+
2159
+ # A GKE Location where Zonal clusters can be created.
2160
+ ZONE = 1
2161
+
2162
+ # A GKE Location where Regional clusters can be created.
2163
+ REGION = 2
2164
+ end
2165
+ end
2166
+
2167
+ # StatusCondition describes why a cluster or a node pool has a certain status
2168
+ # (e.g., ERROR or DEGRADED).
2169
+ # @!attribute [rw] code
2170
+ # @return [Google::Container::V1beta1::StatusCondition::Code]
2171
+ # Machine-friendly representation of the condition
2172
+ # @!attribute [rw] message
2173
+ # @return [String]
2174
+ # Human-friendly representation of the condition
2175
+ class StatusCondition
2176
+ # Code for each condition
2177
+ module Code
2178
+ # UNKNOWN indicates a generic condition.
2179
+ UNKNOWN = 0
2180
+
2181
+ # GCE_STOCKOUT indicates a Google Compute Engine stockout.
2182
+ GCE_STOCKOUT = 1
2183
+
2184
+ # GKE_SERVICE_ACCOUNT_DELETED indicates that the user deleted their robot
2185
+ # service account.
2186
+ GKE_SERVICE_ACCOUNT_DELETED = 2
2187
+
2188
+ # Google Compute Engine quota was exceeded.
2189
+ GCE_QUOTA_EXCEEDED = 3
2190
+
2191
+ # Cluster state was manually changed by an SRE due to a system logic error.
2192
+ # More codes TBA
2193
+ SET_BY_OPERATOR = 4
2194
+ end
2195
+ end
2196
+
2197
+ # NetworkConfig reports the relative names of network & subnetwork.
2198
+ # @!attribute [rw] network
2199
+ # @return [String]
2200
+ # Output only. The relative name of the Google Compute Engine
2201
+ # {Google::Container::V1beta1::NetworkConfig#network network}(/compute/docs/networks-and-firewalls#networks) to which
2202
+ # the cluster is connected.
2203
+ # Example: projects/my-project/global/networks/my-network
2204
+ # @!attribute [rw] subnetwork
2205
+ # @return [String]
2206
+ # Output only. The relative name of the Google Compute Engine
2207
+ # [subnetwork](https://cloud.google.com/compute/docs/vpc) to which the cluster is connected.
2208
+ # Example: projects/my-project/regions/us-central1/subnetworks/my-subnet
2209
+ class NetworkConfig; end
2210
+
2211
+ # ListUsableSubnetworksRequest requests the list of usable subnetworks.
2212
+ # available to a user for creating clusters.
2213
+ # @!attribute [rw] parent
2214
+ # @return [String]
2215
+ # The parent project where subnetworks are usable.
2216
+ # Specified in the format 'projects/*'.
2217
+ # @!attribute [rw] filter
2218
+ # @return [String]
2219
+ # Filtering currently only supports equality on the networkProjectId and must
2220
+ # be in the form: "networkProjectId=[PROJECTID]", where `networkProjectId`
2221
+ # is the project which owns the listed subnetworks. This defaults to the
2222
+ # parent project ID.
2223
+ # @!attribute [rw] page_size
2224
+ # @return [Integer]
2225
+ # The max number of results per page that should be returned. If the number
2226
+ # of available results is larger than `page_size`, a `next_page_token` is
2227
+ # returned which can be used to get the next page of results in subsequent
2228
+ # requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
2229
+ # @!attribute [rw] page_token
2230
+ # @return [String]
2231
+ # Specifies a page token to use. Set this to the nextPageToken returned by
2232
+ # previous list requests to get the next page of results.
2233
+ class ListUsableSubnetworksRequest; end
2234
+
2235
+ # ListUsableSubnetworksResponse is the response of
2236
+ # ListUsableSubnetworksRequest.
2237
+ # @!attribute [rw] subnetworks
2238
+ # @return [Array<Google::Container::V1beta1::UsableSubnetwork>]
2239
+ # A list of usable subnetworks in the specified network project.
2240
+ # @!attribute [rw] next_page_token
2241
+ # @return [String]
2242
+ # This token allows you to get the next page of results for list requests.
2243
+ # If the number of results is larger than `page_size`, use the
2244
+ # `next_page_token` as a value for the query parameter `page_token` in the
2245
+ # next request. The value will become empty when there are no more pages.
2246
+ class ListUsableSubnetworksResponse; end
2247
+
2248
+ # Secondary IP range of a usable subnetwork.
2249
+ # @!attribute [rw] range_name
2250
+ # @return [String]
2251
+ # The name associated with this subnetwork secondary range, used when adding
2252
+ # an alias IP range to a VM instance.
2253
+ # @!attribute [rw] ip_cidr_range
2254
+ # @return [String]
2255
+ # The range of IP addresses belonging to this subnetwork secondary range.
2256
+ # @!attribute [rw] status
2257
+ # @return [Google::Container::V1beta1::UsableSubnetworkSecondaryRange::Status]
2258
+ # This field is to determine the status of the secondary range programmably.
2259
+ class UsableSubnetworkSecondaryRange
2260
+ # Status shows the current usage of a secondary IP range.
2261
+ module Status
2262
+ # UNKNOWN is the zero value of the Status enum. It's not a valid status.
2263
+ UNKNOWN = 0
2264
+
2265
+ # UNUSED denotes that this range is unclaimed by any cluster.
2266
+ UNUSED = 1
2267
+
2268
+ # IN_USE_SERVICE denotes that this range is claimed by a cluster for
2269
+ # services. It cannot be used for other clusters.
2270
+ IN_USE_SERVICE = 2
2271
+
2272
+ # IN_USE_SHAREABLE_POD denotes this range was created by the network admin
2273
+ # and is currently claimed by a cluster for pods. It can only be used by
2274
+ # other clusters as a pod range.
2275
+ IN_USE_SHAREABLE_POD = 3
2276
+
2277
+ # IN_USE_MANAGED_POD denotes this range was created by GKE and is claimed
2278
+ # for pods. It cannot be used for other clusters.
2279
+ IN_USE_MANAGED_POD = 4
2280
+ end
2281
+ end
2282
+
2283
+ # UsableSubnetwork resource returns the subnetwork name, its associated network
2284
+ # and the primary CIDR range.
2285
+ # @!attribute [rw] subnetwork
2286
+ # @return [String]
2287
+ # Subnetwork Name.
2288
+ # Example: projects/my-project/regions/us-central1/subnetworks/my-subnet
2289
+ # @!attribute [rw] network
2290
+ # @return [String]
2291
+ # Network Name.
2292
+ # Example: projects/my-project/global/networks/my-network
2293
+ # @!attribute [rw] ip_cidr_range
2294
+ # @return [String]
2295
+ # The range of internal addresses that are owned by this subnetwork.
2296
+ # @!attribute [rw] secondary_ip_ranges
2297
+ # @return [Array<Google::Container::V1beta1::UsableSubnetworkSecondaryRange>]
2298
+ # Secondary IP ranges.
2299
+ # @!attribute [rw] status_message
2300
+ # @return [String]
2301
+ # A human readable status message representing the reasons for cases where
2302
+ # the caller cannot use the secondary ranges under the subnet. For example if
2303
+ # the secondary_ip_ranges is empty due to a permission issue, an insufficient
2304
+ # permission message will be given by status_message.
2305
+ class UsableSubnetwork; end
2306
+
2307
+ # VerticalPodAutoscaling contains global, per-cluster information
2308
+ # required by Vertical Pod Autoscaler to automatically adjust
2309
+ # the resources of pods controlled by it.
2310
+ # @!attribute [rw] enabled
2311
+ # @return [true, false]
2312
+ # Enables vertical pod autoscaling.
2313
+ class VerticalPodAutoscaling; end
2314
+
2315
+ # Constraints applied to pods.
2316
+ # @!attribute [rw] max_pods_per_node
2317
+ # @return [Integer]
2318
+ # Constraint enforced on the max num of pods per node.
2319
+ class MaxPodsConstraint; end
2320
+
2321
+ # Configuration for exporting cluster resource usages.
2322
+ # @!attribute [rw] bigquery_destination
2323
+ # @return [Google::Container::V1beta1::ResourceUsageExportConfig::BigQueryDestination]
2324
+ # Configuration to use BigQuery as usage export destination.
2325
+ # @!attribute [rw] enable_network_egress_metering
2326
+ # @return [true, false]
2327
+ # Whether to enable network egress metering for this cluster. If enabled, a
2328
+ # daemonset will be created in the cluster to meter network egress traffic.
2329
+ class ResourceUsageExportConfig
2330
+ # Parameters for using BigQuery as the destination of resource usage export.
2331
+ # @!attribute [rw] dataset_id
2332
+ # @return [String]
2333
+ # The ID of a BigQuery Dataset.
2334
+ class BigQueryDestination; end
2335
+ end
2336
+ end
2337
+ end
2338
+ end