google-cloud-container-v1 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,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