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,716 @@
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 Azure.
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>/azureClusters/<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] azure_region
39
+ # @return [::String]
40
+ # Required. The Azure region where the cluster runs.
41
+ #
42
+ # Each Google Cloud region supports a subset of nearby Azure regions.
43
+ # You can call
44
+ # {::Google::Cloud::GkeMultiCloud::V1::AzureClusters::Client#get_azure_server_config GetAzureServerConfig}
45
+ # to list all supported Azure regions within a given Google Cloud region.
46
+ # @!attribute [rw] resource_group_id
47
+ # @return [::String]
48
+ # Required. The ARM ID of the resource group where the cluster resources are deployed.
49
+ # For example:
50
+ # `/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>`
51
+ # @!attribute [rw] azure_client
52
+ # @return [::String]
53
+ # Required. Name of the {::Google::Cloud::GkeMultiCloud::V1::AzureClient AzureClient} that contains authentication configuration for
54
+ # how the Anthos Multi-Cloud API connects to Azure APIs.
55
+ #
56
+ # The `AzureClient` resource must reside on the same GCP project and region
57
+ # as the `AzureCluster`.
58
+ #
59
+ # `AzureClient` names are formatted as
60
+ # `projects/<project-number>/locations/<region>/azureClients/<client-id>`.
61
+ #
62
+ # See [Resource Names](https://cloud.google.com/apis/design/resource_names)
63
+ # for more details on Google Cloud resource names.
64
+ # @!attribute [rw] networking
65
+ # @return [::Google::Cloud::GkeMultiCloud::V1::AzureClusterNetworking]
66
+ # Required. Cluster-wide networking configuration.
67
+ # @!attribute [rw] control_plane
68
+ # @return [::Google::Cloud::GkeMultiCloud::V1::AzureControlPlane]
69
+ # Required. Configuration related to the cluster control plane.
70
+ # @!attribute [rw] authorization
71
+ # @return [::Google::Cloud::GkeMultiCloud::V1::AzureAuthorization]
72
+ # Required. Configuration related to the cluster RBAC settings.
73
+ # @!attribute [r] state
74
+ # @return [::Google::Cloud::GkeMultiCloud::V1::AzureCluster::State]
75
+ # Output only. The current state of the cluster.
76
+ # @!attribute [r] endpoint
77
+ # @return [::String]
78
+ # Output only. The endpoint of the cluster's API server.
79
+ # @!attribute [r] uid
80
+ # @return [::String]
81
+ # Output only. A globally unique identifier for the cluster.
82
+ # @!attribute [r] reconciling
83
+ # @return [::Boolean]
84
+ # Output only. If set, there are currently changes in flight to the cluster.
85
+ # @!attribute [r] create_time
86
+ # @return [::Google::Protobuf::Timestamp]
87
+ # Output only. The time at which this cluster was created.
88
+ # @!attribute [r] update_time
89
+ # @return [::Google::Protobuf::Timestamp]
90
+ # Output only. The time at which this cluster was last updated.
91
+ # @!attribute [rw] etag
92
+ # @return [::String]
93
+ # Allows clients to perform consistent read-modify-writes
94
+ # through optimistic concurrency control.
95
+ #
96
+ # Can be sent on update and delete requests to ensure the
97
+ # client has an up-to-date value before proceeding.
98
+ # @!attribute [rw] annotations
99
+ # @return [::Google::Protobuf::Map{::String => ::String}]
100
+ # Optional. Annotations on the cluster.
101
+ #
102
+ # This field has the same restrictions as Kubernetes annotations.
103
+ # The total size of all keys and values combined is limited to 256k.
104
+ # Keys can have 2 segments: prefix (optional) and name (required),
105
+ # separated by a slash (/).
106
+ # Prefix must be a DNS subdomain.
107
+ # Name must be 63 characters or less, begin and end with alphanumerics,
108
+ # with dashes (-), underscores (_), dots (.), and alphanumerics between.
109
+ # @!attribute [r] workload_identity_config
110
+ # @return [::Google::Cloud::GkeMultiCloud::V1::WorkloadIdentityConfig]
111
+ # Output only. Workload Identity settings.
112
+ # @!attribute [r] cluster_ca_certificate
113
+ # @return [::String]
114
+ # Output only. PEM encoded x509 certificate of the cluster root of trust.
115
+ # @!attribute [rw] fleet
116
+ # @return [::Google::Cloud::GkeMultiCloud::V1::Fleet]
117
+ # Optional. Fleet configuration.
118
+ # @!attribute [r] managed_resources
119
+ # @return [::Google::Cloud::GkeMultiCloud::V1::AzureClusterResources]
120
+ # Output only. Mananged Azure resources for this cluster.
121
+ # @!attribute [rw] logging_config
122
+ # @return [::Google::Cloud::GkeMultiCloud::V1::LoggingConfig]
123
+ # Optional. Logging configuration for this cluster.
124
+ class AzureCluster
125
+ include ::Google::Protobuf::MessageExts
126
+ extend ::Google::Protobuf::MessageExts::ClassMethods
127
+
128
+ # @!attribute [rw] key
129
+ # @return [::String]
130
+ # @!attribute [rw] value
131
+ # @return [::String]
132
+ class AnnotationsEntry
133
+ include ::Google::Protobuf::MessageExts
134
+ extend ::Google::Protobuf::MessageExts::ClassMethods
135
+ end
136
+
137
+ # The lifecycle state of the cluster.
138
+ module State
139
+ # Not set.
140
+ STATE_UNSPECIFIED = 0
141
+
142
+ # The PROVISIONING state indicates the cluster is being created.
143
+ PROVISIONING = 1
144
+
145
+ # The RUNNING state indicates the cluster has been created and is fully
146
+ # usable.
147
+ RUNNING = 2
148
+
149
+ # The RECONCILING state indicates that some work is actively being done on
150
+ # the cluster, such as upgrading the control plane replicas.
151
+ RECONCILING = 3
152
+
153
+ # The STOPPING state indicates the cluster is being deleted.
154
+ STOPPING = 4
155
+
156
+ # The ERROR state indicates the cluster is in a broken unrecoverable
157
+ # state.
158
+ ERROR = 5
159
+
160
+ # The DEGRADED state indicates the cluster requires user action to
161
+ # restore full functionality.
162
+ DEGRADED = 6
163
+ end
164
+ end
165
+
166
+ # ClusterNetworking contains cluster-wide networking configuration.
167
+ # @!attribute [rw] virtual_network_id
168
+ # @return [::String]
169
+ # Required. The Azure Resource Manager (ARM) ID of the VNet associated with your
170
+ # cluster.
171
+ #
172
+ # All components in the cluster (i.e. control plane and node pools) run on a
173
+ # single VNet.
174
+ #
175
+ # Example:
176
+ # `/subscriptions/<subscription-id>/resourceGroups/<resource-group-id>/providers/Microsoft.Network/virtualNetworks/<vnet-id>`
177
+ #
178
+ # This field cannot be changed after creation.
179
+ # @!attribute [rw] pod_address_cidr_blocks
180
+ # @return [::Array<::String>]
181
+ # Required. The IP address range of the pods in this cluster, in CIDR
182
+ # notation (e.g. `10.96.0.0/14`).
183
+ #
184
+ # All pods in the cluster get assigned a unique IPv4 address from these
185
+ # ranges. Only a single range is supported.
186
+ #
187
+ # This field cannot be changed after creation.
188
+ # @!attribute [rw] service_address_cidr_blocks
189
+ # @return [::Array<::String>]
190
+ # Required. The IP address range for services in this cluster, in CIDR
191
+ # notation (e.g. `10.96.0.0/14`).
192
+ #
193
+ # All services in the cluster get assigned a unique IPv4 address from these
194
+ # ranges. Only a single range is supported.
195
+ #
196
+ # This field cannot be changed after creating a cluster.
197
+ # @!attribute [rw] service_load_balancer_subnet_id
198
+ # @return [::String]
199
+ # Optional. The ARM ID of the subnet where Kubernetes private service type load
200
+ # balancers are deployed. When unspecified, it defaults to
201
+ # AzureControlPlane.subnet_id.
202
+ #
203
+ # Example:
204
+ # "/subscriptions/d00494d6-6f3c-4280-bbb2-899e163d1d30/resourceGroups/anthos_cluster_gkeust4/providers/Microsoft.Network/virtualNetworks/gke-vnet-gkeust4/subnets/subnetid456"
205
+ class AzureClusterNetworking
206
+ include ::Google::Protobuf::MessageExts
207
+ extend ::Google::Protobuf::MessageExts::ClassMethods
208
+ end
209
+
210
+ # AzureControlPlane represents the control plane configurations.
211
+ # @!attribute [rw] version
212
+ # @return [::String]
213
+ # Required. The Kubernetes version to run on control plane replicas
214
+ # (e.g. `1.19.10-gke.1000`).
215
+ #
216
+ # You can list all supported versions on a given Google Cloud region by
217
+ # calling
218
+ # {::Google::Cloud::GkeMultiCloud::V1::AzureClusters::Client#get_azure_server_config GetAzureServerConfig}.
219
+ # @!attribute [rw] subnet_id
220
+ # @return [::String]
221
+ # Optional. The ARM ID of the default subnet for the control plane. The control plane
222
+ # VMs are deployed in this subnet, unless
223
+ # `AzureControlPlane.replica_placements` is specified. This subnet will also
224
+ # be used as default for `AzureControlPlane.endpoint_subnet_id` if
225
+ # `AzureControlPlane.endpoint_subnet_id` is not specified. Similarly it will
226
+ # be used as default for
227
+ # `AzureClusterNetworking.service_load_balancer_subnet_id`.
228
+ #
229
+ # Example:
230
+ # `/subscriptions/<subscription-id>/resourceGroups/<resource-group-id>/providers/Microsoft.Network/virtualNetworks/<vnet-id>/subnets/default`.
231
+ # @!attribute [rw] vm_size
232
+ # @return [::String]
233
+ # Optional. The Azure VM size name. Example: `Standard_DS2_v2`.
234
+ #
235
+ # For available VM sizes, see
236
+ # https://docs.microsoft.com/en-us/azure/virtual-machines/vm-naming-conventions.
237
+ #
238
+ # When unspecified, it defaults to `Standard_DS2_v2`.
239
+ # @!attribute [rw] ssh_config
240
+ # @return [::Google::Cloud::GkeMultiCloud::V1::AzureSshConfig]
241
+ # Required. SSH configuration for how to access the underlying control plane
242
+ # machines.
243
+ # @!attribute [rw] root_volume
244
+ # @return [::Google::Cloud::GkeMultiCloud::V1::AzureDiskTemplate]
245
+ # Optional. Configuration related to the root volume provisioned for each
246
+ # control plane replica.
247
+ #
248
+ # When unspecified, it defaults to 32-GiB Azure Disk.
249
+ # @!attribute [rw] main_volume
250
+ # @return [::Google::Cloud::GkeMultiCloud::V1::AzureDiskTemplate]
251
+ # Optional. Configuration related to the main volume provisioned for each
252
+ # control plane replica.
253
+ # The main volume is in charge of storing all of the cluster's etcd state.
254
+ #
255
+ # When unspecified, it defaults to a 8-GiB Azure Disk.
256
+ # @!attribute [rw] database_encryption
257
+ # @return [::Google::Cloud::GkeMultiCloud::V1::AzureDatabaseEncryption]
258
+ # Optional. Configuration related to application-layer secrets encryption.
259
+ # @!attribute [rw] proxy_config
260
+ # @return [::Google::Cloud::GkeMultiCloud::V1::AzureProxyConfig]
261
+ # Optional. Proxy configuration for outbound HTTP(S) traffic.
262
+ # @!attribute [rw] config_encryption
263
+ # @return [::Google::Cloud::GkeMultiCloud::V1::AzureConfigEncryption]
264
+ # Optional. Configuration related to vm config encryption.
265
+ # @!attribute [rw] tags
266
+ # @return [::Google::Protobuf::Map{::String => ::String}]
267
+ # Optional. A set of tags to apply to all underlying control plane Azure resources.
268
+ # @!attribute [rw] replica_placements
269
+ # @return [::Array<::Google::Cloud::GkeMultiCloud::V1::ReplicaPlacement>]
270
+ # Optional. Configuration for where to place the control plane replicas.
271
+ #
272
+ # Up to three replica placement instances can be specified. If
273
+ # replica_placements is set, the replica placement instances will be applied
274
+ # to the three control plane replicas as evenly as possible.
275
+ # @!attribute [rw] endpoint_subnet_id
276
+ # @return [::String]
277
+ # Optional. The ARM ID of the subnet where the control plane load balancer is deployed.
278
+ # When unspecified, it defaults to AzureControlPlane.subnet_id.
279
+ #
280
+ # Example:
281
+ # "/subscriptions/d00494d6-6f3c-4280-bbb2-899e163d1d30/resourceGroups/anthos_cluster_gkeust4/providers/Microsoft.Network/virtualNetworks/gke-vnet-gkeust4/subnets/subnetid123"
282
+ class AzureControlPlane
283
+ include ::Google::Protobuf::MessageExts
284
+ extend ::Google::Protobuf::MessageExts::ClassMethods
285
+
286
+ # @!attribute [rw] key
287
+ # @return [::String]
288
+ # @!attribute [rw] value
289
+ # @return [::String]
290
+ class TagsEntry
291
+ include ::Google::Protobuf::MessageExts
292
+ extend ::Google::Protobuf::MessageExts::ClassMethods
293
+ end
294
+ end
295
+
296
+ # Configuration for the placement of a control plane replica.
297
+ # @!attribute [rw] subnet_id
298
+ # @return [::String]
299
+ # Required. For a given replica, the ARM ID of the subnet where the control plane VM is
300
+ # deployed. Make sure it's a subnet under the virtual network in the cluster
301
+ # configuration.
302
+ # @!attribute [rw] azure_availability_zone
303
+ # @return [::String]
304
+ # Required. For a given replica, the Azure availability zone where to provision the
305
+ # control plane VM and the ETCD disk.
306
+ class ReplicaPlacement
307
+ include ::Google::Protobuf::MessageExts
308
+ extend ::Google::Protobuf::MessageExts::ClassMethods
309
+ end
310
+
311
+ # Details of a proxy config stored in Azure Key Vault.
312
+ # @!attribute [rw] resource_group_id
313
+ # @return [::String]
314
+ # The ARM ID the of the resource group containing proxy keyvault.
315
+ #
316
+ # Resource group ids are formatted as
317
+ # `/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>`.
318
+ # @!attribute [rw] secret_id
319
+ # @return [::String]
320
+ # The URL the of the proxy setting secret with its version.
321
+ #
322
+ # Secret ids are formatted as
323
+ # `https://<key-vault-name>.vault.azure.net/secrets/<secret-name>/<secret-version>`.
324
+ class AzureProxyConfig
325
+ include ::Google::Protobuf::MessageExts
326
+ extend ::Google::Protobuf::MessageExts::ClassMethods
327
+ end
328
+
329
+ # Configuration related to application-layer secrets encryption.
330
+ #
331
+ # Anthos clusters on Azure encrypts your Kubernetes data at rest
332
+ # in etcd using Azure Key Vault.
333
+ # @!attribute [rw] key_id
334
+ # @return [::String]
335
+ # Required. The ARM ID of the Azure Key Vault key to encrypt / decrypt data.
336
+ #
337
+ # For example:
338
+ # `/subscriptions/<subscription-id>/resourceGroups/<resource-group-id>/providers/Microsoft.KeyVault/vaults/<key-vault-id>/keys/<key-name>`
339
+ # Encryption will always take the latest version of the key and hence
340
+ # specific version is not supported.
341
+ class AzureDatabaseEncryption
342
+ include ::Google::Protobuf::MessageExts
343
+ extend ::Google::Protobuf::MessageExts::ClassMethods
344
+ end
345
+
346
+ # Configuration related to config data encryption.
347
+ #
348
+ # Azure VM bootstrap secret is envelope encrypted with the provided key vault
349
+ # key.
350
+ # @!attribute [rw] key_id
351
+ # @return [::String]
352
+ # Required. The ARM ID of the Azure Key Vault key to encrypt / decrypt config data.
353
+ #
354
+ # For example:
355
+ # `/subscriptions/<subscription-id>/resourceGroups/<resource-group-id>/providers/Microsoft.KeyVault/vaults/<key-vault-id>/keys/<key-name>`
356
+ # @!attribute [rw] public_key
357
+ # @return [::String]
358
+ # Optional. RSA key of the Azure Key Vault public key to use for encrypting the data.
359
+ #
360
+ # This key must be formatted as a PEM-encoded SubjectPublicKeyInfo (RFC 5280)
361
+ # in ASN.1 DER form. The string must be comprised of a single PEM block of
362
+ # type "PUBLIC KEY".
363
+ class AzureConfigEncryption
364
+ include ::Google::Protobuf::MessageExts
365
+ extend ::Google::Protobuf::MessageExts::ClassMethods
366
+ end
367
+
368
+ # Configuration for Azure Disks.
369
+ # @!attribute [rw] size_gib
370
+ # @return [::Integer]
371
+ # Optional. The size of the disk, in GiBs.
372
+ #
373
+ # When unspecified, a default value is provided. See the specific reference
374
+ # in the parent resource.
375
+ class AzureDiskTemplate
376
+ include ::Google::Protobuf::MessageExts
377
+ extend ::Google::Protobuf::MessageExts::ClassMethods
378
+ end
379
+
380
+ # `AzureClient` resources hold client authentication information needed by the
381
+ # Anthos Multi-Cloud API to manage Azure resources on your Azure subscription.
382
+ #
383
+ # When an {::Google::Cloud::GkeMultiCloud::V1::AzureCluster AzureCluster} is created, an `AzureClient` resource needs to be
384
+ # provided and all operations on Azure resources associated to that cluster
385
+ # will authenticate to Azure services using the given client.
386
+ #
387
+ # `AzureClient` resources are immutable and cannot be modified upon creation.
388
+ #
389
+ # Each `AzureClient` resource is bound to a single Azure Active Directory
390
+ # Application and tenant.
391
+ # @!attribute [rw] name
392
+ # @return [::String]
393
+ # The name of this resource.
394
+ #
395
+ # `AzureClient` resource names are formatted as
396
+ # `projects/<project-number>/locations/<region>/azureClients/<client-id>`.
397
+ #
398
+ # See [Resource Names](https://cloud.google.com/apis/design/resource_names)
399
+ # for more details on Google Cloud resource names.
400
+ # @!attribute [rw] tenant_id
401
+ # @return [::String]
402
+ # Required. The Azure Active Directory Tenant ID.
403
+ # @!attribute [rw] application_id
404
+ # @return [::String]
405
+ # Required. The Azure Active Directory Application ID.
406
+ # @!attribute [rw] annotations
407
+ # @return [::Google::Protobuf::Map{::String => ::String}]
408
+ # Optional. Annotations on the resource.
409
+ #
410
+ # This field has the same restrictions as Kubernetes annotations.
411
+ # The total size of all keys and values combined is limited to 256k.
412
+ # Keys can have 2 segments: prefix (optional) and name (required),
413
+ # separated by a slash (/).
414
+ # Prefix must be a DNS subdomain.
415
+ # Name must be 63 characters or less, begin and end with alphanumerics,
416
+ # with dashes (-), underscores (_), dots (.), and alphanumerics between.
417
+ # @!attribute [r] pem_certificate
418
+ # @return [::String]
419
+ # Output only. The PEM encoded x509 certificate.
420
+ # @!attribute [r] uid
421
+ # @return [::String]
422
+ # Output only. A globally unique identifier for the client.
423
+ # @!attribute [r] create_time
424
+ # @return [::Google::Protobuf::Timestamp]
425
+ # Output only. The time at which this resource was created.
426
+ class AzureClient
427
+ include ::Google::Protobuf::MessageExts
428
+ extend ::Google::Protobuf::MessageExts::ClassMethods
429
+
430
+ # @!attribute [rw] key
431
+ # @return [::String]
432
+ # @!attribute [rw] value
433
+ # @return [::String]
434
+ class AnnotationsEntry
435
+ include ::Google::Protobuf::MessageExts
436
+ extend ::Google::Protobuf::MessageExts::ClassMethods
437
+ end
438
+ end
439
+
440
+ # Configuration related to the cluster RBAC settings.
441
+ # @!attribute [rw] admin_users
442
+ # @return [::Array<::Google::Cloud::GkeMultiCloud::V1::AzureClusterUser>]
443
+ # Required. Users that can perform operations as a cluster admin. A managed
444
+ # ClusterRoleBinding will be created to grant the `cluster-admin` ClusterRole
445
+ # to the users. Up to ten admin users can be provided.
446
+ #
447
+ # For more info on RBAC, see
448
+ # https://kubernetes.io/docs/reference/access-authn-authz/rbac/#user-facing-roles
449
+ class AzureAuthorization
450
+ include ::Google::Protobuf::MessageExts
451
+ extend ::Google::Protobuf::MessageExts::ClassMethods
452
+ end
453
+
454
+ # Identities of a user-type subject for Azure clusters.
455
+ # @!attribute [rw] username
456
+ # @return [::String]
457
+ # Required. The name of the user, e.g. `my-gcp-id@gmail.com`.
458
+ class AzureClusterUser
459
+ include ::Google::Protobuf::MessageExts
460
+ extend ::Google::Protobuf::MessageExts::ClassMethods
461
+ end
462
+
463
+ # An Anthos node pool running on Azure.
464
+ # @!attribute [rw] name
465
+ # @return [::String]
466
+ # The name of this resource.
467
+ #
468
+ # Node pool names are formatted as
469
+ # `projects/<project-number>/locations/<region>/azureClusters/<cluster-id>/azureNodePools/<node-pool-id>`.
470
+ #
471
+ # For more details on Google Cloud resource names,
472
+ # see [Resource Names](https://cloud.google.com/apis/design/resource_names)
473
+ # @!attribute [rw] version
474
+ # @return [::String]
475
+ # Required. The Kubernetes version (e.g. `1.19.10-gke.1000`) running on this node pool.
476
+ # @!attribute [rw] config
477
+ # @return [::Google::Cloud::GkeMultiCloud::V1::AzureNodeConfig]
478
+ # Required. The node configuration of the node pool.
479
+ # @!attribute [rw] subnet_id
480
+ # @return [::String]
481
+ # Required. The ARM ID of the subnet where the node pool VMs run. Make sure it's a
482
+ # subnet under the virtual network in the cluster configuration.
483
+ # @!attribute [rw] autoscaling
484
+ # @return [::Google::Cloud::GkeMultiCloud::V1::AzureNodePoolAutoscaling]
485
+ # Required. Autoscaler configuration for this node pool.
486
+ # @!attribute [r] state
487
+ # @return [::Google::Cloud::GkeMultiCloud::V1::AzureNodePool::State]
488
+ # Output only. The current state of the node pool.
489
+ # @!attribute [r] uid
490
+ # @return [::String]
491
+ # Output only. A globally unique identifier for the node pool.
492
+ # @!attribute [r] reconciling
493
+ # @return [::Boolean]
494
+ # Output only. If set, there are currently pending changes to the node
495
+ # pool.
496
+ # @!attribute [r] create_time
497
+ # @return [::Google::Protobuf::Timestamp]
498
+ # Output only. The time at which this node pool was created.
499
+ # @!attribute [r] update_time
500
+ # @return [::Google::Protobuf::Timestamp]
501
+ # Output only. The time at which this node pool was last updated.
502
+ # @!attribute [rw] etag
503
+ # @return [::String]
504
+ # Allows clients to perform consistent read-modify-writes
505
+ # through optimistic concurrency control.
506
+ #
507
+ # Can be sent on update and delete requests to ensure the
508
+ # client has an up-to-date value before proceeding.
509
+ # @!attribute [rw] annotations
510
+ # @return [::Google::Protobuf::Map{::String => ::String}]
511
+ # Optional. Annotations on the node pool.
512
+ #
513
+ # This field has the same restrictions as Kubernetes annotations.
514
+ # The total size of all keys and values combined is limited to 256k.
515
+ # Keys can have 2 segments: prefix (optional) and name (required),
516
+ # separated by a slash (/).
517
+ # Prefix must be a DNS subdomain.
518
+ # Name must be 63 characters or less, begin and end with alphanumerics,
519
+ # with dashes (-), underscores (_), dots (.), and alphanumerics between.
520
+ # @!attribute [rw] max_pods_constraint
521
+ # @return [::Google::Cloud::GkeMultiCloud::V1::MaxPodsConstraint]
522
+ # Required. The constraint on the maximum number of pods that can be run
523
+ # simultaneously on a node in the node pool.
524
+ # @!attribute [rw] azure_availability_zone
525
+ # @return [::String]
526
+ # Optional. The Azure availability zone of the nodes in this nodepool.
527
+ #
528
+ # When unspecified, it defaults to `1`.
529
+ class AzureNodePool
530
+ include ::Google::Protobuf::MessageExts
531
+ extend ::Google::Protobuf::MessageExts::ClassMethods
532
+
533
+ # @!attribute [rw] key
534
+ # @return [::String]
535
+ # @!attribute [rw] value
536
+ # @return [::String]
537
+ class AnnotationsEntry
538
+ include ::Google::Protobuf::MessageExts
539
+ extend ::Google::Protobuf::MessageExts::ClassMethods
540
+ end
541
+
542
+ # The lifecycle state of the node pool.
543
+ module State
544
+ # Not set.
545
+ STATE_UNSPECIFIED = 0
546
+
547
+ # The PROVISIONING state indicates the node pool is being created.
548
+ PROVISIONING = 1
549
+
550
+ # The RUNNING state indicates the node pool has been created and is fully
551
+ # usable.
552
+ RUNNING = 2
553
+
554
+ # The RECONCILING state indicates that the node pool is being reconciled.
555
+ RECONCILING = 3
556
+
557
+ # The STOPPING state indicates the node pool is being deleted.
558
+ STOPPING = 4
559
+
560
+ # The ERROR state indicates the node pool is in a broken unrecoverable
561
+ # state.
562
+ ERROR = 5
563
+
564
+ # The DEGRADED state indicates the node pool requires user action to
565
+ # restore full functionality.
566
+ DEGRADED = 6
567
+ end
568
+ end
569
+
570
+ # Parameters that describe the configuration of all node machines
571
+ # on a given node pool.
572
+ # @!attribute [rw] vm_size
573
+ # @return [::String]
574
+ # Optional. The Azure VM size name. Example: `Standard_DS2_v2`.
575
+ #
576
+ # See [Supported VM
577
+ # sizes](/anthos/clusters/docs/azure/reference/supported-vms) for options.
578
+ #
579
+ # When unspecified, it defaults to `Standard_DS2_v2`.
580
+ # @!attribute [rw] root_volume
581
+ # @return [::Google::Cloud::GkeMultiCloud::V1::AzureDiskTemplate]
582
+ # Optional. Configuration related to the root volume provisioned for each
583
+ # node pool machine.
584
+ #
585
+ # When unspecified, it defaults to a 32-GiB Azure Disk.
586
+ # @!attribute [rw] tags
587
+ # @return [::Google::Protobuf::Map{::String => ::String}]
588
+ # Optional. A set of tags to apply to all underlying Azure resources for this node
589
+ # pool. This currently only includes Virtual Machine Scale Sets.
590
+ #
591
+ # Specify at most 50 pairs containing alphanumerics, spaces, and symbols
592
+ # (.+-=_:@/). Keys can be up to 127 Unicode characters. Values can be up to
593
+ # 255 Unicode characters.
594
+ # @!attribute [rw] image_type
595
+ # @return [::String]
596
+ # Optional. The OS image type to use on node pool instances.
597
+ # Can have a value of `ubuntu`, or `windows` if the cluster enables
598
+ # the Windows node pool preview feature.
599
+ #
600
+ # When unspecified, it defaults to `ubuntu`.
601
+ # @!attribute [rw] ssh_config
602
+ # @return [::Google::Cloud::GkeMultiCloud::V1::AzureSshConfig]
603
+ # Required. SSH configuration for how to access the node pool machines.
604
+ # @!attribute [rw] proxy_config
605
+ # @return [::Google::Cloud::GkeMultiCloud::V1::AzureProxyConfig]
606
+ # Optional. Proxy configuration for outbound HTTP(S) traffic.
607
+ # @!attribute [rw] config_encryption
608
+ # @return [::Google::Cloud::GkeMultiCloud::V1::AzureConfigEncryption]
609
+ # Optional. Configuration related to vm config encryption.
610
+ # @!attribute [rw] taints
611
+ # @return [::Array<::Google::Cloud::GkeMultiCloud::V1::NodeTaint>]
612
+ # Optional. The initial taints assigned to nodes of this node pool.
613
+ # @!attribute [rw] labels
614
+ # @return [::Google::Protobuf::Map{::String => ::String}]
615
+ # Optional. The initial labels assigned to nodes of this node pool. An object
616
+ # containing a list of "key": value pairs. Example: { "name": "wrench",
617
+ # "mass": "1.3kg", "count": "3" }.
618
+ class AzureNodeConfig
619
+ include ::Google::Protobuf::MessageExts
620
+ extend ::Google::Protobuf::MessageExts::ClassMethods
621
+
622
+ # @!attribute [rw] key
623
+ # @return [::String]
624
+ # @!attribute [rw] value
625
+ # @return [::String]
626
+ class TagsEntry
627
+ include ::Google::Protobuf::MessageExts
628
+ extend ::Google::Protobuf::MessageExts::ClassMethods
629
+ end
630
+
631
+ # @!attribute [rw] key
632
+ # @return [::String]
633
+ # @!attribute [rw] value
634
+ # @return [::String]
635
+ class LabelsEntry
636
+ include ::Google::Protobuf::MessageExts
637
+ extend ::Google::Protobuf::MessageExts::ClassMethods
638
+ end
639
+ end
640
+
641
+ # Configuration related to Kubernetes cluster autoscaler.
642
+ #
643
+ # The Kubernetes cluster autoscaler will automatically adjust the
644
+ # size of the node pool based on the cluster load.
645
+ # @!attribute [rw] min_node_count
646
+ # @return [::Integer]
647
+ # Required. Minimum number of nodes in the node pool. Must be greater than or equal to
648
+ # 1 and less than or equal to max_node_count.
649
+ # @!attribute [rw] max_node_count
650
+ # @return [::Integer]
651
+ # Required. Maximum number of nodes in the node pool. Must be greater than or equal to
652
+ # min_node_count and less than or equal to 50.
653
+ class AzureNodePoolAutoscaling
654
+ include ::Google::Protobuf::MessageExts
655
+ extend ::Google::Protobuf::MessageExts::ClassMethods
656
+ end
657
+
658
+ # AzureServerConfig contains information about a Google Cloud location, such as
659
+ # supported Azure regions and Kubernetes versions.
660
+ # @!attribute [rw] name
661
+ # @return [::String]
662
+ # The `AzureServerConfig` resource name.
663
+ #
664
+ # `AzureServerConfig` names are formatted as
665
+ # `projects/<project-number>/locations/<region>/azureServerConfig`.
666
+ #
667
+ # See [Resource Names](https://cloud.google.com/apis/design/resource_names)
668
+ # for more details on GCP resource names.
669
+ # @!attribute [rw] valid_versions
670
+ # @return [::Array<::Google::Cloud::GkeMultiCloud::V1::AzureK8sVersionInfo>]
671
+ # List of valid Kubernetes versions.
672
+ # @!attribute [rw] supported_azure_regions
673
+ # @return [::Array<::String>]
674
+ # The list of supported Azure regions.
675
+ class AzureServerConfig
676
+ include ::Google::Protobuf::MessageExts
677
+ extend ::Google::Protobuf::MessageExts::ClassMethods
678
+ end
679
+
680
+ # Information about a supported Kubernetes version.
681
+ # @!attribute [rw] version
682
+ # @return [::String]
683
+ # A supported Kubernetes version (for example, `1.19.10-gke.1000`)
684
+ class AzureK8sVersionInfo
685
+ include ::Google::Protobuf::MessageExts
686
+ extend ::Google::Protobuf::MessageExts::ClassMethods
687
+ end
688
+
689
+ # SSH configuration for Azure resources.
690
+ # @!attribute [rw] authorized_key
691
+ # @return [::String]
692
+ # Required. The SSH public key data for VMs managed by Anthos. This accepts the
693
+ # authorized_keys file format used in OpenSSH according to the sshd(8) manual
694
+ # page.
695
+ class AzureSshConfig
696
+ include ::Google::Protobuf::MessageExts
697
+ extend ::Google::Protobuf::MessageExts::ClassMethods
698
+ end
699
+
700
+ # Managed Azure resources for the cluster.
701
+ #
702
+ # The values could change and be empty, depending on the state of the cluster.
703
+ # @!attribute [r] network_security_group_id
704
+ # @return [::String]
705
+ # Output only. The ARM ID of the cluster network security group.
706
+ # @!attribute [r] control_plane_application_security_group_id
707
+ # @return [::String]
708
+ # Output only. The ARM ID of the control plane application security group.
709
+ class AzureClusterResources
710
+ include ::Google::Protobuf::MessageExts
711
+ extend ::Google::Protobuf::MessageExts::ClassMethods
712
+ end
713
+ end
714
+ end
715
+ end
716
+ end