REST Resource: projects.locations.migrationJobs

Resource: MigrationJob

Represents a Database Migration Service migration job object.

JSON representation
{
  "name": string,
  "createTime": string,
  "updateTime": string,
  "labels": {
    string: string,
    ...
  },
  "displayName": string,
  "state": enum (State),
  "phase": enum (Phase),
  "type": enum (Type),
  "dumpPath": string,
  "dumpFlags": {
    object (DumpFlags)
  },
  "source": string,
  "destination": string,
  "duration": string,
  "error": {
    object (Status)
  },
  "sourceDatabase": {
    object (DatabaseType)
  },
  "destinationDatabase": {
    object (DatabaseType)
  },
  "endTime": string,
  "conversionWorkspace": {
    object (ConversionWorkspaceInfo)
  },
  "filter": string,
  "cmekKeyName": string,
  "performanceConfig": {
    object (PerformanceConfig)
  },
  "sqlserverHomogeneousMigrationJobConfig": {
    object (SqlServerHomogeneousMigrationJobConfig)
  },
  "dumpType": enum (DumpType),

  // Union field connectivity can be only one of the following:
  "reverseSshConnectivity": {
    object (ReverseSshConnectivity)
  },
  "vpcPeeringConnectivity": {
    object (VpcPeeringConnectivity)
  },
  "staticIpConnectivity": {
    object (StaticIpConnectivity)
  }
  // End of list of possible types for union field connectivity.
}
Fields
name

string

The name (URI) of this migration job resource, in the form of: projects/{project}/locations/{location}/migrationJobs/{migrationJob}.

createTime

string (Timestamp format)

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".

A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits. Examples: "2014-10-02T15:01:23Z" and "2014-10-02T15:01:23.045123456Z".

updateTime

string (Timestamp format)

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".

A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits. Examples: "2014-10-02T15:01:23Z" and "2014-10-02T15:01:23.045123456Z".

labels

map (key: string, value: 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" }.

An object containing a list of "key": value pairs. Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

displayName

string

The migration job display name.

state

enum (State)

The current migration job state.

phase

enum (Phase)

Output only. The current migration job phase.

type

enum (Type)

Required. The migration job type.

dumpPath

string

The path to the dump file in Google Cloud Storage, in the format gs://[BUCKET_NAME]/[OBJECT_NAME].

dumpFlags

object (DumpFlags)

The initial dump flags. This field and the "dumpPath" field are mutually exclusive.

source

string

Required. The resource name (URI) of the source connection profile.

destination

string

Required. The resource name (URI) of the destination connection profile.

duration

string (Duration format)

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".

A duration in seconds with up to nine fractional digits, ending with 's'. Example: "3.5s".

error

object (Status)

Output only. The error details in case of state FAILED.

sourceDatabase

object (DatabaseType)

The database engine type and provider of the source.

destinationDatabase

object (DatabaseType)

The database engine type and provider of the destination.

endTime

string (Timestamp format)

Output only. If the migration job is completed, the time when it was completed.

A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits. Examples: "2014-10-02T15:01:23Z" and "2014-10-02T15:01:23.045123456Z".

conversionWorkspace

object (ConversionWorkspaceInfo)

The conversion workspace used by the migration.

filter

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.

cmekKeyName

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 kmsKeyName field in the alloydb connection profile instead). Each Cloud CMEK key has the following format: projects/[PROJECT]/locations/[REGION]/keyRings/[RING]/cryptoKeys/[KEY_NAME]

performanceConfig

object (PerformanceConfig)

Optional. Data dump parallelism settings used by the migration.

sqlserverHomogeneousMigrationJobConfig

object (SqlServerHomogeneousMigrationJobConfig)

Optional. Configuration for SQL Server homogeneous migration.

dumpType

enum (DumpType)

Optional. The type of the data dump. Supported for MySQL to CloudSQL for MySQL migrations only.

Union field connectivity. The connectivity method. connectivity can be only one of the following:
reverseSshConnectivity

object (ReverseSshConnectivity)

The details needed to communicate to the source over Reverse SSH tunnel connectivity.

vpcPeeringConnectivity

object (VpcPeeringConnectivity)

The details of the VPC network that the source database is located in.

staticIpConnectivity

object (StaticIpConnectivity)

static ip connectivity data (default, no additional details needed).

State

The current migration job states.

Enums
STATE_UNSPECIFIED The state of the migration job is unknown.
MAINTENANCE The migration job is down for maintenance.
DRAFT The migration job is in draft mode and no resources are created.
CREATING The migration job is being created.
NOT_STARTED The migration job is created and not started.
RUNNING The migration job is running.
FAILED The migration job failed.
COMPLETED The migration job has been completed.
DELETING The migration job is being deleted.
STOPPING The migration job is being stopped.
STOPPED The migration job is currently stopped.
DELETED The migration job has been deleted.
UPDATING The migration job is being updated.
STARTING The migration job is starting.
RESTARTING The migration job is restarting.
RESUMING The migration job is resuming.

Phase

The current migration job phase.

Enums
PHASE_UNSPECIFIED The phase of the migration job is unknown.
FULL_DUMP The migration job is in the full dump phase.
CDC The migration job is CDC phase.
PROMOTE_IN_PROGRESS The migration job is running the promote phase.
WAITING_FOR_SOURCE_WRITES_TO_STOP Only RDS flow - waiting for source writes to stop
PREPARING_THE_DUMP Only RDS flow - the sources writes stopped, waiting for dump to begin
READY_FOR_PROMOTE The migration job is ready to be promoted.

Type

The type of migration job (one-time or continuous).

Enums
TYPE_UNSPECIFIED The type of the migration job is unknown.
ONE_TIME The migration job is a one time migration.
CONTINUOUS The migration job is a continuous migration.

