Docker SDK REST API v2.5.0

Scroll down for code samples, example requests and responses. Select a language for code samples from the tabs above or the mobile navigation menu.

The iText DITO SDK allows you to generate PDFs with custom JSON data and templates designed in the iText DITO Editor. For consistency in API behaviour when updating to a newer version of the SDK it is strongly recommended specifying the desired API version in X-DITO-API-Version header for all requests. The full documentation on how to use the iText DITO SDK for Docker image can be found at:

Base URLs:

Authentication

  • HTTP Authentication, scheme: bearer
    Only registered users can perform any actions on deployment resources. The Bearer Token is used to prevent unregistered users from accessing protected resources. To receive such a token, the user must be registered using the registration endpoint. For more information on using Bearer Tokens, follow this link: documentation link

Registration

API for registering and unregistering users

register

Code samples

POST /api/admin/register HTTP/1.1

Content-Type: application/json
Accept: application/json

POST /admin/register

Register new user

Can be used to register a new user and get an authorization token

NOTES
  • Only single user can be registered at one specific moment
  • The new user cannot be registered if there are any deployed templates with an alias. They must be undeployed so that registration is available again
  • To use this endpoint templateDeploymentFeature must be enabled
EXAMPLES
User registration:
RequestResponse
POST localhost:42/api/admin/registerContent-Type application/jsonAccept application/pdf
Body{    "subject": "best name"}
200 OKContent-Type application/json
Body{    "token": "ToKeNVaLuE"}

Body parameter

{
  "subject": "string"
}

Parameters

|Name|In|Type|Required|Description| |---|---|---|---|---| |body|body|TokenCreationRequestDescriptor|true|Descriptor containing subject to identify the future user|

Example responses

Descriptor containing authorization token

{
  "token": "ToKeNVaLuE"
}

Old user must be unregistered first

{
  "message": "Unable to register new user: old user must be unregistered first",
  "code": 400
}

Existing aliases must be undeployed first

{
  "message": "Unable to register new user: existing aliases must be undeployed first",
  "code": 400
}

Responses

|Status|Meaning|Description|Schema| |---|---|---|---| |200|OK|The user was registered successfully|TokenCreationResponseDescriptor| |400|Bad Request|The user was not registered|None|

Response Schema

This operation does not require authentication

status

Code samples

GET /api/admin/status HTTP/1.1

Accept: application/json

GET /admin/status

Verify passed authorization token

Verify passed authorization token and return it

NOTES
  • Token can be specified via the request header Authorization: Bearer {token}
  • If you'd like to make the request with Try it out, you can pass the token with Authorize button at the top of the page. This only affects Swagger UI and will not affect the real API in any way
  • To use this endpoint templateDeploymentFeature must be enabled

Example responses

Descriptor containing authorization token

{
  "token": "ToKeNVaLuE"
}

Unauthorized

{
  "message": "Credentials are required to access this resource",
  "code": 401
}

Responses

|Status|Meaning|Description|Schema| |---|---|---|---| |200|OK|Verification passed|TokenCreationResponseDescriptor| |400|Bad Request|Bad request|None| |401|Unauthorized|Unauthorized|None|

Response Schema

To perform this operation, you must be authenticated by means of one of the following methods: bearerAuth

unregister

Code samples

POST /api/admin/unregister HTTP/1.1

Accept: application/json

POST /admin/unregister

Unregister user

Can be used to unregister user with the specified token

NOTES
  • Token can be specified via the request header Authorization: Bearer {token}
  • If you'd like to make the request with Try it out, you can pass the token with Authorize button at the top of the page. This only affects Swagger UI and will not affect the real API in any way
  • The user cannot be unregistered if there are any deployed templates with an alias. They must be undeployed first
  • To use this endpoint templateDeploymentFeature must be enabled

Example responses

Error reason

{
  "message": "Unable to unregister user: existing aliases must be undeployed first",
  "code": 400
}

Unauthorized

{
  "message": "Credentials are required to access this resource",
  "code": 401
}

Responses

|Status|Meaning|Description|Schema| |---|---|---|---| |204|No Content|No Content. Cancelling registration was successful|None| |400|Bad Request|Bad request|None| |401|Unauthorized|Unauthorized|None|

Response Schema

To perform this operation, you must be authenticated by means of one of the following methods: bearerAuth

Deprecated

Deprecated API that is still usable for compatibility reasons

getReport

Code samples

GET /api/pdf-producer/report/{report-id} HTTP/1.1

Accept: application/json

GET /pdf-producer/report/{report-id}

Get cached report by ID

Can be used to get cached report with the specified ID

EXAMPLES
Get cached PDF producer report:
RequestResponse
GET localhost:42/api/pdf-producer/reports/65fff9f3-db63-4c6d-ad0f-81418b4376b7Content-Type application/json200 OKContent-Type application/json
Body{    "pageCount": 1,    "templateRepairReport": {        "entries": [            {                "message": "Encountered unexpected empty attribute: 'data-dito-bind'",                "severity": "warn"            }        ]    },    "pdfProductionReport": {        "entries": []    },    "id": "65fff9f3-db63-4c6d-ad0f-81418b4376b7",    "highestSeverity": "warn"}

