Documentation

Pipeline Automation API


Pipeline Automation API


Pipeline Automation

Pipeline Automation service v0.0.79, it provides endpoints for managing and running pipelines and automations.
Download OpenAPI specification:

List all Apps


Description: Returns all accessible apps (latest version) (private and public) to the organization.
Authorizations
Client (Client)
HTTP: Client
HTTP Authorization Scheme: bearer
Required scopes: Client
ServiceAccount (ServiceAccount)
HTTP: ServiceAccount
To get started with authentication, visit the Service Account Authentication section.
HTTP Authorization Scheme: basic
Required scopes: ServiceAccount

Path parameters for "List all Apps"

organizationId

string
required
The active Organization Id

Query parameters for "List all Apps"

owned

boolean
bool representing if we list element owned by the org

offset

integer
int representing number of items to skip

limit

integer
int representing max returned items

HTTP response status codes for "List all Apps":

Code samples for "List all Apps":

Request example

curl -X GET \ -H "Authorization: Bearer <YOUR_TOKEN>" \ -H "Authorization: Basic <YOUR_CREDENTIALS>" \ "https://automation.services.api.unity.com/v1/organizations/{organizationId}/apps"

Response example

{ "offset": 0, "limit": 0, "total": 0, "results": [ { "app": { "id": "string", "name": "string", "description": "string", "logo": "string", "url": "https://example.com", "tags": [ "string" ], "systemMetadata": { "createdByUnity": true, "organizationId": "string" }, "metadata": {} }, "version": "string", "platformVersion": "string", "lifecycle": { "lifecycleStatus": "Draft", "updatedOn": "2024-01-01T00:00:00Z", "archivingDate": "2024-01-01T00:00:00Z" }, "appVisibility": { "visibilityLevel": "Private", "updatedOn": "2024-01-01T00:00:00Z" }, "actions": [ { "actionId": "string", "name": "string", "description": "string", "terminationGracePeriodSeconds": 0, "inputParameters": [ null ], "outputParameters": [ null ], "secrets": [ null ], "requirements": { "configurationIds": null, "entitlements": null }, "metadata": {}, "timeout": { "defaultValue": null, "minValue": null, "maxValue": null }, "storages": [ null ] } ], "events": [ { "id": "string", "name": "string", "description": "string", "inputParameters": [ null ], "outputParameters": [ null ], "definition": { "type": null, "url": null, "headers": null, "body": null, "deleteUrl": null, "deleteBody": null, "eventFilter": null, "outputParameterMapping": null, "signature": null }, "secrets": [ null ], "requirements": {}, "metadata": {}, "app": { "id": null, "name": null, "description": null, "logo": null, "url": null, "tags": null, "systemMetadata": null, "metadata": null } } ], "metadata": {}, "systemMetadata": {}, "requiredEntitlements": [ { "entitlementIds": [ null ], "description": "string" } ] } ]}

Create an app


Description: Creates a new app, returns the first app version of that app.
Required Role: Automation Developer
Required Feature Flag: automation_organization_creator_access
Authorizations
Client (Client)
HTTP: Client
HTTP Authorization Scheme: bearer
Required scopes: Client
ServiceAccount (ServiceAccount)
HTTP: ServiceAccount
To get started with authentication, visit the Service Account Authentication section.
HTTP Authorization Scheme: basic
Required scopes: ServiceAccount

Path parameters for "Create an app"

organizationId

string
required
The active Organization Id

Request body for "Create an app"

Media Type:
application/json

name

string
required
The app name.

description

string
required
The app description.

version

string
required
The app initial version (format int.int.int[-rc.int] or int.int.int-sha.[7-14 chars] as a string)

logo

string
The app logo encoded in Base64. It must be a 128x128 PNG, JPG, GIF, TIFF or WEBP image.

url

string
The url of the app >

tags

array[string]
The tags of the app >

metadata

object
A map of objects containing arbitrary metadata to be attached to the app.

id

string
Optional app id as string (must be a valid UUID if provided). If provided and already in use, creation returns 409 Conflict; if invalid, returns 400 Bad Request.

HTTP response status codes for "Create an app":

Code samples for "Create an app":

Request example

curl -X POST \ -H "Authorization: Bearer <YOUR_TOKEN>" \ -H "Authorization: Basic <YOUR_CREDENTIALS>" \ -H "Content-Type: application/json" \ -d '{ "name": "string", "description": "string", "version": "string", "logo": "string", "url": "https://example.com", "tags": [ "string" ], "metadata": {}, "id": "string"}' \ "https://automation.services.api.unity.com/v1/organizations/{organizationId}/apps"

Response example

{ "app": { "id": "string", "name": "string", "description": "string", "logo": "string", "url": "https://example.com", "tags": [ "string" ], "systemMetadata": { "createdByUnity": true, "organizationId": "string" }, "metadata": {} }, "version": "string", "platformVersion": "string", "lifecycle": { "lifecycleStatus": "Draft", "updatedOn": "2024-01-01T00:00:00Z", "archivingDate": "2024-01-01T00:00:00Z" }, "appVisibility": { "visibilityLevel": "Private", "updatedOn": "2024-01-01T00:00:00Z" }, "actions": [ { "actionId": "string", "name": "string", "description": "string", "terminationGracePeriodSeconds": 0, "inputParameters": [ { "displayName": "string", "name": "string", "type": "Bool", "description": "string", "required": true, "acceptedValues": [ null ], "regexPattern": "string", "defaultValue": null, "metadata": {}, "isList": true, "minItems": 0, "maxItems": 0, "masked": true } ], "outputParameters": [ { "displayName": "string", "name": "string", "type": "Bool", "description": "string" } ], "secrets": [ { "secretName": "string", "displayName": "string", "description": "string", "required": true } ], "requirements": { "configurationIds": [ "string" ], "entitlements": [ { "entitlementIds": null, "description": null } ] }, "metadata": {}, "timeout": { "defaultValue": 0, "minValue": 0, "maxValue": 0 }, "storages": [ { "name": "string", "description": "string", "required": true } ] } ], "events": [ { "id": "string", "name": "string", "description": "string", "inputParameters": [ { "displayName": "string", "name": "string", "type": "Bool", "description": "string", "required": true, "acceptedValues": [ null ], "regexPattern": "string", "defaultValue": null, "metadata": {}, "isList": true, "minItems": 0, "maxItems": 0, "masked": true } ], "outputParameters": [ { "displayName": "string", "name": "string", "type": "Bool", "description": "string" } ], "definition": { "type": "string", "url": "string", "headers": {}, "body": {}, "deleteUrl": "string", "deleteBody": {}, "eventFilter": {}, "outputParameterMapping": {}, "signature": { "algo": "HMACSHA256", "verifyHeader": "string" } }, "secrets": [ { "secretName": "string", "displayName": "string", "description": "string", "required": true } ], "requirements": {}, "metadata": {}, "app": { "id": "string", "name": "string", "description": "string", "logo": "string", "url": "https://example.com", "tags": [ "string" ], "systemMetadata": { "createdByUnity": true, "organizationId": "string" }, "metadata": {} } } ], "metadata": {}, "systemMetadata": {}, "requiredEntitlements": [ { "entitlementIds": [ "string" ], "description": "string" } ]}

Update an app


Description: Updates an app, returns the updated app.
Required Role: Automation Developer
Required Feature Flag: automation_organization_creator_access
Authorizations
Client (Client)
HTTP: Client
HTTP Authorization Scheme: bearer
Required scopes: Client
ServiceAccount (ServiceAccount)
HTTP: ServiceAccount
To get started with authentication, visit the Service Account Authentication section.
HTTP Authorization Scheme: basic
Required scopes: ServiceAccount

Path parameters for "Update an app"

organizationId

string
required
The active Organization Id

appId

string
required
The app unique identifier

Request body for "Update an app"

Media Type:
application/json

name

string
The app name.

description

string
The app description.

logo

string
The app logo encoded in base 64

url

string
The url of the app >

tags

array[string]
The tags of the app >

metadata

object
A map of objects containing arbitrary metadata to be attached to the app.

HTTP response status codes for "Update an app":

Code samples for "Update an app":

Request example

curl -X PATCH \ -H "Authorization: Bearer <YOUR_TOKEN>" \ -H "Authorization: Basic <YOUR_CREDENTIALS>" \ -H "Content-Type: application/json" \ -d '{ "name": "string", "description": "string", "logo": "string", "url": "https://example.com", "tags": [ "string" ], "metadata": {}}' \ "https://automation.services.api.unity.com/v1/organizations/{organizationId}/apps/{appId}"

Response example

{ "id": "string", "name": "string", "description": "string", "logo": "string", "url": "https://example.com", "tags": [ "string" ], "systemMetadata": { "createdByUnity": true, "organizationId": "string" }, "metadata": {}}

Get all versions from App


Description: Returns all versions of an App that is accessible to your organization.
Authorizations
Client (Client)
HTTP: Client
HTTP Authorization Scheme: bearer
Required scopes: Client
ServiceAccount (ServiceAccount)
HTTP: ServiceAccount
To get started with authentication, visit the Service Account Authentication section.
HTTP Authorization Scheme: basic
Required scopes: ServiceAccount

Path parameters for "Get all versions from App"

organizationId

string
required
The active Organization Id

appId

string
required
The app unique identifier

Query parameters for "Get all versions from App"

offset

integer
int representing number of items to skip

limit

integer
int representing max returned items

HTTP response status codes for "Get all versions from App":

Code samples for "Get all versions from App":

Request example

curl -X GET \ -H "Authorization: Bearer <YOUR_TOKEN>" \ -H "Authorization: Basic <YOUR_CREDENTIALS>" \ "https://automation.services.api.unity.com/v1/organizations/{organizationId}/apps/{appId}/versions"

Response example

{ "offset": 0, "limit": 0, "total": 0, "results": [ { "app": { "id": "string", "name": "string", "description": "string", "logo": "string", "url": "https://example.com", "tags": [ "string" ], "systemMetadata": { "createdByUnity": true, "organizationId": "string" }, "metadata": {} }, "version": "string", "platformVersion": "string", "lifecycle": { "lifecycleStatus": "Draft", "updatedOn": "2024-01-01T00:00:00Z", "archivingDate": "2024-01-01T00:00:00Z" }, "appVisibility": { "visibilityLevel": "Private", "updatedOn": "2024-01-01T00:00:00Z" }, "actions": [ { "actionId": "string", "name": "string", "description": "string", "terminationGracePeriodSeconds": 0, "inputParameters": [ null ], "outputParameters": [ null ], "secrets": [ null ], "requirements": { "configurationIds": null, "entitlements": null }, "metadata": {}, "timeout": { "defaultValue": null, "minValue": null, "maxValue": null }, "storages": [ null ] } ], "events": [ { "id": "string", "name": "string", "description": "string", "inputParameters": [ null ], "outputParameters": [ null ], "definition": { "type": null, "url": null, "headers": null, "body": null, "deleteUrl": null, "deleteBody": null, "eventFilter": null, "outputParameterMapping": null, "signature": null }, "secrets": [ null ], "requirements": {}, "metadata": {}, "app": { "id": null, "name": null, "description": null, "logo": null, "url": null, "tags": null, "systemMetadata": null, "metadata": null } } ], "metadata": {}, "systemMetadata": {}, "requiredEntitlements": [ { "entitlementIds": [ null ], "description": "string" } ] } ]}

Create App Version


Description: Creates a new App version. Can only be called from the organization the app belongs to.
Authorizations
Client (Client)
HTTP: Client
HTTP Authorization Scheme: bearer
Required scopes: Client
ServiceAccount (ServiceAccount)
HTTP: ServiceAccount
To get started with authentication, visit the Service Account Authentication section.
HTTP Authorization Scheme: basic
Required scopes: ServiceAccount

Path parameters for "Create App Version"

organizationId

string
required
The active Organization Id

appId

string
required
The app unique identifier

Request body for "Create App Version"

Media Type:
application/json

version

string
required
The app version to be created (format int.int.int[-rc.int] or int.int.int-sha.[7-14 chars] as a string).

metadata

object
The app version metadata

requiredEntitlements

array[object]
The list of entitlements of the app version

entitlementIds

array[string]
required
With multiple Ids, the condition is fulfilled when at least one of the values matches

description

string
required
Entitlement description

baseVersion

string
The app base version to create the new app version. Optional, if it's missing the last version is taken (format int.int.int[-rc.int] or int.int.int-sha.[7-14 chars] as a string).

HTTP response status codes for "Create App Version":

Code samples for "Create App Version":

Request example

curl -X POST \ -H "Authorization: Bearer <YOUR_TOKEN>" \ -H "Authorization: Basic <YOUR_CREDENTIALS>" \ -H "Content-Type: application/json" \ -d '{ "version": "string", "metadata": {}, "requiredEntitlements": [ { "entitlementIds": [ "string" ], "description": "string" } ], "baseVersion": "string"}' \ "https://automation.services.api.unity.com/v1/organizations/{organizationId}/apps/{appId}/versions"

Response example

{ "app": { "id": "string", "name": "string", "description": "string", "logo": "string", "url": "https://example.com", "tags": [ "string" ], "systemMetadata": { "createdByUnity": true, "organizationId": "string" }, "metadata": {} }, "version": "string", "platformVersion": "string", "lifecycle": { "lifecycleStatus": "Draft", "updatedOn": "2024-01-01T00:00:00Z", "archivingDate": "2024-01-01T00:00:00Z" }, "appVisibility": { "visibilityLevel": "Private", "updatedOn": "2024-01-01T00:00:00Z" }, "actions": [ { "actionId": "string", "name": "string", "description": "string", "terminationGracePeriodSeconds": 0, "inputParameters": [ { "displayName": "string", "name": "string", "type": "Bool", "description": "string", "required": true, "acceptedValues": [ null ], "regexPattern": "string", "defaultValue": null, "metadata": {}, "isList": true, "minItems": 0, "maxItems": 0, "masked": true } ], "outputParameters": [ { "displayName": "string", "name": "string", "type": "Bool", "description": "string" } ], "secrets": [ { "secretName": "string", "displayName": "string", "description": "string", "required": true } ], "requirements": { "configurationIds": [ "string" ], "entitlements": [ { "entitlementIds": null, "description": null } ] }, "metadata": {}, "timeout": { "defaultValue": 0, "minValue": 0, "maxValue": 0 }, "storages": [ { "name": "string", "description": "string", "required": true } ] } ], "events": [ { "id": "string", "name": "string", "description": "string", "inputParameters": [ { "displayName": "string", "name": "string", "type": "Bool", "description": "string", "required": true, "acceptedValues": [ null ], "regexPattern": "string", "defaultValue": null, "metadata": {}, "isList": true, "minItems": 0, "maxItems": 0, "masked": true } ], "outputParameters": [ { "displayName": "string", "name": "string", "type": "Bool", "description": "string" } ], "definition": { "type": "string", "url": "string", "headers": {}, "body": {}, "deleteUrl": "string", "deleteBody": {}, "eventFilter": {}, "outputParameterMapping": {}, "signature": { "algo": "HMACSHA256", "verifyHeader": "string" } }, "secrets": [ { "secretName": "string", "displayName": "string", "description": "string", "required": true } ], "requirements": {}, "metadata": {}, "app": { "id": "string", "name": "string", "description": "string", "logo": "string", "url": "https://example.com", "tags": [ "string" ], "systemMetadata": { "createdByUnity": true, "organizationId": "string" }, "metadata": {} } } ], "metadata": {}, "systemMetadata": {}, "requiredEntitlements": [ { "entitlementIds": [ "string" ], "description": "string" } ]}

Get App Version


Description: Returns the details of the app version that is accessible to your organization.
Authorizations
Client (Client)
HTTP: Client
HTTP Authorization Scheme: bearer
Required scopes: Client
ServiceAccount (ServiceAccount)
HTTP: ServiceAccount
To get started with authentication, visit the Service Account Authentication section.
HTTP Authorization Scheme: basic
Required scopes: ServiceAccount

Path parameters for "Get App Version"

organizationId

string
required
The active Organization Id

appId

string
required
The app unique identifier

appVersion

string
required
The app version (format int.int.int[-rc.int] or int.int.int-sha.[7-14 chars] as a string)

HTTP response status codes for "Get App Version":

Code samples for "Get App Version":

Request example

curl -X GET \ -H "Authorization: Bearer <YOUR_TOKEN>" \ -H "Authorization: Basic <YOUR_CREDENTIALS>" \ "https://automation.services.api.unity.com/v1/organizations/{organizationId}/apps/{appId}/versions/{appVersion}"

Response example

{ "app": { "id": "string", "name": "string", "description": "string", "logo": "string", "url": "https://example.com", "tags": [ "string" ], "systemMetadata": { "createdByUnity": true, "organizationId": "string" }, "metadata": {} }, "version": "string", "platformVersion": "string", "lifecycle": { "lifecycleStatus": "Draft", "updatedOn": "2024-01-01T00:00:00Z", "archivingDate": "2024-01-01T00:00:00Z" }, "appVisibility": { "visibilityLevel": "Private", "updatedOn": "2024-01-01T00:00:00Z" }, "actions": [ { "actionId": "string", "name": "string", "description": "string", "terminationGracePeriodSeconds": 0, "inputParameters": [ { "displayName": "string", "name": "string", "type": "Bool", "description": "string", "required": true, "acceptedValues": [ null ], "regexPattern": "string", "defaultValue": null, "metadata": {}, "isList": true, "minItems": 0, "maxItems": 0, "masked": true } ], "outputParameters": [ { "displayName": "string", "name": "string", "type": "Bool", "description": "string" } ], "secrets": [ { "secretName": "string", "displayName": "string", "description": "string", "required": true } ], "requirements": { "configurationIds": [ "string" ], "entitlements": [ { "entitlementIds": null, "description": null } ] }, "metadata": {}, "timeout": { "defaultValue": 0, "minValue": 0, "maxValue": 0 }, "storages": [ { "name": "string", "description": "string", "required": true } ] } ], "events": [ { "id": "string", "name": "string", "description": "string", "inputParameters": [ { "displayName": "string", "name": "string", "type": "Bool", "description": "string", "required": true, "acceptedValues": [ null ], "regexPattern": "string", "defaultValue": null, "metadata": {}, "isList": true, "minItems": 0, "maxItems": 0, "masked": true } ], "outputParameters": [ { "displayName": "string", "name": "string", "type": "Bool", "description": "string" } ], "definition": { "type": "string", "url": "string", "headers": {}, "body": {}, "deleteUrl": "string", "deleteBody": {}, "eventFilter": {}, "outputParameterMapping": {}, "signature": { "algo": "HMACSHA256", "verifyHeader": "string" } }, "secrets": [ { "secretName": "string", "displayName": "string", "description": "string", "required": true } ], "requirements": {}, "metadata": {}, "app": { "id": "string", "name": "string", "description": "string", "logo": "string", "url": "https://example.com", "tags": [ "string" ], "systemMetadata": { "createdByUnity": true, "organizationId": "string" }, "metadata": {} } } ], "metadata": {}, "systemMetadata": {}, "requiredEntitlements": [ { "entitlementIds": [ "string" ], "description": "string" } ]}

Update App Version


Description: Updates an App version. Can only be called from the organization the app belongs to.
Authorizations
Client (Client)
HTTP: Client
HTTP Authorization Scheme: bearer
Required scopes: Client
ServiceAccount (ServiceAccount)
HTTP: ServiceAccount
To get started with authentication, visit the Service Account Authentication section.
HTTP Authorization Scheme: basic
Required scopes: ServiceAccount

Path parameters for "Update App Version"

organizationId

string
required
The active Organization Id

appId

string
required
The app unique identifier

appVersion

string
required
The app version (format int.int.int[-rc.int] or int.int.int-sha.[7-14 chars] as a string)

Request body for "Update App Version"

Media Type:
application/json

metadata

object
The app version metadata

requiredEntitlements

array[object]
The list of entitlements of the app version

entitlementIds

array[string]
required
With multiple Ids, the condition is fulfilled when at least one of the values matches

description

string
required
Entitlement description

HTTP response status codes for "Update App Version":

Code samples for "Update App Version":

Request example

curl -X PATCH \ -H "Authorization: Bearer <YOUR_TOKEN>" \ -H "Authorization: Basic <YOUR_CREDENTIALS>" \ -H "Content-Type: application/json" \ -d '{ "metadata": {}, "requiredEntitlements": [ { "entitlementIds": [ "string" ], "description": "string" } ]}' \ "https://automation.services.api.unity.com/v1/organizations/{organizationId}/apps/{appId}/versions/{appVersion}"

Response example

{ "app": { "id": "string", "name": "string", "description": "string", "logo": "string", "url": "https://example.com", "tags": [ "string" ], "systemMetadata": { "createdByUnity": true, "organizationId": "string" }, "metadata": {} }, "version": "string", "platformVersion": "string", "lifecycle": { "lifecycleStatus": "Draft", "updatedOn": "2024-01-01T00:00:00Z", "archivingDate": "2024-01-01T00:00:00Z" }, "appVisibility": { "visibilityLevel": "Private", "updatedOn": "2024-01-01T00:00:00Z" }, "actions": [ { "actionId": "string", "name": "string", "description": "string", "terminationGracePeriodSeconds": 0, "inputParameters": [ { "displayName": "string", "name": "string", "type": "Bool", "description": "string", "required": true, "acceptedValues": [ null ], "regexPattern": "string", "defaultValue": null, "metadata": {}, "isList": true, "minItems": 0, "maxItems": 0, "masked": true } ], "outputParameters": [ { "displayName": "string", "name": "string", "type": "Bool", "description": "string" } ], "secrets": [ { "secretName": "string", "displayName": "string", "description": "string", "required": true } ], "requirements": { "configurationIds": [ "string" ], "entitlements": [ { "entitlementIds": null, "description": null } ] }, "metadata": {}, "timeout": { "defaultValue": 0, "minValue": 0, "maxValue": 0 }, "storages": [ { "name": "string", "description": "string", "required": true } ] } ], "events": [ { "id": "string", "name": "string", "description": "string", "inputParameters": [ { "displayName": "string", "name": "string", "type": "Bool", "description": "string", "required": true, "acceptedValues": [ null ], "regexPattern": "string", "defaultValue": null, "metadata": {}, "isList": true, "minItems": 0, "maxItems": 0, "masked": true } ], "outputParameters": [ { "displayName": "string", "name": "string", "type": "Bool", "description": "string" } ], "definition": { "type": "string", "url": "string", "headers": {}, "body": {}, "deleteUrl": "string", "deleteBody": {}, "eventFilter": {}, "outputParameterMapping": {}, "signature": { "algo": "HMACSHA256", "verifyHeader": "string" } }, "secrets": [ { "secretName": "string", "displayName": "string", "description": "string", "required": true } ], "requirements": {}, "metadata": {}, "app": { "id": "string", "name": "string", "description": "string", "logo": "string", "url": "https://example.com", "tags": [ "string" ], "systemMetadata": { "createdByUnity": true, "organizationId": "string" }, "metadata": {} } } ], "metadata": {}, "systemMetadata": {}, "requiredEntitlements": [ { "entitlementIds": [ "string" ], "description": "string" } ]}

Delete Draft App Version


Description: Deletes an app version. Can only be called from the organization the app belongs to, and for an unused app version that is in Draft state.
Required Role: Automation Developer
Required Feature Flag: automation_organization_creator_access
Authorizations
Client (Client)
HTTP: Client
HTTP Authorization Scheme: bearer
Required scopes: Client
ServiceAccount (ServiceAccount)
HTTP: ServiceAccount
To get started with authentication, visit the Service Account Authentication section.
HTTP Authorization Scheme: basic
Required scopes: ServiceAccount

Path parameters for "Delete Draft App Version"

organizationId

string
required
Organization Id

appId

string
required
App Id

appVersion

string
required
App version (format int.int.int[-rc.int] or int.int.int-sha.[7-14 chars] as a string)

HTTP response status codes for "Delete Draft App Version":

Code samples for "Delete Draft App Version":

Request example

curl -X DELETE \ -H "Authorization: Bearer <YOUR_TOKEN>" \ -H "Authorization: Basic <YOUR_CREDENTIALS>" \ "https://automation.services.api.unity.com/v1/organizations/{organizationId}/apps/{appId}/versions/{appVersion}"

Response example

{ "type": "string", "title": "string", "status": 0, "detail": "string", "instance": "string"}

Get App Version Config


Description: Returns the config of the app version from your organization.
Authorizations
Client (Client)
HTTP: Client
HTTP Authorization Scheme: bearer
Required scopes: Client
ServiceAccount (ServiceAccount)
HTTP: ServiceAccount
To get started with authentication, visit the Service Account Authentication section.
HTTP Authorization Scheme: basic
Required scopes: ServiceAccount

Path parameters for "Get App Version Config"

organizationId

string
required
The active Organization Id

appId

string
required
The app unique identifier

appVersion

string
required
The app version (format int.int.int[-rc.int] or int.int.int-sha.[7-14 chars] as a string)

HTTP response status codes for "Get App Version Config":

Code samples for "Get App Version Config":

Request example

curl -X GET \ -H "Authorization: Bearer <YOUR_TOKEN>" \ -H "Authorization: Basic <YOUR_CREDENTIALS>" \ "https://automation.services.api.unity.com/v1/organizations/{organizationId}/apps/{appId}/versions/{appVersion}/config"

Response example

{ "app": { "id": "string", "name": "string", "description": "string", "logo": "string", "url": "https://example.com", "tags": [ "string" ], "systemMetadata": { "createdByUnity": true, "organizationId": "string" }, "metadata": {} }, "version": "string", "platformVersion": "string", "lifecycle": { "lifecycleStatus": "Draft", "updatedOn": "2024-01-01T00:00:00Z", "archivingDate": "2024-01-01T00:00:00Z" }, "appVisibility": { "visibilityLevel": "Private", "updatedOn": "2024-01-01T00:00:00Z" }, "actions": [ { "action": { "actionId": "string", "name": "string", "description": "string", "terminationGracePeriodSeconds": 0, "inputParameters": [ { "displayName": null, "name": null, "type": null, "description": null, "required": null, "acceptedValues": null, "regexPattern": null, "defaultValue": null, "metadata": null, "isList": null, "minItems": null, "maxItems": null, "masked": null } ], "outputParameters": [ { "displayName": null, "name": null, "type": null, "description": null } ], "secrets": [ { "secretName": null, "displayName": null, "description": null, "required": null } ], "requirements": { "configurationIds": [ null ], "entitlements": [ null ] }, "metadata": {}, "timeout": { "defaultValue": 0, "minValue": 0, "maxValue": 0 }, "storages": [ { "name": null, "description": null, "required": null } ] }, "definition": { "type": "string", "outputMapping": { "actionOutputs": [ null ] }, "environmentMapping": [ { "name": null, "value": null } ], "internalStorages": [ { "type": null, "name": null, "sizeLimit": null } ], "semaphores": [ "string" ], "impersonationContext": { "projectId": "string", "environmentName": "string" }, "imageName": "string", "imagePath": "string", "command": [ "string" ], "args": [ "string" ], "artifacts": [ { "name": null, "path": null, "data": null } ], "errorCodes": [ { "exitCode": null, "message": null } ], "embeddedSecrets": [ { "secretName": null, "source": null } ], "daemon": true, "readinessProbe": { "execCommand": [ null ], "httpGet": { "path": null, "port": null }, "initialDelaySeconds": 0, "periodSeconds": 0, "failureThreshold": 0 }, "ports": [ { "containerPort": null, "name": null } ] } } ], "events": [ { "id": "string", "name": "string", "description": "string", "inputParameters": [ { "displayName": "string", "name": "string", "type": "Bool", "description": "string", "required": true, "acceptedValues": [ null ], "regexPattern": "string", "defaultValue": null, "metadata": {}, "isList": true, "minItems": 0, "maxItems": 0, "masked": true } ], "outputParameters": [ { "displayName": "string", "name": "string", "type": "Bool", "description": "string" } ], "definition": { "type": "string", "url": "string", "headers": {}, "body": {}, "deleteUrl": "string", "deleteBody": {}, "eventFilter": {}, "outputParameterMapping": {}, "signature": { "algo": "HMACSHA256", "verifyHeader": "string" } }, "secrets": [ { "secretName": "string", "displayName": "string", "description": "string", "required": true } ], "requirements": {}, "metadata": {}, "app": { "id": "string", "name": "string", "description": "string", "logo": "string", "url": "https://example.com", "tags": [ "string" ], "systemMetadata": { "createdByUnity": true, "organizationId": "string" }, "metadata": {} } } ], "metadata": {}, "systemMetadata": {}, "requiredEntitlements": [ { "entitlementIds": [ "string" ], "description": "string" } ]}

Change App State


Description: An app status can go from Draft to Available or Archived, from Available to Deprecated (with an optional ArchivingDate in UTC format passed in the body), Deprecated to Deprecated (specifying ArchivingDate in the body) and from Deprecated to Archived. Can only be called from the organization the app belongs to.
Required Role: Automation Developer
Required Feature Flag: automation_organization_creator_access
Authorizations
Client (Client)
HTTP: Client
HTTP Authorization Scheme: bearer
Required scopes: Client
ServiceAccount (ServiceAccount)
HTTP: ServiceAccount
To get started with authentication, visit the Service Account Authentication section.
HTTP Authorization Scheme: basic
Required scopes: ServiceAccount

Path parameters for "Change App State"

organizationId

string
required
The active Organization Id

appId

string
required
The app unique identifier

appVersion

string
required
The app version (format int.int.int[-rc.int] or int.int.int-sha.[7-14 chars] as a string)

targetStatus

string
required
The Lifecycle status to set for the AppVersion

Request body for "Change App State"

Media Type:
application/json

archivingDate

string
When Deprecated status is requested, this parameter contains the UTC date that the app/pipeline will be archived. If not specified, 6 months from the current date will be used.

HTTP response status codes for "Change App State":

Code samples for "Change App State":

Request example

curl -X POST \ -H "Authorization: Bearer <YOUR_TOKEN>" \ -H "Authorization: Basic <YOUR_CREDENTIALS>" \ -H "Content-Type: application/json" \ -d '{ "archivingDate": "2024-01-01T00:00:00Z"}' \ "https://automation.services.api.unity.com/v1/organizations/{organizationId}/apps/{appId}/versions/{appVersion}/status/{targetStatus}"

Response example

{ "lifecycleStatus": "Draft", "updatedOn": "2024-01-01T00:00:00Z", "archivingDate": "2024-01-01T00:00:00Z"}

Make an App public


Description: Moves the app version visibility from private to public. Can only be called from the organization the app belongs to.
Required Role: Automation Developer
Required Feature Flag: automation_organization_creator_access
Authorizations
Client (Client)
HTTP: Client
HTTP Authorization Scheme: bearer
Required scopes: Client
ServiceAccount (ServiceAccount)
HTTP: ServiceAccount
To get started with authentication, visit the Service Account Authentication section.
HTTP Authorization Scheme: basic
Required scopes: ServiceAccount

Path parameters for "Make an App public"

organizationId

string
required
The active Organization Id

appId

string
required
The app unique identifier

appVersion

string
required
The app version (format int.int.int[-rc.int] or int.int.int-sha.[7-14 chars] as a string)

HTTP response status codes for "Make an App public":

Code samples for "Make an App public":

Request example

curl -X POST \ -H "Authorization: Bearer <YOUR_TOKEN>" \ -H "Authorization: Basic <YOUR_CREDENTIALS>" \ "https://automation.services.api.unity.com/v1/organizations/{organizationId}/apps/{appId}/versions/{appVersion}/publish"

Response example

{ "visibilityLevel": "Private", "updatedOn": "2024-01-01T00:00:00Z"}

Create new App Action


Description: Creates a new app action. Can only be called from the organization the app belongs to. App version needs to be in a draft status.
Required Role: Automation Developer
Required Feature Flag: automation_organization_creator_access
Authorizations
Client (Client)
HTTP: Client
HTTP Authorization Scheme: bearer
Required scopes: Client
ServiceAccount (ServiceAccount)
HTTP: ServiceAccount
To get started with authentication, visit the Service Account Authentication section.
HTTP Authorization Scheme: basic
Required scopes: ServiceAccount

Path parameters for "Create new App Action"

organizationId

string
required
Organization Id

appId

string
required
App Id

appVersion

string
required
App version (format int.int.int[-rc.int] or int.int.int-sha.[7-14 chars] as a string)

Request body for "Create new App Action"

Media Type:
application/json

action

object
required
The Action Input Dto

name

string
required
The name of the action.

description

string
required
The description of the action.

terminationGracePeriodSeconds

integer
The grace period to wait before killing the process, after the termination request is sent.

inputParameters

array[object]
The input parameters of the action.

displayName

string
required
The display name of the parameter.

name

string
required
The name of the parameter.

type

string
required
Parameter type. Each value constrains what an input value must be:

Type

Accepted value

Bool
JSON boolean (
true
or
false
).
Int
JSON integer within the 32-bit signed range.
Float
JSON number with single precision. Integers are accepted.
String
JSON string, including one that holds a UUID or URL.
Url
Absolute
http
or
https
URL, as a string.
UUID
UUID, as a string (for example
3fa85f64-5717-4562-b3fc-2c963f66afa6
).
Text
,
Script
,
File
JSON string. The service applies no further checks.
A value can reference another value with
{{...}}
, for example
{{inputParameters.name}}
. For
Bool
,
Int
,
Float
and
UUID
the whole value must be the reference. For the other types the reference can sit inside a longer string. A value that holds a reference is not validated.
After the type check,
regexPattern
is matched against the value's string form and
acceptedValues
must contain the value. When
isList
is true the value is a JSON array, each item is checked as above, and
minItems
and
maxItems
bound the item count.

description

string
required
The description of the parameter.

required

boolean
required
Indicates if the parameter is mandatory.

acceptedValues

array[object]
A map of values accepted.

regexPattern

string
The validation regex used to validate the parameter.

defaultValue

Optional default value.

metadata

object
key map metadata

isList

boolean
Optional boolean indicating this input parameter takes a list as input

minItems

integer
Optional minimum number of items a list value must hold. Only allowed when Unity.Cloud.Automation.Models.Common.InputParameterDto.IsList is true. A value that references another parameter or a step output is not checked, since its list does not exist until the job runs.

maxItems

integer
Optional maximum number of items a list value may hold. Only allowed when Unity.Cloud.Automation.Models.Common.InputParameterDto.IsList is true, and must not be less than Unity.Cloud.Automation.Models.Common.InputParameterDto.MinItems. References are not checked, as for Unity.Cloud.Automation.Models.Common.InputParameterDto.MinItems.

masked

boolean
Whether the parameter value should be masked in all responses.

outputParameters

array[object]
The output parameters of the action.

displayName

string
required
The display name of the parameter.

name

string
required
The name of the parameter.

type

string
required
Parameter type. Each value constrains what an input value must be:

Type

Accepted value

Bool
JSON boolean (
true
or
false
).
Int
JSON integer within the 32-bit signed range.
Float
JSON number with single precision. Integers are accepted.
String
JSON string, including one that holds a UUID or URL.
Url
Absolute
http
or
https
URL, as a string.
UUID
UUID, as a string (for example
3fa85f64-5717-4562-b3fc-2c963f66afa6
).
Text
,
Script
,
File
JSON string. The service applies no further checks.
A value can reference another value with
{{...}}
, for example
{{inputParameters.name}}
. For
Bool
,
Int
,
Float
and
UUID
the whole value must be the reference. For the other types the reference can sit inside a longer string. A value that holds a reference is not validated.
After the type check,
regexPattern
is matched against the value's string form and
acceptedValues
must contain the value. When
isList
is true the value is a JSON array, each item is checked as above, and
minItems
and
maxItems
bound the item count.

description

string
required
The description of the parameter.

secrets

array[object]
Array of secrets

secretName

string
required
Secret key

displayName

string
required
The display name of the Secret

description

string
required
Secret description

required

boolean
required
Secret user input

requirements

object
An object containing the requirements needed to create a new action.

configurationIds

array[string]
configuration ids

entitlements

array[object]
Array of entitlements

entitlementIds

array[string]
required
With multiple Ids, the condition is fulfilled when at least one of the values matches

description

string
required
Entitlement description

metadata

object
The metadata of the action.

timeout

object
Timeout object

defaultValue

integer
required
The default timeout value in seconds.

minValue

integer
required
The min timeout value in seconds.

maxValue

integer
required
The max timeout value in seconds.

storages

array[object]
The storages that can be passed to the action.

name

string
required
The name of the action storage.

description

string
The description of the action storage.

required

boolean
Indicates if the storage is required or optional.

definition

required
The action definition.
One of

HTTP response status codes for "Create new App Action":

Code samples for "Create new App Action":

Request example

curl -X POST \ -H "Authorization: Bearer <YOUR_TOKEN>" \ -H "Authorization: Basic <YOUR_CREDENTIALS>" \ -H "Content-Type: application/json" \ -d '{ "action": { "name": "string", "description": "string", "terminationGracePeriodSeconds": 0, "inputParameters": [ { "displayName": "string", "name": "string", "type": "Bool", "description": "string", "required": true, "acceptedValues": [ null ], "regexPattern": "string", "defaultValue": null, "metadata": {}, "isList": true, "minItems": 0, "maxItems": 0, "masked": true } ], "outputParameters": [ { "displayName": "string", "name": "string", "type": "Bool", "description": "string" } ], "secrets": [ { "secretName": "string", "displayName": "string", "description": "string", "required": true } ], "requirements": { "configurationIds": [ "string" ], "entitlements": [ { "entitlementIds": [ null ], "description": "string" } ] }, "metadata": {}, "timeout": { "defaultValue": 0, "minValue": 0, "maxValue": 0 }, "storages": [ { "name": "string", "description": "string", "required": true } ] }, "definition": { "type": "string", "outputMapping": { "actionOutputs": [ { "type": "string", "name": "string", "file": "string" } ] }, "environmentMapping": [ { "name": "string", "value": "string" } ], "internalStorages": [ { "type": "string", "name": "string", "sizeLimit": "string" } ], "semaphores": [ "string" ], "impersonationContext": { "projectId": "string", "environmentName": "string" }, "imageName": "string", "imagePath": "string", "command": [ "string" ], "args": [ "string" ], "artifacts": [ { "name": "string", "path": "string", "data": "string" } ], "errorCodes": [ { "exitCode": 0, "message": "string" } ], "embeddedSecrets": [ { "secretName": "string", "source": { "type": "None" } } ], "daemon": true, "readinessProbe": { "execCommand": [ "string" ], "httpGet": { "path": "string", "port": "string" }, "initialDelaySeconds": 0, "periodSeconds": 0, "failureThreshold": 0 }, "ports": [ { "containerPort": 0, "name": "string" } ] }}' \ "https://automation.services.api.unity.com/v1/organizations/{organizationId}/apps/{appId}/versions/{appVersion}/actions"

Response example

{ "action": { "actionId": "string", "name": "string", "description": "string", "terminationGracePeriodSeconds": 0, "inputParameters": [ { "displayName": "string", "name": "string", "type": "Bool", "description": "string", "required": true, "acceptedValues": [ null ], "regexPattern": "string", "defaultValue": null, "metadata": {}, "isList": true, "minItems": 0, "maxItems": 0, "masked": true } ], "outputParameters": [ { "displayName": "string", "name": "string", "type": "Bool", "description": "string" } ], "secrets": [ { "secretName": "string", "displayName": "string", "description": "string", "required": true } ], "requirements": { "configurationIds": [ "string" ], "entitlements": [ { "entitlementIds": [ null ], "description": "string" } ] }, "metadata": {}, "timeout": { "defaultValue": 0, "minValue": 0, "maxValue": 0 }, "storages": [ { "name": "string", "description": "string", "required": true } ] }, "definition": { "type": "string", "outputMapping": { "actionOutputs": [ { "type": "string", "name": "string", "file": "string" } ] }, "environmentMapping": [ { "name": "string", "value": "string" } ], "internalStorages": [ { "type": "string", "name": "string", "sizeLimit": "string" } ], "semaphores": [ "string" ], "impersonationContext": { "projectId": "string", "environmentName": "string" }, "imageName": "string", "imagePath": "string", "command": [ "string" ], "args": [ "string" ], "artifacts": [ { "name": "string", "path": "string", "data": "string" } ], "errorCodes": [ { "exitCode": 0, "message": "string" } ], "embeddedSecrets": [ { "secretName": "string", "source": { "type": "None" } } ], "daemon": true, "readinessProbe": { "execCommand": [ "string" ], "httpGet": { "path": "string", "port": "string" }, "initialDelaySeconds": 0, "periodSeconds": 0, "failureThreshold": 0 }, "ports": [ { "containerPort": 0, "name": "string" } ] }}

Get App Action


Description: Get the details on an app action. Can only be called from the organization the app belongs to.
Authorizations
Client (Client)
HTTP: Client
HTTP Authorization Scheme: bearer
Required scopes: Client
ServiceAccount (ServiceAccount)
HTTP: ServiceAccount
To get started with authentication, visit the Service Account Authentication section.
HTTP Authorization Scheme: basic
Required scopes: ServiceAccount

Path parameters for "Get App Action"

organizationId

string
required
Organization Id

appId

string
required
App Id

appVersion

string
required
App version (format int.int.int[-rc.int] or int.int.int-sha.[7-14 chars] as a string)

actionId

string
required
Action Id

HTTP response status codes for "Get App Action":

Code samples for "Get App Action":

Request example

curl -X GET \ -H "Authorization: Bearer <YOUR_TOKEN>" \ -H "Authorization: Basic <YOUR_CREDENTIALS>" \ "https://automation.services.api.unity.com/v1/organizations/{organizationId}/apps/{appId}/versions/{appVersion}/actions/{actionId}"

Response example

{ "action": { "actionId": "string", "name": "string", "description": "string", "terminationGracePeriodSeconds": 0, "inputParameters": [ { "displayName": "string", "name": "string", "type": "Bool", "description": "string", "required": true, "acceptedValues": [ null ], "regexPattern": "string", "defaultValue": null, "metadata": {}, "isList": true, "minItems": 0, "maxItems": 0, "masked": true } ], "outputParameters": [ { "displayName": "string", "name": "string", "type": "Bool", "description": "string" } ], "secrets": [ { "secretName": "string", "displayName": "string", "description": "string", "required": true } ], "requirements": { "configurationIds": [ "string" ], "entitlements": [ { "entitlementIds": [ null ], "description": "string" } ] }, "metadata": {}, "timeout": { "defaultValue": 0, "minValue": 0, "maxValue": 0 }, "storages": [ { "name": "string", "description": "string", "required": true } ] }, "definition": { "type": "string", "outputMapping": { "actionOutputs": [ { "type": "string", "name": "string", "file": "string" } ] }, "environmentMapping": [ { "name": "string", "value": "string" } ], "internalStorages": [ { "type": "string", "name": "string", "sizeLimit": "string" } ], "semaphores": [ "string" ], "impersonationContext": { "projectId": "string", "environmentName": "string" }, "imageName": "string", "imagePath": "string", "command": [ "string" ], "args": [ "string" ], "artifacts": [ { "name": "string", "path": "string", "data": "string" } ], "errorCodes": [ { "exitCode": 0, "message": "string" } ], "embeddedSecrets": [ { "secretName": "string", "source": { "type": "None" } } ], "daemon": true, "readinessProbe": { "execCommand": [ "string" ], "httpGet": { "path": "string", "port": "string" }, "initialDelaySeconds": 0, "periodSeconds": 0, "failureThreshold": 0 }, "ports": [ { "containerPort": 0, "name": "string" } ] }}

Update App Action


Description: Updates an app action. Can only be called from the organization the app belongs to. App version needs to be in a draft status.
Required Role: Automation Developer
Required Feature Flag: automation_organization_creator_access
Authorizations
Client (Client)
HTTP: Client
HTTP Authorization Scheme: bearer
Required scopes: Client
ServiceAccount (ServiceAccount)
HTTP: ServiceAccount
To get started with authentication, visit the Service Account Authentication section.
HTTP Authorization Scheme: basic
Required scopes: ServiceAccount

Path parameters for "Update App Action"

organizationId

string
required
Organization Id

appId

string
required
App Id

appVersion

string
required
App version (format int.int.int[-rc.int] or int.int.int-sha.[7-14 chars] as a string)

actionId

string
required
Action Id

Request body for "Update App Action"

Media Type:
application/json

action

object
required
The Action Input Dto

name

string
required
The name of the action.

description

string
required
The description of the action.

terminationGracePeriodSeconds

integer
The grace period to wait before killing the process, after the termination request is sent.

inputParameters

array[object]
The input parameters of the action.

displayName

string
required
The display name of the parameter.

name

string
required
The name of the parameter.

type

string
required
Parameter type. Each value constrains what an input value must be:

Type

Accepted value

Bool
JSON boolean (
true
or
false
).
Int
JSON integer within the 32-bit signed range.
Float
JSON number with single precision. Integers are accepted.
String
JSON string, including one that holds a UUID or URL.
Url
Absolute
http
or
https
URL, as a string.
UUID
UUID, as a string (for example
3fa85f64-5717-4562-b3fc-2c963f66afa6
).
Text
,
Script
,
File
JSON string. The service applies no further checks.
A value can reference another value with
{{...}}
, for example
{{inputParameters.name}}
. For
Bool
,
Int
,
Float
and
UUID
the whole value must be the reference. For the other types the reference can sit inside a longer string. A value that holds a reference is not validated.
After the type check,
regexPattern
is matched against the value's string form and
acceptedValues
must contain the value. When
isList
is true the value is a JSON array, each item is checked as above, and
minItems
and
maxItems
bound the item count.

description

string
required
The description of the parameter.

required

boolean
required
Indicates if the parameter is mandatory.

acceptedValues

array[object]
A map of values accepted.

regexPattern

string
The validation regex used to validate the parameter.

defaultValue

Optional default value.

metadata

object
key map metadata

isList

boolean
Optional boolean indicating this input parameter takes a list as input

minItems

integer
Optional minimum number of items a list value must hold. Only allowed when Unity.Cloud.Automation.Models.Common.InputParameterDto.IsList is true. A value that references another parameter or a step output is not checked, since its list does not exist until the job runs.

maxItems

integer
Optional maximum number of items a list value may hold. Only allowed when Unity.Cloud.Automation.Models.Common.InputParameterDto.IsList is true, and must not be less than Unity.Cloud.Automation.Models.Common.InputParameterDto.MinItems. References are not checked, as for Unity.Cloud.Automation.Models.Common.InputParameterDto.MinItems.

masked

boolean
Whether the parameter value should be masked in all responses.

outputParameters

array[object]
The output parameters of the action.

displayName

string
required
The display name of the parameter.

name

string
required
The name of the parameter.

type

string
required
Parameter type. Each value constrains what an input value must be:

Type

Accepted value

Bool
JSON boolean (
true
or
false
).
Int
JSON integer within the 32-bit signed range.
Float
JSON number with single precision. Integers are accepted.
String
JSON string, including one that holds a UUID or URL.
Url
Absolute
http
or
https
URL, as a string.
UUID
UUID, as a string (for example
3fa85f64-5717-4562-b3fc-2c963f66afa6
).
Text
,
Script
,
File
JSON string. The service applies no further checks.
A value can reference another value with
{{...}}
, for example
{{inputParameters.name}}
. For
Bool
,
Int
,
Float
and
UUID
the whole value must be the reference. For the other types the reference can sit inside a longer string. A value that holds a reference is not validated.
After the type check,
regexPattern
is matched against the value's string form and
acceptedValues
must contain the value. When
isList
is true the value is a JSON array, each item is checked as above, and
minItems
and
maxItems
bound the item count.

description

string
required
The description of the parameter.

secrets

array[object]
Array of secrets

secretName

string
required
Secret key

displayName

string
required
The display name of the Secret

description

string
required
Secret description

required

boolean
required
Secret user input

requirements

object
An object containing the requirements needed to create a new action.

configurationIds

array[string]
configuration ids

entitlements

array[object]
Array of entitlements

entitlementIds

array[string]
required
With multiple Ids, the condition is fulfilled when at least one of the values matches

description

string
required
Entitlement description

metadata

object
The metadata of the action.

timeout

object
Timeout object

defaultValue

integer
required
The default timeout value in seconds.

minValue

integer
required
The min timeout value in seconds.

maxValue

integer
required
The max timeout value in seconds.

storages

array[object]
The storages that can be passed to the action.

name

string
required
The name of the action storage.

description

string
The description of the action storage.

required

boolean
Indicates if the storage is required or optional.

definition

required
The action definition.
One of

HTTP response status codes for "Update App Action":

Code samples for "Update App Action":

Request example

curl -X PATCH \ -H "Authorization: Bearer <YOUR_TOKEN>" \ -H "Authorization: Basic <YOUR_CREDENTIALS>" \ -H "Content-Type: application/json" \ -d '{ "action": { "name": "string", "description": "string", "terminationGracePeriodSeconds": 0, "inputParameters": [ { "displayName": "string", "name": "string", "type": "Bool", "description": "string", "required": true, "acceptedValues": [ null ], "regexPattern": "string", "defaultValue": null, "metadata": {}, "isList": true, "minItems": 0, "maxItems": 0, "masked": true } ], "outputParameters": [ { "displayName": "string", "name": "string", "type": "Bool", "description": "string" } ], "secrets": [ { "secretName": "string", "displayName": "string", "description": "string", "required": true } ], "requirements": { "configurationIds": [ "string" ], "entitlements": [ { "entitlementIds": [ null ], "description": "string" } ] }, "metadata": {}, "timeout": { "defaultValue": 0, "minValue": 0, "maxValue": 0 }, "storages": [ { "name": "string", "description": "string", "required": true } ] }, "definition": { "type": "string", "outputMapping": { "actionOutputs": [ { "type": "string", "name": "string", "file": "string" } ] }, "environmentMapping": [ { "name": "string", "value": "string" } ], "internalStorages": [ { "type": "string", "name": "string", "sizeLimit": "string" } ], "semaphores": [ "string" ], "impersonationContext": { "projectId": "string", "environmentName": "string" }, "imageName": "string", "imagePath": "string", "command": [ "string" ], "args": [ "string" ], "artifacts": [ { "name": "string", "path": "string", "data": "string" } ], "errorCodes": [ { "exitCode": 0, "message": "string" } ], "embeddedSecrets": [ { "secretName": "string", "source": { "type": "None" } } ], "daemon": true, "readinessProbe": { "execCommand": [ "string" ], "httpGet": { "path": "string", "port": "string" }, "initialDelaySeconds": 0, "periodSeconds": 0, "failureThreshold": 0 }, "ports": [ { "containerPort": 0, "name": "string" } ] }}' \ "https://automation.services.api.unity.com/v1/organizations/{organizationId}/apps/{appId}/versions/{appVersion}/actions/{actionId}"

Response example

{ "action": { "actionId": "string", "name": "string", "description": "string", "terminationGracePeriodSeconds": 0, "inputParameters": [ { "displayName": "string", "name": "string", "type": "Bool", "description": "string", "required": true, "acceptedValues": [ null ], "regexPattern": "string", "defaultValue": null, "metadata": {}, "isList": true, "minItems": 0, "maxItems": 0, "masked": true } ], "outputParameters": [ { "displayName": "string", "name": "string", "type": "Bool", "description": "string" } ], "secrets": [ { "secretName": "string", "displayName": "string", "description": "string", "required": true } ], "requirements": { "configurationIds": [ "string" ], "entitlements": [ { "entitlementIds": [ null ], "description": "string" } ] }, "metadata": {}, "timeout": { "defaultValue": 0, "minValue": 0, "maxValue": 0 }, "storages": [ { "name": "string", "description": "string", "required": true } ] }, "definition": { "type": "string", "outputMapping": { "actionOutputs": [ { "type": "string", "name": "string", "file": "string" } ] }, "environmentMapping": [ { "name": "string", "value": "string" } ], "internalStorages": [ { "type": "string", "name": "string", "sizeLimit": "string" } ], "semaphores": [ "string" ], "impersonationContext": { "projectId": "string", "environmentName": "string" }, "imageName": "string", "imagePath": "string", "command": [ "string" ], "args": [ "string" ], "artifacts": [ { "name": "string", "path": "string", "data": "string" } ], "errorCodes": [ { "exitCode": 0, "message": "string" } ], "embeddedSecrets": [ { "secretName": "string", "source": { "type": "None" } } ], "daemon": true, "readinessProbe": { "execCommand": [ "string" ], "httpGet": { "path": "string", "port": "string" }, "initialDelaySeconds": 0, "periodSeconds": 0, "failureThreshold": 0 }, "ports": [ { "containerPort": 0, "name": "string" } ] }}

Delete App Action


Description: Deletes an app action. Can only be called from the organization the app belongs to. App version needs to be in a draft status.
Required Role: Automation Developer
Required Feature Flag: automation_organization_creator_access
Authorizations
Client (Client)
HTTP: Client
HTTP Authorization Scheme: bearer
Required scopes: Client
ServiceAccount (ServiceAccount)
HTTP: ServiceAccount
To get started with authentication, visit the Service Account Authentication section.
HTTP Authorization Scheme: basic
Required scopes: ServiceAccount

Path parameters for "Delete App Action"

organizationId

string
required
Organization Id

appId

string
required
App Id

appVersion

string
required
App version (format int.int.int[-rc.int] or int.int.int-sha.[7-14 chars] as a string)

actionId

string
required
Action Id

HTTP response status codes for "Delete App Action":

Code samples for "Delete App Action":

Request example

curl -X DELETE \ -H "Authorization: Bearer <YOUR_TOKEN>" \ -H "Authorization: Basic <YOUR_CREDENTIALS>" \ "https://automation.services.api.unity.com/v1/organizations/{organizationId}/apps/{appId}/versions/{appVersion}/actions/{actionId}"

Response example

{ "type": "string", "title": "string", "status": 0, "detail": "string", "instance": "string"}

Create new App Event


Description: Creates a new event. Can only be called from the organization the app belongs to. App version needs to be in a draft status.
Authorizations
Client (Client)
HTTP: Client
HTTP Authorization Scheme: bearer
Required scopes: Client
ServiceAccount (ServiceAccount)
HTTP: ServiceAccount
To get started with authentication, visit the Service Account Authentication section.
HTTP Authorization Scheme: basic
Required scopes: ServiceAccount

Path parameters for "Create new App Event"

organizationId

string
required
Organization Id

appId

string
required
App Id

appVersion

string
required
App version (format int.int.int[-rc.int] or int.int.int-sha.[7-14 chars] as a string)

Request body for "Create new App Event"

Media Type:
application/json

name

string
required
Name

description

string
required
Description

inputParameters

array[object]
required
input parameters

displayName

string
required
The display name of the parameter.

name

string
required
The name of the parameter.

type

string
required
Parameter type. Each value constrains what an input value must be:

Type

Accepted value

Bool
JSON boolean (
true
or
false
).
Int
JSON integer within the 32-bit signed range.
Float
JSON number with single precision. Integers are accepted.
String
JSON string, including one that holds a UUID or URL.
Url
Absolute
http
or
https
URL, as a string.
UUID
UUID, as a string (for example
3fa85f64-5717-4562-b3fc-2c963f66afa6
).
Text
,
Script
,
File
JSON string. The service applies no further checks.
A value can reference another value with
{{...}}
, for example
{{inputParameters.name}}
. For
Bool
,
Int
,
Float
and
UUID
the whole value must be the reference. For the other types the reference can sit inside a longer string. A value that holds a reference is not validated.
After the type check,
regexPattern
is matched against the value's string form and
acceptedValues
must contain the value. When
isList
is true the value is a JSON array, each item is checked as above, and
minItems
and
maxItems
bound the item count.

description

string
required
The description of the parameter.

required

boolean
required
Indicates if the parameter is mandatory.

acceptedValues

array[object]
A map of values accepted.

regexPattern

string
The validation regex used to validate the parameter.

defaultValue

Optional default value.

metadata

object
key map metadata

isList

boolean
Optional boolean indicating this input parameter takes a list as input

minItems

integer
Optional minimum number of items a list value must hold. Only allowed when Unity.Cloud.Automation.Models.Common.InputParameterDto.IsList is true. A value that references another parameter or a step output is not checked, since its list does not exist until the job runs.

maxItems

integer
Optional maximum number of items a list value may hold. Only allowed when Unity.Cloud.Automation.Models.Common.InputParameterDto.IsList is true, and must not be less than Unity.Cloud.Automation.Models.Common.InputParameterDto.MinItems. References are not checked, as for Unity.Cloud.Automation.Models.Common.InputParameterDto.MinItems.

masked

boolean
Whether the parameter value should be masked in all responses.

outputParameters

array[object]
required
output parameters

displayName

string
required
The display name of the parameter.

name

string
required
The name of the parameter.

type

string
required
Parameter type. Each value constrains what an input value must be:

Type

Accepted value

Bool
JSON boolean (
true
or
false
).
Int
JSON integer within the 32-bit signed range.
Float
JSON number with single precision. Integers are accepted.
String
JSON string, including one that holds a UUID or URL.
Url
Absolute
http
or
https
URL, as a string.
UUID
UUID, as a string (for example
3fa85f64-5717-4562-b3fc-2c963f66afa6
).
Text
,
Script
,
File
JSON string. The service applies no further checks.
A value can reference another value with
{{...}}
, for example
{{inputParameters.name}}
. For
Bool
,
Int
,
Float
and
UUID
the whole value must be the reference. For the other types the reference can sit inside a longer string. A value that holds a reference is not validated.
After the type check,
regexPattern
is matched against the value's string form and
acceptedValues
must contain the value. When
isList
is true the value is a JSON array, each item is checked as above, and
minItems
and
maxItems
bound the item count.

description

string
required
The description of the parameter.

definition

required
definition
One of

secrets

array[object]
secrets

secretName

string
required
Secret key

displayName

string
required
The display name of the Secret

description

string
required
Secret description

required

boolean
required
Secret user input

requirements

object
Represents a requirement instance.

metadata

object
metadata

HTTP response status codes for "Create new App Event":

Code samples for "Create new App Event":

Request example

curl -X POST \ -H "Authorization: Bearer <YOUR_TOKEN>" \ -H "Authorization: Basic <YOUR_CREDENTIALS>" \ -H "Content-Type: application/json" \ -d '{ "name": "string", "description": "string", "inputParameters": [ { "displayName": "string", "name": "string", "type": "Bool", "description": "string", "required": true, "acceptedValues": [ null ], "regexPattern": "string", "defaultValue": null, "metadata": {}, "isList": true, "minItems": 0, "maxItems": 0, "masked": true } ], "outputParameters": [ { "displayName": "string", "name": "string", "type": "Bool", "description": "string" } ], "definition": { "type": "string", "url": "string", "headers": {}, "body": {}, "deleteUrl": "string", "deleteBody": {}, "eventFilter": {}, "outputParameterMapping": {}, "signature": { "algo": "HMACSHA256", "verifyHeader": "string" } }, "secrets": [ { "secretName": "string", "displayName": "string", "description": "string", "required": true } ], "requirements": {}, "metadata": {}}' \ "https://automation.services.api.unity.com/v1/organizations/{organizationId}/apps/{appId}/versions/{appVersion}/events"

Response example

{ "id": "string", "name": "string", "description": "string", "inputParameters": [ { "displayName": "string", "name": "string", "type": "Bool", "description": "string", "required": true, "acceptedValues": [ null ], "regexPattern": "string", "defaultValue": null, "metadata": {}, "isList": true, "minItems": 0, "maxItems": 0, "masked": true } ], "outputParameters": [ { "displayName": "string", "name": "string", "type": "Bool", "description": "string" } ], "definition": { "type": "string", "url": "string", "headers": {}, "body": {}, "deleteUrl": "string", "deleteBody": {}, "eventFilter": {}, "outputParameterMapping": {}, "signature": { "algo": "HMACSHA256", "verifyHeader": "string" } }, "secrets": [ { "secretName": "string", "displayName": "string", "description": "string", "required": true } ], "requirements": {}, "metadata": {}, "app": { "id": "string", "name": "string", "description": "string", "logo": "string", "url": "https://example.com", "tags": [ "string" ], "systemMetadata": { "createdByUnity": true, "organizationId": "string" }, "metadata": {} }}

Get App Event


Description: Get the details on an app event. Can only be called from the organization the app belongs to.
Authorizations
Client (Client)
HTTP: Client
HTTP Authorization Scheme: bearer
Required scopes: Client
ServiceAccount (ServiceAccount)
HTTP: ServiceAccount
To get started with authentication, visit the Service Account Authentication section.
HTTP Authorization Scheme: basic
Required scopes: ServiceAccount

Path parameters for "Get App Event"

organizationId

string
required
Organization Id

appId

string
required
App Id

appVersion

string
required
App version (format int.int.int[-rc.int] or int.int.int-sha.[7-14 chars] as a string)

eventId

string
required
Event Id

Query parameters for "Get App Event"

includeFields

string
A comma-separated string of fields to include in the response. Supported value: "app".

HTTP response status codes for "Get App Event":

Code samples for "Get App Event":

Request example

curl -X GET \ -H "Authorization: Bearer <YOUR_TOKEN>" \ -H "Authorization: Basic <YOUR_CREDENTIALS>" \ "https://automation.services.api.unity.com/v1/organizations/{organizationId}/apps/{appId}/versions/{appVersion}/events/{eventId}"

Response example

{ "id": "string", "name": "string", "description": "string", "inputParameters": [ { "displayName": "string", "name": "string", "type": "Bool", "description": "string", "required": true, "acceptedValues": [ null ], "regexPattern": "string", "defaultValue": null, "metadata": {}, "isList": true, "minItems": 0, "maxItems": 0, "masked": true } ], "outputParameters": [ { "displayName": "string", "name": "string", "type": "Bool", "description": "string" } ], "definition": { "type": "string", "url": "string", "headers": {}, "body": {}, "deleteUrl": "string", "deleteBody": {}, "eventFilter": {}, "outputParameterMapping": {}, "signature": { "algo": "HMACSHA256", "verifyHeader": "string" } }, "secrets": [ { "secretName": "string", "displayName": "string", "description": "string", "required": true } ], "requirements": {}, "metadata": {}, "app": { "id": "string", "name": "string", "description": "string", "logo": "string", "url": "https://example.com", "tags": [ "string" ], "systemMetadata": { "createdByUnity": true, "organizationId": "string" }, "metadata": {} }}

Update App Event


Description: Updates an event. Can only be called from the organization the app belongs to. App version needs to be in a draft status.
Authorizations
Client (Client)
HTTP: Client
HTTP Authorization Scheme: bearer
Required scopes: Client
ServiceAccount (ServiceAccount)
HTTP: ServiceAccount
To get started with authentication, visit the Service Account Authentication section.
HTTP Authorization Scheme: basic
Required scopes: ServiceAccount

Path parameters for "Update App Event"

organizationId

string
required
Organization Id

appId

string
required
app Id

appVersion

string
required
App version (format int.int.int[-rc.int] or int.int.int-sha.[7-14 chars] as a string)

eventId

string
required
Event Id

Request body for "Update App Event"

Media Type:
application/json

name

string
Name

description

string
Description

inputParameters

array[object]
input parameters

displayName

string
required
The display name of the parameter.

name

string
required
The name of the parameter.

type

string
required
Parameter type. Each value constrains what an input value must be:

Type

Accepted value

Bool
JSON boolean (
true
or
false
).
Int
JSON integer within the 32-bit signed range.
Float
JSON number with single precision. Integers are accepted.
String
JSON string, including one that holds a UUID or URL.
Url
Absolute
http
or
https
URL, as a string.
UUID
UUID, as a string (for example
3fa85f64-5717-4562-b3fc-2c963f66afa6
).
Text
,
Script
,
File
JSON string. The service applies no further checks.
A value can reference another value with
{{...}}
, for example
{{inputParameters.name}}
. For
Bool
,
Int
,
Float
and
UUID
the whole value must be the reference. For the other types the reference can sit inside a longer string. A value that holds a reference is not validated.
After the type check,
regexPattern
is matched against the value's string form and
acceptedValues
must contain the value. When
isList
is true the value is a JSON array, each item is checked as above, and
minItems
and
maxItems
bound the item count.

description

string
required
The description of the parameter.

required

boolean
required
Indicates if the parameter is mandatory.

acceptedValues

array[object]
A map of values accepted.

regexPattern

string
The validation regex used to validate the parameter.

defaultValue

Optional default value.

metadata

object
key map metadata

isList

boolean
Optional boolean indicating this input parameter takes a list as input

minItems

integer
Optional minimum number of items a list value must hold. Only allowed when Unity.Cloud.Automation.Models.Common.InputParameterDto.IsList is true. A value that references another parameter or a step output is not checked, since its list does not exist until the job runs.

maxItems

integer
Optional maximum number of items a list value may hold. Only allowed when Unity.Cloud.Automation.Models.Common.InputParameterDto.IsList is true, and must not be less than Unity.Cloud.Automation.Models.Common.InputParameterDto.MinItems. References are not checked, as for Unity.Cloud.Automation.Models.Common.InputParameterDto.MinItems.

masked

boolean
Whether the parameter value should be masked in all responses.

outputParameters

array[object]
output parameters

displayName

string
required
The display name of the parameter.

name

string
required
The name of the parameter.

type

string
required
Parameter type. Each value constrains what an input value must be:

Type

Accepted value

Bool
JSON boolean (
true
or
false
).
Int
JSON integer within the 32-bit signed range.
Float
JSON number with single precision. Integers are accepted.
String
JSON string, including one that holds a UUID or URL.
Url
Absolute
http
or
https
URL, as a string.
UUID
UUID, as a string (for example
3fa85f64-5717-4562-b3fc-2c963f66afa6
).
Text
,
Script
,
File
JSON string. The service applies no further checks.
A value can reference another value with
{{...}}
, for example
{{inputParameters.name}}
. For
Bool
,
Int
,
Float
and
UUID
the whole value must be the reference. For the other types the reference can sit inside a longer string. A value that holds a reference is not validated.
After the type check,
regexPattern
is matched against the value's string form and
acceptedValues
must contain the value. When
isList
is true the value is a JSON array, each item is checked as above, and
minItems
and
maxItems
bound the item count.

description

string
required
The description of the parameter.

definition

definition
One of

secrets

array[object]
secrets

secretName

string
required
Secret key

displayName

string
required
The display name of the Secret

description

string
required
Secret description

required

boolean
required
Secret user input

requirements

object
Represents a requirement instance.

metadata

object
metadata

HTTP response status codes for "Update App Event":

Code samples for "Update App Event":

Request example

curl -X PATCH \ -H "Authorization: Bearer <YOUR_TOKEN>" \ -H "Authorization: Basic <YOUR_CREDENTIALS>" \ -H "Content-Type: application/json" \ -d '{ "name": "string", "description": "string", "inputParameters": [ { "displayName": "string", "name": "string", "type": "Bool", "description": "string", "required": true, "acceptedValues": [ null ], "regexPattern": "string", "defaultValue": null, "metadata": {}, "isList": true, "minItems": 0, "maxItems": 0, "masked": true } ], "outputParameters": [ { "displayName": "string", "name": "string", "type": "Bool", "description": "string" } ], "definition": { "type": "string", "url": "string", "headers": {}, "body": {}, "deleteUrl": "string", "deleteBody": {}, "eventFilter": {}, "outputParameterMapping": {}, "signature": { "algo": "HMACSHA256", "verifyHeader": "string" } }, "secrets": [ { "secretName": "string", "displayName": "string", "description": "string", "required": true } ], "requirements": {}, "metadata": {}}' \ "https://automation.services.api.unity.com/v1/organizations/{organizationId}/apps/{appId}/versions/{appVersion}/events/{eventId}"

Response example

{ "id": "string", "name": "string", "description": "string", "inputParameters": [ { "displayName": "string", "name": "string", "type": "Bool", "description": "string", "required": true, "acceptedValues": [ null ], "regexPattern": "string", "defaultValue": null, "metadata": {}, "isList": true, "minItems": 0, "maxItems": 0, "masked": true } ], "outputParameters": [ { "displayName": "string", "name": "string", "type": "Bool", "description": "string" } ], "definition": { "type": "string", "url": "string", "headers": {}, "body": {}, "deleteUrl": "string", "deleteBody": {}, "eventFilter": {}, "outputParameterMapping": {}, "signature": { "algo": "HMACSHA256", "verifyHeader": "string" } }, "secrets": [ { "secretName": "string", "displayName": "string", "description": "string", "required": true } ], "requirements": {}, "metadata": {}, "app": { "id": "string", "name": "string", "description": "string", "logo": "string", "url": "https://example.com", "tags": [ "string" ], "systemMetadata": { "createdByUnity": true, "organizationId": "string" }, "metadata": {} }}

Delete App Event


Description: Deletes an event. Can only be called from the organization the app belongs to. App version needs to be in a draft status.
Authorizations
Client (Client)
HTTP: Client
HTTP Authorization Scheme: bearer
Required scopes: Client
ServiceAccount (ServiceAccount)
HTTP: ServiceAccount
To get started with authentication, visit the Service Account Authentication section.
HTTP Authorization Scheme: basic
Required scopes: ServiceAccount

Path parameters for "Delete App Event"

organizationId

string
required
Organization Id

appId

string
required
app Id

appVersion

string
required
App version (format int.int.int[-rc.int] or int.int.int-sha.[7-14 chars] as a string)

eventId

string
required
Event Id

HTTP response status codes for "Delete App Event":

Code samples for "Delete App Event":

Request example

curl -X DELETE \ -H "Authorization: Bearer <YOUR_TOKEN>" \ -H "Authorization: Basic <YOUR_CREDENTIALS>" \ "https://automation.services.api.unity.com/v1/organizations/{organizationId}/apps/{appId}/versions/{appVersion}/events/{eventId}"

Response example

{ "type": "string", "title": "string", "status": 0, "detail": "string", "instance": "string"}

List all Automations


Description: Returns all automations from this organization.
Authorizations
Client (Client)
HTTP: Client
HTTP Authorization Scheme: bearer
Required scopes: Client
ServiceAccount (ServiceAccount)
HTTP: ServiceAccount
To get started with authentication, visit the Service Account Authentication section.
HTTP Authorization Scheme: basic
Required scopes: ServiceAccount

Path parameters for "List all Automations"

organizationId

string
required
The organization Id

Query parameters for "List all Automations"

includeFields

string
A comma-separated string of fields to include in the response. Supported value: "bot".

offset

integer
int representing number of items to skip

limit

integer
int representing max returned items

HTTP response status codes for "List all Automations":

Code samples for "List all Automations":

Request example

curl -X GET \ -H "Authorization: Bearer <YOUR_TOKEN>" \ -H "Authorization: Basic <YOUR_CREDENTIALS>" \ "https://automation.services.api.unity.com/v1/organizations/{organizationId}/automations"

Response example

{ "offset": 0, "limit": 0, "total": 0, "results": [ { "automationId": "string", "name": "string", "description": "string", "enabled": true, "triggerCount": 0, "pipelineId": "string", "version": "string", "inputs": {}, "secrets": {}, "trigger": { "triggerType": "Schedule", "schedule": { "cron": "string" }, "event": { "eventId": "string", "inputParameters": {}, "secrets": {}, "eventSecretToken": "string" } }, "botId": "string", "bot": { "id": "string", "name": "string", "description": "string", "organizationId": "string", "projectId": "string", "serviceAccountId": "string", "serviceAccountKeyId": "string", "status": "Available" }, "systemMetadata": {} } ]}

Create a new Automation


Description: Creates a new automation for this organization.
Authorizations
Client (Client)
HTTP: Client
HTTP Authorization Scheme: bearer
Required scopes: Client
ServiceAccount (ServiceAccount)
HTTP: ServiceAccount
To get started with authentication, visit the Service Account Authentication section.
HTTP Authorization Scheme: basic
Required scopes: ServiceAccount

Path parameters for "Create a new Automation"

organizationId

string
required
The organization Id

Request body for "Create a new Automation"

Media Type:
application/json

name

string
required
Automation Name

description

string
required
Automation description

pipelineId

string
required
GUID Pipeline Id associated to the automation

version

string
required
Pipeline Version associated to the automation (format int.int.int[-rc.int] or int.int.int-sha.[7-14 chars] as a string)

inputs

object
required
List of inputs values, it cannot be null but can be empty

secrets

object
required
List of secret key values

trigger

object
required
Describe the type of trigger associated to the automation

triggerType

string
required
Automation trigger types

schedule

object
Schedule trigger definition

cron

string
required
Cron format, schedule

event

object
Event trigger definition

eventId

string
required
Event Id to be used in the automation

inputParameters

object
required
The event input parameters

secrets

object
Event secrets

eventSecretToken

string
Event secret token to validate payload

botId

string
required
The automation bot unique identifier

HTTP response status codes for "Create a new Automation":

Code samples for "Create a new Automation":

Request example

curl -X POST \ -H "Authorization: Bearer <YOUR_TOKEN>" \ -H "Authorization: Basic <YOUR_CREDENTIALS>" \ -H "Content-Type: application/json" \ -d '{ "name": "string", "description": "string", "pipelineId": "string", "version": "string", "inputs": {}, "secrets": {}, "trigger": { "triggerType": "Schedule", "schedule": { "cron": "string" }, "event": { "eventId": "string", "inputParameters": {}, "secrets": {}, "eventSecretToken": "string" } }, "botId": "string"}' \ "https://automation.services.api.unity.com/v1/organizations/{organizationId}/automations"

Response example

{ "automationId": "string", "name": "string", "description": "string", "enabled": true, "triggerCount": 0, "pipelineId": "string", "version": "string", "inputs": {}, "secrets": {}, "trigger": { "triggerType": "Schedule", "schedule": { "cron": "string" }, "event": { "eventId": "string", "inputParameters": {}, "secrets": {}, "eventSecretToken": "string" } }, "botId": "string", "bot": { "id": "string", "name": "string", "description": "string", "organizationId": "string", "projectId": "string", "serviceAccountId": "string", "serviceAccountKeyId": "string", "status": "Available" }, "systemMetadata": {}}

Get Automation


Description: Returns a specific automation.
Authorizations
Client (Client)
HTTP: Client
HTTP Authorization Scheme: bearer
Required scopes: Client
ServiceAccount (ServiceAccount)
HTTP: ServiceAccount
To get started with authentication, visit the Service Account Authentication section.
HTTP Authorization Scheme: basic
Required scopes: ServiceAccount

Path parameters for "Get Automation"

organizationId

string
required
The organization Id

automationId

string
required
The automation Id

Query parameters for "Get Automation"

includeFields

string
A comma-separated string of fields to include in the response. Supported value: "bot".

HTTP response status codes for "Get Automation":

Code samples for "Get Automation":

Request example

curl -X GET \ -H "Authorization: Bearer <YOUR_TOKEN>" \ -H "Authorization: Basic <YOUR_CREDENTIALS>" \ "https://automation.services.api.unity.com/v1/organizations/{organizationId}/automations/{automationId}"

Response example

{ "automationId": "string", "name": "string", "description": "string", "enabled": true, "triggerCount": 0, "pipelineId": "string", "version": "string", "inputs": {}, "secrets": {}, "trigger": { "triggerType": "Schedule", "schedule": { "cron": "string" }, "event": { "eventId": "string", "inputParameters": {}, "secrets": {}, "eventSecretToken": "string" } }, "botId": "string", "bot": { "id": "string", "name": "string", "description": "string", "organizationId": "string", "projectId": "string", "serviceAccountId": "string", "serviceAccountKeyId": "string", "status": "Available" }, "systemMetadata": {}}

Update Automation


Description: Updates an automation.
Authorizations
Client (Client)
HTTP: Client
HTTP Authorization Scheme: bearer
Required scopes: Client
ServiceAccount (ServiceAccount)
HTTP: ServiceAccount
To get started with authentication, visit the Service Account Authentication section.
HTTP Authorization Scheme: basic
Required scopes: ServiceAccount

Path parameters for "Update Automation"

organizationId

string
required
The organization Id

automationId

string
required
The automation Id

Request body for "Update Automation"

Media Type:
application/json

name

string
Automation Name

description

string
Automation description

enabled

boolean
status the automation enabled or disabled

pipelineId

string
GUID Pipeline Id associated to the automation

version

string
Pipeline Version associated to the automation (format int.int.int[-rc.int] or int.int.int-sha.[7-14 chars] as a string)

inputs

object
List of inputs values, it cannot be null but can be empty

secrets

object
List of secret key values

trigger

object
Describe the type of trigger associated to the automation

triggerType

string
required
Automation trigger types

schedule

object
Schedule trigger definition

cron

string
required
Cron format, schedule

event

object
Event trigger definition

eventId

string
required
Event Id to be used in the automation

inputParameters

object
required
The event input parameters

secrets

object
Event secrets

eventSecretToken

string
Event secret token to validate payload

botId

string
The automation bot unique identifier

HTTP response status codes for "Update Automation":

Code samples for "Update Automation":

Request example

curl -X PATCH \ -H "Authorization: Bearer <YOUR_TOKEN>" \ -H "Authorization: Basic <YOUR_CREDENTIALS>" \ -H "Content-Type: application/json" \ -d '{ "name": "string", "description": "string", "enabled": true, "pipelineId": "string", "version": "string", "inputs": {}, "secrets": {}, "trigger": { "triggerType": "Schedule", "schedule": { "cron": "string" }, "event": { "eventId": "string", "inputParameters": {}, "secrets": {}, "eventSecretToken": "string" } }, "botId": "string"}' \ "https://automation.services.api.unity.com/v1/organizations/{organizationId}/automations/{automationId}"

Response example

{ "automationId": "string", "name": "string", "description": "string", "enabled": true, "triggerCount": 0, "pipelineId": "string", "version": "string", "inputs": {}, "secrets": {}, "trigger": { "triggerType": "Schedule", "schedule": { "cron": "string" }, "event": { "eventId": "string", "inputParameters": {}, "secrets": {}, "eventSecretToken": "string" } }, "botId": "string", "bot": { "id": "string", "name": "string", "description": "string", "organizationId": "string", "projectId": "string", "serviceAccountId": "string", "serviceAccountKeyId": "string", "status": "Available" }, "systemMetadata": {}}

Delete Automation


Description: Deletes an automation.
Authorizations
Client (Client)
HTTP: Client
HTTP Authorization Scheme: bearer
Required scopes: Client
ServiceAccount (ServiceAccount)
HTTP: ServiceAccount
To get started with authentication, visit the Service Account Authentication section.
HTTP Authorization Scheme: basic
Required scopes: ServiceAccount

Path parameters for "Delete Automation"

organizationId

string
required
The organization Id

automationId

string
required
The automation Id

HTTP response status codes for "Delete Automation":

Code samples for "Delete Automation":

Request example

curl -X DELETE \ -H "Authorization: Bearer <YOUR_TOKEN>" \ -H "Authorization: Basic <YOUR_CREDENTIALS>" \ "https://automation.services.api.unity.com/v1/organizations/{organizationId}/automations/{automationId}"

Response example

{ "type": "string", "title": "string", "status": 0, "detail": "string", "instance": "string"}

Trigger Webhook Event


Description: Trigger a webhook event.
Authorizations
Client (Client)
HTTP: Client
HTTP Authorization Scheme: bearer
Required scopes: Client
ServiceAccount (ServiceAccount)
HTTP: ServiceAccount
To get started with authentication, visit the Service Account Authentication section.
HTTP Authorization Scheme: basic
Required scopes: ServiceAccount

Path parameters for "Trigger Webhook Event"

organizationId

string
required
The organization Id

automationId

string
required
The automation Id

Request body for "Trigger Webhook Event"

Media Type:
application/json
Schema:
{}

HTTP response status codes for "Trigger Webhook Event":

Code samples for "Trigger Webhook Event":

Request example

curl -X POST \ -H "Authorization: Bearer <YOUR_TOKEN>" \ -H "Authorization: Basic <YOUR_CREDENTIALS>" \ -H "Content-Type: application/json" \ -d '{}' \ "https://automation.services.api.unity.com/v1/organizations/{organizationId}/automations/{automationId}/webhook"

Response example

{ "type": "string", "title": "string", "status": 0, "detail": "string", "instance": "string"}

List all Project Automations


Description: Returns all automations from this project.
Authorizations
Client (Client)
HTTP: Client
HTTP Authorization Scheme: bearer
Required scopes: Client
ServiceAccount (ServiceAccount)
HTTP: ServiceAccount
To get started with authentication, visit the Service Account Authentication section.
HTTP Authorization Scheme: basic
Required scopes: ServiceAccount

Path parameters for "List all Project Automations"

organizationId

string
required
The organization Id

projectId

string
required
The project Id

Query parameters for "List all Project Automations"

includeFields

string
A comma-separated string of fields to include in the response. Supported value: "bot".

offset

integer
int representing number of items to skip

limit

integer
int representing max returned items

HTTP response status codes for "List all Project Automations":

Code samples for "List all Project Automations":

Request example

curl -X GET \ -H "Authorization: Bearer <YOUR_TOKEN>" \ -H "Authorization: Basic <YOUR_CREDENTIALS>" \ "https://automation.services.api.unity.com/v1/organizations/{organizationId}/projects/{projectId}/automations"

Response example

{ "offset": 0, "limit": 0, "total": 0, "results": [ { "automationId": "string", "name": "string", "description": "string", "enabled": true, "triggerCount": 0, "pipelineId": "string", "version": "string", "inputs": {}, "secrets": {}, "trigger": { "triggerType": "Schedule", "schedule": { "cron": "string" }, "event": { "eventId": "string", "inputParameters": {}, "secrets": {}, "eventSecretToken": "string" } }, "botId": "string", "bot": { "id": "string", "name": "string", "description": "string", "organizationId": "string", "projectId": "string", "serviceAccountId": "string", "serviceAccountKeyId": "string", "status": "Available" }, "systemMetadata": {} } ]}

Create a new Project Automation


Description: Creates a new automation for this project.
Authorizations
Client (Client)
HTTP: Client
HTTP Authorization Scheme: bearer
Required scopes: Client
ServiceAccount (ServiceAccount)
HTTP: ServiceAccount
To get started with authentication, visit the Service Account Authentication section.
HTTP Authorization Scheme: basic
Required scopes: ServiceAccount

Path parameters for "Create a new Project Automation"

organizationId

string
required
The organization Id

projectId

string
required
The project Id

Request body for "Create a new Project Automation"

Media Type:
application/json

name

string
required
Automation Name

description

string
required
Automation description

pipelineId

string
required
GUID Pipeline Id associated to the automation

version

string
required
Pipeline Version associated to the automation (format int.int.int[-rc.int] or int.int.int-sha.[7-14 chars] as a string)

inputs

object
required
List of inputs values, it cannot be null but can be empty

secrets

object
required
List of secret key values

trigger

object
required
Describe the type of trigger associated to the automation

triggerType

string
required
Automation trigger types

schedule

object
Schedule trigger definition

cron

string
required
Cron format, schedule

event

object
Event trigger definition

eventId

string
required
Event Id to be used in the automation

inputParameters

object
required
The event input parameters

secrets

object
Event secrets

eventSecretToken

string
Event secret token to validate payload

botId

string
required
The automation bot unique identifier

HTTP response status codes for "Create a new Project Automation":

Code samples for "Create a new Project Automation":

Request example

curl -X POST \ -H "Authorization: Bearer <YOUR_TOKEN>" \ -H "Authorization: Basic <YOUR_CREDENTIALS>" \ -H "Content-Type: application/json" \ -d '{ "name": "string", "description": "string", "pipelineId": "string", "version": "string", "inputs": {}, "secrets": {}, "trigger": { "triggerType": "Schedule", "schedule": { "cron": "string" }, "event": { "eventId": "string", "inputParameters": {}, "secrets": {}, "eventSecretToken": "string" } }, "botId": "string"}' \ "https://automation.services.api.unity.com/v1/organizations/{organizationId}/projects/{projectId}/automations"

Response example

{ "automationId": "string", "name": "string", "description": "string", "enabled": true, "triggerCount": 0, "pipelineId": "string", "version": "string", "inputs": {}, "secrets": {}, "trigger": { "triggerType": "Schedule", "schedule": { "cron": "string" }, "event": { "eventId": "string", "inputParameters": {}, "secrets": {}, "eventSecretToken": "string" } }, "botId": "string", "bot": { "id": "string", "name": "string", "description": "string", "organizationId": "string", "projectId": "string", "serviceAccountId": "string", "serviceAccountKeyId": "string", "status": "Available" }, "systemMetadata": {}}

Get Project Automation


Description: Returns a specific automation.
Authorizations
Client (Client)
HTTP: Client
HTTP Authorization Scheme: bearer
Required scopes: Client
ServiceAccount (ServiceAccount)
HTTP: ServiceAccount
To get started with authentication, visit the Service Account Authentication section.
HTTP Authorization Scheme: basic
Required scopes: ServiceAccount

Path parameters for "Get Project Automation"

organizationId

string
required
The organization Id

projectId

string
required
The project Id

automationId

string
required
The automation Id

Query parameters for "Get Project Automation"

includeFields

string
A comma-separated string of fields to include in the response. Supported value: "bot".

HTTP response status codes for "Get Project Automation":

Code samples for "Get Project Automation":

Request example

curl -X GET \ -H "Authorization: Bearer <YOUR_TOKEN>" \ -H "Authorization: Basic <YOUR_CREDENTIALS>" \ "https://automation.services.api.unity.com/v1/organizations/{organizationId}/projects/{projectId}/automations/{automationId}"

Response example

{ "automationId": "string", "name": "string", "description": "string", "enabled": true, "triggerCount": 0, "pipelineId": "string", "version": "string", "inputs": {}, "secrets": {}, "trigger": { "triggerType": "Schedule", "schedule": { "cron": "string" }, "event": { "eventId": "string", "inputParameters": {}, "secrets": {}, "eventSecretToken": "string" } }, "botId": "string", "bot": { "id": "string", "name": "string", "description": "string", "organizationId": "string", "projectId": "string", "serviceAccountId": "string", "serviceAccountKeyId": "string", "status": "Available" }, "systemMetadata": {}}

Update Project Automation


Description: Updates a project automation.
Authorizations
Client (Client)
HTTP: Client
HTTP Authorization Scheme: bearer
Required scopes: Client
ServiceAccount (ServiceAccount)
HTTP: ServiceAccount
To get started with authentication, visit the Service Account Authentication section.
HTTP Authorization Scheme: basic
Required scopes: ServiceAccount

Path parameters for "Update Project Automation"

organizationId

string
required
The organization Id

projectId

string
required
The project Id

automationId

string
required
The automation Id

Request body for "Update Project Automation"

Media Type:
application/json

name

string
Automation Name

description

string
Automation description

enabled

boolean
status the automation enabled or disabled

pipelineId

string
GUID Pipeline Id associated to the automation

version

string
Pipeline Version associated to the automation (format int.int.int[-rc.int] or int.int.int-sha.[7-14 chars] as a string)

inputs

object
List of inputs values, it cannot be null but can be empty

secrets

object
List of secret key values

trigger

object
Describe the type of trigger associated to the automation

triggerType

string
required
Automation trigger types

schedule

object
Schedule trigger definition

cron

string
required
Cron format, schedule

event

object
Event trigger definition

eventId

string
required
Event Id to be used in the automation

inputParameters

object
required
The event input parameters

secrets

object
Event secrets

eventSecretToken

string
Event secret token to validate payload

botId

string
The automation bot unique identifier

HTTP response status codes for "Update Project Automation":

Code samples for "Update Project Automation":

Request example

curl -X PATCH \ -H "Authorization: Bearer <YOUR_TOKEN>" \ -H "Authorization: Basic <YOUR_CREDENTIALS>" \ -H "Content-Type: application/json" \ -d '{ "name": "string", "description": "string", "enabled": true, "pipelineId": "string", "version": "string", "inputs": {}, "secrets": {}, "trigger": { "triggerType": "Schedule", "schedule": { "cron": "string" }, "event": { "eventId": "string", "inputParameters": {}, "secrets": {}, "eventSecretToken": "string" } }, "botId": "string"}' \ "https://automation.services.api.unity.com/v1/organizations/{organizationId}/projects/{projectId}/automations/{automationId}"

Response example

{ "automationId": "string", "name": "string", "description": "string", "enabled": true, "triggerCount": 0, "pipelineId": "string", "version": "string", "inputs": {}, "secrets": {}, "trigger": { "triggerType": "Schedule", "schedule": { "cron": "string" }, "event": { "eventId": "string", "inputParameters": {}, "secrets": {}, "eventSecretToken": "string" } }, "botId": "string", "bot": { "id": "string", "name": "string", "description": "string", "organizationId": "string", "projectId": "string", "serviceAccountId": "string", "serviceAccountKeyId": "string", "status": "Available" }, "systemMetadata": {}}

Delete Project Automation


Description: Deletes a project automation.
Authorizations
Client (Client)
HTTP: Client
HTTP Authorization Scheme: bearer
Required scopes: Client
ServiceAccount (ServiceAccount)
HTTP: ServiceAccount
To get started with authentication, visit the Service Account Authentication section.
HTTP Authorization Scheme: basic
Required scopes: ServiceAccount

Path parameters for "Delete Project Automation"

organizationId

string
required
The organization Id

projectId

string
required
The project Id

automationId

string
required
The automation Id

HTTP response status codes for "Delete Project Automation":

Code samples for "Delete Project Automation":

Request example

curl -X DELETE \ -H "Authorization: Bearer <YOUR_TOKEN>" \ -H "Authorization: Basic <YOUR_CREDENTIALS>" \ "https://automation.services.api.unity.com/v1/organizations/{organizationId}/projects/{projectId}/automations/{automationId}"

Response example

{ "type": "string", "title": "string", "status": 0, "detail": "string", "instance": "string"}

Trigger Webhook Event


Description: Trigger a webhook event.
Authorizations
Client (Client)
HTTP: Client
HTTP Authorization Scheme: bearer
Required scopes: Client
ServiceAccount (ServiceAccount)
HTTP: ServiceAccount
To get started with authentication, visit the Service Account Authentication section.
HTTP Authorization Scheme: basic
Required scopes: ServiceAccount

Path parameters for "Trigger Webhook Event"

organizationId

string
required
The organization Id

projectId

string
required
The project Id

automationId

string
required
The automation Id

Request body for "Trigger Webhook Event"

Media Type:
application/json
Schema:
{}

HTTP response status codes for "Trigger Webhook Event":

Code samples for "Trigger Webhook Event":

Request example

curl -X POST \ -H "Authorization: Bearer <YOUR_TOKEN>" \ -H "Authorization: Basic <YOUR_CREDENTIALS>" \ -H "Content-Type: application/json" \ -d '{}' \ "https://automation.services.api.unity.com/v1/organizations/{organizationId}/projects/{projectId}/automations/{automationId}/webhook"

Response example

{ "type": "string", "title": "string", "status": 0, "detail": "string", "instance": "string"}

List all automation bots


Description: Returns all automation bots from this organization.
Authorizations
Client (Client)
HTTP: Client
HTTP Authorization Scheme: bearer
Required scopes: Client
ServiceAccount (ServiceAccount)
HTTP: ServiceAccount
To get started with authentication, visit the Service Account Authentication section.
HTTP Authorization Scheme: basic
Required scopes: ServiceAccount

Path parameters for "List all automation bots"

organizationId

string
required
The active organization Id

Query parameters for "List all automation bots"

offset

integer
int representing number of items to skip

limit

integer
int representing max returned items

HTTP response status codes for "List all automation bots":

Code samples for "List all automation bots":

Request example

curl -X GET \ -H "Authorization: Bearer <YOUR_TOKEN>" \ -H "Authorization: Basic <YOUR_CREDENTIALS>" \ "https://automation.services.api.unity.com/v1/organizations/{organizationId}/bots"

Response example

{ "offset": 0, "limit": 0, "total": 0, "results": [ { "id": "string", "name": "string", "description": "string", "organizationId": "string", "projectId": "string", "serviceAccountId": "string", "serviceAccountKeyId": "string", "status": "Available" } ]}

Create a new automation bot


Description: Creates a new automation bot for this organization.
Authorizations
Client (Client)
HTTP: Client
HTTP Authorization Scheme: bearer
Required scopes: Client
ServiceAccount (ServiceAccount)
HTTP: ServiceAccount
To get started with authentication, visit the Service Account Authentication section.
HTTP Authorization Scheme: basic
Required scopes: ServiceAccount

Path parameters for "Create a new automation bot"

organizationId

string
required
The organization Id

Request body for "Create a new automation bot"

Media Type:
application/json

name

string
required
The bot name.

description

string
required
The bot description.

HTTP response status codes for "Create a new automation bot":

Code samples for "Create a new automation bot":

Request example

curl -X POST \ -H "Authorization: Bearer <YOUR_TOKEN>" \ -H "Authorization: Basic <YOUR_CREDENTIALS>" \ -H "Content-Type: application/json" \ -d '{ "name": "string", "description": "string"}' \ "https://automation.services.api.unity.com/v1/organizations/{organizationId}/bots"

Response example

{ "id": "string", "name": "string", "description": "string", "organizationId": "string", "projectId": "string", "serviceAccountId": "string", "serviceAccountKeyId": "string", "status": "Available"}

Get an automation bot


Description: Returns a specific bot. Can only be called from the organization the bot belongs to.
Authorizations
Client (Client)
HTTP: Client
HTTP Authorization Scheme: bearer
Required scopes: Client
ServiceAccount (ServiceAccount)
HTTP: ServiceAccount
To get started with authentication, visit the Service Account Authentication section.
HTTP Authorization Scheme: basic
Required scopes: ServiceAccount

Path parameters for "Get an automation bot"

organizationId

string
required
The active organization Id

botId

string
required
The bot unique identifier

HTTP response status codes for "Get an automation bot":

Code samples for "Get an automation bot":

Request example

curl -X GET \ -H "Authorization: Bearer <YOUR_TOKEN>" \ -H "Authorization: Basic <YOUR_CREDENTIALS>" \ "https://automation.services.api.unity.com/v1/organizations/{organizationId}/bots/{botId}"

Response example

{ "id": "string", "name": "string", "description": "string", "organizationId": "string", "projectId": "string", "serviceAccountId": "string", "serviceAccountKeyId": "string", "status": "Available"}

Update an automation bot


Description: Updates an automation bot. Can only be called from the organization the bot belongs to.
Required Role: Automation Developer
Authorizations
Client (Client)
HTTP: Client
HTTP Authorization Scheme: bearer
Required scopes: Client
ServiceAccount (ServiceAccount)
HTTP: ServiceAccount
To get started with authentication, visit the Service Account Authentication section.
HTTP Authorization Scheme: basic
Required scopes: ServiceAccount

Path parameters for "Update an automation bot"

organizationId

string
required
The active organization Id

botId

string
required
The bot unique identifier

Request body for "Update an automation bot"

Media Type:
application/json

description

string
The bot description.

HTTP response status codes for "Update an automation bot":

Code samples for "Update an automation bot":

Request example

curl -X PATCH \ -H "Authorization: Bearer <YOUR_TOKEN>" \ -H "Authorization: Basic <YOUR_CREDENTIALS>" \ -H "Content-Type: application/json" \ -d '{ "description": "string"}' \ "https://automation.services.api.unity.com/v1/organizations/{organizationId}/bots/{botId}"

Response example

{ "id": "string", "name": "string", "description": "string", "organizationId": "string", "projectId": "string", "serviceAccountId": "string", "serviceAccountKeyId": "string", "status": "Available"}

Delete an automation bot


Description: Deletes an automation bot. Can only be called from the organization the bot belongs to and for an unused bot.
Required Role: Automation Developer
Authorizations
Client (Client)
HTTP: Client
HTTP Authorization Scheme: bearer
Required scopes: Client
ServiceAccount (ServiceAccount)
HTTP: ServiceAccount
To get started with authentication, visit the Service Account Authentication section.
HTTP Authorization Scheme: basic
Required scopes: ServiceAccount

Path parameters for "Delete an automation bot"

organizationId

string
required
The active organization Id

botId

string
required
The bot unique identifier

HTTP response status codes for "Delete an automation bot":

Code samples for "Delete an automation bot":

Request example

curl -X DELETE \ -H "Authorization: Bearer <YOUR_TOKEN>" \ -H "Authorization: Basic <YOUR_CREDENTIALS>" \ "https://automation.services.api.unity.com/v1/organizations/{organizationId}/bots/{botId}"

Response example

{ "type": "string", "title": "string", "status": 0, "detail": "string", "instance": "string"}

List all project automation bots


Description: Returns all automation bots from this project.
Authorizations
Client (Client)
HTTP: Client
HTTP Authorization Scheme: bearer
Required scopes: Client
ServiceAccount (ServiceAccount)
HTTP: ServiceAccount
To get started with authentication, visit the Service Account Authentication section.
HTTP Authorization Scheme: basic
Required scopes: ServiceAccount

Path parameters for "List all project automation bots"

organizationId

string
required
The active organization Id

projectId

string
required
The project Id

Query parameters for "List all project automation bots"

offset

integer
int representing number of items to skip

limit

integer
int representing max returned items

HTTP response status codes for "List all project automation bots":

Code samples for "List all project automation bots":

Request example

curl -X GET \ -H "Authorization: Bearer <YOUR_TOKEN>" \ -H "Authorization: Basic <YOUR_CREDENTIALS>" \ "https://automation.services.api.unity.com/v1/organizations/{organizationId}/projects/{projectId}/bots"

Response example

{ "offset": 0, "limit": 0, "total": 0, "results": [ { "id": "string", "name": "string", "description": "string", "organizationId": "string", "projectId": "string", "serviceAccountId": "string", "serviceAccountKeyId": "string", "status": "Available" } ]}

Create a new project automation bot


Description: Creates a new automation bot for this project.
Authorizations
Client (Client)
HTTP: Client
HTTP Authorization Scheme: bearer
Required scopes: Client
ServiceAccount (ServiceAccount)
HTTP: ServiceAccount
To get started with authentication, visit the Service Account Authentication section.
HTTP Authorization Scheme: basic
Required scopes: ServiceAccount

Path parameters for "Create a new project automation bot"

organizationId

string
required
The organization Id

projectId

string
required
The project Id

Request body for "Create a new project automation bot"

Media Type:
application/json

name

string
required
The bot name.

description

string
required
The bot description.

HTTP response status codes for "Create a new project automation bot":

Code samples for "Create a new project automation bot":

Request example

curl -X POST \ -H "Authorization: Bearer <YOUR_TOKEN>" \ -H "Authorization: Basic <YOUR_CREDENTIALS>" \ -H "Content-Type: application/json" \ -d '{ "name": "string", "description": "string"}' \ "https://automation.services.api.unity.com/v1/organizations/{organizationId}/projects/{projectId}/bots"

Response example

{ "id": "string", "name": "string", "description": "string", "organizationId": "string", "projectId": "string", "serviceAccountId": "string", "serviceAccountKeyId": "string", "status": "Available"}

Get a project automation bot


Description: Returns a specific bot. Can only be called from the organization and project the bot belongs to.
Authorizations
Client (Client)
HTTP: Client
HTTP Authorization Scheme: bearer
Required scopes: Client
ServiceAccount (ServiceAccount)
HTTP: ServiceAccount
To get started with authentication, visit the Service Account Authentication section.
HTTP Authorization Scheme: basic
Required scopes: ServiceAccount

Path parameters for "Get a project automation bot"

organizationId

string
required
The active organization Id

projectId

string
required
The project Id

botId

string
required
The bot unique identifier

HTTP response status codes for "Get a project automation bot":

Code samples for "Get a project automation bot":

Request example

curl -X GET \ -H "Authorization: Bearer <YOUR_TOKEN>" \ -H "Authorization: Basic <YOUR_CREDENTIALS>" \ "https://automation.services.api.unity.com/v1/organizations/{organizationId}/projects/{projectId}/bots/{botId}"

Response example

{ "id": "string", "name": "string", "description": "string", "organizationId": "string", "projectId": "string", "serviceAccountId": "string", "serviceAccountKeyId": "string", "status": "Available"}

Update a project automation bot


Description: Updates a project automation bot. Can only be called from the organization and project the bot belongs to.
Required Role: Automation Developer
Authorizations
Client (Client)
HTTP: Client
HTTP Authorization Scheme: bearer
Required scopes: Client
ServiceAccount (ServiceAccount)
HTTP: ServiceAccount
To get started with authentication, visit the Service Account Authentication section.
HTTP Authorization Scheme: basic
Required scopes: ServiceAccount

Path parameters for "Update a project automation bot"

organizationId

string
required
The active organization Id

projectId

string
required
The project Id

botId

string
required
The bot unique identifier

Request body for "Update a project automation bot"

Media Type:
application/json

description

string
The bot description.

HTTP response status codes for "Update a project automation bot":

Code samples for "Update a project automation bot":

Request example

curl -X PATCH \ -H "Authorization: Bearer <YOUR_TOKEN>" \ -H "Authorization: Basic <YOUR_CREDENTIALS>" \ -H "Content-Type: application/json" \ -d '{ "description": "string"}' \ "https://automation.services.api.unity.com/v1/organizations/{organizationId}/projects/{projectId}/bots/{botId}"

Response example

{ "id": "string", "name": "string", "description": "string", "organizationId": "string", "projectId": "string", "serviceAccountId": "string", "serviceAccountKeyId": "string", "status": "Available"}

Delete a project automation bot


Description: Deletes a project automation bot. Can only be called from the project the bot belongs to and for an unused bot.
Required Role: Automation Developer
Authorizations
Client (Client)
HTTP: Client
HTTP Authorization Scheme: bearer
Required scopes: Client
ServiceAccount (ServiceAccount)
HTTP: ServiceAccount
To get started with authentication, visit the Service Account Authentication section.
HTTP Authorization Scheme: basic
Required scopes: ServiceAccount

Path parameters for "Delete a project automation bot"

organizationId

string
required
The active organization Id

projectId

string
required
The project Id

botId

string
required
The bot unique identifier

HTTP response status codes for "Delete a project automation bot":

Code samples for "Delete a project automation bot":

Request example

curl -X DELETE \ -H "Authorization: Bearer <YOUR_TOKEN>" \ -H "Authorization: Basic <YOUR_CREDENTIALS>" \ "https://automation.services.api.unity.com/v1/organizations/{organizationId}/projects/{projectId}/bots/{botId}"

Response example

{ "type": "string", "title": "string", "status": 0, "detail": "string", "instance": "string"}

Get all configuration profiles for organization


Description: Get the list of configuration profiles available to use.
Required Role: Automation Developer
Authorizations
Client (Client)
HTTP: Client
HTTP Authorization Scheme: bearer
Required scopes: Client
ServiceAccount (ServiceAccount)
HTTP: ServiceAccount
To get started with authentication, visit the Service Account Authentication section.
HTTP Authorization Scheme: basic
Required scopes: ServiceAccount

Path parameters for "Get all configuration profiles for organization"

organizationId

string
required
No description

Query parameters for "Get all configuration profiles for organization"

appId

string
No description

HTTP response status codes for "Get all configuration profiles for organization":

Code samples for "Get all configuration profiles for organization":

Request example

curl -X GET \ -H "Authorization: Bearer <YOUR_TOKEN>" \ -H "Authorization: Basic <YOUR_CREDENTIALS>" \ "https://automation.services.api.unity.com/v1/organizations/{organizationId}/configurations/profiles"

Response example

{ "configurationProfiles": [ { "id": "string", "name": "string", "description": "string", "hardware": { "sku": "string", "cpuLimit": 0, "cpuRequest": 0, "memoryLimit": "string", "memoryRequest": "string", "gpu": "string", "storage": "string", "uom": "string" }, "software": [ { "name": "string", "sku": "string", "uom": "string" } ], "exclusiveToOrg": [ "string" ], "exclusiveToApp": [ "string" ], "tolerationOverride": [ { "key": "string", "operator": "string", "value": "string", "effect": "string" } ], "affinityOverride": { "nodeAffinity": { "requiredDuringSchedulingIgnoredDuringExecution": [ null ], "preferredDuringSchedulingIgnoredDuringExecution": [ null ] } } } ]}

Get configuration profile


Description: Get a specific configuration profile information.
Required Role: Automation Developer
Authorizations
Client (Client)
HTTP: Client
HTTP Authorization Scheme: bearer
Required scopes: Client
ServiceAccount (ServiceAccount)
HTTP: ServiceAccount
To get started with authentication, visit the Service Account Authentication section.
HTTP Authorization Scheme: basic
Required scopes: ServiceAccount

Path parameters for "Get configuration profile"

profileId

string
required
No description

organizationId

string
required
No description

HTTP response status codes for "Get configuration profile":

Code samples for "Get configuration profile":

Request example

curl -X GET \ -H "Authorization: Bearer <YOUR_TOKEN>" \ -H "Authorization: Basic <YOUR_CREDENTIALS>" \ "https://automation.services.api.unity.com/v1/organizations/{organizationId}/configurations/profiles/{profileId}"

Response example

{ "configurationProfiles": [ { "id": "string", "name": "string", "description": "string", "hardware": { "sku": "string", "cpuLimit": 0, "cpuRequest": 0, "memoryLimit": "string", "memoryRequest": "string", "gpu": "string", "storage": "string", "uom": "string" }, "software": [ { "name": "string", "sku": "string", "uom": "string" } ], "exclusiveToOrg": [ "string" ], "exclusiveToApp": [ "string" ], "tolerationOverride": [ { "key": "string", "operator": "string", "value": "string", "effect": "string" } ], "affinityOverride": { "nodeAffinity": { "requiredDuringSchedulingIgnoredDuringExecution": [ null ], "preferredDuringSchedulingIgnoredDuringExecution": [ null ] } } } ]}

List all jobs


Description: List all jobs created in this organization.
Authorizations
Client (Client)
HTTP: Client
HTTP Authorization Scheme: bearer
Required scopes: Client
ServiceAccount (ServiceAccount)
HTTP: ServiceAccount
To get started with authentication, visit the Service Account Authentication section.
HTTP Authorization Scheme: basic
Required scopes: ServiceAccount

Path parameters for "List all jobs"

organizationId

string
required
The active Organization ID

Query parameters for "List all jobs"

statuses

array
list of job status used to filter job list

pipelineIds

array
list of pipeline ids used to filter job list

automationIds

array
list of automation ids used to filter job list

orderBy

string
the field to use when sorting the results

order

string
the type of sorting used

inputs

object
the mapping of parameter names and values to filter

includeAllOrgProjectJobs

boolean
whether to include all jobs from all projects within the organization (owner only)

offset

integer
int representing number of items to skip

limit

integer
int representing max returned items

HTTP response status codes for "List all jobs":

Code samples for "List all jobs":

Request example

curl -X GET \ -H "Authorization: Bearer <YOUR_TOKEN>" \ -H "Authorization: Basic <YOUR_CREDENTIALS>" \ "https://automation.services.api.unity.com/v1/organizations/{organizationId}/jobs"

Response example

{ "offset": 0, "limit": 0, "total": 0, "results": [ { "id": "string", "pipeline": { "id": "string", "name": "string", "version": "string" }, "status": "Queued", "inputs": {}, "outputs": {}, "secrets": {}, "errors": [ "string" ], "userId": "string", "serviceAccountId": "string", "organizationId": "string", "projectId": "string", "priority": 0, "automationId": "string", "createdAt": "2024-01-01T00:00:00Z", "startedAt": "2024-01-01T00:00:00Z", "finishedAt": "2024-01-01T00:00:00Z", "queueTime": 0, "durationInSeconds": 0, "progress": 0, "updatedAt": "2024-01-01T00:00:00Z", "systemMetadata": {} } ]}

Get job


Description: Gets a job from a job id.
Authorizations
Client (Client)
HTTP: Client
HTTP Authorization Scheme: bearer
Required scopes: Client
ServiceAccount (ServiceAccount)
HTTP: ServiceAccount
To get started with authentication, visit the Service Account Authentication section.
HTTP Authorization Scheme: basic
Required scopes: ServiceAccount

Path parameters for "Get job"

organizationId

string
required
The active Organization ID

jobId

string
required
The job id

HTTP response status codes for "Get job":

Code samples for "Get job":

Request example

curl -X GET \ -H "Authorization: Bearer <YOUR_TOKEN>" \ -H "Authorization: Basic <YOUR_CREDENTIALS>" \ "https://automation.services.api.unity.com/v1/organizations/{organizationId}/jobs/{jobId}"

Response example

{ "id": "string", "pipeline": { "id": "string", "name": "string", "version": "string" }, "status": "Queued", "inputs": {}, "outputs": {}, "secrets": {}, "errors": [ "string" ], "userId": "string", "serviceAccountId": "string", "organizationId": "string", "projectId": "string", "priority": 0, "automationId": "string", "createdAt": "2024-01-01T00:00:00Z", "startedAt": "2024-01-01T00:00:00Z", "finishedAt": "2024-01-01T00:00:00Z", "queueTime": 0, "durationInSeconds": 0, "progress": 0, "steps": [ { "pipelineStepId": "string", "name": "string", "condition": { "statement": "string", "result": true }, "inputParameters": {}, "outputParameters": {}, "dependencies": [ "string" ], "status": "Pending", "error": "string", "retryCount": 0, "progress": 0, "startedAt": "2024-01-01T00:00:00Z", "finishedAt": "2024-01-01T00:00:00Z", "configurationId": "string", "timeout": 0, "suspend": { "type": "string", "description": "string", "permissions": { "allowedUsers": [ null ], "allowedGroups": [ null ] }, "duration": "string", "allowUserToResume": true }, "actionId": "string", "jobPipelineUid": "string", "depth": 0, "retryOfStepId": "string", "retryAttempt": 0 } ], "updatedAt": "2024-01-01T00:00:00Z", "systemMetadata": {}, "jobPipelineUids": {}}

Get job stream with updates


Description: Gets a stream with job updates from a job id.
Authorizations
Client (Client)
HTTP: Client
HTTP Authorization Scheme: bearer
Required scopes: Client
ServiceAccount (ServiceAccount)
HTTP: ServiceAccount
To get started with authentication, visit the Service Account Authentication section.
HTTP Authorization Scheme: basic
Required scopes: ServiceAccount

Path parameters for "Get job stream with updates"

organizationId

string
required
The active Organization ID

jobId

string
required
The job id

HTTP response status codes for "Get job stream with updates":

Code samples for "Get job stream with updates":

Request example

curl -X GET \ -H "Authorization: Bearer <YOUR_TOKEN>" \ -H "Authorization: Basic <YOUR_CREDENTIALS>" \ "https://automation.services.api.unity.com/v1/organizations/{organizationId}/jobs/{jobId}/stream"

Response example

[ { "data": { "id": "string", "pipeline": { "id": "string", "name": "string", "version": "string" }, "status": "Queued", "inputs": {}, "outputs": {}, "secrets": {}, "errors": [ "string" ], "userId": "string", "serviceAccountId": "string", "organizationId": "string", "projectId": "string", "priority": 0, "automationId": "string", "createdAt": "2024-01-01T00:00:00Z", "startedAt": "2024-01-01T00:00:00Z", "finishedAt": "2024-01-01T00:00:00Z", "queueTime": 0, "durationInSeconds": 0, "progress": 0, "steps": [ { "pipelineStepId": "string", "name": "string", "condition": { "statement": null, "result": null }, "inputParameters": {}, "outputParameters": {}, "dependencies": [ null ], "status": "Pending", "error": "string", "retryCount": 0, "progress": 0, "startedAt": "2024-01-01T00:00:00Z", "finishedAt": "2024-01-01T00:00:00Z", "configurationId": "string", "timeout": 0, "suspend": { "type": null, "description": null, "permissions": null, "duration": null, "allowUserToResume": null }, "actionId": "string", "jobPipelineUid": "string", "depth": 0, "retryOfStepId": "string", "retryAttempt": 0 } ], "updatedAt": "2024-01-01T00:00:00Z", "systemMetadata": {}, "jobPipelineUids": {} }, "eventType": "string", "eventId": "string", "reconnectionInterval": "string" }]

Terminate job


Description: Terminate a job.
Authorizations
Client (Client)
HTTP: Client
HTTP Authorization Scheme: bearer
Required scopes: Client
ServiceAccount (ServiceAccount)
HTTP: ServiceAccount
To get started with authentication, visit the Service Account Authentication section.
HTTP Authorization Scheme: basic
Required scopes: ServiceAccount

Path parameters for "Terminate job"

organizationId

string
required
The active Organization Id

jobId

string
required
The job Id

HTTP response status codes for "Terminate job":

Code samples for "Terminate job":

Request example

curl -X PUT \ -H "Authorization: Bearer <YOUR_TOKEN>" \ -H "Authorization: Basic <YOUR_CREDENTIALS>" \ "https://automation.services.api.unity.com/v1/organizations/{organizationId}/jobs/{jobId}/terminate"

Response example

{ "status": "Queued"}

Stop job


Description: Stop a job.
Authorizations
Client (Client)
HTTP: Client
HTTP Authorization Scheme: bearer
Required scopes: Client
ServiceAccount (ServiceAccount)
HTTP: ServiceAccount
To get started with authentication, visit the Service Account Authentication section.
HTTP Authorization Scheme: basic
Required scopes: ServiceAccount

Path parameters for "Stop job"

organizationId

string
required
The active Organization Id

jobId

string
required
The job Id

HTTP response status codes for "Stop job":

Code samples for "Stop job":

Request example

curl -X PUT \ -H "Authorization: Bearer <YOUR_TOKEN>" \ -H "Authorization: Basic <YOUR_CREDENTIALS>" \ "https://automation.services.api.unity.com/v1/organizations/{organizationId}/jobs/{jobId}/stop"

Response example

{ "status": "Queued"}

Resume a job


Description: Resumes a job. A Job can be intentionally suspended to wait for a manual resume action.
Authorizations
Client (Client)
HTTP: Client
HTTP Authorization Scheme: bearer
Required scopes: Client
ServiceAccount (ServiceAccount)
HTTP: ServiceAccount
To get started with authentication, visit the Service Account Authentication section.
HTTP Authorization Scheme: basic
Required scopes: ServiceAccount

Path parameters for "Resume a job"

organizationId

string
required
The active Organization Id

jobId

string
required
The job Id

stepId

string
required
The job step Id

Request body for "Resume a job"

Media Type:
application/json

parameters

object
The parameters to resume the step with

HTTP response status codes for "Resume a job":

Code samples for "Resume a job":

Request example

curl -X PUT \ -H "Authorization: Bearer <YOUR_TOKEN>" \ -H "Authorization: Basic <YOUR_CREDENTIALS>" \ -H "Content-Type: application/json" \ -d '{ "parameters": {}}' \ "https://automation.services.api.unity.com/v1/organizations/{organizationId}/jobs/{jobId}/steps/{stepId}/resume"

Response example

{ "status": "Queued"}

Approve a job


Description: Approves a job. A Job can be intentionally suspended to wait for a manual approval action.
Authorizations
Client (Client)
HTTP: Client
HTTP Authorization Scheme: bearer
Required scopes: Client
ServiceAccount (ServiceAccount)
HTTP: ServiceAccount
To get started with authentication, visit the Service Account Authentication section.
HTTP Authorization Scheme: basic
Required scopes: ServiceAccount

Path parameters for "Approve a job"

organizationId

string
required
The active Organization Id

jobId

string
required
The job Id

stepId

string
required
The job step Id

Request body for "Approve a job"

Media Type:
application/json

approved

boolean
Whether the user approves (true) or rejects (false) the job step.

comment

string
Optional comment explaining the approval or rejection decision.

HTTP response status codes for "Approve a job":

Code samples for "Approve a job":

Request example

curl -X PUT \ -H "Authorization: Bearer <YOUR_TOKEN>" \ -H "Authorization: Basic <YOUR_CREDENTIALS>" \ -H "Content-Type: application/json" \ -d '{ "approved": true, "comment": "string"}' \ "https://automation.services.api.unity.com/v1/organizations/{organizationId}/jobs/{jobId}/steps/{stepId}/approve"

Response example

{ "status": "Queued"}

List all project jobs


Description: List all jobs created in this project.
Authorizations
Client (Client)
HTTP: Client
HTTP Authorization Scheme: bearer
Required scopes: Client
ServiceAccount (ServiceAccount)
HTTP: ServiceAccount
To get started with authentication, visit the Service Account Authentication section.
HTTP Authorization Scheme: basic
Required scopes: ServiceAccount

Path parameters for "List all project jobs"

organizationId

string
required
The active Organization ID

projectId

string
required
The Project ID

Query parameters for "List all project jobs"

statuses

array
list of job status used to filter job list

pipelineIds

array
list of pipeline ids used to filter job list

automationIds

array
list of automation ids used to filter job list

orderBy

string
the field to use when sorting the results

order

string
the type of sorting used

inputs

object
the mapping of parameter names and values to filter

includeAllOrgProjectJobs

boolean
whether to include all jobs from all projects within the organization (owner only)

offset

integer
int representing number of items to skip

limit

integer
int representing max returned items

HTTP response status codes for "List all project jobs":

Code samples for "List all project jobs":

Request example

curl -X GET \ -H "Authorization: Bearer <YOUR_TOKEN>" \ -H "Authorization: Basic <YOUR_CREDENTIALS>" \ "https://automation.services.api.unity.com/v1/organizations/{organizationId}/projects/{projectId}/jobs"

Response example

{ "offset": 0, "limit": 0, "total": 0, "results": [ { "id": "string", "pipeline": { "id": "string", "name": "string", "version": "string" }, "status": "Queued", "inputs": {}, "outputs": {}, "secrets": {}, "errors": [ "string" ], "userId": "string", "serviceAccountId": "string", "organizationId": "string", "projectId": "string", "priority": 0, "automationId": "string", "createdAt": "2024-01-01T00:00:00Z", "startedAt": "2024-01-01T00:00:00Z", "finishedAt": "2024-01-01T00:00:00Z", "queueTime": 0, "durationInSeconds": 0, "progress": 0, "updatedAt": "2024-01-01T00:00:00Z", "systemMetadata": {} } ]}

Get project job


Description: Gets a project job from a job id.
Authorizations
Client (Client)
HTTP: Client
HTTP Authorization Scheme: bearer
Required scopes: Client
ServiceAccount (ServiceAccount)
HTTP: ServiceAccount
To get started with authentication, visit the Service Account Authentication section.
HTTP Authorization Scheme: basic
Required scopes: ServiceAccount

Path parameters for "Get project job"

organizationId

string
required
The active Organization ID

projectId

string
required
The Project Id

jobId

string
required
The job id

HTTP response status codes for "Get project job":

Code samples for "Get project job":

Request example

curl -X GET \ -H "Authorization: Bearer <YOUR_TOKEN>" \ -H "Authorization: Basic <YOUR_CREDENTIALS>" \ "https://automation.services.api.unity.com/v1/organizations/{organizationId}/projects/{projectId}/jobs/{jobId}"

Response example

{ "id": "string", "pipeline": { "id": "string", "name": "string", "version": "string" }, "status": "Queued", "inputs": {}, "outputs": {}, "secrets": {}, "errors": [ "string" ], "userId": "string", "serviceAccountId": "string", "organizationId": "string", "projectId": "string", "priority": 0, "automationId": "string", "createdAt": "2024-01-01T00:00:00Z", "startedAt": "2024-01-01T00:00:00Z", "finishedAt": "2024-01-01T00:00:00Z", "queueTime": 0, "durationInSeconds": 0, "progress": 0, "steps": [ { "pipelineStepId": "string", "name": "string", "condition": { "statement": "string", "result": true }, "inputParameters": {}, "outputParameters": {}, "dependencies": [ "string" ], "status": "Pending", "error": "string", "retryCount": 0, "progress": 0, "startedAt": "2024-01-01T00:00:00Z", "finishedAt": "2024-01-01T00:00:00Z", "configurationId": "string", "timeout": 0, "suspend": { "type": "string", "description": "string", "permissions": { "allowedUsers": [ null ], "allowedGroups": [ null ] }, "duration": "string", "allowUserToResume": true }, "actionId": "string", "jobPipelineUid": "string", "depth": 0, "retryOfStepId": "string", "retryAttempt": 0 } ], "updatedAt": "2024-01-01T00:00:00Z", "systemMetadata": {}, "jobPipelineUids": {}}

Get project job stream with updates


Description: Gets a stream with project job updates from a job id.
Authorizations
Client (Client)
HTTP: Client
HTTP Authorization Scheme: bearer
Required scopes: Client
ServiceAccount (ServiceAccount)
HTTP: ServiceAccount
To get started with authentication, visit the Service Account Authentication section.
HTTP Authorization Scheme: basic
Required scopes: ServiceAccount

Path parameters for "Get project job stream with updates"

organizationId

string
required
The active Organization ID

projectId

string
required
The Project Id

jobId

string
required
The job id

HTTP response status codes for "Get project job stream with updates":

Code samples for "Get project job stream with updates":

Request example

curl -X GET \ -H "Authorization: Bearer <YOUR_TOKEN>" \ -H "Authorization: Basic <YOUR_CREDENTIALS>" \ "https://automation.services.api.unity.com/v1/organizations/{organizationId}/projects/{projectId}/jobs/{jobId}/stream"

Response example

[ { "data": { "id": "string", "pipeline": { "id": "string", "name": "string", "version": "string" }, "status": "Queued", "inputs": {}, "outputs": {}, "secrets": {}, "errors": [ "string" ], "userId": "string", "serviceAccountId": "string", "organizationId": "string", "projectId": "string", "priority": 0, "automationId": "string", "createdAt": "2024-01-01T00:00:00Z", "startedAt": "2024-01-01T00:00:00Z", "finishedAt": "2024-01-01T00:00:00Z", "queueTime": 0, "durationInSeconds": 0, "progress": 0, "steps": [ { "pipelineStepId": "string", "name": "string", "condition": { "statement": null, "result": null }, "inputParameters": {}, "outputParameters": {}, "dependencies": [ null ], "status": "Pending", "error": "string", "retryCount": 0, "progress": 0, "startedAt": "2024-01-01T00:00:00Z", "finishedAt": "2024-01-01T00:00:00Z", "configurationId": "string", "timeout": 0, "suspend": { "type": null, "description": null, "permissions": null, "duration": null, "allowUserToResume": null }, "actionId": "string", "jobPipelineUid": "string", "depth": 0, "retryOfStepId": "string", "retryAttempt": 0 } ], "updatedAt": "2024-01-01T00:00:00Z", "systemMetadata": {}, "jobPipelineUids": {} }, "eventType": "string", "eventId": "string", "reconnectionInterval": "string" }]

Terminate project job


Description: Terminate a project job.
Authorizations
Client (Client)
HTTP: Client
HTTP Authorization Scheme: bearer
Required scopes: Client
ServiceAccount (ServiceAccount)
HTTP: ServiceAccount
To get started with authentication, visit the Service Account Authentication section.
HTTP Authorization Scheme: basic
Required scopes: ServiceAccount

Path parameters for "Terminate project job"

organizationId

string
required
The active Organization Id

projectId

string
required
The Project Id

jobId

string
required
The job Id

HTTP response status codes for "Terminate project job":

Code samples for "Terminate project job":

Request example

curl -X PUT \ -H "Authorization: Bearer <YOUR_TOKEN>" \ -H "Authorization: Basic <YOUR_CREDENTIALS>" \ "https://automation.services.api.unity.com/v1/organizations/{organizationId}/projects/{projectId}/jobs/{jobId}/terminate"

Response example

{ "status": "Queued"}

Stop project job


Description: Stop a project job.
Authorizations
Client (Client)
HTTP: Client
HTTP Authorization Scheme: bearer
Required scopes: Client
ServiceAccount (ServiceAccount)
HTTP: ServiceAccount
To get started with authentication, visit the Service Account Authentication section.
HTTP Authorization Scheme: basic
Required scopes: ServiceAccount

Path parameters for "Stop project job"

organizationId

string
required
The active Organization Id

projectId

string
required
The Project Id

jobId

string
required
The job Id

HTTP response status codes for "Stop project job":

Code samples for "Stop project job":

Request example

curl -X PUT \ -H "Authorization: Bearer <YOUR_TOKEN>" \ -H "Authorization: Basic <YOUR_CREDENTIALS>" \ "https://automation.services.api.unity.com/v1/organizations/{organizationId}/projects/{projectId}/jobs/{jobId}/stop"

Response example

{ "status": "Queued"}

Resume a project job


Description: Resumes a project job. A Job can be intentionally suspended to wait for a manual resume action.
Authorizations
Client (Client)
HTTP: Client
HTTP Authorization Scheme: bearer
Required scopes: Client
ServiceAccount (ServiceAccount)
HTTP: ServiceAccount
To get started with authentication, visit the Service Account Authentication section.
HTTP Authorization Scheme: basic
Required scopes: ServiceAccount

Path parameters for "Resume a project job"

organizationId

string
required
The active Organization Id

projectId

string
required
The project Id

jobId

string
required
The job Id

stepId

string
required
The job step Id

Request body for "Resume a project job"

Media Type:
application/json

parameters

object
The parameters to resume the step with

HTTP response status codes for "Resume a project job":

Code samples for "Resume a project job":

Request example

curl -X PUT \ -H "Authorization: Bearer <YOUR_TOKEN>" \ -H "Authorization: Basic <YOUR_CREDENTIALS>" \ -H "Content-Type: application/json" \ -d '{ "parameters": {}}' \ "https://automation.services.api.unity.com/v1/organizations/{organizationId}/projects/{projectId}/jobs/{jobId}/steps/{stepId}/resume"

Response example

{ "status": "Queued"}

Approve a project job


Description: Approves a project job. A Job can be intentionally suspended to wait for a manual resume action.
Authorizations
Client (Client)
HTTP: Client
HTTP Authorization Scheme: bearer
Required scopes: Client
ServiceAccount (ServiceAccount)
HTTP: ServiceAccount
To get started with authentication, visit the Service Account Authentication section.
HTTP Authorization Scheme: basic
Required scopes: ServiceAccount

Path parameters for "Approve a project job"

organizationId

string
required
The active Organization Id

jobId

string
required
The job Id

projectId

string
required
The project Id

stepId

string
required
The job step Id

Request body for "Approve a project job"

Media Type:
application/json

approved

boolean
Whether the user approves (true) or rejects (false) the job step.

comment

string
Optional comment explaining the approval or rejection decision.

HTTP response status codes for "Approve a project job":

Code samples for "Approve a project job":

Request example

curl -X PUT \ -H "Authorization: Bearer <YOUR_TOKEN>" \ -H "Authorization: Basic <YOUR_CREDENTIALS>" \ -H "Content-Type: application/json" \ -d '{ "approved": true, "comment": "string"}' \ "https://automation.services.api.unity.com/v1/organizations/{organizationId}/projects/{projectId}/jobs/{jobId}/steps/{stepId}/approve"

Response example

{ "status": "Queued"}

Get organization job stats (includes organization project jobs)


Description: List job stats from this organization and its projects.
Authorizations
Client (Client)
HTTP: Client
HTTP Authorization Scheme: bearer
Required scopes: Client
ServiceAccount (ServiceAccount)
HTTP: ServiceAccount
To get started with authentication, visit the Service Account Authentication section.
HTTP Authorization Scheme: basic
Required scopes: ServiceAccount

Path parameters for "Get organization job stats (includes organization project jobs)"

organizationId

string
required
The active Organization ID

Query parameters for "Get organization job stats (includes organization project jobs)"

queueName

string
Optional queue name to filter the job stats by.

HTTP response status codes for "Get organization job stats (includes organization project jobs)":

Code samples for "Get organization job stats (includes organization project jobs)":

Request example

curl -X GET \ -H "Authorization: Bearer <YOUR_TOKEN>" \ -H "Authorization: Basic <YOUR_CREDENTIALS>" \ "https://automation.services.api.unity.com/v1/organizations/{organizationId}/job-stats"

Response example

{ "runningJobs": 0, "queuedJobs": 0, "concurrencyLimit": 0}

Get logs for a pipeline job step


Description: Get logs for single step in a job.
Required Role: Automation Developer
Authorizations
Client (Client)
HTTP: Client
HTTP Authorization Scheme: bearer
Required scopes: Client
ServiceAccount (ServiceAccount)
HTTP: ServiceAccount
To get started with authentication, visit the Service Account Authentication section.
HTTP Authorization Scheme: basic
Required scopes: ServiceAccount

Path parameters for "Get logs for a pipeline job step"

organizationId

string
required
The active Organization ID

jobId

string
required
Pipeline job ID

stepId

string
required
Pipeline job step ID

Query parameters for "Get logs for a pipeline job step"

startLine

integer
Optional line number to start streaming logs from.

jobPipelineUid

string
Optional invocation disambiguator for a stepId that appears in more than one pipeline-reference invocation. Required (409 otherwise) when the stepId matches multiple job steps.

HTTP response status codes for "Get logs for a pipeline job step":

Code samples for "Get logs for a pipeline job step":

Request example

curl -X GET \ -H "Authorization: Bearer <YOUR_TOKEN>" \ -H "Authorization: Basic <YOUR_CREDENTIALS>" \ "https://automation.services.api.unity.com/v1/organizations/{organizationId}/jobs/{jobId}/steps/{stepId}/logs"

Response example

[ "string"]

Get logs for a pipeline job step


Description: Get logs for single step in a job.
Required Role: Automation Developer
Authorizations
Client (Client)
HTTP: Client
HTTP Authorization Scheme: bearer
Required scopes: Client
ServiceAccount (ServiceAccount)
HTTP: ServiceAccount
To get started with authentication, visit the Service Account Authentication section.
HTTP Authorization Scheme: basic
Required scopes: ServiceAccount

Path parameters for "Get logs for a pipeline job step"

organizationId

string
required
The active Organization ID

jobId

string
required
Pipeline job ID

stepId

string
required
Pipeline job step ID

Query parameters for "Get logs for a pipeline job step"

startLine

integer
Optional line number to start streaming logs from.

jobPipelineUid

string
Optional invocation disambiguator for a stepId that appears in more than one pipeline-reference invocation. Required (409 otherwise) when the stepId matches multiple job steps.

HTTP response status codes for "Get logs for a pipeline job step":

Code samples for "Get logs for a pipeline job step":

Request example

curl -X GET \ -H "Authorization: Bearer <YOUR_TOKEN>" \ -H "Authorization: Basic <YOUR_CREDENTIALS>" \ "https://automation.services.api.unity.com/v1/organizations/{organizationId}/jobs/{jobId}/steps/{stepId}/logs/sse"

Response example

[ { "data": "string", "eventType": "string", "eventId": "string", "reconnectionInterval": "string" }]

Get logs for a steps in a job


Description: Get logs for a job.
Required Role: Automation Developer
Authorizations
Client (Client)
HTTP: Client
HTTP Authorization Scheme: bearer
Required scopes: Client
ServiceAccount (ServiceAccount)
HTTP: ServiceAccount
To get started with authentication, visit the Service Account Authentication section.
HTTP Authorization Scheme: basic
Required scopes: ServiceAccount

Path parameters for "Get logs for a steps in a job"

organizationId

string
required
The active Organization ID

jobId

string
required
Pipeline job ID

Query parameters for "Get logs for a steps in a job"

startLine

integer
Optional line number to start streaming logs from.

HTTP response status codes for "Get logs for a steps in a job":

Code samples for "Get logs for a steps in a job":

Request example

curl -X GET \ -H "Authorization: Bearer <YOUR_TOKEN>" \ -H "Authorization: Basic <YOUR_CREDENTIALS>" \ "https://automation.services.api.unity.com/v1/organizations/{organizationId}/jobs/{jobId}/logs"

Response example

{ "stepLogs": [ { "stepId": "string", "log": "string" } ]}

Get logs for a project pipeline job step


Description: Get logs for single step in a project job.
Required Role: Automation Developer
Authorizations
Client (Client)
HTTP: Client
HTTP Authorization Scheme: bearer
Required scopes: Client
ServiceAccount (ServiceAccount)
HTTP: ServiceAccount
To get started with authentication, visit the Service Account Authentication section.
HTTP Authorization Scheme: basic
Required scopes: ServiceAccount

Path parameters for "Get logs for a project pipeline job step"

organizationId

string
required
The active Organization ID

projectId

string
required
The Project ID

jobId

string
required
Pipeline job ID

stepId

string
required
Pipeline job step ID

Query parameters for "Get logs for a project pipeline job step"

startLine

integer
Optional line number to start streaming logs from.

jobPipelineUid

string
Optional invocation disambiguator for a stepId that appears in more than one pipeline-reference invocation. Required (409 otherwise) when the stepId matches multiple job steps.

HTTP response status codes for "Get logs for a project pipeline job step":

Code samples for "Get logs for a project pipeline job step":

Request example

curl -X GET \ -H "Authorization: Bearer <YOUR_TOKEN>" \ -H "Authorization: Basic <YOUR_CREDENTIALS>" \ "https://automation.services.api.unity.com/v1/organizations/{organizationId}/projects/{projectId}/jobs/{jobId}/steps/{stepId}/logs"

Response example

[ "string"]

Get logs for a project pipeline job step


Description: Get logs for single step in a project job.
Required Role: Automation Developer
Authorizations
Client (Client)
HTTP: Client
HTTP Authorization Scheme: bearer
Required scopes: Client
ServiceAccount (ServiceAccount)
HTTP: ServiceAccount
To get started with authentication, visit the Service Account Authentication section.
HTTP Authorization Scheme: basic
Required scopes: ServiceAccount

Path parameters for "Get logs for a project pipeline job step"

organizationId

string
required
The active Organization ID

projectId

string
required
The Project ID

jobId

string
required
Pipeline job ID

stepId

string
required
Pipeline job step ID

Query parameters for "Get logs for a project pipeline job step"

startLine

integer
Optional line number to start streaming logs from.

jobPipelineUid

string
Optional invocation disambiguator for a stepId that appears in more than one pipeline-reference invocation. Required (409 otherwise) when the stepId matches multiple job steps.

HTTP response status codes for "Get logs for a project pipeline job step":

Code samples for "Get logs for a project pipeline job step":

Request example

curl -X GET \ -H "Authorization: Bearer <YOUR_TOKEN>" \ -H "Authorization: Basic <YOUR_CREDENTIALS>" \ "https://automation.services.api.unity.com/v1/organizations/{organizationId}/projects/{projectId}/jobs/{jobId}/steps/{stepId}/logs/sse"

Response example

[ { "data": "string", "eventType": "string", "eventId": "string", "reconnectionInterval": "string" }]

Get logs for a project job


Description: Get logs for a project job.
Required Role: Automation Developer
Authorizations
Client (Client)
HTTP: Client
HTTP Authorization Scheme: bearer
Required scopes: Client
ServiceAccount (ServiceAccount)
HTTP: ServiceAccount
To get started with authentication, visit the Service Account Authentication section.
HTTP Authorization Scheme: basic
Required scopes: ServiceAccount

Path parameters for "Get logs for a project job"

organizationId

string
required
The active Organization ID

projectId

string
required
The Project ID

jobId

string
required
Pipeline job ID

Query parameters for "Get logs for a project job"

startLine

integer
Optional line number to start streaming logs from.

HTTP response status codes for "Get logs for a project job":

Code samples for "Get logs for a project job":

Request example

curl -X GET \ -H "Authorization: Bearer <YOUR_TOKEN>" \ -H "Authorization: Basic <YOUR_CREDENTIALS>" \ "https://automation.services.api.unity.com/v1/organizations/{organizationId}/projects/{projectId}/jobs/{jobId}/logs"

Response example

{ "stepLogs": [ { "stepId": "string", "log": "string" } ]}

List Pipelines


Description: Get all pipelines accessible by an organization, the latest version of the pipelines will be returned. Includes pipelines created by the organization and public pipelines.
Authorizations
Client (Client)
HTTP: Client
HTTP Authorization Scheme: bearer
Required scopes: Client
ServiceAccount (ServiceAccount)
HTTP: ServiceAccount
To get started with authentication, visit the Service Account Authentication section.
HTTP Authorization Scheme: basic
Required scopes: ServiceAccount

Path parameters for "List Pipelines"

organizationId

string
required
The active organization Id

Query parameters for "List Pipelines"

owned

boolean
bool representing if we list element owned by the org

offset

integer
int representing number of items to skip

limit

integer
int representing max returned items

HTTP response status codes for "List Pipelines":

Code samples for "List Pipelines":

Request example

curl -X GET \ -H "Authorization: Bearer <YOUR_TOKEN>" \ -H "Authorization: Basic <YOUR_CREDENTIALS>" \ "https://automation.services.api.unity.com/v1/organizations/{organizationId}/pipelines"

Response example

{ "offset": 0, "limit": 0, "total": 0, "results": [ { "pipeline": { "id": "string", "name": "string", "description": "string", "tags": [ "string" ], "isUnityMade": true, "organizationId": "string", "projectId": "string" }, "version": "string", "organizationId": "string", "certification": { "certified": true, "certifiedOn": "2024-01-01T00:00:00Z" }, "lifecycle": { "lifecycleStatus": "Draft", "updatedOn": "2024-01-01T00:00:00Z", "archivingDate": "2024-01-01T00:00:00Z" }, "visibility": { "visibilityLevel": "Private", "updatedOn": "2024-01-01T00:00:00Z" }, "inputParameters": [ { "displayName": "string", "name": "string", "type": "Bool", "description": "string", "required": true, "acceptedValues": [ null ], "regexPattern": "string", "defaultValue": null, "metadata": {}, "isList": true, "minItems": 0, "maxItems": 0, "masked": true } ], "outputParameters": [ { "displayName": "string", "name": "string", "type": "Bool", "description": "string", "value": "string" } ], "steps": [ { "id": "string", "name": "string", "condition": "string", "action": { "actionId": null, "inputParameters": null, "configurationId": null, "secrets": null, "storages": null }, "pipeline": { "id": null, "version": null, "inputParameters": null, "secrets": null, "storages": null }, "suspend": { "type": null, "description": null, "permissions": null, "duration": null, "allowUserToResume": null }, "fanOut": { "loopThroughList": null, "maximumParallelCount": null }, "continueOnFail": true, "timeout": 0, "retry": { "limit": null, "retryPolicy": null, "backoff": null, "expression": null, "configurationIds": null }, "dependencies": [ null ], "depends": "string" } ], "metadata": {}, "systemMetadata": {}, "secrets": [ { "secretName": "string", "displayName": "string", "description": "string", "required": true } ], "usedAppVersions": [ { "app": { "id": null, "name": null, "description": null, "logo": null, "url": null, "tags": null, "systemMetadata": null, "metadata": null }, "version": "string", "platformVersion": "string", "lifecycle": { "lifecycleStatus": null, "updatedOn": null, "archivingDate": null }, "appVisibility": { "visibilityLevel": null, "updatedOn": null }, "actions": [ null ], "events": [ null ], "metadata": {}, "systemMetadata": {}, "requiredEntitlements": [ null ] } ], "storages": [ { "type": "string", "name": "string", "cache": "None" } ] } ]}

Create a new Pipeline


Description: Creates a new pipeline and returns its first version for editing.
Required Role: Automation Developer
Authorizations
Client (Client)
HTTP: Client
HTTP Authorization Scheme: bearer
Required scopes: Client
ServiceAccount (ServiceAccount)
HTTP: ServiceAccount
To get started with authentication, visit the Service Account Authentication section.
HTTP Authorization Scheme: basic
Required scopes: ServiceAccount

Path parameters for "Create a new Pipeline"

organizationId

string
required
The active organization Id

Request body for "Create a new Pipeline"

Media Type:
application/json

name

string
required
The pipeline name.

description

string
required
The pipeline description.

version

string
required
The pipeline version number (format int.int.int[-rc.int] or int.int.int-sha.[7-14 chars] as a string).

id

string
Optional pipeline id as string (must be a valid UUID if provided). If provided and already in use, creation returns 409 Conflict; if invalid, returns 400 Bad Request.

inputParameters

array[object]
A map of InputParameters for this pipeline version.

displayName

string
required
The display name of the parameter.

name

string
required
The name of the parameter.

type

string
required
Parameter type. Each value constrains what an input value must be:

Type

Accepted value

Bool
JSON boolean (
true
or
false
).
Int
JSON integer within the 32-bit signed range.
Float
JSON number with single precision. Integers are accepted.
String
JSON string, including one that holds a UUID or URL.
Url
Absolute
http
or
https
URL, as a string.
UUID
UUID, as a string (for example
3fa85f64-5717-4562-b3fc-2c963f66afa6
).
Text
,
Script
,
File
JSON string. The service applies no further checks.
A value can reference another value with
{{...}}
, for example
{{inputParameters.name}}
. For
Bool
,
Int
,
Float
and
UUID
the whole value must be the reference. For the other types the reference can sit inside a longer string. A value that holds a reference is not validated.
After the type check,
regexPattern
is matched against the value's string form and
acceptedValues
must contain the value. When
isList
is true the value is a JSON array, each item is checked as above, and
minItems
and
maxItems
bound the item count.

description

string
required
The description of the parameter.

required

boolean
required
Indicates if the parameter is mandatory.

acceptedValues

array[object]
A map of values accepted.

regexPattern

string
The validation regex used to validate the parameter.

defaultValue

Optional default value.

metadata

object
key map metadata

isList

boolean
Optional boolean indicating this input parameter takes a list as input

minItems

integer
Optional minimum number of items a list value must hold. Only allowed when Unity.Cloud.Automation.Models.Common.InputParameterDto.IsList is true. A value that references another parameter or a step output is not checked, since its list does not exist until the job runs.

maxItems

integer
Optional maximum number of items a list value may hold. Only allowed when Unity.Cloud.Automation.Models.Common.InputParameterDto.IsList is true, and must not be less than Unity.Cloud.Automation.Models.Common.InputParameterDto.MinItems. References are not checked, as for Unity.Cloud.Automation.Models.Common.InputParameterDto.MinItems.

masked

boolean
Whether the parameter value should be masked in all responses.

secrets

array[object]
List of secret definition.

secretName

string
required
Secret key

displayName

string
required
The display name of the Secret

description

string
required
Secret description

required

boolean
required
Secret user input

outputParameters

array[object]
A map of OutputParameters for this pipeline version.

displayName

string
required
The display name of the parameter.

name

string
required
The name of the parameter.

type

string
required
Parameter type. Each value constrains what an input value must be:

Type

Accepted value

Bool
JSON boolean (
true
or
false
).
Int
JSON integer within the 32-bit signed range.
Float
JSON number with single precision. Integers are accepted.
String
JSON string, including one that holds a UUID or URL.
Url
Absolute
http
or
https
URL, as a string.
UUID
UUID, as a string (for example
3fa85f64-5717-4562-b3fc-2c963f66afa6
).
Text
,
Script
,
File
JSON string. The service applies no further checks.
A value can reference another value with
{{...}}
, for example
{{inputParameters.name}}
. For
Bool
,
Int
,
Float
and
UUID
the whole value must be the reference. For the other types the reference can sit inside a longer string. A value that holds a reference is not validated.
After the type check,
regexPattern
is matched against the value's string form and
acceptedValues
must contain the value. When
isList
is true the value is a JSON array, each item is checked as above, and
minItems
and
maxItems
bound the item count.

description

string
required
The description of the parameter.

value

string
required
Value of the parameter.

tags

array[string]
List of tags.

steps

array[object]
A map of steps for this pipeline version. Each step must define one of: action, pipeline or suspend.

id

string
required
Identifier of the step.

name

string
required
The name of the step.

condition

string
The condition to execute the step.

action

object
The Action

actionId

string
required
Generated unique key from app + version + action name.

inputParameters

object
The input parameters of the action.

configurationId

string
The configuration to use to run the action.

secrets

object
List of the secrets values injected on the action.

storages

object
The action storages mapping.

pipeline

object
An object containing the parameters required to identify a pipeline, its version and input parameters.

id

string
required
The unique Id of the pipeline.

version

string
required
The version of the pipeline (format int.int.int[-rc.int] or int.int.int-sha.[7-14 chars] as a string).

inputParameters

object
The input parameters of the pipeline.

secrets

object
List of the secrets values injected on the pipeline.

storages

object
The pipeline storages mapping.

suspend

The suspend to execute in this step.
One of

fanOut

object
The Fan Out

loopThroughList

string
required
File containing the list of items to loop through.

maximumParallelCount

integer
required
The maximum number of parallel processing.

continueOnFail

boolean
Indicates if the pipeline should continue when this step fails. Only applies to steps that list this one in Dependencies: a step using Depends must define its states itself.

timeout

integer
Timeout value in seconds for this step. Can only be used with Action.

retry

object
The Retry Strategy of a step. Each attempt runs a new pod; the step timeout applies to each attempt, not to the step as a whole.

limit

integer
required
Maximum number of retries after the first attempt.

retryPolicy

string
Which kind of failure triggers a retry.

backoff

object
The delay between retry attempts.

durationSeconds

integer
required
Delay in seconds before the first retry.

factor

integer
Multiplier applied to the delay after each retry. 1 when omitted (constant delay).

maxDurationSeconds

integer
Upper bound in seconds for the delay between two attempts.

expression

string
Optional condition evaluated after each failed attempt; the step is retried only when it is true. It is checked in addition to Unity.Cloud.Automation.Models.Common.RetryStrategyDto.RetryPolicy, so an attempt the policy excludes is never retried. Uses Argo's expression syntax and can read the last attempt through
lastRetry.exitCode
,
lastRetry.status
,
lastRetry.duration
and
lastRetry.message
, e.g.
asInt(lastRetry.exitCode) == 137
. Values are strings, so convert them with
asInt
or
asFloat
before comparing numerically. Input parameters can be injected with
{{inputParameters.name}}
.

configurationIds

array[string]
Optional configuration profiles for the retries, in order: the first retry runs on the first profile, the second retry on the second, and the last one is reused for any further retry. The first attempt keeps the step's own profile. Meant to escalate memory on retry, so each profile may differ from the step's own profile only in CPU and memory; GPU, disk, tolerations, affinity and software must be the same. Each must be one of the action's configuration ids, and there cannot be more of them than Unity.Cloud.Automation.Models.Common.RetryStrategyDto.Limit. Each attempt is billed at its own profile.

dependencies

array[string]
A map of dependencies for this step. Cannot be used with Depends.

depends

string
An expression over the ids of this pipeline's steps, ex: (step1.Succeeded || step1.Skipped) Cannot be used with Dependencies. ContinueOnFail on a referenced step is not applied.

metadata

object
A map of objects containing arbitrary metadata to be attached to the pipeline version.

storages

array[object]
List of pipeline storages used by the pipeline version.
One of

HTTP response status codes for "Create a new Pipeline":

Code samples for "Create a new Pipeline":

Request example

curl -X POST \ -H "Authorization: Bearer <YOUR_TOKEN>" \ -H "Authorization: Basic <YOUR_CREDENTIALS>" \ -H "Content-Type: application/json" \ -d '{ "name": "string", "description": "string", "version": "string", "id": "string", "inputParameters": [ { "displayName": "string", "name": "string", "type": "Bool", "description": "string", "required": true, "acceptedValues": [ null ], "regexPattern": "string", "defaultValue": null, "metadata": {}, "isList": true, "minItems": 0, "maxItems": 0, "masked": true } ], "secrets": [ { "secretName": "string", "displayName": "string", "description": "string", "required": true } ], "outputParameters": [ { "displayName": "string", "name": "string", "type": "Bool", "description": "string", "value": "string" } ], "tags": [ "string" ], "steps": [ { "id": "string", "name": "string", "condition": "string", "action": { "actionId": "string", "inputParameters": {}, "configurationId": "string", "secrets": {}, "storages": {} }, "pipeline": { "id": "string", "version": "string", "inputParameters": {}, "secrets": {}, "storages": {} }, "suspend": { "type": "string", "description": "string", "permissions": { "allowedUsers": [ null ], "allowedGroups": [ null ] }, "duration": "string", "allowUserToResume": true }, "fanOut": { "loopThroughList": "string", "maximumParallelCount": 0 }, "continueOnFail": true, "timeout": 0, "retry": { "limit": 0, "retryPolicy": "OnFailure", "backoff": { "durationSeconds": 0, "factor": 0, "maxDurationSeconds": 0 }, "expression": "string", "configurationIds": [ "string" ] }, "dependencies": [ "string" ], "depends": "string" } ], "metadata": {}, "storages": [ { "type": "string", "name": "string", "cache": "None" } ]}' \ "https://automation.services.api.unity.com/v1/organizations/{organizationId}/pipelines"

Response example

{ "pipeline": { "id": "string", "name": "string", "description": "string", "tags": [ "string" ], "isUnityMade": true, "organizationId": "string", "projectId": "string" }, "version": "string", "organizationId": "string", "certification": { "certified": true, "certifiedOn": "2024-01-01T00:00:00Z" }, "lifecycle": { "lifecycleStatus": "Draft", "updatedOn": "2024-01-01T00:00:00Z", "archivingDate": "2024-01-01T00:00:00Z" }, "visibility": { "visibilityLevel": "Private", "updatedOn": "2024-01-01T00:00:00Z" }, "inputParameters": [ { "displayName": "string", "name": "string", "type": "Bool", "description": "string", "required": true, "acceptedValues": [ null ], "regexPattern": "string", "defaultValue": null, "metadata": {}, "isList": true, "minItems": 0, "maxItems": 0, "masked": true } ], "outputParameters": [ { "displayName": "string", "name": "string", "type": "Bool", "description": "string", "value": "string" } ], "steps": [ { "id": "string", "name": "string", "condition": "string", "action": { "actionId": "string", "inputParameters": {}, "configurationId": "string", "secrets": {}, "storages": {} }, "pipeline": { "id": "string", "version": "string", "inputParameters": {}, "secrets": {}, "storages": {} }, "suspend": { "type": "string", "description": "string", "permissions": { "allowedUsers": [ null ], "allowedGroups": [ null ] }, "duration": "string", "allowUserToResume": true }, "fanOut": { "loopThroughList": "string", "maximumParallelCount": 0 }, "continueOnFail": true, "timeout": 0, "retry": { "limit": 0, "retryPolicy": "OnFailure", "backoff": { "durationSeconds": 0, "factor": 0, "maxDurationSeconds": 0 }, "expression": "string", "configurationIds": [ "string" ] }, "dependencies": [ "string" ], "depends": "string" } ], "metadata": {}, "systemMetadata": {}, "secrets": [ { "secretName": "string", "displayName": "string", "description": "string", "required": true } ], "usedAppVersions": [ { "app": { "id": "string", "name": "string", "description": "string", "logo": "string", "url": "https://example.com", "tags": [ "string" ], "systemMetadata": { "createdByUnity": true, "organizationId": "string" }, "metadata": {} }, "version": "string", "platformVersion": "string", "lifecycle": { "lifecycleStatus": "Draft", "updatedOn": "2024-01-01T00:00:00Z", "archivingDate": "2024-01-01T00:00:00Z" }, "appVisibility": { "visibilityLevel": "Private", "updatedOn": "2024-01-01T00:00:00Z" }, "actions": [ { "actionId": "string", "name": "string", "description": "string", "terminationGracePeriodSeconds": 0, "inputParameters": [ null ], "outputParameters": [ null ], "secrets": [ null ], "requirements": { "configurationIds": null, "entitlements": null }, "metadata": {}, "timeout": { "defaultValue": null, "minValue": null, "maxValue": null }, "storages": [ null ] } ], "events": [ { "id": "string", "name": "string", "description": "string", "inputParameters": [ null ], "outputParameters": [ null ], "definition": { "type": null, "url": null, "headers": null, "body": null, "deleteUrl": null, "deleteBody": null, "eventFilter": null, "outputParameterMapping": null, "signature": null }, "secrets": [ null ], "requirements": {}, "metadata": {}, "app": { "id": null, "name": null, "description": null, "logo": null, "url": null, "tags": null, "systemMetadata": null, "metadata": null } } ], "metadata": {}, "systemMetadata": {}, "requiredEntitlements": [ { "entitlementIds": [ null ], "description": "string" } ] } ], "storages": [ { "type": "string", "name": "string", "cache": "None" } ]}

Update Pipeline


Description: Updates the basic pipeline information. Independent of status or visibility. Can only be called from the organization the pipeline belongs to.
Required Role: Automation Developer
Authorizations
Client (Client)
HTTP: Client
HTTP Authorization Scheme: bearer
Required scopes: Client
ServiceAccount (ServiceAccount)
HTTP: ServiceAccount
To get started with authentication, visit the Service Account Authentication section.
HTTP Authorization Scheme: basic
Required scopes: ServiceAccount

Path parameters for "Update Pipeline"

organizationId

string
required
The active organization Id

pipelineId

string
required
The pipeline unique identifier

Request body for "Update Pipeline"

Media Type:
application/json

name

string
The pipeline name.

description

string
The pipeline description.

tags

array[string]
The pipeline tags.

HTTP response status codes for "Update Pipeline":

Code samples for "Update Pipeline":

Request example

curl -X PATCH \ -H "Authorization: Bearer <YOUR_TOKEN>" \ -H "Authorization: Basic <YOUR_CREDENTIALS>" \ -H "Content-Type: application/json" \ -d '{ "name": "string", "description": "string", "tags": [ "string" ]}' \ "https://automation.services.api.unity.com/v1/organizations/{organizationId}/pipelines/{pipelineId}"

Response example

{ "id": "string", "name": "string", "description": "string", "tags": [ "string" ], "isUnityMade": true, "organizationId": "string", "projectId": "string"}

Get all Pipeline Versions


Description: Returns all versions of a pipeline. When the caller is not the pipeline's organization, only Public versions are returned.
Authorizations
Client (Client)
HTTP: Client
HTTP Authorization Scheme: bearer
Required scopes: Client
ServiceAccount (ServiceAccount)
HTTP: ServiceAccount
To get started with authentication, visit the Service Account Authentication section.
HTTP Authorization Scheme: basic
Required scopes: ServiceAccount

Path parameters for "Get all Pipeline Versions"

organizationId

string
required
The active organization Id

pipelineId

string
required
The pipeline unique identifier

Query parameters for "Get all Pipeline Versions"

offset

integer
int representing number of items to skip

limit

integer
int representing max returned items

HTTP response status codes for "Get all Pipeline Versions":

Code samples for "Get all Pipeline Versions":

Request example

curl -X GET \ -H "Authorization: Bearer <YOUR_TOKEN>" \ -H "Authorization: Basic <YOUR_CREDENTIALS>" \ "https://automation.services.api.unity.com/v1/organizations/{organizationId}/pipelines/{pipelineId}/versions"

Response example

{ "offset": 0, "limit": 0, "total": 0, "results": [ { "pipeline": { "id": "string", "name": "string", "description": "string", "tags": [ "string" ], "isUnityMade": true, "organizationId": "string", "projectId": "string" }, "version": "string", "organizationId": "string", "certification": { "certified": true, "certifiedOn": "2024-01-01T00:00:00Z" }, "lifecycle": { "lifecycleStatus": "Draft", "updatedOn": "2024-01-01T00:00:00Z", "archivingDate": "2024-01-01T00:00:00Z" }, "visibility": { "visibilityLevel": "Private", "updatedOn": "2024-01-01T00:00:00Z" }, "inputParameters": [ { "displayName": "string", "name": "string", "type": "Bool", "description": "string", "required": true, "acceptedValues": [ null ], "regexPattern": "string", "defaultValue": null, "metadata": {}, "isList": true, "minItems": 0, "maxItems": 0, "masked": true } ], "outputParameters": [ { "displayName": "string", "name": "string", "type": "Bool", "description": "string", "value": "string" } ], "steps": [ { "id": "string", "name": "string", "condition": "string", "action": { "actionId": null, "inputParameters": null, "configurationId": null, "secrets": null, "storages": null }, "pipeline": { "id": null, "version": null, "inputParameters": null, "secrets": null, "storages": null }, "suspend": { "type": null, "description": null, "permissions": null, "duration": null, "allowUserToResume": null }, "fanOut": { "loopThroughList": null, "maximumParallelCount": null }, "continueOnFail": true, "timeout": 0, "retry": { "limit": null, "retryPolicy": null, "backoff": null, "expression": null, "configurationIds": null }, "dependencies": [ null ], "depends": "string" } ], "metadata": {}, "systemMetadata": {}, "secrets": [ { "secretName": "string", "displayName": "string", "description": "string", "required": true } ], "usedAppVersions": [ { "app": { "id": null, "name": null, "description": null, "logo": null, "url": null, "tags": null, "systemMetadata": null, "metadata": null }, "version": "string", "platformVersion": "string", "lifecycle": { "lifecycleStatus": null, "updatedOn": null, "archivingDate": null }, "appVisibility": { "visibilityLevel": null, "updatedOn": null }, "actions": [ null ], "events": [ null ], "metadata": {}, "systemMetadata": {}, "requiredEntitlements": [ null ] } ], "storages": [ { "type": "string", "name": "string", "cache": "None" } ] } ]}

Create new Pipeline Version


Description: Creates a new pipeline version. Can only be called from the organization the pipeline belongs to.
Authorizations
Client (Client)
HTTP: Client
HTTP Authorization Scheme: bearer
Required scopes: Client
ServiceAccount (ServiceAccount)
HTTP: ServiceAccount
To get started with authentication, visit the Service Account Authentication section.
HTTP Authorization Scheme: basic
Required scopes: ServiceAccount

Path parameters for "Create new Pipeline Version"

organizationId

string
required
The active Organization Id

pipelineId

string
required
The pipeline unique identifier

Request body for "Create new Pipeline Version"

Media Type:
application/json

version

string
The new pipeline version number (format int.int.int[-rc.int] or int.int.int-sha.[7-14 chars] as a string).

baseVersion

string
The pipeline base version (format int.int.int[-rc.int] or int.int.int-sha.[7-14 chars] as a string).

steps

array[object]
A map of Step for this pipeline version.

id

string
required
Identifier of the step.

name

string
required
The name of the step.

condition

string
The condition to execute the step.

action

object
The Action

actionId

string
required
Generated unique key from app + version + action name.

inputParameters

object
The input parameters of the action.

configurationId

string
The configuration to use to run the action.

secrets

object
List of the secrets values injected on the action.

storages

object
The action storages mapping.

pipeline

object
An object containing the parameters required to identify a pipeline, its version and input parameters.

id

string
required
The unique Id of the pipeline.

version

string
required
The version of the pipeline (format int.int.int[-rc.int] or int.int.int-sha.[7-14 chars] as a string).

inputParameters

object
The input parameters of the pipeline.

secrets

object
List of the secrets values injected on the pipeline.

storages

object
The pipeline storages mapping.

suspend

The suspend to execute in this step.
One of

fanOut

object
The Fan Out

loopThroughList

string
required
File containing the list of items to loop through.

maximumParallelCount

integer
required
The maximum number of parallel processing.

continueOnFail

boolean
Indicates if the pipeline should continue when this step fails. Only applies to steps that list this one in Dependencies: a step using Depends must define its states itself.

timeout

integer
Timeout value in seconds for this step. Can only be used with Action.

retry

object
The Retry Strategy of a step. Each attempt runs a new pod; the step timeout applies to each attempt, not to the step as a whole.

limit

integer
required
Maximum number of retries after the first attempt.

retryPolicy

string
Which kind of failure triggers a retry.

backoff

object
The delay between retry attempts.

durationSeconds

integer
required
Delay in seconds before the first retry.

factor

integer
Multiplier applied to the delay after each retry. 1 when omitted (constant delay).

maxDurationSeconds

integer
Upper bound in seconds for the delay between two attempts.

expression

string
Optional condition evaluated after each failed attempt; the step is retried only when it is true. It is checked in addition to Unity.Cloud.Automation.Models.Common.RetryStrategyDto.RetryPolicy, so an attempt the policy excludes is never retried. Uses Argo's expression syntax and can read the last attempt through
lastRetry.exitCode
,
lastRetry.status
,
lastRetry.duration
and
lastRetry.message
, e.g.
asInt(lastRetry.exitCode) == 137
. Values are strings, so convert them with
asInt
or
asFloat
before comparing numerically. Input parameters can be injected with
{{inputParameters.name}}
.

configurationIds

array[string]
Optional configuration profiles for the retries, in order: the first retry runs on the first profile, the second retry on the second, and the last one is reused for any further retry. The first attempt keeps the step's own profile. Meant to escalate memory on retry, so each profile may differ from the step's own profile only in CPU and memory; GPU, disk, tolerations, affinity and software must be the same. Each must be one of the action's configuration ids, and there cannot be more of them than Unity.Cloud.Automation.Models.Common.RetryStrategyDto.Limit. Each attempt is billed at its own profile.

dependencies

array[string]
A map of dependencies for this step. Cannot be used with Depends.

depends

string
An expression over the ids of this pipeline's steps, ex: (step1.Succeeded || step1.Skipped) Cannot be used with Dependencies. ContinueOnFail on a referenced step is not applied.

inputParameters

array[object]
A map of InputParameters for this pipeline version.

displayName

string
required
The display name of the parameter.

name

string
required
The name of the parameter.

type

string
required
Parameter type. Each value constrains what an input value must be:

Type

Accepted value

Bool
JSON boolean (
true
or
false
).
Int
JSON integer within the 32-bit signed range.
Float
JSON number with single precision. Integers are accepted.
String
JSON string, including one that holds a UUID or URL.
Url
Absolute
http
or
https
URL, as a string.
UUID
UUID, as a string (for example
3fa85f64-5717-4562-b3fc-2c963f66afa6
).
Text
,
Script
,
File
JSON string. The service applies no further checks.
A value can reference another value with
{{...}}
, for example
{{inputParameters.name}}
. For
Bool
,
Int
,
Float
and
UUID
the whole value must be the reference. For the other types the reference can sit inside a longer string. A value that holds a reference is not validated.
After the type check,
regexPattern
is matched against the value's string form and
acceptedValues
must contain the value. When
isList
is true the value is a JSON array, each item is checked as above, and
minItems
and
maxItems
bound the item count.

description

string
required
The description of the parameter.

required

boolean
required
Indicates if the parameter is mandatory.

acceptedValues

array[object]
A map of values accepted.

regexPattern

string
The validation regex used to validate the parameter.

defaultValue

Optional default value.

metadata

object
key map metadata

isList

boolean
Optional boolean indicating this input parameter takes a list as input

minItems

integer
Optional minimum number of items a list value must hold. Only allowed when Unity.Cloud.Automation.Models.Common.InputParameterDto.IsList is true. A value that references another parameter or a step output is not checked, since its list does not exist until the job runs.

maxItems

integer
Optional maximum number of items a list value may hold. Only allowed when Unity.Cloud.Automation.Models.Common.InputParameterDto.IsList is true, and must not be less than Unity.Cloud.Automation.Models.Common.InputParameterDto.MinItems. References are not checked, as for Unity.Cloud.Automation.Models.Common.InputParameterDto.MinItems.

masked

boolean
Whether the parameter value should be masked in all responses.

secrets

array[object]
List of secret definition.

secretName

string
required
Secret key

displayName

string
required
The display name of the Secret

description

string
required
Secret description

required

boolean
required
Secret user input

outputParameters

array[object]
A map of OutputParameters for this pipeline version.

displayName

string
required
The display name of the parameter.

name

string
required
The name of the parameter.

type

string
required
Parameter type. Each value constrains what an input value must be:

Type

Accepted value

Bool
JSON boolean (
true
or
false
).
Int
JSON integer within the 32-bit signed range.
Float
JSON number with single precision. Integers are accepted.
String
JSON string, including one that holds a UUID or URL.
Url
Absolute
http
or
https
URL, as a string.
UUID
UUID, as a string (for example
3fa85f64-5717-4562-b3fc-2c963f66afa6
).
Text
,
Script
,
File
JSON string. The service applies no further checks.
A value can reference another value with
{{...}}
, for example
{{inputParameters.name}}
. For
Bool
,
Int
,
Float
and
UUID
the whole value must be the reference. For the other types the reference can sit inside a longer string. A value that holds a reference is not validated.
After the type check,
regexPattern
is matched against the value's string form and
acceptedValues
must contain the value. When
isList
is true the value is a JSON array, each item is checked as above, and
minItems
and
maxItems
bound the item count.

description

string
required
The description of the parameter.

value

string
required
Value of the parameter.

metadata

object
A map of objects containing arbitrary metadata to be attached to the pipeline version.

storages

array[object]
List of pipeline storages used by the pipeline version.
One of

HTTP response status codes for "Create new Pipeline Version":

Code samples for "Create new Pipeline Version":

Request example

curl -X POST \ -H "Authorization: Bearer <YOUR_TOKEN>" \ -H "Authorization: Basic <YOUR_CREDENTIALS>" \ -H "Content-Type: application/json" \ -d '{ "version": "string", "baseVersion": "string", "steps": [ { "id": "string", "name": "string", "condition": "string", "action": { "actionId": "string", "inputParameters": {}, "configurationId": "string", "secrets": {}, "storages": {} }, "pipeline": { "id": "string", "version": "string", "inputParameters": {}, "secrets": {}, "storages": {} }, "suspend": { "type": "string", "description": "string", "permissions": { "allowedUsers": [ null ], "allowedGroups": [ null ] }, "duration": "string", "allowUserToResume": true }, "fanOut": { "loopThroughList": "string", "maximumParallelCount": 0 }, "continueOnFail": true, "timeout": 0, "retry": { "limit": 0, "retryPolicy": "OnFailure", "backoff": { "durationSeconds": 0, "factor": 0, "maxDurationSeconds": 0 }, "expression": "string", "configurationIds": [ "string" ] }, "dependencies": [ "string" ], "depends": "string" } ], "inputParameters": [ { "displayName": "string", "name": "string", "type": "Bool", "description": "string", "required": true, "acceptedValues": [ null ], "regexPattern": "string", "defaultValue": null, "metadata": {}, "isList": true, "minItems": 0, "maxItems": 0, "masked": true } ], "secrets": [ { "secretName": "string", "displayName": "string", "description": "string", "required": true } ], "outputParameters": [ { "displayName": "string", "name": "string", "type": "Bool", "description": "string", "value": "string" } ], "metadata": {}, "storages": [ { "type": "string", "name": "string", "cache": "None" } ]}' \ "https://automation.services.api.unity.com/v1/organizations/{organizationId}/pipelines/{pipelineId}/versions"

Response example

{ "pipeline": { "id": "string", "name": "string", "description": "string", "tags": [ "string" ], "isUnityMade": true, "organizationId": "string", "projectId": "string" }, "version": "string", "organizationId": "string", "certification": { "certified": true, "certifiedOn": "2024-01-01T00:00:00Z" }, "lifecycle": { "lifecycleStatus": "Draft", "updatedOn": "2024-01-01T00:00:00Z", "archivingDate": "2024-01-01T00:00:00Z" }, "visibility": { "visibilityLevel": "Private", "updatedOn": "2024-01-01T00:00:00Z" }, "inputParameters": [ { "displayName": "string", "name": "string", "type": "Bool", "description": "string", "required": true, "acceptedValues": [ null ], "regexPattern": "string", "defaultValue": null, "metadata": {}, "isList": true, "minItems": 0, "maxItems": 0, "masked": true } ], "outputParameters": [ { "displayName": "string", "name": "string", "type": "Bool", "description": "string", "value": "string" } ], "steps": [ { "id": "string", "name": "string", "condition": "string", "action": { "actionId": "string", "inputParameters": {}, "configurationId": "string", "secrets": {}, "storages": {} }, "pipeline": { "id": "string", "version": "string", "inputParameters": {}, "secrets": {}, "storages": {} }, "suspend": { "type": "string", "description": "string", "permissions": { "allowedUsers": [ null ], "allowedGroups": [ null ] }, "duration": "string", "allowUserToResume": true }, "fanOut": { "loopThroughList": "string", "maximumParallelCount": 0 }, "continueOnFail": true, "timeout": 0, "retry": { "limit": 0, "retryPolicy": "OnFailure", "backoff": { "durationSeconds": 0, "factor": 0, "maxDurationSeconds": 0 }, "expression": "string", "configurationIds": [ "string" ] }, "dependencies": [ "string" ], "depends": "string" } ], "metadata": {}, "systemMetadata": {}, "secrets": [ { "secretName": "string", "displayName": "string", "description": "string", "required": true } ], "usedAppVersions": [ { "app": { "id": "string", "name": "string", "description": "string", "logo": "string", "url": "https://example.com", "tags": [ "string" ], "systemMetadata": { "createdByUnity": true, "organizationId": "string" }, "metadata": {} }, "version": "string", "platformVersion": "string", "lifecycle": { "lifecycleStatus": "Draft", "updatedOn": "2024-01-01T00:00:00Z", "archivingDate": "2024-01-01T00:00:00Z" }, "appVisibility": { "visibilityLevel": "Private", "updatedOn": "2024-01-01T00:00:00Z" }, "actions": [ { "actionId": "string", "name": "string", "description": "string", "terminationGracePeriodSeconds": 0, "inputParameters": [ null ], "outputParameters": [ null ], "secrets": [ null ], "requirements": { "configurationIds": null, "entitlements": null }, "metadata": {}, "timeout": { "defaultValue": null, "minValue": null, "maxValue": null }, "storages": [ null ] } ], "events": [ { "id": "string", "name": "string", "description": "string", "inputParameters": [ null ], "outputParameters": [ null ], "definition": { "type": null, "url": null, "headers": null, "body": null, "deleteUrl": null, "deleteBody": null, "eventFilter": null, "outputParameterMapping": null, "signature": null }, "secrets": [ null ], "requirements": {}, "metadata": {}, "app": { "id": null, "name": null, "description": null, "logo": null, "url": null, "tags": null, "systemMetadata": null, "metadata": null } } ], "metadata": {}, "systemMetadata": {}, "requiredEntitlements": [ { "entitlementIds": [ null ], "description": "string" } ] } ], "storages": [ { "type": "string", "name": "string", "cache": "None" } ]}

Get Pipeline Version


Description: Get a specific pipeline version. Callable from the pipeline's organization for any version; callable from any organization for Public or Unlisted versions.
Authorizations
Client (Client)
HTTP: Client
HTTP Authorization Scheme: bearer
Required scopes: Client
ServiceAccount (ServiceAccount)
HTTP: ServiceAccount
To get started with authentication, visit the Service Account Authentication section.
HTTP Authorization Scheme: basic
Required scopes: ServiceAccount

Path parameters for "Get Pipeline Version"

organizationId

string
required
The active organization Id

pipelineId

string
required
The pipeline unique identifier

pipelineVersion

string
required
The pipeline version (format int.int.int[-rc.int] or int.int.int-sha.[7-14 chars] as a string)

Query parameters for "Get Pipeline Version"

includeApps

boolean
The app Ids used on this pipeline

HTTP response status codes for "Get Pipeline Version":

Code samples for "Get Pipeline Version":

Request example

curl -X GET \ -H "Authorization: Bearer <YOUR_TOKEN>" \ -H "Authorization: Basic <YOUR_CREDENTIALS>" \ "https://automation.services.api.unity.com/v1/organizations/{organizationId}/pipelines/{pipelineId}/versions/{pipelineVersion}"

Response example

{ "pipeline": { "id": "string", "name": "string", "description": "string", "tags": [ "string" ], "isUnityMade": true, "organizationId": "string", "projectId": "string" }, "version": "string", "organizationId": "string", "certification": { "certified": true, "certifiedOn": "2024-01-01T00:00:00Z" }, "lifecycle": { "lifecycleStatus": "Draft", "updatedOn": "2024-01-01T00:00:00Z", "archivingDate": "2024-01-01T00:00:00Z" }, "visibility": { "visibilityLevel": "Private", "updatedOn": "2024-01-01T00:00:00Z" }, "inputParameters": [ { "displayName": "string", "name": "string", "type": "Bool", "description": "string", "required": true, "acceptedValues": [ null ], "regexPattern": "string", "defaultValue": null, "metadata": {}, "isList": true, "minItems": 0, "maxItems": 0, "masked": true } ], "outputParameters": [ { "displayName": "string", "name": "string", "type": "Bool", "description": "string", "value": "string" } ], "steps": [ { "id": "string", "name": "string", "condition": "string", "action": { "actionId": "string", "inputParameters": {}, "configurationId": "string", "secrets": {}, "storages": {} }, "pipeline": { "id": "string", "version": "string", "inputParameters": {}, "secrets": {}, "storages": {} }, "suspend": { "type": "string", "description": "string", "permissions": { "allowedUsers": [ null ], "allowedGroups": [ null ] }, "duration": "string", "allowUserToResume": true }, "fanOut": { "loopThroughList": "string", "maximumParallelCount": 0 }, "continueOnFail": true, "timeout": 0, "retry": { "limit": 0, "retryPolicy": "OnFailure", "backoff": { "durationSeconds": 0, "factor": 0, "maxDurationSeconds": 0 }, "expression": "string", "configurationIds": [ "string" ] }, "dependencies": [ "string" ], "depends": "string" } ], "metadata": {}, "systemMetadata": {}, "secrets": [ { "secretName": "string", "displayName": "string", "description": "string", "required": true } ], "usedAppVersions": [ { "app": { "id": "string", "name": "string", "description": "string", "logo": "string", "url": "https://example.com", "tags": [ "string" ], "systemMetadata": { "createdByUnity": true, "organizationId": "string" }, "metadata": {} }, "version": "string", "platformVersion": "string", "lifecycle": { "lifecycleStatus": "Draft", "updatedOn": "2024-01-01T00:00:00Z", "archivingDate": "2024-01-01T00:00:00Z" }, "appVisibility": { "visibilityLevel": "Private", "updatedOn": "2024-01-01T00:00:00Z" }, "actions": [ { "actionId": "string", "name": "string", "description": "string", "terminationGracePeriodSeconds": 0, "inputParameters": [ null ], "outputParameters": [ null ], "secrets": [ null ], "requirements": { "configurationIds": null, "entitlements": null }, "metadata": {}, "timeout": { "defaultValue": null, "minValue": null, "maxValue": null }, "storages": [ null ] } ], "events": [ { "id": "string", "name": "string", "description": "string", "inputParameters": [ null ], "outputParameters": [ null ], "definition": { "type": null, "url": null, "headers": null, "body": null, "deleteUrl": null, "deleteBody": null, "eventFilter": null, "outputParameterMapping": null, "signature": null }, "secrets": [ null ], "requirements": {}, "metadata": {}, "app": { "id": null, "name": null, "description": null, "logo": null, "url": null, "tags": null, "systemMetadata": null, "metadata": null } } ], "metadata": {}, "systemMetadata": {}, "requiredEntitlements": [ { "entitlementIds": [ null ], "description": "string" } ] } ], "storages": [ { "type": "string", "name": "string", "cache": "None" } ]}

Update Pipeline Version


Description: Updates a pipeline version. Can only be called from the organization the pipeline belongs to. Can only be called if the pipeline version is in a draft status. Only some of the fields can be updated.
Required Role: Automation Developer
Authorizations
Client (Client)
HTTP: Client
HTTP Authorization Scheme: bearer
Required scopes: Client
ServiceAccount (ServiceAccount)
HTTP: ServiceAccount
To get started with authentication, visit the Service Account Authentication section.
HTTP Authorization Scheme: basic
Required scopes: ServiceAccount

Path parameters for "Update Pipeline Version"

organizationId

string
required
The active organization Id

pipelineId

string
required
The pipeline unique identifier

pipelineVersion

string
required
The pipeline version (format int.int.int[-rc.int] or int.int.int-sha.[7-14 chars] as a string)

Request body for "Update Pipeline Version"

Media Type:
application/json

inputParameters

array[object]
A map of InputParameters to update the pipeline version.

displayName

string
required
The display name of the parameter.

name

string
required
The name of the parameter.

type

string
required
Parameter type. Each value constrains what an input value must be:

Type

Accepted value

Bool
JSON boolean (
true
or
false
).
Int
JSON integer within the 32-bit signed range.
Float
JSON number with single precision. Integers are accepted.
String
JSON string, including one that holds a UUID or URL.
Url
Absolute
http
or
https
URL, as a string.
UUID
UUID, as a string (for example
3fa85f64-5717-4562-b3fc-2c963f66afa6
).
Text
,
Script
,
File
JSON string. The service applies no further checks.
A value can reference another value with
{{...}}
, for example
{{inputParameters.name}}
. For
Bool
,
Int
,
Float
and
UUID
the whole value must be the reference. For the other types the reference can sit inside a longer string. A value that holds a reference is not validated.
After the type check,
regexPattern
is matched against the value's string form and
acceptedValues
must contain the value. When
isList
is true the value is a JSON array, each item is checked as above, and
minItems
and
maxItems
bound the item count.

description

string
required
The description of the parameter.

required

boolean
required
Indicates if the parameter is mandatory.

acceptedValues

array[object]
A map of values accepted.

regexPattern

string
The validation regex used to validate the parameter.

defaultValue

Optional default value.

metadata

object
key map metadata

isList

boolean
Optional boolean indicating this input parameter takes a list as input

minItems

integer
Optional minimum number of items a list value must hold. Only allowed when Unity.Cloud.Automation.Models.Common.InputParameterDto.IsList is true. A value that references another parameter or a step output is not checked, since its list does not exist until the job runs.

maxItems

integer
Optional maximum number of items a list value may hold. Only allowed when Unity.Cloud.Automation.Models.Common.InputParameterDto.IsList is true, and must not be less than Unity.Cloud.Automation.Models.Common.InputParameterDto.MinItems. References are not checked, as for Unity.Cloud.Automation.Models.Common.InputParameterDto.MinItems.

masked

boolean
Whether the parameter value should be masked in all responses.

outputParameters

array[object]
A map of OutputParameters to update the pipeline version.

displayName

string
required
The display name of the parameter.

name

string
required
The name of the parameter.

type

string
required
Parameter type. Each value constrains what an input value must be:

Type

Accepted value

Bool
JSON boolean (
true
or
false
).
Int
JSON integer within the 32-bit signed range.
Float
JSON number with single precision. Integers are accepted.
String
JSON string, including one that holds a UUID or URL.
Url
Absolute
http
or
https
URL, as a string.
UUID
UUID, as a string (for example
3fa85f64-5717-4562-b3fc-2c963f66afa6
).
Text
,
Script
,
File
JSON string. The service applies no further checks.
A value can reference another value with
{{...}}
, for example
{{inputParameters.name}}
. For
Bool
,
Int
,
Float
and
UUID
the whole value must be the reference. For the other types the reference can sit inside a longer string. A value that holds a reference is not validated.
After the type check,
regexPattern
is matched against the value's string form and
acceptedValues
must contain the value. When
isList
is true the value is a JSON array, each item is checked as above, and
minItems
and
maxItems
bound the item count.

description

string
required
The description of the parameter.

value

string
required
Value of the parameter.

secrets

array[object]
List of secrets definition used by the pipeline.

secretName

string
required
Secret key

displayName

string
required
The display name of the Secret

description

string
required
Secret description

required

boolean
required
Secret user input

steps

array[object]
A map of Step to update the pipeline version.

id

string
required
Identifier of the step.

name

string
required
The name of the step.

condition

string
The condition to execute the step.

action

object
The Action

actionId

string
required
Generated unique key from app + version + action name.

inputParameters

object
The input parameters of the action.

configurationId

string
The configuration to use to run the action.

secrets

object
List of the secrets values injected on the action.

storages

object
The action storages mapping.

pipeline

object
An object containing the parameters required to identify a pipeline, its version and input parameters.

id

string
required
The unique Id of the pipeline.

version

string
required
The version of the pipeline (format int.int.int[-rc.int] or int.int.int-sha.[7-14 chars] as a string).

inputParameters

object
The input parameters of the pipeline.

secrets

object
List of the secrets values injected on the pipeline.

storages

object
The pipeline storages mapping.

suspend

The suspend to execute in this step.
One of

fanOut

object
The Fan Out

loopThroughList

string
required
File containing the list of items to loop through.

maximumParallelCount

integer
required
The maximum number of parallel processing.

continueOnFail

boolean
Indicates if the pipeline should continue when this step fails. Only applies to steps that list this one in Dependencies: a step using Depends must define its states itself.

timeout

integer
Timeout value in seconds for this step. Can only be used with Action.

retry

object
The Retry Strategy of a step. Each attempt runs a new pod; the step timeout applies to each attempt, not to the step as a whole.

limit

integer
required
Maximum number of retries after the first attempt.

retryPolicy

string
Which kind of failure triggers a retry.

backoff

object
The delay between retry attempts.

durationSeconds

integer
required
Delay in seconds before the first retry.

factor

integer
Multiplier applied to the delay after each retry. 1 when omitted (constant delay).

maxDurationSeconds

integer
Upper bound in seconds for the delay between two attempts.

expression

string
Optional condition evaluated after each failed attempt; the step is retried only when it is true. It is checked in addition to Unity.Cloud.Automation.Models.Common.RetryStrategyDto.RetryPolicy, so an attempt the policy excludes is never retried. Uses Argo's expression syntax and can read the last attempt through
lastRetry.exitCode
,
lastRetry.status
,
lastRetry.duration
and
lastRetry.message
, e.g.
asInt(lastRetry.exitCode) == 137
. Values are strings, so convert them with
asInt
or
asFloat
before comparing numerically. Input parameters can be injected with
{{inputParameters.name}}
.

configurationIds

array[string]
Optional configuration profiles for the retries, in order: the first retry runs on the first profile, the second retry on the second, and the last one is reused for any further retry. The first attempt keeps the step's own profile. Meant to escalate memory on retry, so each profile may differ from the step's own profile only in CPU and memory; GPU, disk, tolerations, affinity and software must be the same. Each must be one of the action's configuration ids, and there cannot be more of them than Unity.Cloud.Automation.Models.Common.RetryStrategyDto.Limit. Each attempt is billed at its own profile.

dependencies

array[string]
A map of dependencies for this step. Cannot be used with Depends.

depends

string
An expression over the ids of this pipeline's steps, ex: (step1.Succeeded || step1.Skipped) Cannot be used with Dependencies. ContinueOnFail on a referenced step is not applied.

metadata

object
A map of objects containing arbitrary metadata to update the pipeline version.

storages

array[object]
List of pipeline storages used by the pipeline version.
One of

HTTP response status codes for "Update Pipeline Version":

Code samples for "Update Pipeline Version":

Request example

curl -X PATCH \ -H "Authorization: Bearer <YOUR_TOKEN>" \ -H "Authorization: Basic <YOUR_CREDENTIALS>" \ -H "Content-Type: application/json" \ -d '{ "inputParameters": [ { "displayName": "string", "name": "string", "type": "Bool", "description": "string", "required": true, "acceptedValues": [ null ], "regexPattern": "string", "defaultValue": null, "metadata": {}, "isList": true, "minItems": 0, "maxItems": 0, "masked": true } ], "outputParameters": [ { "displayName": "string", "name": "string", "type": "Bool", "description": "string", "value": "string" } ], "secrets": [ { "secretName": "string", "displayName": "string", "description": "string", "required": true } ], "steps": [ { "id": "string", "name": "string", "condition": "string", "action": { "actionId": "string", "inputParameters": {}, "configurationId": "string", "secrets": {}, "storages": {} }, "pipeline": { "id": "string", "version": "string", "inputParameters": {}, "secrets": {}, "storages": {} }, "suspend": { "type": "string", "description": "string", "permissions": { "allowedUsers": [ null ], "allowedGroups": [ null ] }, "duration": "string", "allowUserToResume": true }, "fanOut": { "loopThroughList": "string", "maximumParallelCount": 0 }, "continueOnFail": true, "timeout": 0, "retry": { "limit": 0, "retryPolicy": "OnFailure", "backoff": { "durationSeconds": 0, "factor": 0, "maxDurationSeconds": 0 }, "expression": "string", "configurationIds": [ "string" ] }, "dependencies": [ "string" ], "depends": "string" } ], "metadata": {}, "storages": [ { "type": "string", "name": "string", "cache": "None" } ]}' \ "https://automation.services.api.unity.com/v1/organizations/{organizationId}/pipelines/{pipelineId}/versions/{pipelineVersion}"

Response example

{ "pipeline": { "id": "string", "name": "string", "description": "string", "tags": [ "string" ], "isUnityMade": true, "organizationId": "string", "projectId": "string" }, "version": "string", "organizationId": "string", "certification": { "certified": true, "certifiedOn": "2024-01-01T00:00:00Z" }, "lifecycle": { "lifecycleStatus": "Draft", "updatedOn": "2024-01-01T00:00:00Z", "archivingDate": "2024-01-01T00:00:00Z" }, "visibility": { "visibilityLevel": "Private", "updatedOn": "2024-01-01T00:00:00Z" }, "inputParameters": [ { "displayName": "string", "name": "string", "type": "Bool", "description": "string", "required": true, "acceptedValues": [ null ], "regexPattern": "string", "defaultValue": null, "metadata": {}, "isList": true, "minItems": 0, "maxItems": 0, "masked": true } ], "outputParameters": [ { "displayName": "string", "name": "string", "type": "Bool", "description": "string", "value": "string" } ], "steps": [ { "id": "string", "name": "string", "condition": "string", "action": { "actionId": "string", "inputParameters": {}, "configurationId": "string", "secrets": {}, "storages": {} }, "pipeline": { "id": "string", "version": "string", "inputParameters": {}, "secrets": {}, "storages": {} }, "suspend": { "type": "string", "description": "string", "permissions": { "allowedUsers": [ null ], "allowedGroups": [ null ] }, "duration": "string", "allowUserToResume": true }, "fanOut": { "loopThroughList": "string", "maximumParallelCount": 0 }, "continueOnFail": true, "timeout": 0, "retry": { "limit": 0, "retryPolicy": "OnFailure", "backoff": { "durationSeconds": 0, "factor": 0, "maxDurationSeconds": 0 }, "expression": "string", "configurationIds": [ "string" ] }, "dependencies": [ "string" ], "depends": "string" } ], "metadata": {}, "systemMetadata": {}, "secrets": [ { "secretName": "string", "displayName": "string", "description": "string", "required": true } ], "usedAppVersions": [ { "app": { "id": "string", "name": "string", "description": "string", "logo": "string", "url": "https://example.com", "tags": [ "string" ], "systemMetadata": { "createdByUnity": true, "organizationId": "string" }, "metadata": {} }, "version": "string", "platformVersion": "string", "lifecycle": { "lifecycleStatus": "Draft", "updatedOn": "2024-01-01T00:00:00Z", "archivingDate": "2024-01-01T00:00:00Z" }, "appVisibility": { "visibilityLevel": "Private", "updatedOn": "2024-01-01T00:00:00Z" }, "actions": [ { "actionId": "string", "name": "string", "description": "string", "terminationGracePeriodSeconds": 0, "inputParameters": [ null ], "outputParameters": [ null ], "secrets": [ null ], "requirements": { "configurationIds": null, "entitlements": null }, "metadata": {}, "timeout": { "defaultValue": null, "minValue": null, "maxValue": null }, "storages": [ null ] } ], "events": [ { "id": "string", "name": "string", "description": "string", "inputParameters": [ null ], "outputParameters": [ null ], "definition": { "type": null, "url": null, "headers": null, "body": null, "deleteUrl": null, "deleteBody": null, "eventFilter": null, "outputParameterMapping": null, "signature": null }, "secrets": [ null ], "requirements": {}, "metadata": {}, "app": { "id": null, "name": null, "description": null, "logo": null, "url": null, "tags": null, "systemMetadata": null, "metadata": null } } ], "metadata": {}, "systemMetadata": {}, "requiredEntitlements": [ { "entitlementIds": [ null ], "description": "string" } ] } ], "storages": [ { "type": "string", "name": "string", "cache": "None" } ]}

Delete Draft Pipeline Version


Description: Deletes a pipeline version. Can only be called from the organization the pipeline belongs to, and for an unused pipeline versions that is in Draft state.
Required Role: Automation Developer
Authorizations
Client (Client)
HTTP: Client
HTTP Authorization Scheme: bearer
Required scopes: Client
ServiceAccount (ServiceAccount)
HTTP: ServiceAccount
To get started with authentication, visit the Service Account Authentication section.
HTTP Authorization Scheme: basic
Required scopes: ServiceAccount

Path parameters for "Delete Draft Pipeline Version"

organizationId

string
required
Organization Id

pipelineId

string
required
Pipeline Id

pipelineVersion

string
required
Pipeline Version (format int.int.int[-rc.int] or int.int.int-sha.[7-14 chars] as a string)

HTTP response status codes for "Delete Draft Pipeline Version":

Code samples for "Delete Draft Pipeline Version":

Request example

curl -X DELETE \ -H "Authorization: Bearer <YOUR_TOKEN>" \ -H "Authorization: Basic <YOUR_CREDENTIALS>" \ "https://automation.services.api.unity.com/v1/organizations/{organizationId}/pipelines/{pipelineId}/versions/{pipelineVersion}"

Response example

{ "type": "string", "title": "string", "status": 0, "detail": "string", "instance": "string"}

Trigger a Pipeline


Description: Trigger a pipeline, returning a job. The pipeline needs to be accessible to the organization triggering it.
Authorizations
Client (Client)
HTTP: Client
HTTP Authorization Scheme: bearer
Required scopes: Client
ServiceAccount (ServiceAccount)
HTTP: ServiceAccount
To get started with authentication, visit the Service Account Authentication section.
HTTP Authorization Scheme: basic
Required scopes: ServiceAccount

Path parameters for "Trigger a Pipeline"

organizationId

string
required
The active organization Id

pipelineId

string
required
The pipeline unique identifier

pipelineVersion

string
required
The pipeline version (format int.int.int[-rc.int] or int.int.int-sha.[7-14 chars] as a string)

Request body for "Trigger a Pipeline"

Media Type:
application/json

inputs

object
A map of inputs to trigger a pipeline.

secrets

object
List of the secrets values injected on the pipeline.

jobPriority

integer
The priority of the job. Zero is the highest priority.

HTTP response status codes for "Trigger a Pipeline":

Code samples for "Trigger a Pipeline":

Request example

curl -X POST \ -H "Authorization: Bearer <YOUR_TOKEN>" \ -H "Authorization: Basic <YOUR_CREDENTIALS>" \ -H "Content-Type: application/json" \ -d '{ "inputs": {}, "secrets": {}, "jobPriority": 0}' \ "https://automation.services.api.unity.com/v1/organizations/{organizationId}/pipelines/{pipelineId}/versions/{pipelineVersion}/trigger"

Response example

{ "id": "string", "pipeline": { "id": "string", "name": "string", "version": "string" }, "status": "Queued", "inputs": {}, "outputs": {}, "secrets": {}, "errors": [ "string" ], "userId": "string", "serviceAccountId": "string", "organizationId": "string", "projectId": "string", "priority": 0, "automationId": "string", "createdAt": "2024-01-01T00:00:00Z", "startedAt": "2024-01-01T00:00:00Z", "finishedAt": "2024-01-01T00:00:00Z", "queueTime": 0, "durationInSeconds": 0, "progress": 0, "steps": [ { "pipelineStepId": "string", "name": "string", "condition": { "statement": "string", "result": true }, "inputParameters": {}, "outputParameters": {}, "dependencies": [ "string" ], "status": "Pending", "error": "string", "retryCount": 0, "progress": 0, "startedAt": "2024-01-01T00:00:00Z", "finishedAt": "2024-01-01T00:00:00Z", "configurationId": "string", "timeout": 0, "suspend": { "type": "string", "description": "string", "permissions": { "allowedUsers": [ null ], "allowedGroups": [ null ] }, "duration": "string", "allowUserToResume": true }, "actionId": "string", "jobPipelineUid": "string", "depth": 0, "retryOfStepId": "string", "retryAttempt": 0 } ], "updatedAt": "2024-01-01T00:00:00Z", "systemMetadata": {}, "jobPipelineUids": {}}

Make Pipeline Version Public


Description: Moves the pipeline version visibility from private to public. Can only be called from the organization the pipeline belongs to.
Required Role: Automation Developer
Authorizations
Client (Client)
HTTP: Client
HTTP Authorization Scheme: bearer
Required scopes: Client
ServiceAccount (ServiceAccount)
HTTP: ServiceAccount
To get started with authentication, visit the Service Account Authentication section.
HTTP Authorization Scheme: basic
Required scopes: ServiceAccount

Path parameters for "Make Pipeline Version Public"

organizationId

string
required
The active Organization Id

pipelineId

string
required
The pipeline unique identifier

pipelineVersion

string
required
The pipeline version (format int.int.int[-rc.int] or int.int.int-sha.[7-14 chars] as a string)

targetVisibility

string
required
The pipeline version target visibility status

HTTP response status codes for "Make Pipeline Version Public":

Code samples for "Make Pipeline Version Public":

Request example

curl -X POST \ -H "Authorization: Bearer <YOUR_TOKEN>" \ -H "Authorization: Basic <YOUR_CREDENTIALS>" \ "https://automation.services.api.unity.com/v1/organizations/{organizationId}/pipelines/{pipelineId}/versions/{pipelineVersion}/publish/{targetVisibility}"

Response example

{ "pipeline": { "id": "string", "name": "string", "description": "string", "tags": [ "string" ], "isUnityMade": true, "organizationId": "string", "projectId": "string" }, "version": "string", "organizationId": "string", "certification": { "certified": true, "certifiedOn": "2024-01-01T00:00:00Z" }, "lifecycle": { "lifecycleStatus": "Draft", "updatedOn": "2024-01-01T00:00:00Z", "archivingDate": "2024-01-01T00:00:00Z" }, "visibility": { "visibilityLevel": "Private", "updatedOn": "2024-01-01T00:00:00Z" }, "inputParameters": [ { "displayName": "string", "name": "string", "type": "Bool", "description": "string", "required": true, "acceptedValues": [ null ], "regexPattern": "string", "defaultValue": null, "metadata": {}, "isList": true, "minItems": 0, "maxItems": 0, "masked": true } ], "outputParameters": [ { "displayName": "string", "name": "string", "type": "Bool", "description": "string", "value": "string" } ], "steps": [ { "id": "string", "name": "string", "condition": "string", "action": { "actionId": "string", "inputParameters": {}, "configurationId": "string", "secrets": {}, "storages": {} }, "pipeline": { "id": "string", "version": "string", "inputParameters": {}, "secrets": {}, "storages": {} }, "suspend": { "type": "string", "description": "string", "permissions": { "allowedUsers": [ null ], "allowedGroups": [ null ] }, "duration": "string", "allowUserToResume": true }, "fanOut": { "loopThroughList": "string", "maximumParallelCount": 0 }, "continueOnFail": true, "timeout": 0, "retry": { "limit": 0, "retryPolicy": "OnFailure", "backoff": { "durationSeconds": 0, "factor": 0, "maxDurationSeconds": 0 }, "expression": "string", "configurationIds": [ "string" ] }, "dependencies": [ "string" ], "depends": "string" } ], "metadata": {}, "systemMetadata": {}, "secrets": [ { "secretName": "string", "displayName": "string", "description": "string", "required": true } ], "usedAppVersions": [ { "app": { "id": "string", "name": "string", "description": "string", "logo": "string", "url": "https://example.com", "tags": [ "string" ], "systemMetadata": { "createdByUnity": true, "organizationId": "string" }, "metadata": {} }, "version": "string", "platformVersion": "string", "lifecycle": { "lifecycleStatus": "Draft", "updatedOn": "2024-01-01T00:00:00Z", "archivingDate": "2024-01-01T00:00:00Z" }, "appVisibility": { "visibilityLevel": "Private", "updatedOn": "2024-01-01T00:00:00Z" }, "actions": [ { "actionId": "string", "name": "string", "description": "string", "terminationGracePeriodSeconds": 0, "inputParameters": [ null ], "outputParameters": [ null ], "secrets": [ null ], "requirements": { "configurationIds": null, "entitlements": null }, "metadata": {}, "timeout": { "defaultValue": null, "minValue": null, "maxValue": null }, "storages": [ null ] } ], "events": [ { "id": "string", "name": "string", "description": "string", "inputParameters": [ null ], "outputParameters": [ null ], "definition": { "type": null, "url": null, "headers": null, "body": null, "deleteUrl": null, "deleteBody": null, "eventFilter": null, "outputParameterMapping": null, "signature": null }, "secrets": [ null ], "requirements": {}, "metadata": {}, "app": { "id": null, "name": null, "description": null, "logo": null, "url": null, "tags": null, "systemMetadata": null, "metadata": null } } ], "metadata": {}, "systemMetadata": {}, "requiredEntitlements": [ { "entitlementIds": [ null ], "description": "string" } ] } ], "storages": [ { "type": "string", "name": "string", "cache": "None" } ]}

Change Pipeline Status


Description: "A pipeline status can go from Draft to Available or Archived, from Available to Deprecated (with an optional ArchivingDate in UTC format passed in the body), Deprecated to Deprecated (specifying ArchivingDate in the body) and from Deprecated to Archived. Can only be called from the organization the pipeline belongs to."
Required Role: Automation Developer
Authorizations
Client (Client)
HTTP: Client
HTTP Authorization Scheme: bearer
Required scopes: Client
ServiceAccount (ServiceAccount)
HTTP: ServiceAccount
To get started with authentication, visit the Service Account Authentication section.
HTTP Authorization Scheme: basic
Required scopes: ServiceAccount

Path parameters for "Change Pipeline Status"

organizationId

string
required
The active Organization Id

pipelineId

string
required
The pipeline unique identifier

pipelineVersion

string
required
The pipeline version (format int.int.int[-rc.int] or int.int.int-sha.[7-14 chars] as a string)

targetStatus

string
required
The pipeline version target lifecycle status

Request body for "Change Pipeline Status"

Media Type:
application/json

archivingDate

string
When Deprecated status is requested, this parameter contains the UTC date that the app/pipeline will be archived. If not specified, 6 months from the current date will be used.

HTTP response status codes for "Change Pipeline Status":

Code samples for "Change Pipeline Status":

Request example

curl -X POST \ -H "Authorization: Bearer <YOUR_TOKEN>" \ -H "Authorization: Basic <YOUR_CREDENTIALS>" \ -H "Content-Type: application/json" \ -d '{ "archivingDate": "2024-01-01T00:00:00Z"}' \ "https://automation.services.api.unity.com/v1/organizations/{organizationId}/pipelines/{pipelineId}/versions/{pipelineVersion}/status/{targetStatus}"

Response example

{ "pipeline": { "id": "string", "name": "string", "description": "string", "tags": [ "string" ], "isUnityMade": true, "organizationId": "string", "projectId": "string" }, "version": "string", "organizationId": "string", "certification": { "certified": true, "certifiedOn": "2024-01-01T00:00:00Z" }, "lifecycle": { "lifecycleStatus": "Draft", "updatedOn": "2024-01-01T00:00:00Z", "archivingDate": "2024-01-01T00:00:00Z" }, "visibility": { "visibilityLevel": "Private", "updatedOn": "2024-01-01T00:00:00Z" }, "inputParameters": [ { "displayName": "string", "name": "string", "type": "Bool", "description": "string", "required": true, "acceptedValues": [ null ], "regexPattern": "string", "defaultValue": null, "metadata": {}, "isList": true, "minItems": 0, "maxItems": 0, "masked": true } ], "outputParameters": [ { "displayName": "string", "name": "string", "type": "Bool", "description": "string", "value": "string" } ], "steps": [ { "id": "string", "name": "string", "condition": "string", "action": { "actionId": "string", "inputParameters": {}, "configurationId": "string", "secrets": {}, "storages": {} }, "pipeline": { "id": "string", "version": "string", "inputParameters": {}, "secrets": {}, "storages": {} }, "suspend": { "type": "string", "description": "string", "permissions": { "allowedUsers": [ null ], "allowedGroups": [ null ] }, "duration": "string", "allowUserToResume": true }, "fanOut": { "loopThroughList": "string", "maximumParallelCount": 0 }, "continueOnFail": true, "timeout": 0, "retry": { "limit": 0, "retryPolicy": "OnFailure", "backoff": { "durationSeconds": 0, "factor": 0, "maxDurationSeconds": 0 }, "expression": "string", "configurationIds": [ "string" ] }, "dependencies": [ "string" ], "depends": "string" } ], "metadata": {}, "systemMetadata": {}, "secrets": [ { "secretName": "string", "displayName": "string", "description": "string", "required": true } ], "usedAppVersions": [ { "app": { "id": "string", "name": "string", "description": "string", "logo": "string", "url": "https://example.com", "tags": [ "string" ], "systemMetadata": { "createdByUnity": true, "organizationId": "string" }, "metadata": {} }, "version": "string", "platformVersion": "string", "lifecycle": { "lifecycleStatus": "Draft", "updatedOn": "2024-01-01T00:00:00Z", "archivingDate": "2024-01-01T00:00:00Z" }, "appVisibility": { "visibilityLevel": "Private", "updatedOn": "2024-01-01T00:00:00Z" }, "actions": [ { "actionId": "string", "name": "string", "description": "string", "terminationGracePeriodSeconds": 0, "inputParameters": [ null ], "outputParameters": [ null ], "secrets": [ null ], "requirements": { "configurationIds": null, "entitlements": null }, "metadata": {}, "timeout": { "defaultValue": null, "minValue": null, "maxValue": null }, "storages": [ null ] } ], "events": [ { "id": "string", "name": "string", "description": "string", "inputParameters": [ null ], "outputParameters": [ null ], "definition": { "type": null, "url": null, "headers": null, "body": null, "deleteUrl": null, "deleteBody": null, "eventFilter": null, "outputParameterMapping": null, "signature": null }, "secrets": [ null ], "requirements": {}, "metadata": {}, "app": { "id": null, "name": null, "description": null, "logo": null, "url": null, "tags": null, "systemMetadata": null, "metadata": null } } ], "metadata": {}, "systemMetadata": {}, "requiredEntitlements": [ { "entitlementIds": [ null ], "description": "string" } ] } ], "storages": [ { "type": "string", "name": "string", "cache": "None" } ]}

List Project Pipelines


Description: Get all project pipelines accessible by an organization and project, the latest version of the pipelines will be returned. Includes pipelines created by the organization and public pipelines.
Authorizations
Client (Client)
HTTP: Client
HTTP Authorization Scheme: bearer
Required scopes: Client
ServiceAccount (ServiceAccount)
HTTP: ServiceAccount
To get started with authentication, visit the Service Account Authentication section.
HTTP Authorization Scheme: basic
Required scopes: ServiceAccount

Path parameters for "List Project Pipelines"

organizationId

string
required
The active organization Id

projectId

string
required
The project Id

Query parameters for "List Project Pipelines"

owned

boolean
bool representing if we list element owned by the org

offset

integer
int representing number of items to skip

limit

integer
int representing max returned items

HTTP response status codes for "List Project Pipelines":

Code samples for "List Project Pipelines":

Request example

curl -X GET \ -H "Authorization: Bearer <YOUR_TOKEN>" \ -H "Authorization: Basic <YOUR_CREDENTIALS>" \ "https://automation.services.api.unity.com/v1/organizations/{organizationId}/projects/{projectId}/pipelines"

Response example

{ "offset": 0, "limit": 0, "total": 0, "results": [ { "pipeline": { "id": "string", "name": "string", "description": "string", "tags": [ "string" ], "isUnityMade": true, "organizationId": "string", "projectId": "string" }, "version": "string", "organizationId": "string", "certification": { "certified": true, "certifiedOn": "2024-01-01T00:00:00Z" }, "lifecycle": { "lifecycleStatus": "Draft", "updatedOn": "2024-01-01T00:00:00Z", "archivingDate": "2024-01-01T00:00:00Z" }, "visibility": { "visibilityLevel": "Private", "updatedOn": "2024-01-01T00:00:00Z" }, "inputParameters": [ { "displayName": "string", "name": "string", "type": "Bool", "description": "string", "required": true, "acceptedValues": [ null ], "regexPattern": "string", "defaultValue": null, "metadata": {}, "isList": true, "minItems": 0, "maxItems": 0, "masked": true } ], "outputParameters": [ { "displayName": "string", "name": "string", "type": "Bool", "description": "string", "value": "string" } ], "steps": [ { "id": "string", "name": "string", "condition": "string", "action": { "actionId": null, "inputParameters": null, "configurationId": null, "secrets": null, "storages": null }, "pipeline": { "id": null, "version": null, "inputParameters": null, "secrets": null, "storages": null }, "suspend": { "type": null, "description": null, "permissions": null, "duration": null, "allowUserToResume": null }, "fanOut": { "loopThroughList": null, "maximumParallelCount": null }, "continueOnFail": true, "timeout": 0, "retry": { "limit": null, "retryPolicy": null, "backoff": null, "expression": null, "configurationIds": null }, "dependencies": [ null ], "depends": "string" } ], "metadata": {}, "systemMetadata": {}, "secrets": [ { "secretName": "string", "displayName": "string", "description": "string", "required": true } ], "usedAppVersions": [ { "app": { "id": null, "name": null, "description": null, "logo": null, "url": null, "tags": null, "systemMetadata": null, "metadata": null }, "version": "string", "platformVersion": "string", "lifecycle": { "lifecycleStatus": null, "updatedOn": null, "archivingDate": null }, "appVisibility": { "visibilityLevel": null, "updatedOn": null }, "actions": [ null ], "events": [ null ], "metadata": {}, "systemMetadata": {}, "requiredEntitlements": [ null ] } ], "storages": [ { "type": "string", "name": "string", "cache": "None" } ] } ]}

Create a new Project Pipeline


Description: Creates a new project pipeline and returns its first version for editing.
Required Role: Automation Developer
Authorizations
Client (Client)
HTTP: Client
HTTP Authorization Scheme: bearer
Required scopes: Client
ServiceAccount (ServiceAccount)
HTTP: ServiceAccount
To get started with authentication, visit the Service Account Authentication section.
HTTP Authorization Scheme: basic
Required scopes: ServiceAccount

Path parameters for "Create a new Project Pipeline"

organizationId

string
required
The active organization Id

projectId

string
required
The project Id

Request body for "Create a new Project Pipeline"

Media Type:
application/json

name

string
required
The pipeline name.

description

string
required
The pipeline description.

version

string
required
The pipeline version number (format int.int.int[-rc.int] or int.int.int-sha.[7-14 chars] as a string).

id

string
Optional pipeline id as string (must be a valid UUID if provided). If provided and already in use, creation returns 409 Conflict; if invalid, returns 400 Bad Request.

inputParameters

array[object]
A map of InputParameters for this pipeline version.

displayName

string
required
The display name of the parameter.

name

string
required
The name of the parameter.

type

string
required
Parameter type. Each value constrains what an input value must be:

Type

Accepted value

Bool
JSON boolean (
true
or
false
).
Int
JSON integer within the 32-bit signed range.
Float
JSON number with single precision. Integers are accepted.
String
JSON string, including one that holds a UUID or URL.
Url
Absolute
http
or
https
URL, as a string.
UUID
UUID, as a string (for example
3fa85f64-5717-4562-b3fc-2c963f66afa6
).
Text
,
Script
,
File
JSON string. The service applies no further checks.
A value can reference another value with
{{...}}
, for example
{{inputParameters.name}}
. For
Bool
,
Int
,
Float
and
UUID
the whole value must be the reference. For the other types the reference can sit inside a longer string. A value that holds a reference is not validated.
After the type check,
regexPattern
is matched against the value's string form and
acceptedValues
must contain the value. When
isList
is true the value is a JSON array, each item is checked as above, and
minItems
and
maxItems
bound the item count.

description

string
required
The description of the parameter.

required

boolean
required
Indicates if the parameter is mandatory.

acceptedValues

array[object]
A map of values accepted.

regexPattern

string
The validation regex used to validate the parameter.

defaultValue

Optional default value.

metadata

object
key map metadata

isList

boolean
Optional boolean indicating this input parameter takes a list as input

minItems

integer
Optional minimum number of items a list value must hold. Only allowed when Unity.Cloud.Automation.Models.Common.InputParameterDto.IsList is true. A value that references another parameter or a step output is not checked, since its list does not exist until the job runs.

maxItems

integer
Optional maximum number of items a list value may hold. Only allowed when Unity.Cloud.Automation.Models.Common.InputParameterDto.IsList is true, and must not be less than Unity.Cloud.Automation.Models.Common.InputParameterDto.MinItems. References are not checked, as for Unity.Cloud.Automation.Models.Common.InputParameterDto.MinItems.

masked

boolean
Whether the parameter value should be masked in all responses.

secrets

array[object]
List of secret definition.

secretName

string
required
Secret key

displayName

string
required
The display name of the Secret

description

string
required
Secret description

required

boolean
required
Secret user input

outputParameters

array[object]
A map of OutputParameters for this pipeline version.

displayName

string
required
The display name of the parameter.

name

string
required
The name of the parameter.

type

string
required
Parameter type. Each value constrains what an input value must be:

Type

Accepted value

Bool
JSON boolean (
true
or
false
).
Int
JSON integer within the 32-bit signed range.
Float
JSON number with single precision. Integers are accepted.
String
JSON string, including one that holds a UUID or URL.
Url
Absolute
http
or
https
URL, as a string.
UUID
UUID, as a string (for example
3fa85f64-5717-4562-b3fc-2c963f66afa6
).
Text
,
Script
,
File
JSON string. The service applies no further checks.
A value can reference another value with
{{...}}
, for example
{{inputParameters.name}}
. For
Bool
,
Int
,
Float
and
UUID
the whole value must be the reference. For the other types the reference can sit inside a longer string. A value that holds a reference is not validated.
After the type check,
regexPattern
is matched against the value's string form and
acceptedValues
must contain the value. When
isList
is true the value is a JSON array, each item is checked as above, and
minItems
and
maxItems
bound the item count.

description

string
required
The description of the parameter.

value

string
required
Value of the parameter.

tags

array[string]
List of tags.

steps

array[object]
A map of steps for this pipeline version. Each step must define one of: action, pipeline or suspend.

id

string
required
Identifier of the step.

name

string
required
The name of the step.

condition

string
The condition to execute the step.

action

object
The Action

actionId

string
required
Generated unique key from app + version + action name.

inputParameters

object
The input parameters of the action.

configurationId

string
The configuration to use to run the action.

secrets

object
List of the secrets values injected on the action.

storages

object
The action storages mapping.

pipeline

object
An object containing the parameters required to identify a pipeline, its version and input parameters.

id

string
required
The unique Id of the pipeline.

version

string
required
The version of the pipeline (format int.int.int[-rc.int] or int.int.int-sha.[7-14 chars] as a string).

inputParameters

object
The input parameters of the pipeline.

secrets

object
List of the secrets values injected on the pipeline.

storages

object
The pipeline storages mapping.

suspend

The suspend to execute in this step.
One of

fanOut

object
The Fan Out

loopThroughList

string
required
File containing the list of items to loop through.

maximumParallelCount

integer
required
The maximum number of parallel processing.

continueOnFail

boolean
Indicates if the pipeline should continue when this step fails. Only applies to steps that list this one in Dependencies: a step using Depends must define its states itself.

timeout

integer
Timeout value in seconds for this step. Can only be used with Action.

retry

object
The Retry Strategy of a step. Each attempt runs a new pod; the step timeout applies to each attempt, not to the step as a whole.

limit

integer
required
Maximum number of retries after the first attempt.

retryPolicy

string
Which kind of failure triggers a retry.

backoff

object
The delay between retry attempts.

durationSeconds

integer
required
Delay in seconds before the first retry.

factor

integer
Multiplier applied to the delay after each retry. 1 when omitted (constant delay).

maxDurationSeconds

integer
Upper bound in seconds for the delay between two attempts.

expression

string
Optional condition evaluated after each failed attempt; the step is retried only when it is true. It is checked in addition to Unity.Cloud.Automation.Models.Common.RetryStrategyDto.RetryPolicy, so an attempt the policy excludes is never retried. Uses Argo's expression syntax and can read the last attempt through
lastRetry.exitCode
,
lastRetry.status
,
lastRetry.duration
and
lastRetry.message
, e.g.
asInt(lastRetry.exitCode) == 137
. Values are strings, so convert them with
asInt
or
asFloat
before comparing numerically. Input parameters can be injected with
{{inputParameters.name}}
.

configurationIds

array[string]
Optional configuration profiles for the retries, in order: the first retry runs on the first profile, the second retry on the second, and the last one is reused for any further retry. The first attempt keeps the step's own profile. Meant to escalate memory on retry, so each profile may differ from the step's own profile only in CPU and memory; GPU, disk, tolerations, affinity and software must be the same. Each must be one of the action's configuration ids, and there cannot be more of them than Unity.Cloud.Automation.Models.Common.RetryStrategyDto.Limit. Each attempt is billed at its own profile.

dependencies

array[string]
A map of dependencies for this step. Cannot be used with Depends.

depends

string
An expression over the ids of this pipeline's steps, ex: (step1.Succeeded || step1.Skipped) Cannot be used with Dependencies. ContinueOnFail on a referenced step is not applied.

metadata

object
A map of objects containing arbitrary metadata to be attached to the pipeline version.

storages

array[object]
List of pipeline storages used by the pipeline version.
One of

HTTP response status codes for "Create a new Project Pipeline":

Code samples for "Create a new Project Pipeline":

Request example

curl -X POST \ -H "Authorization: Bearer <YOUR_TOKEN>" \ -H "Authorization: Basic <YOUR_CREDENTIALS>" \ -H "Content-Type: application/json" \ -d '{ "name": "string", "description": "string", "version": "string", "id": "string", "inputParameters": [ { "displayName": "string", "name": "string", "type": "Bool", "description": "string", "required": true, "acceptedValues": [ null ], "regexPattern": "string", "defaultValue": null, "metadata": {}, "isList": true, "minItems": 0, "maxItems": 0, "masked": true } ], "secrets": [ { "secretName": "string", "displayName": "string", "description": "string", "required": true } ], "outputParameters": [ { "displayName": "string", "name": "string", "type": "Bool", "description": "string", "value": "string" } ], "tags": [ "string" ], "steps": [ { "id": "string", "name": "string", "condition": "string", "action": { "actionId": "string", "inputParameters": {}, "configurationId": "string", "secrets": {}, "storages": {} }, "pipeline": { "id": "string", "version": "string", "inputParameters": {}, "secrets": {}, "storages": {} }, "suspend": { "type": "string", "description": "string", "permissions": { "allowedUsers": [ null ], "allowedGroups": [ null ] }, "duration": "string", "allowUserToResume": true }, "fanOut": { "loopThroughList": "string", "maximumParallelCount": 0 }, "continueOnFail": true, "timeout": 0, "retry": { "limit": 0, "retryPolicy": "OnFailure", "backoff": { "durationSeconds": 0, "factor": 0, "maxDurationSeconds": 0 }, "expression": "string", "configurationIds": [ "string" ] }, "dependencies": [ "string" ], "depends": "string" } ], "metadata": {}, "storages": [ { "type": "string", "name": "string", "cache": "None" } ]}' \ "https://automation.services.api.unity.com/v1/organizations/{organizationId}/projects/{projectId}/pipelines"

Response example

{ "pipeline": { "id": "string", "name": "string", "description": "string", "tags": [ "string" ], "isUnityMade": true, "organizationId": "string", "projectId": "string" }, "version": "string", "organizationId": "string", "certification": { "certified": true, "certifiedOn": "2024-01-01T00:00:00Z" }, "lifecycle": { "lifecycleStatus": "Draft", "updatedOn": "2024-01-01T00:00:00Z", "archivingDate": "2024-01-01T00:00:00Z" }, "visibility": { "visibilityLevel": "Private", "updatedOn": "2024-01-01T00:00:00Z" }, "inputParameters": [ { "displayName": "string", "name": "string", "type": "Bool", "description": "string", "required": true, "acceptedValues": [ null ], "regexPattern": "string", "defaultValue": null, "metadata": {}, "isList": true, "minItems": 0, "maxItems": 0, "masked": true } ], "outputParameters": [ { "displayName": "string", "name": "string", "type": "Bool", "description": "string", "value": "string" } ], "steps": [ { "id": "string", "name": "string", "condition": "string", "action": { "actionId": "string", "inputParameters": {}, "configurationId": "string", "secrets": {}, "storages": {} }, "pipeline": { "id": "string", "version": "string", "inputParameters": {}, "secrets": {}, "storages": {} }, "suspend": { "type": "string", "description": "string", "permissions": { "allowedUsers": [ null ], "allowedGroups": [ null ] }, "duration": "string", "allowUserToResume": true }, "fanOut": { "loopThroughList": "string", "maximumParallelCount": 0 }, "continueOnFail": true, "timeout": 0, "retry": { "limit": 0, "retryPolicy": "OnFailure", "backoff": { "durationSeconds": 0, "factor": 0, "maxDurationSeconds": 0 }, "expression": "string", "configurationIds": [ "string" ] }, "dependencies": [ "string" ], "depends": "string" } ], "metadata": {}, "systemMetadata": {}, "secrets": [ { "secretName": "string", "displayName": "string", "description": "string", "required": true } ], "usedAppVersions": [ { "app": { "id": "string", "name": "string", "description": "string", "logo": "string", "url": "https://example.com", "tags": [ "string" ], "systemMetadata": { "createdByUnity": true, "organizationId": "string" }, "metadata": {} }, "version": "string", "platformVersion": "string", "lifecycle": { "lifecycleStatus": "Draft", "updatedOn": "2024-01-01T00:00:00Z", "archivingDate": "2024-01-01T00:00:00Z" }, "appVisibility": { "visibilityLevel": "Private", "updatedOn": "2024-01-01T00:00:00Z" }, "actions": [ { "actionId": "string", "name": "string", "description": "string", "terminationGracePeriodSeconds": 0, "inputParameters": [ null ], "outputParameters": [ null ], "secrets": [ null ], "requirements": { "configurationIds": null, "entitlements": null }, "metadata": {}, "timeout": { "defaultValue": null, "minValue": null, "maxValue": null }, "storages": [ null ] } ], "events": [ { "id": "string", "name": "string", "description": "string", "inputParameters": [ null ], "outputParameters": [ null ], "definition": { "type": null, "url": null, "headers": null, "body": null, "deleteUrl": null, "deleteBody": null, "eventFilter": null, "outputParameterMapping": null, "signature": null }, "secrets": [ null ], "requirements": {}, "metadata": {}, "app": { "id": null, "name": null, "description": null, "logo": null, "url": null, "tags": null, "systemMetadata": null, "metadata": null } } ], "metadata": {}, "systemMetadata": {}, "requiredEntitlements": [ { "entitlementIds": [ null ], "description": "string" } ] } ], "storages": [ { "type": "string", "name": "string", "cache": "None" } ]}

Get all Project Pipeline Versions


Description: Returns all versions of a project pipeline. When the caller is not the pipeline's organization, only Public versions are returned.
Authorizations
Client (Client)
HTTP: Client
HTTP Authorization Scheme: bearer
Required scopes: Client
ServiceAccount (ServiceAccount)
HTTP: ServiceAccount
To get started with authentication, visit the Service Account Authentication section.
HTTP Authorization Scheme: basic
Required scopes: ServiceAccount

Path parameters for "Get all Project Pipeline Versions"

organizationId

string
required
The active organization Id

projectId

string
required
The project Id

pipelineId

string
required
The pipeline unique identifier

Query parameters for "Get all Project Pipeline Versions"

offset

integer
int representing number of items to skip

limit

integer
int representing max returned items

HTTP response status codes for "Get all Project Pipeline Versions":

Code samples for "Get all Project Pipeline Versions":

Request example

curl -X GET \ -H "Authorization: Bearer <YOUR_TOKEN>" \ -H "Authorization: Basic <YOUR_CREDENTIALS>" \ "https://automation.services.api.unity.com/v1/organizations/{organizationId}/projects/{projectId}/pipelines/{pipelineId}/versions"

Response example

{ "offset": 0, "limit": 0, "total": 0, "results": [ { "pipeline": { "id": "string", "name": "string", "description": "string", "tags": [ "string" ], "isUnityMade": true, "organizationId": "string", "projectId": "string" }, "version": "string", "organizationId": "string", "certification": { "certified": true, "certifiedOn": "2024-01-01T00:00:00Z" }, "lifecycle": { "lifecycleStatus": "Draft", "updatedOn": "2024-01-01T00:00:00Z", "archivingDate": "2024-01-01T00:00:00Z" }, "visibility": { "visibilityLevel": "Private", "updatedOn": "2024-01-01T00:00:00Z" }, "inputParameters": [ { "displayName": "string", "name": "string", "type": "Bool", "description": "string", "required": true, "acceptedValues": [ null ], "regexPattern": "string", "defaultValue": null, "metadata": {}, "isList": true, "minItems": 0, "maxItems": 0, "masked": true } ], "outputParameters": [ { "displayName": "string", "name": "string", "type": "Bool", "description": "string", "value": "string" } ], "steps": [ { "id": "string", "name": "string", "condition": "string", "action": { "actionId": null, "inputParameters": null, "configurationId": null, "secrets": null, "storages": null }, "pipeline": { "id": null, "version": null, "inputParameters": null, "secrets": null, "storages": null }, "suspend": { "type": null, "description": null, "permissions": null, "duration": null, "allowUserToResume": null }, "fanOut": { "loopThroughList": null, "maximumParallelCount": null }, "continueOnFail": true, "timeout": 0, "retry": { "limit": null, "retryPolicy": null, "backoff": null, "expression": null, "configurationIds": null }, "dependencies": [ null ], "depends": "string" } ], "metadata": {}, "systemMetadata": {}, "secrets": [ { "secretName": "string", "displayName": "string", "description": "string", "required": true } ], "usedAppVersions": [ { "app": { "id": null, "name": null, "description": null, "logo": null, "url": null, "tags": null, "systemMetadata": null, "metadata": null }, "version": "string", "platformVersion": "string", "lifecycle": { "lifecycleStatus": null, "updatedOn": null, "archivingDate": null }, "appVisibility": { "visibilityLevel": null, "updatedOn": null }, "actions": [ null ], "events": [ null ], "metadata": {}, "systemMetadata": {}, "requiredEntitlements": [ null ] } ], "storages": [ { "type": "string", "name": "string", "cache": "None" } ] } ]}

Create new Project Pipeline Version


Description: Creates a new project pipeline version. Can only be called from the organization and project the pipeline belongs to.
Authorizations
Client (Client)
HTTP: Client
HTTP Authorization Scheme: bearer
Required scopes: Client
ServiceAccount (ServiceAccount)
HTTP: ServiceAccount
To get started with authentication, visit the Service Account Authentication section.
HTTP Authorization Scheme: basic
Required scopes: ServiceAccount

Path parameters for "Create new Project Pipeline Version"

organizationId

string
required
The active Organization Id

projectId

string
required
The project Id

pipelineId

string
required
The pipeline unique identifier

Request body for "Create new Project Pipeline Version"

Media Type:
application/json

version

string
The new pipeline version number (format int.int.int[-rc.int] or int.int.int-sha.[7-14 chars] as a string).

baseVersion

string
The pipeline base version (format int.int.int[-rc.int] or int.int.int-sha.[7-14 chars] as a string).

steps

array[object]
A map of Step for this pipeline version.

id

string
required
Identifier of the step.

name

string
required
The name of the step.

condition

string
The condition to execute the step.

action

object
The Action

actionId

string
required
Generated unique key from app + version + action name.

inputParameters

object
The input parameters of the action.

configurationId

string
The configuration to use to run the action.

secrets

object
List of the secrets values injected on the action.

storages

object
The action storages mapping.

pipeline

object
An object containing the parameters required to identify a pipeline, its version and input parameters.

id

string
required
The unique Id of the pipeline.

version

string
required
The version of the pipeline (format int.int.int[-rc.int] or int.int.int-sha.[7-14 chars] as a string).

inputParameters

object
The input parameters of the pipeline.

secrets

object
List of the secrets values injected on the pipeline.

storages

object
The pipeline storages mapping.

suspend

The suspend to execute in this step.
One of

fanOut

object
The Fan Out

loopThroughList

string
required
File containing the list of items to loop through.

maximumParallelCount

integer
required
The maximum number of parallel processing.

continueOnFail

boolean
Indicates if the pipeline should continue when this step fails. Only applies to steps that list this one in Dependencies: a step using Depends must define its states itself.

timeout

integer
Timeout value in seconds for this step. Can only be used with Action.

retry

object
The Retry Strategy of a step. Each attempt runs a new pod; the step timeout applies to each attempt, not to the step as a whole.

limit

integer
required
Maximum number of retries after the first attempt.

retryPolicy

string
Which kind of failure triggers a retry.

backoff

object
The delay between retry attempts.

durationSeconds

integer
required
Delay in seconds before the first retry.

factor

integer
Multiplier applied to the delay after each retry. 1 when omitted (constant delay).

maxDurationSeconds

integer
Upper bound in seconds for the delay between two attempts.

expression

string
Optional condition evaluated after each failed attempt; the step is retried only when it is true. It is checked in addition to Unity.Cloud.Automation.Models.Common.RetryStrategyDto.RetryPolicy, so an attempt the policy excludes is never retried. Uses Argo's expression syntax and can read the last attempt through
lastRetry.exitCode
,
lastRetry.status
,
lastRetry.duration
and
lastRetry.message
, e.g.
asInt(lastRetry.exitCode) == 137
. Values are strings, so convert them with
asInt
or
asFloat
before comparing numerically. Input parameters can be injected with
{{inputParameters.name}}
.

configurationIds

array[string]
Optional configuration profiles for the retries, in order: the first retry runs on the first profile, the second retry on the second, and the last one is reused for any further retry. The first attempt keeps the step's own profile. Meant to escalate memory on retry, so each profile may differ from the step's own profile only in CPU and memory; GPU, disk, tolerations, affinity and software must be the same. Each must be one of the action's configuration ids, and there cannot be more of them than Unity.Cloud.Automation.Models.Common.RetryStrategyDto.Limit. Each attempt is billed at its own profile.

dependencies

array[string]
A map of dependencies for this step. Cannot be used with Depends.

depends

string
An expression over the ids of this pipeline's steps, ex: (step1.Succeeded || step1.Skipped) Cannot be used with Dependencies. ContinueOnFail on a referenced step is not applied.

inputParameters

array[object]
A map of InputParameters for this pipeline version.

displayName

string
required
The display name of the parameter.

name

string
required
The name of the parameter.

type

string
required
Parameter type. Each value constrains what an input value must be:

Type

Accepted value

Bool
JSON boolean (
true
or
false
).
Int
JSON integer within the 32-bit signed range.
Float
JSON number with single precision. Integers are accepted.
String
JSON string, including one that holds a UUID or URL.
Url
Absolute
http
or
https
URL, as a string.
UUID
UUID, as a string (for example
3fa85f64-5717-4562-b3fc-2c963f66afa6
).
Text
,
Script
,
File
JSON string. The service applies no further checks.
A value can reference another value with
{{...}}
, for example
{{inputParameters.name}}
. For
Bool
,
Int
,
Float
and
UUID
the whole value must be the reference. For the other types the reference can sit inside a longer string. A value that holds a reference is not validated.
After the type check,
regexPattern
is matched against the value's string form and
acceptedValues
must contain the value. When
isList
is true the value is a JSON array, each item is checked as above, and
minItems
and
maxItems
bound the item count.

description

string
required
The description of the parameter.

required

boolean
required
Indicates if the parameter is mandatory.

acceptedValues

array[object]
A map of values accepted.

regexPattern

string
The validation regex used to validate the parameter.

defaultValue

Optional default value.

metadata

object
key map metadata

isList

boolean
Optional boolean indicating this input parameter takes a list as input

minItems

integer
Optional minimum number of items a list value must hold. Only allowed when Unity.Cloud.Automation.Models.Common.InputParameterDto.IsList is true. A value that references another parameter or a step output is not checked, since its list does not exist until the job runs.

maxItems

integer
Optional maximum number of items a list value may hold. Only allowed when Unity.Cloud.Automation.Models.Common.InputParameterDto.IsList is true, and must not be less than Unity.Cloud.Automation.Models.Common.InputParameterDto.MinItems. References are not checked, as for Unity.Cloud.Automation.Models.Common.InputParameterDto.MinItems.

masked

boolean
Whether the parameter value should be masked in all responses.

secrets

array[object]
List of secret definition.

secretName

string
required
Secret key

displayName

string
required
The display name of the Secret

description

string
required
Secret description

required

boolean
required
Secret user input

outputParameters

array[object]
A map of OutputParameters for this pipeline version.

displayName

string
required
The display name of the parameter.

name

string
required
The name of the parameter.

type

string
required
Parameter type. Each value constrains what an input value must be:

Type

Accepted value

Bool
JSON boolean (
true
or
false
).
Int
JSON integer within the 32-bit signed range.
Float
JSON number with single precision. Integers are accepted.
String
JSON string, including one that holds a UUID or URL.
Url
Absolute
http
or
https
URL, as a string.
UUID
UUID, as a string (for example
3fa85f64-5717-4562-b3fc-2c963f66afa6
).
Text
,
Script
,
File
JSON string. The service applies no further checks.
A value can reference another value with
{{...}}
, for example
{{inputParameters.name}}
. For
Bool
,
Int
,
Float
and
UUID
the whole value must be the reference. For the other types the reference can sit inside a longer string. A value that holds a reference is not validated.
After the type check,
regexPattern
is matched against the value's string form and
acceptedValues
must contain the value. When
isList
is true the value is a JSON array, each item is checked as above, and
minItems
and
maxItems
bound the item count.

description

string
required
The description of the parameter.

value

string
required
Value of the parameter.

metadata

object
A map of objects containing arbitrary metadata to be attached to the pipeline version.

storages

array[object]
List of pipeline storages used by the pipeline version.
One of

HTTP response status codes for "Create new Project Pipeline Version":

Code samples for "Create new Project Pipeline Version":

Request example

curl -X POST \ -H "Authorization: Bearer <YOUR_TOKEN>" \ -H "Authorization: Basic <YOUR_CREDENTIALS>" \ -H "Content-Type: application/json" \ -d '{ "version": "string", "baseVersion": "string", "steps": [ { "id": "string", "name": "string", "condition": "string", "action": { "actionId": "string", "inputParameters": {}, "configurationId": "string", "secrets": {}, "storages": {} }, "pipeline": { "id": "string", "version": "string", "inputParameters": {}, "secrets": {}, "storages": {} }, "suspend": { "type": "string", "description": "string", "permissions": { "allowedUsers": [ null ], "allowedGroups": [ null ] }, "duration": "string", "allowUserToResume": true }, "fanOut": { "loopThroughList": "string", "maximumParallelCount": 0 }, "continueOnFail": true, "timeout": 0, "retry": { "limit": 0, "retryPolicy": "OnFailure", "backoff": { "durationSeconds": 0, "factor": 0, "maxDurationSeconds": 0 }, "expression": "string", "configurationIds": [ "string" ] }, "dependencies": [ "string" ], "depends": "string" } ], "inputParameters": [ { "displayName": "string", "name": "string", "type": "Bool", "description": "string", "required": true, "acceptedValues": [ null ], "regexPattern": "string", "defaultValue": null, "metadata": {}, "isList": true, "minItems": 0, "maxItems": 0, "masked": true } ], "secrets": [ { "secretName": "string", "displayName": "string", "description": "string", "required": true } ], "outputParameters": [ { "displayName": "string", "name": "string", "type": "Bool", "description": "string", "value": "string" } ], "metadata": {}, "storages": [ { "type": "string", "name": "string", "cache": "None" } ]}' \ "https://automation.services.api.unity.com/v1/organizations/{organizationId}/projects/{projectId}/pipelines/{pipelineId}/versions"

Response example

{ "pipeline": { "id": "string", "name": "string", "description": "string", "tags": [ "string" ], "isUnityMade": true, "organizationId": "string", "projectId": "string" }, "version": "string", "organizationId": "string", "certification": { "certified": true, "certifiedOn": "2024-01-01T00:00:00Z" }, "lifecycle": { "lifecycleStatus": "Draft", "updatedOn": "2024-01-01T00:00:00Z", "archivingDate": "2024-01-01T00:00:00Z" }, "visibility": { "visibilityLevel": "Private", "updatedOn": "2024-01-01T00:00:00Z" }, "inputParameters": [ { "displayName": "string", "name": "string", "type": "Bool", "description": "string", "required": true, "acceptedValues": [ null ], "regexPattern": "string", "defaultValue": null, "metadata": {}, "isList": true, "minItems": 0, "maxItems": 0, "masked": true } ], "outputParameters": [ { "displayName": "string", "name": "string", "type": "Bool", "description": "string", "value": "string" } ], "steps": [ { "id": "string", "name": "string", "condition": "string", "action": { "actionId": "string", "inputParameters": {}, "configurationId": "string", "secrets": {}, "storages": {} }, "pipeline": { "id": "string", "version": "string", "inputParameters": {}, "secrets": {}, "storages": {} }, "suspend": { "type": "string", "description": "string", "permissions": { "allowedUsers": [ null ], "allowedGroups": [ null ] }, "duration": "string", "allowUserToResume": true }, "fanOut": { "loopThroughList": "string", "maximumParallelCount": 0 }, "continueOnFail": true, "timeout": 0, "retry": { "limit": 0, "retryPolicy": "OnFailure", "backoff": { "durationSeconds": 0, "factor": 0, "maxDurationSeconds": 0 }, "expression": "string", "configurationIds": [ "string" ] }, "dependencies": [ "string" ], "depends": "string" } ], "metadata": {}, "systemMetadata": {}, "secrets": [ { "secretName": "string", "displayName": "string", "description": "string", "required": true } ], "usedAppVersions": [ { "app": { "id": "string", "name": "string", "description": "string", "logo": "string", "url": "https://example.com", "tags": [ "string" ], "systemMetadata": { "createdByUnity": true, "organizationId": "string" }, "metadata": {} }, "version": "string", "platformVersion": "string", "lifecycle": { "lifecycleStatus": "Draft", "updatedOn": "2024-01-01T00:00:00Z", "archivingDate": "2024-01-01T00:00:00Z" }, "appVisibility": { "visibilityLevel": "Private", "updatedOn": "2024-01-01T00:00:00Z" }, "actions": [ { "actionId": "string", "name": "string", "description": "string", "terminationGracePeriodSeconds": 0, "inputParameters": [ null ], "outputParameters": [ null ], "secrets": [ null ], "requirements": { "configurationIds": null, "entitlements": null }, "metadata": {}, "timeout": { "defaultValue": null, "minValue": null, "maxValue": null }, "storages": [ null ] } ], "events": [ { "id": "string", "name": "string", "description": "string", "inputParameters": [ null ], "outputParameters": [ null ], "definition": { "type": null, "url": null, "headers": null, "body": null, "deleteUrl": null, "deleteBody": null, "eventFilter": null, "outputParameterMapping": null, "signature": null }, "secrets": [ null ], "requirements": {}, "metadata": {}, "app": { "id": null, "name": null, "description": null, "logo": null, "url": null, "tags": null, "systemMetadata": null, "metadata": null } } ], "metadata": {}, "systemMetadata": {}, "requiredEntitlements": [ { "entitlementIds": [ null ], "description": "string" } ] } ], "storages": [ { "type": "string", "name": "string", "cache": "None" } ]}

Get Project Pipeline Version


Description: Get a specific project pipeline version. Callable from the pipeline's organization and project for any version; callable from any organization for Public or Unlisted versions.
Authorizations
Client (Client)
HTTP: Client
HTTP Authorization Scheme: bearer
Required scopes: Client
ServiceAccount (ServiceAccount)
HTTP: ServiceAccount
To get started with authentication, visit the Service Account Authentication section.
HTTP Authorization Scheme: basic
Required scopes: ServiceAccount

Path parameters for "Get Project Pipeline Version"

organizationId

string
required
The active organization Id

projectId

string
required
The project Id

pipelineId

string
required
The pipeline unique identifier

pipelineVersion

string
required
The pipeline version (format int.int.int[-rc.int] or int.int.int-sha.[7-14 chars] as a string)

Query parameters for "Get Project Pipeline Version"

includeApps

boolean
The app Ids used on this pipeline

HTTP response status codes for "Get Project Pipeline Version":

Code samples for "Get Project Pipeline Version":

Request example

curl -X GET \ -H "Authorization: Bearer <YOUR_TOKEN>" \ -H "Authorization: Basic <YOUR_CREDENTIALS>" \ "https://automation.services.api.unity.com/v1/organizations/{organizationId}/projects/{projectId}/pipelines/{pipelineId}/versions/{pipelineVersion}"

Response example

{ "pipeline": { "id": "string", "name": "string", "description": "string", "tags": [ "string" ], "isUnityMade": true, "organizationId": "string", "projectId": "string" }, "version": "string", "organizationId": "string", "certification": { "certified": true, "certifiedOn": "2024-01-01T00:00:00Z" }, "lifecycle": { "lifecycleStatus": "Draft", "updatedOn": "2024-01-01T00:00:00Z", "archivingDate": "2024-01-01T00:00:00Z" }, "visibility": { "visibilityLevel": "Private", "updatedOn": "2024-01-01T00:00:00Z" }, "inputParameters": [ { "displayName": "string", "name": "string", "type": "Bool", "description": "string", "required": true, "acceptedValues": [ null ], "regexPattern": "string", "defaultValue": null, "metadata": {}, "isList": true, "minItems": 0, "maxItems": 0, "masked": true } ], "outputParameters": [ { "displayName": "string", "name": "string", "type": "Bool", "description": "string", "value": "string" } ], "steps": [ { "id": "string", "name": "string", "condition": "string", "action": { "actionId": "string", "inputParameters": {}, "configurationId": "string", "secrets": {}, "storages": {} }, "pipeline": { "id": "string", "version": "string", "inputParameters": {}, "secrets": {}, "storages": {} }, "suspend": { "type": "string", "description": "string", "permissions": { "allowedUsers": [ null ], "allowedGroups": [ null ] }, "duration": "string", "allowUserToResume": true }, "fanOut": { "loopThroughList": "string", "maximumParallelCount": 0 }, "continueOnFail": true, "timeout": 0, "retry": { "limit": 0, "retryPolicy": "OnFailure", "backoff": { "durationSeconds": 0, "factor": 0, "maxDurationSeconds": 0 }, "expression": "string", "configurationIds": [ "string" ] }, "dependencies": [ "string" ], "depends": "string" } ], "metadata": {}, "systemMetadata": {}, "secrets": [ { "secretName": "string", "displayName": "string", "description": "string", "required": true } ], "usedAppVersions": [ { "app": { "id": "string", "name": "string", "description": "string", "logo": "string", "url": "https://example.com", "tags": [ "string" ], "systemMetadata": { "createdByUnity": true, "organizationId": "string" }, "metadata": {} }, "version": "string", "platformVersion": "string", "lifecycle": { "lifecycleStatus": "Draft", "updatedOn": "2024-01-01T00:00:00Z", "archivingDate": "2024-01-01T00:00:00Z" }, "appVisibility": { "visibilityLevel": "Private", "updatedOn": "2024-01-01T00:00:00Z" }, "actions": [ { "actionId": "string", "name": "string", "description": "string", "terminationGracePeriodSeconds": 0, "inputParameters": [ null ], "outputParameters": [ null ], "secrets": [ null ], "requirements": { "configurationIds": null, "entitlements": null }, "metadata": {}, "timeout": { "defaultValue": null, "minValue": null, "maxValue": null }, "storages": [ null ] } ], "events": [ { "id": "string", "name": "string", "description": "string", "inputParameters": [ null ], "outputParameters": [ null ], "definition": { "type": null, "url": null, "headers": null, "body": null, "deleteUrl": null, "deleteBody": null, "eventFilter": null, "outputParameterMapping": null, "signature": null }, "secrets": [ null ], "requirements": {}, "metadata": {}, "app": { "id": null, "name": null, "description": null, "logo": null, "url": null, "tags": null, "systemMetadata": null, "metadata": null } } ], "metadata": {}, "systemMetadata": {}, "requiredEntitlements": [ { "entitlementIds": [ null ], "description": "string" } ] } ], "storages": [ { "type": "string", "name": "string", "cache": "None" } ]}

Update Project Pipeline Version


Description: Updates a project pipeline version. Can only be called from the organization and project the pipeline belongs to. Can only be called if the pipeline version is in a draft status. Only some of the fields can be updated.
Required Role: Automation Developer
Authorizations
Client (Client)
HTTP: Client
HTTP Authorization Scheme: bearer
Required scopes: Client
ServiceAccount (ServiceAccount)
HTTP: ServiceAccount
To get started with authentication, visit the Service Account Authentication section.
HTTP Authorization Scheme: basic
Required scopes: ServiceAccount

Path parameters for "Update Project Pipeline Version"

organizationId

string
required
The active organization Id

projectId

string
required
The project Id

pipelineId

string
required
The pipeline unique identifier

pipelineVersion

string
required
The pipeline version (format int.int.int[-rc.int] or int.int.int-sha.[7-14 chars] as a string)

Request body for "Update Project Pipeline Version"

Media Type:
application/json

inputParameters

array[object]
A map of InputParameters to update the pipeline version.

displayName

string
required
The display name of the parameter.

name

string
required
The name of the parameter.

type

string
required
Parameter type. Each value constrains what an input value must be:

Type

Accepted value

Bool
JSON boolean (
true
or
false
).
Int
JSON integer within the 32-bit signed range.
Float
JSON number with single precision. Integers are accepted.
String
JSON string, including one that holds a UUID or URL.
Url
Absolute
http
or
https
URL, as a string.
UUID
UUID, as a string (for example
3fa85f64-5717-4562-b3fc-2c963f66afa6
).
Text
,
Script
,
File
JSON string. The service applies no further checks.
A value can reference another value with
{{...}}
, for example
{{inputParameters.name}}
. For
Bool
,
Int
,
Float
and
UUID
the whole value must be the reference. For the other types the reference can sit inside a longer string. A value that holds a reference is not validated.
After the type check,
regexPattern
is matched against the value's string form and
acceptedValues
must contain the value. When
isList
is true the value is a JSON array, each item is checked as above, and
minItems
and
maxItems
bound the item count.

description

string
required
The description of the parameter.

required

boolean
required
Indicates if the parameter is mandatory.

acceptedValues

array[object]
A map of values accepted.

regexPattern

string
The validation regex used to validate the parameter.

defaultValue

Optional default value.

metadata

object
key map metadata

isList

boolean
Optional boolean indicating this input parameter takes a list as input

minItems

integer
Optional minimum number of items a list value must hold. Only allowed when Unity.Cloud.Automation.Models.Common.InputParameterDto.IsList is true. A value that references another parameter or a step output is not checked, since its list does not exist until the job runs.

maxItems

integer
Optional maximum number of items a list value may hold. Only allowed when Unity.Cloud.Automation.Models.Common.InputParameterDto.IsList is true, and must not be less than Unity.Cloud.Automation.Models.Common.InputParameterDto.MinItems. References are not checked, as for Unity.Cloud.Automation.Models.Common.InputParameterDto.MinItems.

masked

boolean
Whether the parameter value should be masked in all responses.

outputParameters

array[object]
A map of OutputParameters to update the pipeline version.

displayName

string
required
The display name of the parameter.

name

string
required
The name of the parameter.

type

string
required
Parameter type. Each value constrains what an input value must be:

Type

Accepted value

Bool
JSON boolean (
true
or
false
).
Int
JSON integer within the 32-bit signed range.
Float
JSON number with single precision. Integers are accepted.
String
JSON string, including one that holds a UUID or URL.
Url
Absolute
http
or
https
URL, as a string.
UUID
UUID, as a string (for example
3fa85f64-5717-4562-b3fc-2c963f66afa6
).
Text
,
Script
,
File
JSON string. The service applies no further checks.
A value can reference another value with
{{...}}
, for example
{{inputParameters.name}}
. For
Bool
,
Int
,
Float
and
UUID
the whole value must be the reference. For the other types the reference can sit inside a longer string. A value that holds a reference is not validated.
After the type check,
regexPattern
is matched against the value's string form and
acceptedValues
must contain the value. When
isList
is true the value is a JSON array, each item is checked as above, and
minItems
and
maxItems
bound the item count.

description

string
required
The description of the parameter.

value

string
required
Value of the parameter.

secrets

array[object]
List of secrets definition used by the pipeline.

secretName

string
required
Secret key

displayName

string
required
The display name of the Secret

description

string
required
Secret description

required

boolean
required
Secret user input

steps

array[object]
A map of Step to update the pipeline version.

id

string
required
Identifier of the step.

name

string
required
The name of the step.

condition

string
The condition to execute the step.

action

object
The Action

actionId

string
required
Generated unique key from app + version + action name.

inputParameters

object
The input parameters of the action.

configurationId

string
The configuration to use to run the action.

secrets

object
List of the secrets values injected on the action.

storages

object
The action storages mapping.

pipeline

object
An object containing the parameters required to identify a pipeline, its version and input parameters.

id

string
required
The unique Id of the pipeline.

version

string
required
The version of the pipeline (format int.int.int[-rc.int] or int.int.int-sha.[7-14 chars] as a string).

inputParameters

object
The input parameters of the pipeline.

secrets

object
List of the secrets values injected on the pipeline.

storages

object
The pipeline storages mapping.

suspend

The suspend to execute in this step.
One of

fanOut

object
The Fan Out

loopThroughList

string
required
File containing the list of items to loop through.

maximumParallelCount

integer
required
The maximum number of parallel processing.

continueOnFail

boolean
Indicates if the pipeline should continue when this step fails. Only applies to steps that list this one in Dependencies: a step using Depends must define its states itself.

timeout

integer
Timeout value in seconds for this step. Can only be used with Action.

retry

object
The Retry Strategy of a step. Each attempt runs a new pod; the step timeout applies to each attempt, not to the step as a whole.

limit

integer
required
Maximum number of retries after the first attempt.

retryPolicy

string
Which kind of failure triggers a retry.

backoff

object
The delay between retry attempts.

durationSeconds

integer
required
Delay in seconds before the first retry.

factor

integer
Multiplier applied to the delay after each retry. 1 when omitted (constant delay).

maxDurationSeconds

integer
Upper bound in seconds for the delay between two attempts.

expression

string
Optional condition evaluated after each failed attempt; the step is retried only when it is true. It is checked in addition to Unity.Cloud.Automation.Models.Common.RetryStrategyDto.RetryPolicy, so an attempt the policy excludes is never retried. Uses Argo's expression syntax and can read the last attempt through
lastRetry.exitCode
,
lastRetry.status
,
lastRetry.duration
and
lastRetry.message
, e.g.
asInt(lastRetry.exitCode) == 137
. Values are strings, so convert them with
asInt
or
asFloat
before comparing numerically. Input parameters can be injected with
{{inputParameters.name}}
.

configurationIds

array[string]
Optional configuration profiles for the retries, in order: the first retry runs on the first profile, the second retry on the second, and the last one is reused for any further retry. The first attempt keeps the step's own profile. Meant to escalate memory on retry, so each profile may differ from the step's own profile only in CPU and memory; GPU, disk, tolerations, affinity and software must be the same. Each must be one of the action's configuration ids, and there cannot be more of them than Unity.Cloud.Automation.Models.Common.RetryStrategyDto.Limit. Each attempt is billed at its own profile.

dependencies

array[string]
A map of dependencies for this step. Cannot be used with Depends.

depends

string
An expression over the ids of this pipeline's steps, ex: (step1.Succeeded || step1.Skipped) Cannot be used with Dependencies. ContinueOnFail on a referenced step is not applied.

metadata

object
A map of objects containing arbitrary metadata to update the pipeline version.

storages

array[object]
List of pipeline storages used by the pipeline version.
One of

HTTP response status codes for "Update Project Pipeline Version":

Code samples for "Update Project Pipeline Version":

Request example

curl -X PATCH \ -H "Authorization: Bearer <YOUR_TOKEN>" \ -H "Authorization: Basic <YOUR_CREDENTIALS>" \ -H "Content-Type: application/json" \ -d '{ "inputParameters": [ { "displayName": "string", "name": "string", "type": "Bool", "description": "string", "required": true, "acceptedValues": [ null ], "regexPattern": "string", "defaultValue": null, "metadata": {}, "isList": true, "minItems": 0, "maxItems": 0, "masked": true } ], "outputParameters": [ { "displayName": "string", "name": "string", "type": "Bool", "description": "string", "value": "string" } ], "secrets": [ { "secretName": "string", "displayName": "string", "description": "string", "required": true } ], "steps": [ { "id": "string", "name": "string", "condition": "string", "action": { "actionId": "string", "inputParameters": {}, "configurationId": "string", "secrets": {}, "storages": {} }, "pipeline": { "id": "string", "version": "string", "inputParameters": {}, "secrets": {}, "storages": {} }, "suspend": { "type": "string", "description": "string", "permissions": { "allowedUsers": [ null ], "allowedGroups": [ null ] }, "duration": "string", "allowUserToResume": true }, "fanOut": { "loopThroughList": "string", "maximumParallelCount": 0 }, "continueOnFail": true, "timeout": 0, "retry": { "limit": 0, "retryPolicy": "OnFailure", "backoff": { "durationSeconds": 0, "factor": 0, "maxDurationSeconds": 0 }, "expression": "string", "configurationIds": [ "string" ] }, "dependencies": [ "string" ], "depends": "string" } ], "metadata": {}, "storages": [ { "type": "string", "name": "string", "cache": "None" } ]}' \ "https://automation.services.api.unity.com/v1/organizations/{organizationId}/projects/{projectId}/pipelines/{pipelineId}/versions/{pipelineVersion}"

Response example

{ "pipeline": { "id": "string", "name": "string", "description": "string", "tags": [ "string" ], "isUnityMade": true, "organizationId": "string", "projectId": "string" }, "version": "string", "organizationId": "string", "certification": { "certified": true, "certifiedOn": "2024-01-01T00:00:00Z" }, "lifecycle": { "lifecycleStatus": "Draft", "updatedOn": "2024-01-01T00:00:00Z", "archivingDate": "2024-01-01T00:00:00Z" }, "visibility": { "visibilityLevel": "Private", "updatedOn": "2024-01-01T00:00:00Z" }, "inputParameters": [ { "displayName": "string", "name": "string", "type": "Bool", "description": "string", "required": true, "acceptedValues": [ null ], "regexPattern": "string", "defaultValue": null, "metadata": {}, "isList": true, "minItems": 0, "maxItems": 0, "masked": true } ], "outputParameters": [ { "displayName": "string", "name": "string", "type": "Bool", "description": "string", "value": "string" } ], "steps": [ { "id": "string", "name": "string", "condition": "string", "action": { "actionId": "string", "inputParameters": {}, "configurationId": "string", "secrets": {}, "storages": {} }, "pipeline": { "id": "string", "version": "string", "inputParameters": {}, "secrets": {}, "storages": {} }, "suspend": { "type": "string", "description": "string", "permissions": { "allowedUsers": [ null ], "allowedGroups": [ null ] }, "duration": "string", "allowUserToResume": true }, "fanOut": { "loopThroughList": "string", "maximumParallelCount": 0 }, "continueOnFail": true, "timeout": 0, "retry": { "limit": 0, "retryPolicy": "OnFailure", "backoff": { "durationSeconds": 0, "factor": 0, "maxDurationSeconds": 0 }, "expression": "string", "configurationIds": [ "string" ] }, "dependencies": [ "string" ], "depends": "string" } ], "metadata": {}, "systemMetadata": {}, "secrets": [ { "secretName": "string", "displayName": "string", "description": "string", "required": true } ], "usedAppVersions": [ { "app": { "id": "string", "name": "string", "description": "string", "logo": "string", "url": "https://example.com", "tags": [ "string" ], "systemMetadata": { "createdByUnity": true, "organizationId": "string" }, "metadata": {} }, "version": "string", "platformVersion": "string", "lifecycle": { "lifecycleStatus": "Draft", "updatedOn": "2024-01-01T00:00:00Z", "archivingDate": "2024-01-01T00:00:00Z" }, "appVisibility": { "visibilityLevel": "Private", "updatedOn": "2024-01-01T00:00:00Z" }, "actions": [ { "actionId": "string", "name": "string", "description": "string", "terminationGracePeriodSeconds": 0, "inputParameters": [ null ], "outputParameters": [ null ], "secrets": [ null ], "requirements": { "configurationIds": null, "entitlements": null }, "metadata": {}, "timeout": { "defaultValue": null, "minValue": null, "maxValue": null }, "storages": [ null ] } ], "events": [ { "id": "string", "name": "string", "description": "string", "inputParameters": [ null ], "outputParameters": [ null ], "definition": { "type": null, "url": null, "headers": null, "body": null, "deleteUrl": null, "deleteBody": null, "eventFilter": null, "outputParameterMapping": null, "signature": null }, "secrets": [ null ], "requirements": {}, "metadata": {}, "app": { "id": null, "name": null, "description": null, "logo": null, "url": null, "tags": null, "systemMetadata": null, "metadata": null } } ], "metadata": {}, "systemMetadata": {}, "requiredEntitlements": [ { "entitlementIds": [ null ], "description": "string" } ] } ], "storages": [ { "type": "string", "name": "string", "cache": "None" } ]}

Delete Draft Project Pipeline Version


Description: Deletes a project pipeline version. Can only be called from the organization and project the pipeline belongs to, and for an unused pipeline versions that is in Draft state.
Required Role: Automation Developer
Authorizations
Client (Client)
HTTP: Client
HTTP Authorization Scheme: bearer
Required scopes: Client
ServiceAccount (ServiceAccount)
HTTP: ServiceAccount
To get started with authentication, visit the Service Account Authentication section.
HTTP Authorization Scheme: basic
Required scopes: ServiceAccount

Path parameters for "Delete Draft Project Pipeline Version"

organizationId

string
required
Organization Id

projectId

string
required
Project Id

pipelineId

string
required
Pipeline Id

pipelineVersion

string
required
Pipeline Version (format int.int.int[-rc.int] or int.int.int-sha.[7-14 chars] as a string)

HTTP response status codes for "Delete Draft Project Pipeline Version":

Code samples for "Delete Draft Project Pipeline Version":

Request example

curl -X DELETE \ -H "Authorization: Bearer <YOUR_TOKEN>" \ -H "Authorization: Basic <YOUR_CREDENTIALS>" \ "https://automation.services.api.unity.com/v1/organizations/{organizationId}/projects/{projectId}/pipelines/{pipelineId}/versions/{pipelineVersion}"

Response example

{ "type": "string", "title": "string", "status": 0, "detail": "string", "instance": "string"}

Trigger a Project Pipeline


Description: Trigger a project pipeline, returning a job. The pipeline needs to be accessible to the organization triggering it.
Authorizations
Client (Client)
HTTP: Client
HTTP Authorization Scheme: bearer
Required scopes: Client
ServiceAccount (ServiceAccount)
HTTP: ServiceAccount
To get started with authentication, visit the Service Account Authentication section.
HTTP Authorization Scheme: basic
Required scopes: ServiceAccount

Path parameters for "Trigger a Project Pipeline"

organizationId

string
required
The active organization Id

projectId

string
required
The project Id

pipelineId

string
required
The pipeline unique identifier

pipelineVersion

string
required
The pipeline version (format int.int.int[-rc.int] or int.int.int-sha.[7-14 chars] as a string)

Request body for "Trigger a Project Pipeline"

Media Type:
application/json

inputs

object
A map of inputs to trigger a pipeline.

secrets

object
List of the secrets values injected on the pipeline.

jobPriority

integer
The priority of the job. Zero is the highest priority.

HTTP response status codes for "Trigger a Project Pipeline":

Code samples for "Trigger a Project Pipeline":

Request example

curl -X POST \ -H "Authorization: Bearer <YOUR_TOKEN>" \ -H "Authorization: Basic <YOUR_CREDENTIALS>" \ -H "Content-Type: application/json" \ -d '{ "inputs": {}, "secrets": {}, "jobPriority": 0}' \ "https://automation.services.api.unity.com/v1/organizations/{organizationId}/projects/{projectId}/pipelines/{pipelineId}/versions/{pipelineVersion}/trigger"

Response example

{ "id": "string", "pipeline": { "id": "string", "name": "string", "version": "string" }, "status": "Queued", "inputs": {}, "outputs": {}, "secrets": {}, "errors": [ "string" ], "userId": "string", "serviceAccountId": "string", "organizationId": "string", "projectId": "string", "priority": 0, "automationId": "string", "createdAt": "2024-01-01T00:00:00Z", "startedAt": "2024-01-01T00:00:00Z", "finishedAt": "2024-01-01T00:00:00Z", "queueTime": 0, "durationInSeconds": 0, "progress": 0, "steps": [ { "pipelineStepId": "string", "name": "string", "condition": { "statement": "string", "result": true }, "inputParameters": {}, "outputParameters": {}, "dependencies": [ "string" ], "status": "Pending", "error": "string", "retryCount": 0, "progress": 0, "startedAt": "2024-01-01T00:00:00Z", "finishedAt": "2024-01-01T00:00:00Z", "configurationId": "string", "timeout": 0, "suspend": { "type": "string", "description": "string", "permissions": { "allowedUsers": [ null ], "allowedGroups": [ null ] }, "duration": "string", "allowUserToResume": true }, "actionId": "string", "jobPipelineUid": "string", "depth": 0, "retryOfStepId": "string", "retryAttempt": 0 } ], "updatedAt": "2024-01-01T00:00:00Z", "systemMetadata": {}, "jobPipelineUids": {}}

Change Project Pipeline Status


Description: "A project pipeline status can go from Draft to Available or Archived, from Available to Deprecated (with an optional ArchivingDate in UTC format passed in the body), Deprecated to Deprecated (specifying ArchivingDate in the body) and from Deprecated to Archived. Can only be called from the organization and project the pipeline belongs to."
Required Role: Automation Developer
Authorizations
Client (Client)
HTTP: Client
HTTP Authorization Scheme: bearer
Required scopes: Client
ServiceAccount (ServiceAccount)
HTTP: ServiceAccount
To get started with authentication, visit the Service Account Authentication section.
HTTP Authorization Scheme: basic
Required scopes: ServiceAccount

Path parameters for "Change Project Pipeline Status"

organizationId

string
required
The active Organization Id

projectId

string
required
The project Id

pipelineId

string
required
The pipeline unique identifier

pipelineVersion

string
required
The pipeline version (format int.int.int[-rc.int] or int.int.int-sha.[7-14 chars] as a string)

targetStatus

string
required
The pipeline version target lifecycle status

Request body for "Change Project Pipeline Status"

Media Type:
application/json

archivingDate

string
When Deprecated status is requested, this parameter contains the UTC date that the app/pipeline will be archived. If not specified, 6 months from the current date will be used.

HTTP response status codes for "Change Project Pipeline Status":

Code samples for "Change Project Pipeline Status":

Request example

curl -X POST \ -H "Authorization: Bearer <YOUR_TOKEN>" \ -H "Authorization: Basic <YOUR_CREDENTIALS>" \ -H "Content-Type: application/json" \ -d '{ "archivingDate": "2024-01-01T00:00:00Z"}' \ "https://automation.services.api.unity.com/v1/organizations/{organizationId}/projects/{projectId}/pipelines/{pipelineId}/versions/{pipelineVersion}/status/{targetStatus}"

Response example

{ "pipeline": { "id": "string", "name": "string", "description": "string", "tags": [ "string" ], "isUnityMade": true, "organizationId": "string", "projectId": "string" }, "version": "string", "organizationId": "string", "certification": { "certified": true, "certifiedOn": "2024-01-01T00:00:00Z" }, "lifecycle": { "lifecycleStatus": "Draft", "updatedOn": "2024-01-01T00:00:00Z", "archivingDate": "2024-01-01T00:00:00Z" }, "visibility": { "visibilityLevel": "Private", "updatedOn": "2024-01-01T00:00:00Z" }, "inputParameters": [ { "displayName": "string", "name": "string", "type": "Bool", "description": "string", "required": true, "acceptedValues": [ null ], "regexPattern": "string", "defaultValue": null, "metadata": {}, "isList": true, "minItems": 0, "maxItems": 0, "masked": true } ], "outputParameters": [ { "displayName": "string", "name": "string", "type": "Bool", "description": "string", "value": "string" } ], "steps": [ { "id": "string", "name": "string", "condition": "string", "action": { "actionId": "string", "inputParameters": {}, "configurationId": "string", "secrets": {}, "storages": {} }, "pipeline": { "id": "string", "version": "string", "inputParameters": {}, "secrets": {}, "storages": {} }, "suspend": { "type": "string", "description": "string", "permissions": { "allowedUsers": [ null ], "allowedGroups": [ null ] }, "duration": "string", "allowUserToResume": true }, "fanOut": { "loopThroughList": "string", "maximumParallelCount": 0 }, "continueOnFail": true, "timeout": 0, "retry": { "limit": 0, "retryPolicy": "OnFailure", "backoff": { "durationSeconds": 0, "factor": 0, "maxDurationSeconds": 0 }, "expression": "string", "configurationIds": [ "string" ] }, "dependencies": [ "string" ], "depends": "string" } ], "metadata": {}, "systemMetadata": {}, "secrets": [ { "secretName": "string", "displayName": "string", "description": "string", "required": true } ], "usedAppVersions": [ { "app": { "id": "string", "name": "string", "description": "string", "logo": "string", "url": "https://example.com", "tags": [ "string" ], "systemMetadata": { "createdByUnity": true, "organizationId": "string" }, "metadata": {} }, "version": "string", "platformVersion": "string", "lifecycle": { "lifecycleStatus": "Draft", "updatedOn": "2024-01-01T00:00:00Z", "archivingDate": "2024-01-01T00:00:00Z" }, "appVisibility": { "visibilityLevel": "Private", "updatedOn": "2024-01-01T00:00:00Z" }, "actions": [ { "actionId": "string", "name": "string", "description": "string", "terminationGracePeriodSeconds": 0, "inputParameters": [ null ], "outputParameters": [ null ], "secrets": [ null ], "requirements": { "configurationIds": null, "entitlements": null }, "metadata": {}, "timeout": { "defaultValue": null, "minValue": null, "maxValue": null }, "storages": [ null ] } ], "events": [ { "id": "string", "name": "string", "description": "string", "inputParameters": [ null ], "outputParameters": [ null ], "definition": { "type": null, "url": null, "headers": null, "body": null, "deleteUrl": null, "deleteBody": null, "eventFilter": null, "outputParameterMapping": null, "signature": null }, "secrets": [ null ], "requirements": {}, "metadata": {}, "app": { "id": null, "name": null, "description": null, "logo": null, "url": null, "tags": null, "systemMetadata": null, "metadata": null } } ], "metadata": {}, "systemMetadata": {}, "requiredEntitlements": [ { "entitlementIds": [ null ], "description": "string" } ] } ], "storages": [ { "type": "string", "name": "string", "cache": "None" } ]}

Trigger a pipeline Configuration


Description: Trigger a pipeline Configuration, returning a job. The pipeline needs to be accessible to the organization triggering it.
Authorizations
Client (Client)
HTTP: Client
HTTP Authorization Scheme: bearer
Required scopes: Client
ServiceAccount (ServiceAccount)
HTTP: ServiceAccount
To get started with authentication, visit the Service Account Authentication section.
HTTP Authorization Scheme: basic
Required scopes: ServiceAccount

Path parameters for "Trigger a pipeline Configuration"

organizationId

string
required
The active organization Id

Request body for "Trigger a pipeline Configuration"

Media Type:
application/json

name

string
required
The pipeline name.

description

string
required
The pipeline description.

tags

array[string]
List of tags.

steps

array[object]
A map of steps for this pipeline version. Each step must define one of: action, pipeline or suspend.

id

string
required
Identifier of the step.

name

string
required
The name of the step.

condition

string
The condition to execute the step.

action

object
The Action

actionId

string
required
Generated unique key from app + version + action name.

inputParameters

object
The input parameters of the action.

configurationId

string
The configuration to use to run the action.

secrets

object
List of the secrets values injected on the action.

storages

object
The action storages mapping.

pipeline

object
An object containing the parameters required to identify a pipeline, its version and input parameters.

id

string
required
The unique Id of the pipeline.

version

string
required
The version of the pipeline (format int.int.int[-rc.int] or int.int.int-sha.[7-14 chars] as a string).

inputParameters

object
The input parameters of the pipeline.

secrets

object
List of the secrets values injected on the pipeline.

storages

object
The pipeline storages mapping.

suspend

The suspend to execute in this step.
One of

fanOut

object
The Fan Out

loopThroughList

string
required
File containing the list of items to loop through.

maximumParallelCount

integer
required
The maximum number of parallel processing.

continueOnFail

boolean
Indicates if the pipeline should continue when this step fails. Only applies to steps that list this one in Dependencies: a step using Depends must define its states itself.

timeout

integer
Timeout value in seconds for this step. Can only be used with Action.

retry

object
The Retry Strategy of a step. Each attempt runs a new pod; the step timeout applies to each attempt, not to the step as a whole.

limit

integer
required
Maximum number of retries after the first attempt.

retryPolicy

string
Which kind of failure triggers a retry.

backoff

object
The delay between retry attempts.

durationSeconds

integer
required
Delay in seconds before the first retry.

factor

integer
Multiplier applied to the delay after each retry. 1 when omitted (constant delay).

maxDurationSeconds

integer
Upper bound in seconds for the delay between two attempts.

expression

string
Optional condition evaluated after each failed attempt; the step is retried only when it is true. It is checked in addition to Unity.Cloud.Automation.Models.Common.RetryStrategyDto.RetryPolicy, so an attempt the policy excludes is never retried. Uses Argo's expression syntax and can read the last attempt through
lastRetry.exitCode
,
lastRetry.status
,
lastRetry.duration
and
lastRetry.message
, e.g.
asInt(lastRetry.exitCode) == 137
. Values are strings, so convert them with
asInt
or
asFloat
before comparing numerically. Input parameters can be injected with
{{inputParameters.name}}
.

configurationIds

array[string]
Optional configuration profiles for the retries, in order: the first retry runs on the first profile, the second retry on the second, and the last one is reused for any further retry. The first attempt keeps the step's own profile. Meant to escalate memory on retry, so each profile may differ from the step's own profile only in CPU and memory; GPU, disk, tolerations, affinity and software must be the same. Each must be one of the action's configuration ids, and there cannot be more of them than Unity.Cloud.Automation.Models.Common.RetryStrategyDto.Limit. Each attempt is billed at its own profile.

dependencies

array[string]
A map of dependencies for this step. Cannot be used with Depends.

depends

string
An expression over the ids of this pipeline's steps, ex: (step1.Succeeded || step1.Skipped) Cannot be used with Dependencies. ContinueOnFail on a referenced step is not applied.

metadata

object
A map of objects containing arbitrary metadata to be attached to the pipeline version.

jobPriority

integer
The priority of the job. Zero is the highest priority.

HTTP response status codes for "Trigger a pipeline Configuration":

Code samples for "Trigger a pipeline Configuration":

Request example

curl -X POST \ -H "Authorization: Bearer <YOUR_TOKEN>" \ -H "Authorization: Basic <YOUR_CREDENTIALS>" \ -H "Content-Type: application/json" \ -d '{ "name": "string", "description": "string", "tags": [ "string" ], "steps": [ { "id": "string", "name": "string", "condition": "string", "action": { "actionId": "string", "inputParameters": {}, "configurationId": "string", "secrets": {}, "storages": {} }, "pipeline": { "id": "string", "version": "string", "inputParameters": {}, "secrets": {}, "storages": {} }, "suspend": { "type": "string", "description": "string", "permissions": { "allowedUsers": [ null ], "allowedGroups": [ null ] }, "duration": "string", "allowUserToResume": true }, "fanOut": { "loopThroughList": "string", "maximumParallelCount": 0 }, "continueOnFail": true, "timeout": 0, "retry": { "limit": 0, "retryPolicy": "OnFailure", "backoff": { "durationSeconds": 0, "factor": 0, "maxDurationSeconds": 0 }, "expression": "string", "configurationIds": [ "string" ] }, "dependencies": [ "string" ], "depends": "string" } ], "metadata": {}, "jobPriority": 0}' \ "https://automation.services.api.unity.com/v1/organizations/{organizationId}/pipelines/trigger"

Response example

{ "id": "string", "pipeline": { "id": "string", "name": "string", "version": "string" }, "status": "Queued", "inputs": {}, "outputs": {}, "secrets": {}, "errors": [ "string" ], "userId": "string", "serviceAccountId": "string", "organizationId": "string", "projectId": "string", "priority": 0, "automationId": "string", "createdAt": "2024-01-01T00:00:00Z", "startedAt": "2024-01-01T00:00:00Z", "finishedAt": "2024-01-01T00:00:00Z", "queueTime": 0, "durationInSeconds": 0, "progress": 0, "steps": [ { "pipelineStepId": "string", "name": "string", "condition": { "statement": "string", "result": true }, "inputParameters": {}, "outputParameters": {}, "dependencies": [ "string" ], "status": "Pending", "error": "string", "retryCount": 0, "progress": 0, "startedAt": "2024-01-01T00:00:00Z", "finishedAt": "2024-01-01T00:00:00Z", "configurationId": "string", "timeout": 0, "suspend": { "type": "string", "description": "string", "permissions": { "allowedUsers": [ null ], "allowedGroups": [ null ] }, "duration": "string", "allowUserToResume": true }, "actionId": "string", "jobPipelineUid": "string", "depth": 0, "retryOfStepId": "string", "retryAttempt": 0 } ], "updatedAt": "2024-01-01T00:00:00Z", "systemMetadata": {}, "jobPipelineUids": {}}

Validate a pipeline Configuration.


Description: Validate a pipeline Configuration. The pipeline needs to be accessible to the organization.
Authorizations
Client (Client)
HTTP: Client
HTTP Authorization Scheme: bearer
Required scopes: Client
ServiceAccount (ServiceAccount)
HTTP: ServiceAccount
To get started with authentication, visit the Service Account Authentication section.
HTTP Authorization Scheme: basic
Required scopes: ServiceAccount

Path parameters for "Validate a pipeline Configuration."

organizationId

string
required
The active organization Id

Request body for "Validate a pipeline Configuration."

Media Type:
application/json

name

string
required
The pipeline name.

description

string
required
The pipeline description.

tags

array[string]
List of tags.

steps

array[object]
A map of steps for this pipeline version. Each step must define one of: action, pipeline or suspend.

id

string
required
Identifier of the step.

name

string
required
The name of the step.

condition

string
The condition to execute the step.

action

object
The Action

actionId

string
required
Generated unique key from app + version + action name.

inputParameters

object
The input parameters of the action.

configurationId

string
The configuration to use to run the action.

secrets

object
List of the secrets values injected on the action.

storages

object
The action storages mapping.

pipeline

object
An object containing the parameters required to identify a pipeline, its version and input parameters.

id

string
required
The unique Id of the pipeline.

version

string
required
The version of the pipeline (format int.int.int[-rc.int] or int.int.int-sha.[7-14 chars] as a string).

inputParameters

object
The input parameters of the pipeline.

secrets

object
List of the secrets values injected on the pipeline.

storages

object
The pipeline storages mapping.

suspend

The suspend to execute in this step.
One of

fanOut

object
The Fan Out

loopThroughList

string
required
File containing the list of items to loop through.

maximumParallelCount

integer
required
The maximum number of parallel processing.

continueOnFail

boolean
Indicates if the pipeline should continue when this step fails. Only applies to steps that list this one in Dependencies: a step using Depends must define its states itself.

timeout

integer
Timeout value in seconds for this step. Can only be used with Action.

retry

object
The Retry Strategy of a step. Each attempt runs a new pod; the step timeout applies to each attempt, not to the step as a whole.

limit

integer
required
Maximum number of retries after the first attempt.

retryPolicy

string
Which kind of failure triggers a retry.

backoff

object
The delay between retry attempts.

durationSeconds

integer
required
Delay in seconds before the first retry.

factor

integer
Multiplier applied to the delay after each retry. 1 when omitted (constant delay).

maxDurationSeconds

integer
Upper bound in seconds for the delay between two attempts.

expression

string
Optional condition evaluated after each failed attempt; the step is retried only when it is true. It is checked in addition to Unity.Cloud.Automation.Models.Common.RetryStrategyDto.RetryPolicy, so an attempt the policy excludes is never retried. Uses Argo's expression syntax and can read the last attempt through
lastRetry.exitCode
,
lastRetry.status
,
lastRetry.duration
and
lastRetry.message
, e.g.
asInt(lastRetry.exitCode) == 137
. Values are strings, so convert them with
asInt
or
asFloat
before comparing numerically. Input parameters can be injected with
{{inputParameters.name}}
.

configurationIds

array[string]
Optional configuration profiles for the retries, in order: the first retry runs on the first profile, the second retry on the second, and the last one is reused for any further retry. The first attempt keeps the step's own profile. Meant to escalate memory on retry, so each profile may differ from the step's own profile only in CPU and memory; GPU, disk, tolerations, affinity and software must be the same. Each must be one of the action's configuration ids, and there cannot be more of them than Unity.Cloud.Automation.Models.Common.RetryStrategyDto.Limit. Each attempt is billed at its own profile.

dependencies

array[string]
A map of dependencies for this step. Cannot be used with Depends.

depends

string
An expression over the ids of this pipeline's steps, ex: (step1.Succeeded || step1.Skipped) Cannot be used with Dependencies. ContinueOnFail on a referenced step is not applied.

metadata

object
A map of objects containing arbitrary metadata to be attached to the pipeline version.

jobPriority

integer
The priority of the job. Zero is the highest priority.

HTTP response status codes for "Validate a pipeline Configuration.":

Code samples for "Validate a pipeline Configuration.":

Request example

curl -X POST \ -H "Authorization: Bearer <YOUR_TOKEN>" \ -H "Authorization: Basic <YOUR_CREDENTIALS>" \ -H "Content-Type: application/json" \ -d '{ "name": "string", "description": "string", "tags": [ "string" ], "steps": [ { "id": "string", "name": "string", "condition": "string", "action": { "actionId": "string", "inputParameters": {}, "configurationId": "string", "secrets": {}, "storages": {} }, "pipeline": { "id": "string", "version": "string", "inputParameters": {}, "secrets": {}, "storages": {} }, "suspend": { "type": "string", "description": "string", "permissions": { "allowedUsers": [ null ], "allowedGroups": [ null ] }, "duration": "string", "allowUserToResume": true }, "fanOut": { "loopThroughList": "string", "maximumParallelCount": 0 }, "continueOnFail": true, "timeout": 0, "retry": { "limit": 0, "retryPolicy": "OnFailure", "backoff": { "durationSeconds": 0, "factor": 0, "maxDurationSeconds": 0 }, "expression": "string", "configurationIds": [ "string" ] }, "dependencies": [ "string" ], "depends": "string" } ], "metadata": {}, "jobPriority": 0}' \ "https://automation.services.api.unity.com/v1/organizations/{organizationId}/pipelines/validate"

Response example

{ "type": "string", "title": "string", "status": 0, "detail": "string", "instance": "string"}

Trigger a project pipeline Configuration


Description: Trigger a project pipeline Configuration, returning a job. The pipeline needs to be accessible to the organization triggering it.
Authorizations
Client (Client)
HTTP: Client
HTTP Authorization Scheme: bearer
Required scopes: Client
ServiceAccount (ServiceAccount)
HTTP: ServiceAccount
To get started with authentication, visit the Service Account Authentication section.
HTTP Authorization Scheme: basic
Required scopes: ServiceAccount

Path parameters for "Trigger a project pipeline Configuration"

organizationId

string
required
The active organization Id

projectId

string
required
The project Id

Request body for "Trigger a project pipeline Configuration"

Media Type:
application/json

name

string
required
The pipeline name.

description

string
required
The pipeline description.

tags

array[string]
List of tags.

steps

array[object]
A map of steps for this pipeline version. Each step must define one of: action, pipeline or suspend.

id

string
required
Identifier of the step.

name

string
required
The name of the step.

condition

string
The condition to execute the step.

action

object
The Action

actionId

string
required
Generated unique key from app + version + action name.

inputParameters

object
The input parameters of the action.

configurationId

string
The configuration to use to run the action.

secrets

object
List of the secrets values injected on the action.

storages

object
The action storages mapping.

pipeline

object
An object containing the parameters required to identify a pipeline, its version and input parameters.

id

string
required
The unique Id of the pipeline.

version

string
required
The version of the pipeline (format int.int.int[-rc.int] or int.int.int-sha.[7-14 chars] as a string).

inputParameters

object
The input parameters of the pipeline.

secrets

object
List of the secrets values injected on the pipeline.

storages

object
The pipeline storages mapping.

suspend

The suspend to execute in this step.
One of

fanOut

object
The Fan Out

loopThroughList

string
required
File containing the list of items to loop through.

maximumParallelCount

integer
required
The maximum number of parallel processing.

continueOnFail

boolean
Indicates if the pipeline should continue when this step fails. Only applies to steps that list this one in Dependencies: a step using Depends must define its states itself.

timeout

integer
Timeout value in seconds for this step. Can only be used with Action.

retry

object
The Retry Strategy of a step. Each attempt runs a new pod; the step timeout applies to each attempt, not to the step as a whole.

limit

integer
required
Maximum number of retries after the first attempt.

retryPolicy

string
Which kind of failure triggers a retry.

backoff

object
The delay between retry attempts.

durationSeconds

integer
required
Delay in seconds before the first retry.

factor

integer
Multiplier applied to the delay after each retry. 1 when omitted (constant delay).

maxDurationSeconds

integer
Upper bound in seconds for the delay between two attempts.

expression

string
Optional condition evaluated after each failed attempt; the step is retried only when it is true. It is checked in addition to Unity.Cloud.Automation.Models.Common.RetryStrategyDto.RetryPolicy, so an attempt the policy excludes is never retried. Uses Argo's expression syntax and can read the last attempt through
lastRetry.exitCode
,
lastRetry.status
,
lastRetry.duration
and
lastRetry.message
, e.g.
asInt(lastRetry.exitCode) == 137
. Values are strings, so convert them with
asInt
or
asFloat
before comparing numerically. Input parameters can be injected with
{{inputParameters.name}}
.

configurationIds

array[string]
Optional configuration profiles for the retries, in order: the first retry runs on the first profile, the second retry on the second, and the last one is reused for any further retry. The first attempt keeps the step's own profile. Meant to escalate memory on retry, so each profile may differ from the step's own profile only in CPU and memory; GPU, disk, tolerations, affinity and software must be the same. Each must be one of the action's configuration ids, and there cannot be more of them than Unity.Cloud.Automation.Models.Common.RetryStrategyDto.Limit. Each attempt is billed at its own profile.

dependencies

array[string]
A map of dependencies for this step. Cannot be used with Depends.

depends

string
An expression over the ids of this pipeline's steps, ex: (step1.Succeeded || step1.Skipped) Cannot be used with Dependencies. ContinueOnFail on a referenced step is not applied.

metadata

object
A map of objects containing arbitrary metadata to be attached to the pipeline version.

jobPriority

integer
The priority of the job. Zero is the highest priority.

HTTP response status codes for "Trigger a project pipeline Configuration":

Code samples for "Trigger a project pipeline Configuration":

Request example

curl -X POST \ -H "Authorization: Bearer <YOUR_TOKEN>" \ -H "Authorization: Basic <YOUR_CREDENTIALS>" \ -H "Content-Type: application/json" \ -d '{ "name": "string", "description": "string", "tags": [ "string" ], "steps": [ { "id": "string", "name": "string", "condition": "string", "action": { "actionId": "string", "inputParameters": {}, "configurationId": "string", "secrets": {}, "storages": {} }, "pipeline": { "id": "string", "version": "string", "inputParameters": {}, "secrets": {}, "storages": {} }, "suspend": { "type": "string", "description": "string", "permissions": { "allowedUsers": [ null ], "allowedGroups": [ null ] }, "duration": "string", "allowUserToResume": true }, "fanOut": { "loopThroughList": "string", "maximumParallelCount": 0 }, "continueOnFail": true, "timeout": 0, "retry": { "limit": 0, "retryPolicy": "OnFailure", "backoff": { "durationSeconds": 0, "factor": 0, "maxDurationSeconds": 0 }, "expression": "string", "configurationIds": [ "string" ] }, "dependencies": [ "string" ], "depends": "string" } ], "metadata": {}, "jobPriority": 0}' \ "https://automation.services.api.unity.com/v1/organizations/{organizationId}/projects/{projectId}/pipelines/trigger"

Response example

{ "id": "string", "pipeline": { "id": "string", "name": "string", "version": "string" }, "status": "Queued", "inputs": {}, "outputs": {}, "secrets": {}, "errors": [ "string" ], "userId": "string", "serviceAccountId": "string", "organizationId": "string", "projectId": "string", "priority": 0, "automationId": "string", "createdAt": "2024-01-01T00:00:00Z", "startedAt": "2024-01-01T00:00:00Z", "finishedAt": "2024-01-01T00:00:00Z", "queueTime": 0, "durationInSeconds": 0, "progress": 0, "steps": [ { "pipelineStepId": "string", "name": "string", "condition": { "statement": "string", "result": true }, "inputParameters": {}, "outputParameters": {}, "dependencies": [ "string" ], "status": "Pending", "error": "string", "retryCount": 0, "progress": 0, "startedAt": "2024-01-01T00:00:00Z", "finishedAt": "2024-01-01T00:00:00Z", "configurationId": "string", "timeout": 0, "suspend": { "type": "string", "description": "string", "permissions": { "allowedUsers": [ null ], "allowedGroups": [ null ] }, "duration": "string", "allowUserToResume": true }, "actionId": "string", "jobPipelineUid": "string", "depth": 0, "retryOfStepId": "string", "retryAttempt": 0 } ], "updatedAt": "2024-01-01T00:00:00Z", "systemMetadata": {}, "jobPipelineUids": {}}

Validate a pipeline Configuration by project


Description: Validate a pipeline Configuration by project. The pipeline needs to be accessible to the organization.
Authorizations
Client (Client)
HTTP: Client
HTTP Authorization Scheme: bearer
Required scopes: Client
ServiceAccount (ServiceAccount)
HTTP: ServiceAccount
To get started with authentication, visit the Service Account Authentication section.
HTTP Authorization Scheme: basic
Required scopes: ServiceAccount

Path parameters for "Validate a pipeline Configuration by project"

organizationId

string
required
The active organization Id

projectId

string
required
The project Id

Request body for "Validate a pipeline Configuration by project"

Media Type:
application/json

name

string
required
The pipeline name.

description

string
required
The pipeline description.

tags

array[string]
List of tags.

steps

array[object]
A map of steps for this pipeline version. Each step must define one of: action, pipeline or suspend.

id

string
required
Identifier of the step.

name

string
required
The name of the step.

condition

string
The condition to execute the step.

action

object
The Action

actionId

string
required
Generated unique key from app + version + action name.

inputParameters

object
The input parameters of the action.

configurationId

string
The configuration to use to run the action.

secrets

object
List of the secrets values injected on the action.

storages

object
The action storages mapping.

pipeline

object
An object containing the parameters required to identify a pipeline, its version and input parameters.

id

string
required
The unique Id of the pipeline.

version

string
required
The version of the pipeline (format int.int.int[-rc.int] or int.int.int-sha.[7-14 chars] as a string).

inputParameters

object
The input parameters of the pipeline.

secrets

object
List of the secrets values injected on the pipeline.

storages

object
The pipeline storages mapping.

suspend

The suspend to execute in this step.
One of

fanOut

object
The Fan Out

loopThroughList

string
required
File containing the list of items to loop through.

maximumParallelCount

integer
required
The maximum number of parallel processing.

continueOnFail

boolean
Indicates if the pipeline should continue when this step fails. Only applies to steps that list this one in Dependencies: a step using Depends must define its states itself.

timeout

integer
Timeout value in seconds for this step. Can only be used with Action.

retry

object
The Retry Strategy of a step. Each attempt runs a new pod; the step timeout applies to each attempt, not to the step as a whole.

limit

integer
required
Maximum number of retries after the first attempt.

retryPolicy

string
Which kind of failure triggers a retry.

backoff

object
The delay between retry attempts.

durationSeconds

integer
required
Delay in seconds before the first retry.

factor

integer
Multiplier applied to the delay after each retry. 1 when omitted (constant delay).

maxDurationSeconds

integer
Upper bound in seconds for the delay between two attempts.

expression

string
Optional condition evaluated after each failed attempt; the step is retried only when it is true. It is checked in addition to Unity.Cloud.Automation.Models.Common.RetryStrategyDto.RetryPolicy, so an attempt the policy excludes is never retried. Uses Argo's expression syntax and can read the last attempt through
lastRetry.exitCode
,
lastRetry.status
,
lastRetry.duration
and
lastRetry.message
, e.g.
asInt(lastRetry.exitCode) == 137
. Values are strings, so convert them with
asInt
or
asFloat
before comparing numerically. Input parameters can be injected with
{{inputParameters.name}}
.

configurationIds

array[string]
Optional configuration profiles for the retries, in order: the first retry runs on the first profile, the second retry on the second, and the last one is reused for any further retry. The first attempt keeps the step's own profile. Meant to escalate memory on retry, so each profile may differ from the step's own profile only in CPU and memory; GPU, disk, tolerations, affinity and software must be the same. Each must be one of the action's configuration ids, and there cannot be more of them than Unity.Cloud.Automation.Models.Common.RetryStrategyDto.Limit. Each attempt is billed at its own profile.

dependencies

array[string]
A map of dependencies for this step. Cannot be used with Depends.

depends

string
An expression over the ids of this pipeline's steps, ex: (step1.Succeeded || step1.Skipped) Cannot be used with Dependencies. ContinueOnFail on a referenced step is not applied.

metadata

object
A map of objects containing arbitrary metadata to be attached to the pipeline version.

jobPriority

integer
The priority of the job. Zero is the highest priority.

HTTP response status codes for "Validate a pipeline Configuration by project":

Code samples for "Validate a pipeline Configuration by project":

Request example

curl -X POST \ -H "Authorization: Bearer <YOUR_TOKEN>" \ -H "Authorization: Basic <YOUR_CREDENTIALS>" \ -H "Content-Type: application/json" \ -d '{ "name": "string", "description": "string", "tags": [ "string" ], "steps": [ { "id": "string", "name": "string", "condition": "string", "action": { "actionId": "string", "inputParameters": {}, "configurationId": "string", "secrets": {}, "storages": {} }, "pipeline": { "id": "string", "version": "string", "inputParameters": {}, "secrets": {}, "storages": {} }, "suspend": { "type": "string", "description": "string", "permissions": { "allowedUsers": [ null ], "allowedGroups": [ null ] }, "duration": "string", "allowUserToResume": true }, "fanOut": { "loopThroughList": "string", "maximumParallelCount": 0 }, "continueOnFail": true, "timeout": 0, "retry": { "limit": 0, "retryPolicy": "OnFailure", "backoff": { "durationSeconds": 0, "factor": 0, "maxDurationSeconds": 0 }, "expression": "string", "configurationIds": [ "string" ] }, "dependencies": [ "string" ], "depends": "string" } ], "metadata": {}, "jobPriority": 0}' \ "https://automation.services.api.unity.com/v1/organizations/{organizationId}/projects/{projectId}/pipelines/validate"

Response example

{ "type": "string", "title": "string", "status": 0, "detail": "string", "instance": "string"}

Update Project Pipeline


Description: Updates the basic pipeline information. Independent of status or visibility. Can only be called from the organization and project the pipeline belongs to.
Required Role: Automation Developer
Authorizations
Client (Client)
HTTP: Client
HTTP Authorization Scheme: bearer
Required scopes: Client
ServiceAccount (ServiceAccount)
HTTP: ServiceAccount
To get started with authentication, visit the Service Account Authentication section.
HTTP Authorization Scheme: basic
Required scopes: ServiceAccount

Path parameters for "Update Project Pipeline"

organizationId

string
required
The active organization Id

projectId

string
required
The project Id

pipelineId

string
required
The pipeline unique identifier

Request body for "Update Project Pipeline"

Media Type:
application/json

name

string
The pipeline name.

description

string
The pipeline description.

tags

array[string]
The pipeline tags.

HTTP response status codes for "Update Project Pipeline":

Code samples for "Update Project Pipeline":

Request example

curl -X PATCH \ -H "Authorization: Bearer <YOUR_TOKEN>" \ -H "Authorization: Basic <YOUR_CREDENTIALS>" \ -H "Content-Type: application/json" \ -d '{ "name": "string", "description": "string", "tags": [ "string" ]}' \ "https://automation.services.api.unity.com/v1/organizations/{organizationId}/projects/{projectId}/pipelines/{pipelineId}"

Response example

{ "id": "string", "name": "string", "description": "string", "tags": [ "string" ], "isUnityMade": true, "organizationId": "string", "projectId": "string"}

Get all Pipeline templates associated to a specific app Id.


Description: Get all specific pipeline templates associated to a specific app Id.
Required Role: automation.pipeline_templates.read
Authorizations
Client (Client)
HTTP: Client
HTTP Authorization Scheme: bearer
Required scopes: Client
ServiceAccount (ServiceAccount)
HTTP: ServiceAccount
To get started with authentication, visit the Service Account Authentication section.
HTTP Authorization Scheme: basic
Required scopes: ServiceAccount

Path parameters for "Get all Pipeline templates associated to a specific app Id."

organizationId

string
required
The active organization Id

appId

string
required
The app Id

Query parameters for "Get all Pipeline templates associated to a specific app Id."

offset

integer
int representing number of items to skip

limit

integer
int representing max returned items

HTTP response status codes for "Get all Pipeline templates associated to a specific app Id.":

Code samples for "Get all Pipeline templates associated to a specific app Id.":

Request example

curl -X GET \ -H "Authorization: Bearer <YOUR_TOKEN>" \ -H "Authorization: Basic <YOUR_CREDENTIALS>" \ "https://automation.services.api.unity.com/v1/organizations/{organizationId}/apps/{appId}/pipeline-templates"

Response example

{ "offset": 0, "limit": 0, "total": 0, "results": [ { "id": "string", "name": "string", "description": "string", "appId": "string", "steps": [ { "id": "string", "name": "string", "condition": "string", "action": { "actionId": null, "inputParameters": null, "configurationId": null, "secrets": null, "storages": null }, "pipeline": { "id": null, "version": null, "inputParameters": null, "secrets": null, "storages": null }, "suspend": { "type": null, "description": null, "permissions": null, "duration": null, "allowUserToResume": null }, "fanOut": { "loopThroughList": null, "maximumParallelCount": null }, "continueOnFail": true, "timeout": 0, "retry": { "limit": null, "retryPolicy": null, "backoff": null, "expression": null, "configurationIds": null }, "dependencies": [ null ], "depends": "string" } ], "inputParameters": [ { "displayName": "string", "name": "string", "type": "Bool", "description": "string", "required": true, "acceptedValues": [ null ], "regexPattern": "string", "defaultValue": null, "metadata": {}, "isList": true, "minItems": 0, "maxItems": 0, "masked": true } ], "secrets": [ { "secretName": "string", "displayName": "string", "description": "string", "required": true } ], "outputParameters": [ { "displayName": "string", "name": "string", "type": "Bool", "description": "string" } ], "tags": [ "string" ], "metadata": {}, "systemMetadata": {} } ]}

Creates a new template for this organization


Description: Creates a new pipeline template.
Required Role: automation.apps_pipeline_templates.create
Authorizations
Client (Client)
HTTP: Client
HTTP Authorization Scheme: bearer
Required scopes: Client
ServiceAccount (ServiceAccount)
HTTP: ServiceAccount
To get started with authentication, visit the Service Account Authentication section.
HTTP Authorization Scheme: basic
Required scopes: ServiceAccount

Path parameters for "Creates a new template for this organization"

organizationId

string
required
The active organization Id

appId

string
required
The app Id

Request body for "Creates a new template for this organization"

Media Type:
application/json

name

string
required
The pipeline template name.

description

string
required
The pipeline template description.

steps

array[object]
A map of steps for this pipeline template. Each step must define one of: action, pipeline or suspend.

id

string
required
Identifier of the step.

name

string
required
The name of the step.

condition

string
The condition to execute the step.

action

object
The Action

actionId

string
required
Generated unique key from app + version + action name.

inputParameters

object
The input parameters of the action.

configurationId

string
The configuration to use to run the action.

secrets

object
List of the secrets values injected on the action.

storages

object
The action storages mapping.

pipeline

object
An object containing the parameters required to identify a pipeline, its version and input parameters.

id

string
required
The unique Id of the pipeline.

version

string
required
The version of the pipeline (format int.int.int[-rc.int] or int.int.int-sha.[7-14 chars] as a string).

inputParameters

object
The input parameters of the pipeline.

secrets

object
List of the secrets values injected on the pipeline.

storages

object
The pipeline storages mapping.

suspend

The suspend to execute in this step.
One of

fanOut

object
The Fan Out

loopThroughList

string
required
File containing the list of items to loop through.

maximumParallelCount

integer
required
The maximum number of parallel processing.

continueOnFail

boolean
Indicates if the pipeline should continue when this step fails. Only applies to steps that list this one in Dependencies: a step using Depends must define its states itself.

timeout

integer
Timeout value in seconds for this step. Can only be used with Action.

retry

object
The Retry Strategy of a step. Each attempt runs a new pod; the step timeout applies to each attempt, not to the step as a whole.

limit

integer
required
Maximum number of retries after the first attempt.

retryPolicy

string
Which kind of failure triggers a retry.

backoff

object
The delay between retry attempts.

durationSeconds

integer
required
Delay in seconds before the first retry.

factor

integer
Multiplier applied to the delay after each retry. 1 when omitted (constant delay).

maxDurationSeconds

integer
Upper bound in seconds for the delay between two attempts.

expression

string
Optional condition evaluated after each failed attempt; the step is retried only when it is true. It is checked in addition to Unity.Cloud.Automation.Models.Common.RetryStrategyDto.RetryPolicy, so an attempt the policy excludes is never retried. Uses Argo's expression syntax and can read the last attempt through
lastRetry.exitCode
,
lastRetry.status
,
lastRetry.duration
and
lastRetry.message
, e.g.
asInt(lastRetry.exitCode) == 137
. Values are strings, so convert them with
asInt
or
asFloat
before comparing numerically. Input parameters can be injected with
{{inputParameters.name}}
.

configurationIds

array[string]
Optional configuration profiles for the retries, in order: the first retry runs on the first profile, the second retry on the second, and the last one is reused for any further retry. The first attempt keeps the step's own profile. Meant to escalate memory on retry, so each profile may differ from the step's own profile only in CPU and memory; GPU, disk, tolerations, affinity and software must be the same. Each must be one of the action's configuration ids, and there cannot be more of them than Unity.Cloud.Automation.Models.Common.RetryStrategyDto.Limit. Each attempt is billed at its own profile.

dependencies

array[string]
A map of dependencies for this step. Cannot be used with Depends.

depends

string
An expression over the ids of this pipeline's steps, ex: (step1.Succeeded || step1.Skipped) Cannot be used with Dependencies. ContinueOnFail on a referenced step is not applied.

inputParameters

array[object]
A map of InputParameters for this pipeline template.

displayName

string
required
The display name of the parameter.

name

string
required
The name of the parameter.

type

string
required
Parameter type. Each value constrains what an input value must be:

Type

Accepted value

Bool
JSON boolean (
true
or
false
).
Int
JSON integer within the 32-bit signed range.
Float
JSON number with single precision. Integers are accepted.
String
JSON string, including one that holds a UUID or URL.
Url
Absolute
http
or
https
URL, as a string.
UUID
UUID, as a string (for example
3fa85f64-5717-4562-b3fc-2c963f66afa6
).
Text
,
Script
,
File
JSON string. The service applies no further checks.
A value can reference another value with
{{...}}
, for example
{{inputParameters.name}}
. For
Bool
,
Int
,
Float
and
UUID
the whole value must be the reference. For the other types the reference can sit inside a longer string. A value that holds a reference is not validated.
After the type check,
regexPattern
is matched against the value's string form and
acceptedValues
must contain the value. When
isList
is true the value is a JSON array, each item is checked as above, and
minItems
and
maxItems
bound the item count.

description

string
required
The description of the parameter.

required

boolean
required
Indicates if the parameter is mandatory.

acceptedValues

array[object]
A map of values accepted.

regexPattern

string
The validation regex used to validate the parameter.

defaultValue

Optional default value.

metadata

object
key map metadata

isList

boolean
Optional boolean indicating this input parameter takes a list as input

minItems

integer
Optional minimum number of items a list value must hold. Only allowed when Unity.Cloud.Automation.Models.Common.InputParameterDto.IsList is true. A value that references another parameter or a step output is not checked, since its list does not exist until the job runs.

maxItems

integer
Optional maximum number of items a list value may hold. Only allowed when Unity.Cloud.Automation.Models.Common.InputParameterDto.IsList is true, and must not be less than Unity.Cloud.Automation.Models.Common.InputParameterDto.MinItems. References are not checked, as for Unity.Cloud.Automation.Models.Common.InputParameterDto.MinItems.

masked

boolean
Whether the parameter value should be masked in all responses.

secrets

array[object]
List of secret definition.

secretName

string
required
Secret key

displayName

string
required
The display name of the Secret

description

string
required
Secret description

required

boolean
required
Secret user input

outputParameters

array[object]
A map of OutputParameters for this pipeline template.

displayName

string
required
The display name of the parameter.

name

string
required
The name of the parameter.

type

string
required
Parameter type. Each value constrains what an input value must be:

Type

Accepted value

Bool
JSON boolean (
true
or
false
).
Int
JSON integer within the 32-bit signed range.
Float
JSON number with single precision. Integers are accepted.
String
JSON string, including one that holds a UUID or URL.
Url
Absolute
http
or
https
URL, as a string.
UUID
UUID, as a string (for example
3fa85f64-5717-4562-b3fc-2c963f66afa6
).
Text
,
Script
,
File
JSON string. The service applies no further checks.
A value can reference another value with
{{...}}
, for example
{{inputParameters.name}}
. For
Bool
,
Int
,
Float
and
UUID
the whole value must be the reference. For the other types the reference can sit inside a longer string. A value that holds a reference is not validated.
After the type check,
regexPattern
is matched against the value's string form and
acceptedValues
must contain the value. When
isList
is true the value is a JSON array, each item is checked as above, and
minItems
and
maxItems
bound the item count.

description

string
required
The description of the parameter.

value

string
required
Value of the parameter.

tags

array[string]
List of tags.

metadata

object
A map of objects containing arbitrary metadata to be attached to the pipeline template.

HTTP response status codes for "Creates a new template for this organization":

Code samples for "Creates a new template for this organization":

Request example

curl -X POST \ -H "Authorization: Bearer <YOUR_TOKEN>" \ -H "Authorization: Basic <YOUR_CREDENTIALS>" \ -H "Content-Type: application/json" \ -d '{ "name": "string", "description": "string", "steps": [ { "id": "string", "name": "string", "condition": "string", "action": { "actionId": "string", "inputParameters": {}, "configurationId": "string", "secrets": {}, "storages": {} }, "pipeline": { "id": "string", "version": "string", "inputParameters": {}, "secrets": {}, "storages": {} }, "suspend": { "type": "string", "description": "string", "permissions": { "allowedUsers": [ null ], "allowedGroups": [ null ] }, "duration": "string", "allowUserToResume": true }, "fanOut": { "loopThroughList": "string", "maximumParallelCount": 0 }, "continueOnFail": true, "timeout": 0, "retry": { "limit": 0, "retryPolicy": "OnFailure", "backoff": { "durationSeconds": 0, "factor": 0, "maxDurationSeconds": 0 }, "expression": "string", "configurationIds": [ "string" ] }, "dependencies": [ "string" ], "depends": "string" } ], "inputParameters": [ { "displayName": "string", "name": "string", "type": "Bool", "description": "string", "required": true, "acceptedValues": [ null ], "regexPattern": "string", "defaultValue": null, "metadata": {}, "isList": true, "minItems": 0, "maxItems": 0, "masked": true } ], "secrets": [ { "secretName": "string", "displayName": "string", "description": "string", "required": true } ], "outputParameters": [ { "displayName": "string", "name": "string", "type": "Bool", "description": "string", "value": "string" } ], "tags": [ "string" ], "metadata": {}}' \ "https://automation.services.api.unity.com/v1/organizations/{organizationId}/apps/{appId}/pipeline-templates"

Response example

{ "id": "string", "name": "string", "description": "string", "appId": "string", "steps": [ { "id": "string", "name": "string", "condition": "string", "action": { "actionId": "string", "inputParameters": {}, "configurationId": "string", "secrets": {}, "storages": {} }, "pipeline": { "id": "string", "version": "string", "inputParameters": {}, "secrets": {}, "storages": {} }, "suspend": { "type": "string", "description": "string", "permissions": { "allowedUsers": [ null ], "allowedGroups": [ null ] }, "duration": "string", "allowUserToResume": true }, "fanOut": { "loopThroughList": "string", "maximumParallelCount": 0 }, "continueOnFail": true, "timeout": 0, "retry": { "limit": 0, "retryPolicy": "OnFailure", "backoff": { "durationSeconds": 0, "factor": 0, "maxDurationSeconds": 0 }, "expression": "string", "configurationIds": [ "string" ] }, "dependencies": [ "string" ], "depends": "string" } ], "inputParameters": [ { "displayName": "string", "name": "string", "type": "Bool", "description": "string", "required": true, "acceptedValues": [ null ], "regexPattern": "string", "defaultValue": null, "metadata": {}, "isList": true, "minItems": 0, "maxItems": 0, "masked": true } ], "secrets": [ { "secretName": "string", "displayName": "string", "description": "string", "required": true } ], "outputParameters": [ { "displayName": "string", "name": "string", "type": "Bool", "description": "string" } ], "tags": [ "string" ], "metadata": {}, "systemMetadata": {}}

Get a specific Pipeline template with a specific appId.


Description: Get a specific pipeline template with an appId and a template Id.
Required Role: automation.pipeline_templates.read
Authorizations
Client (Client)
HTTP: Client
HTTP Authorization Scheme: bearer
Required scopes: Client
ServiceAccount (ServiceAccount)
HTTP: ServiceAccount
To get started with authentication, visit the Service Account Authentication section.
HTTP Authorization Scheme: basic
Required scopes: ServiceAccount

Path parameters for "Get a specific Pipeline template with a specific appId."

organizationId

string
required
The active organization Id

appId

string
required
The app Id

pipelineTemplateId

string
required
The pipeline template unique identifier

HTTP response status codes for "Get a specific Pipeline template with a specific appId.":

Code samples for "Get a specific Pipeline template with a specific appId.":

Request example

curl -X GET \ -H "Authorization: Bearer <YOUR_TOKEN>" \ -H "Authorization: Basic <YOUR_CREDENTIALS>" \ "https://automation.services.api.unity.com/v1/organizations/{organizationId}/apps/{appId}/pipeline-templates/{pipelineTemplateId}"

Response example

{ "id": "string", "name": "string", "description": "string", "appId": "string", "steps": [ { "id": "string", "name": "string", "condition": "string", "action": { "actionId": "string", "inputParameters": {}, "configurationId": "string", "secrets": {}, "storages": {} }, "pipeline": { "id": "string", "version": "string", "inputParameters": {}, "secrets": {}, "storages": {} }, "suspend": { "type": "string", "description": "string", "permissions": { "allowedUsers": [ null ], "allowedGroups": [ null ] }, "duration": "string", "allowUserToResume": true }, "fanOut": { "loopThroughList": "string", "maximumParallelCount": 0 }, "continueOnFail": true, "timeout": 0, "retry": { "limit": 0, "retryPolicy": "OnFailure", "backoff": { "durationSeconds": 0, "factor": 0, "maxDurationSeconds": 0 }, "expression": "string", "configurationIds": [ "string" ] }, "dependencies": [ "string" ], "depends": "string" } ], "inputParameters": [ { "displayName": "string", "name": "string", "type": "Bool", "description": "string", "required": true, "acceptedValues": [ null ], "regexPattern": "string", "defaultValue": null, "metadata": {}, "isList": true, "minItems": 0, "maxItems": 0, "masked": true } ], "secrets": [ { "secretName": "string", "displayName": "string", "description": "string", "required": true } ], "outputParameters": [ { "displayName": "string", "name": "string", "type": "Bool", "description": "string" } ], "tags": [ "string" ], "metadata": {}, "systemMetadata": {}}

Update Pipeline template


Description: Updates a pipeline template information. Can only be called from the organization and an app Id the pipeline template belongs to.
Required Role: automation.apps_pipeline_templates.update
Authorizations
Client (Client)
HTTP: Client
HTTP Authorization Scheme: bearer
Required scopes: Client
ServiceAccount (ServiceAccount)
HTTP: ServiceAccount
To get started with authentication, visit the Service Account Authentication section.
HTTP Authorization Scheme: basic
Required scopes: ServiceAccount

Path parameters for "Update Pipeline template"

organizationId

string
required
The active organization Id

appId

string
required
app id

pipelineTemplateId

string
required
Pipeline template Id

Request body for "Update Pipeline template"

Media Type:
application/json

name

string
The pipeline template name.

description

string
The pipeline template description.

inputParameters

array[object]
A map of InputParameters for this pipeline template.

displayName

string
required
The display name of the parameter.

name

string
required
The name of the parameter.

type

string
required
Parameter type. Each value constrains what an input value must be:

Type

Accepted value

Bool
JSON boolean (
true
or
false
).
Int
JSON integer within the 32-bit signed range.
Float
JSON number with single precision. Integers are accepted.
String
JSON string, including one that holds a UUID or URL.
Url
Absolute
http
or
https
URL, as a string.
UUID
UUID, as a string (for example
3fa85f64-5717-4562-b3fc-2c963f66afa6
).
Text
,
Script
,
File
JSON string. The service applies no further checks.
A value can reference another value with
{{...}}
, for example
{{inputParameters.name}}
. For
Bool
,
Int
,
Float
and
UUID
the whole value must be the reference. For the other types the reference can sit inside a longer string. A value that holds a reference is not validated.
After the type check,
regexPattern
is matched against the value's string form and
acceptedValues
must contain the value. When
isList
is true the value is a JSON array, each item is checked as above, and
minItems
and
maxItems
bound the item count.

description

string
required
The description of the parameter.

required

boolean
required
Indicates if the parameter is mandatory.

acceptedValues

array[object]
A map of values accepted.

regexPattern

string
The validation regex used to validate the parameter.

defaultValue

Optional default value.

metadata

object
key map metadata

isList

boolean
Optional boolean indicating this input parameter takes a list as input

minItems

integer
Optional minimum number of items a list value must hold. Only allowed when Unity.Cloud.Automation.Models.Common.InputParameterDto.IsList is true. A value that references another parameter or a step output is not checked, since its list does not exist until the job runs.

maxItems

integer
Optional maximum number of items a list value may hold. Only allowed when Unity.Cloud.Automation.Models.Common.InputParameterDto.IsList is true, and must not be less than Unity.Cloud.Automation.Models.Common.InputParameterDto.MinItems. References are not checked, as for Unity.Cloud.Automation.Models.Common.InputParameterDto.MinItems.

masked

boolean
Whether the parameter value should be masked in all responses.

secrets

array[object]
List of secret definition.

secretName

string
required
Secret key

displayName

string
required
The display name of the Secret

description

string
required
Secret description

required

boolean
required
Secret user input

outputParameters

array[object]
A map of OutputParameters for this pipeline template.

displayName

string
required
The display name of the parameter.

name

string
required
The name of the parameter.

type

string
required
Parameter type. Each value constrains what an input value must be:

Type

Accepted value

Bool
JSON boolean (
true
or
false
).
Int
JSON integer within the 32-bit signed range.
Float
JSON number with single precision. Integers are accepted.
String
JSON string, including one that holds a UUID or URL.
Url
Absolute
http
or
https
URL, as a string.
UUID
UUID, as a string (for example
3fa85f64-5717-4562-b3fc-2c963f66afa6
).
Text
,
Script
,
File
JSON string. The service applies no further checks.
A value can reference another value with
{{...}}
, for example
{{inputParameters.name}}
. For
Bool
,
Int
,
Float
and
UUID
the whole value must be the reference. For the other types the reference can sit inside a longer string. A value that holds a reference is not validated.
After the type check,
regexPattern
is matched against the value's string form and
acceptedValues
must contain the value. When
isList
is true the value is a JSON array, each item is checked as above, and
minItems
and
maxItems
bound the item count.

description

string
required
The description of the parameter.

value

string
required
Value of the parameter.

tags

array[string]
List of tags.

steps

array[object]
A map of steps for this pipeline template. Each step must define one of: action, pipeline or suspend.

id

string
required
Identifier of the step.

name

string
required
The name of the step.

condition

string
The condition to execute the step.

action

object
The Action

actionId

string
required
Generated unique key from app + version + action name.

inputParameters

object
The input parameters of the action.

configurationId

string
The configuration to use to run the action.

secrets

object
List of the secrets values injected on the action.

storages

object
The action storages mapping.

pipeline

object
An object containing the parameters required to identify a pipeline, its version and input parameters.

id

string
required
The unique Id of the pipeline.

version

string
required
The version of the pipeline (format int.int.int[-rc.int] or int.int.int-sha.[7-14 chars] as a string).

inputParameters

object
The input parameters of the pipeline.

secrets

object
List of the secrets values injected on the pipeline.

storages

object
The pipeline storages mapping.

suspend

The suspend to execute in this step.
One of

fanOut

object
The Fan Out

loopThroughList

string
required
File containing the list of items to loop through.

maximumParallelCount

integer
required
The maximum number of parallel processing.

continueOnFail

boolean
Indicates if the pipeline should continue when this step fails. Only applies to steps that list this one in Dependencies: a step using Depends must define its states itself.

timeout

integer
Timeout value in seconds for this step. Can only be used with Action.

retry

object
The Retry Strategy of a step. Each attempt runs a new pod; the step timeout applies to each attempt, not to the step as a whole.

limit

integer
required
Maximum number of retries after the first attempt.

retryPolicy

string
Which kind of failure triggers a retry.

backoff

object
The delay between retry attempts.

durationSeconds

integer
required
Delay in seconds before the first retry.

factor

integer
Multiplier applied to the delay after each retry. 1 when omitted (constant delay).

maxDurationSeconds

integer
Upper bound in seconds for the delay between two attempts.

expression

string
Optional condition evaluated after each failed attempt; the step is retried only when it is true. It is checked in addition to Unity.Cloud.Automation.Models.Common.RetryStrategyDto.RetryPolicy, so an attempt the policy excludes is never retried. Uses Argo's expression syntax and can read the last attempt through
lastRetry.exitCode
,
lastRetry.status
,
lastRetry.duration
and
lastRetry.message
, e.g.
asInt(lastRetry.exitCode) == 137
. Values are strings, so convert them with
asInt
or
asFloat
before comparing numerically. Input parameters can be injected with
{{inputParameters.name}}
.

configurationIds

array[string]
Optional configuration profiles for the retries, in order: the first retry runs on the first profile, the second retry on the second, and the last one is reused for any further retry. The first attempt keeps the step's own profile. Meant to escalate memory on retry, so each profile may differ from the step's own profile only in CPU and memory; GPU, disk, tolerations, affinity and software must be the same. Each must be one of the action's configuration ids, and there cannot be more of them than Unity.Cloud.Automation.Models.Common.RetryStrategyDto.Limit. Each attempt is billed at its own profile.

dependencies

array[string]
A map of dependencies for this step. Cannot be used with Depends.

depends

string
An expression over the ids of this pipeline's steps, ex: (step1.Succeeded || step1.Skipped) Cannot be used with Dependencies. ContinueOnFail on a referenced step is not applied.

metadata

object
A map of objects containing arbitrary metadata to be attached to the pipeline template.

HTTP response status codes for "Update Pipeline template":

Code samples for "Update Pipeline template":

Request example

curl -X PATCH \ -H "Authorization: Bearer <YOUR_TOKEN>" \ -H "Authorization: Basic <YOUR_CREDENTIALS>" \ -H "Content-Type: application/json" \ -d '{ "name": "string", "description": "string", "inputParameters": [ { "displayName": "string", "name": "string", "type": "Bool", "description": "string", "required": true, "acceptedValues": [ null ], "regexPattern": "string", "defaultValue": null, "metadata": {}, "isList": true, "minItems": 0, "maxItems": 0, "masked": true } ], "secrets": [ { "secretName": "string", "displayName": "string", "description": "string", "required": true } ], "outputParameters": [ { "displayName": "string", "name": "string", "type": "Bool", "description": "string", "value": "string" } ], "tags": [ "string" ], "steps": [ { "id": "string", "name": "string", "condition": "string", "action": { "actionId": "string", "inputParameters": {}, "configurationId": "string", "secrets": {}, "storages": {} }, "pipeline": { "id": "string", "version": "string", "inputParameters": {}, "secrets": {}, "storages": {} }, "suspend": { "type": "string", "description": "string", "permissions": { "allowedUsers": [ null ], "allowedGroups": [ null ] }, "duration": "string", "allowUserToResume": true }, "fanOut": { "loopThroughList": "string", "maximumParallelCount": 0 }, "continueOnFail": true, "timeout": 0, "retry": { "limit": 0, "retryPolicy": "OnFailure", "backoff": { "durationSeconds": 0, "factor": 0, "maxDurationSeconds": 0 }, "expression": "string", "configurationIds": [ "string" ] }, "dependencies": [ "string" ], "depends": "string" } ], "metadata": {}}' \ "https://automation.services.api.unity.com/v1/organizations/{organizationId}/apps/{appId}/pipeline-templates/{pipelineTemplateId}"

Response example

{ "id": "string", "name": "string", "description": "string", "appId": "string", "steps": [ { "id": "string", "name": "string", "condition": "string", "action": { "actionId": "string", "inputParameters": {}, "configurationId": "string", "secrets": {}, "storages": {} }, "pipeline": { "id": "string", "version": "string", "inputParameters": {}, "secrets": {}, "storages": {} }, "suspend": { "type": "string", "description": "string", "permissions": { "allowedUsers": [ null ], "allowedGroups": [ null ] }, "duration": "string", "allowUserToResume": true }, "fanOut": { "loopThroughList": "string", "maximumParallelCount": 0 }, "continueOnFail": true, "timeout": 0, "retry": { "limit": 0, "retryPolicy": "OnFailure", "backoff": { "durationSeconds": 0, "factor": 0, "maxDurationSeconds": 0 }, "expression": "string", "configurationIds": [ "string" ] }, "dependencies": [ "string" ], "depends": "string" } ], "inputParameters": [ { "displayName": "string", "name": "string", "type": "Bool", "description": "string", "required": true, "acceptedValues": [ null ], "regexPattern": "string", "defaultValue": null, "metadata": {}, "isList": true, "minItems": 0, "maxItems": 0, "masked": true } ], "secrets": [ { "secretName": "string", "displayName": "string", "description": "string", "required": true } ], "outputParameters": [ { "displayName": "string", "name": "string", "type": "Bool", "description": "string" } ], "tags": [ "string" ], "metadata": {}, "systemMetadata": {}}

Delete Pipeline Template


Description: Deletes a pipeline template. Can only be called from the organization and an app Id the pipeline template belongs to.
Required Role: automation.apps_pipeline_templates.delete
Authorizations
Client (Client)
HTTP: Client
HTTP Authorization Scheme: bearer
Required scopes: Client
ServiceAccount (ServiceAccount)
HTTP: ServiceAccount
To get started with authentication, visit the Service Account Authentication section.
HTTP Authorization Scheme: basic
Required scopes: ServiceAccount

Path parameters for "Delete Pipeline Template"

organizationId

string
required
Organization Id

appId

string
required
app id

pipelineTemplateId

string
required
Pipeline template Id

HTTP response status codes for "Delete Pipeline Template":

Code samples for "Delete Pipeline Template":

Request example

curl -X DELETE \ -H "Authorization: Bearer <YOUR_TOKEN>" \ -H "Authorization: Basic <YOUR_CREDENTIALS>" \ "https://automation.services.api.unity.com/v1/organizations/{organizationId}/apps/{appId}/pipeline-templates/{pipelineTemplateId}"

Response example

{ "type": "string", "title": "string", "status": 0, "detail": "string", "instance": "string"}

Get all Pipeline templates and filter out by parameters.


Description: Get all pipeline templates filter out by parameters.
Required Role: automation.pipeline_templates.search
Authorizations
Client (Client)
HTTP: Client
HTTP Authorization Scheme: bearer
Required scopes: Client
ServiceAccount (ServiceAccount)
HTTP: ServiceAccount
To get started with authentication, visit the Service Account Authentication section.
HTTP Authorization Scheme: basic
Required scopes: ServiceAccount

Path parameters for "Get all Pipeline templates and filter out by parameters."

organizationId

string
required
The active organization Id

Query parameters for "Get all Pipeline templates and filter out by parameters."

appIds

array
list of app ids used to filter pipeline templates list

tags

array
list of tags used to filter pipeline templates list

metadata

array
list metadatas used to filter pipeline templates list

systemMetadata

array
list flags used to filter pipeline templates list

usedWith

array
list apps associated to this pipeline templates

offset

integer
int representing number of items to skip

limit

integer
int representing max returned items

HTTP response status codes for "Get all Pipeline templates and filter out by parameters.":

Code samples for "Get all Pipeline templates and filter out by parameters.":

Request example

curl -X GET \ -H "Authorization: Bearer <YOUR_TOKEN>" \ -H "Authorization: Basic <YOUR_CREDENTIALS>" \ "https://automation.services.api.unity.com/v1/organizations/{organizationId}/pipeline-templates"

Response example

{ "offset": 0, "limit": 0, "total": 0, "results": [ { "id": "string", "name": "string", "description": "string", "appId": "string", "steps": [ { "id": "string", "name": "string", "condition": "string", "action": { "actionId": null, "inputParameters": null, "configurationId": null, "secrets": null, "storages": null }, "pipeline": { "id": null, "version": null, "inputParameters": null, "secrets": null, "storages": null }, "suspend": { "type": null, "description": null, "permissions": null, "duration": null, "allowUserToResume": null }, "fanOut": { "loopThroughList": null, "maximumParallelCount": null }, "continueOnFail": true, "timeout": 0, "retry": { "limit": null, "retryPolicy": null, "backoff": null, "expression": null, "configurationIds": null }, "dependencies": [ null ], "depends": "string" } ], "inputParameters": [ { "displayName": "string", "name": "string", "type": "Bool", "description": "string", "required": true, "acceptedValues": [ null ], "regexPattern": "string", "defaultValue": null, "metadata": {}, "isList": true, "minItems": 0, "maxItems": 0, "masked": true } ], "secrets": [ { "secretName": "string", "displayName": "string", "description": "string", "required": true } ], "outputParameters": [ { "displayName": "string", "name": "string", "type": "Bool", "description": "string" } ], "tags": [ "string" ], "metadata": {}, "systemMetadata": {} } ]}

Get a specific Pipeline template.


Description: Get a specific pipeline template with a template Id.
Required Role: automation.pipeline_templates.read
Authorizations
Client (Client)
HTTP: Client
HTTP Authorization Scheme: bearer
Required scopes: Client
ServiceAccount (ServiceAccount)
HTTP: ServiceAccount
To get started with authentication, visit the Service Account Authentication section.
HTTP Authorization Scheme: basic
Required scopes: ServiceAccount

Path parameters for "Get a specific Pipeline template."

organizationId

string
required
The active organization Id

pipelineTemplateId

string
required
The pipeline template unique identifier

HTTP response status codes for "Get a specific Pipeline template.":

Code samples for "Get a specific Pipeline template.":

Request example

curl -X GET \ -H "Authorization: Bearer <YOUR_TOKEN>" \ -H "Authorization: Basic <YOUR_CREDENTIALS>" \ "https://automation.services.api.unity.com/v1/organizations/{organizationId}/pipeline-templates/{pipelineTemplateId}"

Response example

{ "id": "string", "name": "string", "description": "string", "appId": "string", "steps": [ { "id": "string", "name": "string", "condition": "string", "action": { "actionId": "string", "inputParameters": {}, "configurationId": "string", "secrets": {}, "storages": {} }, "pipeline": { "id": "string", "version": "string", "inputParameters": {}, "secrets": {}, "storages": {} }, "suspend": { "type": "string", "description": "string", "permissions": { "allowedUsers": [ null ], "allowedGroups": [ null ] }, "duration": "string", "allowUserToResume": true }, "fanOut": { "loopThroughList": "string", "maximumParallelCount": 0 }, "continueOnFail": true, "timeout": 0, "retry": { "limit": 0, "retryPolicy": "OnFailure", "backoff": { "durationSeconds": 0, "factor": 0, "maxDurationSeconds": 0 }, "expression": "string", "configurationIds": [ "string" ] }, "dependencies": [ "string" ], "depends": "string" } ], "inputParameters": [ { "displayName": "string", "name": "string", "type": "Bool", "description": "string", "required": true, "acceptedValues": [ null ], "regexPattern": "string", "defaultValue": null, "metadata": {}, "isList": true, "minItems": 0, "maxItems": 0, "masked": true } ], "secrets": [ { "secretName": "string", "displayName": "string", "description": "string", "required": true } ], "outputParameters": [ { "displayName": "string", "name": "string", "type": "Bool", "description": "string" } ], "tags": [ "string" ], "metadata": {}, "systemMetadata": {}}

Send commands to a running Project Service instance


Description: Sends one or more commands to the ps-core instance in the specified namespace.
Temporary — will be removed once the real Pipeline Broker service is available.
Authorizations
Client (Client)
HTTP: Client
HTTP Authorization Scheme: bearer
Required scopes: Client
ServiceAccount (ServiceAccount)
HTTP: ServiceAccount
To get started with authentication, visit the Service Account Authentication section.
HTTP Authorization Scheme: basic
Required scopes: ServiceAccount

Path parameters for "Send commands to a running Project Service instance"

organizationId

string
required
Organization Id

projectId

string
required
Project Id

Request body for "Send commands to a running Project Service instance"

Media Type:
application/json

namespace

string
required
The ps-core namespace to target (e.g. the value used as the Kubernetes namespace).

commands

array[string]
required
Commands to dispatch to ps-core, each formatted as
command:<name>;arg:<value>
. Supported commands: preview, import, createworkbench, createenvironment, editorstart, job, environments, workbenches, workbenchhead, projects. The revision-scoped commands (preview, import, editorstart) need an exact numeric changeset id;
workbenchhead
is what reports it.

headers

object
Optional map of HTTP headers to attach to every downstream request sent to ps-core (e.g.
X-Plastic-Authorization
). Headers travel in the request body rather than as HTTP headers so intermediary gateways cannot strip them.

HTTP response status codes for "Send commands to a running Project Service instance":

Code samples for "Send commands to a running Project Service instance":

Request example

curl -X POST \ -H "Authorization: Bearer <YOUR_TOKEN>" \ -H "Authorization: Basic <YOUR_CREDENTIALS>" \ -H "Content-Type: application/json" \ -d '{ "namespace": "string", "commands": [ "string" ], "headers": {}}' \ "https://automation.services.api.unity.com/v1/organizations/{organizationId}/projects/{projectId}/projectservice/send-command"

Response example

{ "results": [ { "command": "string", "isSuccess": true, "message": "string" } ]}

Create a worker


Description: Create a worker.
Required Role: Automation Admin Access
Answers 202: acceptance means the worker's job was created and queued, not that the worker is serving — callers discover that from the worker itself.
Authorizations
Client (Client)
HTTP: Client
HTTP Authorization Scheme: bearer
Required scopes: Client
ServiceAccount (ServiceAccount)
HTTP: ServiceAccount
To get started with authentication, visit the Service Account Authentication section.
HTTP Authorization Scheme: basic
Required scopes: ServiceAccount

Path parameters for "Create a worker"

organizationId

string
required
organization Id

projectId

string
required
Project Id

Request body for "Create a worker"

Media Type:
application/json

projectServiceNamespace

string
required
The project service namespace. Used to form the Kubernetes namespace
ps-{ProjectServiceNamespace}
, which must be a valid RFC 1123 label (lowercase alphanumeric + '-', starting and ending with alphanumeric, total ≤63 chars). Reserving 3 chars for the
ps-
prefix leaves 60 chars for the user-supplied value.

workerPipelineId

string
Optional, override the default pipeline id to run. Typed as a string rather than
Guid?
so a cleared field (empty or whitespace) can be sent without
System.Text.Json
rejecting it at deserialization — the request-model validator never sees a JSON error. A blank value falls back to the configured default; any other value must be a Guid in the standard 8-4-4-4-12 hex format, otherwise the request is rejected with 400.

workerPipelineVersion

string
Optional, override the default pipeline version (format int.int.int[-rc.int] or int.int.int-sha.[7-14 chars] as a string).

editorVersion

string
The editor version associated with the worker.

editorSubVersion

string
The editor sub version associated with the worker.

targetPlatform

string
The target platform for the worker.

workerId

string
Optional caller-supplied worker identifier (e.g. Project Service's own worker name). Stamped on the job as system metadata so the caller can correlate its own worker record with the UPA job; the automation service does not interpret it. When omitted, only the returned Unity.Cloud.Automation.Models.ProjectService.WorkerDto.JobId correlates the two.

apiEndpoint

string
Optional. The Project Service WebSocket address the worker must dial back to, forwarded to the worker pipeline unmodified as the
apiEndpoint
input so the pipeline can set it as the worker's PS endpoint. The worker appends its own path and query, so the value is passed through exactly as supplied. When omitted, no endpoint is forwarded and the worker takes whatever its image is configured with.

ottoVersion

string
Optional exact version of the Project Service bootstrap tool to fetch for this launch, bypassing the pointer lookup — set it to pin or roll back a single worker. The version is always passed explicitly to
dotnet tool install
, whether pinned here or resolved from the pointer: SemVer orders the
-g{shortsha}
prerelease suffixes alphabetically, so the feed's notion of "latest" is meaningless. When omitted the
artifactory-init
container resolves the version from the repository's pointer file, which is how every launch behaves by default.

HTTP response status codes for "Create a worker":

Code samples for "Create a worker":

Request example

curl -X POST \ -H "Authorization: Bearer <YOUR_TOKEN>" \ -H "Authorization: Basic <YOUR_CREDENTIALS>" \ -H "Content-Type: application/json" \ -d '{ "projectServiceNamespace": "string", "workerPipelineId": "string", "workerPipelineVersion": "string", "editorVersion": "string", "editorSubVersion": "string", "targetPlatform": "string", "workerId": "string", "apiEndpoint": "string", "ottoVersion": "string"}' \ "https://automation.services.api.unity.com/v1/organizations/{organizationId}/projects/{projectId}/worker/start"

Response example

{ "type": "string", "title": "string", "status": 0, "detail": "string", "instance": "string"}

Stop a project service


Description: Stop a Project Service instance, addressed by its namespace rather than by a job id — projectservice/start returns no job id, and at most one instance is live per namespace.
Cascades to the workers linked to the instance before stopping it; an instance that already reached a terminal state reports that state.
Required Role: Automation Admin Access
Authorizations
Client (Client)
HTTP: Client
HTTP Authorization Scheme: bearer
Required scopes: Client
ServiceAccount (ServiceAccount)
HTTP: ServiceAccount
To get started with authentication, visit the Service Account Authentication section.
HTTP Authorization Scheme: basic
Required scopes: ServiceAccount

Path parameters for "Stop a project service"

organizationId

string
required
organization Id

projectId

string
required
Project Id

namespaceName

string
required
The project service namespace (same value supplied to projectservice/start)

HTTP response status codes for "Stop a project service":

Code samples for "Stop a project service":

Request example

curl -X PUT \ -H "Authorization: Bearer <YOUR_TOKEN>" \ -H "Authorization: Basic <YOUR_CREDENTIALS>" \ "https://automation.services.api.unity.com/v1/organizations/{organizationId}/projects/{projectId}/projectservice/{namespaceName}/stop"

Response example

{ "jobId": "string", "jobStatus": "Queued", "workers": [ { "jobId": "string", "jobStatus": "Queued", "error": "string" } ]}

Stop a worker


Description: Stop a worker, addressed by the job id returned by worker/start.
Terminates the worker's job; a worker that already reached a terminal state reports that state.
Required Role: Automation Admin Access
Authorizations
Client (Client)
HTTP: Client
HTTP Authorization Scheme: bearer
Required scopes: Client
ServiceAccount (ServiceAccount)
HTTP: ServiceAccount
To get started with authentication, visit the Service Account Authentication section.
HTTP Authorization Scheme: basic
Required scopes: ServiceAccount

Path parameters for "Stop a worker"

organizationId

string
required
organization Id

projectId

string
required
Project Id

jobId

string
required
The job id returned when the worker was created

HTTP response status codes for "Stop a worker":

Code samples for "Stop a worker":

Request example

curl -X PUT \ -H "Authorization: Bearer <YOUR_TOKEN>" \ -H "Authorization: Basic <YOUR_CREDENTIALS>" \ "https://automation.services.api.unity.com/v1/organizations/{organizationId}/projects/{projectId}/worker/{jobId}/stop"

Response example

{ "status": "Queued"}