openapi: 3.0.0 info: title: Corteza compose API description: Corteza compose REST API definition version: '2022.9' contact: email: info@cortezaproject.org license: name: Apache 2.0 url: http://www.apache.org/licenses/LICENSE-2.0.html paths: /compose/namespace/: get: tags: - Namespaces summary: List namespaces responses: '200': description: OK parameters: - in: query name: query description: Search query required: false schema: &ref_0 type: string - in: query name: slug description: Search by namespace slug required: false schema: *ref_0 - in: query name: limit description: Limit required: false schema: &ref_10 type: string - in: query name: incTotal description: Include total counter required: false schema: &ref_17 type: boolean - in: query name: labels description: Labels required: false schema: *ref_0 - in: query name: pageCursor description: Page cursor required: false schema: *ref_0 - in: query name: sort description: Sort items required: false schema: *ref_0 post: tags: - Namespaces summary: Create namespace responses: '200': description: OK requestBody: content: application/json: schema: type: object properties: &ref_1 name: type: string description: Name labels: type: string description: Labels slug: type: string description: Slug (url path part) enabled: type: boolean description: Enabled meta: type: string format: json description: Meta data required: - name - meta application/x-www-form-urlencoded: schema: type: object properties: *ref_1 /compose/namespace/{namespaceID}: get: tags: - Namespaces summary: Read namespace responses: '200': description: OK parameters: - in: path name: namespaceID description: ID required: true schema: &ref_2 type: string post: tags: - Namespaces summary: Update namespace responses: '200': description: OK parameters: - in: path name: namespaceID description: ID required: true schema: *ref_2 requestBody: content: application/json: schema: type: object properties: &ref_3 name: type: string description: Name slug: type: string description: Slug (url path part) enabled: type: boolean description: Enabled meta: type: string format: json description: Meta data labels: type: string description: Labels updatedAt: type: string format: date-time description: Last update (or creation) date required: - name - meta application/x-www-form-urlencoded: schema: type: object properties: *ref_3 delete: tags: - Namespaces summary: Delete namespace responses: '200': description: OK parameters: - in: path name: namespaceID description: ID required: true schema: *ref_2 /compose/namespace/upload: post: tags: - Namespaces summary: Upload namespace assets responses: '200': description: OK requestBody: content: application/json: schema: type: object properties: &ref_4 upload: type: string format: binary description: File to upload required: - upload application/x-www-form-urlencoded: schema: type: object properties: *ref_4 /compose/namespace/{namespaceID}/clone: post: tags: - Namespaces summary: Clone compose namespace responses: '200': description: OK parameters: - in: path name: namespaceID description: ID required: true schema: *ref_2 requestBody: content: application/json: schema: type: object properties: &ref_5 name: type: string description: Duplicate name slug: type: string description: Duplicate slug required: - name - slug application/x-www-form-urlencoded: schema: type: object properties: *ref_5 /compose/namespace/{namespaceID}/export/{filename}.zip: get: tags: - Namespaces summary: Export compose namespace responses: '200': description: OK parameters: - in: path name: namespaceID description: ID required: true schema: *ref_2 - in: path name: filename description: Output file name required: true schema: *ref_0 - in: path name: ext description: Output file ext required: true schema: *ref_0 /compose/namespace/import: post: tags: - Namespaces summary: Initiate namespace import session responses: '200': description: OK requestBody: content: application/json: schema: type: object properties: &ref_6 upload: type: string format: binary description: File import required: - upload application/x-www-form-urlencoded: schema: type: object properties: *ref_6 /compose/namespace/import/{sessionID}: post: tags: - Namespaces summary: Run namespace import responses: '200': description: OK parameters: - in: path name: sessionID description: Import session required: true schema: *ref_2 requestBody: content: application/json: schema: type: object properties: &ref_7 name: type: string description: Imported namespace name slug: type: string description: Imported namespace slug required: - name - slug application/x-www-form-urlencoded: schema: type: object properties: *ref_7 /compose/namespace/{namespaceID}/trigger: post: tags: - Namespaces summary: Fire compose:namespace trigger responses: '200': description: OK parameters: - in: path name: namespaceID description: ID required: true schema: *ref_2 requestBody: content: application/json: schema: type: object properties: &ref_8 script: type: string description: Script to execute args: type: string description: Arguments to pass to the script required: - script application/x-www-form-urlencoded: schema: type: object properties: *ref_8 /compose/namespace/{namespaceID}/translation: get: tags: - Namespaces summary: List translation responses: '200': description: OK parameters: - in: path name: namespaceID description: ID required: true schema: *ref_2 patch: tags: - Namespaces summary: Update translation responses: '200': description: OK parameters: - in: path name: namespaceID description: ID required: true schema: *ref_2 requestBody: content: application/json: schema: type: object properties: &ref_9 translations: type: string description: Resource translation to upsert required: - translations application/x-www-form-urlencoded: schema: type: object properties: *ref_9 /compose/namespace/{namespaceID}/page/: get: tags: - Pages summary: List available pages responses: '200': description: OK parameters: - in: query name: selfID description: Parent page ID required: false schema: *ref_2 - in: query name: moduleID description: Module ID required: false schema: *ref_2 - in: query name: query description: Search query required: false schema: *ref_0 - in: query name: handle description: Search by handle required: false schema: *ref_0 - in: query name: labels description: Labels required: false schema: *ref_0 - in: query name: limit description: Limit required: false schema: *ref_10 - in: query name: pageCursor description: Page cursor required: false schema: *ref_0 - in: query name: sort description: Sort items required: false schema: *ref_0 - in: path name: namespaceID description: Namespace ID required: true schema: *ref_2 post: tags: - Pages summary: Create page responses: '200': description: OK requestBody: content: application/json: schema: type: object properties: &ref_11 selfID: type: string description: Parent Page ID moduleID: type: string description: Module ID title: type: string description: Title handle: type: string description: Handle description: type: string description: Description weight: type: integer description: Page tree weight labels: type: string description: Labels visible: type: boolean description: Visible in navigation blocks: type: string format: json description: Blocks JSON config: type: string format: json description: Config JSON required: - title application/x-www-form-urlencoded: schema: type: object properties: *ref_11 parameters: - in: path name: namespaceID description: Namespace ID required: true schema: *ref_2 /compose/namespace/{namespaceID}/page/{pageID}: get: tags: - Pages summary: Get page details responses: '200': description: OK parameters: - in: path name: namespaceID description: Namespace ID required: true schema: *ref_2 - in: path name: pageID description: Page ID required: true schema: *ref_2 post: tags: - Pages summary: Update page responses: '200': description: OK parameters: - in: path name: namespaceID description: Namespace ID required: true schema: *ref_2 - in: path name: pageID description: Page ID required: true schema: *ref_2 requestBody: content: application/json: schema: type: object properties: &ref_12 selfID: type: string description: Parent Page ID moduleID: type: string description: Module ID (optional) title: type: string description: Title handle: type: string description: Handle description: type: string description: Description weight: type: integer description: Page tree weight labels: type: string description: Labels visible: type: boolean description: Visible in navigation blocks: type: string format: json description: Blocks JSON config: type: string format: json description: Config JSON required: - title application/x-www-form-urlencoded: schema: type: object properties: *ref_12 delete: tags: - Pages summary: Delete page responses: '200': description: OK parameters: - in: path name: namespaceID description: Namespace ID required: true schema: *ref_2 - in: path name: pageID description: Page ID required: true schema: *ref_2 - in: query name: strategy description: Page delete strategy (abort, force, rebase, cascade) required: false schema: *ref_0 /compose/namespace/{namespaceID}/page/tree: get: tags: - Pages summary: Get page all (non-record) pages, hierarchically responses: '200': description: OK parameters: - in: path name: namespaceID description: Namespace ID required: true schema: *ref_2 /compose/namespace/{namespaceID}/page/{selfID}/reorder: post: tags: - Pages summary: Reorder pages responses: '200': description: OK parameters: - in: path name: namespaceID description: Namespace ID required: true schema: *ref_2 - in: path name: selfID description: Parent page ID required: true schema: *ref_2 requestBody: content: application/json: schema: type: object properties: &ref_13 pageIDs: type: array items: *ref_0 description: Page ID order required: - pageIDs application/x-www-form-urlencoded: schema: type: object properties: *ref_13 /compose/namespace/{namespaceID}/page/{pageID}/attachment: post: tags: - Pages summary: Uploads attachment to page responses: '200': description: OK parameters: - in: path name: namespaceID description: Namespace ID required: true schema: *ref_2 - in: path name: pageID description: Page ID required: true schema: *ref_2 requestBody: content: application/json: schema: type: object properties: &ref_14 upload: type: string format: binary description: File to upload required: - upload application/x-www-form-urlencoded: schema: type: object properties: *ref_14 /compose/namespace/{namespaceID}/page/{pageID}/trigger: post: tags: - Pages summary: Fire compose:page trigger responses: '200': description: OK parameters: - in: path name: namespaceID description: Namespace ID required: true schema: *ref_2 - in: path name: pageID description: Page ID required: true schema: *ref_2 requestBody: content: application/json: schema: type: object properties: &ref_15 script: type: string description: Script to execute args: type: string description: Arguments to pass to the script required: - script application/x-www-form-urlencoded: schema: type: object properties: *ref_15 /compose/namespace/{namespaceID}/page/{pageID}/translation: get: tags: - Pages summary: List page translation responses: '200': description: OK parameters: - in: path name: namespaceID description: Namespace ID required: true schema: *ref_2 - in: path name: pageID description: ID required: true schema: *ref_2 patch: tags: - Pages summary: Update page translation responses: '200': description: OK parameters: - in: path name: namespaceID description: Namespace ID required: true schema: *ref_2 - in: path name: pageID description: ID required: true schema: *ref_2 requestBody: content: application/json: schema: type: object properties: &ref_16 translations: type: string description: Resource translation to upsert required: - translations application/x-www-form-urlencoded: schema: type: object properties: *ref_16 /compose/namespace/{namespaceID}/module/: get: tags: - Modules summary: List modules responses: '200': description: OK parameters: - in: query name: query description: Search query required: false schema: *ref_0 - in: query name: name description: Search by name required: false schema: *ref_0 - in: query name: handle description: Search by handle required: false schema: *ref_0 - in: query name: limit description: Limit required: false schema: *ref_10 - in: query name: incTotal description: Include total counter required: false schema: *ref_17 - in: query name: pageCursor description: Page cursor required: false schema: *ref_0 - in: query name: labels description: Labels required: false schema: *ref_0 - in: query name: sort description: Sort items required: false schema: *ref_0 - in: path name: namespaceID description: Namespace ID required: true schema: *ref_2 post: tags: - Modules summary: Create module responses: '200': description: OK requestBody: content: application/json: schema: type: object properties: &ref_18 name: type: string description: Name handle: type: string description: Handle config: type: string description: Configuration meta: type: string format: json description: Meta data fields: type: array items: &ref_19 type: object properties: fieldID: type: string format: uuid name: type: string kind: type: string label: type: string defaultValue: type: array items: type: string maxLength: type: integer isRequired: type: boolean isPrivate: type: boolean isMulti: type: boolean isSystem: type: boolean options: type: object description: Fields labels: type: string description: Labels required: - name - meta - fields application/x-www-form-urlencoded: schema: type: object properties: *ref_18 parameters: - in: path name: namespaceID description: Namespace ID required: true schema: *ref_2 /compose/namespace/{namespaceID}/module/{moduleID}: get: tags: - Modules summary: Read module responses: '200': description: OK parameters: - in: path name: namespaceID description: Namespace ID required: true schema: *ref_2 - in: path name: moduleID description: Module ID required: true schema: *ref_2 post: tags: - Modules summary: Update module responses: '200': description: OK parameters: - in: path name: namespaceID description: Namespace ID required: true schema: *ref_2 - in: path name: moduleID description: Module ID required: true schema: *ref_2 requestBody: content: application/json: schema: type: object properties: &ref_20 name: type: string description: Name handle: type: string description: Handle config: type: string description: Configuration meta: type: string format: json description: Meta data fields: type: array items: *ref_19 description: Fields labels: type: string description: Labels updatedAt: type: string format: date-time description: Last update (or creation) date required: - name - meta - fields application/x-www-form-urlencoded: schema: type: object properties: *ref_20 delete: tags: - Modules summary: Delete module responses: '200': description: OK parameters: - in: path name: namespaceID description: Namespace ID required: true schema: *ref_2 - in: path name: moduleID description: Module ID required: true schema: *ref_2 /compose/namespace/{namespaceID}/module/{moduleID}/trigger: post: tags: - Modules summary: Fire compose:module trigger responses: '200': description: OK parameters: - in: path name: namespaceID description: Namespace ID required: true schema: *ref_2 - in: path name: moduleID description: ID required: true schema: *ref_2 requestBody: content: application/json: schema: type: object properties: &ref_21 script: type: string description: Script to execute args: type: string description: Arguments to pass to the script required: - script application/x-www-form-urlencoded: schema: type: object properties: *ref_21 /compose/namespace/{namespaceID}/module/{moduleID}/translation: get: tags: - Modules summary: List moudle translation responses: '200': description: OK parameters: - in: path name: namespaceID description: Namespace ID required: true schema: *ref_2 - in: path name: moduleID description: ID required: true schema: *ref_2 patch: tags: - Modules summary: Update module translation responses: '200': description: OK parameters: - in: path name: namespaceID description: Namespace ID required: true schema: *ref_2 - in: path name: moduleID description: ID required: true schema: *ref_2 requestBody: content: application/json: schema: type: object properties: &ref_22 translations: type: string description: Resource translation to upsert required: - translations application/x-www-form-urlencoded: schema: type: object properties: *ref_22 /compose/namespace/{namespaceID}/module/{moduleID}/record/report: get: tags: - Records summary: Generates report from module records responses: '200': description: OK parameters: - in: query name: metrics description: 'Metrics (eg: ''SUM(money), MAX(calls)'')' required: false schema: *ref_0 - in: query name: dimensions description: 'Dimensions (eg: ''DATE(foo), status'')' required: true schema: *ref_0 - in: query name: filter description: 'Filter (eg: ''DATE(foo) > 2010'')' required: false schema: *ref_0 - in: path name: namespaceID description: Namespace ID required: true schema: *ref_2 - in: path name: moduleID description: Module ID required: true schema: *ref_2 /compose/namespace/{namespaceID}/module/{moduleID}/record/: get: tags: - Records summary: List/read records from module section responses: '200': description: OK parameters: - in: query name: query description: Record filtering query required: false schema: *ref_0 - in: query name: meta description: Record meta data required: false schema: *ref_0 - in: query name: deleted description: Exclude (0, default), include (1) or return only (2) deleted records required: false schema: *ref_10 - in: query name: limit description: Limit required: false schema: *ref_10 - in: query name: incTotal description: Include total records counter required: false schema: *ref_17 - in: query name: incPageNavigation description: Include page navigation required: false schema: *ref_17 - in: query name: pageCursor description: Page cursor required: false schema: *ref_0 - in: query name: sort description: Sort items required: false schema: *ref_0 - in: path name: namespaceID description: Namespace ID required: true schema: *ref_2 - in: path name: moduleID description: Module ID required: true schema: *ref_2 post: tags: - Records summary: Create record in module section responses: '200': description: OK requestBody: content: application/json: schema: type: object properties: &ref_23 values: type: array items: &ref_28 type: object properties: name: type: string value: type: string description: Record values ownedBy: type: string description: Record Owner records: type: array items: &ref_29 type: object properties: recordID: type: string format: uuid moduleID: type: string format: uuid namespaceID: type: string format: uuid values: type: array items: type: object properties: name: type: string value: type: string createdAt: type: string format: date-time updatedAt: type: string format: date-time deletedAt: type: string format: date-time ownedBy: type: string format: uuid createdBy: type: string format: uuid updatedBy: type: string format: uuid deletedBy: type: string format: uuid description: Records meta: type: string description: Record meta-data application/x-www-form-urlencoded: schema: type: object properties: *ref_23 parameters: - in: path name: namespaceID description: Namespace ID required: true schema: *ref_2 - in: path name: moduleID description: Module ID required: true schema: *ref_2 delete: tags: - Records summary: Delete record row from module section responses: '200': description: OK requestBody: content: application/json: schema: type: object properties: &ref_24 recordIDs: type: array items: *ref_0 description: IDs of records to delete truncate: type: boolean description: >- Remove ALL records of a specified module (pending implementation) application/x-www-form-urlencoded: schema: type: object properties: *ref_24 parameters: - in: path name: namespaceID description: Namespace ID required: true schema: *ref_2 - in: path name: moduleID description: Module ID required: true schema: *ref_2 /compose/namespace/{namespaceID}/module/{moduleID}/record/import: post: tags: - Records summary: Initiate record import session responses: '200': description: OK requestBody: content: application/json: schema: type: object properties: &ref_25 upload: type: string format: binary description: File import required: - upload application/x-www-form-urlencoded: schema: type: object properties: *ref_25 parameters: - in: path name: namespaceID description: Namespace ID required: true schema: *ref_2 - in: path name: moduleID description: Module ID required: true schema: *ref_2 /compose/namespace/{namespaceID}/module/{moduleID}/record/import/{sessionID}: patch: tags: - Records summary: Run record import responses: '200': description: OK parameters: - in: path name: namespaceID description: Namespace ID required: true schema: *ref_2 - in: path name: moduleID description: Module ID required: true schema: *ref_2 - in: path name: sessionID description: Import session required: true schema: *ref_2 requestBody: content: application/json: schema: type: object properties: &ref_26 fields: type: string format: json description: Fields defined by import file onError: type: string description: What happens if record fails to import required: - fields - onError application/x-www-form-urlencoded: schema: type: object properties: *ref_26 get: tags: - Records summary: Get import progress responses: '200': description: OK parameters: - in: path name: namespaceID description: Namespace ID required: true schema: *ref_2 - in: path name: moduleID description: Module ID required: true schema: *ref_2 - in: path name: sessionID description: Import session required: true schema: *ref_2 /compose/namespace/{namespaceID}/module/{moduleID}/record/export{filename}.{ext}: get: tags: - Records summary: 'Exports records that match ' responses: '200': description: OK parameters: - in: path name: namespaceID description: Namespace ID required: true schema: *ref_2 - in: path name: moduleID description: Module ID required: true schema: *ref_2 - in: path name: filename description: Filename to use required: true schema: *ref_0 - in: path name: ext description: Export format required: true schema: *ref_0 - in: query name: filter description: Filtering condition required: false schema: *ref_0 - in: query name: fields description: Fields to export required: true schema: type: array items: *ref_0 - in: query name: timezone description: Convert times to this timezone required: false schema: *ref_0 /compose/namespace/{namespaceID}/module/{moduleID}/record/exec/{procedure}: post: tags: - Records summary: Executes server-side procedure over one or more module records responses: '200': description: OK parameters: - in: path name: namespaceID description: Namespace ID required: true schema: *ref_2 - in: path name: moduleID description: Module ID required: true schema: *ref_2 - in: path name: procedure description: Name of procedure to execute required: true schema: *ref_0 requestBody: content: application/json: schema: type: object properties: &ref_27 args: type: array items: type: object properties: name: type: string value: type: string description: Procedure arguments application/x-www-form-urlencoded: schema: type: object properties: *ref_27 /compose/namespace/{namespaceID}/module/{moduleID}/record/{recordID}: get: tags: - Records summary: Read records by ID from module section responses: '200': description: OK parameters: - in: path name: namespaceID description: Namespace ID required: true schema: *ref_2 - in: path name: moduleID description: Module ID required: true schema: *ref_2 - in: path name: recordID description: Record ID required: true schema: *ref_2 post: tags: - Records summary: Update records in module section responses: '200': description: OK parameters: - in: path name: namespaceID description: Namespace ID required: true schema: *ref_2 - in: path name: moduleID description: Module ID required: true schema: *ref_2 - in: path name: recordID description: Record ID required: true schema: *ref_2 requestBody: content: application/json: schema: type: object properties: &ref_30 values: type: array items: *ref_28 description: Record values ownedBy: type: string description: Record Owner meta: type: string description: Record meta-data records: type: array items: *ref_29 description: Records application/x-www-form-urlencoded: schema: type: object properties: *ref_30 delete: tags: - Records summary: Delete record row from module section responses: '200': description: OK parameters: - in: path name: namespaceID description: Namespace ID required: true schema: *ref_2 - in: path name: moduleID description: Module ID required: true schema: *ref_2 - in: path name: recordID description: Record ID required: true schema: *ref_2 /compose/namespace/{namespaceID}/module/{moduleID}/record/attachment: post: tags: - Records summary: Uploads attachment and validates it against record field requirements responses: '200': description: OK requestBody: content: application/json: schema: type: object properties: &ref_31 recordID: type: string description: Record ID fieldName: type: string description: Field name upload: type: string format: binary description: File to upload required: - fieldName - upload application/x-www-form-urlencoded: schema: type: object properties: *ref_31 parameters: - in: path name: namespaceID description: Namespace ID required: true schema: *ref_2 - in: path name: moduleID description: Module ID required: true schema: *ref_2 /compose/namespace/{namespaceID}/module/{moduleID}/record/{recordID}/trigger: post: tags: - Records summary: Fire compose:record trigger responses: '200': description: OK parameters: - in: path name: namespaceID description: Namespace ID required: true schema: *ref_2 - in: path name: moduleID description: Module ID required: true schema: *ref_2 - in: path name: recordID description: ID required: true schema: *ref_2 requestBody: content: application/json: schema: type: object properties: &ref_32 script: type: string description: Script to execute values: type: array items: *ref_28 description: Record values required: - script - values application/x-www-form-urlencoded: schema: type: object properties: *ref_32 /compose/namespace/{namespaceID}/module/{moduleID}/record/trigger: post: tags: - Records summary: Fire compose:record trigger responses: '200': description: OK requestBody: content: application/json: schema: type: object properties: &ref_33 script: type: string description: Script to execute args: type: string description: Arguments to pass to the script required: - script application/x-www-form-urlencoded: schema: type: object properties: *ref_33 parameters: - in: path name: namespaceID description: Namespace ID required: true schema: *ref_2 - in: path name: moduleID description: Module ID required: true schema: *ref_2 /compose/namespace/{namespaceID}/module/{moduleID}/record/{recordID}/revisions: get: tags: - Records summary: List record revisions responses: '200': description: OK parameters: - in: path name: namespaceID description: Namespace ID required: true schema: *ref_2 - in: path name: moduleID description: Module ID required: true schema: *ref_2 - in: path name: recordID description: ID required: true schema: *ref_2 /compose/data-privacy/record: get: tags: - Data Privacy summary: List records for data privacy responses: '200': description: OK parameters: - in: query name: sensitivityLevelID description: Sensitivity Level ID required: false schema: *ref_2 - in: query name: connectionID description: Filter by connection ID required: false schema: type: array items: *ref_0 /compose/data-privacy/module: get: tags: - Data Privacy summary: List modules responses: '200': description: OK parameters: - in: query name: connectionID description: Filter by connection ID required: false schema: type: array items: *ref_0 - in: query name: limit description: Limit required: false schema: *ref_10 - in: query name: pageCursor description: Page cursor required: false schema: *ref_0 - in: query name: sort description: Sort items required: false schema: *ref_0 /compose/namespace/{namespaceID}/chart/: get: tags: - Charts summary: List/read charts responses: '200': description: OK parameters: - in: query name: query description: Search query to match against charts required: false schema: *ref_0 - in: query name: handle description: Search charts by handle required: false schema: *ref_0 - in: query name: labels description: Labels required: false schema: *ref_0 - in: query name: limit description: Limit required: false schema: *ref_10 - in: query name: incTotal description: Include total counter required: false schema: *ref_17 - in: query name: pageCursor description: Page cursor required: false schema: *ref_0 - in: query name: sort description: Sort items required: false schema: *ref_0 - in: path name: namespaceID description: Namespace ID required: true schema: *ref_2 post: tags: - Charts summary: 'List/read charts ' responses: '200': description: OK requestBody: content: application/json: schema: type: object properties: &ref_34 config: type: string format: json description: Chart JSON name: type: string description: Chart name handle: type: string description: Chart handle labels: type: string description: Labels required: - config - name application/x-www-form-urlencoded: schema: type: object properties: *ref_34 parameters: - in: path name: namespaceID description: Namespace ID required: true schema: *ref_2 /compose/namespace/{namespaceID}/chart/{chartID}: get: tags: - Charts summary: Read charts by ID responses: '200': description: OK parameters: - in: path name: namespaceID description: Namespace ID required: true schema: *ref_2 - in: path name: chartID description: Chart ID required: true schema: *ref_2 post: tags: - Charts summary: Add/update charts responses: '200': description: OK parameters: - in: path name: namespaceID description: Namespace ID required: true schema: *ref_2 - in: path name: chartID description: Chart ID required: true schema: *ref_2 requestBody: content: application/json: schema: type: object properties: &ref_35 config: type: string format: json description: Chart JSON name: type: string description: Chart name handle: type: string description: Chart handle labels: type: string description: Labels updatedAt: type: string format: date-time description: Last update (or creation) date required: - config - name application/x-www-form-urlencoded: schema: type: object properties: *ref_35 delete: tags: - Charts summary: Delete chart responses: '200': description: OK parameters: - in: path name: namespaceID description: Namespace ID required: true schema: *ref_2 - in: path name: chartID description: Chart ID required: true schema: *ref_2 /compose/namespace/{namespaceID}/chart/{chartID}/translation: get: tags: - Charts summary: List chart translation responses: '200': description: OK parameters: - in: path name: namespaceID description: Namespace ID required: true schema: *ref_2 - in: path name: chartID description: ID required: true schema: *ref_2 patch: tags: - Charts summary: Update chart translation responses: '200': description: OK parameters: - in: path name: namespaceID description: Namespace ID required: true schema: *ref_2 - in: path name: chartID description: ID required: true schema: *ref_2 requestBody: content: application/json: schema: type: object properties: &ref_36 translations: type: string description: Resource translation to upsert required: - translations application/x-www-form-urlencoded: schema: type: object properties: *ref_36 /compose/notification/email: post: tags: - Notifications summary: Send email from the Compose responses: '200': description: OK requestBody: content: application/json: schema: type: object properties: &ref_37 to: type: array items: *ref_0 description: Email addresses cc: type: array items: *ref_0 description: Email addresses replyTo: type: string description: Email address in reply-to field subject: type: string description: Email subject content: type: string format: json description: Message content remoteAttachments: type: array items: *ref_0 description: Remote files to attach to the email required: - to - content application/x-www-form-urlencoded: schema: type: object properties: *ref_37 /compose/namespace/{namespaceID}/attachment/{kind}/: get: tags: - Attachments summary: List, filter all page attachments responses: '200': description: OK parameters: - in: query name: sign description: Signature required: false schema: *ref_0 - in: query name: userID description: User ID required: false schema: *ref_2 - in: query name: pageID description: Filter attachments by page ID required: false schema: *ref_2 - in: query name: moduleID description: Filter attachments by module ID required: false schema: *ref_2 - in: query name: recordID description: Filter attachments by record ID required: false schema: *ref_2 - in: query name: fieldName description: Filter attachments by field name required: false schema: *ref_0 - in: query name: limit description: Limit required: false schema: *ref_10 - in: query name: pageCursor description: Page cursor required: false schema: *ref_0 - in: path name: kind description: Attachment kind required: true schema: *ref_0 - in: path name: namespaceID description: Namespace ID required: true schema: *ref_2 /compose/namespace/{namespaceID}/attachment/{kind}/{attachmentID}: get: tags: - Attachments summary: Attachment details responses: '200': description: OK parameters: - in: path name: kind description: Attachment kind required: true schema: *ref_0 - in: path name: namespaceID description: Namespace ID required: true schema: *ref_2 - in: path name: attachmentID description: Attachment ID required: true schema: *ref_2 - in: query name: sign description: Signature required: false schema: *ref_0 - in: query name: userID description: User ID required: false schema: *ref_2 delete: tags: - Attachments summary: Delete attachment responses: '200': description: OK parameters: - in: path name: kind description: Attachment kind required: true schema: *ref_0 - in: path name: namespaceID description: Namespace ID required: true schema: *ref_2 - in: path name: attachmentID description: Attachment ID required: true schema: *ref_2 - in: query name: sign description: Signature required: false schema: *ref_0 - in: query name: userID description: User ID required: false schema: *ref_2 /compose/namespace/{namespaceID}/attachment/{kind}/{attachmentID}/original/{name}: get: tags: - Attachments summary: Serves attached file responses: '200': description: OK parameters: - in: path name: kind description: Attachment kind required: true schema: *ref_0 - in: path name: namespaceID description: Namespace ID required: true schema: *ref_2 - in: path name: attachmentID description: Attachment ID required: true schema: *ref_2 - in: path name: name description: File name required: true schema: *ref_0 - in: query name: sign description: Signature required: false schema: *ref_0 - in: query name: userID description: User ID required: false schema: *ref_2 - in: query name: download description: Force file download required: false schema: *ref_17 /compose/namespace/{namespaceID}/attachment/{kind}/{attachmentID}/preview.{ext}: get: tags: - Attachments summary: Serves preview of an attached file responses: '200': description: OK parameters: - in: path name: kind description: Attachment kind required: true schema: *ref_0 - in: path name: namespaceID description: Namespace ID required: true schema: *ref_2 - in: path name: attachmentID description: Attachment ID required: true schema: *ref_2 - in: path name: ext description: Preview extension/format required: true schema: *ref_0 - in: query name: sign description: Signature required: false schema: *ref_0 - in: query name: userID description: User ID required: false schema: *ref_2 /compose/permissions/: get: tags: - Permissions summary: Retrieve defined permissions responses: '200': description: OK /compose/permissions/effective: get: tags: - Permissions summary: Effective rules for current user responses: '200': description: OK parameters: - in: query name: resource description: Show only rules for a specific resource required: false schema: *ref_0 /compose/permissions/trace: get: tags: - Permissions summary: Evaluate rules for given user/role combo responses: '200': description: OK parameters: - in: query name: resource description: Show only rules for a specific resource required: false schema: type: array items: *ref_0 - in: query name: userID required: false schema: *ref_2 - in: query name: roleID required: false schema: type: array items: *ref_2 /compose/permissions/{roleID}/rules: get: tags: - Permissions summary: Retrieve role permissions responses: '200': description: OK parameters: - in: path name: roleID description: Role ID required: true schema: *ref_2 - in: query name: resource description: Show only rules for a specific resource required: false schema: type: array items: *ref_0 delete: tags: - Permissions summary: Remove all defined role permissions responses: '200': description: OK parameters: - in: path name: roleID description: Role ID required: true schema: *ref_2 patch: tags: - Permissions summary: Update permission settings responses: '200': description: OK parameters: - in: path name: roleID description: Role ID required: true schema: *ref_2 requestBody: content: application/json: schema: type: object properties: &ref_38 rules: type: string description: List of permission rules to set required: - rules application/x-www-form-urlencoded: schema: type: object properties: *ref_38 /compose/automation/: get: tags: - Compose automation scripts summary: List all available automation scripts for compose resources responses: '200': description: OK parameters: - in: query name: resourceTypePrefixes description: Filter by resource prefix required: false schema: type: array items: *ref_0 - in: query name: resourceTypes description: Filter by resource type required: false schema: type: array items: *ref_0 - in: query name: eventTypes description: Filter by event type required: false schema: type: array items: *ref_0 - in: query name: excludeInvalid description: Exclude scripts that cannot be used (errors) required: false schema: *ref_17 - in: query name: excludeClientScripts description: Do not include client scripts required: false schema: *ref_17 - in: query name: excludeServerScripts description: Do not include server scripts required: false schema: *ref_17 /compose/automation/{bundle}-{type}.{ext}: get: tags: - Compose automation scripts summary: Serves client scripts bundle responses: '200': description: OK parameters: - in: path name: bundle description: Name of the bundle required: true schema: *ref_0 - in: path name: type description: Bundle type required: true schema: *ref_0 - in: path name: ext description: Bundle extension required: true schema: *ref_0 /compose/automation/trigger: post: tags: - Compose automation scripts summary: Triggers execution of a specific script on a system service level responses: '200': description: OK requestBody: content: application/json: schema: type: object properties: &ref_39 script: type: string description: Script to execute args: type: string description: Arguments to pass to the script required: - script application/x-www-form-urlencoded: schema: type: object properties: *ref_39