google-apis-backupdr_v1 0.11.0 → 0.13.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,402 @@ 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
+ # Specifies options for controlling advanced machine features.
147
+ class AdvancedMachineFeatures
148
+ include Google::Apis::Core::Hashable
149
+
150
+ # Optional. Whether to enable nested virtualization or not (default is false).
151
+ # Corresponds to the JSON property `enableNestedVirtualization`
152
+ # @return [Boolean]
153
+ attr_accessor :enable_nested_virtualization
154
+ alias_method :enable_nested_virtualization?, :enable_nested_virtualization
155
+
156
+ # Optional. Whether to enable UEFI networking for instance creation.
157
+ # Corresponds to the JSON property `enableUefiNetworking`
158
+ # @return [Boolean]
159
+ attr_accessor :enable_uefi_networking
160
+ alias_method :enable_uefi_networking?, :enable_uefi_networking
161
+
162
+ # Optional. The number of threads per physical core. To disable simultaneous
163
+ # multithreading (SMT) set this to 1. If unset, the maximum number of threads
164
+ # supported per core by the underlying processor is assumed.
165
+ # Corresponds to the JSON property `threadsPerCore`
166
+ # @return [Fixnum]
167
+ attr_accessor :threads_per_core
168
+
169
+ # Optional. The number of physical cores to expose to an instance. Multiply by
170
+ # the number of threads per core to compute the total number of virtual CPUs to
171
+ # expose to the instance. If unset, the number of cores is inferred from the
172
+ # instance's nominal CPU count and the underlying platform's SMT width.
173
+ # Corresponds to the JSON property `visibleCoreCount`
174
+ # @return [Fixnum]
175
+ attr_accessor :visible_core_count
176
+
177
+ def initialize(**args)
178
+ update!(**args)
179
+ end
180
+
181
+ # Update properties of this object
182
+ def update!(**args)
183
+ @enable_nested_virtualization = args[:enable_nested_virtualization] if args.key?(:enable_nested_virtualization)
184
+ @enable_uefi_networking = args[:enable_uefi_networking] if args.key?(:enable_uefi_networking)
185
+ @threads_per_core = args[:threads_per_core] if args.key?(:threads_per_core)
186
+ @visible_core_count = args[:visible_core_count] if args.key?(:visible_core_count)
187
+ end
188
+ end
189
+
190
+ # An alias IP range attached to an instance's network interface.
191
+ class AliasIpRange
192
+ include Google::Apis::Core::Hashable
193
+
194
+ # Optional. The IP alias ranges to allocate for this interface.
195
+ # Corresponds to the JSON property `ipCidrRange`
196
+ # @return [String]
197
+ attr_accessor :ip_cidr_range
198
+
199
+ # Optional. The name of a subnetwork secondary IP range from which to allocate
200
+ # an IP alias range. If not specified, the primary range of the subnetwork is
201
+ # used.
202
+ # Corresponds to the JSON property `subnetworkRangeName`
203
+ # @return [String]
204
+ attr_accessor :subnetwork_range_name
205
+
206
+ def initialize(**args)
207
+ update!(**args)
208
+ end
209
+
210
+ # Update properties of this object
211
+ def update!(**args)
212
+ @ip_cidr_range = args[:ip_cidr_range] if args.key?(:ip_cidr_range)
213
+ @subnetwork_range_name = args[:subnetwork_range_name] if args.key?(:subnetwork_range_name)
214
+ end
215
+ end
216
+
217
+ # Specifies the reservations that this instance can consume from.
218
+ class AllocationAffinity
219
+ include Google::Apis::Core::Hashable
220
+
221
+ # Optional. Specifies the type of reservation from which this instance can
222
+ # consume
223
+ # Corresponds to the JSON property `consumeReservationType`
224
+ # @return [String]
225
+ attr_accessor :consume_reservation_type
226
+
227
+ # Optional. Corresponds to the label key of a reservation resource.
228
+ # Corresponds to the JSON property `key`
229
+ # @return [String]
230
+ attr_accessor :key
231
+
232
+ # Optional. Corresponds to the label values of a reservation resource.
233
+ # Corresponds to the JSON property `values`
234
+ # @return [Array<String>]
235
+ attr_accessor :values
236
+
237
+ def initialize(**args)
238
+ update!(**args)
239
+ end
240
+
241
+ # Update properties of this object
242
+ def update!(**args)
243
+ @consume_reservation_type = args[:consume_reservation_type] if args.key?(:consume_reservation_type)
244
+ @key = args[:key] if args.key?(:key)
245
+ @values = args[:values] if args.key?(:values)
246
+ end
247
+ end
248
+
249
+ # Provides the mapping of a cloud asset to a direct physical location or to a
250
+ # proxy that defines the location on its behalf.
251
+ class AssetLocation
252
+ include Google::Apis::Core::Hashable
253
+
254
+ # Spanner path of the CCFE RMS database. It is only applicable for CCFE tenants
255
+ # that use CCFE RMS for storing resource metadata.
256
+ # Corresponds to the JSON property `ccfeRmsPath`
257
+ # @return [String]
258
+ attr_accessor :ccfe_rms_path
259
+
260
+ # Defines the customer expectation around ZI/ZS for this asset and ZI/ZS state
261
+ # of the region at the time of asset creation.
262
+ # Corresponds to the JSON property `expected`
263
+ # @return [Google::Apis::BackupdrV1::IsolationExpectations]
264
+ attr_accessor :expected
265
+
266
+ # Defines extra parameters required for specific asset types.
267
+ # Corresponds to the JSON property `extraParameters`
268
+ # @return [Array<Google::Apis::BackupdrV1::ExtraParameter>]
269
+ attr_accessor :extra_parameters
270
+
271
+ # Contains all kinds of physical location definitions for this asset.
272
+ # Corresponds to the JSON property `locationData`
273
+ # @return [Array<Google::Apis::BackupdrV1::LocationData>]
274
+ attr_accessor :location_data
275
+
276
+ # Defines parents assets if any in order to allow later generation of
277
+ # child_asset_location data via child assets.
278
+ # Corresponds to the JSON property `parentAsset`
279
+ # @return [Array<Google::Apis::BackupdrV1::CloudAsset>]
280
+ attr_accessor :parent_asset
281
+
282
+ def initialize(**args)
283
+ update!(**args)
284
+ end
285
+
286
+ # Update properties of this object
287
+ def update!(**args)
288
+ @ccfe_rms_path = args[:ccfe_rms_path] if args.key?(:ccfe_rms_path)
289
+ @expected = args[:expected] if args.key?(:expected)
290
+ @extra_parameters = args[:extra_parameters] if args.key?(:extra_parameters)
291
+ @location_data = args[:location_data] if args.key?(:location_data)
292
+ @parent_asset = args[:parent_asset] if args.key?(:parent_asset)
293
+ end
294
+ end
295
+
296
+ # An instance-attached disk resource.
297
+ class AttachedDisk
298
+ include Google::Apis::Core::Hashable
299
+
300
+ # Optional. Specifies whether the disk will be auto-deleted when the instance is
301
+ # deleted (but not when the disk is detached from the instance).
302
+ # Corresponds to the JSON property `autoDelete`
303
+ # @return [Boolean]
304
+ attr_accessor :auto_delete
305
+ alias_method :auto_delete?, :auto_delete
306
+
307
+ # Optional. Indicates that this is a boot disk. The virtual machine will use the
308
+ # first partition of the disk for its root filesystem.
309
+ # Corresponds to the JSON property `boot`
310
+ # @return [Boolean]
311
+ attr_accessor :boot
312
+ alias_method :boot?, :boot
313
+
314
+ # Optional. This is used as an identifier for the disks. This is the unique name
315
+ # has to provided to modify disk parameters like disk_name and replica_zones (in
316
+ # case of RePDs)
317
+ # Corresponds to the JSON property `deviceName`
318
+ # @return [String]
319
+ attr_accessor :device_name
320
+
321
+ # A customer-supplied encryption key.
322
+ # Corresponds to the JSON property `diskEncryptionKey`
323
+ # @return [Google::Apis::BackupdrV1::CustomerEncryptionKey]
324
+ attr_accessor :disk_encryption_key
325
+
326
+ # Optional. Specifies the disk interface to use for attaching this disk.
327
+ # Corresponds to the JSON property `diskInterface`
328
+ # @return [String]
329
+ attr_accessor :disk_interface
330
+
331
+ # Optional. The size of the disk in GB.
332
+ # Corresponds to the JSON property `diskSizeGb`
333
+ # @return [Fixnum]
334
+ attr_accessor :disk_size_gb
335
+
336
+ # Optional. Output only. The URI of the disk type resource. For example:
337
+ # projects/project/zones/zone/diskTypes/pd-standard or pd-ssd
338
+ # Corresponds to the JSON property `diskType`
339
+ # @return [String]
340
+ attr_accessor :disk_type
341
+
342
+ # Specifies the type of the disk.
343
+ # Corresponds to the JSON property `diskTypeDeprecated`
344
+ # @return [String]
345
+ attr_accessor :disk_type_deprecated
346
+
347
+ # Optional. A list of features to enable on the guest operating system.
348
+ # Applicable only for bootable images.
349
+ # Corresponds to the JSON property `guestOsFeature`
350
+ # @return [Array<Google::Apis::BackupdrV1::GuestOsFeature>]
351
+ attr_accessor :guest_os_feature
352
+
353
+ # Optional. A zero-based index to this disk, where 0 is reserved for the boot
354
+ # disk.
355
+ # Corresponds to the JSON property `index`
356
+ # @return [Fixnum]
357
+ attr_accessor :index
358
+
359
+ # Specifies the parameters to initialize this disk.
360
+ # Corresponds to the JSON property `initializeParams`
361
+ # @return [Google::Apis::BackupdrV1::InitializeParams]
362
+ attr_accessor :initialize_params
363
+
364
+ # Optional. Type of the resource.
365
+ # Corresponds to the JSON property `kind`
366
+ # @return [String]
367
+ attr_accessor :kind
368
+
369
+ # Optional. Any valid publicly visible licenses.
370
+ # Corresponds to the JSON property `license`
371
+ # @return [Array<String>]
372
+ attr_accessor :license
373
+
374
+ # Optional. The mode in which to attach this disk.
375
+ # Corresponds to the JSON property `mode`
376
+ # @return [String]
377
+ attr_accessor :mode
378
+
379
+ # Optional. Output only. The state of the disk.
380
+ # Corresponds to the JSON property `savedState`
381
+ # @return [String]
382
+ attr_accessor :saved_state
383
+
384
+ # Optional. Specifies a valid partial or full URL to an existing Persistent Disk
385
+ # resource.
386
+ # Corresponds to the JSON property `source`
387
+ # @return [String]
388
+ attr_accessor :source
389
+
390
+ # Optional. Specifies the type of the disk.
391
+ # Corresponds to the JSON property `type`
392
+ # @return [String]
393
+ attr_accessor :type
394
+
395
+ def initialize(**args)
396
+ update!(**args)
397
+ end
398
+
399
+ # Update properties of this object
400
+ def update!(**args)
401
+ @auto_delete = args[:auto_delete] if args.key?(:auto_delete)
402
+ @boot = args[:boot] if args.key?(:boot)
403
+ @device_name = args[:device_name] if args.key?(:device_name)
404
+ @disk_encryption_key = args[:disk_encryption_key] if args.key?(:disk_encryption_key)
405
+ @disk_interface = args[:disk_interface] if args.key?(:disk_interface)
406
+ @disk_size_gb = args[:disk_size_gb] if args.key?(:disk_size_gb)
407
+ @disk_type = args[:disk_type] if args.key?(:disk_type)
408
+ @disk_type_deprecated = args[:disk_type_deprecated] if args.key?(:disk_type_deprecated)
409
+ @guest_os_feature = args[:guest_os_feature] if args.key?(:guest_os_feature)
410
+ @index = args[:index] if args.key?(:index)
411
+ @initialize_params = args[:initialize_params] if args.key?(:initialize_params)
412
+ @kind = args[:kind] if args.key?(:kind)
413
+ @license = args[:license] if args.key?(:license)
414
+ @mode = args[:mode] if args.key?(:mode)
415
+ @saved_state = args[:saved_state] if args.key?(:saved_state)
416
+ @source = args[:source] if args.key?(:source)
417
+ @type = args[:type] if args.key?(:type)
418
+ end
419
+ end
420
+
25
421
  # Specifies the audit configuration for a service. The configuration determines
26
422
  # which permission types are logged, and what identities, if any, are exempted
27
423
  # from logging. An AuditConfig must have one or more AuditLogConfigs. If there
@@ -93,94 +489,2086 @@ module Google
93
489
  end
94
490
  end
95
491
 
96
- # Associates `members`, or principals, with a `role`.
97
- class Binding
492
+ # Message describing a Backup object.
493
+ class Backup
98
494
  include Google::Apis::Core::Hashable
