Table of contents
Transformations
Download API definition:
GET https://qa-api.bentley.com/transformations/?configurationId[&Status][&OrderBy][&$top][&$skip]

This endpoint is used to query a list of transformation entities.

To get full transformation entities in a list set prefer header to return=representation.

Transformation status

Transformation status parameter provides information about the current status of a transformation. The status can have one of the following values:

  • Created - this status is assigned when the transformation is created, but background job has not started yet. Once the background job is started, initialization begins.

  • Initializing - a transformation in the Initializing status means that the background job has been started and is preparing to run the transformation. This process involves downloading all the necessary iModels and setting up other parameters as required by the transformation.

  • Started - when the transformation background job starts processing the iModel elements based on the transformation configuration, the status changes to Started. You can monitor the progress of the transformation during this stage by tracking the count of processed elements. This count allows you to estimate when the transformation might finish.

  • Succeeded - upon successful completion of the transformation, the status is set to Succeeded. This means all iModel elements have been processed as per the transformation configuration without any errors.

  • Failed - if an error occurs during the transformation process (while in the Initializing or Started statuses), the status changes to Failed. This indicates that the transformation has ended prematurely and would leave the target iModel in an invalid state if any intermediate changes were pushed. If the transformation is in an invalid state, it is necessary to use a new target iModel in order to proceed with further transformations.

  • Aborted - a transformation is labeled as Aborted when it is manually cancelled by the user. Note that a transformation cannot be cancelled if it has already finished (its status is either Failed or Succeeded).

Transformation error code

Transformation errorCode parameter provides information about error which occurred during transformation.

Description
Value
Name
API Errors.
[1 - 999]
Unknown API Error.
1
UnknownApiError
Transformation was terminated as it was stuck in created state for too long.
2
CreatedStateTimeOut
Transformation was terminated as it was running for too long.
3
JobRunTimeOut
Unknown errors which happened while executing transformation.
[1000 - 1999]
Transient network errors, set when there are transient issues with requests to other services. User should “try again later”.
[2000 - 2999]
Can not execute transformation, user action is required to fix the issue.
[4000 - 4999]
Transformation already started.
4001
TransformationAlreadyStarted
No changes to process.
4002
NoChangesToProcess
Maximum entities limit exceeded, applicable for transformations started from 'Try it out' button located in developer.bentley.com site.
4003
LimitedTransformationError
Cannot chain transformations.
4004
CanNotChainTransformations
Unsupported combination of transformation types.
4005
UnsupportedCombinationOfTransformationTypes
Invalid transformation parameters.
4006
InvalidTransformParameters
Invalid configuration.
4007
InvalidConfiguration
Change processing is not supported.
4008
ChangeProcessingIsNotSupported
Missing scope element.
4009
MissingScopeElement
Missing Repository Link.
4010
MissingRepositoryLink
Source repository link has no federation guid.
4011
SourceRepositoryLinkHasNoFederationGuid
Forking transformation was not executed, set for MergeFork transformation.
4012
ForkingTransformationNotExecuted
Fork relationship was not established between source and target iModels, set for MergeIModel transformation.
4013
ForkRelationshipIsNotEstablished
Could not populate federation guids, set for PopulateFederationGuid transformation.
4014
CouldNotPopulateFederationGuids
iModel contains elements without federation guids, set for MergeIModel transformation.
4015
ElementsWithoutFederationGuids
Could not create schema definition.
4016
CouldNotCreateSchemaDefinition
Missing spatial location model.
4017
MissingSpatialLocationModel
Schema errors.
[5000 - 5999]
Schema was not found.
5001
SchemaNotFound
Schema version was not found.
5002
SchemaVersionNotFound
Schema conflict.
5003
SchemaConflict
Data export errors.
[6000-6999]
Entity export error.
6001
ExportEntityError
Code spec export error.
6003
ExportCodeSpecError
Schema export error.
6004
ExportSchemaError
Element code conflict.
6005
ExportElementCodeConflict

Authentication

Requires Authorization header with valid Bearer token for scope itwin-platform.

For more documentation on authorization and how to get access token visit OAUTH2 Authorization page.

Rate limits

All iTwin Platform API operations have a rate limit. For more documentation on that visit Rate limits and quotas page.

Request parameters

Name
Required?
Description
configurationId
Yes

configuration ID of the transformations.

Status
No

Specify a particular transformation status that you wish to query on.

OrderBy
No

The OrderBy query option allows clients to request ascending or descending using _desc order of the returned collection by one of the item properties. We support sorting by every property that is present in response body. When _desc keyword is not specified the collection is sorted in ascending order. To sort the collection in descending order provide _desc keyword e.g.: OrderBy=finishedDateTime_desc.

$top
No

The $top query option requests the number of items in the queried collection to be included in the result. E.g. to return only first collection item provide the following query: $top=1. When $top parameter is not provided default is set to 100. $top value cannot exceed 1000.

$skip
No

The $skip query option requests the number of items in the queried collection that are to be skipped and not included in the result. E.g. to return items from the collection starting at the third place provide the following query: $skip=2.

Request headers

