Migration Center API

The Migration Center API provides programmatic access to Google Cloud Migration Center for discovering, assessing, and planning migrations of on-premises infrastructure to Google Cloud. Developers can use the API to manage assets, groups, import jobs, discovery clients, preference sets, and export jobs. The API enables automated infrastructure assessment, cost estimation, and migration planning workflows.

OpenAPI Specification

migration-center-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Google Cloud Migration Center Google Migration Center API
  description: >-
    The Migration Center API provides programmatic access to Google Cloud
    Migration Center for discovering, assessing, and planning migrations of
    on-premises infrastructure to Google Cloud. It enables management of assets,
    groups, import jobs, discovery clients, preference sets, and export jobs
    to support automated migration planning workflows.
  version: v1
  contact:
    name: Google Cloud Support
    url: https://cloud.google.com/migration-center/docs
  termsOfService: https://cloud.google.com/terms
externalDocs:
  description: Migration Center API Documentation
  url: https://cloud.google.com/migration-center/docs/reference/rest
servers:
  - url: https://migrationcenter.googleapis.com/v1
    description: Production Server
tags:
  - name: Assets
    description: Operations for managing discovered infrastructure assets
  - name: Groups
    description: Operations for organizing assets into groups
  - name: ImportJobs
    description: Operations for importing asset data from external sources
  - name: PreferenceSets
    description: Operations for managing migration preference configurations
security:
  - oauth2: []