Parameters

|Name|In|Type|Required|Description| |---|---|---|---|---| |report-id|path|string|true|Report ID|

Example responses

Requested PDF producer report descriptor

{
  "pageCount": 1,
  "templateRepairReport": {
    "entries": []
  },
  "pdfProductionReport": {
    "entries": []
  },
  "id": "6fefa7b6-282e-474e-892d-78aa886e18a0",
  "timestamp": "2021-11-23T09:09:07.331355100Z",
  "highestSeverity": null
}

Not Found

{
  "message": "HTTP 404 Not Found",
  "code": 404
}

Responses

|Status|Meaning|Description|Schema| |---|---|---|---| |200|OK|Cached report was retrieved successfully|PdfProducerReportDescriptor| |404|Not Found|PDF producer report descriptor with the specified ID was not found|None|

Response Schema

This operation does not require authentication

License

API for retrieving license information

getLicense

Code samples

GET /api/license HTTP/1.1

Accept: application/json

GET /license

Get information about the uploaded license

Get information about the uploaded license, i.e., expiration date, limits, etc

EXAMPLES
Get loaded license info:
RequestResponse
GET localhost:42/api/license200 OKContent-Type application/json
Body{    "expirationDate": "2020-09-23",    "remaining": {        "page": 999980    }}

Example responses

License descriptor describing license information

{
  "expirationDate": "Mon Jun 23 00:00:00 MSK 2021",
  "remaining": {
    "document": 100
  }
}

Responses

|Status|Meaning|Description|Schema| |---|---|---|---| |200|OK|Information was retrieved successfully|LicenseDescriptor|

This operation does not require authentication

PDF Producer

API for generating PDF from a template

producePdf

Code samples

POST /api/pdf-producer HTTP/1.1

Content-Type: application/json
Accept: application/pdf; qs=0.9

POST /pdf-producer

Produce PDF as stream from template

Produce PDF based on a template from a package and return created PDF

NOTES
  • To use this resource application/pdf should be specified in request Accept header
  • The resulting PDF has yyyy-MM-dd-HH.mm.ss.nnnnnnnnn.uuid.pdf name
  • Response contains X-DITO-Producer-Report-ID header, which can be used to access cached production report
  • Response can contain X-DITO-Producer-Highest-Severity header with highest severity level if report is not empty
  • Can still return application/json on bad requests
  • It is available even if work directory is read only
EXAMPLES
Produce PDF as stream from alias:
RequestResponse
POST localhost:42/api/pdf-producerContent-Type application/jsonAccept application/pdf
Body{    "templateAlias": "best template",    "data": {        "bind": "from request"    }}
200 OKContent-Type application/pdfX-DITO-Producer-Report-ID 65fff9f3-db63-4c6d-ad0f-81418b4376b7X-DITO-Producer-Highest-Severity warnBodybytes of generated PDF
Produce PDF as stream:
RequestResponse
POST localhost:42/api/pdf-producerContent-Type application/jsonAccept application/pdf
Body{    "templateProjectPath": "dummy.dito",    "templateName": "output",    "data": {        "bind": "from request"    }}
200 OKContent-Type application/pdfX-DITO-Producer-Report-ID 65fff9f3-db63-4c6d-ad0f-81418b4376b7X-DITO-Producer-Highest-Severity warnBodybytes of generated PDF

The resource to produce PDF in the working directory:

This resource is described manually due to OpenAPI specification restrictions

Can be used to create PDF in the working directory based on a template from a package

REQUEST BODY
PdfProducerFileRequestDescriptor - descriptor containing basic information for creating PDF
NameTypeDescription
...same as production request descriptor......same as production request descriptor......same as production request descriptor...
pathstring (path)
optional
The suggested path to the resulting PDF file, relative to the work directory. If a file already exists than a new path will be generated. All intermediate directories are created. If not specified, then file names are generated automatically from defaultVersion UTC data and UUID in the format:yyyy-MM-dd-HH.mm.ss.nnnnnnnnn.uuid.pdf
RESPONSE CODES
  • 200 OK - PDF successfully created
  • PDF producer response descriptor with information about the generated PDF
    NameTypeDescription
    pathstring (path)Path to the produced PDF relative to work directory
    report(since 1.4.1)PdfProducerReportDescriptorContains some meta information about created PDF
  • 400 Bad Request - one of the descriptor parameters is invalid
NOTES
  • This resource is used by default (can also be explicitly requested by specifing application/json in the request Accept header)
  • It is not available if work directory is read only
  • Report returned in the request is not cached
