google-cloud-gke_multi_cloud-v1 0.1.0

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