google-apis-backupdr_v1 0.12.0 → 0.13.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,232 @@ 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
+ # 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
+
719
1074
  # Message describing a BackupVault object.
720
1075
  class BackupVault
721
1076
  include Google::Apis::Core::Hashable
@@ -777,7 +1132,7 @@ module Google
777
1132
  # @return [Hash<String,String>]
778
1133
  attr_accessor :labels
779
1134
 
780
- # Output only. The resource name.
1135
+ # Output only. Identifier. The resource name.
781
1136
  # Corresponds to the JSON property `name`
782
1137
  # @return [String]
783
1138
  attr_accessor :name
@@ -835,6 +1190,36 @@ module Google
835
1190
  end
836
1191
  end
837
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
+
838
1223
  # Associates `members`, or principals, with a `role`.
839
1224
  class Binding
840
1225
  include Google::Apis::Core::Hashable
@@ -936,6 +1321,26 @@ module Google
936
1321
  end
937
1322
  end
938
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
+
939
1344
  # The request message for Operations.CancelOperation.
940
1345
  class CancelOperationRequest
941
1346
  include Google::Apis::Core::Hashable
@@ -949,6 +1354,50 @@ module Google
949
1354
  end
950
1355
  end
951
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
+
952
1401
  # ComputeInstanceBackupProperties represents Compute Engine instance backup
953
1402
  # properties.
954
1403
  class ComputeInstanceBackupProperties
@@ -1105,16 +1554,241 @@ module Google
1105
1554
  end
1106
1555
  end
1107
1556
 
1108
- # A customer-supplied encryption key.
1109
- class CustomerEncryptionKey
1557
+ # ComputeInstanceRestoreProperties represents Compute Engine instance properties
1558
+ # to be overridden during restore.
1559
+ class ComputeInstanceRestoreProperties
1110
1560
  include Google::Apis::Core::Hashable
1111
1561
 
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
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
1116
1566
 
1117
- # Optional. The service account being used for the encryption request for the
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
1118
1792
  # given KMS key. If absent, the Compute Engine default service account is used.
1119
1793
  # Corresponds to the JSON property `kmsKeyServiceAccount`
1120
1794
  # @return [String]
@@ -1160,7 +1834,7 @@ module Google
1160
1834
  # @return [Fixnum]
1161
1835
  attr_accessor :backup_count
1162
1836
 
1163
- # The backup configuration state.
1837
+ # Output only. The backup configuration state.
1164
1838
  # Corresponds to the JSON property `configState`
1165
1839
  # @return [String]
1166
1840
  attr_accessor :config_state
@@ -1195,7 +1869,7 @@ module Google
1195
1869
  # @return [Hash<String,String>]
1196
1870
  attr_accessor :labels
1197
1871
 
1198
- # Output only. The resource name.
1872
+ # Output only. Identifier. The resource name.
1199
1873
  # Corresponds to the JSON property `name`
1200
1874
  # @return [String]
1201
1875
  attr_accessor :name
@@ -1333,6 +2007,45 @@ module Google
1333
2007
  end
1334
2008
  end
1335
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
+
1336
2049
  # A generic empty message that you can re-use to avoid defining duplicated empty
1337
2050
  # messages in your APIs. A typical example is to use it as the request or the
1338
2051
  # response type of an API method. For instance: service Foo ` rpc Bar(google.
@@ -1431,6 +2144,26 @@ module Google
1431
2144
  end
1432
2145
  end
1433
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
+
1434
2167
  # Request message for FetchAccessToken.
1435
2168
  class FetchAccessTokenRequest
1436
2169
  include Google::Apis::Core::Hashable
@@ -1771,6 +2504,162 @@ module Google
1771
2504
  end
1772
2505
  end
1773
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`
2570
+ # @return [String]
2571
+ attr_accessor :zs_region_state
2572
+
2573
+ def initialize(**args)
2574
+ update!(**args)
2575
+ end
2576
+
2577
+ # Update properties of this object
2578
+ def update!(**args)
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)
2587
+ end
2588
+ end
2589
+
2590
+ # Response message for List BackupPlanAssociation
2591
+ class ListBackupPlanAssociationsResponse
2592
+ include Google::Apis::Core::Hashable
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
+
2613
+ def initialize(**args)
2614
+ update!(**args)
2615
+ end
2616
+
2617
+ # Update properties of this object
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)
2622
+ end
2623
+ end
2624
+
2625
+ # The response message for getting a list of `BackupPlan`.
2626
+ class ListBackupPlansResponse
2627
+ include Google::Apis::Core::Hashable
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
+
2651
+ def initialize(**args)
2652
+ update!(**args)
2653
+ end
2654
+
2655
+ # Update properties of this object
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)
2660
+ end
2661
+ end
2662
+
1774
2663
  # Response message for listing BackupVaults.
1775
2664
  class ListBackupVaultsResponse
1776
2665
  include Google::Apis::Core::Hashable
@@ -1972,28 +2861,103 @@ module Google
1972
2861
  # @return [String]
1973
2862
  attr_accessor :display_name
1974
2863
 
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
2864
+ # Cross-service attributes for the location. For example `"cloud.googleapis.com/
2865
+ # region": "us-east1"`
2866
+ # Corresponds to the JSON property `labels`
2867
+ # @return [Hash<String,String>]
2868
+ attr_accessor :labels
2869
+
2870
+ # The canonical id for this location. For example: `"us-east1"`.
2871
+ # Corresponds to the JSON property `locationId`
2872
+ # @return [String]
2873
+ attr_accessor :location_id
2874
+
2875
+ # Service-specific metadata. For example the available capacity at the given
2876
+ # location.
2877
+ # Corresponds to the JSON property `metadata`
2878
+ # @return [Hash<String,Object>]
2879
+ attr_accessor :metadata
2880
+
2881
+ # Resource name for the location, which may vary between implementations. For
2882
+ # example: `"projects/example-project/locations/us-east1"`
2883
+ # Corresponds to the JSON property `name`
2884
+ # @return [String]
2885
+ attr_accessor :name
2886
+
2887
+ def initialize(**args)
2888
+ update!(**args)
2889
+ end
2890
+
2891
+ # Update properties of this object
2892
+ def update!(**args)
2893
+ @display_name = args[:display_name] if args.key?(:display_name)
2894
+ @labels = args[:labels] if args.key?(:labels)
2895
+ @location_id = args[:location_id] if args.key?(:location_id)
2896
+ @metadata = args[:metadata] if args.key?(:metadata)
2897
+ @name = args[:name] if args.key?(:name)
2898
+ end
2899
+ end
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
1980
2945
 
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
2946
+ #
2947
+ # Corresponds to the JSON property `gcpProjectProxy`
2948
+ # @return [Google::Apis::BackupdrV1::TenantProjectProxy]
2949
+ attr_accessor :gcp_project_proxy
1985
2950
 
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
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
1991
2956
 
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
2957
+ #
2958
+ # Corresponds to the JSON property `spannerLocation`
2959
+ # @return [Google::Apis::BackupdrV1::SpannerLocation]
2960
+ attr_accessor :spanner_location
1997
2961
 