99
495
 
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
496
+ # BackupApplianceBackupProperties represents BackupDR backup appliance's
497
+ # properties.
498
+ # Corresponds to the JSON property `backupApplianceBackupProperties`
499
+ # @return [Google::Apis::BackupdrV1::BackupApplianceBackupProperties]
500
+ attr_accessor :backup_appliance_backup_properties
118
501
 
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
502
+ # Optional. The list of BackupLocks taken by the accessor Backup Appliance.
503
+ # Corresponds to the JSON property `backupApplianceLocks`
504
+ # @return [Array<Google::Apis::BackupdrV1::BackupLock>]
505
+ attr_accessor :backup_appliance_locks
175
506
 
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`
507
+ # Output only. Type of the backup, unspecified, scheduled or ondemand.
508
+ # Corresponds to the JSON property `backupType`
509
+ # @return [String]
510
+ attr_accessor :backup_type
511
+
512
+ # ComputeInstanceBackupProperties represents Compute Engine instance backup
513
+ # properties.
514
+ # Corresponds to the JSON property `computeInstanceBackupProperties`
515
+ # @return [Google::Apis::BackupdrV1::ComputeInstanceBackupProperties]
516
+ attr_accessor :compute_instance_backup_properties
517
+
518
+ # Output only. The point in time when this backup was captured from the source.
519
+ # Corresponds to the JSON property `consistencyTime`
520
+ # @return [String]
521
+ attr_accessor :consistency_time
522
+
523
+ # Output only. The time when the instance was created.
524
+ # Corresponds to the JSON property `createTime`
525
+ # @return [String]
526
+ attr_accessor :create_time
527
+
528
+ # Output only. The description of the Backup instance (2048 characters or less).
529
+ # Corresponds to the JSON property `description`
530
+ # @return [String]
531
+ attr_accessor :description
532
+
533
+ # Optional. The backup can not be deleted before this time.
534
+ # Corresponds to the JSON property `enforcedRetentionEndTime`
535
+ # @return [String]
536
+ attr_accessor :enforced_retention_end_time
537
+
538
+ # Optional. Server specified ETag to prevent updates from overwriting each other.
539
+ # Corresponds to the JSON property `etag`
540
+ # @return [String]
541
+ attr_accessor :etag
542
+
543
+ # Optional. When this backup is automatically expired.
544
+ # Corresponds to the JSON property `expireTime`
545
+ # @return [String]
546
+ attr_accessor :expire_time
547
+
548
+ # GCPBackupPlanInfo captures the plan configuration details of Google Cloud
549
+ # resources at the time of backup.
550
+ # Corresponds to the JSON property `gcpBackupPlanInfo`
551
+ # @return [Google::Apis::BackupdrV1::GcpBackupPlanInfo]
552
+ attr_accessor :gcp_backup_plan_info
553
+
554
+ # Optional. Resource labels to represent user provided metadata. No labels
555
+ # currently defined.
556
+ # Corresponds to the JSON property `labels`
557
+ # @return [Hash<String,String>]
558
+ attr_accessor :labels
559
+
560
+ # Output only. Identifier. Name of the resource.
561
+ # Corresponds to the JSON property `name`
562
+ # @return [String]
563
+ attr_accessor :name
564
+
565
+ # Output only. source resource size in bytes at the time of the backup.
566
+ # Corresponds to the JSON property `resourceSizeBytes`
567
+ # @return [Fixnum]
568
+ attr_accessor :resource_size_bytes
569
+
570
+ # Output only. The list of BackupLocks taken by the service to prevent the
571
+ # deletion of the backup.
572
+ # Corresponds to the JSON property `serviceLocks`
573
+ # @return [Array<Google::Apis::BackupdrV1::BackupLock>]
574
+ attr_accessor :service_locks
575
+
576
+ # Output only. The Backup resource instance state.
577
+ # Corresponds to the JSON property `state`
578
+ # @return [String]
579
+ attr_accessor :state
580
+
581
+ # Output only. The time when the instance was updated.
582
+ # Corresponds to the JSON property `updateTime`
583
+ # @return [String]
584
+ attr_accessor :update_time
585
+
586
+ def initialize(**args)
587
+ update!(**args)
588
+ end
589
+
590
+ # Update properties of this object
591
+ def update!(**args)
592
+ @backup_appliance_backup_properties = args[:backup_appliance_backup_properties] if args.key?(:backup_appliance_backup_properties)
593
+ @backup_appliance_locks = args[:backup_appliance_locks] if args.key?(:backup_appliance_locks)
594
+ @backup_type = args[:backup_type] if args.key?(:backup_type)
595
+ @compute_instance_backup_properties = args[:compute_instance_backup_properties] if args.key?(:compute_instance_backup_properties)
596
+ @consistency_time = args[:consistency_time] if args.key?(:consistency_time)
597
+ @create_time = args[:create_time] if args.key?(:create_time)
598
+ @description = args[:description] if args.key?(:description)
599
+ @enforced_retention_end_time = args[:enforced_retention_end_time] if args.key?(:enforced_retention_end_time)
600
+ @etag = args[:etag] if args.key?(:etag)
601
+ @expire_time = args[:expire_time] if args.key?(:expire_time)
602
+ @gcp_backup_plan_info = args[:gcp_backup_plan_info] if args.key?(:gcp_backup_plan_info)
603
+ @labels = args[:labels] if args.key?(:labels)
604
+ @name = args[:name] if args.key?(:name)
605
+ @resource_size_bytes = args[:resource_size_bytes] if args.key?(:resource_size_bytes)
606
+ @service_locks = args[:service_locks] if args.key?(:service_locks)
607
+ @state = args[:state] if args.key?(:state)
608
+ @update_time = args[:update_time] if args.key?(:update_time)
609
+ end
610
+ end
611
+
612
+ # BackupApplianceBackupConfig captures the backup configuration for applications
613
+ # that are protected by Backup Appliances.
614
+ class BackupApplianceBackupConfig
615
+ include Google::Apis::Core::Hashable
616
+
617
+ # The name of the application.
618
+ # Corresponds to the JSON property `applicationName`
619
+ # @return [String]
620
+ attr_accessor :application_name
621
+
622
+ # The ID of the backup appliance.
623
+ # Corresponds to the JSON property `backupApplianceId`
624
+ # @return [Fixnum]
625
+ attr_accessor :backup_appliance_id
626
+
627
+ # The name of the backup appliance.
628
+ # Corresponds to the JSON property `backupApplianceName`
629
+ # @return [String]
630
+ attr_accessor :backup_appliance_name
631
+
632
+ # The name of the host where the application is running.
633
+ # Corresponds to the JSON property `hostName`
634
+ # @return [String]
635
+ attr_accessor :host_name
636
+
637
+ # The ID of the SLA of this application.
638
+ # Corresponds to the JSON property `slaId`
639
+ # @return [Fixnum]
640
+ attr_accessor :sla_id
641
+
642
+ # The name of the SLP associated with the application.
643
+ # Corresponds to the JSON property `slpName`
644
+ # @return [String]
645
+ attr_accessor :slp_name
646
+
647
+ # The name of the SLT associated with the application.
648
+ # Corresponds to the JSON property `sltName`
649
+ # @return [String]
650
+ attr_accessor :slt_name
651
+
652
+ def initialize(**args)
653
+ update!(**args)
654
+ end
655
+
656
+ # Update properties of this object
657
+ def update!(**args)
658
+ @application_name = args[:application_name] if args.key?(:application_name)
659
+ @backup_appliance_id = args[:backup_appliance_id] if args.key?(:backup_appliance_id)
660
+ @backup_appliance_name = args[:backup_appliance_name] if args.key?(:backup_appliance_name)
661
+ @host_name = args[:host_name] if args.key?(:host_name)
662
+ @sla_id = args[:sla_id] if args.key?(:sla_id)
663
+ @slp_name = args[:slp_name] if args.key?(:slp_name)
664
+ @slt_name = args[:slt_name] if args.key?(:slt_name)
665
+ end
666
+ end
667
+
668
+ # BackupApplianceBackupProperties represents BackupDR backup appliance's
669
+ # properties.
670
+ class BackupApplianceBackupProperties
671
+ include Google::Apis::Core::Hashable
672
+
673
+ # Output only. The time when this backup object was finalized (if none, backup
674
+ # is not finalized).
675
+ # Corresponds to the JSON property `finalizeTime`
676
+ # @return [String]
677
+ attr_accessor :finalize_time
678
+
679
+ # Output only. The numeric generation ID of the backup (monotonically increasing)
680
+ # .
681
+ # Corresponds to the JSON property `generationId`
682
+ # @return [Fixnum]
683
+ attr_accessor :generation_id
684
+
685
+ # Optional. The latest timestamp of data available in this Backup.
686
+ # Corresponds to the JSON property `recoveryRangeEndTime`
687
+ # @return [String]
688
+ attr_accessor :recovery_range_end_time
689
+
690
+ # Optional. The earliest timestamp of data available in this Backup.
691
+ # Corresponds to the JSON property `recoveryRangeStartTime`
692
+ # @return [String]
693
+ attr_accessor :recovery_range_start_time
694
+
695
+ def initialize(**args)
696
+ update!(**args)
697
+ end
698
+
699
+ # Update properties of this object
700
+ def update!(**args)
701
+ @finalize_time = args[:finalize_time] if args.key?(:finalize_time)
702
+ @generation_id = args[:generation_id] if args.key?(:generation_id)
703
+ @recovery_range_end_time = args[:recovery_range_end_time] if args.key?(:recovery_range_end_time)
704
+ @recovery_range_start_time = args[:recovery_range_start_time] if args.key?(:recovery_range_start_time)
705
+ end
706
+ end
707
+
708
+ # BackupApplianceLockInfo contains metadata about the backupappliance that
709
+ # created the lock.
710
+ class BackupApplianceLockInfo
711
+ include Google::Apis::Core::Hashable
712
+
713
+ # Required. The ID of the backup/recovery appliance that created this lock.
714
+ # Corresponds to the JSON property `backupApplianceId`
715
+ # @return [Fixnum]
716
+ attr_accessor :backup_appliance_id
717
+
718
+ # Required. The name of the backup/recovery appliance that created this lock.
719
+ # Corresponds to the JSON property `backupApplianceName`
720
+ # @return [String]
721
+ attr_accessor :backup_appliance_name
722
+
723
+ # The image name that depends on this Backup.
724
+ # Corresponds to the JSON property `backupImage`
725
+ # @return [String]
726
+ attr_accessor :backup_image
727
+
728
+ # The job name on the backup/recovery appliance that created this lock.
729
+ # Corresponds to the JSON property `jobName`
730
+ # @return [String]
731
+ attr_accessor :job_name
732
+
733
+ # Required. The reason for the lock: e.g. MOUNT/RESTORE/BACKUP/etc. The value of
734
+ # this string is only meaningful to the client and it is not interpreted by the
735
+ # BackupVault service.
736
+ # Corresponds to the JSON property `lockReason`
737
+ # @return [String]
738
+ attr_accessor :lock_reason
739
+
740
+ # The SLA on the backup/recovery appliance that owns the lock.
741
+ # Corresponds to the JSON property `slaId`
742
+ # @return [Fixnum]
743
+ attr_accessor :sla_id
744
+
745
+ def initialize(**args)
746
+ update!(**args)
747
+ end
748
+
749
+ # Update properties of this object
750
+ def update!(**args)
751
+ @backup_appliance_id = args[:backup_appliance_id] if args.key?(:backup_appliance_id)
752
+ @backup_appliance_name = args[:backup_appliance_name] if args.key?(:backup_appliance_name)
753
+ @backup_image = args[:backup_image] if args.key?(:backup_image)
754
+ @job_name = args[:job_name] if args.key?(:job_name)
755
+ @lock_reason = args[:lock_reason] if args.key?(:lock_reason)
756
+ @sla_id = args[:sla_id] if args.key?(:sla_id)
757
+ end
758
+ end
759
+
760
+ # BackupConfigInfo has information about how the resource is configured for
761
+ # Backup and about the most recent backup to this vault.
762
+ class BackupConfigInfo
763
+ include Google::Apis::Core::Hashable
764
+
765
+ # BackupApplianceBackupConfig captures the backup configuration for applications
766
+ # that are protected by Backup Appliances.
767
+ # Corresponds to the JSON property `backupApplianceBackupConfig`
768
+ # @return [Google::Apis::BackupdrV1::BackupApplianceBackupConfig]
769
+ attr_accessor :backup_appliance_backup_config
770
+
771
+ # GcpBackupConfig captures the Backup configuration details for Google Cloud
772
+ # resources. All Google Cloud resources regardless of type are protected with
773
+ # backup plan associations.
774
+ # Corresponds to the JSON property `gcpBackupConfig`
775
+ # @return [Google::Apis::BackupdrV1::GcpBackupConfig]
776
+ attr_accessor :gcp_backup_config
777
+
778
+ # The `Status` type defines a logical error model that is suitable for different
779
+ # programming environments, including REST APIs and RPC APIs. It is used by [
780
+ # gRPC](https://github.com/grpc). Each `Status` message contains three pieces of
781
+ # data: error code, error message, and error details. You can find out more
782
+ # about this error model and how to work with it in the [API Design Guide](https:
783
+ # //cloud.google.com/apis/design/errors).
784
+ # Corresponds to the JSON property `lastBackupError`
785
+ # @return [Google::Apis::BackupdrV1::Status]
786
+ attr_accessor :last_backup_error
787
+
788
+ # Output only. The status of the last backup to this BackupVault
789
+ # Corresponds to the JSON property `lastBackupState`
790
+ # @return [String]
791
+ attr_accessor :last_backup_state
792
+
793
+ # Output only. If the last backup were successful, this field has the
794
+ # consistency date.
795
+ # Corresponds to the JSON property `lastSuccessfulBackupConsistencyTime`
796
+ # @return [String]
797
+ attr_accessor :last_successful_backup_consistency_time
798
+
799
+ def initialize(**args)
800
+ update!(**args)
801
+ end
802
+
803
+ # Update properties of this object
804
+ def update!(**args)
805
+ @backup_appliance_backup_config = args[:backup_appliance_backup_config] if args.key?(:backup_appliance_backup_config)
806
+ @gcp_backup_config = args[:gcp_backup_config] if args.key?(:gcp_backup_config)
807
+ @last_backup_error = args[:last_backup_error] if args.key?(:last_backup_error)
808
+ @last_backup_state = args[:last_backup_state] if args.key?(:last_backup_state)
809
+ @last_successful_backup_consistency_time = args[:last_successful_backup_consistency_time] if args.key?(:last_successful_backup_consistency_time)
810
+ end
811
+ end
812
+
813
+ # BackupLock represents a single lock on a Backup resource. An unexpired lock on
814
+ # a Backup prevents the Backup from being deleted.
815
+ class BackupLock
816
+ include Google::Apis::Core::Hashable
817
+
818
+ # BackupApplianceLockInfo contains metadata about the backupappliance that
819
+ # created the lock.
820
+ # Corresponds to the JSON property `backupApplianceLockInfo`
821
+ # @return [Google::Apis::BackupdrV1::BackupApplianceLockInfo]
822
+ attr_accessor :backup_appliance_lock_info
823
+
824
+ # Required. The time after which this lock is not considered valid and will no
825
+ # longer protect the Backup from deletion.
826
+ # Corresponds to the JSON property `lockUntilTime`
827
+ # @return [String]
828
+ attr_accessor :lock_until_time
829
+
830
+ # ServiceLockInfo represents the details of a lock taken by the service on a
831
+ # Backup resource.
832
+ # Corresponds to the JSON property `serviceLockInfo`
833
+ # @return [Google::Apis::BackupdrV1::ServiceLockInfo]
834
+ attr_accessor :service_lock_info
835
+
836
+ def initialize(**args)
837
+ update!(**args)
838
+ end
839
+
840
+ # Update properties of this object
841
+ def update!(**args)
842
+ @backup_appliance_lock_info = args[:backup_appliance_lock_info] if args.key?(:backup_appliance_lock_info)
843
+ @lock_until_time = args[:lock_until_time] if args.key?(:lock_until_time)
844
+ @service_lock_info = args[:service_lock_info] if args.key?(:service_lock_info)
845
+ end
846
+ end
847
+
848
+ # A `BackupPlan` specifies some common fields, such as `display_name` as well as
849
+ # one or more `BackupRule` messages. Each `BackupRule` has a retention policy
850
+ # and defines a schedule by which the system is to perform backup workloads.
851
+ class BackupPlan
852
+ include Google::Apis::Core::Hashable
853
+
854
+ # Required. The backup rules for this `BackupPlan`. There must be at least one `
855
+ # BackupRule` message.
856
+ # Corresponds to the JSON property `backupRules`
857
+ # @return [Array<Google::Apis::BackupdrV1::BackupRule>]
858
+ attr_accessor :backup_rules
859
+
860
+ # Required. Resource name of backup vault which will be used as storage location
861
+ # for backups. Format: projects/`project`/locations/`location`/backupVaults/`
862
+ # backupvault`
863
+ # Corresponds to the JSON property `backupVault`
864
+ # @return [String]
865
+ attr_accessor :backup_vault
866
+
867
+ # Output only. The Google Cloud Platform Service Account to be used by the
868
+ # BackupVault for taking backups. Specify the email address of the Backup Vault
869
+ # Service Account.
870
+ # Corresponds to the JSON property `backupVaultServiceAccount`
871
+ # @return [String]
872
+ attr_accessor :backup_vault_service_account
873
+
874
+ # Output only. When the `BackupPlan` was created.
875
+ # Corresponds to the JSON property `createTime`
876
+ # @return [String]
877
+ attr_accessor :create_time
878
+
879
+ # Optional. The description of the `BackupPlan` resource. The description allows
880
+ # for additional details about `BackupPlan` and its use cases to be provided. An
881
+ # example description is the following: "This is a backup plan that performs a
882
+ # daily backup at 6pm and retains data for 3 months". The description must be at
883
+ # most 2048 characters.
884
+ # Corresponds to the JSON property `description`
885
+ # @return [String]
886
+ attr_accessor :description
887
+
888
+ # Optional. `etag` is returned from the service in the response. As a user of
889
+ # the service, you may provide an etag value in this field to prevent stale
890
+ # resources.
891
+ # Corresponds to the JSON property `etag`
892
+ # @return [String]
893
+ attr_accessor :etag
894
+
895
+ # Optional. This collection of key/value pairs allows for custom labels to be
896
+ # supplied by the user. Example, `"tag": "Weekly"`.
897
+ # Corresponds to the JSON property `labels`
898
+ # @return [Hash<String,String>]
899
+ attr_accessor :labels
900
+
901
+ # Output only. Identifier. The resource name of the `BackupPlan`. Format: `
902
+ # projects/`project`/locations/`location`/backupPlans/`backup_plan``
903
+ # Corresponds to the JSON property `name`
904
+ # @return [String]
905
+ attr_accessor :name
906
+
907
+ # Required. The resource type to which the `BackupPlan` will be applied.
908
+ # Examples include, "compute.googleapis.com/Instance" and "storage.googleapis.
909
+ # com/Bucket".
910
+ # Corresponds to the JSON property `resourceType`
911
+ # @return [String]
912
+ attr_accessor :resource_type
913
+
914
+ # Output only. The `State` for the `BackupPlan`.
915
+ # Corresponds to the JSON property `state`
916
+ # @return [String]
917
+ attr_accessor :state
918
+
919
+ # Output only. When the `BackupPlan` was last updated.
920
+ # Corresponds to the JSON property `updateTime`
921
+ # @return [String]
922
+ attr_accessor :update_time
923
+
924
+ def initialize(**args)
925
+ update!(**args)
926
+ end
927
+
928
+ # Update properties of this object
929
+ def update!(**args)
930
+ @backup_rules = args[:backup_rules] if args.key?(:backup_rules)
931
+ @backup_vault = args[:backup_vault] if args.key?(:backup_vault)
932
+ @backup_vault_service_account = args[:backup_vault_service_account] if args.key?(:backup_vault_service_account)
933
+ @create_time = args[:create_time] if args.key?(:create_time)
934
+ @description = args[:description] if args.key?(:description)
935
+ @etag = args[:etag] if args.key?(:etag)
936
+ @labels = args[:labels] if args.key?(:labels)
937
+ @name = args[:name] if args.key?(:name)
938
+ @resource_type = args[:resource_type] if args.key?(:resource_type)
939
+ @state = args[:state] if args.key?(:state)
940
+ @update_time = args[:update_time] if args.key?(:update_time)
941
+ end
942
+ end
943
+
944
+ # A BackupPlanAssociation represents a single BackupPlanAssociation which
945
+ # contains details like workload, backup plan etc
946
+ class BackupPlanAssociation
947
+ include Google::Apis::Core::Hashable
948
+
949
+ # Required. Resource name of backup plan which needs to be applied on workload.
950
+ # Format: projects/`project`/locations/`location`/backupPlans/`backupPlanId`
951
+ # Corresponds to the JSON property `backupPlan`
952
+ # @return [String]
953
+ attr_accessor :backup_plan
954
+
955
+ # Output only. The time when the instance was created.
956
+ # Corresponds to the JSON property `createTime`
957
+ # @return [String]
958
+ attr_accessor :create_time
959
+
960
+ # Output only. Output Only. Resource name of data source which will be used as
961
+ # storage location for backups taken. Format : projects/`project`/locations/`
962
+ # location`/backupVaults/`backupvault`/dataSources/`datasource`
963
+ # Corresponds to the JSON property `dataSource`
964
+ # @return [String]
965
+ attr_accessor :data_source
966
+
967
+ # Output only. Identifier. The resource name of BackupPlanAssociation in below
968
+ # format Format : projects/`project`/locations/`location`/backupPlanAssociations/
969
+ # `backupPlanAssociationId`
970
+ # Corresponds to the JSON property `name`
971
+ # @return [String]
972
+ attr_accessor :name
973
+
974
+ # Required. Immutable. Resource name of workload on which backupplan is applied
975
+ # Corresponds to the JSON property `resource`
976
+ # @return [String]
977
+ attr_accessor :resource
978
+
979
+ # Output only. Output Only. Resource type of workload on which backupplan is
980
+ # applied
981
+ # Corresponds to the JSON property `resourceType`
982
+ # @return [String]
983
+ attr_accessor :resource_type
984
+
985
+ # Output only. The config info related to backup rules.
986
+ # Corresponds to the JSON property `rulesConfigInfo`
987
+ # @return [Array<Google::Apis::BackupdrV1::RuleConfigInfo>]
988
+ attr_accessor :rules_config_info
989
+
990
+ # Output only. The BackupPlanAssociation resource state.
991
+ # Corresponds to the JSON property `state`
992
+ # @return [String]
993
+ attr_accessor :state
994
+
995
+ # Output only. The time when the instance was updated.
996
+ # Corresponds to the JSON property `updateTime`
997
+ # @return [String]
998
+ attr_accessor :update_time
999
+
1000
+ def initialize(**args)
1001
+ update!(**args)
1002
+ end
1003
+
1004
+ # Update properties of this object
1005
+ def update!(**args)
1006
+ @backup_plan = args[:backup_plan] if args.key?(:backup_plan)
1007
+ @create_time = args[:create_time] if args.key?(:create_time)
1008
+ @data_source = args[:data_source] if args.key?(:data_source)
1009
+ @name = args[:name] if args.key?(:name)
1010
+ @resource = args[:resource] if args.key?(:resource)
1011
+ @resource_type = args[:resource_type] if args.key?(:resource_type)
1012
+ @rules_config_info = args[:rules_config_info] if args.key?(:rules_config_info)
1013
+ @state = args[:state] if args.key?(:state)
1014
+ @update_time = args[:update_time] if args.key?(:update_time)
1015
+ end
1016
+ end
1017
+
1018
+ # `BackupRule` binds the backup schedule to a retention policy.
1019
+ class BackupRule
1020
+ include Google::Apis::Core::Hashable
1021
+
1022
+ # Required. Configures the duration for which backup data will be kept. It is
1023
+ # defined in “days”. The value should be greater than or equal to minimum
1024
+ # enforced retention of the backup vault.
1025
+ # Corresponds to the JSON property `backupRetentionDays`
1026
+ # @return [Fixnum]
1027
+ attr_accessor :backup_retention_days
1028
+
1029
+ # Optional. TODO b/341576760: Remove deprecated BV and Datasource field form BP
1030
+ # and BPA once UI removed all dependencies on them Required. Resource name of
1031
+ # backup vault which will be used as storage location for backups. Format:
1032
+ # projects/`project`/locations/`location`/backupVaults/`backupvault`
1033
+ # Corresponds to the JSON property `backupVault`
1034
+ # @return [String]
1035
+ attr_accessor :backup_vault
1036
+
1037
+ # Output only. TODO b/341576760: Remove deprecated BV and Datasource field form
1038
+ # BP and BPA once UI removed all dependencies on them Output only. The Google
1039
+ # Cloud Platform Service Account to be used by the BackupVault for taking
1040
+ # backups. Specify the email address of the Backup Vault Service Account.
1041
+ # Corresponds to the JSON property `backupVaultServiceAccount`
1042
+ # @return [String]
1043
+ attr_accessor :backup_vault_service_account
1044
+
1045
+ # Required. Immutable. The unique id of this `BackupRule`. The `rule_id` is
1046
+ # unique per `BackupPlan`.The `rule_id` must start with a lowercase letter
1047
+ # followed by up to 62 lowercase letters, numbers, or hyphens. Pattern, /a-z`,62`
1048
+ # /.
1049
+ # Corresponds to the JSON property `ruleId`
1050
+ # @return [String]
1051
+ attr_accessor :rule_id
1052
+
1053
+ # `StandardSchedule` defines a schedule that run within the confines of a
1054
+ # defined window of days. We can define recurrence type for schedule as HOURLY,
1055
+ # DAILY, WEEKLY, MONTHLY or YEARLY.
1056
+ # Corresponds to the JSON property `standardSchedule`
1057
+ # @return [Google::Apis::BackupdrV1::StandardSchedule]
1058
+ attr_accessor :standard_schedule
1059
+
1060
+ def initialize(**args)
1061
+ update!(**args)
1062
+ end
1063
+
1064
+ # Update properties of this object
1065
+ def update!(**args)
1066
+ @backup_retention_days = args[:backup_retention_days] if args.key?(:backup_retention_days)
1067
+ @backup_vault = args[:backup_vault] if args.key?(:backup_vault)
1068
+ @backup_vault_service_account = args[:backup_vault_service_account] if args.key?(:backup_vault_service_account)
1069
+ @rule_id = args[:rule_id] if args.key?(:rule_id)
1070
+ @standard_schedule = args[:standard_schedule] if args.key?(:standard_schedule)
1071
+ end
1072
+ end
1073
+
1074
+ # Message describing a BackupVault object.
1075
+ class BackupVault
1076
+ include Google::Apis::Core::Hashable
1077
+
1078
+ # Optional. User annotations. See https://google.aip.dev/128#annotations Stores
1079
+ # small amounts of arbitrary data.
1080
+ # Corresponds to the JSON property `annotations`
1081
+ # @return [Hash<String,String>]
1082
+ attr_accessor :annotations
1083
+
1084
+ # Output only. The number of backups in this backup vault.
1085
+ # Corresponds to the JSON property `backupCount`
1086
+ # @return [Fixnum]
1087
+ attr_accessor :backup_count
1088
+
1089
+ # Required. The default and minimum enforced retention for each backup within
1090
+ # the backup vault. The enforced retention for each backup can be extended.
1091
+ # Corresponds to the JSON property `backupMinimumEnforcedRetentionDuration`
1092
+ # @return [String]
1093
+ attr_accessor :backup_minimum_enforced_retention_duration
1094
+
1095
+ # Output only. The time when the instance was created.
1096
+ # Corresponds to the JSON property `createTime`
1097
+ # @return [String]
1098
+ attr_accessor :create_time
1099
+
1100
+ # Output only. Set to true when there are no backups nested under this resource.
1101
+ # Corresponds to the JSON property `deletable`
1102
+ # @return [Boolean]
1103
+ attr_accessor :deletable
1104
+ alias_method :deletable?, :deletable
1105
+
1106
+ # Optional. The description of the BackupVault instance (2048 characters or less)
1107
+ # .
1108
+ # Corresponds to the JSON property `description`
1109
+ # @return [String]
1110
+ attr_accessor :description
1111
+
1112
+ # Optional. Time after which the BackupVault resource is locked.
1113
+ # Corresponds to the JSON property `effectiveTime`
1114
+ # @return [String]
1115
+ attr_accessor :effective_time
1116
+
1117
+ # Required. The default retention period for each backup in the backup vault (
1118
+ # Deprecated).
1119
+ # Corresponds to the JSON property `enforcedRetentionDuration`
1120
+ # @return [String]
1121
+ attr_accessor :enforced_retention_duration
1122
+
1123
+ # Optional. Server specified ETag for the backup vault resource to prevent
1124
+ # simultaneous updates from overwiting each other.
1125
+ # Corresponds to the JSON property `etag`
1126
+ # @return [String]
1127
+ attr_accessor :etag
1128
+
1129
+ # Optional. Resource labels to represent user provided metadata. No labels
1130
+ # currently defined:
1131
+ # Corresponds to the JSON property `labels`
1132
+ # @return [Hash<String,String>]
1133
+ attr_accessor :labels
1134
+
1135
+ # Output only. Identifier. The resource name.
1136
+ # Corresponds to the JSON property `name`
1137
+ # @return [String]
1138
+ attr_accessor :name
1139
+
1140
+ # Output only. Service account used by the BackupVault Service for this
1141
+ # BackupVault. The user should grant this account permissions in their workload
1142
+ # project to enable the service to run backups and restores there.
1143
+ # Corresponds to the JSON property `serviceAccount`
1144
+ # @return [String]
1145
+ attr_accessor :service_account
1146
+
1147
+ # Output only. The BackupVault resource instance state.
1148
+ # Corresponds to the JSON property `state`
1149
+ # @return [String]
1150
+ attr_accessor :state
1151
+
1152
+ # Output only. Total size of the storage used by all backup resources.
1153
+ # Corresponds to the JSON property `totalStoredBytes`
1154
+ # @return [Fixnum]
1155
+ attr_accessor :total_stored_bytes
1156
+
1157
+ # Output only. Output only Immutable after resource creation until resource
1158
+ # deletion.
1159
+ # Corresponds to the JSON property `uid`
1160
+ # @return [String]
1161
+ attr_accessor :uid
1162
+
1163
+ # Output only. The time when the instance was updated.
1164
+ # Corresponds to the JSON property `updateTime`
1165
+ # @return [String]
1166
+ attr_accessor :update_time
1167
+
1168
+ def initialize(**args)
1169
+ update!(**args)
1170
+ end
1171
+
1172
+ # Update properties of this object
1173
+ def update!(**args)
1174
+ @annotations = args[:annotations] if args.key?(:annotations)
1175
+ @backup_count = args[:backup_count] if args.key?(:backup_count)
1176
+ @backup_minimum_enforced_retention_duration = args[:backup_minimum_enforced_retention_duration] if args.key?(:backup_minimum_enforced_retention_duration)
1177
+ @create_time = args[:create_time] if args.key?(:create_time)
1178
+ @deletable = args[:deletable] if args.key?(:deletable)
1179
+ @description = args[:description] if args.key?(:description)
1180
+ @effective_time = args[:effective_time] if args.key?(:effective_time)
1181
+ @enforced_retention_duration = args[:enforced_retention_duration] if args.key?(:enforced_retention_duration)
1182
+ @etag = args[:etag] if args.key?(:etag)
1183
+ @labels = args[:labels] if args.key?(:labels)
1184
+ @name = args[:name] if args.key?(:name)
1185
+ @service_account = args[:service_account] if args.key?(:service_account)
1186
+ @state = args[:state] if args.key?(:state)
1187
+ @total_stored_bytes = args[:total_stored_bytes] if args.key?(:total_stored_bytes)
1188
+ @uid = args[:uid] if args.key?(:uid)
1189
+ @update_time = args[:update_time] if args.key?(:update_time)
1190
+ end
1191
+ end
1192
+
1193
+ # `BackupWindow` defines a window of the day during which backup jobs will run.
1194
+ class BackupWindow
1195
+ include Google::Apis::Core::Hashable
1196
+
1197
+ # Required. The hour of day (1-24) when the window end for e.g. if value of end
1198
+ # hour of day is 10 that mean backup window end time is 10:00. End hour of day
1199
+ # should be greater than start hour of day. 0 <= start_hour_of_day <
1200
+ # end_hour_of_day <= 24 End hour of day is not include in backup window that
1201
+ # mean if end_hour_of_day= 10 jobs should start before 10:00.
1202
+ # Corresponds to the JSON property `endHourOfDay`
1203
+ # @return [Fixnum]
1204
+ attr_accessor :end_hour_of_day
1205
+
1206
+ # Required. The hour of day (0-23) when the window starts for e.g. if value of
1207
+ # start hour of day is 6 that mean backup window start at 6:00.
1208
+ # Corresponds to the JSON property `startHourOfDay`
1209
+ # @return [Fixnum]
1210
+ attr_accessor :start_hour_of_day
1211
+
1212
+ def initialize(**args)
1213
+ update!(**args)
1214
+ end
1215
+
1216
+ # Update properties of this object
1217
+ def update!(**args)
1218
+ @end_hour_of_day = args[:end_hour_of_day] if args.key?(:end_hour_of_day)
1219
+ @start_hour_of_day = args[:start_hour_of_day] if args.key?(:start_hour_of_day)
1220
+ end
1221
+ end
1222
+
1223
+ # Associates `members`, or principals, with a `role`.
1224
+ class Binding
1225
+ include Google::Apis::Core::Hashable
1226
+
1227
+ # Represents a textual expression in the Common Expression Language (CEL) syntax.
1228
+ # CEL is a C-like expression language. The syntax and semantics of CEL are
1229
+ # documented at https://github.com/google/cel-spec. Example (Comparison): title:
1230
+ # "Summary size limit" description: "Determines if a summary is less than 100
1231
+ # chars" expression: "document.summary.size() < 100" Example (Equality): title: "
1232
+ # Requestor is owner" description: "Determines if requestor is the document
1233
+ # owner" expression: "document.owner == request.auth.claims.email" Example (
1234
+ # Logic): title: "Public documents" description: "Determine whether the document
1235
+ # should be publicly visible" expression: "document.type != 'private' &&
1236
+ # document.type != 'internal'" Example (Data Manipulation): title: "Notification
1237
+ # string" description: "Create a notification string with a timestamp."
1238
+ # expression: "'New message received at ' + string(document.create_time)" The
1239
+ # exact variables and functions that may be referenced within an expression are
1240
+ # determined by the service that evaluates it. See the service documentation for
1241
+ # additional information.
1242
+ # Corresponds to the JSON property `condition`
1243
+ # @return [Google::Apis::BackupdrV1::Expr]
1244
+ attr_accessor :condition
1245
+
1246
+ # Specifies the principals requesting access for a Google Cloud resource. `
1247
+ # members` can have the following values: * `allUsers`: A special identifier
1248
+ # that represents anyone who is on the internet; with or without a Google
1249
+ # account. * `allAuthenticatedUsers`: A special identifier that represents
1250
+ # anyone who is authenticated with a Google account or a service account. Does
1251
+ # not include identities that come from external identity providers (IdPs)
1252
+ # through identity federation. * `user:`emailid``: An email address that
1253
+ # represents a specific Google account. For example, `alice@example.com` . * `
1254
+ # serviceAccount:`emailid``: An email address that represents a Google service
1255
+ # account. For example, `my-other-app@appspot.gserviceaccount.com`. * `
1256
+ # serviceAccount:`projectid`.svc.id.goog[`namespace`/`kubernetes-sa`]`: An
1257
+ # identifier for a [Kubernetes service account](https://cloud.google.com/
1258
+ # kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-
1259
+ # project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:`emailid``: An
1260
+ # email address that represents a Google group. For example, `admins@example.com`
1261
+ # . * `domain:`domain``: The G Suite domain (primary) that represents all the
1262
+ # users of that domain. For example, `google.com` or `example.com`. * `principal:
1263
+ # //iam.googleapis.com/locations/global/workforcePools/`pool_id`/subject/`
1264
+ # subject_attribute_value``: A single identity in a workforce identity pool. * `
1265
+ # principalSet://iam.googleapis.com/locations/global/workforcePools/`pool_id`/
1266
+ # group/`group_id``: All workforce identities in a group. * `principalSet://iam.
1267
+ # googleapis.com/locations/global/workforcePools/`pool_id`/attribute.`
1268
+ # attribute_name`/`attribute_value``: All workforce identities with a specific
1269
+ # attribute value. * `principalSet://iam.googleapis.com/locations/global/
1270
+ # workforcePools/`pool_id`/*`: All identities in a workforce identity pool. * `
1271
+ # principal://iam.googleapis.com/projects/`project_number`/locations/global/
1272
+ # workloadIdentityPools/`pool_id`/subject/`subject_attribute_value``: A single
1273
+ # identity in a workload identity pool. * `principalSet://iam.googleapis.com/
1274
+ # projects/`project_number`/locations/global/workloadIdentityPools/`pool_id`/
1275
+ # group/`group_id``: A workload identity pool group. * `principalSet://iam.
1276
+ # googleapis.com/projects/`project_number`/locations/global/
1277
+ # workloadIdentityPools/`pool_id`/attribute.`attribute_name`/`attribute_value``:
1278
+ # All identities in a workload identity pool with a certain attribute. * `
1279
+ # principalSet://iam.googleapis.com/projects/`project_number`/locations/global/
1280
+ # workloadIdentityPools/`pool_id`/*`: All identities in a workload identity pool.
1281
+ # * `deleted:user:`emailid`?uid=`uniqueid``: An email address (plus unique
1282
+ # identifier) representing a user that has been recently deleted. For example, `
1283
+ # alice@example.com?uid=123456789012345678901`. If the user is recovered, this
1284
+ # value reverts to `user:`emailid`` and the recovered user retains the role in
1285
+ # the binding. * `deleted:serviceAccount:`emailid`?uid=`uniqueid``: An email
1286
+ # address (plus unique identifier) representing a service account that has been
1287
+ # recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=
1288
+ # 123456789012345678901`. If the service account is undeleted, this value
1289
+ # reverts to `serviceAccount:`emailid`` and the undeleted service account
1290
+ # retains the role in the binding. * `deleted:group:`emailid`?uid=`uniqueid``:
1291
+ # An email address (plus unique identifier) representing a Google group that has
1292
+ # been recently deleted. For example, `admins@example.com?uid=
1293
+ # 123456789012345678901`. If the group is recovered, this value reverts to `
1294
+ # group:`emailid`` and the recovered group retains the role in the binding. * `
1295
+ # deleted:principal://iam.googleapis.com/locations/global/workforcePools/`
1296
+ # pool_id`/subject/`subject_attribute_value``: Deleted single identity in a
1297
+ # workforce identity pool. For example, `deleted:principal://iam.googleapis.com/
1298
+ # locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value`.
1299
+ # Corresponds to the JSON property `members`
1300
+ # @return [Array<String>]
1301
+ attr_accessor :members
1302
+
1303
+ # Role that is assigned to the list of `members`, or principals. For example, `
1304
+ # roles/viewer`, `roles/editor`, or `roles/owner`. For an overview of the IAM
1305
+ # roles and permissions, see the [IAM documentation](https://cloud.google.com/
1306
+ # iam/docs/roles-overview). For a list of the available pre-defined roles, see [
1307
+ # here](https://cloud.google.com/iam/docs/understanding-roles).
1308
+ # Corresponds to the JSON property `role`
1309
+ # @return [String]
1310
+ attr_accessor :role
1311
+
1312
+ def initialize(**args)
1313
+ update!(**args)
1314
+ end
1315
+
1316
+ # Update properties of this object
1317
+ def update!(**args)
1318
+ @condition = args[:condition] if args.key?(:condition)
1319
+ @members = args[:members] if args.key?(:members)
1320
+ @role = args[:role] if args.key?(:role)
1321
+ end
1322
+ end
1323
+
1324
+ # Policy ID that identified data placement in Blobstore as per go/blobstore-user-
1325
+ # guide#data-metadata-placement-and-failure-domains
1326
+ class BlobstoreLocation
1327
+ include Google::Apis::Core::Hashable
1328
+
1329
+ #
1330
+ # Corresponds to the JSON property `policyId`
1331
+ # @return [Array<String>]
1332
+ attr_accessor :policy_id
1333
+
1334
+ def initialize(**args)
1335
+ update!(**args)
1336
+ end
1337
+
1338
+ # Update properties of this object
1339
+ def update!(**args)
1340
+ @policy_id = args[:policy_id] if args.key?(:policy_id)
1341
+ end
1342
+ end
1343
+
1344
+ # The request message for Operations.CancelOperation.
1345
+ class CancelOperationRequest
1346
+ include Google::Apis::Core::Hashable
1347
+
1348
+ def initialize(**args)
1349
+ update!(**args)
1350
+ end
1351
+
1352
+ # Update properties of this object
1353
+ def update!(**args)
1354
+ end
1355
+ end
1356
+
1357
+ #
1358
+ class CloudAsset
1359
+ include Google::Apis::Core::Hashable
1360
+
1361
+ #
1362
+ # Corresponds to the JSON property `assetName`
1363
+ # @return [String]
1364
+ attr_accessor :asset_name
1365
+
1366
+ #
1367
+ # Corresponds to the JSON property `assetType`
1368
+ # @return [String]
1369
+ attr_accessor :asset_type
1370
+
1371
+ def initialize(**args)
1372
+ update!(**args)
1373
+ end
1374
+
1375
+ # Update properties of this object
1376
+ def update!(**args)
1377
+ @asset_name = args[:asset_name] if args.key?(:asset_name)
1378
+ @asset_type = args[:asset_type] if args.key?(:asset_type)
1379
+ end
1380
+ end
1381
+
1382
+ #
1383
+ class CloudAssetComposition
1384
+ include Google::Apis::Core::Hashable
1385
+
1386
+ #
1387
+ # Corresponds to the JSON property `childAsset`
1388
+ # @return [Array<Google::Apis::BackupdrV1::CloudAsset>]
1389
+ attr_accessor :child_asset
1390
+
1391
+ def initialize(**args)
1392
+ update!(**args)
1393
+ end
1394
+
1395
+ # Update properties of this object
1396
+ def update!(**args)
1397
+ @child_asset = args[:child_asset] if args.key?(:child_asset)
1398
+ end
1399
+ end
1400
+
1401
+ # ComputeInstanceBackupProperties represents Compute Engine instance backup
1402
+ # properties.
1403
+ class ComputeInstanceBackupProperties
1404
+ include Google::Apis::Core::Hashable
1405
+
1406
+ # Enables instances created based on these properties to send packets with
1407
+ # source IP addresses other than their own and receive packets with destination
1408
+ # IP addresses other than their own. If these instances will be used as an IP
1409
+ # gateway or it will be set as the next-hop in a Route resource, specify `true`.
1410
+ # If unsure, leave this set to `false`. See the https://cloud.google.com/vpc/
1411
+ # docs/using-routes#canipforward documentation for more information.
1412
+ # Corresponds to the JSON property `canIpForward`
1413
+ # @return [Boolean]
1414
+ attr_accessor :can_ip_forward
1415
+ alias_method :can_ip_forward?, :can_ip_forward
1416
+
1417
+ # An optional text description for the instances that are created from these
1418
+ # properties.
1419
+ # Corresponds to the JSON property `description`
1420
+ # @return [String]
1421
+ attr_accessor :description
1422
+
1423
+ # An array of disks that are associated with the instances that are created from
1424
+ # these properties.
1425
+ # Corresponds to the JSON property `disk`
1426
+ # @return [Array<Google::Apis::BackupdrV1::AttachedDisk>]
1427
+ attr_accessor :disk
1428
+
1429
+ # A list of guest accelerator cards' type and count to use for instances created
1430
+ # from these properties.
1431
+ # Corresponds to the JSON property `guestAccelerator`
1432
+ # @return [Array<Google::Apis::BackupdrV1::AcceleratorConfig>]
1433
+ attr_accessor :guest_accelerator
1434
+
1435
+ # KeyRevocationActionType of the instance. Supported options are "STOP" and "
1436
+ # NONE". The default value is "NONE" if it is not specified.
1437
+ # Corresponds to the JSON property `keyRevocationActionType`
1438
+ # @return [String]
1439
+ attr_accessor :key_revocation_action_type
1440
+
1441
+ # The machine type to use for instances that are created from these properties.
1442
+ # Corresponds to the JSON property `machineType`
1443
+ # @return [String]
1444
+ attr_accessor :machine_type
1445
+
1446
+ # A metadata key/value entry.
1447
+ # Corresponds to the JSON property `metadata`
1448
+ # @return [Google::Apis::BackupdrV1::Metadata]
1449
+ attr_accessor :metadata
1450
+
1451
+ # Minimum cpu/platform to be used by instances. The instance may be scheduled on
1452
+ # the specified or newer cpu/platform. Applicable values are the friendly names
1453
+ # of CPU platforms, such as `minCpuPlatform: Intel Haswell` or `minCpuPlatform:
1454
+ # Intel Sandy Bridge`. For more information, read https://cloud.google.com/
1455
+ # compute/docs/instances/specify-min-cpu-platform.
1456
+ # Corresponds to the JSON property `minCpuPlatform`
1457
+ # @return [String]
1458
+ attr_accessor :min_cpu_platform
1459
+
1460
+ # An array of network access configurations for this interface.
1461
+ # Corresponds to the JSON property `networkInterface`
1462
+ # @return [Array<Google::Apis::BackupdrV1::NetworkInterface>]
1463
+ attr_accessor :network_interface
1464
+
1465
+ # Sets the scheduling options for an Instance.
1466
+ # Corresponds to the JSON property `scheduling`
1467
+ # @return [Google::Apis::BackupdrV1::Scheduling]
1468
+ attr_accessor :scheduling
1469
+
1470
+ # A list of service accounts with specified scopes. Access tokens for these
1471
+ # service accounts are available to the instances that are created from these
1472
+ # properties. Use metadata queries to obtain the access tokens for these
1473
+ # instances.
1474
+ # Corresponds to the JSON property `serviceAccount`
1475
+ # @return [Array<Google::Apis::BackupdrV1::ServiceAccount>]
1476
+ attr_accessor :service_account
1477
+
1478
+ # The source instance used to create this backup. This can be a partial or full
1479
+ # URL to the resource. For example, the following are valid values: -https://www.
1480
+ # googleapis.com/compute/v1/projects/project/zones/zone/instances/instance -
1481
+ # projects/project/zones/zone/instances/instance
1482
+ # Corresponds to the JSON property `sourceInstance`
1483
+ # @return [String]
1484
+ attr_accessor :source_instance
1485
+
1486
+ # A set of instance tags.
1487
+ # Corresponds to the JSON property `tags`
1488
+ # @return [Google::Apis::BackupdrV1::Tags]
1489
+ attr_accessor :tags
1490
+
1491
+ def initialize(**args)
1492
+ update!(**args)
1493
+ end
1494
+
1495
+ # Update properties of this object
1496
+ def update!(**args)
1497
+ @can_ip_forward = args[:can_ip_forward] if args.key?(:can_ip_forward)
1498
+ @description = args[:description] if args.key?(:description)
1499
+ @disk = args[:disk] if args.key?(:disk)
1500
+ @guest_accelerator = args[:guest_accelerator] if args.key?(:guest_accelerator)
1501
+ @key_revocation_action_type = args[:key_revocation_action_type] if args.key?(:key_revocation_action_type)
1502
+ @machine_type = args[:machine_type] if args.key?(:machine_type)
1503
+ @metadata = args[:metadata] if args.key?(:metadata)
1504
+ @min_cpu_platform = args[:min_cpu_platform] if args.key?(:min_cpu_platform)
1505
+ @network_interface = args[:network_interface] if args.key?(:network_interface)
1506
+ @scheduling = args[:scheduling] if args.key?(:scheduling)
1507
+ @service_account = args[:service_account] if args.key?(:service_account)
1508
+ @source_instance = args[:source_instance] if args.key?(:source_instance)
1509
+ @tags = args[:tags] if args.key?(:tags)
1510
+ end
1511
+ end
1512
+
1513
+ # ComputeInstanceDataSourceProperties represents the properties of a
1514
+ # ComputeEngine resource that are stored in the DataSource.
1515
+ class ComputeInstanceDataSourceProperties
1516
+ include Google::Apis::Core::Hashable
1517
+
1518
+ # The description of the Compute Engine instance.
1519
+ # Corresponds to the JSON property `description`
1520
+ # @return [String]
1521
+ attr_accessor :description
1522
+
1523
+ # The machine type of the instance.
1524
+ # Corresponds to the JSON property `machineType`
1525
+ # @return [String]
1526
+ attr_accessor :machine_type
1527
+
1528
+ # Name of the compute instance backed up by the datasource.
1529
+ # Corresponds to the JSON property `name`
1530
+ # @return [String]
1531
+ attr_accessor :name
1532
+
1533
+ # The total number of disks attached to the Instance.
1534
+ # Corresponds to the JSON property `totalDiskCount`
1535
+ # @return [Fixnum]
1536
+ attr_accessor :total_disk_count
1537
+
1538
+ # The sum of all the disk sizes.
1539
+ # Corresponds to the JSON property `totalDiskSizeGb`
1540
+ # @return [Fixnum]
1541
+ attr_accessor :total_disk_size_gb
1542
+
1543
+ def initialize(**args)
1544
+ update!(**args)
1545
+ end
1546
+
1547
+ # Update properties of this object
1548
+ def update!(**args)
1549
+ @description = args[:description] if args.key?(:description)
1550
+ @machine_type = args[:machine_type] if args.key?(:machine_type)
1551
+ @name = args[:name] if args.key?(:name)
1552
+ @total_disk_count = args[:total_disk_count] if args.key?(:total_disk_count)
1553
+ @total_disk_size_gb = args[:total_disk_size_gb] if args.key?(:total_disk_size_gb)
1554
+ end
1555
+ end
1556
+
1557
+ # ComputeInstanceRestoreProperties represents Compute Engine instance properties
1558
+ # to be overridden during restore.
1559
+ class ComputeInstanceRestoreProperties
1560
+ include Google::Apis::Core::Hashable
1561
+
1562
+ # Specifies options for controlling advanced machine features.
1563
+ # Corresponds to the JSON property `advancedMachineFeatures`
1564
+ # @return [Google::Apis::BackupdrV1::AdvancedMachineFeatures]
1565
+ attr_accessor :advanced_machine_features
1566
+
1567
+ # Optional. Allows this instance to send and receive packets with non-matching
1568
+ # destination or source IPs.
1569
+ # Corresponds to the JSON property `canIpForward`
1570
+ # @return [Boolean]
1571
+ attr_accessor :can_ip_forward
1572
+ alias_method :can_ip_forward?, :can_ip_forward
1573
+
1574
+ # A set of Confidential Instance options.
1575
+ # Corresponds to the JSON property `confidentialInstanceConfig`
1576
+ # @return [Google::Apis::BackupdrV1::ConfidentialInstanceConfig]
1577
+ attr_accessor :confidential_instance_config
1578
+
1579
+ # Optional. Whether the resource should be protected against deletion.
1580
+ # Corresponds to the JSON property `deletionProtection`
1581
+ # @return [Boolean]
1582
+ attr_accessor :deletion_protection
1583
+ alias_method :deletion_protection?, :deletion_protection
1584
+
1585
+ # Optional. An optional description of this resource. Provide this property when
1586
+ # you create the resource.
1587
+ # Corresponds to the JSON property `description`
1588
+ # @return [String]
1589
+ attr_accessor :description
1590
+
1591
+ # Optional. Array of disks associated with this instance. Persistent disks must
1592
+ # be created before you can assign them.
1593
+ # Corresponds to the JSON property `disks`
1594
+ # @return [Array<Google::Apis::BackupdrV1::AttachedDisk>]
1595
+ attr_accessor :disks
1596
+
1597
+ # A set of Display Device options
1598
+ # Corresponds to the JSON property `displayDevice`
1599
+ # @return [Google::Apis::BackupdrV1::DisplayDevice]
1600
+ attr_accessor :display_device
1601
+
1602
+ # Optional. A list of the type and count of accelerator cards attached to the
1603
+ # instance.
1604
+ # Corresponds to the JSON property `guestAccelerators`
1605
+ # @return [Array<Google::Apis::BackupdrV1::AcceleratorConfig>]
1606
+ attr_accessor :guest_accelerators
1607
+
1608
+ # Optional. Specifies the hostname of the instance. The specified hostname must
1609
+ # be RFC1035 compliant. If hostname is not specified, the default hostname is [
1610
+ # INSTANCE_NAME].c.[PROJECT_ID].internal when using the global DNS, and [
1611
+ # INSTANCE_NAME].[ZONE].c.[PROJECT_ID].internal when using zonal DNS.
1612
+ # Corresponds to the JSON property `hostname`
1613
+ # @return [String]
1614
+ attr_accessor :hostname
1615
+
1616
+ # A customer-supplied encryption key.
1617
+ # Corresponds to the JSON property `instanceEncryptionKey`
1618
+ # @return [Google::Apis::BackupdrV1::CustomerEncryptionKey]
1619
+ attr_accessor :instance_encryption_key
1620
+
1621
+ # Optional. KeyRevocationActionType of the instance.
1622
+ # Corresponds to the JSON property `keyRevocationActionType`
1623
+ # @return [String]
1624
+ attr_accessor :key_revocation_action_type
1625
+
1626
+ # Optional. Labels to apply to this instance.
1627
+ # Corresponds to the JSON property `labels`
1628
+ # @return [Hash<String,String>]
1629
+ attr_accessor :labels
1630
+
1631
+ # Optional. Full or partial URL of the machine type resource to use for this
1632
+ # instance.
1633
+ # Corresponds to the JSON property `machineType`
1634
+ # @return [String]
1635
+ attr_accessor :machine_type
1636
+
1637
+ # A metadata key/value entry.
1638
+ # Corresponds to the JSON property `metadata`
1639
+ # @return [Google::Apis::BackupdrV1::Metadata]
1640
+ attr_accessor :metadata
1641
+
1642
+ # Optional. Minimum CPU platform to use for this instance.
1643
+ # Corresponds to the JSON property `minCpuPlatform`
1644
+ # @return [String]
1645
+ attr_accessor :min_cpu_platform
1646
+
1647
+ # Required. Name of the compute instance.
1648
+ # Corresponds to the JSON property `name`
1649
+ # @return [String]
1650
+ attr_accessor :name
1651
+
1652
+ # Optional. An array of network configurations for this instance. These specify
1653
+ # how interfaces are configured to interact with other network services, such as
1654
+ # connecting to the internet. Multiple interfaces are supported per instance.
1655
+ # Corresponds to the JSON property `networkInterfaces`
1656
+ # @return [Array<Google::Apis::BackupdrV1::NetworkInterface>]
1657
+ attr_accessor :network_interfaces
1658
+
1659
+ # Network performance configuration.
1660
+ # Corresponds to the JSON property `networkPerformanceConfig`
1661
+ # @return [Google::Apis::BackupdrV1::NetworkPerformanceConfig]
1662
+ attr_accessor :network_performance_config
1663
+
1664
+ # Additional instance params.
1665
+ # Corresponds to the JSON property `params`
1666
+ # @return [Google::Apis::BackupdrV1::InstanceParams]
1667
+ attr_accessor :params
1668
+
1669
+ # Optional. The private IPv6 google access type for the VM. If not specified,
1670
+ # use INHERIT_FROM_SUBNETWORK as default.
1671
+ # Corresponds to the JSON property `privateIpv6GoogleAccess`
1672
+ # @return [String]
1673
+ attr_accessor :private_ipv6_google_access
1674
+
1675
+ # Specifies the reservations that this instance can consume from.
1676
+ # Corresponds to the JSON property `reservationAffinity`
1677
+ # @return [Google::Apis::BackupdrV1::AllocationAffinity]
1678
+ attr_accessor :reservation_affinity
1679
+
1680
+ # Optional. Resource policies applied to this instance.
1681
+ # Corresponds to the JSON property `resourcePolicies`
1682
+ # @return [Array<String>]
1683
+ attr_accessor :resource_policies
1684
+
1685
+ # Sets the scheduling options for an Instance.
1686
+ # Corresponds to the JSON property `scheduling`
1687
+ # @return [Google::Apis::BackupdrV1::Scheduling]
1688
+ attr_accessor :scheduling
1689
+
1690
+ # Optional. A list of service accounts, with their specified scopes, authorized
1691
+ # for this instance. Only one service account per VM instance is supported.
1692
+ # Corresponds to the JSON property `serviceAccounts`
1693
+ # @return [Array<Google::Apis::BackupdrV1::ServiceAccount>]
1694
+ attr_accessor :service_accounts
1695
+
1696
+ # A set of instance tags.
1697
+ # Corresponds to the JSON property `tags`
1698
+ # @return [Google::Apis::BackupdrV1::Tags]
1699
+ attr_accessor :tags
1700
+
1701
+ def initialize(**args)
1702
+ update!(**args)
1703
+ end
1704
+
1705
+ # Update properties of this object
1706
+ def update!(**args)
1707
+ @advanced_machine_features = args[:advanced_machine_features] if args.key?(:advanced_machine_features)
1708
+ @can_ip_forward = args[:can_ip_forward] if args.key?(:can_ip_forward)
1709
+ @confidential_instance_config = args[:confidential_instance_config] if args.key?(:confidential_instance_config)
1710
+ @deletion_protection = args[:deletion_protection] if args.key?(:deletion_protection)
1711
+ @description = args[:description] if args.key?(:description)
1712
+ @disks = args[:disks] if args.key?(:disks)
1713
+ @display_device = args[:display_device] if args.key?(:display_device)
1714
+ @guest_accelerators = args[:guest_accelerators] if args.key?(:guest_accelerators)
1715
+ @hostname = args[:hostname] if args.key?(:hostname)
1716
+ @instance_encryption_key = args[:instance_encryption_key] if args.key?(:instance_encryption_key)
1717
+ @key_revocation_action_type = args[:key_revocation_action_type] if args.key?(:key_revocation_action_type)
1718
+ @labels = args[:labels] if args.key?(:labels)
1719
+ @machine_type = args[:machine_type] if args.key?(:machine_type)
1720
+ @metadata = args[:metadata] if args.key?(:metadata)
1721
+ @min_cpu_platform = args[:min_cpu_platform] if args.key?(:min_cpu_platform)
1722
+ @name = args[:name] if args.key?(:name)
1723
+ @network_interfaces = args[:network_interfaces] if args.key?(:network_interfaces)
1724
+ @network_performance_config = args[:network_performance_config] if args.key?(:network_performance_config)
1725
+ @params = args[:params] if args.key?(:params)
1726
+ @private_ipv6_google_access = args[:private_ipv6_google_access] if args.key?(:private_ipv6_google_access)
1727
+ @reservation_affinity = args[:reservation_affinity] if args.key?(:reservation_affinity)
1728
+ @resource_policies = args[:resource_policies] if args.key?(:resource_policies)
1729
+ @scheduling = args[:scheduling] if args.key?(:scheduling)
1730
+ @service_accounts = args[:service_accounts] if args.key?(:service_accounts)
1731
+ @tags = args[:tags] if args.key?(:tags)
1732
+ end
1733
+ end
1734
+
1735
+ # ComputeInstanceTargetEnvironment represents Compute Engine target environment
1736
+ # to be used during restore.
1737
+ class ComputeInstanceTargetEnvironment
1738
+ include Google::Apis::Core::Hashable
1739
+
1740
+ # Required. Target project for the Compute Engine instance.
1741
+ # Corresponds to the JSON property `project`
1742
+ # @return [String]
1743
+ attr_accessor :project
1744
+
1745
+ # Required. The zone of the Compute Engine instance.
1746
+ # Corresponds to the JSON property `zone`
1747
+ # @return [String]
1748
+ attr_accessor :zone
1749
+
1750
+ def initialize(**args)
1751
+ update!(**args)
1752
+ end
1753
+
1754
+ # Update properties of this object
1755
+ def update!(**args)
1756
+ @project = args[:project] if args.key?(:project)
1757
+ @zone = args[:zone] if args.key?(:zone)
1758
+ end
1759
+ end
1760
+
1761
+ # A set of Confidential Instance options.
1762
+ class ConfidentialInstanceConfig
1763
+ include Google::Apis::Core::Hashable
1764
+
1765
+ # Optional. Defines whether the instance should have confidential compute
1766
+ # enabled.
1767
+ # Corresponds to the JSON property `enableConfidentialCompute`
1768
+ # @return [Boolean]
1769
+ attr_accessor :enable_confidential_compute
1770
+ alias_method :enable_confidential_compute?, :enable_confidential_compute
1771
+
1772
+ def initialize(**args)
1773
+ update!(**args)
1774
+ end
1775
+
1776
+ # Update properties of this object
1777
+ def update!(**args)
1778
+ @enable_confidential_compute = args[:enable_confidential_compute] if args.key?(:enable_confidential_compute)
1779
+ end
1780
+ end
1781
+
1782
+ # A customer-supplied encryption key.
1783
+ class CustomerEncryptionKey
1784
+ include Google::Apis::Core::Hashable
1785
+
1786
+ # Optional. The name of the encryption key that is stored in Google Cloud KMS.
1787
+ # Corresponds to the JSON property `kmsKeyName`
1788
+ # @return [String]
1789
+ attr_accessor :kms_key_name
1790
+
1791
+ # Optional. The service account being used for the encryption request for the
1792
+ # given KMS key. If absent, the Compute Engine default service account is used.
1793
+ # Corresponds to the JSON property `kmsKeyServiceAccount`
1794
+ # @return [String]
1795
+ attr_accessor :kms_key_service_account
1796
+
1797
+ # Optional. Specifies a 256-bit customer-supplied encryption key.
1798
+ # Corresponds to the JSON property `rawKey`
1799
+ # @return [String]
1800
+ attr_accessor :raw_key
1801
+
1802
+ # Optional. RSA-wrapped 2048-bit customer-supplied encryption key to either
1803
+ # encrypt or decrypt this resource.
1804
+ # Corresponds to the JSON property `rsaEncryptedKey`
1805
+ # @return [String]
1806
+ attr_accessor :rsa_encrypted_key
1807
+
1808
+ def initialize(**args)
1809
+ update!(**args)
1810
+ end
1811
+
1812
+ # Update properties of this object
1813
+ def update!(**args)
1814
+ @kms_key_name = args[:kms_key_name] if args.key?(:kms_key_name)
1815
+ @kms_key_service_account = args[:kms_key_service_account] if args.key?(:kms_key_service_account)
1816
+ @raw_key = args[:raw_key] if args.key?(:raw_key)
1817
+ @rsa_encrypted_key = args[:rsa_encrypted_key] if args.key?(:rsa_encrypted_key)
1818
+ end
1819
+ end
1820
+
1821
+ # Message describing a DataSource object. Datasource object used to represent
1822
+ # Datasource details for both admin and basic view.
1823
+ class DataSource
1824
+ include Google::Apis::Core::Hashable
1825
+
1826
+ # BackupConfigInfo has information about how the resource is configured for
1827
+ # Backup and about the most recent backup to this vault.
1828
+ # Corresponds to the JSON property `backupConfigInfo`
1829
+ # @return [Google::Apis::BackupdrV1::BackupConfigInfo]
1830
+ attr_accessor :backup_config_info
1831
+
1832
+ # Number of backups in the data source.
1833
+ # Corresponds to the JSON property `backupCount`
1834
+ # @return [Fixnum]
1835
+ attr_accessor :backup_count
1836
+
1837
+ # Output only. The backup configuration state.
1838
+ # Corresponds to the JSON property `configState`
1839
+ # @return [String]
1840
+ attr_accessor :config_state
1841
+
1842
+ # Output only. The time when the instance was created.
1843
+ # Corresponds to the JSON property `createTime`
1844
+ # @return [String]
1845
+ attr_accessor :create_time
1846
+
1847
+ # BackupApplianceApplication describes a Source Resource when it is an
1848
+ # application backed up by a BackupAppliance.
1849
+ # Corresponds to the JSON property `dataSourceBackupApplianceApplication`
1850
+ # @return [Google::Apis::BackupdrV1::DataSourceBackupApplianceApplication]
1851
+ attr_accessor :data_source_backup_appliance_application
1852
+
1853
+ # DataSourceGcpResource is used for protected resources that are Google Cloud
1854
+ # Resources. This name is easeier to understand than GcpResourceDataSource or
1855
+ # GcpDataSourceResource
1856
+ # Corresponds to the JSON property `dataSourceGcpResource`
1857
+ # @return [Google::Apis::BackupdrV1::DataSourceGcpResource]
1858
+ attr_accessor :data_source_gcp_resource
1859
+
1860
+ # Server specified ETag for the ManagementServer resource to prevent
1861
+ # simultaneous updates from overwiting each other.
1862
+ # Corresponds to the JSON property `etag`
1863
+ # @return [String]
1864
+ attr_accessor :etag
1865
+
1866
+ # Optional. Resource labels to represent user provided metadata. No labels
1867
+ # currently defined:
1868
+ # Corresponds to the JSON property `labels`
1869
+ # @return [Hash<String,String>]
1870
+ attr_accessor :labels
1871
+
1872
+ # Output only. Identifier. The resource name.
1873
+ # Corresponds to the JSON property `name`
1874
+ # @return [String]
1875
+ attr_accessor :name
1876
+
1877
+ # Output only. The DataSource resource instance state.
1878
+ # Corresponds to the JSON property `state`
1879
+ # @return [String]
1880
+ attr_accessor :state
1881
+
1882
+ # The number of bytes (metadata and data) stored in this datasource.
1883
+ # Corresponds to the JSON property `totalStoredBytes`
1884
+ # @return [Fixnum]
1885
+ attr_accessor :total_stored_bytes
1886
+
1887
+ # Output only. The time when the instance was updated.
1888
+ # Corresponds to the JSON property `updateTime`
1889
+ # @return [String]
1890
+ attr_accessor :update_time
1891
+
1892
+ def initialize(**args)
1893
+ update!(**args)
1894
+ end
1895
+
1896
+ # Update properties of this object
1897
+ def update!(**args)
1898
+ @backup_config_info = args[:backup_config_info] if args.key?(:backup_config_info)
1899
+ @backup_count = args[:backup_count] if args.key?(:backup_count)
1900
+ @config_state = args[:config_state] if args.key?(:config_state)
1901
+ @create_time = args[:create_time] if args.key?(:create_time)
1902
+ @data_source_backup_appliance_application = args[:data_source_backup_appliance_application] if args.key?(:data_source_backup_appliance_application)
1903
+ @data_source_gcp_resource = args[:data_source_gcp_resource] if args.key?(:data_source_gcp_resource)
1904
+ @etag = args[:etag] if args.key?(:etag)
1905
+ @labels = args[:labels] if args.key?(:labels)
1906
+ @name = args[:name] if args.key?(:name)
1907
+ @state = args[:state] if args.key?(:state)
1908
+ @total_stored_bytes = args[:total_stored_bytes] if args.key?(:total_stored_bytes)
1909
+ @update_time = args[:update_time] if args.key?(:update_time)
1910
+ end
1911
+ end
1912
+
1913
+ # BackupApplianceApplication describes a Source Resource when it is an
1914
+ # application backed up by a BackupAppliance.
1915
+ class DataSourceBackupApplianceApplication
1916
+ include Google::Apis::Core::Hashable
1917
+
1918
+ # Appliance Id of the Backup Appliance.
1919
+ # Corresponds to the JSON property `applianceId`
1920
+ # @return [Fixnum]
1921
+ attr_accessor :appliance_id
1922
+
1923
+ # The appid field of the application within the Backup Appliance.
1924
+ # Corresponds to the JSON property `applicationId`
1925
+ # @return [Fixnum]
1926
+ attr_accessor :application_id
1927
+
1928
+ # The name of the Application as known to the Backup Appliance.
1929
+ # Corresponds to the JSON property `applicationName`
1930
+ # @return [String]
1931
+ attr_accessor :application_name
1932
+
1933
+ # Appliance name.
1934
+ # Corresponds to the JSON property `backupAppliance`
1935
+ # @return [String]
1936
+ attr_accessor :backup_appliance
1937
+
1938
+ # Hostid of the application host.
1939
+ # Corresponds to the JSON property `hostId`
1940
+ # @return [Fixnum]
1941
+ attr_accessor :host_id
1942
+
1943
+ # Hostname of the host where the application is running.
1944
+ # Corresponds to the JSON property `hostname`
1945
+ # @return [String]
1946
+ attr_accessor :hostname
1947
+
1948
+ # The type of the application. e.g. VMBackup
1949
+ # Corresponds to the JSON property `type`
1950
+ # @return [String]
1951
+ attr_accessor :type
1952
+
1953
+ def initialize(**args)
1954
+ update!(**args)
1955
+ end
1956
+
1957
+ # Update properties of this object
1958
+ def update!(**args)
1959
+ @appliance_id = args[:appliance_id] if args.key?(:appliance_id)
1960
+ @application_id = args[:application_id] if args.key?(:application_id)
1961
+ @application_name = args[:application_name] if args.key?(:application_name)
1962
+ @backup_appliance = args[:backup_appliance] if args.key?(:backup_appliance)
1963
+ @host_id = args[:host_id] if args.key?(:host_id)
1964
+ @hostname = args[:hostname] if args.key?(:hostname)
1965
+ @type = args[:type] if args.key?(:type)
1966
+ end
1967
+ end
1968
+
1969
+ # DataSourceGcpResource is used for protected resources that are Google Cloud
1970
+ # Resources. This name is easeier to understand than GcpResourceDataSource or
1971
+ # GcpDataSourceResource
1972
+ class DataSourceGcpResource
1973
+ include Google::Apis::Core::Hashable
1974
+
1975
+ # ComputeInstanceDataSourceProperties represents the properties of a
1976
+ # ComputeEngine resource that are stored in the DataSource.
1977
+ # Corresponds to the JSON property `computeInstanceDatasourceProperties`
1978
+ # @return [Google::Apis::BackupdrV1::ComputeInstanceDataSourceProperties]
1979
+ attr_accessor :compute_instance_datasource_properties
1980
+
1981
+ # Output only. Full resource pathname URL of the source Google Cloud resource.
1982
+ # Corresponds to the JSON property `gcpResourcename`
1983
+ # @return [String]
1984
+ attr_accessor :gcp_resourcename
1985
+
1986
+ # Location of the resource: //"global"/"unspecified".
1987
+ # Corresponds to the JSON property `location`
1988
+ # @return [String]
1989
+ attr_accessor :location
1990
+
1991
+ # The type of the Google Cloud resource. Use the Unified Resource Type, eg.
1992
+ # compute.googleapis.com/Instance.
1993
+ # Corresponds to the JSON property `type`
1994
+ # @return [String]
1995
+ attr_accessor :type
1996
+
1997
+ def initialize(**args)
1998
+ update!(**args)
1999
+ end
2000
+
2001
+ # Update properties of this object
2002
+ def update!(**args)
2003
+ @compute_instance_datasource_properties = args[:compute_instance_datasource_properties] if args.key?(:compute_instance_datasource_properties)
2004
+ @gcp_resourcename = args[:gcp_resourcename] if args.key?(:gcp_resourcename)
2005
+ @location = args[:location] if args.key?(:location)
2006
+ @type = args[:type] if args.key?(:type)
2007
+ end
2008
+ end
2009
+
2010
+ #
2011
+ class DirectLocationAssignment
2012
+ include Google::Apis::Core::Hashable
2013
+
2014
+ #
2015
+ # Corresponds to the JSON property `location`
2016
+ # @return [Array<Google::Apis::BackupdrV1::LocationAssignment>]
2017
+ attr_accessor :location
2018
+
2019
+ def initialize(**args)
2020
+ update!(**args)
2021
+ end
2022
+
2023
+ # Update properties of this object
2024
+ def update!(**args)
2025
+ @location = args[:location] if args.key?(:location)
2026
+ end
2027
+ end
2028
+
2029
+ # A set of Display Device options
2030
+ class DisplayDevice
2031
+ include Google::Apis::Core::Hashable
2032
+
2033
+ # Optional. Enables display for the Compute Engine VM
2034
+ # Corresponds to the JSON property `enableDisplay`
2035
+ # @return [Boolean]
2036
+ attr_accessor :enable_display
2037
+ alias_method :enable_display?, :enable_display
2038
+
2039
+ def initialize(**args)
2040
+ update!(**args)
2041
+ end
2042
+
2043
+ # Update properties of this object
2044
+ def update!(**args)
2045
+ @enable_display = args[:enable_display] if args.key?(:enable_display)
2046
+ end
2047
+ end
2048
+
2049
+ # A generic empty message that you can re-use to avoid defining duplicated empty
2050
+ # messages in your APIs. A typical example is to use it as the request or the
2051
+ # response type of an API method. For instance: service Foo ` rpc Bar(google.
2052
+ # protobuf.Empty) returns (google.protobuf.Empty); `
2053
+ class Empty
2054
+ include Google::Apis::Core::Hashable
2055
+
2056
+ def initialize(**args)
2057
+ update!(**args)
2058
+ end
2059
+
2060
+ # Update properties of this object
2061
+ def update!(**args)
2062
+ end
2063
+ end
2064
+
2065
+ # A key/value pair to be used for storing metadata.
2066
+ class Entry
2067
+ include Google::Apis::Core::Hashable
2068
+
2069
+ # Optional. Key for the metadata entry.
2070
+ # Corresponds to the JSON property `key`
2071
+ # @return [String]
2072
+ attr_accessor :key
2073
+
2074
+ # Optional. Value for the metadata entry. These are free-form strings, and only
2075
+ # have meaning as interpreted by the image running in the instance. The only
2076
+ # restriction placed on values is that their size must be less than or equal to
2077
+ # 262144 bytes (256 KiB).
2078
+ # Corresponds to the JSON property `value`
2079
+ # @return [String]
2080
+ attr_accessor :value
2081
+
2082
+ def initialize(**args)
2083
+ update!(**args)
2084
+ end
2085
+
2086
+ # Update properties of this object
2087
+ def update!(**args)
2088
+ @key = args[:key] if args.key?(:key)
2089
+ @value = args[:value] if args.key?(:value)
2090
+ end
2091
+ end
2092
+
2093
+ # Represents a textual expression in the Common Expression Language (CEL) syntax.
2094
+ # CEL is a C-like expression language. The syntax and semantics of CEL are
2095
+ # documented at https://github.com/google/cel-spec. Example (Comparison): title:
2096
+ # "Summary size limit" description: "Determines if a summary is less than 100
2097
+ # chars" expression: "document.summary.size() < 100" Example (Equality): title: "
2098
+ # Requestor is owner" description: "Determines if requestor is the document
2099
+ # owner" expression: "document.owner == request.auth.claims.email" Example (
2100
+ # Logic): title: "Public documents" description: "Determine whether the document
2101
+ # should be publicly visible" expression: "document.type != 'private' &&
2102
+ # document.type != 'internal'" Example (Data Manipulation): title: "Notification
2103
+ # string" description: "Create a notification string with a timestamp."
2104
+ # expression: "'New message received at ' + string(document.create_time)" The
2105
+ # exact variables and functions that may be referenced within an expression are
2106
+ # determined by the service that evaluates it. See the service documentation for
2107
+ # additional information.
2108
+ class Expr
2109
+ include Google::Apis::Core::Hashable
2110
+
2111
+ # Optional. Description of the expression. This is a longer text which describes
2112
+ # the expression, e.g. when hovered over it in a UI.
2113
+ # Corresponds to the JSON property `description`
2114
+ # @return [String]
2115
+ attr_accessor :description
2116
+
2117
+ # Textual representation of an expression in Common Expression Language syntax.
2118
+ # Corresponds to the JSON property `expression`
2119
+ # @return [String]
2120
+ attr_accessor :expression
2121
+
2122
+ # Optional. String indicating the location of the expression for error reporting,
2123
+ # e.g. a file name and a position in the file.
2124
+ # Corresponds to the JSON property `location`
2125
+ # @return [String]
2126
+ attr_accessor :location
2127
+
2128
+ # Optional. Title for the expression, i.e. a short string describing its purpose.
2129
+ # This can be used e.g. in UIs which allow to enter the expression.
2130
+ # Corresponds to the JSON property `title`
2131
+ # @return [String]
2132
+ attr_accessor :title
2133
+
2134
+ def initialize(**args)
2135
+ update!(**args)
2136
+ end
2137
+
2138
+ # Update properties of this object
2139
+ def update!(**args)
2140
+ @description = args[:description] if args.key?(:description)
2141
+ @expression = args[:expression] if args.key?(:expression)
2142
+ @location = args[:location] if args.key?(:location)
2143
+ @title = args[:title] if args.key?(:title)
2144
+ end
2145
+ end
2146
+
2147
+ # Defines parameters that should only be used for specific asset types.
2148
+ class ExtraParameter
2149
+ include Google::Apis::Core::Hashable
2150
+
2151
+ # To be used for specifying the intended distribution of regional compute.
2152
+ # googleapis.com/InstanceGroupManager instances
2153
+ # Corresponds to the JSON property `regionalMigDistributionPolicy`
2154
+ # @return [Google::Apis::BackupdrV1::RegionalMigDistributionPolicy]
2155
+ attr_accessor :regional_mig_distribution_policy
2156
+
2157
+ def initialize(**args)
2158
+ update!(**args)
2159
+ end
2160
+
2161
+ # Update properties of this object
2162
+ def update!(**args)
2163
+ @regional_mig_distribution_policy = args[:regional_mig_distribution_policy] if args.key?(:regional_mig_distribution_policy)
2164
+ end
2165
+ end
2166
+
2167
+ # Request message for FetchAccessToken.
2168
+ class FetchAccessTokenRequest
2169
+ include Google::Apis::Core::Hashable
2170
+
2171
+ # Required. The generation of the backup to update.
2172
+ # Corresponds to the JSON property `generationId`
2173
+ # @return [Fixnum]
2174
+ attr_accessor :generation_id
2175
+
2176
+ def initialize(**args)
2177
+ update!(**args)
2178
+ end
2179
+
2180
+ # Update properties of this object
2181
+ def update!(**args)
2182
+ @generation_id = args[:generation_id] if args.key?(:generation_id)
2183
+ end
2184
+ end
2185
+
2186
+ # Response message for FetchAccessToken.
2187
+ class FetchAccessTokenResponse
2188
+ include Google::Apis::Core::Hashable
2189
+
2190
+ # The token is valid until this time.
2191
+ # Corresponds to the JSON property `expireTime`
2192
+ # @return [String]
2193
+ attr_accessor :expire_time
2194
+
2195
+ # The location in bucket that can be used for reading.
2196
+ # Corresponds to the JSON property `readLocation`
2197
+ # @return [String]
2198
+ attr_accessor :read_location
2199
+
2200
+ # The downscoped token that was created.
2201
+ # Corresponds to the JSON property `token`
2202
+ # @return [String]
2203
+ attr_accessor :token
2204
+
2205
+ # The location in bucket that can be used for writing.
2206
+ # Corresponds to the JSON property `writeLocation`
2207
+ # @return [String]
2208
+ attr_accessor :write_location
2209
+
2210
+ def initialize(**args)
2211
+ update!(**args)
2212
+ end
2213
+
2214
+ # Update properties of this object
2215
+ def update!(**args)
2216
+ @expire_time = args[:expire_time] if args.key?(:expire_time)
2217
+ @read_location = args[:read_location] if args.key?(:read_location)
2218
+ @token = args[:token] if args.key?(:token)
2219
+ @write_location = args[:write_location] if args.key?(:write_location)
2220
+ end
2221
+ end
2222
+
2223
+ # Response message for fetching usable BackupVaults.
2224
+ class FetchUsableBackupVaultsResponse
2225
+ include Google::Apis::Core::Hashable
2226
+
2227
+ # The list of BackupVault instances in the project for the specified location.
2228
+ # If the '`location`' value in the request is "-", the response contains a list
2229
+ # of instances from all locations. In case any location is unreachable, the
2230
+ # response will only return backup vaults in reachable locations and the '
2231
+ # unreachable' field will be populated with a list of unreachable locations.
2232
+ # Corresponds to the JSON property `backupVaults`
2233
+ # @return [Array<Google::Apis::BackupdrV1::BackupVault>]
2234
+ attr_accessor :backup_vaults
2235
+
2236
+ # A token identifying a page of results the server should return.
2237
+ # Corresponds to the JSON property `nextPageToken`
2238
+ # @return [String]
2239
+ attr_accessor :next_page_token
2240
+
2241
+ # Locations that could not be reached.
2242
+ # Corresponds to the JSON property `unreachable`
2243
+ # @return [Array<String>]
2244
+ attr_accessor :unreachable
2245
+
2246
+ def initialize(**args)
2247
+ update!(**args)
2248
+ end
2249
+
2250
+ # Update properties of this object
2251
+ def update!(**args)
2252
+ @backup_vaults = args[:backup_vaults] if args.key?(:backup_vaults)
2253
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
2254
+ @unreachable = args[:unreachable] if args.key?(:unreachable)
2255
+ end
2256
+ end
2257
+
2258
+ # Message for finalizing a Backup.
2259
+ class FinalizeBackupRequest
2260
+ include Google::Apis::Core::Hashable
2261
+
2262
+ # Required. Resource ID of the Backup resource to be finalized. This must be the
2263
+ # same backup_id that was used in the InitiateBackupRequest.
2264
+ # Corresponds to the JSON property `backupId`
2265
+ # @return [String]
2266
+ attr_accessor :backup_id
2267
+
2268
+ # The point in time when this backup was captured from the source. This will be
2269
+ # assigned to the consistency_time field of the newly created Backup.
2270
+ # Corresponds to the JSON property `consistencyTime`
2271
+ # @return [String]
2272
+ attr_accessor :consistency_time
2273
+
2274
+ # This will be assigned to the description field of the newly created Backup.
2275
+ # Corresponds to the JSON property `description`
2276
+ # @return [String]
2277
+ attr_accessor :description
2278
+
2279
+ # The latest timestamp of data available in this Backup. This will be set on the
2280
+ # newly created Backup.
2281
+ # Corresponds to the JSON property `recoveryRangeEndTime`
2282
+ # @return [String]
2283
+ attr_accessor :recovery_range_end_time
2284
+
2285
+ # The earliest timestamp of data available in this Backup. This will set on the
2286
+ # newly created Backup.
2287
+ # Corresponds to the JSON property `recoveryRangeStartTime`
2288
+ # @return [String]
2289
+ attr_accessor :recovery_range_start_time
2290
+
2291
+ # Optional. An optional request ID to identify requests. Specify a unique
2292
+ # request ID so that if you must retry your request, the server will know to
2293
+ # ignore the request if it has already been completed. The server will guarantee
2294
+ # that for at least 60 minutes after the first request. For example, consider a
2295
+ # situation where you make an initial request and the request times out. If you
2296
+ # make the request again with the same request ID, the server can check if
2297
+ # original operation with the same request ID was received, and if so, will
2298
+ # ignore the second request. This prevents clients from accidentally creating
2299
+ # duplicate commitments. The request ID must be a valid UUID with the exception
2300
+ # that zero UUID is not supported (00000000-0000-0000-0000-000000000000).
2301
+ # Corresponds to the JSON property `requestId`
2302
+ # @return [String]
2303
+ attr_accessor :request_id
2304
+
2305
+ # The ExpireTime on the backup will be set to FinalizeTime plus this duration.
2306
+ # If the resulting ExpireTime is less than EnforcedRetentionEndTime, then
2307
+ # ExpireTime is set to EnforcedRetentionEndTime.
2308
+ # Corresponds to the JSON property `retentionDuration`
2309
+ # @return [String]
2310
+ attr_accessor :retention_duration
2311
+
2312
+ def initialize(**args)
2313
+ update!(**args)
2314
+ end
2315
+
2316
+ # Update properties of this object
2317
+ def update!(**args)
2318
+ @backup_id = args[:backup_id] if args.key?(:backup_id)
2319
+ @consistency_time = args[:consistency_time] if args.key?(:consistency_time)
2320
+ @description = args[:description] if args.key?(:description)
2321
+ @recovery_range_end_time = args[:recovery_range_end_time] if args.key?(:recovery_range_end_time)
2322
+ @recovery_range_start_time = args[:recovery_range_start_time] if args.key?(:recovery_range_start_time)
2323
+ @request_id = args[:request_id] if args.key?(:request_id)
2324
+ @retention_duration = args[:retention_duration] if args.key?(:retention_duration)
2325
+ end
2326
+ end
2327
+
2328
+ # GCPBackupPlanInfo captures the plan configuration details of Google Cloud
2329
+ # resources at the time of backup.
2330
+ class GcpBackupPlanInfo
2331
+ include Google::Apis::Core::Hashable
2332
+
2333
+ # Resource name of backup plan by which workload is protected at the time of the
2334
+ # backup. Format: projects/`project`/locations/`location`/backupPlans/`
2335
+ # backupPlanId`
2336
+ # Corresponds to the JSON property `backupPlan`
2337
+ # @return [String]
2338
+ attr_accessor :backup_plan
2339
+
2340
+ # The rule id of the backup plan which triggered this backup in case of
2341
+ # scheduled backup or used for
2342
+ # Corresponds to the JSON property `backupPlanRuleId`
2343
+ # @return [String]
2344
+ attr_accessor :backup_plan_rule_id
2345
+
2346
+ def initialize(**args)
2347
+ update!(**args)
2348
+ end
2349
+
2350
+ # Update properties of this object
2351
+ def update!(**args)
2352
+ @backup_plan = args[:backup_plan] if args.key?(:backup_plan)
2353
+ @backup_plan_rule_id = args[:backup_plan_rule_id] if args.key?(:backup_plan_rule_id)
2354
+ end
2355
+ end
2356
+
2357
+ # GcpBackupConfig captures the Backup configuration details for Google Cloud
2358
+ # resources. All Google Cloud resources regardless of type are protected with
2359
+ # backup plan associations.
2360
+ class GcpBackupConfig
2361
+ include Google::Apis::Core::Hashable
2362
+
2363
+ # The name of the backup plan.
2364
+ # Corresponds to the JSON property `backupPlan`
2365
+ # @return [String]
2366
+ attr_accessor :backup_plan
2367
+
2368
+ # The name of the backup plan association.
2369
+ # Corresponds to the JSON property `backupPlanAssociation`
2370
+ # @return [String]
2371
+ attr_accessor :backup_plan_association
2372
+
2373
+ # The description of the backup plan.
2374
+ # Corresponds to the JSON property `backupPlanDescription`
2375
+ # @return [String]
2376
+ attr_accessor :backup_plan_description
2377
+
2378
+ # The names of the backup plan rules which point to this backupvault
2379
+ # Corresponds to the JSON property `backupPlanRules`
2380
+ # @return [Array<String>]
2381
+ attr_accessor :backup_plan_rules
2382
+
2383
+ def initialize(**args)
2384
+ update!(**args)
2385
+ end
2386
+
2387
+ # Update properties of this object
2388
+ def update!(**args)
2389
+ @backup_plan = args[:backup_plan] if args.key?(:backup_plan)
2390
+ @backup_plan_association = args[:backup_plan_association] if args.key?(:backup_plan_association)
2391
+ @backup_plan_description = args[:backup_plan_description] if args.key?(:backup_plan_description)
2392
+ @backup_plan_rules = args[:backup_plan_rules] if args.key?(:backup_plan_rules)
2393
+ end
2394
+ end
2395
+
2396
+ # Feature type of the Guest OS.
2397
+ class GuestOsFeature
2398
+ include Google::Apis::Core::Hashable
2399
+
2400
+ # The ID of a supported feature.
2401
+ # Corresponds to the JSON property `type`
2402
+ # @return [String]
2403
+ attr_accessor :type
2404
+
2405
+ def initialize(**args)
2406
+ update!(**args)
2407
+ end
2408
+
2409
+ # Update properties of this object
2410
+ def update!(**args)
2411
+ @type = args[:type] if args.key?(:type)
2412
+ end
2413
+ end
2414
+
2415
+ # Specifies the parameters to initialize this disk.
2416
+ class InitializeParams
2417
+ include Google::Apis::Core::Hashable
2418
+
2419
+ # Optional. Specifies the disk name. If not specified, the default is to use the
2420
+ # name of the instance.
2421
+ # Corresponds to the JSON property `diskName`
2422
+ # @return [String]
2423
+ attr_accessor :disk_name
2424
+
2425
+ # Optional. URL of the zone where the disk should be created. Required for each
2426
+ # regional disk associated with the instance.
2427
+ # Corresponds to the JSON property `replicaZones`
2428
+ # @return [Array<String>]
2429
+ attr_accessor :replica_zones
2430
+
2431
+ def initialize(**args)
2432
+ update!(**args)
2433
+ end
2434
+
2435
+ # Update properties of this object
2436
+ def update!(**args)
2437
+ @disk_name = args[:disk_name] if args.key?(:disk_name)
2438
+ @replica_zones = args[:replica_zones] if args.key?(:replica_zones)
2439
+ end
2440
+ end
2441
+
2442
+ # request message for InitiateBackup.
2443
+ class InitiateBackupRequest
2444
+ include Google::Apis::Core::Hashable
2445
+
2446
+ # Required. Resource ID of the Backup resource.
2447
+ # Corresponds to the JSON property `backupId`
2448
+ # @return [String]
2449
+ attr_accessor :backup_id
2450
+
2451
+ # Optional. An optional request ID to identify requests. Specify a unique
2452
+ # request ID so that if you must retry your request, the server will know to
2453
+ # ignore the request if it has already been completed. The server will guarantee
2454
+ # that for at least 60 minutes since the first request. For example, consider a
2455
+ # situation where you make an initial request and the request times out. If you
2456
+ # make the request again with the same request ID, the server can check if
2457
+ # original operation with the same request ID was received, and if so, will
2458
+ # ignore the second request. This prevents clients from accidentally creating
2459
+ # duplicate commitments. The request ID must be a valid UUID with the exception
2460
+ # that zero UUID is not supported (00000000-0000-0000-0000-000000000000).
2461
+ # Corresponds to the JSON property `requestId`
2462
+ # @return [String]
2463
+ attr_accessor :request_id
2464
+
2465
+ def initialize(**args)
2466
+ update!(**args)
2467
+ end
2468
+
2469
+ # Update properties of this object
2470
+ def update!(**args)
2471
+ @backup_id = args[:backup_id] if args.key?(:backup_id)
2472
+ @request_id = args[:request_id] if args.key?(:request_id)
2473
+ end
2474
+ end
2475
+
2476
+ # Response message for InitiateBackup.
2477
+ class InitiateBackupResponse
2478
+ include Google::Apis::Core::Hashable
2479
+
2480
+ # The name of the backup that was created.
2481
+ # Corresponds to the JSON property `backup`
2482
+ # @return [String]
2483
+ attr_accessor :backup
2484
+
2485
+ # The generation id of the base backup. It is needed for the incremental backups.
2486
+ # Corresponds to the JSON property `baseBackupGenerationId`
2487
+ # @return [Fixnum]
2488
+ attr_accessor :base_backup_generation_id
2489
+
2490
+ # The generation id of the new backup.
2491
+ # Corresponds to the JSON property `newBackupGenerationId`
2492
+ # @return [Fixnum]
2493
+ attr_accessor :new_backup_generation_id
2494
+
2495
+ def initialize(**args)
2496
+ update!(**args)
2497
+ end
2498
+
2499
+ # Update properties of this object
2500
+ def update!(**args)
2501
+ @backup = args[:backup] if args.key?(:backup)
2502
+ @base_backup_generation_id = args[:base_backup_generation_id] if args.key?(:base_backup_generation_id)
2503
+ @new_backup_generation_id = args[:new_backup_generation_id] if args.key?(:new_backup_generation_id)
2504
+ end
2505
+ end
2506
+
2507
+ # Additional instance params.
2508
+ class InstanceParams
2509
+ include Google::Apis::Core::Hashable
2510
+
2511
+ # Optional. Resource manager tags to be bound to the instance.
2512
+ # Corresponds to the JSON property `resourceManagerTags`
2513
+ # @return [Hash<String,String>]
2514
+ attr_accessor :resource_manager_tags
2515
+
2516
+ def initialize(**args)
2517
+ update!(**args)
2518
+ end
2519
+
2520
+ # Update properties of this object
2521
+ def update!(**args)
2522
+ @resource_manager_tags = args[:resource_manager_tags] if args.key?(:resource_manager_tags)
2523
+ end
2524
+ end
2525
+
2526
+ #
2527
+ class IsolationExpectations
2528
+ include Google::Apis::Core::Hashable
2529
+
2530
+ # Explicit overrides for ZI and ZS requirements to be used for resources that
2531
+ # should be excluded from ZI/ZS verification logic.
2532
+ # Corresponds to the JSON property `requirementOverride`
2533
+ # @return [Google::Apis::BackupdrV1::RequirementOverride]
2534
+ attr_accessor :requirement_override
2535
+
2536
+ #
2537
+ # Corresponds to the JSON property `ziOrgPolicy`
2538
+ # @return [String]
2539
+ attr_accessor :zi_org_policy
2540
+
2541
+ #
2542
+ # Corresponds to the JSON property `ziRegionPolicy`
2543
+ # @return [String]
2544
+ attr_accessor :zi_region_policy
2545
+
2546
+ #
2547
+ # Corresponds to the JSON property `ziRegionState`
2548
+ # @return [String]
2549
+ attr_accessor :zi_region_state
2550
+
2551
+ # Deprecated: use zi_org_policy, zi_region_policy and zi_region_state instead
2552
+ # for setting ZI expectations as per go/zicy-publish-physical-location.
2553
+ # Corresponds to the JSON property `zoneIsolation`
2554
+ # @return [String]
2555
+ attr_accessor :zone_isolation
2556
+
2557
+ # Deprecated: use zs_org_policy, and zs_region_stateinstead for setting Zs
2558
+ # expectations as per go/zicy-publish-physical-location.
2559
+ # Corresponds to the JSON property `zoneSeparation`
2560
+ # @return [String]
2561
+ attr_accessor :zone_separation
2562
+
2563
+ #
2564
+ # Corresponds to the JSON property `zsOrgPolicy`
2565
+ # @return [String]
2566
+ attr_accessor :zs_org_policy
2567
+
2568
+ #
2569
+ # Corresponds to the JSON property `zsRegionState`
182
2570
  # @return [String]
