google-apis-backupdr_v1 0.12.0 → 0.14.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -143,6 +143,50 @@ module Google
143
143
  end
144
144
  end
145
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
+
146
190
  # An alias IP range attached to an instance's network interface.
147
191
  class AliasIpRange
148
192
  include Google::Apis::Core::Hashable
@@ -170,6 +214,85 @@ module Google
170
214
  end
171
215
  end
172
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
+
173
296
  # An instance-attached disk resource.
174
297
  class AttachedDisk
175
298
  include Google::Apis::Core::Hashable
@@ -210,16 +333,16 @@ module Google
210
333
  # @return [Fixnum]
211
334
  attr_accessor :disk_size_gb
212
335
 
213
- # Optional. Specifies the type of the disk.
336
+ # Optional. Output only. The URI of the disk type resource. For example:
337
+ # projects/project/zones/zone/diskTypes/pd-standard or pd-ssd
214
338
  # Corresponds to the JSON property `diskType`
215
339
  # @return [String]
216
340
  attr_accessor :disk_type
217
341
 
218
- # Optional. Output only. The URI of the disk type resource. For example:
219
- # projects/project/zones/zone/diskTypes/pd-standard or pd-ssd
220
- # Corresponds to the JSON property `diskTypeUri`
342
+ # Specifies the type of the disk.
343
+ # Corresponds to the JSON property `diskTypeDeprecated`
221
344
  # @return [String]
222
- attr_accessor :disk_type_uri
345
+ attr_accessor :disk_type_deprecated
223
346
 
224
347
  # Optional. A list of features to enable on the guest operating system.
225
348
  # Applicable only for bootable images.
@@ -264,6 +387,11 @@ module Google
264
387
  # @return [String]
265
388
  attr_accessor :source
266
389
 
390
+ # Optional. Specifies the type of the disk.
391
+ # Corresponds to the JSON property `type`
392
+ # @return [String]
393
+ attr_accessor :type
394
+
267
395
  def initialize(**args)
268
396
  update!(**args)
269
397
  end
@@ -277,7 +405,7 @@ module Google
277
405
  @disk_interface = args[:disk_interface] if args.key?(:disk_interface)
278
406
  @disk_size_gb = args[:disk_size_gb] if args.key?(:disk_size_gb)
279
407
  @disk_type = args[:disk_type] if args.key?(:disk_type)
280
- @disk_type_uri = args[:disk_type_uri] if args.key?(:disk_type_uri)
408
+ @disk_type_deprecated = args[:disk_type_deprecated] if args.key?(:disk_type_deprecated)
281
409
  @guest_os_feature = args[:guest_os_feature] if args.key?(:guest_os_feature)
282
410
  @index = args[:index] if args.key?(:index)
283
411
  @initialize_params = args[:initialize_params] if args.key?(:initialize_params)
@@ -286,6 +414,7 @@ module Google
286
414
  @mode = args[:mode] if args.key?(:mode)
287
415
  @saved_state = args[:saved_state] if args.key?(:saved_state)
288
416
  @source = args[:source] if args.key?(:source)
417
+ @type = args[:type] if args.key?(:type)
289
418
  end
290
419
  end
291
420
 
@@ -375,7 +504,7 @@ module Google
375
504
  # @return [Array<Google::Apis::BackupdrV1::BackupLock>]
376
505
  attr_accessor :backup_appliance_locks
377
506
 
378
- #
507
+ # Output only. Type of the backup, unspecified, scheduled or ondemand.
379
508
  # Corresponds to the JSON property `backupType`
380
509
  # @return [String]
381
510
  attr_accessor :backup_type
@@ -428,7 +557,7 @@ module Google
428
557
  # @return [Hash<String,String>]
429
558
  attr_accessor :labels
430
559
 
431
- # Output only. Name of the resource.
560
+ # Output only. Identifier. Name of the resource.
432
561
  # Corresponds to the JSON property `name`
433
562
  # @return [String]
434
563
  attr_accessor :name
@@ -716,6 +845,214 @@ module Google
716
845
  end
717
846
  end
718
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
+ # Required. Immutable. The unique id of this `BackupRule`. The `rule_id` is
1030
+ # unique per `BackupPlan`.The `rule_id` must start with a lowercase letter
1031
+ # followed by up to 62 lowercase letters, numbers, or hyphens. Pattern, /a-z`,62`
1032
+ # /.
1033
+ # Corresponds to the JSON property `ruleId`
1034
+ # @return [String]
1035
+ attr_accessor :rule_id
1036
+
1037
+ # `StandardSchedule` defines a schedule that run within the confines of a
1038
+ # defined window of days. We can define recurrence type for schedule as HOURLY,
1039
+ # DAILY, WEEKLY, MONTHLY or YEARLY.
1040
+ # Corresponds to the JSON property `standardSchedule`
1041
+ # @return [Google::Apis::BackupdrV1::StandardSchedule]
1042
+ attr_accessor :standard_schedule
1043
+
1044
+ def initialize(**args)
1045
+ update!(**args)
1046
+ end
1047
+
1048
+ # Update properties of this object
1049
+ def update!(**args)
1050
+ @backup_retention_days = args[:backup_retention_days] if args.key?(:backup_retention_days)
1051
+ @rule_id = args[:rule_id] if args.key?(:rule_id)
1052
+ @standard_schedule = args[:standard_schedule] if args.key?(:standard_schedule)
1053
+ end
1054
+ end
1055
+
719
1056
  # Message describing a BackupVault object.
720
1057
  class BackupVault
721
1058
  include Google::Apis::Core::Hashable
@@ -777,7 +1114,7 @@ module Google
777
1114
  # @return [Hash<String,String>]
778
1115
  attr_accessor :labels
779
1116
 
780
- # Output only. The resource name.
1117
+ # Output only. Identifier. The resource name.
781
1118
  # Corresponds to the JSON property `name`
782
1119
  # @return [String]
783
1120
  attr_accessor :name
@@ -835,6 +1172,36 @@ module Google
835
1172
  end
836
1173
  end
837
1174
 
1175
+ # `BackupWindow` defines a window of the day during which backup jobs will run.
1176
+ class BackupWindow
1177
+ include Google::Apis::Core::Hashable
1178
+
1179
+ # Required. The hour of day (1-24) when the window end for e.g. if value of end
1180
+ # hour of day is 10 that mean backup window end time is 10:00. End hour of day
1181
+ # should be greater than start hour of day. 0 <= start_hour_of_day <
1182
+ # end_hour_of_day <= 24 End hour of day is not include in backup window that
1183
+ # mean if end_hour_of_day= 10 jobs should start before 10:00.
1184
+ # Corresponds to the JSON property `endHourOfDay`
1185
+ # @return [Fixnum]
1186
+ attr_accessor :end_hour_of_day
1187
+
1188
+ # Required. The hour of day (0-23) when the window starts for e.g. if value of
1189
+ # start hour of day is 6 that mean backup window start at 6:00.
1190
+ # Corresponds to the JSON property `startHourOfDay`
1191
+ # @return [Fixnum]
1192
+ attr_accessor :start_hour_of_day
1193
+
1194
+ def initialize(**args)
1195
+ update!(**args)
1196
+ end
1197
+
1198
+ # Update properties of this object
1199
+ def update!(**args)
1200
+ @end_hour_of_day = args[:end_hour_of_day] if args.key?(:end_hour_of_day)
1201
+ @start_hour_of_day = args[:start_hour_of_day] if args.key?(:start_hour_of_day)
1202
+ end
1203
+ end
1204
+
838
1205
  # Associates `members`, or principals, with a `role`.
839
1206
  class Binding