DumpFlags

Dump flags definition.

JSON representation
{
  "dumpFlags": [
    {
      object (DumpFlag)
    }
  ]
}
Fields
dumpFlags[]

object (DumpFlag)

The flags for the initial dump.

DumpFlag

Dump flag definition.

JSON representation
{
  "name": string,
  "value": string
}
Fields
name

string

The name of the flag

value

string

The value of the flag.

ReverseSshConnectivity

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.

JSON representation
{
  "vmIp": string,
  "vmPort": integer,
  "vm": string,
  "vpc": string
}
Fields
vmIp

string

Required. The IP of the virtual machine (Compute Engine) used as the bastion server for the SSH tunnel.

vmPort

integer

Required. The forwarding port of the virtual machine (Compute Engine) used as the bastion server for the SSH tunnel.

vm

string

The name of the virtual machine (Compute Engine) used as the bastion server for the SSH tunnel.

vpc

string

The name of the VPC to peer with the Cloud SQL private network.

VpcPeeringConnectivity

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.

JSON representation
{
  "vpc": string
}
Fields
vpc

string

The name of the VPC network to peer with the Cloud SQL private network.

DatabaseType

A message defining the database engine and provider.

JSON representation
{
  "provider": enum (DatabaseProvider),
  "engine": enum (DatabaseEngine)
}
Fields
provider

enum (DatabaseProvider)

The database provider.

engine

enum (DatabaseEngine)

The database engine.

ConversionWorkspaceInfo

A conversion workspace's version.

JSON representation
{
  "name": string,
  "commitId": string
}
Fields
name

string

The resource name (URI) of the conversion workspace.

commitId

string

The commit ID of the conversion workspace.

PerformanceConfig

Performance configuration definition.

JSON representation
{
  "dumpParallelLevel": enum (DumpParallelLevel)
}
Fields
dumpParallelLevel

enum (DumpParallelLevel)

Initial dump parallelism level.

DumpParallelLevel

Describes the parallelism level during initial dump.

Enums
DUMP_PARALLEL_LEVEL_UNSPECIFIED Unknown dump parallel level. Will be defaulted to OPTIMAL.
MIN Minimal parallel level.
OPTIMAL Optimal parallel level.
MAX Maximum parallel level.

SqlServerHomogeneousMigrationJobConfig

Configuration for homogeneous migration to Cloud SQL for SQL Server.

JSON representation
{
  "backupFilePattern": string,
  "databaseBackups": [
    {
      object (SqlServerDatabaseBackup)
    }
  ]
}
Fields
backupFilePattern

string

Required. Pattern that describes the default backup naming strategy. The specified pattern should ensure lexicographical order of backups. The pattern must define one of the following capture group sets: Capture group set #1 yy/yyyy - year, 2 or 4 digits mm - month number, 1-12 dd - day of month, 1-31 hh - hour of day, 00-23 mi - minutes, 00-59 ss - seconds, 00-59 Example: For backup file TestDB_20230802_155400.trn, use pattern: (?.*)_backup_(?\d{4})(?\d{2})(?

\d{2})_(?\d{2})(?\d{2})(?\d{2}).trn Capture group set #2 timestamp - unix timestamp Example: For backup file TestDB.1691448254.trn, use pattern: (?.*).(?\d*).trn or (?.*).(?\d*).trn

databaseBackups[]

object (SqlServerDatabaseBackup)

Required. Backup details per database in Cloud Storage.

SqlServerDatabaseBackup

Specifies the backup details for a single database in Cloud Storage for homogeneous migration to Cloud SQL for SQL Server.

JSON representation
{
  "database": string,
  "encryptionOptions": {
    object (SqlServerEncryptionOptions)
  }
}
Fields
database

string

Required. Name of a SQL Server database for which to define backup configuration.

encryptionOptions

object (SqlServerEncryptionOptions)

Optional. Encryption settings for the database. Required if provided database backups are encrypted. Encryption settings include path to certificate, path to certificate private key, and key password.

SqlServerEncryptionOptions

Encryption settings for the SQL Server database.

JSON representation
{
  "certPath": string,
  "pvkPath": string,
  "pvkPassword": string
}
Fields
certPath

string

Required. Path to certificate.

pvkPath

string

Required. Path to certificate private key.

pvkPassword

string

Required. Input only. Private key password.

DumpType

The type of the data dump.

Enums
DUMP_TYPE_UNSPECIFIED If not specified, defaults to LOGICAL
LOGICAL Logical dump.
PHYSICAL Physical file-based dump. Supported for MySQL to CloudSQL for MySQL migrations only.

Methods

create

Creates a new migration job in a given project and location.

delete

Deletes a single migration job.

demoteDestination

Demotes the destination database to become a read replica of the source.

generateSshScript

Generate a SSH configuration script to configure the reverse SSH connectivity.

generateTcpProxyScript

Generate a TCP Proxy configuration script to configure a cloud-hosted VM running a TCP Proxy.

get

Gets details of a single migration job.

getIamPolicy

Gets the access control policy for a resource.

list

Lists migration jobs in a given project and location.

patch

Updates the parameters of a single migration job.

promote

Promote a migration job, stopping replication to the destination and promoting the destination to be a standalone database.

restart

Restart a stopped or failed migration job, resetting the destination instance to its original state and starting the migration process from scratch.

resume

Resume a migration job that is currently stopped and is resumable (was stopped during CDC phase).

setIamPolicy

Sets the access control policy on the specified resource.

start

Start an already created migration job.

stop

Stops a running migration job.

testIamPermissions

Returns permissions that a caller has on the specified resource.

verify

Verify a migration job, making sure the destination can reach the source and that all configuration and prerequisites are met.