google-cloud-container-v1 0.0.1

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