Name
Required?
Description
Prefer
No

Indicates a level of details in the response. Valid values are return=representation or return=minimal. The default is return=minimal.

Authorization
Yes

OAuth access token with itwin-platform scope

Accept
Yes

Setting to application/vnd.bentley.itwin-platform.v1+json is recommended.

Response 200 OK

Returns transformations for the given configuration ID. If prefer header is not set, API will treat it as `return=minimal`.

json
{
    "transformations": [{
        "id": "00000000-0000-0000-0000-000000000000",
        "status": "Created"
    }],
    "_links": {
        "self": {
            "href": "https://api.bentley.com/transformations?configurationId=00000000-0000-0000-0000-000000000000&skip=100&top=100"
        },
        "prev": {
            "href": "https://api.bentley.com/transformations?configurationId=00000000-0000-0000-0000-000000000000&skip=0&top=100"
        },
        "next": {
            "href": "https://api.bentley.com/transformations?configurationId=00000000-0000-0000-0000-000000000000&skip=200top=100"
        }
    }
}

Response 401 Unauthorized

This response indicates that request lacks valid authentication credentials. Access token might not been provided, issued by the wrong issuer, does not have required scopes or request headers were malformed.

json
{
    "error": {
        "code": "HeaderNotFound",
        "message": "Header Authorization was not found in the request. Access denied."
    }
}

Response 422 Unprocessable Entity

Invalid request to get all transformations.

json
{
    "error": {
        "code": "InvalidTransformationsRequest",
        "message": "Cannot get Transformations.",
        "details": [{
                "code": "MissingRequiredParameter",
                "message": "Required parameter is missing.",
                "target": "ConfigurationId"
            },
            {
                "code": "InvalidValue",
                "message": "'{passedValue}' is not a valid {queryParam}.",
                "target": "{queryParam}"
            },
            {
                "code": "InvalidParameter",
                "message": "Invalid property name.",
                "target": "OrderBy"
            },
            {
                "code": "InvalidParameter",
                "message": "'{number}' is not a valid '{$top/$skip}' value.",
                "target": "{$top/$skip}"
            }
        ]
    }
}

Response 429 Too many requests

This response indicates that the client sent more requests than allowed by this API for the current tier of the client.

json
{
    "error": {
        "code": "RateLimitExceeded",
        "message": "The client sent more requests than allowed by this API for the current tier of the client."
    }
}

Response headers

Name
Description
retry-after

Number of seconds to wait until client is allowed to make more requests.

Transformation status

Name
Type
Description
Created
String
Started
String
Succeeded
String
Failed
String
Aborted
String
Initializing
String

Transformations (prefer return=minimal)

List of Transformations in minimal representation.

Name
Type
Description
transformations

List of Transformations in minimal representation.

_links

Paging links.

Transformations (prefer return=representation)

List of Transformations in full representation.

Name
Type
Description
transformations

List of Transformations in full representation.

_links

Paging links.

Minimal transformation

Name
Type
Description
id
String

ID of the transformation.

status

Available values: Created, Initializing, Started, Succeeded, Failed, Aborted.

Transformation

Transformation data.

Name
Type
Description
id
String

ID of the transformation.

status

Available values: Created, Initializing, Started, Succeeded, Failed, Aborted.

errorCode
Int32

Error code that gets filled if an error occurred during transformation.

errorMessage
String, null

Error message that gets filled if an error occurred during transformation.

processedElementCount
Int32

Number of elements that have been processed.

totalElementCount
Int32

Total amount of elements to process.

createdDateTime
Date-time

Time the transformation entity was created.

startedDateTime
Date-time, null

Time the transformation was initiated.

finishedDateTime
Date-time, null

Time the transformation was finished. Empty if transformation is still running.

sourceChangeSetId
String, null

ID of the last change set used for source iModel.

lastTargetChangesetPushed
String, null

ID of last changeset pushed to target iModel.

_links

Link to related configuration.

Links

Name
Type
Description
configuration

Link to configuration.

Pagination links

Name
Type
Description
self

Pagination link to the current page.

prev

Pagination link to the previous page.

next

Pagination link to the next page.

Link

Name
Type
Description
href
String

Link to a resource.

DetailedError

Contains error information and an array of more specific errors.

Name
Type
Description
code
String

One of a server-defined set of error codes.

message
String

A human-readable representation of the error.

target
String, null

The target of the error.

details

Optional array of more specific errors.

Detailed Error Response

Gives details for an error that occurred while handling the request. Note that clients MUST NOT assume that every failed request will produce an object of this schema, or that all of the properties in the response will be non-null, as the error may have prevented this response from being constructed.

Name
Type
Description
error

Error Detailed information.

Error

Contains error information.

Name
Type
Description
code
String

One of a server-defined set of error codes.

message
String

A human-readable representation of the error.

target
String, null

The target of the error.

Error Response

Gives details for an error that occurred while handling the request. Note that clients MUST NOT assume that every failed request will produce an object of this schema, or that all of the properties in the response will be non-null, as the error may have prevented this response from being constructed.

Name
Type
Description
error

Error information.

Was this page helpful?