EXAMPLES
Produce PDF from project file and data in working directory:
RequestResponse
POST localhost:42/api/pdf-producerContent-Type application/json
Body{    "templateProjectPath": "dummy.dito",    "templateName": "output",    "data": "sample.json"}
200 OKContent-Type application/json
Body{    "path": "2019-09-23-13.00.44.472000000.pdf",    "report": {        "pageCount": 1,        "templateRepairReport": {            "entries": []        },        "pdfProductionReport": {            "entries": []        },        "id": "65fff9f3-db63-4c6d-ad0f-81418b4376b7",        "highestSeverity": null    }}
Produce PDF with 2.0 version and custom output path from project file in working directory and data embedded in the request:
RequestResponse
POST localhost:42/api/pdf-producerContent-Type application/jsonAccept application/pdf
Body{    "templateProjectPath": "dummy.dito",    "templateName": "output",    "data": {        "bind": "from request"    },    "path": "custom/path/to/file.pdf",    "properties": {        "pdfVersion": "2.0"    }}
200 OKContent-Type application/json
Body{    "path": "custom/path/to/file.pdf",    "report": {        "pageCount": 1,        "templateRepairReport": {            "entries": [                {                    "message": "Encountered unexpected empty attribute: 'data-dito-bind'",                    "severity": "warn"                }            ]        },        "pdfProductionReport": {            "entries": []        },        "id": "65fff9f3-db63-4c6d-ad0f-81418b4376b7",        "highestSeverity": "warn"    }}

Body parameter

{
  "data": "{}",
  "properties": {
    "bookmarks": {
      "enabled": true
    },
    "encryption": {
      "contentCopyingAllowed": true,
      "editingAllowed": false,
      "ownerPassword": "string",
      "printingAllowed": true,
      "screenReaderAccessAllowed": true,
      "userPassword": "string"
    },
    "pdfVersion": "1.7"
  },
  "templateAlias": "string",
  "templateName": "string",
  "templateProjectPath": "string"
}

Parameters

|Name|In|Type|Required|Description| |---|---|---|---|---| |body|body|PdfProducerStreamRequestDescriptor|true|Descriptor containing basic information for creating PDF stream|

Example responses

There is no template with the specified name

{
  "message": "There is no output template with name: 'template-name'",
  "code": 400
}

There is no data file with the specified name

{
  "message": "File 'data.json' does not exist",
  "code": 400
}

Responses

|Status|Meaning|Description|Schema| |---|---|---|---| |200|OK|PDF file has been successfully generated and can be downloaded|None| |400|Bad Request|One of the descriptor parameters is invalid|None|

Response Schema

This operation does not require authentication

getReports

Code samples

GET /api/pdf-producer/reports?startTimestamp=2020-01-01T00%3A00%3A00Z HTTP/1.1

Accept: application/json

GET /pdf-producer/reports

Get cached reports

Get cached reports within specified timestamp

Parameters

|Name|In|Type|Required|Description| |---|---|---|---|---| |startTimestamp|query|string|true|Date to start from. Timestamps are ISO-8601 formatted dates| |endTimestamp|query|string|false|End date (exclusive), can be optional (current date is default). Timestamps are ISO-8601 formatted dates|

Example responses

List of PDF producer report descriptors

[
  {
    "pageCount": 1,
    "templateRepairReport": {
      "entries": []
    },
    "pdfProductionReport": {
      "entries": []
    },
    "id": "6fefa7b6-282e-474e-892d-78aa886e18a0",
    "timestamp": "2021-11-23T09:09:07.331355100Z",
    "highestSeverity": null
  }
]

Invalid timestamp

{
  "message": "Invalid timestamp: 2021-11-23T00:aa:00Z",
  "code": 400
}

Start timestamp must be present

{
  "message": "startTimestamp must be present",
  "code": 400
}

Start timestamp must be less than end timestamp

{
  "message": "startTimestamp must be less than endTimestamp",
  "code": 400
}

Difference between startTimestamp and endTimestamp is greater than cache live time

{
  "message": "'expireAfterWrite' property must be greater than requested interval",
  "code": 400
}

Responses

|Status|Meaning|Description|Schema| |---|---|---|---| |200|OK|Cached reports were retrieved successfully|PdfProducerReportDescriptor| |400|Bad Request|Bad Request. It can occur if the timestamp is invalid or the cache lifetime is not large enough|None|

Response Schema

This operation does not require authentication

getReport_1

Code samples

GET /api/pdf-producer/reports/{report-id} HTTP/1.1

Accept: application/json

GET /pdf-producer/reports/{report-id}

Get cached report by ID

Can be used to get cached report with the specified ID

EXAMPLES
Get cached PDF producer report:
RequestResponse
GET localhost:42/api/pdf-producer/reports/65fff9f3-db63-4c6d-ad0f-81418b4376b7Content-Type application/json200 OKContent-Type application/json
Body{    "pageCount": 1,    "templateRepairReport": {        "entries": [            {                "message": "Encountered unexpected empty attribute: 'data-dito-bind'",                "severity": "warn"            }        ]    },    "pdfProductionReport": {        "entries": []    },    "id": "65fff9f3-db63-4c6d-ad0f-81418b4376b7",    "highestSeverity": "warn"}

Parameters

|Name|In|Type|Required|Description| |---|---|---|---|---| |report-id|path|string|true|Report ID|

Example responses

Requested PDF producer report descriptor

{
  "pageCount": 1,
  "templateRepairReport": {
    "entries": []
  },
  "pdfProductionReport": {
    "entries": []
  },
  "id": "6fefa7b6-282e-474e-892d-78aa886e18a0",
  "timestamp": "2021-11-23T09:09:07.331355100Z",
  "highestSeverity": null
}

