openapi: 3.1.0
info:
title: Port Action Runs Migrations API
version: '1.0'
tags:
- name: Migrations
paths:
/v1/migrations:
get:
summary: Get all migrations
tags:
- Migrations
description: This route allows you to fetch all migrations (both past and present) in your Port organization.
The call will perform a logical `AND` operation on the query parameters below, and return all migrations that match the criteria.
parameters:
- schema:
type: array
items:
type: string
enum:
- COMPLETED
- RUNNING
- PENDING
- INITIALIZING
- FAILURE
- CANCELLED
- PENDING_CANCELLATION
in: query
name: status
required: false
- schema:
type: string
in: query
name: actor
required: false
description: The identifier of the user who initiated the migration. You can use the [Get user](https://docs.port.io/api-reference/get-a-user/) route to get a user's identifier.
- schema:
type: string
in: query
name: blueprint
required: false
description: The identifier of the blueprint associated with the migration.
security:
- bearer:
- read:blueprints
responses:
'401':
description: Default Response
content:
application/json:
schema:
properties:
ok:
const: false
error:
type: string
message:
type: string
required:
- ok
- error
additionalProperties: false
'404':
description: A resource with the provided identifier was not found
content:
application/json:
schema:
properties:
ok:
const: false
error:
type: string
message:
type: string
required:
- ok
- error
- message
additionalProperties: false
description: A resource with the provided identifier was not found
post:
summary: Create a migration
tags:
- Migrations
description: This route allows you to create a migration in your Port organization. You can use this to migrate data from one blueprint to another.
**Note** that it is not possible to directly change the data type of an existing property via the UI or the API. The type field setting of a property (**number**, **string**, etc.) is permanent and cannot be changed after creation.
However, you can create a new property with the desired type and migrate the old values to it. Refer to the [documentation](https://docs.port.io/build-your-software-catalog/customize-integrations/configure-data-model/setup-blueprint/properties/#change-a-property-type) for more information on how to change a property's type.
requestBody:
content:
application/json:
schema:
type: object
properties:
sourceBlueprint:
type: string
description: The identifier of the blueprint from which the migration will be performed.
mapping:
type: object
description: The definition used to map the data from the source blueprint into the target blueprint.
properties:
blueprint:
type: string
description: The identifier of the target blueprint.
filter:
type: string
description: An optional set of [conditions](https://docs.port.io/scorecards/concepts-and-structure/#conditions) to filter the entities that will be migrated.
itemsToParse:
type: string
description: A `jq` query that evaluates to an array of items, used to create multiple entities at once. See more information [here](https://docs.port.io/build-your-software-catalog/customize-integrations/configure-mapping/#create-multiple-entities-from-an-array-api-object).
entity:
type: object
properties:
identifier:
type: string
description: A `jq` expression used to get data from the source blueprint, to be used as an identifier for the entity.
title:
type: string
description: A `jq` expression used to get data from the source blueprint, to be used as the title of the entity.
icon:
type: string
description: The icon of the entity.
team:
type: string
description: The team the entity belongs to.
properties:
type: object
description: An object containing the properties of the entity and their values, in `"key":"value"` pairs where the `key` is the property's identifier, and the `value` is its value.
additionalProperties:
type: string
relations:
type: object
description: An object containing the relations of the entity and their values, in `"key":"value"` pairs where the `key` is the relation's identifier, and the `value` is the related entity's identifier for single-relations, or an array of identifiers for many-relations.
You can also use a [search query](https://docs.port.io/build-your-software-catalog/customize-integrations/configure-mapping#mapping-relations-using-search-queries) to define relations based on a property of the related entity.
additionalProperties:
type: string
required:
- entity
required:
- sourceBlueprint
- mapping
additionalProperties: false
required: true
security:
- bearer: []
responses:
'401':
description: Default Response
content:
application/json:
schema:
properties:
ok:
const: false
error:
type: string
message:
type: string
required:
- ok
- error
additionalProperties: false
'404':
description: A resource with the provided identifier was not found
content:
application/json:
schema:
properties:
ok:
const: false
error:
type: string
message:
type: string
required:
- ok
- error
- message
additionalProperties: false
description: A resource with the provided identifier was not found
'413':
description: Request body is too large (limit is 1MiB)
content:
application/json:
schema:
properties:
ok:
const: false
error:
type: string
message:
type: string
required:
- ok
- error
additionalProperties: false
description: Request body is too large (limit is 1MiB)
'422':
description: The json provided does not match the route's schema
content:
application/json:
schema:
properties:
ok:
const: false
error:
type: string
message:
type: string
required:
- ok
- error
- message
additionalProperties: false
description: The json provided does not match the route's schema
/v1/migrations/{migration_id}:
get:
summary: Get a migration
tags:
- Migrations
description: This route allows you to fetch a specific migration in your Port organization.
parameters:
- schema:
type: string
in: path
name: migration_id
required: true
description: The identifier of the migration you want to fetch.
security:
- bearer:
- read:blueprints
responses:
'401':
description: Default Response
content:
application/json:
schema:
properties:
ok:
const: false
error:
type: string
message:
type: string
required:
- ok
- error
additionalProperties: false
'404':
description: A resource with the provided identifier was not found
content:
application/json:
schema:
properties:
ok:
const: false
error:
type: string
message:
type: string
required:
- ok
- error
- message
additionalProperties: false
description: A resource with the provided identifier was not found
/v1/migrations/{migration_id}/cancel:
post:
summary: Cancel a migration
tags:
- Migrations
description: This route allows you to cancel a running migration in your Port organization.
requestBody:
content:
application/json:
schema:
type: object
properties:
reason:
type: string
description: The reason for cancelling the migration.
additionalProperties: false
parameters:
- schema:
type: string
in: path
name: migration_id
required: true
description: The identifier of the migration you want to cancel.
security:
- bearer: []
responses:
'401':
description: Default Response
content:
application/json:
schema:
properties:
ok:
const: false
error:
type: string
message:
type: string
required:
- ok
- error
additionalProperties: false
'404':
description: A resource with the provided identifier was not found
content:
application/json:
schema:
properties:
ok:
const: false
error:
type: string
message:
type: string
required:
- ok
- error
- message
additionalProperties: false
description: A resource with the provided identifier was not found
'413':
description: Request body is too large (limit is 1MiB)
content:
application/json:
schema:
properties:
ok:
const: false
error:
type: string
message:
type: string
required:
- ok
- error
additionalProperties: false
description: Request body is too large (limit is 1MiB)
'422':
description: The json provided does not match the route's schema
content:
application/json:
schema:
properties:
ok:
const: false
error:
type: string
message:
type: string
required:
- ok
- error
- message
additionalProperties: false
description: The json provided does not match the route's schema
components:
securitySchemes:
bearer:
type: apiKey
name: Authorization
in: header