840
1207
  include Google::Apis::Core::Hashable
@@ -936,6 +1303,26 @@ module Google
936
1303
  end
937
1304
  end
938
1305
 
1306
+ # Policy ID that identified data placement in Blobstore as per go/blobstore-user-
1307
+ # guide#data-metadata-placement-and-failure-domains
1308
+ class BlobstoreLocation
1309
+ include Google::Apis::Core::Hashable
1310
+
1311
+ #
1312
+ # Corresponds to the JSON property `policyId`
1313
+ # @return [Array<String>]
1314
+ attr_accessor :policy_id
1315
+
1316
+ def initialize(**args)
1317
+ update!(**args)
1318
+ end
1319
+
1320
+ # Update properties of this object
1321
+ def update!(**args)
1322
+ @policy_id = args[:policy_id] if args.key?(:policy_id)
1323
+ end
1324
+ end
1325
+
939
1326
  # The request message for Operations.CancelOperation.
940
1327
  class CancelOperationRequest
941
1328
  include Google::Apis::Core::Hashable
@@ -949,6 +1336,50 @@ module Google
949
1336
  end
950
1337
  end
951
1338
 
1339
+ #
1340
+ class CloudAsset
1341
+ include Google::Apis::Core::Hashable
1342
+
1343
+ #
1344
+ # Corresponds to the JSON property `assetName`
1345
+ # @return [String]
1346
+ attr_accessor :asset_name
1347
+
1348
+ #
1349
+ # Corresponds to the JSON property `assetType`
1350
+ # @return [String]
1351
+ attr_accessor :asset_type
1352
+
1353
+ def initialize(**args)
1354
+ update!(**args)
1355
+ end
1356
+
1357
+ # Update properties of this object
1358
+ def update!(**args)
1359
+ @asset_name = args[:asset_name] if args.key?(:asset_name)
1360
+ @asset_type = args[:asset_type] if args.key?(:asset_type)
1361
+ end
1362
+ end
1363
+
1364
+ #
1365
+ class CloudAssetComposition
1366
+ include Google::Apis::Core::Hashable
1367
+
1368
+ #
1369
+ # Corresponds to the JSON property `childAsset`
1370
+ # @return [Array<Google::Apis::BackupdrV1::CloudAsset>]
1371
+ attr_accessor :child_asset
1372
+
1373
+ def initialize(**args)
1374
+ update!(**args)
1375
+ end
1376
+
1377
+ # Update properties of this object
1378
+ def update!(**args)
1379
+ @child_asset = args[:child_asset] if args.key?(:child_asset)
1380
+ end
1381
+ end
1382
+
952
1383
  # ComputeInstanceBackupProperties represents Compute Engine instance backup
953
1384
  # properties.
954
1385
  class ComputeInstanceBackupProperties
@@ -1105,20 +1536,245 @@ module Google
1105
1536
  end
1106
1537
  end
1107
1538
 
1108
- # A customer-supplied encryption key.
1109
- class CustomerEncryptionKey
1539
+ # ComputeInstanceRestoreProperties represents Compute Engine instance properties
1540
+ # to be overridden during restore.
1541
+ class ComputeInstanceRestoreProperties
1110
1542
  include Google::Apis::Core::Hashable
1111
1543
 
1112
- # Optional. The name of the encryption key that is stored in Google Cloud KMS.
1113
- # Corresponds to the JSON property `kmsKeyName`
1114
- # @return [String]
1115
- attr_accessor :kms_key_name
1544
+ # Specifies options for controlling advanced machine features.
1545
+ # Corresponds to the JSON property `advancedMachineFeatures`
1546
+ # @return [Google::Apis::BackupdrV1::AdvancedMachineFeatures]
1547
+ attr_accessor :advanced_machine_features
1116
1548
 
