google-apis-backupdr_v1 0.11.0 → 0.12.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -22,6 +22,273 @@ module Google
22
22
  module Apis
23
23
  module BackupdrV1
24
24
 
25
+ # request message for AbandonBackup.
26
+ class AbandonBackupRequest
27
+ include Google::Apis::Core::Hashable
28
+
29
+ # Optional. An optional request ID to identify requests. Specify a unique
30
+ # request ID so that if you must retry your request, the server will know to
31
+ # ignore the request if it has already been completed. The server will guarantee
32
+ # that for at least 60 minutes since the first request. For example, consider a
33
+ # situation where you make an initial request and the request times out. If you
34
+ # make the request again with the same request ID, the server can check if
35
+ # original operation with the same request ID was received, and if so, will
36
+ # ignore the second request. This prevents clients from accidentally creating
37
+ # duplicate commitments. The request ID must be a valid UUID with the exception
38
+ # that zero UUID is not supported (00000000-0000-0000-0000-000000000000).
39
+ # Corresponds to the JSON property `requestId`
40
+ # @return [String]
41
+ attr_accessor :request_id
42
+
43
+ def initialize(**args)
44
+ update!(**args)
45
+ end
46
+
47
+ # Update properties of this object
48
+ def update!(**args)
49
+ @request_id = args[:request_id] if args.key?(:request_id)
50
+ end
51
+ end
52
+
53
+ # A specification of the type and number of accelerator cards attached to the
54
+ # instance.
55
+ class AcceleratorConfig
56
+ include Google::Apis::Core::Hashable
57
+
58
+ # Optional. The number of the guest accelerator cards exposed to this instance.
59
+ # Corresponds to the JSON property `acceleratorCount`
60
+ # @return [Fixnum]
61
+ attr_accessor :accelerator_count
62
+
63
+ # Optional. Full or partial URL of the accelerator type resource to attach to
64
+ # this instance.
65
+ # Corresponds to the JSON property `acceleratorType`
66
+ # @return [String]
67
+ attr_accessor :accelerator_type
68
+
69
+ def initialize(**args)
70
+ update!(**args)
71
+ end
72
+
73
+ # Update properties of this object
74
+ def update!(**args)
75
+ @accelerator_count = args[:accelerator_count] if args.key?(:accelerator_count)
76
+ @accelerator_type = args[:accelerator_type] if args.key?(:accelerator_type)
77
+ end
78
+ end
79
+
80
+ # An access configuration attached to an instance's network interface. Only one
81
+ # access config per instance is supported.
82
+ class AccessConfig
83
+ include Google::Apis::Core::Hashable
84
+
85
+ # Optional. The external IPv6 address of this access configuration.
86
+ # Corresponds to the JSON property `externalIpv6`
87
+ # @return [String]
88
+ attr_accessor :external_ipv6
89
+
90
+ # Optional. The prefix length of the external IPv6 range.
91
+ # Corresponds to the JSON property `externalIpv6PrefixLength`
92
+ # @return [Fixnum]
93
+ attr_accessor :external_ipv6_prefix_length
94
+
95
+ # Optional. The name of this access configuration.
96
+ # Corresponds to the JSON property `name`
97
+ # @return [String]
98
+ attr_accessor :name
99
+
100
+ # Optional. The external IP address of this access configuration.
101
+ # Corresponds to the JSON property `natIP`
102
+ # @return [String]
103
+ attr_accessor :nat_ip
104
+
105
+ # Optional. This signifies the networking tier used for configuring this access
106
+ # Corresponds to the JSON property `networkTier`
107
+ # @return [String]
108
+ attr_accessor :network_tier
109
+
110
+ # Optional. The DNS domain name for the public PTR record.
111
+ # Corresponds to the JSON property `publicPtrDomainName`
112
+ # @return [String]
113
+ attr_accessor :public_ptr_domain_name
114
+
115
+ # Optional. Specifies whether a public DNS 'PTR' record should be created to map
116
+ # the external IP address of the instance to a DNS domain name.
117
+ # Corresponds to the JSON property `setPublicPtr`
118
+ # @return [Boolean]
119
+ attr_accessor :set_public_ptr
120
+ alias_method :set_public_ptr?, :set_public_ptr
121
+
122
+ # Optional. In accessConfigs (IPv4), the default and only option is
123
+ # ONE_TO_ONE_NAT. In ipv6AccessConfigs, the default and only option is
124
+ # DIRECT_IPV6.
125
+ # Corresponds to the JSON property `type`
126
+ # @return [String]
127
+ attr_accessor :type
128
+
129
+ def initialize(**args)
130
+ update!(**args)
131
+ end
132
+
133
+ # Update properties of this object
134
+ def update!(**args)
135
+ @external_ipv6 = args[:external_ipv6] if args.key?(:external_ipv6)
136
+ @external_ipv6_prefix_length = args[:external_ipv6_prefix_length] if args.key?(:external_ipv6_prefix_length)
137
+ @name = args[:name] if args.key?(:name)
138
+ @nat_ip = args[:nat_ip] if args.key?(:nat_ip)
139
+ @network_tier = args[:network_tier] if args.key?(:network_tier)
140
+ @public_ptr_domain_name = args[:public_ptr_domain_name] if args.key?(:public_ptr_domain_name)
141
+ @set_public_ptr = args[:set_public_ptr] if args.key?(:set_public_ptr)
142
+ @type = args[:type] if args.key?(:type)
143
+ end
144
+ end
145
+
146
+ # An alias IP range attached to an instance's network interface.
147
+ class AliasIpRange
148
+ include Google::Apis::Core::Hashable
149
+
150
+ # Optional. The IP alias ranges to allocate for this interface.
151
+ # Corresponds to the JSON property `ipCidrRange`
152
+ # @return [String]
153
+ attr_accessor :ip_cidr_range
154
+
155
+ # Optional. The name of a subnetwork secondary IP range from which to allocate
156
+ # an IP alias range. If not specified, the primary range of the subnetwork is
157
+ # used.
158
+ # Corresponds to the JSON property `subnetworkRangeName`
159
+ # @return [String]
160
+ attr_accessor :subnetwork_range_name
161
+
162
+ def initialize(**args)
163
+ update!(**args)
164
+ end
165
+
166
+ # Update properties of this object
167
+ def update!(**args)
168
+ @ip_cidr_range = args[:ip_cidr_range] if args.key?(:ip_cidr_range)
169
+ @subnetwork_range_name = args[:subnetwork_range_name] if args.key?(:subnetwork_range_name)
170
+ end
171
+ end
172
+
173
+ # An instance-attached disk resource.
174
+ class AttachedDisk
175
+ include Google::Apis::Core::Hashable
176
+
177
+ # Optional. Specifies whether the disk will be auto-deleted when the instance is
178
+ # deleted (but not when the disk is detached from the instance).
179
+ # Corresponds to the JSON property `autoDelete`
180
+ # @return [Boolean]
181
+ attr_accessor :auto_delete
182
+ alias_method :auto_delete?, :auto_delete
183
+
184
+ # Optional. Indicates that this is a boot disk. The virtual machine will use the
185
+ # first partition of the disk for its root filesystem.
186
+ # Corresponds to the JSON property `boot`
187
+ # @return [Boolean]
188
+ attr_accessor :boot
189
+ alias_method :boot?, :boot
190
+
191
+ # Optional. This is used as an identifier for the disks. This is the unique name
192
+ # has to provided to modify disk parameters like disk_name and replica_zones (in
193
+ # case of RePDs)
194
+ # Corresponds to the JSON property `deviceName`
195
+ # @return [String]
196
+ attr_accessor :device_name
197
+
198
+ # A customer-supplied encryption key.
199
+ # Corresponds to the JSON property `diskEncryptionKey`
200
+ # @return [Google::Apis::BackupdrV1::CustomerEncryptionKey]
201
+ attr_accessor :disk_encryption_key
202
+
203
+ # Optional. Specifies the disk interface to use for attaching this disk.
204
+ # Corresponds to the JSON property `diskInterface`
205
+ # @return [String]
206
+ attr_accessor :disk_interface
207
+
208
+ # Optional. The size of the disk in GB.
209
+ # Corresponds to the JSON property `diskSizeGb`
210
+ # @return [Fixnum]
211
+ attr_accessor :disk_size_gb
212
+
213
+ # Optional. Specifies the type of the disk.
214
+ # Corresponds to the JSON property `diskType`
215
+ # @return [String]
216
+ attr_accessor :disk_type
217
+
218
+ # Optional. Output only. The URI of the disk type resource. For example:
219
+ # projects/project/zones/zone/diskTypes/pd-standard or pd-ssd
220
+ # Corresponds to the JSON property `diskTypeUri`
221
+ # @return [String]
222
+ attr_accessor :disk_type_uri
223
+
224
+ # Optional. A list of features to enable on the guest operating system.
225
+ # Applicable only for bootable images.
226
+ # Corresponds to the JSON property `guestOsFeature`
227
+ # @return [Array<Google::Apis::BackupdrV1::GuestOsFeature>]
228
+ attr_accessor :guest_os_feature
229
+
230
+ # Optional. A zero-based index to this disk, where 0 is reserved for the boot
231
+ # disk.
232
+ # Corresponds to the JSON property `index`
233
+ # @return [Fixnum]
234
+ attr_accessor :index
235
+
236
+ # Specifies the parameters to initialize this disk.
237
+ # Corresponds to the JSON property `initializeParams`
238
+ # @return [Google::Apis::BackupdrV1::InitializeParams]
239
+ attr_accessor :initialize_params
240
+
241
+ # Optional. Type of the resource.
242
+ # Corresponds to the JSON property `kind`
243
+ # @return [String]
244
+ attr_accessor :kind
245
+
246
+ # Optional. Any valid publicly visible licenses.
247
+ # Corresponds to the JSON property `license`
248
+ # @return [Array<String>]
249
+ attr_accessor :license
250
+
251
+ # Optional. The mode in which to attach this disk.
252
+ # Corresponds to the JSON property `mode`
253
+ # @return [String]
254
+ attr_accessor :mode
255
+
256
+ # Optional. Output only. The state of the disk.
257
+ # Corresponds to the JSON property `savedState`
258
+ # @return [String]
259
+ attr_accessor :saved_state
260
+
261
+ # Optional. Specifies a valid partial or full URL to an existing Persistent Disk
262
+ # resource.
263
+ # Corresponds to the JSON property `source`
264
+ # @return [String]
265
+ attr_accessor :source
266
+
267
+ def initialize(**args)
268
+ update!(**args)
269
+ end
270
+
271
+ # Update properties of this object
272
+ def update!(**args)
273
+ @auto_delete = args[:auto_delete] if args.key?(:auto_delete)
274
+ @boot = args[:boot] if args.key?(:boot)
275
+ @device_name = args[:device_name] if args.key?(:device_name)
276
+ @disk_encryption_key = args[:disk_encryption_key] if args.key?(:disk_encryption_key)
277
+ @disk_interface = args[:disk_interface] if args.key?(:disk_interface)
278
+ @disk_size_gb = args[:disk_size_gb] if args.key?(:disk_size_gb)
279
+ @disk_type = args[:disk_type] if args.key?(:disk_type)
280
+ @disk_type_uri = args[:disk_type_uri] if args.key?(:disk_type_uri)
281
+ @guest_os_feature = args[:guest_os_feature] if args.key?(:guest_os_feature)
282
+ @index = args[:index] if args.key?(:index)
283
+ @initialize_params = args[:initialize_params] if args.key?(:initialize_params)
284
+ @kind = args[:kind] if args.key?(:kind)
285
+ @license = args[:license] if args.key?(:license)
286
+ @mode = args[:mode] if args.key?(:mode)
287
+ @saved_state = args[:saved_state] if args.key?(:saved_state)
288
+ @source = args[:source] if args.key?(:source)
289
+ end
290
+ end
291
+
25
292
  # Specifies the audit configuration for a service. The configuration determines
26
293
  # which permission types are logged, and what identities, if any, are exempted
27
294
  # from logging. An AuditConfig must have one or more AuditLogConfigs. If there
@@ -93,94 +360,99 @@ module Google
93
360
  end
94
361
  end
95
362
 
96
- # Associates `members`, or principals, with a `role`.
97
- class Binding
363
+ # Message describing a Backup object.
364
+ class Backup
98
365
  include Google::Apis::Core::Hashable
99
366
 
100
- # Represents a textual expression in the Common Expression Language (CEL) syntax.
101
- # CEL is a C-like expression language. The syntax and semantics of CEL are
102
- # documented at https://github.com/google/cel-spec. Example (Comparison): title:
103
- # "Summary size limit" description: "Determines if a summary is less than 100
104
- # chars" expression: "document.summary.size() < 100" Example (Equality): title: "
105
- # Requestor is owner" description: "Determines if requestor is the document
106
- # owner" expression: "document.owner == request.auth.claims.email" Example (
107
- # Logic): title: "Public documents" description: "Determine whether the document
108
- # should be publicly visible" expression: "document.type != 'private' &&
109
- # document.type != 'internal'" Example (Data Manipulation): title: "Notification
110
- # string" description: "Create a notification string with a timestamp."
111
- # expression: "'New message received at ' + string(document.create_time)" The
112
- # exact variables and functions that may be referenced within an expression are
113
- # determined by the service that evaluates it. See the service documentation for
114
- # additional information.
115
- # Corresponds to the JSON property `condition`
116
- # @return [Google::Apis::BackupdrV1::Expr]
117
- attr_accessor :condition
367
+ # BackupApplianceBackupProperties represents BackupDR backup appliance's
368
+ # properties.
369
+ # Corresponds to the JSON property `backupApplianceBackupProperties`
370
+ # @return [Google::Apis::BackupdrV1::BackupApplianceBackupProperties]
371
+ attr_accessor :backup_appliance_backup_properties
118
372
 