Not Found

{
  "message": "HTTP 404 Not Found",
  "code": 404
}

Responses

|Status|Meaning|Description|Schema| |---|---|---|---| |200|OK|Cached report was retrieved successfully|PdfProducerReportDescriptor| |404|Not Found|PDF producer report descriptor with the specified ID was not found|None|

Response Schema

This operation does not require authentication

Status

API for retrieving application status information

getStatus

Code samples

GET /api/status HTTP/1.1

Accept: application/json

GET /status

Get information about the application status

Get information about the application status, i.e., used versions, configurations, etc

Example responses

Status descriptor describing application status

{
  "sdkVersion": "x.y.z",
  "apiVersions": {
    "default": "x.y.z",
    "minimumSupported": "a.b.c",
    "maximumSupported": "x.y.z"
  },
  "health": {
    "deadlocks": {
      "healthy": true
    },
    "license": {
      "healthy": true
    },
    "workDirectory": {
      "healthy": true
    }
  },
  "userConfiguration": {
    "pdfProducerReportCache": {
      "maxSize": 1000,
      "expireAfterWrite": "PT24H"
    },
    "logAppenders": [
      {
        "type": "stdout"
      },
      {
        "type": "file"
      }
    ]
  }
}

Responses

|Status|Meaning|Description|Schema| |---|---|---|---| |200|OK|Information was retrieved successfully|StatusDescriptor|

This operation does not require authentication

Deployment

API to deploy and undeploy templates

getAll

Code samples

GET /api/deployments HTTP/1.1

Accept: application/json

GET /deployments

Get list of all deployed templates

Get list of all currently deployed templates with aliases

Example responses

List of template deployment response descriptors

[
  {
    "alias": "best template",
    "meta": {
      "version": "version-value"
    }
  }
]

Responses

|Status|Meaning|Description|Schema| |---|---|---|---| |200|OK|Information about all currently deployed templates was retrieved successfully|TemplateDeploymentResponseDescriptor|

This operation does not require authentication

deploy

Code samples

POST /api/deployments HTTP/1.1

Content-Type: multipart/form-data
Accept: application/json

POST /deployments

Deploy template

Deploy the template project with the specified template and save it under the specified alias

NOTES
  • Only registered user can perform actions in this resource. The Authorization HTTP header with Bearer type and token from registration endpoint must be used. Token can be specified via the request header Authorization: Bearer {token}
  • If you'd like to make the request with Try it out, you can pass the token with Authorize button at the top of the page. This only affects Swagger UI and will not affect the real API in any way
  • Currently, a request for this resource cannot be made using the Try it out button due to restrictions on the swagger side
EXAMPLES
Template deployment:
RequestResponse
POST localhost:42/api/deploymentsContent-Type multipart/form-dataAuthorization Bearer ToKeNVaLuE
BodyContent-Type: multipart/form-dataContent-Disposition: form-data; name="descriptor"Content-Type: application/json{"alias":"best template", "templateName":"output", "meta":{"version":"for tests"}}Content-Disposition: form-data; name="template_project"bytes of template project
200 OKContent-Type application/json
Body{    "alias": "best template",    "meta": {        "version": "for tests"    }}

Body parameter

template_project: {}
descriptor:
  alias: string
  meta: {}
  templateName: string

Parameters

|Name|In|Type|Required|Description| |---|---|---|---|---| |forceReplace|query|boolean|false|If set to true, then template deployment will be replaced with the same alias, if any. Default: false| |body|body|object|false|none| |» template_project|body|object|true|The content of the template project| |» descriptor|body|TemplateDeploymentRequestDescriptor|true|Descriptor containing information for deployment. When making arequest, the content type of this parameter must be set to application/json| |»» alias|body|string|true|Alias of the template deployment which can be later used during production| |»» meta|body|JsonNode|false|An additional JSON field that is stored and can be retrieved when requesting template deployment. Can be an array, object, or leaf element| |»» templateName|body|string|true|Name of the template inside template project|

Example responses

Descriptor containing alias and meta

{
  "alias": "best template",
  "meta": {
    "version": "version-value"
  }
}

Unauthorized

{
  "message": "Credentials are required to access this resource",
  "code": 401
}

Responses

|Status|Meaning|Description|Schema| |---|---|---|---| |200|OK|Template was deployed successfully|TemplateDeploymentResponseDescriptor| |400|Bad Request|Request params or body is incorrect|None| |401|Unauthorized|Unauthorized|None|

Response Schema

To perform this operation, you must be authenticated by means of one of the following methods: bearerAuth

get

Code samples

GET /api/deployments/{alias} HTTP/1.1

Accept: application/json

GET /deployments/{alias}

Get information about the deployed template

Get detailed information about the deployed template with the specified alias

Parameters

|Name|In|Type|Required|Description| |---|---|---|---|---| |alias|path|string|true|Alias value to identify the template|

Example responses

Template deployment descriptor containing alias and meta

{
  "alias": "best template",
  "meta": {
    "version": "version-value"
  }
}