1117
- # Optional. The service account being used for the encryption request for the
1118
- # given KMS key. If absent, the Compute Engine default service account is used.
1119
- # Corresponds to the JSON property `kmsKeyServiceAccount`
1120
- # @return [String]
1121
- attr_accessor :kms_key_service_account
1549
+ # Optional. Allows this instance to send and receive packets with non-matching
1550
+ # destination or source IPs.
1551
+ # Corresponds to the JSON property `canIpForward`
1552
+ # @return [Boolean]
1553
+ attr_accessor :can_ip_forward
1554
+ alias_method :can_ip_forward?, :can_ip_forward
1555
+
1556
+ # A set of Confidential Instance options.
1557
+ # Corresponds to the JSON property `confidentialInstanceConfig`
1558
+ # @return [Google::Apis::BackupdrV1::ConfidentialInstanceConfig]
1559
+ attr_accessor :confidential_instance_config
1560
+
1561
+ # Optional. Whether the resource should be protected against deletion.
1562
+ # Corresponds to the JSON property `deletionProtection`
1563
+ # @return [Boolean]
1564
+ attr_accessor :deletion_protection
1565
+ alias_method :deletion_protection?, :deletion_protection
1566
+
1567
+ # Optional. An optional description of this resource. Provide this property when
1568
+ # you create the resource.
1569
+ # Corresponds to the JSON property `description`
1570
+ # @return [String]
1571
+ attr_accessor :description
1572
+
1573
+ # Optional. Array of disks associated with this instance. Persistent disks must
1574
+ # be created before you can assign them.
1575
+ # Corresponds to the JSON property `disks`
1576
+ # @return [Array<Google::Apis::BackupdrV1::AttachedDisk>]
1577
+ attr_accessor :disks
1578
+
1579
+ # A set of Display Device options
1580
+ # Corresponds to the JSON property `displayDevice`
1581
+ # @return [Google::Apis::BackupdrV1::DisplayDevice]
1582
+ attr_accessor :display_device
1583
+
1584
+ # Optional. A list of the type and count of accelerator cards attached to the
1585
+ # instance.
1586
+ # Corresponds to the JSON property `guestAccelerators`
1587
+ # @return [Array<Google::Apis::BackupdrV1::AcceleratorConfig>]
1588
+ attr_accessor :guest_accelerators
1589
+
1590
+ # Optional. Specifies the hostname of the instance. The specified hostname must
1591
+ # be RFC1035 compliant. If hostname is not specified, the default hostname is [
1592
+ # INSTANCE_NAME].c.[PROJECT_ID].internal when using the global DNS, and [
1593
+ # INSTANCE_NAME].[ZONE].c.[PROJECT_ID].internal when using zonal DNS.
1594
+ # Corresponds to the JSON property `hostname`
1595
+ # @return [String]
1596
+ attr_accessor :hostname
1597
+
1598
+ # A customer-supplied encryption key.
1599
+ # Corresponds to the JSON property `instanceEncryptionKey`
1600
+ # @return [Google::Apis::BackupdrV1::CustomerEncryptionKey]
1601
+ attr_accessor :instance_encryption_key
1602
+
1603
+ # Optional. KeyRevocationActionType of the instance.
1604
+ # Corresponds to the JSON property `keyRevocationActionType`
1605
+ # @return [String]
1606
+ attr_accessor :key_revocation_action_type
1607
+
1608
+ # Optional. Labels to apply to this instance.
1609
+ # Corresponds to the JSON property `labels`
1610
+ # @return [Hash<String,String>]
1611
+ attr_accessor :labels
1612
+
1613
+ # Optional. Full or partial URL of the machine type resource to use for this
1614
+ # instance.
1615
+ # Corresponds to the JSON property `machineType`
1616
+ # @return [String]
1617
+ attr_accessor :machine_type
1618
+
1619
+ # A metadata key/value entry.
1620
+ # Corresponds to the JSON property `metadata`
1621
+ # @return [Google::Apis::BackupdrV1::Metadata]
1622
+ attr_accessor :metadata
1623
+
1624
+ # Optional. Minimum CPU platform to use for this instance.
1625
+ # Corresponds to the JSON property `minCpuPlatform`
1626
+ # @return [String]
1627
+ attr_accessor :min_cpu_platform
1628
+
1629
+ # Required. Name of the compute instance.
1630
+ # Corresponds to the JSON property `name`
1631
+ # @return [String]
1632
+ attr_accessor :name
1633
+
1634
+ # Optional. An array of network configurations for this instance. These specify
1635
+ # how interfaces are configured to interact with other network services, such as
1636
+ # connecting to the internet. Multiple interfaces are supported per instance.
1637
+ # Corresponds to the JSON property `networkInterfaces`
1638
+ # @return [Array<Google::Apis::BackupdrV1::NetworkInterface>]
1639
+ attr_accessor :network_interfaces
1640
+
1641
+ # Network performance configuration.
1642
+ # Corresponds to the JSON property `networkPerformanceConfig`
1643
+ # @return [Google::Apis::BackupdrV1::NetworkPerformanceConfig]
1644
+ attr_accessor :network_performance_config
1645
+
1646
+ # Additional instance params.
1647
+ # Corresponds to the JSON property `params`
1648
+ # @return [Google::Apis::BackupdrV1::InstanceParams]
1649
+ attr_accessor :params
1650
+
1651
+ # Optional. The private IPv6 google access type for the VM. If not specified,
1652
+ # use INHERIT_FROM_SUBNETWORK as default.
1653
+ # Corresponds to the JSON property `privateIpv6GoogleAccess`
1654
+ # @return [String]
1655
+ attr_accessor :private_ipv6_google_access
1656
+
1657
+ # Specifies the reservations that this instance can consume from.
1658
+ # Corresponds to the JSON property `reservationAffinity`
1659
+ # @return [Google::Apis::BackupdrV1::AllocationAffinity]
1660
+ attr_accessor :reservation_affinity
1661
+
1662
+ # Optional. Resource policies applied to this instance.
1663
+ # Corresponds to the JSON property `resourcePolicies`
1664
+ # @return [Array<String>]
1665
+ attr_accessor :resource_policies
1666
+
1667
+ # Sets the scheduling options for an Instance.
1668
+ # Corresponds to the JSON property `scheduling`
1669
+ # @return [Google::Apis::BackupdrV1::Scheduling]
1670
+ attr_accessor :scheduling
1671
+
1672
+ # Optional. A list of service accounts, with their specified scopes, authorized
1673
+ # for this instance. Only one service account per VM instance is supported.
1674
+ # Corresponds to the JSON property `serviceAccounts`
1675
+ # @return [Array<Google::Apis::BackupdrV1::ServiceAccount>]
1676
+ attr_accessor :service_accounts
1677
+
1678
+ # A set of instance tags.
1679
+ # Corresponds to the JSON property `tags`
1680
+ # @return [Google::Apis::BackupdrV1::Tags]
1681
+ attr_accessor :tags
1682
+
1683
+ def initialize(**args)
1684
+ update!(**args)
1685
+ end
1686
+
1687
+ # Update properties of this object
1688
+ def update!(**args)
1689
+ @advanced_machine_features = args[:advanced_machine_features] if args.key?(:advanced_machine_features)
1690
+ @can_ip_forward = args[:can_ip_forward] if args.key?(:can_ip_forward)
1691
+ @confidential_instance_config = args[:confidential_instance_config] if args.key?(:confidential_instance_config)
1692
+ @deletion_protection = args[:deletion_protection] if args.key?(:deletion_protection)
1693
+ @description = args[:description] if args.key?(:description)
1694
+ @disks = args[:disks] if args.key?(:disks)
1695
+ @display_device = args[:display_device] if args.key?(:display_device)
1696
+ @guest_accelerators = args[:guest_accelerators] if args.key?(:guest_accelerators)
1697
+ @hostname = args[:hostname] if args.key?(:hostname)
1698
+ @instance_encryption_key = args[:instance_encryption_key] if args.key?(:instance_encryption_key)
1699
+ @key_revocation_action_type = args[:key_revocation_action_type] if args.key?(:key_revocation_action_type)
1700
+ @labels = args[:labels] if args.key?(:labels)
1701
+ @machine_type = args[:machine_type] if args.key?(:machine_type)
1702
+ @metadata = args[:metadata] if args.key?(:metadata)
1703
+ @min_cpu_platform = args[:min_cpu_platform] if args.key?(:min_cpu_platform)
1704
+ @name = args[:name] if args.key?(:name)
1705
+ @network_interfaces = args[:network_interfaces] if args.key?(:network_interfaces)
1706
+ @network_performance_config = args[:network_performance_config] if args.key?(:network_performance_config)
1707
+ @params = args[:params] if args.key?(:params)
1708
+ @private_ipv6_google_access = args[:private_ipv6_google_access] if args.key?(:private_ipv6_google_access)
1709
+ @reservation_affinity = args[:reservation_affinity] if args.key?(:reservation_affinity)
1710
+ @resource_policies = args[:resource_policies] if args.key?(:resource_policies)
1711
+ @scheduling = args[:scheduling] if args.key?(:scheduling)
1712
+ @service_accounts = args[:service_accounts] if args.key?(:service_accounts)
1713
+ @tags = args[:tags] if args.key?(:tags)
1714
+ end
1715
+ end
1716
+
1717
+ # ComputeInstanceTargetEnvironment represents Compute Engine target environment
1718
+ # to be used during restore.
1719
+ class ComputeInstanceTargetEnvironment
1720
+ include Google::Apis::Core::Hashable
1721
+
1722
+ # Required. Target project for the Compute Engine instance.
1723
+ # Corresponds to the JSON property `project`
1724
+ # @return [String]
1725
+ attr_accessor :project
1726
+
1727
+ # Required. The zone of the Compute Engine instance.
1728
+ # Corresponds to the JSON property `zone`
1729
+ # @return [String]
1730
+ attr_accessor :zone
1731
+
1732
+ def initialize(**args)
1733
+ update!(**args)
1734
+ end
1735
+
1736
+ # Update properties of this object
1737
+ def update!(**args)
1738
+ @project = args[:project] if args.key?(:project)
1739
+ @zone = args[:zone] if args.key?(:zone)
1740
+ end
1741
+ end
1742
+
1743
+ # A set of Confidential Instance options.
1744
+ class ConfidentialInstanceConfig
1745
+ include Google::Apis::Core::Hashable
1746
+
1747
+ # Optional. Defines whether the instance should have confidential compute
1748
+ # enabled.
1749
+ # Corresponds to the JSON property `enableConfidentialCompute`
1750
+ # @return [Boolean]
1751
+ attr_accessor :enable_confidential_compute
1752
+ alias_method :enable_confidential_compute?, :enable_confidential_compute
1753
+
1754
+ def initialize(**args)
1755
+ update!(**args)
1756
+ end
1757
+
1758
+ # Update properties of this object
1759
+ def update!(**args)
1760
+ @enable_confidential_compute = args[:enable_confidential_compute] if args.key?(:enable_confidential_compute)
1761
+ end
1762
+ end
1763
+
1764
+ # A customer-supplied encryption key.
1765
+ class CustomerEncryptionKey
1766
+ include Google::Apis::Core::Hashable
1767
+
1768
+ # Optional. The name of the encryption key that is stored in Google Cloud KMS.
1769
+ # Corresponds to the JSON property `kmsKeyName`
1770
+ # @return [String]
1771
+ attr_accessor :kms_key_name
1772
+
1773
+ # Optional. The service account being used for the encryption request for the
1774
+ # given KMS key. If absent, the Compute Engine default service account is used.
1775
+ # Corresponds to the JSON property `kmsKeyServiceAccount`
1776
+ # @return [String]
1777
+ attr_accessor :kms_key_service_account
1122
1778
 