119
- # Specifies the principals requesting access for a Google Cloud resource. `
120
- # members` can have the following values: * `allUsers`: A special identifier
121
- # that represents anyone who is on the internet; with or without a Google
122
- # account. * `allAuthenticatedUsers`: A special identifier that represents
123
- # anyone who is authenticated with a Google account or a service account. Does
124
- # not include identities that come from external identity providers (IdPs)
125
- # through identity federation. * `user:`emailid``: An email address that
126
- # represents a specific Google account. For example, `alice@example.com` . * `
127
- # serviceAccount:`emailid``: An email address that represents a Google service
128
- # account. For example, `my-other-app@appspot.gserviceaccount.com`. * `
129
- # serviceAccount:`projectid`.svc.id.goog[`namespace`/`kubernetes-sa`]`: An
130
- # identifier for a [Kubernetes service account](https://cloud.google.com/
131
- # kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-
132
- # project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:`emailid``: An
133
- # email address that represents a Google group. For example, `admins@example.com`
134
- # . * `domain:`domain``: The G Suite domain (primary) that represents all the
135
- # users of that domain. For example, `google.com` or `example.com`. * `principal:
136
- # //iam.googleapis.com/locations/global/workforcePools/`pool_id`/subject/`
137
- # subject_attribute_value``: A single identity in a workforce identity pool. * `
138
- # principalSet://iam.googleapis.com/locations/global/workforcePools/`pool_id`/
139
- # group/`group_id``: All workforce identities in a group. * `principalSet://iam.
140
- # googleapis.com/locations/global/workforcePools/`pool_id`/attribute.`
141
- # attribute_name`/`attribute_value``: All workforce identities with a specific
142
- # attribute value. * `principalSet://iam.googleapis.com/locations/global/
143
- # workforcePools/`pool_id`/*`: All identities in a workforce identity pool. * `
144
- # principal://iam.googleapis.com/projects/`project_number`/locations/global/
145
- # workloadIdentityPools/`pool_id`/subject/`subject_attribute_value``: A single
146
- # identity in a workload identity pool. * `principalSet://iam.googleapis.com/
147
- # projects/`project_number`/locations/global/workloadIdentityPools/`pool_id`/
148
- # group/`group_id``: A workload identity pool group. * `principalSet://iam.
149
- # googleapis.com/projects/`project_number`/locations/global/
150
- # workloadIdentityPools/`pool_id`/attribute.`attribute_name`/`attribute_value``:
151
- # All identities in a workload identity pool with a certain attribute. * `
152
- # principalSet://iam.googleapis.com/projects/`project_number`/locations/global/
153
- # workloadIdentityPools/`pool_id`/*`: All identities in a workload identity pool.
154
- # * `deleted:user:`emailid`?uid=`uniqueid``: An email address (plus unique
155
- # identifier) representing a user that has been recently deleted. For example, `
156
- # alice@example.com?uid=123456789012345678901`. If the user is recovered, this
157
- # value reverts to `user:`emailid`` and the recovered user retains the role in
158
- # the binding. * `deleted:serviceAccount:`emailid`?uid=`uniqueid``: An email
159
- # address (plus unique identifier) representing a service account that has been
160
- # recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=
161
- # 123456789012345678901`. If the service account is undeleted, this value
162
- # reverts to `serviceAccount:`emailid`` and the undeleted service account
163
- # retains the role in the binding. * `deleted:group:`emailid`?uid=`uniqueid``:
164
- # An email address (plus unique identifier) representing a Google group that has
165
- # been recently deleted. For example, `admins@example.com?uid=
166
- # 123456789012345678901`. If the group is recovered, this value reverts to `
167
- # group:`emailid`` and the recovered group retains the role in the binding. * `
168
- # deleted:principal://iam.googleapis.com/locations/global/workforcePools/`
169
- # pool_id`/subject/`subject_attribute_value``: Deleted single identity in a
170
- # workforce identity pool. For example, `deleted:principal://iam.googleapis.com/
171
- # locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value`.
172
- # Corresponds to the JSON property `members`
173
- # @return [Array<String>]
174
- attr_accessor :members
373
+ # Optional. The list of BackupLocks taken by the accessor Backup Appliance.
374
+ # Corresponds to the JSON property `backupApplianceLocks`
375
+ # @return [Array<Google::Apis::BackupdrV1::BackupLock>]
376
+ attr_accessor :backup_appliance_locks
175
377
 
176
- # Role that is assigned to the list of `members`, or principals. For example, `
177
- # roles/viewer`, `roles/editor`, or `roles/owner`. For an overview of the IAM
178
- # roles and permissions, see the [IAM documentation](https://cloud.google.com/
179
- # iam/docs/roles-overview). For a list of the available pre-defined roles, see [
180
- # here](https://cloud.google.com/iam/docs/understanding-roles).
181
- # Corresponds to the JSON property `role`
378
+ #
379
+ # Corresponds to the JSON property `backupType`
182
380
  # @return [String]
183
- attr_accessor :role
381
+ attr_accessor :backup_type
382
+
383
+ # ComputeInstanceBackupProperties represents Compute Engine instance backup
384
+ # properties.
385
+ # Corresponds to the JSON property `computeInstanceBackupProperties`
386
+ # @return [Google::Apis::BackupdrV1::ComputeInstanceBackupProperties]
387
+ attr_accessor :compute_instance_backup_properties
388
+
389
+ # Output only. The point in time when this backup was captured from the source.
390
+ # Corresponds to the JSON property `consistencyTime`
391
+ # @return [String]
392
+ attr_accessor :consistency_time
393
+
394
+ # Output only. The time when the instance was created.
395
+ # Corresponds to the JSON property `createTime`
396
+ # @return [String]
397
+ attr_accessor :create_time
398
+
399
+ # Output only. The description of the Backup instance (2048 characters or less).
400
+ # Corresponds to the JSON property `description`
401
+ # @return [String]
402
+ attr_accessor :description
403
+
404
+ # Optional. The backup can not be deleted before this time.
405
+ # Corresponds to the JSON property `enforcedRetentionEndTime`
406
+ # @return [String]
407
+ attr_accessor :enforced_retention_end_time
408
+
409
+ # Optional. Server specified ETag to prevent updates from overwriting each other.
410
+ # Corresponds to the JSON property `etag`
411
+ # @return [String]
412
+ attr_accessor :etag
413
+
414
+ # Optional. When this backup is automatically expired.
415
+ # Corresponds to the JSON property `expireTime`
416
+ # @return [String]
417
+ attr_accessor :expire_time
418
+
419
+ # GCPBackupPlanInfo captures the plan configuration details of Google Cloud
420
+ # resources at the time of backup.
421
+ # Corresponds to the JSON property `gcpBackupPlanInfo`
422
+ # @return [Google::Apis::BackupdrV1::GcpBackupPlanInfo]
423
+ attr_accessor :gcp_backup_plan_info
424
+
425
+ # Optional. Resource labels to represent user provided metadata. No labels
426
+ # currently defined.
427
+ # Corresponds to the JSON property `labels`
428
+ # @return [Hash<String,String>]
429
+ attr_accessor :labels
430
+
431
+ # Output only. Name of the resource.
432
+ # Corresponds to the JSON property `name`
433
+ # @return [String]
434
+ attr_accessor :name
435
+
436
+ # Output only. source resource size in bytes at the time of the backup.
437
+ # Corresponds to the JSON property `resourceSizeBytes`
438
+ # @return [Fixnum]
439
+ attr_accessor :resource_size_bytes
440
+
441
+ # Output only. The list of BackupLocks taken by the service to prevent the
442
+ # deletion of the backup.
443
+ # Corresponds to the JSON property `serviceLocks`
444
+ # @return [Array<Google::Apis::BackupdrV1::BackupLock>]
445
+ attr_accessor :service_locks
446
+
447
+ # Output only. The Backup resource instance state.
448
+ # Corresponds to the JSON property `state`
449
+ # @return [String]
450
+ attr_accessor :state
451
+
452
+ # Output only. The time when the instance was updated.
453
+ # Corresponds to the JSON property `updateTime`
454
+ # @return [String]
455
+ attr_accessor :update_time
184
456
 
185
457
  def initialize(**args)
186
458
  update!(**args)
@@ -188,81 +460,1409 @@ module Google
188
460
 
189
461
  # Update properties of this object
190
462
  def update!(**args)
