google-apis-backupdr_v1 0.11.0 → 0.13.0

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