1123
1779
  # Optional. Specifies a 256-bit customer-supplied encryption key.
1124
1780
  # Corresponds to the JSON property `rawKey`
@@ -1160,7 +1816,7 @@ module Google
1160
1816
  # @return [Fixnum]
1161
1817
  attr_accessor :backup_count
1162
1818
 
1163
- # The backup configuration state.
1819
+ # Output only. The backup configuration state.
1164
1820
  # Corresponds to the JSON property `configState`
1165
1821
  # @return [String]
1166
1822
  attr_accessor :config_state
@@ -1195,7 +1851,7 @@ module Google
1195
1851
  # @return [Hash<String,String>]
1196
1852
  attr_accessor :labels
1197
1853
 
1198
- # Output only. The resource name.
1854
+ # Output only. Identifier. The resource name.
1199
1855
  # Corresponds to the JSON property `name`
1200
1856
  # @return [String]
1201
1857
  attr_accessor :name
@@ -1333,6 +1989,45 @@ module Google
1333
1989
  end
1334
1990
  end
1335
1991
 
1992
+ #
1993
+ class DirectLocationAssignment
1994
+ include Google::Apis::Core::Hashable
1995
+
1996
+ #
1997
+ # Corresponds to the JSON property `location`
1998
+ # @return [Array<Google::Apis::BackupdrV1::LocationAssignment>]
1999
+ attr_accessor :location
2000
+
2001
+ def initialize(**args)
2002
+ update!(**args)
2003
+ end
2004
+
2005
+ # Update properties of this object
2006
+ def update!(**args)
2007
+ @location = args[:location] if args.key?(:location)
2008
+ end
2009
+ end
2010
+
2011
+ # A set of Display Device options
2012
+ class DisplayDevice
2013
+ include Google::Apis::Core::Hashable
2014
+
2015
+ # Optional. Enables display for the Compute Engine VM
2016
+ # Corresponds to the JSON property `enableDisplay`
2017
+ # @return [Boolean]
2018
+ attr_accessor :enable_display
2019
+ alias_method :enable_display?, :enable_display
2020
+
2021
+ def initialize(**args)
2022
+ update!(**args)
2023
+ end
2024
+
2025
+ # Update properties of this object
2026
+ def update!(**args)
2027
+ @enable_display = args[:enable_display] if args.key?(:enable_display)
2028
+ end
2029
+ end
2030
+
1336
2031
  # A generic empty message that you can re-use to avoid defining duplicated empty
1337
2032
  # messages in your APIs. A typical example is to use it as the request or the
1338
2033
  # response type of an API method. For instance: service Foo ` rpc Bar(google.
@@ -1431,6 +2126,26 @@ module Google
1431
2126
  end
1432
2127
  end
1433
2128
 
2129
+ # Defines parameters that should only be used for specific asset types.
2130
+ class ExtraParameter
2131
+ include Google::Apis::Core::Hashable
2132
+
2133
+ # To be used for specifying the intended distribution of regional compute.
2134
+ # googleapis.com/InstanceGroupManager instances
2135
+ # Corresponds to the JSON property `regionalMigDistributionPolicy`
2136
+ # @return [Google::Apis::BackupdrV1::RegionalMigDistributionPolicy]
2137
+ attr_accessor :regional_mig_distribution_policy
2138
+
2139
+ def initialize(**args)
2140
+ update!(**args)
2141
+ end
2142
+
2143
+ # Update properties of this object
2144
+ def update!(**args)
2145
+ @regional_mig_distribution_policy = args[:regional_mig_distribution_policy] if args.key?(:regional_mig_distribution_policy)
2146
+ end
2147
+ end
2148
+
1434
2149
  # Request message for FetchAccessToken.
1435
2150
  class FetchAccessTokenRequest
1436
2151
  include Google::Apis::Core::Hashable
@@ -1771,6 +2486,162 @@ module Google
1771
2486
  end
1772
2487
  end
1773
2488
 