183
- attr_accessor :role
2571
+ attr_accessor :zs_region_state
184
2572
 
185
2573
  def initialize(**args)
186
2574
  update!(**args)
@@ -188,81 +2576,182 @@ module Google
188
2576
 
189
2577
  # Update properties of this object
190
2578
  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)
2579
+ @requirement_override = args[:requirement_override] if args.key?(:requirement_override)
2580
+ @zi_org_policy = args[:zi_org_policy] if args.key?(:zi_org_policy)
2581
+ @zi_region_policy = args[:zi_region_policy] if args.key?(:zi_region_policy)
2582
+ @zi_region_state = args[:zi_region_state] if args.key?(:zi_region_state)
2583
+ @zone_isolation = args[:zone_isolation] if args.key?(:zone_isolation)
2584
+ @zone_separation = args[:zone_separation] if args.key?(:zone_separation)
2585
+ @zs_org_policy = args[:zs_org_policy] if args.key?(:zs_org_policy)
2586
+ @zs_region_state = args[:zs_region_state] if args.key?(:zs_region_state)
194
2587
  end
195
2588
  end
196
2589
 
197
- # The request message for Operations.CancelOperation.
198
- class CancelOperationRequest
2590
+ # Response message for List BackupPlanAssociation
2591
+ class ListBackupPlanAssociationsResponse
199
2592
  include Google::Apis::Core::Hashable
