google-cloud-gke_multi_cloud-v1 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. checksums.yaml +7 -0
  2. data/.yardopts +12 -0
  3. data/AUTHENTICATION.md +149 -0
  4. data/LICENSE.md +201 -0
  5. data/README.md +144 -0
  6. data/lib/google/cloud/gke_multi_cloud/v1/aws_clusters/client.rb +1729 -0
  7. data/lib/google/cloud/gke_multi_cloud/v1/aws_clusters/credentials.rb +47 -0
  8. data/lib/google/cloud/gke_multi_cloud/v1/aws_clusters/operations.rb +767 -0
  9. data/lib/google/cloud/gke_multi_cloud/v1/aws_clusters/paths.rb +107 -0
  10. data/lib/google/cloud/gke_multi_cloud/v1/aws_clusters.rb +51 -0
  11. data/lib/google/cloud/gke_multi_cloud/v1/azure_clusters/client.rb +2184 -0
  12. data/lib/google/cloud/gke_multi_cloud/v1/azure_clusters/credentials.rb +47 -0
  13. data/lib/google/cloud/gke_multi_cloud/v1/azure_clusters/operations.rb +767 -0
  14. data/lib/google/cloud/gke_multi_cloud/v1/azure_clusters/paths.rb +126 -0
  15. data/lib/google/cloud/gke_multi_cloud/v1/azure_clusters.rb +51 -0
  16. data/lib/google/cloud/gke_multi_cloud/v1/version.rb +28 -0
  17. data/lib/google/cloud/gke_multi_cloud/v1.rb +41 -0
  18. data/lib/google/cloud/gkemulticloud/v1/aws_resources_pb.rb +187 -0
  19. data/lib/google/cloud/gkemulticloud/v1/aws_service_pb.rb +110 -0
  20. data/lib/google/cloud/gkemulticloud/v1/aws_service_services_pb.rb +90 -0
  21. data/lib/google/cloud/gkemulticloud/v1/azure_resources_pb.rb +183 -0
  22. data/lib/google/cloud/gkemulticloud/v1/azure_service_pb.rb +138 -0
  23. data/lib/google/cloud/gkemulticloud/v1/azure_service_services_pb.rb +115 -0
  24. data/lib/google/cloud/gkemulticloud/v1/common_resources_pb.rb +71 -0
  25. data/lib/google-cloud-gke_multi_cloud-v1.rb +21 -0
  26. data/proto_docs/README.md +4 -0
  27. data/proto_docs/google/api/field_behavior.rb +71 -0
  28. data/proto_docs/google/api/resource.rb +222 -0
  29. data/proto_docs/google/cloud/gkemulticloud/v1/aws_resources.rb +633 -0
  30. data/proto_docs/google/cloud/gkemulticloud/v1/aws_service.rb +383 -0
  31. data/proto_docs/google/cloud/gkemulticloud/v1/azure_resources.rb +716 -0
  32. data/proto_docs/google/cloud/gkemulticloud/v1/azure_service.rb +473 -0
  33. data/proto_docs/google/cloud/gkemulticloud/v1/common_resources.rb +164 -0
  34. data/proto_docs/google/longrunning/operations.rb +164 -0
  35. data/proto_docs/google/protobuf/any.rb +141 -0
  36. data/proto_docs/google/protobuf/duration.rb +98 -0
  37. data/proto_docs/google/protobuf/empty.rb +36 -0
  38. data/proto_docs/google/protobuf/field_mask.rb +229 -0
  39. data/proto_docs/google/protobuf/timestamp.rb +129 -0
  40. data/proto_docs/google/rpc/status.rb +46 -0
  41. metadata +232 -0