paths:
  /projects/{projectId}/locations/{location}/assets:
    get:
      operationId: listAssets
      summary: Google Cloud Migration Center List assets
      description: Lists all assets in the specified project and location.
      tags:
        - Assets
      parameters:
        - name: projectId
          in: path
          required: true
          schema:
            type: string
          description: The ID of the project
        - name: location
          in: path
          required: true
          schema:
            type: string
          description: The location of the assets
        - name: pageSize
          in: query
          schema:
            type: integer
          description: Maximum number of assets to return
        - name: pageToken
          in: query
          schema:
            type: string
          description: Page token for pagination
        - name: filter
          in: query
          schema:
            type: string
          description: Filter expression for assets
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListAssetsResponse'
  /projects/{projectId}/locations/{location}/assets/{assetId}:
    get:
      operationId: getAsset
      summary: Google Cloud Migration Center Get an asset
      description: Gets the details of a single asset.
      tags:
        - Assets
      parameters:
        - name: projectId
          in: path
          required: true
          schema:
            type: string
        - name: location
          in: path
          required: true
          schema:
            type: string
        - name: assetId
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Asset'
    patch:
      operationId: updateAsset
      summary: Google Cloud Migration Center Update an asset
      description: Updates the parameters of a single asset.
      tags:
        - Assets
      parameters:
        - name: projectId
          in: path
          required: true
          schema:
            type: string
        - name: location
          in: path
          required: true
          schema:
            type: string
        - name: assetId
          in: path
          required: true
          schema:
            type: string
        - name: updateMask
          in: query
          schema:
            type: string
          description: Field mask for partial update
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Asset'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Asset'
    delete:
      operationId: deleteAsset
      summary: Google Cloud Migration Center Delete an asset
      description: Deletes a single asset.
      tags:
        - Assets
      parameters:
        - name: projectId
          in: path
          required: true
          schema:
            type: string
        - name: location
          in: path
          required: true
          schema:
            type: string
        - name: assetId
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Successful response
  /projects/{projectId}/locations/{location}/groups:
    get:
      operationId: listGroups
      summary: Google Cloud Migration Center List groups
      description: Lists all groups in the specified project and location.
      tags:
        - Groups
      parameters:
        - name: projectId
          in: path
          required: true
          schema:
            type: string
        - name: location
          in: path
          required: true
          schema:
            type: string
        - name: pageSize
          in: query
          schema:
            type: integer
        - name: pageToken
          in: query
          schema:
            type: string
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListGroupsResponse'
    post:
      operationId: createGroup
      summary: Google Cloud Migration Center Create a group
      description: Creates a new group in the specified project and location.
      tags:
        - Groups
      parameters:
        - name: projectId
          in: path
          required: true
          schema:
            type: string
        - name: location
          in: path
          required: true
          schema:
            type: string
        - name: groupId
          in: query
          schema:
            type: string
          description: The ID to use for the group
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Group'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Operation'
  /projects/{projectId}/locations/{location}/importJobs:
    get:
      operationId: listImportJobs
      summary: Google Cloud Migration Center List import jobs
      description: Lists all import jobs in the specified project and location.
      tags:
        - ImportJobs
      parameters:
        - name: projectId
          in: path
          required: true
          schema:
            type: string
        - name: location
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListImportJobsResponse'
    post:
      operationId: createImportJob
      summary: Google Cloud Migration Center Create an import job
      description: Creates a new import job.
      tags:
        - ImportJobs
      parameters:
        - name: projectId
          in: path
          required: true
          schema:
            type: string
        - name: location
          in: path
          required: true
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ImportJob'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Operation'
  /projects/{projectId}/locations/{location}/preferenceSets:
    get:
      operationId: listPreferenceSets
      summary: Google Cloud Migration Center List preference sets
      description: Lists all preference sets in the specified project and location.
      tags:
        - PreferenceSets
      parameters:
        - name: projectId
          in: path
          required: true
          schema:
            type: string
        - name: location
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListPreferenceSetsResponse'
    post:
      operationId: createPreferenceSet
      summary: Google Cloud Migration Center Create a preference set
      description: Creates a new preference set for migration planning.
      tags:
        - PreferenceSets
      parameters:
        - name: projectId
          in: path
          required: true
          schema:
            type: string
        - name: location
          in: path
          required: true
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PreferenceSet'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Operation'
components:
  securitySchemes:
    oauth2:
      type: oauth2
      flows:
        authorizationCode:
          authorizationUrl: https://accounts.google.com/o/oauth2/auth
          tokenUrl: https://oauth2.googleapis.com/token
          scopes:
            https://www.googleapis.com/auth/cloud-platform: Full access to Google Cloud resources
  schemas:
    Asset:
      type: object
      description: An asset represents a resource in a customer environment.
      properties:
        name:
          type: string
          description: Output only. The full resource name of the asset.
        createTime:
          type: string
          format: date-time
          description: Output only. The timestamp when the asset was created.
        updateTime:
          type: string
          format: date-time
          description: Output only. The timestamp when the asset was last updated.
        labels:
          type: object
          additionalProperties:
            type: string
          description: Labels applied to the asset.
        machineDetails:
          $ref: '#/components/schemas/MachineDetails'
        attributes:
          type: object
          additionalProperties:
            type: string
          description: Generic asset attributes.
    MachineDetails:
      type: object
      description: Details of a machine asset.
      properties:
        uuid:
          type: string
          description: Machine unique identifier.
        machineName:
          type: string
          description: Machine name.
        coreCount:
          type: integer
          description: Number of CPU cores.
        memoryMb:
          type: integer
          description: Memory size in megabytes.
        diskCount:
          type: integer
          description: Number of disks.
        totalDiskSizeGb:
          type: integer
          description: Total disk size in gigabytes.
        platform:
          type: string
          description: Platform information.
    Group:
      type: object
      description: A group organizes a collection of assets for migration planning.
      properties:
        name:
          type: string
          description: Output only. The full resource name.
        displayName:
          type: string
          description: User-friendly display name.
        description:
          type: string
          description: Description of the group.
        createTime:
          type: string
          format: date-time
        updateTime:
          type: string
          format: date-time
        labels:
          type: object
          additionalProperties:
            type: string
    ImportJob:
      type: object
      description: An import job represents a data import operation.
      properties:
        name:
          type: string
          description: Output only. The full resource name.
        displayName:
          type: string
        createTime:
          type: string
          format: date-time
        updateTime:
          type: string
          format: date-time
        state:
          type: string
          enum:
            - STATE_UNSPECIFIED
            - PENDING
            - RUNNING
            - COMPLETED
            - FAILED
        labels:
          type: object
          additionalProperties:
            type: string
    PreferenceSet:
      type: object
      description: A set of preferences for migration planning.
      properties:
        name:
          type: string
        displayName:
          type: string
        description:
          type: string
        createTime:
          type: string
          format: date-time
        updateTime:
          type: string
          format: date-time
        virtualMachinePreferences:
          type: object
          description: Preferences for virtual machine migration targets.
          properties:
            targetProduct:
              type: string
              enum:
                - COMPUTE_MIGRATION_TARGET_PRODUCT_UNSPECIFIED
                - COMPUTE_ENGINE
                - VMWARE_ENGINE
                - SOLE_TENANCY
            commitmentPlan:
              type: string
              enum:
                - COMMITMENT_PLAN_UNSPECIFIED
                - NONE
                - ONE_YEAR
                - THREE_YEARS
            sizingOptimizationStrategy:
              type: string
              enum:
                - SIZING_OPTIMIZATION_STRATEGY_UNSPECIFIED
                - SAME_AS_SOURCE
                - MODERATE
                - AGGRESSIVE
    Operation:
      type: object
      description: A long-running operation.
      properties:
        name:
          type: string
        done:
          type: boolean
        error:
          type: object
          properties:
            code:
              type: integer
            message:
              type: string
    ListAssetsResponse:
      type: object
      properties:
        assets:
          type: array
          items:
            $ref: '#/components/schemas/Asset'
        nextPageToken:
          type: string
    ListGroupsResponse:
      type: object
      properties:
        groups:
          type: array
          items:
            $ref: '#/components/schemas/Group'
        nextPageToken:
          type: string
    ListImportJobsResponse:
      type: object
      properties:
        importJobs:
          type: array
          items:
            $ref: '#/components/schemas/ImportJob'
        nextPageToken:
          type: string
    ListPreferenceSetsResponse:
      type: object
      properties:
        preferenceSets:
          type: array
          items:
            $ref: '#/components/schemas/PreferenceSet'
        nextPageToken:
          type: string