Projects

Projects APIs form the foundation of Tray's comprehensive suite of endpoints designed to automate Software Development Life Cycle (SDLC) processes and facilitate environment promotion through a robust export-import mechanism. These APIs are particularly valuable for organizations implementing automated CI/CD pipelines for their projects.

The suite enables programmatic management of project versions, allowing teams to create, export, and import project states across different environments (from development to production).

This suite empowers teams implementing automated deployment pipelines by enabling:

  • Automated environment promotion processes
  • Consistent deployment procedures across environments
  • Pre-deployment impact analysis
  • Controlled rollback capabilities
  • Configuration and dependency management across environments

The Project endpoints provide essential functionality across four key areas:

  • Version Control: Create and list project versions to maintain a history of project states
  • Environment Promotion: Export project versions from one environment and import them into another
  • Pre-deployment Validation: Analyze requirements and preview changes before performing imports
  • Dependency Management: Handle configuration mappings, authentications, and service connections during imports

Environment Promotion Overview

A typical environment promotion pipeline using these APIs follows these steps:

  1. After completing development, create a project version in the source environment using the Create Project Version endpoint. This saves the current state of your integration.

  2. Use the List Project Versions API to retrieve available versions and compare them if needed (similar to git diff functionality).

  3. Once you've identified the desired version for promotion, use the Export Project from Version API to obtain the project version as JSON.

  4. Before importing to the target environment:

    • Use the Get Import Requirements API to identify necessary authentication and configuration mappings, to make sure all required mappings are available in your pipeline
    • Use the Get Import Preview API to understand the impact of the import (optional but recommended, especially for embedded integrations as potential breaking changes will be highlighted at this step)
  5. Import the project into the target environment using the Import Project API, providing the required environmental mappings (such as different authentications, custom services and connectors mappings or config values for the target environment).

  6. After import, save a new version in the target environment (using Create Project Version API), ideally maintaining version number consistency with the source environment.

For embedded integrations, additional solution management steps are required after the project promotion process (please see the Solutions APIs documentation).

  1. Use the Get Publish Preview API to validate the impact of publishing the updated solution (e.g. expected breaking changes)

  2. Use the Publish Solution API to propagate changes to solution instances.

Platform deployment:

  • Project import completes the promotion process

Embedded deployment:

  • Project import updates the draft solution
  • Publishing solution required to apply changes to existing solution instances
  • May require manual solution instance upgrades in case of breaking changes

Create project version

post/core/v1/projects/{projectId}/versions/{versionNumber}

Save a specific state of the project as version so that it can be later retrieved for release (or rollback)

SecuritybearerAuth
Request
path Parameters
projectId
required
string <uuid>

ID of the project

versionNumber
required
string <string>

Version number of the project version

Request Body schema: application/json
title
required
string

Title of the project version that is going to be created

description
string

Description of the project version that is going to be created

Responses
201

success

Response Schema: application/json
projectId
required
string <uuid>

ID of the project

versionNumber
required
string

Version number of the project version

title
required
string

Title of the project version

description
required
string

Description of the project version

created
required
string <date-time>

Date and time when the project version was created ( example 2024-05-25T18:56:09Z )

creator
required
string

ID of the user who created the project version

400

Invalid Input

401

Unauthorized

403

Forbidden

404

Not Found

429

Limit exceeded

500

Internal Error

Request samples
application/json
{
  • "title": "string",
  • "description": "string"
}
Response samples
application/json
{
  • "projectId": "5a8591dd-4039-49df-9202-96385ba3eff8",
  • "versionNumber": "string",
  • "title": "string",
  • "description": "string",
  • "created": "2019-08-24T14:15:22Z",
  • "creator": "string"
}

List project versions

get/core/v1/projects/{projectId}/versions

Retrieve a list of saved versions of the project

SecuritybearerAuth
Request
path Parameters
projectId
required
string <uuid>