191
- @condition = args[:condition] if args.key?(:condition)
192
- @members = args[:members] if args.key?(:members)
193
- @role = args[:role] if args.key?(:role)
463
+ @backup_appliance_backup_properties = args[:backup_appliance_backup_properties] if args.key?(:backup_appliance_backup_properties)
464
+ @backup_appliance_locks = args[:backup_appliance_locks] if args.key?(:backup_appliance_locks)
465
+ @backup_type = args[:backup_type] if args.key?(:backup_type)
466
+ @compute_instance_backup_properties = args[:compute_instance_backup_properties] if args.key?(:compute_instance_backup_properties)
467
+ @consistency_time = args[:consistency_time] if args.key?(:consistency_time)
468
+ @create_time = args[:create_time] if args.key?(:create_time)
469
+ @description = args[:description] if args.key?(:description)
470
+ @enforced_retention_end_time = args[:enforced_retention_end_time] if args.key?(:enforced_retention_end_time)
471
+ @etag = args[:etag] if args.key?(:etag)
472
+ @expire_time = args[:expire_time] if args.key?(:expire_time)
473
+ @gcp_backup_plan_info = args[:gcp_backup_plan_info] if args.key?(:gcp_backup_plan_info)
474
+ @labels = args[:labels] if args.key?(:labels)
475
+ @name = args[:name] if args.key?(:name)
476
+ @resource_size_bytes = args[:resource_size_bytes] if args.key?(:resource_size_bytes)
477
+ @service_locks = args[:service_locks] if args.key?(:service_locks)
478
+ @state = args[:state] if args.key?(:state)
479
+ @update_time = args[:update_time] if args.key?(:update_time)
480
+ end
481
+ end
482
+
483
+ # BackupApplianceBackupConfig captures the backup configuration for applications
484
+ # that are protected by Backup Appliances.
485
+ class BackupApplianceBackupConfig
486
+ include Google::Apis::Core::Hashable
487
+
488
+ # The name of the application.
489
+ # Corresponds to the JSON property `applicationName`
490
+ # @return [String]
491
+ attr_accessor :application_name
492
+
493
+ # The ID of the backup appliance.
494
+ # Corresponds to the JSON property `backupApplianceId`
495
+ # @return [Fixnum]
496
+ attr_accessor :backup_appliance_id
497
+
498
+ # The name of the backup appliance.
499
+ # Corresponds to the JSON property `backupApplianceName`
500
+ # @return [String]
501
+ attr_accessor :backup_appliance_name
502
+
503
+ # The name of the host where the application is running.
504
+ # Corresponds to the JSON property `hostName`
505
+ # @return [String]
506
+ attr_accessor :host_name
507
+
508
+ # The ID of the SLA of this application.
509
+ # Corresponds to the JSON property `slaId`
510
+ # @return [Fixnum]
511
+ attr_accessor :sla_id
512
+
513
+ # The name of the SLP associated with the application.
514
+ # Corresponds to the JSON property `slpName`
515
+ # @return [String]
516
+ attr_accessor :slp_name
517
+
518
+ # The name of the SLT associated with the application.
519
+ # Corresponds to the JSON property `sltName`
520
+ # @return [String]
521
+ attr_accessor :slt_name
522
+
523
+ def initialize(**args)
524
+ update!(**args)
525
+ end
526
+
527
+ # Update properties of this object
528
+ def update!(**args)
529
+ @application_name = args[:application_name] if args.key?(:application_name)
530
+ @backup_appliance_id = args[:backup_appliance_id] if args.key?(:backup_appliance_id)
531
+ @backup_appliance_name = args[:backup_appliance_name] if args.key?(:backup_appliance_name)
532
+ @host_name = args[:host_name] if args.key?(:host_name)
533
+ @sla_id = args[:sla_id] if args.key?(:sla_id)
534
+ @slp_name = args[:slp_name] if args.key?(:slp_name)
535
+ @slt_name = args[:slt_name] if args.key?(:slt_name)
536
+ end
537
+ end
538
+
539
+ # BackupApplianceBackupProperties represents BackupDR backup appliance's
540
+ # properties.
541
+ class BackupApplianceBackupProperties
542
+ include Google::Apis::Core::Hashable
543
+
544
+ # Output only. The time when this backup object was finalized (if none, backup
545
+ # is not finalized).
546
+ # Corresponds to the JSON property `finalizeTime`
547
+ # @return [String]
548
+ attr_accessor :finalize_time
549
+
550
+ # Output only. The numeric generation ID of the backup (monotonically increasing)
551
+ # .
552
+ # Corresponds to the JSON property `generationId`
553
+ # @return [Fixnum]
554
+ attr_accessor :generation_id
555
+
556
+ # Optional. The latest timestamp of data available in this Backup.
557
+ # Corresponds to the JSON property `recoveryRangeEndTime`
558
+ # @return [String]
559
+ attr_accessor :recovery_range_end_time
560
+
561
+ # Optional. The earliest timestamp of data available in this Backup.
562
+ # Corresponds to the JSON property `recoveryRangeStartTime`
563
+ # @return [String]
564
+ attr_accessor :recovery_range_start_time
565
+
566
+ def initialize(**args)
567
+ update!(**args)
568
+ end
569
+
570
+ # Update properties of this object
571
+ def update!(**args)
572
+ @finalize_time = args[:finalize_time] if args.key?(:finalize_time)
573
+ @generation_id = args[:generation_id] if args.key?(:generation_id)
574
+ @recovery_range_end_time = args[:recovery_range_end_time] if args.key?(:recovery_range_end_time)
575
+ @recovery_range_start_time = args[:recovery_range_start_time] if args.key?(:recovery_range_start_time)
576
+ end
577
+ end
578
+
579
+ # BackupApplianceLockInfo contains metadata about the backupappliance that
580
+ # created the lock.
581
+ class BackupApplianceLockInfo
582
+ include Google::Apis::Core::Hashable
583
+
584
+ # Required. The ID of the backup/recovery appliance that created this lock.
585
+ # Corresponds to the JSON property `backupApplianceId`
586
+ # @return [Fixnum]
587
+ attr_accessor :backup_appliance_id
588
+
589
+ # Required. The name of the backup/recovery appliance that created this lock.
590
+ # Corresponds to the JSON property `backupApplianceName`
591
+ # @return [String]
592
+ attr_accessor :backup_appliance_name
593
+
594
+ # The image name that depends on this Backup.
595
+ # Corresponds to the JSON property `backupImage`
596
+ # @return [String]
597
+ attr_accessor :backup_image
598
+
599
+ # The job name on the backup/recovery appliance that created this lock.
600
+ # Corresponds to the JSON property `jobName`
601
+ # @return [String]
602
+ attr_accessor :job_name
603
+
604
+ # Required. The reason for the lock: e.g. MOUNT/RESTORE/BACKUP/etc. The value of
605
+ # this string is only meaningful to the client and it is not interpreted by the
606
+ # BackupVault service.
607
+ # Corresponds to the JSON property `lockReason`
608
+ # @return [String]
609
+ attr_accessor :lock_reason
610
+
611
+ # The SLA on the backup/recovery appliance that owns the lock.
612
+ # Corresponds to the JSON property `slaId`
613
+ # @return [Fixnum]
614
+ attr_accessor :sla_id
615
+
616
+ def initialize(**args)
617
+ update!(**args)
618
+ end
619
+
620
+ # Update properties of this object
621
+ def update!(**args)
622
+ @backup_appliance_id = args[:backup_appliance_id] if args.key?(:backup_appliance_id)
623
+ @backup_appliance_name = args[:backup_appliance_name] if args.key?(:backup_appliance_name)
624
+ @backup_image = args[:backup_image] if args.key?(:backup_image)
625
+ @job_name = args[:job_name] if args.key?(:job_name)
626
+ @lock_reason = args[:lock_reason] if args.key?(:lock_reason)
627
+ @sla_id = args[:sla_id] if args.key?(:sla_id)
628
+ end
629
+ end
630
+
631
+ # BackupConfigInfo has information about how the resource is configured for
632
+ # Backup and about the most recent backup to this vault.
633
+ class BackupConfigInfo
634
+ include Google::Apis::Core::Hashable
635
+
636
+ # BackupApplianceBackupConfig captures the backup configuration for applications
637
+ # that are protected by Backup Appliances.
638
+ # Corresponds to the JSON property `backupApplianceBackupConfig`
639
+ # @return [Google::Apis::BackupdrV1::BackupApplianceBackupConfig]
640
+ attr_accessor :backup_appliance_backup_config
641
+
642
+ # GcpBackupConfig captures the Backup configuration details for Google Cloud
643
+ # resources. All Google Cloud resources regardless of type are protected with
644
+ # backup plan associations.
645
+ # Corresponds to the JSON property `gcpBackupConfig`
646
+ # @return [Google::Apis::BackupdrV1::GcpBackupConfig]
647
+ attr_accessor :gcp_backup_config
648
+
649
+ # The `Status` type defines a logical error model that is suitable for different
650
+ # programming environments, including REST APIs and RPC APIs. It is used by [
651
+ # gRPC](https://github.com/grpc). Each `Status` message contains three pieces of
652
+ # data: error code, error message, and error details. You can find out more
653
+ # about this error model and how to work with it in the [API Design Guide](https:
654
+ # //cloud.google.com/apis/design/errors).
655
+ # Corresponds to the JSON property `lastBackupError`
656
+ # @return [Google::Apis::BackupdrV1::Status]
657
+ attr_accessor :last_backup_error
658
+
659
+ # Output only. The status of the last backup to this BackupVault
660
+ # Corresponds to the JSON property `lastBackupState`
661
+ # @return [String]
662
+ attr_accessor :last_backup_state
663
+
664
+ # Output only. If the last backup were successful, this field has the
665
+ # consistency date.
666
+ # Corresponds to the JSON property `lastSuccessfulBackupConsistencyTime`
667
+ # @return [String]
668
+ attr_accessor :last_successful_backup_consistency_time
669
+
670
+ def initialize(**args)
671
+ update!(**args)
672
+ end
673
+
674
+ # Update properties of this object
675
+ def update!(**args)
676
+ @backup_appliance_backup_config = args[:backup_appliance_backup_config] if args.key?(:backup_appliance_backup_config)
677
+ @gcp_backup_config = args[:gcp_backup_config] if args.key?(:gcp_backup_config)
678
+ @last_backup_error = args[:last_backup_error] if args.key?(:last_backup_error)
679
+ @last_backup_state = args[:last_backup_state] if args.key?(:last_backup_state)
680
+ @last_successful_backup_consistency_time = args[:last_successful_backup_consistency_time] if args.key?(:last_successful_backup_consistency_time)
681
+ end
682
+ end
683
+
684
+ # BackupLock represents a single lock on a Backup resource. An unexpired lock on
685
+ # a Backup prevents the Backup from being deleted.
686
+ class BackupLock
687
+ include Google::Apis::Core::Hashable
688
+
689
+ # BackupApplianceLockInfo contains metadata about the backupappliance that
690
+ # created the lock.
691
+ # Corresponds to the JSON property `backupApplianceLockInfo`
692
+ # @return [Google::Apis::BackupdrV1::BackupApplianceLockInfo]
693
+ attr_accessor :backup_appliance_lock_info
694
+
695
+ # Required. The time after which this lock is not considered valid and will no
696
+ # longer protect the Backup from deletion.
697
+ # Corresponds to the JSON property `lockUntilTime`
698
+ # @return [String]
699
+ attr_accessor :lock_until_time
700
+
701
+ # ServiceLockInfo represents the details of a lock taken by the service on a
702
+ # Backup resource.
703
+ # Corresponds to the JSON property `serviceLockInfo`
704
+ # @return [Google::Apis::BackupdrV1::ServiceLockInfo]
705
+ attr_accessor :service_lock_info
706
+
707
+ def initialize(**args)
708
+ update!(**args)
709
+ end
710
+
711
+ # Update properties of this object
712
+ def update!(**args)
713
+ @backup_appliance_lock_info = args[:backup_appliance_lock_info] if args.key?(:backup_appliance_lock_info)
714
+ @lock_until_time = args[:lock_until_time] if args.key?(:lock_until_time)
715
+ @service_lock_info = args[:service_lock_info] if args.key?(:service_lock_info)
716
+ end
717
+ end
718
+
719
+ # Message describing a BackupVault object.
720
+ class BackupVault
721
+ include Google::Apis::Core::Hashable
722
+
723
+ # Optional. User annotations. See https://google.aip.dev/128#annotations Stores
724
+ # small amounts of arbitrary data.
725
+ # Corresponds to the JSON property `annotations`
726
+ # @return [Hash<String,String>]
727
+ attr_accessor :annotations
728
+
729
+ # Output only. The number of backups in this backup vault.
730
+ # Corresponds to the JSON property `backupCount`
731
+ # @return [Fixnum]
732
+ attr_accessor :backup_count
733
+
734
+ # Required. The default and minimum enforced retention for each backup within
735
+ # the backup vault. The enforced retention for each backup can be extended.
736
+ # Corresponds to the JSON property `backupMinimumEnforcedRetentionDuration`
737
+ # @return [String]
738
+ attr_accessor :backup_minimum_enforced_retention_duration
739
+
740
+ # Output only. The time when the instance was created.
741
+ # Corresponds to the JSON property `createTime`
742
+ # @return [String]
743
+ attr_accessor :create_time
744
+
745
+ # Output only. Set to true when there are no backups nested under this resource.
746
+ # Corresponds to the JSON property `deletable`
747
+ # @return [Boolean]
748
+ attr_accessor :deletable
749
+ alias_method :deletable?, :deletable
750
+
751
+ # Optional. The description of the BackupVault instance (2048 characters or less)
752
+ # .
753
+ # Corresponds to the JSON property `description`
754
+ # @return [String]
755
+ attr_accessor :description
756
+
757
+ # Optional. Time after which the BackupVault resource is locked.
758
+ # Corresponds to the JSON property `effectiveTime`
759
+ # @return [String]
760
+ attr_accessor :effective_time
761
+
762
+ # Required. The default retention period for each backup in the backup vault (
763
+ # Deprecated).
764
+ # Corresponds to the JSON property `enforcedRetentionDuration`
765
+ # @return [String]
766
+ attr_accessor :enforced_retention_duration
767
+
768
+ # Optional. Server specified ETag for the backup vault resource to prevent
769
+ # simultaneous updates from overwiting each other.
770
+ # Corresponds to the JSON property `etag`
771
+ # @return [String]
772
+ attr_accessor :etag
773
+
774
+ # Optional. Resource labels to represent user provided metadata. No labels
775
+ # currently defined:
776
+ # Corresponds to the JSON property `labels`
777
+ # @return [Hash<String,String>]
778
+ attr_accessor :labels
779
+
780
+ # Output only. The resource name.
781
+ # Corresponds to the JSON property `name`
782
+ # @return [String]
783
+ attr_accessor :name
784
+
785
+ # Output only. Service account used by the BackupVault Service for this
786
+ # BackupVault. The user should grant this account permissions in their workload
787
+ # project to enable the service to run backups and restores there.
788
+ # Corresponds to the JSON property `serviceAccount`
789
+ # @return [String]
790
+ attr_accessor :service_account
791
+
792
+ # Output only. The BackupVault resource instance state.
793
+ # Corresponds to the JSON property `state`
794
+ # @return [String]
795
+ attr_accessor :state
796
+
797
+ # Output only. Total size of the storage used by all backup resources.
798
+ # Corresponds to the JSON property `totalStoredBytes`
799
+ # @return [Fixnum]
800
+ attr_accessor :total_stored_bytes
801
+
802
+ # Output only. Output only Immutable after resource creation until resource
803
+ # deletion.
804
+ # Corresponds to the JSON property `uid`
805
+ # @return [String]
806
+ attr_accessor :uid
807
+
808
+ # Output only. The time when the instance was updated.
809
+ # Corresponds to the JSON property `updateTime`
810
+ # @return [String]
811
+ attr_accessor :update_time
812
+
813
+ def initialize(**args)
814
+ update!(**args)
815
+ end
816
+
817
+ # Update properties of this object
818
+ def update!(**args)
819
+ @annotations = args[:annotations] if args.key?(:annotations)
820
+ @backup_count = args[:backup_count] if args.key?(:backup_count)
821
+ @backup_minimum_enforced_retention_duration = args[:backup_minimum_enforced_retention_duration] if args.key?(:backup_minimum_enforced_retention_duration)
822
+ @create_time = args[:create_time] if args.key?(:create_time)
823
+ @deletable = args[:deletable] if args.key?(:deletable)
824
+ @description = args[:description] if args.key?(:description)
825
+ @effective_time = args[:effective_time] if args.key?(:effective_time)
826
+ @enforced_retention_duration = args[:enforced_retention_duration] if args.key?(:enforced_retention_duration)
827
+ @etag = args[:etag] if args.key?(:etag)
828
+ @labels = args[:labels] if args.key?(:labels)
829
+ @name = args[:name] if args.key?(:name)
830
+ @service_account = args[:service_account] if args.key?(:service_account)
831
+ @state = args[:state] if args.key?(:state)
832
+ @total_stored_bytes = args[:total_stored_bytes] if args.key?(:total_stored_bytes)
833
+ @uid = args[:uid] if args.key?(:uid)
834
+ @update_time = args[:update_time] if args.key?(:update_time)
835
+ end
836
+ end
837
+
838
+ # Associates `members`, or principals, with a `role`.
839
+ class Binding
840
+ include Google::Apis::Core::Hashable
841
+
842
+ # Represents a textual expression in the Common Expression Language (CEL) syntax.
843
+ # CEL is a C-like expression language. The syntax and semantics of CEL are
844
+ # documented at https://github.com/google/cel-spec. Example (Comparison): title:
845
+ # "Summary size limit" description: "Determines if a summary is less than 100
846
+ # chars" expression: "document.summary.size() < 100" Example (Equality): title: "
847
+ # Requestor is owner" description: "Determines if requestor is the document
848
+ # owner" expression: "document.owner == request.auth.claims.email" Example (
849
+ # Logic): title: "Public documents" description: "Determine whether the document
850
+ # should be publicly visible" expression: "document.type != 'private' &&
851
+ # document.type != 'internal'" Example (Data Manipulation): title: "Notification
852
+ # string" description: "Create a notification string with a timestamp."
853
+ # expression: "'New message received at ' + string(document.create_time)" The
854
+ # exact variables and functions that may be referenced within an expression are
855
+ # determined by the service that evaluates it. See the service documentation for
856
+ # additional information.
857
+ # Corresponds to the JSON property `condition`
858
+ # @return [Google::Apis::BackupdrV1::Expr]
859
+ attr_accessor :condition
860
+
861
+ # Specifies the principals requesting access for a Google Cloud resource. `
862
+ # members` can have the following values: * `allUsers`: A special identifier
863
+ # that represents anyone who is on the internet; with or without a Google
864
+ # account. * `allAuthenticatedUsers`: A special identifier that represents
865
+ # anyone who is authenticated with a Google account or a service account. Does
866
+ # not include identities that come from external identity providers (IdPs)
867
+ # through identity federation. * `user:`emailid``: An email address that
868
+ # represents a specific Google account. For example, `alice@example.com` . * `
869
+ # serviceAccount:`emailid``: An email address that represents a Google service
870
+ # account. For example, `my-other-app@appspot.gserviceaccount.com`. * `
871
+ # serviceAccount:`projectid`.svc.id.goog[`namespace`/`kubernetes-sa`]`: An
872
+ # identifier for a [Kubernetes service account](https://cloud.google.com/
873
+ # kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-
874
+ # project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:`emailid``: An
875
+ # email address that represents a Google group. For example, `admins@example.com`
876
+ # . * `domain:`domain``: The G Suite domain (primary) that represents all the
877
+ # users of that domain. For example, `google.com` or `example.com`. * `principal:
878
+ # //iam.googleapis.com/locations/global/workforcePools/`pool_id`/subject/`
879
+ # subject_attribute_value``: A single identity in a workforce identity pool. * `
880
+ # principalSet://iam.googleapis.com/locations/global/workforcePools/`pool_id`/
881
+ # group/`group_id``: All workforce identities in a group. * `principalSet://iam.
882
+ # googleapis.com/locations/global/workforcePools/`pool_id`/attribute.`
883
+ # attribute_name`/`attribute_value``: All workforce identities with a specific
884
+ # attribute value. * `principalSet://iam.googleapis.com/locations/global/
885
+ # workforcePools/`pool_id`/*`: All identities in a workforce identity pool. * `
886
+ # principal://iam.googleapis.com/projects/`project_number`/locations/global/
887
+ # workloadIdentityPools/`pool_id`/subject/`subject_attribute_value``: A single
888
+ # identity in a workload identity pool. * `principalSet://iam.googleapis.com/
889
+ # projects/`project_number`/locations/global/workloadIdentityPools/`pool_id`/
890
+ # group/`group_id``: A workload identity pool group. * `principalSet://iam.
891
+ # googleapis.com/projects/`project_number`/locations/global/
892
+ # workloadIdentityPools/`pool_id`/attribute.`attribute_name`/`attribute_value``:
893
+ # All identities in a workload identity pool with a certain attribute. * `
894
+ # principalSet://iam.googleapis.com/projects/`project_number`/locations/global/
895
+ # workloadIdentityPools/`pool_id`/*`: All identities in a workload identity pool.
896
+ # * `deleted:user:`emailid`?uid=`uniqueid``: An email address (plus unique
897
+ # identifier) representing a user that has been recently deleted. For example, `
898
+ # alice@example.com?uid=123456789012345678901`. If the user is recovered, this
899
+ # value reverts to `user:`emailid`` and the recovered user retains the role in
900
+ # the binding. * `deleted:serviceAccount:`emailid`?uid=`uniqueid``: An email
901
+ # address (plus unique identifier) representing a service account that has been
902
+ # recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=
903
+ # 123456789012345678901`. If the service account is undeleted, this value
904
+ # reverts to `serviceAccount:`emailid`` and the undeleted service account
905
+ # retains the role in the binding. * `deleted:group:`emailid`?uid=`uniqueid``:
906
+ # An email address (plus unique identifier) representing a Google group that has
907
+ # been recently deleted. For example, `admins@example.com?uid=
908
+ # 123456789012345678901`. If the group is recovered, this value reverts to `
909
+ # group:`emailid`` and the recovered group retains the role in the binding. * `
910
+ # deleted:principal://iam.googleapis.com/locations/global/workforcePools/`
911
+ # pool_id`/subject/`subject_attribute_value``: Deleted single identity in a
912
+ # workforce identity pool. For example, `deleted:principal://iam.googleapis.com/
913
+ # locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value`.
914
+ # Corresponds to the JSON property `members`
915
+ # @return [Array<String>]
916
+ attr_accessor :members
917
+
918
+ # Role that is assigned to the list of `members`, or principals. For example, `
919
+ # roles/viewer`, `roles/editor`, or `roles/owner`. For an overview of the IAM
920
+ # roles and permissions, see the [IAM documentation](https://cloud.google.com/
921
+ # iam/docs/roles-overview). For a list of the available pre-defined roles, see [
922
+ # here](https://cloud.google.com/iam/docs/understanding-roles).
923
+ # Corresponds to the JSON property `role`
924
+ # @return [String]
925
+ attr_accessor :role
926
+
927
+ def initialize(**args)
928
+ update!(**args)
929
+ end
930
+
931
+ # Update properties of this object
932
+ def update!(**args)
933
+ @condition = args[:condition] if args.key?(:condition)
934
+ @members = args[:members] if args.key?(:members)
935
+ @role = args[:role] if args.key?(:role)
936
+ end
937
+ end
938
+
939
+ # The request message for Operations.CancelOperation.
940
+ class CancelOperationRequest
941
+ include Google::Apis::Core::Hashable
942
+
943
+ def initialize(**args)
944
+ update!(**args)
945
+ end
946
+
947
+ # Update properties of this object
948
+ def update!(**args)
949
+ end
950
+ end
951
+
952
+ # ComputeInstanceBackupProperties represents Compute Engine instance backup
953
+ # properties.
954
+ class ComputeInstanceBackupProperties
955
+ include Google::Apis::Core::Hashable
956
+
957
+ # Enables instances created based on these properties to send packets with
958
+ # source IP addresses other than their own and receive packets with destination
959
+ # IP addresses other than their own. If these instances will be used as an IP
960
+ # gateway or it will be set as the next-hop in a Route resource, specify `true`.
961
+ # If unsure, leave this set to `false`. See the https://cloud.google.com/vpc/
962
+ # docs/using-routes#canipforward documentation for more information.
963
+ # Corresponds to the JSON property `canIpForward`
964
+ # @return [Boolean]
965
+ attr_accessor :can_ip_forward
966
+ alias_method :can_ip_forward?, :can_ip_forward
967
+
968
+ # An optional text description for the instances that are created from these
969
+ # properties.
970
+ # Corresponds to the JSON property `description`
971
+ # @return [String]
972
+ attr_accessor :description
973
+
974
+ # An array of disks that are associated with the instances that are created from
975
+ # these properties.
976
+ # Corresponds to the JSON property `disk`
977
+ # @return [Array<Google::Apis::BackupdrV1::AttachedDisk>]
978
+ attr_accessor :disk
979
+
980
+ # A list of guest accelerator cards' type and count to use for instances created
981
+ # from these properties.
982
+ # Corresponds to the JSON property `guestAccelerator`
983
+ # @return [Array<Google::Apis::BackupdrV1::AcceleratorConfig>]
984
+ attr_accessor :guest_accelerator
985
+
986
+ # KeyRevocationActionType of the instance. Supported options are "STOP" and "
987
+ # NONE". The default value is "NONE" if it is not specified.
988
+ # Corresponds to the JSON property `keyRevocationActionType`
989
+ # @return [String]
990
+ attr_accessor :key_revocation_action_type
991
+
992
+ # The machine type to use for instances that are created from these properties.
993
+ # Corresponds to the JSON property `machineType`
994
+ # @return [String]
995
+ attr_accessor :machine_type
996
+
997
+ # A metadata key/value entry.
998
+ # Corresponds to the JSON property `metadata`
999
+ # @return [Google::Apis::BackupdrV1::Metadata]
1000
+ attr_accessor :metadata
1001
+
1002
+ # Minimum cpu/platform to be used by instances. The instance may be scheduled on
1003
+ # the specified or newer cpu/platform. Applicable values are the friendly names
1004
+ # of CPU platforms, such as `minCpuPlatform: Intel Haswell` or `minCpuPlatform:
1005
+ # Intel Sandy Bridge`. For more information, read https://cloud.google.com/
1006
+ # compute/docs/instances/specify-min-cpu-platform.
1007
+ # Corresponds to the JSON property `minCpuPlatform`
1008
+ # @return [String]
1009
+ attr_accessor :min_cpu_platform
1010
+
1011
+ # An array of network access configurations for this interface.
1012
+ # Corresponds to the JSON property `networkInterface`
1013
+ # @return [Array<Google::Apis::BackupdrV1::NetworkInterface>]
1014
+ attr_accessor :network_interface
1015
+
1016
+ # Sets the scheduling options for an Instance.
1017
+ # Corresponds to the JSON property `scheduling`
1018
+ # @return [Google::Apis::BackupdrV1::Scheduling]
1019
+ attr_accessor :scheduling
1020
+
1021
+ # A list of service accounts with specified scopes. Access tokens for these
1022
+ # service accounts are available to the instances that are created from these
1023
+ # properties. Use metadata queries to obtain the access tokens for these
1024
+ # instances.
1025
+ # Corresponds to the JSON property `serviceAccount`
1026
+ # @return [Array<Google::Apis::BackupdrV1::ServiceAccount>]
1027
+ attr_accessor :service_account
1028
+
1029
+ # The source instance used to create this backup. This can be a partial or full
1030
+ # URL to the resource. For example, the following are valid values: -https://www.
1031
+ # googleapis.com/compute/v1/projects/project/zones/zone/instances/instance -
1032
+ # projects/project/zones/zone/instances/instance
1033
+ # Corresponds to the JSON property `sourceInstance`
1034
+ # @return [String]
1035
+ attr_accessor :source_instance
1036
+
1037
+ # A set of instance tags.
1038
+ # Corresponds to the JSON property `tags`
1039
+ # @return [Google::Apis::BackupdrV1::Tags]
1040
+ attr_accessor :tags
1041
+
1042
+ def initialize(**args)
1043
+ update!(**args)
1044
+ end
1045
+
1046
+ # Update properties of this object
1047
+ def update!(**args)
1048
+ @can_ip_forward = args[:can_ip_forward] if args.key?(:can_ip_forward)
1049
+ @description = args[:description] if args.key?(:description)
1050
+ @disk = args[:disk] if args.key?(:disk)
1051
+ @guest_accelerator = args[:guest_accelerator] if args.key?(:guest_accelerator)
1052
+ @key_revocation_action_type = args[:key_revocation_action_type] if args.key?(:key_revocation_action_type)
1053
+ @machine_type = args[:machine_type] if args.key?(:machine_type)
1054
+ @metadata = args[:metadata] if args.key?(:metadata)
1055
+ @min_cpu_platform = args[:min_cpu_platform] if args.key?(:min_cpu_platform)
1056
+ @network_interface = args[:network_interface] if args.key?(:network_interface)
1057
+ @scheduling = args[:scheduling] if args.key?(:scheduling)
1058
+ @service_account = args[:service_account] if args.key?(:service_account)
1059
+ @source_instance = args[:source_instance] if args.key?(:source_instance)
1060
+ @tags = args[:tags] if args.key?(:tags)
1061
+ end
1062
+ end
1063
+
1064
+ # ComputeInstanceDataSourceProperties represents the properties of a
1065
+ # ComputeEngine resource that are stored in the DataSource.
1066
+ class ComputeInstanceDataSourceProperties
1067
+ include Google::Apis::Core::Hashable
1068
+
1069
+ # The description of the Compute Engine instance.
1070
+ # Corresponds to the JSON property `description`
1071
+ # @return [String]
1072
+ attr_accessor :description
1073
+
1074
+ # The machine type of the instance.
1075
+ # Corresponds to the JSON property `machineType`
1076
+ # @return [String]
1077
+ attr_accessor :machine_type
1078
+
1079
+ # Name of the compute instance backed up by the datasource.
1080
+ # Corresponds to the JSON property `name`
1081
+ # @return [String]
1082
+ attr_accessor :name
1083
+
1084
+ # The total number of disks attached to the Instance.
1085
+ # Corresponds to the JSON property `totalDiskCount`
1086
+ # @return [Fixnum]
1087
+ attr_accessor :total_disk_count
1088
+
1089
+ # The sum of all the disk sizes.
1090
+ # Corresponds to the JSON property `totalDiskSizeGb`
1091
+ # @return [Fixnum]
1092
+ attr_accessor :total_disk_size_gb
1093
+
1094
+ def initialize(**args)
1095
+ update!(**args)
1096
+ end
1097
+
1098
+ # Update properties of this object
1099
+ def update!(**args)
1100
+ @description = args[:description] if args.key?(:description)
1101
+ @machine_type = args[:machine_type] if args.key?(:machine_type)
1102
+ @name = args[:name] if args.key?(:name)
1103
+ @total_disk_count = args[:total_disk_count] if args.key?(:total_disk_count)
1104
+ @total_disk_size_gb = args[:total_disk_size_gb] if args.key?(:total_disk_size_gb)
1105
+ end
1106
+ end
1107
+
1108
+ # A customer-supplied encryption key.
1109
+ class CustomerEncryptionKey
1110
+ include Google::Apis::Core::Hashable
1111
+
1112
+ # Optional. The name of the encryption key that is stored in Google Cloud KMS.
1113
+ # Corresponds to the JSON property `kmsKeyName`
1114
+ # @return [String]
1115
+ attr_accessor :kms_key_name
1116
+
1117
+ # Optional. The service account being used for the encryption request for the
1118
+ # given KMS key. If absent, the Compute Engine default service account is used.
1119
+ # Corresponds to the JSON property `kmsKeyServiceAccount`
1120
+ # @return [String]
1121
+ attr_accessor :kms_key_service_account
1122
+
1123
+ # Optional. Specifies a 256-bit customer-supplied encryption key.
1124
+ # Corresponds to the JSON property `rawKey`
1125
+ # @return [String]
1126
+ attr_accessor :raw_key
1127
+
1128
+ # Optional. RSA-wrapped 2048-bit customer-supplied encryption key to either
1129
+ # encrypt or decrypt this resource.
1130
+ # Corresponds to the JSON property `rsaEncryptedKey`
1131
+ # @return [String]
1132
+ attr_accessor :rsa_encrypted_key
1133
+
1134
+ def initialize(**args)
1135
+ update!(**args)
1136
+ end
1137
+
1138
+ # Update properties of this object
1139
+ def update!(**args)
1140
+ @kms_key_name = args[:kms_key_name] if args.key?(:kms_key_name)
1141
+ @kms_key_service_account = args[:kms_key_service_account] if args.key?(:kms_key_service_account)
1142
+ @raw_key = args[:raw_key] if args.key?(:raw_key)
1143
+ @rsa_encrypted_key = args[:rsa_encrypted_key] if args.key?(:rsa_encrypted_key)
1144
+ end
1145
+ end
1146
+
1147
+ # Message describing a DataSource object. Datasource object used to represent
1148
+ # Datasource details for both admin and basic view.
1149
+ class DataSource
1150
+ include Google::Apis::Core::Hashable
1151
+
1152
+ # BackupConfigInfo has information about how the resource is configured for
1153
+ # Backup and about the most recent backup to this vault.
1154
+ # Corresponds to the JSON property `backupConfigInfo`
1155
+ # @return [Google::Apis::BackupdrV1::BackupConfigInfo]
1156
+ attr_accessor :backup_config_info
1157
+
1158
+ # Number of backups in the data source.
1159
+ # Corresponds to the JSON property `backupCount`
1160
+ # @return [Fixnum]
1161
+ attr_accessor :backup_count
1162
+
1163
+ # The backup configuration state.
1164
+ # Corresponds to the JSON property `configState`
1165
+ # @return [String]
1166
+ attr_accessor :config_state
1167
+
1168
+ # Output only. The time when the instance was created.
1169
+ # Corresponds to the JSON property `createTime`
1170
+ # @return [String]
1171
+ attr_accessor :create_time
1172
+
1173
+ # BackupApplianceApplication describes a Source Resource when it is an
1174
+ # application backed up by a BackupAppliance.
1175
+ # Corresponds to the JSON property `dataSourceBackupApplianceApplication`
1176
+ # @return [Google::Apis::BackupdrV1::DataSourceBackupApplianceApplication]
1177
+ attr_accessor :data_source_backup_appliance_application
1178
+
1179
+ # DataSourceGcpResource is used for protected resources that are Google Cloud
1180
+ # Resources. This name is easeier to understand than GcpResourceDataSource or
1181
+ # GcpDataSourceResource
1182
+ # Corresponds to the JSON property `dataSourceGcpResource`
1183
+ # @return [Google::Apis::BackupdrV1::DataSourceGcpResource]
1184
+ attr_accessor :data_source_gcp_resource
1185
+
1186
+ # Server specified ETag for the ManagementServer resource to prevent
1187
+ # simultaneous updates from overwiting each other.
1188
+ # Corresponds to the JSON property `etag`
1189
+ # @return [String]
1190
+ attr_accessor :etag
1191
+
1192
+ # Optional. Resource labels to represent user provided metadata. No labels
1193
+ # currently defined:
1194
+ # Corresponds to the JSON property `labels`
1195
+ # @return [Hash<String,String>]
1196
+ attr_accessor :labels
1197
+
1198
+ # Output only. The resource name.
1199
+ # Corresponds to the JSON property `name`
1200
+ # @return [String]
1201
+ attr_accessor :name
1202
+
1203
+ # Output only. The DataSource resource instance state.
1204
+ # Corresponds to the JSON property `state`
1205
+ # @return [String]
1206
+ attr_accessor :state
1207
+
1208
+ # The number of bytes (metadata and data) stored in this datasource.
1209
+ # Corresponds to the JSON property `totalStoredBytes`
1210
+ # @return [Fixnum]
1211
+ attr_accessor :total_stored_bytes
1212
+
1213
+ # Output only. The time when the instance was updated.
1214
+ # Corresponds to the JSON property `updateTime`
1215
+ # @return [String]
1216
+ attr_accessor :update_time
1217
+
1218
+ def initialize(**args)
1219
+ update!(**args)
1220
+ end
1221
+
1222
+ # Update properties of this object
1223
+ def update!(**args)
1224
+ @backup_config_info = args[:backup_config_info] if args.key?(:backup_config_info)
1225
+ @backup_count = args[:backup_count] if args.key?(:backup_count)
1226
+ @config_state = args[:config_state] if args.key?(:config_state)
1227
+ @create_time = args[:create_time] if args.key?(:create_time)
1228
+ @data_source_backup_appliance_application = args[:data_source_backup_appliance_application] if args.key?(:data_source_backup_appliance_application)
1229
+ @data_source_gcp_resource = args[:data_source_gcp_resource] if args.key?(:data_source_gcp_resource)
1230
+ @etag = args[:etag] if args.key?(:etag)
1231
+ @labels = args[:labels] if args.key?(:labels)
1232
+ @name = args[:name] if args.key?(:name)
1233
+ @state = args[:state] if args.key?(:state)
1234
+ @total_stored_bytes = args[:total_stored_bytes] if args.key?(:total_stored_bytes)
1235
+ @update_time = args[:update_time] if args.key?(:update_time)
1236
+ end
1237
+ end
1238
+
1239
+ # BackupApplianceApplication describes a Source Resource when it is an
1240
+ # application backed up by a BackupAppliance.
1241
+ class DataSourceBackupApplianceApplication
1242
+ include Google::Apis::Core::Hashable
1243
+
1244
+ # Appliance Id of the Backup Appliance.
1245
+ # Corresponds to the JSON property `applianceId`
1246
+ # @return [Fixnum]
1247
+ attr_accessor :appliance_id
1248
+
1249
+ # The appid field of the application within the Backup Appliance.
1250
+ # Corresponds to the JSON property `applicationId`
1251
+ # @return [Fixnum]
1252
+ attr_accessor :application_id
1253
+
1254
+ # The name of the Application as known to the Backup Appliance.
1255
+ # Corresponds to the JSON property `applicationName`
1256
+ # @return [String]
1257
+ attr_accessor :application_name
1258
+
1259
+ # Appliance name.
1260
+ # Corresponds to the JSON property `backupAppliance`
1261
+ # @return [String]
1262
+ attr_accessor :backup_appliance
1263
+
1264
+ # Hostid of the application host.
1265
+ # Corresponds to the JSON property `hostId`
1266
+ # @return [Fixnum]
1267
+ attr_accessor :host_id
1268
+
1269
+ # Hostname of the host where the application is running.
1270
+ # Corresponds to the JSON property `hostname`
1271
+ # @return [String]
1272
+ attr_accessor :hostname
1273
+
1274
+ # The type of the application. e.g. VMBackup
1275
+ # Corresponds to the JSON property `type`
1276
+ # @return [String]
1277
+ attr_accessor :type
1278
+
1279
+ def initialize(**args)
1280
+ update!(**args)
1281
+ end
1282
+
1283
+ # Update properties of this object
1284
+ def update!(**args)
1285
+ @appliance_id = args[:appliance_id] if args.key?(:appliance_id)
1286
+ @application_id = args[:application_id] if args.key?(:application_id)
1287
+ @application_name = args[:application_name] if args.key?(:application_name)
1288
+ @backup_appliance = args[:backup_appliance] if args.key?(:backup_appliance)
1289
+ @host_id = args[:host_id] if args.key?(:host_id)
1290
+ @hostname = args[:hostname] if args.key?(:hostname)
1291
+ @type = args[:type] if args.key?(:type)
1292
+ end
1293
+ end
1294
+
1295
+ # DataSourceGcpResource is used for protected resources that are Google Cloud
1296
+ # Resources. This name is easeier to understand than GcpResourceDataSource or
1297
+ # GcpDataSourceResource
1298
+ class DataSourceGcpResource
1299
+ include Google::Apis::Core::Hashable
1300
+
1301
+ # ComputeInstanceDataSourceProperties represents the properties of a
1302
+ # ComputeEngine resource that are stored in the DataSource.
1303
+ # Corresponds to the JSON property `computeInstanceDatasourceProperties`
1304
+ # @return [Google::Apis::BackupdrV1::ComputeInstanceDataSourceProperties]
1305
+ attr_accessor :compute_instance_datasource_properties
1306
+
1307
+ # Output only. Full resource pathname URL of the source Google Cloud resource.
1308
+ # Corresponds to the JSON property `gcpResourcename`
1309
+ # @return [String]
1310
+ attr_accessor :gcp_resourcename
1311
+
1312
+ # Location of the resource: //"global"/"unspecified".
1313
+ # Corresponds to the JSON property `location`
1314
+ # @return [String]
1315
+ attr_accessor :location
1316
+
1317
+ # The type of the Google Cloud resource. Use the Unified Resource Type, eg.
1318
+ # compute.googleapis.com/Instance.
1319
+ # Corresponds to the JSON property `type`
1320
+ # @return [String]
1321
+ attr_accessor :type
1322
+
1323
+ def initialize(**args)
1324
+ update!(**args)
1325
+ end
1326
+
1327
+ # Update properties of this object
1328
+ def update!(**args)
1329
+ @compute_instance_datasource_properties = args[:compute_instance_datasource_properties] if args.key?(:compute_instance_datasource_properties)
1330
+ @gcp_resourcename = args[:gcp_resourcename] if args.key?(:gcp_resourcename)
1331
+ @location = args[:location] if args.key?(:location)
1332
+ @type = args[:type] if args.key?(:type)
1333
+ end
1334
+ end
1335
+
1336
+ # A generic empty message that you can re-use to avoid defining duplicated empty
1337
+ # messages in your APIs. A typical example is to use it as the request or the
1338
+ # response type of an API method. For instance: service Foo ` rpc Bar(google.
1339
+ # protobuf.Empty) returns (google.protobuf.Empty); `
1340
+ class Empty
1341
+ include Google::Apis::Core::Hashable
1342
+
1343
+ def initialize(**args)
1344
+ update!(**args)
1345
+ end
1346
+
1347
+ # Update properties of this object
1348
+ def update!(**args)
1349
+ end
1350
+ end
1351
+
1352
+ # A key/value pair to be used for storing metadata.
1353
+ class Entry
1354
+ include Google::Apis::Core::Hashable
1355
+
1356
+ # Optional. Key for the metadata entry.
1357
+ # Corresponds to the JSON property `key`
1358
+ # @return [String]
1359
+ attr_accessor :key
1360
+
1361
+ # Optional. Value for the metadata entry. These are free-form strings, and only
1362
+ # have meaning as interpreted by the image running in the instance. The only
1363
+ # restriction placed on values is that their size must be less than or equal to
1364
+ # 262144 bytes (256 KiB).
1365
+ # Corresponds to the JSON property `value`
1366
+ # @return [String]
1367
+ attr_accessor :value
1368
+
1369
+ def initialize(**args)
1370
+ update!(**args)
1371
+ end
1372
+
1373
+ # Update properties of this object
1374
+ def update!(**args)
1375
+ @key = args[:key] if args.key?(:key)
1376
+ @value = args[:value] if args.key?(:value)
1377
+ end
1378
+ end
1379
+
1380
+ # Represents a textual expression in the Common Expression Language (CEL) syntax.
1381
+ # CEL is a C-like expression language. The syntax and semantics of CEL are
1382
+ # documented at https://github.com/google/cel-spec. Example (Comparison): title:
1383
+ # "Summary size limit" description: "Determines if a summary is less than 100
1384
+ # chars" expression: "document.summary.size() < 100" Example (Equality): title: "
1385
+ # Requestor is owner" description: "Determines if requestor is the document
1386
+ # owner" expression: "document.owner == request.auth.claims.email" Example (
1387
+ # Logic): title: "Public documents" description: "Determine whether the document
1388
+ # should be publicly visible" expression: "document.type != 'private' &&
1389
+ # document.type != 'internal'" Example (Data Manipulation): title: "Notification
1390
+ # string" description: "Create a notification string with a timestamp."
1391
+ # expression: "'New message received at ' + string(document.create_time)" The
1392
+ # exact variables and functions that may be referenced within an expression are
1393
+ # determined by the service that evaluates it. See the service documentation for
1394
+ # additional information.
1395
+ class Expr
1396
+ include Google::Apis::Core::Hashable
1397
+
1398
+ # Optional. Description of the expression. This is a longer text which describes
1399
+ # the expression, e.g. when hovered over it in a UI.
1400
+ # Corresponds to the JSON property `description`
1401
+ # @return [String]
1402
+ attr_accessor :description
1403
+
1404
+ # Textual representation of an expression in Common Expression Language syntax.
1405
+ # Corresponds to the JSON property `expression`
1406
+ # @return [String]
1407
+ attr_accessor :expression
1408
+
1409
+ # Optional. String indicating the location of the expression for error reporting,
1410
+ # e.g. a file name and a position in the file.
1411
+ # Corresponds to the JSON property `location`
1412
+ # @return [String]
1413
+ attr_accessor :location
1414
+
1415
+ # Optional. Title for the expression, i.e. a short string describing its purpose.
1416
+ # This can be used e.g. in UIs which allow to enter the expression.
1417
+ # Corresponds to the JSON property `title`
1418
+ # @return [String]
1419
+ attr_accessor :title
1420
+
1421
+ def initialize(**args)
1422
+ update!(**args)
1423
+ end
1424
+
1425
+ # Update properties of this object
1426
+ def update!(**args)
1427
+ @description = args[:description] if args.key?(:description)
1428
+ @expression = args[:expression] if args.key?(:expression)
1429
+ @location = args[:location] if args.key?(:location)
1430
+ @title = args[:title] if args.key?(:title)
1431
+ end
1432
+ end
1433
+
1434
+ # Request message for FetchAccessToken.
1435
+ class FetchAccessTokenRequest
1436
+ include Google::Apis::Core::Hashable
1437
+
1438
+ # Required. The generation of the backup to update.
1439
+ # Corresponds to the JSON property `generationId`
1440
+ # @return [Fixnum]
1441
+ attr_accessor :generation_id
1442
+
1443
+ def initialize(**args)
1444
+ update!(**args)
1445
+ end
1446
+
1447
+ # Update properties of this object
1448
+ def update!(**args)
1449
+ @generation_id = args[:generation_id] if args.key?(:generation_id)
1450
+ end
1451
+ end
1452
+
1453
+ # Response message for FetchAccessToken.
1454
+ class FetchAccessTokenResponse
1455
+ include Google::Apis::Core::Hashable
1456
+
1457
+ # The token is valid until this time.
1458
+ # Corresponds to the JSON property `expireTime`
1459
+ # @return [String]
1460
+ attr_accessor :expire_time
1461
+
1462
+ # The location in bucket that can be used for reading.
1463
+ # Corresponds to the JSON property `readLocation`
1464
+ # @return [String]
1465
+ attr_accessor :read_location
1466
+
1467
+ # The downscoped token that was created.
1468
+ # Corresponds to the JSON property `token`
1469
+ # @return [String]
1470
+ attr_accessor :token
1471
+
1472
+ # The location in bucket that can be used for writing.
1473
+ # Corresponds to the JSON property `writeLocation`
1474
+ # @return [String]
1475
+ attr_accessor :write_location
1476
+
1477
+ def initialize(**args)
1478
+ update!(**args)
1479
+ end
1480
+
1481
+ # Update properties of this object
1482
+ def update!(**args)
1483
+ @expire_time = args[:expire_time] if args.key?(:expire_time)
1484
+ @read_location = args[:read_location] if args.key?(:read_location)
1485
+ @token = args[:token] if args.key?(:token)
1486
+ @write_location = args[:write_location] if args.key?(:write_location)
1487
+ end
1488
+ end
1489
+
1490
+ # Response message for fetching usable BackupVaults.
1491
+ class FetchUsableBackupVaultsResponse
1492
+ include Google::Apis::Core::Hashable
1493
+
1494
+ # The list of BackupVault instances in the project for the specified location.
1495
+ # If the '`location`' value in the request is "-", the response contains a list
1496
+ # of instances from all locations. In case any location is unreachable, the
1497
+ # response will only return backup vaults in reachable locations and the '
1498
+ # unreachable' field will be populated with a list of unreachable locations.
1499
+ # Corresponds to the JSON property `backupVaults`
1500
+ # @return [Array<Google::Apis::BackupdrV1::BackupVault>]
1501
+ attr_accessor :backup_vaults
1502
+
1503
+ # A token identifying a page of results the server should return.
1504
+ # Corresponds to the JSON property `nextPageToken`
1505
+ # @return [String]
1506
+ attr_accessor :next_page_token
1507
+
1508
+ # Locations that could not be reached.
1509
+ # Corresponds to the JSON property `unreachable`
1510
+ # @return [Array<String>]
1511
+ attr_accessor :unreachable
1512
+
1513
+ def initialize(**args)
1514
+ update!(**args)
1515
+ end
1516
+
1517
+ # Update properties of this object
1518
+ def update!(**args)
1519
+ @backup_vaults = args[:backup_vaults] if args.key?(:backup_vaults)
1520
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1521
+ @unreachable = args[:unreachable] if args.key?(:unreachable)
1522
+ end
1523
+ end
1524
+
1525
+ # Message for finalizing a Backup.
1526
+ class FinalizeBackupRequest
1527
+ include Google::Apis::Core::Hashable
1528
+
1529
+ # Required. Resource ID of the Backup resource to be finalized. This must be the
1530
+ # same backup_id that was used in the InitiateBackupRequest.
1531
+ # Corresponds to the JSON property `backupId`
1532
+ # @return [String]
1533
+ attr_accessor :backup_id
1534
+
1535
+ # The point in time when this backup was captured from the source. This will be
1536
+ # assigned to the consistency_time field of the newly created Backup.
1537
+ # Corresponds to the JSON property `consistencyTime`
1538
+ # @return [String]
1539
+ attr_accessor :consistency_time
1540
+
1541
+ # This will be assigned to the description field of the newly created Backup.
1542
+ # Corresponds to the JSON property `description`
1543
+ # @return [String]
1544
+ attr_accessor :description
1545
+
1546
+ # The latest timestamp of data available in this Backup. This will be set on the
1547
+ # newly created Backup.
1548
+ # Corresponds to the JSON property `recoveryRangeEndTime`
1549
+ # @return [String]
1550
+ attr_accessor :recovery_range_end_time
1551
+
1552
+ # The earliest timestamp of data available in this Backup. This will set on the
1553
+ # newly created Backup.
1554
+ # Corresponds to the JSON property `recoveryRangeStartTime`
1555
+ # @return [String]
1556
+ attr_accessor :recovery_range_start_time
1557
+
1558
+ # Optional. An optional request ID to identify requests. Specify a unique
1559
+ # request ID so that if you must retry your request, the server will know to
1560
+ # ignore the request if it has already been completed. The server will guarantee
1561
+ # that for at least 60 minutes after the first request. For example, consider a
1562
+ # situation where you make an initial request and the request times out. If you
1563
+ # make the request again with the same request ID, the server can check if
1564
+ # original operation with the same request ID was received, and if so, will
1565
+ # ignore the second request. This prevents clients from accidentally creating
1566
+ # duplicate commitments. The request ID must be a valid UUID with the exception
1567
+ # that zero UUID is not supported (00000000-0000-0000-0000-000000000000).
1568
+ # Corresponds to the JSON property `requestId`
1569
+ # @return [String]
1570
+ attr_accessor :request_id
1571
+
1572
+ # The ExpireTime on the backup will be set to FinalizeTime plus this duration.
1573
+ # If the resulting ExpireTime is less than EnforcedRetentionEndTime, then
1574
+ # ExpireTime is set to EnforcedRetentionEndTime.
1575
+ # Corresponds to the JSON property `retentionDuration`
1576
+ # @return [String]
1577
+ attr_accessor :retention_duration
1578
+
1579
+ def initialize(**args)
1580
+ update!(**args)
1581
+ end
1582
+
1583
+ # Update properties of this object
1584
+ def update!(**args)
1585
+ @backup_id = args[:backup_id] if args.key?(:backup_id)
1586
+ @consistency_time = args[:consistency_time] if args.key?(:consistency_time)
1587
+ @description = args[:description] if args.key?(:description)
1588
+ @recovery_range_end_time = args[:recovery_range_end_time] if args.key?(:recovery_range_end_time)
1589
+ @recovery_range_start_time = args[:recovery_range_start_time] if args.key?(:recovery_range_start_time)
1590
+ @request_id = args[:request_id] if args.key?(:request_id)
1591
+ @retention_duration = args[:retention_duration] if args.key?(:retention_duration)
1592
+ end
1593
+ end
1594
+
1595
+ # GCPBackupPlanInfo captures the plan configuration details of Google Cloud
1596
+ # resources at the time of backup.
1597
+ class GcpBackupPlanInfo
1598
+ include Google::Apis::Core::Hashable
1599
+
1600
+ # Resource name of backup plan by which workload is protected at the time of the
1601
+ # backup. Format: projects/`project`/locations/`location`/backupPlans/`
1602
+ # backupPlanId`
1603
+ # Corresponds to the JSON property `backupPlan`
1604
+ # @return [String]
1605
+ attr_accessor :backup_plan
1606
+
1607
+ # The rule id of the backup plan which triggered this backup in case of
1608
+ # scheduled backup or used for
1609
+ # Corresponds to the JSON property `backupPlanRuleId`
1610
+ # @return [String]
1611
+ attr_accessor :backup_plan_rule_id
1612
+
1613
+ def initialize(**args)
1614
+ update!(**args)
1615
+ end
1616
+
1617
+ # Update properties of this object
1618
+ def update!(**args)
1619
+ @backup_plan = args[:backup_plan] if args.key?(:backup_plan)
1620
+ @backup_plan_rule_id = args[:backup_plan_rule_id] if args.key?(:backup_plan_rule_id)
1621
+ end
1622
+ end
1623
+
1624
+ # GcpBackupConfig captures the Backup configuration details for Google Cloud
1625
+ # resources. All Google Cloud resources regardless of type are protected with
1626
+ # backup plan associations.
1627
+ class GcpBackupConfig
1628
+ include Google::Apis::Core::Hashable
1629
+
1630
+ # The name of the backup plan.
1631
+ # Corresponds to the JSON property `backupPlan`
1632
+ # @return [String]
1633
+ attr_accessor :backup_plan
1634
+
1635
+ # The name of the backup plan association.
1636
+ # Corresponds to the JSON property `backupPlanAssociation`
1637
+ # @return [String]
1638
+ attr_accessor :backup_plan_association
1639
+
1640
+ # The description of the backup plan.
1641
+ # Corresponds to the JSON property `backupPlanDescription`
1642
+ # @return [String]
1643
+ attr_accessor :backup_plan_description
1644
+
1645
+ # The names of the backup plan rules which point to this backupvault
1646
+ # Corresponds to the JSON property `backupPlanRules`
1647
+ # @return [Array<String>]
1648
+ attr_accessor :backup_plan_rules
1649
+
1650
+ def initialize(**args)
1651
+ update!(**args)
1652
+ end
1653
+
1654
+ # Update properties of this object
1655
+ def update!(**args)
1656
+ @backup_plan = args[:backup_plan] if args.key?(:backup_plan)
1657
+ @backup_plan_association = args[:backup_plan_association] if args.key?(:backup_plan_association)
1658
+ @backup_plan_description = args[:backup_plan_description] if args.key?(:backup_plan_description)
1659
+ @backup_plan_rules = args[:backup_plan_rules] if args.key?(:backup_plan_rules)
1660
+ end
1661
+ end
1662
+
1663
+ # Feature type of the Guest OS.
1664
+ class GuestOsFeature
1665
+ include Google::Apis::Core::Hashable
1666
+
1667
+ # The ID of a supported feature.
1668
+ # Corresponds to the JSON property `type`
1669
+ # @return [String]
1670
+ attr_accessor :type
1671
+
1672
+ def initialize(**args)
1673
+ update!(**args)
1674
+ end
1675
+
1676
+ # Update properties of this object
1677
+ def update!(**args)
1678
+ @type = args[:type] if args.key?(:type)
1679
+ end
1680
+ end
1681
+
1682
+ # Specifies the parameters to initialize this disk.
1683
+ class InitializeParams
1684
+ include Google::Apis::Core::Hashable
1685
+
1686
+ # Optional. Specifies the disk name. If not specified, the default is to use the
1687
+ # name of the instance.
1688
+ # Corresponds to the JSON property `diskName`
1689
+ # @return [String]
1690
+ attr_accessor :disk_name
1691
+
1692
+ # Optional. URL of the zone where the disk should be created. Required for each
1693
+ # regional disk associated with the instance.
1694
+ # Corresponds to the JSON property `replicaZones`
1695
+ # @return [Array<String>]
1696
+ attr_accessor :replica_zones
1697
+
1698
+ def initialize(**args)
1699
+ update!(**args)
1700
+ end
1701
+
1702
+ # Update properties of this object
1703
+ def update!(**args)
1704
+ @disk_name = args[:disk_name] if args.key?(:disk_name)
1705
+ @replica_zones = args[:replica_zones] if args.key?(:replica_zones)
1706
+ end
1707
+ end
1708
+
1709
+ # request message for InitiateBackup.
1710
+ class InitiateBackupRequest
1711
+ include Google::Apis::Core::Hashable
1712
+
1713
+ # Required. Resource ID of the Backup resource.
1714
+ # Corresponds to the JSON property `backupId`
1715
+ # @return [String]
1716
+ attr_accessor :backup_id
1717
+
1718
+ # Optional. An optional request ID to identify requests. Specify a unique
1719
+ # request ID so that if you must retry your request, the server will know to
1720
+ # ignore the request if it has already been completed. The server will guarantee
1721
+ # that for at least 60 minutes since the first request. For example, consider a
1722
+ # situation where you make an initial request and the request times out. If you
1723
+ # make the request again with the same request ID, the server can check if
1724
+ # original operation with the same request ID was received, and if so, will
1725
+ # ignore the second request. This prevents clients from accidentally creating
1726
+ # duplicate commitments. The request ID must be a valid UUID with the exception
1727
+ # that zero UUID is not supported (00000000-0000-0000-0000-000000000000).
1728
+ # Corresponds to the JSON property `requestId`
1729
+ # @return [String]
1730
+ attr_accessor :request_id
1731
+
1732
+ def initialize(**args)
1733
+ update!(**args)
1734
+ end
1735
+
1736
+ # Update properties of this object
1737
+ def update!(**args)
1738
+ @backup_id = args[:backup_id] if args.key?(:backup_id)
1739
+ @request_id = args[:request_id] if args.key?(:request_id)
1740
+ end
1741
+ end
1742
+
1743
+ # Response message for InitiateBackup.
1744
+ class InitiateBackupResponse
1745
+ include Google::Apis::Core::Hashable
1746
+
1747
+ # The name of the backup that was created.
1748
+ # Corresponds to the JSON property `backup`
1749
+ # @return [String]
1750
+ attr_accessor :backup
1751
+
1752
+ # The generation id of the base backup. It is needed for the incremental backups.
1753
+ # Corresponds to the JSON property `baseBackupGenerationId`
1754
+ # @return [Fixnum]
1755
+ attr_accessor :base_backup_generation_id
1756
+
1757
+ # The generation id of the new backup.
1758
+ # Corresponds to the JSON property `newBackupGenerationId`
1759
+ # @return [Fixnum]
1760
+ attr_accessor :new_backup_generation_id
1761
+
1762
+ def initialize(**args)
1763
+ update!(**args)
1764
+ end
1765
+
1766
+ # Update properties of this object
1767
+ def update!(**args)
1768
+ @backup = args[:backup] if args.key?(:backup)
1769
+ @base_backup_generation_id = args[:base_backup_generation_id] if args.key?(:base_backup_generation_id)
1770
+ @new_backup_generation_id = args[:new_backup_generation_id] if args.key?(:new_backup_generation_id)
194
1771
  end
