google-cloud-edge_container-v1 0.a → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (36) hide show
  1. checksums.yaml +4 -4
  2. data/.yardopts +12 -0
  3. data/AUTHENTICATION.md +122 -0
  4. data/README.md +144 -8
  5. data/lib/google/cloud/edge_container/v1/bindings_override.rb +102 -0
  6. data/lib/google/cloud/edge_container/v1/edge_container/client.rb +2486 -0
  7. data/lib/google/cloud/edge_container/v1/edge_container/credentials.rb +47 -0
  8. data/lib/google/cloud/edge_container/v1/edge_container/operations.rb +809 -0
  9. data/lib/google/cloud/edge_container/v1/edge_container/paths.rb +172 -0
  10. data/lib/google/cloud/edge_container/v1/edge_container/rest/client.rb +2324 -0
  11. data/lib/google/cloud/edge_container/v1/edge_container/rest/operations.rb +902 -0
  12. data/lib/google/cloud/edge_container/v1/edge_container/rest/service_stub.rb +1255 -0
  13. data/lib/google/cloud/edge_container/v1/edge_container/rest.rb +55 -0
  14. data/lib/google/cloud/edge_container/v1/edge_container.rb +57 -0
  15. data/lib/google/cloud/edge_container/v1/rest.rb +38 -0
  16. data/lib/google/cloud/edge_container/v1/version.rb +7 -2
  17. data/lib/google/cloud/edge_container/v1.rb +45 -0
  18. data/lib/google/cloud/edgecontainer/v1/resources_pb.rb +92 -0
  19. data/lib/google/cloud/edgecontainer/v1/service_pb.rb +81 -0
  20. data/lib/google/cloud/edgecontainer/v1/service_services_pb.rb +84 -0
  21. data/lib/google-cloud-edge_container-v1.rb +21 -0
  22. data/proto_docs/README.md +4 -0
  23. data/proto_docs/google/api/client.rb +420 -0
  24. data/proto_docs/google/api/field_behavior.rb +85 -0
  25. data/proto_docs/google/api/launch_stage.rb +71 -0
  26. data/proto_docs/google/api/resource.rb +227 -0
  27. data/proto_docs/google/cloud/edgecontainer/v1/resources.rb +881 -0
  28. data/proto_docs/google/cloud/edgecontainer/v1/service.rb +475 -0
  29. data/proto_docs/google/longrunning/operations.rb +164 -0
  30. data/proto_docs/google/protobuf/any.rb +145 -0
  31. data/proto_docs/google/protobuf/duration.rb +98 -0
  32. data/proto_docs/google/protobuf/empty.rb +34 -0
  33. data/proto_docs/google/protobuf/field_mask.rb +229 -0
  34. data/proto_docs/google/protobuf/timestamp.rb +127 -0
  35. data/proto_docs/google/rpc/status.rb +48 -0
  36. metadata +96 -10