ID of the project

query Parameters
first
integer <int32>

The page size, in a forwards direction, with a maximum of 1000. Default direction if last not defined

last
integer <int32>

The page size, in a backwards direction, with a maximum of 1000.

cursor
string

The cursor token for page starting point

Responses
200

success

Response Schema: application/json
required
Array of objects (ProjectVersionResponse)

List of project versions, based on request criteria

required
object (PageInfoResponse)

Information about the current page. Allows to navigate through the paginated results.

400

Invalid Input

401

Unauthorized

403

Forbidden

404

Not Found

429

Limit exceeded

500

Internal Error

Request samples
Response samples
application/json
{
  • "elements": [
    • {
      • "projectId": "5a8591dd-4039-49df-9202-96385ba3eff8",
      • "versionNumber": "string",
      • "title": "string",
      • "description": "string",
      • "created": "2019-08-24T14:15:22Z",
      • "creator": "string"
      }
    ],
  • "pageInfo": {
    • "startCursor": "string",
    • "endCursor": "string",
    • "hasNextPage": true,
    • "hasPreviousPage": true
    }
}

Export project from version

get/core/v1/projects/{projectId}/versions/{versionNumber}/export

Retrieve a specific project version JSON

SecuritybearerAuth
Request
path Parameters
projectId
required
string <uuid>

ID of the project

versionNumber
required
string <string>

Version number of the project version

Responses
200

Json document containing project export

400

Invalid Input

401

Unauthorized

403

Forbidden

404

Not Found

429

Limit exceeded

500

Internal Error

Request samples
Response samples
application/json
{
  • "message": "string",
  • "code": "string"
}

Get import requirements

post/core/v1/projects/{projectId}/imports/requirements

Returns information describing required authentications and config mappings needed to complete an import

SecuritybearerAuth
Request
path Parameters
projectId
required
string <uuid>

ID of the destination project

Request Body schema: application/json
exportedProjectJson
required
object

A json document representing the exported project

required
Array of objects (importexport.ConnectorMappingInput)

Mapping of connectors that should be used during the project import. Allows to map connectors from the exported project to the connectors in the target project.

required
Array of objects (importexport.ServiceMappingInput)

Mapping of services that should be used during the project import. Allows to map services from the exported project to the services in the target project.

Responses
200

success

Response Schema: application/json
unresolvedAuthentications
required
boolean

Whether there are unresolved authentications

newConfigKeys
required
boolean

Whether there are new config keys

required
object (importexport.ConfigSpecificationView)

Exported project configuration and current target project configurations

required
Array of objects (importexport.AuthenticationRequirementView)

List of requirements for authentications required by the project import

400

Invalid Input

401

Unauthorized

403

Forbidden

404

Not Found

429

Limit exceeded

500

Internal Error

Request samples
application/json
{
  • "exportedProjectJson": { },
  • "connectorMapping": [
    • {
      • "from": {
        • "name": "string",
        • "version": "string"
        },
      • "to": {
        • "name": "string",
        • "version": "string"
        }
      }
    ],
  • "serviceMapping": [
    • {
      • "from": {
        • "name": "string",
        • "version": "string"
        },
      • "to": {
        • "name": "string",
        • "version": "string"
        }
      }
    ]
}
Response samples
application/json
{
  • "unresolvedAuthentications": true,
  • "newConfigKeys": true,
  • "config": {
    • "source": { },
    • "target": { }
    },
  • "authenticationsRequirements": [
    • {
      • "authExportId": "string",
      • "title": "string",
      • "service": {
        • "name": "string",
        • "version": "string"
        },
      • "scopes": [
        • "string"
        ],
      • "resolvedAuthentication": {
        • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
        • "title": "string",
        • "service": {
          • "name": "string",
          • "version": "string"
          },
        • "serviceEnvironment": {
          • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
          },
        • "scopes": [
          • "string"
          ]
        }
      }
    ]
}