@@ -0,0 +1,633 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Copyright 2022 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 GkeMultiCloud
23
+ module V1
24
+ # An Anthos cluster running on AWS.
25
+ # @!attribute [rw] name
26
+ # @return [::String]
27
+ # The name of this resource.
28
+ #
29
+ # Cluster names are formatted as
30
+ # `projects/<project-number>/locations/<region>/awsClusters/<cluster-id>`.
31
+ #
32
+ # See [Resource Names](https://cloud.google.com/apis/design/resource_names)
33
+ # for more details on GCP resource names.
34
+ # @!attribute [rw] description
35
+ # @return [::String]
36
+ # Optional. A human readable description of this cluster.
37
+ # Cannot be longer than 255 UTF-8 encoded bytes.
38
+ # @!attribute [rw] networking
39
+ # @return [::Google::Cloud::GkeMultiCloud::V1::AwsClusterNetworking]
40
+ # Required. Cluster-wide networking configuration.
41
+ # @!attribute [rw] aws_region
42
+ # @return [::String]
43
+ # Required. The AWS region where the cluster runs.
44
+ #
45
+ # Each Google Cloud region supports a subset of nearby AWS regions.
46
+ # You can call
47
+ # {::Google::Cloud::GkeMultiCloud::V1::AwsClusters::Client#get_aws_server_config GetAwsServerConfig}
48
+ # to list all supported AWS regions within a given Google Cloud region.
49
+ # @!attribute [rw] control_plane
50
+ # @return [::Google::Cloud::GkeMultiCloud::V1::AwsControlPlane]
51
+ # Required. Configuration related to the cluster control plane.
52
+ # @!attribute [rw] authorization
53
+ # @return [::Google::Cloud::GkeMultiCloud::V1::AwsAuthorization]
54
+ # Required. Configuration related to the cluster RBAC settings.
55
+ # @!attribute [r] state
56
+ # @return [::Google::Cloud::GkeMultiCloud::V1::AwsCluster::State]
57
+ # Output only. The current state of the cluster.
58
+ # @!attribute [r] endpoint
59
+ # @return [::String]
60
+ # Output only. The endpoint of the cluster's API server.
61
+ # @!attribute [r] uid
62
+ # @return [::String]
63
+ # Output only. A globally unique identifier for the cluster.
64
+ # @!attribute [r] reconciling
65
+ # @return [::Boolean]
66
+ # Output only. If set, there are currently changes in flight to the cluster.
67
+ # @!attribute [r] create_time
68
+ # @return [::Google::Protobuf::Timestamp]
69
+ # Output only. The time at which this cluster was created.
70
+ # @!attribute [r] update_time
71
+ # @return [::Google::Protobuf::Timestamp]
72
+ # Output only. The time at which this cluster was last updated.
73
+ # @!attribute [rw] etag
74
+ # @return [::String]
75
+ # Allows clients to perform consistent read-modify-writes
76
+ # through optimistic concurrency control.
77
+ #
78
+ # Can be sent on update and delete requests to ensure the
79
+ # client has an up-to-date value before proceeding.
80
+ # @!attribute [rw] annotations
81
+ # @return [::Google::Protobuf::Map{::String => ::String}]
82
+ # Optional. Annotations on the cluster.
83
+ #
84
+ # This field has the same restrictions as Kubernetes annotations.
85
+ # The total size of all keys and values combined is limited to 256k.
86
+ # Key can have 2 segments: prefix (optional) and name (required),
87
+ # separated by a slash (/).
88
+ # Prefix must be a DNS subdomain.
89
+ # Name must be 63 characters or less, begin and end with alphanumerics,
90
+ # with dashes (-), underscores (_), dots (.), and alphanumerics between.
91
+ # @!attribute [r] workload_identity_config
92
+ # @return [::Google::Cloud::GkeMultiCloud::V1::WorkloadIdentityConfig]
93
+ # Output only. Workload Identity settings.
94
+ # @!attribute [r] cluster_ca_certificate
95
+ # @return [::String]
96
+ # Output only. PEM encoded x509 certificate of the cluster root of trust.
97
+ # @!attribute [rw] fleet
98
+ # @return [::Google::Cloud::GkeMultiCloud::V1::Fleet]
99
+ # Optional. Fleet configuration.
100
+ # @!attribute [rw] logging_config
101
+ # @return [::Google::Cloud::GkeMultiCloud::V1::LoggingConfig]
102
+ # Optional. Logging configuration for this cluster.
103
+ class AwsCluster
104
+ include ::Google::Protobuf::MessageExts
105
+ extend ::Google::Protobuf::MessageExts::ClassMethods
106
+
107
+ # @!attribute [rw] key
108
+ # @return [::String]
109
+ # @!attribute [rw] value
110
+ # @return [::String]
111
+ class AnnotationsEntry
112
+ include ::Google::Protobuf::MessageExts
113
+ extend ::Google::Protobuf::MessageExts::ClassMethods
114
+ end
115
+
116
+ # The lifecycle state of the cluster.
117
+ module State
118
+ # Not set.
119
+ STATE_UNSPECIFIED = 0
120
+
121
+ # The PROVISIONING state indicates the cluster is being created.
122
+ PROVISIONING = 1
123
+
124
+ # The RUNNING state indicates the cluster has been created and is fully
125
+ # usable.
126
+ RUNNING = 2
127
+
128
+ # The RECONCILING state indicates that some work is actively being done on
129
+ # the cluster, such as upgrading the control plane replicas.
130
+ RECONCILING = 3
131
+
132
+ # The STOPPING state indicates the cluster is being deleted.
133
+ STOPPING = 4
134
+
135
+ # The ERROR state indicates the cluster is in a broken unrecoverable
136
+ # state.
137
+ ERROR = 5
138
+
139
+ # The DEGRADED state indicates the cluster requires user action to
140
+ # restore full functionality.
141
+ DEGRADED = 6
142
+ end
143
+ end
144
+
145
+ # ControlPlane defines common parameters between control plane nodes.
146
+ # @!attribute [rw] version
147
+ # @return [::String]
148
+ # Required. The Kubernetes version to run on control plane replicas
149
+ # (e.g. `1.19.10-gke.1000`).
150
+ #
151
+ # You can list all supported versions on a given Google Cloud region by
152
+ # calling
153
+ # {::Google::Cloud::GkeMultiCloud::V1::AwsClusters::Client#get_aws_server_config GetAwsServerConfig}.
154
+ # @!attribute [rw] instance_type
155
+ # @return [::String]
156
+ # Optional. The AWS instance type.
157
+ #
158
+ # When unspecified, it uses a default based on the cluster's version.
159
+ # @!attribute [rw] ssh_config
160
+ # @return [::Google::Cloud::GkeMultiCloud::V1::AwsSshConfig]
161
+ # Optional. SSH configuration for how to access the underlying control plane
162
+ # machines.
163
+ # @!attribute [rw] subnet_ids
164
+ # @return [::Array<::String>]
165
+ # Required. The list of subnets where control plane replicas will run.
166
+ # A replica will be provisioned on each subnet and up to three values
167
+ # can be provided.
168
+ # Each subnet must be in a different AWS Availability Zone (AZ).
169
+ # @!attribute [rw] security_group_ids
170
+ # @return [::Array<::String>]
171
+ # Optional. The IDs of additional security groups to add to control plane
172
+ # replicas. The Anthos Multi-Cloud API will automatically create and manage
173
+ # security groups with the minimum rules needed for a functioning cluster.
174
+ # @!attribute [rw] iam_instance_profile
175
+ # @return [::String]
176
+ # Required. The name or ARN of the AWS IAM instance profile to assign to each control
177
+ # plane replica.
178
+ # @!attribute [rw] root_volume
179
+ # @return [::Google::Cloud::GkeMultiCloud::V1::AwsVolumeTemplate]
180
+ # Optional. Configuration related to the root volume provisioned for each
181
+ # control plane replica.
182
+ #
183
+ # Volumes will be provisioned in the availability zone associated
184
+ # with the corresponding subnet.
185
+ #
186
+ # When unspecified, it defaults to 32 GiB with the GP2 volume type.
187
+ # @!attribute [rw] main_volume
188
+ # @return [::Google::Cloud::GkeMultiCloud::V1::AwsVolumeTemplate]
189
+ # Optional. Configuration related to the main volume provisioned for each
190
+ # control plane replica.
191
+ # The main volume is in charge of storing all of the cluster's etcd state.
192
+ #
193
+ # Volumes will be provisioned in the availability zone associated
194
+ # with the corresponding subnet.
195
+ #
196
+ # When unspecified, it defaults to 8 GiB with the GP2 volume type.
197
+ # @!attribute [rw] database_encryption
198
+ # @return [::Google::Cloud::GkeMultiCloud::V1::AwsDatabaseEncryption]
199
+ # Required. The ARN of the AWS KMS key used to encrypt cluster secrets.
200
+ # @!attribute [rw] tags
201
+ # @return [::Google::Protobuf::Map{::String => ::String}]
202
+ # Optional. A set of AWS resource tags to propagate to all underlying managed AWS
203
+ # resources.
204
+ #
205
+ # Specify at most 50 pairs containing alphanumerics, spaces, and symbols
206
+ # (.+-=_:@/). Keys can be up to 127 Unicode characters. Values can be up to
207
+ # 255 Unicode characters.
208
+ # @!attribute [rw] aws_services_authentication
209
+ # @return [::Google::Cloud::GkeMultiCloud::V1::AwsServicesAuthentication]
210
+ # Required. Authentication configuration for management of AWS resources.
211
+ # @!attribute [rw] proxy_config
212
+ # @return [::Google::Cloud::GkeMultiCloud::V1::AwsProxyConfig]
213
+ # Optional. Proxy configuration for outbound HTTP(S) traffic.
214
+ # @!attribute [rw] config_encryption
215
+ # @return [::Google::Cloud::GkeMultiCloud::V1::AwsConfigEncryption]
216
+ # Required. Config encryption for user data.
217
+ # @!attribute [rw] instance_placement
218
+ # @return [::Google::Cloud::GkeMultiCloud::V1::AwsInstancePlacement]
219
+ # Optional. The placement to use on control plane instances.
220
+ # When unspecified, the VPC's default tenancy will be used.
221
+ class AwsControlPlane
222
+ include ::Google::Protobuf::MessageExts
223
+ extend ::Google::Protobuf::MessageExts::ClassMethods
224
+
225
+ # @!attribute [rw] key
226
+ # @return [::String]
227
+ # @!attribute [rw] value
228
+ # @return [::String]
229
+ class TagsEntry
230
+ include ::Google::Protobuf::MessageExts
231
+ extend ::Google::Protobuf::MessageExts::ClassMethods
232
+ end
233
+ end
234
+
235
+ # Authentication configuration for the management of AWS resources.
236
+ # @!attribute [rw] role_arn
237
+ # @return [::String]
238
+ # Required. The Amazon Resource Name (ARN) of the role that the Anthos Multi-Cloud API
239
+ # will assume when managing AWS resources on your account.
240
+ # @!attribute [rw] role_session_name
241
+ # @return [::String]
242
+ # Optional. An identifier for the assumed role session.
243
+ #
244
+ # When unspecified, it defaults to `multicloud-service-agent`.
245
+ class AwsServicesAuthentication
246
+ include ::Google::Protobuf::MessageExts
247
+ extend ::Google::Protobuf::MessageExts::ClassMethods
248
+ end
249
+
250
+ # Configuration related to the cluster RBAC settings.
251
+ # @!attribute [rw] admin_users
252
+ # @return [::Array<::Google::Cloud::GkeMultiCloud::V1::AwsClusterUser>]
253
+ # Required. Users that can perform operations as a cluster admin. A managed
254
+ # ClusterRoleBinding will be created to grant the `cluster-admin` ClusterRole
255
+ # to the users. Up to ten admin users can be provided.
256
+ #
257
+ # For more info on RBAC, see
258
+ # https://kubernetes.io/docs/reference/access-authn-authz/rbac/#user-facing-roles
259
+ class AwsAuthorization
260
+ include ::Google::Protobuf::MessageExts
261
+ extend ::Google::Protobuf::MessageExts::ClassMethods
262
+ end
263
+
264
+ # Identities of a user-type subject for AWS clusters.
265
+ # @!attribute [rw] username
266
+ # @return [::String]
267
+ # Required. The name of the user, e.g. `my-gcp-id@gmail.com`.
268
+ class AwsClusterUser
269
+ include ::Google::Protobuf::MessageExts
270
+ extend ::Google::Protobuf::MessageExts::ClassMethods
271
+ end
272
+
273
+ # Configuration related to application-layer secrets encryption.
274
+ # @!attribute [rw] kms_key_arn
275
+ # @return [::String]
276
+ # Required. The ARN of the AWS KMS key used to encrypt cluster secrets.
277
+ class AwsDatabaseEncryption
278
+ include ::Google::Protobuf::MessageExts
279
+ extend ::Google::Protobuf::MessageExts::ClassMethods
280
+ end
281
+
282
+ # Configuration template for AWS EBS volumes.
283
+ # @!attribute [rw] size_gib
284
+ # @return [::Integer]
285
+ # Optional. The size of the volume, in GiBs.
286
+ #
287
+ # When unspecified, a default value is provided. See the specific reference
288
+ # in the parent resource.
289
+ # @!attribute [rw] volume_type
290
+ # @return [::Google::Cloud::GkeMultiCloud::V1::AwsVolumeTemplate::VolumeType]
291
+ # Optional. Type of the EBS volume.
292
+ #
293
+ # When unspecified, it defaults to GP2 volume.
294
+ # @!attribute [rw] iops
295
+ # @return [::Integer]
296
+ # Optional. The number of I/O operations per second (IOPS) to provision for GP3 volume.
297
+ # @!attribute [rw] kms_key_arn
298
+ # @return [::String]
299
+ # Optional. The Amazon Resource Name (ARN) of the Customer Managed Key (CMK) used to
300
+ # encrypt AWS EBS volumes.
301
+ #
302
+ # If not specified, the default Amazon managed key associated to
303
+ # the AWS region where this cluster runs will be used.
304
+ class AwsVolumeTemplate
305
+ include ::Google::Protobuf::MessageExts
306
+ extend ::Google::Protobuf::MessageExts::ClassMethods
307
+
308
+ # Types of supported EBS volumes. We currently only support GP2 or GP3
309
+ # volumes.
310
+ # See https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html
311
+ # for more information.
312
+ module VolumeType
313
+ # Not set.
314
+ VOLUME_TYPE_UNSPECIFIED = 0
315
+
316
+ # GP2 (General Purpose SSD volume type).
317
+ GP2 = 1
318
+
319
+ # GP3 (General Purpose SSD volume type).
320
+ GP3 = 2
321
+ end
322
+ end
323
+
324
+ # ClusterNetworking defines cluster-wide networking configuration.
325
+ #
326
+ # Anthos clusters on AWS run on a single VPC. This includes control
327
+ # plane replicas and node pool nodes.
328
+ # @!attribute [rw] vpc_id
329
+ # @return [::String]
330
+ # Required. The VPC associated with the cluster. All component clusters
331
+ # (i.e. control plane and node pools) run on a single VPC.
332
+ #
333
+ # This field cannot be changed after creation.
334
+ # @!attribute [rw] pod_address_cidr_blocks
335
+ # @return [::Array<::String>]
336
+ # Required. All pods in the cluster are assigned an IPv4 address from these ranges.
337
+ # Only a single range is supported.
338
+ # This field cannot be changed after creation.
339
+ # @!attribute [rw] service_address_cidr_blocks
340
+ # @return [::Array<::String>]
341
+ # Required. All services in the cluster are assigned an IPv4 address from these ranges.
342
+ # Only a single range is supported.
343
+ # This field cannot be changed after creation.
344
+ class AwsClusterNetworking
345
+ include ::Google::Protobuf::MessageExts
346
+ extend ::Google::Protobuf::MessageExts::ClassMethods
347
+ end
348
+
349
+ # An Anthos node pool running on AWS.
350
+ # @!attribute [rw] name
351
+ # @return [::String]
352
+ # The name of this resource.
353
+ #
354
+ # Node pool names are formatted as
355
+ # `projects/<project-number>/locations/<region>/awsClusters/<cluster-id>/awsNodePools/<node-pool-id>`.
356
+ #
357
+ # For more details on Google Cloud resource names,
358
+ # see [Resource Names](https://cloud.google.com/apis/design/resource_names)
359
+ # @!attribute [rw] version
360
+ # @return [::String]
361
+ # Required. The Kubernetes version to run on this node pool (e.g. `1.19.10-gke.1000`).
362
+ #
363
+ # You can list all supported versions on a given Google Cloud region by
364
+ # calling
365
+ # {::Google::Cloud::GkeMultiCloud::V1::AwsClusters::Client#get_aws_server_config GetAwsServerConfig}.
366
+ # @!attribute [rw] config
367
+ # @return [::Google::Cloud::GkeMultiCloud::V1::AwsNodeConfig]
368
+ # Required. The configuration of the node pool.
369
+ # @!attribute [rw] autoscaling
370
+ # @return [::Google::Cloud::GkeMultiCloud::V1::AwsNodePoolAutoscaling]
371
+ # Required. Autoscaler configuration for this node pool.
372
+ # @!attribute [rw] subnet_id
373
+ # @return [::String]
374
+ # Required. The subnet where the node pool node run.
375
+ # @!attribute [r] state
376
+ # @return [::Google::Cloud::GkeMultiCloud::V1::AwsNodePool::State]
377
+ # Output only. The lifecycle state of the node pool.
378
+ # @!attribute [r] uid
379
+ # @return [::String]
380
+ # Output only. A globally unique identifier for the node pool.
381
+ # @!attribute [r] reconciling
382
+ # @return [::Boolean]
383
+ # Output only. If set, there are currently changes in flight to the node
384
+ # pool.
385
+ # @!attribute [r] create_time
386
+ # @return [::Google::Protobuf::Timestamp]
387
+ # Output only. The time at which this node pool was created.
388
+ # @!attribute [r] update_time
389
+ # @return [::Google::Protobuf::Timestamp]
390
+ # Output only. The time at which this node pool was last updated.
391
+ # @!attribute [rw] etag
392
+ # @return [::String]
393
+ # Allows clients to perform consistent read-modify-writes
394
+ # through optimistic concurrency control.
395
+ #
396
+ # Can be sent on update and delete requests to ensure the
397
+ # client has an up-to-date value before proceeding.
398
+ # @!attribute [rw] annotations
399
+ # @return [::Google::Protobuf::Map{::String => ::String}]
400
+ # Optional. Annotations on the node pool.
401
+ #
402
+ # This field has the same restrictions as Kubernetes annotations.
403
+ # The total size of all keys and values combined is limited to 256k.
404
+ # Key can have 2 segments: prefix (optional) and name (required),
405
+ # separated by a slash (/).
406
+ # Prefix must be a DNS subdomain.
407
+ # Name must be 63 characters or less, begin and end with alphanumerics,
408
+ # with dashes (-), underscores (_), dots (.), and alphanumerics between.
409
+ # @!attribute [rw] max_pods_constraint
410
+ # @return [::Google::Cloud::GkeMultiCloud::V1::MaxPodsConstraint]
411
+ # Required. The constraint on the maximum number of pods that can be run
412
+ # simultaneously on a node in the node pool.
413
+ class AwsNodePool
414
+ include ::Google::Protobuf::MessageExts
415
+ extend ::Google::Protobuf::MessageExts::ClassMethods
416
+
417
+ # @!attribute [rw] key
418
+ # @return [::String]
419
+ # @!attribute [rw] value
420
+ # @return [::String]
421
+ class AnnotationsEntry
422
+ include ::Google::Protobuf::MessageExts
423
+ extend ::Google::Protobuf::MessageExts::ClassMethods
424
+ end
425
+
426
+ # The lifecycle state of the node pool.
427
+ module State
428
+ # Not set.
429
+ STATE_UNSPECIFIED = 0
430
+
431
+ # The PROVISIONING state indicates the node pool is being created.
432
+ PROVISIONING = 1
433
+
434
+ # The RUNNING state indicates the node pool has been created
435
+ # and is fully usable.
436
+ RUNNING = 2
437
+
438
+ # The RECONCILING state indicates that the node pool is being reconciled.
439
+ RECONCILING = 3
440
+
441
+ # The STOPPING state indicates the node pool is being deleted.
442
+ STOPPING = 4
443
+
444
+ # The ERROR state indicates the node pool is in a broken unrecoverable
445
+ # state.
446
+ ERROR = 5
447
+
448
+ # The DEGRADED state indicates the node pool requires user action to
449
+ # restore full functionality.
450
+ DEGRADED = 6
451
+ end
452
+ end
453
+
454
+ # Parameters that describe the nodes in a cluster.
455
+ # @!attribute [rw] instance_type
456
+ # @return [::String]
457
+ # Optional. The AWS instance type.
458
+ #
459
+ # When unspecified, it uses a default based on the node pool's version.
460
+ # @!attribute [rw] root_volume
461
+ # @return [::Google::Cloud::GkeMultiCloud::V1::AwsVolumeTemplate]
462
+ # Optional. Template for the root volume provisioned for node pool nodes.
463
+ # Volumes will be provisioned in the availability zone assigned
464
+ # to the node pool subnet.
465
+ #
466
+ # When unspecified, it defaults to 32 GiB with the GP2 volume type.
467
+ # @!attribute [rw] taints
468
+ # @return [::Array<::Google::Cloud::GkeMultiCloud::V1::NodeTaint>]
469
+ # Optional. The initial taints assigned to nodes of this node pool.
470
+ # @!attribute [rw] labels
471
+ # @return [::Google::Protobuf::Map{::String => ::String}]
472
+ # Optional. The initial labels assigned to nodes of this node pool. An object
473
+ # containing a list of "key": value pairs. Example: { "name": "wrench",
474
+ # "mass": "1.3kg", "count": "3" }.
475
+ # @!attribute [rw] tags
476
+ # @return [::Google::Protobuf::Map{::String => ::String}]
477
+ # Optional. Key/value metadata to assign to each underlying AWS resource. Specify at
478
+ # most 50 pairs containing alphanumerics, spaces, and symbols (.+-=_:@/).
479
+ # Keys can be up to 127 Unicode characters.
480
+ # Values can be up to 255 Unicode characters.
481
+ # @!attribute [rw] iam_instance_profile
482
+ # @return [::String]
483
+ # Required. The name or ARN of the AWS IAM role assigned to nodes in the pool.
484
+ # @!attribute [rw] image_type
485
+ # @return [::String]
486
+ # Optional. The OS image type to use on node pool instances.
487
+ # Can have a value of `ubuntu`, or `windows` if the cluster enables
488
+ # the Windows node pool preview feature.
489
+ #
490
+ # When unspecified, it defaults to `ubuntu`.
491
+ # @!attribute [rw] ssh_config
492
+ # @return [::Google::Cloud::GkeMultiCloud::V1::AwsSshConfig]
493
+ # Optional. The SSH configuration.
494
+ # @!attribute [rw] security_group_ids
495
+ # @return [::Array<::String>]
496
+ # Optional. The IDs of additional security groups to add to nodes in this pool. The
497
+ # manager will automatically create security groups with minimum rules
498
+ # needed for a functioning cluster.
499
+ # @!attribute [rw] proxy_config
500
+ # @return [::Google::Cloud::GkeMultiCloud::V1::AwsProxyConfig]
501
+ # Optional. Proxy configuration for outbound HTTP(S) traffic.
502
+ # @!attribute [rw] config_encryption
503
+ # @return [::Google::Cloud::GkeMultiCloud::V1::AwsConfigEncryption]
504
+ # Required. Config encryption for user data.
505
+ # @!attribute [rw] instance_placement
506
+ # @return [::Google::Cloud::GkeMultiCloud::V1::AwsInstancePlacement]
507
+ # Optional. Placement related info for this node.
508
+ # When unspecified, the VPC's default tenancy will be used.
509
+ class AwsNodeConfig
510
+ include ::Google::Protobuf::MessageExts
511
+ extend ::Google::Protobuf::MessageExts::ClassMethods
512
+
513
+ # @!attribute [rw] key
514
+ # @return [::String]
515
+ # @!attribute [rw] value
516
+ # @return [::String]
517
+ class LabelsEntry
518
+ include ::Google::Protobuf::MessageExts
519
+ extend ::Google::Protobuf::MessageExts::ClassMethods
520
+ end
521
+
522
+ # @!attribute [rw] key
523
+ # @return [::String]
524
+ # @!attribute [rw] value
525
+ # @return [::String]
526
+ class TagsEntry
527
+ include ::Google::Protobuf::MessageExts
528
+ extend ::Google::Protobuf::MessageExts::ClassMethods
529
+ end
530
+ end
531
+
532
+ # AwsNodePoolAutoscaling contains information required by cluster autoscaler
533
+ # to adjust the size of the node pool to the current cluster usage.
534
+ # @!attribute [rw] min_node_count
535
+ # @return [::Integer]
536
+ # Required. Minimum number of nodes in the node pool. Must be greater than or equal to
537
+ # 1 and less than or equal to max_node_count.
538
+ # @!attribute [rw] max_node_count
539
+ # @return [::Integer]
540
+ # Required. Maximum number of nodes in the node pool. Must be greater than or equal to
541
+ # min_node_count and less than or equal to 50.
542
+ class AwsNodePoolAutoscaling
543
+ include ::Google::Protobuf::MessageExts
544
+ extend ::Google::Protobuf::MessageExts::ClassMethods
545
+ end
546
+
547
+ # AwsServerConfig is the configuration of GKE cluster on AWS.
548
+ # @!attribute [rw] name
549
+ # @return [::String]
550
+ # The resource name of the config.
551
+ # @!attribute [rw] valid_versions
552
+ # @return [::Array<::Google::Cloud::GkeMultiCloud::V1::AwsK8sVersionInfo>]
553
+ # List of valid Kubernetes versions.
554
+ # @!attribute [rw] supported_aws_regions
555
+ # @return [::Array<::String>]
556
+ # The list of supported AWS regions.
557
+ class AwsServerConfig
558
+ include ::Google::Protobuf::MessageExts
559
+ extend ::Google::Protobuf::MessageExts::ClassMethods
560
+ end
561
+
562
+ # Kubernetes version information of GKE cluster on AWS.
563
+ # @!attribute [rw] version
564
+ # @return [::String]
565
+ # Kubernetes version name.
566
+ class AwsK8sVersionInfo
567
+ include ::Google::Protobuf::MessageExts
568
+ extend ::Google::Protobuf::MessageExts::ClassMethods
569
+ end
570
+
571
+ # SSH configuration for AWS resources.
572
+ # @!attribute [rw] ec2_key_pair
573
+ # @return [::String]
574
+ # Required. The name of the EC2 key pair used to login into cluster machines.
575
+ class AwsSshConfig
576
+ include ::Google::Protobuf::MessageExts
577
+ extend ::Google::Protobuf::MessageExts::ClassMethods
578
+ end
579
+
580
+ # Details of a proxy config stored in AWS Secret Manager.
581
+ # @!attribute [rw] secret_arn
582
+ # @return [::String]
583
+ # The ARN of the AWS Secret Manager secret that contains the HTTP(S) proxy
584
+ # configuration.
585
+ # @!attribute [rw] secret_version
586
+ # @return [::String]
587
+ # The version string of the AWS Secret Manager secret that contains the
588
+ # HTTP(S) proxy configuration.
589
+ class AwsProxyConfig
590
+ include ::Google::Protobuf::MessageExts
591
+ extend ::Google::Protobuf::MessageExts::ClassMethods
592
+ end
593
+
594
+ # Config encryption for user data.
595
+ # @!attribute [rw] kms_key_arn
596
+ # @return [::String]
597
+ # Required. The ARN of the AWS KMS key used to encrypt user data.
598
+ class AwsConfigEncryption
599
+ include ::Google::Protobuf::MessageExts
600
+ extend ::Google::Protobuf::MessageExts::ClassMethods
601
+ end
602
+
603
+ # Details of placement information for an instance.
604
+ # Limitations for using the `host` tenancy:
605
+ #
606
+ # * T3 instances that use the unlimited CPU credit option don't support host
607
+ # tenancy.
608
+ # @!attribute [rw] tenancy
609
+ # @return [::Google::Cloud::GkeMultiCloud::V1::AwsInstancePlacement::Tenancy]
610
+ # Required. The tenancy for instance.
611
+ class AwsInstancePlacement
612
+ include ::Google::Protobuf::MessageExts
613
+ extend ::Google::Protobuf::MessageExts::ClassMethods
614
+
615
+ # Tenancy defines how EC2 instances are distributed across physical hardware.
616
+ module Tenancy
617
+ # Not set.
618
+ TENANCY_UNSPECIFIED = 0
619
+
620
+ # Use default VPC tenancy.
621
+ DEFAULT = 1
622
+
623
+ # Run a dedicated instance.
624
+ DEDICATED = 2
625
+
626
+ # Launch this instance to a dedicated host.
627
+ HOST = 3
628
+ end
629
+ end
630
+ end
631
+ end
632
+ end
633
+ end