iText DITO 2.3 Docker REST API
Docker SDK REST API v2.3.8
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:Request | Response |
POST localhost:42/api/admin/registerContent-Type application/jsonAccept application/pdfBody{ "subject": "best name"} | 200 OKContent-Type application/jsonBody{ "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 authenticationstatus
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: bearerAuthunregister
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: bearerAuthLicense
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:Request | Response |
GET localhost:42/api/license | 200 OKContent-Type application/jsonBody{ "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 authenticationPDF 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:Request | Response |
POST localhost:42/api/pdf-producerContent-Type application/jsonAccept application/pdfBody{ "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 |
Request | Response |
POST localhost:42/api/pdf-producerContent-Type application/jsonAccept application/pdfBody{ "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 restrictionsCan 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 PDFName | Type | Description |
...same as production request descriptor... | ...same as production request descriptor... | ...same as production request descriptor... |
path | string (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
Name | Type | Description |
path | string (path) | Path to the produced PDF relative to work directory |
report(since 1.4.1) | PdfProducerReportDescriptor | Contains 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:Request | Response |
POST localhost:42/api/pdf-producerContent-Type application/jsonBody{ "templateProjectPath": "dummy.dito", "templateName": "output", "data": "sample.json"} | 200 OKContent-Type application/jsonBody{ "path": "2019-09-23-13.00.44.472000000.pdf", "report": { "pageCount": 1, "templateRepairReport": { "entries": [] }, "pdfProductionReport": { "entries": [] }, "id": "65fff9f3-db63-4c6d-ad0f-81418b4376b7", "highestSeverity": null }} |
Request | Response |
POST localhost:42/api/pdf-producerContent-Type application/jsonAccept application/pdfBody{ "templateProjectPath": "dummy.dito", "templateName": "output", "data": { "bind": "from request" }, "path": "custom/path/to/file.pdf", "properties": { "pdfVersion": "2.0" }} | 200 OKContent-Type application/jsonBody{ "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 authenticationgetReports
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 authenticationgetReport
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:Request | Response |
GET localhost:42/api/pdf-producer/reports/65fff9f3-db63-4c6d-ad0f-81418b4376b7Content-Type application/json | 200 OKContent-Type application/jsonBody{ "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 authenticationDeprecated
Deprecated API that is still usable for compatibility reasons
getReport_1
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:Request | Response |
GET localhost:42/api/pdf-producer/reports/65fff9f3-db63-4c6d-ad0f-81418b4376b7Content-Type application/json | 200 OKContent-Type application/jsonBody{ "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 authenticationStatus
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 authenticationDeployment
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 authenticationdeploy
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:Request | Response |
POST localhost:42/api/deploymentsContent-Type multipart/form-dataAuthorization Bearer ToKeNVaLuEBodyContent-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/jsonBody{ "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: bearerAuthget
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 authenticationundeploy
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: bearerAuthPackage 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 authenticationSchemas
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| |»» duration|object|false|none|none| |»»» seconds|integer(int64)|false|none|none| |»»» negative|boolean|false|none|none| |»»» zero|boolean|false|none|none| |»»» nano|integer(int32)|false|none|none| |»» timeBased|boolean|false|none|none| |»» dateBased|boolean|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": [
{
"duration": {
"seconds": 0,
"negative": true,
"zero": true,
"nano": 0
},
"timeBased": true,
"dateBased": true,
"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| |»» duration|object|false|none|none| |»»» seconds|integer(int64)|false|none|none| |»»» negative|boolean|false|none|none| |»»» zero|boolean|false|none|none| |»»» nano|integer(int32)|false|none|none| |»» timeBased|boolean|false|none|none| |»» dateBased|boolean|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": [
{
"duration": {},
"timeBased": true,
"dateBased": true,
"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|