Get import preview

post/core/v1/projects/{projectId}/imports/previews

Returns potential changes and impacts on the project and the solution (if applicable) if the import is applied.

SecuritybearerAuth
Request
path Parameters
projectId
required
string <uuid>

ID of the destination project for which the import preview should be returned

Request Body schema: application/json
required
Array of objects (importexport.AuthImportInput)

Mapping of exported authentications to the authentications available for the target project

configOverride
object

A JSON object that should override existing project configuration. The object must contain the same set of keys and types of values as the exported project configuration. Only config values are allowed to be overriden.

exportedProjectJson
required
object

A json document representing the exported project

required
Array of objects (importexport.ConnectorMappingInput)

Mapping of connectors that should be used during the project import. Allows to map connectors from the exported project to the connectors in the target project.

required
Array of objects (importexport.ServiceMappingInput)

Mapping of services that should be used during the project import. Allows to map services from the exported project to the services in the target project.

Responses
200

success

Response Schema: application/json
required
object (importexport.ImportMetadataView)

Metadata of the import

required
object (importexport.ProjectImportImpactViewForPreview)

Preview of an impact of the import on the project

object (importexport.SolutionImportImpactViewForPreview)

Preview of an impact of the import on the solution (present only if importing a project with embedded solution)

400

Invalid Input

401

Unauthorized

403

Forbidden

404

Not Found

429

Limit exceeded

500

Internal Error