2489
+ # Additional instance params.
2490
+ class InstanceParams
2491
+ include Google::Apis::Core::Hashable
2492
+
2493
+ # Optional. Resource manager tags to be bound to the instance.
2494
+ # Corresponds to the JSON property `resourceManagerTags`
2495
+ # @return [Hash<String,String>]
2496
+ attr_accessor :resource_manager_tags
2497
+
2498
+ def initialize(**args)
2499
+ update!(**args)
2500
+ end
2501
+
2502
+ # Update properties of this object
2503
+ def update!(**args)
2504
+ @resource_manager_tags = args[:resource_manager_tags] if args.key?(:resource_manager_tags)
2505
+ end
2506
+ end
2507
+
2508
+ #
2509
+ class IsolationExpectations
2510
+ include Google::Apis::Core::Hashable
2511
+
2512
+ # Explicit overrides for ZI and ZS requirements to be used for resources that
2513
+ # should be excluded from ZI/ZS verification logic.
2514
+ # Corresponds to the JSON property `requirementOverride`
2515
+ # @return [Google::Apis::BackupdrV1::RequirementOverride]
2516
+ attr_accessor :requirement_override
2517
+
2518
+ #
2519
+ # Corresponds to the JSON property `ziOrgPolicy`
2520
+ # @return [String]
2521
+ attr_accessor :zi_org_policy
2522
+
2523
+ #
2524
+ # Corresponds to the JSON property `ziRegionPolicy`
2525
+ # @return [String]
2526
+ attr_accessor :zi_region_policy
2527
+
2528
+ #
2529
+ # Corresponds to the JSON property `ziRegionState`
2530
+ # @return [String]
2531
+ attr_accessor :zi_region_state
2532
+
2533
+ # Deprecated: use zi_org_policy, zi_region_policy and zi_region_state instead
2534
+ # for setting ZI expectations as per go/zicy-publish-physical-location.
2535
+ # Corresponds to the JSON property `zoneIsolation`
2536
+ # @return [String]
2537
+ attr_accessor :zone_isolation
2538
+
2539
+ # Deprecated: use zs_org_policy, and zs_region_stateinstead for setting Zs
2540
+ # expectations as per go/zicy-publish-physical-location.
2541
+ # Corresponds to the JSON property `zoneSeparation`
2542
+ # @return [String]
2543
+ attr_accessor :zone_separation
2544
+
2545
+ #
2546
+ # Corresponds to the JSON property `zsOrgPolicy`
2547
+ # @return [String]
2548
+ attr_accessor :zs_org_policy
2549
+
2550
+ #
2551
+ # Corresponds to the JSON property `zsRegionState`
2552
+ # @return [String]
2553
+ attr_accessor :zs_region_state
2554
+
2555
+ def initialize(**args)
2556
+ update!(**args)
2557
+ end
2558
+
2559
+ # Update properties of this object
2560
+ def update!(**args)
2561
+ @requirement_override = args[:requirement_override] if args.key?(:requirement_override)
2562
+ @zi_org_policy = args[:zi_org_policy] if args.key?(:zi_org_policy)
2563
+ @zi_region_policy = args[:zi_region_policy] if args.key?(:zi_region_policy)
2564
+ @zi_region_state = args[:zi_region_state] if args.key?(:zi_region_state)
2565
+ @zone_isolation = args[:zone_isolation] if args.key?(:zone_isolation)
2566
+ @zone_separation = args[:zone_separation] if args.key?(:zone_separation)
2567
+ @zs_org_policy = args[:zs_org_policy] if args.key?(:zs_org_policy)
2568
+ @zs_region_state = args[:zs_region_state] if args.key?(:zs_region_state)
2569
+ end
2570
+ end
2571
+
2572
+ # Response message for List BackupPlanAssociation
2573
+ class ListBackupPlanAssociationsResponse
2574
+ include Google::Apis::Core::Hashable
2575
+
2576
+ # The list of Backup Plan Associations in the project for the specified location.
2577
+ # If the ``location`` value in the request is "-", the response contains a list
2578
+ # of instances from all locations. In case any location is unreachable, the
2579
+ # response will only return backup plan associations in reachable locations and
2580
+ # the 'unreachable' field will be populated with a list of unreachable locations.
2581
+ # Corresponds to the JSON property `backupPlanAssociations`
2582
+ # @return [Array<Google::Apis::BackupdrV1::BackupPlanAssociation>]
2583
+ attr_accessor :backup_plan_associations
2584
+
2585
+ # A token identifying a page of results the server should return.
2586
+ # Corresponds to the JSON property `nextPageToken`
2587
+ # @return [String]
2588
+ attr_accessor :next_page_token
2589
+
2590
+ # Locations that could not be reached.
2591
+ # Corresponds to the JSON property `unreachable`
2592
+ # @return [Array<String>]
2593
+ attr_accessor :unreachable
2594
+
2595
+ def initialize(**args)
2596
+ update!(**args)
2597
+ end
2598
+
2599
+ # Update properties of this object
2600
+ def update!(**args)
2601
+ @backup_plan_associations = args[:backup_plan_associations] if args.key?(:backup_plan_associations)
2602
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
2603
+ @unreachable = args[:unreachable] if args.key?(:unreachable)
2604
+ end
2605
+ end
2606
+
2607
+ # The response message for getting a list of `BackupPlan`.
2608
+ class ListBackupPlansResponse
2609
+ include Google::Apis::Core::Hashable
2610
+
2611
+ # The list of `BackupPlans` in the project for the specified location. If the ``
2612
+ # location`` value in the request is "-", the response contains a list of
2613
+ # resources from all locations. In case any location is unreachable, the
2614
+ # response will only return backup plans in reachable locations and the '
2615
+ # unreachable' field will be populated with a list of unreachable locations.
2616
+ # BackupPlan
2617
+ # Corresponds to the JSON property `backupPlans`
2618
+ # @return [Array<Google::Apis::BackupdrV1::BackupPlan>]
2619
+ attr_accessor :backup_plans
2620
+
2621
+ # A token which may be sent as page_token in a subsequent `ListBackupPlans` call
2622
+ # to retrieve the next page of results. If this field is omitted or empty, then
2623
+ # there are no more results to return.
2624
+ # Corresponds to the JSON property `nextPageToken`
2625
+ # @return [String]
2626
+ attr_accessor :next_page_token
2627
+
2628
+ # Locations that could not be reached.
2629
+ # Corresponds to the JSON property `unreachable`
2630
+ # @return [Array<String>]
2631
+ attr_accessor :unreachable
2632
+
2633
+ def initialize(**args)
2634
+ update!(**args)
2635
+ end
2636
+
2637
+ # Update properties of this object
2638
+ def update!(**args)
2639
+ @backup_plans = args[:backup_plans] if args.key?(:backup_plans)
2640
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
2641
+ @unreachable = args[:unreachable] if args.key?(:unreachable)
2642
+ end
2643
+ end
2644
+
1774
2645
  # Response message for listing BackupVaults.
1775
2646
  class ListBackupVaultsResponse
1776
2647
  include Google::Apis::Core::Hashable
@@ -1972,28 +2843,103 @@ module Google
1972
2843
  # @return [String]
1973
2844
  attr_accessor :display_name
1974
2845
 
1975
- # Cross-service attributes for the location. For example `"cloud.googleapis.com/
1976
- # region": "us-east1"`
1977
- # Corresponds to the JSON property `labels`
1978
- # @return [Hash<String,String>]
1979
- attr_accessor :labels
2846
+ # Cross-service attributes for the location. For example `"cloud.googleapis.com/
2847
+ # region": "us-east1"`
2848
+ # Corresponds to the JSON property `labels`
2849
+ # @return [Hash<String,String>]
2850
+ attr_accessor :labels
2851
+
2852
+ # The canonical id for this location. For example: `"us-east1"`.
2853
+ # Corresponds to the JSON property `locationId`
2854
+ # @return [String]
2855
+ attr_accessor :location_id
2856
+
2857
+ # Service-specific metadata. For example the available capacity at the given
2858
+ # location.
2859
+ # Corresponds to the JSON property `metadata`
2860
+ # @return [Hash<String,Object>]
2861
+ attr_accessor :metadata
2862
+
2863
+ # Resource name for the location, which may vary between implementations. For
2864
+ # example: `"projects/example-project/locations/us-east1"`
2865
+ # Corresponds to the JSON property `name`
2866
+ # @return [String]
2867
+ attr_accessor :name
2868
+
2869
+ def initialize(**args)
2870
+ update!(**args)
2871
+ end
2872
+
2873
+ # Update properties of this object
2874
+ def update!(**args)
2875
+ @display_name = args[:display_name] if args.key?(:display_name)
2876
+ @labels = args[:labels] if args.key?(:labels)
2877
+ @location_id = args[:location_id] if args.key?(:location_id)
2878
+ @metadata = args[:metadata] if args.key?(:metadata)
2879
+ @name = args[:name] if args.key?(:name)
2880
+ end
2881
+ end
2882
+
2883
+ #
2884
+ class LocationAssignment
2885
+ include Google::Apis::Core::Hashable
2886
+
2887
+ #
2888
+ # Corresponds to the JSON property `location`
2889
+ # @return [String]
2890
+ attr_accessor :location
2891
+
2892
+ #
2893
+ # Corresponds to the JSON property `locationType`
2894
+ # @return [String]
2895
+ attr_accessor :location_type
2896
+
2897
+ def initialize(**args)
2898
+ update!(**args)
2899
+ end
2900
+
2901
+ # Update properties of this object
2902
+ def update!(**args)
2903
+ @location = args[:location] if args.key?(:location)
2904
+ @location_type = args[:location_type] if args.key?(:location_type)
2905
+ end
2906
+ end
2907
+
2908
+ #
2909
+ class LocationData
2910
+ include Google::Apis::Core::Hashable
2911
+
2912
+ # Policy ID that identified data placement in Blobstore as per go/blobstore-user-
2913
+ # guide#data-metadata-placement-and-failure-domains
2914
+ # Corresponds to the JSON property `blobstoreLocation`
2915
+ # @return [Google::Apis::BackupdrV1::BlobstoreLocation]
2916
+ attr_accessor :blobstore_location
1980
2917
 
1981
- # The canonical id for this location. For example: `"us-east1"`.
1982
- # Corresponds to the JSON property `locationId`
1983
- # @return [String]
1984
- attr_accessor :location_id
2918
+ #
2919
+ # Corresponds to the JSON property `childAssetLocation`
2920
+ # @return [Google::Apis::BackupdrV1::CloudAssetComposition]
2921
+ attr_accessor :child_asset_location
1985
2922
 
1986
- # Service-specific metadata. For example the available capacity at the given
1987
- # location.
1988
- # Corresponds to the JSON property `metadata`
1989
- # @return [Hash<String,Object>]
1990
- attr_accessor :metadata
2923
+ #
2924
+ # Corresponds to the JSON property `directLocation`
2925
+ # @return [Google::Apis::BackupdrV1::DirectLocationAssignment]
2926
+ attr_accessor :direct_location
1991
2927
 