1998
2962
  def initialize(**args)
1999
2963
  update!(**args)
@@ -2001,11 +2965,12 @@ module Google
2001
2965
 
2002
2966
  # Update properties of this object
2003
2967
  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)
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)
2009
2974
  end
2010
2975
  end
2011
2976
 
@@ -2317,6 +3282,25 @@ module Google
2317
3282
  end
2318
3283
  end
2319
3284
 
3285
+ # Network performance configuration.
3286
+ class NetworkPerformanceConfig
3287
+ include Google::Apis::Core::Hashable
3288
+
3289
+ # Optional. The tier of the total egress bandwidth.
3290
+ # Corresponds to the JSON property `totalEgressBandwidthTier`
3291
+ # @return [String]
3292
+ attr_accessor :total_egress_bandwidth_tier
3293
+
3294
+ def initialize(**args)
3295
+ update!(**args)
3296
+ end
3297
+
3298
+ # Update properties of this object
3299
+ def update!(**args)
3300
+ @total_egress_bandwidth_tier = args[:total_egress_bandwidth_tier] if args.key?(:total_egress_bandwidth_tier)
3301
+ end
3302
+ end
3303
+
2320
3304
  # Node Affinity: the configuration of desired nodes onto which this Instance
2321
3305
  # could be scheduled.
2322
3306
  class NodeAffinity
@@ -2477,6 +3461,27 @@ module Google
2477
3461
  end
2478
3462
  end
2479
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
+
2480
3485
  # An Identity and Access Management (IAM) policy, which specifies access
2481
3486
  # controls for Google Cloud resources. A `Policy` is a collection of `bindings`.
2482
3487
  # A `binding` binds one or more `members`, or principals, to a single `role`.
@@ -2572,6 +3577,33 @@ module Google
2572
3577
  end
2573
3578
  end
2574
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
+
2575
3607
  # Message for deleting a DataSource.
2576
3608
  class RemoveDataSourceRequest
2577
3609
  include Google::Apis::Core::Hashable
@@ -2600,6 +3632,126 @@ module Google
2600
3632
  end
2601
3633
  end
2602
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
+
2603
3755
  # Sets the scheduling options for an Instance.
2604
3756
  class Scheduling
2605
3757
  include Google::Apis::Core::Hashable
@@ -2800,7 +3952,7 @@ module Google
2800
3952
  class SetInternalStatusRequest
2801
3953
  include Google::Apis::Core::Hashable
2802
3954
 
2803
- # Required. The new BackupConfigState to set for the DataSource.
3955
+ # Required. Output only. The new BackupConfigState to set for the DataSource.
2804
3956
  # Corresponds to the JSON property `backupConfigState`
2805
3957
  # @return [String]
2806
3958
  attr_accessor :backup_config_state
@@ -2837,6 +3989,115 @@ module Google
2837
3989
  end
2838
3990
  end
2839
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
+
2840
4101
  # The `Status` type defines a logical error model that is suitable for different
2841
4102
  # programming environments, including REST APIs and RPC APIs. It is used by [
2842
4103
  # gRPC](https://github.com/grpc). Each `Status` message contains three pieces of
@@ -2896,6 +4157,25 @@ module Google
2896
4157
  end
2897
4158
  end
2898
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
+
2899
4179
  # Request message for `TestIamPermissions` method.
2900
4180
  class TestIamPermissionsRequest
2901
4181
  include Google::Apis::Core::Hashable
@@ -2936,6 +4216,67 @@ module Google
2936
4216
  end
2937
4217
  end
2938
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
+
2939
4280
  # ManagementURI depending on the Workforce Identity i.e. either 1p or 3p.
2940
4281
  class WorkforceIdentityBasedManagementUri
2941
4282
  include Google::Apis::Core::Hashable
@@ -2985,6 +4326,25 @@ module Google
2985
4326
  @third_party_oauth2_client_id = args[:third_party_oauth2_client_id] if args.key?(:third_party_oauth2_client_id)
2986
4327
  end
2987
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
2988
4348
  end
2989
4349
  end
2990
4350
  end