canonical: https://jentic.com/apis/googleapis.com/google-migration-center

# Google Migration Center API

Migration Center is Google Cloud's unified workload-discovery and migration-planning service that catalogs on-premises and cloud assets, groups them, and produces reports for migrations to Google Cloud. The API exposes assets, groups, import jobs, preference sets, sources, and reports, plus heartbeat endpoints used by data collectors. Many state changes are long-running operations and the API is scoped to project locations.

## For AI agents

Discover, group, and plan workload migrations to Google Cloud: import asset inventory, manage groups and preferences, run reports, and track collector heartbeats.

## Scope

Does not perform actual VM, database, or container migrations - use for asset discovery, grouping, preference sets, and migration reports only.

## Capabilities

- Import asset inventory from CSV, RVTools, or supported scanners via import jobs
- Group assets by tag, attribute, or query for migration wave planning
- Run reports that estimate cost, sizing, and Google Cloud target shape per group
- Manage preference sets that drive sizing assumptions and target product choices
- Send and inspect collector heartbeats so on-premises agents stay healthy
- Validate import payloads before committing them to the asset catalog
- Manage sources representing the upstream systems that feed asset data

## Use cases

### Asset discovery and inventory

Import asset inventory from RVTools, CSV exports, or running collectors so that Migration Center has a complete view of on-premises VMs, machines, and applications. Assets are scoped to a project location and can be queried, grouped, and reported on as a single inventory across data centres.

Example prompt: Create an import job in projects/acme/locations/us-central1 with an RVTools payload, call validate, and run the job once validation succeeds

### Migration wave planning

Group assets into migration waves based on application boundaries or business criticality so that each wave can be sized, costed, and migrated independently. The addAssets and removeAssets operations let teams iterate on group membership as discovery refines what belongs together.

Example prompt: Create a group named wave-1-mission-critical in projects/acme/locations/us-central1, then call addAssets with the asset names produced by an internal CMDB query

### Migration cost and sizing reports

Run reports that estimate the Google Cloud target shape and monthly cost for a migration group under a chosen preference set. Reports surface compute, storage, and network estimates so finance and architecture teams can sign off on each wave before the migration executes.

Example prompt: Run a report on group wave-1-mission-critical with preferenceSet projects/acme/locations/us-central1/preferenceSets/balanced and store the report name once the operation completes

### Agent integration via Jentic

AI agents acting as cloud migration assistants can use Migration Center through Jentic to keep inventory current, regroup assets as discovery progresses, and generate fresh cost reports without holding the underlying OAuth refresh token in their prompt.

Example prompt: List assets in projects/acme/locations/us-central1 missing from any migration group and create a group named unassigned-wave to hold them

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| GET | /v1/{+parent}/assets | List discovered assets in a location |
| POST | /v1/{+group}:addAssets | Add assets to a migration group |
| POST | /v1/{+group}:removeAssets | Remove assets from a migration group |
| POST | /v1/{+name}:run | Run an import job |
| POST | /v1/{+name}:validate | Validate an import job before running |
| POST | /v1/{+name}:sendHeartbeat | Send a collector heartbeat |
| DELETE | /v1/{+name} | Delete a Migration Center resource |
| POST | /v1/{+name}:cancel | Cancel a long-running operation |

## Key resources

- **assets** — List, retrieve, and update discovered assets in the migration inventory
- **groups** — Group assets into migration waves and add or remove members
- **importJobs** — Import asset data from CSV, RVTools, or collector payloads
- **preferenceSets** — Manage sizing assumptions and target product preferences
- **sources** — Represent upstream systems that feed asset data into Migration Center
- **reports** — Run sizing and cost reports against migration groups
- **operations** — Track and cancel long-running operations across resources

## Why Jentic

- **Setup:** Wiring the Migration Center API by hand means setting up Google OAuth 2.0 with the cloud-platform scope, minting bearer tokens, and polling long-running report operations yourself against the migrationcenter.googleapis.com host. Through Jentic you install once, import the Migration Center API from the API Directory, store the OAuth credential once, and your agent calls it.
- **Permission scoping:** The Migration Center API puts the group and resource name in the URL path (/v1/{+group}... and /v1/{+name}...), so a rule can pin your agent to one asset group: it can list assets and add or remove them there and nothing else. You choose the operations it may call, so destructive ones like resource deletion are not included unless you add them.
- **Credential handling:** Your Google OAuth credential is stored once, encrypted, by your own Jentic One instance and injected at execution time. It never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'import migration assets' or 'run a Migration Center report', and Jentic returns the matching Migration Center operation with its input schema so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **Database Migration API** — Executes database migrations once Migration Center has scoped the workload
- **Compute Engine API** — Provisions the target VMs identified by Migration Center sizing reports
- **Kubernetes Engine API** — Target platform for containerised workloads identified during Migration Center discovery

## FAQ

### What authentication does the Migration Center API use?

The API uses Google OAuth 2.0 with the https://www.googleapis.com/auth/cloud-platform scope. Through Jentic, the OAuth credentials are held in the encrypted vault and the agent receives only a short-lived scoped bearer token.

### Can I import an RVTools export of our VMware estate?

Yes. Create an import job, attach the RVTools payload, and call validate to surface schema issues before invoking run. The job processes assets asynchronously and reports per-asset success or rejection in the operation result.

### What are the rate limits for the Migration Center API?

Per-project quotas are managed in the Google Cloud Console under the Migration Center service. Bulk import and group manipulation calls have concurrency caps in addition to per-minute request quotas, so large estate imports should batch addAssets calls and back off on 429 responses.

### How do I run a migration cost report through Jentic?

Search Jentic for run migration center report, load the reports create operation, and execute with the group resource path and a preferenceSet name. Jentic returns the long-running operation; poll it until done, then read the report resource for sizing and cost output.

### Is the Migration Center API free?

Migration Center is offered free for eligible workloads to encourage migration to Google Cloud. The API itself is not separately billed; consult the Migration Center pricing page for any premium discovery features.

### Does this API actually move workloads to Google Cloud?

No, it covers discovery, grouping, sizing, and reporting only. The actual migration is performed by tools such as Migrate to Virtual Machines, Database Migration Service, or your own runbooks once a wave plan has been signed off.

### Can I limit what my agent is allowed to do with the Migration Center API?

Yes. Because your Jentic One instance is self-hosted, your own rules decide which Migration Center operations and credentials the agent may use. The API carries the group and resource name in the URL path, so a rule can pin the agent to a single asset group where it can list assets and add or remove them and nothing else. You pick the operations it may call, so destructive ones such as resource deletion or cancelling long-running operations stay off the list unless you add them.
