# frozen_string_literal: true # Copyright 2021 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # Auto-generated by gapic-generator-ruby. DO NOT EDIT! module Google module Cloud module CloudDMS module V1 # SSL configuration information. # @!attribute [r] type # @return [::Google::Cloud::CloudDMS::V1::SslConfig::SslType] # Output only. The ssl config type according to 'client_key', # 'client_certificate' and 'ca_certificate'. # @!attribute [rw] client_key # @return [::String] # Input only. The unencrypted PKCS#1 or PKCS#8 PEM-encoded private key # associated with the Client Certificate. If this field is used then the # 'client_certificate' field is mandatory. # @!attribute [rw] client_certificate # @return [::String] # Input only. The x509 PEM-encoded certificate that will be used by the # replica to authenticate against the source database server.If this field is # used then the 'client_key' field is mandatory. # @!attribute [rw] ca_certificate # @return [::String] # Required. Input only. The x509 PEM-encoded certificate of the CA that # signed the source database server's certificate. The replica will use this # certificate to verify it's connecting to the right host. class SslConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # Specifies The kind of ssl configuration used. module SslType # Unspecified. SSL_TYPE_UNSPECIFIED = 0 # Only 'ca_certificate' specified. SERVER_ONLY = 1 # Both server ('ca_certificate'), and client ('client_key', # 'client_certificate') specified. SERVER_CLIENT = 2 end end # Specifies connection parameters required specifically for MySQL databases. # @!attribute [rw] host # @return [::String] # Required. The IP or hostname of the source MySQL database. # @!attribute [rw] port # @return [::Integer] # Required. The network port of the source MySQL database. # @!attribute [rw] username # @return [::String] # Required. The username that Database Migration Service will use to connect # to the database. The value is encrypted when stored in Database Migration # Service. # @!attribute [rw] password # @return [::String] # Required. Input only. The password for the user that Database Migration # Service will be using to connect to the database. This field is not # returned on request, and the value is encrypted when stored in Database # Migration Service. # @!attribute [r] password_set # @return [::Boolean] # Output only. Indicates If this connection profile password is stored. # @!attribute [rw] ssl # @return [::Google::Cloud::CloudDMS::V1::SslConfig] # SSL configuration for the destination to connect to the source database. # @!attribute [rw] cloud_sql_id # @return [::String] # If the source is a Cloud SQL database, use this field to # provide the Cloud SQL instance ID of the source. class MySqlConnectionProfile include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # Specifies connection parameters required specifically for PostgreSQL # databases. # @!attribute [rw] host # @return [::String] # Required. The IP or hostname of the source PostgreSQL database. # @!attribute [rw] port # @return [::Integer] # Required. The network port of the source PostgreSQL database. # @!attribute [rw] username # @return [::String] # Required. The username that Database Migration Service will use to connect # to the database. The value is encrypted when stored in Database Migration # Service. # @!attribute [rw] password # @return [::String] # Required. Input only. The password for the user that Database Migration # Service will be using to connect to the database. This field is not # returned on request, and the value is encrypted when stored in Database # Migration Service. # @!attribute [r] password_set # @return [::Boolean] # Output only. Indicates If this connection profile password is stored. # @!attribute [rw] ssl # @return [::Google::Cloud::CloudDMS::V1::SslConfig] # SSL configuration for the destination to connect to the source database. # @!attribute [rw] cloud_sql_id # @return [::String] # If the source is a Cloud SQL database, use this field to # provide the Cloud SQL instance ID of the source. # @!attribute [r] network_architecture # @return [::Google::Cloud::CloudDMS::V1::NetworkArchitecture] # Output only. If the source is a Cloud SQL database, this field indicates # the network architecture it's associated with. # @!attribute [rw] static_ip_connectivity # @return [::Google::Cloud::CloudDMS::V1::StaticIpConnectivity] # Static ip connectivity data (default, no additional details needed). # @!attribute [rw] private_service_connect_connectivity # @return [::Google::Cloud::CloudDMS::V1::PrivateServiceConnectConnectivity] # Private service connect connectivity. class PostgreSqlConnectionProfile include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # Specifies connection parameters required specifically for Oracle # databases. # @!attribute [rw] host # @return [::String] # Required. The IP or hostname of the source Oracle database. # @!attribute [rw] port # @return [::Integer] # Required. The network port of the source Oracle database. # @!attribute [rw] username # @return [::String] # Required. The username that Database Migration Service will use to connect # to the database. The value is encrypted when stored in Database Migration # Service. # @!attribute [rw] password # @return [::String] # Required. Input only. The password for the user that Database Migration # Service will be using to connect to the database. This field is not # returned on request, and the value is encrypted when stored in Database # Migration Service. # @!attribute [r] password_set # @return [::Boolean] # Output only. Indicates whether a new password is included in the request. # @!attribute [rw] database_service # @return [::String] # Required. Database service for the Oracle connection. # @!attribute [rw] static_service_ip_connectivity # @return [::Google::Cloud::CloudDMS::V1::StaticServiceIpConnectivity] # Static Service IP connectivity. # @!attribute [rw] forward_ssh_connectivity # @return [::Google::Cloud::CloudDMS::V1::ForwardSshTunnelConnectivity] # Forward SSH tunnel connectivity. # @!attribute [rw] private_connectivity # @return [::Google::Cloud::CloudDMS::V1::PrivateConnectivity] # Private connectivity. class OracleConnectionProfile include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # Specifies required connection parameters, and, optionally, the parameters # required to create a Cloud SQL destination database instance. # @!attribute [r] cloud_sql_id # @return [::String] # Output only. The Cloud SQL instance ID that this connection profile is # associated with. # @!attribute [rw] settings # @return [::Google::Cloud::CloudDMS::V1::CloudSqlSettings] # Immutable. Metadata used to create the destination Cloud SQL database. # @!attribute [r] private_ip # @return [::String] # Output only. The Cloud SQL database instance's private IP. # @!attribute [r] public_ip # @return [::String] # Output only. The Cloud SQL database instance's public IP. # @!attribute [r] additional_public_ip # @return [::String] # Output only. The Cloud SQL database instance's additional (outgoing) public # IP. Used when the Cloud SQL database availability type is REGIONAL (i.e. # multiple zones / highly available). class CloudSqlConnectionProfile include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # Specifies required connection parameters, and the parameters # required to create an AlloyDB destination cluster. # @!attribute [rw] cluster_id # @return [::String] # Required. The AlloyDB cluster ID that this connection profile is associated # with. # @!attribute [rw] settings # @return [::Google::Cloud::CloudDMS::V1::AlloyDbSettings] # Immutable. Metadata used to create the destination AlloyDB cluster. class AlloyDbConnectionProfile include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # An entry for an Access Control list. # @!attribute [rw] value # @return [::String] # The allowlisted value for the access control list. # @!attribute [rw] expire_time # @return [::Google::Protobuf::Timestamp] # The time when this access control entry expires in # [RFC 3339](https://tools.ietf.org/html/rfc3339) format, for example: # `2012-11-15T16:19:00.094Z`. # @!attribute [rw] ttl # @return [::Google::Protobuf::Duration] # Input only. The time-to-leave of this access control entry. # @!attribute [rw] label # @return [::String] # A label to identify this entry. class SqlAclEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # IP Management configuration. # @!attribute [rw] enable_ipv4 # @return [::Google::Protobuf::BoolValue] # Whether the instance should be assigned an IPv4 address or not. # @!attribute [rw] private_network # @return [::String] # The resource link for the VPC network from which the Cloud SQL instance is # accessible for private IP. For example, # `projects/myProject/global/networks/default`. This setting can # be updated, but it cannot be removed after it is set. # @!attribute [rw] allocated_ip_range # @return [::String] # Optional. The name of the allocated IP address range for the private IP # Cloud SQL instance. This name refers to an already allocated IP range # address. If set, the instance IP address will be created in the allocated # range. Note that this IP address range can't be modified after the instance # is created. If you change the VPC when configuring connectivity settings # for the migration job, this field is not relevant. # @!attribute [rw] require_ssl # @return [::Google::Protobuf::BoolValue] # Whether SSL connections over IP should be enforced or not. # @!attribute [rw] authorized_networks # @return [::Array<::Google::Cloud::CloudDMS::V1::SqlAclEntry>] # The list of external networks that are allowed to connect to the instance # using the IP. See # https://en.wikipedia.org/wiki/CIDR_notation#CIDR_notation, also known as # 'slash' notation (e.g. `192.168.100.0/24`). class SqlIpConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # Settings for creating a Cloud SQL database instance. # @!attribute [rw] database_version # @return [::Google::Cloud::CloudDMS::V1::CloudSqlSettings::SqlDatabaseVersion] # The database engine type and version. # @!attribute [rw] user_labels # @return [::Google::Protobuf::Map{::String => ::String}] # The resource labels for a Cloud SQL instance to use to annotate any related # underlying resources such as Compute Engine VMs. # An object containing a list of "key": "value" pairs. # # Example: `{ "name": "wrench", "mass": "18kg", "count": "3" }`. # @!attribute [rw] tier # @return [::String] # The tier (or machine type) for this instance, for example: # `db-n1-standard-1` (MySQL instances) or # `db-custom-1-3840` (PostgreSQL instances). # For more information, see # [Cloud SQL Instance # Settings](https://cloud.google.com/sql/docs/mysql/instance-settings). # @!attribute [rw] storage_auto_resize_limit # @return [::Google::Protobuf::Int64Value] # The maximum size to which storage capacity can be automatically increased. # The default value is 0, which specifies that there is no limit. # @!attribute [rw] activation_policy # @return [::Google::Cloud::CloudDMS::V1::CloudSqlSettings::SqlActivationPolicy] # The activation policy specifies when the instance is activated; it is # applicable only when the instance state is 'RUNNABLE'. Valid values: # # 'ALWAYS': The instance is on, and remains so even in # the absence of connection requests. # # `NEVER`: The instance is off; it is not activated, even if a # connection request arrives. # @!attribute [rw] ip_config # @return [::Google::Cloud::CloudDMS::V1::SqlIpConfig] # The settings for IP Management. This allows to enable or disable the # instance IP and manage which external networks can connect to the instance. # The IPv4 address cannot be disabled. # @!attribute [rw] auto_storage_increase # @return [::Google::Protobuf::BoolValue] # [default: ON] If you enable this setting, Cloud SQL checks your available # storage every 30 seconds. If the available storage falls below a threshold # size, Cloud SQL automatically adds additional storage capacity. If the # available storage repeatedly falls below the threshold size, Cloud SQL # continues to add storage until it reaches the maximum of 30 TB. # @!attribute [rw] database_flags # @return [::Google::Protobuf::Map{::String => ::String}] # The database flags passed to the Cloud SQL instance at startup. # An object containing a list of "key": value pairs. # Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }. # @!attribute [rw] data_disk_type # @return [::Google::Cloud::CloudDMS::V1::CloudSqlSettings::SqlDataDiskType] # The type of storage: `PD_SSD` (default) or `PD_HDD`. # @!attribute [rw] data_disk_size_gb # @return [::Google::Protobuf::Int64Value] # The storage capacity available to the database, in GB. # The minimum (and default) size is 10GB. # @!attribute [rw] zone # @return [::String] # The Google Cloud Platform zone where your Cloud SQL database instance is # located. # @!attribute [rw] secondary_zone # @return [::String] # Optional. The Google Cloud Platform zone where the failover Cloud SQL # database instance is located. Used when the Cloud SQL database availability # type is REGIONAL (i.e. multiple zones / highly available). # @!attribute [rw] source_id # @return [::String] # The Database Migration Service source connection profile ID, # in the format: # `projects/my_project_name/locations/us-central1/connectionProfiles/connection_profile_ID` # @!attribute [rw] root_password # @return [::String] # Input only. Initial root password. # @!attribute [r] root_password_set # @return [::Boolean] # Output only. Indicates If this connection profile root password is stored. # @!attribute [rw] collation # @return [::String] # The Cloud SQL default instance level collation. # @!attribute [rw] cmek_key_name # @return [::String] # The KMS key name used for the csql instance. # @!attribute [rw] availability_type # @return [::Google::Cloud::CloudDMS::V1::CloudSqlSettings::SqlAvailabilityType] # Optional. Availability type. Potential values: # * `ZONAL`: The instance serves data from only one zone. Outages in that # zone affect data availability. # * `REGIONAL`: The instance can serve data from more than one zone in a # region (it is highly available). class CloudSqlSettings include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class UserLabelsEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class DatabaseFlagsEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # Specifies when the instance should be activated. module SqlActivationPolicy # unspecified policy. SQL_ACTIVATION_POLICY_UNSPECIFIED = 0 # The instance is always up and running. ALWAYS = 1 # The instance should never spin up. NEVER = 2 end # The storage options for Cloud SQL databases. module SqlDataDiskType # Unspecified. SQL_DATA_DISK_TYPE_UNSPECIFIED = 0 # SSD disk. PD_SSD = 1 # HDD disk. PD_HDD = 2 end # The database engine type and version. module SqlDatabaseVersion # Unspecified version. SQL_DATABASE_VERSION_UNSPECIFIED = 0 # MySQL 5.6. MYSQL_5_6 = 1 # MySQL 5.7. MYSQL_5_7 = 2 # PostgreSQL 9.6. POSTGRES_9_6 = 3 # PostgreSQL 11. POSTGRES_11 = 4 # PostgreSQL 10. POSTGRES_10 = 5 # MySQL 8.0. MYSQL_8_0 = 6 # PostgreSQL 12. POSTGRES_12 = 7 # PostgreSQL 13. POSTGRES_13 = 8 # PostgreSQL 14. POSTGRES_14 = 17 end # The availability type of the given Cloud SQL instance. module SqlAvailabilityType # This is an unknown Availability type. SQL_AVAILABILITY_TYPE_UNSPECIFIED = 0 # Zonal availablility instance. ZONAL = 1 # Regional availability instance. REGIONAL = 2 end end # Settings for creating an AlloyDB cluster. # @!attribute [rw] initial_user # @return [::Google::Cloud::CloudDMS::V1::AlloyDbSettings::UserPassword] # Required. Input only. Initial user to setup during cluster creation. # Required. # @!attribute [rw] vpc_network # @return [::String] # Required. The resource link for the VPC network in which cluster resources # are created and from which they are accessible via Private IP. The network # must belong to the same project as the cluster. It is specified in the # form: "projects/\\{project_number}/global/networks/\\{network_id}". This is # required to create a cluster. # @!attribute [rw] labels # @return [::Google::Protobuf::Map{::String => ::String}] # Labels for the AlloyDB cluster created by DMS. An object containing a list # of 'key', 'value' pairs. # @!attribute [rw] primary_instance_settings # @return [::Google::Cloud::CloudDMS::V1::AlloyDbSettings::PrimaryInstanceSettings] # @!attribute [rw] encryption_config # @return [::Google::Cloud::CloudDMS::V1::AlloyDbSettings::EncryptionConfig] # Optional. The encryption config can be specified to encrypt the data disks # and other persistent data resources of a cluster with a # customer-managed encryption key (CMEK). When this field is not # specified, the cluster will then use default encryption scheme to # protect the user data. class AlloyDbSettings include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # The username/password for a database user. Used for specifying initial # users at cluster creation time. # @!attribute [rw] user # @return [::String] # The database username. # @!attribute [rw] password # @return [::String] # The initial password for the user. # @!attribute [r] password_set # @return [::Boolean] # Output only. Indicates if the initial_user.password field has been set. class UserPassword include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # Settings for the cluster's primary instance # @!attribute [rw] id # @return [::String] # Required. The ID of the AlloyDB primary instance. The ID must satisfy the # regex expression "[a-z0-9-]+". # @!attribute [rw] machine_config # @return [::Google::Cloud::CloudDMS::V1::AlloyDbSettings::PrimaryInstanceSettings::MachineConfig] # Configuration for the machines that host the underlying # database engine. # @!attribute [rw] database_flags # @return [::Google::Protobuf::Map{::String => ::String}] # Database flags to pass to AlloyDB when DMS is creating the AlloyDB # cluster and instances. See the AlloyDB documentation for how these can be # used. # @!attribute [rw] labels # @return [::Google::Protobuf::Map{::String => ::String}] # Labels for the AlloyDB primary instance created by DMS. An object # containing a list of 'key', 'value' pairs. # @!attribute [r] private_ip # @return [::String] # Output only. The private IP address for the Instance. # This is the connection endpoint for an end-user application. class PrimaryInstanceSettings include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # MachineConfig describes the configuration of a machine. # @!attribute [rw] cpu_count # @return [::Integer] # The number of CPU's in the VM instance. class MachineConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class DatabaseFlagsEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class LabelsEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end end # EncryptionConfig describes the encryption config of a cluster that is # encrypted with a CMEK (customer-managed encryption key). # @!attribute [rw] kms_key_name # @return [::String] # The fully-qualified resource name of the KMS key. # Each Cloud KMS key is regionalized and has the following format: # projects/[PROJECT]/locations/[REGION]/keyRings/[RING]/cryptoKeys/[KEY_NAME] class EncryptionConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class LabelsEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end end # The source database will allow incoming connections from the public IP of the # destination database. You can retrieve the public IP of the Cloud SQL # instance from the Cloud SQL console or using Cloud SQL APIs. No additional # configuration is required. class StaticIpConnectivity include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # Private Service Connect connectivity # (https://cloud.google.com/vpc/docs/private-service-connect#service-attachments) # @!attribute [rw] service_attachment # @return [::String] # Required. A service attachment that exposes a database, and has the # following format: # projects/\\{project}/regions/\\{region}/serviceAttachments/\\{service_attachment_name} class PrivateServiceConnectConnectivity include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # The details needed to configure a reverse SSH tunnel between the source and # destination databases. These details will be used when calling the # generateSshScript method (see # https://cloud.google.com/database-migration/docs/reference/rest/v1/projects.locations.migrationJobs/generateSshScript) # to produce the script that will help set up the reverse SSH tunnel, and to # set up the VPC peering between the Cloud SQL private network and the VPC. # @!attribute [rw] vm_ip # @return [::String] # Required. The IP of the virtual machine (Compute Engine) used as the # bastion server for the SSH tunnel. # @!attribute [rw] vm_port # @return [::Integer] # Required. The forwarding port of the virtual machine (Compute Engine) used # as the bastion server for the SSH tunnel. # @!attribute [rw] vm # @return [::String] # The name of the virtual machine (Compute Engine) used as the bastion server # for the SSH tunnel. # @!attribute [rw] vpc # @return [::String] # The name of the VPC to peer with the Cloud SQL private network. class ReverseSshConnectivity include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # The details of the VPC where the source database is located in Google Cloud. # We will use this information to set up the VPC peering connection between # Cloud SQL and this VPC. # @!attribute [rw] vpc # @return [::String] # The name of the VPC network to peer with the Cloud SQL private network. class VpcPeeringConnectivity include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # Forward SSH Tunnel connectivity. # @!attribute [rw] hostname # @return [::String] # Required. Hostname for the SSH tunnel. # @!attribute [rw] username # @return [::String] # Required. Username for the SSH tunnel. # @!attribute [rw] port # @return [::Integer] # Port for the SSH tunnel, default value is 22. # @!attribute [rw] password # @return [::String] # Input only. SSH password. # @!attribute [rw] private_key # @return [::String] # Input only. SSH private key. class ForwardSshTunnelConnectivity include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # Static IP address connectivity configured on service project. class StaticServiceIpConnectivity include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # Private Connectivity. # @!attribute [rw] private_connection # @return [::String] # Required. The resource name (URI) of the private connection. class PrivateConnectivity include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # A message defining the database engine and provider. # @!attribute [rw] provider # @return [::Google::Cloud::CloudDMS::V1::DatabaseProvider] # The database provider. # @!attribute [rw] engine # @return [::Google::Cloud::CloudDMS::V1::DatabaseEngine] # The database engine. class DatabaseType include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # Represents a Database Migration Service migration job object. # @!attribute [rw] name # @return [::String] # The name (URI) of this migration job resource, in the form of: # projects/\\{project}/locations/\\{location}/migrationJobs/\\{migrationJob}. # @!attribute [r] create_time # @return [::Google::Protobuf::Timestamp] # Output only. The timestamp when the migration job resource was created. # A timestamp in RFC3339 UTC "Zulu" format, accurate to nanoseconds. # Example: "2014-10-02T15:01:23.045123456Z". # @!attribute [r] update_time # @return [::Google::Protobuf::Timestamp] # Output only. The timestamp when the migration job resource was last # updated. A timestamp in RFC3339 UTC "Zulu" format, accurate to nanoseconds. # Example: "2014-10-02T15:01:23.045123456Z". # @!attribute [rw] labels # @return [::Google::Protobuf::Map{::String => ::String}] # The resource labels for migration job to use to annotate any related # underlying resources such as Compute Engine VMs. An object containing a # list of "key": "value" pairs. # # Example: `{ "name": "wrench", "mass": "1.3kg", "count": "3" }`. # @!attribute [rw] display_name # @return [::String] # The migration job display name. # @!attribute [rw] state # @return [::Google::Cloud::CloudDMS::V1::MigrationJob::State] # The current migration job state. # @!attribute [r] phase # @return [::Google::Cloud::CloudDMS::V1::MigrationJob::Phase] # Output only. The current migration job phase. # @!attribute [rw] type # @return [::Google::Cloud::CloudDMS::V1::MigrationJob::Type] # Required. The migration job type. # @!attribute [rw] dump_path # @return [::String] # The path to the dump file in Google Cloud Storage, # in the format: (gs://[BUCKET_NAME]/[OBJECT_NAME]). # This field and the "dump_flags" field are mutually exclusive. # @!attribute [rw] dump_flags # @return [::Google::Cloud::CloudDMS::V1::MigrationJob::DumpFlags] # The initial dump flags. # This field and the "dump_path" field are mutually exclusive. # @!attribute [rw] source # @return [::String] # Required. The resource name (URI) of the source connection profile. # @!attribute [rw] destination # @return [::String] # Required. The resource name (URI) of the destination connection profile. # @!attribute [rw] reverse_ssh_connectivity # @return [::Google::Cloud::CloudDMS::V1::ReverseSshConnectivity] # The details needed to communicate to the source over Reverse SSH # tunnel connectivity. # @!attribute [rw] vpc_peering_connectivity # @return [::Google::Cloud::CloudDMS::V1::VpcPeeringConnectivity] # The details of the VPC network that the source database is located in. # @!attribute [rw] static_ip_connectivity # @return [::Google::Cloud::CloudDMS::V1::StaticIpConnectivity] # static ip connectivity data (default, no additional details needed). # @!attribute [r] duration # @return [::Google::Protobuf::Duration] # Output only. The duration of the migration job (in seconds). A duration in # seconds with up to nine fractional digits, terminated by 's'. Example: # "3.5s". # @!attribute [r] error # @return [::Google::Rpc::Status] # Output only. The error details in case of state FAILED. # @!attribute [rw] source_database # @return [::Google::Cloud::CloudDMS::V1::DatabaseType] # The database engine type and provider of the source. # @!attribute [rw] destination_database # @return [::Google::Cloud::CloudDMS::V1::DatabaseType] # The database engine type and provider of the destination. # @!attribute [r] end_time # @return [::Google::Protobuf::Timestamp] # Output only. If the migration job is completed, the time when it was # completed. # @!attribute [rw] conversion_workspace # @return [::Google::Cloud::CloudDMS::V1::ConversionWorkspaceInfo] # The conversion workspace used by the migration. # @!attribute [rw] filter # @return [::String] # This field can be used to select the entities to migrate as part of # the migration job. It uses AIP-160 notation to select a subset of the # entities configured on the associated conversion-workspace. This field # should not be set on migration-jobs that are not associated with a # conversion workspace. # @!attribute [rw] cmek_key_name # @return [::String] # The CMEK (customer-managed encryption key) fully qualified key name used # for the migration job. # This field supports all migration jobs types except for: # * Mysql to Mysql (use the cmek field in the cloudsql connection profile # instead). # * PostrgeSQL to PostgreSQL (use the cmek field in the cloudsql # connection profile instead). # * PostgreSQL to AlloyDB (use the kms_key_name field in the alloydb # connection profile instead). # Each Cloud CMEK key has the following format: # projects/[PROJECT]/locations/[REGION]/keyRings/[RING]/cryptoKeys/[KEY_NAME] class MigrationJob include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # Dump flag definition. # @!attribute [rw] name # @return [::String] # The name of the flag # @!attribute [rw] value # @return [::String] # The value of the flag. class DumpFlag include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # Dump flags definition. # @!attribute [rw] dump_flags # @return [::Array<::Google::Cloud::CloudDMS::V1::MigrationJob::DumpFlag>] # The flags for the initial dump. class DumpFlags include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class LabelsEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # The current migration job states. module State # The state of the migration job is unknown. STATE_UNSPECIFIED = 0 # The migration job is down for maintenance. MAINTENANCE = 1 # The migration job is in draft mode and no resources are created. DRAFT = 2 # The migration job is being created. CREATING = 3 # The migration job is created and not started. NOT_STARTED = 4 # The migration job is running. RUNNING = 5 # The migration job failed. FAILED = 6 # The migration job has been completed. COMPLETED = 7 # The migration job is being deleted. DELETING = 8 # The migration job is being stopped. STOPPING = 9 # The migration job is currently stopped. STOPPED = 10 # The migration job has been deleted. DELETED = 11 # The migration job is being updated. UPDATING = 12 # The migration job is starting. STARTING = 13 # The migration job is restarting. RESTARTING = 14 # The migration job is resuming. RESUMING = 15 end # The current migration job phase. module Phase # The phase of the migration job is unknown. PHASE_UNSPECIFIED = 0 # The migration job is in the full dump phase. FULL_DUMP = 1 # The migration job is CDC phase. CDC = 2 # The migration job is running the promote phase. PROMOTE_IN_PROGRESS = 3 # Only RDS flow - waiting for source writes to stop WAITING_FOR_SOURCE_WRITES_TO_STOP = 4 # Only RDS flow - the sources writes stopped, waiting for dump to begin PREPARING_THE_DUMP = 5 end # The type of migration job (one-time or continuous). module Type # The type of the migration job is unknown. TYPE_UNSPECIFIED = 0 # The migration job is a one time migration. ONE_TIME = 1 # The migration job is a continuous migration. CONTINUOUS = 2 end end # A conversion workspace's version. # @!attribute [rw] name # @return [::String] # The resource name (URI) of the conversion workspace. # @!attribute [rw] commit_id # @return [::String] # The commit ID of the conversion workspace. class ConversionWorkspaceInfo include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # A connection profile definition. # @!attribute [rw] name # @return [::String] # The name of this connection profile resource in the form of # projects/\\{project}/locations/\\{location}/connectionProfiles/\\{connectionProfile}. # @!attribute [r] create_time # @return [::Google::Protobuf::Timestamp] # Output only. The timestamp when the resource was created. # A timestamp in RFC3339 UTC "Zulu" format, accurate to nanoseconds. # Example: "2014-10-02T15:01:23.045123456Z". # @!attribute [r] update_time # @return [::Google::Protobuf::Timestamp] # Output only. The timestamp when the resource was last updated. # A timestamp in RFC3339 UTC "Zulu" format, accurate to nanoseconds. # Example: "2014-10-02T15:01:23.045123456Z". # @!attribute [rw] labels # @return [::Google::Protobuf::Map{::String => ::String}] # The resource labels for connection profile to use to annotate any related # underlying resources such as Compute Engine VMs. An object containing a # list of "key": "value" pairs. # # Example: `{ "name": "wrench", "mass": "1.3kg", "count": "3" }`. # @!attribute [rw] state # @return [::Google::Cloud::CloudDMS::V1::ConnectionProfile::State] # The current connection profile state (e.g. DRAFT, READY, or FAILED). # @!attribute [rw] display_name # @return [::String] # The connection profile display name. # @!attribute [rw] mysql # @return [::Google::Cloud::CloudDMS::V1::MySqlConnectionProfile] # A MySQL database connection profile. # @!attribute [rw] postgresql # @return [::Google::Cloud::CloudDMS::V1::PostgreSqlConnectionProfile] # A PostgreSQL database connection profile. # @!attribute [rw] oracle # @return [::Google::Cloud::CloudDMS::V1::OracleConnectionProfile] # An Oracle database connection profile. # @!attribute [rw] cloudsql # @return [::Google::Cloud::CloudDMS::V1::CloudSqlConnectionProfile] # A CloudSQL database connection profile. # @!attribute [rw] alloydb # @return [::Google::Cloud::CloudDMS::V1::AlloyDbConnectionProfile] # An AlloyDB cluster connection profile. # @!attribute [r] error # @return [::Google::Rpc::Status] # Output only. The error details in case of state FAILED. # @!attribute [rw] provider # @return [::Google::Cloud::CloudDMS::V1::DatabaseProvider] # The database provider. class ConnectionProfile include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class LabelsEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # The current connection profile state (e.g. DRAFT, READY, or FAILED). module State # The state of the connection profile is unknown. STATE_UNSPECIFIED = 0 # The connection profile is in draft mode and fully editable. DRAFT = 1 # The connection profile is being created. CREATING = 2 # The connection profile is ready. READY = 3 # The connection profile is being updated. UPDATING = 4 # The connection profile is being deleted. DELETING = 5 # The connection profile has been deleted. DELETED = 6 # The last action on the connection profile failed. FAILED = 7 end end # Error message of a verification Migration job. # @!attribute [r] error_code # @return [::Google::Cloud::CloudDMS::V1::MigrationJobVerificationError::ErrorCode] # Output only. An instance of ErrorCode specifying the error that occurred. # @!attribute [r] error_message # @return [::String] # Output only. A formatted message with further details about the error and a # CTA. # @!attribute [r] error_detail_message # @return [::String] # Output only. A specific detailed error message, if supplied by the engine. class MigrationJobVerificationError include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # A general error code describing the type of error that occurred. module ErrorCode # An unknown error occurred ERROR_CODE_UNSPECIFIED = 0 # We failed to connect to one of the connection profile. CONNECTION_FAILURE = 1 # We failed to authenticate to one of the connection profile. AUTHENTICATION_FAILURE = 2 # One of the involved connection profiles has an invalid configuration. INVALID_CONNECTION_PROFILE_CONFIG = 3 # The versions of the source and the destination are incompatible. VERSION_INCOMPATIBILITY = 4 # The types of the source and the destination are incompatible. CONNECTION_PROFILE_TYPES_INCOMPATIBILITY = 5 # No pglogical extension installed on databases, applicable for postgres. NO_PGLOGICAL_INSTALLED = 7 # pglogical node already exists on databases, applicable for postgres. PGLOGICAL_NODE_ALREADY_EXISTS = 8 # The value of parameter wal_level is not set to logical. INVALID_WAL_LEVEL = 9 # The value of parameter shared_preload_libraries does not include # pglogical. INVALID_SHARED_PRELOAD_LIBRARY = 10 # The value of parameter max_replication_slots is not sufficient. INSUFFICIENT_MAX_REPLICATION_SLOTS = 11 # The value of parameter max_wal_senders is not sufficient. INSUFFICIENT_MAX_WAL_SENDERS = 12 # The value of parameter max_worker_processes is not sufficient. INSUFFICIENT_MAX_WORKER_PROCESSES = 13 # Extensions installed are either not supported or having unsupported # versions. UNSUPPORTED_EXTENSIONS = 14 # Unsupported migration type. UNSUPPORTED_MIGRATION_TYPE = 15 # Invalid RDS logical replication. INVALID_RDS_LOGICAL_REPLICATION = 16 # The gtid_mode is not supported, applicable for MySQL. UNSUPPORTED_GTID_MODE = 17 # The table definition is not support due to missing primary key or replica # identity. UNSUPPORTED_TABLE_DEFINITION = 18 # The definer is not supported. UNSUPPORTED_DEFINER = 19 # Migration is already running at the time of restart request. CANT_RESTART_RUNNING_MIGRATION = 21 # The source has tables with limited support. # E.g. PostgreSQL tables without primary keys. TABLES_WITH_LIMITED_SUPPORT = 24 # The source uses an unsupported locale. UNSUPPORTED_DATABASE_LOCALE = 25 # The source uses an unsupported Foreign Data Wrapper configuration. UNSUPPORTED_DATABASE_FDW_CONFIG = 26 # There was an underlying RDBMS error. ERROR_RDBMS = 27 # The source DB size in Bytes exceeds a certain threshold. The migration # might require an increase of quota, or might not be supported. SOURCE_SIZE_EXCEEDS_THRESHOLD = 28 end end # The PrivateConnection resource is used to establish private connectivity # with the customer's network. # @!attribute [rw] name # @return [::String] # The name of the resource. # @!attribute [r] create_time # @return [::Google::Protobuf::Timestamp] # Output only. The create time of the resource. # @!attribute [r] update_time # @return [::Google::Protobuf::Timestamp] # Output only. The last update time of the resource. # @!attribute [rw] labels # @return [::Google::Protobuf::Map{::String => ::String}] # The resource labels for private connections to use to annotate any related # underlying resources such as Compute Engine VMs. An object containing a # list of "key": "value" pairs. # # Example: `{ "name": "wrench", "mass": "1.3kg", "count": "3" }`. # @!attribute [rw] display_name # @return [::String] # The private connection display name. # @!attribute [r] state # @return [::Google::Cloud::CloudDMS::V1::PrivateConnection::State] # Output only. The state of the private connection. # @!attribute [r] error # @return [::Google::Rpc::Status] # Output only. The error details in case of state FAILED. # @!attribute [rw] vpc_peering_config # @return [::Google::Cloud::CloudDMS::V1::VpcPeeringConfig] # VPC peering configuration. class PrivateConnection include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # @!attribute [rw] key # @return [::String] # @!attribute [rw] value # @return [::String] class LabelsEntry include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # Private Connection state. module State STATE_UNSPECIFIED = 0 # The private connection is in creation state - creating resources. CREATING = 1 # The private connection has been created with all of its resources. CREATED = 2 # The private connection creation has failed. FAILED = 3 # The private connection is being deleted. DELETING = 4 # Delete request has failed, resource is in invalid state. FAILED_TO_DELETE = 5 # The private connection has been deleted. DELETED = 6 end end # The VPC peering configuration is used to create VPC peering with the # consumer's VPC. # @!attribute [rw] vpc_name # @return [::String] # Required. Fully qualified name of the VPC that Database Migration Service # will peer to. # @!attribute [rw] subnet # @return [::String] # Required. A free subnet for peering. (CIDR of /29) class VpcPeeringConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end module NetworkArchitecture NETWORK_ARCHITECTURE_UNSPECIFIED = 0 # Instance is in Cloud SQL's old producer network architecture. NETWORK_ARCHITECTURE_OLD_CSQL_PRODUCER = 1 # Instance is in Cloud SQL's new producer network architecture. NETWORK_ARCHITECTURE_NEW_CSQL_PRODUCER = 2 end # The database engine types. module DatabaseEngine # The source database engine of the migration job is unknown. DATABASE_ENGINE_UNSPECIFIED = 0 # The source engine is MySQL. MYSQL = 1 # The source engine is PostgreSQL. POSTGRESQL = 2 # The source engine is Oracle. ORACLE = 4 end # The database providers. module DatabaseProvider # The database provider is unknown. DATABASE_PROVIDER_UNSPECIFIED = 0 # CloudSQL runs the database. CLOUDSQL = 1 # RDS runs the database. RDS = 2 # Amazon Aurora. AURORA = 3 # AlloyDB. ALLOYDB = 4 end end end end end