google-cloud-backupdr-v1 0.2.1 → 0.4.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 (28) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +30 -20
  3. data/lib/google/cloud/backupdr/v1/backupdr/client.rb +2850 -156
  4. data/lib/google/cloud/backupdr/v1/backupdr/operations.rb +12 -15
  5. data/lib/google/cloud/backupdr/v1/backupdr/paths.rb +101 -0
  6. data/lib/google/cloud/backupdr/v1/backupdr/rest/client.rb +2676 -156
  7. data/lib/google/cloud/backupdr/v1/backupdr/rest/operations.rb +43 -38
  8. data/lib/google/cloud/backupdr/v1/backupdr/rest/service_stub.rb +1514 -83
  9. data/lib/google/cloud/backupdr/v1/backupdr_pb.rb +5 -1
  10. data/lib/google/cloud/backupdr/v1/backupdr_services_pb.rb +48 -0
  11. data/lib/google/cloud/backupdr/v1/backupplan_pb.rb +62 -0
  12. data/lib/google/cloud/backupdr/v1/backupplanassociation_pb.rb +59 -0
  13. data/lib/google/cloud/backupdr/v1/backupvault_ba_pb.rb +46 -0
  14. data/lib/google/cloud/backupdr/v1/backupvault_gce_pb.rb +87 -0
  15. data/lib/google/cloud/backupdr/v1/backupvault_pb.rb +99 -0
  16. data/lib/google/cloud/backupdr/v1/version.rb +1 -1
  17. data/proto_docs/google/api/client.rb +39 -0
  18. data/proto_docs/google/api/field_info.rb +88 -0
  19. data/proto_docs/google/cloud/backupdr/v1/backupdr.rb +11 -10
  20. data/proto_docs/google/cloud/backupdr/v1/backupplan.rb +414 -0
  21. data/proto_docs/google/cloud/backupdr/v1/backupplanassociation.rb +272 -0
  22. data/proto_docs/google/cloud/backupdr/v1/backupvault.rb +1103 -0
  23. data/proto_docs/google/cloud/backupdr/v1/backupvault_ba.rb +47 -0
  24. data/proto_docs/google/cloud/backupdr/v1/backupvault_gce.rb +993 -0
  25. data/proto_docs/google/longrunning/operations.rb +19 -14
  26. data/proto_docs/google/type/dayofweek.rb +49 -0
  27. data/proto_docs/google/type/month.rb +64 -0
  28. metadata +18 -5