195
1772
  end
196
1773
 
197
- # The request message for Operations.CancelOperation.
198
- class CancelOperationRequest
1774
+ # Response message for listing BackupVaults.
1775
+ class ListBackupVaultsResponse
199
1776
  include Google::Apis::Core::Hashable
200
1777
 
1778
+ # The list of BackupVault instances in the project for the specified location.
1779
+ # If the '`location`' value in the request is "-", the response contains a list
1780
+ # of instances from all locations. In case any location is unreachable, the
1781
+ # response will only return backup vaults in reachable locations and the '
1782
+ # unreachable' field will be populated with a list of unreachable locations.
1783
+ # Corresponds to the JSON property `backupVaults`
1784
+ # @return [Array<Google::Apis::BackupdrV1::BackupVault>]
1785
+ attr_accessor :backup_vaults
1786
+
1787
+ # A token identifying a page of results the server should return.
1788
+ # Corresponds to the JSON property `nextPageToken`
1789
+ # @return [String]
1790
+ attr_accessor :next_page_token
1791
+
1792
+ # Locations that could not be reached.
1793
+ # Corresponds to the JSON property `unreachable`
1794
+ # @return [Array<String>]
1795
+ attr_accessor :unreachable
1796
+
201
1797
  def initialize(**args)
202
1798
  update!(**args)