@@ -0,0 +1,881 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Copyright 2024 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 EdgeContainer
23
+ module V1
24
+ # A Google Distributed Cloud Edge Kubernetes cluster.
25
+ # @!attribute [rw] name
26
+ # @return [::String]
27
+ # Required. The resource name of the cluster.
28
+ # @!attribute [r] create_time
29
+ # @return [::Google::Protobuf::Timestamp]
30
+ # Output only. The time when the cluster was created.
31
+ # @!attribute [r] update_time
32
+ # @return [::Google::Protobuf::Timestamp]
33
+ # Output only. The time when the cluster was last updated.
34
+ # @!attribute [rw] labels
35
+ # @return [::Google::Protobuf::Map{::String => ::String}]
36
+ # Labels associated with this resource.
37
+ # @!attribute [rw] fleet
38
+ # @return [::Google::Cloud::EdgeContainer::V1::Fleet]
39
+ # Required. Fleet configuration.
40
+ # @!attribute [rw] networking
41
+ # @return [::Google::Cloud::EdgeContainer::V1::ClusterNetworking]
42
+ # Required. Cluster-wide networking configuration.
43
+ # @!attribute [rw] authorization
44
+ # @return [::Google::Cloud::EdgeContainer::V1::Authorization]
45
+ # Required. Immutable. RBAC policy that will be applied and managed by GEC.
46
+ # @!attribute [rw] default_max_pods_per_node
47
+ # @return [::Integer]
48
+ # Optional. The default maximum number of pods per node used if a maximum
49
+ # value is not specified explicitly for a node pool in this cluster. If
50
+ # unspecified, the Kubernetes default value will be used.
51
+ # @!attribute [r] endpoint
52
+ # @return [::String]
53
+ # Output only. The IP address of the Kubernetes API server.
54
+ # @!attribute [r] port
55
+ # @return [::Integer]
56
+ # Output only. The port number of the Kubernetes API server.
57
+ # @!attribute [r] cluster_ca_certificate
58
+ # @return [::String]
59
+ # Output only. The PEM-encoded public certificate of the cluster's CA.
60
+ # @!attribute [rw] maintenance_policy
61
+ # @return [::Google::Cloud::EdgeContainer::V1::MaintenancePolicy]
62
+ # Optional. Cluster-wide maintenance policy configuration.
63
+ # @!attribute [r] control_plane_version
64
+ # @return [::String]
65
+ # Output only. The control plane release version
66
+ # @!attribute [r] node_version
67
+ # @return [::String]
68
+ # Output only. The lowest release version among all worker nodes. This field
69
+ # can be empty if the cluster does not have any worker nodes.
70
+ # @!attribute [rw] control_plane
71
+ # @return [::Google::Cloud::EdgeContainer::V1::Cluster::ControlPlane]
72
+ # Optional. The configuration of the cluster control plane.
73
+ # @!attribute [rw] system_addons_config
74
+ # @return [::Google::Cloud::EdgeContainer::V1::Cluster::SystemAddonsConfig]
75
+ # Optional. The configuration of the system add-ons.
76
+ # @!attribute [rw] external_load_balancer_ipv4_address_pools
77
+ # @return [::Array<::String>]
78
+ # Optional. IPv4 address pools for cluster data plane external load
79
+ # balancing.
80
+ # @!attribute [rw] control_plane_encryption
81
+ # @return [::Google::Cloud::EdgeContainer::V1::Cluster::ControlPlaneEncryption]
82
+ # Optional. Remote control plane disk encryption options. This field is only
83
+ # used when enabling CMEK support.
84
+ # @!attribute [r] status
85
+ # @return [::Google::Cloud::EdgeContainer::V1::Cluster::Status]
86
+ # Output only. The current status of the cluster.
87
+ # @!attribute [r] maintenance_events
88
+ # @return [::Array<::Google::Cloud::EdgeContainer::V1::Cluster::MaintenanceEvent>]
89
+ # Output only. All the maintenance events scheduled for the cluster,
90
+ # including the ones ongoing, planned for the future and done in the past (up
91
+ # to 90 days).
92
+ # @!attribute [rw] target_version
93
+ # @return [::String]
94
+ # Optional. The target cluster version. For example: "1.5.0".
95
+ # @!attribute [rw] release_channel
96
+ # @return [::Google::Cloud::EdgeContainer::V1::Cluster::ReleaseChannel]
97
+ # Optional. The release channel a cluster is subscribed to.
98
+ # @!attribute [rw] survivability_config
99
+ # @return [::Google::Cloud::EdgeContainer::V1::Cluster::SurvivabilityConfig]
100
+ # Optional. Configuration of the cluster survivability, e.g., for the case
101
+ # when network connectivity is lost. Note: This only applies to local control
102
+ # plane clusters.
103
+ # @!attribute [rw] external_load_balancer_ipv6_address_pools
104
+ # @return [::Array<::String>]
105
+ # Optional. IPv6 address pools for cluster data plane external load
106
+ # balancing.
107
+ class Cluster
108
+ include ::Google::Protobuf::MessageExts
109
+ extend ::Google::Protobuf::MessageExts::ClassMethods
110
+
111
+ # Configuration of the cluster control plane.
112
+ # @!attribute [rw] remote
113
+ # @return [::Google::Cloud::EdgeContainer::V1::Cluster::ControlPlane::Remote]
114
+ # Remote control plane configuration.
115
+ # @!attribute [rw] local
116
+ # @return [::Google::Cloud::EdgeContainer::V1::Cluster::ControlPlane::Local]
117
+ # Local control plane configuration.
118
+ #
119
+ # Warning: Local control plane clusters must be created in their own
120
+ # project. Local control plane clusters cannot coexist in the same
121
+ # project with any other type of clusters, including non-GDCE clusters.
122
+ # Mixing local control plane GDCE clusters with any other type of
123
+ # clusters in the same project can result in data loss.
124
+ class ControlPlane
125
+ include ::Google::Protobuf::MessageExts
126
+ extend ::Google::Protobuf::MessageExts::ClassMethods
127
+
128
+ # Configuration specific to clusters with a control plane hosted remotely.
129
+ class Remote
130
+ include ::Google::Protobuf::MessageExts
131
+ extend ::Google::Protobuf::MessageExts::ClassMethods
132
+ end
133
+
134
+ # Configuration specific to clusters with a control plane hosted locally.
135
+ #
136
+ # Warning: Local control plane clusters must be created in their own
137
+ # project. Local control plane clusters cannot coexist in the same
138
+ # project with any other type of clusters, including non-GDCE clusters.
139
+ # Mixing local control plane GDCE clusters with any other type of
140
+ # clusters in the same project can result in data loss.
141
+ # @!attribute [rw] node_location
142
+ # @return [::String]
143
+ # Name of the Google Distributed Cloud Edge zones where this node pool
144
+ # will be created. For example: `us-central1-edge-customer-a`.
145
+ # @!attribute [rw] node_count
146
+ # @return [::Integer]
147
+ # The number of nodes to serve as replicas of the Control Plane.
148
+ # @!attribute [rw] machine_filter
149
+ # @return [::String]
150
+ # Only machines matching this filter will be allowed to host control
151
+ # plane nodes. The filtering language accepts strings like "name=<name>",
152
+ # and is documented here: [AIP-160](https://google.aip.dev/160).
153
+ # @!attribute [rw] shared_deployment_policy
154
+ # @return [::Google::Cloud::EdgeContainer::V1::Cluster::ControlPlane::SharedDeploymentPolicy]
155
+ # Policy configuration about how user applications are deployed.
156
+ class Local
157
+ include ::Google::Protobuf::MessageExts
158
+ extend ::Google::Protobuf::MessageExts::ClassMethods
159
+ end
160
+
161
+ # Represents the policy configuration about how user applications are
162
+ # deployed.
163
+ module SharedDeploymentPolicy
164
+ # Unspecified.
165
+ SHARED_DEPLOYMENT_POLICY_UNSPECIFIED = 0
166
+
167
+ # User applications can be deployed both on control plane and worker
168
+ # nodes.
169
+ ALLOWED = 1
170
+
171
+ # User applications can not be deployed on control plane nodes and can
172
+ # only be deployed on worker nodes.
173
+ DISALLOWED = 2
174
+ end
175
+ end
176
+
177
+ # Config that customers are allowed to define for GDCE system add-ons.
178
+ # @!attribute [rw] ingress
179
+ # @return [::Google::Cloud::EdgeContainer::V1::Cluster::SystemAddonsConfig::Ingress]
180
+ # Optional. Config for Ingress.
181
+ class SystemAddonsConfig
182
+ include ::Google::Protobuf::MessageExts
183
+ extend ::Google::Protobuf::MessageExts::ClassMethods
184
+
185
+ # Config for the Ingress add-on which allows customers to create an Ingress
186
+ # object to manage external access to the servers in a cluster. The add-on
187
+ # consists of istiod and istio-ingress.
188
+ # @!attribute [rw] disabled
189
+ # @return [::Boolean]
190
+ # Optional. Whether Ingress is disabled.
191
+ # @!attribute [rw] ipv4_vip
192
+ # @return [::String]
193
+ # Optional. Ingress VIP.
194
+ class Ingress
195
+ include ::Google::Protobuf::MessageExts
196
+ extend ::Google::Protobuf::MessageExts::ClassMethods
197
+ end
198
+ end
199
+
200
+ # Configuration for Customer-managed KMS key support for remote control plane
201
+ # cluster disk encryption.
202
+ # @!attribute [rw] kms_key
203
+ # @return [::String]
204
+ # Immutable. The Cloud KMS CryptoKey e.g.
205
+ # projects/\\{project}/locations/\\{location}/keyRings/\\{keyRing}/cryptoKeys/\\{cryptoKey}
206
+ # to use for protecting control plane disks. If not specified, a
207
+ # Google-managed key will be used instead.
208
+ # @!attribute [r] kms_key_active_version
209
+ # @return [::String]
210
+ # Output only. The Cloud KMS CryptoKeyVersion currently in use for
211
+ # protecting control plane disks. Only applicable if kms_key is set.
212
+ # @!attribute [r] kms_key_state
213
+ # @return [::Google::Cloud::EdgeContainer::V1::KmsKeyState]
214
+ # Output only. Availability of the Cloud KMS CryptoKey. If not
215
+ # `KEY_AVAILABLE`, then nodes may go offline as they cannot access their
216
+ # local data. This can be caused by a lack of permissions to use the key,
217
+ # or if the key is disabled or deleted.
218
+ # @!attribute [r] kms_status
219
+ # @return [::Google::Rpc::Status]
220
+ # Output only. Error status returned by Cloud KMS when using this key. This
221
+ # field may be populated only if `kms_key_state` is not
222
+ # `KMS_KEY_STATE_KEY_AVAILABLE`. If populated, this field contains the
223
+ # error status reported by Cloud KMS.
224
+ class ControlPlaneEncryption
225
+ include ::Google::Protobuf::MessageExts
226
+ extend ::Google::Protobuf::MessageExts::ClassMethods
227
+ end
228
+
229
+ # A Maintenance Event is an operation that could cause temporary disruptions
230
+ # to the cluster workloads, including Google-driven or user-initiated cluster
231
+ # upgrades, user-initiated cluster configuration changes that require
232
+ # restarting nodes, etc.
233
+ # @!attribute [r] uuid
234
+ # @return [::String]
235
+ # Output only. UUID of the maintenance event.
236
+ # @!attribute [r] target_version
237
+ # @return [::String]
238
+ # Output only. The target version of the cluster.
239
+ # @!attribute [r] operation
240
+ # @return [::String]
241
+ # Output only. The operation for running the maintenance event. Specified
242
+ # in the format projects/*/locations/*/operations/*. If the maintenance
243
+ # event is split into multiple operations (e.g. due to maintenance
244
+ # windows), the latest one is recorded.
245
+ # @!attribute [r] type
246
+ # @return [::Google::Cloud::EdgeContainer::V1::Cluster::MaintenanceEvent::Type]
247
+ # Output only. The type of the maintenance event.
248
+ # @!attribute [r] schedule
249
+ # @return [::Google::Cloud::EdgeContainer::V1::Cluster::MaintenanceEvent::Schedule]
250
+ # Output only. The schedule of the maintenance event.
251
+ # @!attribute [r] state
252
+ # @return [::Google::Cloud::EdgeContainer::V1::Cluster::MaintenanceEvent::State]
253
+ # Output only. The state of the maintenance event.
254
+ # @!attribute [r] create_time
255
+ # @return [::Google::Protobuf::Timestamp]
256
+ # Output only. The time when the maintenance event request was created.
257
+ # @!attribute [r] start_time
258
+ # @return [::Google::Protobuf::Timestamp]
259
+ # Output only. The time when the maintenance event started.
260
+ # @!attribute [r] end_time
261
+ # @return [::Google::Protobuf::Timestamp]
262
+ # Output only. The time when the maintenance event ended, either
263
+ # successfully or not. If the maintenance event is split into multiple
264
+ # maintenance windows, end_time is only updated when the whole flow ends.
265
+ # @!attribute [r] update_time
266
+ # @return [::Google::Protobuf::Timestamp]
267
+ # Output only. The time when the maintenance event message was updated.
268
+ class MaintenanceEvent
269
+ include ::Google::Protobuf::MessageExts
270
+ extend ::Google::Protobuf::MessageExts::ClassMethods
271
+
272
+ # Indicates the maintenance event type.
273
+ module Type
274
+ # Unspecified.
275
+ TYPE_UNSPECIFIED = 0
276
+
277
+ # Upgrade initiated by users.
278
+ USER_INITIATED_UPGRADE = 1
279
+
280
+ # Upgrade driven by Google.
281
+ GOOGLE_DRIVEN_UPGRADE = 2
282
+ end
283
+
284
+ # Indicates when the maintenance event should be performed.
285
+ module Schedule
286
+ # Unspecified.
287
+ SCHEDULE_UNSPECIFIED = 0
288
+
289
+ # Immediately after receiving the request.
290
+ IMMEDIATELY = 1
291
+ end
292
+
293
+ # Indicates the maintenance event state.
294
+ module State
295
+ # Unspecified.
296
+ STATE_UNSPECIFIED = 0
297
+
298
+ # The maintenance event is ongoing. The cluster might be unusable.
299
+ RECONCILING = 1
300
+
301
+ # The maintenance event succeeded.
302
+ SUCCEEDED = 2
303
+
304
+ # The maintenance event failed.
305
+ FAILED = 3
306
+ end
307
+ end
308
+
309
+ # Configuration of the cluster survivability, e.g., for the case when network
310
+ # connectivity is lost.
311
+ # @!attribute [rw] offline_reboot_ttl
312
+ # @return [::Google::Protobuf::Duration]
313
+ # Optional. Time period that allows the cluster nodes to be rebooted and
314
+ # become functional without network connectivity to Google. The default 0
315
+ # means not allowed. The maximum is 7 days.
316
+ class SurvivabilityConfig
317
+ include ::Google::Protobuf::MessageExts
318
+ extend ::Google::Protobuf::MessageExts::ClassMethods
319
+ end
320
+
321
+ # @!attribute [rw] key
322
+ # @return [::String]
323
+ # @!attribute [rw] value
324
+ # @return [::String]
325
+ class LabelsEntry
326
+ include ::Google::Protobuf::MessageExts
327
+ extend ::Google::Protobuf::MessageExts::ClassMethods
328
+ end
329
+
330
+ # Indicates the status of the cluster.
331
+ module Status
332
+ # Status unknown.
333
+ STATUS_UNSPECIFIED = 0
334
+
335
+ # The cluster is being created.
336
+ PROVISIONING = 1
337
+
338
+ # The cluster is created and fully usable.
339
+ RUNNING = 2
340
+
341
+ # The cluster is being deleted.
342
+ DELETING = 3
343
+
344
+ # The status indicates that some errors occurred while reconciling/deleting
345
+ # the cluster.
346
+ ERROR = 4
347
+
348
+ # The cluster is undergoing some work such as version upgrades, etc.
349
+ RECONCILING = 5
350
+ end
351
+
352
+ # The release channel a cluster is subscribed to.
353
+ module ReleaseChannel
354
+ # Unspecified release channel. This will default to the REGULAR channel.
355
+ RELEASE_CHANNEL_UNSPECIFIED = 0
356
+
357
+ # No release channel.
358
+ NONE = 1
359
+
360
+ # Regular release channel.
361
+ REGULAR = 2
362
+ end
363
+ end
364
+
365
+ # Cluster-wide networking configuration.
366
+ # @!attribute [rw] cluster_ipv4_cidr_blocks
367
+ # @return [::Array<::String>]
368
+ # Required. All pods in the cluster are assigned an RFC1918 IPv4 address from
369
+ # these blocks. Only a single block is supported. This field cannot be
370
+ # changed after creation.
371
+ # @!attribute [rw] services_ipv4_cidr_blocks
372
+ # @return [::Array<::String>]
373
+ # Required. All services in the cluster are assigned an RFC1918 IPv4 address
374
+ # from these blocks. Only a single block is supported. This field cannot be
375
+ # changed after creation.
376
+ class ClusterNetworking
377
+ include ::Google::Protobuf::MessageExts
378
+ extend ::Google::Protobuf::MessageExts::ClassMethods
379
+ end
380
+
381
+ # Fleet related configuration.
382
+ #
383
+ # Fleets are a Google Cloud concept for logically organizing clusters,
384
+ # letting you use and manage multi-cluster capabilities and apply
385
+ # consistent policies across your systems.
386
+ # @!attribute [rw] project
387
+ # @return [::String]
388
+ # Required. The name of the Fleet host project where this cluster will be
389
+ # registered.
390
+ #
391
+ # Project names are formatted as
392
+ # `projects/<project-number>`.
393
+ # @!attribute [r] membership
394
+ # @return [::String]
395
+ # Output only. The name of the managed Hub Membership resource associated to
396
+ # this cluster.
397
+ #
398
+ # Membership names are formatted as
399
+ # `projects/<project-number>/locations/global/membership/<cluster-id>`.
400
+ class Fleet
401
+ include ::Google::Protobuf::MessageExts
402
+ extend ::Google::Protobuf::MessageExts::ClassMethods
403
+ end
404
+
405
+ # A user principal for an RBAC policy.
406
+ # @!attribute [rw] username
407
+ # @return [::String]
408
+ # Required. An active Google username.
409
+ class ClusterUser
410
+ include ::Google::Protobuf::MessageExts
411
+ extend ::Google::Protobuf::MessageExts::ClassMethods
412
+ end
413
+
414
+ # RBAC policy that will be applied and managed by GEC.
415
+ # @!attribute [rw] admin_users
416
+ # @return [::Google::Cloud::EdgeContainer::V1::ClusterUser]
417
+ # Required. User that will be granted the cluster-admin role on the cluster,
418
+ # providing full access to the cluster. Currently, this is a singular field,
419
+ # but will be expanded to allow multiple admins in the future.
420
+ class Authorization
421
+ include ::Google::Protobuf::MessageExts
422
+ extend ::Google::Protobuf::MessageExts::ClassMethods
423
+ end
424
+
425
+ # A set of Kubernetes nodes in a cluster with common configuration and
426
+ # specification.
427
+ # @!attribute [rw] name
428
+ # @return [::String]
429
+ # Required. The resource name of the node pool.
430
+ # @!attribute [r] create_time
431
+ # @return [::Google::Protobuf::Timestamp]
432
+ # Output only. The time when the node pool was created.
433
+ # @!attribute [r] update_time
434
+ # @return [::Google::Protobuf::Timestamp]
435
+ # Output only. The time when the node pool was last updated.
436
+ # @!attribute [rw] labels
437
+ # @return [::Google::Protobuf::Map{::String => ::String}]
438
+ # Labels associated with this resource.
439
+ # @!attribute [rw] node_location
440
+ # @return [::String]
441
+ # Name of the Google Distributed Cloud Edge zone where this node pool will be
442
+ # created. For example: `us-central1-edge-customer-a`.
443
+ # @!attribute [rw] node_count
444
+ # @return [::Integer]
445
+ # Required. The number of nodes in the pool.
446
+ # @!attribute [rw] machine_filter
447
+ # @return [::String]
448
+ # Only machines matching this filter will be allowed to join the node pool.
449
+ # The filtering language accepts strings like "name=<name>", and is
450
+ # documented in more detail in [AIP-160](https://google.aip.dev/160).
451
+ # @!attribute [rw] local_disk_encryption
452
+ # @return [::Google::Cloud::EdgeContainer::V1::NodePool::LocalDiskEncryption]
453
+ # Optional. Local disk encryption options. This field is only used when
454
+ # enabling CMEK support.
455
+ # @!attribute [r] node_version
456
+ # @return [::String]
457
+ # Output only. The lowest release version among all worker nodes.
458
+ # @!attribute [rw] node_config
459
+ # @return [::Google::Cloud::EdgeContainer::V1::NodePool::NodeConfig]
460
+ # Optional. Configuration for each node in the NodePool
461
+ class NodePool
462
+ include ::Google::Protobuf::MessageExts
463
+ extend ::Google::Protobuf::MessageExts::ClassMethods
464
+
465
+ # Configuration for CMEK support for edge machine local disk encryption.
466
+ # @!attribute [rw] kms_key
467
+ # @return [::String]
468
+ # Immutable. The Cloud KMS CryptoKey e.g.
469
+ # projects/\\{project}/locations/\\{location}/keyRings/\\{keyRing}/cryptoKeys/\\{cryptoKey}
470
+ # to use for protecting node local disks. If not specified, a
471
+ # Google-managed key will be used instead.
472
+ # @!attribute [r] kms_key_active_version
473
+ # @return [::String]
474
+ # Output only. The Cloud KMS CryptoKeyVersion currently in use for
475
+ # protecting node local disks. Only applicable if kms_key is set.
476
+ # @!attribute [r] kms_key_state
477
+ # @return [::Google::Cloud::EdgeContainer::V1::KmsKeyState]
478
+ # Output only. Availability of the Cloud KMS CryptoKey. If not
479
+ # `KEY_AVAILABLE`, then nodes may go offline as they cannot access their
480
+ # local data. This can be caused by a lack of permissions to use the key,
481
+ # or if the key is disabled or deleted.
482
+ # @!attribute [r] kms_status
483
+ # @return [::Google::Rpc::Status]
484
+ # Output only. Error status returned by Cloud KMS when using this key. This
485
+ # field may be populated only if `kms_key_state` is not
486
+ # `KMS_KEY_STATE_KEY_AVAILABLE`. If populated, this field contains the
487
+ # error status reported by Cloud KMS.
488
+ class LocalDiskEncryption
489
+ include ::Google::Protobuf::MessageExts
490
+ extend ::Google::Protobuf::MessageExts::ClassMethods
491
+ end
492
+
493
+ # Configuration for each node in the NodePool
494
+ # @!attribute [rw] labels
495
+ # @return [::Google::Protobuf::Map{::String => ::String}]
496
+ # Optional. The Kubernetes node labels
497
+ class NodeConfig
498
+ include ::Google::Protobuf::MessageExts
499
+ extend ::Google::Protobuf::MessageExts::ClassMethods
500
+
501
+ # @!attribute [rw] key
502
+ # @return [::String]
503
+ # @!attribute [rw] value
504
+ # @return [::String]
505
+ class LabelsEntry
506
+ include ::Google::Protobuf::MessageExts
507
+ extend ::Google::Protobuf::MessageExts::ClassMethods
508
+ end
509
+ end
510
+
511
+ # @!attribute [rw] key
512
+ # @return [::String]
513
+ # @!attribute [rw] value
514
+ # @return [::String]
515
+ class LabelsEntry
516
+ include ::Google::Protobuf::MessageExts
517
+ extend ::Google::Protobuf::MessageExts::ClassMethods
518
+ end
519
+ end
520
+
521
+ # A Google Distributed Cloud Edge machine capable of acting as a Kubernetes
522
+ # node.
523
+ # @!attribute [rw] name
524
+ # @return [::String]
525
+ # Required. The resource name of the machine.
526
+ # @!attribute [r] create_time
527
+ # @return [::Google::Protobuf::Timestamp]
528
+ # Output only. The time when the node pool was created.
529
+ # @!attribute [r] update_time
530
+ # @return [::Google::Protobuf::Timestamp]
531
+ # Output only. The time when the node pool was last updated.
532
+ # @!attribute [rw] labels
533
+ # @return [::Google::Protobuf::Map{::String => ::String}]
534
+ # Labels associated with this resource.
535
+ # @!attribute [rw] hosted_node
536
+ # @return [::String]
537
+ # Canonical resource name of the node that this machine is responsible for
538
+ # hosting e.g.
539
+ # projects/\\{project}/locations/\\{location}/clusters/\\{cluster_id}/nodePools/\\{pool_id}/\\{node},
540
+ # Or empty if the machine is not assigned to assume the role of a node.
541
+ #
542
+ # For control plane nodes hosted on edge machines, this will return
543
+ # the following format:
544
+ # "projects/\\{project}/locations/\\{location}/clusters/\\{cluster_id}/controlPlaneNodes/\\{node}".
545
+ # @!attribute [rw] zone
546
+ # @return [::String]
547
+ # The Google Distributed Cloud Edge zone of this machine.
548
+ # @!attribute [r] version
549
+ # @return [::String]
550
+ # Output only. The software version of the machine.
551
+ # @!attribute [r] disabled
552
+ # @return [::Boolean]
553
+ # Output only. Whether the machine is disabled. If disabled, the machine is
554
+ # unable to enter service.
555
+ class Machine
556
+ include ::Google::Protobuf::MessageExts
557
+ extend ::Google::Protobuf::MessageExts::ClassMethods
558
+
559
+ # @!attribute [rw] key
560
+ # @return [::String]
561
+ # @!attribute [rw] value
562
+ # @return [::String]
563
+ class LabelsEntry
564
+ include ::Google::Protobuf::MessageExts
565
+ extend ::Google::Protobuf::MessageExts::ClassMethods
566
+ end
567
+ end
568
+
569
+ # A VPN connection .
570
+ # @!attribute [rw] name
571
+ # @return [::String]
572
+ # Required. The resource name of VPN connection
573
+ # @!attribute [r] create_time
574
+ # @return [::Google::Protobuf::Timestamp]
575
+ # Output only. The time when the VPN connection was created.
576
+ # @!attribute [r] update_time
577
+ # @return [::Google::Protobuf::Timestamp]
578
+ # Output only. The time when the VPN connection was last updated.
579
+ # @!attribute [rw] labels
580
+ # @return [::Google::Protobuf::Map{::String => ::String}]
581
+ # Labels associated with this resource.
582
+ # @!attribute [rw] nat_gateway_ip
583
+ # @return [::String]
584
+ # NAT gateway IP, or WAN IP address. If a customer has multiple NAT IPs, the
585
+ # customer needs to configure NAT such that only one external IP maps to the
586
+ # GMEC Anthos cluster. This is empty if NAT is not used.
587
+ # @!attribute [rw] bgp_routing_mode
588
+ # @deprecated This field is deprecated and may be removed in the next major version update.
589
+ # @return [::Google::Cloud::EdgeContainer::V1::VpnConnection::BgpRoutingMode]
590
+ # Dynamic routing mode of the VPC network, `regional` or `global`.
591
+ # @!attribute [rw] cluster
592
+ # @return [::String]
593
+ # The canonical Cluster name to connect to. It is in the form of
594
+ # projects/\\{project}/locations/\\{location}/clusters/\\{cluster}.
595
+ # @!attribute [rw] vpc
596
+ # @return [::String]
597
+ # The network ID of VPC to connect to.
598
+ # @!attribute [rw] vpc_project
599
+ # @return [::Google::Cloud::EdgeContainer::V1::VpnConnection::VpcProject]
600
+ # Optional. Project detail of the VPC network. Required if VPC is in a
601
+ # different project than the cluster project.
602
+ # @!attribute [rw] enable_high_availability
603
+ # @return [::Boolean]
604
+ # Whether this VPN connection has HA enabled on cluster side. If enabled,
605
+ # when creating VPN connection we will attempt to use 2 ANG floating IPs.
606
+ # @!attribute [rw] router
607
+ # @return [::String]
608
+ # Optional. The VPN connection Cloud Router name.
609
+ # @!attribute [r] details
610
+ # @return [::Google::Cloud::EdgeContainer::V1::VpnConnection::Details]
611
+ # Output only. The created connection details.
612
+ class VpnConnection
613
+ include ::Google::Protobuf::MessageExts
614
+ extend ::Google::Protobuf::MessageExts::ClassMethods
615
+
616
+ # Project detail of the VPC network.
617
+ # @!attribute [rw] project_id
618
+ # @return [::String]
619
+ # The project of the VPC to connect to. If not specified, it is the same as
620
+ # the cluster project.
621
+ # @!attribute [rw] service_account
622
+ # @deprecated This field is deprecated and may be removed in the next major version update.
623
+ # @return [::String]
624
+ # Optional. The service account in the VPC project configured by user. It
625
+ # is used to create/delete Cloud Router and Cloud HA VPNs for VPN
626
+ # connection. If this SA is changed during/after a VPN connection is
627
+ # created, you need to remove the Cloud Router and Cloud VPN resources in
628
+ # |project_id|. It is in the form of
629
+ # service-\\{project_number}@gcp-sa-edgecontainer.iam.gserviceaccount.com.
630
+ class VpcProject
631
+ include ::Google::Protobuf::MessageExts
632
+ extend ::Google::Protobuf::MessageExts::ClassMethods
633
+ end
634
+
635
+ # The created connection details.
636
+ # @!attribute [rw] state
637
+ # @return [::Google::Cloud::EdgeContainer::V1::VpnConnection::Details::State]
638
+ # The state of this connection.
639
+ # @!attribute [rw] error
640
+ # @return [::String]
641
+ # The error message. This is only populated when state=ERROR.
642
+ # @!attribute [rw] cloud_router
643
+ # @return [::Google::Cloud::EdgeContainer::V1::VpnConnection::Details::CloudRouter]
644
+ # The Cloud Router info.
645
+ # @!attribute [rw] cloud_vpns
646
+ # @return [::Array<::Google::Cloud::EdgeContainer::V1::VpnConnection::Details::CloudVpn>]
647
+ # Each connection has multiple Cloud VPN gateways.
648
+ class Details
649
+ include ::Google::Protobuf::MessageExts
650
+ extend ::Google::Protobuf::MessageExts::ClassMethods
651
+
652
+ # The Cloud Router info.
653
+ # @!attribute [rw] name
654
+ # @return [::String]
655
+ # The associated Cloud Router name.
656
+ class CloudRouter
657
+ include ::Google::Protobuf::MessageExts
658
+ extend ::Google::Protobuf::MessageExts::ClassMethods
659
+ end
660
+
661
+ # The Cloud VPN info.
662
+ # @!attribute [rw] gateway
663
+ # @return [::String]
664
+ # The created Cloud VPN gateway name.
665
+ class CloudVpn
666
+ include ::Google::Protobuf::MessageExts
667
+ extend ::Google::Protobuf::MessageExts::ClassMethods
668
+ end
669
+
670
+ # The current connection state.
671
+ module State
672
+ # Unknown.
673
+ STATE_UNSPECIFIED = 0
674
+
675
+ # Connected.
676
+ STATE_CONNECTED = 1
677
+
678
+ # Still connecting.
679
+ STATE_CONNECTING = 2
680
+
681
+ # Error occurred.
682
+ STATE_ERROR = 3
683
+ end
684
+ end
685
+
686
+ # @!attribute [rw] key
687
+ # @return [::String]
688
+ # @!attribute [rw] value
689
+ # @return [::String]
690
+ class LabelsEntry
691
+ include ::Google::Protobuf::MessageExts
692
+ extend ::Google::Protobuf::MessageExts::ClassMethods
693
+ end
694
+
695
+ # Routing mode.
696
+ module BgpRoutingMode
697
+ # Unknown.
698
+ BGP_ROUTING_MODE_UNSPECIFIED = 0
699
+
700
+ # Regional mode.
701
+ REGIONAL = 1
702
+
703
+ # Global mode.
704
+ GLOBAL = 2
705
+ end
706
+ end
707
+
708
+ # Metadata for a given
709
+ # `::Google::Cloud::Location::Location`.
710
+ # @!attribute [rw] available_zones
711
+ # @return [::Google::Protobuf::Map{::String => ::Google::Cloud::EdgeContainer::V1::ZoneMetadata}]
712
+ # The set of available Google Distributed Cloud Edge zones in the location.
713
+ # The map is keyed by the lowercase ID of each zone.
714
+ class LocationMetadata
715
+ include ::Google::Protobuf::MessageExts
716
+ extend ::Google::Protobuf::MessageExts::ClassMethods
717
+
718
+ # @!attribute [rw] key
719
+ # @return [::String]
720
+ # @!attribute [rw] value
721
+ # @return [::Google::Cloud::EdgeContainer::V1::ZoneMetadata]
722
+ class AvailableZonesEntry
723
+ include ::Google::Protobuf::MessageExts
724
+ extend ::Google::Protobuf::MessageExts::ClassMethods
725
+ end
726
+ end
727
+
728
+ # A Google Distributed Cloud Edge zone where edge machines are located.
729
+ # @!attribute [rw] quota
730
+ # @return [::Array<::Google::Cloud::EdgeContainer::V1::Quota>]
731
+ # Quota for resources in this zone.
732
+ # @!attribute [rw] rack_types
733
+ # @return [::Google::Protobuf::Map{::String => ::Google::Cloud::EdgeContainer::V1::ZoneMetadata::RackType}]
734
+ # The map keyed by rack name and has value of RackType.
735
+ class ZoneMetadata
736
+ include ::Google::Protobuf::MessageExts
737
+ extend ::Google::Protobuf::MessageExts::ClassMethods
738
+
739
+ # @!attribute [rw] key
740
+ # @return [::String]
741
+ # @!attribute [rw] value
742
+ # @return [::Google::Cloud::EdgeContainer::V1::ZoneMetadata::RackType]
743
+ class RackTypesEntry
744
+ include ::Google::Protobuf::MessageExts
745
+ extend ::Google::Protobuf::MessageExts::ClassMethods
746
+ end
747
+
748
+ # Type of the rack.
749
+ module RackType
750
+ # Unspecified rack type, single rack also belongs to this type.
751
+ RACK_TYPE_UNSPECIFIED = 0
752
+
753
+ # Base rack type, a pair of two modified Config-1 racks containing
754
+ # Aggregation switches.
755
+ BASE = 1
756
+
757
+ # Expansion rack type, also known as standalone racks,
758
+ # added by customers on demand.
759
+ EXPANSION = 2
760
+ end
761
+ end
762
+
763
+ # Represents quota for Edge Container resources.
764
+ # @!attribute [rw] metric
765
+ # @return [::String]
766
+ # Name of the quota metric.
767
+ # @!attribute [rw] limit
768
+ # @return [::Float]
769
+ # Quota limit for this metric.
770
+ # @!attribute [rw] usage
771
+ # @return [::Float]
772
+ # Current usage of this metric.
773
+ class Quota
774
+ include ::Google::Protobuf::MessageExts
775
+ extend ::Google::Protobuf::MessageExts::ClassMethods
776
+ end
777
+
778
+ # Maintenance policy configuration.
779
+ # @!attribute [rw] window
780
+ # @return [::Google::Cloud::EdgeContainer::V1::MaintenanceWindow]
781
+ # Specifies the maintenance window in which maintenance may be performed.
782
+ class MaintenancePolicy
783
+ include ::Google::Protobuf::MessageExts
784
+ extend ::Google::Protobuf::MessageExts::ClassMethods
785
+ end
786
+
787
+ # Maintenance window configuration
788
+ # @!attribute [rw] recurring_window
789
+ # @return [::Google::Cloud::EdgeContainer::V1::RecurringTimeWindow]
790
+ # Configuration of a recurring maintenance window.
791
+ class MaintenanceWindow
792
+ include ::Google::Protobuf::MessageExts
793
+ extend ::Google::Protobuf::MessageExts::ClassMethods
794
+ end
795
+
796
+ # Represents an arbitrary window of time that recurs.
797
+ # @!attribute [rw] window
798
+ # @return [::Google::Cloud::EdgeContainer::V1::TimeWindow]
799
+ # The window of the first recurrence.
800
+ # @!attribute [rw] recurrence
801
+ # @return [::String]
802
+ # An RRULE (https://tools.ietf.org/html/rfc5545#section-3.8.5.3) for how
803
+ # this window recurs. They go on for the span of time between the start and
804
+ # end time.
805
+ class RecurringTimeWindow
806
+ include ::Google::Protobuf::MessageExts
807
+ extend ::Google::Protobuf::MessageExts::ClassMethods
808
+ end
809
+
810
+ # Represents an arbitrary window of time.
811
+ # @!attribute [rw] start_time
812
+ # @return [::Google::Protobuf::Timestamp]
813
+ # The time that the window first starts.
814
+ # @!attribute [rw] end_time
815
+ # @return [::Google::Protobuf::Timestamp]
816
+ # The time that the window ends. The end time must take place after the
817
+ # start time.
818
+ class TimeWindow
819
+ include ::Google::Protobuf::MessageExts
820
+ extend ::Google::Protobuf::MessageExts::ClassMethods
821
+ end
822
+
823
+ # Server configuration for supported versions and release channels.
824
+ # @!attribute [r] channels
825
+ # @return [::Google::Protobuf::Map{::String => ::Google::Cloud::EdgeContainer::V1::ChannelConfig}]
826
+ # Output only. Mapping from release channel to channel config.
827
+ # @!attribute [r] versions
828
+ # @return [::Array<::Google::Cloud::EdgeContainer::V1::Version>]
829
+ # Output only. Supported versions, e.g.: ["1.4.0", "1.5.0"].
830
+ # @!attribute [r] default_version
831
+ # @return [::String]
832
+ # Output only. Default version, e.g.: "1.4.0".
833
+ class ServerConfig
834
+ include ::Google::Protobuf::MessageExts
835
+ extend ::Google::Protobuf::MessageExts::ClassMethods
836
+
837
+ # @!attribute [rw] key
838
+ # @return [::String]
839
+ # @!attribute [rw] value
840
+ # @return [::Google::Cloud::EdgeContainer::V1::ChannelConfig]
841
+ class ChannelsEntry
842
+ include ::Google::Protobuf::MessageExts
843
+ extend ::Google::Protobuf::MessageExts::ClassMethods
844
+ end
845
+ end
846
+
847
+ # Configuration for a release channel.
848
+ # @!attribute [r] default_version
849
+ # @return [::String]
850
+ # Output only. Default version for this release channel, e.g.: "1.4.0".
851
+ class ChannelConfig
852
+ include ::Google::Protobuf::MessageExts
853
+ extend ::Google::Protobuf::MessageExts::ClassMethods
854
+ end
855
+
856
+ # Version of a cluster.
857
+ # @!attribute [r] name
858
+ # @return [::String]
859
+ # Output only. Name of the version, e.g.: "1.4.0".
860
+ class Version
861
+ include ::Google::Protobuf::MessageExts
862
+ extend ::Google::Protobuf::MessageExts::ClassMethods
863
+ end
864
+
865
+ # Represents the accessibility state of a customer-managed KMS key used for
866
+ # CMEK integration.
867
+ module KmsKeyState
868
+ # Unspecified.
869
+ KMS_KEY_STATE_UNSPECIFIED = 0
870
+
871
+ # The key is available for use, and dependent resources should be accessible.
872
+ KMS_KEY_STATE_KEY_AVAILABLE = 1
873
+
874
+ # The key is unavailable for an unspecified reason. Dependent resources may
875
+ # be inaccessible.
876
+ KMS_KEY_STATE_KEY_UNAVAILABLE = 2
877
+ end
878
+ end
879
+ end
880
+ end
881
+ end