Tool: list_migration_jobs
Lists the migration jobs of the provided parent with optional filters.
- Parent parameter is in the form
projects/{project name}/locations/{location}, for example:projects/my-project/locations/us-central1. - You can use any, some or all of the additional parameters to filter the results.
- You can specify in the 'page_size' parameter the maximum number of migration jobs to return. The tool may return fewer than this value. If more jobs are available, a 'next_page_token' value is returned and you can use it in the next call to retrieve the next page of results. If unspecified, at most 50 migration jobs will be returned. The maximum value is 100; values above 100 are coerced to 100.
- If no 'next_page_token' is returned, there are no more migration jobs to retrieve.
- Not all the details of the migration jobs are returned.
- To get the full details of a specific job use the 'get_migration_job' tool.
For example: {
create_time_after: 2025-10-02T10:15:33Z
create_time_before: 2025-10-03T00:00:00Z
display_name: hr
running: true
page_size: 80
}
will return up to 80 migration jobs that were created on or after 2025-10-02T10:15:33 UTC and before 2025-10-03T00:00:00 UTC and have hr
in their display name and are currently running. If there are more than 80 such jobs, a next_page_token
value (like CgtteS1qb2IxM
) will be returned and you can use it in the next call to retrieve the next page of results.
The following sample demonstrate how to use curl
to invoke the list_migration_jobs
MCP tool.
| Curl Request |
|---|
curl --location 'https://datamigration.googleapis.com/mcp' \ --header 'content-type: application/json' \ --header 'accept: application/json, text/event-stream' \ --data '{ "method": "tools/call", "params": { "name": "list_migration_jobs", "arguments": { // provide these details according to the tool' s MCP specification } } , "jsonrpc" : "2.0" , "id" : 1 } ' |
Input Schema
Request message for 'ListMigrationJobs' request.
ListMigrationJobsRequest
| JSON representation |
|---|
{ "parent" : string , "createTimeAfter" : string , "createTimeBefore" : string , "displayName" : string , "running" : boolean , "failed" : boolean , "completed" : boolean , "pageSize" : integer , "pageToken" : string } |
| Fields | |
|---|---|
parent
|
Required. The resource name for the location for which migration jobs should be returned. Must be in the format |
createTimeAfter
|
Optional. Use to get migrations jobs that were created on or after the provided date/time, formatted as RFC-3339. |
createTimeBefore
|
Optional. Use to get migrations jobs that were created before the provided date/time, formatted as RFC-3339. |
displayName
|
Optional. Use to get migration jobs whose display name contains the provided name. |
running
|
Optional. Use to get migration jobs that are currently running. |
failed
|
Optional. Use to get migration jobs that have failed. |
completed
|
Optional. Use to get migration jobs that are completed. |
pageSize
|
Optional. Use to limit the number of migration jobs returned. Valid values are between 1 and 100 inclusive. Defaults to 50 if not provided or outside of the valid range. Note that due to filtering, it is possible to get no results (but a next_page_token) so you should keep calling this method until you get a response with an empty next_page_token. |
pageToken
|
Optional. A page token, received from a previous |
Output Schema
Response message for 'ListMigrationJobs' request.
ListMigrationJobsResponse
| JSON representation |
|---|
{
"migrationJobs"
:
[
{
object (
|
| Fields | |
|---|---|
migrationJobs[]
|
The list of migration jobs objects. |
nextPageToken
|
A token which can be sent as |
unreachable[]
|
Locations that could not be reached. |
MigrationJob
| JSON representation |
|---|
{ "name" : string , "createTime" : string , "updateTime" : string , "labels" : { string : string , ... } , "displayName" : string , "state" : enum ( |
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".
Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: "2014-10-02T15:01:23Z"
, "2014-10-02T15:01:23.045123456Z"
or "2014-10-02T15:01:23+05:30"
.
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".
Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: "2014-10-02T15:01:23Z"
, "2014-10-02T15:01:23.045123456Z"
or "2014-10-02T15:01:23+05:30"
.
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]). This field and the "dump_flags" field are mutually exclusive.
dumpFlags
object (
DumpFlags
)
The initial dump flags. This field and the "dump_path" 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.
Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: "2014-10-02T15:01:23Z"
, "2014-10-02T15:01:23.045123456Z"
or "2014-10-02T15:01:23+05:30"
.
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 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]
performanceConfig
object (
PerformanceConfig
)
Optional. Data dump parallelism settings used by the migration.
postgresHomogeneousConfig
object (
PostgresHomogeneousConfig
)
Optional. Configuration for PostgreSQL homogeneous 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.
objectsConfig
object (
MigrationJobObjectsConfig
)
Optional. The objects that need to be migrated.
purpose
enum (
Purpose
)
Output only. Migration job mode. Migration jobs can be standard forward jobs or failback migration jobs.
originalMigrationName
string
Optional. A failback replication pointer to the resource name (URI) of the original migration job.
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).
config
. Configuration for migration. config
can be only one of the following:oracleToPostgresConfig
object (
OracleToPostgresConfig
)
Configuration for heterogeneous Oracle to Cloud SQL for PostgreSQLand Oracle to AlloyDB for PostgreSQLmigrations.
sqlserverToPostgresConfig
object (
SqlServerToPostgresConfig
)
Configuration for heterogeneous SQL Server to Cloud SQL for PostgreSQLmigrations.
postgresToSqlserverConfig
object (
PostgresToSqlServerConfig
)
Configuration for heterogeneous failback migrations from PostgreSQL to SQL Server.
Union field _satisfies_pzs
.
_satisfies_pzs
can be only one of the following:
satisfiesPzs
boolean
Output only. Reserved for future use.
Union field _satisfies_pzi
.
_satisfies_pzi
can be only one of the following:
satisfiesPzi
boolean
Output only. Reserved for future use.
Timestamp
| JSON representation |
|---|
{ "seconds" : string , "nanos" : integer } |
| Fields | |
|---|---|
seconds
|
Represents seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z. Must be between -62135596800 and 253402300799 inclusive (which corresponds to 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z). |
nanos
|
Non-negative fractions of a second at nanosecond resolution. This field is the nanosecond portion of the duration, not an alternative to seconds. Negative second values with fractions must still have non-negative nanos values that count forward in time. Must be between 0 and 999,999,999 inclusive. |
LabelsEntry
| JSON representation |
|---|
{ "key" : string , "value" : string } |
| Fields | |
|---|---|
key
|
|
value
|
|
DumpFlags
| JSON representation |
|---|
{
"dumpFlags"
:
[
{
object (
|
| Fields | |
|---|---|
dumpFlags[]
|
The flags for the initial dump. |
DumpFlag
| JSON representation |
|---|
{ "name" : string , "value" : string } |
| Fields | |
|---|---|
name
|
The name of the flag |
value
|
The value of the flag. |
ReverseSshConnectivity
| JSON representation |
|---|
{ "vmIp" : string , "vmPort" : integer , "vm" : string , "vpc" : string } |
| Fields | |
|---|---|
vmIp
|
Required. The IP of the virtual machine (Compute Engine) used as the bastion server for the SSH tunnel. |
vmPort
|
Required. The forwarding port of the virtual machine (Compute Engine) used as the bastion server for the SSH tunnel. |
vm
|
The name of the virtual machine (Compute Engine) used as the bastion server for the SSH tunnel. |
vpc
|
The name of the VPC to peer with the Cloud SQL private network. |
VpcPeeringConnectivity
| JSON representation |
|---|
{ "vpc" : string } |
| Fields | |
|---|---|
vpc
|
The name of the VPC network to peer with the Cloud SQL private network. |
Duration
| JSON representation |
|---|
{ "seconds" : string , "nanos" : integer } |
| Fields | |
|---|---|
seconds
|
Signed seconds of the span of time. Must be from -315,576,000,000 to +315,576,000,000 inclusive. Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years |
nanos
|
Signed fractions of a second at nanosecond resolution of the span of time. Durations less than one second are represented with a 0 |
Status
| JSON representation |
|---|
{ "code" : integer , "message" : string , "details" : [ { "@type" : string , field1 : ... , ... } ] } |
| Fields | |
|---|---|
code
|
The status code, which should be an enum value of |
message
|
A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the |
details[]
|
A list of messages that carry the error details. There is a common set of message types for APIs to use. An object containing fields of an arbitrary type. An additional field |
Any
| JSON representation |
|---|
{ "typeUrl" : string , "value" : string } |
| Fields | |
|---|---|
typeUrl
|
Identifies the type of the serialized Protobuf message with a URI reference consisting of a prefix ending in a slash and the fully-qualified type name. Example: type.googleapis.com/google.protobuf.StringValue This string must contain at least one The prefix is arbitrary and Protobuf implementations are expected to simply strip off everything up to and including the last All type URL strings must be legal URI references with the additional restriction (for the text format) that the content of the reference must consist only of alphanumeric characters, percent-encoded escapes, and characters in the following set (not including the outer backticks): In the original design of |
value
|
Holds a Protobuf serialization of the type described by type_url. A base64-encoded string. |
DatabaseType
| JSON representation |
|---|
{ "provider" : enum ( |
| Fields | |
|---|---|
provider
|
The database provider. |
engine
|
The database engine. |
ConversionWorkspaceInfo
| JSON representation |
|---|
{ "name" : string , "commitId" : string } |
| Fields | |
|---|---|
name
|
The resource name (URI) of the conversion workspace. |
commitId
|
The commit ID of the conversion workspace. |
PerformanceConfig
| JSON representation |
|---|
{
"dumpParallelLevel"
:
enum (
|
| Fields | |
|---|---|
dumpParallelLevel
|
Initial dump parallelism level. |
PostgresHomogeneousConfig
| JSON representation |
|---|
{ "isNativeLogical" : boolean , "maxAdditionalSubscriptions" : integer } |
| Fields | |
|---|---|
isNativeLogical
|
Required. Whether the migration is native logical. |
maxAdditionalSubscriptions
|
Optional. Maximum number of additional subscriptions to use for the migration job. |
SqlServerHomogeneousMigrationJobConfig
| JSON representation |
|---|
{ "backupFilePattern" : string , "databaseBackups" : [ { object ( |
| Fields | |
|---|---|
backupFilePattern
|
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: (? |
databaseBackups[]
|
Required. Backup details per database in Cloud Storage. |
useDiffBackup
|
Optional. Enable differential backups. |
promoteWhenReady
|
Optional. Promote databases when ready. |
dagConfig
|
Optional. Configuration for distributed availability group (DAG) for the SQL Server homogeneous migration. |
SqlServerDatabaseBackup
| JSON representation |
|---|
{
"database"
:
string
,
"encryptionOptions"
:
{
object (
|
| Fields | |
|---|---|
database
|
Required. Name of a SQL Server database for which to define backup configuration. |
encryptionOptions
|
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
| JSON representation |
|---|
{ "certPath" : string , "pvkPath" : string , "pvkPassword" : string } |
| Fields | |
|---|---|
certPath
|
Required. Path to the Certificate (.cer) in Cloud Storage, in the form |
pvkPath
|
Required. Path to the Certificate Private Key (.pvk) in Cloud Storage, in the form |
pvkPassword
|
Required. Input only. Password that encrypts the private key. |
BoolValue
| JSON representation |
|---|
{ "value" : boolean } |
| Fields | |
|---|---|
value
|
The bool value. |
SqlServerDagConfig
| JSON representation |
|---|
{ "sourceAg" : string , "linkedServer" : string } |
| Fields | |
|---|---|
sourceAg
|
Required. The name of the source availability group. Only used by DAG migrations. |
linkedServer
|
Required. The name of the linked server that points to the source SQL Server instance. Only used by DAG migrations. |
OracleToPostgresConfig
| JSON representation |
|---|
{ "oracleSourceConfig" : { object ( |
| Fields | |
|---|---|
oracleSourceConfig
|
Optional. Configuration for Oracle source. |
postgresDestinationConfig
|
Optional. Configuration for Postgres destination. |
OracleSourceConfig
| JSON representation |
|---|
{ // Union field |
Union field _max_concurrent_full_dump_connections
.
_max_concurrent_full_dump_connections
can be only one of the following:
maxConcurrentFullDumpConnections
integer
Optional. Maximum number of connections Database Migration Service will open to the source for full dump phase.
Union field _max_concurrent_cdc_connections
.
_max_concurrent_cdc_connections
can be only one of the following:
maxConcurrentCdcConnections
integer
Optional. Maximum number of connections Database Migration Service will open to the source for CDC phase.
Union field _skip_full_dump
.
_skip_full_dump
can be only one of the following:
skipFullDump
boolean
Optional. Whether to skip full dump or not.
Union field _cdc_start_position
.
_cdc_start_position
can be only one of the following:
cdcStartPosition
string ( int64
format)
Optional. The schema change number (SCN) to start CDC data migration from.
cdc_method
. Configuration to select the CDC method. cdc_method
can be only one of the following:logMiner
object (
LogMiner
)
Use LogMiner.
binaryLogParser
object (
BinaryLogParser
)
Use Binary Log Parser.
BinaryLogParser
| JSON representation |
|---|
{ // Union field |
log_file_access
. Configuration to specify how the log file should be accessed. log_file_access
can be only one of the following:oracleAsmLogFileAccess
object (
OracleAsmLogFileAccess
)
Use Oracle ASM.
logFileDirectories
object (
LogFileDirectories
)
Use Oracle directories.
LogFileDirectories
| JSON representation |
|---|
{ "onlineLogDirectory" : string , "archivedLogDirectory" : string } |
| Fields | |
|---|---|
onlineLogDirectory
|
Required. Oracle directory for online logs. |
archivedLogDirectory
|
Required. Oracle directory for archived logs. |
PostgresDestinationConfig
| JSON representation |
|---|
{ // Union field |
Union field _max_concurrent_connections
.
_max_concurrent_connections
can be only one of the following:
maxConcurrentConnections
integer
Optional. Maximum number of connections Database Migration Service will open to the destination for data migration.
Union field _transaction_timeout
.
_transaction_timeout
can be only one of the following:
transactionTimeout
string (
Duration
format)
Optional. Timeout for data migration transactions.
A duration in seconds with up to nine fractional digits, ending with ' s
'. Example: "3.5s"
.
SqlServerToPostgresConfig
| JSON representation |
|---|
{ "sqlserverSourceConfig" : { object ( |
| Fields | |
|---|---|
sqlserverSourceConfig
|
Optional. Configuration for SQL Server source. |
postgresDestinationConfig
|
Optional. Configuration for Postgres destination. |
SqlServerSourceConfig
| JSON representation |
|---|
{ // Union field |
Union field _max_concurrent_full_dump_connections
.
_max_concurrent_full_dump_connections
can be only one of the following:
maxConcurrentFullDumpConnections
integer
Optional. Maximum number of connections Database Migration Service will open to the source for full dump phase.
Union field _max_concurrent_cdc_connections
.
_max_concurrent_cdc_connections
can be only one of the following:
maxConcurrentCdcConnections
integer
Optional. Maximum number of connections Database Migration Service will open to the source for CDC phase.
Union field _skip_full_dump
.
_skip_full_dump
can be only one of the following:
skipFullDump
boolean
Optional. Whether to skip full dump or not.
Union field _cdc_start_position
.
_cdc_start_position
can be only one of the following:
cdcStartPosition
string
Optional. The log sequence number (LSN) to start CDC data migration from.
PostgresToSqlServerConfig
| JSON representation |
|---|
{ "postgresSourceConfig" : { object ( |
| Fields | |
|---|---|
postgresSourceConfig
|
Optional. Configuration for PostgreSQL source. |
sqlserverDestinationConfig
|
Optional. Configuration for SQL Server destination. |
PostgresSourceConfig
| JSON representation |
|---|
{ // Union field |
Union field _skip_full_dump
.
_skip_full_dump
can be only one of the following:
skipFullDump
boolean
Optional. Whether to skip full dump or not.
SqlServerDestinationConfig
| JSON representation |
|---|
{ // Union field |
Union field _max_concurrent_connections
.
_max_concurrent_connections
can be only one of the following:
maxConcurrentConnections
integer
Optional. Maximum number of connections Database Migration Service will open to the destination for data migration.
Union field _transaction_timeout
.
_transaction_timeout
can be only one of the following:
transactionTimeout
string (
Duration
format)
Optional. Timeout for data migration transactions.
A duration in seconds with up to nine fractional digits, ending with ' s
'. Example: "3.5s"
.
MigrationJobObjectsConfig
| JSON representation |
|---|
{ // Union field |
migration_job_object_config
. The config for the objects to be migrated. migration_job_object_config
can be only one of the following:sourceObjectsConfig
object (
SourceObjectsConfig
)
The list of the migration job objects.
SourceObjectsConfig
| JSON representation |
|---|
{ "objectConfigs" : [ { object ( |
| Fields | |
|---|---|
objectConfigs[]
|
Optional. The list of the objects to be migrated. |
objectsSelectionType
|
Optional. The objects selection type of the migration job. |
SourceObjectConfig
| JSON representation |
|---|
{
"objectIdentifier"
:
{
object (
|
| Fields | |
|---|---|
objectIdentifier
|
Optional. The object identifier. |
SourceObjectIdentifier
| JSON representation |
|---|
{
"database"
:
string
,
"schema"
:
string
,
"table"
:
string
,
"type"
:
enum (
|
| Fields | |
|---|---|
database
|
Optional. The database name. This will be required only if the object uses a database name as part of its unique identifier. |
schema
|
Optional. The schema name. This will be required only if the object uses a schema name as part of its unique identifier. |
table
|
Optional. The table name. This will be required only if the object is a level below database or schema. |
type
|
Required. The type of the migration job object. |
Tool Annotations
Destructive Hint: ❌ | Idempotent Hint: ✅ | Read Only Hint: ✅ | Open World Hint: ❌

