openapi: 3.1.0
info:
title: Port Action Runs Blueprints API
version: '1.0'
tags:
- name: Blueprints
paths:
/v1/blueprints/{blueprint_identifier}/permissions:
get:
summary: Get a blueprint's permissions
tags:
- Blueprints
description: This route allows you to retrieve the permissions of a blueprint.
To learn more about permissions, check out the [documentation](https://docs.port.io/build-your-software-catalog/set-catalog-rbac/examples).
parameters:
- schema:
type: string
minLength: 1
in: path
name: blueprint_identifier
required: true
description: The identifier of the blueprint to operate on.
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
patch:
summary: Update a blueprint's permissions
tags:
- Blueprints
description: This route allows you to update the permissions of a blueprint.
To learn more about permissions, check out the [documentation](https://docs.port.io/build-your-software-catalog/set-catalog-rbac/examples).
requestBody:
content:
application/json:
schema:
type: object
properties:
entities:
type: object
properties:
read:
type: object
properties:
users:
type: array
items:
type: string
description: List of users (email addresses) that are allowed to perform the action.
teams:
type: array
items:
type: string
description: List of teams that are allowed to perform the action.
roles:
type: array
items:
type: string
description: List of roles that are allowed to perform the action.
ownedByTeam:
type: boolean
policy:
type: object
properties:
combinator:
enum:
- and
- or
description: The combinator to use for the rules.
rules:
type: array
items:
anyOf:
- type: object
title: Date Rule
properties:
property:
oneOf:
- type: string
- type: object
properties:
property:
type: string
context:
type: string
enum:
- user
- userTeams
required:
- property
- context
operator:
enum:
- between
- notBetween
- '='
value:
type: object
oneOf:
- type: object
title: Date Range
properties:
from:
type: string
format: date-time
to:
type: string
format: date-time
required:
- from
- to
- type: object
title: Date Preset
properties:
preset:
type: string
enum:
- today
- tomorrow
- yesterday
- lastDay
- lastWeek
- last2Weeks
- lastMonth
- last3Months
- last6Months
- last12Months
- last2Years
- last3Years
- nextDay
- nextWeek
- next2Weeks
- nextMonth
- next3Months
- next6Months
- next12Months
required:
- preset
- type: object
properties:
property:
type: string
context:
type: string
enum:
- user
- userTeams
required:
- property
- context
required:
- property
- operator
- value
additionalProperties: false
- type: object
title: Empty Rule
oneOf:
- type: object
title: Empty Rule
properties:
operator:
enum:
- isEmpty
- isNotEmpty
property:
type: string
required:
- operator
- property
additionalProperties: false
- type: object
title: Number Rule
properties:
property:
oneOf:
- type: string
- type: object
properties:
property:
type: string
context:
type: string
enum:
- user
- userTeams
required:
- property
- context
operator:
enum:
- '>'
- '>='
- <
- <=
value:
anyOf:
- type: number
title: number
- type: string
format: date-time
title: date-time
- type: object
properties:
property:
type: string
context:
type: string
enum:
- user
- userTeams
required:
- property
- context
required:
- property
- operator
- value
additionalProperties: false
- type: object
title: Expired Rule
oneOf:
- type: object
title: Expired Rule
properties:
operator:
enum:
- isExpired
- isNotExpired
property:
type: string
required:
- operator
- property
additionalProperties: false
- type: object
title: String Rule
oneOf:
- type: object
title: String Rule
properties:
property:
oneOf:
- type: string
- type: object
properties:
property:
type: string
context:
type: string
enum:
- user
- userTeams
required:
- property
- context
operator:
enum:
- '='
- '!='
- containsAny
- contains
- doesNotContains
- beginsWith
- doesNotBeginsWith
- endsWith
- doesNotEndsWith
- in
- notIn
value:
anyOf:
- type: 'null'
title: 'null'
- type: string
title: string
- type: number
title: number
- type: boolean
title: boolean
- type: string
format: date-time
title: date-time
- type: array
items:
type: string
title: array
- type: array
items:
type: number
title: array
- type: array
items:
type: boolean
title: array
- type: array
items:
type: string
format: date-time
title: array
- type: object
properties:
property:
type: string
context:
type: string
enum:
- user
- userTeams
required:
- property
- context
additionalProperties: false
required:
- property
- operator
- value
- type: object
title: Relation Rule
properties:
operator:
enum:
- relatedTo
blueprint:
type: string
value:
anyOf:
- type: string
title: string
- type: array
items:
type: string
title: array
direction:
enum:
- upstream
- downstream
required:
type: boolean
additionalProperties: false
required:
- operator
- value
- blueprint
- type: object
title: Property schema rule
properties:
propertySchema:
type: object
properties:
type:
type: string
format:
type: string
items:
type: object
properties:
type:
type: string
format:
type: string
required:
- type
required:
- type
additionalProperties: false
operator:
enum:
- '='
- '!='
- contains
value:
anyOf:
- type: 'null'
title: 'null'
- type: string
title: string
- type: number
title: number
- type: boolean
title: boolean
required:
- operator
- propertySchema
additionalProperties: false
- type: object
title: matchAny Rule
anyOf:
- type: object
properties:
property:
oneOf:
- type: object
properties:
path:
type: array
items:
anyOf:
- type: string
- type: object
properties:
relation:
type: string
maxHops:
type: number
minimum: 1
maximum: 15
fromBlueprint:
type: string
required:
- path
additionalProperties: false
- oneOf:
- type: string
- type: object
properties:
property:
type: string
context:
type: string
enum:
- user
- userTeams
required:
- property
- context
operator:
type: string
enum:
- matchAny
value:
anyOf:
- type: array
items:
type: string
- oneOf:
- type: string
- type: object
properties:
property:
type: string
context:
type: string
enum:
- user
- userTeams
required:
- property
- context
required:
- property
- operator
- value
additionalProperties: false
- $ref: '#/components/schemas/def-1'
required:
- combinator
- rules
additionalProperties: false
example:
combinator: and
rules:
- property: $blueprint
operator: '='
value: service
- combinator: or
rules:
- property: environment
operator: '='
value: production
- property: environment
operator: '='
value: staging
additionalProperties: false
register:
type: object
properties:
users:
type: array
items:
type: string
description: List of users (email addresses) that are allowed to perform the action.
teams:
type: array
items:
type: string
description: List of teams that are allowed to perform the action.
roles:
type: array
items:
type: string
description: List of roles that are allowed to perform the action.
ownedByTeam:
type: boolean
description: If `true`, permissions will be determined by team ownership, rather than by roles or direct assignment to users. Every user will be able to perform actions on entities belonging to their team/s.
additionalProperties: false
description: Defines who has permissions to create entities of this blueprint.
update:
type: object
properties:
users:
type: array
items:
type: string
description: List of users (email addresses) that are allowed to perform the action.
teams:
type: array
items:
type: string
description: List of teams that are allowed to perform the action.
roles:
type: array
items:
type: string
description: List of roles that are allowed to perform the action.
ownedByTeam:
type: boolean
description: If `true`, permissions will be determined by team ownership, rather than by roles or direct assignment to users. Every user will be able to perform actions on entities belonging to their team/s.
additionalProperties: false
description: Defines who has permissions to modify entities of this blueprint.
unregister:
type: object
properties:
users:
type: array
items:
type: string
description: List of users (email addresses) that are allowed to perform the action.
teams:
type: array
items:
type: string
description: List of teams that are allowed to perform the action.
roles:
type: array
items:
type: string
description: List of roles that are allowed to perform the action.
ownedByTeam:
type: boolean
description: If `true`, permissions will be determined by team ownership, rather than by roles or direct assignment to users. Every user will be able to perform actions on entities belonging to their team/s.
additionalProperties: false
description: Defines who has permissions to delete entities of this blueprint.
updateProperties:
type: object
description: Defines who has permissions to modify specific properties in entities of this blueprint.
additionalProperties:
type: object
properties:
users:
type: array
items:
type: string
description: List of users (email addresses) that are allowed to perform the action.
teams:
type: array
items:
type: string
description: List of teams that are allowed to perform the action.
roles:
type: array
items:
type: string
description: List of roles that are allowed to perform the action.
ownedByTeam:
type: boolean
description: If `true`, permissions will be determined by team ownership, rather than by roles or direct assignment to users. Every user will be able to modify properties in entities belonging to their team/s.
updateRelations:
type: object
description: Defines who has permissions to modify specific relations in entities of this blueprint.
additionalProperties:
type: object
properties:
users:
type: array
items:
type: string
description: List of users (email addresses) that are allowed to perform the action.
teams:
type: array
items:
type: string
description: List of teams that are allowed to perform the action.
roles:
type: array
items:
type: string
description: List of roles that are allowed to perform the action.
ownedByTeam:
type: boolean
description: If `true`, permissions will be determined by team ownership, rather than by roles or direct assignment to users. Every user will be able to modify relations in entities belonging to their team/s.
additionalProperties: false
additionalProperties: false
parameters:
- schema:
type: string
minLength: 1
in: path
name: blueprint_identifier
required: true
description: The identifier of the blueprint to operate on.
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/blueprints/{blueprint_identifier}/permissions/simulate:
post:
summary: Simulate permissions for a user
tags:
- Blueprints
description: This route allows you to simulate what permissions a specific user would have for entities in a blueprint.
Provide a userIdentifier and operation to see which entities are accessible, or additionally provide an entityIdentifier to see detailed permission checks for that specific entity.
To learn more, see the [permission simulator documentation](https://docs.port.io/build-your-software-catalog/set-catalog-rbac#permission-simulator).
requestBody:
content:
application/json:
schema:
type: object
properties:
userIdentifier:
type: string
description: The identifier of the user to simulate permissions for.
operation:
type: string
enum:
- read
- register
- update
- unregister
description: The operation to simulate permissions for.
entityIdentifier:
description: The identifier of the entity to simulate permissions for.
type: string
permissions:
description: The permissions to simulate.
type: object
properties:
entities:
type: object
properties:
read:
type: object
properties:
roles:
description: The roles to simulate permissions for.
type: array
items:
type: string
users:
description: The users to simulate permissions for.
type: array
items:
type: string
teams:
description: The teams to simulate permissions for.
type: array
items:
type: string
ownedByTeam:
description: The owned by team to simulate permissions for.
type: boolean
policy:
description: The policy to simulate permissions for.
type: object
properties:
combinator:
type: string
enum:
- and
- or
rules:
type: array
items: {}
required:
- combinator
- rules
additionalProperties: false
additionalProperties: false
description: The read permissions to simulate.
register:
type: object
properties:
roles:
description: The roles to simulate permissions for.
type: array
items:
type: string
users:
description: The users to simulate permissions for.
type: array
items:
type: string
teams:
description: The teams to simulate permissions for.
type: array
items:
type: string
ownedByTeam:
description: The owned by team to simulate permissions for.
type: boolean
additionalProperties: false
update:
type: object
properties:
roles:
description: The roles to simulate permissions for.
type: array
items:
type: string
users:
description: The users to simulate permissions for.
type: array
items:
type: string
teams:
description: The teams to simulate permissions for.
type: array
items:
type: string
ownedByTeam:
description: The owned by team to simulate permissions for.
type: boolean
additionalProperties: false
unregister:
type: object
properties:
roles:
description: The roles to simulate permissions for.
type: array
items:
type: string
users:
description: The users to simulate permissions for.
type: array
items:
type: string
teams:
description: The teams to simulate permissions for.
type: array
items:
type: string
ownedByTeam:
description: The owned by team to simulate permissions for.
type: boolean
additionalProperties: false
updateProperties:
type: object
propertyNames:
type: string
additionalProperties:
type: object
properties:
roles:
description: The roles to simulate permissions for.
type: array
items:
type: string
users:
description: The users to simulate permissions for.
type: array
items:
type: string
teams:
description: The teams to simulate permissions for.
type: array
items:
type: string
ownedByTeam:
description: The owned by team to simulate permissions for.
type: boolean
additionalProperties: false
updateRelations:
type: object
propertyNames:
type: string
additionalProperties:
type: object
properties:
roles:
description: The roles to simulate permissions for.
type: array
items:
type: string
users:
description: The users to simulate permissions for.
type: array
items:
type: string
teams:
description: The teams to simulate permissions for.
type: array
items:
type: string
ownedByTeam:
description: The owned by team to simulate permissions for.
type: boolean
additionalProperties: false
additionalProperties: false
description: The entities to simulate permissions for.
additionalProperties: false
required:
- userIdentifier
- operation
additionalProperties: false
required: true
parameters:
- schema:
type: string
minLength: 1
in: path
name: blueprint_identifier
required: true
description: The identifier of the blueprint to operate on.
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/blueprints:
get:
summary: Get all blueprints
tags:
- Blueprints
description: This route allows you to fetch all blueprints in your Port account.
To learn more about blueprints, check out the [documentation](https://docs.port.io/build-your-software-catalog/customize-integrations/configure-data-model/setup-blueprint/).
security:
- bearer:
- read:blueprints
responses:
'200':
description: Retrieved successfully.
content:
application/json:
schema:
description: Retrieved successfully.
type: object
properties:
ok:
enum:
- true
blueprints:
type: array
items:
type: object
properties:
identifier:
type: string
pattern: ^(?!\.{1,2}$)[\p{L}0-9@_.+:\\/-]+$
maxLength: 100
description: The identifier of the blueprint.
title:
type: string
maxLength: 100
minLength: 1
description: The title of the blueprint.
description:
type: string
maxLength: 200
description: The description of the blueprint.
icon:
type: string
description: The icon of the blueprint.
ownership:
anyOf:
- type: object
title: Inherited
description: Ownership of the blueprint's entities will be inherited from a different related blueprint with `Direct` ownership.
properties:
type:
type: string
enum:
- Inherited
path:
type: string
description: The `path` key is a dot-separated path of relation identifiers that lead to the desired blueprint.
title:
type: string
maxLength: 100
description: The title of the ownership property. The default value is `Owning teams`.
additionalProperties: false
required:
- type
- path
- type: object
title: Direct
description: Ownership of the blueprint's entities will be defined by a hidden **relation** to the `Team` blueprint.
properties:
type:
type: string
enum:
- Direct
title:
type: string
maxLength: 100
description: The title of the ownership property. The default value is `Owning teams`.
additionalProperties: false
required:
- type
schema:
type: object
description: The schema of the blueprint, see `properties` and `required` below for more information.
properties:
properties:
type: object
description: 'The properties of the blueprint.
Each property identifier can be `<= 100 characters` long, values must match the following pattern: `^[A-Za-z0-9@_=\\-]+$`.'
propertyNames:
pattern: ^[A-Za-z0-9@_=\\-]+$
maxLength: 100
additionalProperties:
type: object
properties:
title:
type: string
maxLength: 100
description: The title of the property.
description:
type: string
description: The description of the property.
icon:
type: string
description: The icon of the property.
type:
enum:
- string
- number
- boolean
- object
- array
description: The [type](https://docs.port.io/build-your-software-catalog/customize-integrations/configure-data-model/setup-blueprint/properties/#supported-properties) of the property.
format:
enum:
- date-time
- url
- email
- idn-email
- ipv4
- ipv6
- markdown
- yaml
- user
- blueprints
- team
- timer
- proto
- labeled-url
description: The type's [format](https://docs.port.io/build-your-software-catalog/customize-integrations/configure-data-model/setup-blueprint/properties/#supported-properties).
dateFormat:
enum:
- relative
- 12-hour
- 24-hour
- iso
description: The display format for date-time properties. Only applicable when format is 'date-time'. Defaults to 'relative'.
spec:
enum:
- open-api
- embedded-url
- async-api
description: The [spec](https://docs.port.io/build-your-software-catalog/customize-integrations/configure-data-model/setup-blueprint/properties/#supported-properties) of the property.
specAuthentication:
type: object
description: When using the `spec` property with `embedded-url`, the authentication spec of the property.
properties:
clientId:
type: string
authorizationUrl:
type: string
format: url
tokenUrl:
type: string
format: url
authorizationScope:
type: array
items:
type: string
default:
- openid
additionalProperties: false
required:
- clientId
- authorizationUrl
- tokenUrl
required:
- type
required:
type: array
items:
type: string
description: The required properties of the blueprint, these must be provided when creating an entity based on this blueprint. This is an array of the required properties' identifiers.
additionalProperties: false
required:
- properties
calculationProperties:
type: object
description: 'The [calculation properties](https://docs.port.io/build-your-software-catalog/customize-integrations/configure-data-model/setup-blueprint/properties/calculation-property/) of the blueprint.
Each calculation property identifier can be `<= 100 characters` long, values must match the following pattern: `^[A-Za-z0-9@_=\\-]+$`.'
default: {}
propertyNames:
pattern: ^[A-Za-z0-9@_=\\-]+$
maxLength: 100
additionalProperties:
type: object
additionalProperties: false
properties:
title:
type: string
maxLength: 100
description: The title of the property.
description:
type: string
description: The description of the property.
icon:
type: string
description: The icon of the property.
calculation:
type: string
description: The JQ expression that calculates the value of the property.
type:
enum:
- string
- number
- boolean
- object
- array
description: The type of the property.
format:
enum:
- date-time
- url
- email
- idn-email
- ipv4
- ipv6
- markdown
- yaml
- user
- team
- proto
- labeled-url
description: The format of the property.
dateFormat:
enum:
- relative
- 12-hour
- 24-hour
- iso
description: The display format for date-time calculation properties. Only applicable when format is 'date-time'. Defaults to 'relative'.
spec:
enum:
- open-api
- embedded-url
- async-api
description: The spec of the property.
specAuthentication:
type: object
description: When using the `spec` property with `embedded-url`, the authentication spec of the property.
properties:
clientId:
type: string
authorizationUrl:
type: string
format: url
tokenUrl:
type: string
format: url
authorizationScope:
type: array
items:
type: string
default:
- openid
additionalProperties: false
required:
- clientId
- authorizationUrl
- tokenUrl
colorized:
type: boolean
description: Whether the property is colorized.
colors:
type: object
description: When using the `colorized` property, the colors of the property.
additionalProperties:
enum:
- blue
- turquoise
- orange
- purple
- pink
- yellow
- green
- red
- gold
- silver
- paleBlue
- darkGray
- lightGray
- bronze
- lime
- olive
- brown
items:
type: object
properties:
type:
enum:
- string
- number
- boolean
- object
- array
description: The type of the item.
format:
description: The format of the item.
enum:
- date-time
- url
- email
- idn-format
- ipv4
- ipv6
- markdown
- yaml
- user
- team
- timer
- proto
- labeled-url
required:
- calculation
- type
mirrorProperties:
type: object
description: 'The [mirror properties](https://docs.port.io/build-your-software-catalog/customize-integrations/configure-data-model/setup-blueprint/properties/mirror-property/) of the blueprint.
Each mirror property identifier can be `<= 100 characters` long, values must match the following pattern: `^[A-Za-z0-9@_=\\-]+$`.'
propertyNames:
pattern: ^[A-Za-z0-9@_=\\-]+$
maxLength: 100
additionalProperties:
type: object
properties:
path:
type: string
pattern: ^(?:[A-Za-z0-9@_=\-$]+\.)+?(\w|\$|@|-)*?[^\.]+$
description: The path to the property in the related blueprint. This is a string of relation identifiers separated by dots, the last identifier is the property identifier.
title:
type: string
maxLength: 100
description: The title of the property.
additionalProperties: false
required:
- path
aggregationProperties:
type: object
description: 'The [aggregation properties](https://docs.port.io/build-your-software-catalog/customize-integrations/configure-data-model/setup-blueprint/properties/aggregation-property/) of the blueprint.
Each aggregation property identifier can be `<= 100 characters` long, values must match the following pattern: `^[A-Za-z0-9@_=\\-]+$`.'
default: {}
propertyNames:
pattern: ^[A-Za-z0-9@_=\\-]+$
maxLength: 100
additionalProperties:
type: object
properties:
title:
type: string
maxLength: 100
description: The title of the property.
description:
type: string
description: The description of the property.
icon:
type: string
description: The icon of the property.
type:
enum:
- number
default: number
description: The type of the property. This is the type of the aggregation result.
target:
type: string
description: The blueprint identifier to run the aggregation on.
calculationSpec:
type: object
oneOf:
- oneOf:
- type: object
properties:
func:
description: The function to use for the aggregation.
enum:
- count
calculationBy:
type: string
description: Whether to aggregate by entities or properties.
enum:
- entities
required:
- func
- calculationBy
additionalProperties: false
- type: object
properties:
func:
description: The function to use for the aggregation.
enum:
- average
measureTimeBy:
type: string
description: The time property to use for the aggregation.
averageOf:
type: string
enum:
- hour
- day
- week
- month
- total
calculationBy:
type: string
description: Whether to aggregate by entities or properties.
enum:
- entities
required:
- func
- calculationBy
- averageOf
additionalProperties: false
- oneOf:
- type: object
properties:
func:
type: string
enum:
- sum
- min
- max
- median
description: The function to use for the aggregation.
property:
type: string
description: The property to aggregate.
calculationBy:
type: string
description: Whether to aggregate by property or entities.
enum:
- property
additionalProperties: false
required:
- func
- property
- calculationBy
- type: object
properties:
func:
description: The function to use for the aggregation.
enum:
- average
measureTimeBy:
type: string
description: The time property to use for the aggregation.
averageOf:
type: string
enum:
- hour
- day
- week
- month
- total
property:
type: string
description: The property to aggregate.
calculationBy:
type: string
description: Whether to aggregate by property or entities.
enum:
- property
additionalProperties: false
required:
- func
- property
- calculationBy
- averageOf
description: The calculation spec of the property.
query:
$ref: '#/components/schemas/def-1'
pathFilter:
type: array
description: Optional filter to run the aggregation on entities that are connected through a specific path. When empty will use all the related entities from all possible paths
maxItems: 1
items:
type: object
properties:
path:
description: The path to the property in the related blueprint. This is a string of relation identifiers separated by dots.
type: array
items:
type: string
minItems: 1
fromBlueprint:
type: string
required:
- path
additionalProperties: false
additionalProperties: false
required:
- title
- target
- calculationSpec
relations:
type: object
description: 'The [relations](https://docs.port.io/build-your-software-catalog/customize-integrations/configure-data-model/relate-blueprints/) of the blueprint.
Each relation identifier can be `<= 100 characters` long, values must match the following pattern: `^[A-Za-z0-9@_=\\-]+$`.'
propertyNames:
pattern: ^[A-Za-z0-9@_=\\-]+$
maxLength: 100
additionalProperties:
type: object
properties:
title:
type: string
maxLength: 100
target:
type: string
required:
type: boolean
default: false
many:
type: boolean
default: false
description:
type: string
type:
type: string
additionalProperties: false
required:
- target
- required
- many
includeInGlobalSearch:
type:
- boolean
- 'null'
description: Overrides the org-level includeBlueprintsInGlobalSearchByDefault setting. When set, controls whether entities of this blueprint appear in global search results. Set to null to clear the override.
changelogDestination:
description: The destination of the blueprint's changelog.
oneOf:
- type: object
title: Webhook
description: The changelog will be sent to the specified webhook.
properties:
type:
type: string
enum:
- WEBHOOK
agent:
type: boolean
description: If `true`, Port's execution agent will be used to send the changelog.
url:
type: string
description: The URL of the webhook.
format: uri
required:
- url
- type
additionalProperties: false
- type: object
title: Kafka
description: The changelog will be sent to the Kafka topic connected to your Port account.
properties:
type:
type: string
enum:
- KAFKA
required:
- type
additionalProperties: false
updatedBy:
type: string
createdBy:
type: string
createdAt:
type: string
format: date-time
updatedAt:
type: string
format: date-time
required:
- identifier
- title
- schema
- createdBy
- updatedBy
- createdAt
- updatedAt
required:
- blueprints
- ok
additionalProperties: false
'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 blueprint
tags:
- Blueprints
description: This route allows you to create a new blueprint in your data model.
To learn more about blueprints, check out the [documentation](https://docs.port.io/build-your-software-catalog/customize-integrations/configure-data-model/setup-blueprint/).
requestBody:
content:
application/json:
schema:
type: object
properties:
identifier:
type: string
pattern: ^(?!\.{1,2}$)[\p{L}0-9@_.+:\\/-]+$
maxLength: 100
description: The identifier of the blueprint.
title:
type: string
maxLength: 100
minLength: 1
description: The title of the blueprint.
description:
type: string
maxLength: 200
description: The description of the blueprint.
icon:
type: string
description: The icon of the blueprint.
ownership:
anyOf:
- type: object
title: Inherited
description: Ownership of the blueprint's entities will be inherited from a different related blueprint with `Direct` ownership.
properties:
type:
type: string
enum:
- Inherited
path:
type: string
description: The `path` key is a dot-separated path of relation identifiers that lead to the desired blueprint.
title:
type: string
maxLength: 100
description: The title of the ownership property. The default value is `Owning teams`.
additionalProperties: false
required:
- type
- path
- type: object
title: Direct
description: Ownership of the blueprint's entities will be defined by a hidden **relation** to the `Team` blueprint.
properties:
type:
type: string
enum:
- Direct
title:
type: string
maxLength: 100
description: The title of the ownership property. The default value is `Owning teams`.
additionalProperties: false
required:
- type
schema:
type: object
description: The schema of the blueprint, see `properties` and `required` below for more information.
properties:
properties:
type: object
description: 'The properties of the blueprint.
Each property identifier can be `<= 100 characters` long, values must match the following pattern: `^[A-Za-z0-9@_=\\-]+$`.'
propertyNames:
pattern: ^[A-Za-z0-9@_=\\-]+$
maxLength: 100
additionalProperties:
type: object
properties:
title:
type: string
maxLength: 100
description: The title of the property.
description:
type: string
description: The description of the property.
icon:
type: string
description: The icon of the property.
type:
enum:
- string
- number
- boolean
- object
- array
description: The [type](https://docs.port.io/build-your-software-catalog/customize-integrations/configure-data-model/setup-blueprint/properties/#supported-properties) of the property.
format:
enum:
- date-time
- url
- email
- idn-email
- ipv4
- ipv6
- markdown
- yaml
- user
- blueprints
- team
- timer
- proto
- labeled-url
description: The type's [format](https://docs.port.io/build-your-software-catalog/customize-integrations/configure-data-model/setup-blueprint/properties/#supported-properties).
dateFormat:
enum:
- relative
- 12-hour
- 24-hour
- iso
description: The display format for date-time properties. Only applicable when format is 'date-time'. Defaults to 'relative'.
spec:
enum:
- open-api
- embedded-url
- async-api
description: The [spec](https://docs.port.io/build-your-software-catalog/customize-integrations/configure-data-model/setup-blueprint/properties/#supported-properties) of the property.
specAuthentication:
type: object
description: When using the `spec` property with `embedded-url`, the authentication spec of the property.
properties:
clientId:
type: string
authorizationUrl:
type: string
format: url
tokenUrl:
type: string
format: url
authorizationScope:
type: array
items:
type: string
default:
- openid
additionalProperties: false
required:
- clientId
- authorizationUrl
- tokenUrl
required:
- type
required:
type: array
items:
type: string
description: The required properties of the blueprint, these must be provided when creating an entity based on this blueprint. This is an array of the required properties' identifiers.
additionalProperties: false
required:
- properties
calculationProperties:
type: object
description: 'The [calculation properties](https://docs.port.io/build-your-software-catalog/customize-integrations/configure-data-model/setup-blueprint/properties/calculation-property/) of the blueprint.
Each calculation property identifier can be `<= 100 characters` long, values must match the following pattern: `^[A-Za-z0-9@_=\\-]+$`.'
default: {}
propertyNames:
pattern: ^[A-Za-z0-9@_=\\-]+$
maxLength: 100
additionalProperties:
type: object
additionalProperties: false
properties:
title:
type: string
maxLength: 100
description: The title of the property.
description:
type: string
description: The description of the property.
icon:
type: string
description: The icon of the property.
calculation:
type: string
description: The JQ expression that calculates the value of the property.
type:
enum:
- string
- number
- boolean
- object
- array
description: The type of the property.
format:
enum:
- date-time
- url
- email
- idn-email
- ipv4
- ipv6
- markdown
- yaml
- user
- team
- proto
- labeled-url
description: The format of the property.
dateFormat:
enum:
- relative
- 12-hour
- 24-hour
- iso
description: The display format for date-time calculation properties. Only applicable when format is 'date-time'. Defaults to 'relative'.
spec:
enum:
- open-api
- embedded-url
- async-api
description: The spec of the property.
specAuthentication:
type: object
description: When using the `spec` property with `embedded-url`, the authentication spec of the property.
properties:
clientId:
type: string
authorizationUrl:
type: string
format: url
tokenUrl:
type: string
format: url
authorizationScope:
type: array
items:
type: string
default:
- openid
additionalProperties: false
required:
- clientId
- authorizationUrl
- tokenUrl
colorized:
type: boolean
description: Whether the property is colorized.
colors:
type: object
description: When using the `colorized` property, the colors of the property.
additionalProperties:
enum:
- blue
- turquoise
- orange
- purple
- pink
- yellow
- green
- red
- gold
- silver
- paleBlue
- darkGray
- lightGray
- bronze
- lime
- olive
- brown
items:
type: object
properties:
type:
enum:
- string
- number
- boolean
- object
- array
description: The type of the item.
format:
description: The format of the item.
enum:
- date-time
- url
- email
- idn-format
- ipv4
- ipv6
- markdown
- yaml
- user
- team
- timer
- proto
- labeled-url
required:
- calculation
- type
mirrorProperties:
type: object
description: 'The [mirror properties](https://docs.port.io/build-your-software-catalog/customize-integrations/configure-data-model/setup-blueprint/properties/mirror-property/) of the blueprint.
Each mirror property identifier can be `<= 100 characters` long, values must match the following pattern: `^[A-Za-z0-9@_=\\-]+$`.'
propertyNames:
pattern: ^[A-Za-z0-9@_=\\-]+$
maxLength: 100
additionalProperties:
type: object
properties:
path:
type: string
pattern: ^(?:[A-Za-z0-9@_=\-$]+\.)+?(\w|\$|@|-)*?[^\.]+$
description: The path to the property in the related blueprint. This is a string of relation identifiers separated by dots, the last identifier is the property identifier.
title:
type: string
maxLength: 100
description: The title of the property.
additionalProperties: false
required:
- path
aggregationProperties:
type: object
description: 'The [aggregation properties](https://docs.port.io/build-your-software-catalog/customize-integrations/configure-data-model/setup-blueprint/properties/aggregation-property/) of the blueprint.
Each aggregation property identifier can be `<= 100 characters` long, values must match the following pattern: `^[A-Za-z0-9@_=\\-]+$`.'
default: {}
propertyNames:
pattern: ^[A-Za-z0-9@_=\\-]+$
maxLength: 100
additionalProperties:
type: object
properties:
title:
type: string
maxLength: 100
description: The title of the property.
description:
type: string
description: The description of the property.
icon:
type: string
description: The icon of the property.
type:
enum:
- number
default: number
description: The type of the property. This is the type of the aggregation result.
target:
type: string
description: The blueprint identifier to run the aggregation on.
calculationSpec:
type: object
oneOf:
- oneOf:
- type: object
properties:
func:
description: The function to use for the aggregation.
enum:
- count
calculationBy:
type: string
description: Whether to aggregate by entities or properties.
enum:
- entities
required:
- func
- calculationBy
additionalProperties: false
- type: object
properties:
func:
description: The function to use for the aggregation.
enum:
- average
measureTimeBy:
type: string
description: The time property to use for the aggregation.
averageOf:
type: string
enum:
- hour
- day
- week
- month
- total
calculationBy:
type: string
description: Whether to aggregate by entities or properties.
enum:
- entities
required:
- func
- calculationBy
- averageOf
additionalProperties: false
- oneOf:
- type: object
properties:
func:
type: string
enum:
- sum
- min
- max
- median
description: The function to use for the aggregation.
property:
type: string
description: The property to aggregate.
calculationBy:
type: string
description: Whether to aggregate by property or entities.
enum:
- property
additionalProperties: false
required:
- func
- property
- calculationBy
- type: object
properties:
func:
description: The function to use for the aggregation.
enum:
- average
measureTimeBy:
type: string
description: The time property to use for the aggregation.
averageOf:
type: string
enum:
- hour
- day
- week
- month
- total
property:
type: string
description: The property to aggregate.
calculationBy:
type: string
description: Whether to aggregate by property or entities.
enum:
- property
additionalProperties: false
required:
- func
- property
- calculationBy
- averageOf
description: The calculation spec of the property.
query:
$ref: '#/components/schemas/def-1'
pathFilter:
type: array
description: Optional filter to run the aggregation on entities that are connected through a specific path. When empty will use all the related entities from all possible paths
maxItems: 1
items:
type: object
properties:
path:
description: The path to the property in the related blueprint. This is a string of relation identifiers separated by dots.
type: array
items:
type: string
minItems: 1
fromBlueprint:
type: string
required:
- path
additionalProperties: false
additionalProperties: false
required:
- title
- target
- calculationSpec
relations:
type: object
description: 'The [relations](https://docs.port.io/build-your-software-catalog/customize-integrations/configure-data-model/relate-blueprints/) of the blueprint.
Each relation identifier can be `<= 100 characters` long, values must match the following pattern: `^[A-Za-z0-9@_=\\-]+$`.'
propertyNames:
pattern: ^[A-Za-z0-9@_=\\-]+$
maxLength: 100
additionalProperties:
type: object
properties:
title:
type: string
maxLength: 100
target:
type: string
required:
type: boolean
default: false
many:
type: boolean
default: false
description:
type: string
type:
type: string
additionalProperties: false
required:
- target
- required
- many
includeInGlobalSearch:
type:
- boolean
- 'null'
description: Overrides the org-level includeBlueprintsInGlobalSearchByDefault setting. When set, controls whether entities of this blueprint appear in global search results. Set to null to clear the override.
changelogDestination:
description: The destination of the blueprint's changelog.
oneOf:
- type: object
title: Webhook
description: The changelog will be sent to the specified webhook.
properties:
type:
type: string
enum:
- WEBHOOK
agent:
type: boolean
description: If `true`, Port's execution agent will be used to send the changelog.
url:
type: string
description: The URL of the webhook.
format: uri
required:
- url
- type
additionalProperties: false
- type: object
title: Kafka
description: The changelog will be sent to the Kafka topic connected to your Port account.
properties:
type:
type: string
enum:
- KAFKA
required:
- type
additionalProperties: false
additionalProperties: true
required:
- identifier
- title
- schema
required: true
parameters:
- schema:
type: boolean
default: true
in: query
name: create_catalog_page
required: false
description: If true, a catalog page will be created for this blueprint
security:
- bearer:
- create:blueprints
responses:
'201':
description: Created successfully.
content:
application/json:
schema:
description: Created successfully.
type: object
properties:
ok:
enum:
- true
blueprint:
type: object
properties:
identifier:
type: string
pattern: ^(?!\.{1,2}$)[\p{L}0-9@_.+:\\/-]+$
maxLength: 100
description: The identifier of the blueprint.
title:
type: string
maxLength: 100
minLength: 1
description: The title of the blueprint.
description:
type: string
maxLength: 200
description: The description of the blueprint.
icon:
type: string
description: The icon of the blueprint.
ownership:
anyOf:
- type: object
title: Inherited
description: Ownership of the blueprint's entities will be inherited from a different related blueprint with `Direct` ownership.
properties:
type:
type: string
enum:
- Inherited
path:
type: string
description: The `path` key is a dot-separated path of relation identifiers that lead to the desired blueprint.
title:
type: string
maxLength: 100
description: The title of the ownership property. The default value is `Owning teams`.
additionalProperties: false
required:
- type
- path
- type: object
title: Direct
description: Ownership of the blueprint's entities will be defined by a hidden **relation** to the `Team` blueprint.
properties:
type:
type: string
enum:
- Direct
title:
type: string
maxLength: 100
description: The title of the ownership property. The default value is `Owning teams`.
additionalProperties: false
required:
- type
schema:
type: object
description: The schema of the blueprint, see `properties` and `required` below for more information.
properties:
properties:
type: object
description: 'The properties of the blueprint.
Each property identifier can be `<= 100 characters` long, values must match the following pattern: `^[A-Za-z0-9@_=\\-]+$`.'
propertyNames:
pattern: ^[A-Za-z0-9@_=\\-]+$
maxLength: 100
additionalProperties:
type: object
properties:
title:
type: string
maxLength: 100
description: The title of the property.
description:
type: string
description: The description of the property.
icon:
type: string
description: The icon of the property.
type:
enum:
- string
- number
- boolean
- object
- array
description: The [type](https://docs.port.io/build-your-software-catalog/customize-integrations/configure-data-model/setup-blueprint/properties/#supported-properties) of the property.
format:
enum:
- date-time
- url
- email
- idn-email
- ipv4
- ipv6
- markdown
- yaml
- user
- blueprints
- team
- timer
- proto
- labeled-url
description: The type's [format](https://docs.port.io/build-your-software-catalog/customize-integrations/configure-data-model/setup-blueprint/properties/#supported-properties).
dateFormat:
enum:
- relative
- 12-hour
- 24-hour
- iso
description: The display format for date-time properties. Only applicable when format is 'date-time'. Defaults to 'relative'.
spec:
enum:
- open-api
- embedded-url
- async-api
description: The [spec](https://docs.port.io/build-your-software-catalog/customize-integrations/configure-data-model/setup-blueprint/properties/#supported-properties) of the property.
specAuthentication:
type: object
description: When using the `spec` property with `embedded-url`, the authentication spec of the property.
properties:
clientId:
type: string
authorizationUrl:
type: string
format: url
tokenUrl:
type: string
format: url
authorizationScope:
type: array
items:
type: string
default:
- openid
additionalProperties: false
required:
- clientId
- authorizationUrl
- tokenUrl
required:
- type
required:
type: array
items:
type: string
description: The required properties of the blueprint, these must be provided when creating an entity based on this blueprint. This is an array of the required properties' identifiers.
additionalProperties: false
required:
- properties
calculationProperties:
type: object
description: 'The [calculation properties](https://docs.port.io/build-your-software-catalog/customize-integrations/configure-data-model/setup-blueprint/properties/calculation-property/) of the blueprint.
Each calculation property identifier can be `<= 100 characters` long, values must match the following pattern: `^[A-Za-z0-9@_=\\-]+$`.'
default: {}
propertyNames:
pattern: ^[A-Za-z0-9@_=\\-]+$
maxLength: 100
additionalProperties:
type: object
additionalProperties: false
properties:
title:
type: string
maxLength: 100
description: The title of the property.
description:
type: string
description: The description of the property.
icon:
type: string
description: The icon of the property.
calculation:
type: string
description: The JQ expression that calculates the value of the property.
type:
enum:
- string
- number
- boolean
- object
- array
description: The type of the property.
format:
enum:
- date-time
- url
- email
- idn-email
- ipv4
- ipv6
- markdown
- yaml
- user
- team
- proto
- labeled-url
description: The format of the property.
dateFormat:
enum:
- relative
- 12-hour
- 24-hour
- iso
description: The display format for date-time calculation properties. Only applicable when format is 'date-time'. Defaults to 'relative'.
spec:
enum:
- open-api
- embedded-url
- async-api
description: The spec of the property.
specAuthentication:
type: object
description: When using the `spec` property with `embedded-url`, the authentication spec of the property.
properties:
clientId:
type: string
authorizationUrl:
type: string
format: url
tokenUrl:
type: string
format: url
authorizationScope:
type: array
items:
type: string
default:
- openid
additionalProperties: false
required:
- clientId
- authorizationUrl
- tokenUrl
colorized:
type: boolean
description: Whether the property is colorized.
colors:
type: object
description: When using the `colorized` property, the colors of the property.
additionalProperties:
enum:
- blue
- turquoise
- orange
- purple
- pink
- yellow
- green
- red
- gold
- silver
- paleBlue
- darkGray
- lightGray
- bronze
- lime
- olive
- brown
items:
type: object
properties:
type:
enum:
- string
- number
- boolean
- object
- array
description: The type of the item.
format:
description: The format of the item.
enum:
- date-time
- url
- email
- idn-format
- ipv4
- ipv6
- markdown
- yaml
- user
- team
- timer
- proto
- labeled-url
required:
- calculation
- type
mirrorProperties:
type: object
description: 'The [mirror properties](https://docs.port.io/build-your-software-catalog/customize-integrations/configure-data-model/setup-blueprint/properties/mirror-property/) of the blueprint.
Each mirror property identifier can be `<= 100 characters` long, values must match the following pattern: `^[A-Za-z0-9@_=\\-]+$`.'
propertyNames:
pattern: ^[A-Za-z0-9@_=\\-]+$
maxLength: 100
additionalProperties:
type: object
properties:
path:
type: string
pattern: ^(?:[A-Za-z0-9@_=\-$]+\.)+?(\w|\$|@|-)*?[^\.]+$
description: The path to the property in the related blueprint. This is a string of relation identifiers separated by dots, the last identifier is the property identifier.
title:
type: string
maxLength: 100
description: The title of the property.
additionalProperties: false
required:
- path
aggregationProperties:
type: object
description: 'The [aggregation properties](https://docs.port.io/build-your-software-catalog/customize-integrations/configure-data-model/setup-blueprint/properties/aggregation-property/) of the blueprint.
Each aggregation property identifier can be `<= 100 characters` long, values must match the following pattern: `^[A-Za-z0-9@_=\\-]+$`.'
default: {}
propertyNames:
pattern: ^[A-Za-z0-9@_=\\-]+$
maxLength: 100
additionalProperties:
type: object
properties:
title:
type: string
maxLength: 100
description: The title of the property.
description:
type: string
description: The description of the property.
icon:
type: string
description: The icon of the property.
type:
enum:
- number
default: number
description: The type of the property. This is the type of the aggregation result.
target:
type: string
description: The blueprint identifier to run the aggregation on.
calculationSpec:
type: object
oneOf:
- oneOf:
- type: object
properties:
func:
description: The function to use for the aggregation.
enum:
- count
calculationBy:
type: string
description: Whether to aggregate by entities or properties.
enum:
- entities
required:
- func
- calculationBy
additionalProperties: false
- type: object
properties:
func:
description: The function to use for the aggregation.
enum:
- average
measureTimeBy:
type: string
description: The time property to use for the aggregation.
averageOf:
type: string
enum:
- hour
- day
- week
- month
- total
calculationBy:
type: string
description: Whether to aggregate by entities or properties.
enum:
- entities
required:
- func
- calculationBy
- averageOf
additionalProperties: false
- oneOf:
- type: object
properties:
func:
type: string
enum:
- sum
- min
- max
- median
description: The function to use for the aggregation.
property:
type: string
description: The property to aggregate.
calculationBy:
type: string
description: Whether to aggregate by property or entities.
enum:
- property
additionalProperties: false
required:
- func
- property
- calculationBy
- type: object
properties:
func:
description: The function to use for the aggregation.
enum:
- average
measureTimeBy:
type: string
description: The time property to use for the aggregation.
averageOf:
type: string
enum:
- hour
- day
- week
- month
- total
property:
type: string
description: The property to aggregate.
calculationBy:
type: string
description: Whether to aggregate by property or entities.
enum:
- property
additionalProperties: false
required:
- func
- property
- calculationBy
- averageOf
description: The calculation spec of the property.
query:
$ref: '#/components/schemas/def-1'
pathFilter:
type: array
description: Optional filter to run the aggregation on entities that are connected through a specific path. When empty will use all the related entities from all possible paths
maxItems: 1
items:
type: object
properties:
path:
description: The path to the property in the related blueprint. This is a string of relation identifiers separated by dots.
type: array
items:
type: string
minItems: 1
fromBlueprint:
type: string
required:
- path
additionalProperties: false
additionalProperties: false
required:
- title
- target
- calculationSpec
relations:
type: object
description: 'The [relations](https://docs.port.io/build-your-software-catalog/customize-integrations/configure-data-model/relate-blueprints/) of the blueprint.
Each relation identifier can be `<= 100 characters` long, values must match the following pattern: `^[A-Za-z0-9@_=\\-]+$`.'
propertyNames:
pattern: ^[A-Za-z0-9@_=\\-]+$
maxLength: 100
additionalProperties:
type: object
properties:
title:
type: string
maxLength: 100
target:
type: string
required:
type: boolean
default: false
many:
type: boolean
default: false
description:
type: string
type:
type: string
additionalProperties: false
required:
- target
- required
- many
includeInGlobalSearch:
type:
- boolean
- 'null'
description: Overrides the org-level includeBlueprintsInGlobalSearchByDefault setting. When set, controls whether entities of this blueprint appear in global search results. Set to null to clear the override.
changelogDestination:
description: The destination of the blueprint's changelog.
oneOf:
- type: object
title: Webhook
description: The changelog will be sent to the specified webhook.
properties:
type:
type: string
enum:
- WEBHOOK
agent:
type: boolean
description: If `true`, Port's execution agent will be used to send the changelog.
url:
type: string
description: The URL of the webhook.
format: uri
required:
- url
- type
additionalProperties: false
- type: object
title: Kafka
description: The changelog will be sent to the Kafka topic connected to your Port account.
properties:
type:
type: string
enum:
- KAFKA
required:
- type
additionalProperties: false
updatedBy:
type: string
createdBy:
type: string
createdAt:
type: string
format: date-time
updatedAt:
type: string
format: date-time
required:
- identifier
- title
- schema
- createdBy
- updatedBy
- createdAt
- updatedAt
required:
- blueprint
- ok
additionalProperties: false
'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/blueprints/{identifier}:
get:
summary: Get a blueprint
tags:
- Blueprints
description: This route allows you to fetch a specific blueprint in your Port account.
To learn more about blueprints, check out the [documentation](https://docs.port.io/build-your-software-catalog/customize-integrations/configure-data-model/setup-blueprint/).
parameters:
- schema:
type: string
in: path
name: identifier
required: true
description: The unique identifier of the resource you want to operate on.
security:
- bearer:
- read:blueprints
responses:
'200':
description: Retrieved successfully.
content:
application/json:
schema:
description: Retrieved successfully.
type: object
properties:
ok:
enum:
- true
blueprint:
type: object
properties:
identifier:
type: string
pattern: ^(?!\.{1,2}$)[\p{L}0-9@_.+:\\/-]+$
maxLength: 100
description: The identifier of the blueprint.
title:
type: string
maxLength: 100
minLength: 1
description: The title of the blueprint.
description:
type: string
maxLength: 200
description: The description of the blueprint.
icon:
type: string
description: The icon of the blueprint.
ownership:
anyOf:
- type: object
title: Inherited
description: Ownership of the blueprint's entities will be inherited from a different related blueprint with `Direct` ownership.
properties:
type:
type: string
enum:
- Inherited
path:
type: string
description: The `path` key is a dot-separated path of relation identifiers that lead to the desired blueprint.
title:
type: string
maxLength: 100
description: The title of the ownership property. The default value is `Owning teams`.
additionalProperties: false
required:
- type
- path
- type: object
title: Direct
description: Ownership of the blueprint's entities will be defined by a hidden **relation** to the `Team` blueprint.
properties:
type:
type: string
enum:
- Direct
title:
type: string
maxLength: 100
description: The title of the ownership property. The default value is `Owning teams`.
additionalProperties: false
required:
- type
schema:
type: object
description: The schema of the blueprint, see `properties` and `required` below for more information.
properties:
properties:
type: object
description: 'The properties of the blueprint.
Each property identifier can be `<= 100 characters` long, values must match the following pattern: `^[A-Za-z0-9@_=\\-]+$`.'
propertyNames:
pattern: ^[A-Za-z0-9@_=\\-]+$
maxLength: 100
additionalProperties:
type: object
properties:
title:
type: string
maxLength: 100
description: The title of the property.
description:
type: string
description: The description of the property.
icon:
type: string
description: The icon of the property.
type:
enum:
- string
- number
- boolean
- object
- array
description: The [type](https://docs.port.io/build-your-software-catalog/customize-integrations/configure-data-model/setup-blueprint/properties/#supported-properties) of the property.
format:
enum:
- date-time
- url
- email
- idn-email
- ipv4
- ipv6
- markdown
- yaml
- user
- blueprints
- team
- timer
- proto
- labeled-url
description: The type's [format](https://docs.port.io/build-your-software-catalog/customize-integrations/configure-data-model/setup-blueprint/properties/#supported-properties).
dateFormat:
enum:
- relative
- 12-hour
- 24-hour
- iso
description: The display format for date-time properties. Only applicable when format is 'date-time'. Defaults to 'relative'.
spec:
enum:
- open-api
- embedded-url
- async-api
description: The [spec](https://docs.port.io/build-your-software-catalog/customize-integrations/configure-data-model/setup-blueprint/properties/#supported-properties) of the property.
specAuthentication:
type: object
description: When using the `spec` property with `embedded-url`, the authentication spec of the property.
properties:
clientId:
type: string
authorizationUrl:
type: string
format: url
tokenUrl:
type: string
format: url
authorizationScope:
type: array
items:
type: string
default:
- openid
additionalProperties: false
required:
- clientId
- authorizationUrl
- tokenUrl
required:
- type
required:
type: array
items:
type: string
description: The required properties of the blueprint, these must be provided when creating an entity based on this blueprint. This is an array of the required properties' identifiers.
additionalProperties: false
required:
- properties
calculationProperties:
type: object
description: 'The [calculation properties](https://docs.port.io/build-your-software-catalog/customize-integrations/configure-data-model/setup-blueprint/properties/calculation-property/) of the blueprint.
Each calculation property identifier can be `<= 100 characters` long, values must match the following pattern: `^[A-Za-z0-9@_=\\-]+$`.'
default: {}
propertyNames:
pattern: ^[A-Za-z0-9@_=\\-]+$
maxLength: 100
additionalProperties:
type: object
additionalProperties: false
properties:
title:
type: string
maxLength: 100
description: The title of the property.
description:
type: string
description: The description of the property.
icon:
type: string
description: The icon of the property.
calculation:
type: string
description: The JQ expression that calculates the value of the property.
type:
enum:
- string
- number
- boolean
- object
- array
description: The type of the property.
format:
enum:
- date-time
- url
- email
- idn-email
- ipv4
- ipv6
- markdown
- yaml
- user
- team
- proto
- labeled-url
description: The format of the property.
dateFormat:
enum:
- relative
- 12-hour
- 24-hour
- iso
description: The display format for date-time calculation properties. Only applicable when format is 'date-time'. Defaults to 'relative'.
spec:
enum:
- open-api
- embedded-url
- async-api
description: The spec of the property.
specAuthentication:
type: object
description: When using the `spec` property with `embedded-url`, the authentication spec of the property.
properties:
clientId:
type: string
authorizationUrl:
type: string
format: url
tokenUrl:
type: string
format: url
authorizationScope:
type: array
items:
type: string
default:
- openid
additionalProperties: false
required:
- clientId
- authorizationUrl
- tokenUrl
colorized:
type: boolean
description: Whether the property is colorized.
colors:
type: object
description: When using the `colorized` property, the colors of the property.
additionalProperties:
enum:
- blue
- turquoise
- orange
- purple
- pink
- yellow
- green
- red
- gold
- silver
- paleBlue
- darkGray
- lightGray
- bronze
- lime
- olive
- brown
items:
type: object
properties:
type:
enum:
- string
- number
- boolean
- object
- array
description: The type of the item.
format:
description: The format of the item.
enum:
- date-time
- url
- email
- idn-format
- ipv4
- ipv6
- markdown
- yaml
- user
- team
- timer
- proto
- labeled-url
required:
- calculation
- type
mirrorProperties:
type: object
description: 'The [mirror properties](https://docs.port.io/build-your-software-catalog/customize-integrations/configure-data-model/setup-blueprint/properties/mirror-property/) of the blueprint.
Each mirror property identifier can be `<= 100 characters` long, values must match the following pattern: `^[A-Za-z0-9@_=\\-]+$`.'
propertyNames:
pattern: ^[A-Za-z0-9@_=\\-]+$
maxLength: 100
additionalProperties:
type: object
properties:
path:
type: string
pattern: ^(?:[A-Za-z0-9@_=\-$]+\.)+?(\w|\$|@|-)*?[^\.]+$
description: The path to the property in the related blueprint. This is a string of relation identifiers separated by dots, the last identifier is the property identifier.
title:
type: string
maxLength: 100
description: The title of the property.
additionalProperties: false
required:
- path
aggregationProperties:
type: object
description: 'The [aggregation properties](https://docs.port.io/build-your-software-catalog/customize-integrations/configure-data-model/setup-blueprint/properties/aggregation-property/) of the blueprint.
Each aggregation property identifier can be `<= 100 characters` long, values must match the following pattern: `^[A-Za-z0-9@_=\\-]+$`.'
default: {}
propertyNames:
pattern: ^[A-Za-z0-9@_=\\-]+$
maxLength: 100
additionalProperties:
type: object
properties:
title:
type: string
maxLength: 100
description: The title of the property.
description:
type: string
description: The description of the property.
icon:
type: string
description: The icon of the property.
type:
enum:
- number
default: number
description: The type of the property. This is the type of the aggregation result.
target:
type: string
description: The blueprint identifier to run the aggregation on.
calculationSpec:
type: object
oneOf:
- oneOf:
- type: object
properties:
func:
description: The function to use for the aggregation.
enum:
- count
calculationBy:
type: string
description: Whether to aggregate by entities or properties.
enum:
- entities
required:
- func
- calculationBy
additionalProperties: false
- type: object
properties:
func:
description: The function to use for the aggregation.
enum:
- average
measureTimeBy:
type: string
description: The time property to use for the aggregation.
averageOf:
type: string
enum:
- hour
- day
- week
- month
- total
calculationBy:
type: string
description: Whether to aggregate by entities or properties.
enum:
- entities
required:
- func
- calculationBy
- averageOf
additionalProperties: false
- oneOf:
- type: object
properties:
func:
type: string
enum:
- sum
- min
- max
- median
description: The function to use for the aggregation.
property:
type: string
description: The property to aggregate.
calculationBy:
type: string
description: Whether to aggregate by property or entities.
enum:
- property
additionalProperties: false
required:
- func
- property
- calculationBy
- type: object
properties:
func:
description: The function to use for the aggregation.
enum:
- average
measureTimeBy:
type: string
description: The time property to use for the aggregation.
averageOf:
type: string
enum:
- hour
- day
- week
- month
- total
property:
type: string
description: The property to aggregate.
calculationBy:
type: string
description: Whether to aggregate by property or entities.
enum:
- property
additionalProperties: false
required:
- func
- property
- calculationBy
- averageOf
description: The calculation spec of the property.
query:
$ref: '#/components/schemas/def-1'
pathFilter:
type: array
description: Optional filter to run the aggregation on entities that are connected through a specific path. When empty will use all the related entities from all possible paths
maxItems: 1
items:
type: object
properties:
path:
description: The path to the property in the related blueprint. This is a string of relation identifiers separated by dots.
type: array
items:
type: string
minItems: 1
fromBlueprint:
type: string
required:
- path
additionalProperties: false
additionalProperties: false
required:
- title
- target
- calculationSpec
relations:
type: object
description: 'The [relations](https://docs.port.io/build-your-software-catalog/customize-integrations/configure-data-model/relate-blueprints/) of the blueprint.
Each relation identifier can be `<= 100 characters` long, values must match the following pattern: `^[A-Za-z0-9@_=\\-]+$`.'
propertyNames:
pattern: ^[A-Za-z0-9@_=\\-]+$
maxLength: 100
additionalProperties:
type: object
properties:
title:
type: string
maxLength: 100
target:
type: string
required:
type: boolean
default: false
many:
type: boolean
default: false
description:
type: string
type:
type: string
additionalProperties: false
required:
- target
- required
- many
includeInGlobalSearch:
type:
- boolean
- 'null'
description: Overrides the org-level includeBlueprintsInGlobalSearchByDefault setting. When set, controls whether entities of this blueprint appear in global search results. Set to null to clear the override.
changelogDestination:
description: The destination of the blueprint's changelog.
oneOf:
- type: object
title: Webhook
description: The changelog will be sent to the specified webhook.
properties:
type:
type: string
enum:
- WEBHOOK
agent:
type: boolean
description: If `true`, Port's execution agent will be used to send the changelog.
url:
type: string
description: The URL of the webhook.
format: uri
required:
- url
- type
additionalProperties: false
- type: object
title: Kafka
description: The changelog will be sent to the Kafka topic connected to your Port account.
properties:
type:
type: string
enum:
- KAFKA
required:
- type
additionalProperties: false
updatedBy:
type: string
createdBy:
type: string
createdAt:
type: string
format: date-time
updatedAt:
type: string
format: date-time
required:
- identifier
- title
- schema
- createdBy
- updatedBy
- createdAt
- updatedAt
required:
- blueprint
- ok
additionalProperties: false
'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
put:
summary: Change a blueprint
tags:
- Blueprints
description: This route allows you to change a specific blueprint in your Port account.
To learn more about blueprints, check out the [documentation](https://docs.port.io/build-your-software-catalog/customize-integrations/configure-data-model/setup-blueprint/).
**Modifying system blueprints**
System blueprints (such as `_team`, `_user`, etc.) are managed by Port and their schemas may change over time. It is recommended to use the [PATCH route](https://docs.port.io/api-reference/update-a-blueprint) to update specific fields instead of replacing the entire schema.
If you do use `PUT`, always [fetch the latest version](https://docs.port.io/api-reference/get-a-blueprint) first and apply your changes on top of it. Sending a stale or incomplete schema will result in a `422` error.
requestBody:
content:
application/json:
schema:
type: object
properties:
identifier:
type: string
pattern: ^(?!\.{1,2}$)[\p{L}0-9@_.+:\\/-]+$
maxLength: 100
description: The identifier of the blueprint.
title:
type: string
maxLength: 100
minLength: 1
description: The title of the blueprint.
description:
type: string
maxLength: 200
description: The description of the blueprint.
icon:
type: string
description: The icon of the blueprint.
ownership:
anyOf:
- type: object
title: Inherited
description: Ownership of the blueprint's entities will be inherited from a different related blueprint with `Direct` ownership.
properties:
type:
type: string
enum:
- Inherited
path:
type: string
description: The `path` key is a dot-separated path of relation identifiers that lead to the desired blueprint.
title:
type: string
maxLength: 100
description: The title of the ownership property. The default value is `Owning teams`.
additionalProperties: false
required:
- type
- path
- type: object
title: Direct
description: Ownership of the blueprint's entities will be defined by a hidden **relation** to the `Team` blueprint.
properties:
type:
type: string
enum:
- Direct
title:
type: string
maxLength: 100
description: The title of the ownership property. The default value is `Owning teams`.
additionalProperties: false
required:
- type
schema:
type: object
description: The schema of the blueprint, see `properties` and `required` below for more information.
properties:
properties:
type: object
description: 'The properties of the blueprint.
Each property identifier can be `<= 100 characters` long, values must match the following pattern: `^[A-Za-z0-9@_=\\-]+$`.'
propertyNames:
pattern: ^[A-Za-z0-9@_=\\-]+$
maxLength: 100
additionalProperties:
type: object
properties:
title:
type: string
maxLength: 100
description: The title of the property.
description:
type: string
description: The description of the property.
icon:
type: string
description: The icon of the property.
type:
enum:
- string
- number
- boolean
- object
- array
description: The [type](https://docs.port.io/build-your-software-catalog/customize-integrations/configure-data-model/setup-blueprint/properties/#supported-properties) of the property.
format:
enum:
- date-time
- url
- email
- idn-email
- ipv4
- ipv6
- markdown
- yaml
- user
- blueprints
- team
- timer
- proto
- labeled-url
description: The type's [format](https://docs.port.io/build-your-software-catalog/customize-integrations/configure-data-model/setup-blueprint/properties/#supported-properties).
dateFormat:
enum:
- relative
- 12-hour
- 24-hour
- iso
description: The display format for date-time properties. Only applicable when format is 'date-time'. Defaults to 'relative'.
spec:
enum:
- open-api
- embedded-url
- async-api
description: The [spec](https://docs.port.io/build-your-software-catalog/customize-integrations/configure-data-model/setup-blueprint/properties/#supported-properties) of the property.
specAuthentication:
type: object
description: When using the `spec` property with `embedded-url`, the authentication spec of the property.
properties:
clientId:
type: string
authorizationUrl:
type: string
format: url
tokenUrl:
type: string
format: url
authorizationScope:
type: array
items:
type: string
default:
- openid
additionalProperties: false
required:
- clientId
- authorizationUrl
- tokenUrl
required:
- type
required:
type: array
items:
type: string
description: The required properties of the blueprint, these must be provided when creating an entity based on this blueprint. This is an array of the required properties' identifiers.
additionalProperties: false
required:
- properties
calculationProperties:
type: object
description: 'The [calculation properties](https://docs.port.io/build-your-software-catalog/customize-integrations/configure-data-model/setup-blueprint/properties/calculation-property/) of the blueprint.
Each calculation property identifier can be `<= 100 characters` long, values must match the following pattern: `^[A-Za-z0-9@_=\\-]+$`.'
default: {}
propertyNames:
pattern: ^[A-Za-z0-9@_=\\-]+$
maxLength: 100
additionalProperties:
type: object
additionalProperties: false
properties:
title:
type: string
maxLength: 100
description: The title of the property.
description:
type: string
description: The description of the property.
icon:
type: string
description: The icon of the property.
calculation:
type: string
description: The JQ expression that calculates the value of the property.
type:
enum:
- string
- number
- boolean
- object
- array
description: The type of the property.
format:
enum:
- date-time
- url
- email
- idn-email
- ipv4
- ipv6
- markdown
- yaml
- user
- team
- proto
- labeled-url
description: The format of the property.
dateFormat:
enum:
- relative
- 12-hour
- 24-hour
- iso
description: The display format for date-time calculation properties. Only applicable when format is 'date-time'. Defaults to 'relative'.
spec:
enum:
- open-api
- embedded-url
- async-api
description: The spec of the property.
specAuthentication:
type: object
description: When using the `spec` property with `embedded-url`, the authentication spec of the property.
properties:
clientId:
type: string
authorizationUrl:
type: string
format: url
tokenUrl:
type: string
format: url
authorizationScope:
type: array
items:
type: string
default:
- openid
additionalProperties: false
required:
- clientId
- authorizationUrl
- tokenUrl
colorized:
type: boolean
description: Whether the property is colorized.
colors:
type: object
description: When using the `colorized` property, the colors of the property.
additionalProperties:
enum:
- blue
- turquoise
- orange
- purple
- pink
- yellow
- green
- red
- gold
- silver
- paleBlue
- darkGray
- lightGray
- bronze
- lime
- olive
- brown
items:
type: object
properties:
type:
enum:
- string
- number
- boolean
- object
- array
description: The type of the item.
format:
description: The format of the item.
enum:
- date-time
- url
- email
- idn-format
- ipv4
- ipv6
- markdown
- yaml
- user
- team
- timer
- proto
- labeled-url
required:
- calculation
- type
mirrorProperties:
type: object
description: 'The [mirror properties](https://docs.port.io/build-your-software-catalog/customize-integrations/configure-data-model/setup-blueprint/properties/mirror-property/) of the blueprint.
Each mirror property identifier can be `<= 100 characters` long, values must match the following pattern: `^[A-Za-z0-9@_=\\-]+$`.'
propertyNames:
pattern: ^[A-Za-z0-9@_=\\-]+$
maxLength: 100
additionalProperties:
type: object
properties:
path:
type: string
pattern: ^(?:[A-Za-z0-9@_=\-$]+\.)+?(\w|\$|@|-)*?[^\.]+$
description: The path to the property in the related blueprint. This is a string of relation identifiers separated by dots, the last identifier is the property identifier.
title:
type: string
maxLength: 100
description: The title of the property.
additionalProperties: false
required:
- path
aggregationProperties:
type: object
description: 'The [aggregation properties](https://docs.port.io/build-your-software-catalog/customize-integrations/configure-data-model/setup-blueprint/properties/aggregation-property/) of the blueprint.
Each aggregation property identifier can be `<= 100 characters` long, values must match the following pattern: `^[A-Za-z0-9@_=\\-]+$`.'
default: {}
propertyNames:
pattern: ^[A-Za-z0-9@_=\\-]+$
maxLength: 100
additionalProperties:
type: object
properties:
title:
type: string
maxLength: 100
description: The title of the property.
description:
type: string
description: The description of the property.
icon:
type: string
description: The icon of the property.
type:
enum:
- number
default: number
description: The type of the property. This is the type of the aggregation result.
target:
type: string
description: The blueprint identifier to run the aggregation on.
calculationSpec:
type: object
oneOf:
- oneOf:
- type: object
properties:
func:
description: The function to use for the aggregation.
enum:
- count
calculationBy:
type: string
description: Whether to aggregate by entities or properties.
enum:
- entities
required:
- func
- calculationBy
additionalProperties: false
- type: object
properties:
func:
description: The function to use for the aggregation.
enum:
- average
measureTimeBy:
type: string
description: The time property to use for the aggregation.
averageOf:
type: string
enum:
- hour
- day
- week
- month
- total
calculationBy:
type: string
description: Whether to aggregate by entities or properties.
enum:
- entities
required:
- func
- calculationBy
- averageOf
additionalProperties: false
- oneOf:
- type: object
properties:
func:
type: string
enum:
- sum
- min
- max
- median
description: The function to use for the aggregation.
property:
type: string
description: The property to aggregate.
calculationBy:
type: string
description: Whether to aggregate by property or entities.
enum:
- property
additionalProperties: false
required:
- func
- property
- calculationBy
- type: object
properties:
func:
description: The function to use for the aggregation.
enum:
- average
measureTimeBy:
type: string
description: The time property to use for the aggregation.
averageOf:
type: string
enum:
- hour
- day
- week
- month
- total
property:
type: string
description: The property to aggregate.
calculationBy:
type: string
description: Whether to aggregate by property or entities.
enum:
- property
additionalProperties: false
required:
- func
- property
- calculationBy
- averageOf
description: The calculation spec of the property.
query:
$ref: '#/components/schemas/def-1'
pathFilter:
type: array
description: Optional filter to run the aggregation on entities that are connected through a specific path. When empty will use all the related entities from all possible paths
maxItems: 1
items:
type: object
properties:
path:
description: The path to the property in the related blueprint. This is a string of relation identifiers separated by dots.
type: array
items:
type: string
minItems: 1
fromBlueprint:
type: string
required:
- path
additionalProperties: false
additionalProperties: false
required:
- title
- target
- calculationSpec
relations:
type: object
description: 'The [relations](https://docs.port.io/build-your-software-catalog/customize-integrations/configure-data-model/relate-blueprints/) of the blueprint.
Each relation identifier can be `<= 100 characters` long, values must match the following pattern: `^[A-Za-z0-9@_=\\-]+$`.'
propertyNames:
pattern: ^[A-Za-z0-9@_=\\-]+$
maxLength: 100
additionalProperties:
type: object
properties:
title:
type: string
maxLength: 100
target:
type: string
required:
type: boolean
default: false
many:
type: boolean
default: false
description:
type: string
type:
type: string
additionalProperties: false
required:
- target
- required
- many
includeInGlobalSearch:
type:
- boolean
- 'null'
description: Overrides the org-level includeBlueprintsInGlobalSearchByDefault setting. When set, controls whether entities of this blueprint appear in global search results. Set to null to clear the override.
changelogDestination:
description: The destination of the blueprint's changelog.
oneOf:
- type: object
title: Webhook
description: The changelog will be sent to the specified webhook.
properties:
type:
type: string
enum:
- WEBHOOK
agent:
type: boolean
description: If `true`, Port's execution agent will be used to send the changelog.
url:
type: string
description: The URL of the webhook.
format: uri
required:
- url
- type
additionalProperties: false
- type: object
title: Kafka
description: The changelog will be sent to the Kafka topic connected to your Port account.
properties:
type:
type: string
enum:
- KAFKA
required:
- type
additionalProperties: false
additionalProperties: true
required:
- title
- schema
required: true
parameters:
- schema:
type: string
in: path
name: identifier
required: true
description: The unique identifier of the resource you want to operate on.
security:
- bearer: []
responses:
'200':
description: Updated successfully.
content:
application/json:
schema:
description: Updated successfully.
type: object
properties:
ok:
enum:
- true
blueprint:
type: object
properties:
identifier:
type: string
pattern: ^(?!\.{1,2}$)[\p{L}0-9@_.+:\\/-]+$
maxLength: 100
description: The identifier of the blueprint.
title:
type: string
maxLength: 100
minLength: 1
description: The title of the blueprint.
description:
type: string
maxLength: 200
description: The description of the blueprint.
icon:
type: string
description: The icon of the blueprint.
ownership:
anyOf:
- type: object
title: Inherited
description: Ownership of the blueprint's entities will be inherited from a different related blueprint with `Direct` ownership.
properties:
type:
type: string
enum:
- Inherited
path:
type: string
description: The `path` key is a dot-separated path of relation identifiers that lead to the desired blueprint.
title:
type: string
maxLength: 100
description: The title of the ownership property. The default value is `Owning teams`.
additionalProperties: false
required:
- type
- path
- type: object
title: Direct
description: Ownership of the blueprint's entities will be defined by a hidden **relation** to the `Team` blueprint.
properties:
type:
type: string
enum:
- Direct
title:
type: string
maxLength: 100
description: The title of the ownership property. The default value is `Owning teams`.
additionalProperties: false
required:
- type
schema:
type: object
description: The schema of the blueprint, see `properties` and `required` below for more information.
properties:
properties:
type: object
description: 'The properties of the blueprint.
Each property identifier can be `<= 100 characters` long, values must match the following pattern: `^[A-Za-z0-9@_=\\-]+$`.'
propertyNames:
pattern: ^[A-Za-z0-9@_=\\-]+$
maxLength: 100
additionalProperties:
type: object
properties:
title:
type: string
maxLength: 100
description: The title of the property.
description:
type: string
description: The description of the property.
icon:
type: string
description: The icon of the property.
type:
enum:
- string
- number
- boolean
- object
- array
description: The [type](https://docs.port.io/build-your-software-catalog/customize-integrations/configure-data-model/setup-blueprint/properties/#supported-properties) of the property.
format:
enum:
- date-time
- url
- email
- idn-email
- ipv4
- ipv6
- markdown
- yaml
- user
- blueprints
- team
- timer
- proto
- labeled-url
description: The type's [format](https://docs.port.io/build-your-software-catalog/customize-integrations/configure-data-model/setup-blueprint/properties/#supported-properties).
dateFormat:
enum:
- relative
- 12-hour
- 24-hour
- iso
description: The display format for date-time properties. Only applicable when format is 'date-time'. Defaults to 'relative'.
spec:
enum:
- open-api
- embedded-url
- async-api
description: The [spec](https://docs.port.io/build-your-software-catalog/customize-integrations/configure-data-model/setup-blueprint/properties/#supported-properties) of the property.
specAuthentication:
type: object
description: When using the `spec` property with `embedded-url`, the authentication spec of the property.
properties:
clientId:
type: string
authorizationUrl:
type: string
format: url
tokenUrl:
type: string
format: url
authorizationScope:
type: array
items:
type: string
default:
- openid
additionalProperties: false
required:
- clientId
- authorizationUrl
- tokenUrl
required:
- type
required:
type: array
items:
type: string
description: The required properties of the blueprint, these must be provided when creating an entity based on this blueprint. This is an array of the required properties' identifiers.
additionalProperties: false
required:
- properties
calculationProperties:
type: object
description: 'The [calculation properties](https://docs.port.io/build-your-software-catalog/customize-integrations/configure-data-model/setup-blueprint/properties/calculation-property/) of the blueprint.
Each calculation property identifier can be `<= 100 characters` long, values must match the following pattern: `^[A-Za-z0-9@_=\\-]+$`.'
default: {}
propertyNames:
pattern: ^[A-Za-z0-9@_=\\-]+$
maxLength: 100
additionalProperties:
type: object
additionalProperties: false
properties:
title:
type: string
maxLength: 100
description: The title of the property.
description:
type: string
description: The description of the property.
icon:
type: string
description: The icon of the property.
calculation:
type: string
description: The JQ expression that calculates the value of the property.
type:
enum:
- string
- number
- boolean
- object
- array
description: The type of the property.
format:
enum:
- date-time
- url
- email
- idn-email
- ipv4
- ipv6
- markdown
- yaml
- user
- team
- proto
- labeled-url
description: The format of the property.
dateFormat:
enum:
- relative
- 12-hour
- 24-hour
- iso
description: The display format for date-time calculation properties. Only applicable when format is 'date-time'. Defaults to 'relative'.
spec:
enum:
- open-api
- embedded-url
- async-api
description: The spec of the property.
specAuthentication:
type: object
description: When using the `spec` property with `embedded-url`, the authentication spec of the property.
properties:
clientId:
type: string
authorizationUrl:
type: string
format: url
tokenUrl:
type: string
format: url
authorizationScope:
type: array
items:
type: string
default:
- openid
additionalProperties: false
required:
- clientId
- authorizationUrl
- tokenUrl
colorized:
type: boolean
description: Whether the property is colorized.
colors:
type: object
description: When using the `colorized` property, the colors of the property.
additionalProperties:
enum:
- blue
- turquoise
- orange
- purple
- pink
- yellow
- green
- red
- gold
- silver
- paleBlue
- darkGray
- lightGray
- bronze
- lime
- olive
- brown
items:
type: object
properties:
type:
enum:
- string
- number
- boolean
- object
- array
description: The type of the item.
format:
description: The format of the item.
enum:
- date-time
- url
- email
- idn-format
- ipv4
- ipv6
- markdown
- yaml
- user
- team
- timer
- proto
- labeled-url
required:
- calculation
- type
mirrorProperties:
type: object
description: 'The [mirror properties](https://docs.port.io/build-your-software-catalog/customize-integrations/configure-data-model/setup-blueprint/properties/mirror-property/) of the blueprint.
Each mirror property identifier can be `<= 100 characters` long, values must match the following pattern: `^[A-Za-z0-9@_=\\-]+$`.'
propertyNames:
pattern: ^[A-Za-z0-9@_=\\-]+$
maxLength: 100
additionalProperties:
type: object
properties:
path:
type: string
pattern: ^(?:[A-Za-z0-9@_=\-$]+\.)+?(\w|\$|@|-)*?[^\.]+$
description: The path to the property in the related blueprint. This is a string of relation identifiers separated by dots, the last identifier is the property identifier.
title:
type: string
maxLength: 100
description: The title of the property.
additionalProperties: false
required:
- path
aggregationProperties:
type: object
description: 'The [aggregation properties](https://docs.port.io/build-your-software-catalog/customize-integrations/configure-data-model/setup-blueprint/properties/aggregation-property/) of the blueprint.
Each aggregation property identifier can be `<= 100 characters` long, values must match the following pattern: `^[A-Za-z0-9@_=\\-]+$`.'
default: {}
propertyNames:
pattern: ^[A-Za-z0-9@_=\\-]+$
maxLength: 100
additionalProperties:
type: object
properties:
title:
type: string
maxLength: 100
description: The title of the property.
description:
type: string
description: The description of the property.
icon:
type: string
description: The icon of the property.
type:
enum:
- number
default: number
description: The type of the property. This is the type of the aggregation result.
target:
type: string
description: The blueprint identifier to run the aggregation on.
calculationSpec:
type: object
oneOf:
- oneOf:
- type: object
properties:
func:
description: The function to use for the aggregation.
enum:
- count
calculationBy:
type: string
description: Whether to aggregate by entities or properties.
enum:
- entities
required:
- func
- calculationBy
additionalProperties: false
- type: object
properties:
func:
description: The function to use for the aggregation.
enum:
- average
measureTimeBy:
type: string
description: The time property to use for the aggregation.
averageOf:
type: string
enum:
- hour
- day
- week
- month
- total
calculationBy:
type: string
description: Whether to aggregate by entities or properties.
enum:
- entities
required:
- func
- calculationBy
- averageOf
additionalProperties: false
- oneOf:
- type: object
properties:
func:
type: string
enum:
- sum
- min
- max
- median
description: The function to use for the aggregation.
property:
type: string
description: The property to aggregate.
calculationBy:
type: string
description: Whether to aggregate by property or entities.
enum:
- property
additionalProperties: false
required:
- func
- property
- calculationBy
- type: object
properties:
func:
description: The function to use for the aggregation.
enum:
- average
measureTimeBy:
type: string
description: The time property to use for the aggregation.
averageOf:
type: string
enum:
- hour
- day
- week
- month
- total
property:
type: string
description: The property to aggregate.
calculationBy:
type: string
description: Whether to aggregate by property or entities.
enum:
- property
additionalProperties: false
required:
- func
- property
- calculationBy
- averageOf
description: The calculation spec of the property.
query:
$ref: '#/components/schemas/def-1'
pathFilter:
type: array
description: Optional filter to run the aggregation on entities that are connected through a specific path. When empty will use all the related entities from all possible paths
maxItems: 1
items:
type: object
properties:
path:
description: The path to the property in the related blueprint. This is a string of relation identifiers separated by dots.
type: array
items:
type: string
minItems: 1
fromBlueprint:
type: string
required:
- path
additionalProperties: false
additionalProperties: false
required:
- title
- target
- calculationSpec
relations:
type: object
description: 'The [relations](https://docs.port.io/build-your-software-catalog/customize-integrations/configure-data-model/relate-blueprints/) of the blueprint.
Each relation identifier can be `<= 100 characters` long, values must match the following pattern: `^[A-Za-z0-9@_=\\-]+$`.'
propertyNames:
pattern: ^[A-Za-z0-9@_=\\-]+$
maxLength: 100
additionalProperties:
type: object
properties:
title:
type: string
maxLength: 100
target:
type: string
required:
type: boolean
default: false
many:
type: boolean
default: false
description:
type: string
type:
type: string
additionalProperties: false
required:
- target
- required
- many
includeInGlobalSearch:
type:
- boolean
- 'null'
description: Overrides the org-level includeBlueprintsInGlobalSearchByDefault setting. When set, controls whether entities of this blueprint appear in global search results. Set to null to clear the override.
changelogDestination:
description: The destination of the blueprint's changelog.
oneOf:
- type: object
title: Webhook
description: The changelog will be sent to the specified webhook.
properties:
type:
type: string
enum:
- WEBHOOK
agent:
type: boolean
description: If `true`, Port's execution agent will be used to send the changelog.
url:
type: string
description: The URL of the webhook.
format: uri
required:
- url
- type
additionalProperties: false
- type: object
title: Kafka
description: The changelog will be sent to the Kafka topic connected to your Port account.
properties:
type:
type: string
enum:
- KAFKA
required:
- type
additionalProperties: false
updatedBy:
type: string
createdBy:
type: string
createdAt:
type: string
format: date-time
updatedAt:
type: string
format: date-time
required:
- identifier
- title
- schema
- createdBy
- updatedBy
- createdAt
- updatedAt
required:
- blueprint
- ok
additionalProperties: false
'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
patch:
summary: Update a blueprint
tags:
- Blueprints
description: This route allows you to update a specific blueprint in your Port account.
To learn more about blueprints, check out the [documentation](https://docs.port.io/build-your-software-catalog/customize-integrations/configure-data-model/setup-blueprint/).
requestBody:
content:
application/json:
schema:
type: object
properties:
identifier:
type: string
pattern: ^(?!\.{1,2}$)[\p{L}0-9@_.+:\\/-]+$
maxLength: 100
description: The identifier of the blueprint.
title:
type: string
maxLength: 100
minLength: 1
description: The title of the blueprint.
description:
type: string
maxLength: 200
description: The description of the blueprint.
icon:
type: string
description: The icon of the blueprint.
ownership:
anyOf:
- type: object
title: Inherited
description: Ownership of the blueprint's entities will be inherited from a different related blueprint with `Direct` ownership.
properties:
type:
type: string
enum:
- Inherited
path:
type: string
description: The `path` key is a dot-separated path of relation identifiers that lead to the desired blueprint.
title:
type: string
maxLength: 100
description: The title of the ownership property. The default value is `Owning teams`.
additionalProperties: false
required:
- type
- path
- type: object
title: Direct
description: Ownership of the blueprint's entities will be defined by a hidden **relation** to the `Team` blueprint.
properties:
type:
type: string
enum:
- Direct
title:
type: string
maxLength: 100
description: The title of the ownership property. The default value is `Owning teams`.
additionalProperties: false
required:
- type
schema:
type: object
properties:
properties:
type: object
propertyNames:
pattern: ^[A-Za-z0-9@_=\\-]+$
maxLength: 100
additionalProperties:
type: object
properties:
title:
type: string
maxLength: 100
description: The title of the property.
description:
type: string
description: The description of the property.
icon:
type: string
description: The icon of the property.
type:
enum:
- string
- number
- boolean
- object
- array
description: The [type](https://docs.port.io/build-your-software-catalog/customize-integrations/configure-data-model/setup-blueprint/properties/#supported-properties) of the property.
format:
enum:
- date-time
- url
- email
- idn-email
- ipv4
- ipv6
- markdown
- yaml
- user
- blueprints
- team
- timer
- proto
- labeled-url
description: The type's [format](https://docs.port.io/build-your-software-catalog/customize-integrations/configure-data-model/setup-blueprint/properties/#supported-properties).
dateFormat:
enum:
- relative
- 12-hour
- 24-hour
- iso
description: The display format for date-time properties. Only applicable when format is 'date-time'. Defaults to 'relative'.
spec:
enum:
- open-api
- embedded-url
- async-api
description: The [spec](https://docs.port.io/build-your-software-catalog/customize-integrations/configure-data-model/setup-blueprint/properties/#supported-properties) of the property.
specAuthentication:
type: object
description: When using the `spec` property with `embedded-url`, the authentication spec of the property.
properties:
clientId:
type: string
authorizationUrl:
type: string
format: url
tokenUrl:
type: string
format: url
authorizationScope:
type: array
items:
type: string
default:
- openid
additionalProperties: false
required:
- clientId
- authorizationUrl
- tokenUrl
required:
type: array
items:
type: string
description: The required properties of the blueprint, these must be provided when creating an entity based on this blueprint. This is an array of the required properties' identifiers.
additionalProperties: false
required:
- properties
calculationProperties:
type: object
description: 'The [calculation properties](https://docs.port.io/build-your-software-catalog/customize-integrations/configure-data-model/setup-blueprint/properties/calculation-property/) of the blueprint.
Each calculation property identifier can be `<= 100 characters` long, values must match the following pattern: `^[A-Za-z0-9@_=\\-]+$`.'
default: {}
propertyNames:
pattern: ^[A-Za-z0-9@_=\\-]+$
maxLength: 100
additionalProperties:
type: object
additionalProperties: false
properties:
title:
type: string
maxLength: 100
description: The title of the property.
description:
type: string
description: The description of the property.
icon:
type: string
description: The icon of the property.
calculation:
type: string
description: The JQ expression that calculates the value of the property.
type:
enum:
- string
- number
- boolean
- object
- array
description: The type of the property.
format:
enum:
- date-time
- url
- email
- idn-email
- ipv4
- ipv6
- markdown
- yaml
- user
- team
- proto
- labeled-url
description: The format of the property.
dateFormat:
enum:
- relative
- 12-hour
- 24-hour
- iso
description: The display format for date-time calculation properties. Only applicable when format is 'date-time'. Defaults to 'relative'.
spec:
enum:
- open-api
- embedded-url
- async-api
description: The spec of the property.
specAuthentication:
type: object
description: When using the `spec` property with `embedded-url`, the authentication spec of the property.
properties:
clientId:
type: string
authorizationUrl:
type: string
format: url
tokenUrl:
type: string
format: url
authorizationScope:
type: array
items:
type: string
default:
- openid
additionalProperties: false
required:
- clientId
- authorizationUrl
- tokenUrl
colorized:
type: boolean
description: Whether the property is colorized.
colors:
type: object
description: When using the `colorized` property, the colors of the property.
additionalProperties:
enum:
- blue
- turquoise
- orange
- purple
- pink
- yellow
- green
- red
- gold
- silver
- paleBlue
- darkGray
- lightGray
- bronze
- lime
- olive
- brown
items:
type: object
properties:
type:
enum:
- string
- number
- boolean
- object
- array
description: The type of the item.
format:
description: The format of the item.
enum:
- date-time
- url
- email
- idn-format
- ipv4
- ipv6
- markdown
- yaml
- user
- team
- timer
- proto
- labeled-url
required:
- calculation
- type
mirrorProperties:
type: object
description: 'The [mirror properties](https://docs.port.io/build-your-software-catalog/customize-integrations/configure-data-model/setup-blueprint/properties/mirror-property/) of the blueprint.
Each mirror property identifier can be `<= 100 characters` long, values must match the following pattern: `^[A-Za-z0-9@_=\\-]+$`.'
propertyNames:
pattern: ^[A-Za-z0-9@_=\\-]+$
maxLength: 100
additionalProperties:
type: object
properties:
path:
type: string
pattern: ^(?:[A-Za-z0-9@_=\-$]+\.)+?(\w|\$|@|-)*?[^\.]+$
description: The path to the property in the related blueprint. This is a string of relation identifiers separated by dots, the last identifier is the property identifier.
title:
type: string
maxLength: 100
description: The title of the property.
additionalProperties: false
required:
- path
aggregationProperties:
type: object
description: 'The [aggregation properties](https://docs.port.io/build-your-software-catalog/customize-integrations/configure-data-model/setup-blueprint/properties/aggregation-property/) of the blueprint.
Each aggregation property identifier can be `<= 100 characters` long, values must match the following pattern: `^[A-Za-z0-9@_=\\-]+$`.'
default: {}
propertyNames:
pattern: ^[A-Za-z0-9@_=\\-]+$
maxLength: 100
additionalProperties:
type: object
properties:
title:
type: string
maxLength: 100
description: The title of the property.
description:
type: string
description: The description of the property.
icon:
type: string
description: The icon of the property.
type:
enum:
- number
default: number
description: The type of the property. This is the type of the aggregation result.
target:
type: string
description: The blueprint identifier to run the aggregation on.
calculationSpec:
type: object
oneOf:
- oneOf:
- type: object
properties:
func:
description: The function to use for the aggregation.
enum:
- count
calculationBy:
type: string
description: Whether to aggregate by entities or properties.
enum:
- entities
required:
- func
- calculationBy
additionalProperties: false
- type: object
properties:
func:
description: The function to use for the aggregation.
enum:
- average
measureTimeBy:
type: string
description: The time property to use for the aggregation.
averageOf:
type: string
enum:
- hour
- day
- week
- month
- total
calculationBy:
type: string
description: Whether to aggregate by entities or properties.
enum:
- entities
required:
- func
- calculationBy
- averageOf
additionalProperties: false
- oneOf:
- type: object
properties:
func:
type: string
enum:
- sum
- min
- max
- median
description: The function to use for the aggregation.
property:
type: string
description: The property to aggregate.
calculationBy:
type: string
description: Whether to aggregate by property or entities.
enum:
- property
additionalProperties: false
required:
- func
- property
- calculationBy
- type: object
properties:
func:
description: The function to use for the aggregation.
enum:
- average
measureTimeBy:
type: string
description: The time property to use for the aggregation.
averageOf:
type: string
enum:
- hour
- day
- week
- month
- total
property:
type: string
description: The property to aggregate.
calculationBy:
type: string
description: Whether to aggregate by property or entities.
enum:
- property
additionalProperties: false
required:
- func
- property
- calculationBy
- averageOf
description: The calculation spec of the property.
query:
$ref: '#/components/schemas/def-1'
pathFilter:
type: array
description: Optional filter to run the aggregation on entities that are connected through a specific path. When empty will use all the related entities from all possible paths
maxItems: 1
items:
type: object
properties:
path:
description: The path to the property in the related blueprint. This is a string of relation identifiers separated by dots.
type: array
items:
type: string
minItems: 1
fromBlueprint:
type: string
required:
- path
additionalProperties: false
additionalProperties: false
required:
- title
- target
- calculationSpec
relations:
type: object
description: 'The [relations](https://docs.port.io/build-your-software-catalog/customize-integrations/configure-data-model/relate-blueprints/) of the blueprint.
Each relation identifier can be `<= 100 characters` long, values must match the following pattern: `^[A-Za-z0-9@_=\\-]+$`.'
propertyNames:
pattern: ^[A-Za-z0-9@_=\\-]+$
maxLength: 100
additionalProperties:
type: object
properties:
title:
type: string
maxLength: 100
target:
type: string
required:
type: boolean
default: false
many:
type: boolean
default: false
description:
type: string
type:
type: string
additionalProperties: false
required:
- target
- required
- many
includeInGlobalSearch:
type:
- boolean
- 'null'
description: Overrides the org-level includeBlueprintsInGlobalSearchByDefault setting. When set, controls whether entities of this blueprint appear in global search results. Set to null to clear the override.
changelogDestination:
description: The destination of the blueprint's changelog.
oneOf:
- type: object
title: Webhook
description: The changelog will be sent to the specified webhook.
properties:
type:
type: string
enum:
- WEBHOOK
agent:
type: boolean
description: If `true`, Port's execution agent will be used to send the changelog.
url:
type: string
description: The URL of the webhook.
format: uri
required:
- url
- type
additionalProperties: false
- type: object
title: Kafka
description: The changelog will be sent to the Kafka topic connected to your Port account.
properties:
type:
type: string
enum:
- KAFKA
required:
- type
additionalProperties: false
additionalProperties: true
parameters:
- schema:
type: string
in: path
name: identifier
required: true
description: The unique identifier of the resource you want to operate on.
security:
- bearer: []
responses:
'200':
description: Updated successfully.
content:
application/json:
schema:
description: Updated successfully.
type: object
properties:
ok:
enum:
- true
blueprint:
type: object
properties:
identifier:
type: string
pattern: ^(?!\.{1,2}$)[\p{L}0-9@_.+:\\/-]+$
maxLength: 100
description: The identifier of the blueprint.
title:
type: string
maxLength: 100
minLength: 1
description: The title of the blueprint.
description:
type: string
maxLength: 200
description: The description of the blueprint.
icon:
type: string
description: The icon of the blueprint.
ownership:
anyOf:
- type: object
title: Inherited
description: Ownership of the blueprint's entities will be inherited from a different related blueprint with `Direct` ownership.
properties:
type:
type: string
enum:
- Inherited
path:
type: string
description: The `path` key is a dot-separated path of relation identifiers that lead to the desired blueprint.
title:
type: string
maxLength: 100
description: The title of the ownership property. The default value is `Owning teams`.
additionalProperties: false
required:
- type
- path
- type: object
title: Direct
description: Ownership of the blueprint's entities will be defined by a hidden **relation** to the `Team` blueprint.
properties:
type:
type: string
enum:
- Direct
title:
type: string
maxLength: 100
description: The title of the ownership property. The default value is `Owning teams`.
additionalProperties: false
required:
- type
schema:
type: object
description: The schema of the blueprint, see `properties` and `required` below for more information.
properties:
properties:
type: object
description: 'The properties of the blueprint.
Each property identifier can be `<= 100 characters` long, values must match the following pattern: `^[A-Za-z0-9@_=\\-]+$`.'
propertyNames:
pattern: ^[A-Za-z0-9@_=\\-]+$
maxLength: 100
additionalProperties:
type: object
properties:
title:
type: string
maxLength: 100
description: The title of the property.
description:
type: string
description: The description of the property.
icon:
type: string
description: The icon of the property.
type:
enum:
- string
- number
- boolean
- object
- array
description: The [type](https://docs.port.io/build-your-software-catalog/customize-integrations/configure-data-model/setup-blueprint/properties/#supported-properties) of the property.
format:
enum:
- date-time
- url
- email
- idn-email
- ipv4
- ipv6
- markdown
- yaml
- user
- blueprints
- team
- timer
- proto
- labeled-url
description: The type's [format](https://docs.port.io/build-your-software-catalog/customize-integrations/configure-data-model/setup-blueprint/properties/#supported-properties).
dateFormat:
enum:
- relative
- 12-hour
- 24-hour
- iso
description: The display format for date-time properties. Only applicable when format is 'date-time'. Defaults to 'relative'.
spec:
enum:
- open-api
- embedded-url
- async-api
description: The [spec](https://docs.port.io/build-your-software-catalog/customize-integrations/configure-data-model/setup-blueprint/properties/#supported-properties) of the property.
specAuthentication:
type: object
description: When using the `spec` property with `embedded-url`, the authentication spec of the property.
properties:
clientId:
type: string
authorizationUrl:
type: string
format: url
tokenUrl:
type: string
format: url
authorizationScope:
type: array
items:
type: string
default:
- openid
additionalProperties: false
required:
- clientId
- authorizationUrl
- tokenUrl
required:
- type
required:
type: array
items:
type: string
description: The required properties of the blueprint, these must be provided when creating an entity based on this blueprint. This is an array of the required properties' identifiers.
additionalProperties: false
required:
- properties
calculationProperties:
type: object
description: 'The [calculation properties](https://docs.port.io/build-your-software-catalog/customize-integrations/configure-data-model/setup-blueprint/properties/calculation-property/) of the blueprint.
Each calculation property identifier can be `<= 100 characters` long, values must match the following pattern: `^[A-Za-z0-9@_=\\-]+$`.'
default: {}
propertyNames:
pattern: ^[A-Za-z0-9@_=\\-]+$
maxLength: 100
additionalProperties:
type: object
additionalProperties: false
properties:
title:
type: string
maxLength: 100
description: The title of the property.
description:
type: string
description: The description of the property.
icon:
type: string
description: The icon of the property.
calculation:
type: string
description: The JQ expression that calculates the value of the property.
type:
enum:
- string
- number
- boolean
- object
- array
description: The type of the property.
format:
enum:
- date-time
- url
- email
- idn-email
- ipv4
- ipv6
- markdown
- yaml
- user
- team
- proto
- labeled-url
description: The format of the property.
dateFormat:
enum:
- relative
- 12-hour
- 24-hour
- iso
description: The display format for date-time calculation properties. Only applicable when format is 'date-time'. Defaults to 'relative'.
spec:
enum:
- open-api
- embedded-url
- async-api
description: The spec of the property.
specAuthentication:
type: object
description: When using the `spec` property with `embedded-url`, the authentication spec of the property.
properties:
clientId:
type: string
authorizationUrl:
type: string
format: url
tokenUrl:
type: string
format: url
authorizationScope:
type: array
items:
type: string
default:
- openid
additionalProperties: false
required:
- clientId
- authorizationUrl
- tokenUrl
colorized:
type: boolean
description: Whether the property is colorized.
colors:
type: object
description: When using the `colorized` property, the colors of the property.
additionalProperties:
enum:
- blue
- turquoise
- orange
- purple
- pink
- yellow
- green
- red
- gold
- silver
- paleBlue
- darkGray
- lightGray
- bronze
- lime
- olive
- brown
items:
type: object
properties:
type:
enum:
- string
- number
- boolean
- object
- array
description: The type of the item.
format:
description: The format of the item.
enum:
- date-time
- url
- email
- idn-format
- ipv4
- ipv6
- markdown
- yaml
- user
- team
- timer
- proto
- labeled-url
required:
- calculation
- type
mirrorProperties:
type: object
description: 'The [mirror properties](https://docs.port.io/build-your-software-catalog/customize-integrations/configure-data-model/setup-blueprint/properties/mirror-property/) of the blueprint.
Each mirror property identifier can be `<= 100 characters` long, values must match the following pattern: `^[A-Za-z0-9@_=\\-]+$`.'
propertyNames:
pattern: ^[A-Za-z0-9@_=\\-]+$
maxLength: 100
additionalProperties:
type: object
properties:
path:
type: string
pattern: ^(?:[A-Za-z0-9@_=\-$]+\.)+?(\w|\$|@|-)*?[^\.]+$
description: The path to the property in the related blueprint. This is a string of relation identifiers separated by dots, the last identifier is the property identifier.
title:
type: string
maxLength: 100
description: The title of the property.
additionalProperties: false
required:
- path
aggregationProperties:
type: object
description: 'The [aggregation properties](https://docs.port.io/build-your-software-catalog/customize-integrations/configure-data-model/setup-blueprint/properties/aggregation-property/) of the blueprint.
Each aggregation property identifier can be `<= 100 characters` long, values must match the following pattern: `^[A-Za-z0-9@_=\\-]+$`.'
default: {}
propertyNames:
pattern: ^[A-Za-z0-9@_=\\-]+$
maxLength: 100
additionalProperties:
type: object
properties:
title:
type: string
maxLength: 100
description: The title of the property.
description:
type: string
description: The description of the property.
icon:
type: string
description: The icon of the property.
type:
enum:
- number
default: number
description: The type of the property. This is the type of the aggregation result.
target:
type: string
description: The blueprint identifier to run the aggregation on.
calculationSpec:
type: object
oneOf:
- oneOf:
- type: object
properties:
func:
description: The function to use for the aggregation.
enum:
- count
calculationBy:
type: string
description: Whether to aggregate by entities or properties.
enum:
- entities
required:
- func
- calculationBy
additionalProperties: false
- type: object
properties:
func:
description: The function to use for the aggregation.
enum:
- average
measureTimeBy:
type: string
description: The time property to use for the aggregation.
averageOf:
type: string
enum:
- hour
- day
- week
- month
- total
calculationBy:
type: string
description: Whether to aggregate by entities or properties.
enum:
- entities
required:
- func
- calculationBy
- averageOf
additionalProperties: false
- oneOf:
- type: object
properties:
func:
type: string
enum:
- sum
- min
- max
- median
description: The function to use for the aggregation.
property:
type: string
description: The property to aggregate.
calculationBy:
type: string
description: Whether to aggregate by property or entities.
enum:
- property
additionalProperties: false
required:
- func
- property
- calculationBy
- type: object
properties:
func:
description: The function to use for the aggregation.
enum:
- average
measureTimeBy:
type: string
description: The time property to use for the aggregation.
averageOf:
type: string
enum:
- hour
- day
- week
- month
- total
property:
type: string
description: The property to aggregate.
calculationBy:
type: string
description: Whether to aggregate by property or entities.
enum:
- property
additionalProperties: false
required:
- func
- property
- calculationBy
- averageOf
description: The calculation spec of the property.
query:
$ref: '#/components/schemas/def-1'
pathFilter:
type: array
description: Optional filter to run the aggregation on entities that are connected through a specific path. When empty will use all the related entities from all possible paths
maxItems: 1
items:
type: object
properties:
path:
description: The path to the property in the related blueprint. This is a string of relation identifiers separated by dots.
type: array
items:
type: string
minItems: 1
fromBlueprint:
type: string
required:
- path
additionalProperties: false
additionalProperties: false
required:
- title
- target
- calculationSpec
relations:
type: object
description: 'The [relations](https://docs.port.io/build-your-software-catalog/customize-integrations/configure-data-model/relate-blueprints/) of the blueprint.
Each relation identifier can be `<= 100 characters` long, values must match the following pattern: `^[A-Za-z0-9@_=\\-]+$`.'
propertyNames:
pattern: ^[A-Za-z0-9@_=\\-]+$
maxLength: 100
additionalProperties:
type: object
properties:
title:
type: string
maxLength: 100
target:
type: string
required:
type: boolean
default: false
many:
type: boolean
default: false
description:
type: string
type:
type: string
additionalProperties: false
required:
- target
- required
- many
includeInGlobalSearch:
type:
- boolean
- 'null'
description: Overrides the org-level includeBlueprintsInGlobalSearchByDefault setting. When set, controls whether entities of this blueprint appear in global search results. Set to null to clear the override.
changelogDestination:
description: The destination of the blueprint's changelog.
oneOf:
- type: object
title: Webhook
description: The changelog will be sent to the specified webhook.
properties:
type:
type: string
enum:
- WEBHOOK
agent:
type: boolean
description: If `true`, Port's execution agent will be used to send the changelog.
url:
type: string
description: The URL of the webhook.
format: uri
required:
- url
- type
additionalProperties: false
- type: object
title: Kafka
description: The changelog will be sent to the Kafka topic connected to your Port account.
properties:
type:
type: string
enum:
- KAFKA
required:
- type
additionalProperties: false
updatedBy:
type: string
createdBy:
type: string
createdAt:
type: string
format: date-time
updatedAt:
type: string
format: date-time
required:
- identifier
- title
- schema
- createdBy
- updatedBy
- createdAt
- updatedAt
required:
- blueprint
- ok
additionalProperties: false
'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
delete:
summary: Delete a blueprint
tags:
- Blueprints
description: This route allows you to delete a specific blueprint in your Port account.
To learn more about blueprints, check out the [documentation](https://docs.port.io/build-your-software-catalog/customize-integrations/configure-data-model/setup-blueprint/).
**Note:** Before deleting a blueprint, make sure all associated entities have been deleted. Entity deletion may take a few seconds to complete, so plan accordingly when using the [**Delete an entity**](https://docs.port.io/api-reference/delete-an-entity) endpoint before this endpoint in scripts or automations.
parameters:
- schema:
type: boolean
in: query
name: delete_actions
required: false
description: If `true`, all self-service actions associated with this blueprint will be deleted as well.
- schema:
type: string
in: path
name: identifier
required: true
description: The unique identifier of the resource you want to operate on.
security:
- bearer: []
responses:
'200':
description: Deleted successfully.
content:
application/json:
schema:
description: Deleted successfully.
properties:
ok:
enum:
- true
required:
- ok
additionalProperties: false
'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/blueprints/{blueprint_identifier}/properties/{property_identifier}/rename:
patch:
summary: Rename a property in a blueprint
tags:
- Blueprints
description: This route allows you to change the identifier of a property in a specific blueprint in your Port account.
To learn more about blueprints, check out the [documentation](https://docs.port.io/build-your-software-catalog/customize-integrations/configure-data-model/setup-blueprint/).
requestBody:
content:
application/json:
schema:
type: object
properties:
newPropertyName:
type: string
pattern: ^[A-Za-z0-9@_=\\-]+$
maxLength: 100
description: The new identifier of the property.
additionalProperties: false
parameters:
- schema:
type: string
in: path
name: blueprint_identifier
required: true
description: The identifier of the blueprint you want to change.
- schema:
type: string
in: path
name: property_identifier
required: true
description: The identifier of the property you want to rename.
security:
- bearer: []
responses:
'200':
description: Updated successfully.
content:
application/json:
schema:
description: Updated successfully.
type: object
properties:
ok:
enum:
- true
blueprint:
type: object
properties:
identifier:
type: string
pattern: ^(?!\.{1,2}$)[\p{L}0-9@_.+:\\/-]+$
maxLength: 100
description: The identifier of the blueprint.
title:
type: string
maxLength: 100
minLength: 1
description: The title of the blueprint.
description:
type: string
maxLength: 200
description: The description of the blueprint.
icon:
type: string
description: The icon of the blueprint.
ownership:
anyOf:
- type: object
title: Inherited
description: Ownership of the blueprint's entities will be inherited from a different related blueprint with `Direct` ownership.
properties:
type:
type: string
enum:
- Inherited
path:
type: string
description: The `path` key is a dot-separated path of relation identifiers that lead to the desired blueprint.
title:
type: string
maxLength: 100
description: The title of the ownership property. The default value is `Owning teams`.
additionalProperties: false
required:
- type
- path
- type: object
title: Direct
description: Ownership of the blueprint's entities will be defined by a hidden **relation** to the `Team` blueprint.
properties:
type:
type: string
enum:
- Direct
title:
type: string
maxLength: 100
description: The title of the ownership property. The default value is `Owning teams`.
additionalProperties: false
required:
- type
schema:
type: object
description: The schema of the blueprint, see `properties` and `required` below for more information.
properties:
properties:
type: object
description: 'The properties of the blueprint.
Each property identifier can be `<= 100 characters` long, values must match the following pattern: `^[A-Za-z0-9@_=\\-]+$`.'
propertyNames:
pattern: ^[A-Za-z0-9@_=\\-]+$
maxLength: 100
additionalProperties:
type: object
properties:
title:
type: string
maxLength: 100
description: The title of the property.
description:
type: string
description: The description of the property.
icon:
type: string
description: The icon of the property.
type:
enum:
- string
- number
- boolean
- object
- array
description: The [type](https://docs.port.io/build-your-software-catalog/customize-integrations/configure-data-model/setup-blueprint/properties/#supported-properties) of the property.
format:
enum:
- date-time
- url
- email
- idn-email
- ipv4
- ipv6
- markdown
- yaml
- user
- blueprints
- team
- timer
- proto
- labeled-url
description: The type's [format](https://docs.port.io/build-your-software-catalog/customize-integrations/configure-data-model/setup-blueprint/properties/#supported-properties).
dateFormat:
enum:
- relative
- 12-hour
- 24-hour
- iso
description: The display format for date-time properties. Only applicable when format is 'date-time'. Defaults to 'relative'.
spec:
enum:
- open-api
- embedded-url
- async-api
description: The [spec](https://docs.port.io/build-your-software-catalog/customize-integrations/configure-data-model/setup-blueprint/properties/#supported-properties) of the property.
specAuthentication:
type: object
description: When using the `spec` property with `embedded-url`, the authentication spec of the property.
properties:
clientId:
type: string
authorizationUrl:
type: string
format: url
tokenUrl:
type: string
format: url
authorizationScope:
type: array
items:
type: string
default:
- openid
additionalProperties: false
required:
- clientId
- authorizationUrl
- tokenUrl
required:
- type
required:
type: array
items:
type: string
description: The required properties of the blueprint, these must be provided when creating an entity based on this blueprint. This is an array of the required properties' identifiers.
additionalProperties: false
required:
- properties
calculationProperties:
type: object
description: 'The [calculation properties](https://docs.port.io/build-your-software-catalog/customize-integrations/configure-data-model/setup-blueprint/properties/calculation-property/) of the blueprint.
Each calculation property identifier can be `<= 100 characters` long, values must match the following pattern: `^[A-Za-z0-9@_=\\-]+$`.'
default: {}
propertyNames:
pattern: ^[A-Za-z0-9@_=\\-]+$
maxLength: 100
additionalProperties:
type: object
additionalProperties: false
properties:
title:
type: string
maxLength: 100
description: The title of the property.
description:
type: string
description: The description of the property.
icon:
type: string
description: The icon of the property.
calculation:
type: string
description: The JQ expression that calculates the value of the property.
type:
enum:
- string
- number
- boolean
- object
- array
description: The type of the property.
format:
enum:
- date-time
- url
- email
- idn-email
- ipv4
- ipv6
- markdown
- yaml
- user
- team
- proto
- labeled-url
description: The format of the property.
dateFormat:
enum:
- relative
- 12-hour
- 24-hour
- iso
description: The display format for date-time calculation properties. Only applicable when format is 'date-time'. Defaults to 'relative'.
spec:
enum:
- open-api
- embedded-url
- async-api
description: The spec of the property.
specAuthentication:
type: object
description: When using the `spec` property with `embedded-url`, the authentication spec of the property.
properties:
clientId:
type: string
authorizationUrl:
type: string
format: url
tokenUrl:
type: string
format: url
authorizationScope:
type: array
items:
type: string
default:
- openid
additionalProperties: false
required:
- clientId
- authorizationUrl
- tokenUrl
colorized:
type: boolean
description: Whether the property is colorized.
colors:
type: object
description: When using the `colorized` property, the colors of the property.
additionalProperties:
enum:
- blue
- turquoise
- orange
- purple
- pink
- yellow
- green
- red
- gold
- silver
- paleBlue
- darkGray
- lightGray
- bronze
- lime
- olive
- brown
items:
type: object
properties:
type:
enum:
- string
- number
- boolean
- object
- array
description: The type of the item.
format:
description: The format of the item.
enum:
- date-time
- url
- email
- idn-format
- ipv4
- ipv6
- markdown
- yaml
- user
- team
- timer
- proto
- labeled-url
required:
- calculation
- type
mirrorProperties:
type: object
description: 'The [mirror properties](https://docs.port.io/build-your-software-catalog/customize-integrations/configure-data-model/setup-blueprint/properties/mirror-property/) of the blueprint.
Each mirror property identifier can be `<= 100 characters` long, values must match the following pattern: `^[A-Za-z0-9@_=\\-]+$`.'
propertyNames:
pattern: ^[A-Za-z0-9@_=\\-]+$
maxLength: 100
additionalProperties:
type: object
properties:
path:
type: string
pattern: ^(?:[A-Za-z0-9@_=\-$]+\.)+?(\w|\$|@|-)*?[^\.]+$
description: The path to the property in the related blueprint. This is a string of relation identifiers separated by dots, the last identifier is the property identifier.
title:
type: string
maxLength: 100
description: The title of the property.
additionalProperties: false
required:
- path
aggregationProperties:
type: object
description: 'The [aggregation properties](https://docs.port.io/build-your-software-catalog/customize-integrations/configure-data-model/setup-blueprint/properties/aggregation-property/) of the blueprint.
Each aggregation property identifier can be `<= 100 characters` long, values must match the following pattern: `^[A-Za-z0-9@_=\\-]+$`.'
default: {}
propertyNames:
pattern: ^[A-Za-z0-9@_=\\-]+$
maxLength: 100
additionalProperties:
type: object
properties:
title:
type: string
maxLength: 100
description: The title of the property.
description:
type: string
description: The description of the property.
icon:
type: string
description: The icon of the property.
type:
enum:
- number
default: number
description: The type of the property. This is the type of the aggregation result.
target:
type: string
description: The blueprint identifier to run the aggregation on.
calculationSpec:
type: object
oneOf:
- oneOf:
- type: object
properties:
func:
description: The function to use for the aggregation.
enum:
- count
calculationBy:
type: string
description: Whether to aggregate by entities or properties.
enum:
- entities
required:
- func
- calculationBy
additionalProperties: false
- type: object
properties:
func:
description: The function to use for the aggregation.
enum:
- average
measureTimeBy:
type: string
description: The time property to use for the aggregation.
averageOf:
type: string
enum:
- hour
- day
- week
- month
- total
calculationBy:
type: string
description: Whether to aggregate by entities or properties.
enum:
- entities
required:
- func
- calculationBy
- averageOf
additionalProperties: false
- oneOf:
- type: object
properties:
func:
type: string
enum:
- sum
- min
- max
- median
description: The function to use for the aggregation.
property:
type: string
description: The property to aggregate.
calculationBy:
type: string
description: Whether to aggregate by property or entities.
enum:
- property
additionalProperties: false
required:
- func
- property
- calculationBy
- type: object
properties:
func:
description: The function to use for the aggregation.
enum:
- average
measureTimeBy:
type: string
description: The time property to use for the aggregation.
averageOf:
type: string
enum:
- hour
- day
- week
- month
- total
property:
type: string
description: The property to aggregate.
calculationBy:
type: string
description: Whether to aggregate by property or entities.
enum:
- property
additionalProperties: false
required:
- func
- property
- calculationBy
- averageOf
description: The calculation spec of the property.
query:
$ref: '#/components/schemas/def-1'
pathFilter:
type: array
description: Optional filter to run the aggregation on entities that are connected through a specific path. When empty will use all the related entities from all possible paths
maxItems: 1
items:
type: object
properties:
path:
description: The path to the property in the related blueprint. This is a string of relation identifiers separated by dots.
type: array
items:
type: string
minItems: 1
fromBlueprint:
type: string
required:
- path
additionalProperties: false
additionalProperties: false
required:
- title
- target
- calculationSpec
relations:
type: object
description: 'The [relations](https://docs.port.io/build-your-software-catalog/customize-integrations/configure-data-model/relate-blueprints/) of the blueprint.
Each relation identifier can be `<= 100 characters` long, values must match the following pattern: `^[A-Za-z0-9@_=\\-]+$`.'
propertyNames:
pattern: ^[A-Za-z0-9@_=\\-]+$
maxLength: 100
additionalProperties:
type: object
properties:
title:
type: string
maxLength: 100
target:
type: string
required:
type: boolean
default: false
many:
type: boolean
default: false
description:
type: string
type:
type: string
additionalProperties: false
required:
- target
- required
- many
includeInGlobalSearch:
type:
- boolean
- 'null'
description: Overrides the org-level includeBlueprintsInGlobalSearchByDefault setting. When set, controls whether entities of this blueprint appear in global search results. Set to null to clear the override.
changelogDestination:
description: The destination of the blueprint's changelog.
oneOf:
- type: object
title: Webhook
description: The changelog will be sent to the specified webhook.
properties:
type:
type: string
enum:
- WEBHOOK
agent:
type: boolean
description: If `true`, Port's execution agent will be used to send the changelog.
url:
type: string
description: The URL of the webhook.
format: uri
required:
- url
- type
additionalProperties: false
- type: object
title: Kafka
description: The changelog will be sent to the Kafka topic connected to your Port account.
properties:
type:
type: string
enum:
- KAFKA
required:
- type
additionalProperties: false
updatedBy:
type: string
createdBy:
type: string
createdAt:
type: string
format: date-time
updatedAt:
type: string
format: date-time
required:
- identifier
- title
- schema
- createdBy
- updatedBy
- createdAt
- updatedAt
required:
- blueprint
- ok
additionalProperties: false
'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/blueprints/{blueprint_identifier}/mirror/{property_identifier}/rename:
patch:
summary: Rename a blueprint's mirror property
tags:
- Blueprints
description: This route allows you to change the identifier of a mirror property in a specific blueprint in your Port account.
To learn more about blueprints, check out the [documentation](https://docs.port.io/build-your-software-catalog/customize-integrations/configure-data-model/setup-blueprint/).
requestBody:
content:
application/json:
schema:
type: object
properties:
newMirrorName:
type: string
pattern: ^[A-Za-z0-9@_=\\-]+$
maxLength: 100
description: The new identifier of the mirror property.
additionalProperties: false
parameters:
- schema:
type: string
in: path
name: blueprint_identifier
required: true
description: The identifier of the blueprint you want to change.
- schema:
type: string
in: path
name: property_identifier
required: true
description: The identifier of the property you want to rename.
security:
- bearer: []
responses:
'200':
description: Updated successfully.
content:
application/json:
schema:
description: Updated successfully.
type: object
properties:
ok:
enum:
- true
blueprint:
type: object
properties:
identifier:
type: string
pattern: ^(?!\.{1,2}$)[\p{L}0-9@_.+:\\/-]+$
maxLength: 100
description: The identifier of the blueprint.
title:
type: string
maxLength: 100
minLength: 1
description: The title of the blueprint.
description:
type: string
maxLength: 200
description: The description of the blueprint.
icon:
type: string
description: The icon of the blueprint.
ownership:
anyOf:
- type: object
title: Inherited
description: Ownership of the blueprint's entities will be inherited from a different related blueprint with `Direct` ownership.
properties:
type:
type: string
enum:
- Inherited
path:
type: string
description: The `path` key is a dot-separated path of relation identifiers that lead to the desired blueprint.
title:
type: string
maxLength: 100
description: The title of the ownership property. The default value is `Owning teams`.
additionalProperties: false
required:
- type
- path
- type: object
title: Direct
description: Ownership of the blueprint's entities will be defined by a hidden **relation** to the `Team` blueprint.
properties:
type:
type: string
enum:
- Direct
title:
type: string
maxLength: 100
description: The title of the ownership property. The default value is `Owning teams`.
additionalProperties: false
required:
- type
schema:
type: object
description: The schema of the blueprint, see `properties` and `required` below for more information.
properties:
properties:
type: object
description: 'The properties of the blueprint.
Each property identifier can be `<= 100 characters` long, values must match the following pattern: `^[A-Za-z0-9@_=\\-]+$`.'
propertyNames:
pattern: ^[A-Za-z0-9@_=\\-]+$
maxLength: 100
additionalProperties:
type: object
properties:
title:
type: string
maxLength: 100
description: The title of the property.
description:
type: string
description: The description of the property.
icon:
type: string
description: The icon of the property.
type:
enum:
- string
- number
- boolean
- object
- array
description: The [type](https://docs.port.io/build-your-software-catalog/customize-integrations/configure-data-model/setup-blueprint/properties/#supported-properties) of the property.
format:
enum:
- date-time
- url
- email
- idn-email
- ipv4
- ipv6
- markdown
- yaml
- user
- blueprints
- team
- timer
- proto
- labeled-url
description: The type's [format](https://docs.port.io/build-your-software-catalog/customize-integrations/configure-data-model/setup-blueprint/properties/#supported-properties).
dateFormat:
enum:
- relative
- 12-hour
- 24-hour
- iso
description: The display format for date-time properties. Only applicable when format is 'date-time'. Defaults to 'relative'.
spec:
enum:
- open-api
- embedded-url
- async-api
description: The [spec](https://docs.port.io/build-your-software-catalog/customize-integrations/configure-data-model/setup-blueprint/properties/#supported-properties) of the property.
specAuthentication:
type: object
description: When using the `spec` property with `embedded-url`, the authentication spec of the property.
properties:
clientId:
type: string
authorizationUrl:
type: string
format: url
tokenUrl:
type: string
format: url
authorizationScope:
type: array
items:
type: string
default:
- openid
additionalProperties: false
required:
- clientId
- authorizationUrl
- tokenUrl
required:
- type
required:
type: array
items:
type: string
description: The required properties of the blueprint, these must be provided when creating an entity based on this blueprint. This is an array of the required properties' identifiers.
additionalProperties: false
required:
- properties
calculationProperties:
type: object
description: 'The [calculation properties](https://docs.port.io/build-your-software-catalog/customize-integrations/configure-data-model/setup-blueprint/properties/calculation-property/) of the blueprint.
Each calculation property identifier can be `<= 100 characters` long, values must match the following pattern: `^[A-Za-z0-9@_=\\-]+$`.'
default: {}
propertyNames:
pattern: ^[A-Za-z0-9@_=\\-]+$
maxLength: 100
additionalProperties:
type: object
additionalProperties: false
properties:
title:
type: string
maxLength: 100
description: The title of the property.
description:
type: string
description: The description of the property.
icon:
type: string
description: The icon of the property.
calculation:
type: string
description: The JQ expression that calculates the value of the property.
type:
enum:
- string
- number
- boolean
- object
- array
description: The type of the property.
format:
enum:
- date-time
- url
- email
- idn-email
- ipv4
- ipv6
- markdown
- yaml
- user
- team
- proto
- labeled-url
description: The format of the property.
dateFormat:
enum:
- relative
- 12-hour
- 24-hour
- iso
description: The display format for date-time calculation properties. Only applicable when format is 'date-time'. Defaults to 'relative'.
spec:
enum:
- open-api
- embedded-url
- async-api
description: The spec of the property.
specAuthentication:
type: object
description: When using the `spec` property with `embedded-url`, the authentication spec of the property.
properties:
clientId:
type: string
authorizationUrl:
type: string
format: url
tokenUrl:
type: string
format: url
authorizationScope:
type: array
items:
type: string
default:
- openid
additionalProperties: false
required:
- clientId
- authorizationUrl
- tokenUrl
colorized:
type: boolean
description: Whether the property is colorized.
colors:
type: object
description: When using the `colorized` property, the colors of the property.
additionalProperties:
enum:
- blue
- turquoise
- orange
- purple
- pink
- yellow
- green
- red
- gold
- silver
- paleBlue
- darkGray
- lightGray
- bronze
- lime
- olive
- brown
items:
type: object
properties:
type:
enum:
- string
- number
- boolean
- object
- array
description: The type of the item.
format:
description: The format of the item.
enum:
- date-time
- url
- email
- idn-format
- ipv4
- ipv6
- markdown
- yaml
- user
- team
- timer
- proto
- labeled-url
required:
- calculation
- type
mirrorProperties:
type: object
description: 'The [mirror properties](https://docs.port.io/build-your-software-catalog/customize-integrations/configure-data-model/setup-blueprint/properties/mirror-property/) of the blueprint.
Each mirror property identifier can be `<= 100 characters` long, values must match the following pattern: `^[A-Za-z0-9@_=\\-]+$`.'
propertyNames:
pattern: ^[A-Za-z0-9@_=\\-]+$
maxLength: 100
additionalProperties:
type: object
properties:
path:
type: string
pattern: ^(?:[A-Za-z0-9@_=\-$]+\.)+?(\w|\$|@|-)*?[^\.]+$
description: The path to the property in the related blueprint. This is a string of relation identifiers separated by dots, the last identifier is the property identifier.
title:
type: string
maxLength: 100
description: The title of the property.
additionalProperties: false
required:
- path
aggregationProperties:
type: object
description: 'The [aggregation properties](https://docs.port.io/build-your-software-catalog/customize-integrations/configure-data-model/setup-blueprint/properties/aggregation-property/) of the blueprint.
Each aggregation property identifier can be `<= 100 characters` long, values must match the following pattern: `^[A-Za-z0-9@_=\\-]+$`.'
default: {}
propertyNames:
pattern: ^[A-Za-z0-9@_=\\-]+$
maxLength: 100
additionalProperties:
type: object
properties:
title:
type: string
maxLength: 100
description: The title of the property.
description:
type: string
description: The description of the property.
icon:
type: string
description: The icon of the property.
type:
enum:
- number
default: number
description: The type of the property. This is the type of the aggregation result.
target:
type: string
description: The blueprint identifier to run the aggregation on.
calculationSpec:
type: object
oneOf:
- oneOf:
- type: object
properties:
func:
description: The function to use for the aggregation.
enum:
- count
calculationBy:
type: string
description: Whether to aggregate by entities or properties.
enum:
- entities
required:
- func
- calculationBy
additionalProperties: false
- type: object
properties:
func:
description: The function to use for the aggregation.
enum:
- average
measureTimeBy:
type: string
description: The time property to use for the aggregation.
averageOf:
type: string
enum:
- hour
- day
- week
- month
- total
calculationBy:
type: string
description: Whether to aggregate by entities or properties.
enum:
- entities
required:
- func
- calculationBy
- averageOf
additionalProperties: false
- oneOf:
- type: object
properties:
func:
type: string
enum:
- sum
- min
- max
- median
description: The function to use for the aggregation.
property:
type: string
description: The property to aggregate.
calculationBy:
type: string
description: Whether to aggregate by property or entities.
enum:
- property
additionalProperties: false
required:
- func
- property
- calculationBy
- type: object
properties:
func:
description: The function to use for the aggregation.
enum:
- average
measureTimeBy:
type: string
description: The time property to use for the aggregation.
averageOf:
type: string
enum:
- hour
- day
- week
- month
- total
property:
type: string
description: The property to aggregate.
calculationBy:
type: string
description: Whether to aggregate by property or entities.
enum:
- property
additionalProperties: false
required:
- func
- property
- calculationBy
- averageOf
description: The calculation spec of the property.
query:
$ref: '#/components/schemas/def-1'
pathFilter:
type: array
description: Optional filter to run the aggregation on entities that are connected through a specific path. When empty will use all the related entities from all possible paths
maxItems: 1
items:
type: object
properties:
path:
description: The path to the property in the related blueprint. This is a string of relation identifiers separated by dots.
type: array
items:
type: string
minItems: 1
fromBlueprint:
type: string
required:
- path
additionalProperties: false
additionalProperties: false
required:
- title
- target
- calculationSpec
relations:
type: object
description: 'The [relations](https://docs.port.io/build-your-software-catalog/customize-integrations/configure-data-model/relate-blueprints/) of the blueprint.
Each relation identifier can be `<= 100 characters` long, values must match the following pattern: `^[A-Za-z0-9@_=\\-]+$`.'
propertyNames:
pattern: ^[A-Za-z0-9@_=\\-]+$
maxLength: 100
additionalProperties:
type: object
properties:
title:
type: string
maxLength: 100
target:
type: string
required:
type: boolean
default: false
many:
type: boolean
default: false
description:
type: string
type:
type: string
additionalProperties: false
required:
- target
- required
- many
includeInGlobalSearch:
type:
- boolean
- 'null'
description: Overrides the org-level includeBlueprintsInGlobalSearchByDefault setting. When set, controls whether entities of this blueprint appear in global search results. Set to null to clear the override.
changelogDestination:
description: The destination of the blueprint's changelog.
oneOf:
- type: object
title: Webhook
description: The changelog will be sent to the specified webhook.
properties:
type:
type: string
enum:
- WEBHOOK
agent:
type: boolean
description: If `true`, Port's execution agent will be used to send the changelog.
url:
type: string
description: The URL of the webhook.
format: uri
required:
- url
- type
additionalProperties: false
- type: object
title: Kafka
description: The changelog will be sent to the Kafka topic connected to your Port account.
properties:
type:
type: string
enum:
- KAFKA
required:
- type
additionalProperties: false
updatedBy:
type: string
createdBy:
type: string
createdAt:
type: string
format: date-time
updatedAt:
type: string
format: date-time
required:
- identifier
- title
- schema
- createdBy
- updatedBy
- createdAt
- updatedAt
required:
- blueprint
- ok
additionalProperties: false
'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/blueprints/{blueprint_identifier}/relations/{relation_identifier}/rename:
patch:
summary: Rename a blueprint's relation
tags:
- Blueprints
description: This route allows you to change the identifier of a relation in a specific blueprint in your Port account.
To learn more about blueprints, check out the [documentation](https://docs.port.io/build-your-software-catalog/customize-integrations/configure-data-model/setup-blueprint/).
requestBody:
content:
application/json:
schema:
type: object
properties:
newRelationIdentifier:
type: string
pattern: ^[A-Za-z0-9@_=\\-]+$
maxLength: 100
description: The new identifier of the relation.
additionalProperties: false
parameters:
- schema:
type: string
minLength: 1
in: path
name: blueprint_identifier
required: true
description: The identifier of the blueprint you want to change.
- schema:
type: string
minLength: 1
in: path
name: relation_identifier
required: true
description: The identifier of the relation you want to rename.
security:
- bearer: []
responses:
'200':
description: Updated successfully.
content:
application/json:
schema:
description: Updated successfully.
type: object
properties:
ok:
enum:
- true
blueprint:
type: object
properties:
identifier:
type: string
pattern: ^(?!\.{1,2}$)[\p{L}0-9@_.+:\\/-]+$
maxLength: 100
description: The identifier of the blueprint.
title:
type: string
maxLength: 100
minLength: 1
description: The title of the blueprint.
description:
type: string
maxLength: 200
description: The description of the blueprint.
icon:
type: string
description: The icon of the blueprint.
ownership:
anyOf:
- type: object
title: Inherited
description: Ownership of the blueprint's entities will be inherited from a different related blueprint with `Direct` ownership.
properties:
type:
type: string
enum:
- Inherited
path:
type: string
description: The `path` key is a dot-separated path of relation identifiers that lead to the desired blueprint.
title:
type: string
maxLength: 100
description: The title of the ownership property. The default value is `Owning teams`.
additionalProperties: false
required:
- type
- path
- type: object
title: Direct
description: Ownership of the blueprint's entities will be defined by a hidden **relation** to the `Team` blueprint.
properties:
type:
type: string
enum:
- Direct
title:
type: string
maxLength: 100
description: The title of the ownership property. The default value is `Owning teams`.
additionalProperties: false
required:
- type
schema:
type: object
description: The schema of the blueprint, see `properties` and `required` below for more information.
properties:
properties:
type: object
description: 'The properties of the blueprint.
Each property identifier can be `<= 100 characters` long, values must match the following pattern: `^[A-Za-z0-9@_=\\-]+$`.'
propertyNames:
pattern: ^[A-Za-z0-9@_=\\-]+$
maxLength: 100
additionalProperties:
type: object
properties:
title:
type: string
maxLength: 100
description: The title of the property.
description:
type: string
description: The description of the property.
icon:
type: string
description: The icon of the property.
type:
enum:
- string
- number
- boolean
- object
- array
description: The [type](https://docs.port.io/build-your-software-catalog/customize-integrations/configure-data-model/setup-blueprint/properties/#supported-properties) of the property.
format:
enum:
- date-time
- url
- email
- idn-email
- ipv4
- ipv6
- markdown
- yaml
- user
- blueprints
- team
- timer
- proto
- labeled-url
description: The type's [format](https://docs.port.io/build-your-software-catalog/customize-integrations/configure-data-model/setup-blueprint/properties/#supported-properties).
dateFormat:
enum:
- relative
- 12-hour
- 24-hour
- iso
description: The display format for date-time properties. Only applicable when format is 'date-time'. Defaults to 'relative'.
spec:
enum:
- open-api
- embedded-url
- async-api
description: The [spec](https://docs.port.io/build-your-software-catalog/customize-integrations/configure-data-model/setup-blueprint/properties/#supported-properties) of the property.
specAuthentication:
type: object
description: When using the `spec` property with `embedded-url`, the authentication spec of the property.
properties:
clientId:
type: string
authorizationUrl:
type: string
format: url
tokenUrl:
type: string
format: url
authorizationScope:
type: array
items:
type: string
default:
- openid
additionalProperties: false
required:
- clientId
- authorizationUrl
- tokenUrl
required:
- type
required:
type: array
items:
type: string
description: The required properties of the blueprint, these must be provided when creating an entity based on this blueprint. This is an array of the required properties' identifiers.
additionalProperties: false
required:
- properties
calculationProperties:
type: object
description: 'The [calculation properties](https://docs.port.io/build-your-software-catalog/customize-integrations/configure-data-model/setup-blueprint/properties/calculation-property/) of the blueprint.
Each calculation property identifier can be `<= 100 characters` long, values must match the following pattern: `^[A-Za-z0-9@_=\\-]+$`.'
default: {}
propertyNames:
pattern: ^[A-Za-z0-9@_=\\-]+$
maxLength: 100
additionalProperties:
type: object
additionalProperties: false
properties:
title:
type: string
maxLength: 100
description: The title of the property.
description:
type: string
description: The description of the property.
icon:
type: string
description: The icon of the property.
calculation:
type: string
description: The JQ expression that calculates the value of the property.
type:
enum:
- string
- number
- boolean
- object
- array
description: The type of the property.
format:
enum:
- date-time
- url
- email
- idn-email
- ipv4
- ipv6
- markdown
- yaml
- user
- team
- proto
- labeled-url
description: The format of the property.
dateFormat:
enum:
- relative
- 12-hour
- 24-hour
- iso
description: The display format for date-time calculation properties. Only applicable when format is 'date-time'. Defaults to 'relative'.
spec:
enum:
- open-api
- embedded-url
- async-api
description: The spec of the property.
specAuthentication:
type: object
description: When using the `spec` property with `embedded-url`, the authentication spec of the property.
properties:
clientId:
type: string
authorizationUrl:
type: string
format: url
tokenUrl:
type: string
format: url
authorizationScope:
type: array
items:
type: string
default:
- openid
additionalProperties: false
required:
- clientId
- authorizationUrl
- tokenUrl
colorized:
type: boolean
description: Whether the property is colorized.
colors:
type: object
description: When using the `colorized` property, the colors of the property.
additionalProperties:
enum:
- blue
- turquoise
- orange
- purple
- pink
- yellow
- green
- red
- gold
- silver
- paleBlue
- darkGray
- lightGray
- bronze
- lime
- olive
- brown
items:
type: object
properties:
type:
enum:
- string
- number
- boolean
- object
- array
description: The type of the item.
format:
description: The format of the item.
enum:
- date-time
- url
- email
- idn-format
- ipv4
- ipv6
- markdown
- yaml
- user
- team
- timer
- proto
- labeled-url
required:
- calculation
- type
mirrorProperties:
type: object
description: 'The [mirror properties](https://docs.port.io/build-your-software-catalog/customize-integrations/configure-data-model/setup-blueprint/properties/mirror-property/) of the blueprint.
Each mirror property identifier can be `<= 100 characters` long, values must match the following pattern: `^[A-Za-z0-9@_=\\-]+$`.'
propertyNames:
pattern: ^[A-Za-z0-9@_=\\-]+$
maxLength: 100
additionalProperties:
type: object
properties:
path:
type: string
pattern: ^(?:[A-Za-z0-9@_=\-$]+\.)+?(\w|\$|@|-)*?[^\.]+$
description: The path to the property in the related blueprint. This is a string of relation identifiers separated by dots, the last identifier is the property identifier.
title:
type: string
maxLength: 100
description: The title of the property.
additionalProperties: false
required:
- path
aggregationProperties:
type: object
description: 'The [aggregation properties](https://docs.port.io/build-your-software-catalog/customize-integrations/configure-data-model/setup-blueprint/properties/aggregation-property/) of the blueprint.
Each aggregation property identifier can be `<= 100 characters` long, values must match the following pattern: `^[A-Za-z0-9@_=\\-]+$`.'
default: {}
propertyNames:
pattern: ^[A-Za-z0-9@_=\\-]+$
maxLength: 100
additionalProperties:
type: object
properties:
title:
type: string
maxLength: 100
description: The title of the property.
description:
type: string
description: The description of the property.
icon:
type: string
description: The icon of the property.
type:
enum:
- number
default: number
description: The type of the property. This is the type of the aggregation result.
target:
type: string
description: The blueprint identifier to run the aggregation on.
calculationSpec:
type: object
oneOf:
- oneOf:
- type: object
properties:
func:
description: The function to use for the aggregation.
enum:
- count
calculationBy:
type: string
description: Whether to aggregate by entities or properties.
enum:
- entities
required:
- func
- calculationBy
additionalProperties: false
- type: object
properties:
func:
description: The function to use for the aggregation.
enum:
- average
measureTimeBy:
type: string
description: The time property to use for the aggregation.
averageOf:
type: string
enum:
- hour
- day
- week
- month
- total
calculationBy:
type: string
description: Whether to aggregate by entities or properties.
enum:
- entities
required:
- func
- calculationBy
- averageOf
additionalProperties: false
- oneOf:
- type: object
properties:
func:
type: string
enum:
- sum
- min
- max
- median
description: The function to use for the aggregation.
property:
type: string
description: The property to aggregate.
calculationBy:
type: string
description: Whether to aggregate by property or entities.
enum:
- property
additionalProperties: false
required:
- func
- property
- calculationBy
- type: object
properties:
func:
description: The function to use for the aggregation.
enum:
- average
measureTimeBy:
type: string
description: The time property to use for the aggregation.
averageOf:
type: string
enum:
- hour
- day
- week
- month
- total
property:
type: string
description: The property to aggregate.
calculationBy:
type: string
description: Whether to aggregate by property or entities.
enum:
- property
additionalProperties: false
required:
- func
- property
- calculationBy
- averageOf
description: The calculation spec of the property.
query:
$ref: '#/components/schemas/def-1'
pathFilter:
type: array
description: Optional filter to run the aggregation on entities that are connected through a specific path. When empty will use all the related entities from all possible paths
maxItems: 1
items:
type: object
properties:
path:
description: The path to the property in the related blueprint. This is a string of relation identifiers separated by dots.
type: array
items:
type: string
minItems: 1
fromBlueprint:
type: string
required:
- path
additionalProperties: false
additionalProperties: false
required:
- title
- target
- calculationSpec
relations:
type: object
description: 'The [relations](https://docs.port.io/build-your-software-catalog/customize-integrations/configure-data-model/relate-blueprints/) of the blueprint.
Each relation identifier can be `<= 100 characters` long, values must match the following pattern: `^[A-Za-z0-9@_=\\-]+$`.'
propertyNames:
pattern: ^[A-Za-z0-9@_=\\-]+$
maxLength: 100
additionalProperties:
type: object
properties:
title:
type: string
maxLength: 100
target:
type: string
required:
type: boolean
default: false
many:
type: boolean
default: false
description:
type: string
type:
type: string
additionalProperties: false
required:
- target
- required
- many
includeInGlobalSearch:
type:
- boolean
- 'null'
description: Overrides the org-level includeBlueprintsInGlobalSearchByDefault setting. When set, controls whether entities of this blueprint appear in global search results. Set to null to clear the override.
changelogDestination:
description: The destination of the blueprint's changelog.
oneOf:
- type: object
title: Webhook
description: The changelog will be sent to the specified webhook.
properties:
type:
type: string
enum:
- WEBHOOK
agent:
type: boolean
description: If `true`, Port's execution agent will be used to send the changelog.
url:
type: string
description: The URL of the webhook.
format: uri
required:
- url
- type
additionalProperties: false
- type: object
title: Kafka
description: The changelog will be sent to the Kafka topic connected to your Port account.
properties:
type:
type: string
enum:
- KAFKA
required:
- type
additionalProperties: false
updatedBy:
type: string
createdBy:
type: string
createdAt:
type: string
format: date-time
updatedAt:
type: string
format: date-time
required:
- identifier
- title
- schema
- createdBy
- updatedBy
- createdAt
- updatedAt
required:
- blueprint
- ok
additionalProperties: false
'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:
schemas:
def-1:
type: object
properties:
combinator:
enum:
- and
- or
description: The combinator to use for the rules.
rules:
type: array
items:
anyOf:
- type: object
title: Date Rule
properties:
property:
oneOf:
- type: string
- type: object
properties:
property:
type: string
context:
type: string
enum:
- user
- userTeams
required:
- property
- context
operator:
enum:
- between
- notBetween
- '='
value:
type: object
oneOf:
- type: object
title: Date Range
properties:
from:
type: string
format: date-time
to:
type: string
format: date-time
required:
- from
- to
- type: object
title: Date Preset
properties:
preset:
type: string
enum:
- today
- tomorrow
- yesterday
- lastDay
- lastWeek
- last2Weeks
- lastMonth
- last3Months
- last6Months
- last12Months
- last2Years
- last3Years
- nextDay
- nextWeek
- next2Weeks
- nextMonth
- next3Months
- next6Months
- next12Months
required:
- preset
- type: object
properties:
property:
type: string
context:
type: string
enum:
- user
- userTeams
required:
- property
- context
required:
- property
- operator
- value
additionalProperties: false
- type: object
title: Empty Rule
oneOf:
- type: object
title: Empty Rule
properties:
operator:
enum:
- isEmpty
- isNotEmpty
property:
type: string
required:
- operator
- property
additionalProperties: false
- type: object
title: Number Rule
properties:
property:
oneOf:
- type: string
- type: object
properties:
property:
type: string
context:
type: string
enum:
- user
- userTeams
required:
- property
- context
operator:
enum:
- '>'
- '>='
- <
- <=
value:
anyOf:
- type: number
title: number
- type: string
format: date-time
title: date-time
- type: object
properties:
property:
type: string
context:
type: string
enum:
- user
- userTeams
required:
- property
- context
required:
- property
- operator
- value
additionalProperties: false
- type: object
title: Expired Rule
oneOf:
- type: object
title: Expired Rule
properties:
operator:
enum:
- isExpired
- isNotExpired
property:
type: string
required:
- operator
- property
additionalProperties: false
- type: object
title: String Rule
oneOf:
- type: object
title: String Rule
properties:
property:
oneOf:
- type: string
- type: object
properties:
property:
type: string
context:
type: string
enum:
- user
- userTeams
required:
- property
- context
operator:
enum:
- '='
- '!='
- containsAny
- contains
- doesNotContains
- beginsWith
- doesNotBeginsWith
- endsWith
- doesNotEndsWith
- in
- notIn
value:
anyOf:
- type: 'null'
title: 'null'
- type: string
title: string
- type: number
title: number
- type: boolean
title: boolean
- type: string
format: date-time
title: date-time
- type: array
items:
type: string
title: array
- type: array
items:
type: number
title: array
- type: array
items:
type: boolean
title: array
- type: array
items:
type: string
format: date-time
title: array
- type: object
properties:
property:
type: string
context:
type: string
enum:
- user
- userTeams
required:
- property
- context
additionalProperties: false
required:
- property
- operator
- value
- type: object
title: Relation Rule
properties:
operator:
enum:
- relatedTo
blueprint:
type: string
value:
anyOf:
- type: string
title: string
- type: array
items:
type: string
title: array
direction:
enum:
- upstream
- downstream
required:
type: boolean
additionalProperties: false
required:
- operator
- value
- blueprint
- type: object
title: Property schema rule
properties:
propertySchema:
type: object
properties:
type:
type: string
format:
type: string
items:
type: object
properties:
type:
type: string
format:
type: string
required:
- type
required:
- type
additionalProperties: false
operator:
enum:
- '='
- '!='
- contains
value:
anyOf:
- type: 'null'
title: 'null'
- type: string
title: string
- type: number
title: number
- type: boolean
title: boolean
required:
- operator
- propertySchema
additionalProperties: false
- type: object
title: matchAny Rule
anyOf:
- type: object
properties:
property:
oneOf:
- type: object
properties:
path:
type: array
items:
anyOf:
- type: string
- type: object
properties:
relation:
type: string
maxHops:
type: number
minimum: 1
maximum: 15
fromBlueprint:
type: string
required:
- path
additionalProperties: false
- oneOf:
- type: string
- type: object
properties:
property:
type: string
context:
type: string
enum:
- user
- userTeams
required:
- property
- context
operator:
type: string
enum:
- matchAny
value:
anyOf:
- type: array
items:
type: string
- oneOf:
- type: string
- type: object
properties:
property:
type: string
context:
type: string
enum:
- user
- userTeams
required:
- property
- context
required:
- property
- operator
- value
additionalProperties: false
- $ref: '#/components/schemas/def-1'
required:
- combinator
- rules
additionalProperties: false
example:
combinator: and
rules:
- property: $blueprint
operator: '='
value: service
- combinator: or
rules:
- property: environment
operator: '='
value: production
- property: environment
operator: '='
value: staging
title: /schemas/entitiesQuery
securitySchemes:
bearer:
type: apiKey
name: Authorization
in: header