google-cloud-container-v1beta1 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -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