200
2593
 
2594
+ # The list of Backup Plan Associations in the project for the specified location.
2595
+ # If the ``location`` value in the request is "-", the response contains a list
2596
+ # of instances from all locations. In case any location is unreachable, the
2597
+ # response will only return backup plan associations in reachable locations and
2598
+ # the 'unreachable' field will be populated with a list of unreachable locations.
2599
+ # Corresponds to the JSON property `backupPlanAssociations`
2600
+ # @return [Array<Google::Apis::BackupdrV1::BackupPlanAssociation>]
2601
+ attr_accessor :backup_plan_associations
2602
+
2603
+ # A token identifying a page of results the server should return.
2604
+ # Corresponds to the JSON property `nextPageToken`
2605
+ # @return [String]
2606
+ attr_accessor :next_page_token
2607
+
2608
+ # Locations that could not be reached.
2609
+ # Corresponds to the JSON property `unreachable`
2610
+ # @return [Array<String>]
2611
+ attr_accessor :unreachable
2612
+
201
2613
  def initialize(**args)
202
2614
  update!(**args)
203
2615
  end
204
2616
 
205
2617
  # Update properties of this object
206
2618
  def update!(**args)
2619
+ @backup_plan_associations = args[:backup_plan_associations] if args.key?(:backup_plan_associations)
2620
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
2621
+ @unreachable = args[:unreachable] if args.key?(:unreachable)
207
2622
  end