1992
- # Resource name for the location, which may vary between implementations. For
1993
- # example: `"projects/example-project/locations/us-east1"`
1994
- # Corresponds to the JSON property `name`
1995
- # @return [String]
1996
- attr_accessor :name
2928
+ #
2929
+ # Corresponds to the JSON property `gcpProjectProxy`
2930
+ # @return [Google::Apis::BackupdrV1::TenantProjectProxy]
2931
+ attr_accessor :gcp_project_proxy
2932
+
2933
+ # Message describing that the location of the customer resource is tied to
2934
+ # placer allocations
2935
+ # Corresponds to the JSON property `placerLocation`
2936
+ # @return [Google::Apis::BackupdrV1::PlacerLocation]
2937
+ attr_accessor :placer_location
2938
+
2939
+ #
2940
+ # Corresponds to the JSON property `spannerLocation`
2941
+ # @return [Google::Apis::BackupdrV1::SpannerLocation]
2942
+ attr_accessor :spanner_location
1997
2943
 
1998
2944
  def initialize(**args)
1999
2945
  update!(**args)
@@ -2001,11 +2947,12 @@ module Google
2001
2947
 
2002
2948
  # Update properties of this object
2003
2949
  def update!(**args)
2004
- @display_name = args[:display_name] if args.key?(:display_name)
2005
- @labels = args[:labels] if args.key?(:labels)
2006
- @location_id = args[:location_id] if args.key?(:location_id)
2007
- @metadata = args[:metadata] if args.key?(:metadata)
2008
- @name = args[:name] if args.key?(:name)
2950
+ @blobstore_location = args[:blobstore_location] if args.key?(:blobstore_location)
2951
+ @child_asset_location = args[:child_asset_location] if args.key?(:child_asset_location)
2952
+ @direct_location = args[:direct_location] if args.key?(:direct_location)
2953
+ @gcp_project_proxy = args[:gcp_project_proxy] if args.key?(:gcp_project_proxy)
2954
+ @placer_location = args[:placer_location] if args.key?(:placer_location)
2955
+ @spanner_location = args[:spanner_location] if args.key?(:spanner_location)
2009
2956
  end
2010
2957
  end
2011
2958
 
@@ -2317,6 +3264,25 @@ module Google
2317
3264
  end
2318
3265
  end
2319
3266
 
3267
+ # Network performance configuration.
3268
+ class NetworkPerformanceConfig
3269
+ include Google::Apis::Core::Hashable
3270
+
3271
+ # Optional. The tier of the total egress bandwidth.
3272
+ # Corresponds to the JSON property `totalEgressBandwidthTier`
3273
+ # @return [String]
3274
+ attr_accessor :total_egress_bandwidth_tier
3275
+
3276
+ def initialize(**args)
3277
+ update!(**args)
3278
+ end
3279
+
3280
+ # Update properties of this object
3281
+ def update!(**args)
3282
+ @total_egress_bandwidth_tier = args[:total_egress_bandwidth_tier] if args.key?(:total_egress_bandwidth_tier)
3283
+ end
3284
+ end
3285
+
2320
3286
  # Node Affinity: the configuration of desired nodes onto which this Instance
2321
3287
  # could be scheduled.
2322
3288
  class NodeAffinity
@@ -2477,6 +3443,27 @@ module Google
2477
3443
  end
2478
3444
  end
2479
3445
 
3446
+ # Message describing that the location of the customer resource is tied to
3447
+ # placer allocations
3448
+ class PlacerLocation
3449
+ include Google::Apis::Core::Hashable
3450
+
3451
+ # Directory with a config related to it in placer (e.g. "/placer/prod/home/my-
3452
+ # root/my-dir")
3453
+ # Corresponds to the JSON property `placerConfig`
3454
+ # @return [String]
3455
+ attr_accessor :placer_config
3456
+
3457
+ def initialize(**args)
3458
+ update!(**args)
3459
+ end
3460
+
3461
+ # Update properties of this object
3462
+ def update!(**args)
3463
+ @placer_config = args[:placer_config] if args.key?(:placer_config)
3464
+ end
3465
+ end
3466
+
2480
3467
  # An Identity and Access Management (IAM) policy, which specifies access
2481
3468
  # controls for Google Cloud resources. A `Policy` is a collection of `bindings`.
2482
3469
  # A `binding` binds one or more `members`, or principals, to a single `role`.
@@ -2572,6 +3559,33 @@ module Google
2572
3559
  end
2573
3560
  end
2574
3561
 
3562
+ # To be used for specifying the intended distribution of regional compute.
3563
+ # googleapis.com/InstanceGroupManager instances
3564
+ class RegionalMigDistributionPolicy
3565
+ include Google::Apis::Core::Hashable
3566
+
3567
+ # The shape in which the group converges around distribution of resources.
3568
+ # Instance of proto2 enum
3569
+ # Corresponds to the JSON property `targetShape`
3570
+ # @return [Fixnum]
3571
+ attr_accessor :target_shape
3572
+
3573
+ # Cloud zones used by regional MIG to create instances.
3574
+ # Corresponds to the JSON property `zones`
3575
+ # @return [Array<Google::Apis::BackupdrV1::ZoneConfiguration>]
3576
+ attr_accessor :zones
3577
+
3578
+ def initialize(**args)
3579
+ update!(**args)
3580
+ end
3581
+
3582
+ # Update properties of this object
3583
+ def update!(**args)
3584
+ @target_shape = args[:target_shape] if args.key?(:target_shape)
3585
+ @zones = args[:zones] if args.key?(:zones)
3586
+ end
3587
+ end
3588
+
2575
3589
  # Message for deleting a DataSource.
2576
3590
  class RemoveDataSourceRequest
2577
3591
  include Google::Apis::Core::Hashable
@@ -2600,6 +3614,116 @@ module Google
2600
3614
  end
2601
3615
  end
2602
3616
 
