google-cloud-container-v1beta1 0.1.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,132 @@
1
+ # Generated by the protocol buffer compiler. DO NOT EDIT!
2
+ # Source: google/container/v1beta1/cluster_service.proto for package 'Google.Cloud.Container.V1beta1'
3
+ # Original file comments:
4
+ # Copyright 2019 Google LLC.
5
+ #
6
+ # Licensed under the Apache License, Version 2.0 (the "License");
7
+ # you may not use this file except in compliance with the License.
8
+ # You may obtain a copy of the License at
9
+ #
10
+ # http://www.apache.org/licenses/LICENSE-2.0
11
+ #
12
+ # Unless required by applicable law or agreed to in writing, software
13
+ # distributed under the License is distributed on an "AS IS" BASIS,
14
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
+ # See the License for the specific language governing permissions and
16
+ # limitations under the License.
17
+ #
18
+ #
19
+
20
+ require 'grpc'
21
+ require 'google/container/v1beta1/cluster_service_pb'
22
+
23
+ module Google
24
+ module Cloud
25
+ module Container
26
+ module V1beta1
27
+ module ClusterManager
28
+ # Google Kubernetes Engine Cluster Manager v1beta1
29
+ class Service
30
+
31
+ include GRPC::GenericService
32
+
33
+ self.marshal_class_method = :encode
34
+ self.unmarshal_class_method = :decode
35
+ self.service_name = 'google.container.v1beta1.ClusterManager'
36
+
37
+ # Lists all clusters owned by a project in either the specified zone or all
38
+ # zones.
39
+ rpc :ListClusters, Google::Cloud::Container::V1beta1::ListClustersRequest, Google::Cloud::Container::V1beta1::ListClustersResponse
40
+ # Gets the details for a specific cluster.
41
+ rpc :GetCluster, Google::Cloud::Container::V1beta1::GetClusterRequest, Google::Cloud::Container::V1beta1::Cluster
42
+ # Creates a cluster, consisting of the specified number and type of Google
43
+ # Compute Engine instances.
44
+ #
45
+ # By default, the cluster is created in the project's
46
+ # [default network](https://cloud.google.com/compute/docs/networks-and-firewalls#networks).
47
+ #
48
+ # One firewall is added for the cluster. After cluster creation,
49
+ # the Kubelet creates routes for each node to allow the containers
50
+ # on that node to communicate with all other instances in the
51
+ # cluster.
52
+ #
53
+ # Finally, an entry is added to the project's global metadata indicating
54
+ # which CIDR range the cluster is using.
55
+ rpc :CreateCluster, Google::Cloud::Container::V1beta1::CreateClusterRequest, Google::Cloud::Container::V1beta1::Operation
56
+ # Updates the settings for a specific cluster.
57
+ rpc :UpdateCluster, Google::Cloud::Container::V1beta1::UpdateClusterRequest, Google::Cloud::Container::V1beta1::Operation
58
+ # Updates the version and/or image type of a specific node pool.
59
+ rpc :UpdateNodePool, Google::Cloud::Container::V1beta1::UpdateNodePoolRequest, Google::Cloud::Container::V1beta1::Operation
60
+ # Sets the autoscaling settings of a specific node pool.
61
+ rpc :SetNodePoolAutoscaling, Google::Cloud::Container::V1beta1::SetNodePoolAutoscalingRequest, Google::Cloud::Container::V1beta1::Operation
62
+ # Sets the logging service for a specific cluster.
63
+ rpc :SetLoggingService, Google::Cloud::Container::V1beta1::SetLoggingServiceRequest, Google::Cloud::Container::V1beta1::Operation
64
+ # Sets the monitoring service for a specific cluster.
65
+ rpc :SetMonitoringService, Google::Cloud::Container::V1beta1::SetMonitoringServiceRequest, Google::Cloud::Container::V1beta1::Operation
66
+ # Sets the addons for a specific cluster.
67
+ rpc :SetAddonsConfig, Google::Cloud::Container::V1beta1::SetAddonsConfigRequest, Google::Cloud::Container::V1beta1::Operation
68
+ # Sets the locations for a specific cluster.
69
+ rpc :SetLocations, Google::Cloud::Container::V1beta1::SetLocationsRequest, Google::Cloud::Container::V1beta1::Operation
70
+ # Updates the master for a specific cluster.
71
+ rpc :UpdateMaster, Google::Cloud::Container::V1beta1::UpdateMasterRequest, Google::Cloud::Container::V1beta1::Operation
72
+ # Sets master auth materials. Currently supports changing the admin password
73
+ # or a specific cluster, either via password generation or explicitly setting
74
+ # the password.
75
+ rpc :SetMasterAuth, Google::Cloud::Container::V1beta1::SetMasterAuthRequest, Google::Cloud::Container::V1beta1::Operation
76
+ # Deletes the cluster, including the Kubernetes endpoint and all worker
77
+ # nodes.
78
+ #
79
+ # Firewalls and routes that were configured during cluster creation
80
+ # are also deleted.
81
+ #
82
+ # Other Google Compute Engine resources that might be in use by the cluster,
83
+ # such as load balancer resources, are not deleted if they weren't present
84
+ # when the cluster was initially created.
85
+ rpc :DeleteCluster, Google::Cloud::Container::V1beta1::DeleteClusterRequest, Google::Cloud::Container::V1beta1::Operation
86
+ # Lists all operations in a project in the specified zone or all zones.
87
+ rpc :ListOperations, Google::Cloud::Container::V1beta1::ListOperationsRequest, Google::Cloud::Container::V1beta1::ListOperationsResponse
88
+ # Gets the specified operation.
89
+ rpc :GetOperation, Google::Cloud::Container::V1beta1::GetOperationRequest, Google::Cloud::Container::V1beta1::Operation
90
+ # Cancels the specified operation.
91
+ rpc :CancelOperation, Google::Cloud::Container::V1beta1::CancelOperationRequest, Google::Protobuf::Empty
92
+ # Returns configuration info about the Google Kubernetes Engine service.
93
+ rpc :GetServerConfig, Google::Cloud::Container::V1beta1::GetServerConfigRequest, Google::Cloud::Container::V1beta1::ServerConfig
94
+ # Lists the node pools for a cluster.
95
+ rpc :ListNodePools, Google::Cloud::Container::V1beta1::ListNodePoolsRequest, Google::Cloud::Container::V1beta1::ListNodePoolsResponse
96
+ # Retrieves the requested node pool.
97
+ rpc :GetNodePool, Google::Cloud::Container::V1beta1::GetNodePoolRequest, Google::Cloud::Container::V1beta1::NodePool
98
+ # Creates a node pool for a cluster.
99
+ rpc :CreateNodePool, Google::Cloud::Container::V1beta1::CreateNodePoolRequest, Google::Cloud::Container::V1beta1::Operation
100
+ # Deletes a node pool from a cluster.
101
+ rpc :DeleteNodePool, Google::Cloud::Container::V1beta1::DeleteNodePoolRequest, Google::Cloud::Container::V1beta1::Operation
102
+ # Rolls back a previously Aborted or Failed NodePool upgrade.
103
+ # This makes no changes if the last upgrade successfully completed.
104
+ rpc :RollbackNodePoolUpgrade, Google::Cloud::Container::V1beta1::RollbackNodePoolUpgradeRequest, Google::Cloud::Container::V1beta1::Operation
105
+ # Sets the NodeManagement options for a node pool.
106
+ rpc :SetNodePoolManagement, Google::Cloud::Container::V1beta1::SetNodePoolManagementRequest, Google::Cloud::Container::V1beta1::Operation
107
+ # Sets labels on a cluster.
108
+ rpc :SetLabels, Google::Cloud::Container::V1beta1::SetLabelsRequest, Google::Cloud::Container::V1beta1::Operation
109
+ # Enables or disables the ABAC authorization mechanism on a cluster.
110
+ rpc :SetLegacyAbac, Google::Cloud::Container::V1beta1::SetLegacyAbacRequest, Google::Cloud::Container::V1beta1::Operation
111
+ # Starts master IP rotation.
112
+ rpc :StartIPRotation, Google::Cloud::Container::V1beta1::StartIPRotationRequest, Google::Cloud::Container::V1beta1::Operation
113
+ # Completes master IP rotation.
114
+ rpc :CompleteIPRotation, Google::Cloud::Container::V1beta1::CompleteIPRotationRequest, Google::Cloud::Container::V1beta1::Operation
115
+ # Sets the size for a specific node pool.
116
+ rpc :SetNodePoolSize, Google::Cloud::Container::V1beta1::SetNodePoolSizeRequest, Google::Cloud::Container::V1beta1::Operation
117
+ # Enables or disables Network Policy for a cluster.
118
+ rpc :SetNetworkPolicy, Google::Cloud::Container::V1beta1::SetNetworkPolicyRequest, Google::Cloud::Container::V1beta1::Operation
119
+ # Sets the maintenance policy for a cluster.
120
+ rpc :SetMaintenancePolicy, Google::Cloud::Container::V1beta1::SetMaintenancePolicyRequest, Google::Cloud::Container::V1beta1::Operation
121
+ # Lists subnetworks that can be used for creating clusters in a project.
122
+ rpc :ListUsableSubnetworks, Google::Cloud::Container::V1beta1::ListUsableSubnetworksRequest, Google::Cloud::Container::V1beta1::ListUsableSubnetworksResponse
123
+ # Fetches locations that offer Google Kubernetes Engine.
124
+ rpc :ListLocations, Google::Cloud::Container::V1beta1::ListLocationsRequest, Google::Cloud::Container::V1beta1::ListLocationsResponse
125
+ end
126
+
127
+ Stub = Service.rpc_stub_class
128
+ end
129
+ end
130
+ end
131
+ end
132
+ end
@@ -0,0 +1,4 @@
1
+ # Kubernetes Engine V1beta1 Protocol Buffer Documentation
2
+
3
+ These files are for the YARD documentation of the generated protobuf files.
4
+ They are not intended to be required or loaded at runtime.
@@ -0,0 +1,59 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Copyright 2020 Google LLC
4
+ #
5
+ # Licensed under the Apache License, Version 2.0 (the "License");
6
+ # you may not use this file except in compliance with the License.
7
+ # You may obtain a copy of the License at
8
+ #
9
+ # https://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing, software
12
+ # distributed under the License is distributed on an "AS IS" BASIS,
13
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ # See the License for the specific language governing permissions and
15
+ # limitations under the License.
16
+
17
+ # Auto-generated by gapic-generator-ruby. DO NOT EDIT!
18
+
19
+
20
+ module Google
21
+ module Api
22
+ # An indicator of the behavior of a given field (for example, that a field
23
+ # is required in requests, or given as output but ignored as input).
24
+ # This **does not** change the behavior in protocol buffers itself; it only
25
+ # denotes the behavior and may affect how API tooling handles the field.
26
+ #
27
+ # Note: This enum **may** receive new values in the future.
28
+ module FieldBehavior
29
+ # Conventional default for enums. Do not use this.
30
+ FIELD_BEHAVIOR_UNSPECIFIED = 0
31
+
32
+ # Specifically denotes a field as optional.
33
+ # While all fields in protocol buffers are optional, this may be specified
34
+ # for emphasis if appropriate.
35
+ OPTIONAL = 1
36
+
37
+ # Denotes a field as required.
38
+ # This indicates that the field **must** be provided as part of the request,
39
+ # and failure to do so will cause an error (usually `INVALID_ARGUMENT`).
40
+ REQUIRED = 2
41
+
42
+ # Denotes a field as output only.
43
+ # This indicates that the field is provided in responses, but including the
44
+ # field in a request does nothing (the server *must* ignore it and
45
+ # *must not* throw an error as a result of the field's presence).
46
+ OUTPUT_ONLY = 3
47
+
48
+ # Denotes a field as input only.
49
+ # This indicates that the field is provided in requests, and the
50
+ # corresponding field is not included in output.
51
+ INPUT_ONLY = 4
52
+
53
+ # Denotes a field as immutable.
54
+ # This indicates that the field may be set once in a request to create a
55
+ # resource, but may not be changed thereafter.
56
+ IMMUTABLE = 5
57
+ end
58
+ end
59
+ end
@@ -0,0 +1,247 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Copyright 2020 Google LLC
4
+ #
5
+ # Licensed under the Apache License, Version 2.0 (the "License");
6
+ # you may not use this file except in compliance with the License.
7
+ # You may obtain a copy of the License at
8
+ #
9
+ # https://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing, software
12
+ # distributed under the License is distributed on an "AS IS" BASIS,
13
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ # See the License for the specific language governing permissions and
15
+ # limitations under the License.
16
+
17
+ # Auto-generated by gapic-generator-ruby. DO NOT EDIT!
18
+
19
+
20
+ module Google
21
+ module Api
22
+ # A simple descriptor of a resource type.
23
+ #
24
+ # ResourceDescriptor annotates a resource message (either by means of a
25
+ # protobuf annotation or use in the service config), and associates the
26
+ # resource's schema, the resource type, and the pattern of the resource name.
27
+ #
28
+ # Example:
29
+ #
30
+ # message Topic {
31
+ # // Indicates this message defines a resource schema.
32
+ # // Declares the resource type in the format of {service}/{kind}.
33
+ # // For Kubernetes resources, the format is {api group}/{kind}.
34
+ # option (google.api.resource) = {
35
+ # type: "pubsub.googleapis.com/Topic"
36
+ # name_descriptor: {
37
+ # pattern: "projects/{project}/topics/{topic}"
38
+ # parent_type: "cloudresourcemanager.googleapis.com/Project"
39
+ # parent_name_extractor: "projects/{project}"
40
+ # }
41
+ # };
42
+ # }
43
+ #
44
+ # The ResourceDescriptor Yaml config will look like:
45
+ #
46
+ # resources:
47
+ # - type: "pubsub.googleapis.com/Topic"
48
+ # name_descriptor:
49
+ # - pattern: "projects/\\{project}/topics/\\{topic}"
50
+ # parent_type: "cloudresourcemanager.googleapis.com/Project"
51
+ # parent_name_extractor: "projects/\\{project}"
52
+ #
53
+ # Sometimes, resources have multiple patterns, typically because they can
54
+ # live under multiple parents.
55
+ #
56
+ # Example:
57
+ #
58
+ # message LogEntry {
59
+ # option (google.api.resource) = {
60
+ # type: "logging.googleapis.com/LogEntry"
61
+ # name_descriptor: {
62
+ # pattern: "projects/{project}/logs/{log}"
63
+ # parent_type: "cloudresourcemanager.googleapis.com/Project"
64
+ # parent_name_extractor: "projects/{project}"
65
+ # }
66
+ # name_descriptor: {
67
+ # pattern: "folders/{folder}/logs/{log}"
68
+ # parent_type: "cloudresourcemanager.googleapis.com/Folder"
69
+ # parent_name_extractor: "folders/{folder}"
70
+ # }
71
+ # name_descriptor: {
72
+ # pattern: "organizations/{organization}/logs/{log}"
73
+ # parent_type: "cloudresourcemanager.googleapis.com/Organization"
74
+ # parent_name_extractor: "organizations/{organization}"
75
+ # }
76
+ # name_descriptor: {
77
+ # pattern: "billingAccounts/{billing_account}/logs/{log}"
78
+ # parent_type: "billing.googleapis.com/BillingAccount"
79
+ # parent_name_extractor: "billingAccounts/{billing_account}"
80
+ # }
81
+ # };
82
+ # }
83
+ #
84
+ # The ResourceDescriptor Yaml config will look like:
85
+ #
86
+ # resources:
87
+ # - type: 'logging.googleapis.com/LogEntry'
88
+ # name_descriptor:
89
+ # - pattern: "projects/{project}/logs/{log}"
90
+ # parent_type: "cloudresourcemanager.googleapis.com/Project"
91
+ # parent_name_extractor: "projects/{project}"
92
+ # - pattern: "folders/{folder}/logs/{log}"
93
+ # parent_type: "cloudresourcemanager.googleapis.com/Folder"
94
+ # parent_name_extractor: "folders/{folder}"
95
+ # - pattern: "organizations/{organization}/logs/{log}"
96
+ # parent_type: "cloudresourcemanager.googleapis.com/Organization"
97
+ # parent_name_extractor: "organizations/{organization}"
98
+ # - pattern: "billingAccounts/{billing_account}/logs/{log}"
99
+ # parent_type: "billing.googleapis.com/BillingAccount"
100
+ # parent_name_extractor: "billingAccounts/{billing_account}"
101
+ #
102
+ # For flexible resources, the resource name doesn't contain parent names, but
103
+ # the resource itself has parents for policy evaluation.
104
+ #
105
+ # Example:
106
+ #
107
+ # message Shelf {
108
+ # option (google.api.resource) = {
109
+ # type: "library.googleapis.com/Shelf"
110
+ # name_descriptor: {
111
+ # pattern: "shelves/{shelf}"
112
+ # parent_type: "cloudresourcemanager.googleapis.com/Project"
113
+ # }
114
+ # name_descriptor: {
115
+ # pattern: "shelves/{shelf}"
116
+ # parent_type: "cloudresourcemanager.googleapis.com/Folder"
117
+ # }
118
+ # };
119
+ # }
120
+ #
121
+ # The ResourceDescriptor Yaml config will look like:
122
+ #
123
+ # resources:
124
+ # - type: 'library.googleapis.com/Shelf'
125
+ # name_descriptor:
126
+ # - pattern: "shelves/{shelf}"
127
+ # parent_type: "cloudresourcemanager.googleapis.com/Project"
128
+ # - pattern: "shelves/{shelf}"
129
+ # parent_type: "cloudresourcemanager.googleapis.com/Folder"
130
+ # @!attribute [rw] type
131
+ # @return [::String]
132
+ # The resource type. It must be in the format of
133
+ # \\{service_name}/\\{resource_type_kind}. The `resource_type_kind` must be
134
+ # singular and must not include version numbers.
135
+ #
136
+ # Example: `storage.googleapis.com/Bucket`
137
+ #
138
+ # The value of the resource_type_kind must follow the regular expression
139
+ # /[A-Za-z][a-zA-Z0-9]+/. It should start with an upper case character and
140
+ # should use PascalCase (UpperCamelCase). The maximum number of
141
+ # characters allowed for the `resource_type_kind` is 100.
142
+ # @!attribute [rw] pattern
143
+ # @return [::Array<::String>]
144
+ # Optional. The relative resource name pattern associated with this resource
145
+ # type. The DNS prefix of the full resource name shouldn't be specified here.
146
+ #
147
+ # The path pattern must follow the syntax, which aligns with HTTP binding
148
+ # syntax:
149
+ #
150
+ # Template = Segment { "/" Segment } ;
151
+ # Segment = LITERAL | Variable ;
152
+ # Variable = "{" LITERAL "}" ;
153
+ #
154
+ # Examples:
155
+ #
156
+ # - "projects/\\{project}/topics/\\{topic}"
157
+ # - "projects/\\{project}/knowledgeBases/\\{knowledge_base}"
158
+ #
159
+ # The components in braces correspond to the IDs for each resource in the
160
+ # hierarchy. It is expected that, if multiple patterns are provided,
161
+ # the same component name (e.g. "project") refers to IDs of the same
162
+ # type of resource.
163
+ # @!attribute [rw] name_field
164
+ # @return [::String]
165
+ # Optional. The field on the resource that designates the resource name
166
+ # field. If omitted, this is assumed to be "name".
167
+ # @!attribute [rw] history
168
+ # @return [::Google::Api::ResourceDescriptor::History]
169
+ # Optional. The historical or future-looking state of the resource pattern.
170
+ #
171
+ # Example:
172
+ #
173
+ # // The InspectTemplate message originally only supported resource
174
+ # // names with organization, and project was added later.
175
+ # message InspectTemplate {
176
+ # option (google.api.resource) = {
177
+ # type: "dlp.googleapis.com/InspectTemplate"
178
+ # pattern:
179
+ # "organizations/{organization}/inspectTemplates/{inspect_template}"
180
+ # pattern: "projects/{project}/inspectTemplates/{inspect_template}"
181
+ # history: ORIGINALLY_SINGLE_PATTERN
182
+ # };
183
+ # }
184
+ # @!attribute [rw] plural
185
+ # @return [::String]
186
+ # The plural name used in the resource name, such as 'projects' for
187
+ # the name of 'projects/\\{project}'. It is the same concept of the `plural`
188
+ # field in k8s CRD spec
189
+ # https://kubernetes.io/docs/tasks/access-kubernetes-api/custom-resources/custom-resource-definitions/
190
+ # @!attribute [rw] singular
191
+ # @return [::String]
192
+ # The same concept of the `singular` field in k8s CRD spec
193
+ # https://kubernetes.io/docs/tasks/access-kubernetes-api/custom-resources/custom-resource-definitions/
194
+ # Such as "project" for the `resourcemanager.googleapis.com/Project` type.
195
+ class ResourceDescriptor
196
+ include ::Google::Protobuf::MessageExts
197
+ extend ::Google::Protobuf::MessageExts::ClassMethods
198
+
199
+ # A description of the historical or future-looking state of the
200
+ # resource pattern.
201
+ module History
202
+ # The "unset" value.
203
+ HISTORY_UNSPECIFIED = 0
204
+
205
+ # The resource originally had one pattern and launched as such, and
206
+ # additional patterns were added later.
207
+ ORIGINALLY_SINGLE_PATTERN = 1
208
+
209
+ # The resource has one pattern, but the API owner expects to add more
210
+ # later. (This is the inverse of ORIGINALLY_SINGLE_PATTERN, and prevents
211
+ # that from being necessary once there are multiple patterns.)
212
+ FUTURE_MULTI_PATTERN = 2
213
+ end
214
+ end
215
+
216
+ # Defines a proto annotation that describes a string field that refers to
217
+ # an API resource.
218
+ # @!attribute [rw] type
219
+ # @return [::String]
220
+ # The resource type that the annotated field references.
221
+ #
222
+ # Example:
223
+ #
224
+ # message Subscription {
225
+ # string topic = 2 [(google.api.resource_reference) = {
226
+ # type: "pubsub.googleapis.com/Topic"
227
+ # }];
228
+ # }
229
+ # @!attribute [rw] child_type
230
+ # @return [::String]
231
+ # The resource type of a child collection that the annotated field
232
+ # references. This is useful for annotating the `parent` field that
233
+ # doesn't have a fixed resource type.
234
+ #
235
+ # Example:
236
+ #
237
+ # message ListLogEntriesRequest {
238
+ # string parent = 1 [(google.api.resource_reference) = {
239
+ # child_type: "logging.googleapis.com/LogEntry"
240
+ # };
241
+ # }
242
+ class ResourceReference
243
+ include ::Google::Protobuf::MessageExts
244
+ extend ::Google::Protobuf::MessageExts::ClassMethods
245
+ end
246
+ end
247
+ end
@@ -0,0 +1,2854 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Copyright 2020 Google LLC
4
+ #
5
+ # Licensed under the Apache License, Version 2.0 (the "License");
6
+ # you may not use this file except in compliance with the License.
7
+ # You may obtain a copy of the License at
8
+ #
9
+ # https://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing, software
12
+ # distributed under the License is distributed on an "AS IS" BASIS,
13
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ # See the License for the specific language governing permissions and
15
+ # limitations under the License.
16
+
17
+ # Auto-generated by gapic-generator-ruby. DO NOT EDIT!
18
+
19
+
20
+ module Google
21
+ module Cloud
22
+ module Container
23
+ module V1beta1
24
+ # Parameters that describe the nodes in a cluster.
25
+ # @!attribute [rw] machine_type
26
+ # @return [::String]
27
+ # The name of a Google Compute Engine [machine
28
+ # type](https://cloud.google.com/compute/docs/machine-types) (e.g.
29
+ # `n1-standard-1`).
30
+ #
31
+ # If unspecified, the default machine type is
32
+ # `n1-standard-1`.
33
+ # @!attribute [rw] disk_size_gb
34
+ # @return [::Integer]
35
+ # Size of the disk attached to each node, specified in GB.
36
+ # The smallest allowed disk size is 10GB.
37
+ #
38
+ # If unspecified, the default disk size is 100GB.
39
+ # @!attribute [rw] oauth_scopes
40
+ # @return [::Array<::String>]
41
+ # The set of Google API scopes to be made available on all of the
42
+ # node VMs under the "default" service account.
43
+ #
44
+ # The following scopes are recommended, but not required, and by default are
45
+ # not included:
46
+ #
47
+ # * `https://www.googleapis.com/auth/compute` is required for mounting
48
+ # persistent storage on your nodes.
49
+ # * `https://www.googleapis.com/auth/devstorage.read_only` is required for
50
+ # communicating with **gcr.io**
51
+ # (the [Google Container Registry](https://cloud.google.com/container-registry/)).
52
+ #
53
+ # If unspecified, no scopes are added, unless Cloud Logging or Cloud
54
+ # Monitoring are enabled, in which case their required scopes will be added.
55
+ # @!attribute [rw] service_account
56
+ # @return [::String]
57
+ # The Google Cloud Platform Service Account to be used by the node VMs. If
58
+ # no Service Account is specified, the "default" service account is used.
59
+ # @!attribute [rw] metadata
60
+ # @return [::Google::Protobuf::Map{::String => ::String}]
61
+ # The metadata key/value pairs assigned to instances in the cluster.
62
+ #
63
+ # Keys must conform to the regexp [a-zA-Z0-9-_]+ and be less than 128 bytes
64
+ # in length. These are reflected as part of a URL in the metadata server.
65
+ # Additionally, to avoid ambiguity, keys must not conflict with any other
66
+ # metadata keys for the project or be one of the reserved keys:
67
+ # "cluster-location"
68
+ # "cluster-name"
69
+ # "cluster-uid"
70
+ # "configure-sh"
71
+ # "containerd-configure-sh"
72
+ # "enable-oslogin"
73
+ # "gci-ensure-gke-docker"
74
+ # "gci-metrics-enabled"
75
+ # "gci-update-strategy"
76
+ # "instance-template"
77
+ # "kube-env"
78
+ # "startup-script"
79
+ # "user-data"
80
+ # "disable-address-manager"
81
+ # "windows-startup-script-ps1"
82
+ # "common-psm1"
83
+ # "k8s-node-setup-psm1"
84
+ # "install-ssh-psm1"
85
+ # "user-profile-psm1"
86
+ # "serial-port-logging-enable"
87
+ # Values are free-form strings, and only have meaning as interpreted by
88
+ # the image running in the instance. The only restriction placed on them is
89
+ # that each value's size must be less than or equal to 32 KB.
90
+ #
91
+ # The total size of all keys and values must be less than 512 KB.
92
+ # @!attribute [rw] image_type
93
+ # @return [::String]
94
+ # The image type to use for this node. Note that for a given image type,
95
+ # the latest version of it will be used.
96
+ # @!attribute [rw] labels
97
+ # @return [::Google::Protobuf::Map{::String => ::String}]
98
+ # The map of Kubernetes labels (key/value pairs) to be applied to each node.
99
+ # These will added in addition to any default label(s) that
100
+ # Kubernetes may apply to the node.
101
+ # In case of conflict in label keys, the applied set may differ depending on
102
+ # the Kubernetes version -- it's best to assume the behavior is undefined
103
+ # and conflicts should be avoided.
104
+ # For more information, including usage and the valid values, see:
105
+ # https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
106
+ # @!attribute [rw] local_ssd_count
107
+ # @return [::Integer]
108
+ # The number of local SSD disks to be attached to the node.
109
+ #
110
+ # The limit for this value is dependent upon the maximum number of
111
+ # disks available on a machine per zone. See:
112
+ # https://cloud.google.com/compute/docs/disks/local-ssd
113
+ # for more information.
114
+ # @!attribute [rw] tags
115
+ # @return [::Array<::String>]
116
+ # The list of instance tags applied to all nodes. Tags are used to identify
117
+ # valid sources or targets for network firewalls and are specified by
118
+ # the client during cluster or node pool creation. Each tag within the list
119
+ # must comply with RFC1035.
120
+ # @!attribute [rw] preemptible
121
+ # @return [::Boolean]
122
+ # Whether the nodes are created as preemptible VM instances. See:
123
+ # https://cloud.google.com/compute/docs/instances/preemptible for more
124
+ # inforamtion about preemptible VM instances.
125
+ # @!attribute [rw] accelerators
126
+ # @return [::Array<::Google::Cloud::Container::V1beta1::AcceleratorConfig>]
127
+ # A list of hardware accelerators to be attached to each node.
128
+ # See https://cloud.google.com/compute/docs/gpus for more information about
129
+ # support for GPUs.
130
+ # @!attribute [rw] disk_type
131
+ # @return [::String]
132
+ # Type of the disk attached to each node (e.g. 'pd-standard' or 'pd-ssd')
133
+ #
134
+ # If unspecified, the default disk type is 'pd-standard'
135
+ # @!attribute [rw] min_cpu_platform
136
+ # @return [::String]
137
+ # Minimum CPU platform to be used by this instance. The instance may be
138
+ # scheduled on the specified or newer CPU platform. Applicable values are the
139
+ # friendly names of CPU platforms, such as
140
+ # <code>minCpuPlatform: &quot;Intel Haswell&quot;</code> or
141
+ # <code>minCpuPlatform: &quot;Intel Sandy Bridge&quot;</code>. For more
142
+ # information, read [how to specify min CPU
143
+ # platform](https://cloud.google.com/compute/docs/instances/specify-min-cpu-platform)
144
+ # To unset the min cpu platform field pass "automatic" as field value.
145
+ # @!attribute [rw] workload_metadata_config
146
+ # @return [::Google::Cloud::Container::V1beta1::WorkloadMetadataConfig]
147
+ # The workload metadata configuration for this node.
148
+ # @!attribute [rw] taints
149
+ # @return [::Array<::Google::Cloud::Container::V1beta1::NodeTaint>]
150
+ # List of kubernetes taints to be applied to each node.
151
+ #
152
+ # For more information, including usage and the valid values, see:
153
+ # https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
154
+ # @!attribute [rw] shielded_instance_config
155
+ # @return [::Google::Cloud::Container::V1beta1::ShieldedInstanceConfig]
156
+ # Shielded Instance options.
157
+ class NodeConfig
158
+ include ::Google::Protobuf::MessageExts
159
+ extend ::Google::Protobuf::MessageExts::ClassMethods
160
+
161
+ # @!attribute [rw] key
162
+ # @return [::String]
163
+ # @!attribute [rw] value
164
+ # @return [::String]
165
+ class MetadataEntry
166
+ include ::Google::Protobuf::MessageExts
167
+ extend ::Google::Protobuf::MessageExts::ClassMethods
168
+ end
169
+
170
+ # @!attribute [rw] key
171
+ # @return [::String]
172
+ # @!attribute [rw] value
173
+ # @return [::String]
174
+ class LabelsEntry
175
+ include ::Google::Protobuf::MessageExts
176
+ extend ::Google::Protobuf::MessageExts::ClassMethods
177
+ end
178
+ end
179
+
180
+ # A set of Shielded Instance options.
181
+ # @!attribute [rw] enable_secure_boot
182
+ # @return [::Boolean]
183
+ # Defines whether the instance has Secure Boot enabled.
184
+ #
185
+ # Secure Boot helps ensure that the system only runs authentic software by
186
+ # verifying the digital signature of all boot components, and halting the
187
+ # boot process if signature verification fails.
188
+ # @!attribute [rw] enable_integrity_monitoring
189
+ # @return [::Boolean]
190
+ # Defines whether the instance has integrity monitoring enabled.
191
+ #
192
+ # Enables monitoring and attestation of the boot integrity of the instance.
193
+ # The attestation is performed against the integrity policy baseline. This
194
+ # baseline is initially derived from the implicitly trusted boot image when
195
+ # the instance is created.
196
+ class ShieldedInstanceConfig
197
+ include ::Google::Protobuf::MessageExts
198
+ extend ::Google::Protobuf::MessageExts::ClassMethods
199
+ end
200
+
201
+ # Kubernetes taint is comprised of three fields: key, value, and effect. Effect
202
+ # can only be one of three types: NoSchedule, PreferNoSchedule or NoExecute.
203
+ #
204
+ # For more information, including usage and the valid values, see:
205
+ # https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
206
+ # @!attribute [rw] key
207
+ # @return [::String]
208
+ # Key for taint.
209
+ # @!attribute [rw] value
210
+ # @return [::String]
211
+ # Value for taint.
212
+ # @!attribute [rw] effect
213
+ # @return [::Google::Cloud::Container::V1beta1::NodeTaint::Effect]
214
+ # Effect for taint.
215
+ class NodeTaint
216
+ include ::Google::Protobuf::MessageExts
217
+ extend ::Google::Protobuf::MessageExts::ClassMethods
218
+
219
+ # Possible values for Effect in taint.
220
+ module Effect
221
+ # Not set
222
+ EFFECT_UNSPECIFIED = 0
223
+
224
+ # NoSchedule
225
+ NO_SCHEDULE = 1
226
+
227
+ # PreferNoSchedule
228
+ PREFER_NO_SCHEDULE = 2
229
+
230
+ # NoExecute
231
+ NO_EXECUTE = 3
232
+ end
233
+ end
234
+
235
+ # The authentication information for accessing the master endpoint.
236
+ # Authentication can be done using HTTP basic auth or using client
237
+ # certificates.
238
+ # @!attribute [rw] username
239
+ # @return [::String]
240
+ # The username to use for HTTP basic authentication to the master endpoint.
241
+ # For clusters v1.6.0 and later, basic authentication can be disabled by
242
+ # leaving username unspecified (or setting it to the empty string).
243
+ # @!attribute [rw] password
244
+ # @return [::String]
245
+ # The password to use for HTTP basic authentication to the master endpoint.
246
+ # Because the master endpoint is open to the Internet, you should create a
247
+ # strong password. If a password is provided for cluster creation, username
248
+ # must be non-empty.
249
+ # @!attribute [rw] client_certificate_config
250
+ # @return [::Google::Cloud::Container::V1beta1::ClientCertificateConfig]
251
+ # Configuration for client certificate authentication on the cluster. For
252
+ # clusters before v1.12, if no configuration is specified, a client
253
+ # certificate is issued.
254
+ # @!attribute [rw] cluster_ca_certificate
255
+ # @return [::String]
256
+ # [Output only] Base64-encoded public certificate that is the root of
257
+ # trust for the cluster.
258
+ # @!attribute [rw] client_certificate
259
+ # @return [::String]
260
+ # [Output only] Base64-encoded public certificate used by clients to
261
+ # authenticate to the cluster endpoint.
262
+ # @!attribute [rw] client_key
263
+ # @return [::String]
264
+ # [Output only] Base64-encoded private key used by clients to authenticate
265
+ # to the cluster endpoint.
266
+ class MasterAuth
267
+ include ::Google::Protobuf::MessageExts
268
+ extend ::Google::Protobuf::MessageExts::ClassMethods
269
+ end
270
+
271
+ # Configuration for client certificates on the cluster.
272
+ # @!attribute [rw] issue_client_certificate
273
+ # @return [::Boolean]
274
+ # Issue a client certificate.
275
+ class ClientCertificateConfig
276
+ include ::Google::Protobuf::MessageExts
277
+ extend ::Google::Protobuf::MessageExts::ClassMethods
278
+ end
279
+
280
+ # Configuration for the addons that can be automatically spun up in the
281
+ # cluster, enabling additional functionality.
282
+ # @!attribute [rw] http_load_balancing
283
+ # @return [::Google::Cloud::Container::V1beta1::HttpLoadBalancing]
284
+ # Configuration for the HTTP (L7) load balancing controller addon, which
285
+ # makes it easy to set up HTTP load balancers for services in a cluster.
286
+ # @!attribute [rw] horizontal_pod_autoscaling
287
+ # @return [::Google::Cloud::Container::V1beta1::HorizontalPodAutoscaling]
288
+ # Configuration for the horizontal pod autoscaling feature, which
289
+ # increases or decreases the number of replica pods a replication controller
290
+ # has based on the resource usage of the existing pods.
291
+ # @!attribute [rw] kubernetes_dashboard
292
+ # @return [::Google::Cloud::Container::V1beta1::KubernetesDashboard]
293
+ # Configuration for the Kubernetes Dashboard.
294
+ # This addon is deprecated, and will be disabled in 1.15. It is recommended
295
+ # to use the Cloud Console to manage and monitor your Kubernetes clusters,
296
+ # workloads and applications. For more information, see:
297
+ # https://cloud.google.com/kubernetes-engine/docs/concepts/dashboards
298
+ # @!attribute [rw] network_policy_config
299
+ # @return [::Google::Cloud::Container::V1beta1::NetworkPolicyConfig]
300
+ # Configuration for NetworkPolicy. This only tracks whether the addon
301
+ # is enabled or not on the Master, it does not track whether network policy
302
+ # is enabled for the nodes.
303
+ # @!attribute [rw] istio_config
304
+ # @return [::Google::Cloud::Container::V1beta1::IstioConfig]
305
+ # Configuration for Istio, an open platform to connect, manage, and secure
306
+ # microservices.
307
+ # @!attribute [rw] cloud_run_config
308
+ # @return [::Google::Cloud::Container::V1beta1::CloudRunConfig]
309
+ # Configuration for the Cloud Run addon. The `IstioConfig` addon must be
310
+ # enabled in order to enable Cloud Run addon. This option can only be enabled
311
+ # at cluster creation time.
312
+ class AddonsConfig
313
+ include ::Google::Protobuf::MessageExts
314
+ extend ::Google::Protobuf::MessageExts::ClassMethods
315
+ end
316
+
317
+ # Configuration options for the HTTP (L7) load balancing controller addon,
318
+ # which makes it easy to set up HTTP load balancers for services in a cluster.
319
+ # @!attribute [rw] disabled
320
+ # @return [::Boolean]
321
+ # Whether the HTTP Load Balancing controller is enabled in the cluster.
322
+ # When enabled, it runs a small pod in the cluster that manages the load
323
+ # balancers.
324
+ class HttpLoadBalancing
325
+ include ::Google::Protobuf::MessageExts
326
+ extend ::Google::Protobuf::MessageExts::ClassMethods
327
+ end
328
+
329
+ # Configuration options for the horizontal pod autoscaling feature, which
330
+ # increases or decreases the number of replica pods a replication controller
331
+ # has based on the resource usage of the existing pods.
332
+ # @!attribute [rw] disabled
333
+ # @return [::Boolean]
334
+ # Whether the Horizontal Pod Autoscaling feature is enabled in the cluster.
335
+ # When enabled, it ensures that a Heapster pod is running in the cluster,
336
+ # which is also used by the Cloud Monitoring service.
337
+ class HorizontalPodAutoscaling
338
+ include ::Google::Protobuf::MessageExts
339
+ extend ::Google::Protobuf::MessageExts::ClassMethods
340
+ end
341
+
342
+ # Configuration for the Kubernetes Dashboard.
343
+ # @!attribute [rw] disabled
344
+ # @return [::Boolean]
345
+ # Whether the Kubernetes Dashboard is enabled for this cluster.
346
+ class KubernetesDashboard
347
+ include ::Google::Protobuf::MessageExts
348
+ extend ::Google::Protobuf::MessageExts::ClassMethods
349
+ end
350
+
351
+ # Configuration for NetworkPolicy. This only tracks whether the addon
352
+ # is enabled or not on the Master, it does not track whether network policy
353
+ # is enabled for the nodes.
354
+ # @!attribute [rw] disabled
355
+ # @return [::Boolean]
356
+ # Whether NetworkPolicy is enabled for this cluster.
357
+ class NetworkPolicyConfig
358
+ include ::Google::Protobuf::MessageExts
359
+ extend ::Google::Protobuf::MessageExts::ClassMethods
360
+ end
361
+
362
+ # Configuration options for private clusters.
363
+ # @!attribute [rw] enable_private_nodes
364
+ # @return [::Boolean]
365
+ # Whether nodes have internal IP addresses only. If enabled, all nodes are
366
+ # given only RFC 1918 private addresses and communicate with the master via
367
+ # private networking.
368
+ # @!attribute [rw] enable_private_endpoint
369
+ # @return [::Boolean]
370
+ # Whether the master's internal IP address is used as the cluster endpoint.
371
+ # @!attribute [rw] master_ipv4_cidr_block
372
+ # @return [::String]
373
+ # The IP range in CIDR notation to use for the hosted master network. This
374
+ # range will be used for assigning internal IP addresses to the master or
375
+ # set of masters, as well as the ILB VIP. This range must not overlap with
376
+ # any other ranges in use within the cluster's network.
377
+ # @!attribute [rw] private_endpoint
378
+ # @return [::String]
379
+ # Output only. The internal IP address of this cluster's master endpoint.
380
+ # @!attribute [rw] public_endpoint
381
+ # @return [::String]
382
+ # Output only. The external IP address of this cluster's master endpoint.
383
+ class PrivateClusterConfig
384
+ include ::Google::Protobuf::MessageExts
385
+ extend ::Google::Protobuf::MessageExts::ClassMethods
386
+ end
387
+
388
+ # Configuration options for Istio addon.
389
+ # @!attribute [rw] disabled
390
+ # @return [::Boolean]
391
+ # Whether Istio is enabled for this cluster.
392
+ # @!attribute [rw] auth
393
+ # @return [::Google::Cloud::Container::V1beta1::IstioConfig::IstioAuthMode]
394
+ # The specified Istio auth mode, either none, or mutual TLS.
395
+ class IstioConfig
396
+ include ::Google::Protobuf::MessageExts
397
+ extend ::Google::Protobuf::MessageExts::ClassMethods
398
+
399
+ # Istio auth mode, https://istio.io/docs/concepts/security/mutual-tls.html
400
+ module IstioAuthMode
401
+ # auth not enabled
402
+ AUTH_NONE = 0
403
+
404
+ # auth mutual TLS enabled
405
+ AUTH_MUTUAL_TLS = 1
406
+ end
407
+ end
408
+
409
+ # Configuration options for the Cloud Run feature.
410
+ # @!attribute [rw] disabled
411
+ # @return [::Boolean]
412
+ # Whether Cloud Run addon is enabled for this cluster.
413
+ class CloudRunConfig
414
+ include ::Google::Protobuf::MessageExts
415
+ extend ::Google::Protobuf::MessageExts::ClassMethods
416
+ end
417
+
418
+ # Configuration options for the master authorized networks feature. Enabled
419
+ # master authorized networks will disallow all external traffic to access
420
+ # Kubernetes master through HTTPS except traffic from the given CIDR blocks,
421
+ # Google Compute Engine Public IPs and Google Prod IPs.
422
+ # @!attribute [rw] enabled
423
+ # @return [::Boolean]
424
+ # Whether or not master authorized networks is enabled.
425
+ # @!attribute [rw] cidr_blocks
426
+ # @return [::Array<::Google::Cloud::Container::V1beta1::MasterAuthorizedNetworksConfig::CidrBlock>]
427
+ # cidr_blocks define up to 10 external networks that could access
428
+ # Kubernetes master through HTTPS.
429
+ class MasterAuthorizedNetworksConfig
430
+ include ::Google::Protobuf::MessageExts
431
+ extend ::Google::Protobuf::MessageExts::ClassMethods
432
+
433
+ # CidrBlock contains an optional name and one CIDR block.
434
+ # @!attribute [rw] display_name
435
+ # @return [::String]
436
+ # display_name is an optional field for users to identify CIDR blocks.
437
+ # @!attribute [rw] cidr_block
438
+ # @return [::String]
439
+ # cidr_block must be specified in CIDR notation.
440
+ class CidrBlock
441
+ include ::Google::Protobuf::MessageExts
442
+ extend ::Google::Protobuf::MessageExts::ClassMethods
443
+ end
444
+ end
445
+
446
+ # Configuration for the legacy Attribute Based Access Control authorization
447
+ # mode.
448
+ # @!attribute [rw] enabled
449
+ # @return [::Boolean]
450
+ # Whether the ABAC authorizer is enabled for this cluster. When enabled,
451
+ # identities in the system, including service accounts, nodes, and
452
+ # controllers, will have statically granted permissions beyond those
453
+ # provided by the RBAC configuration or IAM.
454
+ class LegacyAbac
455
+ include ::Google::Protobuf::MessageExts
456
+ extend ::Google::Protobuf::MessageExts::ClassMethods
457
+ end
458
+
459
+ # Configuration options for the NetworkPolicy feature.
460
+ # https://kubernetes.io/docs/concepts/services-networking/networkpolicies/
461
+ # @!attribute [rw] provider
462
+ # @return [::Google::Cloud::Container::V1beta1::NetworkPolicy::Provider]
463
+ # The selected network policy provider.
464
+ # @!attribute [rw] enabled
465
+ # @return [::Boolean]
466
+ # Whether network policy is enabled on the cluster.
467
+ class NetworkPolicy
468
+ include ::Google::Protobuf::MessageExts
469
+ extend ::Google::Protobuf::MessageExts::ClassMethods
470
+
471
+ # Allowed Network Policy providers.
472
+ module Provider
473
+ # Not set
474
+ PROVIDER_UNSPECIFIED = 0
475
+
476
+ # Tigera (Calico Felix).
477
+ CALICO = 1
478
+ end
479
+ end
480
+
481
+ # Configuration for controlling how IPs are allocated in the cluster.
482
+ # @!attribute [rw] use_ip_aliases
483
+ # @return [::Boolean]
484
+ # Whether alias IPs will be used for pod IPs in the cluster.
485
+ # @!attribute [rw] create_subnetwork
486
+ # @return [::Boolean]
487
+ # Whether a new subnetwork will be created automatically for the cluster.
488
+ #
489
+ # This field is only applicable when `use_ip_aliases` is true.
490
+ # @!attribute [rw] subnetwork_name
491
+ # @return [::String]
492
+ # A custom subnetwork name to be used if `create_subnetwork` is true. If
493
+ # this field is empty, then an automatic name will be chosen for the new
494
+ # subnetwork.
495
+ # @!attribute [rw] cluster_ipv4_cidr
496
+ # @return [::String]
497
+ # This field is deprecated, use cluster_ipv4_cidr_block.
498
+ # @!attribute [rw] node_ipv4_cidr
499
+ # @return [::String]
500
+ # This field is deprecated, use node_ipv4_cidr_block.
501
+ # @!attribute [rw] services_ipv4_cidr
502
+ # @return [::String]
503
+ # This field is deprecated, use services_ipv4_cidr_block.
504
+ # @!attribute [rw] cluster_secondary_range_name
505
+ # @return [::String]
506
+ # The name of the secondary range to be used for the cluster CIDR
507
+ # block. The secondary range will be used for pod IP
508
+ # addresses. This must be an existing secondary range associated
509
+ # with the cluster subnetwork.
510
+ #
511
+ # This field is only applicable with use_ip_aliases and
512
+ # create_subnetwork is false.
513
+ # @!attribute [rw] services_secondary_range_name
514
+ # @return [::String]
515
+ # The name of the secondary range to be used as for the services
516
+ # CIDR block. The secondary range will be used for service
517
+ # ClusterIPs. This must be an existing secondary range associated
518
+ # with the cluster subnetwork.
519
+ #
520
+ # This field is only applicable with use_ip_aliases and
521
+ # create_subnetwork is false.
522
+ # @!attribute [rw] cluster_ipv4_cidr_block
523
+ # @return [::String]
524
+ # The IP address range for the cluster pod IPs. If this field is set, then
525
+ # `cluster.cluster_ipv4_cidr` must be left blank.
526
+ #
527
+ # This field is only applicable when `use_ip_aliases` is true.
528
+ #
529
+ # Set to blank to have a range chosen with the default size.
530
+ #
531
+ # Set to /netmask (e.g. `/14`) to have a range chosen with a specific
532
+ # netmask.
533
+ #
534
+ # Set to a
535
+ # [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)
536
+ # notation (e.g. `10.96.0.0/14`) from the RFC-1918 private networks (e.g.
537
+ # `10.0.0.0/8`, `172.16.0.0/12`, `192.168.0.0/16`) to pick a specific range
538
+ # to use.
539
+ # @!attribute [rw] node_ipv4_cidr_block
540
+ # @return [::String]
541
+ # The IP address range of the instance IPs in this cluster.
542
+ #
543
+ # This is applicable only if `create_subnetwork` is true.
544
+ #
545
+ # Set to blank to have a range chosen with the default size.
546
+ #
547
+ # Set to /netmask (e.g. `/14`) to have a range chosen with a specific
548
+ # netmask.
549
+ #
550
+ # Set to a
551
+ # [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)
552
+ # notation (e.g. `10.96.0.0/14`) from the RFC-1918 private networks (e.g.
553
+ # `10.0.0.0/8`, `172.16.0.0/12`, `192.168.0.0/16`) to pick a specific range
554
+ # to use.
555
+ # @!attribute [rw] services_ipv4_cidr_block
556
+ # @return [::String]
557
+ # The IP address range of the services IPs in this cluster. If blank, a range
558
+ # will be automatically chosen with the default size.
559
+ #
560
+ # This field is only applicable when `use_ip_aliases` is true.
561
+ #
562
+ # Set to blank to have a range chosen with the default size.
563
+ #
564
+ # Set to /netmask (e.g. `/14`) to have a range chosen with a specific
565
+ # netmask.
566
+ #
567
+ # Set to a
568
+ # [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)
569
+ # notation (e.g. `10.96.0.0/14`) from the RFC-1918 private networks (e.g.
570
+ # `10.0.0.0/8`, `172.16.0.0/12`, `192.168.0.0/16`) to pick a specific range
571
+ # to use.
572
+ # @!attribute [rw] allow_route_overlap
573
+ # @return [::Boolean]
574
+ # If true, allow allocation of cluster CIDR ranges that overlap with certain
575
+ # kinds of network routes. By default we do not allow cluster CIDR ranges to
576
+ # intersect with any user declared routes. With allow_route_overlap == true,
577
+ # we allow overlapping with CIDR ranges that are larger than the cluster CIDR
578
+ # range.
579
+ #
580
+ # If this field is set to true, then cluster and services CIDRs must be
581
+ # fully-specified (e.g. `10.96.0.0/14`, but not `/14`), which means:
582
+ # 1) When `use_ip_aliases` is true, `cluster_ipv4_cidr_block` and
583
+ # `services_ipv4_cidr_block` must be fully-specified.
584
+ # 2) When `use_ip_aliases` is false, `cluster.cluster_ipv4_cidr` muse be
585
+ # fully-specified.
586
+ # @!attribute [rw] tpu_ipv4_cidr_block
587
+ # @return [::String]
588
+ # The IP address range of the Cloud TPUs in this cluster. If unspecified, a
589
+ # range will be automatically chosen with the default size.
590
+ #
591
+ # This field is only applicable when `use_ip_aliases` is true.
592
+ #
593
+ # If unspecified, the range will use the default size.
594
+ #
595
+ # Set to /netmask (e.g. `/14`) to have a range chosen with a specific
596
+ # netmask.
597
+ #
598
+ # Set to a
599
+ # [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)
600
+ # notation (e.g. `10.96.0.0/14`) from the RFC-1918 private networks (e.g.
601
+ # `10.0.0.0/8`, `172.16.0.0/12`, `192.168.0.0/16`) to pick a specific range
602
+ # to use.
603
+ class IPAllocationPolicy
604
+ include ::Google::Protobuf::MessageExts
605
+ extend ::Google::Protobuf::MessageExts::ClassMethods
606
+ end
607
+
608
+ # Configuration for Binary Authorization.
609
+ # @!attribute [rw] enabled
610
+ # @return [::Boolean]
611
+ # Enable Binary Authorization for this cluster. If enabled, all container
612
+ # images will be validated by Google Binauthz.
613
+ class BinaryAuthorization
614
+ include ::Google::Protobuf::MessageExts
615
+ extend ::Google::Protobuf::MessageExts::ClassMethods
616
+ end
617
+
618
+ # Configuration for the PodSecurityPolicy feature.
619
+ # @!attribute [rw] enabled
620
+ # @return [::Boolean]
621
+ # Enable the PodSecurityPolicy controller for this cluster. If enabled, pods
622
+ # must be valid under a PodSecurityPolicy to be created.
623
+ class PodSecurityPolicyConfig
624
+ include ::Google::Protobuf::MessageExts
625
+ extend ::Google::Protobuf::MessageExts::ClassMethods
626
+ end
627
+
628
+ # Configuration for returning group information from authenticators.
629
+ # @!attribute [rw] enabled
630
+ # @return [::Boolean]
631
+ # Whether this cluster should return group membership lookups
632
+ # during authentication using a group of security groups.
633
+ # @!attribute [rw] security_group
634
+ # @return [::String]
635
+ # The name of the security group-of-groups to be used. Only relevant
636
+ # if enabled = true.
637
+ class AuthenticatorGroupsConfig
638
+ include ::Google::Protobuf::MessageExts
639
+ extend ::Google::Protobuf::MessageExts::ClassMethods
640
+ end
641
+
642
+ # A Google Kubernetes Engine cluster.
643
+ # @!attribute [rw] name
644
+ # @return [::String]
645
+ # The name of this cluster. The name must be unique within this project
646
+ # and location (e.g. zone or region), and can be up to 40 characters with
647
+ # the following restrictions:
648
+ #
649
+ # * Lowercase letters, numbers, and hyphens only.
650
+ # * Must start with a letter.
651
+ # * Must end with a number or a letter.
652
+ # @!attribute [rw] description
653
+ # @return [::String]
654
+ # An optional description of this cluster.
655
+ # @!attribute [rw] initial_node_count
656
+ # @return [::Integer]
657
+ # The number of nodes to create in this cluster. You must ensure that your
658
+ # Compute Engine <a href="/compute/docs/resource-quotas">resource quota</a>
659
+ # is sufficient for this number of instances. You must also have available
660
+ # firewall and routes quota.
661
+ # For requests, this field should only be used in lieu of a
662
+ # "node_pool" object, since this configuration (along with the
663
+ # "node_config") will be used to create a "NodePool" object with an
664
+ # auto-generated name. Do not use this and a node_pool at the same time.
665
+ #
666
+ # This field is deprecated, use node_pool.initial_node_count instead.
667
+ # @!attribute [rw] node_config
668
+ # @return [::Google::Cloud::Container::V1beta1::NodeConfig]
669
+ # Parameters used in creating the cluster's nodes.
670
+ # For requests, this field should only be used in lieu of a
671
+ # "node_pool" object, since this configuration (along with the
672
+ # "initial_node_count") will be used to create a "NodePool" object with an
673
+ # auto-generated name. Do not use this and a node_pool at the same time.
674
+ # For responses, this field will be populated with the node configuration of
675
+ # the first node pool. (For configuration of each node pool, see
676
+ # `node_pool.config`)
677
+ #
678
+ # If unspecified, the defaults are used.
679
+ # This field is deprecated, use node_pool.config instead.
680
+ # @!attribute [rw] master_auth
681
+ # @return [::Google::Cloud::Container::V1beta1::MasterAuth]
682
+ # The authentication information for accessing the master endpoint.
683
+ # If unspecified, the defaults are used:
684
+ # For clusters before v1.12, if master_auth is unspecified, `username` will
685
+ # be set to "admin", a random password will be generated, and a client
686
+ # certificate will be issued.
687
+ # @!attribute [rw] logging_service
688
+ # @return [::String]
689
+ # The logging service the cluster should use to write logs.
690
+ # Currently available options:
691
+ #
692
+ # * `logging.googleapis.com` - the Google Cloud Logging service.
693
+ # * `none` - no logs will be exported from the cluster.
694
+ # * if left as an empty string,`logging.googleapis.com` will be used.
695
+ # @!attribute [rw] monitoring_service
696
+ # @return [::String]
697
+ # The monitoring service the cluster should use to write metrics.
698
+ # Currently available options:
699
+ #
700
+ # * `monitoring.googleapis.com` - the Google Cloud Monitoring service.
701
+ # * `none` - no metrics will be exported from the cluster.
702
+ # * if left as an empty string, `monitoring.googleapis.com` will be used.
703
+ # @!attribute [rw] network
704
+ # @return [::String]
705
+ # The name of the Google Compute Engine
706
+ # [network](https://cloud.google.com/compute/docs/networks-and-firewalls#networks) to which the
707
+ # cluster is connected. If left unspecified, the `default` network
708
+ # will be used. On output this shows the network ID instead of
709
+ # the name.
710
+ # @!attribute [rw] cluster_ipv4_cidr
711
+ # @return [::String]
712
+ # The IP address range of the container pods in this cluster, in
713
+ # [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)
714
+ # notation (e.g. `10.96.0.0/14`). Leave blank to have
715
+ # one automatically chosen or specify a `/14` block in `10.0.0.0/8`.
716
+ # @!attribute [rw] addons_config
717
+ # @return [::Google::Cloud::Container::V1beta1::AddonsConfig]
718
+ # Configurations for the various addons available to run in the cluster.
719
+ # @!attribute [rw] subnetwork
720
+ # @return [::String]
721
+ # The name of the Google Compute Engine
722
+ # [subnetwork](https://cloud.google.com/compute/docs/subnetworks) to which the
723
+ # cluster is connected. On output this shows the subnetwork ID instead of
724
+ # the name.
725
+ # @!attribute [rw] node_pools
726
+ # @return [::Array<::Google::Cloud::Container::V1beta1::NodePool>]
727
+ # The node pools associated with this cluster.
728
+ # This field should not be set if "node_config" or "initial_node_count" are
729
+ # specified.
730
+ # @!attribute [rw] locations
731
+ # @return [::Array<::String>]
732
+ # The list of Google Compute Engine
733
+ # [zones](https://cloud.google.com/compute/docs/zones#available) in which the cluster's nodes
734
+ # should be located.
735
+ # @!attribute [rw] enable_kubernetes_alpha
736
+ # @return [::Boolean]
737
+ # Kubernetes alpha features are enabled on this cluster. This includes alpha
738
+ # API groups (e.g. v1beta1) and features that may not be production ready in
739
+ # the kubernetes version of the master and nodes.
740
+ # The cluster has no SLA for uptime and master/node upgrades are disabled.
741
+ # Alpha enabled clusters are automatically deleted thirty days after
742
+ # creation.
743
+ # @!attribute [rw] resource_labels
744
+ # @return [::Google::Protobuf::Map{::String => ::String}]
745
+ # The resource labels for the cluster to use to annotate any related
746
+ # Google Compute Engine resources.
747
+ # @!attribute [rw] label_fingerprint
748
+ # @return [::String]
749
+ # The fingerprint of the set of labels for this cluster.
750
+ # @!attribute [rw] legacy_abac
751
+ # @return [::Google::Cloud::Container::V1beta1::LegacyAbac]
752
+ # Configuration for the legacy ABAC authorization mode.
753
+ # @!attribute [rw] network_policy
754
+ # @return [::Google::Cloud::Container::V1beta1::NetworkPolicy]
755
+ # Configuration options for the NetworkPolicy feature.
756
+ # @!attribute [rw] ip_allocation_policy
757
+ # @return [::Google::Cloud::Container::V1beta1::IPAllocationPolicy]
758
+ # Configuration for cluster IP allocation.
759
+ # @!attribute [rw] master_authorized_networks_config
760
+ # @return [::Google::Cloud::Container::V1beta1::MasterAuthorizedNetworksConfig]
761
+ # The configuration options for master authorized networks feature.
762
+ # @!attribute [rw] maintenance_policy
763
+ # @return [::Google::Cloud::Container::V1beta1::MaintenancePolicy]
764
+ # Configure the maintenance policy for this cluster.
765
+ # @!attribute [rw] binary_authorization
766
+ # @return [::Google::Cloud::Container::V1beta1::BinaryAuthorization]
767
+ # Configuration for Binary Authorization.
768
+ # @!attribute [rw] pod_security_policy_config
769
+ # @return [::Google::Cloud::Container::V1beta1::PodSecurityPolicyConfig]
770
+ # Configuration for the PodSecurityPolicy feature.
771
+ # @!attribute [rw] autoscaling
772
+ # @return [::Google::Cloud::Container::V1beta1::ClusterAutoscaling]
773
+ # Cluster-level autoscaling configuration.
774
+ # @!attribute [rw] network_config
775
+ # @return [::Google::Cloud::Container::V1beta1::NetworkConfig]
776
+ # Configuration for cluster networking.
777
+ # @!attribute [rw] private_cluster
778
+ # @return [::Boolean]
779
+ # If this is a private cluster setup. Private clusters are clusters that, by
780
+ # default have no external IP addresses on the nodes and where nodes and the
781
+ # master communicate over private IP addresses.
782
+ # This field is deprecated, use private_cluster_config.enable_private_nodes
783
+ # instead.
784
+ # @!attribute [rw] master_ipv4_cidr_block
785
+ # @return [::String]
786
+ # The IP prefix in CIDR notation to use for the hosted master network.
787
+ # This prefix will be used for assigning private IP addresses to the
788
+ # master or set of masters, as well as the ILB VIP.
789
+ # This field is deprecated, use
790
+ # private_cluster_config.master_ipv4_cidr_block instead.
791
+ # @!attribute [rw] default_max_pods_constraint
792
+ # @return [::Google::Cloud::Container::V1beta1::MaxPodsConstraint]
793
+ # The default constraint on the maximum number of pods that can be run
794
+ # simultaneously on a node in the node pool of this cluster. Only honored
795
+ # if cluster created with IP Alias support.
796
+ # @!attribute [rw] resource_usage_export_config
797
+ # @return [::Google::Cloud::Container::V1beta1::ResourceUsageExportConfig]
798
+ # Configuration for exporting resource usages. Resource usage export is
799
+ # disabled when this config unspecified.
800
+ # @!attribute [rw] authenticator_groups_config
801
+ # @return [::Google::Cloud::Container::V1beta1::AuthenticatorGroupsConfig]
802
+ # Configuration controlling RBAC group membership information.
803
+ # @!attribute [rw] private_cluster_config
804
+ # @return [::Google::Cloud::Container::V1beta1::PrivateClusterConfig]
805
+ # Configuration for private cluster.
806
+ # @!attribute [rw] vertical_pod_autoscaling
807
+ # @return [::Google::Cloud::Container::V1beta1::VerticalPodAutoscaling]
808
+ # Cluster-level Vertical Pod Autoscaling configuration.
809
+ # @!attribute [rw] self_link
810
+ # @return [::String]
811
+ # [Output only] Server-defined URL for the resource.
812
+ # @!attribute [rw] zone
813
+ # @return [::String]
814
+ # [Output only] The name of the Google Compute Engine
815
+ # [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster
816
+ # resides.
817
+ # This field is deprecated, use location instead.
818
+ # @!attribute [rw] endpoint
819
+ # @return [::String]
820
+ # [Output only] The IP address of this cluster's master endpoint.
821
+ # The endpoint can be accessed from the internet at
822
+ # `https://username:password@endpoint/`.
823
+ #
824
+ # See the `masterAuth` property of this resource for username and
825
+ # password information.
826
+ # @!attribute [rw] initial_cluster_version
827
+ # @return [::String]
828
+ # The initial Kubernetes version for this cluster. Valid versions are those
829
+ # found in validMasterVersions returned by getServerConfig. The version can
830
+ # be upgraded over time; such upgrades are reflected in
831
+ # currentMasterVersion and currentNodeVersion.
832
+ #
833
+ # Users may specify either explicit versions offered by
834
+ # Kubernetes Engine or version aliases, which have the following behavior:
835
+ #
836
+ # - "latest": picks the highest valid Kubernetes version
837
+ # - "1.X": picks the highest valid patch+gke.N patch in the 1.X version
838
+ # - "1.X.Y": picks the highest valid gke.N patch in the 1.X.Y version
839
+ # - "1.X.Y-gke.N": picks an explicit Kubernetes version
840
+ # - "","-": picks the default Kubernetes version
841
+ # @!attribute [rw] current_master_version
842
+ # @return [::String]
843
+ # [Output only] The current software version of the master endpoint.
844
+ # @!attribute [rw] current_node_version
845
+ # @return [::String]
846
+ # [Output only] Deprecated, use
847
+ # [NodePool.version](https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1beta1/projects.locations.clusters.nodePools)
848
+ # instead. The current version of the node software components.
849
+ # If they are currently at multiple versions because they're in the process
850
+ # of being upgraded, this reflects the minimum version of all nodes.
851
+ # @!attribute [rw] create_time
852
+ # @return [::String]
853
+ # [Output only] The time the cluster was created, in
854
+ # [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
855
+ # @!attribute [rw] status
856
+ # @return [::Google::Cloud::Container::V1beta1::Cluster::Status]
857
+ # [Output only] The current status of this cluster.
858
+ # @!attribute [rw] status_message
859
+ # @return [::String]
860
+ # [Output only] Additional information about the current status of this
861
+ # cluster, if available.
862
+ # @!attribute [rw] node_ipv4_cidr_size
863
+ # @return [::Integer]
864
+ # [Output only] The size of the address space on each node for hosting
865
+ # containers. This is provisioned from within the `container_ipv4_cidr`
866
+ # range. This field will only be set when cluster is in route-based network
867
+ # mode.
868
+ # @!attribute [rw] services_ipv4_cidr
869
+ # @return [::String]
870
+ # [Output only] The IP address range of the Kubernetes services in
871
+ # this cluster, in
872
+ # [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)
873
+ # notation (e.g. `1.2.3.4/29`). Service addresses are
874
+ # typically put in the last `/16` from the container CIDR.
875
+ # @!attribute [rw] instance_group_urls
876
+ # @return [::Array<::String>]
877
+ # Deprecated. Use node_pools.instance_group_urls.
878
+ # @!attribute [rw] current_node_count
879
+ # @return [::Integer]
880
+ # [Output only] The number of nodes currently in the cluster. Deprecated.
881
+ # Call Kubernetes API directly to retrieve node information.
882
+ # @!attribute [rw] expire_time
883
+ # @return [::String]
884
+ # [Output only] The time the cluster will be automatically
885
+ # deleted in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
886
+ # @!attribute [rw] location
887
+ # @return [::String]
888
+ # [Output only] The name of the Google Compute Engine
889
+ # [zone](https://cloud.google.com/compute/docs/regions-zones/regions-zones#available) or
890
+ # [region](https://cloud.google.com/compute/docs/regions-zones/regions-zones#available) in which
891
+ # the cluster resides.
892
+ # @!attribute [rw] enable_tpu
893
+ # @return [::Boolean]
894
+ # Enable the ability to use Cloud TPUs in this cluster.
895
+ # @!attribute [rw] tpu_ipv4_cidr_block
896
+ # @return [::String]
897
+ # [Output only] The IP address range of the Cloud TPUs in this cluster, in
898
+ # [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)
899
+ # notation (e.g. `1.2.3.4/29`).
900
+ # @!attribute [rw] database_encryption
901
+ # @return [::Google::Cloud::Container::V1beta1::DatabaseEncryption]
902
+ # Configuration of etcd encryption.
903
+ # @!attribute [rw] conditions
904
+ # @return [::Array<::Google::Cloud::Container::V1beta1::StatusCondition>]
905
+ # Which conditions caused the current cluster state.
906
+ class Cluster
907
+ include ::Google::Protobuf::MessageExts
908
+ extend ::Google::Protobuf::MessageExts::ClassMethods
909
+
910
+ # @!attribute [rw] key
911
+ # @return [::String]
912
+ # @!attribute [rw] value
913
+ # @return [::String]
914
+ class ResourceLabelsEntry
915
+ include ::Google::Protobuf::MessageExts
916
+ extend ::Google::Protobuf::MessageExts::ClassMethods
917
+ end
918
+
919
+ # The current status of the cluster.
920
+ module Status
921
+ # Not set.
922
+ STATUS_UNSPECIFIED = 0
923
+
924
+ # The PROVISIONING state indicates the cluster is being created.
925
+ PROVISIONING = 1
926
+
927
+ # The RUNNING state indicates the cluster has been created and is fully
928
+ # usable.
929
+ RUNNING = 2
930
+
931
+ # The RECONCILING state indicates that some work is actively being done on
932
+ # the cluster, such as upgrading the master or node software. Details can
933
+ # be found in the `statusMessage` field.
934
+ RECONCILING = 3
935
+
936
+ # The STOPPING state indicates the cluster is being deleted.
937
+ STOPPING = 4
938
+
939
+ # The ERROR state indicates the cluster may be unusable. Details
940
+ # can be found in the `statusMessage` field.
941
+ ERROR = 5
942
+
943
+ # The DEGRADED state indicates the cluster requires user action to restore
944
+ # full functionality. Details can be found in the `statusMessage` field.
945
+ DEGRADED = 6
946
+ end
947
+ end
948
+
949
+ # ClusterUpdate describes an update to the cluster. Exactly one update can
950
+ # be applied to a cluster with each request, so at most one field can be
951
+ # provided.
952
+ # @!attribute [rw] desired_node_version
953
+ # @return [::String]
954
+ # The Kubernetes version to change the nodes to (typically an
955
+ # upgrade).
956
+ #
957
+ # Users may specify either explicit versions offered by
958
+ # Kubernetes Engine or version aliases, which have the following behavior:
959
+ #
960
+ # - "latest": picks the highest valid Kubernetes version
961
+ # - "1.X": picks the highest valid patch+gke.N patch in the 1.X version
962
+ # - "1.X.Y": picks the highest valid gke.N patch in the 1.X.Y version
963
+ # - "1.X.Y-gke.N": picks an explicit Kubernetes version
964
+ # - "-": picks the Kubernetes master version
965
+ # @!attribute [rw] desired_monitoring_service
966
+ # @return [::String]
967
+ # The monitoring service the cluster should use to write metrics.
968
+ # Currently available options:
969
+ #
970
+ # * "monitoring.googleapis.com/kubernetes" - the Google Cloud Monitoring
971
+ # service with Kubernetes-native resource model
972
+ # * "monitoring.googleapis.com" - the Google Cloud Monitoring service
973
+ # * "none" - no metrics will be exported from the cluster
974
+ # @!attribute [rw] desired_addons_config
975
+ # @return [::Google::Cloud::Container::V1beta1::AddonsConfig]
976
+ # Configurations for the various addons available to run in the cluster.
977
+ # @!attribute [rw] desired_node_pool_id
978
+ # @return [::String]
979
+ # The node pool to be upgraded. This field is mandatory if
980
+ # "desired_node_version", "desired_image_family",
981
+ # "desired_node_pool_autoscaling", or "desired_workload_metadata_config"
982
+ # is specified and there is more than one node pool on the cluster.
983
+ # @!attribute [rw] desired_image_type
984
+ # @return [::String]
985
+ # The desired image type for the node pool.
986
+ # NOTE: Set the "desired_node_pool" field as well.
987
+ # @!attribute [rw] desired_node_pool_autoscaling
988
+ # @return [::Google::Cloud::Container::V1beta1::NodePoolAutoscaling]
989
+ # Autoscaler configuration for the node pool specified in
990
+ # desired_node_pool_id. If there is only one pool in the
991
+ # cluster and desired_node_pool_id is not provided then
992
+ # the change applies to that single node pool.
993
+ # @!attribute [rw] desired_locations
994
+ # @return [::Array<::String>]
995
+ # The desired list of Google Compute Engine
996
+ # [zones](https://cloud.google.com/compute/docs/zones#available) in which the cluster's nodes
997
+ # should be located. Changing the locations a cluster is in will result
998
+ # in nodes being either created or removed from the cluster, depending on
999
+ # whether locations are being added or removed.
1000
+ #
1001
+ # This list must always include the cluster's primary zone.
1002
+ # @!attribute [rw] desired_master_authorized_networks_config
1003
+ # @return [::Google::Cloud::Container::V1beta1::MasterAuthorizedNetworksConfig]
1004
+ # The desired configuration options for master authorized networks feature.
1005
+ # @!attribute [rw] desired_pod_security_policy_config
1006
+ # @return [::Google::Cloud::Container::V1beta1::PodSecurityPolicyConfig]
1007
+ # The desired configuration options for the PodSecurityPolicy feature.
1008
+ # @!attribute [rw] desired_cluster_autoscaling
1009
+ # @return [::Google::Cloud::Container::V1beta1::ClusterAutoscaling]
1010
+ # Cluster-level autoscaling configuration.
1011
+ # @!attribute [rw] desired_binary_authorization
1012
+ # @return [::Google::Cloud::Container::V1beta1::BinaryAuthorization]
1013
+ # The desired configuration options for the Binary Authorization feature.
1014
+ # @!attribute [rw] desired_logging_service
1015
+ # @return [::String]
1016
+ # The logging service the cluster should use to write metrics.
1017
+ # Currently available options:
1018
+ #
1019
+ # * "logging.googleapis.com/kubernetes" - the Google Cloud Logging
1020
+ # service with Kubernetes-native resource model
1021
+ # * "logging.googleapis.com" - the Google Cloud Logging service
1022
+ # * "none" - no logs will be exported from the cluster
1023
+ # @!attribute [rw] desired_resource_usage_export_config
1024
+ # @return [::Google::Cloud::Container::V1beta1::ResourceUsageExportConfig]
1025
+ # The desired configuration for exporting resource usage.
1026
+ # @!attribute [rw] desired_vertical_pod_autoscaling
1027
+ # @return [::Google::Cloud::Container::V1beta1::VerticalPodAutoscaling]
1028
+ # Cluster-level Vertical Pod Autoscaling configuration.
1029
+ # @!attribute [rw] desired_intra_node_visibility_config
1030
+ # @return [::Google::Cloud::Container::V1beta1::IntraNodeVisibilityConfig]
1031
+ # The desired config of Intra-node visibility.
1032
+ # @!attribute [rw] desired_master_version
1033
+ # @return [::String]
1034
+ # The Kubernetes version to change the master to. The only valid value is the
1035
+ # latest supported version.
1036
+ #
1037
+ # Users may specify either explicit versions offered by
1038
+ # Kubernetes Engine or version aliases, which have the following behavior:
1039
+ #
1040
+ # - "latest": picks the highest valid Kubernetes version
1041
+ # - "1.X": picks the highest valid patch+gke.N patch in the 1.X version
1042
+ # - "1.X.Y": picks the highest valid gke.N patch in the 1.X.Y version
1043
+ # - "1.X.Y-gke.N": picks an explicit Kubernetes version
1044
+ # - "-": picks the default Kubernetes version
1045
+ class ClusterUpdate
1046
+ include ::Google::Protobuf::MessageExts
1047
+ extend ::Google::Protobuf::MessageExts::ClassMethods
1048
+ end
1049
+
1050
+ # This operation resource represents operations that may have happened or are
1051
+ # happening on the cluster. All fields are output only.
1052
+ # @!attribute [rw] name
1053
+ # @return [::String]
1054
+ # The server-assigned ID for the operation.
1055
+ # @!attribute [rw] zone
1056
+ # @return [::String]
1057
+ # The name of the Google Compute Engine
1058
+ # [zone](https://cloud.google.com/compute/docs/zones#available) in which the operation
1059
+ # is taking place.
1060
+ # This field is deprecated, use location instead.
1061
+ # @!attribute [rw] operation_type
1062
+ # @return [::Google::Cloud::Container::V1beta1::Operation::Type]
1063
+ # The operation type.
1064
+ # @!attribute [rw] status
1065
+ # @return [::Google::Cloud::Container::V1beta1::Operation::Status]
1066
+ # The current status of the operation.
1067
+ # @!attribute [rw] detail
1068
+ # @return [::String]
1069
+ # Detailed operation progress, if available.
1070
+ # @!attribute [rw] status_message
1071
+ # @return [::String]
1072
+ # If an error has occurred, a textual description of the error.
1073
+ # @!attribute [rw] self_link
1074
+ # @return [::String]
1075
+ # Server-defined URL for the resource.
1076
+ # @!attribute [rw] target_link
1077
+ # @return [::String]
1078
+ # Server-defined URL for the target of the operation.
1079
+ # @!attribute [rw] location
1080
+ # @return [::String]
1081
+ # [Output only] The name of the Google Compute Engine
1082
+ # [zone](https://cloud.google.com/compute/docs/regions-zones/regions-zones#available) or
1083
+ # [region](https://cloud.google.com/compute/docs/regions-zones/regions-zones#available) in which
1084
+ # the cluster resides.
1085
+ # @!attribute [rw] start_time
1086
+ # @return [::String]
1087
+ # [Output only] The time the operation started, in
1088
+ # [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
1089
+ # @!attribute [rw] end_time
1090
+ # @return [::String]
1091
+ # [Output only] The time the operation completed, in
1092
+ # [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
1093
+ # @!attribute [rw] progress
1094
+ # @return [::Google::Cloud::Container::V1beta1::OperationProgress]
1095
+ # [Output only] Progress information for an operation.
1096
+ # @!attribute [rw] cluster_conditions
1097
+ # @return [::Array<::Google::Cloud::Container::V1beta1::StatusCondition>]
1098
+ # Which conditions caused the current cluster state.
1099
+ # @!attribute [rw] nodepool_conditions
1100
+ # @return [::Array<::Google::Cloud::Container::V1beta1::StatusCondition>]
1101
+ # Which conditions caused the current node pool state.
1102
+ class Operation
1103
+ include ::Google::Protobuf::MessageExts
1104
+ extend ::Google::Protobuf::MessageExts::ClassMethods
1105
+
1106
+ # Current status of the operation.
1107
+ module Status
1108
+ # Not set.
1109
+ STATUS_UNSPECIFIED = 0
1110
+
1111
+ # The operation has been created.
1112
+ PENDING = 1
1113
+
1114
+ # The operation is currently running.
1115
+ RUNNING = 2
1116
+
1117
+ # The operation is done, either cancelled or completed.
1118
+ DONE = 3
1119
+
1120
+ # The operation is aborting.
1121
+ ABORTING = 4
1122
+ end
1123
+
1124
+ # Operation type.
1125
+ module Type
1126
+ # Not set.
1127
+ TYPE_UNSPECIFIED = 0
1128
+
1129
+ # Cluster create.
1130
+ CREATE_CLUSTER = 1
1131
+
1132
+ # Cluster delete.
1133
+ DELETE_CLUSTER = 2
1134
+
1135
+ # A master upgrade.
1136
+ UPGRADE_MASTER = 3
1137
+
1138
+ # A node upgrade.
1139
+ UPGRADE_NODES = 4
1140
+
1141
+ # Cluster repair.
1142
+ REPAIR_CLUSTER = 5
1143
+
1144
+ # Cluster update.
1145
+ UPDATE_CLUSTER = 6
1146
+
1147
+ # Node pool create.
1148
+ CREATE_NODE_POOL = 7
1149
+
1150
+ # Node pool delete.
1151
+ DELETE_NODE_POOL = 8
1152
+
1153
+ # Set node pool management.
1154
+ SET_NODE_POOL_MANAGEMENT = 9
1155
+
1156
+ # Automatic node pool repair.
1157
+ AUTO_REPAIR_NODES = 10
1158
+
1159
+ # Automatic node upgrade.
1160
+ AUTO_UPGRADE_NODES = 11
1161
+
1162
+ # Set labels.
1163
+ SET_LABELS = 12
1164
+
1165
+ # Set/generate master auth materials
1166
+ SET_MASTER_AUTH = 13
1167
+
1168
+ # Set node pool size.
1169
+ SET_NODE_POOL_SIZE = 14
1170
+
1171
+ # Updates network policy for a cluster.
1172
+ SET_NETWORK_POLICY = 15
1173
+
1174
+ # Set the maintenance policy.
1175
+ SET_MAINTENANCE_POLICY = 16
1176
+ end
1177
+ end
1178
+
1179
+ # Information about operation (or operation stage) progress.
1180
+ # @!attribute [rw] name
1181
+ # @return [::String]
1182
+ # A non-parameterized string describing an operation stage.
1183
+ # Unset for single-stage operations.
1184
+ # @!attribute [rw] status
1185
+ # @return [::Google::Cloud::Container::V1beta1::Operation::Status]
1186
+ # Status of an operation stage.
1187
+ # Unset for single-stage operations.
1188
+ # @!attribute [rw] metrics
1189
+ # @return [::Array<::Google::Cloud::Container::V1beta1::OperationProgress::Metric>]
1190
+ # Progress metric bundle, for example:
1191
+ # metrics: [\\{name: "nodes done", int_value: 15},
1192
+ # \\{name: "nodes total", int_value: 32}]
1193
+ # or
1194
+ # metrics: [\\{name: "progress", double_value: 0.56},
1195
+ # \\{name: "progress scale", double_value: 1.0}]
1196
+ # @!attribute [rw] stages
1197
+ # @return [::Array<::Google::Cloud::Container::V1beta1::OperationProgress>]
1198
+ # Substages of an operation or a stage.
1199
+ class OperationProgress
1200
+ include ::Google::Protobuf::MessageExts
1201
+ extend ::Google::Protobuf::MessageExts::ClassMethods
1202
+
1203
+ # Progress metric is (string, int|float|string) pair.
1204
+ # @!attribute [rw] name
1205
+ # @return [::String]
1206
+ # Metric name, required.
1207
+ # e.g., "nodes total", "percent done"
1208
+ # @!attribute [rw] int_value
1209
+ # @return [::Integer]
1210
+ # For metrics with integer value.
1211
+ # @!attribute [rw] double_value
1212
+ # @return [::Float]
1213
+ # For metrics with floating point value.
1214
+ # @!attribute [rw] string_value
1215
+ # @return [::String]
1216
+ # For metrics with custom values (ratios, visual progress, etc.).
1217
+ class Metric
1218
+ include ::Google::Protobuf::MessageExts
1219
+ extend ::Google::Protobuf::MessageExts::ClassMethods
1220
+ end
1221
+ end
1222
+
1223
+ # CreateClusterRequest creates a cluster.
1224
+ # @!attribute [rw] project_id
1225
+ # @return [::String]
1226
+ # Required. Deprecated. The Google Developers Console [project ID or project
1227
+ # number](https://support.google.com/cloud/answer/6158840).
1228
+ # This field has been deprecated and replaced by the parent field.
1229
+ # @!attribute [rw] zone
1230
+ # @return [::String]
1231
+ # Required. Deprecated. The name of the Google Compute Engine
1232
+ # [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster
1233
+ # resides.
1234
+ # This field has been deprecated and replaced by the parent field.
1235
+ # @!attribute [rw] cluster
1236
+ # @return [::Google::Cloud::Container::V1beta1::Cluster]
1237
+ # Required. A [cluster
1238
+ # resource](https://cloud.google.com/container-engine/reference/rest/v1beta1/projects.zones.clusters)
1239
+ # @!attribute [rw] parent
1240
+ # @return [::String]
1241
+ # The parent (project and location) where the cluster will be created.
1242
+ # Specified in the format `projects/*/locations/*`.
1243
+ class CreateClusterRequest
1244
+ include ::Google::Protobuf::MessageExts
1245
+ extend ::Google::Protobuf::MessageExts::ClassMethods
1246
+ end
1247
+
1248
+ # GetClusterRequest gets the settings of a cluster.
1249
+ # @!attribute [rw] project_id
1250
+ # @return [::String]
1251
+ # Required. Deprecated. The Google Developers Console [project ID or project
1252
+ # number](https://support.google.com/cloud/answer/6158840).
1253
+ # This field has been deprecated and replaced by the name field.
1254
+ # @!attribute [rw] zone
1255
+ # @return [::String]
1256
+ # Required. Deprecated. The name of the Google Compute Engine
1257
+ # [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster
1258
+ # resides.
1259
+ # This field has been deprecated and replaced by the name field.
1260
+ # @!attribute [rw] cluster_id
1261
+ # @return [::String]
1262
+ # Required. Deprecated. The name of the cluster to retrieve.
1263
+ # This field has been deprecated and replaced by the name field.
1264
+ # @!attribute [rw] name
1265
+ # @return [::String]
1266
+ # The name (project, location, cluster) of the cluster to retrieve.
1267
+ # Specified in the format `projects/*/locations/*/clusters/*`.
1268
+ class GetClusterRequest
1269
+ include ::Google::Protobuf::MessageExts
1270
+ extend ::Google::Protobuf::MessageExts::ClassMethods
1271
+ end
1272
+
1273
+ # UpdateClusterRequest updates the settings of a cluster.
1274
+ # @!attribute [rw] project_id
1275
+ # @return [::String]
1276
+ # Required. Deprecated. The Google Developers Console [project ID or project
1277
+ # number](https://support.google.com/cloud/answer/6158840).
1278
+ # This field has been deprecated and replaced by the name field.
1279
+ # @!attribute [rw] zone
1280
+ # @return [::String]
1281
+ # Required. Deprecated. The name of the Google Compute Engine
1282
+ # [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster
1283
+ # resides.
1284
+ # This field has been deprecated and replaced by the name field.
1285
+ # @!attribute [rw] cluster_id
1286
+ # @return [::String]
1287
+ # Required. Deprecated. The name of the cluster to upgrade.
1288
+ # This field has been deprecated and replaced by the name field.
1289
+ # @!attribute [rw] update
1290
+ # @return [::Google::Cloud::Container::V1beta1::ClusterUpdate]
1291
+ # Required. A description of the update.
1292
+ # @!attribute [rw] name
1293
+ # @return [::String]
1294
+ # The name (project, location, cluster) of the cluster to update.
1295
+ # Specified in the format `projects/*/locations/*/clusters/*`.
1296
+ class UpdateClusterRequest
1297
+ include ::Google::Protobuf::MessageExts
1298
+ extend ::Google::Protobuf::MessageExts::ClassMethods
1299
+ end
1300
+
1301
+ # SetNodePoolVersionRequest updates the version of a node pool.
1302
+ # @!attribute [rw] project_id
1303
+ # @return [::String]
1304
+ # Required. Deprecated. The Google Developers Console [project ID or project
1305
+ # number](https://support.google.com/cloud/answer/6158840).
1306
+ # This field has been deprecated and replaced by the name field.
1307
+ # @!attribute [rw] zone
1308
+ # @return [::String]
1309
+ # Required. Deprecated. The name of the Google Compute Engine
1310
+ # [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster
1311
+ # resides.
1312
+ # This field has been deprecated and replaced by the name field.
1313
+ # @!attribute [rw] cluster_id
1314
+ # @return [::String]
1315
+ # Required. Deprecated. The name of the cluster to upgrade.
1316
+ # This field has been deprecated and replaced by the name field.
1317
+ # @!attribute [rw] node_pool_id
1318
+ # @return [::String]
1319
+ # Required. Deprecated. The name of the node pool to upgrade.
1320
+ # This field has been deprecated and replaced by the name field.
1321
+ # @!attribute [rw] node_version
1322
+ # @return [::String]
1323
+ # Required. The Kubernetes version to change the nodes to (typically an
1324
+ # upgrade).
1325
+ #
1326
+ # Users may specify either explicit versions offered by Kubernetes Engine or
1327
+ # version aliases, which have the following behavior:
1328
+ #
1329
+ # - "latest": picks the highest valid Kubernetes version
1330
+ # - "1.X": picks the highest valid patch+gke.N patch in the 1.X version
1331
+ # - "1.X.Y": picks the highest valid gke.N patch in the 1.X.Y version
1332
+ # - "1.X.Y-gke.N": picks an explicit Kubernetes version
1333
+ # - "-": picks the Kubernetes master version
1334
+ # @!attribute [rw] image_type
1335
+ # @return [::String]
1336
+ # Required. The desired image type for the node pool.
1337
+ # @!attribute [rw] workload_metadata_config
1338
+ # @return [::Google::Cloud::Container::V1beta1::WorkloadMetadataConfig]
1339
+ # The desired image type for the node pool.
1340
+ # @!attribute [rw] name
1341
+ # @return [::String]
1342
+ # The name (project, location, cluster, node pool) of the node pool to
1343
+ # update. Specified in the format
1344
+ # `projects/*/locations/*/clusters/*/nodePools/*`.
1345
+ class UpdateNodePoolRequest
1346
+ include ::Google::Protobuf::MessageExts
1347
+ extend ::Google::Protobuf::MessageExts::ClassMethods
1348
+ end
1349
+
1350
+ # SetNodePoolAutoscalingRequest sets the autoscaler settings of a node pool.
1351
+ # @!attribute [rw] project_id
1352
+ # @return [::String]
1353
+ # Required. Deprecated. The Google Developers Console [project ID or project
1354
+ # number](https://support.google.com/cloud/answer/6158840).
1355
+ # This field has been deprecated and replaced by the name field.
1356
+ # @!attribute [rw] zone
1357
+ # @return [::String]
1358
+ # Required. Deprecated. The name of the Google Compute Engine
1359
+ # [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster
1360
+ # resides.
1361
+ # This field has been deprecated and replaced by the name field.
1362
+ # @!attribute [rw] cluster_id
1363
+ # @return [::String]
1364
+ # Required. Deprecated. The name of the cluster to upgrade.
1365
+ # This field has been deprecated and replaced by the name field.
1366
+ # @!attribute [rw] node_pool_id
1367
+ # @return [::String]
1368
+ # Required. Deprecated. The name of the node pool to upgrade.
1369
+ # This field has been deprecated and replaced by the name field.
1370
+ # @!attribute [rw] autoscaling
1371
+ # @return [::Google::Cloud::Container::V1beta1::NodePoolAutoscaling]
1372
+ # Required. Autoscaling configuration for the node pool.
1373
+ # @!attribute [rw] name
1374
+ # @return [::String]
1375
+ # The name (project, location, cluster, node pool) of the node pool to set
1376
+ # autoscaler settings. Specified in the format
1377
+ # `projects/*/locations/*/clusters/*/nodePools/*`.
1378
+ class SetNodePoolAutoscalingRequest
1379
+ include ::Google::Protobuf::MessageExts
1380
+ extend ::Google::Protobuf::MessageExts::ClassMethods
1381
+ end
1382
+
1383
+ # SetLoggingServiceRequest sets the logging service of a cluster.
1384
+ # @!attribute [rw] project_id
1385
+ # @return [::String]
1386
+ # Required. Deprecated. The Google Developers Console [project ID or project
1387
+ # number](https://support.google.com/cloud/answer/6158840).
1388
+ # This field has been deprecated and replaced by the name field.
1389
+ # @!attribute [rw] zone
1390
+ # @return [::String]
1391
+ # Required. Deprecated. The name of the Google Compute Engine
1392
+ # [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster
1393
+ # resides.
1394
+ # This field has been deprecated and replaced by the name field.
1395
+ # @!attribute [rw] cluster_id
1396
+ # @return [::String]
1397
+ # Required. Deprecated. The name of the cluster to upgrade.
1398
+ # This field has been deprecated and replaced by the name field.
1399
+ # @!attribute [rw] logging_service
1400
+ # @return [::String]
1401
+ # Required. The logging service the cluster should use to write metrics.
1402
+ # Currently available options:
1403
+ #
1404
+ # * "logging.googleapis.com" - the Google Cloud Logging service
1405
+ # * "none" - no metrics will be exported from the cluster
1406
+ # @!attribute [rw] name
1407
+ # @return [::String]
1408
+ # The name (project, location, cluster) of the cluster to set logging.
1409
+ # Specified in the format `projects/*/locations/*/clusters/*`.
1410
+ class SetLoggingServiceRequest
1411
+ include ::Google::Protobuf::MessageExts
1412
+ extend ::Google::Protobuf::MessageExts::ClassMethods
1413
+ end
1414
+
1415
+ # SetMonitoringServiceRequest sets the monitoring service of a cluster.
1416
+ # @!attribute [rw] project_id
1417
+ # @return [::String]
1418
+ # Required. Deprecated. The Google Developers Console [project ID or project
1419
+ # number](https://support.google.com/cloud/answer/6158840).
1420
+ # This field has been deprecated and replaced by the name field.
1421
+ # @!attribute [rw] zone
1422
+ # @return [::String]
1423
+ # Required. Deprecated. The name of the Google Compute Engine
1424
+ # [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster
1425
+ # resides.
1426
+ # This field has been deprecated and replaced by the name field.
1427
+ # @!attribute [rw] cluster_id
1428
+ # @return [::String]
1429
+ # Required. Deprecated. The name of the cluster to upgrade.
1430
+ # This field has been deprecated and replaced by the name field.
1431
+ # @!attribute [rw] monitoring_service
1432
+ # @return [::String]
1433
+ # Required. The monitoring service the cluster should use to write metrics.
1434
+ # Currently available options:
1435
+ #
1436
+ # * "monitoring.googleapis.com" - the Google Cloud Monitoring service
1437
+ # * "none" - no metrics will be exported from the cluster
1438
+ # @!attribute [rw] name
1439
+ # @return [::String]
1440
+ # The name (project, location, cluster) of the cluster to set monitoring.
1441
+ # Specified in the format `projects/*/locations/*/clusters/*`.
1442
+ class SetMonitoringServiceRequest
1443
+ include ::Google::Protobuf::MessageExts
1444
+ extend ::Google::Protobuf::MessageExts::ClassMethods
1445
+ end
1446
+
1447
+ # SetAddonsRequest sets the addons associated with the cluster.
1448
+ # @!attribute [rw] project_id
1449
+ # @return [::String]
1450
+ # Required. Deprecated. The Google Developers Console [project ID or project
1451
+ # number](https://support.google.com/cloud/answer/6158840).
1452
+ # This field has been deprecated and replaced by the name field.
1453
+ # @!attribute [rw] zone
1454
+ # @return [::String]
1455
+ # Required. Deprecated. The name of the Google Compute Engine
1456
+ # [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster
1457
+ # resides.
1458
+ # This field has been deprecated and replaced by the name field.
1459
+ # @!attribute [rw] cluster_id
1460
+ # @return [::String]
1461
+ # Required. Deprecated. The name of the cluster to upgrade.
1462
+ # This field has been deprecated and replaced by the name field.
1463
+ # @!attribute [rw] addons_config
1464
+ # @return [::Google::Cloud::Container::V1beta1::AddonsConfig]
1465
+ # Required. The desired configurations for the various addons available to run in the
1466
+ # cluster.
1467
+ # @!attribute [rw] name
1468
+ # @return [::String]
1469
+ # The name (project, location, cluster) of the cluster to set addons.
1470
+ # Specified in the format `projects/*/locations/*/clusters/*`.
1471
+ class SetAddonsConfigRequest
1472
+ include ::Google::Protobuf::MessageExts
1473
+ extend ::Google::Protobuf::MessageExts::ClassMethods
1474
+ end
1475
+
1476
+ # SetLocationsRequest sets the locations of the cluster.
1477
+ # @!attribute [rw] project_id
1478
+ # @return [::String]
1479
+ # Required. Deprecated. The Google Developers Console [project ID or project
1480
+ # number](https://support.google.com/cloud/answer/6158840).
1481
+ # This field has been deprecated and replaced by the name field.
1482
+ # @!attribute [rw] zone
1483
+ # @return [::String]
1484
+ # Required. Deprecated. The name of the Google Compute Engine
1485
+ # [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster
1486
+ # resides.
1487
+ # This field has been deprecated and replaced by the name field.
1488
+ # @!attribute [rw] cluster_id
1489
+ # @return [::String]
1490
+ # Required. Deprecated. The name of the cluster to upgrade.
1491
+ # This field has been deprecated and replaced by the name field.
1492
+ # @!attribute [rw] locations
1493
+ # @return [::Array<::String>]
1494
+ # Required. The desired list of Google Compute Engine
1495
+ # [zones](https://cloud.google.com/compute/docs/zones#available) in which the cluster's nodes
1496
+ # should be located. Changing the locations a cluster is in will result
1497
+ # in nodes being either created or removed from the cluster, depending on
1498
+ # whether locations are being added or removed.
1499
+ #
1500
+ # This list must always include the cluster's primary zone.
1501
+ # @!attribute [rw] name
1502
+ # @return [::String]
1503
+ # The name (project, location, cluster) of the cluster to set locations.
1504
+ # Specified in the format `projects/*/locations/*/clusters/*`.
1505
+ class SetLocationsRequest
1506
+ include ::Google::Protobuf::MessageExts
1507
+ extend ::Google::Protobuf::MessageExts::ClassMethods
1508
+ end
1509
+
1510
+ # UpdateMasterRequest updates the master of the cluster.
1511
+ # @!attribute [rw] project_id
1512
+ # @return [::String]
1513
+ # Required. Deprecated. The Google Developers Console [project ID or project
1514
+ # number](https://support.google.com/cloud/answer/6158840).
1515
+ # This field has been deprecated and replaced by the name field.
1516
+ # @!attribute [rw] zone
1517
+ # @return [::String]
1518
+ # Required. Deprecated. The name of the Google Compute Engine
1519
+ # [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster
1520
+ # resides.
1521
+ # This field has been deprecated and replaced by the name field.
1522
+ # @!attribute [rw] cluster_id
1523
+ # @return [::String]
1524
+ # Required. Deprecated. The name of the cluster to upgrade.
1525
+ # This field has been deprecated and replaced by the name field.
1526
+ # @!attribute [rw] master_version
1527
+ # @return [::String]
1528
+ # Required. The Kubernetes version to change the master to.
1529
+ #
1530
+ # Users may specify either explicit versions offered by
1531
+ # Kubernetes Engine or version aliases, which have the following behavior:
1532
+ #
1533
+ # - "latest": picks the highest valid Kubernetes version
1534
+ # - "1.X": picks the highest valid patch+gke.N patch in the 1.X version
1535
+ # - "1.X.Y": picks the highest valid gke.N patch in the 1.X.Y version
1536
+ # - "1.X.Y-gke.N": picks an explicit Kubernetes version
1537
+ # - "-": picks the default Kubernetes version
1538
+ # @!attribute [rw] name
1539
+ # @return [::String]
1540
+ # The name (project, location, cluster) of the cluster to update.
1541
+ # Specified in the format `projects/*/locations/*/clusters/*`.
1542
+ class UpdateMasterRequest
1543
+ include ::Google::Protobuf::MessageExts
1544
+ extend ::Google::Protobuf::MessageExts::ClassMethods
1545
+ end
1546
+
1547
+ # SetMasterAuthRequest updates the admin password of a cluster.
1548
+ # @!attribute [rw] project_id
1549
+ # @return [::String]
1550
+ # Required. Deprecated. The Google Developers Console [project ID or project
1551
+ # number](https://support.google.com/cloud/answer/6158840).
1552
+ # This field has been deprecated and replaced by the name field.
1553
+ # @!attribute [rw] zone
1554
+ # @return [::String]
1555
+ # Required. Deprecated. The name of the Google Compute Engine
1556
+ # [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster
1557
+ # resides.
1558
+ # This field has been deprecated and replaced by the name field.
1559
+ # @!attribute [rw] cluster_id
1560
+ # @return [::String]
1561
+ # Required. Deprecated. The name of the cluster to upgrade.
1562
+ # This field has been deprecated and replaced by the name field.
1563
+ # @!attribute [rw] action
1564
+ # @return [::Google::Cloud::Container::V1beta1::SetMasterAuthRequest::Action]
1565
+ # Required. The exact form of action to be taken on the master auth.
1566
+ # @!attribute [rw] update
1567
+ # @return [::Google::Cloud::Container::V1beta1::MasterAuth]
1568
+ # Required. A description of the update.
1569
+ # @!attribute [rw] name
1570
+ # @return [::String]
1571
+ # The name (project, location, cluster) of the cluster to set auth.
1572
+ # Specified in the format `projects/*/locations/*/clusters/*`.
1573
+ class SetMasterAuthRequest
1574
+ include ::Google::Protobuf::MessageExts
1575
+ extend ::Google::Protobuf::MessageExts::ClassMethods
1576
+
1577
+ # Operation type: what type update to perform.
1578
+ module Action
1579
+ # Operation is unknown and will error out.
1580
+ UNKNOWN = 0
1581
+
1582
+ # Set the password to a user generated value.
1583
+ SET_PASSWORD = 1
1584
+
1585
+ # Generate a new password and set it to that.
1586
+ GENERATE_PASSWORD = 2
1587
+
1588
+ # Set the username. If an empty username is provided, basic authentication
1589
+ # is disabled for the cluster. If a non-empty username is provided, basic
1590
+ # authentication is enabled, with either a provided password or a generated
1591
+ # one.
1592
+ SET_USERNAME = 3
1593
+ end
1594
+ end
1595
+
1596
+ # DeleteClusterRequest deletes a cluster.
1597
+ # @!attribute [rw] project_id
1598
+ # @return [::String]
1599
+ # Required. Deprecated. The Google Developers Console [project ID or project
1600
+ # number](https://support.google.com/cloud/answer/6158840).
1601
+ # This field has been deprecated and replaced by the name field.
1602
+ # @!attribute [rw] zone
1603
+ # @return [::String]
1604
+ # Required. Deprecated. The name of the Google Compute Engine
1605
+ # [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster
1606
+ # resides.
1607
+ # This field has been deprecated and replaced by the name field.
1608
+ # @!attribute [rw] cluster_id
1609
+ # @return [::String]
1610
+ # Required. Deprecated. The name of the cluster to delete.
1611
+ # This field has been deprecated and replaced by the name field.
1612
+ # @!attribute [rw] name
1613
+ # @return [::String]
1614
+ # The name (project, location, cluster) of the cluster to delete.
1615
+ # Specified in the format `projects/*/locations/*/clusters/*`.
1616
+ class DeleteClusterRequest
1617
+ include ::Google::Protobuf::MessageExts
1618
+ extend ::Google::Protobuf::MessageExts::ClassMethods
1619
+ end
1620
+
1621
+ # ListClustersRequest lists clusters.
1622
+ # @!attribute [rw] project_id
1623
+ # @return [::String]
1624
+ # Required. Deprecated. The Google Developers Console [project ID or project
1625
+ # number](https://support.google.com/cloud/answer/6158840).
1626
+ # This field has been deprecated and replaced by the parent field.
1627
+ # @!attribute [rw] zone
1628
+ # @return [::String]
1629
+ # Required. Deprecated. The name of the Google Compute Engine
1630
+ # [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster
1631
+ # resides, or "-" for all zones.
1632
+ # This field has been deprecated and replaced by the parent field.
1633
+ # @!attribute [rw] parent
1634
+ # @return [::String]
1635
+ # The parent (project and location) where the clusters will be listed.
1636
+ # Specified in the format `projects/*/locations/*`.
1637
+ # Location "-" matches all zones and all regions.
1638
+ class ListClustersRequest
1639
+ include ::Google::Protobuf::MessageExts
1640
+ extend ::Google::Protobuf::MessageExts::ClassMethods
1641
+ end
1642
+
1643
+ # ListClustersResponse is the result of ListClustersRequest.
1644
+ # @!attribute [rw] clusters
1645
+ # @return [::Array<::Google::Cloud::Container::V1beta1::Cluster>]
1646
+ # A list of clusters in the project in the specified zone, or
1647
+ # across all ones.
1648
+ # @!attribute [rw] missing_zones
1649
+ # @return [::Array<::String>]
1650
+ # If any zones are listed here, the list of clusters returned
1651
+ # may be missing those zones.
1652
+ class ListClustersResponse
1653
+ include ::Google::Protobuf::MessageExts
1654
+ extend ::Google::Protobuf::MessageExts::ClassMethods
1655
+ end
1656
+
1657
+ # GetOperationRequest gets a single operation.
1658
+ # @!attribute [rw] project_id
1659
+ # @return [::String]
1660
+ # Required. Deprecated. The Google Developers Console [project ID or project
1661
+ # number](https://support.google.com/cloud/answer/6158840).
1662
+ # This field has been deprecated and replaced by the name field.
1663
+ # @!attribute [rw] zone
1664
+ # @return [::String]
1665
+ # Required. Deprecated. The name of the Google Compute Engine
1666
+ # [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster
1667
+ # resides.
1668
+ # This field has been deprecated and replaced by the name field.
1669
+ # @!attribute [rw] operation_id
1670
+ # @return [::String]
1671
+ # Required. Deprecated. The server-assigned `name` of the operation.
1672
+ # This field has been deprecated and replaced by the name field.
1673
+ # @!attribute [rw] name
1674
+ # @return [::String]
1675
+ # The name (project, location, operation id) of the operation to get.
1676
+ # Specified in the format `projects/*/locations/*/operations/*`.
1677
+ class GetOperationRequest
1678
+ include ::Google::Protobuf::MessageExts
1679
+ extend ::Google::Protobuf::MessageExts::ClassMethods
1680
+ end
1681
+
1682
+ # ListOperationsRequest lists operations.
1683
+ # @!attribute [rw] project_id
1684
+ # @return [::String]
1685
+ # Required. Deprecated. The Google Developers Console [project ID or project
1686
+ # number](https://support.google.com/cloud/answer/6158840).
1687
+ # This field has been deprecated and replaced by the parent field.
1688
+ # @!attribute [rw] zone
1689
+ # @return [::String]
1690
+ # Required. Deprecated. The name of the Google Compute Engine
1691
+ # [zone](https://cloud.google.com/compute/docs/zones#available) to return operations for, or `-` for
1692
+ # all zones. This field has been deprecated and replaced by the parent field.
1693
+ # @!attribute [rw] parent
1694
+ # @return [::String]
1695
+ # The parent (project and location) where the operations will be listed.
1696
+ # Specified in the format `projects/*/locations/*`.
1697
+ # Location "-" matches all zones and all regions.
1698
+ class ListOperationsRequest
1699
+ include ::Google::Protobuf::MessageExts
1700
+ extend ::Google::Protobuf::MessageExts::ClassMethods
1701
+ end
1702
+
1703
+ # CancelOperationRequest cancels a single operation.
1704
+ # @!attribute [rw] project_id
1705
+ # @return [::String]
1706
+ # Required. Deprecated. The Google Developers Console [project ID or project
1707
+ # number](https://support.google.com/cloud/answer/6158840).
1708
+ # This field has been deprecated and replaced by the name field.
1709
+ # @!attribute [rw] zone
1710
+ # @return [::String]
1711
+ # Required. Deprecated. The name of the Google Compute Engine
1712
+ # [zone](https://cloud.google.com/compute/docs/zones#available) in which the operation resides.
1713
+ # This field has been deprecated and replaced by the name field.
1714
+ # @!attribute [rw] operation_id
1715
+ # @return [::String]
1716
+ # Required. Deprecated. The server-assigned `name` of the operation.
1717
+ # This field has been deprecated and replaced by the name field.
1718
+ # @!attribute [rw] name
1719
+ # @return [::String]
1720
+ # The name (project, location, operation id) of the operation to cancel.
1721
+ # Specified in the format `projects/*/locations/*/operations/*`.
1722
+ class CancelOperationRequest
1723
+ include ::Google::Protobuf::MessageExts
1724
+ extend ::Google::Protobuf::MessageExts::ClassMethods
1725
+ end
1726
+
1727
+ # ListOperationsResponse is the result of ListOperationsRequest.
1728
+ # @!attribute [rw] operations
1729
+ # @return [::Array<::Google::Cloud::Container::V1beta1::Operation>]
1730
+ # A list of operations in the project in the specified zone.
1731
+ # @!attribute [rw] missing_zones
1732
+ # @return [::Array<::String>]
1733
+ # If any zones are listed here, the list of operations returned
1734
+ # may be missing the operations from those zones.
1735
+ class ListOperationsResponse
1736
+ include ::Google::Protobuf::MessageExts
1737
+ extend ::Google::Protobuf::MessageExts::ClassMethods
1738
+ end
1739
+
1740
+ # Gets the current Kubernetes Engine service configuration.
1741
+ # @!attribute [rw] project_id
1742
+ # @return [::String]
1743
+ # Required. Deprecated. The Google Developers Console [project ID or project
1744
+ # number](https://support.google.com/cloud/answer/6158840).
1745
+ # This field has been deprecated and replaced by the name field.
1746
+ # @!attribute [rw] zone
1747
+ # @return [::String]
1748
+ # Required. Deprecated. The name of the Google Compute Engine
1749
+ # [zone](https://cloud.google.com/compute/docs/zones#available) to return operations for.
1750
+ # This field has been deprecated and replaced by the name field.
1751
+ # @!attribute [rw] name
1752
+ # @return [::String]
1753
+ # The name (project and location) of the server config to get,
1754
+ # specified in the format `projects/*/locations/*`.
1755
+ class GetServerConfigRequest
1756
+ include ::Google::Protobuf::MessageExts
1757
+ extend ::Google::Protobuf::MessageExts::ClassMethods
1758
+ end
1759
+
1760
+ # Kubernetes Engine service configuration.
1761
+ # @!attribute [rw] default_cluster_version
1762
+ # @return [::String]
1763
+ # Version of Kubernetes the service deploys by default.
1764
+ # @!attribute [rw] valid_node_versions
1765
+ # @return [::Array<::String>]
1766
+ # List of valid node upgrade target versions.
1767
+ # @!attribute [rw] default_image_type
1768
+ # @return [::String]
1769
+ # Default image type.
1770
+ # @!attribute [rw] valid_image_types
1771
+ # @return [::Array<::String>]
1772
+ # List of valid image types.
1773
+ # @!attribute [rw] valid_master_versions
1774
+ # @return [::Array<::String>]
1775
+ # List of valid master versions.
1776
+ class ServerConfig
1777
+ include ::Google::Protobuf::MessageExts
1778
+ extend ::Google::Protobuf::MessageExts::ClassMethods
1779
+ end
1780
+
1781
+ # CreateNodePoolRequest creates a node pool for a cluster.
1782
+ # @!attribute [rw] project_id
1783
+ # @return [::String]
1784
+ # Required. Deprecated. The Google Developers Console [project ID or project
1785
+ # number](https://developers.google.com/console/help/new/#projectnumber).
1786
+ # This field has been deprecated and replaced by the parent field.
1787
+ # @!attribute [rw] zone
1788
+ # @return [::String]
1789
+ # Required. Deprecated. The name of the Google Compute Engine
1790
+ # [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster
1791
+ # resides.
1792
+ # This field has been deprecated and replaced by the parent field.
1793
+ # @!attribute [rw] cluster_id
1794
+ # @return [::String]
1795
+ # Required. Deprecated. The name of the cluster.
1796
+ # This field has been deprecated and replaced by the parent field.
1797
+ # @!attribute [rw] node_pool
1798
+ # @return [::Google::Cloud::Container::V1beta1::NodePool]
1799
+ # Required. The node pool to create.
1800
+ # @!attribute [rw] parent
1801
+ # @return [::String]
1802
+ # The parent (project, location, cluster id) where the node pool will be
1803
+ # created. Specified in the format
1804
+ # `projects/*/locations/*/clusters/*`.
1805
+ class CreateNodePoolRequest
1806
+ include ::Google::Protobuf::MessageExts
1807
+ extend ::Google::Protobuf::MessageExts::ClassMethods
1808
+ end
1809
+
1810
+ # DeleteNodePoolRequest deletes a node pool for a cluster.
1811
+ # @!attribute [rw] project_id
1812
+ # @return [::String]
1813
+ # Required. Deprecated. The Google Developers Console [project ID or project
1814
+ # number](https://developers.google.com/console/help/new/#projectnumber).
1815
+ # This field has been deprecated and replaced by the name field.
1816
+ # @!attribute [rw] zone
1817
+ # @return [::String]
1818
+ # Required. Deprecated. The name of the Google Compute Engine
1819
+ # [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster
1820
+ # resides.
1821
+ # This field has been deprecated and replaced by the name field.
1822
+ # @!attribute [rw] cluster_id
1823
+ # @return [::String]
1824
+ # Required. Deprecated. The name of the cluster.
1825
+ # This field has been deprecated and replaced by the name field.
1826
+ # @!attribute [rw] node_pool_id
1827
+ # @return [::String]
1828
+ # Required. Deprecated. The name of the node pool to delete.
1829
+ # This field has been deprecated and replaced by the name field.
1830
+ # @!attribute [rw] name
1831
+ # @return [::String]
1832
+ # The name (project, location, cluster, node pool id) of the node pool to
1833
+ # delete. Specified in the format
1834
+ # `projects/*/locations/*/clusters/*/nodePools/*`.
1835
+ class DeleteNodePoolRequest
1836
+ include ::Google::Protobuf::MessageExts
1837
+ extend ::Google::Protobuf::MessageExts::ClassMethods
1838
+ end
1839
+
1840
+ # ListNodePoolsRequest lists the node pool(s) for a cluster.
1841
+ # @!attribute [rw] project_id
1842
+ # @return [::String]
1843
+ # Required. Deprecated. The Google Developers Console [project ID or project
1844
+ # number](https://developers.google.com/console/help/new/#projectnumber).
1845
+ # This field has been deprecated and replaced by the parent field.
1846
+ # @!attribute [rw] zone
1847
+ # @return [::String]
1848
+ # Required. Deprecated. The name of the Google Compute Engine
1849
+ # [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster
1850
+ # resides.
1851
+ # This field has been deprecated and replaced by the parent field.
1852
+ # @!attribute [rw] cluster_id
1853
+ # @return [::String]
1854
+ # Required. Deprecated. The name of the cluster.
1855
+ # This field has been deprecated and replaced by the parent field.
1856
+ # @!attribute [rw] parent
1857
+ # @return [::String]
1858
+ # The parent (project, location, cluster id) where the node pools will be
1859
+ # listed. Specified in the format `projects/*/locations/*/clusters/*`.
1860
+ class ListNodePoolsRequest
1861
+ include ::Google::Protobuf::MessageExts
1862
+ extend ::Google::Protobuf::MessageExts::ClassMethods
1863
+ end
1864
+
1865
+ # GetNodePoolRequest retrieves a node pool for a cluster.
1866
+ # @!attribute [rw] project_id
1867
+ # @return [::String]
1868
+ # Required. Deprecated. The Google Developers Console [project ID or project
1869
+ # number](https://developers.google.com/console/help/new/#projectnumber).
1870
+ # This field has been deprecated and replaced by the name field.
1871
+ # @!attribute [rw] zone
1872
+ # @return [::String]
1873
+ # Required. Deprecated. The name of the Google Compute Engine
1874
+ # [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster
1875
+ # resides.
1876
+ # This field has been deprecated and replaced by the name field.
1877
+ # @!attribute [rw] cluster_id
1878
+ # @return [::String]
1879
+ # Required. Deprecated. The name of the cluster.
1880
+ # This field has been deprecated and replaced by the name field.
1881
+ # @!attribute [rw] node_pool_id
1882
+ # @return [::String]
1883
+ # Required. Deprecated. The name of the node pool.
1884
+ # This field has been deprecated and replaced by the name field.
1885
+ # @!attribute [rw] name
1886
+ # @return [::String]
1887
+ # The name (project, location, cluster, node pool id) of the node pool to
1888
+ # get. Specified in the format
1889
+ # `projects/*/locations/*/clusters/*/nodePools/*`.
1890
+ class GetNodePoolRequest
1891
+ include ::Google::Protobuf::MessageExts
1892
+ extend ::Google::Protobuf::MessageExts::ClassMethods
1893
+ end
1894
+
1895
+ # NodePool contains the name and configuration for a cluster's node pool.
1896
+ # Node pools are a set of nodes (i.e. VM's), with a common configuration and
1897
+ # specification, under the control of the cluster master. They may have a set
1898
+ # of Kubernetes labels applied to them, which may be used to reference them
1899
+ # during pod scheduling. They may also be resized up or down, to accommodate
1900
+ # the workload.
1901
+ # @!attribute [rw] name
1902
+ # @return [::String]
1903
+ # The name of the node pool.
1904
+ # @!attribute [rw] config
1905
+ # @return [::Google::Cloud::Container::V1beta1::NodeConfig]
1906
+ # The node configuration of the pool.
1907
+ # @!attribute [rw] initial_node_count
1908
+ # @return [::Integer]
1909
+ # The initial node count for the pool. You must ensure that your
1910
+ # Compute Engine <a href="/compute/docs/resource-quotas">resource quota</a>
1911
+ # is sufficient for this number of instances. You must also have available
1912
+ # firewall and routes quota.
1913
+ # @!attribute [rw] self_link
1914
+ # @return [::String]
1915
+ # [Output only] Server-defined URL for the resource.
1916
+ # @!attribute [rw] version
1917
+ # @return [::String]
1918
+ # The version of the Kubernetes of this node.
1919
+ # @!attribute [rw] instance_group_urls
1920
+ # @return [::Array<::String>]
1921
+ # [Output only] The resource URLs of the [managed instance
1922
+ # groups](https://cloud.google.com/compute/docs/instance-groups/creating-groups-of-managed-instances)
1923
+ # associated with this node pool.
1924
+ # @!attribute [rw] status
1925
+ # @return [::Google::Cloud::Container::V1beta1::NodePool::Status]
1926
+ # [Output only] The status of the nodes in this pool instance.
1927
+ # @!attribute [rw] status_message
1928
+ # @return [::String]
1929
+ # [Output only] Additional information about the current status of this
1930
+ # node pool instance, if available.
1931
+ # @!attribute [rw] autoscaling
1932
+ # @return [::Google::Cloud::Container::V1beta1::NodePoolAutoscaling]
1933
+ # Autoscaler configuration for this NodePool. Autoscaler is enabled
1934
+ # only if a valid configuration is present.
1935
+ # @!attribute [rw] management
1936
+ # @return [::Google::Cloud::Container::V1beta1::NodeManagement]
1937
+ # NodeManagement configuration for this NodePool.
1938
+ # @!attribute [rw] max_pods_constraint
1939
+ # @return [::Google::Cloud::Container::V1beta1::MaxPodsConstraint]
1940
+ # The constraint on the maximum number of pods that can be run
1941
+ # simultaneously on a node in the node pool.
1942
+ # @!attribute [rw] conditions
1943
+ # @return [::Array<::Google::Cloud::Container::V1beta1::StatusCondition>]
1944
+ # Which conditions caused the current node pool state.
1945
+ # @!attribute [rw] pod_ipv4_cidr_size
1946
+ # @return [::Integer]
1947
+ # [Output only] The pod CIDR block size per node in this node pool.
1948
+ class NodePool
1949
+ include ::Google::Protobuf::MessageExts
1950
+ extend ::Google::Protobuf::MessageExts::ClassMethods
1951
+
1952
+ # The current status of the node pool instance.
1953
+ module Status
1954
+ # Not set.
1955
+ STATUS_UNSPECIFIED = 0
1956
+
1957
+ # The PROVISIONING state indicates the node pool is being created.
1958
+ PROVISIONING = 1
1959
+
1960
+ # The RUNNING state indicates the node pool has been created
1961
+ # and is fully usable.
1962
+ RUNNING = 2
1963
+
1964
+ # The RUNNING_WITH_ERROR state indicates the node pool has been created
1965
+ # and is partially usable. Some error state has occurred and some
1966
+ # functionality may be impaired. Customer may need to reissue a request
1967
+ # or trigger a new update.
1968
+ RUNNING_WITH_ERROR = 3
1969
+
1970
+ # The RECONCILING state indicates that some work is actively being done on
1971
+ # the node pool, such as upgrading node software. Details can
1972
+ # be found in the `statusMessage` field.
1973
+ RECONCILING = 4
1974
+
1975
+ # The STOPPING state indicates the node pool is being deleted.
1976
+ STOPPING = 5
1977
+
1978
+ # The ERROR state indicates the node pool may be unusable. Details
1979
+ # can be found in the `statusMessage` field.
1980
+ ERROR = 6
1981
+ end
1982
+ end
1983
+
1984
+ # NodeManagement defines the set of node management services turned on for the
1985
+ # node pool.
1986
+ # @!attribute [rw] auto_upgrade
1987
+ # @return [::Boolean]
1988
+ # Whether the nodes will be automatically upgraded.
1989
+ # @!attribute [rw] auto_repair
1990
+ # @return [::Boolean]
1991
+ # Whether the nodes will be automatically repaired.
1992
+ # @!attribute [rw] upgrade_options
1993
+ # @return [::Google::Cloud::Container::V1beta1::AutoUpgradeOptions]
1994
+ # Specifies the Auto Upgrade knobs for the node pool.
1995
+ class NodeManagement
1996
+ include ::Google::Protobuf::MessageExts
1997
+ extend ::Google::Protobuf::MessageExts::ClassMethods
1998
+ end
1999
+
2000
+ # AutoUpgradeOptions defines the set of options for the user to control how
2001
+ # the Auto Upgrades will proceed.
2002
+ # @!attribute [rw] auto_upgrade_start_time
2003
+ # @return [::String]
2004
+ # [Output only] This field is set when upgrades are about to commence
2005
+ # with the approximate start time for the upgrades, in
2006
+ # [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
2007
+ # @!attribute [rw] description
2008
+ # @return [::String]
2009
+ # [Output only] This field is set when upgrades are about to commence
2010
+ # with the description of the upgrade.
2011
+ class AutoUpgradeOptions
2012
+ include ::Google::Protobuf::MessageExts
2013
+ extend ::Google::Protobuf::MessageExts::ClassMethods
2014
+ end
2015
+
2016
+ # MaintenancePolicy defines the maintenance policy to be used for the cluster.
2017
+ # @!attribute [rw] window
2018
+ # @return [::Google::Cloud::Container::V1beta1::MaintenanceWindow]
2019
+ # Specifies the maintenance window in which maintenance may be performed.
2020
+ # @!attribute [rw] resource_version
2021
+ # @return [::String]
2022
+ # A hash identifying the version of this policy, so that updates to fields of
2023
+ # the policy won't accidentally undo intermediate changes (and so that users
2024
+ # of the API unaware of some fields won't accidentally remove other fields).
2025
+ # Make a <code>get()</code> request to the cluster to get the current
2026
+ # resource version and include it with requests to set the policy.
2027
+ class MaintenancePolicy
2028
+ include ::Google::Protobuf::MessageExts
2029
+ extend ::Google::Protobuf::MessageExts::ClassMethods
2030
+ end
2031
+
2032
+ # MaintenanceWindow defines the maintenance window to be used for the cluster.
2033
+ # @!attribute [rw] daily_maintenance_window
2034
+ # @return [::Google::Cloud::Container::V1beta1::DailyMaintenanceWindow]
2035
+ # DailyMaintenanceWindow specifies a daily maintenance operation window.
2036
+ # @!attribute [rw] recurring_window
2037
+ # @return [::Google::Cloud::Container::V1beta1::RecurringTimeWindow]
2038
+ # RecurringWindow specifies some number of recurring time periods for
2039
+ # maintenance to occur. The time windows may be overlapping. If no
2040
+ # maintenance windows are set, maintenance can occur at any time.
2041
+ # @!attribute [rw] maintenance_exclusions
2042
+ # @return [::Google::Protobuf::Map{::String => ::Google::Cloud::Container::V1beta1::TimeWindow}]
2043
+ # Exceptions to maintenance window. Non-emergency maintenance should not
2044
+ # occur in these windows.
2045
+ class MaintenanceWindow
2046
+ include ::Google::Protobuf::MessageExts
2047
+ extend ::Google::Protobuf::MessageExts::ClassMethods
2048
+
2049
+ # @!attribute [rw] key
2050
+ # @return [::String]
2051
+ # @!attribute [rw] value
2052
+ # @return [::Google::Cloud::Container::V1beta1::TimeWindow]
2053
+ class MaintenanceExclusionsEntry
2054
+ include ::Google::Protobuf::MessageExts
2055
+ extend ::Google::Protobuf::MessageExts::ClassMethods
2056
+ end
2057
+ end
2058
+
2059
+ # Represents an arbitrary window of time.
2060
+ # @!attribute [rw] start_time
2061
+ # @return [::Google::Protobuf::Timestamp]
2062
+ # The time that the window first starts.
2063
+ # @!attribute [rw] end_time
2064
+ # @return [::Google::Protobuf::Timestamp]
2065
+ # The time that the window ends. The end time should take place after the
2066
+ # start time.
2067
+ class TimeWindow
2068
+ include ::Google::Protobuf::MessageExts
2069
+ extend ::Google::Protobuf::MessageExts::ClassMethods
2070
+ end
2071
+
2072
+ # Represents an arbitrary window of time that recurs.
2073
+ # @!attribute [rw] window
2074
+ # @return [::Google::Cloud::Container::V1beta1::TimeWindow]
2075
+ # The window of the first recurrence.
2076
+ # @!attribute [rw] recurrence
2077
+ # @return [::String]
2078
+ # An RRULE (https://tools.ietf.org/html/rfc5545#section-3.8.5.3) for how
2079
+ # this window reccurs. They go on for the span of time between the start and
2080
+ # end time.
2081
+ #
2082
+ # For example, to have something repeat every weekday, you'd use:
2083
+ # <code>FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR</code>
2084
+ # To repeat some window daily (equivalent to the DailyMaintenanceWindow):
2085
+ # <code>FREQ=DAILY</code>
2086
+ # For the first weekend of every month:
2087
+ # <code>FREQ=MONTHLY;BYSETPOS=1;BYDAY=SA,SU</code>
2088
+ # This specifies how frequently the window starts. Eg, if you wanted to have
2089
+ # a 9-5 UTC-4 window every weekday, you'd use something like:
2090
+ # <code>
2091
+ # start time = 2019-01-01T09:00:00-0400
2092
+ # end time = 2019-01-01T17:00:00-0400
2093
+ # recurrence = FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR
2094
+ # </code>
2095
+ # Windows can span multiple days. Eg, to make the window encompass every
2096
+ # weekend from midnight Saturday till the last minute of Sunday UTC:
2097
+ # <code>
2098
+ # start time = 2019-01-05T00:00:00Z
2099
+ # end time = 2019-01-07T23:59:00Z
2100
+ # recurrence = FREQ=WEEKLY;BYDAY=SA
2101
+ # </code>
2102
+ # Note the start and end time's specific dates are largely arbitrary except
2103
+ # to specify duration of the window and when it first starts.
2104
+ # The FREQ values of HOURLY, MINUTELY, and SECONDLY are not supported.
2105
+ class RecurringTimeWindow
2106
+ include ::Google::Protobuf::MessageExts
2107
+ extend ::Google::Protobuf::MessageExts::ClassMethods
2108
+ end
2109
+
2110
+ # Time window specified for daily maintenance operations.
2111
+ # @!attribute [rw] start_time
2112
+ # @return [::String]
2113
+ # Time within the maintenance window to start the maintenance operations.
2114
+ # It must be in format "HH:MM", where HH : [00-23] and MM : [00-59] GMT.
2115
+ # @!attribute [rw] duration
2116
+ # @return [::String]
2117
+ # [Output only] Duration of the time window, automatically chosen to be
2118
+ # smallest possible in the given scenario.
2119
+ class DailyMaintenanceWindow
2120
+ include ::Google::Protobuf::MessageExts
2121
+ extend ::Google::Protobuf::MessageExts::ClassMethods
2122
+ end
2123
+
2124
+ # SetNodePoolManagementRequest sets the node management properties of a node
2125
+ # pool.
2126
+ # @!attribute [rw] project_id
2127
+ # @return [::String]
2128
+ # Required. Deprecated. The Google Developers Console [project ID or project
2129
+ # number](https://support.google.com/cloud/answer/6158840).
2130
+ # This field has been deprecated and replaced by the name field.
2131
+ # @!attribute [rw] zone
2132
+ # @return [::String]
2133
+ # Required. Deprecated. The name of the Google Compute Engine
2134
+ # [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster
2135
+ # resides.
2136
+ # This field has been deprecated and replaced by the name field.
2137
+ # @!attribute [rw] cluster_id
2138
+ # @return [::String]
2139
+ # Required. Deprecated. The name of the cluster to update.
2140
+ # This field has been deprecated and replaced by the name field.
2141
+ # @!attribute [rw] node_pool_id
2142
+ # @return [::String]
2143
+ # Required. Deprecated. The name of the node pool to update.
2144
+ # This field has been deprecated and replaced by the name field.
2145
+ # @!attribute [rw] management
2146
+ # @return [::Google::Cloud::Container::V1beta1::NodeManagement]
2147
+ # Required. NodeManagement configuration for the node pool.
2148
+ # @!attribute [rw] name
2149
+ # @return [::String]
2150
+ # The name (project, location, cluster, node pool id) of the node pool to set
2151
+ # management properties. Specified in the format
2152
+ # `projects/*/locations/*/clusters/*/nodePools/*`.
2153
+ class SetNodePoolManagementRequest
2154
+ include ::Google::Protobuf::MessageExts
2155
+ extend ::Google::Protobuf::MessageExts::ClassMethods
2156
+ end
2157
+
2158
+ # SetNodePoolSizeRequest sets the size a node
2159
+ # pool.
2160
+ # @!attribute [rw] project_id
2161
+ # @return [::String]
2162
+ # Required. Deprecated. The Google Developers Console [project ID or project
2163
+ # number](https://support.google.com/cloud/answer/6158840).
2164
+ # This field has been deprecated and replaced by the name field.
2165
+ # @!attribute [rw] zone
2166
+ # @return [::String]
2167
+ # Required. Deprecated. The name of the Google Compute Engine
2168
+ # [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster
2169
+ # resides.
2170
+ # This field has been deprecated and replaced by the name field.
2171
+ # @!attribute [rw] cluster_id
2172
+ # @return [::String]
2173
+ # Required. Deprecated. The name of the cluster to update.
2174
+ # This field has been deprecated and replaced by the name field.
2175
+ # @!attribute [rw] node_pool_id
2176
+ # @return [::String]
2177
+ # Required. Deprecated. The name of the node pool to update.
2178
+ # This field has been deprecated and replaced by the name field.
2179
+ # @!attribute [rw] node_count
2180
+ # @return [::Integer]
2181
+ # Required. The desired node count for the pool.
2182
+ # @!attribute [rw] name
2183
+ # @return [::String]
2184
+ # The name (project, location, cluster, node pool id) of the node pool to set
2185
+ # size.
2186
+ # Specified in the format `projects/*/locations/*/clusters/*/nodePools/*`.
2187
+ class SetNodePoolSizeRequest
2188
+ include ::Google::Protobuf::MessageExts
2189
+ extend ::Google::Protobuf::MessageExts::ClassMethods
2190
+ end
2191
+
2192
+ # RollbackNodePoolUpgradeRequest rollbacks the previously Aborted or Failed
2193
+ # NodePool upgrade. This will be an no-op if the last upgrade successfully
2194
+ # completed.
2195
+ # @!attribute [rw] project_id
2196
+ # @return [::String]
2197
+ # Required. Deprecated. The Google Developers Console [project ID or project
2198
+ # number](https://support.google.com/cloud/answer/6158840).
2199
+ # This field has been deprecated and replaced by the name field.
2200
+ # @!attribute [rw] zone
2201
+ # @return [::String]
2202
+ # Required. Deprecated. The name of the Google Compute Engine
2203
+ # [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster
2204
+ # resides.
2205
+ # This field has been deprecated and replaced by the name field.
2206
+ # @!attribute [rw] cluster_id
2207
+ # @return [::String]
2208
+ # Required. Deprecated. The name of the cluster to rollback.
2209
+ # This field has been deprecated and replaced by the name field.
2210
+ # @!attribute [rw] node_pool_id
2211
+ # @return [::String]
2212
+ # Required. Deprecated. The name of the node pool to rollback.
2213
+ # This field has been deprecated and replaced by the name field.
2214
+ # @!attribute [rw] name
2215
+ # @return [::String]
2216
+ # The name (project, location, cluster, node pool id) of the node poll to
2217
+ # rollback upgrade.
2218
+ # Specified in the format `projects/*/locations/*/clusters/*/nodePools/*`.
2219
+ class RollbackNodePoolUpgradeRequest
2220
+ include ::Google::Protobuf::MessageExts
2221
+ extend ::Google::Protobuf::MessageExts::ClassMethods
2222
+ end
2223
+
2224
+ # ListNodePoolsResponse is the result of ListNodePoolsRequest.
2225
+ # @!attribute [rw] node_pools
2226
+ # @return [::Array<::Google::Cloud::Container::V1beta1::NodePool>]
2227
+ # A list of node pools for a cluster.
2228
+ class ListNodePoolsResponse
2229
+ include ::Google::Protobuf::MessageExts
2230
+ extend ::Google::Protobuf::MessageExts::ClassMethods
2231
+ end
2232
+
2233
+ # ClusterAutoscaling contains global, per-cluster information
2234
+ # required by Cluster Autoscaler to automatically adjust
2235
+ # the size of the cluster and create/delete
2236
+ # node pools based on the current needs.
2237
+ # @!attribute [rw] enable_node_autoprovisioning
2238
+ # @return [::Boolean]
2239
+ # Enables automatic node pool creation and deletion.
2240
+ # @!attribute [rw] resource_limits
2241
+ # @return [::Array<::Google::Cloud::Container::V1beta1::ResourceLimit>]
2242
+ # Contains global constraints regarding minimum and maximum
2243
+ # amount of resources in the cluster.
2244
+ # @!attribute [rw] autoprovisioning_node_pool_defaults
2245
+ # @return [::Google::Cloud::Container::V1beta1::AutoprovisioningNodePoolDefaults]
2246
+ # AutoprovisioningNodePoolDefaults contains defaults for a node pool
2247
+ # created by NAP.
2248
+ # @!attribute [rw] autoprovisioning_locations
2249
+ # @return [::Array<::String>]
2250
+ # The list of Google Compute Engine [zones](https://cloud.google.com/compute/docs/zones#available)
2251
+ # in which the NodePool's nodes can be created by NAP.
2252
+ class ClusterAutoscaling
2253
+ include ::Google::Protobuf::MessageExts
2254
+ extend ::Google::Protobuf::MessageExts::ClassMethods
2255
+ end
2256
+
2257
+ # AutoprovisioningNodePoolDefaults contains defaults for a node pool created
2258
+ # by NAP.
2259
+ # @!attribute [rw] oauth_scopes
2260
+ # @return [::Array<::String>]
2261
+ # Scopes that are used by NAP when creating node pools. If oauth_scopes are
2262
+ # specified, service_account should be empty.
2263
+ # @!attribute [rw] service_account
2264
+ # @return [::String]
2265
+ # The Google Cloud Platform Service Account to be used by the node VMs. If
2266
+ # service_account is specified, scopes should be empty.
2267
+ class AutoprovisioningNodePoolDefaults
2268
+ include ::Google::Protobuf::MessageExts
2269
+ extend ::Google::Protobuf::MessageExts::ClassMethods
2270
+ end
2271
+
2272
+ # Contains information about amount of some resource in the cluster.
2273
+ # For memory, value should be in GB.
2274
+ # @!attribute [rw] resource_type
2275
+ # @return [::String]
2276
+ # Resource name "cpu", "memory" or gpu-specific string.
2277
+ # @!attribute [rw] minimum
2278
+ # @return [::Integer]
2279
+ # Minimum amount of the resource in the cluster.
2280
+ # @!attribute [rw] maximum
2281
+ # @return [::Integer]
2282
+ # Maximum amount of the resource in the cluster.
2283
+ class ResourceLimit
2284
+ include ::Google::Protobuf::MessageExts
2285
+ extend ::Google::Protobuf::MessageExts::ClassMethods
2286
+ end
2287
+
2288
+ # NodePoolAutoscaling contains information required by cluster autoscaler to
2289
+ # adjust the size of the node pool to the current cluster usage.
2290
+ # @!attribute [rw] enabled
2291
+ # @return [::Boolean]
2292
+ # Is autoscaling enabled for this node pool.
2293
+ # @!attribute [rw] min_node_count
2294
+ # @return [::Integer]
2295
+ # Minimum number of nodes in the NodePool. Must be >= 1 and <=
2296
+ # max_node_count.
2297
+ # @!attribute [rw] max_node_count
2298
+ # @return [::Integer]
2299
+ # Maximum number of nodes in the NodePool. Must be >= min_node_count. There
2300
+ # has to enough quota to scale up the cluster.
2301
+ # @!attribute [rw] autoprovisioned
2302
+ # @return [::Boolean]
2303
+ # Can this node pool be deleted automatically.
2304
+ class NodePoolAutoscaling
2305
+ include ::Google::Protobuf::MessageExts
2306
+ extend ::Google::Protobuf::MessageExts::ClassMethods
2307
+ end
2308
+
2309
+ # SetLabelsRequest sets the Google Cloud Platform labels on a Google Container
2310
+ # Engine cluster, which will in turn set them for Google Compute Engine
2311
+ # resources used by that cluster
2312
+ # @!attribute [rw] project_id
2313
+ # @return [::String]
2314
+ # Required. Deprecated. The Google Developers Console [project ID or project
2315
+ # number](https://developers.google.com/console/help/new/#projectnumber).
2316
+ # This field has been deprecated and replaced by the name field.
2317
+ # @!attribute [rw] zone
2318
+ # @return [::String]
2319
+ # Required. Deprecated. The name of the Google Compute Engine
2320
+ # [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster
2321
+ # resides.
2322
+ # This field has been deprecated and replaced by the name field.
2323
+ # @!attribute [rw] cluster_id
2324
+ # @return [::String]
2325
+ # Required. Deprecated. The name of the cluster.
2326
+ # This field has been deprecated and replaced by the name field.
2327
+ # @!attribute [rw] resource_labels
2328
+ # @return [::Google::Protobuf::Map{::String => ::String}]
2329
+ # Required. The labels to set for that cluster.
2330
+ # @!attribute [rw] label_fingerprint
2331
+ # @return [::String]
2332
+ # Required. The fingerprint of the previous set of labels for this resource,
2333
+ # used to detect conflicts. The fingerprint is initially generated by
2334
+ # Kubernetes Engine and changes after every request to modify or update
2335
+ # labels. You must always provide an up-to-date fingerprint hash when
2336
+ # updating or changing labels. Make a <code>get()</code> request to the
2337
+ # resource to get the latest fingerprint.
2338
+ # @!attribute [rw] name
2339
+ # @return [::String]
2340
+ # The name (project, location, cluster id) of the cluster to set labels.
2341
+ # Specified in the format `projects/*/locations/*/clusters/*`.
2342
+ class SetLabelsRequest
2343
+ include ::Google::Protobuf::MessageExts
2344
+ extend ::Google::Protobuf::MessageExts::ClassMethods
2345
+
2346
+ # @!attribute [rw] key
2347
+ # @return [::String]
2348
+ # @!attribute [rw] value
2349
+ # @return [::String]
2350
+ class ResourceLabelsEntry
2351
+ include ::Google::Protobuf::MessageExts
2352
+ extend ::Google::Protobuf::MessageExts::ClassMethods
2353
+ end
2354
+ end
2355
+
2356
+ # SetLegacyAbacRequest enables or disables the ABAC authorization mechanism for
2357
+ # a cluster.
2358
+ # @!attribute [rw] project_id
2359
+ # @return [::String]
2360
+ # Required. Deprecated. The Google Developers Console [project ID or project
2361
+ # number](https://support.google.com/cloud/answer/6158840).
2362
+ # This field has been deprecated and replaced by the name field.
2363
+ # @!attribute [rw] zone
2364
+ # @return [::String]
2365
+ # Required. Deprecated. The name of the Google Compute Engine
2366
+ # [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster
2367
+ # resides.
2368
+ # This field has been deprecated and replaced by the name field.
2369
+ # @!attribute [rw] cluster_id
2370
+ # @return [::String]
2371
+ # Required. Deprecated. The name of the cluster to update.
2372
+ # This field has been deprecated and replaced by the name field.
2373
+ # @!attribute [rw] enabled
2374
+ # @return [::Boolean]
2375
+ # Required. Whether ABAC authorization will be enabled in the cluster.
2376
+ # @!attribute [rw] name
2377
+ # @return [::String]
2378
+ # The name (project, location, cluster id) of the cluster to set legacy abac.
2379
+ # Specified in the format `projects/*/locations/*/clusters/*`.
2380
+ class SetLegacyAbacRequest
2381
+ include ::Google::Protobuf::MessageExts
2382
+ extend ::Google::Protobuf::MessageExts::ClassMethods
2383
+ end
2384
+
2385
+ # StartIPRotationRequest creates a new IP for the cluster and then performs
2386
+ # a node upgrade on each node pool to point to the new IP.
2387
+ # @!attribute [rw] project_id
2388
+ # @return [::String]
2389
+ # Required. Deprecated. The Google Developers Console [project ID or project
2390
+ # number](https://developers.google.com/console/help/new/#projectnumber).
2391
+ # This field has been deprecated and replaced by the name field.
2392
+ # @!attribute [rw] zone
2393
+ # @return [::String]
2394
+ # Required. Deprecated. The name of the Google Compute Engine
2395
+ # [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster
2396
+ # resides.
2397
+ # This field has been deprecated and replaced by the name field.
2398
+ # @!attribute [rw] cluster_id
2399
+ # @return [::String]
2400
+ # Required. Deprecated. The name of the cluster.
2401
+ # This field has been deprecated and replaced by the name field.
2402
+ # @!attribute [rw] name
2403
+ # @return [::String]
2404
+ # The name (project, location, cluster id) of the cluster to start IP
2405
+ # rotation. Specified in the format `projects/*/locations/*/clusters/*`.
2406
+ # @!attribute [rw] rotate_credentials
2407
+ # @return [::Boolean]
2408
+ # Whether to rotate credentials during IP rotation.
2409
+ class StartIPRotationRequest
2410
+ include ::Google::Protobuf::MessageExts
2411
+ extend ::Google::Protobuf::MessageExts::ClassMethods
2412
+ end
2413
+
2414
+ # CompleteIPRotationRequest moves the cluster master back into single-IP mode.
2415
+ # @!attribute [rw] project_id
2416
+ # @return [::String]
2417
+ # Required. Deprecated. The Google Developers Console [project ID or project
2418
+ # number](https://developers.google.com/console/help/new/#projectnumber).
2419
+ # This field has been deprecated and replaced by the name field.
2420
+ # @!attribute [rw] zone
2421
+ # @return [::String]
2422
+ # Required. Deprecated. The name of the Google Compute Engine
2423
+ # [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster
2424
+ # resides.
2425
+ # This field has been deprecated and replaced by the name field.
2426
+ # @!attribute [rw] cluster_id
2427
+ # @return [::String]
2428
+ # Required. Deprecated. The name of the cluster.
2429
+ # This field has been deprecated and replaced by the name field.
2430
+ # @!attribute [rw] name
2431
+ # @return [::String]
2432
+ # The name (project, location, cluster id) of the cluster to complete IP
2433
+ # rotation. Specified in the format `projects/*/locations/*/clusters/*`.
2434
+ class CompleteIPRotationRequest
2435
+ include ::Google::Protobuf::MessageExts
2436
+ extend ::Google::Protobuf::MessageExts::ClassMethods
2437
+ end
2438
+
2439
+ # AcceleratorConfig represents a Hardware Accelerator request.
2440
+ # @!attribute [rw] accelerator_count
2441
+ # @return [::Integer]
2442
+ # The number of the accelerator cards exposed to an instance.
2443
+ # @!attribute [rw] accelerator_type
2444
+ # @return [::String]
2445
+ # The accelerator type resource name. List of supported accelerators
2446
+ # [here](https://cloud.google.com/compute/docs/gpus)
2447
+ class AcceleratorConfig
2448
+ include ::Google::Protobuf::MessageExts
2449
+ extend ::Google::Protobuf::MessageExts::ClassMethods
2450
+ end
2451
+
2452
+ # WorkloadMetadataConfig defines the metadata configuration to expose to
2453
+ # workloads on the node pool.
2454
+ # @!attribute [rw] node_metadata
2455
+ # @return [::Google::Cloud::Container::V1beta1::WorkloadMetadataConfig::NodeMetadata]
2456
+ # NodeMetadata is the configuration for how to expose metadata to the
2457
+ # workloads running on the node.
2458
+ class WorkloadMetadataConfig
2459
+ include ::Google::Protobuf::MessageExts
2460
+ extend ::Google::Protobuf::MessageExts::ClassMethods
2461
+
2462
+ # NodeMetadata is the configuration for if and how to expose the node
2463
+ # metadata to the workload running on the node.
2464
+ module NodeMetadata
2465
+ # Not set.
2466
+ UNSPECIFIED = 0
2467
+
2468
+ # Prevent workloads not in hostNetwork from accessing certain VM metadata,
2469
+ # specifically kube-env, which contains Kubelet credentials, and the
2470
+ # instance identity token.
2471
+ #
2472
+ # Metadata concealment is a temporary security solution available while the
2473
+ # bootstrapping process for cluster nodes is being redesigned with
2474
+ # significant security improvements. This feature is scheduled to be
2475
+ # deprecated in the future and later removed.
2476
+ SECURE = 1
2477
+
2478
+ # Expose all VM metadata to pods.
2479
+ EXPOSE = 2
2480
+ end
2481
+ end
2482
+
2483
+ # SetNetworkPolicyRequest enables/disables network policy for a cluster.
2484
+ # @!attribute [rw] project_id
2485
+ # @return [::String]
2486
+ # Required. Deprecated. The Google Developers Console [project ID or project
2487
+ # number](https://developers.google.com/console/help/new/#projectnumber).
2488
+ # This field has been deprecated and replaced by the name field.
2489
+ # @!attribute [rw] zone
2490
+ # @return [::String]
2491
+ # Required. Deprecated. The name of the Google Compute Engine
2492
+ # [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster
2493
+ # resides.
2494
+ # This field has been deprecated and replaced by the name field.
2495
+ # @!attribute [rw] cluster_id
2496
+ # @return [::String]
2497
+ # Required. Deprecated. The name of the cluster.
2498
+ # This field has been deprecated and replaced by the name field.
2499
+ # @!attribute [rw] network_policy
2500
+ # @return [::Google::Cloud::Container::V1beta1::NetworkPolicy]
2501
+ # Required. Configuration options for the NetworkPolicy feature.
2502
+ # @!attribute [rw] name
2503
+ # @return [::String]
2504
+ # The name (project, location, cluster id) of the cluster to set networking
2505
+ # policy. Specified in the format `projects/*/locations/*/clusters/*`.
2506
+ class SetNetworkPolicyRequest
2507
+ include ::Google::Protobuf::MessageExts
2508
+ extend ::Google::Protobuf::MessageExts::ClassMethods
2509
+ end
2510
+
2511
+ # SetMaintenancePolicyRequest sets the maintenance policy for a cluster.
2512
+ # @!attribute [rw] project_id
2513
+ # @return [::String]
2514
+ # Required. The Google Developers Console [project ID or project
2515
+ # number](https://support.google.com/cloud/answer/6158840).
2516
+ # @!attribute [rw] zone
2517
+ # @return [::String]
2518
+ # Required. The name of the Google Compute Engine
2519
+ # [zone](https://cloud.google.com/compute/docs/zones#available) in which the cluster
2520
+ # resides.
2521
+ # @!attribute [rw] cluster_id
2522
+ # @return [::String]
2523
+ # Required. The name of the cluster to update.
2524
+ # @!attribute [rw] maintenance_policy
2525
+ # @return [::Google::Cloud::Container::V1beta1::MaintenancePolicy]
2526
+ # Required. The maintenance policy to be set for the cluster. An empty field
2527
+ # clears the existing maintenance policy.
2528
+ # @!attribute [rw] name
2529
+ # @return [::String]
2530
+ # The name (project, location, cluster id) of the cluster to set maintenance
2531
+ # policy.
2532
+ # Specified in the format `projects/*/locations/*/clusters/*`.
2533
+ class SetMaintenancePolicyRequest
2534
+ include ::Google::Protobuf::MessageExts
2535
+ extend ::Google::Protobuf::MessageExts::ClassMethods
2536
+ end
2537
+
2538
+ # ListLocationsRequest is used to request the locations that offer GKE.
2539
+ # @!attribute [rw] parent
2540
+ # @return [::String]
2541
+ # Required. Contains the name of the resource requested.
2542
+ # Specified in the format `projects/*`.
2543
+ class ListLocationsRequest
2544
+ include ::Google::Protobuf::MessageExts
2545
+ extend ::Google::Protobuf::MessageExts::ClassMethods
2546
+ end
2547
+
2548
+ # ListLocationsResponse returns the list of all GKE locations and their
2549
+ # recommendation state.
2550
+ # @!attribute [rw] locations
2551
+ # @return [::Array<::Google::Cloud::Container::V1beta1::Location>]
2552
+ # A full list of GKE locations.
2553
+ # @!attribute [rw] next_page_token
2554
+ # @return [::String]
2555
+ # Only return ListLocationsResponse that occur after the page_token. This
2556
+ # value should be populated from the ListLocationsResponse.next_page_token if
2557
+ # that response token was set (which happens when listing more Locations than
2558
+ # fit in a single ListLocationsResponse).
2559
+ class ListLocationsResponse
2560
+ include ::Google::Protobuf::MessageExts
2561
+ extend ::Google::Protobuf::MessageExts::ClassMethods
2562
+ end
2563
+
2564
+ # Location returns the location name, and if the location is recommended
2565
+ # for GKE cluster scheduling.
2566
+ # @!attribute [rw] type
2567
+ # @return [::Google::Cloud::Container::V1beta1::Location::LocationType]
2568
+ # Contains the type of location this Location is for.
2569
+ # Regional or Zonal.
2570
+ # @!attribute [rw] name
2571
+ # @return [::String]
2572
+ # Contains the name of the resource requested.
2573
+ # Specified in the format `projects/*/locations/*`.
2574
+ # @!attribute [rw] recommended
2575
+ # @return [::Boolean]
2576
+ # Whether the location is recomended for GKE cluster scheduling.
2577
+ class Location
2578
+ include ::Google::Protobuf::MessageExts
2579
+ extend ::Google::Protobuf::MessageExts::ClassMethods
2580
+
2581
+ # LocationType is the type of GKE location, regional or zonal.
2582
+ module LocationType
2583
+ # LOCATION_TYPE_UNSPECIFIED means the location type was not determined.
2584
+ LOCATION_TYPE_UNSPECIFIED = 0
2585
+
2586
+ # A GKE Location where Zonal clusters can be created.
2587
+ ZONE = 1
2588
+
2589
+ # A GKE Location where Regional clusters can be created.
2590
+ REGION = 2
2591
+ end
2592
+ end
2593
+
2594
+ # StatusCondition describes why a cluster or a node pool has a certain status
2595
+ # (e.g., ERROR or DEGRADED).
2596
+ # @!attribute [rw] code
2597
+ # @return [::Google::Cloud::Container::V1beta1::StatusCondition::Code]
2598
+ # Machine-friendly representation of the condition
2599
+ # @!attribute [rw] message
2600
+ # @return [::String]
2601
+ # Human-friendly representation of the condition
2602
+ class StatusCondition
2603
+ include ::Google::Protobuf::MessageExts
2604
+ extend ::Google::Protobuf::MessageExts::ClassMethods
2605
+
2606
+ # Code for each condition
2607
+ module Code
2608
+ # UNKNOWN indicates a generic condition.
2609
+ UNKNOWN = 0
2610
+
2611
+ # GCE_STOCKOUT indicates a Google Compute Engine stockout.
2612
+ GCE_STOCKOUT = 1
2613
+
2614
+ # GKE_SERVICE_ACCOUNT_DELETED indicates that the user deleted their robot
2615
+ # service account.
2616
+ GKE_SERVICE_ACCOUNT_DELETED = 2
2617
+
2618
+ # Google Compute Engine quota was exceeded.
2619
+ GCE_QUOTA_EXCEEDED = 3
2620
+
2621
+ # Cluster state was manually changed by an SRE due to a system logic error.
2622
+ SET_BY_OPERATOR = 4
2623
+
2624
+ # Unable to perform an encrypt operation against the CloudKMS key used for
2625
+ # etcd level encryption.
2626
+ # More codes TBA
2627
+ CLOUD_KMS_KEY_ERROR = 7
2628
+ end
2629
+ end
2630
+
2631
+ # NetworkConfig reports the relative names of network & subnetwork.
2632
+ # @!attribute [rw] network
2633
+ # @return [::String]
2634
+ # Output only. The relative name of the Google Compute Engine
2635
+ # {::Google::Cloud::Container::V1beta1::NetworkConfig#network network}(https://cloud.google.com/compute/docs/networks-and-firewalls#networks) to which
2636
+ # the cluster is connected.
2637
+ # Example: projects/my-project/global/networks/my-network
2638
+ # @!attribute [rw] subnetwork
2639
+ # @return [::String]
2640
+ # Output only. The relative name of the Google Compute Engine
2641
+ # [subnetwork](https://cloud.google.com/compute/docs/vpc) to which the cluster is connected.
2642
+ # Example: projects/my-project/regions/us-central1/subnetworks/my-subnet
2643
+ # @!attribute [rw] enable_intra_node_visibility
2644
+ # @return [::Boolean]
2645
+ # Whether Intra-node visibility is enabled for this cluster.
2646
+ # This makes same node pod to pod traffic visible for VPC network.
2647
+ class NetworkConfig
2648
+ include ::Google::Protobuf::MessageExts
2649
+ extend ::Google::Protobuf::MessageExts::ClassMethods
2650
+ end
2651
+
2652
+ # ListUsableSubnetworksRequest requests the list of usable subnetworks.
2653
+ # available to a user for creating clusters.
2654
+ # @!attribute [rw] parent
2655
+ # @return [::String]
2656
+ # Required. The parent project where subnetworks are usable.
2657
+ # Specified in the format `projects/*`.
2658
+ # @!attribute [rw] filter
2659
+ # @return [::String]
2660
+ # Filtering currently only supports equality on the networkProjectId and must
2661
+ # be in the form: "networkProjectId=[PROJECTID]", where `networkProjectId`
2662
+ # is the project which owns the listed subnetworks. This defaults to the
2663
+ # parent project ID.
2664
+ # @!attribute [rw] page_size
2665
+ # @return [::Integer]
2666
+ # The max number of results per page that should be returned. If the number
2667
+ # of available results is larger than `page_size`, a `next_page_token` is
2668
+ # returned which can be used to get the next page of results in subsequent
2669
+ # requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
2670
+ # @!attribute [rw] page_token
2671
+ # @return [::String]
2672
+ # Specifies a page token to use. Set this to the nextPageToken returned by
2673
+ # previous list requests to get the next page of results.
2674
+ class ListUsableSubnetworksRequest
2675
+ include ::Google::Protobuf::MessageExts
2676
+ extend ::Google::Protobuf::MessageExts::ClassMethods
2677
+ end
2678
+
2679
+ # ListUsableSubnetworksResponse is the response of
2680
+ # ListUsableSubnetworksRequest.
2681
+ # @!attribute [rw] subnetworks
2682
+ # @return [::Array<::Google::Cloud::Container::V1beta1::UsableSubnetwork>]
2683
+ # A list of usable subnetworks in the specified network project.
2684
+ # @!attribute [rw] next_page_token
2685
+ # @return [::String]
2686
+ # This token allows you to get the next page of results for list requests.
2687
+ # If the number of results is larger than `page_size`, use the
2688
+ # `next_page_token` as a value for the query parameter `page_token` in the
2689
+ # next request. The value will become empty when there are no more pages.
2690
+ class ListUsableSubnetworksResponse
2691
+ include ::Google::Protobuf::MessageExts
2692
+ extend ::Google::Protobuf::MessageExts::ClassMethods
2693
+ end
2694
+
2695
+ # Secondary IP range of a usable subnetwork.
2696
+ # @!attribute [rw] range_name
2697
+ # @return [::String]
2698
+ # The name associated with this subnetwork secondary range, used when adding
2699
+ # an alias IP range to a VM instance.
2700
+ # @!attribute [rw] ip_cidr_range
2701
+ # @return [::String]
2702
+ # The range of IP addresses belonging to this subnetwork secondary range.
2703
+ # @!attribute [rw] status
2704
+ # @return [::Google::Cloud::Container::V1beta1::UsableSubnetworkSecondaryRange::Status]
2705
+ # This field is to determine the status of the secondary range programmably.
2706
+ class UsableSubnetworkSecondaryRange
2707
+ include ::Google::Protobuf::MessageExts
2708
+ extend ::Google::Protobuf::MessageExts::ClassMethods
2709
+
2710
+ # Status shows the current usage of a secondary IP range.
2711
+ module Status
2712
+ # UNKNOWN is the zero value of the Status enum. It's not a valid status.
2713
+ UNKNOWN = 0
2714
+
2715
+ # UNUSED denotes that this range is unclaimed by any cluster.
2716
+ UNUSED = 1
2717
+
2718
+ # IN_USE_SERVICE denotes that this range is claimed by a cluster for
2719
+ # services. It cannot be used for other clusters.
2720
+ IN_USE_SERVICE = 2
2721
+
2722
+ # IN_USE_SHAREABLE_POD denotes this range was created by the network admin
2723
+ # and is currently claimed by a cluster for pods. It can only be used by
2724
+ # other clusters as a pod range.
2725
+ IN_USE_SHAREABLE_POD = 3
2726
+
2727
+ # IN_USE_MANAGED_POD denotes this range was created by GKE and is claimed
2728
+ # for pods. It cannot be used for other clusters.
2729
+ IN_USE_MANAGED_POD = 4
2730
+ end
2731
+ end
2732
+
2733
+ # UsableSubnetwork resource returns the subnetwork name, its associated network
2734
+ # and the primary CIDR range.
2735
+ # @!attribute [rw] subnetwork
2736
+ # @return [::String]
2737
+ # Subnetwork Name.
2738
+ # Example: projects/my-project/regions/us-central1/subnetworks/my-subnet
2739
+ # @!attribute [rw] network
2740
+ # @return [::String]
2741
+ # Network Name.
2742
+ # Example: projects/my-project/global/networks/my-network
2743
+ # @!attribute [rw] ip_cidr_range
2744
+ # @return [::String]
2745
+ # The range of internal addresses that are owned by this subnetwork.
2746
+ # @!attribute [rw] secondary_ip_ranges
2747
+ # @return [::Array<::Google::Cloud::Container::V1beta1::UsableSubnetworkSecondaryRange>]
2748
+ # Secondary IP ranges.
2749
+ # @!attribute [rw] status_message
2750
+ # @return [::String]
2751
+ # A human readable status message representing the reasons for cases where
2752
+ # the caller cannot use the secondary ranges under the subnet. For example if
2753
+ # the secondary_ip_ranges is empty due to a permission issue, an insufficient
2754
+ # permission message will be given by status_message.
2755
+ class UsableSubnetwork
2756
+ include ::Google::Protobuf::MessageExts
2757
+ extend ::Google::Protobuf::MessageExts::ClassMethods
2758
+ end
2759
+
2760
+ # VerticalPodAutoscaling contains global, per-cluster information
2761
+ # required by Vertical Pod Autoscaler to automatically adjust
2762
+ # the resources of pods controlled by it.
2763
+ # @!attribute [rw] enabled
2764
+ # @return [::Boolean]
2765
+ # Enables vertical pod autoscaling.
2766
+ class VerticalPodAutoscaling
2767
+ include ::Google::Protobuf::MessageExts
2768
+ extend ::Google::Protobuf::MessageExts::ClassMethods
2769
+ end
2770
+
2771
+ # IntraNodeVisibilityConfig contains the desired config of the intra-node
2772
+ # visibility on this cluster.
2773
+ # @!attribute [rw] enabled
2774
+ # @return [::Boolean]
2775
+ # Enables intra node visibility for this cluster.
2776
+ class IntraNodeVisibilityConfig
2777
+ include ::Google::Protobuf::MessageExts
2778
+ extend ::Google::Protobuf::MessageExts::ClassMethods
2779
+ end
2780
+
2781
+ # Constraints applied to pods.
2782
+ # @!attribute [rw] max_pods_per_node
2783
+ # @return [::Integer]
2784
+ # Constraint enforced on the max num of pods per node.
2785
+ class MaxPodsConstraint
2786
+ include ::Google::Protobuf::MessageExts
2787
+ extend ::Google::Protobuf::MessageExts::ClassMethods
2788
+ end
2789
+
2790
+ # Configuration of etcd encryption.
2791
+ # @!attribute [rw] state
2792
+ # @return [::Google::Cloud::Container::V1beta1::DatabaseEncryption::State]
2793
+ # Denotes the state of etcd encryption.
2794
+ # @!attribute [rw] key_name
2795
+ # @return [::String]
2796
+ # Name of CloudKMS key to use for the encryption of secrets in etcd.
2797
+ # Ex. projects/my-project/locations/global/keyRings/my-ring/cryptoKeys/my-key
2798
+ class DatabaseEncryption
2799
+ include ::Google::Protobuf::MessageExts
2800
+ extend ::Google::Protobuf::MessageExts::ClassMethods
2801
+
2802
+ # State of etcd encryption.
2803
+ module State
2804
+ # Should never be set
2805
+ UNKNOWN = 0
2806
+
2807
+ # Secrets in etcd are encrypted.
2808
+ ENCRYPTED = 1
2809
+
2810
+ # Secrets in etcd are stored in plain text (at etcd level) - this is
2811
+ # unrelated to Google Compute Engine level full disk encryption.
2812
+ DECRYPTED = 2
2813
+ end
2814
+ end
2815
+
2816
+ # Configuration for exporting cluster resource usages.
2817
+ # @!attribute [rw] bigquery_destination
2818
+ # @return [::Google::Cloud::Container::V1beta1::ResourceUsageExportConfig::BigQueryDestination]
2819
+ # Configuration to use BigQuery as usage export destination.
2820
+ # @!attribute [rw] enable_network_egress_metering
2821
+ # @return [::Boolean]
2822
+ # Whether to enable network egress metering for this cluster. If enabled, a
2823
+ # daemonset will be created in the cluster to meter network egress traffic.
2824
+ # @!attribute [rw] consumption_metering_config
2825
+ # @return [::Google::Cloud::Container::V1beta1::ResourceUsageExportConfig::ConsumptionMeteringConfig]
2826
+ # Configuration to enable resource consumption metering.
2827
+ class ResourceUsageExportConfig
2828
+ include ::Google::Protobuf::MessageExts
2829
+ extend ::Google::Protobuf::MessageExts::ClassMethods
2830
+
2831
+ # Parameters for using BigQuery as the destination of resource usage export.
2832
+ # @!attribute [rw] dataset_id
2833
+ # @return [::String]
2834
+ # The ID of a BigQuery Dataset.
2835
+ class BigQueryDestination
2836
+ include ::Google::Protobuf::MessageExts
2837
+ extend ::Google::Protobuf::MessageExts::ClassMethods
2838
+ end
2839
+
2840
+ # Parameters for controlling consumption metering.
2841
+ # @!attribute [rw] enabled
2842
+ # @return [::Boolean]
2843
+ # Whether to enable consumption metering for this cluster. If enabled, a
2844
+ # second BigQuery table will be created to hold resource consumption
2845
+ # records.
2846
+ class ConsumptionMeteringConfig
2847
+ include ::Google::Protobuf::MessageExts
2848
+ extend ::Google::Protobuf::MessageExts::ClassMethods
2849
+ end
2850
+ end
2851
+ end
2852
+ end
2853
+ end
2854
+ end