Not Found

{
  "message": "HTTP 404 Not Found",
  "code": 404
}

Responses

|Status|Meaning|Description|Schema| |---|---|---|---| |200|OK|Information was retrieved successfully|TemplateDeploymentResponseDescriptor| |404|Not Found|Deployed template with the specified alias was not found|None|

Response Schema

This operation does not require authentication

undeploy

Code samples

DELETE /api/deployments/{alias} HTTP/1.1

Accept: application/json

DELETE /deployments/{alias}

Undeploy current template alias

Can be used to undeploy current template alias

NOTES
  • Only registered user can perform actions in this resource. The Authorization HTTP header with Bearer type and token from registration endpoint must be used. Token can be specified via the request header Authorization: Bearer {token}
  • If you'd like to make the request with Try it out, you can pass the token with Authorize button at the top of the page. This only affects Swagger UI and will not affect the real API in any way

Parameters

|Name|In|Type|Required|Description| |---|---|---|---|---| |alias|path|string|true|Alias value to identify the template|

Example responses

Removed alias as template deployment response descriptor

{
  "alias": "best template",
  "meta": {
    "version": "version-value"
  }
}

Unauthorized

{
  "message": "Credentials are required to access this resource",
  "code": 401
}

Not Found

{
  "message": "HTTP 404 Not Found",
  "code": 404
}

Responses

|Status|Meaning|Description|Schema| |---|---|---|---| |200|OK|Template alias was removed successfully|TemplateDeploymentResponseDescriptor| |401|Unauthorized|Unauthorized|None| |404|Not Found|Deployed template with the specified alias was not found|None|

Response Schema

To perform this operation, you must be authenticated by means of one of the following methods: bearerAuth

Package content

API to retrieve package content with descriptor

fetch

Code samples

GET /api/deployments/{alias}/all HTTP/1.1

Accept: multipart/form-data

GET /deployments/{alias}/all

Fetches package content with alias descriptor

Used to fetch deployed package content with alias descriptor when HTTP PDF production mode is enabled

Parameters

|Name|In|Type|Required|Description| |---|---|---|---|---| |alias|path|string|true|none|

Example responses

Package content with alias descriptor

--Boundary_1_269736385_1640091682333
Content-Type: application/octet-stream
Content-Disposition: attachment<package content bytes>--Boundary_1_269736385_1640091682333
Content-Type: application/json

{"aliasDescriptorPath":"a4b9ec59-9abd-449a-95ef-507b3fdad0c8.json.alias","templateProjectPath":"a4b9ec59-9abd-449a-95ef-507b3fdad0c8.dito","templateName":"output","alias":"test","meta":null}
--Boundary_1_269736385_1640091682333--

There is no template with the specified alias

{
  "message": "Template alias: \"test\" is not found.",
  "code": 400
}

Responses

|Status|Meaning|Description|Schema| |---|---|---|---| |200|OK|Content fetched successfully|None| |400|Bad Request|Template not found by its alias|None|

Response Schema

This operation does not require authentication

Schemas

ApiVersionsDescriptor

{
  "default": "string",
  "maximumSupported": "string",
  "minimumSupported": "string"
}

Information about API versions. Each request can specify the desired API version in the X-DITO-API-Version header

Properties

|Name|Type|Required|Restrictions|Description| |---|---|---|---|---| |default|string(major.minor.build)|false|none|The default API version that will be used if the X-DITO-API-Version header is not specified| |maximumSupported|string(major.minor.build)|false|none|The maximum supported API version. If the version specified in X-DITO-API-Version header is newer than the maximum supported version the request will fail| |minimumSupported|string(major.minor.build)|false|none|The minimum supported API version. If the version specified in X-DITO-API-Version header is older than the minimum supported version the request will fail|

BookmarksPropertiesDescriptor

{
  "enabled": true
}

Specifies properties for bookmarks generation. By default bookmark generation settings are fetched from template settings

Properties

|Name|Type|Required|Restrictions|Description| |---|---|---|---|---| |enabled|boolean|false|none|Flag that determine whether bookmarks should be generated|

CacheConfiguration

{
  "expireAfterWrite": "P1DT2H3M4S",
  "maxSize": 0
}

Configures how many and how long cached production reports are stored in memory

Properties

|Name|Type|Required|Restrictions|Description| |---|---|---|---|---| |expireAfterWrite|object|false|none|String in ISO-8601 subset (Days, Hours, Minutes, Seconds) specifying for how long the reports can be stored| |» nano|integer(int32)|false|none|none| |» negative|boolean|false|none|none| |» seconds|integer(int64)|false|none|none| |» units|[object]|false|none|none| |»» dateBased|boolean|false|none|none| |»» timeBased|boolean|false|none|none| |»» duration|object|false|none|none| |»»» seconds|integer(int64)|false|none|none| |»»» zero|boolean|false|none|none| |»»» negative|boolean|false|none|none| |»»» nano|integer(int32)|false|none|none| |»» durationEstimated|boolean|false|none|none| |» zero|boolean|false|none|none| |maxSize|integer(int64)|false|none|Integer (64 bit) specifying how many reports can be stored simultaneously|