Request samples
application/json
{
  • "authenticationResolution": [
    • {
      • "authExportId": "string",
      • "authenticationId": "c97ede01-dc79-4cb7-8ae8-9e2457649b27"
      }
    ],
  • "configOverride": { },
  • "exportedProjectJson": { },
  • "connectorMapping": [
    • {
      • "from": {
        • "name": "string",
        • "version": "string"
        },
      • "to": {
        • "name": "string",
        • "version": "string"
        }
      }
    ],
  • "serviceMapping": [
    • {
      • "from": {
        • "name": "string",
        • "version": "string"
        },
      • "to": {
        • "name": "string",
        • "version": "string"
        }
      }
    ]
}
Response samples
application/json
{
  • "importMetadata": {
    • "importedFrom": {
      • "projectId": "5a8591dd-4039-49df-9202-96385ba3eff8",
      • "projectVersion": "string",
      • "projectName": "string"
      },
    • "projectId": "5a8591dd-4039-49df-9202-96385ba3eff8",
    • "projectName": "string"
    },
  • "projectImpact": {
    • "config": {
      • "created": [
        • {
          • "key": "string",
          • "value": "string"
          }
        ],
      • "updated": [
        • {
          • "key": "string",
          • "oldValue": "string",
          • "newValue": "string"
          }
        ],
      • "removed": [
        • {
          • "key": "string",
          • "value": "string"
          }
        ]
      },
    • "workflows": {
      • "created": [
        • {
          • "name": "string",
          • "importedFromId": "6c356389-3f92-480f-bdcc-4698670dd603"
          }
        ],
      • "updated": [
        • {
          • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
          • "name": "string",
          • "importedFromId": "6c356389-3f92-480f-bdcc-4698670dd603"
          }
        ],
      • "removed": [
        • {
          • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
          • "name": "string"
          }
        ]
      }
    },
  • "solutionImpact": {
    • "changeType": "Created",
    • "breakingChanges": true,
    • "requiresNewUserInput": true,
    • "requiresNewSystemInput": true,
    • "authSlots": {
      • "created": [
        • {
          • "authenticationId": "c97ede01-dc79-4cb7-8ae8-9e2457649b27",
          • "title": "string",
          • "description": "string",
          • "serviceId": "8f8bb40f-b96b-40fe-9064-5031fbe483f9",
          • "serviceEnvironmentId": "a6e07c5a-ab15-47f2-8575-5bb51b45c412",
          • "scopes": [
            • "string"
            ],
          • "externalId": "string",
          • "static": true,
          • "hidden": true,
          • "skipCTA": true,
          • "requireUnique": true,
          • "hasBreakingChange": true,
          • "changes": [
            • {
              • "message": "string",
              • "code": "CreatedMandatorySlot",
              • "breakingChange": true
              }
            ],
          • "recreated": true,
          • "slotRecreationReasons": [
            • {
              • "code": "AuthenticationIdChanged",
              • "message": "string"
              }
            ],
          • "recreatedFromSlotId": "8a240360-7587-4734-bdc5-74d5f0cc6e8c"
          }
        ],
      • "updated": [
        • {
          • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
          • "title": "string",
          • "description": "string",
          • "authenticationId": "c97ede01-dc79-4cb7-8ae8-9e2457649b27",
          • "serviceId": "8f8bb40f-b96b-40fe-9064-5031fbe483f9",
          • "serviceEnvironmentId": "a6e07c5a-ab15-47f2-8575-5bb51b45c412",
          • "scopes": [
            • "string"
            ],
          • "externalId": "string",
          • "static": true,
          • "hidden": true,
          • "skipCTA": true,
          • "requireUnique": true,
          • "hasBreakingChange": true,
          • "changes": [
            • {
              • "message": "string",
              • "code": "CreatedMandatorySlot",
              • "breakingChange": true
              }
            ],
          • "previously": {
            • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
            • "title": "string",
            • "description": "string",
            • "authenticationId": "c97ede01-dc79-4cb7-8ae8-9e2457649b27",
            • "serviceId": "8f8bb40f-b96b-40fe-9064-5031fbe483f9",
            • "serviceEnvironmentId": "a6e07c5a-ab15-47f2-8575-5bb51b45c412",
            • "scopes": [
              • "string"
              ],
            • "externalId": "string",
            • "static": true,
            • "hidden": true,
            • "skipCTA": true,
            • "requireUnique": true
            }
          }
        ],
      • "removed": [
        • {
          • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
          • "title": "string",
          • "description": "string",
          • "authenticationId": "c97ede01-dc79-4cb7-8ae8-9e2457649b27",
          • "serviceId": "8f8bb40f-b96b-40fe-9064-5031fbe483f9",
          • "serviceEnvironmentId": "a6e07c5a-ab15-47f2-8575-5bb51b45c412",
          • "scopes": [
            • "string"
            ],
          • "externalId": "string",
          • "static": true,
          • "hidden": true,
          • "skipCTA": true,
          • "requireUnique": true
          }
        ]
      },
    • "configSlots": {
      • "created": [
        • {
          • "key": "string",
          • "title": "string",
          • "description": "string",
          • "externalId": "string",
          • "valueType": "string",
          • "ddl": true,
          • "ddlConfiguration": {
            • "allowSetCustomValue": true
            },
          • "required": true,
          • "useDefaultValue": true,
          • "defaultValue": "string",
          • "referencedAuthSlotId": "f5f8ae2d-fc82-4ec7-b1c9-f37f031f3d33",
          • "static": true,
          • "hidden": true,
          • "hasCustomJs": true,
          • "hasDataMapping": true,
          • "disabledResetType": true,
          • "hasBreakingChange": true,
          • "changes": [
            • {
              • "message": "string",
              • "code": "CreatedMandatorySlot",
              • "breakingChange": true
              }
            ],
          • "recreated": true,
          • "slotRecreationReasons": [
            • {
              • "code": "ConfigVariableKeyChanged",
              • "message": "string"
              }
            ],
          • "recreatedFromSlotId": "8a240360-7587-4734-bdc5-74d5f0cc6e8c"
          }
        ],
      • "updated": [
        • {
          • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
          • "key": "string",
          • "title": "string",
          • "description": "string",
          • "externalId": "string",
          • "valueType": "string",
          • "ddl": true,
          • "ddlConfiguration": {
            • "allowSetCustomValue": true
            },
          • "required": true,
          • "useDefaultValue": true,
          • "defaultValue": "string",
          • "referencedAuthSlotId": "f5f8ae2d-fc82-4ec7-b1c9-f37f031f3d33",
          • "static": true,
          • "hidden": true,
          • "hasCustomJs": true,
          • "hasDataMapping": true,
          • "disabledResetType": true,
          • "hasBreakingChange": true,
          • "changes": [
            • {
              • "message": "string",
              • "code": "CreatedMandatorySlot",
              • "breakingChange": true
              }
            ],
          • "previously": {
            • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
            • "key": "string",
            • "title": "string",
            • "description": "string",
            • "externalId": "string",
            • "valueType": "string",
            • "ddl": true,
            • "ddlConfiguration": {
              • "allowSetCustomValue": true
              },
            • "required": true,
            • "useDefaultValue": true,
            • "defaultValue": "string",
            • "referencedAuthSlotId": "f5f8ae2d-fc82-4ec7-b1c9-f37f031f3d33",
            • "static": true,
            • "hidden": true,
            • "hasCustomJs": true,
            • "hasDataMapping": true,
            • "disabledResetType": true
            }
          }
        ],
      • "removed": [
        • {
          • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
          • "key": "string",
          • "title": "string",
          • "description": "string",
          • "externalId": "string",
          • "valueType": "string",
          • "ddl": true,
          • "ddlConfiguration": {
            • "allowSetCustomValue": true
            },
          • "required": true,
          • "useDefaultValue": true,
          • "defaultValue": "string",
          • "referencedAuthSlotId": "f5f8ae2d-fc82-4ec7-b1c9-f37f031f3d33",
          • "static": true,
          • "hidden": true,
          • "hasCustomJs": true,
          • "hasDataMapping": true,
          • "disabledResetType": true
          }
        ]
      }
    }
}

