Table of contents
Synchronization
Download API definition:
POST https://api.bentley.com/synchronization/imodels/manifestconnections/{connectionId}/runs

Runs the specified ManifestConnection.

Notes

When a run is successfully created, the operation returns HTTP status code 202/accepted - the request is accepted for processing and will execute in background. The response will include a location header pointing to the created run. If an existing active run already exists for the iModel, a new run is not initiated, instead 303/see other is returned along with location header pointing to that existing active run. In the rare event that multiple create run requests are being made simultaneously, only the first request is processed and 409/conflict is returned for others.

Authentication

Requires Authorization header with valid Bearer token for scope synchronization:modify or itwin-platform.

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

Request parameters

Name
In
Required?
Description
connectionId
template
Yes

Connection Id

Request headers

Name
Required?
Description
Authorization
Yes

OAuth access token with synchronization:modify or itwin-platform scope

Accept
Yes

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

Request body

Manifest for Run Create

Name
Type
Required?
Description
documentAttributeSchemaUrl
String
No

An optional field containing BLOB storage url to the JSON file where DocumentAttributeSchema is defined.

sourceFiles
No

Source files to be synchronized.

Example

json
{
    "documentAttributeSchemaUrl": "https://blob.net/documentAttributeSchema.json",
    "sourceFiles": [{
        "id": "f5b36238",
        "name": "Master.dgn",
        "action": "bridge",
        "url": "https://blob.net/Master.dgn",
        "connectorType": "MSTN",
        "documentAttribute": {
            "className": "ProjectwiseDynamic:PWDocumentLink",
            "properties": {
                "Revision": "R01",
                "Suitability": "S01",
                "CodeValue": "89c7f032-6dfb-4a0b-8511-983e2d18728a"
            }
        },
        "children": [{
            "id": "a7c36238",
            "parentId": "f5b36238",
            "name": "Reference.dgn",
            "url": "https://blob.net/Reference.dgn",
            "connectorType": "CIVIL",
            "documentAttribute": {
                "className": "ProjectwiseDynamic:PWDocumentLink",
                "properties": {
                    "Revision": "R01",
                    "Suitability": "S01",
                    "CodeValue": "89c7f032-6dfb-4a0b-8511-983e2d18728a"
                }
            }
        }]
    }]
}

Response 202 Accepted

Accepted

Response headers

Name
Description
Location

The resource location

Response 303 See Other

This response indicates that an active run is in progress and link is provided in location header.

Response headers

Name
Description
Location

The resource location

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 403 Forbidden

This response indicates that user does not have required permissions to run specified connection.

json
{
    "error": {
        "code": "InsufficientPermissions",
        "message": "The user has insufficient permissions for the requested operation."
    }
}

Response 404 Not Found

This response indicates that the specified connection was not found.

json
{
    "error": {
        "code": "ManifestConnectionNotFound",
        "message": "Requested ManifestConnection is not available."
    }
}

Response 409 Conflict

A run request is already being processed.

json
{
    "error": {
        "code": "ConflictWithAnotherIModelRequest",
        "message": "This request is already being processed for this iModel."
    }
}

Response 422 Unprocessable Entity

Invalid request to create a connection run.

json
{
    "error": {
        "code": "InvalidManifestConnectionRunRequest",
        "message": "Cannot perform operation.",
        "details": [{
                "code": "InvalidRequestBody",
                "message": "Error parsing JSON, malformed JSON."
            },
            {
                "code": "InvalidValue",
                "message": "Provided connectionId value is not valid.",
                "target": "connectionId"
            }
        ]
    }
}

Response 429 Too many requests

This response indicates that the user has sent too many requests in a given amount of time.

json
{
    "error": {
        "code": "TooManyRequests",
        "message": "More requests were received than the subscription rate-limit allows."
    }
}

Response headers

Name
Description
retry-after

The number of requests exceeds the rate-limit for the client subscription.

Manifest for Run Create

TableSchema
Name
Type
Description
documentAttributeSchemaUrl
String

An optional field containing BLOB storage url to the JSON file where DocumentAttributeSchema is defined.

sourceFiles

Source files to be synchronized.

Manifest's Source File

TableSchema
Name
Type
Description
id
String

A unique identifier for soureFile entity assigned and recognized by Synchronization API.

action

Action for synchronization type values: [bridge, unmap].

name
String

A manifest source file name.

relativePath
Null,string

Location of manifest source file relative to the current (working) directory.

url
String

Pre-authenticated url for file.

connectorType
String

Type of connector used for synchronization. Refer supported connector format for details.

documentMetadata
Null,object

Additional metadata associated with manfiest source file

documentAttribute

An optional field containg document attribute information.

children

List of reference files for the manifest source file.

Manifest Source File's Child File

TableSchema
Name
Type
Description
id
String

A unique identifier for child soureFile entity.

parentId
String

A unique identifier associated with parent manifest source file.

name
String

The name of Manifest source file's child file.

relativePath
Null,string

Location of the child file relative to the current (working) directory.

url
String

Pre-authenticated url for the child file.

connectorType
String

Type of connector used for synchronization. Refer supported connector format for details.

documentMetadata
Null,object

Additional metadata associated with child soureFile

documentAttribute

An optional field containg document attribute information.

DocumentAttribute

TableSchema
Name
Type
Description
className
String

An ECClass in the DocumentAttributeSchema to be used for the document.

properties
Object

Contains properties from the specified ClassName to be set for the document.

Action type

Action for synchronization type values: [bridge, unmap].

TableSchema
Name
Type
Description
No data.

Error

Contains error information.

TableSchema
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

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.

TableSchema
Name
Type
Description
error

Error information.