DeploymentFeatureDescriptor

{
  "type": "string",
  "instanceRegistered": true,
  "hasDeployments": true
}

Properties

allOf - discriminator: FeatureDescriptor.type

|Name|Type|Required|Restrictions|Description| |---|---|---|---|---| |anonymous|FeatureDescriptor|false|none|Descriptor containing information about the feature|

and

|Name|Type|Required|Restrictions|Description| |---|---|---|---|---| |anonymous|object|false|none|none| |» instanceRegistered|boolean|false|none|Determines whether instance has registered user| |» hasDeployments|boolean|false|none|Determines whether instance has deployed templates|

DeploymentPdfProductionOnlyFeatureDescriptor

{
  "type": "string"
}

Properties

None

FeatureDescriptor

{
  "type": "string"
}

Descriptor containing information about the feature

Properties

|Name|Type|Required|Restrictions|Description| |---|---|---|---|---| |type|string|true|none|none|

HealthResultDescriptor

{
  "healthy": true,
  "message": "string"
}

Descriptor containing the health check result information

Properties

|Name|Type|Required|Restrictions|Description| |---|---|---|---|---| |healthy|boolean|false|none|Whether the server is healthy| |message|string|false|none|Health result message|

JsonNode

{}

An additional JSON field that is stored and can be retrieved when requesting template deployment. Can be an array, object, or leaf element

Properties

None

LicenseDescriptor

{
  "expirationDate": "string",
  "remaining": {
    "property1": 0,
    "property2": 0
  }
}

Descriptor describing license information

Properties

|Name|Type|Required|Restrictions|Description| |---|---|---|---|---| |expirationDate|string(yyyy-MM-dd)|false|none|Expiration UTC date| |remaining|object|false|none|Dictionary with LicenseLimitTypeDescriptor type as key and long number of remaining events as value| |» additionalProperties|integer(int64)|false|none|Dictionary with LicenseLimitTypeDescriptor type as key and long number of remaining events as value|

LogAppenderConfiguration

{
  "type": "file"
}

List of log appenders that is used to configure where to output the log messages. Log appender is an object with a defined type

Properties

|Name|Type|Required|Restrictions|Description| |---|---|---|---|---| |type|string|false|none|Log appender type|

Enumerated Values

|Property|Value| |---|---| |type|file| |type|stdout|

PdfEncryptionPropertiesDescriptor

{
  "contentCopyingAllowed": true,
  "editingAllowed": false,
  "ownerPassword": "string",
  "printingAllowed": true,
  "screenReaderAccessAllowed": true,
  "userPassword": "string"
}

Specifies PDF encryption (encryption is not used by default)

Properties

|Name|Type|Required|Restrictions|Description| |---|---|---|---|---| |contentCopyingAllowed|boolean|false|none|Allow copying content when PDF is opened in user mode| |editingAllowed|boolean|false|none|Allow editing content (including editing annotations) when PDF is opened in user mode| |ownerPassword|string|true|none|String used as owner password| |printingAllowed|boolean|false|none|Allow printing when PDF is opened in user mode| |screenReaderAccessAllowed|boolean|false|none|Allow screen reader access when PDF is opened in user mode| |userPassword|string|false|none|String used as user password. Treated as absent if empty|

PdfProducerReportDescriptor

{
  "highestSeverity": "error",
  "id": "string",
  "pageCount": 0,
  "pdfProductionReport": {
    "entries": [
      {
        "message": "string",
        "severity": "error"
      }
    ]
  },
  "templateRepairReport": {
    "entries": [
      {
        "message": "string",
        "severity": "error"
      }
    ]
  },
  "timestamp": "2019-08-24T14:15:22Z"
}

Since 1.4.1 Contains some meta information about created PDF

Properties

|Name|Type|Required|Restrictions|Description| |---|---|---|---|---| |highestSeverity|string|false|none|The highest severity level from both repair and production reports, it is null if both reports are empty| |id|string|true|none|Report ID (uuid)| |pageCount|integer(int64)|true|none|Number of pages in produced PDF| |pdfProductionReport|ProcessingReport|true|none|Object containing information regarding problems during PDF production| |templateRepairReport|ProcessingReport|true|none|Object containing information regarding problems during PDF production| |timestamp|string(date-time)|true|none|Since 1.5.5 Represents time when report was put in cache in the format of ISO-8601|

Enumerated Values

|Property|Value| |---|---| |highestSeverity|error| |highestSeverity|warn| |highestSeverity|info| |highestSeverity|debug| |highestSeverity|trace|

PdfProducerStreamRequestDescriptor

{
  "data": "{}",
  "properties": {
    "bookmarks": {
      "enabled": true
    },
    "encryption": {
      "contentCopyingAllowed": true,
      "editingAllowed": false,
      "ownerPassword": "string",
      "printingAllowed": true,
      "screenReaderAccessAllowed": true,
      "userPassword": "string"
    },
    "pdfVersion": "1.7"
  },
  "templateAlias": "string",
  "templateName": "string",
  "templateProjectPath": "string"
}