Import project

post/core/v1/projects/{projectId}/imports

Import project with desired dependencies mappings (config, authentication, services, connectors can be specified)

SecuritybearerAuth
Request
path Parameters
projectId
required
string <uuid>

ID of the destination project

Request Body schema: application/json
required
Array of objects (importexport.AuthImportInput)

Mapping of exported authentications to the authentications available for the target project

configOverride
object

A JSON object that should override existing project configuration. The object must contain the same set of keys and types of values as the exported project configuration. Only config values are allowed to be overriden.

exportedProjectJson
required
object

A json document representing the exported project

required
Array of objects (importexport.ConnectorMappingInput)

Mapping of connectors that should be used during the project import. Allows to map connectors from the exported project to the connectors in the target project.

required
Array of objects (importexport.ServiceMappingInput)

Mapping of services that should be used during the project import. Allows to map services from the exported project to the services in the target project.

Responses
200

success

Response Schema: application/json
required
object (importexport.ImportMetadataView)

Metadata of the import

required
object (importexport.ProjectImportImpactView)

Impact of the import on the project

object (importexport.SolutionImportImpactView)

Impact of the import on the solution (present only if importing a project with embedded solution)

400

Invalid Input

401

Unauthorized

403

Forbidden

404

Not Found

429

Limit exceeded

500

Internal Error

