google-apis-backupdr_v1 0.10.0 → 0.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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,15 +460,1339 @@ 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)
194
480
  end
195
481
  end
196
482
 
197
- # The request message for Operations.CancelOperation.
198
- class CancelOperationRequest
199
- include Google::Apis::Core::Hashable
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)
1771
+ end
1772
+ end
1773
+
1774
+ # Response message for listing BackupVaults.
1775
+ class ListBackupVaultsResponse
1776
+ include Google::Apis::Core::Hashable
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
200
1796
 
201
1797
  def initialize(**args)
202
1798
  update!(**args)
@@ -204,65 +1800,69 @@ module Google
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,12 +2061,24 @@ 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]
469
2068
  attr_accessor :oauth2_client_id
470
2069
 
2070
+ # Output only. Reserved for future use.
2071
+ # Corresponds to the JSON property `satisfiesPzi`
2072
+ # @return [Boolean]
2073
+ attr_accessor :satisfies_pzi
2074
+ alias_method :satisfies_pzi?, :satisfies_pzi
2075
+
2076
+ # Output only. Reserved for future use.
2077
+ # Corresponds to the JSON property `satisfiesPzs`
2078
+ # @return [Boolean]
2079
+ attr_accessor :satisfies_pzs
2080
+ alias_method :satisfies_pzs?, :satisfies_pzs
2081
+
471
2082
  # Output only. The ManagementServer state.
472
2083
  # Corresponds to the JSON property `state`
473
2084
  # @return [String]
@@ -508,6 +2119,8 @@ module Google
508
2119
  @name = args[:name] if args.key?(:name)
509
2120
  @networks = args[:networks] if args.key?(:networks)
510
2121
  @oauth2_client_id = args[:oauth2_client_id] if args.key?(:oauth2_client_id)
2122
+ @satisfies_pzi = args[:satisfies_pzi] if args.key?(:satisfies_pzi)
2123
+ @satisfies_pzs = args[:satisfies_pzs] if args.key?(:satisfies_pzs)
511
2124
  @state = args[:state] if args.key?(:state)
512
2125
  @type = args[:type] if args.key?(:type)
513
2126
  @update_time = args[:update_time] if args.key?(:update_time)
@@ -541,6 +2154,26 @@ module Google
541
2154
  end
542
2155
  end
543
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
+
544
2177
  # Network configuration for ManagementServer instance.
545
2178
  class NetworkConfig
546
2179
  include Google::Apis::Core::Hashable
@@ -568,6 +2201,154 @@ module Google
568
2201
  end
569
2202
  end
570
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
+
571
2352
  # This resource represents a long-running operation that is the result of a
572
2353
  # network API call.
573
2354
  class Operation
@@ -657,8 +2438,8 @@ module Google
657
2438
 
658
2439
  # Output only. Identifies whether the user has requested cancellation of the
659
2440
  # operation. Operations that have successfully been cancelled have Operation.
660
- # error value with a google.rpc.Status.code of 1, corresponding to `Code.
661
- # CANCELLED`.
2441
+ # error value with a google.rpc.Status.code of 1, corresponding to 'Code.
2442
+ # CANCELLED'.
662
2443
  # Corresponds to the JSON property `requestedCancellation`
663
2444
  # @return [Boolean]
664
2445
  attr_accessor :requested_cancellation
@@ -791,6 +2572,177 @@ module Google
791
2572
  end
792
2573
  end
793
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
+
794
2746
  # Request message for `SetIamPolicy` method.
795
2747
  class SetIamPolicyRequest
796
2748
  include Google::Apis::Core::Hashable
@@ -844,6 +2796,47 @@ module Google
844
2796
  end
845
2797
  end
846
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
+
847
2840
  # The `Status` type defines a logical error model that is suitable for different
848
2841
  # programming environments, including REST APIs and RPC APIs. It is used by [
849
2842
  # gRPC](https://github.com/grpc). Each `Status` message contains three pieces of
@@ -883,6 +2876,26 @@ module Google
883
2876
  end
884
2877
  end
885
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
+
886
2899
  # Request message for `TestIamPermissions` method.
887
2900
  class TestIamPermissionsRequest
888
2901
  include Google::Apis::Core::Hashable