Descriptor containing basic information for creating PDF stream

Properties

|Name|Type|Required|Restrictions|Description| |---|---|---|---|---| |data|string|false|none|Data used for production. Can be String or JsonNode (array, object or leaf element). If specified as string than it is treated as path to data file (relative to shared work directory), otherwise is treated as direct template data. If not specified then empty data is sent| |properties|PdfPropertiesDescriptor|false|none|The PDF production properties| |templateAlias|string|true|none|Since 1.5.7 Alias of the deployed template. Can be used instead of templateProjectPath and templateName for deployed templates| |templateName|string|true|none|Name of the template inside the template project| |templateProjectPath|string|true|none|Path to the template project (relative to shared work directory)|

PdfProductionTemplateHttpModeFetchingUserConfiguration

{
  "cacheTTL": {
    "nano": 0,
    "negative": true,
    "seconds": 0,
    "units": [
      {
        "dateBased": true,
        "timeBased": true,
        "duration": {
          "seconds": 0,
          "zero": true,
          "negative": true,
          "nano": 0
        },
        "durationEstimated": true
      }
    ],
    "zero": true
  }
}

Properties

|Name|Type|Required|Restrictions|Description| |---|---|---|---|---| |cacheTTL|object|true|none|none| |» nano|integer(int32)|false|none|none| |» negative|boolean|false|none|none| |» seconds|integer(int64)|false|none|none| |» units|[object]|false|none|none| |»» dateBased|boolean|false|none|none| |»» timeBased|boolean|false|none|none| |»» duration|object|false|none|none| |»»» seconds|integer(int64)|false|none|none| |»»» zero|boolean|false|none|none| |»»» negative|boolean|false|none|none| |»»» nano|integer(int32)|false|none|none| |»» durationEstimated|boolean|false|none|none| |» zero|boolean|false|none|none|

PdfPropertiesDescriptor

{
  "bookmarks": {
    "enabled": true
  },
  "encryption": {
    "contentCopyingAllowed": true,
    "editingAllowed": false,
    "ownerPassword": "string",
    "printingAllowed": true,
    "screenReaderAccessAllowed": true,
    "userPassword": "string"
  },
  "pdfVersion": "1.7"
}

The PDF production properties

Properties

|Name|Type|Required|Restrictions|Description| |---|---|---|---|---| |bookmarks|BookmarksPropertiesDescriptor|false|none|Specifies properties for bookmarks generation. By default bookmark generation settings are fetched from template settings| |encryption|PdfEncryptionPropertiesDescriptor|false|none|Specifies PDF encryption (encryption is not used by default)| |pdfVersion|PdfVersionDescriptor|false|none|Target PDF version|

PdfVersionDescriptor

"1.7"

Target PDF version

Properties

|Name|Type|Required|Restrictions|Description| |---|---|---|---|---| |anonymous|string|false|none|Target PDF version|

Enumerated Values

|Property|Value| |---|---| |anonymous|1.7| |anonymous|2.0|

ProcessingReport

{
  "entries": [
    {
      "message": "string",
      "severity": "error"
    }
  ]
}

Object containing information regarding problems during PDF production

Properties

|Name|Type|Required|Restrictions|Description| |---|---|---|---|---| |entries|[ProcessingReportEntry]|false|none|List of report entry descriptors|

ProcessingReportEntry

{
  "message": "string",
  "severity": "error"
}

Report entry, such as a fixed problem in the template or a log message during PDF production

Properties

|Name|Type|Required|Restrictions|Description| |---|---|---|---|---| |message|string|false|none|Description of this entry| |severity|string|false|none|String describing entry's severity|

Enumerated Values

|Property|Value| |---|---| |severity|error| |severity|warn| |severity|info| |severity|debug| |severity|trace|

SdkDockerUserConfiguration

{
  "logAppenders": [
    {
      "type": "file"
    }
  ],
  "pdfProducerReportCache": {
    "expireAfterWrite": "P1DT2H3M4S",
    "maxSize": 0
  },
  "pdfProductionTemplateHttpFetchingMode": {
    "cacheTTL": {
      "nano": 0,
      "negative": true,
      "seconds": 0,
      "units": [
        {
          "dateBased": true,
          "timeBased": true,
          "duration": {},
          "durationEstimated": true
        }
      ],
      "zero": true
    }
  },
  "templateDeploymentFeature": {
    "enabled": true,
    "timeout": {
      "allBlockWaitMillis": 0,
      "eachOperationRetryCount": 0,
      "eachOperationRetryMillis": 0,
      "fetchAllDescriptorsWaitMillis": 0
    }
  }
}

Stores information about user configuration used. It is in the same format as application configuration file

Properties

|Name|Type|Required|Restrictions|Description| |---|---|---|---|---| |logAppenders|[LogAppenderConfiguration]|false|none|List of log appenders that is used to configure where to output the log messages. Log appender is an object with a defined type| |pdfProducerReportCache|CacheConfiguration|true|none|Configures how many and how long cached production reports are stored in memory| |pdfProductionTemplateHttpFetchingMode|PdfProductionTemplateHttpModeFetchingUserConfiguration|false|none|none| |templateDeploymentFeature|TemplateDeploymentFeatureConfiguration|false|none|Configures the template deployment feature with registering/unregistering and template deployment/undeployment|