203
1799
  end
204
1800
 
205
1801
  # Update properties of this object
206
1802
  def update!(**args)
1803
+ @backup_vaults = args[:backup_vaults] if args.key?(:backup_vaults)
1804
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1805
+ @unreachable = args[:unreachable] if args.key?(:unreachable)
207
1806
  end
208
1807
  end
209
1808
 
210
- # A generic empty message that you can re-use to avoid defining duplicated empty
211
- # messages in your APIs. A typical example is to use it as the request or the
212
- # response type of an API method. For instance: service Foo ` rpc Bar(google.
213
- # protobuf.Empty) returns (google.protobuf.Empty); `
214
- class Empty
1809
+ # Response message for listing Backups.
1810
+ class ListBackupsResponse
215
1811
  include Google::Apis::Core::Hashable
216
1812
 
1813
+ # The list of Backup instances in the project for the specified location. If the
1814
+ # '`location`' value in the request is "-", the response contains a list of
1815
+ # instances from all locations. In case any location is unreachable, the
1816
+ # response will only return data sources in reachable locations and the '
1817
+ # unreachable' field will be populated with a list of unreachable locations.
1818
+ # Corresponds to the JSON property `backups`
1819
+ # @return [Array<Google::Apis::BackupdrV1::Backup>]
1820
+ attr_accessor :backups
1821
+
1822
+ # A token identifying a page of results the server should return.
1823
+ # Corresponds to the JSON property `nextPageToken`
1824
+ # @return [String]
1825
+ attr_accessor :next_page_token
1826
+
1827
+ # Locations that could not be reached.
1828
+ # Corresponds to the JSON property `unreachable`
1829
+ # @return [Array<String>]
1830
+ attr_accessor :unreachable
1831
+
217
1832
  def initialize(**args)