3617
+ #
3618
+ class RequirementOverride
3619
+ include Google::Apis::Core::Hashable
3620
+
3621
+ #
3622
+ # Corresponds to the JSON property `ziOverride`
3623
+ # @return [String]
3624
+ attr_accessor :zi_override
3625
+
3626
+ #
3627
+ # Corresponds to the JSON property `zsOverride`
3628
+ # @return [String]
3629
+ attr_accessor :zs_override
3630
+
3631
+ def initialize(**args)
3632
+ update!(**args)
3633
+ end
3634
+
3635
+ # Update properties of this object
3636
+ def update!(**args)
3637
+ @zi_override = args[:zi_override] if args.key?(:zi_override)
3638
+ @zs_override = args[:zs_override] if args.key?(:zs_override)
3639
+ end
3640
+ end
3641
+
3642
+ # Request message for restoring from a Backup.
3643
+ class RestoreBackupRequest
3644
+ include Google::Apis::Core::Hashable
3645
+
3646
+ # ComputeInstanceRestoreProperties represents Compute Engine instance properties
3647
+ # to be overridden during restore.
3648
+ # Corresponds to the JSON property `computeInstanceRestoreProperties`
3649
+ # @return [Google::Apis::BackupdrV1::ComputeInstanceRestoreProperties]
3650
+ attr_accessor :compute_instance_restore_properties
3651
+
3652
+ # ComputeInstanceTargetEnvironment represents Compute Engine target environment
3653
+ # to be used during restore.
3654
+ # Corresponds to the JSON property `computeInstanceTargetEnvironment`
3655
+ # @return [Google::Apis::BackupdrV1::ComputeInstanceTargetEnvironment]
3656
+ attr_accessor :compute_instance_target_environment
3657
+
3658
+ # Optional. An optional request ID to identify requests. Specify a unique
3659
+ # request ID so that if you must retry your request, the server will know to
3660
+ # ignore the request if it has already been completed. The server will guarantee
3661
+ # that for at least 60 minutes after the first request. For example, consider a
3662
+ # situation where you make an initial request and the request times out. If you
3663
+ # make the request again with the same request ID, the server can check if
3664
+ # original operation with the same request ID was received, and if so, will
3665
+ # ignore the second request. This prevents clients from accidentally creating
3666
+ # duplicate commitments. The request ID must be a valid UUID with the exception
3667
+ # that zero UUID is not supported (00000000-0000-0000-0000-000000000000).
3668
+ # Corresponds to the JSON property `requestId`
3669
+ # @return [String]
3670
+ attr_accessor :request_id
3671
+
3672
+ def initialize(**args)
3673
+ update!(**args)
3674
+ end
3675
+
3676
+ # Update properties of this object
3677
+ def update!(**args)
3678
+ @compute_instance_restore_properties = args[:compute_instance_restore_properties] if args.key?(:compute_instance_restore_properties)
3679
+ @compute_instance_target_environment = args[:compute_instance_target_environment] if args.key?(:compute_instance_target_environment)
3680
+ @request_id = args[:request_id] if args.key?(:request_id)
3681
+ end
3682
+ end
3683
+
3684
+ # Message for rules config info.
3685
+ class RuleConfigInfo
3686
+ include Google::Apis::Core::Hashable
3687
+
3688
+ # The `Status` type defines a logical error model that is suitable for different
3689
+ # programming environments, including REST APIs and RPC APIs. It is used by [
3690
+ # gRPC](https://github.com/grpc). Each `Status` message contains three pieces of
3691
+ # data: error code, error message, and error details. You can find out more
3692
+ # about this error model and how to work with it in the [API Design Guide](https:
3693
+ # //cloud.google.com/apis/design/errors).
3694
+ # Corresponds to the JSON property `lastBackupError`
3695
+ # @return [Google::Apis::BackupdrV1::Status]
3696
+ attr_accessor :last_backup_error
3697
+
3698
+ # Output only. The last backup state for rule.
3699
+ # Corresponds to the JSON property `lastBackupState`
3700
+ # @return [String]
3701
+ attr_accessor :last_backup_state
3702
+
3703
+ # Output only. The point in time when the last successful backup was captured
3704
+ # from the source.
3705
+ # Corresponds to the JSON property `lastSuccessfulBackupConsistencyTime`
3706
+ # @return [String]
3707
+ attr_accessor :last_successful_backup_consistency_time
3708
+
3709
+ # Output only. Output Only. Backup Rule id fetched from backup plan.
3710
+ # Corresponds to the JSON property `ruleId`
3711
+ # @return [String]
3712
+ attr_accessor :rule_id
3713
+
3714
+ def initialize(**args)
3715
+ update!(**args)
3716
+ end
3717
+
3718
+ # Update properties of this object
3719
+ def update!(**args)
3720
+ @last_backup_error = args[:last_backup_error] if args.key?(:last_backup_error)
3721
+ @last_backup_state = args[:last_backup_state] if args.key?(:last_backup_state)
3722
+ @last_successful_backup_consistency_time = args[:last_successful_backup_consistency_time] if args.key?(:last_successful_backup_consistency_time)
3723
+ @rule_id = args[:rule_id] if args.key?(:rule_id)
3724
+ end
3725
+ end
3726
+
2603
3727
  # Sets the scheduling options for an Instance.
2604
3728
  class Scheduling
2605
3729
  include Google::Apis::Core::Hashable
@@ -2800,7 +3924,7 @@ module Google
2800
3924
  class SetInternalStatusRequest
2801
3925
  include Google::Apis::Core::Hashable
2802
3926
 
2803
- # Required. The new BackupConfigState to set for the DataSource.
3927
+ # Required. Output only. The new BackupConfigState to set for the DataSource.
2804
3928
  # Corresponds to the JSON property `backupConfigState`
2805
3929
  # @return [String]
2806
3930
  attr_accessor :backup_config_state
@@ -2837,6 +3961,115 @@ module Google
2837
3961
  end
2838
3962
  end
2839
3963
 
3964
+ #
3965
+ class SpannerLocation
3966
+ include Google::Apis::Core::Hashable
3967
+
3968
+ # Set of backups used by the resource with name in the same format as what is
3969
+ # available at http://table/spanner_automon.backup_metadata
3970
+ # Corresponds to the JSON property `backupName`
3971
+ # @return [Array<String>]
3972
+ attr_accessor :backup_name
3973
+
3974
+ # Set of databases used by the resource in format /span//
3975
+ # Corresponds to the JSON property `dbName`
3976
+ # @return [Array<String>]
3977
+ attr_accessor :db_name
3978
+
3979
+ def initialize(**args)
3980
+ update!(**args)
3981
+ end
3982
+
3983
+ # Update properties of this object
3984
+ def update!(**args)
3985
+ @backup_name = args[:backup_name] if args.key?(:backup_name)
3986
+ @db_name = args[:db_name] if args.key?(:db_name)
3987
+ end
3988
+ end
3989
+
3990
+ # `StandardSchedule` defines a schedule that run within the confines of a
3991
+ # defined window of days. We can define recurrence type for schedule as HOURLY,
3992
+ # DAILY, WEEKLY, MONTHLY or YEARLY.
3993
+ class StandardSchedule
3994
+ include Google::Apis::Core::Hashable
3995
+
3996
+ # `BackupWindow` defines a window of the day during which backup jobs will run.
3997
+ # Corresponds to the JSON property `backupWindow`
3998
+ # @return [Google::Apis::BackupdrV1::BackupWindow]
3999
+ attr_accessor :backup_window
4000
+
4001
+ # Optional. Specifies days of months like 1, 5, or 14 on which jobs will run.
4002
+ # Values for `days_of_month` are only applicable for `recurrence_type`, `MONTHLY`
4003
+ # and `YEARLY`. A validation error will occur if other values are supplied.
4004
+ # Corresponds to the JSON property `daysOfMonth`
4005
+ # @return [Array<Fixnum>]
4006
+ attr_accessor :days_of_month
4007
+
4008
+ # Optional. Specifies days of week like, MONDAY or TUESDAY, on which jobs will
4009
+ # run. This is required for `recurrence_type`, `WEEKLY` and is not applicable
4010
+ # otherwise. A validation error will occur if a value is supplied and `
4011
+ # recurrence_type` is not `WEEKLY`.
4012
+ # Corresponds to the JSON property `daysOfWeek`
4013
+ # @return [Array<String>]
4014
+ attr_accessor :days_of_week
4015
+
4016
+ # Optional. Specifies frequency for hourly backups. A hourly frequency of 2
4017
+ # means jobs will run every 2 hours from start time till end time defined. This
4018
+ # is required for `recurrence_type`, `HOURLY` and is not applicable otherwise. A
4019
+ # validation error will occur if a value is supplied and `recurrence_type` is
4020
+ # not `HOURLY`. Value of hourly frequency should be between 6 and 23. Reason for
4021
+ # limit : We found that there is bandwidth limitation of 3GB/S for GMI while
4022
+ # taking a backup and 5GB/S while doing a restore. Given the amount of parallel
4023
+ # backups and restore we are targeting, this will potentially take the backup
4024
+ # time to mins and hours (in worst case scenario).
4025
+ # Corresponds to the JSON property `hourlyFrequency`
4026
+ # @return [Fixnum]
4027
+ attr_accessor :hourly_frequency
4028
+
4029
+ # Optional. Specifies the months of year, like `FEBRUARY` and/or `MAY`, on which
4030
+ # jobs will run. This field is only applicable when `recurrence_type` is `YEARLY`
4031
+ # . A validation error will occur if other values are supplied.
4032
+ # Corresponds to the JSON property `months`
4033
+ # @return [Array<String>]
4034
+ attr_accessor :months
4035
+
4036
+ # Required. Specifies the `RecurrenceType` for the schedule.
4037
+ # Corresponds to the JSON property `recurrenceType`
4038
+ # @return [String]
4039
+ attr_accessor :recurrence_type
4040
+
4041
+ # Required. The time zone to be used when interpreting the schedule. The value
4042
+ # of this field must be a time zone name from the IANA tz database. See https://
4043
+ # en.wikipedia.org/wiki/List_of_tz_database_time_zones for the list of valid
4044
+ # timezone names. For e.g., Europe/Paris.
4045
+ # Corresponds to the JSON property `timeZone`
4046
+ # @return [String]
4047
+ attr_accessor :time_zone
4048
+
4049
+ # `WeekDayOfMonth` defines the week day of the month on which the backups will
4050
+ # run. The message combines a `WeekOfMonth` and `DayOfWeek` to produce values
4051
+ # like `FIRST`/`MONDAY` or `LAST`/`FRIDAY`.
4052
+ # Corresponds to the JSON property `weekDayOfMonth`
4053
+ # @return [Google::Apis::BackupdrV1::WeekDayOfMonth]
4054
+ attr_accessor :week_day_of_month
4055
+
4056
+ def initialize(**args)
4057
+ update!(**args)
4058
+ end
4059
+
4060
+ # Update properties of this object
4061
+ def update!(**args)
4062
+ @backup_window = args[:backup_window] if args.key?(:backup_window)
4063
+ @days_of_month = args[:days_of_month] if args.key?(:days_of_month)
4064
+ @days_of_week = args[:days_of_week] if args.key?(:days_of_week)
4065
+ @hourly_frequency = args[:hourly_frequency] if args.key?(:hourly_frequency)
4066
+ @months = args[:months] if args.key?(:months)
4067
+ @recurrence_type = args[:recurrence_type] if args.key?(:recurrence_type)
4068
+ @time_zone = args[:time_zone] if args.key?(:time_zone)
4069
+ @week_day_of_month = args[:week_day_of_month] if args.key?(:week_day_of_month)
4070
+ end
4071
+ end
4072
+
2840
4073
  # The `Status` type defines a logical error model that is suitable for different
