lib/google/apis/backupdr_v1/classes.rb in google-apis-backupdr_v1-0.12.0 vs lib/google/apis/backupdr_v1/classes.rb in google-apis-backupdr_v1-0.13.0

- old
+ new

@@ -141,10 +141,54 @@ @set_public_ptr = args[:set_public_ptr] if args.key?(:set_public_ptr) @type = args[:type] if args.key?(:type) end end + # Specifies options for controlling advanced machine features. + class AdvancedMachineFeatures + include Google::Apis::Core::Hashable + + # Optional. Whether to enable nested virtualization or not (default is false). + # Corresponds to the JSON property `enableNestedVirtualization` + # @return [Boolean] + attr_accessor :enable_nested_virtualization + alias_method :enable_nested_virtualization?, :enable_nested_virtualization + + # Optional. Whether to enable UEFI networking for instance creation. + # Corresponds to the JSON property `enableUefiNetworking` + # @return [Boolean] + attr_accessor :enable_uefi_networking + alias_method :enable_uefi_networking?, :enable_uefi_networking + + # Optional. The number of threads per physical core. To disable simultaneous + # multithreading (SMT) set this to 1. If unset, the maximum number of threads + # supported per core by the underlying processor is assumed. + # Corresponds to the JSON property `threadsPerCore` + # @return [Fixnum] + attr_accessor :threads_per_core + + # Optional. The number of physical cores to expose to an instance. Multiply by + # the number of threads per core to compute the total number of virtual CPUs to + # expose to the instance. If unset, the number of cores is inferred from the + # instance's nominal CPU count and the underlying platform's SMT width. + # Corresponds to the JSON property `visibleCoreCount` + # @return [Fixnum] + attr_accessor :visible_core_count + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @enable_nested_virtualization = args[:enable_nested_virtualization] if args.key?(:enable_nested_virtualization) + @enable_uefi_networking = args[:enable_uefi_networking] if args.key?(:enable_uefi_networking) + @threads_per_core = args[:threads_per_core] if args.key?(:threads_per_core) + @visible_core_count = args[:visible_core_count] if args.key?(:visible_core_count) + end + end + # An alias IP range attached to an instance's network interface. class AliasIpRange include Google::Apis::Core::Hashable # Optional. The IP alias ranges to allocate for this interface. @@ -168,10 +212,89 @@ @ip_cidr_range = args[:ip_cidr_range] if args.key?(:ip_cidr_range) @subnetwork_range_name = args[:subnetwork_range_name] if args.key?(:subnetwork_range_name) end end + # Specifies the reservations that this instance can consume from. + class AllocationAffinity + include Google::Apis::Core::Hashable + + # Optional. Specifies the type of reservation from which this instance can + # consume + # Corresponds to the JSON property `consumeReservationType` + # @return [String] + attr_accessor :consume_reservation_type + + # Optional. Corresponds to the label key of a reservation resource. + # Corresponds to the JSON property `key` + # @return [String] + attr_accessor :key + + # Optional. Corresponds to the label values of a reservation resource. + # Corresponds to the JSON property `values` + # @return [Array<String>] + attr_accessor :values + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @consume_reservation_type = args[:consume_reservation_type] if args.key?(:consume_reservation_type) + @key = args[:key] if args.key?(:key) + @values = args[:values] if args.key?(:values) + end + end + + # Provides the mapping of a cloud asset to a direct physical location or to a + # proxy that defines the location on its behalf. + class AssetLocation + include Google::Apis::Core::Hashable + + # Spanner path of the CCFE RMS database. It is only applicable for CCFE tenants + # that use CCFE RMS for storing resource metadata. + # Corresponds to the JSON property `ccfeRmsPath` + # @return [String] + attr_accessor :ccfe_rms_path + + # Defines the customer expectation around ZI/ZS for this asset and ZI/ZS state + # of the region at the time of asset creation. + # Corresponds to the JSON property `expected` + # @return [Google::Apis::BackupdrV1::IsolationExpectations] + attr_accessor :expected + + # Defines extra parameters required for specific asset types. + # Corresponds to the JSON property `extraParameters` + # @return [Array<Google::Apis::BackupdrV1::ExtraParameter>] + attr_accessor :extra_parameters + + # Contains all kinds of physical location definitions for this asset. + # Corresponds to the JSON property `locationData` + # @return [Array<Google::Apis::BackupdrV1::LocationData>] + attr_accessor :location_data + + # Defines parents assets if any in order to allow later generation of + # child_asset_location data via child assets. + # Corresponds to the JSON property `parentAsset` + # @return [Array<Google::Apis::BackupdrV1::CloudAsset>] + attr_accessor :parent_asset + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @ccfe_rms_path = args[:ccfe_rms_path] if args.key?(:ccfe_rms_path) + @expected = args[:expected] if args.key?(:expected) + @extra_parameters = args[:extra_parameters] if args.key?(:extra_parameters) + @location_data = args[:location_data] if args.key?(:location_data) + @parent_asset = args[:parent_asset] if args.key?(:parent_asset) + end + end + # An instance-attached disk resource. class AttachedDisk include Google::Apis::Core::Hashable # Optional. Specifies whether the disk will be auto-deleted when the instance is @@ -208,20 +331,20 @@ # Optional. The size of the disk in GB. # Corresponds to the JSON property `diskSizeGb` # @return [Fixnum] attr_accessor :disk_size_gb - # Optional. Specifies the type of the disk. + # Optional. Output only. The URI of the disk type resource. For example: + # projects/project/zones/zone/diskTypes/pd-standard or pd-ssd # Corresponds to the JSON property `diskType` # @return [String] attr_accessor :disk_type - # Optional. Output only. The URI of the disk type resource. For example: - # projects/project/zones/zone/diskTypes/pd-standard or pd-ssd - # Corresponds to the JSON property `diskTypeUri` + # Specifies the type of the disk. + # Corresponds to the JSON property `diskTypeDeprecated` # @return [String] - attr_accessor :disk_type_uri + attr_accessor :disk_type_deprecated # Optional. A list of features to enable on the guest operating system. # Applicable only for bootable images. # Corresponds to the JSON property `guestOsFeature` # @return [Array<Google::Apis::BackupdrV1::GuestOsFeature>] @@ -262,10 +385,15 @@ # resource. # Corresponds to the JSON property `source` # @return [String] attr_accessor :source + # Optional. Specifies the type of the disk. + # Corresponds to the JSON property `type` + # @return [String] + attr_accessor :type + def initialize(**args) update!(**args) end # Update properties of this object @@ -275,19 +403,20 @@ @device_name = args[:device_name] if args.key?(:device_name) @disk_encryption_key = args[:disk_encryption_key] if args.key?(:disk_encryption_key) @disk_interface = args[:disk_interface] if args.key?(:disk_interface) @disk_size_gb = args[:disk_size_gb] if args.key?(:disk_size_gb) @disk_type = args[:disk_type] if args.key?(:disk_type) - @disk_type_uri = args[:disk_type_uri] if args.key?(:disk_type_uri) + @disk_type_deprecated = args[:disk_type_deprecated] if args.key?(:disk_type_deprecated) @guest_os_feature = args[:guest_os_feature] if args.key?(:guest_os_feature) @index = args[:index] if args.key?(:index) @initialize_params = args[:initialize_params] if args.key?(:initialize_params) @kind = args[:kind] if args.key?(:kind) @license = args[:license] if args.key?(:license) @mode = args[:mode] if args.key?(:mode) @saved_state = args[:saved_state] if args.key?(:saved_state) @source = args[:source] if args.key?(:source) + @type = args[:type] if args.key?(:type) end end # Specifies the audit configuration for a service. The configuration determines # which permission types are logged, and what identities, if any, are exempted @@ -373,11 +502,11 @@ # Optional. The list of BackupLocks taken by the accessor Backup Appliance. # Corresponds to the JSON property `backupApplianceLocks` # @return [Array<Google::Apis::BackupdrV1::BackupLock>] attr_accessor :backup_appliance_locks - # + # Output only. Type of the backup, unspecified, scheduled or ondemand. # Corresponds to the JSON property `backupType` # @return [String] attr_accessor :backup_type # ComputeInstanceBackupProperties represents Compute Engine instance backup @@ -426,11 +555,11 @@ # currently defined. # Corresponds to the JSON property `labels` # @return [Hash<String,String>] attr_accessor :labels - # Output only. Name of the resource. + # Output only. Identifier. Name of the resource. # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # Output only. source resource size in bytes at the time of the backup. @@ -714,10 +843,236 @@ @lock_until_time = args[:lock_until_time] if args.key?(:lock_until_time) @service_lock_info = args[:service_lock_info] if args.key?(:service_lock_info) end end + # A `BackupPlan` specifies some common fields, such as `display_name` as well as + # one or more `BackupRule` messages. Each `BackupRule` has a retention policy + # and defines a schedule by which the system is to perform backup workloads. + class BackupPlan + include Google::Apis::Core::Hashable + + # Required. The backup rules for this `BackupPlan`. There must be at least one ` + # BackupRule` message. + # Corresponds to the JSON property `backupRules` + # @return [Array<Google::Apis::BackupdrV1::BackupRule>] + attr_accessor :backup_rules + + # Required. Resource name of backup vault which will be used as storage location + # for backups. Format: projects/`project`/locations/`location`/backupVaults/` + # backupvault` + # Corresponds to the JSON property `backupVault` + # @return [String] + attr_accessor :backup_vault + + # Output only. The Google Cloud Platform Service Account to be used by the + # BackupVault for taking backups. Specify the email address of the Backup Vault + # Service Account. + # Corresponds to the JSON property `backupVaultServiceAccount` + # @return [String] + attr_accessor :backup_vault_service_account + + # Output only. When the `BackupPlan` was created. + # Corresponds to the JSON property `createTime` + # @return [String] + attr_accessor :create_time + + # Optional. The description of the `BackupPlan` resource. The description allows + # for additional details about `BackupPlan` and its use cases to be provided. An + # example description is the following: "This is a backup plan that performs a + # daily backup at 6pm and retains data for 3 months". The description must be at + # most 2048 characters. + # Corresponds to the JSON property `description` + # @return [String] + attr_accessor :description + + # Optional. `etag` is returned from the service in the response. As a user of + # the service, you may provide an etag value in this field to prevent stale + # resources. + # Corresponds to the JSON property `etag` + # @return [String] + attr_accessor :etag + + # Optional. This collection of key/value pairs allows for custom labels to be + # supplied by the user. Example, `"tag": "Weekly"`. + # Corresponds to the JSON property `labels` + # @return [Hash<String,String>] + attr_accessor :labels + + # Output only. Identifier. The resource name of the `BackupPlan`. Format: ` + # projects/`project`/locations/`location`/backupPlans/`backup_plan`` + # Corresponds to the JSON property `name` + # @return [String] + attr_accessor :name + + # Required. The resource type to which the `BackupPlan` will be applied. + # Examples include, "compute.googleapis.com/Instance" and "storage.googleapis. + # com/Bucket". + # Corresponds to the JSON property `resourceType` + # @return [String] + attr_accessor :resource_type + + # Output only. The `State` for the `BackupPlan`. + # Corresponds to the JSON property `state` + # @return [String] + attr_accessor :state + + # Output only. When the `BackupPlan` was last updated. + # Corresponds to the JSON property `updateTime` + # @return [String] + attr_accessor :update_time + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @backup_rules = args[:backup_rules] if args.key?(:backup_rules) + @backup_vault = args[:backup_vault] if args.key?(:backup_vault) + @backup_vault_service_account = args[:backup_vault_service_account] if args.key?(:backup_vault_service_account) + @create_time = args[:create_time] if args.key?(:create_time) + @description = args[:description] if args.key?(:description) + @etag = args[:etag] if args.key?(:etag) + @labels = args[:labels] if args.key?(:labels) + @name = args[:name] if args.key?(:name) + @resource_type = args[:resource_type] if args.key?(:resource_type) + @state = args[:state] if args.key?(:state) + @update_time = args[:update_time] if args.key?(:update_time) + end + end + + # A BackupPlanAssociation represents a single BackupPlanAssociation which + # contains details like workload, backup plan etc + class BackupPlanAssociation + include Google::Apis::Core::Hashable + + # Required. Resource name of backup plan which needs to be applied on workload. + # Format: projects/`project`/locations/`location`/backupPlans/`backupPlanId` + # Corresponds to the JSON property `backupPlan` + # @return [String] + attr_accessor :backup_plan + + # Output only. The time when the instance was created. + # Corresponds to the JSON property `createTime` + # @return [String] + attr_accessor :create_time + + # Output only. Output Only. Resource name of data source which will be used as + # storage location for backups taken. Format : projects/`project`/locations/` + # location`/backupVaults/`backupvault`/dataSources/`datasource` + # Corresponds to the JSON property `dataSource` + # @return [String] + attr_accessor :data_source + + # Output only. Identifier. The resource name of BackupPlanAssociation in below + # format Format : projects/`project`/locations/`location`/backupPlanAssociations/ + # `backupPlanAssociationId` + # Corresponds to the JSON property `name` + # @return [String] + attr_accessor :name + + # Required. Immutable. Resource name of workload on which backupplan is applied + # Corresponds to the JSON property `resource` + # @return [String] + attr_accessor :resource + + # Output only. Output Only. Resource type of workload on which backupplan is + # applied + # Corresponds to the JSON property `resourceType` + # @return [String] + attr_accessor :resource_type + + # Output only. The config info related to backup rules. + # Corresponds to the JSON property `rulesConfigInfo` + # @return [Array<Google::Apis::BackupdrV1::RuleConfigInfo>] + attr_accessor :rules_config_info + + # Output only. The BackupPlanAssociation resource state. + # Corresponds to the JSON property `state` + # @return [String] + attr_accessor :state + + # Output only. The time when the instance was updated. + # Corresponds to the JSON property `updateTime` + # @return [String] + attr_accessor :update_time + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @backup_plan = args[:backup_plan] if args.key?(:backup_plan) + @create_time = args[:create_time] if args.key?(:create_time) + @data_source = args[:data_source] if args.key?(:data_source) + @name = args[:name] if args.key?(:name) + @resource = args[:resource] if args.key?(:resource) + @resource_type = args[:resource_type] if args.key?(:resource_type) + @rules_config_info = args[:rules_config_info] if args.key?(:rules_config_info) + @state = args[:state] if args.key?(:state) + @update_time = args[:update_time] if args.key?(:update_time) + end + end + + # `BackupRule` binds the backup schedule to a retention policy. + class BackupRule + include Google::Apis::Core::Hashable + + # Required. Configures the duration for which backup data will be kept. It is + # defined in “days”. The value should be greater than or equal to minimum + # enforced retention of the backup vault. + # Corresponds to the JSON property `backupRetentionDays` + # @return [Fixnum] + attr_accessor :backup_retention_days + + # Optional. TODO b/341576760: Remove deprecated BV and Datasource field form BP + # and BPA once UI removed all dependencies on them Required. Resource name of + # backup vault which will be used as storage location for backups. Format: + # projects/`project`/locations/`location`/backupVaults/`backupvault` + # Corresponds to the JSON property `backupVault` + # @return [String] + attr_accessor :backup_vault + + # Output only. TODO b/341576760: Remove deprecated BV and Datasource field form + # BP and BPA once UI removed all dependencies on them Output only. The Google + # Cloud Platform Service Account to be used by the BackupVault for taking + # backups. Specify the email address of the Backup Vault Service Account. + # Corresponds to the JSON property `backupVaultServiceAccount` + # @return [String] + attr_accessor :backup_vault_service_account + + # Required. Immutable. The unique id of this `BackupRule`. The `rule_id` is + # unique per `BackupPlan`.The `rule_id` must start with a lowercase letter + # followed by up to 62 lowercase letters, numbers, or hyphens. Pattern, /a-z`,62` + # /. + # Corresponds to the JSON property `ruleId` + # @return [String] + attr_accessor :rule_id + + # `StandardSchedule` defines a schedule that run within the confines of a + # defined window of days. We can define recurrence type for schedule as HOURLY, + # DAILY, WEEKLY, MONTHLY or YEARLY. + # Corresponds to the JSON property `standardSchedule` + # @return [Google::Apis::BackupdrV1::StandardSchedule] + attr_accessor :standard_schedule + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @backup_retention_days = args[:backup_retention_days] if args.key?(:backup_retention_days) + @backup_vault = args[:backup_vault] if args.key?(:backup_vault) + @backup_vault_service_account = args[:backup_vault_service_account] if args.key?(:backup_vault_service_account) + @rule_id = args[:rule_id] if args.key?(:rule_id) + @standard_schedule = args[:standard_schedule] if args.key?(:standard_schedule) + end + end + # Message describing a BackupVault object. class BackupVault include Google::Apis::Core::Hashable # Optional. User annotations. See https://google.aip.dev/128#annotations Stores @@ -775,11 +1130,11 @@ # currently defined: # Corresponds to the JSON property `labels` # @return [Hash<String,String>] attr_accessor :labels - # Output only. The resource name. + # Output only. Identifier. The resource name. # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # Output only. Service account used by the BackupVault Service for this @@ -833,10 +1188,40 @@ @uid = args[:uid] if args.key?(:uid) @update_time = args[:update_time] if args.key?(:update_time) end end + # `BackupWindow` defines a window of the day during which backup jobs will run. + class BackupWindow + include Google::Apis::Core::Hashable + + # Required. The hour of day (1-24) when the window end for e.g. if value of end + # hour of day is 10 that mean backup window end time is 10:00. End hour of day + # should be greater than start hour of day. 0 <= start_hour_of_day < + # end_hour_of_day <= 24 End hour of day is not include in backup window that + # mean if end_hour_of_day= 10 jobs should start before 10:00. + # Corresponds to the JSON property `endHourOfDay` + # @return [Fixnum] + attr_accessor :end_hour_of_day + + # Required. The hour of day (0-23) when the window starts for e.g. if value of + # start hour of day is 6 that mean backup window start at 6:00. + # Corresponds to the JSON property `startHourOfDay` + # @return [Fixnum] + attr_accessor :start_hour_of_day + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @end_hour_of_day = args[:end_hour_of_day] if args.key?(:end_hour_of_day) + @start_hour_of_day = args[:start_hour_of_day] if args.key?(:start_hour_of_day) + end + end + # Associates `members`, or principals, with a `role`. class Binding include Google::Apis::Core::Hashable # Represents a textual expression in the Common Expression Language (CEL) syntax. @@ -934,10 +1319,30 @@ @members = args[:members] if args.key?(:members) @role = args[:role] if args.key?(:role) end end + # Policy ID that identified data placement in Blobstore as per go/blobstore-user- + # guide#data-metadata-placement-and-failure-domains + class BlobstoreLocation + include Google::Apis::Core::Hashable + + # + # Corresponds to the JSON property `policyId` + # @return [Array<String>] + attr_accessor :policy_id + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @policy_id = args[:policy_id] if args.key?(:policy_id) + end + end + # The request message for Operations.CancelOperation. class CancelOperationRequest include Google::Apis::Core::Hashable def initialize(**args) @@ -947,10 +1352,54 @@ # Update properties of this object def update!(**args) end end + # + class CloudAsset + include Google::Apis::Core::Hashable + + # + # Corresponds to the JSON property `assetName` + # @return [String] + attr_accessor :asset_name + + # + # Corresponds to the JSON property `assetType` + # @return [String] + attr_accessor :asset_type + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @asset_name = args[:asset_name] if args.key?(:asset_name) + @asset_type = args[:asset_type] if args.key?(:asset_type) + end + end + + # + class CloudAssetComposition + include Google::Apis::Core::Hashable + + # + # Corresponds to the JSON property `childAsset` + # @return [Array<Google::Apis::BackupdrV1::CloudAsset>] + attr_accessor :child_asset + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @child_asset = args[:child_asset] if args.key?(:child_asset) + end + end + # ComputeInstanceBackupProperties represents Compute Engine instance backup # properties. class ComputeInstanceBackupProperties include Google::Apis::Core::Hashable @@ -1103,10 +1552,235 @@ @total_disk_count = args[:total_disk_count] if args.key?(:total_disk_count) @total_disk_size_gb = args[:total_disk_size_gb] if args.key?(:total_disk_size_gb) end end + # ComputeInstanceRestoreProperties represents Compute Engine instance properties + # to be overridden during restore. + class ComputeInstanceRestoreProperties + include Google::Apis::Core::Hashable + + # Specifies options for controlling advanced machine features. + # Corresponds to the JSON property `advancedMachineFeatures` + # @return [Google::Apis::BackupdrV1::AdvancedMachineFeatures] + attr_accessor :advanced_machine_features + + # Optional. Allows this instance to send and receive packets with non-matching + # destination or source IPs. + # Corresponds to the JSON property `canIpForward` + # @return [Boolean] + attr_accessor :can_ip_forward + alias_method :can_ip_forward?, :can_ip_forward + + # A set of Confidential Instance options. + # Corresponds to the JSON property `confidentialInstanceConfig` + # @return [Google::Apis::BackupdrV1::ConfidentialInstanceConfig] + attr_accessor :confidential_instance_config + + # Optional. Whether the resource should be protected against deletion. + # Corresponds to the JSON property `deletionProtection` + # @return [Boolean] + attr_accessor :deletion_protection + alias_method :deletion_protection?, :deletion_protection + + # Optional. An optional description of this resource. Provide this property when + # you create the resource. + # Corresponds to the JSON property `description` + # @return [String] + attr_accessor :description + + # Optional. Array of disks associated with this instance. Persistent disks must + # be created before you can assign them. + # Corresponds to the JSON property `disks` + # @return [Array<Google::Apis::BackupdrV1::AttachedDisk>] + attr_accessor :disks + + # A set of Display Device options + # Corresponds to the JSON property `displayDevice` + # @return [Google::Apis::BackupdrV1::DisplayDevice] + attr_accessor :display_device + + # Optional. A list of the type and count of accelerator cards attached to the + # instance. + # Corresponds to the JSON property `guestAccelerators` + # @return [Array<Google::Apis::BackupdrV1::AcceleratorConfig>] + attr_accessor :guest_accelerators + + # Optional. Specifies the hostname of the instance. The specified hostname must + # be RFC1035 compliant. If hostname is not specified, the default hostname is [ + # INSTANCE_NAME].c.[PROJECT_ID].internal when using the global DNS, and [ + # INSTANCE_NAME].[ZONE].c.[PROJECT_ID].internal when using zonal DNS. + # Corresponds to the JSON property `hostname` + # @return [String] + attr_accessor :hostname + + # A customer-supplied encryption key. + # Corresponds to the JSON property `instanceEncryptionKey` + # @return [Google::Apis::BackupdrV1::CustomerEncryptionKey] + attr_accessor :instance_encryption_key + + # Optional. KeyRevocationActionType of the instance. + # Corresponds to the JSON property `keyRevocationActionType` + # @return [String] + attr_accessor :key_revocation_action_type + + # Optional. Labels to apply to this instance. + # Corresponds to the JSON property `labels` + # @return [Hash<String,String>] + attr_accessor :labels + + # Optional. Full or partial URL of the machine type resource to use for this + # instance. + # Corresponds to the JSON property `machineType` + # @return [String] + attr_accessor :machine_type + + # A metadata key/value entry. + # Corresponds to the JSON property `metadata` + # @return [Google::Apis::BackupdrV1::Metadata] + attr_accessor :metadata + + # Optional. Minimum CPU platform to use for this instance. + # Corresponds to the JSON property `minCpuPlatform` + # @return [String] + attr_accessor :min_cpu_platform + + # Required. Name of the compute instance. + # Corresponds to the JSON property `name` + # @return [String] + attr_accessor :name + + # Optional. An array of network configurations for this instance. These specify + # how interfaces are configured to interact with other network services, such as + # connecting to the internet. Multiple interfaces are supported per instance. + # Corresponds to the JSON property `networkInterfaces` + # @return [Array<Google::Apis::BackupdrV1::NetworkInterface>] + attr_accessor :network_interfaces + + # Network performance configuration. + # Corresponds to the JSON property `networkPerformanceConfig` + # @return [Google::Apis::BackupdrV1::NetworkPerformanceConfig] + attr_accessor :network_performance_config + + # Additional instance params. + # Corresponds to the JSON property `params` + # @return [Google::Apis::BackupdrV1::InstanceParams] + attr_accessor :params + + # Optional. The private IPv6 google access type for the VM. If not specified, + # use INHERIT_FROM_SUBNETWORK as default. + # Corresponds to the JSON property `privateIpv6GoogleAccess` + # @return [String] + attr_accessor :private_ipv6_google_access + + # Specifies the reservations that this instance can consume from. + # Corresponds to the JSON property `reservationAffinity` + # @return [Google::Apis::BackupdrV1::AllocationAffinity] + attr_accessor :reservation_affinity + + # Optional. Resource policies applied to this instance. + # Corresponds to the JSON property `resourcePolicies` + # @return [Array<String>] + attr_accessor :resource_policies + + # Sets the scheduling options for an Instance. + # Corresponds to the JSON property `scheduling` + # @return [Google::Apis::BackupdrV1::Scheduling] + attr_accessor :scheduling + + # Optional. A list of service accounts, with their specified scopes, authorized + # for this instance. Only one service account per VM instance is supported. + # Corresponds to the JSON property `serviceAccounts` + # @return [Array<Google::Apis::BackupdrV1::ServiceAccount>] + attr_accessor :service_accounts + + # A set of instance tags. + # Corresponds to the JSON property `tags` + # @return [Google::Apis::BackupdrV1::Tags] + attr_accessor :tags + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @advanced_machine_features = args[:advanced_machine_features] if args.key?(:advanced_machine_features) + @can_ip_forward = args[:can_ip_forward] if args.key?(:can_ip_forward) + @confidential_instance_config = args[:confidential_instance_config] if args.key?(:confidential_instance_config) + @deletion_protection = args[:deletion_protection] if args.key?(:deletion_protection) + @description = args[:description] if args.key?(:description) + @disks = args[:disks] if args.key?(:disks) + @display_device = args[:display_device] if args.key?(:display_device) + @guest_accelerators = args[:guest_accelerators] if args.key?(:guest_accelerators) + @hostname = args[:hostname] if args.key?(:hostname) + @instance_encryption_key = args[:instance_encryption_key] if args.key?(:instance_encryption_key) + @key_revocation_action_type = args[:key_revocation_action_type] if args.key?(:key_revocation_action_type) + @labels = args[:labels] if args.key?(:labels) + @machine_type = args[:machine_type] if args.key?(:machine_type) + @metadata = args[:metadata] if args.key?(:metadata) + @min_cpu_platform = args[:min_cpu_platform] if args.key?(:min_cpu_platform) + @name = args[:name] if args.key?(:name) + @network_interfaces = args[:network_interfaces] if args.key?(:network_interfaces) + @network_performance_config = args[:network_performance_config] if args.key?(:network_performance_config) + @params = args[:params] if args.key?(:params) + @private_ipv6_google_access = args[:private_ipv6_google_access] if args.key?(:private_ipv6_google_access) + @reservation_affinity = args[:reservation_affinity] if args.key?(:reservation_affinity) + @resource_policies = args[:resource_policies] if args.key?(:resource_policies) + @scheduling = args[:scheduling] if args.key?(:scheduling) + @service_accounts = args[:service_accounts] if args.key?(:service_accounts) + @tags = args[:tags] if args.key?(:tags) + end + end + + # ComputeInstanceTargetEnvironment represents Compute Engine target environment + # to be used during restore. + class ComputeInstanceTargetEnvironment + include Google::Apis::Core::Hashable + + # Required. Target project for the Compute Engine instance. + # Corresponds to the JSON property `project` + # @return [String] + attr_accessor :project + + # Required. The zone of the Compute Engine instance. + # Corresponds to the JSON property `zone` + # @return [String] + attr_accessor :zone + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @project = args[:project] if args.key?(:project) + @zone = args[:zone] if args.key?(:zone) + end + end + + # A set of Confidential Instance options. + class ConfidentialInstanceConfig + include Google::Apis::Core::Hashable + + # Optional. Defines whether the instance should have confidential compute + # enabled. + # Corresponds to the JSON property `enableConfidentialCompute` + # @return [Boolean] + attr_accessor :enable_confidential_compute + alias_method :enable_confidential_compute?, :enable_confidential_compute + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @enable_confidential_compute = args[:enable_confidential_compute] if args.key?(:enable_confidential_compute) + end + end + # A customer-supplied encryption key. class CustomerEncryptionKey include Google::Apis::Core::Hashable # Optional. The name of the encryption key that is stored in Google Cloud KMS. @@ -1158,11 +1832,11 @@ # Number of backups in the data source. # Corresponds to the JSON property `backupCount` # @return [Fixnum] attr_accessor :backup_count - # The backup configuration state. + # Output only. The backup configuration state. # Corresponds to the JSON property `configState` # @return [String] attr_accessor :config_state # Output only. The time when the instance was created. @@ -1193,11 +1867,11 @@ # currently defined: # Corresponds to the JSON property `labels` # @return [Hash<String,String>] attr_accessor :labels - # Output only. The resource name. + # Output only. Identifier. The resource name. # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # Output only. The DataSource resource instance state. @@ -1331,10 +2005,49 @@ @location = args[:location] if args.key?(:location) @type = args[:type] if args.key?(:type) end end + # + class DirectLocationAssignment + include Google::Apis::Core::Hashable + + # + # Corresponds to the JSON property `location` + # @return [Array<Google::Apis::BackupdrV1::LocationAssignment>] + attr_accessor :location + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @location = args[:location] if args.key?(:location) + end + end + + # A set of Display Device options + class DisplayDevice + include Google::Apis::Core::Hashable + + # Optional. Enables display for the Compute Engine VM + # Corresponds to the JSON property `enableDisplay` + # @return [Boolean] + attr_accessor :enable_display + alias_method :enable_display?, :enable_display + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @enable_display = args[:enable_display] if args.key?(:enable_display) + end + end + # A generic empty message that you can re-use to avoid defining duplicated empty # messages in your APIs. A typical example is to use it as the request or the # response type of an API method. For instance: service Foo ` rpc Bar(google. # protobuf.Empty) returns (google.protobuf.Empty); ` class Empty @@ -1429,10 +2142,30 @@ @location = args[:location] if args.key?(:location) @title = args[:title] if args.key?(:title) end end + # Defines parameters that should only be used for specific asset types. + class ExtraParameter + include Google::Apis::Core::Hashable + + # To be used for specifying the intended distribution of regional compute. + # googleapis.com/InstanceGroupManager instances + # Corresponds to the JSON property `regionalMigDistributionPolicy` + # @return [Google::Apis::BackupdrV1::RegionalMigDistributionPolicy] + attr_accessor :regional_mig_distribution_policy + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @regional_mig_distribution_policy = args[:regional_mig_distribution_policy] if args.key?(:regional_mig_distribution_policy) + end + end + # Request message for FetchAccessToken. class FetchAccessTokenRequest include Google::Apis::Core::Hashable # Required. The generation of the backup to update. @@ -1769,10 +2502,166 @@ @base_backup_generation_id = args[:base_backup_generation_id] if args.key?(:base_backup_generation_id) @new_backup_generation_id = args[:new_backup_generation_id] if args.key?(:new_backup_generation_id) end end + # Additional instance params. + class InstanceParams + include Google::Apis::Core::Hashable + + # Optional. Resource manager tags to be bound to the instance. + # Corresponds to the JSON property `resourceManagerTags` + # @return [Hash<String,String>] + attr_accessor :resource_manager_tags + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @resource_manager_tags = args[:resource_manager_tags] if args.key?(:resource_manager_tags) + end + end + + # + class IsolationExpectations + include Google::Apis::Core::Hashable + + # Explicit overrides for ZI and ZS requirements to be used for resources that + # should be excluded from ZI/ZS verification logic. + # Corresponds to the JSON property `requirementOverride` + # @return [Google::Apis::BackupdrV1::RequirementOverride] + attr_accessor :requirement_override + + # + # Corresponds to the JSON property `ziOrgPolicy` + # @return [String] + attr_accessor :zi_org_policy + + # + # Corresponds to the JSON property `ziRegionPolicy` + # @return [String] + attr_accessor :zi_region_policy + + # + # Corresponds to the JSON property `ziRegionState` + # @return [String] + attr_accessor :zi_region_state + + # Deprecated: use zi_org_policy, zi_region_policy and zi_region_state instead + # for setting ZI expectations as per go/zicy-publish-physical-location. + # Corresponds to the JSON property `zoneIsolation` + # @return [String] + attr_accessor :zone_isolation + + # Deprecated: use zs_org_policy, and zs_region_stateinstead for setting Zs + # expectations as per go/zicy-publish-physical-location. + # Corresponds to the JSON property `zoneSeparation` + # @return [String] + attr_accessor :zone_separation + + # + # Corresponds to the JSON property `zsOrgPolicy` + # @return [String] + attr_accessor :zs_org_policy + + # + # Corresponds to the JSON property `zsRegionState` + # @return [String] + attr_accessor :zs_region_state + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @requirement_override = args[:requirement_override] if args.key?(:requirement_override) + @zi_org_policy = args[:zi_org_policy] if args.key?(:zi_org_policy) + @zi_region_policy = args[:zi_region_policy] if args.key?(:zi_region_policy) + @zi_region_state = args[:zi_region_state] if args.key?(:zi_region_state) + @zone_isolation = args[:zone_isolation] if args.key?(:zone_isolation) + @zone_separation = args[:zone_separation] if args.key?(:zone_separation) + @zs_org_policy = args[:zs_org_policy] if args.key?(:zs_org_policy) + @zs_region_state = args[:zs_region_state] if args.key?(:zs_region_state) + end + end + + # Response message for List BackupPlanAssociation + class ListBackupPlanAssociationsResponse + include Google::Apis::Core::Hashable + + # The list of Backup Plan Associations in the project for the specified location. + # If the ``location`` value in the request is "-", the response contains a list + # of instances from all locations. In case any location is unreachable, the + # response will only return backup plan associations in reachable locations and + # the 'unreachable' field will be populated with a list of unreachable locations. + # Corresponds to the JSON property `backupPlanAssociations` + # @return [Array<Google::Apis::BackupdrV1::BackupPlanAssociation>] + attr_accessor :backup_plan_associations + + # A token identifying a page of results the server should return. + # Corresponds to the JSON property `nextPageToken` + # @return [String] + attr_accessor :next_page_token + + # Locations that could not be reached. + # Corresponds to the JSON property `unreachable` + # @return [Array<String>] + attr_accessor :unreachable + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @backup_plan_associations = args[:backup_plan_associations] if args.key?(:backup_plan_associations) + @next_page_token = args[:next_page_token] if args.key?(:next_page_token) + @unreachable = args[:unreachable] if args.key?(:unreachable) + end + end + + # The response message for getting a list of `BackupPlan`. + class ListBackupPlansResponse + include Google::Apis::Core::Hashable + + # The list of `BackupPlans` in the project for the specified location. If the `` + # location`` value in the request is "-", the response contains a list of + # resources from all locations. In case any location is unreachable, the + # response will only return backup plans in reachable locations and the ' + # unreachable' field will be populated with a list of unreachable locations. + # BackupPlan + # Corresponds to the JSON property `backupPlans` + # @return [Array<Google::Apis::BackupdrV1::BackupPlan>] + attr_accessor :backup_plans + + # A token which may be sent as page_token in a subsequent `ListBackupPlans` call + # to retrieve the next page of results. If this field is omitted or empty, then + # there are no more results to return. + # Corresponds to the JSON property `nextPageToken` + # @return [String] + attr_accessor :next_page_token + + # Locations that could not be reached. + # Corresponds to the JSON property `unreachable` + # @return [Array<String>] + attr_accessor :unreachable + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @backup_plans = args[:backup_plans] if args.key?(:backup_plans) + @next_page_token = args[:next_page_token] if args.key?(:next_page_token) + @unreachable = args[:unreachable] if args.key?(:unreachable) + end + end + # Response message for listing BackupVaults. class ListBackupVaultsResponse include Google::Apis::Core::Hashable # The list of BackupVault instances in the project for the specified location. @@ -2007,10 +2896,86 @@ @metadata = args[:metadata] if args.key?(:metadata) @name = args[:name] if args.key?(:name) end end + # + class LocationAssignment + include Google::Apis::Core::Hashable + + # + # Corresponds to the JSON property `location` + # @return [String] + attr_accessor :location + + # + # Corresponds to the JSON property `locationType` + # @return [String] + attr_accessor :location_type + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @location = args[:location] if args.key?(:location) + @location_type = args[:location_type] if args.key?(:location_type) + end + end + + # + class LocationData + include Google::Apis::Core::Hashable + + # Policy ID that identified data placement in Blobstore as per go/blobstore-user- + # guide#data-metadata-placement-and-failure-domains + # Corresponds to the JSON property `blobstoreLocation` + # @return [Google::Apis::BackupdrV1::BlobstoreLocation] + attr_accessor :blobstore_location + + # + # Corresponds to the JSON property `childAssetLocation` + # @return [Google::Apis::BackupdrV1::CloudAssetComposition] + attr_accessor :child_asset_location + + # + # Corresponds to the JSON property `directLocation` + # @return [Google::Apis::BackupdrV1::DirectLocationAssignment] + attr_accessor :direct_location + + # + # Corresponds to the JSON property `gcpProjectProxy` + # @return [Google::Apis::BackupdrV1::TenantProjectProxy] + attr_accessor :gcp_project_proxy + + # Message describing that the location of the customer resource is tied to + # placer allocations + # Corresponds to the JSON property `placerLocation` + # @return [Google::Apis::BackupdrV1::PlacerLocation] + attr_accessor :placer_location + + # + # Corresponds to the JSON property `spannerLocation` + # @return [Google::Apis::BackupdrV1::SpannerLocation] + attr_accessor :spanner_location + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @blobstore_location = args[:blobstore_location] if args.key?(:blobstore_location) + @child_asset_location = args[:child_asset_location] if args.key?(:child_asset_location) + @direct_location = args[:direct_location] if args.key?(:direct_location) + @gcp_project_proxy = args[:gcp_project_proxy] if args.key?(:gcp_project_proxy) + @placer_location = args[:placer_location] if args.key?(:placer_location) + @spanner_location = args[:spanner_location] if args.key?(:spanner_location) + end + end + # ManagementServer describes a single BackupDR ManagementServer instance. class ManagementServer include Google::Apis::Core::Hashable # Output only. The hostname or ip address of the exposed AGM endpoints, used by @@ -2315,10 +3280,29 @@ @stack_type = args[:stack_type] if args.key?(:stack_type) @subnetwork = args[:subnetwork] if args.key?(:subnetwork) end end + # Network performance configuration. + class NetworkPerformanceConfig + include Google::Apis::Core::Hashable + + # Optional. The tier of the total egress bandwidth. + # Corresponds to the JSON property `totalEgressBandwidthTier` + # @return [String] + attr_accessor :total_egress_bandwidth_tier + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @total_egress_bandwidth_tier = args[:total_egress_bandwidth_tier] if args.key?(:total_egress_bandwidth_tier) + end + end + # Node Affinity: the configuration of desired nodes onto which this Instance # could be scheduled. class NodeAffinity include Google::Apis::Core::Hashable @@ -2475,10 +3459,31 @@ @target = args[:target] if args.key?(:target) @verb = args[:verb] if args.key?(:verb) end end + # Message describing that the location of the customer resource is tied to + # placer allocations + class PlacerLocation + include Google::Apis::Core::Hashable + + # Directory with a config related to it in placer (e.g. "/placer/prod/home/my- + # root/my-dir") + # Corresponds to the JSON property `placerConfig` + # @return [String] + attr_accessor :placer_config + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @placer_config = args[:placer_config] if args.key?(:placer_config) + end + end + # An Identity and Access Management (IAM) policy, which specifies access # controls for Google Cloud resources. A `Policy` is a collection of `bindings`. # A `binding` binds one or more `members`, or principals, to a single `role`. # Principals can be user accounts, service accounts, Google groups, and domains ( # such as G Suite). A `role` is a named list of permissions; each `role` can be @@ -2570,10 +3575,37 @@ @etag = args[:etag] if args.key?(:etag) @version = args[:version] if args.key?(:version) end end + # To be used for specifying the intended distribution of regional compute. + # googleapis.com/InstanceGroupManager instances + class RegionalMigDistributionPolicy + include Google::Apis::Core::Hashable + + # The shape in which the group converges around distribution of resources. + # Instance of proto2 enum + # Corresponds to the JSON property `targetShape` + # @return [Fixnum] + attr_accessor :target_shape + + # Cloud zones used by regional MIG to create instances. + # Corresponds to the JSON property `zones` + # @return [Array<Google::Apis::BackupdrV1::ZoneConfiguration>] + attr_accessor :zones + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @target_shape = args[:target_shape] if args.key?(:target_shape) + @zones = args[:zones] if args.key?(:zones) + end + end + # Message for deleting a DataSource. class RemoveDataSourceRequest include Google::Apis::Core::Hashable # Optional. An optional request ID to identify requests. Specify a unique @@ -2598,10 +3630,130 @@ def update!(**args) @request_id = args[:request_id] if args.key?(:request_id) end end + # + class RequirementOverride + include Google::Apis::Core::Hashable + + # + # Corresponds to the JSON property `ziOverride` + # @return [String] + attr_accessor :zi_override + + # + # Corresponds to the JSON property `zsOverride` + # @return [String] + attr_accessor :zs_override + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @zi_override = args[:zi_override] if args.key?(:zi_override) + @zs_override = args[:zs_override] if args.key?(:zs_override) + end + end + + # Request message for restoring from a Backup. + class RestoreBackupRequest + include Google::Apis::Core::Hashable + + # ComputeInstanceRestoreProperties represents Compute Engine instance properties + # to be overridden during restore. + # Corresponds to the JSON property `computeInstanceRestoreProperties` + # @return [Google::Apis::BackupdrV1::ComputeInstanceRestoreProperties] + attr_accessor :compute_instance_restore_properties + + # ComputeInstanceTargetEnvironment represents Compute Engine target environment + # to be used during restore. + # Corresponds to the JSON property `computeInstanceTargetEnvironment` + # @return [Google::Apis::BackupdrV1::ComputeInstanceTargetEnvironment] + attr_accessor :compute_instance_target_environment + + # Optional. An optional request ID to identify requests. Specify a unique + # request ID so that if you must retry your request, the server will know to + # ignore the request if it has already been completed. The server will guarantee + # that for at least 60 minutes after the first request. For example, consider a + # situation where you make an initial request and the request times out. If you + # make the request again with the same request ID, the server can check if + # original operation with the same request ID was received, and if so, will + # ignore the second request. This prevents clients from accidentally creating + # duplicate commitments. The request ID must be a valid UUID with the exception + # that zero UUID is not supported (00000000-0000-0000-0000-000000000000). + # Corresponds to the JSON property `requestId` + # @return [String] + attr_accessor :request_id + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @compute_instance_restore_properties = args[:compute_instance_restore_properties] if args.key?(:compute_instance_restore_properties) + @compute_instance_target_environment = args[:compute_instance_target_environment] if args.key?(:compute_instance_target_environment) + @request_id = args[:request_id] if args.key?(:request_id) + end + end + + # Message for rules config info. + class RuleConfigInfo + include Google::Apis::Core::Hashable + + # Output only. TODO b/341576760: Remove deprecated BV and Datasource field form + # BP and BPA once UI removed all dependencies on them Output Only. Resource name + # of data source which will be used as storage location for backups taken by + # specified rule. Format : projects/`project`/locations/`location`/backupVaults/` + # backupvault`/dataSources/`datasource` + # Corresponds to the JSON property `dataSource` + # @return [String] + attr_accessor :data_source + + # The `Status` type defines a logical error model that is suitable for different + # programming environments, including REST APIs and RPC APIs. It is used by [ + # gRPC](https://github.com/grpc). Each `Status` message contains three pieces of + # data: error code, error message, and error details. You can find out more + # about this error model and how to work with it in the [API Design Guide](https: + # //cloud.google.com/apis/design/errors). + # Corresponds to the JSON property `lastBackupError` + # @return [Google::Apis::BackupdrV1::Status] + attr_accessor :last_backup_error + + # Output only. The last backup state for rule. + # Corresponds to the JSON property `lastBackupState` + # @return [String] + attr_accessor :last_backup_state + + # Output only. The point in time when the last successful backup was captured + # from the source. + # Corresponds to the JSON property `lastSuccessfulBackupConsistencyTime` + # @return [String] + attr_accessor :last_successful_backup_consistency_time + + # Output only. Output Only. Backup Rule id fetched from backup plan. + # Corresponds to the JSON property `ruleId` + # @return [String] + attr_accessor :rule_id + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @data_source = args[:data_source] if args.key?(:data_source) + @last_backup_error = args[:last_backup_error] if args.key?(:last_backup_error) + @last_backup_state = args[:last_backup_state] if args.key?(:last_backup_state) + @last_successful_backup_consistency_time = args[:last_successful_backup_consistency_time] if args.key?(:last_successful_backup_consistency_time) + @rule_id = args[:rule_id] if args.key?(:rule_id) + end + end + # Sets the scheduling options for an Instance. class Scheduling include Google::Apis::Core::Hashable # Optional. Specifies whether the instance should be automatically restarted if @@ -2798,11 +3950,11 @@ # Request message for SetStatusInternal method. class SetInternalStatusRequest include Google::Apis::Core::Hashable - # Required. The new BackupConfigState to set for the DataSource. + # Required. Output only. The new BackupConfigState to set for the DataSource. # Corresponds to the JSON property `backupConfigState` # @return [String] attr_accessor :backup_config_state # Optional. An optional request ID to identify requests. Specify a unique @@ -2835,10 +3987,119 @@ @request_id = args[:request_id] if args.key?(:request_id) @value = args[:value] if args.key?(:value) end end + # + class SpannerLocation + include Google::Apis::Core::Hashable + + # Set of backups used by the resource with name in the same format as what is + # available at http://table/spanner_automon.backup_metadata + # Corresponds to the JSON property `backupName` + # @return [Array<String>] + attr_accessor :backup_name + + # Set of databases used by the resource in format /span// + # Corresponds to the JSON property `dbName` + # @return [Array<String>] + attr_accessor :db_name + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @backup_name = args[:backup_name] if args.key?(:backup_name) + @db_name = args[:db_name] if args.key?(:db_name) + end + end + + # `StandardSchedule` defines a schedule that run within the confines of a + # defined window of days. We can define recurrence type for schedule as HOURLY, + # DAILY, WEEKLY, MONTHLY or YEARLY. + class StandardSchedule + include Google::Apis::Core::Hashable + + # `BackupWindow` defines a window of the day during which backup jobs will run. + # Corresponds to the JSON property `backupWindow` + # @return [Google::Apis::BackupdrV1::BackupWindow] + attr_accessor :backup_window + + # Optional. Specifies days of months like 1, 5, or 14 on which jobs will run. + # Values for `days_of_month` are only applicable for `recurrence_type`, `MONTHLY` + # and `YEARLY`. A validation error will occur if other values are supplied. + # Corresponds to the JSON property `daysOfMonth` + # @return [Array<Fixnum>] + attr_accessor :days_of_month + + # Optional. Specifies days of week like, MONDAY or TUESDAY, on which jobs will + # run. This is required for `recurrence_type`, `WEEKLY` and is not applicable + # otherwise. A validation error will occur if a value is supplied and ` + # recurrence_type` is not `WEEKLY`. + # Corresponds to the JSON property `daysOfWeek` + # @return [Array<String>] + attr_accessor :days_of_week + + # Optional. Specifies frequency for hourly backups. A hourly frequency of 2 + # means jobs will run every 2 hours from start time till end time defined. This + # is required for `recurrence_type`, `HOURLY` and is not applicable otherwise. A + # validation error will occur if a value is supplied and `recurrence_type` is + # not `HOURLY`. Value of hourly frequency should be between 6 and 23. Reason for + # limit : We found that there is bandwidth limitation of 3GB/S for GMI while + # taking a backup and 5GB/S while doing a restore. Given the amount of parallel + # backups and restore we are targeting, this will potentially take the backup + # time to mins and hours (in worst case scenario). + # Corresponds to the JSON property `hourlyFrequency` + # @return [Fixnum] + attr_accessor :hourly_frequency + + # Optional. Specifies the months of year, like `FEBRUARY` and/or `MAY`, on which + # jobs will run. This field is only applicable when `recurrence_type` is `YEARLY` + # . A validation error will occur if other values are supplied. + # Corresponds to the JSON property `months` + # @return [Array<String>] + attr_accessor :months + + # Required. Specifies the `RecurrenceType` for the schedule. + # Corresponds to the JSON property `recurrenceType` + # @return [String] + attr_accessor :recurrence_type + + # Required. The time zone to be used when interpreting the schedule. The value + # of this field must be a time zone name from the IANA tz database. See https:// + # en.wikipedia.org/wiki/List_of_tz_database_time_zones for the list of valid + # timezone names. For e.g., Europe/Paris. + # Corresponds to the JSON property `timeZone` + # @return [String] + attr_accessor :time_zone + + # `WeekDayOfMonth` defines the week day of the month on which the backups will + # run. The message combines a `WeekOfMonth` and `DayOfWeek` to produce values + # like `FIRST`/`MONDAY` or `LAST`/`FRIDAY`. + # Corresponds to the JSON property `weekDayOfMonth` + # @return [Google::Apis::BackupdrV1::WeekDayOfMonth] + attr_accessor :week_day_of_month + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @backup_window = args[:backup_window] if args.key?(:backup_window) + @days_of_month = args[:days_of_month] if args.key?(:days_of_month) + @days_of_week = args[:days_of_week] if args.key?(:days_of_week) + @hourly_frequency = args[:hourly_frequency] if args.key?(:hourly_frequency) + @months = args[:months] if args.key?(:months) + @recurrence_type = args[:recurrence_type] if args.key?(:recurrence_type) + @time_zone = args[:time_zone] if args.key?(:time_zone) + @week_day_of_month = args[:week_day_of_month] if args.key?(:week_day_of_month) + end + end + # The `Status` type defines a logical error model that is suitable for different # programming environments, including REST APIs and RPC APIs. It is used by [ # gRPC](https://github.com/grpc). Each `Status` message contains three pieces of # data: error code, error message, and error details. You can find out more # about this error model and how to work with it in the [API Design Guide](https: @@ -2894,10 +4155,29 @@ def update!(**args) @items = args[:items] if args.key?(:items) end end + # + class TenantProjectProxy + include Google::Apis::Core::Hashable + + # + # Corresponds to the JSON property `projectNumbers` + # @return [Array<String>] + attr_accessor :project_numbers + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @project_numbers = args[:project_numbers] if args.key?(:project_numbers) + end + end + # Request message for `TestIamPermissions` method. class TestIamPermissionsRequest include Google::Apis::Core::Hashable # The set of permissions to check for the `resource`. Permissions with wildcards @@ -2934,10 +4214,71 @@ def update!(**args) @permissions = args[:permissions] if args.key?(:permissions) end end + # Request message for triggering a backup. + class TriggerBackupRequest + include Google::Apis::Core::Hashable + + # Optional. An optional request ID to identify requests. Specify a unique + # request ID so that if you must retry your request, the server will know to + # ignore the request if it has already been completed. The server will guarantee + # that for at least 60 minutes after the first request. For example, consider a + # situation where you make an initial request and the request times out. If you + # make the request again with the same request ID, the server can check if + # original operation with the same request ID was received, and if so, will + # ignore the second request. This prevents clients from accidentally creating + # duplicate commitments. The request ID must be a valid UUID with the exception + # that zero UUID is not supported (00000000-0000-0000-0000-000000000000). + # Corresponds to the JSON property `requestId` + # @return [String] + attr_accessor :request_id + + # Required. backup rule_id for which a backup needs to be triggered. + # Corresponds to the JSON property `ruleId` + # @return [String] + attr_accessor :rule_id + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @request_id = args[:request_id] if args.key?(:request_id) + @rule_id = args[:rule_id] if args.key?(:rule_id) + end + end + + # `WeekDayOfMonth` defines the week day of the month on which the backups will + # run. The message combines a `WeekOfMonth` and `DayOfWeek` to produce values + # like `FIRST`/`MONDAY` or `LAST`/`FRIDAY`. + class WeekDayOfMonth + include Google::Apis::Core::Hashable + + # Required. Specifies the day of the week. + # Corresponds to the JSON property `dayOfWeek` + # @return [String] + attr_accessor :day_of_week + + # Required. Specifies the week of the month. + # Corresponds to the JSON property `weekOfMonth` + # @return [String] + attr_accessor :week_of_month + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @day_of_week = args[:day_of_week] if args.key?(:day_of_week) + @week_of_month = args[:week_of_month] if args.key?(:week_of_month) + end + end + # ManagementURI depending on the Workforce Identity i.e. either 1p or 3p. class WorkforceIdentityBasedManagementUri include Google::Apis::Core::Hashable # Output only. First party Management URI for Google Identities. @@ -2981,9 +4322,28 @@ # Update properties of this object def update!(**args) @first_party_oauth2_client_id = args[:first_party_oauth2_client_id] if args.key?(:first_party_oauth2_client_id) @third_party_oauth2_client_id = args[:third_party_oauth2_client_id] if args.key?(:third_party_oauth2_client_id) + end + end + + # + class ZoneConfiguration + include Google::Apis::Core::Hashable + + # + # Corresponds to the JSON property `zone` + # @return [String] + attr_accessor :zone + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @zone = args[:zone] if args.key?(:zone) end end end end end