218
1833
  update!(**args)
219
1834
  end
220
1835
 
221
1836
  # Update properties of this object
222
1837
  def update!(**args)
1838
+ @backups = args[:backups] if args.key?(:backups)
1839
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1840
+ @unreachable = args[:unreachable] if args.key?(:unreachable)
223
1841
  end
224
1842
  end
225
1843
 
226
- # Represents a textual expression in the Common Expression Language (CEL) syntax.
227
- # CEL is a C-like expression language. The syntax and semantics of CEL are
228
- # documented at https://github.com/google/cel-spec. Example (Comparison): title:
229
- # "Summary size limit" description: "Determines if a summary is less than 100
230
- # chars" expression: "document.summary.size() < 100" Example (Equality): title: "
231
- # Requestor is owner" description: "Determines if requestor is the document
232
- # owner" expression: "document.owner == request.auth.claims.email" Example (
233
- # Logic): title: "Public documents" description: "Determine whether the document
234
- # should be publicly visible" expression: "document.type != 'private' &&
235
- # document.type != 'internal'" Example (Data Manipulation): title: "Notification
236
- # string" description: "Create a notification string with a timestamp."
237
- # expression: "'New message received at ' + string(document.create_time)" The
238
- # exact variables and functions that may be referenced within an expression are
239
- # determined by the service that evaluates it. See the service documentation for
240
- # additional information.
241
- class Expr
1844
+ # Response message for listing DataSources.
1845
+ class ListDataSourcesResponse
242
1846
  include Google::Apis::Core::Hashable
