openapi: 3.2.0 info: title: dotCMS REST Apps API version: '3' description: Third-party application integration and configuration servers: - url: / description: dotCMS Server tags: - name: Apps description: Third-party application integration and configuration paths: /api/v1/apps: get: tags: - Apps operationId: listAvailableApps parameters: - name: filter in: query schema: type: string responses: default: description: default response content: application/json: {} application/javascript: {} summary: List available apps x-summary-source: derived post: tags: - Apps operationId: createApp requestBody: content: multipart/form-data: schema: $ref: '#/components/schemas/FormDataMultiPart' responses: default: description: default response content: application/json: {} application/javascript: {} summary: Create app x-summary-source: derived delete: tags: - Apps operationId: deleteIndividualAppSecret requestBody: content: '*/*': schema: $ref: '#/components/schemas/DeleteSecretForm' responses: default: description: default response content: application/json: {} application/javascript: {} summary: Delete individual app secret x-summary-source: derived /api/v1/apps/{key}/{siteId}: get: tags: - Apps operationId: getAppDetail parameters: - name: key in: path required: true schema: type: string - name: siteId in: path required: true schema: type: string responses: default: description: default response content: application/json: {} application/javascript: {} summary: Get app detail x-summary-source: derived put: tags: - Apps operationId: updateAppIndividualSecret parameters: - name: key in: path required: true schema: type: string - name: siteId in: path required: true schema: type: string requestBody: content: '*/*': schema: $ref: '#/components/schemas/SecretForm' responses: default: description: default response content: application/json: {} application/javascript: {} summary: Update app individual secret x-summary-source: derived post: tags: - Apps operationId: createAppSecrets parameters: - name: key in: path required: true schema: type: string - name: siteId in: path required: true schema: type: string requestBody: content: '*/*': schema: $ref: '#/components/schemas/SecretForm' responses: default: description: default response content: application/json: {} application/javascript: {} summary: Create app secrets x-summary-source: derived delete: tags: - Apps operationId: deleteAllAppSecrets parameters: - name: key in: path required: true schema: type: string - name: siteId in: path required: true schema: type: string responses: default: description: default response content: application/json: {} application/javascript: {} summary: Delete all app secrets x-summary-source: derived /api/v1/apps/{key}: get: tags: - Apps operationId: getAppByKey parameters: - name: key in: path required: true schema: type: string responses: default: description: default response content: application/json: {} application/javascript: {} summary: Get app by key x-summary-source: derived delete: tags: - Apps operationId: deleteApp parameters: - name: key in: path required: true schema: type: string - name: removeDescriptor in: query schema: type: boolean responses: default: description: default response content: application/json: {} application/javascript: {} summary: Delete app x-summary-source: derived /api/v1/apps/export: post: tags: - Apps operationId: exportSecrets requestBody: content: '*/*': schema: $ref: '#/components/schemas/ExportSecretForm' responses: default: description: default response content: application/octet-stream: {} application/json: {} summary: Export secrets x-summary-source: derived /api/v1/apps/import: post: tags: - Apps operationId: importSecrets requestBody: content: multipart/form-data: schema: $ref: '#/components/schemas/FormDataMultiPart' responses: default: description: default response content: application/json: {} summary: Import secrets x-summary-source: derived /api/v1/ema: get: tags: - Apps operationId: getDetails responses: default: description: default response content: application/json: {} application/javascript: {} summary: Get details x-summary-source: derived components: schemas: FormDataBodyPart: type: object properties: contentDisposition: $ref: '#/components/schemas/ContentDisposition' entity: type: object headers: type: object additionalProperties: type: array items: type: string mediaType: type: object properties: type: type: string subtype: type: string parameters: type: object additionalProperties: type: string wildcardType: type: boolean wildcardSubtype: type: boolean messageBodyWorkers: $ref: '#/components/schemas/MessageBodyWorkers' parent: $ref: '#/components/schemas/MultiPart' providers: type: object formDataContentDisposition: $ref: '#/components/schemas/FormDataContentDisposition' simple: type: boolean name: type: string value: type: string parameterizedHeaders: type: object additionalProperties: type: array items: $ref: '#/components/schemas/ParameterizedHeader' BodyPart: type: object properties: contentDisposition: $ref: '#/components/schemas/ContentDisposition' entity: type: object headers: type: object additionalProperties: type: array items: type: string mediaType: type: object properties: type: type: string subtype: type: string parameters: type: object additionalProperties: type: string wildcardType: type: boolean wildcardSubtype: type: boolean messageBodyWorkers: $ref: '#/components/schemas/MessageBodyWorkers' parent: $ref: '#/components/schemas/MultiPart' providers: type: object parameterizedHeaders: type: object additionalProperties: type: array items: $ref: '#/components/schemas/ParameterizedHeader' FormDataMultiPart: type: object properties: contentDisposition: $ref: '#/components/schemas/ContentDisposition' entity: type: object headers: type: object additionalProperties: type: array items: type: string mediaType: type: object properties: type: type: string subtype: type: string parameters: type: object additionalProperties: type: string wildcardType: type: boolean wildcardSubtype: type: boolean messageBodyWorkers: $ref: '#/components/schemas/MessageBodyWorkers' parent: $ref: '#/components/schemas/MultiPart' providers: type: object bodyParts: type: array items: $ref: '#/components/schemas/BodyPart' fields: type: object additionalProperties: type: array items: $ref: '#/components/schemas/FormDataBodyPart' parameterizedHeaders: type: object additionalProperties: type: array items: $ref: '#/components/schemas/ParameterizedHeader' SecretForm: type: object DeleteSecretForm: required: - key - params - siteId type: object properties: key: type: string siteId: type: string params: uniqueItems: true type: array items: type: string MessageBodyWorkers: type: object ExportSecretForm: required: - appKeysBySite - exportAll - password type: object properties: password: type: string exportAll: type: boolean appKeys: type: object additionalProperties: uniqueItems: true type: array items: type: string writeOnly: true appKeysBySite: type: object additionalProperties: uniqueItems: true type: array items: type: string ContentDisposition: type: object properties: type: type: string parameters: type: object additionalProperties: type: string fileName: type: string creationDate: type: string format: date-time modificationDate: type: string format: date-time readDate: type: string format: date-time size: type: integer format: int64 ParameterizedHeader: type: object properties: value: type: string parameters: type: object additionalProperties: type: string FormDataContentDisposition: type: object properties: type: type: string parameters: type: object additionalProperties: type: string fileName: type: string creationDate: type: string format: date-time modificationDate: type: string format: date-time readDate: type: string format: date-time size: type: integer format: int64 name: type: string MultiPart: type: object properties: contentDisposition: $ref: '#/components/schemas/ContentDisposition' entity: type: object headers: type: object additionalProperties: type: array items: type: string mediaType: type: object properties: type: type: string subtype: type: string parameters: type: object additionalProperties: type: string wildcardType: type: boolean wildcardSubtype: type: boolean messageBodyWorkers: $ref: '#/components/schemas/MessageBodyWorkers' parent: $ref: '#/components/schemas/MultiPart' providers: type: object bodyParts: type: array items: $ref: '#/components/schemas/BodyPart' parameterizedHeaders: type: object additionalProperties: type: array items: $ref: '#/components/schemas/ParameterizedHeader'