openapi: 3.2.0 info: title: Themes API version: '' servers: - url: https://{tenant}.{region}.qlikcloud.com variables: region: default: us description: The region the tenant is hosted in tenant: default: your-tenant description: Name of the tenant that will be called tags: - name: Themes paths: /api/v1/themes: get: tags: - Themes summary: List all themes responses: '200': content: application/json: schema: $ref: '#/components/schemas/themes' description: OK. Lists all themes. description: Lists all imported themes in the tenant. operationId: getThemes x-qlik-visibility: public x-qlik-stability: stable x-qlik-deprecated: false x-qlik-tier: tier: '1' limit: 1000 post: tags: - Themes summary: Create a new theme responses: '201': content: application/json: schema: $ref: '#/components/schemas/theme' description: Created. Creates a new theme and returns it. '409': content: application/json: schema: $ref: '#/components/schemas/error' description: Conflict. Resource with same unique identity already exists. '415': content: application/json: schema: $ref: '#/components/schemas/error' description: Unsupported media type. Body of the payload is not a valid JSON object. '422': content: application/json: schema: $ref: '#/components/schemas/error' description: Unprocessable entity. Validation error. default: content: application/json: schema: $ref: '#/components/schemas/error' description: Unexpected error. description: Creates a new theme. Accepts either provided file or data object. The name of the new theme must be different to any existing themes. operationId: createTheme requestBody: content: multipart/form-data: schema: type: object properties: data: $ref: '#/components/schemas/theme' file: type: string format: binary description: Theme archive. required: true x-qlik-visibility: public x-qlik-stability: stable x-qlik-deprecated: false x-qlik-tier: tier: '2' limit: 100 /api/v1/themes/{id}: get: tags: - Themes summary: Return specific theme responses: '200': content: application/json: schema: $ref: '#/components/schemas/theme' description: OK. Returns theme with {id}. '403': content: application/json: schema: $ref: '#/components/schemas/error' description: Forbidden. User is not authorized to read theme with {id}. '404': content: application/json: schema: $ref: '#/components/schemas/error' description: Not found. Could not find the theme with {id}. '410': content: application/json: schema: $ref: '#/components/schemas/error' description: Gone. Theme with {id} has been deleted. parameters: - in: path name: id schema: type: string required: true description: Theme identifier or its qextFilename description: Returns a specific theme matching either theme ID or theme name. operationId: getThemeById x-qlik-visibility: public x-qlik-stability: stable x-qlik-deprecated: false x-qlik-tier: tier: '1' limit: 1000 patch: tags: - Themes summary: Update a specific theme responses: '200': content: application/json: schema: $ref: '#/components/schemas/themes' description: OK. Theme has been updated. '403': content: application/json: schema: $ref: '#/components/schemas/error' description: Forbidden. User is not authorized to update theme with {id}. '404': content: application/json: schema: $ref: '#/components/schemas/error' description: Not found. Could not find the theme with {id}. '409': content: application/json: schema: $ref: '#/components/schemas/error' description: Conflict. Resource with same unique identity already exists. '415': content: application/json: schema: $ref: '#/components/schemas/error' description: Unsupported media type. Body of the payload is not a valid JSON object. '422': content: application/json: schema: $ref: '#/components/schemas/error' description: Unprocessable entity. Validation error. default: content: application/json: schema: $ref: '#/components/schemas/error' description: Unexpected error. parameters: - in: path name: id schema: type: string required: true description: Theme identifier or its qextFilename. description: Updates a specific theme matching either theme ID or theme name. Accepts either provided file or data object. operationId: updateThemeById requestBody: content: multipart/form-data: schema: type: object properties: data: $ref: '#/components/schemas/theme' file: type: string format: binary description: Theme archive. required: true x-qlik-visibility: public x-qlik-stability: stable x-qlik-deprecated: false x-qlik-tier: tier: '2' limit: 100 delete: tags: - Themes summary: Delete specific theme responses: '204': description: No content. Soft deletes the theme. '403': content: application/json: schema: $ref: '#/components/schemas/error' description: Forbidden. User is not authorized to delete themes with {id}. '404': content: application/json: schema: $ref: '#/components/schemas/error' description: Not found. Could not find the theme with {id}. '410': content: application/json: schema: $ref: '#/components/schemas/error' description: Gone. Theme with {id} has been deleted. parameters: - in: path name: id schema: type: string required: true description: Theme identifier or its qextFilename. description: Deletes a specific theme matching either theme ID or theme name. operationId: deleteThemeById x-qlik-visibility: public x-qlik-stability: stable x-qlik-deprecated: false x-qlik-tier: tier: '2' limit: 100 /api/v1/themes/{id}/file: get: tags: - Themes summary: Download theme as an archive responses: '200': content: application/zip: schema: type: string format: binary application/octet-stream: schema: type: string format: binary description: OK. Theme exists. Returns the theme archive. '403': content: application/json: schema: $ref: '#/components/schemas/error' description: Forbidden. User is not authorized to read theme with {id}. '404': content: application/json: schema: $ref: '#/components/schemas/error' description: Not found. Could not find the theme with {id}. '410': content: application/json: schema: $ref: '#/components/schemas/error' description: Gone. Theme with {id} has been deleted. parameters: - in: path name: id schema: type: string required: true description: Theme identifier or its qextFilename description: Downloads all files in the theme matching either theme ID or theme name as a `.zip` archive. operationId: getThemeArchive x-qlik-visibility: public x-qlik-stability: stable x-qlik-deprecated: false x-qlik-tier: tier: '1' limit: 1000 /api/v1/themes/{id}/file/{filepath}: get: tags: - Themes summary: Download file from theme archive responses: '200': description: OK. Theme exists and the file specified exists. Returns the specific file. '403': content: application/json: schema: $ref: '#/components/schemas/error' description: Forbidden. User is not authorized to read theme with {id}. '404': content: application/json: schema: $ref: '#/components/schemas/error' description: Not found. Could not find a theme with {id} or the file does not exist in the archive. '410': content: application/json: schema: $ref: '#/components/schemas/error' description: Gone. Theme with {id} has been deleted. parameters: - in: path name: filepath schema: type: string example: css/styles.css required: true description: Path to the file location within the specified theme archive. Folders separated with forward slashes. - in: path name: id schema: type: string required: true description: Theme identifier or its qextFilename. description: Downloads a file from the theme matching either theme ID or theme name, identified by the file path within the imported extension. operationId: getFileFromThemeArchive x-qlik-visibility: public x-qlik-stability: stable x-qlik-deprecated: false x-qlik-tier: tier: '1' limit: 1000 components: schemas: error: required: - code - title properties: meta: $ref: '#/components/schemas/meta' title: type: string description: Title of the HTTP status code. source: type: object description: Optional JSON patch object pointing to an invalid property. status: type: number description: The HTTP status code. traceId: type: string description: The active traceId. description: An error object. themes: type: object required: - data properties: data: type: array items: $ref: '#/components/schemas/theme' meta: properties: stack: type: string description: Full stack trace of the error that was raised. message: type: string description: A more detailed message explaining the error. resourceName: type: string description: Name of the resource related to the error. If there is a conflict, it is the name of the model attempting to be created. description: Object containing meta data regarding an error. It does not necessarily contain all the properties. theme: type: object properties: id: type: string readOnly: true file: type: object description: The file that was uploaded with the theme. icon: type: string description: Icon to show in the client. name: type: string description: The display name of this theme. tags: type: array items: type: string description: List of tags. type: type: string description: The type of this theme (visualization, etc.). author: type: string description: Author of the theme. userId: type: string readOnly: true license: type: string description: Under which license this theme is published. version: type: string description: Version of the theme. homepage: type: string description: Home page of the theme. keywords: type: string description: Keywords for the theme. supplier: type: string description: Supplier of the theme. tenantId: type: string readOnly: true updateAt: type: string format: date readOnly: true createdAt: type: string format: date readOnly: true repository: type: string description: Link to the theme source code. description: type: string description: Description of the theme. qextVersion: type: string description: The version from the qext file that was uploaded with this extension. dependencies: type: object description: Map of dependencies describing version of the component it requires. qextFilename: type: string description: The name of the qext file that was uploaded with this theme. migrationState: type: string readOnly: true description: The migration state of the theme. It can be either "READY_TO_MOVE", "IN_PROGRESS" or "COMPLETED". description: The theme model.