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

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