243
1847
 
244
- # Optional. Description of the expression. This is a longer text which describes
245
- # the expression, e.g. when hovered over it in a UI.
246
- # Corresponds to the JSON property `description`
247
- # @return [String]
248
- attr_accessor :description
249
-
250
- # Textual representation of an expression in Common Expression Language syntax.
251
- # Corresponds to the JSON property `expression`
252
- # @return [String]
253
- attr_accessor :expression
1848
+ # The list of DataSource instances in the project for the specified location. If
1849
+ # the '`location`' value in the request is "-", the response contains a list of
1850
+ # instances from all locations. In case any location is unreachable, the
1851
+ # response will only return data sources in reachable locations and the '
1852
+ # unreachable' field will be populated with a list of unreachable locations.
1853
+ # Corresponds to the JSON property `dataSources`
1854
+ # @return [Array<Google::Apis::BackupdrV1::DataSource>]
1855
+ attr_accessor :data_sources
254
1856
 
255
- # Optional. String indicating the location of the expression for error reporting,
256
- # e.g. a file name and a position in the file.
257
- # Corresponds to the JSON property `location`
1857
+ # A token identifying a page of results the server should return.
1858
+ # Corresponds to the JSON property `nextPageToken`
258
1859
  # @return [String]
259
- attr_accessor :location
1860
+ attr_accessor :next_page_token
260
1861
 
261
- # Optional. Title for the expression, i.e. a short string describing its purpose.
262
- # This can be used e.g. in UIs which allow to enter the expression.
263
- # Corresponds to the JSON property `title`
264
- # @return [String]
265
- attr_accessor :title
1862
+ # Locations that could not be reached.
1863
+ # Corresponds to the JSON property `unreachable`
1864
+ # @return [Array<String>]
1865
+ attr_accessor :unreachable
266
1866
 
267
1867
  def initialize(**args)
268
1868
  update!(**args)
@@ -270,10 +1870,9 @@ module Google
270
1870
 
271
1871
  # Update properties of this object
272
1872
  def update!(**args)
273
- @description = args[:description] if args.key?(:description)
274
- @expression = args[:expression] if args.key?(:expression)
275
- @location = args[:location] if args.key?(:location)
276
- @title = args[:title] if args.key?(:title)
1873
+ @data_sources = args[:data_sources] if args.key?(:data_sources)
1874
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1875
+ @unreachable = args[:unreachable] if args.key?(:unreachable)
277
1876
  end
278
1877
  end
279
1878
 
@@ -307,7 +1906,7 @@ module Google
307
1906
  include Google::Apis::Core::Hashable
308
1907
 
309
1908
  # The list of ManagementServer instances in the project for the specified
310
- # location. If the ``location`` value in the request is "-", the response
1909
+ # location. If the '`location`' value in the request is "-", the response
311
1910
  # contains a list of instances from all locations. In case any location is
312
1911
  # unreachable, the response will only return management servers in reachable
313
1912
  # locations and the 'unreachable' field will be populated with a list of
@@ -462,7 +2061,7 @@ module Google
462
2061
 
463
2062
  # Output only. The OAuth 2.0 client id is required to make API calls to the
464
2063
  # BackupDR instance API of this ManagementServer. This is the value that should
465
- # be provided in the aud field of the OIDC ID Token (see openid specification
2064
+ # be provided in the 'aud' field of the OIDC ID Token (see openid specification
466
2065
  # https://openid.net/specs/openid-connect-core-1_0.html#IDToken).
467
2066
  # Corresponds to the JSON property `oauth2ClientId`
468
2067
  # @return [String]
@@ -555,6 +2154,26 @@ module Google
555
2154
  end
556
2155
  end
557
2156
 
2157
+ # A metadata key/value entry.
2158
+ class Metadata
2159
+ include Google::Apis::Core::Hashable
2160
+
2161
+ # Optional. Array of key/value pairs. The total size of all keys and values must
2162
+ # be less than 512 KB.
2163
+ # Corresponds to the JSON property `items`
2164
+ # @return [Array<Google::Apis::BackupdrV1::Entry>]
2165
+ attr_accessor :items
2166
+
2167
+ def initialize(**args)
2168
+ update!(**args)
2169
+ end
2170
+
2171
+ # Update properties of this object
2172
+ def update!(**args)
2173
+ @items = args[:items] if args.key?(:items)
2174
+ end
2175
+ end
2176
+
558
2177
  # Network configuration for ManagementServer instance.
559
2178
  class NetworkConfig
560
2179
  include Google::Apis::Core::Hashable
@@ -582,6 +2201,154 @@ module Google
582
2201
  end
583
2202
  end
584
2203
 
2204
+ # A network interface resource attached to an instance. s
2205
+ class NetworkInterface
2206
+ include Google::Apis::Core::Hashable
2207
+
2208
+ # Optional. An array of configurations for this interface. Currently, only one
2209
+ # access config,ONE_TO_ONE_NAT is supported. If there are no accessConfigs
2210
+ # specified, then this instance will have no external internet access.
2211
+ # Corresponds to the JSON property `accessConfigs`
2212
+ # @return [Array<Google::Apis::BackupdrV1::AccessConfig>]
2213
+ attr_accessor :access_configs
2214
+
2215
+ # Optional. An array of alias IP ranges for this network interface. You can only
2216
+ # specify this field for network interfaces in VPC networks.
2217
+ # Corresponds to the JSON property `aliasIpRanges`
2218
+ # @return [Array<Google::Apis::BackupdrV1::AliasIpRange>]
2219
+ attr_accessor :alias_ip_ranges
2220
+
2221
+ # Optional. The prefix length of the primary internal IPv6 range.
2222
+ # Corresponds to the JSON property `internalIpv6PrefixLength`
2223
+ # @return [Fixnum]
2224
+ attr_accessor :internal_ipv6_prefix_length
2225
+
2226
+ # Optional. An array of IPv6 access configurations for this interface. Currently,
2227
+ # only one IPv6 access config, DIRECT_IPV6, is supported. If there is no
2228
+ # ipv6AccessConfig specified, then this instance will have no external IPv6
2229
+ # Internet access.
2230
+ # Corresponds to the JSON property `ipv6AccessConfigs`
2231
+ # @return [Array<Google::Apis::BackupdrV1::AccessConfig>]
2232
+ attr_accessor :ipv6_access_configs
2233
+
2234
+ # Optional. [Output Only] One of EXTERNAL, INTERNAL to indicate whether the IP
2235
+ # can be accessed from the Internet. This field is always inherited from its
2236
+ # subnetwork.
2237
+ # Corresponds to the JSON property `ipv6AccessType`
2238
+ # @return [String]
2239
+ attr_accessor :ipv6_access_type
2240
+
2241
+ # Optional. An IPv6 internal network address for this network interface. To use
2242
+ # a static internal IP address, it must be unused and in the same region as the
2243
+ # instance's zone. If not specified, Google Cloud will automatically assign an
2244
+ # internal IPv6 address from the instance's subnetwork.
2245
+ # Corresponds to the JSON property `ipv6Address`
2246
+ # @return [String]
2247
+ attr_accessor :ipv6_address
2248
+
2249
+ # Output only. [Output Only] The name of the network interface, which is
2250
+ # generated by the server.
2251
+ # Corresponds to the JSON property `name`
2252
+ # @return [String]
2253
+ attr_accessor :name
2254
+
2255
+ # Optional. URL of the VPC network resource for this instance.
2256
+ # Corresponds to the JSON property `network`
2257
+ # @return [String]
2258
+ attr_accessor :network
2259
+
2260
+ # Optional. The URL of the network attachment that this interface should connect
2261
+ # to in the following format: projects/`project_number`/regions/`region_name`/
2262
+ # networkAttachments/`network_attachment_name`.
2263
+ # Corresponds to the JSON property `networkAttachment`
2264
+ # @return [String]
2265
+ attr_accessor :network_attachment
2266
+
2267
+ # Optional. An IPv4 internal IP address to assign to the instance for this
2268
+ # network interface. If not specified by the user, an unused internal IP is
2269
+ # assigned by the system.
2270
+ # Corresponds to the JSON property `networkIP`
2271
+ # @return [String]
2272
+ attr_accessor :network_ip
2273
+
2274
+ # Optional. The type of vNIC to be used on this interface. This may be gVNIC or
2275
+ # VirtioNet.
2276
+ # Corresponds to the JSON property `nicType`
2277
+ # @return [String]
2278
+ attr_accessor :nic_type
2279
+
2280
+ # Optional. The networking queue count that's specified by users for the network
2281
+ # interface. Both Rx and Tx queues will be set to this number. It'll be empty if
2282
+ # not specified by the users.
2283
+ # Corresponds to the JSON property `queueCount`
2284
+ # @return [Fixnum]
2285
+ attr_accessor :queue_count
2286
+
2287
+ # The stack type for this network interface.
2288
+ # Corresponds to the JSON property `stackType`
2289
+ # @return [String]
2290
+ attr_accessor :stack_type
2291
+
2292
+ # Optional. The URL of the Subnetwork resource for this instance.
2293
+ # Corresponds to the JSON property `subnetwork`
2294
+ # @return [String]
2295
+ attr_accessor :subnetwork
2296
+
2297
+ def initialize(**args)
2298
+ update!(**args)
2299
+ end
2300
+
2301
+ # Update properties of this object
2302
+ def update!(**args)
2303
+ @access_configs = args[:access_configs] if args.key?(:access_configs)
2304
+ @alias_ip_ranges = args[:alias_ip_ranges] if args.key?(:alias_ip_ranges)
2305
+ @internal_ipv6_prefix_length = args[:internal_ipv6_prefix_length] if args.key?(:internal_ipv6_prefix_length)
2306
+ @ipv6_access_configs = args[:ipv6_access_configs] if args.key?(:ipv6_access_configs)
2307
+ @ipv6_access_type = args[:ipv6_access_type] if args.key?(:ipv6_access_type)
2308
+ @ipv6_address = args[:ipv6_address] if args.key?(:ipv6_address)
2309
+ @name = args[:name] if args.key?(:name)
2310
+ @network = args[:network] if args.key?(:network)
2311
+ @network_attachment = args[:network_attachment] if args.key?(:network_attachment)
2312
+ @network_ip = args[:network_ip] if args.key?(:network_ip)
2313
+ @nic_type = args[:nic_type] if args.key?(:nic_type)
2314
+ @queue_count = args[:queue_count] if args.key?(:queue_count)
2315
+ @stack_type = args[:stack_type] if args.key?(:stack_type)
2316
+ @subnetwork = args[:subnetwork] if args.key?(:subnetwork)
2317
+ end
2318
+ end
2319
+
2320
+ # Node Affinity: the configuration of desired nodes onto which this Instance
2321
+ # could be scheduled.
2322
+ class NodeAffinity
2323
+ include Google::Apis::Core::Hashable
2324
+
2325
+ # Optional. Corresponds to the label key of Node resource.
2326
+ # Corresponds to the JSON property `key`
2327
+ # @return [String]
2328
+ attr_accessor :key
2329
+
2330
+ # Optional. Defines the operation of node selection.
2331
+ # Corresponds to the JSON property `operator`
2332
+ # @return [String]
2333
+ attr_accessor :operator
2334
+
2335
+ # Optional. Corresponds to the label values of Node resource.
2336
+ # Corresponds to the JSON property `values`
2337
+ # @return [Array<String>]
2338
+ attr_accessor :values
2339
+
2340
+ def initialize(**args)
2341
+ update!(**args)
2342
+ end
2343
+
2344
+ # Update properties of this object
2345
+ def update!(**args)
2346
+ @key = args[:key] if args.key?(:key)
2347
+ @operator = args[:operator] if args.key?(:operator)
2348
+ @values = args[:values] if args.key?(:values)
2349
+ end
2350
+ end
2351
+
585
2352
  # This resource represents a long-running operation that is the result of a