Request samples
application/json
{
  • "authenticationResolution": [
    • {
      • "authExportId": "string",
      • "authenticationId": "c97ede01-dc79-4cb7-8ae8-9e2457649b27"
      }
    ],
  • "configOverride": { },
  • "exportedProjectJson": { },
  • "connectorMapping": [
    • {
      • "from": {
        • "name": "string",
        • "version": "string"
        },
      • "to": {
        • "name": "string",
        • "version": "string"
        }
      }
    ],
  • "serviceMapping": [
    • {
      • "from": {
        • "name": "string",
        • "version": "string"
        },
      • "to": {
        • "name": "string",
        • "version": "string"
        }
      }
    ]
}
Response samples
application/json
{
  • "importMetadata": {
    • "importedFrom": {
      • "projectId": "5a8591dd-4039-49df-9202-96385ba3eff8",
      • "projectVersion": "string",
      • "projectName": "string"
      },
    • "projectId": "5a8591dd-4039-49df-9202-96385ba3eff8",
    • "projectName": "string"
    },
  • "projectImpact": {
    • "config": {
      • "created": [
        • {
          • "key": "string",
          • "value": "string"
          }
        ],
      • "updated": [
        • {
          • "key": "string",
          • "oldValue": "string",
          • "newValue": "string"
          }
        ],
      • "removed": [
        • {
          • "key": "string",
          • "value": "string"
          }
        ]
      },
    • "workflows": {
      • "created": [
        • {
          • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
          • "name": "string",
          • "importedFromId": "6c356389-3f92-480f-bdcc-4698670dd603"
          }
        ],
      • "updated": [
        • {
          • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
          • "name": "string",
          • "importedFromId": "6c356389-3f92-480f-bdcc-4698670dd603"
          }
        ],
      • "removed": [
        • {
          • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
          • "name": "string"
          }
        ]
      }
    },
  • "solutionImpact": {
    • "solutionId": "9ff66092-33fb-498c-8123-e85aa68facfe",
    • "changeType": "Created",
    • "breakingChanges": true,
    • "requiresNewUserInput": true,
    • "requiresNewSystemInput": true,
    • "authSlots": {
      • "created": [
        • {
          • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
          • "authenticationId": "c97ede01-dc79-4cb7-8ae8-9e2457649b27",
          • "title": "string",
          • "description": "string",
          • "serviceId": "8f8bb40f-b96b-40fe-9064-5031fbe483f9",
          • "serviceEnvironmentId": "a6e07c5a-ab15-47f2-8575-5bb51b45c412",
          • "scopes": [
            • "string"
            ],
          • "externalId": "string",
          • "static": true,
          • "hidden": true,
          • "skipCTA": true,
          • "requireUnique": true,
          • "hasBreakingChange": true,
          • "changes": [
            • {
              • "message": "string",
              • "code": "CreatedMandatorySlot",
              • "breakingChange": true
              }
            ],
          • "recreated": true,
          • "slotRecreationReasons": [
            • {
              • "code": "AuthenticationIdChanged",
              • "message": "string"
              }
            ],
          • "recreatedFromSlotId": "8a240360-7587-4734-bdc5-74d5f0cc6e8c"
          }
        ],
      • "updated": [
        • {
          • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
          • "title": "string",
          • "description": "string",
          • "authenticationId": "c97ede01-dc79-4cb7-8ae8-9e2457649b27",
          • "serviceId": "8f8bb40f-b96b-40fe-9064-5031fbe483f9",
          • "serviceEnvironmentId": "a6e07c5a-ab15-47f2-8575-5bb51b45c412",
          • "scopes": [
            • "string"
            ],
          • "externalId": "string",
          • "static": true,
          • "hidden": true,
          • "skipCTA": true,
          • "requireUnique": true,
          • "hasBreakingChange": true,
          • "changes": [
            • {
              • "message": "string",
              • "code": "CreatedMandatorySlot",
              • "breakingChange": true
              }
            ],
          • "previously": {
            • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
            • "title": "string",
            • "description": "string",
            • "authenticationId": "c97ede01-dc79-4cb7-8ae8-9e2457649b27",
            • "serviceId": "8f8bb40f-b96b-40fe-9064-5031fbe483f9",
            • "serviceEnvironmentId": "a6e07c5a-ab15-47f2-8575-5bb51b45c412",
            • "scopes": [
              • "string"
              ],
            • "externalId": "string",
            • "static": true,
            • "hidden": true,
            • "skipCTA": true,
            • "requireUnique": true
            }
          }
        ],
      • "removed": [
        • {
          • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
          • "title": "string",
          • "description": "string",
          • "authenticationId": "c97ede01-dc79-4cb7-8ae8-9e2457649b27",
          • "serviceId": "8f8bb40f-b96b-40fe-9064-5031fbe483f9",
          • "serviceEnvironmentId": "a6e07c5a-ab15-47f2-8575-5bb51b45c412",
          • "scopes": [
            • "string"
            ],
          • "externalId": "string",
          • "static": true,
          • "hidden": true,
          • "skipCTA": true,
          • "requireUnique": true
          }
        ]
      },
    • "configSlots": {
      • "created": [
        • {
          • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
          • "key": "string",
          • "title": "string",
          • "description": "string",
          • "externalId": "string",
          • "valueType": "string",
          • "ddl": true,
          • "ddlConfiguration": {
            • "allowSetCustomValue": true
            },
          • "required": true,
          • "useDefaultValue": true,
          • "defaultValue": "string",
          • "referencedAuthSlotId": "f5f8ae2d-fc82-4ec7-b1c9-f37f031f3d33",
          • "static": true,
          • "hidden": true,
          • "hasCustomJs": true,
          • "hasDataMapping": true,
          • "disabledResetType": true,
          • "hasBreakingChange": true,
          • "changes": [
            • {
              • "message": "string",
              • "code": "CreatedMandatorySlot",
              • "breakingChange": true
              }
            ],
          • "recreated": true,
          • "slotRecreationReasons": [
            • {
              • "code": "ConfigVariableKeyChanged",
              • "message": "string"
              }
            ],
          • "recreatedFromSlotId": "8a240360-7587-4734-bdc5-74d5f0cc6e8c"
          }
        ],
      • "updated": [
        • {
          • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
          • "key": "string",
          • "title": "string",
          • "description": "string",
          • "externalId": "string",
          • "valueType": "string",
          • "ddl": true,
          • "ddlConfiguration": {
            • "allowSetCustomValue": true
            },
          • "required": true,
          • "useDefaultValue": true,
          • "defaultValue": "string",
          • "referencedAuthSlotId": "f5f8ae2d-fc82-4ec7-b1c9-f37f031f3d33",
          • "static": true,
          • "hidden": true,
          • "hasCustomJs": true,
          • "hasDataMapping": true,
          • "disabledResetType": true,
          • "hasBreakingChange": true,
          • "changes": [
            • {
              • "message": "string",
              • "code": "CreatedMandatorySlot",
              • "breakingChange": true
              }
            ],
          • "previously": {
            • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
            • "key": "string",
            • "title": "string",
            • "description": "string",
            • "externalId": "string",
            • "valueType": "string",
            • "ddl": true,
            • "ddlConfiguration": {
              • "allowSetCustomValue": true
              },
            • "required": true,
            • "useDefaultValue": true,
            • "defaultValue": "string",
            • "referencedAuthSlotId": "f5f8ae2d-fc82-4ec7-b1c9-f37f031f3d33",
            • "static": true,
            • "hidden": true,
            • "hasCustomJs": true,
            • "hasDataMapping": true,
            • "disabledResetType": true
            }
          }
        ],
      • "removed": [
        • {
          • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
          • "key": "string",
          • "title": "string",
          • "description": "string",
          • "externalId": "string",
          • "valueType": "string",
          • "ddl": true,
          • "ddlConfiguration": {
            • "allowSetCustomValue": true
            },
          • "required": true,
          • "useDefaultValue": true,
          • "defaultValue": "string",
          • "referencedAuthSlotId": "f5f8ae2d-fc82-4ec7-b1c9-f37f031f3d33",
          • "static": true,
          • "hidden": true,
          • "hasCustomJs": true,
          • "hasDataMapping": true,
          • "disabledResetType": true
          }
        ]
      }
    }
}