@@ -0,0 +1,993 @@
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 BackupDR
23
+ module V1
24
+ # ComputeInstanceBackupProperties represents Compute Engine instance backup
25
+ # properties.
26
+ # @!attribute [rw] description
27
+ # @return [::String]
28
+ # An optional text description for the instances that are created from these
29
+ # properties.
30
+ # @!attribute [rw] tags
31
+ # @return [::Google::Cloud::BackupDR::V1::Tags]
32
+ # A list of tags to apply to the instances that are created from these
33
+ # properties. The tags identify valid sources or targets for network
34
+ # firewalls. The setTags method can modify this list of tags. Each tag within
35
+ # the list must comply with RFC1035 (https://www.ietf.org/rfc/rfc1035.txt).
36
+ # @!attribute [rw] machine_type
37
+ # @return [::String]
38
+ # The machine type to use for instances that are created from these
39
+ # properties.
40
+ # @!attribute [rw] can_ip_forward
41
+ # @return [::Boolean]
42
+ # Enables instances created based on these properties to send packets with
43
+ # source IP addresses other than their own and receive packets with
44
+ # destination IP addresses other than their own. If these instances will be
45
+ # used as an IP gateway or it will be set as the next-hop in a Route
46
+ # resource, specify `true`. If unsure, leave this set to `false`. See the
47
+ # https://cloud.google.com/vpc/docs/using-routes#canipforward
48
+ # documentation for more information.
49
+ # @!attribute [rw] network_interface
50
+ # @return [::Array<::Google::Cloud::BackupDR::V1::NetworkInterface>]
51
+ # An array of network access configurations for this interface.
52
+ # @!attribute [rw] disk
53
+ # @return [::Array<::Google::Cloud::BackupDR::V1::AttachedDisk>]
54
+ # An array of disks that are associated with the instances that are created
55
+ # from these properties.
56
+ # @!attribute [rw] metadata
57
+ # @return [::Google::Cloud::BackupDR::V1::Metadata]
58
+ # The metadata key/value pairs to assign to instances that are created from
59
+ # these properties. These pairs can consist of custom metadata or predefined
60
+ # keys. See https://cloud.google.com/compute/docs/metadata/overview for more
61
+ # information.
62
+ # @!attribute [rw] service_account
63
+ # @return [::Array<::Google::Cloud::BackupDR::V1::ServiceAccount>]
64
+ # A list of service accounts with specified scopes. Access tokens for these
65
+ # service accounts are available to the instances that are created from
66
+ # these properties. Use metadata queries to obtain the access tokens for
67
+ # these instances.
68
+ # @!attribute [rw] scheduling
69
+ # @return [::Google::Cloud::BackupDR::V1::Scheduling]
70
+ # Specifies the scheduling options for the instances that are created from
71
+ # these properties.
72
+ # @!attribute [rw] guest_accelerator
73
+ # @return [::Array<::Google::Cloud::BackupDR::V1::AcceleratorConfig>]
74
+ # A list of guest accelerator cards' type and count to use for instances
75
+ # created from these properties.
76
+ # @!attribute [rw] min_cpu_platform
77
+ # @return [::String]
78
+ # Minimum cpu/platform to be used by instances. The instance may be
79
+ # scheduled on the specified or newer cpu/platform. Applicable values are the
80
+ # friendly names of CPU platforms, such as
81
+ # `minCpuPlatform: Intel Haswell` or `minCpuPlatform: Intel Sandy Bridge`.
82
+ # For more information, read
83
+ # https://cloud.google.com/compute/docs/instances/specify-min-cpu-platform.
84
+ # @!attribute [rw] key_revocation_action_type
85
+ # @return [::Google::Cloud::BackupDR::V1::KeyRevocationActionType]
86
+ # KeyRevocationActionType of the instance. Supported options are "STOP" and
87
+ # "NONE". The default value is "NONE" if it is not specified.
88
+ # @!attribute [rw] source_instance
89
+ # @return [::String]
90
+ # The source instance used to create this backup. This can be a partial or
91
+ # full URL to the resource. For example, the following are valid values:
92
+ # -https://www.googleapis.com/compute/v1/projects/project/zones/zone/instances/instance
93
+ # -projects/project/zones/zone/instances/instance
94
+ # @!attribute [rw] labels
95
+ # @return [::Google::Protobuf::Map{::String => ::String}]
96
+ # Labels to apply to instances that are created from these properties.
97
+ class ComputeInstanceBackupProperties
98
+ include ::Google::Protobuf::MessageExts
99
+ extend ::Google::Protobuf::MessageExts::ClassMethods
100
+
101
+ # @!attribute [rw] key
102
+ # @return [::String]
103
+ # @!attribute [rw] value
104
+ # @return [::String]
105
+ class LabelsEntry
106
+ include ::Google::Protobuf::MessageExts
107
+ extend ::Google::Protobuf::MessageExts::ClassMethods
108
+ end
109
+ end
110
+
111
+ # ComputeInstanceRestoreProperties represents Compute Engine instance
112
+ # properties to be overridden during restore.
113
+ # @!attribute [rw] name
114
+ # @return [::String]
115
+ # Required. Name of the compute instance.
116
+ # @!attribute [rw] advanced_machine_features
117
+ # @return [::Google::Cloud::BackupDR::V1::AdvancedMachineFeatures]
118
+ # Optional. Controls for advanced machine-related behavior features.
119
+ # @!attribute [rw] can_ip_forward
120
+ # @return [::Boolean]
121
+ # Optional. Allows this instance to send and receive packets with
122
+ # non-matching destination or source IPs.
123
+ # @!attribute [rw] confidential_instance_config
124
+ # @return [::Google::Cloud::BackupDR::V1::ConfidentialInstanceConfig]
125
+ # Optional. Controls Confidential compute options on the instance
126
+ # @!attribute [rw] deletion_protection
127
+ # @return [::Boolean]
128
+ # Optional. Whether the resource should be protected against deletion.
129
+ # @!attribute [rw] description
130
+ # @return [::String]
131
+ # Optional. An optional description of this resource. Provide this property
132
+ # when you create the resource.
133
+ # @!attribute [rw] disks
134
+ # @return [::Array<::Google::Cloud::BackupDR::V1::AttachedDisk>]
135
+ # Optional. Array of disks associated with this instance. Persistent disks
136
+ # must be created before you can assign them.
137
+ # @!attribute [rw] display_device
138
+ # @return [::Google::Cloud::BackupDR::V1::DisplayDevice]
139
+ # Optional. Enables display device for the instance.
140
+ # @!attribute [rw] guest_accelerators
141
+ # @return [::Array<::Google::Cloud::BackupDR::V1::AcceleratorConfig>]
142
+ # Optional. A list of the type and count of accelerator cards attached to the
143
+ # instance.
144
+ # @!attribute [rw] hostname
145
+ # @return [::String]
146
+ # Optional. Specifies the hostname of the instance. The specified hostname
147
+ # must be RFC1035 compliant. If hostname is not specified, the default
148
+ # hostname is [INSTANCE_NAME].c.[PROJECT_ID].internal when using the global
149
+ # DNS, and [INSTANCE_NAME].[ZONE].c.[PROJECT_ID].internal when using zonal
150
+ # DNS.
151
+ # @!attribute [rw] instance_encryption_key
152
+ # @return [::Google::Cloud::BackupDR::V1::CustomerEncryptionKey]
153
+ # Optional. Encrypts suspended data for an instance with a
154
+ # customer-managed encryption key.
155
+ # @!attribute [rw] key_revocation_action_type
156
+ # @return [::Google::Cloud::BackupDR::V1::KeyRevocationActionType]
157
+ # Optional. KeyRevocationActionType of the instance.
158
+ # @!attribute [rw] labels
159
+ # @return [::Google::Protobuf::Map{::String => ::String}]
160
+ # Optional. Labels to apply to this instance.
161
+ # @!attribute [rw] machine_type
162
+ # @return [::String]
163
+ # Optional. Full or partial URL of the machine type resource to use for this
164
+ # instance.
165
+ # @!attribute [rw] metadata
166
+ # @return [::Google::Cloud::BackupDR::V1::Metadata]
167
+ # Optional. This includes custom metadata and predefined keys.
168
+ # @!attribute [rw] min_cpu_platform
169
+ # @return [::String]
170
+ # Optional. Minimum CPU platform to use for this instance.
171
+ # @!attribute [rw] network_interfaces
172
+ # @return [::Array<::Google::Cloud::BackupDR::V1::NetworkInterface>]
173
+ # Optional. An array of network configurations for this instance. These
174
+ # specify how interfaces are configured to interact with other network
175
+ # services, such as connecting to the internet. Multiple interfaces are
176
+ # supported per instance.
177
+ # @!attribute [rw] network_performance_config
178
+ # @return [::Google::Cloud::BackupDR::V1::NetworkPerformanceConfig]
179
+ # Optional. Configure network performance such as egress bandwidth tier.
180
+ # @!attribute [rw] params
181
+ # @return [::Google::Cloud::BackupDR::V1::InstanceParams]
182
+ # Input only. Additional params passed with the request, but not persisted
183
+ # as part of resource payload.
184
+ # @!attribute [rw] private_ipv6_google_access
185
+ # @return [::Google::Cloud::BackupDR::V1::ComputeInstanceRestoreProperties::InstancePrivateIpv6GoogleAccess]
186
+ # Optional. The private IPv6 google access type for the VM.
187
+ # If not specified, use INHERIT_FROM_SUBNETWORK as default.
188
+ # @!attribute [rw] allocation_affinity
189
+ # @return [::Google::Cloud::BackupDR::V1::AllocationAffinity]
190
+ # Optional. Specifies the reservations that this instance can consume from.
191
+ # @!attribute [rw] resource_policies
192
+ # @return [::Array<::String>]
193
+ # Optional. Resource policies applied to this instance.
194
+ # @!attribute [rw] scheduling
195
+ # @return [::Google::Cloud::BackupDR::V1::Scheduling]
196
+ # Optional. Sets the scheduling options for this instance.
197
+ # @!attribute [rw] service_accounts
198
+ # @return [::Array<::Google::Cloud::BackupDR::V1::ServiceAccount>]
199
+ # Optional. A list of service accounts, with their specified scopes,
200
+ # authorized for this instance. Only one service account per VM instance is
201
+ # supported.
202
+ # @!attribute [rw] tags
203
+ # @return [::Google::Cloud::BackupDR::V1::Tags]
204
+ # Optional. Tags to apply to this instance. Tags are used to identify valid
205
+ # sources or targets for network firewalls and are specified by the client
206
+ # during instance creation.
207
+ class ComputeInstanceRestoreProperties
208
+ include ::Google::Protobuf::MessageExts
209
+ extend ::Google::Protobuf::MessageExts::ClassMethods
210
+
211
+ # @!attribute [rw] key
212
+ # @return [::String]
213
+ # @!attribute [rw] value
214
+ # @return [::String]
215
+ class LabelsEntry
216
+ include ::Google::Protobuf::MessageExts
217
+ extend ::Google::Protobuf::MessageExts::ClassMethods
218
+ end
219
+
220
+ # The private IPv6 google access type for the VMs.
221
+ module InstancePrivateIpv6GoogleAccess
222
+ # Default value. This value is unused.
223
+ INSTANCE_PRIVATE_IPV6_GOOGLE_ACCESS_UNSPECIFIED = 0
224
+
225
+ # Each network interface inherits PrivateIpv6GoogleAccess from its
226
+ # subnetwork.
227
+ INHERIT_FROM_SUBNETWORK = 1
228
+
229
+ # Outbound private IPv6 access from VMs in this subnet to Google services.
230
+ # If specified, the subnetwork who is attached to the instance's default
231
+ # network interface will be assigned an internal IPv6 prefix if it doesn't
232
+ # have before.
233
+ ENABLE_OUTBOUND_VM_ACCESS_TO_GOOGLE = 2
234
+
235
+ # Bidirectional private IPv6 access to/from Google services. If
236
+ # specified, the subnetwork who is attached to the instance's default
237
+ # network interface will be assigned an internal IPv6 prefix if it doesn't
238
+ # have before.
239
+ ENABLE_BIDIRECTIONAL_ACCESS_TO_GOOGLE = 3
240
+ end
241
+ end
242
+
243
+ # ComputeInstanceTargetEnvironment represents Compute Engine target
244
+ # environment to be used during restore.
245
+ # @!attribute [rw] project
246
+ # @return [::String]
247
+ # Required. Target project for the Compute Engine instance.
248
+ # @!attribute [rw] zone
249
+ # @return [::String]
250
+ # Required. The zone of the Compute Engine instance.
251
+ class ComputeInstanceTargetEnvironment
252
+ include ::Google::Protobuf::MessageExts
253
+ extend ::Google::Protobuf::MessageExts::ClassMethods
254
+ end
255
+
256
+ # ComputeInstanceDataSourceProperties represents the properties of a
257
+ # ComputeEngine resource that are stored in the DataSource.
258
+ # @!attribute [rw] name
259
+ # @return [::String]
260
+ # Name of the compute instance backed up by the datasource.
261
+ # @!attribute [rw] description
262
+ # @return [::String]
263
+ # The description of the Compute Engine instance.
264
+ # @!attribute [rw] machine_type
265
+ # @return [::String]
266
+ # The machine type of the instance.
267
+ # @!attribute [rw] total_disk_count
268
+ # @return [::Integer]
269
+ # The total number of disks attached to the Instance.
270
+ # @!attribute [rw] total_disk_size_gb
271
+ # @return [::Integer]
272
+ # The sum of all the disk sizes.
273
+ class ComputeInstanceDataSourceProperties
274
+ include ::Google::Protobuf::MessageExts
275
+ extend ::Google::Protobuf::MessageExts::ClassMethods
276
+ end
277
+
278
+ # Specifies options for controlling advanced machine features.
279
+ # @!attribute [rw] enable_nested_virtualization
280
+ # @return [::Boolean]
281
+ # Optional. Whether to enable nested virtualization or not (default is
282
+ # false).
283
+ # @!attribute [rw] threads_per_core
284
+ # @return [::Integer]
285
+ # Optional. The number of threads per physical core. To disable simultaneous
286
+ # multithreading (SMT) set this to 1. If unset, the maximum number
287
+ # of threads supported per core by the underlying processor is
288
+ # assumed.
289
+ # @!attribute [rw] visible_core_count
290
+ # @return [::Integer]
291
+ # Optional. The number of physical cores to expose to an instance. Multiply
292
+ # by the number of threads per core to compute the total number of virtual
293
+ # CPUs to expose to the instance. If unset, the number of cores is
294
+ # inferred from the instance's nominal CPU count and the underlying
295
+ # platform's SMT width.
296
+ # @!attribute [rw] enable_uefi_networking
297
+ # @return [::Boolean]
298
+ # Optional. Whether to enable UEFI networking for instance creation.
299
+ class AdvancedMachineFeatures
300
+ include ::Google::Protobuf::MessageExts
301
+ extend ::Google::Protobuf::MessageExts::ClassMethods
302
+ end
303
+
304
+ # A set of Confidential Instance options.
305
+ # @!attribute [rw] enable_confidential_compute
306
+ # @return [::Boolean]
307
+ # Optional. Defines whether the instance should have confidential compute
308
+ # enabled.
309
+ class ConfidentialInstanceConfig
310
+ include ::Google::Protobuf::MessageExts
311
+ extend ::Google::Protobuf::MessageExts::ClassMethods
312
+ end
313
+
314
+ # A set of Display Device options
315
+ # @!attribute [rw] enable_display
316
+ # @return [::Boolean]
317
+ # Optional. Enables display for the Compute Engine VM
318
+ class DisplayDevice
319
+ include ::Google::Protobuf::MessageExts
320
+ extend ::Google::Protobuf::MessageExts::ClassMethods
321
+ end
322
+
323
+ # A specification of the type and number of accelerator cards attached to the
324
+ # instance.
325
+ # @!attribute [rw] accelerator_type
326
+ # @return [::String]
327
+ # Optional. Full or partial URL of the accelerator type resource to attach to
328
+ # this instance.
329
+ # @!attribute [rw] accelerator_count
330
+ # @return [::Integer]
331
+ # Optional. The number of the guest accelerator cards exposed to this
332
+ # instance.
333
+ class AcceleratorConfig
334
+ include ::Google::Protobuf::MessageExts
335
+ extend ::Google::Protobuf::MessageExts::ClassMethods
336
+ end
337
+
338
+ # A customer-supplied encryption key.
339
+ # @!attribute [rw] raw_key
340
+ # @return [::String]
341
+ # Optional. Specifies a 256-bit customer-supplied
342
+ # encryption key.
343
+ # @!attribute [rw] rsa_encrypted_key
344
+ # @return [::String]
345
+ # Optional. RSA-wrapped 2048-bit
346
+ # customer-supplied encryption key to either encrypt or decrypt this
347
+ # resource.
348
+ # @!attribute [rw] kms_key_name
349
+ # @return [::String]
350
+ # Optional. The name of the encryption key that is stored in Google Cloud
351
+ # KMS.
352
+ # @!attribute [rw] kms_key_service_account
353
+ # @return [::String]
354
+ # Optional. The service account being used for the encryption request for the
355
+ # given KMS key. If absent, the Compute Engine default service account is
356
+ # used.
357
+ class CustomerEncryptionKey
358
+ include ::Google::Protobuf::MessageExts
359
+ extend ::Google::Protobuf::MessageExts::ClassMethods
360
+ end
361
+
362
+ # A key/value pair to be used for storing metadata.
363
+ # @!attribute [rw] key
364
+ # @return [::String]
365
+ # Optional. Key for the metadata entry.
366
+ # @!attribute [rw] value
367
+ # @return [::String]
368
+ # Optional. Value for the metadata entry. These are free-form strings, and
369
+ # only have meaning as interpreted by the image running in the instance. The
370
+ # only restriction placed on values is that their size must be less than
371
+ # or equal to 262144 bytes (256 KiB).
372
+ class Entry
373
+ include ::Google::Protobuf::MessageExts
374
+ extend ::Google::Protobuf::MessageExts::ClassMethods
375
+ end
376
+
377
+ # A metadata key/value entry.
378
+ # @!attribute [rw] items
379
+ # @return [::Array<::Google::Cloud::BackupDR::V1::Entry>]
380
+ # Optional. Array of key/value pairs. The total size of all keys and values
381
+ # must be less than 512 KB.
382
+ class Metadata
383
+ include ::Google::Protobuf::MessageExts
384
+ extend ::Google::Protobuf::MessageExts::ClassMethods
385
+ end
386
+
387
+ # A network interface resource attached to an instance.
388
+ # s
389
+ # @!attribute [rw] network
390
+ # @return [::String]
391
+ # Optional. URL of the VPC network resource for this instance.
392
+ # @!attribute [rw] subnetwork
393
+ # @return [::String]
394
+ # Optional. The URL of the Subnetwork resource for this instance.
395
+ # @!attribute [rw] ip_address
396
+ # @return [::String]
397
+ # Optional. An IPv4 internal IP address to assign to the instance for this
398
+ # network interface. If not specified by the user, an unused internal IP is
399
+ # assigned by the system.
400
+ # @!attribute [rw] ipv6_address
401
+ # @return [::String]
402
+ # Optional. An IPv6 internal network address for this network interface. To
403
+ # use a static internal IP address, it must be unused and in the same region
404
+ # as the instance's zone. If not specified, Google Cloud will automatically
405
+ # assign an internal IPv6 address from the instance's subnetwork.
406
+ # @!attribute [rw] internal_ipv6_prefix_length
407
+ # @return [::Integer]
408
+ # Optional. The prefix length of the primary internal IPv6 range.
409
+ # @!attribute [r] name
410
+ # @return [::String]
411
+ # Output only. [Output Only] The name of the network interface, which is
412
+ # generated by the server.
413
+ # @!attribute [rw] access_configs
414
+ # @return [::Array<::Google::Cloud::BackupDR::V1::AccessConfig>]
415
+ # Optional. An array of configurations for this interface. Currently, only
416
+ # one access config,ONE_TO_ONE_NAT is supported. If there are no
417
+ # accessConfigs specified, then this instance will have
418
+ # no external internet access.
419
+ # @!attribute [rw] ipv6_access_configs
420
+ # @return [::Array<::Google::Cloud::BackupDR::V1::AccessConfig>]
421
+ # Optional. An array of IPv6 access configurations for this interface.
422
+ # Currently, only one IPv6 access config, DIRECT_IPV6, is supported. If there
423
+ # is no ipv6AccessConfig specified, then this instance will
424
+ # have no external IPv6 Internet access.
425
+ # @!attribute [rw] alias_ip_ranges
426
+ # @return [::Array<::Google::Cloud::BackupDR::V1::AliasIpRange>]
427
+ # Optional. An array of alias IP ranges for this network interface.
428
+ # You can only specify this field for network interfaces in VPC networks.
429
+ # @!attribute [rw] stack_type
430
+ # @return [::Google::Cloud::BackupDR::V1::NetworkInterface::StackType]
431
+ # The stack type for this network interface.
432
+ # @!attribute [rw] ipv6_access_type
433
+ # @return [::Google::Cloud::BackupDR::V1::NetworkInterface::Ipv6AccessType]
434
+ # Optional. [Output Only] One of EXTERNAL, INTERNAL to indicate whether the
435
+ # IP can be accessed from the Internet. This field is always inherited from
436
+ # its subnetwork.
437
+ # @!attribute [rw] queue_count
438
+ # @return [::Integer]
439
+ # Optional. The networking queue count that's specified by users for the
440
+ # network interface. Both Rx and Tx queues will be set to this number. It'll
441
+ # be empty if not specified by the users.
442
+ # @!attribute [rw] nic_type
443
+ # @return [::Google::Cloud::BackupDR::V1::NetworkInterface::NicType]
444
+ # Optional. The type of vNIC to be used on this interface. This may be gVNIC
445
+ # or VirtioNet.
446
+ # @!attribute [rw] network_attachment
447
+ # @return [::String]
448
+ # Optional. The URL of the network attachment that this interface should
449
+ # connect to in the following format:
450
+ # projects/\\{project_number}/regions/\\{region_name}/networkAttachments/\\{network_attachment_name}.
451
+ class NetworkInterface
452
+ include ::Google::Protobuf::MessageExts
453
+ extend ::Google::Protobuf::MessageExts::ClassMethods
454
+
455
+ # Stack type for this network interface.
456
+ module StackType
457
+ # Default should be STACK_TYPE_UNSPECIFIED.
458
+ STACK_TYPE_UNSPECIFIED = 0
459
+
460
+ # The network interface will be assigned IPv4 address.
461
+ IPV4_ONLY = 1
462
+
463
+ # The network interface can have both IPv4 and IPv6 addresses.
464
+ IPV4_IPV6 = 2
465
+ end
466
+
467
+ # IPv6 access type for this network interface.
468
+ module Ipv6AccessType
469
+ # IPv6 access type not set. Means this network interface hasn't been
470
+ # turned on IPv6 yet.
471
+ UNSPECIFIED_IPV6_ACCESS_TYPE = 0
472
+
473
+ # This network interface can have internal IPv6.
474
+ INTERNAL = 1
475
+
476
+ # This network interface can have external IPv6.
477
+ EXTERNAL = 2
478
+ end
479
+
480
+ # Nic type for this network interface.
481
+ module NicType
482
+ # Default should be NIC_TYPE_UNSPECIFIED.
483
+ NIC_TYPE_UNSPECIFIED = 0
484
+
485
+ # VIRTIO
486
+ VIRTIO_NET = 1
487
+
488
+ # GVNIC
489
+ GVNIC = 2
490
+ end
491
+ end
492
+
493
+ # Network performance configuration.
494
+ # @!attribute [rw] total_egress_bandwidth_tier
495
+ # @return [::Google::Cloud::BackupDR::V1::NetworkPerformanceConfig::Tier]
496
+ # Optional. The tier of the total egress bandwidth.
497
+ class NetworkPerformanceConfig
498
+ include ::Google::Protobuf::MessageExts
499
+ extend ::Google::Protobuf::MessageExts::ClassMethods
500
+
501
+ # Network performance tier.
502
+ module Tier
503
+ # This value is unused.
504
+ TIER_UNSPECIFIED = 0
505
+
506
+ # Default network performance config.
507
+ DEFAULT = 1
508
+
509
+ # Tier 1 network performance config.
510
+ TIER_1 = 2
511
+ end
512
+ end
513
+
514
+ # An access configuration attached to an instance's network interface.
515
+ # Only one access config per instance is supported.
516
+ # @!attribute [rw] type
517
+ # @return [::Google::Cloud::BackupDR::V1::AccessConfig::AccessType]
518
+ # Optional. In accessConfigs (IPv4), the
519
+ # default and only option is ONE_TO_ONE_NAT. In
520
+ # ipv6AccessConfigs, the default and only option is
521
+ # DIRECT_IPV6.
522
+ # @!attribute [rw] name
523
+ # @return [::String]
524
+ # Optional. The name of this access configuration.
525
+ # @!attribute [rw] external_ip
526
+ # @return [::String]
527
+ # Optional. The external IP address of this access configuration.
528
+ # @!attribute [rw] external_ipv6
529
+ # @return [::String]
530
+ # Optional. The external IPv6 address of this access configuration.
531
+ # @!attribute [rw] external_ipv6_prefix_length
532
+ # @return [::Integer]
533
+ # Optional. The prefix length of the external IPv6 range.
534
+ # @!attribute [rw] set_public_ptr
535
+ # @return [::Boolean]
536
+ # Optional. Specifies whether a public DNS 'PTR' record should be created to
537
+ # map the external IP address of the instance to a DNS domain name.
538
+ # @!attribute [rw] public_ptr_domain_name
539
+ # @return [::String]
540
+ # Optional. The DNS domain name for the public PTR record.
541
+ # @!attribute [rw] network_tier
542
+ # @return [::Google::Cloud::BackupDR::V1::AccessConfig::NetworkTier]
543
+ # Optional. This signifies the networking tier used for configuring this
544
+ # access
545
+ class AccessConfig
546
+ include ::Google::Protobuf::MessageExts
547
+ extend ::Google::Protobuf::MessageExts::ClassMethods
548
+
549
+ # The type of configuration.
550
+ module AccessType
551
+ # Default value. This value is unused.
552
+ ACCESS_TYPE_UNSPECIFIED = 0
553
+
554
+ # ONE_TO_ONE_NAT
555
+ ONE_TO_ONE_NAT = 1
556
+
557
+ # Direct IPv6 access.
558
+ DIRECT_IPV6 = 2
559
+ end
560
+
561
+ # Network tier property used by addresses, instances and forwarding rules.
562
+ module NetworkTier
563
+ # Default value. This value is unused.
564
+ NETWORK_TIER_UNSPECIFIED = 0
565
+
566
+ # High quality, Google-grade network tier, support for all networking
567
+ # products.
568
+ PREMIUM = 1
569
+
570
+ # Public internet quality, only limited support for other networking
571
+ # products.
572
+ STANDARD = 2
573
+ end
574
+ end
575
+
576
+ # An alias IP range attached to an instance's network interface.
577
+ # @!attribute [rw] ip_cidr_range
578
+ # @return [::String]
579
+ # Optional. The IP alias ranges to allocate for this interface.
580
+ # @!attribute [rw] subnetwork_range_name
581
+ # @return [::String]
582
+ # Optional. The name of a subnetwork secondary IP range from which to
583
+ # allocate an IP alias range. If not specified, the primary range of the
584
+ # subnetwork is used.
585
+ class AliasIpRange
586
+ include ::Google::Protobuf::MessageExts
587
+ extend ::Google::Protobuf::MessageExts::ClassMethods
588
+ end
589
+
590
+ # Additional instance params.
591
+ # @!attribute [rw] resource_manager_tags
592
+ # @return [::Google::Protobuf::Map{::String => ::String}]
593
+ # Optional. Resource manager tags to be bound to the instance.
594
+ class InstanceParams
595
+ include ::Google::Protobuf::MessageExts
596
+ extend ::Google::Protobuf::MessageExts::ClassMethods
597
+
598
+ # @!attribute [rw] key
599
+ # @return [::String]
600
+ # @!attribute [rw] value
601
+ # @return [::String]
602
+ class ResourceManagerTagsEntry
603
+ include ::Google::Protobuf::MessageExts
604
+ extend ::Google::Protobuf::MessageExts::ClassMethods
605
+ end
606
+ end
607
+
608
+ # Specifies the reservations that this instance can consume from.
609
+ # @!attribute [rw] consume_allocation_type
610
+ # @return [::Google::Cloud::BackupDR::V1::AllocationAffinity::Type]
611
+ # Optional. Specifies the type of reservation from which this instance can
612
+ # consume
613
+ # @!attribute [rw] key
614
+ # @return [::String]
615
+ # Optional. Corresponds to the label key of a reservation resource.
616
+ # @!attribute [rw] values
617
+ # @return [::Array<::String>]
618
+ # Optional. Corresponds to the label values of a reservation resource.
619
+ class AllocationAffinity
620
+ include ::Google::Protobuf::MessageExts
621
+ extend ::Google::Protobuf::MessageExts::ClassMethods
622
+
623
+ # Indicates whether to consume from a reservation or not.
624
+ module Type
625
+ # Default value. This value is unused.
626
+ TYPE_UNSPECIFIED = 0
627
+
628
+ # Do not consume from any allocated capacity.
629
+ NO_RESERVATION = 1
630
+
631
+ # Consume any allocation available.
632
+ ANY_RESERVATION = 2
633
+
634
+ # Must consume from a specific reservation. Must specify key value fields
635
+ # for specifying the reservations.
636
+ SPECIFIC_RESERVATION = 3
637
+ end
638
+ end
639
+
640
+ # Sets the scheduling options for an Instance.
641
+ # @!attribute [rw] on_host_maintenance
642
+ # @return [::Google::Cloud::BackupDR::V1::Scheduling::OnHostMaintenance]
643
+ # Optional. Defines the maintenance behavior for this instance.
644
+ # @!attribute [rw] automatic_restart
645
+ # @return [::Boolean]
646
+ # Optional. Specifies whether the instance should be automatically restarted
647
+ # if it is terminated by Compute Engine (not terminated by a user).
648
+ # @!attribute [rw] preemptible
649
+ # @return [::Boolean]
650
+ # Optional. Defines whether the instance is preemptible.
651
+ # @!attribute [rw] node_affinities
652
+ # @return [::Array<::Google::Cloud::BackupDR::V1::Scheduling::NodeAffinity>]
653
+ # Optional. A set of node affinity and anti-affinity configurations.
654
+ # Overrides reservationAffinity.
655
+ # @!attribute [rw] min_node_cpus
656
+ # @return [::Integer]
657
+ # Optional. The minimum number of virtual CPUs this instance will consume
658
+ # when running on a sole-tenant node.
659
+ # @!attribute [rw] provisioning_model
660
+ # @return [::Google::Cloud::BackupDR::V1::Scheduling::ProvisioningModel]
661
+ # Optional. Specifies the provisioning model of the instance.
662
+ # @!attribute [rw] instance_termination_action
663
+ # @return [::Google::Cloud::BackupDR::V1::Scheduling::InstanceTerminationAction]
664
+ # Optional. Specifies the termination action for the instance.
665
+ # @!attribute [rw] local_ssd_recovery_timeout
666
+ # @return [::Google::Cloud::BackupDR::V1::SchedulingDuration]
667
+ # Optional. Specifies the maximum amount of time a Local Ssd Vm should wait
668
+ # while recovery of the Local Ssd state is attempted. Its value should be in
669
+ # between 0 and 168 hours with hour granularity and the default value being 1
670
+ # hour.
671
+ class Scheduling
672
+ include ::Google::Protobuf::MessageExts
673
+ extend ::Google::Protobuf::MessageExts::ClassMethods
674
+
675
+ # Node Affinity: the configuration of desired nodes onto which this Instance
676
+ # could be scheduled.
677
+ # @!attribute [rw] key
678
+ # @return [::String]
679
+ # Optional. Corresponds to the label key of Node resource.
680
+ # @!attribute [rw] operator
681
+ # @return [::Google::Cloud::BackupDR::V1::Scheduling::NodeAffinity::Operator]
682
+ # Optional. Defines the operation of node selection.
683
+ # @!attribute [rw] values
684
+ # @return [::Array<::String>]
685
+ # Optional. Corresponds to the label values of Node resource.
686
+ class NodeAffinity
687
+ include ::Google::Protobuf::MessageExts
688
+ extend ::Google::Protobuf::MessageExts::ClassMethods
689
+
690
+ # Defines the type of node selections.
691
+ module Operator
692
+ # Default value. This value is unused.
693
+ OPERATOR_UNSPECIFIED = 0
694
+
695
+ # Requires Compute Engine to seek for matched nodes.
696
+ IN = 1
697
+
698
+ # Requires Compute Engine to avoid certain nodes.
699
+ NOT_IN = 2
700
+ end
701
+ end
702
+
703
+ # Defines the maintenance behavior for this instance=
704
+ module OnHostMaintenance
705
+ # Default value. This value is unused.
706
+ ON_HOST_MAINTENANCE_UNSPECIFIED = 0
707
+
708
+ # Tells Compute Engine to terminate and (optionally) restart the instance
709
+ # away from the maintenance activity.
710
+ TERMINATE = 1
711
+
712
+ # Default, Allows Compute Engine to automatically migrate instances
713
+ # out of the way of maintenance events.
714
+ MIGRATE = 1000
715
+ end
716
+
717
+ # Defines the provisioning model for an instance.
718
+ module ProvisioningModel
719
+ # Default value. This value is not used.
720
+ PROVISIONING_MODEL_UNSPECIFIED = 0
721
+
722
+ # Standard provisioning with user controlled runtime, no discounts.
723
+ STANDARD = 1
724
+
725
+ # Heavily discounted, no guaranteed runtime.
726
+ SPOT = 2
727
+ end
728
+
729
+ # Defines the supported termination actions for an instance.
730
+ module InstanceTerminationAction
731
+ # Default value. This value is unused.
732
+ INSTANCE_TERMINATION_ACTION_UNSPECIFIED = 0
733
+
734
+ # Delete the VM.
735
+ DELETE = 1
736
+
737
+ # Stop the VM without storing in-memory content. default action.
738
+ STOP = 2
739
+ end
740
+ end
741
+
742
+ # A SchedulingDuration represents a fixed-length span of time represented
743
+ # as a count of seconds and fractions of seconds at nanosecond
744
+ # resolution. It is independent of any calendar and concepts like "day"
745
+ # or "month". Range is approximately 10,000 years.
746
+ # @!attribute [rw] seconds
747
+ # @return [::Integer]
748
+ # Optional. Span of time at a resolution of a second.
749
+ # @!attribute [rw] nanos
750
+ # @return [::Integer]
751
+ # Optional. Span of time that's a fraction of a second at nanosecond
752
+ # resolution.
753
+ class SchedulingDuration
754
+ include ::Google::Protobuf::MessageExts
755
+ extend ::Google::Protobuf::MessageExts::ClassMethods
756
+ end
757
+
758
+ # A service account.
759
+ # @!attribute [rw] email
760
+ # @return [::String]
761
+ # Optional. Email address of the service account.
762
+ # @!attribute [rw] scopes
763
+ # @return [::Array<::String>]
764
+ # Optional. The list of scopes to be made available for this service account.
765
+ class ServiceAccount
766
+ include ::Google::Protobuf::MessageExts
767
+ extend ::Google::Protobuf::MessageExts::ClassMethods
768
+ end
769
+
770
+ # A set of instance tags.
771
+ # @!attribute [rw] items
772
+ # @return [::Array<::String>]
773
+ # Optional. An array of tags. Each tag must be 1-63 characters long, and
774
+ # comply with RFC1035.
775
+ class Tags
776
+ include ::Google::Protobuf::MessageExts
777
+ extend ::Google::Protobuf::MessageExts::ClassMethods
778
+ end
779
+
780
+ # An instance-attached disk resource.
781
+ # @!attribute [rw] initialize_params
782
+ # @return [::Google::Cloud::BackupDR::V1::AttachedDisk::InitializeParams]
783
+ # Optional. Specifies the parameters to initialize this disk.
784
+ # @!attribute [rw] device_name
785
+ # @return [::String]
786
+ # Optional. This is used as an identifier for the disks. This is the unique
787
+ # name has to provided to modify disk parameters like disk_name and
788
+ # replica_zones (in case of RePDs)
789
+ # @!attribute [rw] kind
790
+ # @return [::String]
791
+ # Optional. Type of the resource.
792
+ # @!attribute [rw] disk_type_deprecated
793
+ # @deprecated This field is deprecated and may be removed in the next major version update.
794
+ # @return [::Google::Cloud::BackupDR::V1::AttachedDisk::DiskType]
795
+ # Specifies the type of the disk.
796
+ # @!attribute [rw] mode
797
+ # @return [::Google::Cloud::BackupDR::V1::AttachedDisk::DiskMode]
798
+ # Optional. The mode in which to attach this disk.
799
+ # @!attribute [rw] source
800
+ # @return [::String]
801
+ # Optional. Specifies a valid partial or full URL to an existing Persistent
802
+ # Disk resource.
803
+ # @!attribute [rw] index
804
+ # @return [::Integer]
805
+ # Optional. A zero-based index to this disk, where 0 is reserved for the
806
+ # boot disk.
807
+ # @!attribute [rw] boot
808
+ # @return [::Boolean]
809
+ # Optional. Indicates that this is a boot disk. The virtual machine will use
810
+ # the first partition of the disk for its root filesystem.
811
+ # @!attribute [rw] auto_delete
812
+ # @return [::Boolean]
813
+ # Optional. Specifies whether the disk will be auto-deleted when the instance
814
+ # is deleted (but not when the disk is detached from the instance).
815
+ # @!attribute [rw] license
816
+ # @return [::Array<::String>]
817
+ # Optional. Any valid publicly visible licenses.
818
+ # @!attribute [rw] disk_interface
819
+ # @return [::Google::Cloud::BackupDR::V1::AttachedDisk::DiskInterface]
820
+ # Optional. Specifies the disk interface to use for attaching this disk.
821
+ # @!attribute [rw] guest_os_feature
822
+ # @return [::Array<::Google::Cloud::BackupDR::V1::GuestOsFeature>]
823
+ # Optional. A list of features to enable on the guest operating system.
824
+ # Applicable only for bootable images.
825
+ # @!attribute [rw] disk_encryption_key
826
+ # @return [::Google::Cloud::BackupDR::V1::CustomerEncryptionKey]
827
+ # Optional. Encrypts or decrypts a disk using a customer-supplied
828
+ # encryption key.
829
+ # @!attribute [rw] disk_size_gb
830
+ # @return [::Integer]
831
+ # Optional. The size of the disk in GB.
832
+ # @!attribute [r] saved_state
833
+ # @return [::Google::Cloud::BackupDR::V1::AttachedDisk::DiskSavedState]
834
+ # Optional. Output only. The state of the disk.
835
+ # @!attribute [r] disk_type
836
+ # @return [::String]
837
+ # Optional. Output only. The URI of the disk type resource. For example:
838
+ # projects/project/zones/zone/diskTypes/pd-standard or pd-ssd
839
+ # @!attribute [rw] type
840
+ # @return [::Google::Cloud::BackupDR::V1::AttachedDisk::DiskType]
841
+ # Optional. Specifies the type of the disk.
842
+ class AttachedDisk
843
+ include ::Google::Protobuf::MessageExts
844
+ extend ::Google::Protobuf::MessageExts::ClassMethods
845
+
846
+ # Specifies the parameters to initialize this disk.
847
+ # @!attribute [rw] disk_name
848
+ # @return [::String]
849
+ # Optional. Specifies the disk name. If not specified, the default is to
850
+ # use the name of the instance.
851
+ # @!attribute [rw] replica_zones
852
+ # @return [::Array<::String>]
853
+ # Optional. URL of the zone where the disk should be created.
854
+ # Required for each regional disk associated with the instance.
855
+ class InitializeParams
856
+ include ::Google::Protobuf::MessageExts
857
+ extend ::Google::Protobuf::MessageExts::ClassMethods
858
+ end
859
+
860
+ # List of the Disk Types.
861
+ module DiskType
862
+ # Default value, which is unused.
863
+ DISK_TYPE_UNSPECIFIED = 0
864
+
865
+ # A scratch disk type.
866
+ SCRATCH = 1
867
+
868
+ # A persistent disk type.
869
+ PERSISTENT = 2
870
+ end
871
+
872
+ # List of the Disk Modes.
873
+ module DiskMode
874
+ # Default value, which is unused.
875
+ DISK_MODE_UNSPECIFIED = 0
876
+
877
+ # Attaches this disk in read-write mode. Only one
878
+ # virtual machine at a time can be attached to a disk in read-write mode.
879
+ READ_WRITE = 1
880
+
881
+ # Attaches this disk in read-only mode. Multiple virtual machines can use
882
+ # a disk in read-only mode at a time.
883
+ READ_ONLY = 2
884
+
885
+ # The disk is locked for administrative reasons. Nobody else
886
+ # can use the disk. This mode is used (for example) when taking
887
+ # a snapshot of a disk to prevent mounting the disk while it is
888
+ # being snapshotted.
889
+ LOCKED = 3
890
+ end
891
+
892
+ # List of the Disk Interfaces.
893
+ module DiskInterface
894
+ # Default value, which is unused.
895
+ DISK_INTERFACE_UNSPECIFIED = 0
896
+
897
+ # SCSI Disk Interface.
898
+ SCSI = 1
899
+
900
+ # NVME Disk Interface.
901
+ NVME = 2
902
+
903
+ # NVDIMM Disk Interface.
904
+ NVDIMM = 3
905
+
906
+ # ISCSI Disk Interface.
907
+ ISCSI = 4
908
+ end
909
+
910
+ # List of the states of the Disk.
911
+ module DiskSavedState
912
+ # Default Disk state has not been preserved.
913
+ DISK_SAVED_STATE_UNSPECIFIED = 0
914
+
915
+ # Disk state has been preserved.
916
+ PRESERVED = 1
917
+ end
918
+ end
919
+
920
+ # Feature type of the Guest OS.
921
+ # @!attribute [rw] type
922
+ # @return [::Google::Cloud::BackupDR::V1::GuestOsFeature::FeatureType]
923
+ # The ID of a supported feature.
924
+ class GuestOsFeature
925
+ include ::Google::Protobuf::MessageExts
926
+ extend ::Google::Protobuf::MessageExts::ClassMethods
927
+
928
+ # List of the Feature Types.
929
+ module FeatureType
930
+ # Default value, which is unused.
931
+ FEATURE_TYPE_UNSPECIFIED = 0
932
+
933
+ # VIRTIO_SCSI_MULTIQUEUE feature type.
934
+ VIRTIO_SCSI_MULTIQUEUE = 1
935
+
936
+ # WINDOWS feature type.
937
+ WINDOWS = 2
938
+
939
+ # MULTI_IP_SUBNET feature type.
940
+ MULTI_IP_SUBNET = 3
941
+
942
+ # UEFI_COMPATIBLE feature type.
943
+ UEFI_COMPATIBLE = 4
944
+
945
+ # SECURE_BOOT feature type.
946
+ SECURE_BOOT = 5
947
+
948
+ # GVNIC feature type.
949
+ GVNIC = 6
950
+
951
+ # SEV_CAPABLE feature type.
952
+ SEV_CAPABLE = 7
953
+
954
+ # BARE_METAL_LINUX_COMPATIBLE feature type.
955
+ BARE_METAL_LINUX_COMPATIBLE = 8
956
+
957
+ # SUSPEND_RESUME_COMPATIBLE feature type.
958
+ SUSPEND_RESUME_COMPATIBLE = 9
959
+
960
+ # SEV_LIVE_MIGRATABLE feature type.
961
+ SEV_LIVE_MIGRATABLE = 10
962
+
963
+ # SEV_SNP_CAPABLE feature type.
964
+ SEV_SNP_CAPABLE = 11
965
+
966
+ # TDX_CAPABLE feature type.
967
+ TDX_CAPABLE = 12
968
+
969
+ # IDPF feature type.
970
+ IDPF = 13
971
+
972
+ # SEV_LIVE_MIGRATABLE_V2 feature type.
973
+ SEV_LIVE_MIGRATABLE_V2 = 14
974
+ end
975
+ end
976
+
977
+ # Specifies whether the virtual machine instance will be shut down on key
978
+ # revocation. It is currently used in instance, instance properties and GMI
979
+ # protos
980
+ module KeyRevocationActionType
981
+ # Default value. This value is unused.
982
+ KEY_REVOCATION_ACTION_TYPE_UNSPECIFIED = 0
983
+
984
+ # Indicates user chose no operation.
985
+ NONE = 1
986
+
987
+ # Indicates user chose to opt for VM shutdown on key revocation.
988
+ STOP = 2
989
+ end
990
+ end
991
+ end
992
+ end
993
+ end