586
2353
  # network API call.
587
2354
  class Operation
@@ -671,8 +2438,8 @@ module Google
671
2438
 
672
2439
  # Output only. Identifies whether the user has requested cancellation of the
673
2440
  # operation. Operations that have successfully been cancelled have Operation.
674
- # error value with a google.rpc.Status.code of 1, corresponding to `Code.
675
- # CANCELLED`.
2441
+ # error value with a google.rpc.Status.code of 1, corresponding to 'Code.
2442
+ # CANCELLED'.
676
2443
  # Corresponds to the JSON property `requestedCancellation`
677
2444
  # @return [Boolean]
678
2445
  attr_accessor :requested_cancellation
@@ -805,6 +2572,177 @@ module Google
805
2572
  end
806
2573
  end
807
2574
 
2575
+ # Message for deleting a DataSource.
2576
+ class RemoveDataSourceRequest
2577
+ include Google::Apis::Core::Hashable
2578
+
2579
+ # Optional. An optional request ID to identify requests. Specify a unique
2580
+ # request ID so that if you must retry your request, the server will know to
2581
+ # ignore the request if it has already been completed. The server will guarantee
2582
+ # that for at least 60 minutes after the first request. For example, consider a
2583
+ # situation where you make an initial request and the request times out. If you
2584
+ # make the request again with the same request ID, the server can check if
2585
+ # original operation with the same request ID was received, and if so, will
2586
+ # ignore the second request. This prevents clients from accidentally creating
2587
+ # duplicate commitments. The request ID must be a valid UUID with the exception
2588
+ # that zero UUID is not supported (00000000-0000-0000-0000-000000000000).
2589
+ # Corresponds to the JSON property `requestId`
2590
+ # @return [String]
2591
+ attr_accessor :request_id
2592
+
2593
+ def initialize(**args)
2594
+ update!(**args)
2595
+ end
2596
+
2597
+ # Update properties of this object
2598
+ def update!(**args)
2599
+ @request_id = args[:request_id] if args.key?(:request_id)
2600
+ end
2601
+ end
2602
+
2603
+ # Sets the scheduling options for an Instance.
2604
+ class Scheduling
2605
+ include Google::Apis::Core::Hashable
2606
+
2607
+ # Optional. Specifies whether the instance should be automatically restarted if
2608
+ # it is terminated by Compute Engine (not terminated by a user).
2609
+ # Corresponds to the JSON property `automaticRestart`
2610
+ # @return [Boolean]
2611
+ attr_accessor :automatic_restart
2612
+ alias_method :automatic_restart?, :automatic_restart
2613
+
2614
+ # Optional. Specifies the termination action for the instance.
2615
+ # Corresponds to the JSON property `instanceTerminationAction`
2616
+ # @return [String]
2617
+ attr_accessor :instance_termination_action
2618
+
2619
+ # A SchedulingDuration represents a fixed-length span of time represented as a
2620
+ # count of seconds and fractions of seconds at nanosecond resolution. It is
2621
+ # independent of any calendar and concepts like "day" or "month". Range is
2622
+ # approximately 10,000 years.
2623
+ # Corresponds to the JSON property `localSsdRecoveryTimeout`
2624
+ # @return [Google::Apis::BackupdrV1::SchedulingDuration]
2625
+ attr_accessor :local_ssd_recovery_timeout
2626
+
2627
+ # Optional. The minimum number of virtual CPUs this instance will consume when
2628
+ # running on a sole-tenant node.
2629
+ # Corresponds to the JSON property `minNodeCpus`
2630
+ # @return [Fixnum]
2631
+ attr_accessor :min_node_cpus
2632
+
2633
+ # Optional. A set of node affinity and anti-affinity configurations. Overrides
2634
+ # reservationAffinity.
2635
+ # Corresponds to the JSON property `nodeAffinities`
2636
+ # @return [Array<Google::Apis::BackupdrV1::NodeAffinity>]
2637
+ attr_accessor :node_affinities
2638
+
2639
+ # Optional. Defines the maintenance behavior for this instance.
2640
+ # Corresponds to the JSON property `onHostMaintenance`
2641
+ # @return [String]
2642
+ attr_accessor :on_host_maintenance
2643
+
2644
+ # Optional. Defines whether the instance is preemptible.
2645
+ # Corresponds to the JSON property `preemptible`
2646
+ # @return [Boolean]
2647
+ attr_accessor :preemptible
2648
+ alias_method :preemptible?, :preemptible
2649
+
2650
+ # Optional. Specifies the provisioning model of the instance.
2651
+ # Corresponds to the JSON property `provisioningModel`
2652
+ # @return [String]
2653
+ attr_accessor :provisioning_model
2654
+
2655
+ def initialize(**args)
2656
+ update!(**args)
2657
+ end
2658
+
2659
+ # Update properties of this object
2660
+ def update!(**args)
2661
+ @automatic_restart = args[:automatic_restart] if args.key?(:automatic_restart)
2662
+ @instance_termination_action = args[:instance_termination_action] if args.key?(:instance_termination_action)
2663
+ @local_ssd_recovery_timeout = args[:local_ssd_recovery_timeout] if args.key?(:local_ssd_recovery_timeout)
2664
+ @min_node_cpus = args[:min_node_cpus] if args.key?(:min_node_cpus)
2665
+ @node_affinities = args[:node_affinities] if args.key?(:node_affinities)
2666
+ @on_host_maintenance = args[:on_host_maintenance] if args.key?(:on_host_maintenance)
2667
+ @preemptible = args[:preemptible] if args.key?(:preemptible)
2668
+ @provisioning_model = args[:provisioning_model] if args.key?(:provisioning_model)
2669
+ end
2670
+ end
2671
+
2672
+ # A SchedulingDuration represents a fixed-length span of time represented as a
2673
+ # count of seconds and fractions of seconds at nanosecond resolution. It is
2674
+ # independent of any calendar and concepts like "day" or "month". Range is
2675
+ # approximately 10,000 years.
2676
+ class SchedulingDuration
2677
+ include Google::Apis::Core::Hashable
2678
+
2679
+ # Optional. Span of time that's a fraction of a second at nanosecond resolution.
2680
+ # Corresponds to the JSON property `nanos`
2681
+ # @return [Fixnum]
2682
+ attr_accessor :nanos
2683
+
2684
+ # Optional. Span of time at a resolution of a second.
2685
+ # Corresponds to the JSON property `seconds`
2686
+ # @return [Fixnum]
2687
+ attr_accessor :seconds
2688
+
2689
+ def initialize(**args)
2690
+ update!(**args)
2691
+ end
2692
+
2693
+ # Update properties of this object
2694
+ def update!(**args)
2695
+ @nanos = args[:nanos] if args.key?(:nanos)
2696
+ @seconds = args[:seconds] if args.key?(:seconds)
2697
+ end
2698
+ end
2699
+
2700
+ # A service account.
2701
+ class ServiceAccount
2702
+ include Google::Apis::Core::Hashable
2703
+
2704
+ # Optional. Email address of the service account.
2705
+ # Corresponds to the JSON property `email`
2706
+ # @return [String]
2707
+ attr_accessor :email
2708
+
2709
+ # Optional. The list of scopes to be made available for this service account.
2710
+ # Corresponds to the JSON property `scopes`
2711
+ # @return [Array<String>]
2712
+ attr_accessor :scopes
2713
+
2714
+ def initialize(**args)
2715
+ update!(**args)
2716
+ end
2717
+
2718
+ # Update properties of this object
2719
+ def update!(**args)
2720
+ @email = args[:email] if args.key?(:email)
2721
+ @scopes = args[:scopes] if args.key?(:scopes)
2722
+ end
2723
+ end
2724
+
2725
+ # ServiceLockInfo represents the details of a lock taken by the service on a
2726
+ # Backup resource.
2727
+ class ServiceLockInfo
2728
+ include Google::Apis::Core::Hashable
2729
+
2730
+ # Output only. The name of the operation that created this lock. The lock will
2731
+ # automatically be released when the operation completes.
2732
+ # Corresponds to the JSON property `operation`
2733
+ # @return [String]
2734
+ attr_accessor :operation
2735
+
2736
+ def initialize(**args)
2737
+ update!(**args)
2738
+ end
2739
+
2740
+ # Update properties of this object
2741
+ def update!(**args)
2742
+ @operation = args[:operation] if args.key?(:operation)
2743
+ end
2744
+ end
2745
+
808
2746
  # Request message for `SetIamPolicy` method.
809
2747
  class SetIamPolicyRequest
810
2748
  include Google::Apis::Core::Hashable
@@ -858,6 +2796,47 @@ module Google
858
2796
  end
859
2797
  end
860
2798
 
2799
+ # Request message for SetStatusInternal method.
2800
+ class SetInternalStatusRequest
2801
+ include Google::Apis::Core::Hashable
2802
+
2803
+ # Required. The new BackupConfigState to set for the DataSource.
2804
+ # Corresponds to the JSON property `backupConfigState`
2805
+ # @return [String]
2806
+ attr_accessor :backup_config_state
2807
+
2808
+ # Optional. An optional request ID to identify requests. Specify a unique
2809
+ # request ID so that if you must retry your request, the server will know to
2810
+ # ignore the request if it has already been completed. The server will guarantee
2811
+ # that for at least 60 minutes after the first request. The request ID must be a
2812
+ # valid UUID with the exception that zero UUID is not supported (00000000-0000-
2813
+ # 0000-0000-000000000000).
2814
+ # Corresponds to the JSON property `requestId`
2815
+ # @return [String]
2816
+ attr_accessor :request_id
2817
+
2818
+ # Required. The value required for this method to work. This field must be the
2819
+ # 32-byte SHA256 hash of the DataSourceID. The DataSourceID used here is only
2820
+ # the final piece of the fully qualified resource path for this DataSource (i.e.
2821
+ # the part after '.../dataSources/'). This field exists to make this method
2822
+ # difficult to call since it is intended for use only by Backup Appliances.
2823
+ # Corresponds to the JSON property `value`
2824
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
2825
+ # @return [String]
2826
+ attr_accessor :value
2827
+
2828
+ def initialize(**args)
2829
+ update!(**args)
2830
+ end
2831
+
2832
+ # Update properties of this object
2833
+ def update!(**args)
2834
+ @backup_config_state = args[:backup_config_state] if args.key?(:backup_config_state)
2835
+ @request_id = args[:request_id] if args.key?(:request_id)
2836
+ @value = args[:value] if args.key?(:value)
2837
+ end
2838
+ end
2839
+
861
2840
  # The `Status` type defines a logical error model that is suitable for different
862
2841
  # programming environments, including REST APIs and RPC APIs. It is used by [
863
2842
  # gRPC](https://github.com/grpc). Each `Status` message contains three pieces of
@@ -897,6 +2876,26 @@ module Google
897
2876
  end
898
2877
  end
899
2878
 
2879
+ # A set of instance tags.
2880
+ class Tags
2881
+ include Google::Apis::Core::Hashable
2882
+
2883
+ # Optional. An array of tags. Each tag must be 1-63 characters long, and comply
2884
+ # with RFC1035.
2885
+ # Corresponds to the JSON property `items`
2886
+ # @return [Array<String>]
2887
+ attr_accessor :items
2888
+
2889
+ def initialize(**args)
2890
+ update!(**args)
2891
+ end
2892
+
2893
+ # Update properties of this object
2894
+ def update!(**args)
2895
+ @items = args[:items] if args.key?(:items)
2896
+ end
2897
+ end
2898
+
900
2899
  # Request message for `TestIamPermissions` method.
901
2900
  class TestIamPermissionsRequest
902
2901
  include Google::Apis::Core::Hashable