208
2623
  end
209
2624
 
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
2625
+ # The response message for getting a list of `BackupPlan`.
2626
+ class ListBackupPlansResponse
215
2627
  include Google::Apis::Core::Hashable
216
2628
 
2629
+ # The list of `BackupPlans` in the project for the specified location. If the ``
2630
+ # location`` value in the request is "-", the response contains a list of
2631
+ # resources from all locations. In case any location is unreachable, the
2632
+ # response will only return backup plans in reachable locations and the '
2633
+ # unreachable' field will be populated with a list of unreachable locations.
2634
+ # BackupPlan
2635
+ # Corresponds to the JSON property `backupPlans`
2636
+ # @return [Array<Google::Apis::BackupdrV1::BackupPlan>]
2637
+ attr_accessor :backup_plans
2638
+
2639
+ # A token which may be sent as page_token in a subsequent `ListBackupPlans` call
2640
+ # to retrieve the next page of results. If this field is omitted or empty, then
2641
+ # there are no more results to return.
2642
+ # Corresponds to the JSON property `nextPageToken`
2643
+ # @return [String]
2644
+ attr_accessor :next_page_token
2645
+
2646
+ # Locations that could not be reached.
2647
+ # Corresponds to the JSON property `unreachable`
2648
+ # @return [Array<String>]
2649
+ attr_accessor :unreachable
2650
+
217
2651
  def initialize(**args)