StatusDescriptor

{
  "apiVersions": {
    "default": "string",
    "maximumSupported": "string",
    "minimumSupported": "string"
  },
  "features": {
    "property1": {
      "type": "string"
    },
    "property2": {
      "type": "string"
    }
  },
  "health": {
    "property1": {
      "healthy": true,
      "message": "string"
    },
    "property2": {
      "healthy": true,
      "message": "string"
    }
  },
  "sdkVersion": "string",
  "userConfiguration": {
    "logAppenders": [
      {
        "type": "file"
      }
    ],
    "pdfProducerReportCache": {
      "expireAfterWrite": "P1DT2H3M4S",
      "maxSize": 0
    },
    "pdfProductionTemplateHttpFetchingMode": {
      "cacheTTL": {
        "nano": 0,
        "negative": true,
        "seconds": 0,
        "units": [
          {}
        ],
        "zero": true
      }
    },
    "templateDeploymentFeature": {
      "enabled": true,
      "timeout": {
        "allBlockWaitMillis": 0,
        "eachOperationRetryCount": 0,
        "eachOperationRetryMillis": 0,
        "fetchAllDescriptorsWaitMillis": 0
      }
    }
  }
}

Descriptor describing application status

Properties

|Name|Type|Required|Restrictions|Description| |---|---|---|---|---| |apiVersions|ApiVersionsDescriptor|false|none|Information about API versions. Each request can specify the desired API version in the X-DITO-API-Version header| |features|object|false|none|Stores information about different features which are enabled. It is present if at least one feature is present| |» additionalProperties|FeatureDescriptor|false|none|Descriptor containing information about the feature| |health|object|false|none|The dictionary with server health checks| |» additionalProperties|HealthResultDescriptor|false|none|Descriptor containing the health check result information| |sdkVersion|string(major.minor.build)|false|none|Version of the iText DITO SDK| |userConfiguration|SdkDockerUserConfiguration|false|none|Stores information about user configuration used. It is in the same format as application configuration file|

TemplateDeploymentFeatureConfiguration

{
  "enabled": true,
  "timeout": {
    "allBlockWaitMillis": 0,
    "eachOperationRetryCount": 0,
    "eachOperationRetryMillis": 0,
    "fetchAllDescriptorsWaitMillis": 0
  }
}

Configures the template deployment feature with registering/unregistering and template deployment/undeployment

Properties

|Name|Type|Required|Restrictions|Description| |---|---|---|---|---| |enabled|boolean|false|none|Enable the feature| |timeout|TimeoutConfiguration|false|none|Configure template operation wait timeouts|

TemplateDeploymentRequestDescriptor

{
  "alias": "string",
  "meta": {},
  "templateName": "string"
}

Descriptor containing information for deployment. When making arequest, the content type of this parameter must be set to application/json

Properties

|Name|Type|Required|Restrictions|Description| |---|---|---|---|---| |alias|string|true|none|Alias of the template deployment which can be later used during production| |meta|JsonNode|false|none|An additional JSON field that is stored and can be retrieved when requesting template deployment. Can be an array, object, or leaf element| |templateName|string|true|none|Name of the template inside template project|

TemplateDeploymentResponseDescriptor

{
  "alias": "string",
  "meta": {}
}

Descriptor containing alias and meta

Properties

|Name|Type|Required|Restrictions|Description| |---|---|---|---|---| |alias|string|true|none|Alias of the template deployment which can be later used during production| |meta|JsonNode|false|none|An additional JSON field that is stored and can be retrieved when requesting template deployment. Can be an array, object, or leaf element|

TimeoutConfiguration

{
  "allBlockWaitMillis": 0,
  "eachOperationRetryCount": 0,
  "eachOperationRetryMillis": 0,
  "fetchAllDescriptorsWaitMillis": 0
}

Configure template operation wait timeouts

Properties

|Name|Type|Required|Restrictions|Description| |---|---|---|---|---| |allBlockWaitMillis|integer(int64)|false|none|configures how much time we wait before timeout for such operations as register and unregister| |eachOperationRetryCount|integer(int64)|false|none|configures how many times we do retry before timeout for such operations as deploy, undeploy and PDF produce| |eachOperationRetryMillis|integer(int64)|false|none|configures how much time we wait before next retry to do such operations as deploy, undeploy and PDF produce| |fetchAllDescriptorsWaitMillis|integer(int64)|false|none|configures how much time we wait before timeout for fetch all descriptors operation|

TokenCreationRequestDescriptor

{
  "subject": "string"
}

Descriptor containing an identifying subject

Properties

|Name|Type|Required|Restrictions|Description| |---|---|---|---|---| |subject|string|true|none|Something identifying the future user of Docker SDK|

TokenCreationResponseDescriptor

{
  "token": "string"
}

Descriptor containing authorization token

Properties

|Name|Type|Required|Restrictions|Description| |---|---|---|---|---| |token|string|false|none|The token that should be used for authorization|