2841
4074
  # programming environments, including REST APIs and RPC APIs. It is used by [
2842
4075
  # gRPC](https://github.com/grpc). Each `Status` message contains three pieces of
@@ -2896,6 +4129,25 @@ module Google
2896
4129
  end
2897
4130
  end
2898
4131
 
4132
+ #
4133
+ class TenantProjectProxy
4134
+ include Google::Apis::Core::Hashable
4135
+
4136
+ #
4137
+ # Corresponds to the JSON property `projectNumbers`
4138
+ # @return [Array<String>]
4139
+ attr_accessor :project_numbers
4140
+
4141
+ def initialize(**args)
4142
+ update!(**args)
4143
+ end
4144
+
4145
+ # Update properties of this object
4146
+ def update!(**args)
4147
+ @project_numbers = args[:project_numbers] if args.key?(:project_numbers)
4148
+ end
4149
+ end
4150
+
2899
4151
  # Request message for `TestIamPermissions` method.
2900
4152
  class TestIamPermissionsRequest
2901
4153
  include Google::Apis::Core::Hashable
@@ -2936,6 +4188,67 @@ module Google
2936
4188
  end
2937
4189
  end
2938
4190
 
4191
+ # Request message for triggering a backup.
4192
+ class TriggerBackupRequest
4193
+ include Google::Apis::Core::Hashable
4194
+
4195
+ # Optional. An optional request ID to identify requests. Specify a unique
4196
+ # request ID so that if you must retry your request, the server will know to
4197
+ # ignore the request if it has already been completed. The server will guarantee
4198
+ # that for at least 60 minutes after the first request. For example, consider a
4199
+ # situation where you make an initial request and the request times out. If you
4200
+ # make the request again with the same request ID, the server can check if
4201
+ # original operation with the same request ID was received, and if so, will
4202
+ # ignore the second request. This prevents clients from accidentally creating
4203
+ # duplicate commitments. The request ID must be a valid UUID with the exception
4204
+ # that zero UUID is not supported (00000000-0000-0000-0000-000000000000).
4205
+ # Corresponds to the JSON property `requestId`
4206
+ # @return [String]
4207
+ attr_accessor :request_id
4208
+
4209
+ # Required. backup rule_id for which a backup needs to be triggered.
4210
+ # Corresponds to the JSON property `ruleId`
4211
+ # @return [String]
4212
+ attr_accessor :rule_id
4213
+
4214
+ def initialize(**args)
4215
+ update!(**args)
4216
+ end
4217
+
4218
+ # Update properties of this object
4219
+ def update!(**args)
4220
+ @request_id = args[:request_id] if args.key?(:request_id)
4221
+ @rule_id = args[:rule_id] if args.key?(:rule_id)
4222
+ end
4223
+ end
4224
+
4225
+ # `WeekDayOfMonth` defines the week day of the month on which the backups will
4226
+ # run. The message combines a `WeekOfMonth` and `DayOfWeek` to produce values
4227
+ # like `FIRST`/`MONDAY` or `LAST`/`FRIDAY`.
4228
+ class WeekDayOfMonth
4229
+ include Google::Apis::Core::Hashable
4230
+
4231
+ # Required. Specifies the day of the week.
4232
+ # Corresponds to the JSON property `dayOfWeek`
4233
+ # @return [String]
4234
+ attr_accessor :day_of_week
4235
+
4236
+ # Required. Specifies the week of the month.
4237
+ # Corresponds to the JSON property `weekOfMonth`
4238
+ # @return [String]
4239
+ attr_accessor :week_of_month
4240
+
4241
+ def initialize(**args)
4242
+ update!(**args)
4243
+ end
4244
+
4245
+ # Update properties of this object
4246
+ def update!(**args)
4247
+ @day_of_week = args[:day_of_week] if args.key?(:day_of_week)
4248
+ @week_of_month = args[:week_of_month] if args.key?(:week_of_month)
4249
+ end
4250
+ end
4251
+
2939
4252
  # ManagementURI depending on the Workforce Identity i.e. either 1p or 3p.
2940
4253
  class WorkforceIdentityBasedManagementUri
2941
4254
  include Google::Apis::Core::Hashable
@@ -2985,6 +4298,25 @@ module Google
2985
4298
  @third_party_oauth2_client_id = args[:third_party_oauth2_client_id] if args.key?(:third_party_oauth2_client_id)
2986
4299
  end
2987
4300
  end
4301
+
4302
+ #
4303
+ class ZoneConfiguration
4304
+ include Google::Apis::Core::Hashable
4305
+
4306
+ #
4307
+ # Corresponds to the JSON property `zone`
4308
+ # @return [String]
4309
+ attr_accessor :zone
4310
+
4311
+ def initialize(**args)
4312
+ update!(**args)
4313
+ end
4314
+
4315
+ # Update properties of this object
4316
+ def update!(**args)
4317
+ @zone = args[:zone] if args.key?(:zone)
4318
+ end
4319
+ end
2988
4320
  end
2989
4321
  end
2990
4322
  end