218
2652
  update!(**args)
219
2653
  end
220
2654
 
221
2655
  # Update properties of this object
222
2656
  def update!(**args)
2657
+ @backup_plans = args[:backup_plans] if args.key?(:backup_plans)
2658
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
2659
+ @unreachable = args[:unreachable] if args.key?(:unreachable)
223
2660
  end
224
2661
  end
225
2662
 
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
2663
+ # Response message for listing BackupVaults.
2664
+ class ListBackupVaultsResponse
242
2665
  include Google::Apis::Core::Hashable
243
2666
 
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
2667
+ # The list of BackupVault instances in the project for the specified location.
2668
+ # If the '`location`' value in the request is "-", the response contains a list
2669
+ # of instances from all locations. In case any location is unreachable, the
2670
+ # response will only return backup vaults in reachable locations and the '
2671
+ # unreachable' field will be populated with a list of unreachable locations.
2672
+ # Corresponds to the JSON property `backupVaults`
2673
+ # @return [Array<Google::Apis::BackupdrV1::BackupVault>]
2674
+ attr_accessor :backup_vaults
249
2675
 
250
- # Textual representation of an expression in Common Expression Language syntax.
251
- # Corresponds to the JSON property `expression`
2676
+ # A token identifying a page of results the server should return.
2677
+ # Corresponds to the JSON property `nextPageToken`
252
2678
  # @return [String]
253
- attr_accessor :expression
2679
+ attr_accessor :next_page_token
254
2680
 
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`
2681
+ # Locations that could not be reached.
2682
+ # Corresponds to the JSON property `unreachable`
2683
+ # @return [Array<String>]
2684
+ attr_accessor :unreachable
2685
+
2686
+ def initialize(**args)
2687
+ update!(**args)
2688
+ end
2689
+
2690
+ # Update properties of this object
2691
+ def update!(**args)
2692
+ @backup_vaults = args[:backup_vaults] if args.key?(:backup_vaults)
2693
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
2694
+ @unreachable = args[:unreachable] if args.key?(:unreachable)
2695
+ end
2696
+ end
2697
+
2698
+ # Response message for listing Backups.
2699
+ class ListBackupsResponse
2700
+ include Google::Apis::Core::Hashable
2701
+
2702
+ # The list of Backup instances in the project for the specified location. If the
2703
+ # '`location`' value in the request is "-", the response contains a list of
2704
+ # instances from all locations. In case any location is unreachable, the
2705
+ # response will only return data sources in reachable locations and the '
2706
+ # unreachable' field will be populated with a list of unreachable locations.
2707
+ # Corresponds to the JSON property `backups`
2708
+ # @return [Array<Google::Apis::BackupdrV1::Backup>]
2709
+ attr_accessor :backups
2710
+
2711
+ # A token identifying a page of results the server should return.
2712
+ # Corresponds to the JSON property `nextPageToken`
258
2713
  # @return [String]
259
- attr_accessor :location
2714
+ attr_accessor :next_page_token
260
2715
 
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`
2716
+ # Locations that could not be reached.
2717
+ # Corresponds to the JSON property `unreachable`
2718
+ # @return [Array<String>]
2719
+ attr_accessor :unreachable
2720
+
2721
+ def initialize(**args)
2722
+ update!(**args)
2723
+ end
2724
+
2725
+ # Update properties of this object
2726
+ def update!(**args)
2727
+ @backups = args[:backups] if args.key?(:backups)
2728
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
2729
+ @unreachable = args[:unreachable] if args.key?(:unreachable)
2730
+ end
2731
+ end
2732
+
2733
+ # Response message for listing DataSources.
2734
+ class ListDataSourcesResponse
2735
+ include Google::Apis::Core::Hashable
2736
+
2737
+ # The list of DataSource instances in the project for the specified location. If
2738
+ # the '`location`' value in the request is "-", the response contains a list of
2739
+ # instances from all locations. In case any location is unreachable, the
2740
+ # response will only return data sources in reachable locations and the '
2741
+ # unreachable' field will be populated with a list of unreachable locations.
2742
+ # Corresponds to the JSON property `dataSources`
2743
+ # @return [Array<Google::Apis::BackupdrV1::DataSource>]
2744
+ attr_accessor :data_sources
2745
+
2746
+ # A token identifying a page of results the server should return.
2747
+ # Corresponds to the JSON property `nextPageToken`
264
2748
  # @return [String]
265
- attr_accessor :title
2749
+ attr_accessor :next_page_token
2750
+
2751
+ # Locations that could not be reached.
2752
+ # Corresponds to the JSON property `unreachable`
2753
+ # @return [Array<String>]
2754
+ attr_accessor :unreachable
266
2755
 
267
2756
  def initialize(**args)
268
2757
  update!(**args)
@@ -270,10 +2759,9 @@ module Google
270
2759
 
271
2760
  # Update properties of this object
272
2761
  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)
2762
+ @data_sources = args[:data_sources] if args.key?(:data_sources)
2763
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
2764
+ @unreachable = args[:unreachable] if args.key?(:unreachable)
277
2765
  end
278
2766
  end
279
2767
 
@@ -307,7 +2795,7 @@ module Google
307
2795
  include Google::Apis::Core::Hashable
308
2796
 
309
2797
  # The list of ManagementServer instances in the project for the specified
310
- # location. If the ``location`` value in the request is "-", the response
2798
+ # location. If the '`location`' value in the request is "-", the response
311
2799
  # contains a list of instances from all locations. In case any location is
312
2800
  # unreachable, the response will only return management servers in reachable
313
2801
  # locations and the 'unreachable' field will be populated with a list of
@@ -410,6 +2898,82 @@ module Google
410
2898
  end
411
2899
  end
412
2900
 
2901
+ #
2902
+ class LocationAssignment
2903
+ include Google::Apis::Core::Hashable
2904
+
2905
+ #
2906
+ # Corresponds to the JSON property `location`
2907
+ # @return [String]
2908
+ attr_accessor :location
2909
+
2910
+ #
2911
+ # Corresponds to the JSON property `locationType`
2912
+ # @return [String]
2913
+ attr_accessor :location_type
2914
+
2915
+ def initialize(**args)
2916
+ update!(**args)
2917
+ end
2918
+
2919
+ # Update properties of this object
2920
+ def update!(**args)
2921
+ @location = args[:location] if args.key?(:location)
2922
+ @location_type = args[:location_type] if args.key?(:location_type)
2923
+ end
2924
+ end
2925
+
2926
+ #
2927
+ class LocationData
2928
+ include Google::Apis::Core::Hashable
2929
+
2930
+ # Policy ID that identified data placement in Blobstore as per go/blobstore-user-
2931
+ # guide#data-metadata-placement-and-failure-domains
2932
+ # Corresponds to the JSON property `blobstoreLocation`
2933
+ # @return [Google::Apis::BackupdrV1::BlobstoreLocation]
2934
+ attr_accessor :blobstore_location
2935
+
2936
+ #
2937
+ # Corresponds to the JSON property `childAssetLocation`
2938
+ # @return [Google::Apis::BackupdrV1::CloudAssetComposition]
2939
+ attr_accessor :child_asset_location
2940
+
2941
+ #
2942
+ # Corresponds to the JSON property `directLocation`
2943
+ # @return [Google::Apis::BackupdrV1::DirectLocationAssignment]
2944
+ attr_accessor :direct_location
2945
+
2946
+ #
2947
+ # Corresponds to the JSON property `gcpProjectProxy`
2948
+ # @return [Google::Apis::BackupdrV1::TenantProjectProxy]
2949
+ attr_accessor :gcp_project_proxy
2950
+
2951
+ # Message describing that the location of the customer resource is tied to
2952
+ # placer allocations
2953
+ # Corresponds to the JSON property `placerLocation`
2954
+ # @return [Google::Apis::BackupdrV1::PlacerLocation]
2955
+ attr_accessor :placer_location
2956
+
2957
+ #
2958
+ # Corresponds to the JSON property `spannerLocation`
2959
+ # @return [Google::Apis::BackupdrV1::SpannerLocation]
2960
+ attr_accessor :spanner_location
2961
+
2962
+ def initialize(**args)
2963
+ update!(**args)
2964
+ end
2965
+
2966
+ # Update properties of this object
2967
+ def update!(**args)
2968
+ @blobstore_location = args[:blobstore_location] if args.key?(:blobstore_location)
2969
+ @child_asset_location = args[:child_asset_location] if args.key?(:child_asset_location)
2970
+ @direct_location = args[:direct_location] if args.key?(:direct_location)
2971
+ @gcp_project_proxy = args[:gcp_project_proxy] if args.key?(:gcp_project_proxy)
2972
+ @placer_location = args[:placer_location] if args.key?(:placer_location)
2973
+ @spanner_location = args[:spanner_location] if args.key?(:spanner_location)
2974
+ end
2975
+ end
2976
+
413
2977
  # ManagementServer describes a single BackupDR ManagementServer instance.
414
2978
  class ManagementServer
415
2979
  include Google::Apis::Core::Hashable
@@ -462,7 +3026,7 @@ module Google
462
3026
 
463
3027
  # Output only. The OAuth 2.0 client id is required to make API calls to the
464
3028
  # 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
3029
+ # be provided in the 'aud' field of the OIDC ID Token (see openid specification
466
3030
  # https://openid.net/specs/openid-connect-core-1_0.html#IDToken).
467
3031
  # Corresponds to the JSON property `oauth2ClientId`
468
3032
  # @return [String]
@@ -530,19 +3094,202 @@ module Google
530
3094
  end
531
3095
  end
532
3096
 
533
- # ManagementURI for the Management Server resource.
534
- class ManagementUri
3097
+ # ManagementURI for the Management Server resource.
3098
+ class ManagementUri
3099
+ include Google::Apis::Core::Hashable
3100
+
3101
+ # Output only. The ManagementServer AGM/RD API URL.
3102
+ # Corresponds to the JSON property `api`
3103
+ # @return [String]
3104
+ attr_accessor :api
3105
+
3106
+ # Output only. The ManagementServer AGM/RD WebUI URL.
3107
+ # Corresponds to the JSON property `webUi`
3108
+ # @return [String]
3109
+ attr_accessor :web_ui
3110
+
3111
+ def initialize(**args)
3112
+ update!(**args)
3113
+ end
3114
+
3115
+ # Update properties of this object
3116
+ def update!(**args)
3117
+ @api = args[:api] if args.key?(:api)
3118
+ @web_ui = args[:web_ui] if args.key?(:web_ui)
3119
+ end
3120
+ end
3121
+
3122
+ # A metadata key/value entry.
3123
+ class Metadata
3124
+ include Google::Apis::Core::Hashable
3125
+
3126
+ # Optional. Array of key/value pairs. The total size of all keys and values must
3127
+ # be less than 512 KB.
3128
+ # Corresponds to the JSON property `items`
3129
+ # @return [Array<Google::Apis::BackupdrV1::Entry>]
3130
+ attr_accessor :items
3131
+
3132
+ def initialize(**args)
3133
+ update!(**args)
3134
+ end
3135
+
3136
+ # Update properties of this object
3137
+ def update!(**args)
3138
+ @items = args[:items] if args.key?(:items)
3139
+ end
3140
+ end
3141
+
3142
+ # Network configuration for ManagementServer instance.
3143
+ class NetworkConfig
3144
+ include Google::Apis::Core::Hashable
3145
+
3146
+ # Optional. The resource name of the Google Compute Engine VPC network to which
3147
+ # the ManagementServer instance is connected.
3148
+ # Corresponds to the JSON property `network`
3149
+ # @return [String]
3150
+ attr_accessor :network
3151
+
3152
+ # Optional. The network connect mode of the ManagementServer instance. For this
3153
+ # version, only PRIVATE_SERVICE_ACCESS is supported.
3154
+ # Corresponds to the JSON property `peeringMode`
3155
+ # @return [String]
3156
+ attr_accessor :peering_mode
3157
+
3158
+ def initialize(**args)
3159
+ update!(**args)
3160
+ end
3161
+
3162
+ # Update properties of this object
3163
+ def update!(**args)
3164
+ @network = args[:network] if args.key?(:network)
3165
+ @peering_mode = args[:peering_mode] if args.key?(:peering_mode)
3166
+ end
3167
+ end
3168
+
3169
+ # A network interface resource attached to an instance. s
3170
+ class NetworkInterface
3171
+ include Google::Apis::Core::Hashable
3172
+
3173
+ # Optional. An array of configurations for this interface. Currently, only one
3174
+ # access config,ONE_TO_ONE_NAT is supported. If there are no accessConfigs
3175
+ # specified, then this instance will have no external internet access.
3176
+ # Corresponds to the JSON property `accessConfigs`
3177
+ # @return [Array<Google::Apis::BackupdrV1::AccessConfig>]
3178
+ attr_accessor :access_configs
3179
+
3180
+ # Optional. An array of alias IP ranges for this network interface. You can only
3181
+ # specify this field for network interfaces in VPC networks.
3182
+ # Corresponds to the JSON property `aliasIpRanges`
3183
+ # @return [Array<Google::Apis::BackupdrV1::AliasIpRange>]
3184
+ attr_accessor :alias_ip_ranges
3185
+
3186
+ # Optional. The prefix length of the primary internal IPv6 range.
3187
+ # Corresponds to the JSON property `internalIpv6PrefixLength`
3188
+ # @return [Fixnum]
3189
+ attr_accessor :internal_ipv6_prefix_length
3190
+
3191
+ # Optional. An array of IPv6 access configurations for this interface. Currently,
3192
+ # only one IPv6 access config, DIRECT_IPV6, is supported. If there is no
3193
+ # ipv6AccessConfig specified, then this instance will have no external IPv6
3194
+ # Internet access.
3195
+ # Corresponds to the JSON property `ipv6AccessConfigs`
3196
+ # @return [Array<Google::Apis::BackupdrV1::AccessConfig>]
3197
+ attr_accessor :ipv6_access_configs
3198
+
3199
+ # Optional. [Output Only] One of EXTERNAL, INTERNAL to indicate whether the IP
3200
+ # can be accessed from the Internet. This field is always inherited from its
3201
+ # subnetwork.
3202
+ # Corresponds to the JSON property `ipv6AccessType`
3203
+ # @return [String]
3204
+ attr_accessor :ipv6_access_type
3205
+
3206
+ # Optional. An IPv6 internal network address for this network interface. To use
3207
+ # a static internal IP address, it must be unused and in the same region as the
3208
+ # instance's zone. If not specified, Google Cloud will automatically assign an
3209
+ # internal IPv6 address from the instance's subnetwork.
3210
+ # Corresponds to the JSON property `ipv6Address`
3211
+ # @return [String]
3212
+ attr_accessor :ipv6_address
3213
+
3214
+ # Output only. [Output Only] The name of the network interface, which is
3215
+ # generated by the server.
3216
+ # Corresponds to the JSON property `name`
3217
+ # @return [String]
3218
+ attr_accessor :name
3219
+
3220
+ # Optional. URL of the VPC network resource for this instance.
3221
+ # Corresponds to the JSON property `network`
3222
+ # @return [String]
3223
+ attr_accessor :network
3224
+
3225
+ # Optional. The URL of the network attachment that this interface should connect
3226
+ # to in the following format: projects/`project_number`/regions/`region_name`/
3227
+ # networkAttachments/`network_attachment_name`.
3228
+ # Corresponds to the JSON property `networkAttachment`
3229
+ # @return [String]
3230
+ attr_accessor :network_attachment
3231
+
3232
+ # Optional. An IPv4 internal IP address to assign to the instance for this
3233
+ # network interface. If not specified by the user, an unused internal IP is
3234
+ # assigned by the system.
3235
+ # Corresponds to the JSON property `networkIP`
3236
+ # @return [String]
3237
+ attr_accessor :network_ip
3238
+
3239
+ # Optional. The type of vNIC to be used on this interface. This may be gVNIC or
3240
+ # VirtioNet.
3241
+ # Corresponds to the JSON property `nicType`
3242
+ # @return [String]
3243
+ attr_accessor :nic_type
3244
+
3245
+ # Optional. The networking queue count that's specified by users for the network
3246
+ # interface. Both Rx and Tx queues will be set to this number. It'll be empty if
3247
+ # not specified by the users.
3248
+ # Corresponds to the JSON property `queueCount`
3249
+ # @return [Fixnum]
3250
+ attr_accessor :queue_count
3251
+
3252
+ # The stack type for this network interface.
3253
+ # Corresponds to the JSON property `stackType`
3254
+ # @return [String]
3255
+ attr_accessor :stack_type
3256
+
3257
+ # Optional. The URL of the Subnetwork resource for this instance.
3258
+ # Corresponds to the JSON property `subnetwork`
3259
+ # @return [String]
3260
+ attr_accessor :subnetwork
3261
+
3262
+ def initialize(**args)
3263
+ update!(**args)
3264
+ end
3265
+
3266
+ # Update properties of this object
3267
+ def update!(**args)
3268
+ @access_configs = args[:access_configs] if args.key?(:access_configs)
3269
+ @alias_ip_ranges = args[:alias_ip_ranges] if args.key?(:alias_ip_ranges)
3270
+ @internal_ipv6_prefix_length = args[:internal_ipv6_prefix_length] if args.key?(:internal_ipv6_prefix_length)
3271
+ @ipv6_access_configs = args[:ipv6_access_configs] if args.key?(:ipv6_access_configs)
3272
+ @ipv6_access_type = args[:ipv6_access_type] if args.key?(:ipv6_access_type)
3273
+ @ipv6_address = args[:ipv6_address] if args.key?(:ipv6_address)
3274
+ @name = args[:name] if args.key?(:name)
3275
+ @network = args[:network] if args.key?(:network)
3276
+ @network_attachment = args[:network_attachment] if args.key?(:network_attachment)
3277
+ @network_ip = args[:network_ip] if args.key?(:network_ip)
3278
+ @nic_type = args[:nic_type] if args.key?(:nic_type)
3279
+ @queue_count = args[:queue_count] if args.key?(:queue_count)
3280
+ @stack_type = args[:stack_type] if args.key?(:stack_type)
3281
+ @subnetwork = args[:subnetwork] if args.key?(:subnetwork)
3282
+ end
3283
+ end
3284
+
3285
+ # Network performance configuration.
3286
+ class NetworkPerformanceConfig
535
3287
  include Google::Apis::Core::Hashable
536
3288
 
537
- # Output only. The ManagementServer AGM/RD API URL.
538
- # Corresponds to the JSON property `api`
539
- # @return [String]
540
- attr_accessor :api
541
-
542
- # Output only. The ManagementServer AGM/RD WebUI URL.
543
- # Corresponds to the JSON property `webUi`
3289
+ # Optional. The tier of the total egress bandwidth.
3290
+ # Corresponds to the JSON property `totalEgressBandwidthTier`
544
3291
  # @return [String]
545
- attr_accessor :web_ui
3292
+ attr_accessor :total_egress_bandwidth_tier
546
3293
 
547
3294
  def initialize(**args)
548
3295
  update!(**args)
@@ -550,26 +3297,29 @@ module Google
550
3297
 
551
3298
  # Update properties of this object
552
3299
  def update!(**args)
553
- @api = args[:api] if args.key?(:api)
554
- @web_ui = args[:web_ui] if args.key?(:web_ui)
3300
+ @total_egress_bandwidth_tier = args[:total_egress_bandwidth_tier] if args.key?(:total_egress_bandwidth_tier)
555
3301
  end
556
3302
  end
557
3303
 
558
- # Network configuration for ManagementServer instance.
559
- class NetworkConfig
3304
+ # Node Affinity: the configuration of desired nodes onto which this Instance
3305
+ # could be scheduled.
3306
+ class NodeAffinity
560
3307
  include Google::Apis::Core::Hashable
561
3308
 
562
- # Optional. The resource name of the Google Compute Engine VPC network to which
563
- # the ManagementServer instance is connected.
564
- # Corresponds to the JSON property `network`
3309
+ # Optional. Corresponds to the label key of Node resource.
3310
+ # Corresponds to the JSON property `key`
565
3311
  # @return [String]
566
- attr_accessor :network
3312
+ attr_accessor :key
567
3313
 
568
- # Optional. The network connect mode of the ManagementServer instance. For this
569
- # version, only PRIVATE_SERVICE_ACCESS is supported.
570
- # Corresponds to the JSON property `peeringMode`
3314
+ # Optional. Defines the operation of node selection.
3315
+ # Corresponds to the JSON property `operator`
571
3316
  # @return [String]
572
- attr_accessor :peering_mode
3317
+ attr_accessor :operator
3318
+
3319
+ # Optional. Corresponds to the label values of Node resource.
3320
+ # Corresponds to the JSON property `values`
3321
+ # @return [Array<String>]
3322
+ attr_accessor :values
573
3323
 
574
3324
  def initialize(**args)
575
3325
  update!(**args)
@@ -577,8 +3327,9 @@ module Google
577
3327
 
578
3328
  # Update properties of this object
579
3329
  def update!(**args)
580
- @network = args[:network] if args.key?(:network)
581
- @peering_mode = args[:peering_mode] if args.key?(:peering_mode)
3330
+ @key = args[:key] if args.key?(:key)
3331
+ @operator = args[:operator] if args.key?(:operator)
3332
+ @values = args[:values] if args.key?(:values)
582
3333
  end
583
3334
  end
584
3335
 
@@ -669,29 +3420,389 @@ module Google
669
3420
  # @return [String]
670
3421
  attr_accessor :end_time
671
3422
 
672
- # Output only. Identifies whether the user has requested cancellation of the
673
- # operation. Operations that have successfully been cancelled have Operation.
674
- # error value with a google.rpc.Status.code of 1, corresponding to `Code.
675
- # CANCELLED`.
676
- # Corresponds to the JSON property `requestedCancellation`
3423
+ # Output only. Identifies whether the user has requested cancellation of the
3424
+ # operation. Operations that have successfully been cancelled have Operation.
3425
+ # error value with a google.rpc.Status.code of 1, corresponding to 'Code.
3426
+ # CANCELLED'.
3427
+ # Corresponds to the JSON property `requestedCancellation`
3428
+ # @return [Boolean]
3429
+ attr_accessor :requested_cancellation
3430
+ alias_method :requested_cancellation?, :requested_cancellation
3431
+
3432
+ # Output only. Human-readable status of the operation, if any.
3433
+ # Corresponds to the JSON property `statusMessage`
3434
+ # @return [String]
3435
+ attr_accessor :status_message
3436
+
3437
+ # Output only. Server-defined resource path for the target of the operation.
3438
+ # Corresponds to the JSON property `target`
3439
+ # @return [String]
3440
+ attr_accessor :target
3441
+
3442
+ # Output only. Name of the verb executed by the operation.
3443
+ # Corresponds to the JSON property `verb`
3444
+ # @return [String]
3445
+ attr_accessor :verb
3446
+
3447
+ def initialize(**args)
3448
+ update!(**args)
3449
+ end
3450
+
3451
+ # Update properties of this object
3452
+ def update!(**args)
3453
+ @additional_info = args[:additional_info] if args.key?(:additional_info)
3454
+ @api_version = args[:api_version] if args.key?(:api_version)
3455
+ @create_time = args[:create_time] if args.key?(:create_time)
3456
+ @end_time = args[:end_time] if args.key?(:end_time)
3457
+ @requested_cancellation = args[:requested_cancellation] if args.key?(:requested_cancellation)
3458
+ @status_message = args[:status_message] if args.key?(:status_message)
3459
+ @target = args[:target] if args.key?(:target)
3460
+ @verb = args[:verb] if args.key?(:verb)
3461
+ end
3462
+ end
3463
+
3464
+ # Message describing that the location of the customer resource is tied to
3465
+ # placer allocations
3466
+ class PlacerLocation
3467
+ include Google::Apis::Core::Hashable
3468
+
3469
+ # Directory with a config related to it in placer (e.g. "/placer/prod/home/my-
3470
+ # root/my-dir")
3471
+ # Corresponds to the JSON property `placerConfig`
3472
+ # @return [String]
3473
+ attr_accessor :placer_config
3474
+
3475
+ def initialize(**args)
3476
+ update!(**args)
3477
+ end
3478
+
3479
+ # Update properties of this object
3480
+ def update!(**args)
3481
+ @placer_config = args[:placer_config] if args.key?(:placer_config)
3482
+ end
3483
+ end
3484
+
3485
+ # An Identity and Access Management (IAM) policy, which specifies access
3486
+ # controls for Google Cloud resources. A `Policy` is a collection of `bindings`.
3487
+ # A `binding` binds one or more `members`, or principals, to a single `role`.
3488
+ # Principals can be user accounts, service accounts, Google groups, and domains (
3489
+ # such as G Suite). A `role` is a named list of permissions; each `role` can be
3490
+ # an IAM predefined role or a user-created custom role. For some types of Google
3491
+ # Cloud resources, a `binding` can also specify a `condition`, which is a
3492
+ # logical expression that allows access to a resource only if the expression
3493
+ # evaluates to `true`. A condition can add constraints based on attributes of
3494
+ # the request, the resource, or both. To learn which resources support
3495
+ # conditions in their IAM policies, see the [IAM documentation](https://cloud.
3496
+ # google.com/iam/help/conditions/resource-policies). **JSON example:** ``` ` "
3497
+ # bindings": [ ` "role": "roles/resourcemanager.organizationAdmin", "members": [
3498
+ # "user:mike@example.com", "group:admins@example.com", "domain:google.com", "
3499
+ # serviceAccount:my-project-id@appspot.gserviceaccount.com" ] `, ` "role": "
3500
+ # roles/resourcemanager.organizationViewer", "members": [ "user:eve@example.com"
3501
+ # ], "condition": ` "title": "expirable access", "description": "Does not grant
3502
+ # access after Sep 2020", "expression": "request.time < timestamp('2020-10-01T00:
3503
+ # 00:00.000Z')", ` ` ], "etag": "BwWWja0YfJA=", "version": 3 ` ``` **YAML
3504
+ # example:** ``` bindings: - members: - user:mike@example.com - group:admins@
3505
+ # example.com - domain:google.com - serviceAccount:my-project-id@appspot.
3506
+ # gserviceaccount.com role: roles/resourcemanager.organizationAdmin - members: -
3507
+ # user:eve@example.com role: roles/resourcemanager.organizationViewer condition:
3508
+ # title: expirable access description: Does not grant access after Sep 2020
3509
+ # expression: request.time < timestamp('2020-10-01T00:00:00.000Z') etag:
3510
+ # BwWWja0YfJA= version: 3 ``` For a description of IAM and its features, see the
3511
+ # [IAM documentation](https://cloud.google.com/iam/docs/).
3512
+ class Policy
3513
+ include Google::Apis::Core::Hashable
3514
+
3515
+ # Specifies cloud audit logging configuration for this policy.
3516
+ # Corresponds to the JSON property `auditConfigs`
3517
+ # @return [Array<Google::Apis::BackupdrV1::AuditConfig>]
3518
+ attr_accessor :audit_configs
3519
+
3520
+ # Associates a list of `members`, or principals, with a `role`. Optionally, may
3521
+ # specify a `condition` that determines how and when the `bindings` are applied.
3522
+ # Each of the `bindings` must contain at least one principal. The `bindings` in
3523
+ # a `Policy` can refer to up to 1,500 principals; up to 250 of these principals
3524
+ # can be Google groups. Each occurrence of a principal counts towards these
3525
+ # limits. For example, if the `bindings` grant 50 different roles to `user:alice@
3526
+ # example.com`, and not to any other principal, then you can add another 1,450
3527
+ # principals to the `bindings` in the `Policy`.
3528
+ # Corresponds to the JSON property `bindings`
3529
+ # @return [Array<Google::Apis::BackupdrV1::Binding>]
3530
+ attr_accessor :bindings
3531
+
3532
+ # `etag` is used for optimistic concurrency control as a way to help prevent
3533
+ # simultaneous updates of a policy from overwriting each other. It is strongly
3534
+ # suggested that systems make use of the `etag` in the read-modify-write cycle
3535
+ # to perform policy updates in order to avoid race conditions: An `etag` is
3536
+ # returned in the response to `getIamPolicy`, and systems are expected to put
3537
+ # that etag in the request to `setIamPolicy` to ensure that their change will be
3538
+ # applied to the same version of the policy. **Important:** If you use IAM
3539
+ # Conditions, you must include the `etag` field whenever you call `setIamPolicy`.
3540
+ # If you omit this field, then IAM allows you to overwrite a version `3` policy
3541
+ # with a version `1` policy, and all of the conditions in the version `3` policy
3542
+ # are lost.
3543
+ # Corresponds to the JSON property `etag`
3544
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
3545
+ # @return [String]
3546
+ attr_accessor :etag
3547
+
3548
+ # Specifies the format of the policy. Valid values are `0`, `1`, and `3`.
3549
+ # Requests that specify an invalid value are rejected. Any operation that
3550
+ # affects conditional role bindings must specify version `3`. This requirement
3551
+ # applies to the following operations: * Getting a policy that includes a
3552
+ # conditional role binding * Adding a conditional role binding to a policy *
3553
+ # Changing a conditional role binding in a policy * Removing any role binding,
3554
+ # with or without a condition, from a policy that includes conditions **
3555
+ # Important:** If you use IAM Conditions, you must include the `etag` field
3556
+ # whenever you call `setIamPolicy`. If you omit this field, then IAM allows you
3557
+ # to overwrite a version `3` policy with a version `1` policy, and all of the
3558
+ # conditions in the version `3` policy are lost. If a policy does not include
3559
+ # any conditions, operations on that policy may specify any valid version or
3560
+ # leave the field unset. To learn which resources support conditions in their
3561
+ # IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/
3562
+ # conditions/resource-policies).
3563
+ # Corresponds to the JSON property `version`
3564
+ # @return [Fixnum]
3565
+ attr_accessor :version
3566
+
3567
+ def initialize(**args)
3568
+ update!(**args)
3569
+ end
3570
+
3571
+ # Update properties of this object
3572
+ def update!(**args)
3573
+ @audit_configs = args[:audit_configs] if args.key?(:audit_configs)
3574
+ @bindings = args[:bindings] if args.key?(:bindings)
3575
+ @etag = args[:etag] if args.key?(:etag)
3576
+ @version = args[:version] if args.key?(:version)
3577
+ end
3578
+ end
3579
+
3580
+ # To be used for specifying the intended distribution of regional compute.
3581
+ # googleapis.com/InstanceGroupManager instances
3582
+ class RegionalMigDistributionPolicy
3583
+ include Google::Apis::Core::Hashable
3584
+
3585
+ # The shape in which the group converges around distribution of resources.
3586
+ # Instance of proto2 enum
3587
+ # Corresponds to the JSON property `targetShape`
3588
+ # @return [Fixnum]
3589
+ attr_accessor :target_shape
3590
+
3591
+ # Cloud zones used by regional MIG to create instances.
3592
+ # Corresponds to the JSON property `zones`
3593
+ # @return [Array<Google::Apis::BackupdrV1::ZoneConfiguration>]
3594
+ attr_accessor :zones
3595
+
3596
+ def initialize(**args)
3597
+ update!(**args)
3598
+ end
3599
+
3600
+ # Update properties of this object
3601
+ def update!(**args)
3602
+ @target_shape = args[:target_shape] if args.key?(:target_shape)
3603
+ @zones = args[:zones] if args.key?(:zones)
3604
+ end
3605
+ end
3606
+
3607
+ # Message for deleting a DataSource.
3608
+ class RemoveDataSourceRequest
3609
+ include Google::Apis::Core::Hashable
3610
+
3611
+ # Optional. An optional request ID to identify requests. Specify a unique
3612
+ # request ID so that if you must retry your request, the server will know to
3613
+ # ignore the request if it has already been completed. The server will guarantee
3614
+ # that for at least 60 minutes after the first request. For example, consider a
3615
+ # situation where you make an initial request and the request times out. If you
3616
+ # make the request again with the same request ID, the server can check if
3617
+ # original operation with the same request ID was received, and if so, will
3618
+ # ignore the second request. This prevents clients from accidentally creating
3619
+ # duplicate commitments. The request ID must be a valid UUID with the exception
3620
+ # that zero UUID is not supported (00000000-0000-0000-0000-000000000000).
3621
+ # Corresponds to the JSON property `requestId`
3622
+ # @return [String]
3623
+ attr_accessor :request_id
3624
+
3625
+ def initialize(**args)
3626
+ update!(**args)
3627
+ end
3628
+
3629
+ # Update properties of this object
3630
+ def update!(**args)
3631
+ @request_id = args[:request_id] if args.key?(:request_id)
3632
+ end
3633
+ end
3634
+
3635
+ #
3636
+ class RequirementOverride
3637
+ include Google::Apis::Core::Hashable
3638
+
3639
+ #
3640
+ # Corresponds to the JSON property `ziOverride`
3641
+ # @return [String]
3642
+ attr_accessor :zi_override
3643
+
3644
+ #
3645
+ # Corresponds to the JSON property `zsOverride`
3646
+ # @return [String]
3647
+ attr_accessor :zs_override
3648
+
3649
+ def initialize(**args)
3650
+ update!(**args)
3651
+ end
3652
+
3653
+ # Update properties of this object
3654
+ def update!(**args)
3655
+ @zi_override = args[:zi_override] if args.key?(:zi_override)
3656
+ @zs_override = args[:zs_override] if args.key?(:zs_override)
3657
+ end
3658
+ end
3659
+
3660
+ # Request message for restoring from a Backup.
3661
+ class RestoreBackupRequest
3662
+ include Google::Apis::Core::Hashable
3663
+
3664
+ # ComputeInstanceRestoreProperties represents Compute Engine instance properties
3665
+ # to be overridden during restore.
3666
+ # Corresponds to the JSON property `computeInstanceRestoreProperties`
3667
+ # @return [Google::Apis::BackupdrV1::ComputeInstanceRestoreProperties]
3668
+ attr_accessor :compute_instance_restore_properties
3669
+
3670
+ # ComputeInstanceTargetEnvironment represents Compute Engine target environment
3671
+ # to be used during restore.
3672
+ # Corresponds to the JSON property `computeInstanceTargetEnvironment`
3673
+ # @return [Google::Apis::BackupdrV1::ComputeInstanceTargetEnvironment]
3674
+ attr_accessor :compute_instance_target_environment
3675
+
3676
+ # Optional. An optional request ID to identify requests. Specify a unique
3677
+ # request ID so that if you must retry your request, the server will know to
3678
+ # ignore the request if it has already been completed. The server will guarantee
3679
+ # that for at least 60 minutes after the first request. For example, consider a
3680
+ # situation where you make an initial request and the request times out. If you
3681
+ # make the request again with the same request ID, the server can check if
3682
+ # original operation with the same request ID was received, and if so, will
3683
+ # ignore the second request. This prevents clients from accidentally creating
3684
+ # duplicate commitments. The request ID must be a valid UUID with the exception
3685
+ # that zero UUID is not supported (00000000-0000-0000-0000-000000000000).
3686
+ # Corresponds to the JSON property `requestId`
3687
+ # @return [String]
3688
+ attr_accessor :request_id
3689
+
3690
+ def initialize(**args)
3691
+ update!(**args)
3692
+ end
3693
+
3694
+ # Update properties of this object
3695
+ def update!(**args)
3696
+ @compute_instance_restore_properties = args[:compute_instance_restore_properties] if args.key?(:compute_instance_restore_properties)
3697
+ @compute_instance_target_environment = args[:compute_instance_target_environment] if args.key?(:compute_instance_target_environment)
3698
+ @request_id = args[:request_id] if args.key?(:request_id)
3699
+ end
3700
+ end
3701
+
3702
+ # Message for rules config info.
3703
+ class RuleConfigInfo
3704
+ include Google::Apis::Core::Hashable
3705
+
3706
+ # Output only. TODO b/341576760: Remove deprecated BV and Datasource field form
3707
+ # BP and BPA once UI removed all dependencies on them Output Only. Resource name
3708
+ # of data source which will be used as storage location for backups taken by
3709
+ # specified rule. Format : projects/`project`/locations/`location`/backupVaults/`
3710
+ # backupvault`/dataSources/`datasource`
3711
+ # Corresponds to the JSON property `dataSource`
3712
+ # @return [String]
3713
+ attr_accessor :data_source
3714
+
3715
+ # The `Status` type defines a logical error model that is suitable for different
3716
+ # programming environments, including REST APIs and RPC APIs. It is used by [
3717
+ # gRPC](https://github.com/grpc). Each `Status` message contains three pieces of
3718
+ # data: error code, error message, and error details. You can find out more
3719
+ # about this error model and how to work with it in the [API Design Guide](https:
3720
+ # //cloud.google.com/apis/design/errors).
3721
+ # Corresponds to the JSON property `lastBackupError`
3722
+ # @return [Google::Apis::BackupdrV1::Status]
3723
+ attr_accessor :last_backup_error
3724
+
3725
+ # Output only. The last backup state for rule.
3726
+ # Corresponds to the JSON property `lastBackupState`
3727
+ # @return [String]
3728
+ attr_accessor :last_backup_state
3729
+
3730
+ # Output only. The point in time when the last successful backup was captured
3731
+ # from the source.
3732
+ # Corresponds to the JSON property `lastSuccessfulBackupConsistencyTime`
3733
+ # @return [String]
3734
+ attr_accessor :last_successful_backup_consistency_time
3735
+
3736
+ # Output only. Output Only. Backup Rule id fetched from backup plan.
3737
+ # Corresponds to the JSON property `ruleId`
3738
+ # @return [String]
3739
+ attr_accessor :rule_id
3740
+
3741
+ def initialize(**args)
3742
+ update!(**args)
3743
+ end
3744
+
3745
+ # Update properties of this object
3746
+ def update!(**args)
3747
+ @data_source = args[:data_source] if args.key?(:data_source)
3748
+ @last_backup_error = args[:last_backup_error] if args.key?(:last_backup_error)
3749
+ @last_backup_state = args[:last_backup_state] if args.key?(:last_backup_state)
3750
+ @last_successful_backup_consistency_time = args[:last_successful_backup_consistency_time] if args.key?(:last_successful_backup_consistency_time)
3751
+ @rule_id = args[:rule_id] if args.key?(:rule_id)
3752
+ end
3753
+ end
3754
+
3755
+ # Sets the scheduling options for an Instance.
3756
+ class Scheduling
3757
+ include Google::Apis::Core::Hashable
3758
+
3759
+ # Optional. Specifies whether the instance should be automatically restarted if
3760
+ # it is terminated by Compute Engine (not terminated by a user).
3761
+ # Corresponds to the JSON property `automaticRestart`
677
3762
  # @return [Boolean]
678
- attr_accessor :requested_cancellation
679
- alias_method :requested_cancellation?, :requested_cancellation
3763
+ attr_accessor :automatic_restart
3764
+ alias_method :automatic_restart?, :automatic_restart
680
3765
 
681
- # Output only. Human-readable status of the operation, if any.
682
- # Corresponds to the JSON property `statusMessage`
3766
+ # Optional. Specifies the termination action for the instance.
3767
+ # Corresponds to the JSON property `instanceTerminationAction`
683
3768
  # @return [String]
684
- attr_accessor :status_message
3769
+ attr_accessor :instance_termination_action
3770
+
3771
+ # A SchedulingDuration represents a fixed-length span of time represented as a
3772
+ # count of seconds and fractions of seconds at nanosecond resolution. It is
3773
+ # independent of any calendar and concepts like "day" or "month". Range is
3774
+ # approximately 10,000 years.
3775
+ # Corresponds to the JSON property `localSsdRecoveryTimeout`
3776
+ # @return [Google::Apis::BackupdrV1::SchedulingDuration]
3777
+ attr_accessor :local_ssd_recovery_timeout
3778
+
3779
+ # Optional. The minimum number of virtual CPUs this instance will consume when
3780
+ # running on a sole-tenant node.
3781
+ # Corresponds to the JSON property `minNodeCpus`
3782
+ # @return [Fixnum]
3783
+ attr_accessor :min_node_cpus
685
3784
 
686
- # Output only. Server-defined resource path for the target of the operation.
687
- # Corresponds to the JSON property `target`
3785
+ # Optional. A set of node affinity and anti-affinity configurations. Overrides
3786
+ # reservationAffinity.
3787
+ # Corresponds to the JSON property `nodeAffinities`
3788
+ # @return [Array<Google::Apis::BackupdrV1::NodeAffinity>]
3789
+ attr_accessor :node_affinities
3790
+
3791
+ # Optional. Defines the maintenance behavior for this instance.
3792
+ # Corresponds to the JSON property `onHostMaintenance`
688
3793
  # @return [String]
689
- attr_accessor :target
3794
+ attr_accessor :on_host_maintenance
690
3795
 
691
- # Output only. Name of the verb executed by the operation.
692
- # Corresponds to the JSON property `verb`
3796
+ # Optional. Defines whether the instance is preemptible.
3797
+ # Corresponds to the JSON property `preemptible`
3798
+ # @return [Boolean]
3799
+ attr_accessor :preemptible
3800
+ alias_method :preemptible?, :preemptible
3801
+
3802
+ # Optional. Specifies the provisioning model of the instance.
3803
+ # Corresponds to the JSON property `provisioningModel`
693
3804
  # @return [String]
694
- attr_accessor :verb
3805
+ attr_accessor :provisioning_model
695
3806
 
696
3807
  def initialize(**args)
697
3808
  update!(**args)
@@ -699,98 +3810,58 @@ module Google
699
3810
 
700
3811
  # Update properties of this object
701
3812
  def update!(**args)
702
- @additional_info = args[:additional_info] if args.key?(:additional_info)
703
- @api_version = args[:api_version] if args.key?(:api_version)
704
- @create_time = args[:create_time] if args.key?(:create_time)
705
- @end_time = args[:end_time] if args.key?(:end_time)
706
- @requested_cancellation = args[:requested_cancellation] if args.key?(:requested_cancellation)
707
- @status_message = args[:status_message] if args.key?(:status_message)
708
- @target = args[:target] if args.key?(:target)
709
- @verb = args[:verb] if args.key?(:verb)
3813
+ @automatic_restart = args[:automatic_restart] if args.key?(:automatic_restart)
3814
+ @instance_termination_action = args[:instance_termination_action] if args.key?(:instance_termination_action)
3815
+ @local_ssd_recovery_timeout = args[:local_ssd_recovery_timeout] if args.key?(:local_ssd_recovery_timeout)
3816
+ @min_node_cpus = args[:min_node_cpus] if args.key?(:min_node_cpus)
3817
+ @node_affinities = args[:node_affinities] if args.key?(:node_affinities)
3818
+ @on_host_maintenance = args[:on_host_maintenance] if args.key?(:on_host_maintenance)
3819
+ @preemptible = args[:preemptible] if args.key?(:preemptible)
3820
+ @provisioning_model = args[:provisioning_model] if args.key?(:provisioning_model)
710
3821
  end
711
3822
  end
712
3823
 
713
- # An Identity and Access Management (IAM) policy, which specifies access
714
- # controls for Google Cloud resources. A `Policy` is a collection of `bindings`.
715
- # A `binding` binds one or more `members`, or principals, to a single `role`.
716
- # Principals can be user accounts, service accounts, Google groups, and domains (
717
- # such as G Suite). A `role` is a named list of permissions; each `role` can be
718
- # an IAM predefined role or a user-created custom role. For some types of Google
719
- # Cloud resources, a `binding` can also specify a `condition`, which is a
720
- # logical expression that allows access to a resource only if the expression
721
- # evaluates to `true`. A condition can add constraints based on attributes of
722
- # the request, the resource, or both. To learn which resources support
723
- # conditions in their IAM policies, see the [IAM documentation](https://cloud.
724
- # google.com/iam/help/conditions/resource-policies). **JSON example:** ``` ` "
725
- # bindings": [ ` "role": "roles/resourcemanager.organizationAdmin", "members": [
726
- # "user:mike@example.com", "group:admins@example.com", "domain:google.com", "
727
- # serviceAccount:my-project-id@appspot.gserviceaccount.com" ] `, ` "role": "
728
- # roles/resourcemanager.organizationViewer", "members": [ "user:eve@example.com"
729
- # ], "condition": ` "title": "expirable access", "description": "Does not grant
730
- # access after Sep 2020", "expression": "request.time < timestamp('2020-10-01T00:
731
- # 00:00.000Z')", ` ` ], "etag": "BwWWja0YfJA=", "version": 3 ` ``` **YAML
732
- # example:** ``` bindings: - members: - user:mike@example.com - group:admins@
733
- # example.com - domain:google.com - serviceAccount:my-project-id@appspot.
734
- # gserviceaccount.com role: roles/resourcemanager.organizationAdmin - members: -
735
- # user:eve@example.com role: roles/resourcemanager.organizationViewer condition:
736
- # title: expirable access description: Does not grant access after Sep 2020
737
- # expression: request.time < timestamp('2020-10-01T00:00:00.000Z') etag:
738
- # BwWWja0YfJA= version: 3 ``` For a description of IAM and its features, see the
739
- # [IAM documentation](https://cloud.google.com/iam/docs/).
740
- class Policy
3824
+ # A SchedulingDuration represents a fixed-length span of time represented as a
3825
+ # count of seconds and fractions of seconds at nanosecond resolution. It is
3826
+ # independent of any calendar and concepts like "day" or "month". Range is
3827
+ # approximately 10,000 years.
3828
+ class SchedulingDuration
741
3829
  include Google::Apis::Core::Hashable
742
3830
 
743
- # Specifies cloud audit logging configuration for this policy.
744
- # Corresponds to the JSON property `auditConfigs`
745
- # @return [Array<Google::Apis::BackupdrV1::AuditConfig>]
746
- attr_accessor :audit_configs
3831
+ # Optional. Span of time that's a fraction of a second at nanosecond resolution.
3832
+ # Corresponds to the JSON property `nanos`
3833
+ # @return [Fixnum]
3834
+ attr_accessor :nanos
747
3835
 
748
- # Associates a list of `members`, or principals, with a `role`. Optionally, may
749
- # specify a `condition` that determines how and when the `bindings` are applied.
750
- # Each of the `bindings` must contain at least one principal. The `bindings` in
751
- # a `Policy` can refer to up to 1,500 principals; up to 250 of these principals
752
- # can be Google groups. Each occurrence of a principal counts towards these
753
- # limits. For example, if the `bindings` grant 50 different roles to `user:alice@
754
- # example.com`, and not to any other principal, then you can add another 1,450
755
- # principals to the `bindings` in the `Policy`.
756
- # Corresponds to the JSON property `bindings`
757
- # @return [Array<Google::Apis::BackupdrV1::Binding>]
758
- attr_accessor :bindings
3836
+ # Optional. Span of time at a resolution of a second.
3837
+ # Corresponds to the JSON property `seconds`
3838
+ # @return [Fixnum]
3839
+ attr_accessor :seconds
759
3840
 
760
- # `etag` is used for optimistic concurrency control as a way to help prevent
761
- # simultaneous updates of a policy from overwriting each other. It is strongly
762
- # suggested that systems make use of the `etag` in the read-modify-write cycle
763
- # to perform policy updates in order to avoid race conditions: An `etag` is
764
- # returned in the response to `getIamPolicy`, and systems are expected to put
765
- # that etag in the request to `setIamPolicy` to ensure that their change will be
766
- # applied to the same version of the policy. **Important:** If you use IAM
767
- # Conditions, you must include the `etag` field whenever you call `setIamPolicy`.
768
- # If you omit this field, then IAM allows you to overwrite a version `3` policy
769
- # with a version `1` policy, and all of the conditions in the version `3` policy
770
- # are lost.
771
- # Corresponds to the JSON property `etag`
772
- # NOTE: Values are automatically base64 encoded/decoded in the client library.
3841
+ def initialize(**args)
3842
+ update!(**args)
3843
+ end
3844
+
3845
+ # Update properties of this object
3846
+ def update!(**args)
3847
+ @nanos = args[:nanos] if args.key?(:nanos)
3848
+ @seconds = args[:seconds] if args.key?(:seconds)
3849
+ end
3850
+ end
3851
+
3852
+ # A service account.
3853
+ class ServiceAccount
3854
+ include Google::Apis::Core::Hashable
3855
+
3856
+ # Optional. Email address of the service account.
3857
+ # Corresponds to the JSON property `email`
773
3858
  # @return [String]
774
- attr_accessor :etag
3859
+ attr_accessor :email
775
3860
 
776
- # Specifies the format of the policy. Valid values are `0`, `1`, and `3`.
777
- # Requests that specify an invalid value are rejected. Any operation that
778
- # affects conditional role bindings must specify version `3`. This requirement
779
- # applies to the following operations: * Getting a policy that includes a
780
- # conditional role binding * Adding a conditional role binding to a policy *
781
- # Changing a conditional role binding in a policy * Removing any role binding,
782
- # with or without a condition, from a policy that includes conditions **
783
- # Important:** If you use IAM Conditions, you must include the `etag` field
784
- # whenever you call `setIamPolicy`. If you omit this field, then IAM allows you
785
- # to overwrite a version `3` policy with a version `1` policy, and all of the
786
- # conditions in the version `3` policy are lost. If a policy does not include
787
- # any conditions, operations on that policy may specify any valid version or
788
- # leave the field unset. To learn which resources support conditions in their
789
- # IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/
790
- # conditions/resource-policies).
791
- # Corresponds to the JSON property `version`
792
- # @return [Fixnum]
793
- attr_accessor :version
3861
+ # Optional. The list of scopes to be made available for this service account.
3862
+ # Corresponds to the JSON property `scopes`
3863
+ # @return [Array<String>]
3864
+ attr_accessor :scopes
794
3865
 
795
3866
  def initialize(**args)
796
3867
  update!(**args)
@@ -798,10 +3869,29 @@ module Google
798
3869
 
799
3870
  # Update properties of this object
800
3871
  def update!(**args)
801
- @audit_configs = args[:audit_configs] if args.key?(:audit_configs)
802
- @bindings = args[:bindings] if args.key?(:bindings)
803
- @etag = args[:etag] if args.key?(:etag)
804
- @version = args[:version] if args.key?(:version)
3872
+ @email = args[:email] if args.key?(:email)
3873
+ @scopes = args[:scopes] if args.key?(:scopes)
3874
+ end
3875
+ end
3876
+
3877
+ # ServiceLockInfo represents the details of a lock taken by the service on a
3878
+ # Backup resource.
3879
+ class ServiceLockInfo
3880
+ include Google::Apis::Core::Hashable
3881
+
3882
+ # Output only. The name of the operation that created this lock. The lock will
3883
+ # automatically be released when the operation completes.
3884
+ # Corresponds to the JSON property `operation`
3885
+ # @return [String]
3886
+ attr_accessor :operation
3887
+
3888
+ def initialize(**args)
3889
+ update!(**args)
3890
+ end
3891
+
3892
+ # Update properties of this object
3893
+ def update!(**args)
3894
+ @operation = args[:operation] if args.key?(:operation)
805
3895
  end
806
3896
  end
807
3897
 
@@ -858,6 +3948,156 @@ module Google
858
3948
  end
859
3949
  end
860
3950
 
3951
+ # Request message for SetStatusInternal method.
3952
+ class SetInternalStatusRequest
3953
+ include Google::Apis::Core::Hashable
3954
+
3955
+ # Required. Output only. The new BackupConfigState to set for the DataSource.
3956
+ # Corresponds to the JSON property `backupConfigState`
3957
+ # @return [String]
3958
+ attr_accessor :backup_config_state
3959
+
3960
+ # Optional. An optional request ID to identify requests. Specify a unique
3961
+ # request ID so that if you must retry your request, the server will know to
3962
+ # ignore the request if it has already been completed. The server will guarantee
3963
+ # that for at least 60 minutes after the first request. The request ID must be a
3964
+ # valid UUID with the exception that zero UUID is not supported (00000000-0000-
3965
+ # 0000-0000-000000000000).
3966
+ # Corresponds to the JSON property `requestId`
3967
+ # @return [String]
3968
+ attr_accessor :request_id
3969
+
3970
+ # Required. The value required for this method to work. This field must be the
3971
+ # 32-byte SHA256 hash of the DataSourceID. The DataSourceID used here is only
3972
+ # the final piece of the fully qualified resource path for this DataSource (i.e.
3973
+ # the part after '.../dataSources/'). This field exists to make this method
3974
+ # difficult to call since it is intended for use only by Backup Appliances.
3975
+ # Corresponds to the JSON property `value`
3976
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
3977
+ # @return [String]
3978
+ attr_accessor :value
3979
+
3980
+ def initialize(**args)
3981
+ update!(**args)
3982
+ end
3983
+
3984
+ # Update properties of this object
3985
+ def update!(**args)
3986
+ @backup_config_state = args[:backup_config_state] if args.key?(:backup_config_state)
3987
+ @request_id = args[:request_id] if args.key?(:request_id)
3988
+ @value = args[:value] if args.key?(:value)
3989
+ end
3990
+ end
3991
+
3992
+ #
3993
+ class SpannerLocation
3994
+ include Google::Apis::Core::Hashable
3995
+
3996
+ # Set of backups used by the resource with name in the same format as what is
3997
+ # available at http://table/spanner_automon.backup_metadata
3998
+ # Corresponds to the JSON property `backupName`
3999
+ # @return [Array<String>]
4000
+ attr_accessor :backup_name
4001
+
4002
+ # Set of databases used by the resource in format /span//
4003
+ # Corresponds to the JSON property `dbName`
4004
+ # @return [Array<String>]
4005
+ attr_accessor :db_name
4006
+
4007
+ def initialize(**args)
4008
+ update!(**args)
4009
+ end
4010
+
4011
+ # Update properties of this object
4012
+ def update!(**args)
4013
+ @backup_name = args[:backup_name] if args.key?(:backup_name)
4014
+ @db_name = args[:db_name] if args.key?(:db_name)
4015
+ end
4016
+ end
4017
+
4018
+ # `StandardSchedule` defines a schedule that run within the confines of a
4019
+ # defined window of days. We can define recurrence type for schedule as HOURLY,
4020
+ # DAILY, WEEKLY, MONTHLY or YEARLY.
4021
+ class StandardSchedule
4022
+ include Google::Apis::Core::Hashable
4023
+
4024
+ # `BackupWindow` defines a window of the day during which backup jobs will run.
4025
+ # Corresponds to the JSON property `backupWindow`
4026
+ # @return [Google::Apis::BackupdrV1::BackupWindow]
4027
+ attr_accessor :backup_window
4028
+
4029
+ # Optional. Specifies days of months like 1, 5, or 14 on which jobs will run.
4030
+ # Values for `days_of_month` are only applicable for `recurrence_type`, `MONTHLY`
4031
+ # and `YEARLY`. A validation error will occur if other values are supplied.
4032
+ # Corresponds to the JSON property `daysOfMonth`
4033
+ # @return [Array<Fixnum>]
4034
+ attr_accessor :days_of_month
4035
+
4036
+ # Optional. Specifies days of week like, MONDAY or TUESDAY, on which jobs will
4037
+ # run. This is required for `recurrence_type`, `WEEKLY` and is not applicable
4038
+ # otherwise. A validation error will occur if a value is supplied and `
4039
+ # recurrence_type` is not `WEEKLY`.
4040
+ # Corresponds to the JSON property `daysOfWeek`
4041
+ # @return [Array<String>]
4042
+ attr_accessor :days_of_week
4043
+
4044
+ # Optional. Specifies frequency for hourly backups. A hourly frequency of 2
4045
+ # means jobs will run every 2 hours from start time till end time defined. This
4046
+ # is required for `recurrence_type`, `HOURLY` and is not applicable otherwise. A
4047
+ # validation error will occur if a value is supplied and `recurrence_type` is
4048
+ # not `HOURLY`. Value of hourly frequency should be between 6 and 23. Reason for
4049
+ # limit : We found that there is bandwidth limitation of 3GB/S for GMI while
4050
+ # taking a backup and 5GB/S while doing a restore. Given the amount of parallel
4051
+ # backups and restore we are targeting, this will potentially take the backup
4052
+ # time to mins and hours (in worst case scenario).
4053
+ # Corresponds to the JSON property `hourlyFrequency`
4054
+ # @return [Fixnum]
4055
+ attr_accessor :hourly_frequency
4056
+
4057
+ # Optional. Specifies the months of year, like `FEBRUARY` and/or `MAY`, on which
4058
+ # jobs will run. This field is only applicable when `recurrence_type` is `YEARLY`
4059
+ # . A validation error will occur if other values are supplied.
4060
+ # Corresponds to the JSON property `months`
4061
+ # @return [Array<String>]
4062
+ attr_accessor :months
4063
+
4064
+ # Required. Specifies the `RecurrenceType` for the schedule.
4065
+ # Corresponds to the JSON property `recurrenceType`
4066
+ # @return [String]
4067
+ attr_accessor :recurrence_type
4068
+
4069
+ # Required. The time zone to be used when interpreting the schedule. The value
4070
+ # of this field must be a time zone name from the IANA tz database. See https://
4071
+ # en.wikipedia.org/wiki/List_of_tz_database_time_zones for the list of valid
4072
+ # timezone names. For e.g., Europe/Paris.
4073
+ # Corresponds to the JSON property `timeZone`
4074
+ # @return [String]
4075
+ attr_accessor :time_zone
4076
+
4077
+ # `WeekDayOfMonth` defines the week day of the month on which the backups will
4078
+ # run. The message combines a `WeekOfMonth` and `DayOfWeek` to produce values
4079
+ # like `FIRST`/`MONDAY` or `LAST`/`FRIDAY`.
4080
+ # Corresponds to the JSON property `weekDayOfMonth`
4081
+ # @return [Google::Apis::BackupdrV1::WeekDayOfMonth]
4082
+ attr_accessor :week_day_of_month
4083
+
4084
+ def initialize(**args)
4085
+ update!(**args)
4086
+ end
4087
+
4088
+ # Update properties of this object
4089
+ def update!(**args)
4090
+ @backup_window = args[:backup_window] if args.key?(:backup_window)
4091
+ @days_of_month = args[:days_of_month] if args.key?(:days_of_month)
4092
+ @days_of_week = args[:days_of_week] if args.key?(:days_of_week)
4093
+ @hourly_frequency = args[:hourly_frequency] if args.key?(:hourly_frequency)
4094
+ @months = args[:months] if args.key?(:months)
4095
+ @recurrence_type = args[:recurrence_type] if args.key?(:recurrence_type)
4096
+ @time_zone = args[:time_zone] if args.key?(:time_zone)
4097
+ @week_day_of_month = args[:week_day_of_month] if args.key?(:week_day_of_month)
4098
+ end
4099
+ end
4100
+
861
4101
  # The `Status` type defines a logical error model that is suitable for different
862
4102
  # programming environments, including REST APIs and RPC APIs. It is used by [
863
4103
  # gRPC](https://github.com/grpc). Each `Status` message contains three pieces of
@@ -897,6 +4137,45 @@ module Google
897
4137
  end
898
4138
  end
899
4139
 
4140
+ # A set of instance tags.
4141
+ class Tags
4142
+ include Google::Apis::Core::Hashable
4143
+
4144
+ # Optional. An array of tags. Each tag must be 1-63 characters long, and comply
4145
+ # with RFC1035.
4146
+ # Corresponds to the JSON property `items`
4147
+ # @return [Array<String>]
4148
+ attr_accessor :items
4149
+
4150
+ def initialize(**args)
4151
+ update!(**args)
4152
+ end
4153
+
4154
+ # Update properties of this object
4155
+ def update!(**args)
4156
+ @items = args[:items] if args.key?(:items)
4157
+ end
4158
+ end
4159
+
4160
+ #
4161
+ class TenantProjectProxy
4162
+ include Google::Apis::Core::Hashable
4163
+
4164
+ #
4165
+ # Corresponds to the JSON property `projectNumbers`
4166
+ # @return [Array<String>]
4167
+ attr_accessor :project_numbers
4168
+
4169
+ def initialize(**args)
4170
+ update!(**args)
4171
+ end
4172
+
4173
+ # Update properties of this object
4174
+ def update!(**args)
4175
+ @project_numbers = args[:project_numbers] if args.key?(:project_numbers)
4176
+ end
4177
+ end
4178
+
900
4179
  # Request message for `TestIamPermissions` method.
901
4180
  class TestIamPermissionsRequest
902
4181
  include Google::Apis::Core::Hashable
@@ -937,6 +4216,67 @@ module Google
937
4216
  end
938
4217
  end
939
4218
 
4219
+ # Request message for triggering a backup.
4220
+ class TriggerBackupRequest
4221
+ include Google::Apis::Core::Hashable
4222
+
4223
+ # Optional. An optional request ID to identify requests. Specify a unique
4224
+ # request ID so that if you must retry your request, the server will know to
4225
+ # ignore the request if it has already been completed. The server will guarantee
4226
+ # that for at least 60 minutes after the first request. For example, consider a
4227
+ # situation where you make an initial request and the request times out. If you
4228
+ # make the request again with the same request ID, the server can check if
4229
+ # original operation with the same request ID was received, and if so, will
4230
+ # ignore the second request. This prevents clients from accidentally creating
4231
+ # duplicate commitments. The request ID must be a valid UUID with the exception
4232
+ # that zero UUID is not supported (00000000-0000-0000-0000-000000000000).
4233
+ # Corresponds to the JSON property `requestId`
4234
+ # @return [String]
4235
+ attr_accessor :request_id
4236
+
4237
+ # Required. backup rule_id for which a backup needs to be triggered.
4238
+ # Corresponds to the JSON property `ruleId`
4239
+ # @return [String]
4240
+ attr_accessor :rule_id
4241
+
4242
+ def initialize(**args)
4243
+ update!(**args)
4244
+ end
4245
+
4246
+ # Update properties of this object
4247
+ def update!(**args)
4248
+ @request_id = args[:request_id] if args.key?(:request_id)
4249
+ @rule_id = args[:rule_id] if args.key?(:rule_id)
4250
+ end
4251
+ end
4252
+
4253
+ # `WeekDayOfMonth` defines the week day of the month on which the backups will
4254
+ # run. The message combines a `WeekOfMonth` and `DayOfWeek` to produce values
4255
+ # like `FIRST`/`MONDAY` or `LAST`/`FRIDAY`.
4256
+ class WeekDayOfMonth
4257
+ include Google::Apis::Core::Hashable
4258
+
4259
+ # Required. Specifies the day of the week.
4260
+ # Corresponds to the JSON property `dayOfWeek`
4261
+ # @return [String]
4262
+ attr_accessor :day_of_week
4263
+
4264
+ # Required. Specifies the week of the month.
4265
+ # Corresponds to the JSON property `weekOfMonth`
4266
+ # @return [String]
4267
+ attr_accessor :week_of_month
4268
+
4269
+ def initialize(**args)
4270
+ update!(**args)
4271
+ end
4272
+
4273
+ # Update properties of this object
4274
+ def update!(**args)
4275
+ @day_of_week = args[:day_of_week] if args.key?(:day_of_week)
4276
+ @week_of_month = args[:week_of_month] if args.key?(:week_of_month)
4277
+ end
4278
+ end
4279
+
940
4280
  # ManagementURI depending on the Workforce Identity i.e. either 1p or 3p.
941
4281
  class WorkforceIdentityBasedManagementUri
942
4282
  include Google::Apis::Core::Hashable
@@ -986,6 +4326,25 @@ module Google
986
4326
  @third_party_oauth2_client_id = args[:third_party_oauth2_client_id] if args.key?(:third_party_oauth2_client_id)
987
4327
  end
988
4328
  end
4329
+
4330
+ #
4331
+ class ZoneConfiguration
4332
+ include Google::Apis::Core::Hashable
4333
+
4334
+ #
4335
+ # Corresponds to the JSON property `zone`
4336
+ # @return [String]
4337
+ attr_accessor :zone
4338
+
4339
+ def initialize(**args)
4340
+ update!(**args)
4341
+ end
4342
+
4343
+ # Update properties of this object
4344
+ def update!(**args)
4345
+ @zone = args[:zone] if args.key?(:zone)
4346
+ end
4347
+ end
989
4348
  end
990
4349
  end
991
4350
  end