3
0
corteza/docs/static.go

7 lines
569 KiB
Go

// Code generated by statik. DO NOT EDIT.
// Package contains static assets.
package docs
var Asset = "PK\x03\x04\x14\x00\x08\x00\x00\x00\x00\x00!(\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0b\x00 \x00README.adocUT\x05\x00\x01\x80Cm8# Corteza API documentation\n\nWARNING: Work in progress\n\nThis is the first step in migration towards full OpenAPI standards support.`\n\n## Original/starting state (pre `2020.9`; deprecated):\nHome-brew API definition format in JSON, still available under `api/*/spec.json`.\nThis is still needed for controller/request/handler codegens. Documentation generators are disabled.\n\n## Current state (`2020.9`)\nIn branch `2020.12.x` we're experimenting with first step toward conversion to OpenAPI 3.0 YAML files for API\ndefinition. There is a converter available in https://github.com/cortezaproject/openapi3-converter[cortezaproject/openapi3-converter]\nthat takes those custom YAML files and converts them to OpenAPI format.\n\n## Goal (target `2020.12`)\nGenerate HTTP handlers and all auxilary code and documentation from YAML files in OpenAPI 3.0 format\nPK\x07\x08$jr\x0dN\x03\x00\x00N\x03\x00\x00PK\x03\x04\x14\x00\x08\x00\x00\x00\x00\x00!(\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0c\x00 \x00compose.yamlUT\x05\x00\x01\x80Cm8openapi: 3.0.0\ninfo:\n title: Corteza compose API\n description: Corteza compose REST API definition\n version: 2020.12\n contact:\n email: info@cortezaproject.org\n license:\n name: Apache 2.0\n url: 'http://www.apache.org/licenses/LICENSE-2.0.html'\npaths:\n /namespace/:\n get:\n tags:\n - Namespaces\n summary: List namespaces\n responses:\n '200':\n description: OK\n parameters:\n - in: query\n name: query\n description: Search query\n required: false\n schema: &ref_0\n type: string\n - in: query\n name: slug\n description: Search by namespace slug\n required: false\n schema: *ref_0\n - in: query\n name: limit\n description: Limit\n required: false\n schema: &ref_5\n type: string\n - in: query\n name: pageCursor\n description: Page cursor\n required: false\n schema: *ref_0\n - in: query\n name: sort\n description: Sort items\n required: false\n schema: *ref_0\n post:\n tags:\n - Namespaces\n summary: Create namespace\n responses:\n '200':\n description: OK\n requestBody:\n content:\n application/json:\n schema:\n type: object\n properties: &ref_1\n name:\n type: string\n description: Name\n slug:\n type: string\n description: Slug (url path part)\n enabled:\n type: boolean\n description: Enabled\n meta:\n type: string\n format: json\n description: Meta data\n required:\n - name\n - meta\n application/x-www-form-urlencoded:\n schema:\n type: object\n properties: *ref_1\n '/namespace/{namespaceID}':\n get:\n tags:\n - Namespaces\n summary: Read namespace\n responses:\n '200':\n description: OK\n parameters:\n - in: path\n name: namespaceID\n description: ID\n required: true\n schema: &ref_2\n type: string\n post:\n tags:\n - Namespaces\n summary: Update namespace\n responses:\n '200':\n description: OK\n parameters:\n - in: path\n name: namespaceID\n description: ID\n required: true\n schema: *ref_2\n requestBody:\n content:\n application/json:\n schema:\n type: object\n properties: &ref_3\n name:\n type: string\n description: Name\n slug:\n type: string\n description: Slug (url path part)\n enabled:\n type: boolean\n description: Enabled\n meta:\n type: string\n format: json\n description: Meta data\n updatedAt:\n type: string\n format: date-time\n description: Last update (or creation) date\n required:\n - name\n - meta\n application/x-www-form-urlencoded:\n schema:\n type: object\n properties: *ref_3\n delete:\n tags:\n - Namespaces\n summary: Delete namespace\n responses:\n '200':\n description: OK\n parameters:\n - in: path\n name: namespaceID\n description: ID\n required: true\n schema: *ref_2\n '/namespace/{namespaceID}/trigger':\n post:\n tags:\n - Namespaces\n summary: 'Fire compose:namespace trigger'\n responses:\n '200':\n description: OK\n parameters:\n - in: path\n name: namespaceID\n description: ID\n required: true\n schema: *ref_2\n requestBody:\n content:\n application/json:\n schema:\n type: object\n properties: &ref_4\n script:\n type: string\n description: Script to execute\n required:\n - script\n application/x-www-form-urlencoded:\n schema:\n type: object\n properties: *ref_4\n '/namespace/{namespaceID}/page/':\n get:\n tags:\n - Pages\n summary: List available pages\n responses:\n '200':\n description: OK\n parameters:\n - in: query\n name: selfID\n description: Parent page ID\n required: false\n schema: *ref_2\n - in: query\n name: query\n description: Search query\n required: false\n schema: *ref_0\n - in: query\n name: handle\n description: Search by handle\n required: false\n schema: *ref_0\n - in: query\n name: limit\n description: Limit\n required: false\n schema: *ref_5\n - in: query\n name: pageCursor\n description: Page cursor\n required: false\n schema: *ref_0\n - in: query\n name: sort\n description: Sort items\n required: false\n schema: *ref_0\n - in: path\n name: namespaceID\n description: Namespace ID\n required: true\n schema: *ref_2\n post:\n tags:\n - Pages\n summary: Create page\n responses:\n '200':\n description: OK\n requestBody:\n content:\n application/json:\n schema:\n type: object\n properties: &ref_6\n selfID:\n type: string\n description: Parent Page ID\n moduleID:\n type: string\n description: Module ID\n title:\n type: string\n description: Title\n handle:\n type: string\n description: Handle\n description:\n type: string\n description: Description\n weight:\n type: integer\n description: Page tree weight\n visible:\n type: boolean\n description: Visible in navigation\n blocks:\n type: string\n format: json\n description: Blocks JSON\n required:\n - title\n application/x-www-form-urlencoded:\n schema:\n type: object\n properties: *ref_6\n parameters:\n - in: path\n name: namespaceID\n description: Namespace ID\n required: true\n schema: *ref_2\n '/namespace/{namespaceID}/page/{pageID}':\n get:\n tags:\n - Pages\n summary: Get page details\n responses:\n '200':\n description: OK\n parameters:\n - in: path\n name: namespaceID\n description: Namespace ID\n required: true\n schema: *ref_2\n - in: path\n name: pageID\n description: Page ID\n required: true\n schema: *ref_2\n post:\n tags:\n - Pages\n summary: Update page\n responses:\n '200':\n description: OK\n parameters:\n - in: path\n name: namespaceID\n description: Namespace ID\n required: true\n schema: *ref_2\n - in: path\n name: pageID\n description: Page ID\n required: true\n schema: *ref_2\n requestBody:\n content:\n application/json:\n schema:\n type: object\n properties: &ref_7\n selfID:\n type: string\n description: Parent Page ID\n moduleID:\n type: string\n description: Module ID (optional)\n title:\n type: string\n description: Title\n handle:\n type: string\n description: Handle\n description:\n type: string\n description: Description\n weight:\n type: integer\n description: Page tree weight\n visible:\n type: boolean\n description: Visible in navigation\n blocks:\n type: string\n format: json\n description: Blocks JSON\n required:\n - title\n application/x-www-form-urlencoded:\n schema:\n type: object\n properties: *ref_7\n delete:\n tags:\n - Pages\n summary: Delete page\n responses:\n '200':\n description: OK\n parameters:\n - in: path\n name: namespaceID\n description: Namespace ID\n required: true\n schema: *ref_2\n - in: path\n name: pageID\n description: Page ID\n required: true\n schema: *ref_2\n '/namespace/{namespaceID}/page/tree':\n get:\n tags:\n - Pages\n summary: 'Get page all (non-record) pages, hierarchically'\n responses:\n '200':\n description: OK\n parameters:\n - in: path\n name: namespaceID\n description: Namespace ID\n required: true\n schema: *ref_2\n '/namespace/{namespaceID}/page/{selfID}/reorder':\n post:\n tags:\n - Pages\n summary: Reorder pages\n responses:\n '200':\n description: OK\n parameters:\n - in: path\n name: namespaceID\n description: Namespace ID\n required: true\n schema: *ref_2\n - in: path\n name: selfID\n description: Parent page ID\n required: true\n schema: *ref_2\n requestBody:\n content:\n application/json:\n schema:\n type: object\n properties: &ref_8\n pageIDs:\n type: array\n items: *ref_0\n description: Page ID order\n required:\n - pageIDs\n application/x-www-form-urlencoded:\n schema:\n type: object\n properties: *ref_8\n '/namespace/{namespaceID}/page/{pageID}/attachment':\n post:\n tags:\n - Pages\n summary: Uploads attachment to page\n responses:\n '200':\n description: OK\n parameters:\n - in: path\n name: namespaceID\n description: Namespace ID\n required: true\n schema: *ref_2\n - in: path\n name: pageID\n description: Page ID\n required: true\n schema: *ref_2\n requestBody:\n content:\n application/json:\n schema:\n type: object\n properties: &ref_9\n upload:\n type: string\n format: binary\n description: File to upload\n required:\n - upload\n application/x-www-form-urlencoded:\n schema:\n type: object\n properties: *ref_9\n '/namespace/{namespaceID}/page/{pageID}/trigger':\n post:\n tags:\n - Pages\n summary: 'Fire compose:page trigger'\n responses:\n '200':\n description: OK\n parameters:\n - in: path\n name: namespaceID\n description: Namespace ID\n required: true\n schema: *ref_2\n - in: path\n name: pageID\n description: Page ID\n required: true\n schema: *ref_2\n requestBody:\n content:\n application/json:\n schema:\n type: object\n properties: &ref_10\n script:\n type: string\n description: Script to execute\n required:\n - script\n application/x-www-form-urlencoded:\n schema:\n type: object\n properties: *ref_10\n '/namespace/{namespaceID}/module/':\n get:\n tags:\n - Modules\n summary: List modules\n responses:\n '200':\n description: OK\n parameters:\n - in: query\n name: query\n description: Search query\n required: false\n schema: *ref_0\n - in: query\n name: name\n description: Search by name\n required: false\n schema: *ref_0\n - in: query\n name: handle\n description: Search by handle\n required: false\n schema: *ref_0\n - in: query\n name: limit\n description: Limit\n required: false\n schema: *ref_5\n - in: query\n name: pageCursor\n description: Page cursor\n required: false\n schema: *ref_0\n - in: query\n name: sort\n description: Sort items\n required: false\n schema: *ref_0\n - in: path\n name: namespaceID\n description: Namespace ID\n required: true\n schema: *ref_2\n post:\n tags:\n - Modules\n summary: Create module\n responses:\n '200':\n description: OK\n requestBody:\n content:\n application/json:\n schema:\n type: object\n properties: &ref_11\n name:\n type: string\n description: Module Name\n handle:\n type: string\n description: Module handle\n fields:\n type: array\n items: &ref_12\n type: object\n properties:\n fieldID:\n type: string\n format: uuid\n name:\n type: string\n kind:\n type: string\n label:\n type: string\n defaultValue:\n type: array\n items:\n type: string\n maxLength:\n type: integer\n isRequired:\n type: boolean\n isPrivate:\n type: boolean\n isMulti:\n type: boolean\n isSystem:\n type: boolean\n options:\n type: object\n description: Fields JSON\n meta:\n type: string\n format: json\n description: Module meta data\n required:\n - name\n - fields\n - meta\n application/x-www-form-urlencoded:\n schema:\n type: object\n properties: *ref_11\n parameters:\n - in: path\n name: namespaceID\n description: Namespace ID\n required: true\n schema: *ref_2\n '/namespace/{namespaceID}/module/{moduleID}':\n get:\n tags:\n - Modules\n summary: Read module\n responses:\n '200':\n description: OK\n parameters:\n - in: path\n name: namespaceID\n description: Namespace ID\n required: true\n schema: *ref_2\n - in: path\n name: moduleID\n description: Module ID\n required: true\n schema: *ref_2\n post:\n tags:\n - Modules\n summary: Update module\n responses:\n '200':\n description: OK\n parameters:\n - in: path\n name: namespaceID\n description: Namespace ID\n required: true\n schema: *ref_2\n - in: path\n name: moduleID\n description: Module ID\n required: true\n schema: *ref_2\n requestBody:\n content:\n application/json:\n schema:\n type: object\n properties: &ref_13\n name:\n type: string\n description: Module Name\n handle:\n type: string\n description: Module Handle\n fields:\n type: array\n items: *ref_12\n description: Fields JSON\n meta:\n type: string\n format: json\n description: Module meta data\n updatedAt:\n type: string\n format: date-time\n description: Last update (or creation) date\n required:\n - name\n - fields\n - meta\n application/x-www-form-urlencoded:\n schema:\n type: object\n properties: *ref_13\n delete:\n tags:\n - Modules\n summary: Delete module\n responses:\n '200':\n description: OK\n parameters:\n - in: path\n name: namespaceID\n description: Namespace ID\n required: true\n schema: *ref_2\n - in: path\n name: moduleID\n description: Module ID\n required: true\n schema: *ref_2\n '/namespace/{namespaceID}/module/{moduleID}/trigger':\n post:\n tags:\n - Modules\n summary: 'Fire compose:module trigger'\n responses:\n '200':\n description: OK\n parameters:\n - in: path\n name: namespaceID\n description: Namespace ID\n required: true\n schema: *ref_2\n - in: path\n name: moduleID\n description: ID\n required: true\n schema: *ref_2\n requestBody:\n content:\n application/json:\n schema:\n type: object\n properties: &ref_14\n script:\n type: string\n description: Script to execute\n required:\n - script\n application/x-www-form-urlencoded:\n schema:\n type: object\n properties: *ref_14\n '/namespace/{namespaceID}/module/{moduleID}/record/report':\n get:\n tags:\n - Records\n summary: Generates report from module records\n responses:\n '200':\n description: OK\n parameters:\n - in: query\n name: metrics\n description: 'Metrics (eg: ''SUM(money), MAX(calls)'')'\n required: false\n schema: *ref_0\n - in: query\n name: dimensions\n description: 'Dimensions (eg: ''DATE(foo), status'')'\n required: true\n schema: *ref_0\n - in: query\n name: filter\n description: 'Filter (eg: ''DATE(foo) > 2010'')'\n required: false\n schema: *ref_0\n - in: path\n name: namespaceID\n description: Namespace ID\n required: true\n schema: *ref_2\n - in: path\n name: moduleID\n description: Module ID\n required: true\n schema: *ref_2\n '/namespace/{namespaceID}/module/{moduleID}/record/':\n get:\n tags:\n - Records\n summary: List/read records from module section\n responses:\n '200':\n description: OK\n parameters:\n - in: query\n name: query\n description: Record filtering query\n required: false\n schema: *ref_0\n - in: query\n name: filter\n description: 'Filtering condition (same as query, deprecated)'\n required: false\n schema: *ref_0\n - in: query\n name: deleted\n description: 'Exclude (0, default), include (1) or return only (2) deleted records'\n required: false\n schema: *ref_5\n - in: query\n name: limit\n description: Limit\n required: false\n schema: *ref_5\n - in: query\n name: offset\n description: Offset\n required: false\n schema: *ref_5\n - in: query\n name: page\n description: Page number (1-based)\n required: false\n schema: *ref_5\n - in: query\n name: perPage\n description: Returned items per page (default 50)\n required: false\n schema: *ref_5\n - in: query\n name: sort\n description: Sort items\n required: false\n schema: *ref_0\n - in: path\n name: namespaceID\n description: Namespace ID\n required: true\n schema: *ref_2\n - in: path\n name: moduleID\n description: Module ID\n required: true\n schema: *ref_2\n post:\n tags:\n - Records\n summary: Create record in module section\n responses:\n '200':\n description: OK\n requestBody:\n content:\n application/json:\n schema:\n type: object\n properties: &ref_15\n values:\n type: array\n items: &ref_20\n type: object\n properties:\n name:\n type: string\n value:\n type: string\n description: Record values\n records:\n type: array\n items: &ref_21\n type: object\n properties:\n recordID:\n type: string\n format: uuid\n moduleID:\n type: string\n format: uuid\n namespaceID:\n type: string\n format: uuid\n values:\n type: array\n items:\n type: object\n properties:\n name:\n type: string\n value:\n type: string\n createdAt:\n type: string\n format: date-time\n updatedAt:\n type: string\n format: date-time\n deletedAt:\n type: string\n format: date-time\n ownedBy:\n type: string\n format: uuid\n createdBy:\n type: string\n format: uuid\n updatedBy:\n type: string\n format: uuid\n deletedBy:\n type: string\n format: uuid\n description: Records\n application/x-www-form-urlencoded:\n schema:\n type: object\n properties: *ref_15\n parameters:\n - in: path\n name: namespaceID\n description: Namespace ID\n required: true\n schema: *ref_2\n - in: path\n name: moduleID\n description: Module ID\n required: true\n schema: *ref_2\n delete:\n tags:\n - Records\n summary: Delete record row from module section\n responses:\n '200':\n description: OK\n requestBody:\n content:\n application/json:\n schema:\n type: object\n properties: &ref_16\n recordIDs:\n type: array\n items: *ref_0\n description: IDs of records to delete\n truncate:\n type: boolean\n description: >-\n Remove ALL records of a specified module (pending\n implementation)\n application/x-www-form-urlencoded:\n schema:\n type: object\n properties: *ref_16\n parameters:\n - in: path\n name: namespaceID\n description: Namespace ID\n required: true\n schema: *ref_2\n - in: path\n name: moduleID\n description: Module ID\n required: true\n schema: *ref_2\n '/namespace/{namespaceID}/module/{moduleID}/record/import':\n post:\n tags:\n - Records\n summary: Initiate record import session\n responses:\n '200':\n description: OK\n requestBody:\n content:\n application/json:\n schema:\n type: object\n properties: &ref_17\n upload:\n type: string\n format: binary\n description: File import\n required:\n - upload\n application/x-www-form-urlencoded:\n schema:\n type: object\n properties: *ref_17\n parameters:\n - in: path\n name: namespaceID\n description: Namespace ID\n required: true\n schema: *ref_2\n - in: path\n name: moduleID\n description: Module ID\n required: true\n schema: *ref_2\n '/namespace/{namespaceID}/module/{moduleID}/record/import/{sessionID}':\n patch:\n tags:\n - Records\n summary: Run record import\n responses:\n '200':\n description: OK\n parameters:\n - in: path\n name: namespaceID\n description: Namespace ID\n required: true\n schema: *ref_2\n - in: path\n name: moduleID\n description: Module ID\n required: true\n schema: *ref_2\n - in: path\n name: sessionID\n description: Import session\n required: true\n schema: *ref_2\n requestBody:\n content:\n application/json:\n schema:\n type: object\n properties: &ref_18\n fields:\n type: string\n format: json\n description: Fields defined by import file\n onError:\n type: string\n description: What happens if record fails to import\n required:\n - fields\n - onError\n application/x-www-form-urlencoded:\n schema:\n type: object\n properties: *ref_18\n get:\n tags:\n - Records\n summary: Get import progress\n responses:\n '200':\n description: OK\n parameters:\n - in: path\n name: namespaceID\n description: Namespace ID\n required: true\n schema: *ref_2\n - in: path\n name: moduleID\n description: Module ID\n required: true\n schema: *ref_2\n - in: path\n name: sessionID\n description: Import session\n required: true\n schema: *ref_2\n '/namespace/{namespaceID}/module/{moduleID}/record/export{filename}.{ext}':\n get:\n tags:\n - Records\n summary: 'Exports records that match '\n responses:\n '200':\n description: OK\n parameters:\n - in: path\n name: namespaceID\n description: Namespace ID\n required: true\n schema: *ref_2\n - in: path\n name: moduleID\n description: Module ID\n required: true\n schema: *ref_2\n - in: path\n name: filename\n description: Filename to use\n required: true\n schema: *ref_0\n - in: path\n name: ext\n description: Export format\n required: true\n schema: *ref_0\n - in: query\n name: filter\n description: Filtering condition\n required: false\n schema: *ref_0\n - in: query\n name: fields\n description: Fields to export\n required: true\n schema:\n type: array\n items: *ref_0\n - in: query\n name: timezone\n description: Convert times to this timezone\n required: false\n schema: *ref_0\n '/namespace/{namespaceID}/module/{moduleID}/record/exec/{procedure}':\n post:\n tags:\n - Records\n summary: Executes server-side procedure over one or more module records\n responses:\n '200':\n description: OK\n parameters:\n - in: path\n name: namespaceID\n description: Namespace ID\n required: true\n schema: *ref_2\n - in: path\n name: moduleID\n description: Module ID\n required: true\n schema: *ref_2\n - in: path\n name: procedure\n description: Name of procedure to execute\n required: true\n schema: *ref_0\n requestBody:\n content:\n application/json:\n schema:\n type: object\n properties: &ref_19\n args:\n type: array\n items:\n type: object\n properties:\n name:\n type: string\n value:\n type: string\n description: Procedure arguments\n application/x-www-form-urlencoded:\n schema:\n type: object\n properties: *ref_19\n '/namespace/{namespaceID}/module/{moduleID}/record/{recordID}':\n get:\n tags:\n - Records\n summary: Read records by ID from module section\n responses:\n '200':\n description: OK\n parameters:\n - in: path\n name: namespaceID\n description: Namespace ID\n required: true\n schema: *ref_2\n - in: path\n name: moduleID\n description: Module ID\n required: true\n schema: *ref_2\n - in: path\n name: recordID\n description: Record ID\n required: true\n schema: *ref_2\n post:\n tags:\n - Records\n summary: Update records in module section\n responses:\n '200':\n description: OK\n parameters:\n - in: path\n name: namespaceID\n description: Namespace ID\n required: true\n schema: *ref_2\n - in: path\n name: moduleID\n description: Module ID\n required: true\n schema: *ref_2\n - in: path\n name: recordID\n description: Record ID\n required: true\n schema: *ref_2\n requestBody:\n content:\n application/json:\n schema:\n type: object\n properties: &ref_22\n values:\n type: array\n items: *ref_20\n description: Record values\n records:\n type: array\n items: *ref_21\n description: Records\n application/x-www-form-urlencoded:\n schema:\n type: object\n properties: *ref_22\n delete:\n tags:\n - Records\n summary: Delete record row from module section\n responses:\n '200':\n description: OK\n parameters:\n - in: path\n name: namespaceID\n description: Namespace ID\n required: true\n schema: *ref_2\n - in: path\n name: moduleID\n description: Module ID\n required: true\n schema: *ref_2\n - in: path\n name: recordID\n description: Record ID\n required: true\n schema: *ref_2\n '/namespace/{namespaceID}/module/{moduleID}/record/attachment':\n post:\n tags:\n - Records\n summary: Uploads attachment and validates it against record field requirements\n responses:\n '200':\n description: OK\n requestBody:\n content:\n application/json:\n schema:\n type: object\n properties: &ref_23\n recordID:\n type: string\n description: Record ID\n fieldName:\n type: string\n description: Field name\n upload:\n type: string\n format: binary\n description: File to upload\n required:\n - fieldName\n - upload\n application/x-www-form-urlencoded:\n schema:\n type: object\n properties: *ref_23\n parameters:\n - in: path\n name: namespaceID\n description: Namespace ID\n required: true\n schema: *ref_2\n - in: path\n name: moduleID\n description: Module ID\n required: true\n schema: *ref_2\n '/namespace/{namespaceID}/module/{moduleID}/record/{recordID}/trigger':\n post:\n tags:\n - Records\n summary: 'Fire compose:record trigger'\n responses:\n '200':\n description: OK\n parameters:\n - in: path\n name: namespaceID\n description: Namespace ID\n required: true\n schema: *ref_2\n - in: path\n name: moduleID\n description: Module ID\n required: true\n schema: *ref_2\n - in: path\n name: recordID\n description: ID\n required: true\n schema: *ref_2\n requestBody:\n content:\n application/json:\n schema:\n type: object\n properties: &ref_24\n script:\n type: string\n description: Script to execute\n values:\n type: array\n items: *ref_20\n description: Record values\n required:\n - script\n - values\n application/x-www-form-urlencoded:\n schema:\n type: object\n properties: *ref_24\n '/namespace/{namespaceID}/module/{moduleID}/record/trigger':\n post:\n tags:\n - Records\n summary: 'Fire compose:record trigger'\n responses:\n '200':\n description: OK\n requestBody:\n content:\n application/json:\n schema:\n type: object\n properties: &ref_25\n script:\n type: string\n description: Script to execute\n required:\n - script\n application/x-www-form-urlencoded:\n schema:\n type: object\n properties: *ref_25\n parameters:\n - in: path\n name: namespaceID\n description: Namespace ID\n required: true\n schema: *ref_2\n - in: path\n name: moduleID\n description: Module ID\n required: true\n schema: *ref_2\n '/namespace/{namespaceID}/chart/':\n get:\n tags:\n - Charts\n summary: List/read charts\n responses:\n '200':\n description: OK\n parameters:\n - in: query\n name: query\n description: Search query to match against charts\n required: false\n schema: *ref_0\n - in: query\n name: handle\n description: Search charts by handle\n required: false\n schema: *ref_0\n - in: query\n name: limit\n description: Limit\n required: false\n schema: *ref_5\n - in: query\n name: pageCursor\n description: Page cursor\n required: false\n schema: *ref_0\n - in: query\n name: sort\n description: Sort items\n required: false\n schema: *ref_0\n - in: path\n name: namespaceID\n description: Namespace ID\n required: true\n schema: *ref_2\n post:\n tags:\n - Charts\n summary: 'List/read charts '\n responses:\n '200':\n description: OK\n requestBody:\n content:\n application/json:\n schema:\n type: object\n properties: &ref_26\n config:\n type: string\n format: json\n description: Chart JSON\n name:\n type: string\n description: Chart name\n handle:\n type: string\n description: Chart handle\n required:\n - config\n - name\n application/x-www-form-urlencoded:\n schema:\n type: object\n properties: *ref_26\n parameters:\n - in: path\n name: namespaceID\n description: Namespace ID\n required: true\n schema: *ref_2\n '/namespace/{namespaceID}/chart/{chartID}':\n get:\n tags:\n - Charts\n summary: Read charts by ID\n responses:\n '200':\n description: OK\n parameters:\n - in: path\n name: namespaceID\n description: Namespace ID\n required: true\n schema: *ref_2\n - in: path\n name: chartID\n description: Chart ID\n required: true\n schema: *ref_2\n post:\n tags:\n - Charts\n summary: Add/update charts\n responses:\n '200':\n description: OK\n parameters:\n - in: path\n name: namespaceID\n description: Namespace ID\n required: true\n schema: *ref_2\n - in: path\n name: chartID\n description: Chart ID\n required: true\n schema: *ref_2\n requestBody:\n content:\n application/json:\n schema:\n type: object\n properties: &ref_27\n config:\n type: string\n format: json\n description: Chart JSON\n name:\n type: string\n description: Chart name\n handle:\n type: string\n description: Chart handle\n updatedAt:\n type: string\n format: date-time\n description: Last update (or creation) date\n required:\n - config\n - name\n application/x-www-form-urlencoded:\n schema:\n type: object\n properties: *ref_27\n delete:\n tags:\n - Charts\n summary: Delete chart\n responses:\n '200':\n description: OK\n parameters:\n - in: path\n name: namespaceID\n description: Namespace ID\n required: true\n schema: *ref_2\n - in: path\n name: chartID\n description: Chart ID\n required: true\n schema: *ref_2\n /notification/email:\n post:\n tags:\n - Notifications\n summary: Send email from the Compose\n responses:\n '200':\n description: OK\n requestBody:\n content:\n application/json:\n schema:\n type: object\n properties: &ref_28\n to:\n type: array\n items: *ref_0\n description: Email addresses\n cc:\n type: array\n items: *ref_0\n description: Email addresses\n replyTo:\n type: string\n description: Email address in reply-to field\n subject:\n type: string\n description: Email subject\n content:\n type: string\n format: json\n description: Message content\n remoteAttachments:\n type: array\n items: *ref_0\n description: Remote files to attach to the email\n required:\n - to\n - content\n application/x-www-form-urlencoded:\n schema:\n type: object\n properties: *ref_28\n '/namespace/{namespaceID}/attachment/{kind}/':\n get:\n tags:\n - Attachments\n summary: 'List, filter all page attachments'\n responses:\n '200':\n description: OK\n parameters:\n - in: query\n name: sign\n description: Signature\n required: false\n schema: *ref_0\n - in: query\n name: userID\n description: User ID\n required: false\n schema: *ref_2\n - in: query\n name: pageID\n description: Filter attachments by page ID\n required: false\n schema: *ref_2\n - in: query\n name: moduleID\n description: Filter attachments by module ID\n required: false\n schema: *ref_2\n - in: query\n name: recordID\n description: Filter attachments by record ID\n required: false\n schema: *ref_2\n - in: query\n name: fieldName\n description: Filter attachments by field name\n required: false\n schema: *ref_0\n - in: query\n name: limit\n description: Limit\n required: false\n schema: *ref_5\n - in: query\n name: offset\n description: Offset\n required: false\n schema: *ref_5\n - in: query\n name: page\n description: Page number (1-based)\n required: false\n schema: *ref_5\n - in: query\n name: perPage\n description: Returned items per page (default 50)\n required: false\n schema: *ref_5\n - in: path\n name: kind\n description: Attachment kind\n required: true\n schema: *ref_0\n - in: path\n name: namespaceID\n description: Namespace ID\n required: true\n schema: *ref_2\n '/namespace/{namespaceID}/attachment/{kind}/{attachmentID}':\n get:\n tags:\n - Attachments\n summary: Attachment details\n responses:\n '200':\n description: OK\n parameters:\n - in: path\n name: kind\n description: Attachment kind\n required: true\n schema: *ref_0\n - in: path\n name: namespaceID\n description: Namespace ID\n required: true\n schema: *ref_2\n - in: path\n name: attachmentID\n description: Attachment ID\n required: true\n schema: *ref_2\n - in: query\n name: sign\n description: Signature\n required: false\n schema: *ref_0\n - in: query\n name: userID\n description: User ID\n required: false\n schema: *ref_2\n delete:\n tags:\n - Attachments\n summary: Delete attachment\n responses:\n '200':\n description: OK\n parameters:\n - in: path\n name: kind\n description: Attachment kind\n required: true\n schema: *ref_0\n - in: path\n name: namespaceID\n description: Namespace ID\n required: true\n schema: *ref_2\n - in: path\n name: attachmentID\n description: Attachment ID\n required: true\n schema: *ref_2\n - in: query\n name: sign\n description: Signature\n required: false\n schema: *ref_0\n - in: query\n name: userID\n description: User ID\n required: false\n schema: *ref_2\n '/namespace/{namespaceID}/attachment/{kind}/{attachmentID}/original/{name}':\n get:\n tags:\n - Attachments\n summary: Serves attached file\n responses:\n '200':\n description: OK\n parameters:\n - in: path\n name: kind\n description: Attachment kind\n required: true\n schema: *ref_0\n - in: path\n name: namespaceID\n description: Namespace ID\n required: true\n schema: *ref_2\n - in: path\n name: attachmentID\n description: Attachment ID\n required: true\n schema: *ref_2\n - in: path\n name: name\n description: File name\n required: true\n schema: *ref_0\n - in: query\n name: sign\n description: Signature\n required: false\n schema: *ref_0\n - in: query\n name: userID\n description: User ID\n required: false\n schema: *ref_2\n - in: query\n name: download\n description: Force file download\n required: false\n schema: &ref_30\n type: boolean\n '/namespace/{namespaceID}/attachment/{kind}/{attachmentID}/preview.{ext}':\n get:\n tags:\n - Attachments\n summary: Serves preview of an attached file\n responses:\n '200':\n description: OK\n parameters:\n - in: path\n name: kind\n description: Attachment kind\n required: true\n schema: *ref_0\n - in: path\n name: namespaceID\n description: Namespace ID\n required: true\n schema: *ref_2\n - in: path\n name: attachmentID\n description: Attachment ID\n required: true\n schema: *ref_2\n - in: path\n name: ext\n description: Preview extension/format\n required: true\n schema: *ref_0\n - in: query\n name: sign\n description: Signature\n required: false\n schema: *ref_0\n - in: query\n name: userID\n description: User ID\n required: false\n schema: *ref_2\n /permissions/:\n get:\n tags:\n - Permissions\n summary: Retrieve defined permissions\n responses:\n '200':\n description: OK\n /permissions/effective:\n get:\n tags:\n - Permissions\n summary: Effective rules for current user\n responses:\n '200':\n description: OK\n parameters:\n - in: query\n name: resource\n description: Show only rules for a specific resource\n required: false\n schema: *ref_0\n '/permissions/{roleID}/rules':\n get:\n tags:\n - Permissions\n summary: Retrieve role permissions\n responses:\n '200':\n description: OK\n parameters:\n - in: path\n name: roleID\n description: Role ID\n required: true\n schema: *ref_2\n delete:\n tags:\n - Permissions\n summary: Remove all defined role permissions\n responses:\n '200':\n description: OK\n parameters:\n - in: path\n name: roleID\n description: Role ID\n required: true\n schema: *ref_2\n patch:\n tags:\n - Permissions\n summary: Update permission settings\n responses:\n '200':\n description: OK\n parameters:\n - in: path\n name: roleID\n description: Role ID\n required: true\n schema: *ref_2\n requestBody:\n content:\n application/json:\n schema:\n type: object\n properties: &ref_29\n rules:\n type: array\n items:\n type: object\n properties:\n roleID:\n type: string\n format: uuid\n resource:\n type: string\n operation:\n type: string\n access:\n type: string\n description: List of permission rules to set\n required:\n - rules\n application/x-www-form-urlencoded:\n schema:\n type: object\n properties: *ref_29\n /automation/:\n get:\n tags:\n - Compose automation scripts\n summary: List all available automation scripts for compose resources\n responses:\n '200':\n description: OK\n parameters:\n - in: query\n name: resourceTypePrefixes\n description: Filter by resource prefix\n required: false\n schema:\n type: array\n items: *ref_0\n - in: query\n name: resourceTypes\n description: Filter by resource type\n required: false\n schema:\n type: array\n items: *ref_0\n - in: query\n name: eventTypes\n description: Filter by event type\n required: false\n schema:\n type: array\n items: *ref_0\n - in: query\n name: excludeInvalid\n description: Exclude scripts that can not be used (errors)\n required: false\n schema: *ref_30\n - in: query\n name: excludeClientScripts\n description: Do not include client scripts\n required: false\n schema: *ref_30\n - in: query\n name: excludeServerScripts\n description: Do not include server scripts\n required: false\n schema: *ref_30\n '/automation/{bundle}-{type}.{ext}':\n get:\n tags:\n - Compose automation scripts\n summary: Serves client scripts bundle\n responses:\n '200':\n description: OK\n parameters:\n - in: path\n name: bundle\n description: Name of the bundle\n required: true\n schema: *ref_0\n - in: path\n name: type\n description: Bundle type\n required: true\n schema: *ref_0\n - in: path\n name: ext\n description: Bundle extension\n required: true\n schema: *ref_0\n /automation/trigger:\n post:\n tags:\n - Compose automation scripts\n summary: Triggers execution of a specific script on a system service level\n responses:\n '200':\n description: OK\n requestBody:\n content:\n application/json:\n schema:\n type: object\n properties: &ref_31\n script:\n type: string\n description: Script to execute\n required:\n - script\n application/x-www-form-urlencoded:\n schema:\n type: object\n properties: *ref_31\nPK\x07\x08M<\xdf\xf8\xdc\xc9\x00\x00\xdc\xc9\x00\x00PK\x03\x04\x14\x00\x08\x00\x00\x00\x00\x00!(\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\n\x00 \x00index.htmlUT\x05\x00\x01\x80Cm8<!-- HTML for static distribution bundle build -->\n<!DOCTYPE html>\n<html lang=\"en\">\n <head>\n <meta charset=\"UTF-8\">\n <title>Corteza Server REST API Documentation</title>\n <link rel=\"stylesheet\" type=\"text/css\" href=\"https://unpkg.com/swagger-ui-dist@3/swagger-ui.css\" >\n <link rel=\"icon\" type=\"image/png\" href=\"https://unpkg.com/swagger-ui-dist@3/favicon-32x32.png\" sizes=\"32x32\" />\n <link rel=\"icon\" type=\"image/png\" href=\"https://unpkg.com/swagger-ui-dist@3/favicon-16x16.png\" sizes=\"16x16\" />\n <style>\n html\n {\n box-sizing: border-box;\n overflow: -moz-scrollbars-vertical;\n overflow-y: scroll;\n }\n\n *,\n *:before,\n *:after\n {\n box-sizing: inherit;\n }\n\n body\n {\n margin:0;\n background: #fafafa;\n }\n </style>\n </head>\n\n <body>\n <div id=\"swagger-ui\"></div>\n <script src=\"https://unpkg.com/swagger-ui-dist@3/swagger-ui-bundle.js\" charset=\"UTF-8\"></script>\n <script src=\"https://unpkg.com/swagger-ui-dist@3/swagger-ui-standalone-preset.js\" charset=\"UTF-8\"></script>\n\n <script>\n window.onload = function() {\n // https://swagger.io/docs/open-source-tools/swagger-ui/usage/configuration/\n window.ui = SwaggerUIBundle({\n urls: [\n { url: \"system.yaml\", name: 'System' },\n { url: \"compose.yaml\", name: 'Compose' },\n { url: \"messaging.yaml\", name: 'Messaging' },\n ],\n dom_id: '#swagger-ui',\n deepLinking: true,\n presets: [\n SwaggerUIBundle.presets.apis,\n SwaggerUIStandalonePreset\n ],\n plugins: [\n SwaggerUIBundle.plugins.DownloadUrl\n ],\n layout: \"StandaloneLayout\",\n\n supportedSubmitMethods: [],\n })\n }\n </script>\n </body>\n</html>\nPK\x07\x08\xbf\xfb\xf2\xdd0\x07\x00\x000\x07\x00\x00PK\x03\x04\x14\x00\x08\x00\x00\x00\x00\x00!(\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0e\x00 \x00messaging.yamlUT\x05\x00\x01\x80Cm8openapi: 3.0.0\ninfo:\n title: Corteza messaging API\n description: Corteza messaging REST API definition\n version: 2020.12\n contact:\n email: info@cortezaproject.org\n license:\n name: Apache 2.0\n url: 'http://www.apache.org/licenses/LICENSE-2.0.html'\npaths:\n /commands/:\n get:\n tags:\n - Commands\n summary: List of available commands\n responses:\n '200':\n description: OK\n /status/:\n get:\n tags:\n - Status\n summary: See all current statuses\n responses:\n '200':\n description: OK\n post:\n tags:\n - Status\n summary: Set user's status\n responses:\n '200':\n description: OK\n requestBody:\n content:\n application/json:\n schema:\n type: object\n properties: &ref_0\n icon:\n type: string\n description: Status icon\n message:\n type: string\n description: Status message\n expires:\n type: string\n description: >-\n Clear status when it expires (eg: when-active, afternoon,\n tomorrow 1h, 30m, 1 PM, 2019-05-20)\n application/x-www-form-urlencoded:\n schema:\n type: object\n properties: *ref_0\n delete:\n tags:\n - Status\n summary: Clear status\n responses:\n '200':\n description: OK\n /activity/:\n post:\n tags:\n - User activity\n summary: >-\n Sends user's activity to all subscribers; globally or per\n channel/message.\n responses:\n '200':\n description: OK\n requestBody:\n content:\n application/json:\n schema:\n type: object\n properties: &ref_1\n channelID:\n type: string\n description: >-\n Channel ID, if set, activity will be send only to subscribed\n users\n messageID:\n type: string\n description: 'Message ID, if set, channelID must be set as well'\n kind:\n type: string\n description: Arbitrary string\n required:\n - kind\n application/x-www-form-urlencoded:\n schema:\n type: object\n properties: *ref_1\n /channels/:\n get:\n tags:\n - Channels\n summary: List channels\n responses:\n '200':\n description: OK\n parameters:\n - in: query\n name: query\n description: Search query\n required: false\n schema: &ref_2\n type: string\n post:\n tags:\n - Channels\n summary: Create new channel\n responses:\n '200':\n description: OK\n requestBody:\n content:\n application/json:\n schema:\n type: object\n properties: &ref_3\n name:\n type: string\n description: Name of Channel\n topic:\n type: string\n description: Subject of Channel\n type:\n type: string\n description: Channel type\n membershipPolicy:\n type: string\n description: 'Membership policy (eg: featured, forced)?'\n members:\n type: array\n items: *ref_2\n description: Initial members of the channel\n application/x-www-form-urlencoded:\n schema:\n type: object\n properties: *ref_3\n '/channels/{channelID}':\n put:\n tags:\n - Channels\n summary: Update channel details\n responses:\n '200':\n description: OK\n parameters:\n - in: path\n name: channelID\n description: Channel ID\n required: true\n schema: &ref_5\n type: string\n requestBody:\n content:\n application/json:\n schema:\n type: object\n properties: &ref_4\n name:\n type: string\n description: Name of Channel\n topic:\n type: string\n description: Subject of Channel\n membershipPolicy:\n type: string\n description: 'Membership policy (eg: featured, forced)?'\n type:\n type: string\n description: Channel type\n organisationID:\n type: string\n description: Move channel to different organisation\n application/x-www-form-urlencoded:\n schema:\n type: object\n properties: *ref_4\n get:\n tags:\n - Channels\n summary: Read channel details\n responses:\n '200':\n description: OK\n parameters:\n - in: path\n name: channelID\n description: Channel ID\n required: true\n schema: *ref_5\n '/channels/{channelID}/state':\n put:\n tags:\n - Channels\n summary: Update channel state\n responses:\n '200':\n description: OK\n parameters:\n - in: path\n name: channelID\n description: Channel ID\n required: true\n schema: *ref_5\n requestBody:\n content:\n application/json:\n schema:\n type: object\n properties: &ref_6\n state:\n type: string\n description: 'Valid values: delete, undelete, archive, unarchive'\n required:\n - state\n application/x-www-form-urlencoded:\n schema:\n type: object\n properties: *ref_6\n '/channels/{channelID}/flag':\n put:\n tags:\n - Channels\n summary: Update channel membership flag\n responses:\n '200':\n description: OK\n parameters:\n - in: path\n name: channelID\n description: Channel ID\n required: true\n schema: *ref_5\n requestBody:\n content:\n application/json:\n schema:\n type: object\n properties: &ref_7\n flag:\n type: string\n description: 'Valid values: pinned, hidden, ignored'\n required:\n - flag\n application/x-www-form-urlencoded:\n schema:\n type: object\n properties: *ref_7\n delete:\n tags:\n - Channels\n summary: Remove channel membership flag\n responses:\n '200':\n description: OK\n parameters:\n - in: path\n name: channelID\n description: Channel ID\n required: true\n schema: *ref_5\n '/channels/{channelID}/members':\n get:\n tags:\n - Channels\n summary: List channel members\n responses:\n '200':\n description: OK\n parameters:\n - in: path\n name: channelID\n description: Channel ID\n required: true\n schema: *ref_5\n '/channels/{channelID}/members/{userID}':\n put:\n tags:\n - Channels\n summary: Join channel\n responses:\n '200':\n description: OK\n parameters:\n - in: path\n name: channelID\n description: Channel ID\n required: true\n schema: *ref_5\n - in: path\n name: userID\n description: Member ID\n required: true\n schema: *ref_5\n delete:\n tags:\n - Channels\n summary: Remove member from channel\n responses:\n '200':\n description: OK\n parameters:\n - in: path\n name: channelID\n description: Channel ID\n required: true\n schema: *ref_5\n - in: path\n name: userID\n description: Member ID\n required: true\n schema: *ref_5\n '/channels/{channelID}/invite':\n post:\n tags:\n - Channels\n summary: Join channel\n responses:\n '200':\n description: OK\n parameters:\n - in: path\n name: channelID\n description: Channel ID\n required: true\n schema: *ref_5\n requestBody:\n content:\n application/json:\n schema:\n type: object\n properties: &ref_8\n userID:\n type: array\n items: *ref_2\n description: User ID\n application/x-www-form-urlencoded:\n schema:\n type: object\n properties: *ref_8\n '/channels/{channelID}/attach':\n post:\n tags:\n - Channels\n summary: Attach file to channel\n responses:\n '200':\n description: OK\n parameters:\n - in: path\n name: channelID\n description: Channel ID\n required: true\n schema: *ref_5\n requestBody:\n content:\n application/json:\n schema:\n type: object\n properties: &ref_9\n replyTo:\n type: string\n description: Upload as a reply\n upload:\n type: string\n format: binary\n description: File to upload\n required:\n - upload\n application/x-www-form-urlencoded:\n schema:\n type: object\n properties: *ref_9\n '/channels/{channelID}/messages/':\n post:\n tags:\n - Messages\n summary: Post new message to the channel\n responses:\n '200':\n description: OK\n requestBody:\n content:\n application/json:\n schema:\n type: object\n properties: &ref_10\n message:\n type: string\n description: Message contents (markdown)\n required:\n - message\n application/x-www-form-urlencoded:\n schema:\n type: object\n properties: *ref_10\n parameters:\n - in: path\n name: channelID\n description: Channel ID\n required: true\n schema: *ref_5\n '/channels/{channelID}/messages/command/{command}/exec':\n post:\n tags:\n - Messages\n summary: Execute command\n responses:\n '200':\n description: OK\n parameters:\n - in: path\n name: channelID\n description: Channel ID\n required: true\n schema: *ref_5\n - in: path\n name: command\n description: Command to be executed\n required: true\n schema: *ref_2\n requestBody:\n content:\n application/json:\n schema:\n type: object\n properties: &ref_11\n input:\n type: string\n description: Arbitrary command input\n params:\n type: array\n items: *ref_2\n description: Command parameters\n application/x-www-form-urlencoded:\n schema:\n type: object\n properties: *ref_11\n '/channels/{channelID}/messages/mark-as-read':\n get:\n tags:\n - Messages\n summary: Manages read/unread messages in a channel or a thread\n responses:\n '200':\n description: OK\n parameters:\n - in: path\n name: channelID\n description: Channel ID\n required: true\n schema: *ref_5\n - in: query\n name: threadID\n description: 'ID of thread (messageID) '\n required: false\n schema: *ref_5\n - in: query\n name: lastReadMessageID\n description: ID of the last read message\n required: false\n schema: *ref_5\n '/channels/{channelID}/messages/{messageID}':\n put:\n tags:\n - Messages\n summary: Edit existing message\n responses:\n '200':\n description: OK\n parameters:\n - in: path\n name: channelID\n description: Channel ID\n required: true\n schema: *ref_5\n - in: path\n name: messageID\n description: Message ID\n required: true\n schema: *ref_5\n requestBody:\n content:\n application/json:\n schema:\n type: object\n properties: &ref_12\n message:\n type: string\n description: Message contents (markdown)\n required:\n - message\n application/x-www-form-urlencoded:\n schema:\n type: object\n properties: *ref_12\n delete:\n tags:\n - Messages\n summary: Delete existing message\n responses:\n '200':\n description: OK\n parameters:\n - in: path\n name: channelID\n description: Channel ID\n required: true\n schema: *ref_5\n - in: path\n name: messageID\n description: Message ID\n required: true\n schema: *ref_5\n '/channels/{channelID}/messages/{messageID}/replies':\n post:\n tags:\n - Messages\n summary: Reply to a message\n responses:\n '200':\n description: OK\n parameters:\n - in: path\n name: channelID\n description: Channel ID\n required: true\n schema: *ref_5\n - in: path\n name: messageID\n description: Message ID\n required: true\n schema: *ref_5\n requestBody:\n content:\n application/json:\n schema:\n type: object\n properties: &ref_13\n message:\n type: string\n description: Message contents (markdown)\n required:\n - message\n application/x-www-form-urlencoded:\n schema:\n type: object\n properties: *ref_13\n '/channels/{channelID}/messages/{messageID}/pin':\n post:\n tags:\n - Messages\n summary: Pin message to channel (public bookmark)\n responses:\n '200':\n description: OK\n parameters:\n - in: path\n name: channelID\n description: Channel ID\n required: true\n schema: *ref_5\n - in: path\n name: messageID\n description: Message ID\n required: true\n schema: *ref_5\n delete:\n tags:\n - Messages\n summary: Pin message to channel (public bookmark)\n responses:\n '200':\n description: OK\n parameters:\n - in: path\n name: channelID\n description: Channel ID\n required: true\n schema: *ref_5\n - in: path\n name: messageID\n description: Message ID\n required: true\n schema: *ref_5\n '/channels/{channelID}/messages/{messageID}/bookmark':\n post:\n tags:\n - Messages\n summary: Bookmark a message (private bookmark)\n responses:\n '200':\n description: OK\n parameters:\n - in: path\n name: channelID\n description: Channel ID\n required: true\n schema: *ref_5\n - in: path\n name: messageID\n description: Message ID\n required: true\n schema: *ref_5\n delete:\n tags:\n - Messages\n summary: Remove boomark from message (private bookmark)\n responses:\n '200':\n description: OK\n parameters:\n - in: path\n name: channelID\n description: Channel ID\n required: true\n schema: *ref_5\n - in: path\n name: messageID\n description: Message ID\n required: true\n schema: *ref_5\n '/channels/{channelID}/messages/{messageID}/reaction/{reaction}':\n post:\n tags:\n - Messages\n summary: React to a message\n responses:\n '200':\n description: OK\n parameters:\n - in: path\n name: channelID\n description: Channel ID\n required: true\n schema: *ref_5\n - in: path\n name: messageID\n description: Message ID\n required: true\n schema: *ref_5\n - in: path\n name: reaction\n description: Reaction\n required: true\n schema: *ref_2\n delete:\n tags:\n - Messages\n summary: Delete reaction from a message\n responses:\n '200':\n description: OK\n parameters:\n - in: path\n name: channelID\n description: Channel ID\n required: true\n schema: *ref_5\n - in: path\n name: messageID\n description: Message ID\n required: true\n schema: *ref_5\n - in: path\n name: reaction\n description: Reaction\n required: true\n schema: *ref_2\n '/attachment/{attachmentID}/original/{name}':\n get:\n tags:\n - Attachments\n summary: Serves attached file\n responses:\n '200':\n description: OK\n parameters:\n - in: path\n name: attachmentID\n description: Attachment ID\n required: true\n schema: *ref_5\n - in: path\n name: name\n description: File name\n required: true\n schema: *ref_2\n - in: query\n name: sign\n description: Signature\n required: true\n schema: *ref_2\n - in: query\n name: userID\n description: User ID\n required: true\n schema: *ref_5\n - in: query\n name: download\n description: Force file download\n required: false\n schema: &ref_14\n type: boolean\n '/attachment/{attachmentID}/preview.{ext}':\n get:\n tags:\n - Attachments\n summary: Serves preview of an attached file\n responses:\n '200':\n description: OK\n parameters:\n - in: path\n name: attachmentID\n description: Attachment ID\n required: true\n schema: *ref_5\n - in: path\n name: ext\n description: Preview extension/format\n required: true\n schema: *ref_2\n - in: query\n name: sign\n description: Signature\n required: true\n schema: *ref_2\n - in: query\n name: userID\n description: User ID\n required: true\n schema: *ref_5\n /search/messages:\n get:\n tags:\n - Search entry point\n summary: Search for messages\n responses:\n '200':\n description: OK\n parameters:\n - in: query\n name: query\n description: Search query\n required: false\n schema: *ref_2\n - in: query\n name: channelID\n description: Filter by channels\n required: false\n schema:\n type: array\n items: *ref_2\n - in: query\n name: afterMessageID\n description: ID of the first message in the list (exclusive)\n required: false\n schema: *ref_5\n - in: query\n name: beforeMessageID\n description: ID of the last message in the list (exclusive)\n required: false\n schema: *ref_5\n - in: query\n name: fromMessageID\n description: ID of the first message in the list (inclusive)\n required: false\n schema: *ref_5\n - in: query\n name: toMessageID\n description: ID of the last message the list (inclusive)\n required: false\n schema: *ref_5\n - in: query\n name: threadID\n description: Filter by thread message ID\n required: false\n schema:\n type: array\n items: *ref_2\n - in: query\n name: userID\n description: Filter by one or more user\n required: false\n schema:\n type: array\n items: *ref_2\n - in: query\n name: type\n description: 'Filter by message type (text, inlineImage, attachment, ...)'\n required: false\n schema:\n type: array\n items: *ref_2\n - in: query\n name: pinnedOnly\n description: Return only pinned messages\n required: false\n schema: *ref_14\n - in: query\n name: bookmarkedOnly\n description: Only bookmarked messages\n required: false\n schema: *ref_14\n - in: query\n name: limit\n description: Max number of messages\n required: false\n schema: &ref_15\n type: string\n /search/threads:\n get:\n tags:\n - Search entry point\n summary: Search for threads\n responses:\n '200':\n description: OK\n parameters:\n - in: query\n name: query\n description: Search query\n required: false\n schema: *ref_2\n - in: query\n name: channelID\n description: Filter by channels\n required: false\n schema:\n type: array\n items: *ref_2\n - in: query\n name: limit\n description: Max number of messages\n required: false\n schema: *ref_15\n /permissions/:\n get:\n tags:\n - Permissions\n summary: Retrieve defined permissions\n responses:\n '200':\n description: OK\n /permissions/effective:\n get:\n tags:\n - Permissions\n summary: Effective rules for current user\n responses:\n '200':\n description: OK\n parameters:\n - in: query\n name: resource\n description: Show only rules for a specific resource\n required: false\n schema: *ref_2\n '/permissions/{roleID}/rules':\n get:\n tags:\n - Permissions\n summary: Retrieve role permissions\n responses:\n '200':\n description: OK\n parameters:\n - in: path\n name: roleID\n description: Role ID\n required: true\n schema: *ref_5\n delete:\n tags:\n - Permissions\n summary: Remove all defined role permissions\n responses:\n '200':\n description: OK\n parameters:\n - in: path\n name: roleID\n description: Role ID\n required: true\n schema: *ref_5\n patch:\n tags:\n - Permissions\n summary: Update permission settings\n responses:\n '200':\n description: OK\n parameters:\n - in: path\n name: roleID\n description: Role ID\n required: true\n schema: *ref_5\n requestBody:\n content:\n application/json:\n schema:\n type: object\n properties: &ref_16\n rules:\n type: array\n items:\n type: object\n properties:\n roleID:\n type: string\n format: uuid\n resource:\n type: string\n operation:\n type: string\n access:\n type: string\n description: List of permission rules to set\n required:\n - rules\n application/x-www-form-urlencoded:\n schema:\n type: object\n properties: *ref_16\nPK\x07\x08\x05\xac\xad\xf6\x83^\x00\x00\x83^\x00\x00PK\x03\x04\x14\x00\x08\x00\x00\x00\x00\x00!(\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00 \x00 \x00static.goUT\x05\x00\x01\x80Cm8// Code generated by statik. DO NOT EDIT.\n\n// Package contains static assets.\npackage docs\n\nvar Asset = \"PK\\x03\\x04\\x14\\x00\\x08\\x00\\x00\\x00\\x00\\x00!(\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x0b\\x00 \\x00README.adocUT\\x05\\x00\\x01\\x80Cm8# Corteza API documentation\\n\\nWARNING: Work in progress\\n\\nThis is the first step in migration towards full OpenAPI standards support.`\\n\\n## Original/starting state (pre `2020.9`; deprecated):\\nHome-brew API definition format in JSON, still available under `api/*/spec.json`.\\nThis is still needed for controller/request/handler codegens. Documentation generators are disabled.\\n\\n## Current state (`2020.9`)\\nIn branch `2020.12.x` we're experimenting with first step toward conversion to OpenAPI 3.0 YAML files for API\\ndefinition. There is a converter available in https://github.com/cortezaproject/openapi3-converter[cortezaproject/openapi3-converter]\\nthat takes those custom YAML files and converts them to OpenAPI format.\\n\\n## Goal (target `2020.12`)\\nGenerate HTTP handlers and all auxilary code and documentation from YAML files in OpenAPI 3.0 format\\nPK\\x07\\x08$jr\\x0dN\\x03\\x00\\x00N\\x03\\x00\\x00PK\\x03\\x04\\x14\\x00\\x08\\x00\\x00\\x00\\x00\\x00!(\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x0c\\x00 \\x00compose.yamlUT\\x05\\x00\\x01\\x80Cm8openapi: 3.0.0\\ninfo:\\n title: Corteza compose API\\n description: Corteza compose REST API definition\\n version: 2020.12\\n contact:\\n email: info@cortezaproject.org\\n license:\\n name: Apache 2.0\\n url: 'http://www.apache.org/licenses/LICENSE-2.0.html'\\npaths:\\n /namespace/:\\n get:\\n tags:\\n - Namespaces\\n summary: List namespaces\\n responses:\\n '200':\\n description: OK\\n parameters:\\n - in: query\\n name: query\\n description: Search query\\n required: false\\n schema: &ref_0\\n type: string\\n - in: query\\n name: slug\\n description: Search by namespace slug\\n required: false\\n schema: *ref_0\\n - in: query\\n name: limit\\n description: Limit\\n required: false\\n schema: &ref_5\\n type: string\\n - in: query\\n name: pageCursor\\n description: Page cursor\\n required: false\\n schema: *ref_0\\n - in: query\\n name: sort\\n description: Sort items\\n required: false\\n schema: *ref_0\\n post:\\n tags:\\n - Namespaces\\n summary: Create namespace\\n responses:\\n '200':\\n description: OK\\n requestBody:\\n content:\\n application/json:\\n schema:\\n type: object\\n properties: &ref_1\\n name:\\n type: string\\n description: Name\\n slug:\\n type: string\\n description: Slug (url path part)\\n enabled:\\n type: boolean\\n description: Enabled\\n meta:\\n type: string\\n format: json\\n description: Meta data\\n required:\\n - name\\n - meta\\n application/x-www-form-urlencoded:\\n schema:\\n type: object\\n properties: *ref_1\\n '/namespace/{namespaceID}':\\n get:\\n tags:\\n - Namespaces\\n summary: Read namespace\\n responses:\\n '200':\\n description: OK\\n parameters:\\n - in: path\\n name: namespaceID\\n description: ID\\n required: true\\n schema: &ref_2\\n type: string\\n post:\\n tags:\\n - Namespaces\\n summary: Update namespace\\n responses:\\n '200':\\n description: OK\\n parameters:\\n - in: path\\n name: namespaceID\\n description: ID\\n required: true\\n schema: *ref_2\\n requestBody:\\n content:\\n application/json:\\n schema:\\n type: object\\n properties: &ref_3\\n name:\\n type: string\\n description: Name\\n slug:\\n type: string\\n description: Slug (url path part)\\n enabled:\\n type: boolean\\n description: Enabled\\n meta:\\n type: string\\n format: json\\n description: Meta data\\n updatedAt:\\n type: string\\n format: date-time\\n description: Last update (or creation) date\\n required:\\n - name\\n - meta\\n application/x-www-form-urlencoded:\\n schema:\\n type: object\\n properties: *ref_3\\n delete:\\n tags:\\n - Namespaces\\n summary: Delete namespace\\n responses:\\n '200':\\n description: OK\\n parameters:\\n - in: path\\n name: namespaceID\\n description: ID\\n required: true\\n schema: *ref_2\\n '/namespace/{namespaceID}/trigger':\\n post:\\n tags:\\n - Namespaces\\n summary: 'Fire compose:namespace trigger'\\n responses:\\n '200':\\n description: OK\\n parameters:\\n - in: path\\n name: namespaceID\\n description: ID\\n required: true\\n schema: *ref_2\\n requestBody:\\n content:\\n application/json:\\n schema:\\n type: object\\n properties: &ref_4\\n script:\\n type: string\\n description: Script to execute\\n required:\\n - script\\n application/x-www-form-urlencoded:\\n schema:\\n type: object\\n properties: *ref_4\\n '/namespace/{namespaceID}/page/':\\n get:\\n tags:\\n - Pages\\n summary: List available pages\\n responses:\\n '200':\\n description: OK\\n parameters:\\n - in: query\\n name: selfID\\n description: Parent page ID\\n required: false\\n schema: *ref_2\\n - in: query\\n name: query\\n description: Search query\\n required: false\\n schema: *ref_0\\n - in: query\\n name: handle\\n description: Search by handle\\n required: false\\n schema: *ref_0\\n - in: query\\n name: limit\\n description: Limit\\n required: false\\n schema: *ref_5\\n - in: query\\n name: pageCursor\\n description: Page cursor\\n required: false\\n schema: *ref_0\\n - in: query\\n name: sort\\n description: Sort items\\n required: false\\n schema: *ref_0\\n - in: path\\n name: namespaceID\\n description: Namespace ID\\n required: true\\n schema: *ref_2\\n post:\\n tags:\\n - Pages\\n summary: Create page\\n responses:\\n '200':\\n description: OK\\n requestBody:\\n content:\\n application/json:\\n schema:\\n type: object\\n properties: &ref_6\\n selfID:\\n type: string\\n description: Parent Page ID\\n moduleID:\\n type: string\\n description: Module ID\\n title:\\n type: string\\n description: Title\\n handle:\\n type: string\\n description: Handle\\n description:\\n type: string\\n description: Description\\n weight:\\n type: integer\\n description: Page tree weight\\n visible:\\n type: boolean\\n description: Visible in navigation\\n blocks:\\n type: string\\n format: json\\n description: Blocks JSON\\n required:\\n - title\\n application/x-www-form-urlencoded:\\n schema:\\n type: object\\n properties: *ref_6\\n parameters:\\n - in: path\\n name: namespaceID\\n description: Namespace ID\\n required: true\\n schema: *ref_2\\n '/namespace/{namespaceID}/page/{pageID}':\\n get:\\n tags:\\n - Pages\\n summary: Get page details\\n responses:\\n '200':\\n description: OK\\n parameters:\\n - in: path\\n name: namespaceID\\n description: Namespace ID\\n required: true\\n schema: *ref_2\\n - in: path\\n name: pageID\\n description: Page ID\\n required: true\\n schema: *ref_2\\n post:\\n tags:\\n - Pages\\n summary: Update page\\n responses:\\n '200':\\n description: OK\\n parameters:\\n - in: path\\n name: namespaceID\\n description: Namespace ID\\n required: true\\n schema: *ref_2\\n - in: path\\n name: pageID\\n description: Page ID\\n required: true\\n schema: *ref_2\\n requestBody:\\n content:\\n application/json:\\n schema:\\n type: object\\n properties: &ref_7\\n selfID:\\n type: string\\n description: Parent Page ID\\n moduleID:\\n type: string\\n description: Module ID (optional)\\n title:\\n type: string\\n description: Title\\n handle:\\n type: string\\n description: Handle\\n description:\\n type: string\\n description: Description\\n weight:\\n type: integer\\n description: Page tree weight\\n visible:\\n type: boolean\\n description: Visible in navigation\\n blocks:\\n type: string\\n format: json\\n description: Blocks JSON\\n required:\\n - title\\n application/x-www-form-urlencoded:\\n schema:\\n type: object\\n properties: *ref_7\\n delete:\\n tags:\\n - Pages\\n summary: Delete page\\n responses:\\n '200':\\n description: OK\\n parameters:\\n - in: path\\n name: namespaceID\\n description: Namespace ID\\n required: true\\n schema: *ref_2\\n - in: path\\n name: pageID\\n description: Page ID\\n required: true\\n schema: *ref_2\\n '/namespace/{namespaceID}/page/tree':\\n get:\\n tags:\\n - Pages\\n summary: 'Get page all (non-record) pages, hierarchically'\\n responses:\\n '200':\\n description: OK\\n parameters:\\n - in: path\\n name: namespaceID\\n description: Namespace ID\\n required: true\\n schema: *ref_2\\n '/namespace/{namespaceID}/page/{selfID}/reorder':\\n post:\\n tags:\\n - Pages\\n summary: Reorder pages\\n responses:\\n '200':\\n description: OK\\n parameters:\\n - in: path\\n name: namespaceID\\n description: Namespace ID\\n required: true\\n schema: *ref_2\\n - in: path\\n name: selfID\\n description: Parent page ID\\n required: true\\n schema: *ref_2\\n requestBody:\\n content:\\n application/json:\\n schema:\\n type: object\\n properties: &ref_8\\n pageIDs:\\n type: array\\n items: *ref_0\\n description: Page ID order\\n required:\\n - pageIDs\\n application/x-www-form-urlencoded:\\n schema:\\n type: object\\n properties: *ref_8\\n '/namespace/{namespaceID}/page/{pageID}/attachment':\\n post:\\n tags:\\n - Pages\\n summary: Uploads attachment to page\\n responses:\\n '200':\\n description: OK\\n parameters:\\n - in: path\\n name: namespaceID\\n description: Namespace ID\\n required: true\\n schema: *ref_2\\n - in: path\\n name: pageID\\n description: Page ID\\n required: true\\n schema: *ref_2\\n requestBody:\\n content:\\n application/json:\\n schema:\\n type: object\\n properties: &ref_9\\n upload:\\n type: string\\n format: binary\\n description: File to upload\\n required:\\n - upload\\n application/x-www-form-urlencoded:\\n schema:\\n type: object\\n properties: *ref_9\\n '/namespace/{namespaceID}/page/{pageID}/trigger':\\n post:\\n tags:\\n - Pages\\n summary: 'Fire compose:page trigger'\\n responses:\\n '200':\\n description: OK\\n parameters:\\n - in: path\\n name: namespaceID\\n description: Namespace ID\\n required: true\\n schema: *ref_2\\n - in: path\\n name: pageID\\n description: Page ID\\n required: true\\n schema: *ref_2\\n requestBody:\\n content:\\n application/json:\\n schema:\\n type: object\\n properties: &ref_10\\n script:\\n type: string\\n description: Script to execute\\n required:\\n - script\\n application/x-www-form-urlencoded:\\n schema:\\n type: object\\n properties: *ref_10\\n '/namespace/{namespaceID}/module/':\\n get:\\n tags:\\n - Modules\\n summary: List modules\\n responses:\\n '200':\\n description: OK\\n parameters:\\n - in: query\\n name: query\\n description: Search query\\n required: false\\n schema: *ref_0\\n - in: query\\n name: name\\n description: Search by name\\n required: false\\n schema: *ref_0\\n - in: query\\n name: handle\\n description: Search by handle\\n required: false\\n schema: *ref_0\\n - in: query\\n name: limit\\n description: Limit\\n required: false\\n schema: *ref_5\\n - in: query\\n name: pageCursor\\n description: Page cursor\\n required: false\\n schema: *ref_0\\n - in: query\\n name: sort\\n description: Sort items\\n required: false\\n schema: *ref_0\\n - in: path\\n name: namespaceID\\n description: Namespace ID\\n required: true\\n schema: *ref_2\\n post:\\n tags:\\n - Modules\\n summary: Create module\\n responses:\\n '200':\\n description: OK\\n requestBody:\\n content:\\n application/json:\\n schema:\\n type: object\\n properties: &ref_11\\n name:\\n type: string\\n description: Module Name\\n handle:\\n type: string\\n description: Module handle\\n fields:\\n type: array\\n items: &ref_12\\n type: object\\n properties:\\n fieldID:\\n type: string\\n format: uuid\\n name:\\n type: string\\n kind:\\n type: string\\n label:\\n type: string\\n defaultValue:\\n type: array\\n items:\\n type: string\\n maxLength:\\n type: integer\\n isRequired:\\n type: boolean\\n isPrivate:\\n type: boolean\\n isMulti:\\n type: boolean\\n isSystem:\\n type: boolean\\n options:\\n type: object\\n description: Fields JSON\\n meta:\\n type: string\\n format: json\\n description: Module meta data\\n required:\\n - name\\n - fields\\n - meta\\n application/x-www-form-urlencoded:\\n schema:\\n type: object\\n properties: *ref_11\\n parameters:\\n - in: path\\n name: namespaceID\\n description: Namespace ID\\n required: true\\n schema: *ref_2\\n '/namespace/{namespaceID}/module/{moduleID}':\\n get:\\n tags:\\n - Modules\\n summary: Read module\\n responses:\\n '200':\\n description: OK\\n parameters:\\n - in: path\\n name: namespaceID\\n description: Namespace ID\\n required: true\\n schema: *ref_2\\n - in: path\\n name: moduleID\\n description: Module ID\\n required: true\\n schema: *ref_2\\n post:\\n tags:\\n - Modules\\n summary: Update module\\n responses:\\n '200':\\n description: OK\\n parameters:\\n - in: path\\n name: namespaceID\\n description: Namespace ID\\n required: true\\n schema: *ref_2\\n - in: path\\n name: moduleID\\n description: Module ID\\n required: true\\n schema: *ref_2\\n requestBody:\\n content:\\n application/json:\\n schema:\\n type: object\\n properties: &ref_13\\n name:\\n type: string\\n description: Module Name\\n handle:\\n type: string\\n description: Module Handle\\n fields:\\n type: array\\n items: *ref_12\\n description: Fields JSON\\n meta:\\n type: string\\n format: json\\n description: Module meta data\\n updatedAt:\\n type: string\\n format: date-time\\n description: Last update (or creation) date\\n required:\\n - name\\n - fields\\n - meta\\n application/x-www-form-urlencoded:\\n schema:\\n type: object\\n properties: *ref_13\\n delete:\\n tags:\\n - Modules\\n summary: Delete module\\n responses:\\n '200':\\n description: OK\\n parameters:\\n - in: path\\n name: namespaceID\\n description: Namespace ID\\n required: true\\n schema: *ref_2\\n - in: path\\n name: moduleID\\n description: Module ID\\n required: true\\n schema: *ref_2\\n '/namespace/{namespaceID}/module/{moduleID}/trigger':\\n post:\\n tags:\\n - Modules\\n summary: 'Fire compose:module trigger'\\n responses:\\n '200':\\n description: OK\\n parameters:\\n - in: path\\n name: namespaceID\\n description: Namespace ID\\n required: true\\n schema: *ref_2\\n - in: path\\n name: moduleID\\n description: ID\\n required: true\\n schema: *ref_2\\n requestBody:\\n content:\\n application/json:\\n schema:\\n type: object\\n properties: &ref_14\\n script:\\n type: string\\n description: Script to execute\\n required:\\n - script\\n application/x-www-form-urlencoded:\\n schema:\\n type: object\\n properties: *ref_14\\n '/namespace/{namespaceID}/module/{moduleID}/record/report':\\n get:\\n tags:\\n - Records\\n summary: Generates report from module records\\n responses:\\n '200':\\n description: OK\\n parameters:\\n - in: query\\n name: metrics\\n description: 'Metrics (eg: ''SUM(money), MAX(calls)'')'\\n required: false\\n schema: *ref_0\\n - in: query\\n name: dimensions\\n description: 'Dimensions (eg: ''DATE(foo), status'')'\\n required: true\\n schema: *ref_0\\n - in: query\\n name: filter\\n description: 'Filter (eg: ''DATE(foo) > 2010'')'\\n required: false\\n schema: *ref_0\\n - in: path\\n name: namespaceID\\n description: Namespace ID\\n required: true\\n schema: *ref_2\\n - in: path\\n name: moduleID\\n description: Module ID\\n required: true\\n schema: *ref_2\\n '/namespace/{namespaceID}/module/{moduleID}/record/':\\n get:\\n tags:\\n - Records\\n summary: List/read records from module section\\n responses:\\n '200':\\n description: OK\\n parameters:\\n - in: query\\n name: query\\n description: Record filtering query\\n required: false\\n schema: *ref_0\\n - in: query\\n name: filter\\n description: 'Filtering condition (same as query, deprecated)'\\n required: false\\n schema: *ref_0\\n - in: query\\n name: deleted\\n description: 'Exclude (0, default), include (1) or return only (2) deleted records'\\n required: false\\n schema: *ref_5\\n - in: query\\n name: limit\\n description: Limit\\n required: false\\n schema: *ref_5\\n - in: query\\n name: offset\\n description: Offset\\n required: false\\n schema: *ref_5\\n - in: query\\n name: page\\n description: Page number (1-based)\\n required: false\\n schema: *ref_5\\n - in: query\\n name: perPage\\n description: Returned items per page (default 50)\\n required: false\\n schema: *ref_5\\n - in: query\\n name: sort\\n description: Sort items\\n required: false\\n schema: *ref_0\\n - in: path\\n name: namespaceID\\n description: Namespace ID\\n required: true\\n schema: *ref_2\\n - in: path\\n name: moduleID\\n description: Module ID\\n required: true\\n schema: *ref_2\\n post:\\n tags:\\n - Records\\n summary: Create record in module section\\n responses:\\n '200':\\n description: OK\\n requestBody:\\n content:\\n application/json:\\n schema:\\n type: object\\n properties: &ref_15\\n values:\\n type: array\\n items: &ref_20\\n type: object\\n properties:\\n name:\\n type: string\\n value:\\n type: string\\n description: Record values\\n records:\\n type: array\\n items: &ref_21\\n type: object\\n properties:\\n recordID:\\n type: string\\n format: uuid\\n moduleID:\\n type: string\\n format: uuid\\n namespaceID:\\n type: string\\n format: uuid\\n values:\\n type: array\\n items:\\n type: object\\n properties:\\n name:\\n type: string\\n value:\\n type: string\\n createdAt:\\n type: string\\n format: date-time\\n updatedAt:\\n type: string\\n format: date-time\\n deletedAt:\\n type: string\\n format: date-time\\n ownedBy:\\n type: string\\n format: uuid\\n createdBy:\\n type: string\\n format: uuid\\n updatedBy:\\n type: string\\n format: uuid\\n deletedBy:\\n type: string\\n format: uuid\\n description: Records\\n application/x-www-form-urlencoded:\\n schema:\\n type: object\\n properties: *ref_15\\n parameters:\\n - in: path\\n name: namespaceID\\n description: Namespace ID\\n required: true\\n schema: *ref_2\\n - in: path\\n name: moduleID\\n description: Module ID\\n required: true\\n schema: *ref_2\\n delete:\\n tags:\\n - Records\\n summary: Delete record row from module section\\n responses:\\n '200':\\n description: OK\\n requestBody:\\n content:\\n application/json:\\n schema:\\n type: object\\n properties: &ref_16\\n recordIDs:\\n type: array\\n items: *ref_0\\n description: IDs of records to delete\\n truncate:\\n type: boolean\\n description: >-\\n Remove ALL records of a specified module (pending\\n implementation)\\n application/x-www-form-urlencoded:\\n schema:\\n type: object\\n properties: *ref_16\\n parameters:\\n - in: path\\n name: namespaceID\\n description: Namespace ID\\n required: true\\n schema: *ref_2\\n - in: path\\n name: moduleID\\n description: Module ID\\n required: true\\n schema: *ref_2\\n '/namespace/{namespaceID}/module/{moduleID}/record/import':\\n post:\\n tags:\\n - Records\\n summary: Initiate record import session\\n responses:\\n '200':\\n description: OK\\n requestBody:\\n content:\\n application/json:\\n schema:\\n type: object\\n properties: &ref_17\\n upload:\\n type: string\\n format: binary\\n description: File import\\n required:\\n - upload\\n application/x-www-form-urlencoded:\\n schema:\\n type: object\\n properties: *ref_17\\n parameters:\\n - in: path\\n name: namespaceID\\n description: Namespace ID\\n required: true\\n schema: *ref_2\\n - in: path\\n name: moduleID\\n description: Module ID\\n required: true\\n schema: *ref_2\\n '/namespace/{namespaceID}/module/{moduleID}/record/import/{sessionID}':\\n patch:\\n tags:\\n - Records\\n summary: Run record import\\n responses:\\n '200':\\n description: OK\\n parameters:\\n - in: path\\n name: namespaceID\\n description: Namespace ID\\n required: true\\n schema: *ref_2\\n - in: path\\n name: moduleID\\n description: Module ID\\n required: true\\n schema: *ref_2\\n - in: path\\n name: sessionID\\n description: Import session\\n required: true\\n schema: *ref_2\\n requestBody:\\n content:\\n application/json:\\n schema:\\n type: object\\n properties: &ref_18\\n fields:\\n type: string\\n format: json\\n description: Fields defined by import file\\n onError:\\n type: string\\n description: What happens if record fails to import\\n required:\\n - fields\\n - onError\\n application/x-www-form-urlencoded:\\n schema:\\n type: object\\n properties: *ref_18\\n get:\\n tags:\\n - Records\\n summary: Get import progress\\n responses:\\n '200':\\n description: OK\\n parameters:\\n - in: path\\n name: namespaceID\\n description: Namespace ID\\n required: true\\n schema: *ref_2\\n - in: path\\n name: moduleID\\n description: Module ID\\n required: true\\n schema: *ref_2\\n - in: path\\n name: sessionID\\n description: Import session\\n required: true\\n schema: *ref_2\\n '/namespace/{namespaceID}/module/{moduleID}/record/export{filename}.{ext}':\\n get:\\n tags:\\n - Records\\n summary: 'Exports records that match '\\n responses:\\n '200':\\n description: OK\\n parameters:\\n - in: path\\n name: namespaceID\\n description: Namespace ID\\n required: true\\n schema: *ref_2\\n - in: path\\n name: moduleID\\n description: Module ID\\n required: true\\n schema: *ref_2\\n - in: path\\n name: filename\\n description: Filename to use\\n required: true\\n schema: *ref_0\\n - in: path\\n name: ext\\n description: Export format\\n required: true\\n schema: *ref_0\\n - in: query\\n name: filter\\n description: Filtering condition\\n required: false\\n schema: *ref_0\\n - in: query\\n name: fields\\n description: Fields to export\\n required: true\\n schema:\\n type: array\\n items: *ref_0\\n - in: query\\n name: timezone\\n description: Convert times to this timezone\\n required: false\\n schema: *ref_0\\n '/namespace/{namespaceID}/module/{moduleID}/record/exec/{procedure}':\\n post:\\n tags:\\n - Records\\n summary: Executes server-side procedure over one or more module records\\n responses:\\n '200':\\n description: OK\\n parameters:\\n - in: path\\n name: namespaceID\\n description: Namespace ID\\n required: true\\n schema: *ref_2\\n - in: path\\n name: moduleID\\n description: Module ID\\n required: true\\n schema: *ref_2\\n - in: path\\n name: procedure\\n description: Name of procedure to execute\\n required: true\\n schema: *ref_0\\n requestBody:\\n content:\\n application/json:\\n schema:\\n type: object\\n properties: &ref_19\\n args:\\n type: array\\n items:\\n type: object\\n properties:\\n name:\\n type: string\\n value:\\n type: string\\n description: Procedure arguments\\n application/x-www-form-urlencoded:\\n schema:\\n type: object\\n properties: *ref_19\\n '/namespace/{namespaceID}/module/{moduleID}/record/{recordID}':\\n get:\\n tags:\\n - Records\\n summary: Read records by ID from module section\\n responses:\\n '200':\\n description: OK\\n parameters:\\n - in: path\\n name: namespaceID\\n description: Namespace ID\\n required: true\\n schema: *ref_2\\n - in: path\\n name: moduleID\\n description: Module ID\\n required: true\\n schema: *ref_2\\n - in: path\\n name: recordID\\n description: Record ID\\n required: true\\n schema: *ref_2\\n post:\\n tags:\\n - Records\\n summary: Update records in module section\\n responses:\\n '200':\\n description: OK\\n parameters:\\n - in: path\\n name: namespaceID\\n description: Namespace ID\\n required: true\\n schema: *ref_2\\n - in: path\\n name: moduleID\\n description: Module ID\\n required: true\\n schema: *ref_2\\n - in: path\\n name: recordID\\n description: Record ID\\n required: true\\n schema: *ref_2\\n requestBody:\\n content:\\n application/json:\\n schema:\\n type: object\\n properties: &ref_22\\n values:\\n type: array\\n items: *ref_20\\n description: Record values\\n records:\\n type: array\\n items: *ref_21\\n description: Records\\n application/x-www-form-urlencoded:\\n schema:\\n type: object\\n properties: *ref_22\\n delete:\\n tags:\\n - Records\\n summary: Delete record row from module section\\n responses:\\n '200':\\n description: OK\\n parameters:\\n - in: path\\n name: namespaceID\\n description: Namespace ID\\n required: true\\n schema: *ref_2\\n - in: path\\n name: moduleID\\n description: Module ID\\n required: true\\n schema: *ref_2\\n - in: path\\n name: recordID\\n description: Record ID\\n required: true\\n schema: *ref_2\\n '/namespace/{namespaceID}/module/{moduleID}/record/attachment':\\n post:\\n tags:\\n - Records\\n summary: Uploads attachment and validates it against record field requirements\\n responses:\\n '200':\\n description: OK\\n requestBody:\\n content:\\n application/json:\\n schema:\\n type: object\\n properties: &ref_23\\n recordID:\\n type: string\\n description: Record ID\\n fieldName:\\n type: string\\n description: Field name\\n upload:\\n type: string\\n format: binary\\n description: File to upload\\n required:\\n - fieldName\\n - upload\\n application/x-www-form-urlencoded:\\n schema:\\n type: object\\n properties: *ref_23\\n parameters:\\n - in: path\\n name: namespaceID\\n description: Namespace ID\\n required: true\\n schema: *ref_2\\n - in: path\\n name: moduleID\\n description: Module ID\\n required: true\\n schema: *ref_2\\n '/namespace/{namespaceID}/module/{moduleID}/record/{recordID}/trigger':\\n post:\\n tags:\\n - Records\\n summary: 'Fire compose:record trigger'\\n responses:\\n '200':\\n description: OK\\n parameters:\\n - in: path\\n name: namespaceID\\n description: Namespace ID\\n required: true\\n schema: *ref_2\\n - in: path\\n name: moduleID\\n description: Module ID\\n required: true\\n schema: *ref_2\\n - in: path\\n name: recordID\\n description: ID\\n required: true\\n schema: *ref_2\\n requestBody:\\n content:\\n application/json:\\n schema:\\n type: object\\n properties: &ref_24\\n script:\\n type: string\\n description: Script to execute\\n values:\\n type: array\\n items: *ref_20\\n description: Record values\\n required:\\n - script\\n - values\\n application/x-www-form-urlencoded:\\n schema:\\n type: object\\n properties: *ref_24\\n '/namespace/{namespaceID}/module/{moduleID}/record/trigger':\\n post:\\n tags:\\n - Records\\n summary: 'Fire compose:record trigger'\\n responses:\\n '200':\\n description: OK\\n requestBody:\\n content:\\n application/json:\\n schema:\\n type: object\\n properties: &ref_25\\n script:\\n type: string\\n description: Script to execute\\n required:\\n - script\\n application/x-www-form-urlencoded:\\n schema:\\n type: object\\n properties: *ref_25\\n parameters:\\n - in: path\\n name: namespaceID\\n description: Namespace ID\\n required: true\\n schema: *ref_2\\n - in: path\\n name: moduleID\\n description: Module ID\\n required: true\\n schema: *ref_2\\n '/namespace/{namespaceID}/chart/':\\n get:\\n tags:\\n - Charts\\n summary: List/read charts\\n responses:\\n '200':\\n description: OK\\n parameters:\\n - in: query\\n name: query\\n description: Search query to match against charts\\n required: false\\n schema: *ref_0\\n - in: query\\n name: handle\\n description: Search charts by handle\\n required: false\\n schema: *ref_0\\n - in: query\\n name: limit\\n description: Limit\\n required: false\\n schema: *ref_5\\n - in: query\\n name: pageCursor\\n description: Page cursor\\n required: false\\n schema: *ref_0\\n - in: query\\n name: sort\\n description: Sort items\\n required: false\\n schema: *ref_0\\n - in: path\\n name: namespaceID\\n description: Namespace ID\\n required: true\\n schema: *ref_2\\n post:\\n tags:\\n - Charts\\n summary: 'List/read charts '\\n responses:\\n '200':\\n description: OK\\n requestBody:\\n content:\\n application/json:\\n schema:\\n type: object\\n properties: &ref_26\\n config:\\n type: string\\n format: json\\n description: Chart JSON\\n name:\\n type: string\\n description: Chart name\\n handle:\\n type: string\\n description: Chart handle\\n required:\\n - config\\n - name\\n application/x-www-form-urlencoded:\\n schema:\\n type: object\\n properties: *ref_26\\n parameters:\\n - in: path\\n name: namespaceID\\n description: Namespace ID\\n required: true\\n schema: *ref_2\\n '/namespace/{namespaceID}/chart/{chartID}':\\n get:\\n tags:\\n - Charts\\n summary: Read charts by ID\\n responses:\\n '200':\\n description: OK\\n parameters:\\n - in: path\\n name: namespaceID\\n description: Namespace ID\\n required: true\\n schema: *ref_2\\n - in: path\\n name: chartID\\n description: Chart ID\\n required: true\\n schema: *ref_2\\n post:\\n tags:\\n - Charts\\n summary: Add/update charts\\n responses:\\n '200':\\n description: OK\\n parameters:\\n - in: path\\n name: namespaceID\\n description: Namespace ID\\n required: true\\n schema: *ref_2\\n - in: path\\n name: chartID\\n description: Chart ID\\n required: true\\n schema: *ref_2\\n requestBody:\\n content:\\n application/json:\\n schema:\\n type: object\\n properties: &ref_27\\n config:\\n type: string\\n format: json\\n description: Chart JSON\\n name:\\n type: string\\n description: Chart name\\n handle:\\n type: string\\n description: Chart handle\\n updatedAt:\\n type: string\\n format: date-time\\n description: Last update (or creation) date\\n required:\\n - config\\n - name\\n application/x-www-form-urlencoded:\\n schema:\\n type: object\\n properties: *ref_27\\n delete:\\n tags:\\n - Charts\\n summary: Delete chart\\n responses:\\n '200':\\n description: OK\\n parameters:\\n - in: path\\n name: namespaceID\\n description: Namespace ID\\n required: true\\n schema: *ref_2\\n - in: path\\n name: chartID\\n description: Chart ID\\n required: true\\n schema: *ref_2\\n /notification/email:\\n post:\\n tags:\\n - Notifications\\n summary: Send email from the Compose\\n responses:\\n '200':\\n description: OK\\n requestBody:\\n content:\\n application/json:\\n schema:\\n type: object\\n properties: &ref_28\\n to:\\n type: array\\n items: *ref_0\\n description: Email addresses\\n cc:\\n type: array\\n items: *ref_0\\n description: Email addresses\\n replyTo:\\n type: string\\n description: Email address in reply-to field\\n subject:\\n type: string\\n description: Email subject\\n content:\\n type: string\\n format: json\\n description: Message content\\n remoteAttachments:\\n type: array\\n items: *ref_0\\n description: Remote files to attach to the email\\n required:\\n - to\\n - content\\n application/x-www-form-urlencoded:\\n schema:\\n type: object\\n properties: *ref_28\\n '/namespace/{namespaceID}/attachment/{kind}/':\\n get:\\n tags:\\n - Attachments\\n summary: 'List, filter all page attachments'\\n responses:\\n '200':\\n description: OK\\n parameters:\\n - in: query\\n name: sign\\n description: Signature\\n required: false\\n schema: *ref_0\\n - in: query\\n name: userID\\n description: User ID\\n required: false\\n schema: *ref_2\\n - in: query\\n name: pageID\\n description: Filter attachments by page ID\\n required: false\\n schema: *ref_2\\n - in: query\\n name: moduleID\\n description: Filter attachments by module ID\\n required: false\\n schema: *ref_2\\n - in: query\\n name: recordID\\n description: Filter attachments by record ID\\n required: false\\n schema: *ref_2\\n - in: query\\n name: fieldName\\n description: Filter attachments by field name\\n required: false\\n schema: *ref_0\\n - in: query\\n name: limit\\n description: Limit\\n required: false\\n schema: *ref_5\\n - in: query\\n name: offset\\n description: Offset\\n required: false\\n schema: *ref_5\\n - in: query\\n name: page\\n description: Page number (1-based)\\n required: false\\n schema: *ref_5\\n - in: query\\n name: perPage\\n description: Returned items per page (default 50)\\n required: false\\n schema: *ref_5\\n - in: path\\n name: kind\\n description: Attachment kind\\n required: true\\n schema: *ref_0\\n - in: path\\n name: namespaceID\\n description: Namespace ID\\n required: true\\n schema: *ref_2\\n '/namespace/{namespaceID}/attachment/{kind}/{attachmentID}':\\n get:\\n tags:\\n - Attachments\\n summary: Attachment details\\n responses:\\n '200':\\n description: OK\\n parameters:\\n - in: path\\n name: kind\\n description: Attachment kind\\n required: true\\n schema: *ref_0\\n - in: path\\n name: namespaceID\\n description: Namespace ID\\n required: true\\n schema: *ref_2\\n - in: path\\n name: attachmentID\\n description: Attachment ID\\n required: true\\n schema: *ref_2\\n - in: query\\n name: sign\\n description: Signature\\n required: false\\n schema: *ref_0\\n - in: query\\n name: userID\\n description: User ID\\n required: false\\n schema: *ref_2\\n delete:\\n tags:\\n - Attachments\\n summary: Delete attachment\\n responses:\\n '200':\\n description: OK\\n parameters:\\n - in: path\\n name: kind\\n description: Attachment kind\\n required: true\\n schema: *ref_0\\n - in: path\\n name: namespaceID\\n description: Namespace ID\\n required: true\\n schema: *ref_2\\n - in: path\\n name: attachmentID\\n description: Attachment ID\\n required: true\\n schema: *ref_2\\n - in: query\\n name: sign\\n description: Signature\\n required: false\\n schema: *ref_0\\n - in: query\\n name: userID\\n description: User ID\\n required: false\\n schema: *ref_2\\n '/namespace/{namespaceID}/attachment/{kind}/{attachmentID}/original/{name}':\\n get:\\n tags:\\n - Attachments\\n summary: Serves attached file\\n responses:\\n '200':\\n description: OK\\n parameters:\\n - in: path\\n name: kind\\n description: Attachment kind\\n required: true\\n schema: *ref_0\\n - in: path\\n name: namespaceID\\n description: Namespace ID\\n required: true\\n schema: *ref_2\\n - in: path\\n name: attachmentID\\n description: Attachment ID\\n required: true\\n schema: *ref_2\\n - in: path\\n name: name\\n description: File name\\n required: true\\n schema: *ref_0\\n - in: query\\n name: sign\\n description: Signature\\n required: false\\n schema: *ref_0\\n - in: query\\n name: userID\\n description: User ID\\n required: false\\n schema: *ref_2\\n - in: query\\n name: download\\n description: Force file download\\n required: false\\n schema: &ref_30\\n type: boolean\\n '/namespace/{namespaceID}/attachment/{kind}/{attachmentID}/preview.{ext}':\\n get:\\n tags:\\n - Attachments\\n summary: Serves preview of an attached file\\n responses:\\n '200':\\n description: OK\\n parameters:\\n - in: path\\n name: kind\\n description: Attachment kind\\n required: true\\n schema: *ref_0\\n - in: path\\n name: namespaceID\\n description: Namespace ID\\n required: true\\n schema: *ref_2\\n - in: path\\n name: attachmentID\\n description: Attachment ID\\n required: true\\n schema: *ref_2\\n - in: path\\n name: ext\\n description: Preview extension/format\\n required: true\\n schema: *ref_0\\n - in: query\\n name: sign\\n description: Signature\\n required: false\\n schema: *ref_0\\n - in: query\\n name: userID\\n description: User ID\\n required: false\\n schema: *ref_2\\n /permissions/:\\n get:\\n tags:\\n - Permissions\\n summary: Retrieve defined permissions\\n responses:\\n '200':\\n description: OK\\n /permissions/effective:\\n get:\\n tags:\\n - Permissions\\n summary: Effective rules for current user\\n responses:\\n '200':\\n description: OK\\n parameters:\\n - in: query\\n name: resource\\n description: Show only rules for a specific resource\\n required: false\\n schema: *ref_0\\n '/permissions/{roleID}/rules':\\n get:\\n tags:\\n - Permissions\\n summary: Retrieve role permissions\\n responses:\\n '200':\\n description: OK\\n parameters:\\n - in: path\\n name: roleID\\n description: Role ID\\n required: true\\n schema: *ref_2\\n delete:\\n tags:\\n - Permissions\\n summary: Remove all defined role permissions\\n responses:\\n '200':\\n description: OK\\n parameters:\\n - in: path\\n name: roleID\\n description: Role ID\\n required: true\\n schema: *ref_2\\n patch:\\n tags:\\n - Permissions\\n summary: Update permission settings\\n responses:\\n '200':\\n description: OK\\n parameters:\\n - in: path\\n name: roleID\\n description: Role ID\\n required: true\\n schema: *ref_2\\n requestBody:\\n content:\\n application/json:\\n schema:\\n type: object\\n properties: &ref_29\\n rules:\\n type: array\\n items:\\n type: object\\n properties:\\n roleID:\\n type: string\\n format: uuid\\n resource:\\n type: string\\n operation:\\n type: string\\n access:\\n type: string\\n description: List of permission rules to set\\n required:\\n - rules\\n application/x-www-form-urlencoded:\\n schema:\\n type: object\\n properties: *ref_29\\n /automation/:\\n get:\\n tags:\\n - Compose automation scripts\\n summary: List all available automation scripts for compose resources\\n responses:\\n '200':\\n description: OK\\n parameters:\\n - in: query\\n name: resourceTypePrefixes\\n description: Filter by resource prefix\\n required: false\\n schema:\\n type: array\\n items: *ref_0\\n - in: query\\n name: resourceTypes\\n description: Filter by resource type\\n required: false\\n schema:\\n type: array\\n items: *ref_0\\n - in: query\\n name: eventTypes\\n description: Filter by event type\\n required: false\\n schema:\\n type: array\\n items: *ref_0\\n - in: query\\n name: excludeInvalid\\n description: Exclude scripts that can not be used (errors)\\n required: false\\n schema: *ref_30\\n - in: query\\n name: excludeClientScripts\\n description: Do not include client scripts\\n required: false\\n schema: *ref_30\\n - in: query\\n name: excludeServerScripts\\n description: Do not include server scripts\\n required: false\\n schema: *ref_30\\n '/automation/{bundle}-{type}.{ext}':\\n get:\\n tags:\\n - Compose automation scripts\\n summary: Serves client scripts bundle\\n responses:\\n '200':\\n description: OK\\n parameters:\\n - in: path\\n name: bundle\\n description: Name of the bundle\\n required: true\\n schema: *ref_0\\n - in: path\\n name: type\\n description: Bundle type\\n required: true\\n schema: *ref_0\\n - in: path\\n name: ext\\n description: Bundle extension\\n required: true\\n schema: *ref_0\\n /automation/trigger:\\n post:\\n tags:\\n - Compose automation scripts\\n summary: Triggers execution of a specific script on a system service level\\n responses:\\n '200':\\n description: OK\\n requestBody:\\n content:\\n application/json:\\n schema:\\n type: object\\n properties: &ref_31\\n script:\\n type: string\\n description: Script to execute\\n required:\\n - script\\n application/x-www-form-urlencoded:\\n schema:\\n type: object\\n properties: *ref_31\\nPK\\x07\\x08M<\\xdf\\xf8\\xdc\\xc9\\x00\\x00\\xdc\\xc9\\x00\\x00PK\\x03\\x04\\x14\\x00\\x08\\x00\\x00\\x00\\x00\\x00!(\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\n\\x00 \\x00index.htmlUT\\x05\\x00\\x01\\x80Cm8<!-- HTML for static distribution bundle build -->\\n<!DOCTYPE html>\\n<html lang=\\\"en\\\">\\n <head>\\n <meta charset=\\\"UTF-8\\\">\\n <title>Corteza Server REST API Documentation</title>\\n <link rel=\\\"stylesheet\\\" type=\\\"text/css\\\" href=\\\"https://unpkg.com/swagger-ui-dist@3/swagger-ui.css\\\" >\\n <link rel=\\\"icon\\\" type=\\\"image/png\\\" href=\\\"https://unpkg.com/swagger-ui-dist@3/favicon-32x32.png\\\" sizes=\\\"32x32\\\" />\\n <link rel=\\\"icon\\\" type=\\\"image/png\\\" href=\\\"https://unpkg.com/swagger-ui-dist@3/favicon-16x16.png\\\" sizes=\\\"16x16\\\" />\\n <style>\\n html\\n {\\n box-sizing: border-box;\\n overflow: -moz-scrollbars-vertical;\\n overflow-y: scroll;\\n }\\n\\n *,\\n *:before,\\n *:after\\n {\\n box-sizing: inherit;\\n }\\n\\n body\\n {\\n margin:0;\\n background: #fafafa;\\n }\\n </style>\\n </head>\\n\\n <body>\\n <div id=\\\"swagger-ui\\\"></div>\\n <script src=\\\"https://unpkg.com/swagger-ui-dist@3/swagger-ui-bundle.js\\\" charset=\\\"UTF-8\\\"></script>\\n <script src=\\\"https://unpkg.com/swagger-ui-dist@3/swagger-ui-standalone-preset.js\\\" charset=\\\"UTF-8\\\"></script>\\n\\n <script>\\n window.onload = function() {\\n // https://swagger.io/docs/open-source-tools/swagger-ui/usage/configuration/\\n window.ui = SwaggerUIBundle({\\n urls: [\\n { url: \\\"/docs/system.yaml\\\", name: 'System' },\\n { url: \\\"/docs/compose.yaml\\\", name: 'Compose' },\\n { url: \\\"/docs/messaging.yaml\\\", name: 'Messaging' },\\n ],\\n dom_id: '#swagger-ui',\\n deepLinking: true,\\n presets: [\\n SwaggerUIBundle.presets.apis,\\n SwaggerUIStandalonePreset\\n ],\\n plugins: [\\n SwaggerUIBundle.plugins.DownloadUrl\\n ],\\n layout: \\\"StandaloneLayout\\\",\\n\\n supportedSubmitMethods: [],\\n })\\n }\\n </script>\\n </body>\\n</html>\\nPK\\x07\\x08;\\xaaT,B\\x07\\x00\\x00B\\x07\\x00\\x00PK\\x03\\x04\\x14\\x00\\x08\\x00\\x00\\x00\\x00\\x00!(\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x0e\\x00 \\x00messaging.yamlUT\\x05\\x00\\x01\\x80Cm8openapi: 3.0.0\\ninfo:\\n title: Corteza messaging API\\n description: Corteza messaging REST API definition\\n version: 2020.12\\n contact:\\n email: info@cortezaproject.org\\n license:\\n name: Apache 2.0\\n url: 'http://www.apache.org/licenses/LICENSE-2.0.html'\\npaths:\\n /commands/:\\n get:\\n tags:\\n - Commands\\n summary: List of available commands\\n responses:\\n '200':\\n description: OK\\n /status/:\\n get:\\n tags:\\n - Status\\n summary: See all current statuses\\n responses:\\n '200':\\n description: OK\\n post:\\n tags:\\n - Status\\n summary: Set user's status\\n responses:\\n '200':\\n description: OK\\n requestBody:\\n content:\\n application/json:\\n schema:\\n type: object\\n properties: &ref_0\\n icon:\\n type: string\\n description: Status icon\\n message:\\n type: string\\n description: Status message\\n expires:\\n type: string\\n description: >-\\n Clear status when it expires (eg: when-active, afternoon,\\n tomorrow 1h, 30m, 1 PM, 2019-05-20)\\n application/x-www-form-urlencoded:\\n schema:\\n type: object\\n properties: *ref_0\\n delete:\\n tags:\\n - Status\\n summary: Clear status\\n responses:\\n '200':\\n description: OK\\n /activity/:\\n post:\\n tags:\\n - User activity\\n summary: >-\\n Sends user's activity to all subscribers; globally or per\\n channel/message.\\n responses:\\n '200':\\n description: OK\\n requestBody:\\n content:\\n application/json:\\n schema:\\n type: object\\n properties: &ref_1\\n channelID:\\n type: string\\n description: >-\\n Channel ID, if set, activity will be send only to subscribed\\n users\\n messageID:\\n type: string\\n description: 'Message ID, if set, channelID must be set as well'\\n kind:\\n type: string\\n description: Arbitrary string\\n required:\\n - kind\\n application/x-www-form-urlencoded:\\n schema:\\n type: object\\n properties: *ref_1\\n /channels/:\\n get:\\n tags:\\n - Channels\\n summary: List channels\\n responses:\\n '200':\\n description: OK\\n parameters:\\n - in: query\\n name: query\\n description: Search query\\n required: false\\n schema: &ref_2\\n type: string\\n post:\\n tags:\\n - Channels\\n summary: Create new channel\\n responses:\\n '200':\\n description: OK\\n requestBody:\\n content:\\n application/json:\\n schema:\\n type: object\\n properties: &ref_3\\n name:\\n type: string\\n description: Name of Channel\\n topic:\\n type: string\\n description: Subject of Channel\\n type:\\n type: string\\n description: Channel type\\n membershipPolicy:\\n type: string\\n description: 'Membership policy (eg: featured, forced)?'\\n members:\\n type: array\\n items: *ref_2\\n description: Initial members of the channel\\n application/x-www-form-urlencoded:\\n schema:\\n type: object\\n properties: *ref_3\\n '/channels/{channelID}':\\n put:\\n tags:\\n - Channels\\n summary: Update channel details\\n responses:\\n '200':\\n description: OK\\n parameters:\\n - in: path\\n name: channelID\\n description: Channel ID\\n required: true\\n schema: &ref_5\\n type: string\\n requestBody:\\n content:\\n application/json:\\n schema:\\n type: object\\n properties: &ref_4\\n name:\\n type: string\\n description: Name of Channel\\n topic:\\n type: string\\n description: Subject of Channel\\n membershipPolicy:\\n type: string\\n description: 'Membership policy (eg: featured, forced)?'\\n type:\\n type: string\\n description: Channel type\\n organisationID:\\n type: string\\n description: Move channel to different organisation\\n application/x-www-form-urlencoded:\\n schema:\\n type: object\\n properties: *ref_4\\n get:\\n tags:\\n - Channels\\n summary: Read channel details\\n responses:\\n '200':\\n description: OK\\n parameters:\\n - in: path\\n name: channelID\\n description: Channel ID\\n required: true\\n schema: *ref_5\\n '/channels/{channelID}/state':\\n put:\\n tags:\\n - Channels\\n summary: Update channel state\\n responses:\\n '200':\\n description: OK\\n parameters:\\n - in: path\\n name: channelID\\n description: Channel ID\\n required: true\\n schema: *ref_5\\n requestBody:\\n content:\\n application/json:\\n schema:\\n type: object\\n properties: &ref_6\\n state:\\n type: string\\n description: 'Valid values: delete, undelete, archive, unarchive'\\n required:\\n - state\\n application/x-www-form-urlencoded:\\n schema:\\n type: object\\n properties: *ref_6\\n '/channels/{channelID}/flag':\\n put:\\n tags:\\n - Channels\\n summary: Update channel membership flag\\n responses:\\n '200':\\n description: OK\\n parameters:\\n - in: path\\n name: channelID\\n description: Channel ID\\n required: true\\n schema: *ref_5\\n requestBody:\\n content:\\n application/json:\\n schema:\\n type: object\\n properties: &ref_7\\n flag:\\n type: string\\n description: 'Valid values: pinned, hidden, ignored'\\n required:\\n - flag\\n application/x-www-form-urlencoded:\\n schema:\\n type: object\\n properties: *ref_7\\n delete:\\n tags:\\n - Channels\\n summary: Remove channel membership flag\\n responses:\\n '200':\\n description: OK\\n parameters:\\n - in: path\\n name: channelID\\n description: Channel ID\\n required: true\\n schema: *ref_5\\n '/channels/{channelID}/members':\\n get:\\n tags:\\n - Channels\\n summary: List channel members\\n responses:\\n '200':\\n description: OK\\n parameters:\\n - in: path\\n name: channelID\\n description: Channel ID\\n required: true\\n schema: *ref_5\\n '/channels/{channelID}/members/{userID}':\\n put:\\n tags:\\n - Channels\\n summary: Join channel\\n responses:\\n '200':\\n description: OK\\n parameters:\\n - in: path\\n name: channelID\\n description: Channel ID\\n required: true\\n schema: *ref_5\\n - in: path\\n name: userID\\n description: Member ID\\n required: true\\n schema: *ref_5\\n delete:\\n tags:\\n - Channels\\n summary: Remove member from channel\\n responses:\\n '200':\\n description: OK\\n parameters:\\n - in: path\\n name: channelID\\n description: Channel ID\\n required: true\\n schema: *ref_5\\n - in: path\\n name: userID\\n description: Member ID\\n required: true\\n schema: *ref_5\\n '/channels/{channelID}/invite':\\n post:\\n tags:\\n - Channels\\n summary: Join channel\\n responses:\\n '200':\\n description: OK\\n parameters:\\n - in: path\\n name: channelID\\n description: Channel ID\\n required: true\\n schema: *ref_5\\n requestBody:\\n content:\\n application/json:\\n schema:\\n type: object\\n properties: &ref_8\\n userID:\\n type: array\\n items: *ref_2\\n description: User ID\\n application/x-www-form-urlencoded:\\n schema:\\n type: object\\n properties: *ref_8\\n '/channels/{channelID}/attach':\\n post:\\n tags:\\n - Channels\\n summary: Attach file to channel\\n responses:\\n '200':\\n description: OK\\n parameters:\\n - in: path\\n name: channelID\\n description: Channel ID\\n required: true\\n schema: *ref_5\\n requestBody:\\n content:\\n application/json:\\n schema:\\n type: object\\n properties: &ref_9\\n replyTo:\\n type: string\\n description: Upload as a reply\\n upload:\\n type: string\\n format: binary\\n description: File to upload\\n required:\\n - upload\\n application/x-www-form-urlencoded:\\n schema:\\n type: object\\n properties: *ref_9\\n '/channels/{channelID}/messages/':\\n post:\\n tags:\\n - Messages\\n summary: Post new message to the channel\\n responses:\\n '200':\\n description: OK\\n requestBody:\\n content:\\n application/json:\\n schema:\\n type: object\\n properties: &ref_10\\n message:\\n type: string\\n description: Message contents (markdown)\\n required:\\n - message\\n application/x-www-form-urlencoded:\\n schema:\\n type: object\\n properties: *ref_10\\n parameters:\\n - in: path\\n name: channelID\\n description: Channel ID\\n required: true\\n schema: *ref_5\\n '/channels/{channelID}/messages/command/{command}/exec':\\n post:\\n tags:\\n - Messages\\n summary: Execute command\\n responses:\\n '200':\\n description: OK\\n parameters:\\n - in: path\\n name: channelID\\n description: Channel ID\\n required: true\\n schema: *ref_5\\n - in: path\\n name: command\\n description: Command to be executed\\n required: true\\n schema: *ref_2\\n requestBody:\\n content:\\n application/json:\\n schema:\\n type: object\\n properties: &ref_11\\n input:\\n type: string\\n description: Arbitrary command input\\n params:\\n type: array\\n items: *ref_2\\n description: Command parameters\\n application/x-www-form-urlencoded:\\n schema:\\n type: object\\n properties: *ref_11\\n '/channels/{channelID}/messages/mark-as-read':\\n get:\\n tags:\\n - Messages\\n summary: Manages read/unread messages in a channel or a thread\\n responses:\\n '200':\\n description: OK\\n parameters:\\n - in: path\\n name: channelID\\n description: Channel ID\\n required: true\\n schema: *ref_5\\n - in: query\\n name: threadID\\n description: 'ID of thread (messageID) '\\n required: false\\n schema: *ref_5\\n - in: query\\n name: lastReadMessageID\\n description: ID of the last read message\\n required: false\\n schema: *ref_5\\n '/channels/{channelID}/messages/{messageID}':\\n put:\\n tags:\\n - Messages\\n summary: Edit existing message\\n responses:\\n '200':\\n description: OK\\n parameters:\\n - in: path\\n name: channelID\\n description: Channel ID\\n required: true\\n schema: *ref_5\\n - in: path\\n name: messageID\\n description: Message ID\\n required: true\\n schema: *ref_5\\n requestBody:\\n content:\\n application/json:\\n schema:\\n type: object\\n properties: &ref_12\\n message:\\n type: string\\n description: Message contents (markdown)\\n required:\\n - message\\n application/x-www-form-urlencoded:\\n schema:\\n type: object\\n properties: *ref_12\\n delete:\\n tags:\\n - Messages\\n summary: Delete existing message\\n responses:\\n '200':\\n description: OK\\n parameters:\\n - in: path\\n name: channelID\\n description: Channel ID\\n required: true\\n schema: *ref_5\\n - in: path\\n name: messageID\\n description: Message ID\\n required: true\\n schema: *ref_5\\n '/channels/{channelID}/messages/{messageID}/replies':\\n post:\\n tags:\\n - Messages\\n summary: Reply to a message\\n responses:\\n '200':\\n description: OK\\n parameters:\\n - in: path\\n name: channelID\\n description: Channel ID\\n required: true\\n schema: *ref_5\\n - in: path\\n name: messageID\\n description: Message ID\\n required: true\\n schema: *ref_5\\n requestBody:\\n content:\\n application/json:\\n schema:\\n type: object\\n properties: &ref_13\\n message:\\n type: string\\n description: Message contents (markdown)\\n required:\\n - message\\n application/x-www-form-urlencoded:\\n schema:\\n type: object\\n properties: *ref_13\\n '/channels/{channelID}/messages/{messageID}/pin':\\n post:\\n tags:\\n - Messages\\n summary: Pin message to channel (public bookmark)\\n responses:\\n '200':\\n description: OK\\n parameters:\\n - in: path\\n name: channelID\\n description: Channel ID\\n required: true\\n schema: *ref_5\\n - in: path\\n name: messageID\\n description: Message ID\\n required: true\\n schema: *ref_5\\n delete:\\n tags:\\n - Messages\\n summary: Pin message to channel (public bookmark)\\n responses:\\n '200':\\n description: OK\\n parameters:\\n - in: path\\n name: channelID\\n description: Channel ID\\n required: true\\n schema: *ref_5\\n - in: path\\n name: messageID\\n description: Message ID\\n required: true\\n schema: *ref_5\\n '/channels/{channelID}/messages/{messageID}/bookmark':\\n post:\\n tags:\\n - Messages\\n summary: Bookmark a message (private bookmark)\\n responses:\\n '200':\\n description: OK\\n parameters:\\n - in: path\\n name: channelID\\n description: Channel ID\\n required: true\\n schema: *ref_5\\n - in: path\\n name: messageID\\n description: Message ID\\n required: true\\n schema: *ref_5\\n delete:\\n tags:\\n - Messages\\n summary: Remove boomark from message (private bookmark)\\n responses:\\n '200':\\n description: OK\\n parameters:\\n - in: path\\n name: channelID\\n description: Channel ID\\n required: true\\n schema: *ref_5\\n - in: path\\n name: messageID\\n description: Message ID\\n required: true\\n schema: *ref_5\\n '/channels/{channelID}/messages/{messageID}/reaction/{reaction}':\\n post:\\n tags:\\n - Messages\\n summary: React to a message\\n responses:\\n '200':\\n description: OK\\n parameters:\\n - in: path\\n name: channelID\\n description: Channel ID\\n required: true\\n schema: *ref_5\\n - in: path\\n name: messageID\\n description: Message ID\\n required: true\\n schema: *ref_5\\n - in: path\\n name: reaction\\n description: Reaction\\n required: true\\n schema: *ref_2\\n delete:\\n tags:\\n - Messages\\n summary: Delete reaction from a message\\n responses:\\n '200':\\n description: OK\\n parameters:\\n - in: path\\n name: channelID\\n description: Channel ID\\n required: true\\n schema: *ref_5\\n - in: path\\n name: messageID\\n description: Message ID\\n required: true\\n schema: *ref_5\\n - in: path\\n name: reaction\\n description: Reaction\\n required: true\\n schema: *ref_2\\n '/attachment/{attachmentID}/original/{name}':\\n get:\\n tags:\\n - Attachments\\n summary: Serves attached file\\n responses:\\n '200':\\n description: OK\\n parameters:\\n - in: path\\n name: attachmentID\\n description: Attachment ID\\n required: true\\n schema: *ref_5\\n - in: path\\n name: name\\n description: File name\\n required: true\\n schema: *ref_2\\n - in: query\\n name: sign\\n description: Signature\\n required: true\\n schema: *ref_2\\n - in: query\\n name: userID\\n description: User ID\\n required: true\\n schema: *ref_5\\n - in: query\\n name: download\\n description: Force file download\\n required: false\\n schema: &ref_14\\n type: boolean\\n '/attachment/{attachmentID}/preview.{ext}':\\n get:\\n tags:\\n - Attachments\\n summary: Serves preview of an attached file\\n responses:\\n '200':\\n description: OK\\n parameters:\\n - in: path\\n name: attachmentID\\n description: Attachment ID\\n required: true\\n schema: *ref_5\\n - in: path\\n name: ext\\n description: Preview extension/format\\n required: true\\n schema: *ref_2\\n - in: query\\n name: sign\\n description: Signature\\n required: true\\n schema: *ref_2\\n - in: query\\n name: userID\\n description: User ID\\n required: true\\n schema: *ref_5\\n /search/messages:\\n get:\\n tags:\\n - Search entry point\\n summary: Search for messages\\n responses:\\n '200':\\n description: OK\\n parameters:\\n - in: query\\n name: query\\n description: Search query\\n required: false\\n schema: *ref_2\\n - in: query\\n name: channelID\\n description: Filter by channels\\n required: false\\n schema:\\n type: array\\n items: *ref_2\\n - in: query\\n name: afterMessageID\\n description: ID of the first message in the list (exclusive)\\n required: false\\n schema: *ref_5\\n - in: query\\n name: beforeMessageID\\n description: ID of the last message in the list (exclusive)\\n required: false\\n schema: *ref_5\\n - in: query\\n name: fromMessageID\\n description: ID of the first message in the list (inclusive)\\n required: false\\n schema: *ref_5\\n - in: query\\n name: toMessageID\\n description: ID of the last message the list (inclusive)\\n required: false\\n schema: *ref_5\\n - in: query\\n name: threadID\\n description: Filter by thread message ID\\n required: false\\n schema:\\n type: array\\n items: *ref_2\\n - in: query\\n name: userID\\n description: Filter by one or more user\\n required: false\\n schema:\\n type: array\\n items: *ref_2\\n - in: query\\n name: type\\n description: 'Filter by message type (text, inlineImage, attachment, ...)'\\n required: false\\n schema:\\n type: array\\n items: *ref_2\\n - in: query\\n name: pinnedOnly\\n description: Return only pinned messages\\n required: false\\n schema: *ref_14\\n - in: query\\n name: bookmarkedOnly\\n description: Only bookmarked messages\\n required: false\\n schema: *ref_14\\n - in: query\\n name: limit\\n description: Max number of messages\\n required: false\\n schema: &ref_15\\n type: string\\n /search/threads:\\n get:\\n tags:\\n - Search entry point\\n summary: Search for threads\\n responses:\\n '200':\\n description: OK\\n parameters:\\n - in: query\\n name: query\\n description: Search query\\n required: false\\n schema: *ref_2\\n - in: query\\n name: channelID\\n description: Filter by channels\\n required: false\\n schema:\\n type: array\\n items: *ref_2\\n - in: query\\n name: limit\\n description: Max number of messages\\n required: false\\n schema: *ref_15\\n /permissions/:\\n get:\\n tags:\\n - Permissions\\n summary: Retrieve defined permissions\\n responses:\\n '200':\\n description: OK\\n /permissions/effective:\\n get:\\n tags:\\n - Permissions\\n summary: Effective rules for current user\\n responses:\\n '200':\\n description: OK\\n parameters:\\n - in: query\\n name: resource\\n description: Show only rules for a specific resource\\n required: false\\n schema: *ref_2\\n '/permissions/{roleID}/rules':\\n get:\\n tags:\\n - Permissions\\n summary: Retrieve role permissions\\n responses:\\n '200':\\n description: OK\\n parameters:\\n - in: path\\n name: roleID\\n description: Role ID\\n required: true\\n schema: *ref_5\\n delete:\\n tags:\\n - Permissions\\n summary: Remove all defined role permissions\\n responses:\\n '200':\\n description: OK\\n parameters:\\n - in: path\\n name: roleID\\n description: Role ID\\n required: true\\n schema: *ref_5\\n patch:\\n tags:\\n - Permissions\\n summary: Update permission settings\\n responses:\\n '200':\\n description: OK\\n parameters:\\n - in: path\\n name: roleID\\n description: Role ID\\n required: true\\n schema: *ref_5\\n requestBody:\\n content:\\n application/json:\\n schema:\\n type: object\\n properties: &ref_16\\n rules:\\n type: array\\n items:\\n type: object\\n properties:\\n roleID:\\n type: string\\n format: uuid\\n resource:\\n type: string\\n operation:\\n type: string\\n access:\\n type: string\\n description: List of permission rules to set\\n required:\\n - rules\\n application/x-www-form-urlencoded:\\n schema:\\n type: object\\n properties: *ref_16\\nPK\\x07\\x08\\x05\\xac\\xad\\xf6\\x83^\\x00\\x00\\x83^\\x00\\x00PK\\x03\\x04\\x14\\x00\\x08\\x00\\x00\\x00\\x00\\x00!(\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00 \\x00 \\x00static.goUT\\x05\\x00\\x01\\x80Cm8// Code generated by statik. DO NOT EDIT.\\n\\n// Package contains static assets.\\npackage docs\\n\\nvar Asset = \\\"PK\\\\x03\\\\x04\\\\x14\\\\x00\\\\x08\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00!(\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x0b\\\\x00 \\\\x00README.adocUT\\\\x05\\\\x00\\\\x01\\\\x80Cm8# Corteza API documentation\\\\n\\\\nWARNING: Work in progress\\\\n\\\\nThis is the first step in migration towards full OpenAPI standards support.`\\\\n\\\\n## Original/starting state (pre `2020.9`; deprecated):\\\\nHome-brew API definition format in JSON, still available under `api/*/spec.json`.\\\\nThis is still needed for controller/request/handler codegens. Documentation generators are disabled.\\\\n\\\\n## Current state (`2020.9`)\\\\nIn branch `2020.12.x` we're experimenting with first step toward conversion to OpenAPI 3.0 YAML files for API\\\\ndefinition. There is a converter available in https://github.com/cortezaproject/openapi3-converter[cortezaproject/openapi3-converter]\\\\nthat takes those custom YAML files and converts them to OpenAPI format.\\\\n\\\\n## Goal (target `2020.12`)\\\\nGenerate HTTP handlers and all auxilary code and documentation from YAML files in OpenAPI 3.0 format\\\\nPK\\\\x07\\\\x08$jr\\\\x0dN\\\\x03\\\\x00\\\\x00N\\\\x03\\\\x00\\\\x00PK\\\\x03\\\\x04\\\\x14\\\\x00\\\\x08\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00!(\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x0c\\\\x00 \\\\x00compose.yamlUT\\\\x05\\\\x00\\\\x01\\\\x80Cm8openapi: 3.0.0\\\\ninfo:\\\\n title: Corteza compose API\\\\n description: Corteza compose REST API definition\\\\n version: 2020.9\\\\n contact:\\\\n email: info@cortezaproject.org\\\\n license:\\\\n name: Apache 2.0\\\\n url: 'http://www.apache.org/licenses/LICENSE-2.0.html'\\\\npaths:\\\\n /namespace/:\\\\n get:\\\\n tags:\\\\n - Namespaces\\\\n summary: List namespaces\\\\n responses:\\\\n '200':\\\\n description: OK\\\\n parameters:\\\\n - in: query\\\\n name: query\\\\n description: Search query\\\\n required: false\\\\n schema: &ref_0\\\\n type: string\\\\n - in: query\\\\n name: slug\\\\n description: Search by namespace slug\\\\n required: false\\\\n schema: *ref_0\\\\n - in: query\\\\n name: limit\\\\n description: Limit\\\\n required: false\\\\n schema: &ref_5\\\\n type: string\\\\n - in: query\\\\n name: pageCursor\\\\n description: Page cursor\\\\n required: false\\\\n schema: *ref_0\\\\n - in: query\\\\n name: sort\\\\n description: Sort items\\\\n required: false\\\\n schema: *ref_0\\\\n post:\\\\n tags:\\\\n - Namespaces\\\\n summary: Create namespace\\\\n responses:\\\\n '200':\\\\n description: OK\\\\n requestBody:\\\\n content:\\\\n application/json:\\\\n schema:\\\\n type: object\\\\n properties: &ref_1\\\\n name:\\\\n type: string\\\\n description: Name\\\\n slug:\\\\n type: string\\\\n description: Slug (url path part)\\\\n enabled:\\\\n type: boolean\\\\n description: Enabled\\\\n meta:\\\\n type: string\\\\n format: json\\\\n description: Meta data\\\\n required:\\\\n - name\\\\n - meta\\\\n application/x-www-form-urlencoded:\\\\n schema:\\\\n type: object\\\\n properties: *ref_1\\\\n '/namespace/{namespaceID}':\\\\n get:\\\\n tags:\\\\n - Namespaces\\\\n summary: Read namespace\\\\n responses:\\\\n '200':\\\\n description: OK\\\\n parameters:\\\\n - in: path\\\\n name: namespaceID\\\\n description: ID\\\\n required: true\\\\n schema: &ref_2\\\\n type: string\\\\n post:\\\\n tags:\\\\n - Namespaces\\\\n summary: Update namespace\\\\n responses:\\\\n '200':\\\\n description: OK\\\\n parameters:\\\\n - in: path\\\\n name: namespaceID\\\\n description: ID\\\\n required: true\\\\n schema: *ref_2\\\\n requestBody:\\\\n content:\\\\n application/json:\\\\n schema:\\\\n type: object\\\\n properties: &ref_3\\\\n name:\\\\n type: string\\\\n description: Name\\\\n slug:\\\\n type: string\\\\n description: Slug (url path part)\\\\n enabled:\\\\n type: boolean\\\\n description: Enabled\\\\n meta:\\\\n type: string\\\\n format: json\\\\n description: Meta data\\\\n updatedAt:\\\\n type: string\\\\n format: date-time\\\\n description: Last update (or creation) date\\\\n required:\\\\n - name\\\\n - meta\\\\n application/x-www-form-urlencoded:\\\\n schema:\\\\n type: object\\\\n properties: *ref_3\\\\n delete:\\\\n tags:\\\\n - Namespaces\\\\n summary: Delete namespace\\\\n responses:\\\\n '200':\\\\n description: OK\\\\n parameters:\\\\n - in: path\\\\n name: namespaceID\\\\n description: ID\\\\n required: true\\\\n schema: *ref_2\\\\n '/namespace/{namespaceID}/trigger':\\\\n post:\\\\n tags:\\\\n - Namespaces\\\\n summary: 'Fire compose:namespace trigger'\\\\n responses:\\\\n '200':\\\\n description: OK\\\\n parameters:\\\\n - in: path\\\\n name: namespaceID\\\\n description: ID\\\\n required: true\\\\n schema: *ref_2\\\\n requestBody:\\\\n content:\\\\n application/json:\\\\n schema:\\\\n type: object\\\\n properties: &ref_4\\\\n script:\\\\n type: string\\\\n description: Script to execute\\\\n required:\\\\n - script\\\\n application/x-www-form-urlencoded:\\\\n schema:\\\\n type: object\\\\n properties: *ref_4\\\\n '/namespace/{namespaceID}/page/':\\\\n get:\\\\n tags:\\\\n - Pages\\\\n summary: List available pages\\\\n responses:\\\\n '200':\\\\n description: OK\\\\n parameters:\\\\n - in: query\\\\n name: selfID\\\\n description: Parent page ID\\\\n required: false\\\\n schema: *ref_2\\\\n - in: query\\\\n name: query\\\\n description: Search query\\\\n required: false\\\\n schema: *ref_0\\\\n - in: query\\\\n name: handle\\\\n description: Search by handle\\\\n required: false\\\\n schema: *ref_0\\\\n - in: query\\\\n name: limit\\\\n description: Limit\\\\n required: false\\\\n schema: *ref_5\\\\n - in: query\\\\n name: pageCursor\\\\n description: Page cursor\\\\n required: false\\\\n schema: *ref_0\\\\n - in: query\\\\n name: sort\\\\n description: Sort items\\\\n required: false\\\\n schema: *ref_0\\\\n - in: path\\\\n name: namespaceID\\\\n description: Namespace ID\\\\n required: true\\\\n schema: *ref_2\\\\n post:\\\\n tags:\\\\n - Pages\\\\n summary: Create page\\\\n responses:\\\\n '200':\\\\n description: OK\\\\n requestBody:\\\\n content:\\\\n application/json:\\\\n schema:\\\\n type: object\\\\n properties: &ref_6\\\\n selfID:\\\\n type: string\\\\n description: Parent Page ID\\\\n moduleID:\\\\n type: string\\\\n description: Module ID\\\\n title:\\\\n type: string\\\\n description: Title\\\\n handle:\\\\n type: string\\\\n description: Handle\\\\n description:\\\\n type: string\\\\n description: Description\\\\n weight:\\\\n type: integer\\\\n description: Page tree weight\\\\n visible:\\\\n type: boolean\\\\n description: Visible in navigation\\\\n blocks:\\\\n type: string\\\\n format: json\\\\n description: Blocks JSON\\\\n required:\\\\n - title\\\\n application/x-www-form-urlencoded:\\\\n schema:\\\\n type: object\\\\n properties: *ref_6\\\\n parameters:\\\\n - in: path\\\\n name: namespaceID\\\\n description: Namespace ID\\\\n required: true\\\\n schema: *ref_2\\\\n '/namespace/{namespaceID}/page/{pageID}':\\\\n get:\\\\n tags:\\\\n - Pages\\\\n summary: Get page details\\\\n responses:\\\\n '200':\\\\n description: OK\\\\n parameters:\\\\n - in: path\\\\n name: namespaceID\\\\n description: Namespace ID\\\\n required: true\\\\n schema: *ref_2\\\\n - in: path\\\\n name: pageID\\\\n description: Page ID\\\\n required: true\\\\n schema: *ref_2\\\\n post:\\\\n tags:\\\\n - Pages\\\\n summary: Update page\\\\n responses:\\\\n '200':\\\\n description: OK\\\\n parameters:\\\\n - in: path\\\\n name: namespaceID\\\\n description: Namespace ID\\\\n required: true\\\\n schema: *ref_2\\\\n - in: path\\\\n name: pageID\\\\n description: Page ID\\\\n required: true\\\\n schema: *ref_2\\\\n requestBody:\\\\n content:\\\\n application/json:\\\\n schema:\\\\n type: object\\\\n properties: &ref_7\\\\n selfID:\\\\n type: string\\\\n description: Parent Page ID\\\\n moduleID:\\\\n type: string\\\\n description: Module ID (optional)\\\\n title:\\\\n type: string\\\\n description: Title\\\\n handle:\\\\n type: string\\\\n description: Handle\\\\n description:\\\\n type: string\\\\n description: Description\\\\n weight:\\\\n type: integer\\\\n description: Page tree weight\\\\n visible:\\\\n type: boolean\\\\n description: Visible in navigation\\\\n blocks:\\\\n type: string\\\\n format: json\\\\n description: Blocks JSON\\\\n required:\\\\n - title\\\\n application/x-www-form-urlencoded:\\\\n schema:\\\\n type: object\\\\n properties: *ref_7\\\\n delete:\\\\n tags:\\\\n - Pages\\\\n summary: Delete page\\\\n responses:\\\\n '200':\\\\n description: OK\\\\n parameters:\\\\n - in: path\\\\n name: namespaceID\\\\n description: Namespace ID\\\\n required: true\\\\n schema: *ref_2\\\\n - in: path\\\\n name: pageID\\\\n description: Page ID\\\\n required: true\\\\n schema: *ref_2\\\\n '/namespace/{namespaceID}/page/tree':\\\\n get:\\\\n tags:\\\\n - Pages\\\\n summary: 'Get page all (non-record) pages, hierarchically'\\\\n responses:\\\\n '200':\\\\n description: OK\\\\n parameters:\\\\n - in: path\\\\n name: namespaceID\\\\n description: Namespace ID\\\\n required: true\\\\n schema: *ref_2\\\\n '/namespace/{namespaceID}/page/{selfID}/reorder':\\\\n post:\\\\n tags:\\\\n - Pages\\\\n summary: Reorder pages\\\\n responses:\\\\n '200':\\\\n description: OK\\\\n parameters:\\\\n - in: path\\\\n name: namespaceID\\\\n description: Namespace ID\\\\n required: true\\\\n schema: *ref_2\\\\n - in: path\\\\n name: selfID\\\\n description: Parent page ID\\\\n required: true\\\\n schema: *ref_2\\\\n requestBody:\\\\n content:\\\\n application/json:\\\\n schema:\\\\n type: object\\\\n properties: &ref_8\\\\n pageIDs:\\\\n type: array\\\\n items: *ref_0\\\\n description: Page ID order\\\\n required:\\\\n - pageIDs\\\\n application/x-www-form-urlencoded:\\\\n schema:\\\\n type: object\\\\n properties: *ref_8\\\\n '/namespace/{namespaceID}/page/{pageID}/attachment':\\\\n post:\\\\n tags:\\\\n - Pages\\\\n summary: Uploads attachment to page\\\\n responses:\\\\n '200':\\\\n description: OK\\\\n parameters:\\\\n - in: path\\\\n name: namespaceID\\\\n description: Namespace ID\\\\n required: true\\\\n schema: *ref_2\\\\n - in: path\\\\n name: pageID\\\\n description: Page ID\\\\n required: true\\\\n schema: *ref_2\\\\n requestBody:\\\\n content:\\\\n application/json:\\\\n schema:\\\\n type: object\\\\n properties: &ref_9\\\\n upload:\\\\n type: string\\\\n format: binary\\\\n description: File to upload\\\\n required:\\\\n - upload\\\\n application/x-www-form-urlencoded:\\\\n schema:\\\\n type: object\\\\n properties: *ref_9\\\\n '/namespace/{namespaceID}/page/{pageID}/trigger':\\\\n post:\\\\n tags:\\\\n - Pages\\\\n summary: 'Fire compose:page trigger'\\\\n responses:\\\\n '200':\\\\n description: OK\\\\n parameters:\\\\n - in: path\\\\n name: namespaceID\\\\n description: Namespace ID\\\\n required: true\\\\n schema: *ref_2\\\\n - in: path\\\\n name: pageID\\\\n description: Page ID\\\\n required: true\\\\n schema: *ref_2\\\\n requestBody:\\\\n content:\\\\n application/json:\\\\n schema:\\\\n type: object\\\\n properties: &ref_10\\\\n script:\\\\n type: string\\\\n description: Script to execute\\\\n required:\\\\n - script\\\\n application/x-www-form-urlencoded:\\\\n schema:\\\\n type: object\\\\n properties: *ref_10\\\\n '/namespace/{namespaceID}/module/':\\\\n get:\\\\n tags:\\\\n - Modules\\\\n summary: List modules\\\\n responses:\\\\n '200':\\\\n description: OK\\\\n parameters:\\\\n - in: query\\\\n name: query\\\\n description: Search query\\\\n required: false\\\\n schema: *ref_0\\\\n - in: query\\\\n name: name\\\\n description: Search by name\\\\n required: false\\\\n schema: *ref_0\\\\n - in: query\\\\n name: handle\\\\n description: Search by handle\\\\n required: false\\\\n schema: *ref_0\\\\n - in: query\\\\n name: limit\\\\n description: Limit\\\\n required: false\\\\n schema: *ref_5\\\\n - in: query\\\\n name: pageCursor\\\\n description: Page cursor\\\\n required: false\\\\n schema: *ref_0\\\\n - in: query\\\\n name: sort\\\\n description: Sort items\\\\n required: false\\\\n schema: *ref_0\\\\n - in: path\\\\n name: namespaceID\\\\n description: Namespace ID\\\\n required: true\\\\n schema: *ref_2\\\\n post:\\\\n tags:\\\\n - Modules\\\\n summary: Create module\\\\n responses:\\\\n '200':\\\\n description: OK\\\\n requestBody:\\\\n content:\\\\n application/json:\\\\n schema:\\\\n type: object\\\\n properties: &ref_11\\\\n name:\\\\n type: string\\\\n description: Module Name\\\\n handle:\\\\n type: string\\\\n description: Module handle\\\\n fields:\\\\n type: array\\\\n items: &ref_12\\\\n type: object\\\\n properties:\\\\n fieldID:\\\\n type: string\\\\n format: uuid\\\\n name:\\\\n type: string\\\\n kind:\\\\n type: string\\\\n label:\\\\n type: string\\\\n defaultValue:\\\\n type: array\\\\n items:\\\\n type: string\\\\n maxLength:\\\\n type: integer\\\\n isRequired:\\\\n type: boolean\\\\n isPrivate:\\\\n type: boolean\\\\n isMulti:\\\\n type: boolean\\\\n isSystem:\\\\n type: boolean\\\\n options:\\\\n type: object\\\\n description: Fields JSON\\\\n meta:\\\\n type: string\\\\n format: json\\\\n description: Module meta data\\\\n required:\\\\n - name\\\\n - fields\\\\n - meta\\\\n application/x-www-form-urlencoded:\\\\n schema:\\\\n type: object\\\\n properties: *ref_11\\\\n parameters:\\\\n - in: path\\\\n name: namespaceID\\\\n description: Namespace ID\\\\n required: true\\\\n schema: *ref_2\\\\n '/namespace/{namespaceID}/module/{moduleID}':\\\\n get:\\\\n tags:\\\\n - Modules\\\\n summary: Read module\\\\n responses:\\\\n '200':\\\\n description: OK\\\\n parameters:\\\\n - in: path\\\\n name: namespaceID\\\\n description: Namespace ID\\\\n required: true\\\\n schema: *ref_2\\\\n - in: path\\\\n name: moduleID\\\\n description: Module ID\\\\n required: true\\\\n schema: *ref_2\\\\n post:\\\\n tags:\\\\n - Modules\\\\n summary: Update module\\\\n responses:\\\\n '200':\\\\n description: OK\\\\n parameters:\\\\n - in: path\\\\n name: namespaceID\\\\n description: Namespace ID\\\\n required: true\\\\n schema: *ref_2\\\\n - in: path\\\\n name: moduleID\\\\n description: Module ID\\\\n required: true\\\\n schema: *ref_2\\\\n requestBody:\\\\n content:\\\\n application/json:\\\\n schema:\\\\n type: object\\\\n properties: &ref_13\\\\n name:\\\\n type: string\\\\n description: Module Name\\\\n handle:\\\\n type: string\\\\n description: Module Handle\\\\n fields:\\\\n type: array\\\\n items: *ref_12\\\\n description: Fields JSON\\\\n meta:\\\\n type: string\\\\n format: json\\\\n description: Module meta data\\\\n updatedAt:\\\\n type: string\\\\n format: date-time\\\\n description: Last update (or creation) date\\\\n required:\\\\n - name\\\\n - fields\\\\n - meta\\\\n application/x-www-form-urlencoded:\\\\n schema:\\\\n type: object\\\\n properties: *ref_13\\\\n delete:\\\\n tags:\\\\n - Modules\\\\n summary: Delete module\\\\n responses:\\\\n '200':\\\\n description: OK\\\\n parameters:\\\\n - in: path\\\\n name: namespaceID\\\\n description: Namespace ID\\\\n required: true\\\\n schema: *ref_2\\\\n - in: path\\\\n name: moduleID\\\\n description: Module ID\\\\n required: true\\\\n schema: *ref_2\\\\n '/namespace/{namespaceID}/module/{moduleID}/trigger':\\\\n post:\\\\n tags:\\\\n - Modules\\\\n summary: 'Fire compose:module trigger'\\\\n responses:\\\\n '200':\\\\n description: OK\\\\n parameters:\\\\n - in: path\\\\n name: namespaceID\\\\n description: Namespace ID\\\\n required: true\\\\n schema: *ref_2\\\\n - in: path\\\\n name: moduleID\\\\n description: ID\\\\n required: true\\\\n schema: *ref_2\\\\n requestBody:\\\\n content:\\\\n application/json:\\\\n schema:\\\\n type: object\\\\n properties: &ref_14\\\\n script:\\\\n type: string\\\\n description: Script to execute\\\\n required:\\\\n - script\\\\n application/x-www-form-urlencoded:\\\\n schema:\\\\n type: object\\\\n properties: *ref_14\\\\n '/namespace/{namespaceID}/module/{moduleID}/record/report':\\\\n get:\\\\n tags:\\\\n - Records\\\\n summary: Generates report from module records\\\\n responses:\\\\n '200':\\\\n description: OK\\\\n parameters:\\\\n - in: query\\\\n name: metrics\\\\n description: 'Metrics (eg: ''SUM(money), MAX(calls)'')'\\\\n required: false\\\\n schema: *ref_0\\\\n - in: query\\\\n name: dimensions\\\\n description: 'Dimensions (eg: ''DATE(foo), status'')'\\\\n required: true\\\\n schema: *ref_0\\\\n - in: query\\\\n name: filter\\\\n description: 'Filter (eg: ''DATE(foo) > 2010'')'\\\\n required: false\\\\n schema: *ref_0\\\\n - in: path\\\\n name: namespaceID\\\\n description: Namespace ID\\\\n required: true\\\\n schema: *ref_2\\\\n - in: path\\\\n name: moduleID\\\\n description: Module ID\\\\n required: true\\\\n schema: *ref_2\\\\n '/namespace/{namespaceID}/module/{moduleID}/record/':\\\\n get:\\\\n tags:\\\\n - Records\\\\n summary: List/read records from module section\\\\n responses:\\\\n '200':\\\\n description: OK\\\\n parameters:\\\\n - in: query\\\\n name: query\\\\n description: Record filtering query\\\\n required: false\\\\n schema: *ref_0\\\\n - in: query\\\\n name: filter\\\\n description: 'Filtering condition (same as query, deprecated)'\\\\n required: false\\\\n schema: *ref_0\\\\n - in: query\\\\n name: deleted\\\\n description: 'Exclude (0, default), include (1) or return only (2) deleted records'\\\\n required: false\\\\n schema: *ref_5\\\\n - in: query\\\\n name: limit\\\\n description: Limit\\\\n required: false\\\\n schema: *ref_5\\\\n - in: query\\\\n name: offset\\\\n description: Offset\\\\n required: false\\\\n schema: *ref_5\\\\n - in: query\\\\n name: page\\\\n description: Page number (1-based)\\\\n required: false\\\\n schema: *ref_5\\\\n - in: query\\\\n name: perPage\\\\n description: Returned items per page (default 50)\\\\n required: false\\\\n schema: *ref_5\\\\n - in: query\\\\n name: sort\\\\n description: Sort items\\\\n required: false\\\\n schema: *ref_0\\\\n - in: path\\\\n name: namespaceID\\\\n description: Namespace ID\\\\n required: true\\\\n schema: *ref_2\\\\n - in: path\\\\n name: moduleID\\\\n description: Module ID\\\\n required: true\\\\n schema: *ref_2\\\\n post:\\\\n tags:\\\\n - Records\\\\n summary: Create record in module section\\\\n responses:\\\\n '200':\\\\n description: OK\\\\n requestBody:\\\\n content:\\\\n application/json:\\\\n schema:\\\\n type: object\\\\n properties: &ref_15\\\\n values:\\\\n type: array\\\\n items: &ref_20\\\\n type: object\\\\n properties:\\\\n name:\\\\n type: string\\\\n value:\\\\n type: string\\\\n description: Record values\\\\n records:\\\\n type: array\\\\n items: &ref_21\\\\n type: object\\\\n properties:\\\\n recordID:\\\\n type: string\\\\n format: uuid\\\\n moduleID:\\\\n type: string\\\\n format: uuid\\\\n namespaceID:\\\\n type: string\\\\n format: uuid\\\\n values:\\\\n type: array\\\\n items:\\\\n type: object\\\\n properties:\\\\n name:\\\\n type: string\\\\n value:\\\\n type: string\\\\n createdAt:\\\\n type: string\\\\n format: date-time\\\\n updatedAt:\\\\n type: string\\\\n format: date-time\\\\n deletedAt:\\\\n type: string\\\\n format: date-time\\\\n ownedBy:\\\\n type: string\\\\n format: uuid\\\\n createdBy:\\\\n type: string\\\\n format: uuid\\\\n updatedBy:\\\\n type: string\\\\n format: uuid\\\\n deletedBy:\\\\n type: string\\\\n format: uuid\\\\n description: Records\\\\n application/x-www-form-urlencoded:\\\\n schema:\\\\n type: object\\\\n properties: *ref_15\\\\n parameters:\\\\n - in: path\\\\n name: namespaceID\\\\n description: Namespace ID\\\\n required: true\\\\n schema: *ref_2\\\\n - in: path\\\\n name: moduleID\\\\n description: Module ID\\\\n required: true\\\\n schema: *ref_2\\\\n delete:\\\\n tags:\\\\n - Records\\\\n summary: Delete record row from module section\\\\n responses:\\\\n '200':\\\\n description: OK\\\\n requestBody:\\\\n content:\\\\n application/json:\\\\n schema:\\\\n type: object\\\\n properties: &ref_16\\\\n recordIDs:\\\\n type: array\\\\n items: *ref_0\\\\n description: IDs of records to delete\\\\n truncate:\\\\n type: boolean\\\\n description: >-\\\\n Remove ALL records of a specified module (pending\\\\n implementation)\\\\n application/x-www-form-urlencoded:\\\\n schema:\\\\n type: object\\\\n properties: *ref_16\\\\n parameters:\\\\n - in: path\\\\n name: namespaceID\\\\n description: Namespace ID\\\\n required: true\\\\n schema: *ref_2\\\\n - in: path\\\\n name: moduleID\\\\n description: Module ID\\\\n required: true\\\\n schema: *ref_2\\\\n '/namespace/{namespaceID}/module/{moduleID}/record/import':\\\\n post:\\\\n tags:\\\\n - Records\\\\n summary: Initiate record import session\\\\n responses:\\\\n '200':\\\\n description: OK\\\\n requestBody:\\\\n content:\\\\n application/json:\\\\n schema:\\\\n type: object\\\\n properties: &ref_17\\\\n upload:\\\\n type: string\\\\n format: binary\\\\n description: File import\\\\n required:\\\\n - upload\\\\n application/x-www-form-urlencoded:\\\\n schema:\\\\n type: object\\\\n properties: *ref_17\\\\n parameters:\\\\n - in: path\\\\n name: namespaceID\\\\n description: Namespace ID\\\\n required: true\\\\n schema: *ref_2\\\\n - in: path\\\\n name: moduleID\\\\n description: Module ID\\\\n required: true\\\\n schema: *ref_2\\\\n '/namespace/{namespaceID}/module/{moduleID}/record/import/{sessionID}':\\\\n patch:\\\\n tags:\\\\n - Records\\\\n summary: Run record import\\\\n responses:\\\\n '200':\\\\n description: OK\\\\n parameters:\\\\n - in: path\\\\n name: namespaceID\\\\n description: Namespace ID\\\\n required: true\\\\n schema: *ref_2\\\\n - in: path\\\\n name: moduleID\\\\n description: Module ID\\\\n required: true\\\\n schema: *ref_2\\\\n - in: path\\\\n name: sessionID\\\\n description: Import session\\\\n required: true\\\\n schema: *ref_2\\\\n requestBody:\\\\n content:\\\\n application/json:\\\\n schema:\\\\n type: object\\\\n properties: &ref_18\\\\n fields:\\\\n type: string\\\\n format: json\\\\n description: Fields defined by import file\\\\n onError:\\\\n type: string\\\\n description: What happens if record fails to import\\\\n required:\\\\n - fields\\\\n - onError\\\\n application/x-www-form-urlencoded:\\\\n schema:\\\\n type: object\\\\n properties: *ref_18\\\\n get:\\\\n tags:\\\\n - Records\\\\n summary: Get import progress\\\\n responses:\\\\n '200':\\\\n description: OK\\\\n parameters:\\\\n - in: path\\\\n name: namespaceID\\\\n description: Namespace ID\\\\n required: true\\\\n schema: *ref_2\\\\n - in: path\\\\n name: moduleID\\\\n description: Module ID\\\\n required: true\\\\n schema: *ref_2\\\\n - in: path\\\\n name: sessionID\\\\n description: Import session\\\\n required: true\\\\n schema: *ref_2\\\\n '/namespace/{namespaceID}/module/{moduleID}/record/export{filename}.{ext}':\\\\n get:\\\\n tags:\\\\n - Records\\\\n summary: 'Exports records that match '\\\\n responses:\\\\n '200':\\\\n description: OK\\\\n parameters:\\\\n - in: path\\\\n name: namespaceID\\\\n description: Namespace ID\\\\n required: true\\\\n schema: *ref_2\\\\n - in: path\\\\n name: moduleID\\\\n description: Module ID\\\\n required: true\\\\n schema: *ref_2\\\\n - in: path\\\\n name: filename\\\\n description: Filename to use\\\\n required: true\\\\n schema: *ref_0\\\\n - in: path\\\\n name: ext\\\\n description: Export format\\\\n required: true\\\\n schema: *ref_0\\\\n - in: query\\\\n name: filter\\\\n description: Filtering condition\\\\n required: false\\\\n schema: *ref_0\\\\n - in: query\\\\n name: fields\\\\n description: Fields to export\\\\n required: true\\\\n schema:\\\\n type: array\\\\n items: *ref_0\\\\n - in: query\\\\n name: timezone\\\\n description: Convert times to this timezone\\\\n required: false\\\\n schema: *ref_0\\\\n '/namespace/{namespaceID}/module/{moduleID}/record/exec/{procedure}':\\\\n post:\\\\n tags:\\\\n - Records\\\\n summary: Executes server-side procedure over one or more module records\\\\n responses:\\\\n '200':\\\\n description: OK\\\\n parameters:\\\\n - in: path\\\\n name: namespaceID\\\\n description: Namespace ID\\\\n required: true\\\\n schema: *ref_2\\\\n - in: path\\\\n name: moduleID\\\\n description: Module ID\\\\n required: true\\\\n schema: *ref_2\\\\n - in: path\\\\n name: procedure\\\\n description: Name of procedure to execute\\\\n required: true\\\\n schema: *ref_0\\\\n requestBody:\\\\n content:\\\\n application/json:\\\\n schema:\\\\n type: object\\\\n properties: &ref_19\\\\n args:\\\\n type: array\\\\n items:\\\\n type: object\\\\n properties:\\\\n name:\\\\n type: string\\\\n value:\\\\n type: string\\\\n description: Procedure arguments\\\\n application/x-www-form-urlencoded:\\\\n schema:\\\\n type: object\\\\n properties: *ref_19\\\\n '/namespace/{namespaceID}/module/{moduleID}/record/{recordID}':\\\\n get:\\\\n tags:\\\\n - Records\\\\n summary: Read records by ID from module section\\\\n responses:\\\\n '200':\\\\n description: OK\\\\n parameters:\\\\n - in: path\\\\n name: namespaceID\\\\n description: Namespace ID\\\\n required: true\\\\n schema: *ref_2\\\\n - in: path\\\\n name: moduleID\\\\n description: Module ID\\\\n required: true\\\\n schema: *ref_2\\\\n - in: path\\\\n name: recordID\\\\n description: Record ID\\\\n required: true\\\\n schema: *ref_2\\\\n post:\\\\n tags:\\\\n - Records\\\\n summary: Update records in module section\\\\n responses:\\\\n '200':\\\\n description: OK\\\\n parameters:\\\\n - in: path\\\\n name: namespaceID\\\\n description: Namespace ID\\\\n required: true\\\\n schema: *ref_2\\\\n - in: path\\\\n name: moduleID\\\\n description: Module ID\\\\n required: true\\\\n schema: *ref_2\\\\n - in: path\\\\n name: recordID\\\\n description: Record ID\\\\n required: true\\\\n schema: *ref_2\\\\n requestBody:\\\\n content:\\\\n application/json:\\\\n schema:\\\\n type: object\\\\n properties: &ref_22\\\\n values:\\\\n type: array\\\\n items: *ref_20\\\\n description: Record values\\\\n records:\\\\n type: array\\\\n items: *ref_21\\\\n description: Records\\\\n application/x-www-form-urlencoded:\\\\n schema:\\\\n type: object\\\\n properties: *ref_22\\\\n delete:\\\\n tags:\\\\n - Records\\\\n summary: Delete record row from module section\\\\n responses:\\\\n '200':\\\\n description: OK\\\\n parameters:\\\\n - in: path\\\\n name: namespaceID\\\\n description: Namespace ID\\\\n required: true\\\\n schema: *ref_2\\\\n - in: path\\\\n name: moduleID\\\\n description: Module ID\\\\n required: true\\\\n schema: *ref_2\\\\n - in: path\\\\n name: recordID\\\\n description: Record ID\\\\n required: true\\\\n schema: *ref_2\\\\n '/namespace/{namespaceID}/module/{moduleID}/record/attachment':\\\\n post:\\\\n tags:\\\\n - Records\\\\n summary: Uploads attachment and validates it against record field requirements\\\\n responses:\\\\n '200':\\\\n description: OK\\\\n requestBody:\\\\n content:\\\\n application/json:\\\\n schema:\\\\n type: object\\\\n properties: &ref_23\\\\n recordID:\\\\n type: string\\\\n description: Record ID\\\\n fieldName:\\\\n type: string\\\\n description: Field name\\\\n upload:\\\\n type: string\\\\n format: binary\\\\n description: File to upload\\\\n required:\\\\n - fieldName\\\\n - upload\\\\n application/x-www-form-urlencoded:\\\\n schema:\\\\n type: object\\\\n properties: *ref_23\\\\n parameters:\\\\n - in: path\\\\n name: namespaceID\\\\n description: Namespace ID\\\\n required: true\\\\n schema: *ref_2\\\\n - in: path\\\\n name: moduleID\\\\n description: Module ID\\\\n required: true\\\\n schema: *ref_2\\\\n '/namespace/{namespaceID}/module/{moduleID}/record/{recordID}/trigger':\\\\n post:\\\\n tags:\\\\n - Records\\\\n summary: 'Fire compose:record trigger'\\\\n responses:\\\\n '200':\\\\n description: OK\\\\n parameters:\\\\n - in: path\\\\n name: namespaceID\\\\n description: Namespace ID\\\\n required: true\\\\n schema: *ref_2\\\\n - in: path\\\\n name: moduleID\\\\n description: Module ID\\\\n required: true\\\\n schema: *ref_2\\\\n - in: path\\\\n name: recordID\\\\n description: ID\\\\n required: true\\\\n schema: *ref_2\\\\n requestBody:\\\\n content:\\\\n application/json:\\\\n schema:\\\\n type: object\\\\n properties: &ref_24\\\\n script:\\\\n type: string\\\\n description: Script to execute\\\\n values:\\\\n type: array\\\\n items: *ref_20\\\\n description: Record values\\\\n required:\\\\n - script\\\\n - values\\\\n application/x-www-form-urlencoded:\\\\n schema:\\\\n type: object\\\\n properties: *ref_24\\\\n '/namespace/{namespaceID}/module/{moduleID}/record/trigger':\\\\n post:\\\\n tags:\\\\n - Records\\\\n summary: 'Fire compose:record trigger'\\\\n responses:\\\\n '200':\\\\n description: OK\\\\n requestBody:\\\\n content:\\\\n application/json:\\\\n schema:\\\\n type: object\\\\n properties: &ref_25\\\\n script:\\\\n type: string\\\\n description: Script to execute\\\\n required:\\\\n - script\\\\n application/x-www-form-urlencoded:\\\\n schema:\\\\n type: object\\\\n properties: *ref_25\\\\n parameters:\\\\n - in: path\\\\n name: namespaceID\\\\n description: Namespace ID\\\\n required: true\\\\n schema: *ref_2\\\\n - in: path\\\\n name: moduleID\\\\n description: Module ID\\\\n required: true\\\\n schema: *ref_2\\\\n '/namespace/{namespaceID}/chart/':\\\\n get:\\\\n tags:\\\\n - Charts\\\\n summary: List/read charts\\\\n responses:\\\\n '200':\\\\n description: OK\\\\n parameters:\\\\n - in: query\\\\n name: query\\\\n description: Search query to match against charts\\\\n required: false\\\\n schema: *ref_0\\\\n - in: query\\\\n name: handle\\\\n description: Search charts by handle\\\\n required: false\\\\n schema: *ref_0\\\\n - in: query\\\\n name: limit\\\\n description: Limit\\\\n required: false\\\\n schema: *ref_5\\\\n - in: query\\\\n name: pageCursor\\\\n description: Page cursor\\\\n required: false\\\\n schema: *ref_0\\\\n - in: query\\\\n name: sort\\\\n description: Sort items\\\\n required: false\\\\n schema: *ref_0\\\\n - in: path\\\\n name: namespaceID\\\\n description: Namespace ID\\\\n required: true\\\\n schema: *ref_2\\\\n post:\\\\n tags:\\\\n - Charts\\\\n summary: 'List/read charts '\\\\n responses:\\\\n '200':\\\\n description: OK\\\\n requestBody:\\\\n content:\\\\n application/json:\\\\n schema:\\\\n type: object\\\\n properties: &ref_26\\\\n config:\\\\n type: string\\\\n format: json\\\\n description: Chart JSON\\\\n name:\\\\n type: string\\\\n description: Chart name\\\\n handle:\\\\n type: string\\\\n description: Chart handle\\\\n required:\\\\n - config\\\\n - name\\\\n application/x-www-form-urlencoded:\\\\n schema:\\\\n type: object\\\\n properties: *ref_26\\\\n parameters:\\\\n - in: path\\\\n name: namespaceID\\\\n description: Namespace ID\\\\n required: true\\\\n schema: *ref_2\\\\n '/namespace/{namespaceID}/chart/{chartID}':\\\\n get:\\\\n tags:\\\\n - Charts\\\\n summary: Read charts by ID\\\\n responses:\\\\n '200':\\\\n description: OK\\\\n parameters:\\\\n - in: path\\\\n name: namespaceID\\\\n description: Namespace ID\\\\n required: true\\\\n schema: *ref_2\\\\n - in: path\\\\n name: chartID\\\\n description: Chart ID\\\\n required: true\\\\n schema: *ref_2\\\\n post:\\\\n tags:\\\\n - Charts\\\\n summary: Add/update charts\\\\n responses:\\\\n '200':\\\\n description: OK\\\\n parameters:\\\\n - in: path\\\\n name: namespaceID\\\\n description: Namespace ID\\\\n required: true\\\\n schema: *ref_2\\\\n - in: path\\\\n name: chartID\\\\n description: Chart ID\\\\n required: true\\\\n schema: *ref_2\\\\n requestBody:\\\\n content:\\\\n application/json:\\\\n schema:\\\\n type: object\\\\n properties: &ref_27\\\\n config:\\\\n type: string\\\\n format: json\\\\n description: Chart JSON\\\\n name:\\\\n type: string\\\\n description: Chart name\\\\n handle:\\\\n type: string\\\\n description: Chart handle\\\\n updatedAt:\\\\n type: string\\\\n format: date-time\\\\n description: Last update (or creation) date\\\\n required:\\\\n - config\\\\n - name\\\\n application/x-www-form-urlencoded:\\\\n schema:\\\\n type: object\\\\n properties: *ref_27\\\\n delete:\\\\n tags:\\\\n - Charts\\\\n summary: Delete chart\\\\n responses:\\\\n '200':\\\\n description: OK\\\\n parameters:\\\\n - in: path\\\\n name: namespaceID\\\\n description: Namespace ID\\\\n required: true\\\\n schema: *ref_2\\\\n - in: path\\\\n name: chartID\\\\n description: Chart ID\\\\n required: true\\\\n schema: *ref_2\\\\n /notification/email:\\\\n post:\\\\n tags:\\\\n - Notifications\\\\n summary: Send email from the Compose\\\\n responses:\\\\n '200':\\\\n description: OK\\\\n requestBody:\\\\n content:\\\\n application/json:\\\\n schema:\\\\n type: object\\\\n properties: &ref_28\\\\n to:\\\\n type: array\\\\n items: *ref_0\\\\n description: Email addresses\\\\n cc:\\\\n type: array\\\\n items: *ref_0\\\\n description: Email addresses\\\\n replyTo:\\\\n type: string\\\\n description: Email address in reply-to field\\\\n subject:\\\\n type: string\\\\n description: Email subject\\\\n content:\\\\n type: string\\\\n format: json\\\\n description: Message content\\\\n remoteAttachments:\\\\n type: array\\\\n items: *ref_0\\\\n description: Remote files to attach to the email\\\\n required:\\\\n - to\\\\n - content\\\\n application/x-www-form-urlencoded:\\\\n schema:\\\\n type: object\\\\n properties: *ref_28\\\\n '/namespace/{namespaceID}/attachment/{kind}/':\\\\n get:\\\\n tags:\\\\n - Attachments\\\\n summary: 'List, filter all page attachments'\\\\n responses:\\\\n '200':\\\\n description: OK\\\\n parameters:\\\\n - in: query\\\\n name: sign\\\\n description: Signature\\\\n required: false\\\\n schema: *ref_0\\\\n - in: query\\\\n name: userID\\\\n description: User ID\\\\n required: false\\\\n schema: *ref_2\\\\n - in: query\\\\n name: pageID\\\\n description: Filter attachments by page ID\\\\n required: false\\\\n schema: *ref_2\\\\n - in: query\\\\n name: moduleID\\\\n description: Filter attachments by module ID\\\\n required: false\\\\n schema: *ref_2\\\\n - in: query\\\\n name: recordID\\\\n description: Filter attachments by record ID\\\\n required: false\\\\n schema: *ref_2\\\\n - in: query\\\\n name: fieldName\\\\n description: Filter attachments by field name\\\\n required: false\\\\n schema: *ref_0\\\\n - in: query\\\\n name: limit\\\\n description: Limit\\\\n required: false\\\\n schema: *ref_5\\\\n - in: query\\\\n name: offset\\\\n description: Offset\\\\n required: false\\\\n schema: *ref_5\\\\n - in: query\\\\n name: page\\\\n description: Page number (1-based)\\\\n required: false\\\\n schema: *ref_5\\\\n - in: query\\\\n name: perPage\\\\n description: Returned items per page (default 50)\\\\n required: false\\\\n schema: *ref_5\\\\n - in: path\\\\n name: kind\\\\n description: Attachment kind\\\\n required: true\\\\n schema: *ref_0\\\\n - in: path\\\\n name: namespaceID\\\\n description: Namespace ID\\\\n required: true\\\\n schema: *ref_2\\\\n '/namespace/{namespaceID}/attachment/{kind}/{attachmentID}':\\\\n get:\\\\n tags:\\\\n - Attachments\\\\n summary: Attachment details\\\\n responses:\\\\n '200':\\\\n description: OK\\\\n parameters:\\\\n - in: path\\\\n name: kind\\\\n description: Attachment kind\\\\n required: true\\\\n schema: *ref_0\\\\n - in: path\\\\n name: namespaceID\\\\n description: Namespace ID\\\\n required: true\\\\n schema: *ref_2\\\\n - in: path\\\\n name: attachmentID\\\\n description: Attachment ID\\\\n required: true\\\\n schema: *ref_2\\\\n - in: query\\\\n name: sign\\\\n description: Signature\\\\n required: false\\\\n schema: *ref_0\\\\n - in: query\\\\n name: userID\\\\n description: User ID\\\\n required: false\\\\n schema: *ref_2\\\\n delete:\\\\n tags:\\\\n - Attachments\\\\n summary: Delete attachment\\\\n responses:\\\\n '200':\\\\n description: OK\\\\n parameters:\\\\n - in: path\\\\n name: kind\\\\n description: Attachment kind\\\\n required: true\\\\n schema: *ref_0\\\\n - in: path\\\\n name: namespaceID\\\\n description: Namespace ID\\\\n required: true\\\\n schema: *ref_2\\\\n - in: path\\\\n name: attachmentID\\\\n description: Attachment ID\\\\n required: true\\\\n schema: *ref_2\\\\n - in: query\\\\n name: sign\\\\n description: Signature\\\\n required: false\\\\n schema: *ref_0\\\\n - in: query\\\\n name: userID\\\\n description: User ID\\\\n required: false\\\\n schema: *ref_2\\\\n '/namespace/{namespaceID}/attachment/{kind}/{attachmentID}/original/{name}':\\\\n get:\\\\n tags:\\\\n - Attachments\\\\n summary: Serves attached file\\\\n responses:\\\\n '200':\\\\n description: OK\\\\n parameters:\\\\n - in: path\\\\n name: kind\\\\n description: Attachment kind\\\\n required: true\\\\n schema: *ref_0\\\\n - in: path\\\\n name: namespaceID\\\\n description: Namespace ID\\\\n required: true\\\\n schema: *ref_2\\\\n - in: path\\\\n name: attachmentID\\\\n description: Attachment ID\\\\n required: true\\\\n schema: *ref_2\\\\n - in: path\\\\n name: name\\\\n description: File name\\\\n required: true\\\\n schema: *ref_0\\\\n - in: query\\\\n name: sign\\\\n description: Signature\\\\n required: false\\\\n schema: *ref_0\\\\n - in: query\\\\n name: userID\\\\n description: User ID\\\\n required: false\\\\n schema: *ref_2\\\\n - in: query\\\\n name: download\\\\n description: Force file download\\\\n required: false\\\\n schema: &ref_30\\\\n type: boolean\\\\n '/namespace/{namespaceID}/attachment/{kind}/{attachmentID}/preview.{ext}':\\\\n get:\\\\n tags:\\\\n - Attachments\\\\n summary: Serves preview of an attached file\\\\n responses:\\\\n '200':\\\\n description: OK\\\\n parameters:\\\\n - in: path\\\\n name: kind\\\\n description: Attachment kind\\\\n required: true\\\\n schema: *ref_0\\\\n - in: path\\\\n name: namespaceID\\\\n description: Namespace ID\\\\n required: true\\\\n schema: *ref_2\\\\n - in: path\\\\n name: attachmentID\\\\n description: Attachment ID\\\\n required: true\\\\n schema: *ref_2\\\\n - in: path\\\\n name: ext\\\\n description: Preview extension/format\\\\n required: true\\\\n schema: *ref_0\\\\n - in: query\\\\n name: sign\\\\n description: Signature\\\\n required: false\\\\n schema: *ref_0\\\\n - in: query\\\\n name: userID\\\\n description: User ID\\\\n required: false\\\\n schema: *ref_2\\\\n /permissions/:\\\\n get:\\\\n tags:\\\\n - Permissions\\\\n summary: Retrieve defined permissions\\\\n responses:\\\\n '200':\\\\n description: OK\\\\n /permissions/effective:\\\\n get:\\\\n tags:\\\\n - Permissions\\\\n summary: Effective rules for current user\\\\n responses:\\\\n '200':\\\\n description: OK\\\\n parameters:\\\\n - in: query\\\\n name: resource\\\\n description: Show only rules for a specific resource\\\\n required: false\\\\n schema: *ref_0\\\\n '/permissions/{roleID}/rules':\\\\n get:\\\\n tags:\\\\n - Permissions\\\\n summary: Retrieve role permissions\\\\n responses:\\\\n '200':\\\\n description: OK\\\\n parameters:\\\\n - in: path\\\\n name: roleID\\\\n description: Role ID\\\\n required: true\\\\n schema: *ref_2\\\\n delete:\\\\n tags:\\\\n - Permissions\\\\n summary: Remove all defined role permissions\\\\n responses:\\\\n '200':\\\\n description: OK\\\\n parameters:\\\\n - in: path\\\\n name: roleID\\\\n description: Role ID\\\\n required: true\\\\n schema: *ref_2\\\\n patch:\\\\n tags:\\\\n - Permissions\\\\n summary: Update permission settings\\\\n responses:\\\\n '200':\\\\n description: OK\\\\n parameters:\\\\n - in: path\\\\n name: roleID\\\\n description: Role ID\\\\n required: true\\\\n schema: *ref_2\\\\n requestBody:\\\\n content:\\\\n application/json:\\\\n schema:\\\\n type: object\\\\n properties: &ref_29\\\\n rules:\\\\n type: array\\\\n items:\\\\n type: object\\\\n properties:\\\\n roleID:\\\\n type: string\\\\n format: uuid\\\\n resource:\\\\n type: string\\\\n operation:\\\\n type: string\\\\n access:\\\\n type: string\\\\n description: List of permission rules to set\\\\n required:\\\\n - rules\\\\n application/x-www-form-urlencoded:\\\\n schema:\\\\n type: object\\\\n properties: *ref_29\\\\n /automation/:\\\\n get:\\\\n tags:\\\\n - Compose automation scripts\\\\n summary: List all available automation scripts for compose resources\\\\n responses:\\\\n '200':\\\\n description: OK\\\\n parameters:\\\\n - in: query\\\\n name: resourceTypePrefixes\\\\n description: Filter by resource prefix\\\\n required: false\\\\n schema:\\\\n type: array\\\\n items: *ref_0\\\\n - in: query\\\\n name: resourceTypes\\\\n description: Filter by resource type\\\\n required: false\\\\n schema:\\\\n type: array\\\\n items: *ref_0\\\\n - in: query\\\\n name: eventTypes\\\\n description: Filter by event type\\\\n required: false\\\\n schema:\\\\n type: array\\\\n items: *ref_0\\\\n - in: query\\\\n name: excludeInvalid\\\\n description: Exclude scripts that can not be used (errors)\\\\n required: false\\\\n schema: *ref_30\\\\n - in: query\\\\n name: excludeClientScripts\\\\n description: Do not include client scripts\\\\n required: false\\\\n schema: *ref_30\\\\n - in: query\\\\n name: excludeServerScripts\\\\n description: Do not include server scripts\\\\n required: false\\\\n schema: *ref_30\\\\n '/automation/{bundle}-{type}.{ext}':\\\\n get:\\\\n tags:\\\\n - Compose automation scripts\\\\n summary: Serves client scripts bundle\\\\n responses:\\\\n '200':\\\\n description: OK\\\\n parameters:\\\\n - in: path\\\\n name: bundle\\\\n description: Name of the bundle\\\\n required: true\\\\n schema: *ref_0\\\\n - in: path\\\\n name: type\\\\n description: Bundle type\\\\n required: true\\\\n schema: *ref_0\\\\n - in: path\\\\n name: ext\\\\n description: Bundle extension\\\\n required: true\\\\n schema: *ref_0\\\\n /automation/trigger:\\\\n post:\\\\n tags:\\\\n - Compose automation scripts\\\\n summary: Triggers execution of a specific script on a system service level\\\\n responses:\\\\n '200':\\\\n description: OK\\\\n requestBody:\\\\n content:\\\\n application/json:\\\\n schema:\\\\n type: object\\\\n properties: &ref_31\\\\n script:\\\\n type: string\\\\n description: Script to execute\\\\n required:\\\\n - script\\\\n application/x-www-form-urlencoded:\\\\n schema:\\\\n type: object\\\\n properties: *ref_31\\\\nPK\\\\x07\\\\x08\\\\xf4\\\\xc4\\\\xa2\\\\x1d\\\\xdb\\\\xc9\\\\x00\\\\x00\\\\xdb\\\\xc9\\\\x00\\\\x00PK\\\\x03\\\\x04\\\\x14\\\\x00\\\\x08\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00!(\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\n\\\\x00 \\\\x00index.htmlUT\\\\x05\\\\x00\\\\x01\\\\x80Cm8<!-- HTML for static distribution bundle build -->\\\\n<!DOCTYPE html>\\\\n<html lang=\\\\\\\"en\\\\\\\">\\\\n <head>\\\\n <meta charset=\\\\\\\"UTF-8\\\\\\\">\\\\n <title>Corteza Server REST API Documentation</title>\\\\n <link rel=\\\\\\\"stylesheet\\\\\\\" type=\\\\\\\"text/css\\\\\\\" href=\\\\\\\"https://unpkg.com/swagger-ui-dist@3/swagger-ui.css\\\\\\\" >\\\\n <link rel=\\\\\\\"icon\\\\\\\" type=\\\\\\\"image/png\\\\\\\" href=\\\\\\\"https://unpkg.com/swagger-ui-dist@3/favicon-32x32.png\\\\\\\" sizes=\\\\\\\"32x32\\\\\\\" />\\\\n <link rel=\\\\\\\"icon\\\\\\\" type=\\\\\\\"image/png\\\\\\\" href=\\\\\\\"https://unpkg.com/swagger-ui-dist@3/favicon-16x16.png\\\\\\\" sizes=\\\\\\\"16x16\\\\\\\" />\\\\n <style>\\\\n html\\\\n {\\\\n box-sizing: border-box;\\\\n overflow: -moz-scrollbars-vertical;\\\\n overflow-y: scroll;\\\\n }\\\\n\\\\n *,\\\\n *:before,\\\\n *:after\\\\n {\\\\n box-sizing: inherit;\\\\n }\\\\n\\\\n body\\\\n {\\\\n margin:0;\\\\n background: #fafafa;\\\\n }\\\\n </style>\\\\n </head>\\\\n\\\\n <body>\\\\n <div id=\\\\\\\"swagger-ui\\\\\\\"></div>\\\\n <script src=\\\\\\\"https://unpkg.com/swagger-ui-dist@3/swagger-ui-bundle.js\\\\\\\" charset=\\\\\\\"UTF-8\\\\\\\"></script>\\\\n <script src=\\\\\\\"https://unpkg.com/swagger-ui-dist@3/swagger-ui-standalone-preset.js\\\\\\\" charset=\\\\\\\"UTF-8\\\\\\\"></script>\\\\n\\\\n <script>\\\\n window.onload = function() {\\\\n // https://swagger.io/docs/open-source-tools/swagger-ui/usage/configuration/\\\\n window.ui = SwaggerUIBundle({\\\\n urls: [\\\\n { url: \\\\\\\"/docs/system.yaml\\\\\\\", name: 'System' },\\\\n { url: \\\\\\\"/docs/compose.yaml\\\\\\\", name: 'Compose' },\\\\n { url: \\\\\\\"/docs/messaging.yaml\\\\\\\", name: 'Messaging' },\\\\n ],\\\\n dom_id: '#swagger-ui',\\\\n deepLinking: true,\\\\n presets: [\\\\n SwaggerUIBundle.presets.apis,\\\\n SwaggerUIStandalonePreset\\\\n ],\\\\n plugins: [\\\\n SwaggerUIBundle.plugins.DownloadUrl\\\\n ],\\\\n layout: \\\\\\\"StandaloneLayout\\\\\\\",\\\\n\\\\n supportedSubmitMethods: [],\\\\n })\\\\n }\\\\n </script>\\\\n </body>\\\\n</html>\\\\nPK\\\\x07\\\\x08;\\\\xaaT,B\\\\x07\\\\x00\\\\x00B\\\\x07\\\\x00\\\\x00PK\\\\x03\\\\x04\\\\x14\\\\x00\\\\x08\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00!(\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x0e\\\\x00 \\\\x00messaging.yamlUT\\\\x05\\\\x00\\\\x01\\\\x80Cm8openapi: 3.0.0\\\\ninfo:\\\\n title: Corteza messaging API\\\\n description: Corteza messaging REST API definition\\\\n version: 2020.9\\\\n contact:\\\\n email: info@cortezaproject.org\\\\n license:\\\\n name: Apache 2.0\\\\n url: 'http://www.apache.org/licenses/LICENSE-2.0.html'\\\\npaths:\\\\n /commands/:\\\\n get:\\\\n tags:\\\\n - Commands\\\\n summary: List of available commands\\\\n responses:\\\\n '200':\\\\n description: OK\\\\n /status/:\\\\n get:\\\\n tags:\\\\n - Status\\\\n summary: See all current statuses\\\\n responses:\\\\n '200':\\\\n description: OK\\\\n post:\\\\n tags:\\\\n - Status\\\\n summary: Set user's status\\\\n responses:\\\\n '200':\\\\n description: OK\\\\n requestBody:\\\\n content:\\\\n application/json:\\\\n schema:\\\\n type: object\\\\n properties: &ref_0\\\\n icon:\\\\n type: string\\\\n description: Status icon\\\\n message:\\\\n type: string\\\\n description: Status message\\\\n expires:\\\\n type: string\\\\n description: >-\\\\n Clear status when it expires (eg: when-active, afternoon,\\\\n tomorrow 1h, 30m, 1 PM, 2019-05-20)\\\\n application/x-www-form-urlencoded:\\\\n schema:\\\\n type: object\\\\n properties: *ref_0\\\\n delete:\\\\n tags:\\\\n - Status\\\\n summary: Clear status\\\\n responses:\\\\n '200':\\\\n description: OK\\\\n /activity/:\\\\n post:\\\\n tags:\\\\n - User activity\\\\n summary: >-\\\\n Sends user's activity to all subscribers; globally or per\\\\n channel/message.\\\\n responses:\\\\n '200':\\\\n description: OK\\\\n requestBody:\\\\n content:\\\\n application/json:\\\\n schema:\\\\n type: object\\\\n properties: &ref_1\\\\n channelID:\\\\n type: string\\\\n description: >-\\\\n Channel ID, if set, activity will be send only to subscribed\\\\n users\\\\n messageID:\\\\n type: string\\\\n description: 'Message ID, if set, channelID must be set as well'\\\\n kind:\\\\n type: string\\\\n description: Arbitrary string\\\\n required:\\\\n - kind\\\\n application/x-www-form-urlencoded:\\\\n schema:\\\\n type: object\\\\n properties: *ref_1\\\\n /channels/:\\\\n get:\\\\n tags:\\\\n - Channels\\\\n summary: List channels\\\\n responses:\\\\n '200':\\\\n description: OK\\\\n parameters:\\\\n - in: query\\\\n name: query\\\\n description: Search query\\\\n required: false\\\\n schema: &ref_2\\\\n type: string\\\\n post:\\\\n tags:\\\\n - Channels\\\\n summary: Create new channel\\\\n responses:\\\\n '200':\\\\n description: OK\\\\n requestBody:\\\\n content:\\\\n application/json:\\\\n schema:\\\\n type: object\\\\n properties: &ref_3\\\\n name:\\\\n type: string\\\\n description: Name of Channel\\\\n topic:\\\\n type: string\\\\n description: Subject of Channel\\\\n type:\\\\n type: string\\\\n description: Channel type\\\\n membershipPolicy:\\\\n type: string\\\\n description: 'Membership policy (eg: featured, forced)?'\\\\n members:\\\\n type: array\\\\n items: *ref_2\\\\n description: Initial members of the channel\\\\n application/x-www-form-urlencoded:\\\\n schema:\\\\n type: object\\\\n properties: *ref_3\\\\n '/channels/{channelID}':\\\\n put:\\\\n tags:\\\\n - Channels\\\\n summary: Update channel details\\\\n responses:\\\\n '200':\\\\n description: OK\\\\n parameters:\\\\n - in: path\\\\n name: channelID\\\\n description: Channel ID\\\\n required: true\\\\n schema: &ref_5\\\\n type: string\\\\n requestBody:\\\\n content:\\\\n application/json:\\\\n schema:\\\\n type: object\\\\n properties: &ref_4\\\\n name:\\\\n type: string\\\\n description: Name of Channel\\\\n topic:\\\\n type: string\\\\n description: Subject of Channel\\\\n membershipPolicy:\\\\n type: string\\\\n description: 'Membership policy (eg: featured, forced)?'\\\\n type:\\\\n type: string\\\\n description: Channel type\\\\n organisationID:\\\\n type: string\\\\n description: Move channel to different organisation\\\\n application/x-www-form-urlencoded:\\\\n schema:\\\\n type: object\\\\n properties: *ref_4\\\\n get:\\\\n tags:\\\\n - Channels\\\\n summary: Read channel details\\\\n responses:\\\\n '200':\\\\n description: OK\\\\n parameters:\\\\n - in: path\\\\n name: channelID\\\\n description: Channel ID\\\\n required: true\\\\n schema: *ref_5\\\\n '/channels/{channelID}/state':\\\\n put:\\\\n tags:\\\\n - Channels\\\\n summary: Update channel state\\\\n responses:\\\\n '200':\\\\n description: OK\\\\n parameters:\\\\n - in: path\\\\n name: channelID\\\\n description: Channel ID\\\\n required: true\\\\n schema: *ref_5\\\\n requestBody:\\\\n content:\\\\n application/json:\\\\n schema:\\\\n type: object\\\\n properties: &ref_6\\\\n state:\\\\n type: string\\\\n description: 'Valid values: delete, undelete, archive, unarchive'\\\\n required:\\\\n - state\\\\n application/x-www-form-urlencoded:\\\\n schema:\\\\n type: object\\\\n properties: *ref_6\\\\n '/channels/{channelID}/flag':\\\\n put:\\\\n tags:\\\\n - Channels\\\\n summary: Update channel membership flag\\\\n responses:\\\\n '200':\\\\n description: OK\\\\n parameters:\\\\n - in: path\\\\n name: channelID\\\\n description: Channel ID\\\\n required: true\\\\n schema: *ref_5\\\\n requestBody:\\\\n content:\\\\n application/json:\\\\n schema:\\\\n type: object\\\\n properties: &ref_7\\\\n flag:\\\\n type: string\\\\n description: 'Valid values: pinned, hidden, ignored'\\\\n required:\\\\n - flag\\\\n application/x-www-form-urlencoded:\\\\n schema:\\\\n type: object\\\\n properties: *ref_7\\\\n delete:\\\\n tags:\\\\n - Channels\\\\n summary: Remove channel membership flag\\\\n responses:\\\\n '200':\\\\n description: OK\\\\n parameters:\\\\n - in: path\\\\n name: channelID\\\\n description: Channel ID\\\\n required: true\\\\n schema: *ref_5\\\\n '/channels/{channelID}/members':\\\\n get:\\\\n tags:\\\\n - Channels\\\\n summary: List channel members\\\\n responses:\\\\n '200':\\\\n description: OK\\\\n parameters:\\\\n - in: path\\\\n name: channelID\\\\n description: Channel ID\\\\n required: true\\\\n schema: *ref_5\\\\n '/channels/{channelID}/members/{userID}':\\\\n put:\\\\n tags:\\\\n - Channels\\\\n summary: Join channel\\\\n responses:\\\\n '200':\\\\n description: OK\\\\n parameters:\\\\n - in: path\\\\n name: channelID\\\\n description: Channel ID\\\\n required: true\\\\n schema: *ref_5\\\\n - in: path\\\\n name: userID\\\\n description: Member ID\\\\n required: true\\\\n schema: *ref_5\\\\n delete:\\\\n tags:\\\\n - Channels\\\\n summary: Remove member from channel\\\\n responses:\\\\n '200':\\\\n description: OK\\\\n parameters:\\\\n - in: path\\\\n name: channelID\\\\n description: Channel ID\\\\n required: true\\\\n schema: *ref_5\\\\n - in: path\\\\n name: userID\\\\n description: Member ID\\\\n required: true\\\\n schema: *ref_5\\\\n '/channels/{channelID}/invite':\\\\n post:\\\\n tags:\\\\n - Channels\\\\n summary: Join channel\\\\n responses:\\\\n '200':\\\\n description: OK\\\\n parameters:\\\\n - in: path\\\\n name: channelID\\\\n description: Channel ID\\\\n required: true\\\\n schema: *ref_5\\\\n requestBody:\\\\n content:\\\\n application/json:\\\\n schema:\\\\n type: object\\\\n properties: &ref_8\\\\n userID:\\\\n type: array\\\\n items: *ref_2\\\\n description: User ID\\\\n application/x-www-form-urlencoded:\\\\n schema:\\\\n type: object\\\\n properties: *ref_8\\\\n '/channels/{channelID}/attach':\\\\n post:\\\\n tags:\\\\n - Channels\\\\n summary: Attach file to channel\\\\n responses:\\\\n '200':\\\\n description: OK\\\\n parameters:\\\\n - in: path\\\\n name: channelID\\\\n description: Channel ID\\\\n required: true\\\\n schema: *ref_5\\\\n requestBody:\\\\n content:\\\\n application/json:\\\\n schema:\\\\n type: object\\\\n properties: &ref_9\\\\n replyTo:\\\\n type: string\\\\n description: Upload as a reply\\\\n upload:\\\\n type: string\\\\n format: binary\\\\n description: File to upload\\\\n required:\\\\n - upload\\\\n application/x-www-form-urlencoded:\\\\n schema:\\\\n type: object\\\\n properties: *ref_9\\\\n '/channels/{channelID}/messages/':\\\\n post:\\\\n tags:\\\\n - Messages\\\\n summary: Post new message to the channel\\\\n responses:\\\\n '200':\\\\n description: OK\\\\n requestBody:\\\\n content:\\\\n application/json:\\\\n schema:\\\\n type: object\\\\n properties: &ref_10\\\\n message:\\\\n type: string\\\\n description: Message contents (markdown)\\\\n required:\\\\n - message\\\\n application/x-www-form-urlencoded:\\\\n schema:\\\\n type: object\\\\n properties: *ref_10\\\\n parameters:\\\\n - in: path\\\\n name: channelID\\\\n description: Channel ID\\\\n required: true\\\\n schema: *ref_5\\\\n '/channels/{channelID}/messages/command/{command}/exec':\\\\n post:\\\\n tags:\\\\n - Messages\\\\n summary: Execute command\\\\n responses:\\\\n '200':\\\\n description: OK\\\\n parameters:\\\\n - in: path\\\\n name: channelID\\\\n description: Channel ID\\\\n required: true\\\\n schema: *ref_5\\\\n - in: path\\\\n name: command\\\\n description: Command to be executed\\\\n required: true\\\\n schema: *ref_2\\\\n requestBody:\\\\n content:\\\\n application/json:\\\\n schema:\\\\n type: object\\\\n properties: &ref_11\\\\n input:\\\\n type: string\\\\n description: Arbitrary command input\\\\n params:\\\\n type: array\\\\n items: *ref_2\\\\n description: Command parameters\\\\n application/x-www-form-urlencoded:\\\\n schema:\\\\n type: object\\\\n properties: *ref_11\\\\n '/channels/{channelID}/messages/mark-as-read':\\\\n get:\\\\n tags:\\\\n - Messages\\\\n summary: Manages read/unread messages in a channel or a thread\\\\n responses:\\\\n '200':\\\\n description: OK\\\\n parameters:\\\\n - in: path\\\\n name: channelID\\\\n description: Channel ID\\\\n required: true\\\\n schema: *ref_5\\\\n - in: query\\\\n name: threadID\\\\n description: 'ID of thread (messageID) '\\\\n required: false\\\\n schema: *ref_5\\\\n - in: query\\\\n name: lastReadMessageID\\\\n description: ID of the last read message\\\\n required: false\\\\n schema: *ref_5\\\\n '/channels/{channelID}/messages/{messageID}':\\\\n put:\\\\n tags:\\\\n - Messages\\\\n summary: Edit existing message\\\\n responses:\\\\n '200':\\\\n description: OK\\\\n parameters:\\\\n - in: path\\\\n name: channelID\\\\n description: Channel ID\\\\n required: true\\\\n schema: *ref_5\\\\n - in: path\\\\n name: messageID\\\\n description: Message ID\\\\n required: true\\\\n schema: *ref_5\\\\n requestBody:\\\\n content:\\\\n application/json:\\\\n schema:\\\\n type: object\\\\n properties: &ref_12\\\\n message:\\\\n type: string\\\\n description: Message contents (markdown)\\\\n required:\\\\n - message\\\\n application/x-www-form-urlencoded:\\\\n schema:\\\\n type: object\\\\n properties: *ref_12\\\\n delete:\\\\n tags:\\\\n - Messages\\\\n summary: Delete existing message\\\\n responses:\\\\n '200':\\\\n description: OK\\\\n parameters:\\\\n - in: path\\\\n name: channelID\\\\n description: Channel ID\\\\n required: true\\\\n schema: *ref_5\\\\n - in: path\\\\n name: messageID\\\\n description: Message ID\\\\n required: true\\\\n schema: *ref_5\\\\n '/channels/{channelID}/messages/{messageID}/replies':\\\\n post:\\\\n tags:\\\\n - Messages\\\\n summary: Reply to a message\\\\n responses:\\\\n '200':\\\\n description: OK\\\\n parameters:\\\\n - in: path\\\\n name: channelID\\\\n description: Channel ID\\\\n required: true\\\\n schema: *ref_5\\\\n - in: path\\\\n name: messageID\\\\n description: Message ID\\\\n required: true\\\\n schema: *ref_5\\\\n requestBody:\\\\n content:\\\\n application/json:\\\\n schema:\\\\n type: object\\\\n properties: &ref_13\\\\n message:\\\\n type: string\\\\n description: Message contents (markdown)\\\\n required:\\\\n - message\\\\n application/x-www-form-urlencoded:\\\\n schema:\\\\n type: object\\\\n properties: *ref_13\\\\n '/channels/{channelID}/messages/{messageID}/pin':\\\\n post:\\\\n tags:\\\\n - Messages\\\\n summary: Pin message to channel (public bookmark)\\\\n responses:\\\\n '200':\\\\n description: OK\\\\n parameters:\\\\n - in: path\\\\n name: channelID\\\\n description: Channel ID\\\\n required: true\\\\n schema: *ref_5\\\\n - in: path\\\\n name: messageID\\\\n description: Message ID\\\\n required: true\\\\n schema: *ref_5\\\\n delete:\\\\n tags:\\\\n - Messages\\\\n summary: Pin message to channel (public bookmark)\\\\n responses:\\\\n '200':\\\\n description: OK\\\\n parameters:\\\\n - in: path\\\\n name: channelID\\\\n description: Channel ID\\\\n required: true\\\\n schema: *ref_5\\\\n - in: path\\\\n name: messageID\\\\n description: Message ID\\\\n required: true\\\\n schema: *ref_5\\\\n '/channels/{channelID}/messages/{messageID}/bookmark':\\\\n post:\\\\n tags:\\\\n - Messages\\\\n summary: Bookmark a message (private bookmark)\\\\n responses:\\\\n '200':\\\\n description: OK\\\\n parameters:\\\\n - in: path\\\\n name: channelID\\\\n description: Channel ID\\\\n required: true\\\\n schema: *ref_5\\\\n - in: path\\\\n name: messageID\\\\n description: Message ID\\\\n required: true\\\\n schema: *ref_5\\\\n delete:\\\\n tags:\\\\n - Messages\\\\n summary: Remove boomark from message (private bookmark)\\\\n responses:\\\\n '200':\\\\n description: OK\\\\n parameters:\\\\n - in: path\\\\n name: channelID\\\\n description: Channel ID\\\\n required: true\\\\n schema: *ref_5\\\\n - in: path\\\\n name: messageID\\\\n description: Message ID\\\\n required: true\\\\n schema: *ref_5\\\\n '/channels/{channelID}/messages/{messageID}/reaction/{reaction}':\\\\n post:\\\\n tags:\\\\n - Messages\\\\n summary: React to a message\\\\n responses:\\\\n '200':\\\\n description: OK\\\\n parameters:\\\\n - in: path\\\\n name: channelID\\\\n description: Channel ID\\\\n required: true\\\\n schema: *ref_5\\\\n - in: path\\\\n name: messageID\\\\n description: Message ID\\\\n required: true\\\\n schema: *ref_5\\\\n - in: path\\\\n name: reaction\\\\n description: Reaction\\\\n required: true\\\\n schema: *ref_2\\\\n delete:\\\\n tags:\\\\n - Messages\\\\n summary: Delete reaction from a message\\\\n responses:\\\\n '200':\\\\n description: OK\\\\n parameters:\\\\n - in: path\\\\n name: channelID\\\\n description: Channel ID\\\\n required: true\\\\n schema: *ref_5\\\\n - in: path\\\\n name: messageID\\\\n description: Message ID\\\\n required: true\\\\n schema: *ref_5\\\\n - in: path\\\\n name: reaction\\\\n description: Reaction\\\\n required: true\\\\n schema: *ref_2\\\\n '/attachment/{attachmentID}/original/{name}':\\\\n get:\\\\n tags:\\\\n - Attachments\\\\n summary: Serves attached file\\\\n responses:\\\\n '200':\\\\n description: OK\\\\n parameters:\\\\n - in: path\\\\n name: attachmentID\\\\n description: Attachment ID\\\\n required: true\\\\n schema: *ref_5\\\\n - in: path\\\\n name: name\\\\n description: File name\\\\n required: true\\\\n schema: *ref_2\\\\n - in: query\\\\n name: sign\\\\n description: Signature\\\\n required: true\\\\n schema: *ref_2\\\\n - in: query\\\\n name: userID\\\\n description: User ID\\\\n required: true\\\\n schema: *ref_5\\\\n - in: query\\\\n name: download\\\\n description: Force file download\\\\n required: false\\\\n schema: &ref_14\\\\n type: boolean\\\\n '/attachment/{attachmentID}/preview.{ext}':\\\\n get:\\\\n tags:\\\\n - Attachments\\\\n summary: Serves preview of an attached file\\\\n responses:\\\\n '200':\\\\n description: OK\\\\n parameters:\\\\n - in: path\\\\n name: attachmentID\\\\n description: Attachment ID\\\\n required: true\\\\n schema: *ref_5\\\\n - in: path\\\\n name: ext\\\\n description: Preview extension/format\\\\n required: true\\\\n schema: *ref_2\\\\n - in: query\\\\n name: sign\\\\n description: Signature\\\\n required: true\\\\n schema: *ref_2\\\\n - in: query\\\\n name: userID\\\\n description: User ID\\\\n required: true\\\\n schema: *ref_5\\\\n /search/messages:\\\\n get:\\\\n tags:\\\\n - Search entry point\\\\n summary: Search for messages\\\\n responses:\\\\n '200':\\\\n description: OK\\\\n parameters:\\\\n - in: query\\\\n name: query\\\\n description: Search query\\\\n required: false\\\\n schema: *ref_2\\\\n - in: query\\\\n name: channelID\\\\n description: Filter by channels\\\\n required: false\\\\n schema:\\\\n type: array\\\\n items: *ref_2\\\\n - in: query\\\\n name: afterMessageID\\\\n description: ID of the first message in the list (exclusive)\\\\n required: false\\\\n schema: *ref_5\\\\n - in: query\\\\n name: beforeMessageID\\\\n description: ID of the last message in the list (exclusive)\\\\n required: false\\\\n schema: *ref_5\\\\n - in: query\\\\n name: fromMessageID\\\\n description: ID of the first message in the list (inclusive)\\\\n required: false\\\\n schema: *ref_5\\\\n - in: query\\\\n name: toMessageID\\\\n description: ID of the last message the list (inclusive)\\\\n required: false\\\\n schema: *ref_5\\\\n - in: query\\\\n name: threadID\\\\n description: Filter by thread message ID\\\\n required: false\\\\n schema:\\\\n type: array\\\\n items: *ref_2\\\\n - in: query\\\\n name: userID\\\\n description: Filter by one or more user\\\\n required: false\\\\n schema:\\\\n type: array\\\\n items: *ref_2\\\\n - in: query\\\\n name: type\\\\n description: 'Filter by message type (text, inlineImage, attachment, ...)'\\\\n required: false\\\\n schema:\\\\n type: array\\\\n items: *ref_2\\\\n - in: query\\\\n name: pinnedOnly\\\\n description: Return only pinned messages\\\\n required: false\\\\n schema: *ref_14\\\\n - in: query\\\\n name: bookmarkedOnly\\\\n description: Only bookmarked messages\\\\n required: false\\\\n schema: *ref_14\\\\n - in: query\\\\n name: limit\\\\n description: Max number of messages\\\\n required: false\\\\n schema: &ref_15\\\\n type: string\\\\n /search/threads:\\\\n get:\\\\n tags:\\\\n - Search entry point\\\\n summary: Search for threads\\\\n responses:\\\\n '200':\\\\n description: OK\\\\n parameters:\\\\n - in: query\\\\n name: query\\\\n description: Search query\\\\n required: false\\\\n schema: *ref_2\\\\n - in: query\\\\n name: channelID\\\\n description: Filter by channels\\\\n required: false\\\\n schema:\\\\n type: array\\\\n items: *ref_2\\\\n - in: query\\\\n name: limit\\\\n description: Max number of messages\\\\n required: false\\\\n schema: *ref_15\\\\n /permissions/:\\\\n get:\\\\n tags:\\\\n - Permissions\\\\n summary: Retrieve defined permissions\\\\n responses:\\\\n '200':\\\\n description: OK\\\\n /permissions/effective:\\\\n get:\\\\n tags:\\\\n - Permissions\\\\n summary: Effective rules for current user\\\\n responses:\\\\n '200':\\\\n description: OK\\\\n parameters:\\\\n - in: query\\\\n name: resource\\\\n description: Show only rules for a specific resource\\\\n required: false\\\\n schema: *ref_2\\\\n '/permissions/{roleID}/rules':\\\\n get:\\\\n tags:\\\\n - Permissions\\\\n summary: Retrieve role permissions\\\\n responses:\\\\n '200':\\\\n description: OK\\\\n parameters:\\\\n - in: path\\\\n name: roleID\\\\n description: Role ID\\\\n required: true\\\\n schema: *ref_5\\\\n delete:\\\\n tags:\\\\n - Permissions\\\\n summary: Remove all defined role permissions\\\\n responses:\\\\n '200':\\\\n description: OK\\\\n parameters:\\\\n - in: path\\\\n name: roleID\\\\n description: Role ID\\\\n required: true\\\\n schema: *ref_5\\\\n patch:\\\\n tags:\\\\n - Permissions\\\\n summary: Update permission settings\\\\n responses:\\\\n '200':\\\\n description: OK\\\\n parameters:\\\\n - in: path\\\\n name: roleID\\\\n description: Role ID\\\\n required: true\\\\n schema: *ref_5\\\\n requestBody:\\\\n content:\\\\n application/json:\\\\n schema:\\\\n type: object\\\\n properties: &ref_16\\\\n rules:\\\\n type: array\\\\n items:\\\\n type: object\\\\n properties:\\\\n roleID:\\\\n type: string\\\\n format: uuid\\\\n resource:\\\\n type: string\\\\n operation:\\\\n type: string\\\\n access:\\\\n type: string\\\\n description: List of permission rules to set\\\\n required:\\\\n - rules\\\\n application/x-www-form-urlencoded:\\\\n schema:\\\\n type: object\\\\n properties: *ref_16\\\\nPK\\\\x07\\\\x08\\\\x83J.D\\\\x82^\\\\x00\\\\x00\\\\x82^\\\\x00\\\\x00PK\\\\x03\\\\x04\\\\x14\\\\x00\\\\x08\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00!(\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00 \\\\x00 \\\\x00static.goUT\\\\x05\\\\x00\\\\x01\\\\x80Cm8// Code generated by statik. DO NOT EDIT.\\\\n\\\\n// Package contains static assets.\\\\npackage docs\\\\n\\\\nvar Asset = \\\\\\\"PK\\\\\\\\x03\\\\\\\\x04\\\\\\\\x14\\\\\\\\x00\\\\\\\\x08\\\\\\\\x00\\\\\\\\x00\\\\\\\\x00\\\\\\\\x00\\\\\\\\x00!(\\\\\\\\x00\\\\\\\\x00\\\\\\\\x00\\\\\\\\x00\\\\\\\\x00\\\\\\\\x00\\\\\\\\x00\\\\\\\\x00\\\\\\\\x00\\\\\\\\x00\\\\\\\\x00\\\\\\\\x00\\\\\\\\x0b\\\\\\\\x00 \\\\\\\\x00README.adocUT\\\\\\\\x05\\\\\\\\x00\\\\\\\\x01\\\\\\\\x80Cm8# Corteza API documentation\\\\\\\\n\\\\\\\\nWARNING: Work in progress\\\\\\\\n\\\\\\\\nThis is the first step in migration towards full OpenAPI standards support.`\\\\\\\\n\\\\\\\\n## Original/starting state (pre `2020.9`; deprecated):\\\\\\\\nHome-brew API definition format in JSON, still available under `api/*/spec.json`.\\\\\\\\nThis is still needed for controller/request/handler codegens. Documentation generators are disabled.\\\\\\\\n\\\\\\\\n## Current state (`2020.9`)\\\\\\\\nIn branch `2020.12.x` we're experimenting with first step toward conversion to OpenAPI 3.0 YAML files for API\\\\\\\\ndefinition. There is a converter available in https://github.com/cortezaproject/openapi3-converter[cortezaproject/openapi3-converter]\\\\\\\\nthat takes those custom YAML files and converts them to OpenAPI format.\\\\\\\\n\\\\\\\\n## Goal (target `2020.12`)\\\\\\\\nGenerate HTTP handlers and all auxilary code and documentation from YAML files in OpenAPI 3.0 format\\\\\\\\nPK\\\\\\\\x07\\\\\\\\x08$jr\\\\\\\\x0dN\\\\\\\\x03\\\\\\\\x00\\\\\\\\x00N\\\\\\\\x03\\\\\\\\x00\\\\\\\\x00PK\\\\\\\\x03\\\\\\\\x04\\\\\\\\x14\\\\\\\\x00\\\\\\\\x08\\\\\\\\x00\\\\\\\\x00\\\\\\\\x00\\\\\\\\x00\\\\\\\\x00!(\\\\\\\\x00\\\\\\\\x00\\\\\\\\x00\\\\\\\\x00\\\\\\\\x00\\\\\\\\x00\\\\\\\\x00\\\\\\\\x00\\\\\\\\x00\\\\\\\\x00\\\\\\\\x00\\\\\\\\x00\\\\\\\\x0c\\\\\\\\x00 \\\\\\\\x00compose.yamlUT\\\\\\\\x05\\\\\\\\x00\\\\\\\\x01\\\\\\\\x80Cm8openapi: 3.0.0\\\\\\\\ninfo:\\\\\\\\n title: Corteza compose API\\\\\\\\n description: Corteza compose REST API definition\\\\\\\\n version: 2020.9\\\\\\\\n contact:\\\\\\\\n email: info@cortezaproject.org\\\\\\\\n license:\\\\\\\\n name: Apache 2.0\\\\\\\\n url: 'http://www.apache.org/licenses/LICENSE-2.0.html'\\\\\\\\npaths:\\\\\\\\n /namespace/:\\\\\\\\n get:\\\\\\\\n tags:\\\\\\\\n - Namespaces\\\\\\\\n summary: List namespaces\\\\\\\\n responses:\\\\\\\\n '200':\\\\\\\\n description: OK\\\\\\\\n parameters:\\\\\\\\n - in: query\\\\\\\\n name: query\\\\\\\\n description: Search query\\\\\\\\n required: false\\\\\\\\n schema: &ref_0\\\\\\\\n type: string\\\\\\\\n - in: query\\\\\\\\n name: slug\\\\\\\\n description: Search by namespace slug\\\\\\\\n required: false\\\\\\\\n schema: *ref_0\\\\\\\\n - in: query\\\\\\\\n name: limit\\\\\\\\n description: Limit\\\\\\\\n required: false\\\\\\\\n schema: &ref_5\\\\\\\\n type: string\\\\\\\\n - in: query\\\\\\\\n name: pageCursor\\\\\\\\n description: Page cursor\\\\\\\\n required: false\\\\\\\\n schema: *ref_0\\\\\\\\n - in: query\\\\\\\\n name: sort\\\\\\\\n description: Sort items\\\\\\\\n required: false\\\\\\\\n schema: *ref_0\\\\\\\\n post:\\\\\\\\n tags:\\\\\\\\n - Namespaces\\\\\\\\n summary: Create namespace\\\\\\\\n responses:\\\\\\\\n '200':\\\\\\\\n description: OK\\\\\\\\n requestBody:\\\\\\\\n content:\\\\\\\\n application/json:\\\\\\\\n schema:\\\\\\\\n type: object\\\\\\\\n properties: &ref_1\\\\\\\\n name:\\\\\\\\n type: string\\\\\\\\n description: Name\\\\\\\\n slug:\\\\\\\\n type: string\\\\\\\\n description: Slug (url path part)\\\\\\\\n enabled:\\\\\\\\n type: boolean\\\\\\\\n description: Enabled\\\\\\\\n meta:\\\\\\\\n type: string\\\\\\\\n format: json\\\\\\\\n description: Meta data\\\\\\\\n required:\\\\\\\\n - name\\\\\\\\n - meta\\\\\\\\n application/x-www-form-urlencoded:\\\\\\\\n schema:\\\\\\\\n type: object\\\\\\\\n properties: *ref_1\\\\\\\\n '/namespace/{namespaceID}':\\\\\\\\n get:\\\\\\\\n tags:\\\\\\\\n - Namespaces\\\\\\\\n summary: Read namespace\\\\\\\\n responses:\\\\\\\\n '200':\\\\\\\\n description: OK\\\\\\\\n parameters:\\\\\\\\n - in: path\\\\\\\\n name: namespaceID\\\\\\\\n description: ID\\\\\\\\n required: true\\\\\\\\n schema: &ref_2\\\\\\\\n type: string\\\\\\\\n post:\\\\\\\\n tags:\\\\\\\\n - Namespaces\\\\\\\\n summary: Update namespace\\\\\\\\n responses:\\\\\\\\n '200':\\\\\\\\n description: OK\\\\\\\\n parameters:\\\\\\\\n - in: path\\\\\\\\n name: namespaceID\\\\\\\\n description: ID\\\\\\\\n required: true\\\\\\\\n schema: *ref_2\\\\\\\\n requestBody:\\\\\\\\n content:\\\\\\\\n application/json:\\\\\\\\n schema:\\\\\\\\n type: object\\\\\\\\n properties: &ref_3\\\\\\\\n name:\\\\\\\\n type: string\\\\\\\\n description: Name\\\\\\\\n slug:\\\\\\\\n type: string\\\\\\\\n description: Slug (url path part)\\\\\\\\n enabled:\\\\\\\\n type: boolean\\\\\\\\n description: Enabled\\\\\\\\n meta:\\\\\\\\n type: string\\\\\\\\n format: json\\\\\\\\n description: Meta data\\\\\\\\n updatedAt:\\\\\\\\n type: string\\\\\\\\n format: date-time\\\\\\\\n description: Last update (or creation) date\\\\\\\\n required:\\\\\\\\n - name\\\\\\\\n - meta\\\\\\\\n application/x-www-form-urlencoded:\\\\\\\\n schema:\\\\\\\\n type: object\\\\\\\\n properties: *ref_3\\\\\\\\n delete:\\\\\\\\n tags:\\\\\\\\n - Namespaces\\\\\\\\n summary: Delete namespace\\\\\\\\n responses:\\\\\\\\n '200':\\\\\\\\n description: OK\\\\\\\\n parameters:\\\\\\\\n - in: path\\\\\\\\n name: namespaceID\\\\\\\\n description: ID\\\\\\\\n required: true\\\\\\\\n schema: *ref_2\\\\\\\\n '/namespace/{namespaceID}/trigger':\\\\\\\\n post:\\\\\\\\n tags:\\\\\\\\n - Namespaces\\\\\\\\n summary: 'Fire compose:namespace trigger'\\\\\\\\n responses:\\\\\\\\n '200':\\\\\\\\n description: OK\\\\\\\\n parameters:\\\\\\\\n - in: path\\\\\\\\n name: namespaceID\\\\\\\\n description: ID\\\\\\\\n required: true\\\\\\\\n schema: *ref_2\\\\\\\\n requestBody:\\\\\\\\n content:\\\\\\\\n application/json:\\\\\\\\n schema:\\\\\\\\n type: object\\\\\\\\n properties: &ref_4\\\\\\\\n script:\\\\\\\\n type: string\\\\\\\\n description: Script to execute\\\\\\\\n required:\\\\\\\\n - script\\\\\\\\n application/x-www-form-urlencoded:\\\\\\\\n schema:\\\\\\\\n type: object\\\\\\\\n properties: *ref_4\\\\\\\\n '/namespace/{namespaceID}/page/':\\\\\\\\n get:\\\\\\\\n tags:\\\\\\\\n - Pages\\\\\\\\n summary: List available pages\\\\\\\\n responses:\\\\\\\\n '200':\\\\\\\\n description: OK\\\\\\\\n parameters:\\\\\\\\n - in: query\\\\\\\\n name: selfID\\\\\\\\n description: Parent page ID\\\\\\\\n required: false\\\\\\\\n schema: *ref_2\\\\\\\\n - in: query\\\\\\\\n name: query\\\\\\\\n description: Search query\\\\\\\\n required: false\\\\\\\\n schema: *ref_0\\\\\\\\n - in: query\\\\\\\\n name: handle\\\\\\\\n description: Search by handle\\\\\\\\n required: false\\\\\\\\n schema: *ref_0\\\\\\\\n - in: query\\\\\\\\n name: limit\\\\\\\\n description: Limit\\\\\\\\n required: false\\\\\\\\n schema: *ref_5\\\\\\\\n - in: query\\\\\\\\n name: pageCursor\\\\\\\\n description: Page cursor\\\\\\\\n required: false\\\\\\\\n schema: *ref_0\\\\\\\\n - in: query\\\\\\\\n name: sort\\\\\\\\n description: Sort items\\\\\\\\n required: false\\\\\\\\n schema: *ref_0\\\\\\\\n - in: path\\\\\\\\n name: namespaceID\\\\\\\\n description: Namespace ID\\\\\\\\n required: true\\\\\\\\n schema: *ref_2\\\\\\\\n post:\\\\\\\\n tags:\\\\\\\\n - Pages\\\\\\\\n summary: Create page\\\\\\\\n responses:\\\\\\\\n '200':\\\\\\\\n description: OK\\\\\\\\n requestBody:\\\\\\\\n content:\\\\\\\\n application/json:\\\\\\\\n schema:\\\\\\\\n type: object\\\\\\\\n properties: &ref_6\\\\\\\\n selfID:\\\\\\\\n type: string\\\\\\\\n description: Parent Page ID\\\\\\\\n moduleID:\\\\\\\\n type: string\\\\\\\\n description: Module ID\\\\\\\\n title:\\\\\\\\n type: string\\\\\\\\n description: Title\\\\\\\\n handle:\\\\\\\\n type: string\\\\\\\\n description: Handle\\\\\\\\n description:\\\\\\\\n type: string\\\\\\\\n description: Description\\\\\\\\n weight:\\\\\\\\n type: integer\\\\\\\\n description: Page tree weight\\\\\\\\n visible:\\\\\\\\n type: boolean\\\\\\\\n description: Visible in navigation\\\\\\\\n blocks:\\\\\\\\n type: string\\\\\\\\n format: json\\\\\\\\n description: Blocks JSON\\\\\\\\n required:\\\\\\\\n - title\\\\\\\\n application/x-www-form-urlencoded:\\\\\\\\n schema:\\\\\\\\n type: object\\\\\\\\n properties: *ref_6\\\\\\\\n parameters:\\\\\\\\n - in: path\\\\\\\\n name: namespaceID\\\\\\\\n description: Namespace ID\\\\\\\\n required: true\\\\\\\\n schema: *ref_2\\\\\\\\n '/namespace/{namespaceID}/page/{pageID}':\\\\\\\\n get:\\\\\\\\n tags:\\\\\\\\n - Pages\\\\\\\\n summary: Get page details\\\\\\\\n responses:\\\\\\\\n '200':\\\\\\\\n description: OK\\\\\\\\n parameters:\\\\\\\\n - in: path\\\\\\\\n name: namespaceID\\\\\\\\n description: Namespace ID\\\\\\\\n required: true\\\\\\\\n schema: *ref_2\\\\\\\\n - in: path\\\\\\\\n name: pageID\\\\\\\\n description: Page ID\\\\\\\\n required: true\\\\\\\\n schema: *ref_2\\\\\\\\n post:\\\\\\\\n tags:\\\\\\\\n - Pages\\\\\\\\n summary: Update page\\\\\\\\n responses:\\\\\\\\n '200':\\\\\\\\n description: OK\\\\\\\\n parameters:\\\\\\\\n - in: path\\\\\\\\n name: namespaceID\\\\\\\\n description: Namespace ID\\\\\\\\n required: true\\\\\\\\n schema: *ref_2\\\\\\\\n - in: path\\\\\\\\n name: pageID\\\\\\\\n description: Page ID\\\\\\\\n required: true\\\\\\\\n schema: *ref_2\\\\\\\\n requestBody:\\\\\\\\n content:\\\\\\\\n application/json:\\\\\\\\n schema:\\\\\\\\n type: object\\\\\\\\n properties: &ref_7\\\\\\\\n selfID:\\\\\\\\n type: string\\\\\\\\n description: Parent Page ID\\\\\\\\n moduleID:\\\\\\\\n type: string\\\\\\\\n description: Module ID (optional)\\\\\\\\n title:\\\\\\\\n type: string\\\\\\\\n description: Title\\\\\\\\n handle:\\\\\\\\n type: string\\\\\\\\n description: Handle\\\\\\\\n description:\\\\\\\\n type: string\\\\\\\\n description: Description\\\\\\\\n weight:\\\\\\\\n type: integer\\\\\\\\n description: Page tree weight\\\\\\\\n visible:\\\\\\\\n type: boolean\\\\\\\\n description: Visible in navigation\\\\\\\\n blocks:\\\\\\\\n type: string\\\\\\\\n format: json\\\\\\\\n description: Blocks JSON\\\\\\\\n required:\\\\\\\\n - title\\\\\\\\n application/x-www-form-urlencoded:\\\\\\\\n schema:\\\\\\\\n type: object\\\\\\\\n properties: *ref_7\\\\\\\\n delete:\\\\\\\\n tags:\\\\\\\\n - Pages\\\\\\\\n summary: Delete page\\\\\\\\n responses:\\\\\\\\n '200':\\\\\\\\n description: OK\\\\\\\\n parameters:\\\\\\\\n - in: path\\\\\\\\n name: namespaceID\\\\\\\\n description: Namespace ID\\\\\\\\n required: true\\\\\\\\n schema: *ref_2\\\\\\\\n - in: path\\\\\\\\n name: pageID\\\\\\\\n description: Page ID\\\\\\\\n required: true\\\\\\\\n schema: *ref_2\\\\\\\\n '/namespace/{namespaceID}/page/tree':\\\\\\\\n get:\\\\\\\\n tags:\\\\\\\\n - Pages\\\\\\\\n summary: 'Get page all (non-record) pages, hierarchically'\\\\\\\\n responses:\\\\\\\\n '200':\\\\\\\\n description: OK\\\\\\\\n parameters:\\\\\\\\n - in: path\\\\\\\\n name: namespaceID\\\\\\\\n description: Namespace ID\\\\\\\\n required: true\\\\\\\\n schema: *ref_2\\\\\\\\n '/namespace/{namespaceID}/page/{selfID}/reorder':\\\\\\\\n post:\\\\\\\\n tags:\\\\\\\\n - Pages\\\\\\\\n summary: Reorder pages\\\\\\\\n responses:\\\\\\\\n '200':\\\\\\\\n description: OK\\\\\\\\n parameters:\\\\\\\\n - in: path\\\\\\\\n name: namespaceID\\\\\\\\n description: Namespace ID\\\\\\\\n required: true\\\\\\\\n schema: *ref_2\\\\\\\\n - in: path\\\\\\\\n name: selfID\\\\\\\\n description: Parent page ID\\\\\\\\n required: true\\\\\\\\n schema: *ref_2\\\\\\\\n requestBody:\\\\\\\\n content:\\\\\\\\n application/json:\\\\\\\\n schema:\\\\\\\\n type: object\\\\\\\\n properties: &ref_8\\\\\\\\n pageIDs:\\\\\\\\n type: array\\\\\\\\n items: *ref_0\\\\\\\\n description: Page ID order\\\\\\\\n required:\\\\\\\\n - pageIDs\\\\\\\\n application/x-www-form-urlencoded:\\\\\\\\n schema:\\\\\\\\n type: object\\\\\\\\n properties: *ref_8\\\\\\\\n '/namespace/{namespaceID}/page/{pageID}/attachment':\\\\\\\\n post:\\\\\\\\n tags:\\\\\\\\n - Pages\\\\\\\\n summary: Uploads attachment to page\\\\\\\\n responses:\\\\\\\\n '200':\\\\\\\\n description: OK\\\\\\\\n parameters:\\\\\\\\n - in: path\\\\\\\\n name: namespaceID\\\\\\\\n description: Namespace ID\\\\\\\\n required: true\\\\\\\\n schema: *ref_2\\\\\\\\n - in: path\\\\\\\\n name: pageID\\\\\\\\n description: Page ID\\\\\\\\n required: true\\\\\\\\n schema: *ref_2\\\\\\\\n requestBody:\\\\\\\\n content:\\\\\\\\n application/json:\\\\\\\\n schema:\\\\\\\\n type: object\\\\\\\\n properties: &ref_9\\\\\\\\n upload:\\\\\\\\n type: string\\\\\\\\n format: binary\\\\\\\\n description: File to upload\\\\\\\\n required:\\\\\\\\n - upload\\\\\\\\n application/x-www-form-urlencoded:\\\\\\\\n schema:\\\\\\\\n type: object\\\\\\\\n properties: *ref_9\\\\\\\\n '/namespace/{namespaceID}/page/{pageID}/trigger':\\\\\\\\n post:\\\\\\\\n tags:\\\\\\\\n - Pages\\\\\\\\n summary: 'Fire compose:page trigger'\\\\\\\\n responses:\\\\\\\\n '200':\\\\\\\\n description: OK\\\\\\\\n parameters:\\\\\\\\n - in: path\\\\\\\\n name: namespaceID\\\\\\\\n description: Namespace ID\\\\\\\\n required: true\\\\\\\\n schema: *ref_2\\\\\\\\n - in: path\\\\\\\\n name: pageID\\\\\\\\n description: Page ID\\\\\\\\n required: true\\\\\\\\n schema: *ref_2\\\\\\\\n requestBody:\\\\\\\\n content:\\\\\\\\n application/json:\\\\\\\\n schema:\\\\\\\\n type: object\\\\\\\\n properties: &ref_10\\\\\\\\n script:\\\\\\\\n type: string\\\\\\\\n description: Script to execute\\\\\\\\n required:\\\\\\\\n - script\\\\\\\\n application/x-www-form-urlencoded:\\\\\\\\n schema:\\\\\\\\n type: object\\\\\\\\n properties: *ref_10\\\\\\\\n '/namespace/{namespaceID}/module/':\\\\\\\\n get:\\\\\\\\n tags:\\\\\\\\n - Modules\\\\\\\\n summary: List modules\\\\\\\\n responses:\\\\\\\\n '200':\\\\\\\\n description: OK\\\\\\\\n parameters:\\\\\\\\n - in: query\\\\\\\\n name: query\\\\\\\\n description: Search query\\\\\\\\n required: false\\\\\\\\n schema: *ref_0\\\\\\\\n - in: query\\\\\\\\n name: name\\\\\\\\n description: Search by name\\\\\\\\n required: false\\\\\\\\n schema: *ref_0\\\\\\\\n - in: query\\\\\\\\n name: handle\\\\\\\\n description: Search by handle\\\\\\\\n required: false\\\\\\\\n schema: *ref_0\\\\\\\\n - in: query\\\\\\\\n name: limit\\\\\\\\n description: Limit\\\\\\\\n required: false\\\\\\\\n schema: *ref_5\\\\\\\\n - in: query\\\\\\\\n name: pageCursor\\\\\\\\n description: Page cursor\\\\\\\\n required: false\\\\\\\\n schema: *ref_0\\\\\\\\n - in: query\\\\\\\\n name: sort\\\\\\\\n description: Sort items\\\\\\\\n required: false\\\\\\\\n schema: *ref_0\\\\\\\\n - in: path\\\\\\\\n name: namespaceID\\\\\\\\n description: Namespace ID\\\\\\\\n required: true\\\\\\\\n schema: *ref_2\\\\\\\\n post:\\\\\\\\n tags:\\\\\\\\n - Modules\\\\\\\\n summary: Create module\\\\\\\\n responses:\\\\\\\\n '200':\\\\\\\\n description: OK\\\\\\\\n requestBody:\\\\\\\\n content:\\\\\\\\n application/json:\\\\\\\\n schema:\\\\\\\\n type: object\\\\\\\\n properties: &ref_11\\\\\\\\n name:\\\\\\\\n type: string\\\\\\\\n description: Module Name\\\\\\\\n handle:\\\\\\\\n type: string\\\\\\\\n description: Module handle\\\\\\\\n fields:\\\\\\\\n type: array\\\\\\\\n items: &ref_12\\\\\\\\n type: object\\\\\\\\n properties:\\\\\\\\n fieldID:\\\\\\\\n type: string\\\\\\\\n format: uuid\\\\\\\\n name:\\\\\\\\n type: string\\\\\\\\n kind:\\\\\\\\n type: string\\\\\\\\n label:\\\\\\\\n type: string\\\\\\\\n defaultValue:\\\\\\\\n type: array\\\\\\\\n items:\\\\\\\\n type: string\\\\\\\\n maxLength:\\\\\\\\n type: integer\\\\\\\\n isRequired:\\\\\\\\n type: boolean\\\\\\\\n isPrivate:\\\\\\\\n type: boolean\\\\\\\\n isMulti:\\\\\\\\n type: boolean\\\\\\\\n isSystem:\\\\\\\\n type: boolean\\\\\\\\n options:\\\\\\\\n type: object\\\\\\\\n description: Fields JSON\\\\\\\\n meta:\\\\\\\\n type: string\\\\\\\\n format: json\\\\\\\\n description: Module meta data\\\\\\\\n required:\\\\\\\\n - name\\\\\\\\n - fields\\\\\\\\n - meta\\\\\\\\n application/x-www-form-urlencoded:\\\\\\\\n schema:\\\\\\\\n type: object\\\\\\\\n properties: *ref_11\\\\\\\\n parameters:\\\\\\\\n - in: path\\\\\\\\n name: namespaceID\\\\\\\\n description: Namespace ID\\\\\\\\n required: true\\\\\\\\n schema: *ref_2\\\\\\\\n '/namespace/{namespaceID}/module/{moduleID}':\\\\\\\\n get:\\\\\\\\n tags:\\\\\\\\n - Modules\\\\\\\\n summary: Read module\\\\\\\\n responses:\\\\\\\\n '200':\\\\\\\\n description: OK\\\\\\\\n parameters:\\\\\\\\n - in: path\\\\\\\\n name: namespaceID\\\\\\\\n description: Namespace ID\\\\\\\\n required: true\\\\\\\\n schema: *ref_2\\\\\\\\n - in: path\\\\\\\\n name: moduleID\\\\\\\\n description: Module ID\\\\\\\\n required: true\\\\\\\\n schema: *ref_2\\\\\\\\n post:\\\\\\\\n tags:\\\\\\\\n - Modules\\\\\\\\n summary: Update module\\\\\\\\n responses:\\\\\\\\n '200':\\\\\\\\n description: OK\\\\\\\\n parameters:\\\\\\\\n - in: path\\\\\\\\n name: namespaceID\\\\\\\\n description: Namespace ID\\\\\\\\n required: true\\\\\\\\n schema: *ref_2\\\\\\\\n - in: path\\\\\\\\n name: moduleID\\\\\\\\n description: Module ID\\\\\\\\n required: true\\\\\\\\n schema: *ref_2\\\\\\\\n requestBody:\\\\\\\\n content:\\\\\\\\n application/json:\\\\\\\\n schema:\\\\\\\\n type: object\\\\\\\\n properties: &ref_13\\\\\\\\n name:\\\\\\\\n type: string\\\\\\\\n description: Module Name\\\\\\\\n handle:\\\\\\\\n type: string\\\\\\\\n description: Module Handle\\\\\\\\n fields:\\\\\\\\n type: array\\\\\\\\n items: *ref_12\\\\\\\\n description: Fields JSON\\\\\\\\n meta:\\\\\\\\n type: string\\\\\\\\n format: json\\\\\\\\n description: Module meta data\\\\\\\\n updatedAt:\\\\\\\\n type: string\\\\\\\\n format: date-time\\\\\\\\n description: Last update (or creation) date\\\\\\\\n required:\\\\\\\\n - name\\\\\\\\n - fields\\\\\\\\n - meta\\\\\\\\n application/x-www-form-urlencoded:\\\\\\\\n schema:\\\\\\\\n type: object\\\\\\\\n properties: *ref_13\\\\\\\\n delete:\\\\\\\\n tags:\\\\\\\\n - Modules\\\\\\\\n summary: Delete module\\\\\\\\n responses:\\\\\\\\n '200':\\\\\\\\n description: OK\\\\\\\\n parameters:\\\\\\\\n - in: path\\\\\\\\n name: namespaceID\\\\\\\\n description: Namespace ID\\\\\\\\n required: true\\\\\\\\n schema: *ref_2\\\\\\\\n - in: path\\\\\\\\n name: moduleID\\\\\\\\n description: Module ID\\\\\\\\n required: true\\\\\\\\n schema: *ref_2\\\\\\\\n '/namespace/{namespaceID}/module/{moduleID}/trigger':\\\\\\\\n post:\\\\\\\\n tags:\\\\\\\\n - Modules\\\\\\\\n summary: 'Fire compose:module trigger'\\\\\\\\n responses:\\\\\\\\n '200':\\\\\\\\n description: OK\\\\\\\\n parameters:\\\\\\\\n - in: path\\\\\\\\n name: namespaceID\\\\\\\\n description: Namespace ID\\\\\\\\n required: true\\\\\\\\n schema: *ref_2\\\\\\\\n - in: path\\\\\\\\n name: moduleID\\\\\\\\n description: ID\\\\\\\\n required: true\\\\\\\\n schema: *ref_2\\\\\\\\n requestBody:\\\\\\\\n content:\\\\\\\\n application/json:\\\\\\\\n schema:\\\\\\\\n type: object\\\\\\\\n properties: &ref_14\\\\\\\\n script:\\\\\\\\n type: string\\\\\\\\n description: Script to execute\\\\\\\\n required:\\\\\\\\n - script\\\\\\\\n application/x-www-form-urlencoded:\\\\\\\\n schema:\\\\\\\\n type: object\\\\\\\\n properties: *ref_14\\\\\\\\n '/namespace/{namespaceID}/module/{moduleID}/record/report':\\\\\\\\n get:\\\\\\\\n tags:\\\\\\\\n - Records\\\\\\\\n summary: Generates report from module records\\\\\\\\n responses:\\\\\\\\n '200':\\\\\\\\n description: OK\\\\\\\\n parameters:\\\\\\\\n - in: query\\\\\\\\n name: metrics\\\\\\\\n description: 'Metrics (eg: ''SUM(money), MAX(calls)'')'\\\\\\\\n required: false\\\\\\\\n schema: *ref_0\\\\\\\\n - in: query\\\\\\\\n name: dimensions\\\\\\\\n description: 'Dimensions (eg: ''DATE(foo), status'')'\\\\\\\\n required: true\\\\\\\\n schema: *ref_0\\\\\\\\n - in: query\\\\\\\\n name: filter\\\\\\\\n description: 'Filter (eg: ''DATE(foo) > 2010'')'\\\\\\\\n required: false\\\\\\\\n schema: *ref_0\\\\\\\\n - in: path\\\\\\\\n name: namespaceID\\\\\\\\n description: Namespace ID\\\\\\\\n required: true\\\\\\\\n schema: *ref_2\\\\\\\\n - in: path\\\\\\\\n name: moduleID\\\\\\\\n description: Module ID\\\\\\\\n required: true\\\\\\\\n schema: *ref_2\\\\\\\\n '/namespace/{namespaceID}/module/{moduleID}/record/':\\\\\\\\n get:\\\\\\\\n tags:\\\\\\\\n - Records\\\\\\\\n summary: List/read records from module section\\\\\\\\n responses:\\\\\\\\n '200':\\\\\\\\n description: OK\\\\\\\\n parameters:\\\\\\\\n - in: query\\\\\\\\n name: query\\\\\\\\n description: Record filtering query\\\\\\\\n required: false\\\\\\\\n schema: *ref_0\\\\\\\\n - in: query\\\\\\\\n name: filter\\\\\\\\n description: 'Filtering condition (same as query, deprecated)'\\\\\\\\n required: false\\\\\\\\n schema: *ref_0\\\\\\\\n - in: query\\\\\\\\n name: deleted\\\\\\\\n description: 'Exclude (0, default), include (1) or return only (2) deleted records'\\\\\\\\n required: false\\\\\\\\n schema: *ref_5\\\\\\\\n - in: query\\\\\\\\n name: limit\\\\\\\\n description: Limit\\\\\\\\n required: false\\\\\\\\n schema: *ref_5\\\\\\\\n - in: query\\\\\\\\n name: offset\\\\\\\\n description: Offset\\\\\\\\n required: false\\\\\\\\n schema: *ref_5\\\\\\\\n - in: query\\\\\\\\n name: page\\\\\\\\n description: Page number (1-based)\\\\\\\\n required: false\\\\\\\\n schema: *ref_5\\\\\\\\n - in: query\\\\\\\\n name: perPage\\\\\\\\n description: Returned items per page (default 50)\\\\\\\\n required: false\\\\\\\\n schema: *ref_5\\\\\\\\n - in: query\\\\\\\\n name: sort\\\\\\\\n description: Sort items\\\\\\\\n required: false\\\\\\\\n schema: *ref_0\\\\\\\\n - in: path\\\\\\\\n name: namespaceID\\\\\\\\n description: Namespace ID\\\\\\\\n required: true\\\\\\\\n schema: *ref_2\\\\\\\\n - in: path\\\\\\\\n name: moduleID\\\\\\\\n description: Module ID\\\\\\\\n required: true\\\\\\\\n schema: *ref_2\\\\\\\\n post:\\\\\\\\n tags:\\\\\\\\n - Records\\\\\\\\n summary: Create record in module section\\\\\\\\n responses:\\\\\\\\n '200':\\\\\\\\n description: OK\\\\\\\\n requestBody:\\\\\\\\n content:\\\\\\\\n application/json:\\\\\\\\n schema:\\\\\\\\n type: object\\\\\\\\n properties: &ref_15\\\\\\\\n values:\\\\\\\\n type: array\\\\\\\\n items: &ref_20\\\\\\\\n type: object\\\\\\\\n properties:\\\\\\\\n name:\\\\\\\\n type: string\\\\\\\\n value:\\\\\\\\n type: string\\\\\\\\n description: Record values\\\\\\\\n records:\\\\\\\\n type: array\\\\\\\\n items: &ref_21\\\\\\\\n type: object\\\\\\\\n properties:\\\\\\\\n recordID:\\\\\\\\n type: string\\\\\\\\n format: uuid\\\\\\\\n moduleID:\\\\\\\\n type: string\\\\\\\\n format: uuid\\\\\\\\n namespaceID:\\\\\\\\n type: string\\\\\\\\n format: uuid\\\\\\\\n values:\\\\\\\\n type: array\\\\\\\\n items:\\\\\\\\n type: object\\\\\\\\n properties:\\\\\\\\n name:\\\\\\\\n type: string\\\\\\\\n value:\\\\\\\\n type: string\\\\\\\\n createdAt:\\\\\\\\n type: string\\\\\\\\n format: date-time\\\\\\\\n updatedAt:\\\\\\\\n type: string\\\\\\\\n format: date-time\\\\\\\\n deletedAt:\\\\\\\\n type: string\\\\\\\\n format: date-time\\\\\\\\n ownedBy:\\\\\\\\n type: string\\\\\\\\n format: uuid\\\\\\\\n createdBy:\\\\\\\\n type: string\\\\\\\\n format: uuid\\\\\\\\n updatedBy:\\\\\\\\n type: string\\\\\\\\n format: uuid\\\\\\\\n deletedBy:\\\\\\\\n type: string\\\\\\\\n format: uuid\\\\\\\\n description: Records\\\\\\\\n application/x-www-form-urlencoded:\\\\\\\\n schema:\\\\\\\\n type: object\\\\\\\\n properties: *ref_15\\\\\\\\n parameters:\\\\\\\\n - in: path\\\\\\\\n name: namespaceID\\\\\\\\n description: Namespace ID\\\\\\\\n required: true\\\\\\\\n schema: *ref_2\\\\\\\\n - in: path\\\\\\\\n name: moduleID\\\\\\\\n description: Module ID\\\\\\\\n required: true\\\\\\\\n schema: *ref_2\\\\\\\\n delete:\\\\\\\\n tags:\\\\\\\\n - Records\\\\\\\\n summary: Delete record row from module section\\\\\\\\n responses:\\\\\\\\n '200':\\\\\\\\n description: OK\\\\\\\\n requestBody:\\\\\\\\n content:\\\\\\\\n application/json:\\\\\\\\n schema:\\\\\\\\n type: object\\\\\\\\n properties: &ref_16\\\\\\\\n recordIDs:\\\\\\\\n type: array\\\\\\\\n items: *ref_0\\\\\\\\n description: IDs of records to delete\\\\\\\\n truncate:\\\\\\\\n type: boolean\\\\\\\\n description: >-\\\\\\\\n Remove ALL records of a specified module (pending\\\\\\\\n implementation)\\\\\\\\n application/x-www-form-urlencoded:\\\\\\\\n schema:\\\\\\\\n type: object\\\\\\\\n properties: *ref_16\\\\\\\\n parameters:\\\\\\\\n - in: path\\\\\\\\n name: namespaceID\\\\\\\\n description: Namespace ID\\\\\\\\n required: true\\\\\\\\n schema: *ref_2\\\\\\\\n - in: path\\\\\\\\n name: moduleID\\\\\\\\n description: Module ID\\\\\\\\n required: true\\\\\\\\n schema: *ref_2\\\\\\\\n '/namespace/{namespaceID}/module/{moduleID}/record/import':\\\\\\\\n post:\\\\\\\\n tags:\\\\\\\\n - Records\\\\\\\\n summary: Initiate record import session\\\\\\\\n responses:\\\\\\\\n '200':\\\\\\\\n description: OK\\\\\\\\n requestBody:\\\\\\\\n content:\\\\\\\\n application/json:\\\\\\\\n schema:\\\\\\\\n type: object\\\\\\\\n properties: &ref_17\\\\\\\\n upload:\\\\\\\\n type: string\\\\\\\\n format: binary\\\\\\\\n description: File import\\\\\\\\n required:\\\\\\\\n - upload\\\\\\\\n application/x-www-form-urlencoded:\\\\\\\\n schema:\\\\\\\\n type: object\\\\\\\\n properties: *ref_17\\\\\\\\n parameters:\\\\\\\\n - in: path\\\\\\\\n name: namespaceID\\\\\\\\n description: Namespace ID\\\\\\\\n required: true\\\\\\\\n schema: *ref_2\\\\\\\\n - in: path\\\\\\\\n name: moduleID\\\\\\\\n description: Module ID\\\\\\\\n required: true\\\\\\\\n schema: *ref_2\\\\\\\\n '/namespace/{namespaceID}/module/{moduleID}/record/import/{sessionID}':\\\\\\\\n patch:\\\\\\\\n tags:\\\\\\\\n - Records\\\\\\\\n summary: Run record import\\\\\\\\n responses:\\\\\\\\n '200':\\\\\\\\n description: OK\\\\\\\\n parameters:\\\\\\\\n - in: path\\\\\\\\n name: namespaceID\\\\\\\\n description: Namespace ID\\\\\\\\n required: true\\\\\\\\n schema: *ref_2\\\\\\\\n - in: path\\\\\\\\n name: moduleID\\\\\\\\n description: Module ID\\\\\\\\n required: true\\\\\\\\n schema: *ref_2\\\\\\\\n - in: path\\\\\\\\n name: sessionID\\\\\\\\n description: Import session\\\\\\\\n required: true\\\\\\\\n schema: *ref_2\\\\\\\\n requestBody:\\\\\\\\n content:\\\\\\\\n application/json:\\\\\\\\n schema:\\\\\\\\n type: object\\\\\\\\n properties: &ref_18\\\\\\\\n fields:\\\\\\\\n type: string\\\\\\\\n format: json\\\\\\\\n description: Fields defined by import file\\\\\\\\n onError:\\\\\\\\n type: string\\\\\\\\n description: What happens if record fails to import\\\\\\\\n required:\\\\\\\\n - fields\\\\\\\\n - onError\\\\\\\\n application/x-www-form-urlencoded:\\\\\\\\n schema:\\\\\\\\n type: object\\\\\\\\n properties: *ref_18\\\\\\\\n get:\\\\\\\\n tags:\\\\\\\\n - Records\\\\\\\\n summary: Get import progress\\\\\\\\n responses:\\\\\\\\n '200':\\\\\\\\n description: OK\\\\\\\\n parameters:\\\\\\\\n - in: path\\\\\\\\n name: namespaceID\\\\\\\\n description: Namespace ID\\\\\\\\n required: true\\\\\\\\n schema: *ref_2\\\\\\\\n - in: path\\\\\\\\n name: moduleID\\\\\\\\n description: Module ID\\\\\\\\n required: true\\\\\\\\n schema: *ref_2\\\\\\\\n - in: path\\\\\\\\n name: sessionID\\\\\\\\n description: Import session\\\\\\\\n required: true\\\\\\\\n schema: *ref_2\\\\\\\\n '/namespace/{namespaceID}/module/{moduleID}/record/export{filename}.{ext}':\\\\\\\\n get:\\\\\\\\n tags:\\\\\\\\n - Records\\\\\\\\n summary: 'Exports records that match '\\\\\\\\n responses:\\\\\\\\n '200':\\\\\\\\n description: OK\\\\\\\\n parameters:\\\\\\\\n - in: path\\\\\\\\n name: namespaceID\\\\\\\\n description: Namespace ID\\\\\\\\n required: true\\\\\\\\n schema: *ref_2\\\\\\\\n - in: path\\\\\\\\n name: moduleID\\\\\\\\n description: Module ID\\\\\\\\n required: true\\\\\\\\n schema: *ref_2\\\\\\\\n - in: path\\\\\\\\n name: filename\\\\\\\\n description: Filename to use\\\\\\\\n required: true\\\\\\\\n schema: *ref_0\\\\\\\\n - in: path\\\\\\\\n name: ext\\\\\\\\n description: Export format\\\\\\\\n required: true\\\\\\\\n schema: *ref_0\\\\\\\\n - in: query\\\\\\\\n name: filter\\\\\\\\n description: Filtering condition\\\\\\\\n required: false\\\\\\\\n schema: *ref_0\\\\\\\\n - in: query\\\\\\\\n name: fields\\\\\\\\n description: Fields to export\\\\\\\\n required: true\\\\\\\\n schema:\\\\\\\\n type: array\\\\\\\\n items: *ref_0\\\\\\\\n - in: query\\\\\\\\n name: timezone\\\\\\\\n description: Convert times to this timezone\\\\\\\\n required: false\\\\\\\\n schema: *ref_0\\\\\\\\n '/namespace/{namespaceID}/module/{moduleID}/record/exec/{procedure}':\\\\\\\\n post:\\\\\\\\n tags:\\\\\\\\n - Records\\\\\\\\n summary: Executes server-side procedure over one or more module records\\\\\\\\n responses:\\\\\\\\n '200':\\\\\\\\n description: OK\\\\\\\\n parameters:\\\\\\\\n - in: path\\\\\\\\n name: namespaceID\\\\\\\\n description: Namespace ID\\\\\\\\n required: true\\\\\\\\n schema: *ref_2\\\\\\\\n - in: path\\\\\\\\n name: moduleID\\\\\\\\n description: Module ID\\\\\\\\n required: true\\\\\\\\n schema: *ref_2\\\\\\\\n - in: path\\\\\\\\n name: procedure\\\\\\\\n description: Name of procedure to execute\\\\\\\\n required: true\\\\\\\\n schema: *ref_0\\\\\\\\n requestBody:\\\\\\\\n content:\\\\\\\\n application/json:\\\\\\\\n schema:\\\\\\\\n type: object\\\\\\\\n properties: &ref_19\\\\\\\\n args:\\\\\\\\n type: array\\\\\\\\n items:\\\\\\\\n type: object\\\\\\\\n properties:\\\\\\\\n name:\\\\\\\\n type: string\\\\\\\\n value:\\\\\\\\n type: string\\\\\\\\n description: Procedure arguments\\\\\\\\n application/x-www-form-urlencoded:\\\\\\\\n schema:\\\\\\\\n type: object\\\\\\\\n properties: *ref_19\\\\\\\\n '/namespace/{namespaceID}/module/{moduleID}/record/{recordID}':\\\\\\\\n get:\\\\\\\\n tags:\\\\\\\\n - Records\\\\\\\\n summary: Read records by ID from module section\\\\\\\\n responses:\\\\\\\\n '200':\\\\\\\\n description: OK\\\\\\\\n parameters:\\\\\\\\n - in: path\\\\\\\\n name: namespaceID\\\\\\\\n description: Namespace ID\\\\\\\\n required: true\\\\\\\\n schema: *ref_2\\\\\\\\n - in: path\\\\\\\\n name: moduleID\\\\\\\\n description: Module ID\\\\\\\\n required: true\\\\\\\\n schema: *ref_2\\\\\\\\n - in: path\\\\\\\\n name: recordID\\\\\\\\n description: Record ID\\\\\\\\n required: true\\\\\\\\n schema: *ref_2\\\\\\\\n post:\\\\\\\\n tags:\\\\\\\\n - Records\\\\\\\\n summary: Update records in module section\\\\\\\\n responses:\\\\\\\\n '200':\\\\\\\\n description: OK\\\\\\\\n parameters:\\\\\\\\n - in: path\\\\\\\\n name: namespaceID\\\\\\\\n description: Namespace ID\\\\\\\\n required: true\\\\\\\\n schema: *ref_2\\\\\\\\n - in: path\\\\\\\\n name: moduleID\\\\\\\\n description: Module ID\\\\\\\\n required: true\\\\\\\\n schema: *ref_2\\\\\\\\n - in: path\\\\\\\\n name: recordID\\\\\\\\n description: Record ID\\\\\\\\n required: true\\\\\\\\n schema: *ref_2\\\\\\\\n requestBody:\\\\\\\\n content:\\\\\\\\n application/json:\\\\\\\\n schema:\\\\\\\\n type: object\\\\\\\\n properties: &ref_22\\\\\\\\n values:\\\\\\\\n type: array\\\\\\\\n items: *ref_20\\\\\\\\n description: Record values\\\\\\\\n records:\\\\\\\\n type: array\\\\\\\\n items: *ref_21\\\\\\\\n description: Records\\\\\\\\n application/x-www-form-urlencoded:\\\\\\\\n schema:\\\\\\\\n type: object\\\\\\\\n properties: *ref_22\\\\\\\\n delete:\\\\\\\\n tags:\\\\\\\\n - Records\\\\\\\\n summary: Delete record row from module section\\\\\\\\n responses:\\\\\\\\n '200':\\\\\\\\n description: OK\\\\\\\\n parameters:\\\\\\\\n - in: path\\\\\\\\n name: namespaceID\\\\\\\\n description: Namespace ID\\\\\\\\n required: true\\\\\\\\n schema: *ref_2\\\\\\\\n - in: path\\\\\\\\n name: moduleID\\\\\\\\n description: Module ID\\\\\\\\n required: true\\\\\\\\n schema: *ref_2\\\\\\\\n - in: path\\\\\\\\n name: recordID\\\\\\\\n description: Record ID\\\\\\\\n required: true\\\\\\\\n schema: *ref_2\\\\\\\\n '/namespace/{namespaceID}/module/{moduleID}/record/attachment':\\\\\\\\n post:\\\\\\\\n tags:\\\\\\\\n - Records\\\\\\\\n summary: Uploads attachment and validates it against record field requirements\\\\\\\\n responses:\\\\\\\\n '200':\\\\\\\\n description: OK\\\\\\\\n requestBody:\\\\\\\\n content:\\\\\\\\n application/json:\\\\\\\\n schema:\\\\\\\\n type: object\\\\\\\\n properties: &ref_23\\\\\\\\n recordID:\\\\\\\\n type: string\\\\\\\\n description: Record ID\\\\\\\\n fieldName:\\\\\\\\n type: string\\\\\\\\n description: Field name\\\\\\\\n upload:\\\\\\\\n type: string\\\\\\\\n format: binary\\\\\\\\n description: File to upload\\\\\\\\n required:\\\\\\\\n - fieldName\\\\\\\\n - upload\\\\\\\\n application/x-www-form-urlencoded:\\\\\\\\n schema:\\\\\\\\n type: object\\\\\\\\n properties: *ref_23\\\\\\\\n parameters:\\\\\\\\n - in: path\\\\\\\\n name: namespaceID\\\\\\\\n description: Namespace ID\\\\\\\\n required: true\\\\\\\\n schema: *ref_2\\\\\\\\n - in: path\\\\\\\\n name: moduleID\\\\\\\\n description: Module ID\\\\\\\\n required: true\\\\\\\\n schema: *ref_2\\\\\\\\n '/namespace/{namespaceID}/module/{moduleID}/record/{recordID}/trigger':\\\\\\\\n post:\\\\\\\\n tags:\\\\\\\\n - Records\\\\\\\\n summary: 'Fire compose:record trigger'\\\\\\\\n responses:\\\\\\\\n '200':\\\\\\\\n description: OK\\\\\\\\n parameters:\\\\\\\\n - in: path\\\\\\\\n name: namespaceID\\\\\\\\n description: Namespace ID\\\\\\\\n required: true\\\\\\\\n schema: *ref_2\\\\\\\\n - in: path\\\\\\\\n name: moduleID\\\\\\\\n description: Module ID\\\\\\\\n required: true\\\\\\\\n schema: *ref_2\\\\\\\\n - in: path\\\\\\\\n name: recordID\\\\\\\\n description: ID\\\\\\\\n required: true\\\\\\\\n schema: *ref_2\\\\\\\\n requestBody:\\\\\\\\n content:\\\\\\\\n application/json:\\\\\\\\n schema:\\\\\\\\n type: object\\\\\\\\n properties: &ref_24\\\\\\\\n script:\\\\\\\\n type: string\\\\\\\\n description: Script to execute\\\\\\\\n values:\\\\\\\\n type: array\\\\\\\\n items: *ref_20\\\\\\\\n description: Record values\\\\\\\\n required:\\\\\\\\n - script\\\\\\\\n - values\\\\\\\\n application/x-www-form-urlencoded:\\\\\\\\n schema:\\\\\\\\n type: object\\\\\\\\n properties: *ref_24\\\\\\\\n '/namespace/{namespaceID}/module/{moduleID}/record/trigger':\\\\\\\\n post:\\\\\\\\n tags:\\\\\\\\n - Records\\\\\\\\n summary: 'Fire compose:record trigger'\\\\\\\\n responses:\\\\\\\\n '200':\\\\\\\\n description: OK\\\\\\\\n requestBody:\\\\\\\\n content:\\\\\\\\n application/json:\\\\\\\\n schema:\\\\\\\\n type: object\\\\\\\\n properties: &ref_25\\\\\\\\n script:\\\\\\\\n type: string\\\\\\\\n description: Script to execute\\\\\\\\n required:\\\\\\\\n - script\\\\\\\\n application/x-www-form-urlencoded:\\\\\\\\n schema:\\\\\\\\n type: object\\\\\\\\n properties: *ref_25\\\\\\\\n parameters:\\\\\\\\n - in: path\\\\\\\\n name: namespaceID\\\\\\\\n description: Namespace ID\\\\\\\\n required: true\\\\\\\\n schema: *ref_2\\\\\\\\n - in: path\\\\\\\\n name: moduleID\\\\\\\\n description: Module ID\\\\\\\\n required: true\\\\\\\\n schema: *ref_2\\\\\\\\n '/namespace/{namespaceID}/chart/':\\\\\\\\n get:\\\\\\\\n tags:\\\\\\\\n - Charts\\\\\\\\n summary: List/read charts\\\\\\\\n responses:\\\\\\\\n '200':\\\\\\\\n description: OK\\\\\\\\n parameters:\\\\\\\\n - in: query\\\\\\\\n name: query\\\\\\\\n description: Search query to match against charts\\\\\\\\n required: false\\\\\\\\n schema: *ref_0\\\\\\\\n - in: query\\\\\\\\n name: handle\\\\\\\\n description: Search charts by handle\\\\\\\\n required: false\\\\\\\\n schema: *ref_0\\\\\\\\n - in: query\\\\\\\\n name: limit\\\\\\\\n description: Limit\\\\\\\\n required: false\\\\\\\\n schema: *ref_5\\\\\\\\n - in: query\\\\\\\\n name: pageCursor\\\\\\\\n description: Page cursor\\\\\\\\n required: false\\\\\\\\n schema: *ref_0\\\\\\\\n - in: query\\\\\\\\n name: sort\\\\\\\\n description: Sort items\\\\\\\\n required: false\\\\\\\\n schema: *ref_0\\\\\\\\n - in: path\\\\\\\\n name: namespaceID\\\\\\\\n description: Namespace ID\\\\\\\\n required: true\\\\\\\\n schema: *ref_2\\\\\\\\n post:\\\\\\\\n tags:\\\\\\\\n - Charts\\\\\\\\n summary: 'List/read charts '\\\\\\\\n responses:\\\\\\\\n '200':\\\\\\\\n description: OK\\\\\\\\n requestBody:\\\\\\\\n content:\\\\\\\\n application/json:\\\\\\\\n schema:\\\\\\\\n type: object\\\\\\\\n properties: &ref_26\\\\\\\\n config:\\\\\\\\n type: string\\\\\\\\n format: json\\\\\\\\n description: Chart JSON\\\\\\\\n name:\\\\\\\\n type: string\\\\\\\\n description: Chart name\\\\\\\\n handle:\\\\\\\\n type: string\\\\\\\\n description: Chart handle\\\\\\\\n required:\\\\\\\\n - config\\\\\\\\n - name\\\\\\\\n application/x-www-form-urlencoded:\\\\\\\\n schema:\\\\\\\\n type: object\\\\\\\\n properties: *ref_26\\\\\\\\n parameters:\\\\\\\\n - in: path\\\\\\\\n name: namespaceID\\\\\\\\n description: Namespace ID\\\\\\\\n required: true\\\\\\\\n schema: *ref_2\\\\\\\\n '/namespace/{namespaceID}/chart/{chartID}':\\\\\\\\n get:\\\\\\\\n tags:\\\\\\\\n - Charts\\\\\\\\n summary: Read charts by ID\\\\\\\\n responses:\\\\\\\\n '200':\\\\\\\\n description: OK\\\\\\\\n parameters:\\\\\\\\n - in: path\\\\\\\\n name: namespaceID\\\\\\\\n description: Namespace ID\\\\\\\\n required: true\\\\\\\\n schema: *ref_2\\\\\\\\n - in: path\\\\\\\\n name: chartID\\\\\\\\n description: Chart ID\\\\\\\\n required: true\\\\\\\\n schema: *ref_2\\\\\\\\n post:\\\\\\\\n tags:\\\\\\\\n - Charts\\\\\\\\n summary: Add/update charts\\\\\\\\n responses:\\\\\\\\n '200':\\\\\\\\n description: OK\\\\\\\\n parameters:\\\\\\\\n - in: path\\\\\\\\n name: namespaceID\\\\\\\\n description: Namespace ID\\\\\\\\n required: true\\\\\\\\n schema: *ref_2\\\\\\\\n - in: path\\\\\\\\n name: chartID\\\\\\\\n description: Chart ID\\\\\\\\n required: true\\\\\\\\n schema: *ref_2\\\\\\\\n requestBody:\\\\\\\\n content:\\\\\\\\n application/json:\\\\\\\\n schema:\\\\\\\\n type: object\\\\\\\\n properties: &ref_27\\\\\\\\n config:\\\\\\\\n type: string\\\\\\\\n format: json\\\\\\\\n description: Chart JSON\\\\\\\\n name:\\\\\\\\n type: string\\\\\\\\n description: Chart name\\\\\\\\n handle:\\\\\\\\n type: string\\\\\\\\n description: Chart handle\\\\\\\\n updatedAt:\\\\\\\\n type: string\\\\\\\\n format: date-time\\\\\\\\n description: Last update (or creation) date\\\\\\\\n required:\\\\\\\\n - config\\\\\\\\n - name\\\\\\\\n application/x-www-form-urlencoded:\\\\\\\\n schema:\\\\\\\\n type: object\\\\\\\\n properties: *ref_27\\\\\\\\n delete:\\\\\\\\n tags:\\\\\\\\n - Charts\\\\\\\\n summary: Delete chart\\\\\\\\n responses:\\\\\\\\n '200':\\\\\\\\n description: OK\\\\\\\\n parameters:\\\\\\\\n - in: path\\\\\\\\n name: namespaceID\\\\\\\\n description: Namespace ID\\\\\\\\n required: true\\\\\\\\n schema: *ref_2\\\\\\\\n - in: path\\\\\\\\n name: chartID\\\\\\\\n description: Chart ID\\\\\\\\n required: true\\\\\\\\n schema: *ref_2\\\\\\\\n /notification/email:\\\\\\\\n post:\\\\\\\\n tags:\\\\\\\\n - Notifications\\\\\\\\n summary: Send email from the Compose\\\\\\\\n responses:\\\\\\\\n '200':\\\\\\\\n description: OK\\\\\\\\n requestBody:\\\\\\\\n content:\\\\\\\\n application/json:\\\\\\\\n schema:\\\\\\\\n type: object\\\\\\\\n properties: &ref_28\\\\\\\\n to:\\\\\\\\n type: array\\\\\\\\n items: *ref_0\\\\\\\\n description: Email addresses\\\\\\\\n cc:\\\\\\\\n type: array\\\\\\\\n items: *ref_0\\\\\\\\n description: Email addresses\\\\\\\\n replyTo:\\\\\\\\n type: string\\\\\\\\n description: Email address in reply-to field\\\\\\\\n subject:\\\\\\\\n type: string\\\\\\\\n description: Email subject\\\\\\\\n content:\\\\\\\\n type: string\\\\\\\\n format: json\\\\\\\\n description: Message content\\\\\\\\n remoteAttachments:\\\\\\\\n type: array\\\\\\\\n items: *ref_0\\\\\\\\n description: Remote files to attach to the email\\\\\\\\n required:\\\\\\\\n - to\\\\\\\\n - content\\\\\\\\n application/x-www-form-urlencoded:\\\\\\\\n schema:\\\\\\\\n type: object\\\\\\\\n properties: *ref_28\\\\\\\\n '/namespace/{namespaceID}/attachment/{kind}/':\\\\\\\\n get:\\\\\\\\n tags:\\\\\\\\n - Attachments\\\\\\\\n summary: 'List, filter all page attachments'\\\\\\\\n responses:\\\\\\\\n '200':\\\\\\\\n description: OK\\\\\\\\n parameters:\\\\\\\\n - in: query\\\\\\\\n name: sign\\\\\\\\n description: Signature\\\\\\\\n required: false\\\\\\\\n schema: *ref_0\\\\\\\\n - in: query\\\\\\\\n name: userID\\\\\\\\n description: User ID\\\\\\\\n required: false\\\\\\\\n schema: *ref_2\\\\\\\\n - in: query\\\\\\\\n name: pageID\\\\\\\\n description: Filter attachments by page ID\\\\\\\\n required: false\\\\\\\\n schema: *ref_2\\\\\\\\n - in: query\\\\\\\\n name: moduleID\\\\\\\\n description: Filter attachments by module ID\\\\\\\\n required: false\\\\\\\\n schema: *ref_2\\\\\\\\n - in: query\\\\\\\\n name: recordID\\\\\\\\n description: Filter attachments by record ID\\\\\\\\n required: false\\\\\\\\n schema: *ref_2\\\\\\\\n - in: query\\\\\\\\n name: fieldName\\\\\\\\n description: Filter attachments by field name\\\\\\\\n required: false\\\\\\\\n schema: *ref_0\\\\\\\\n - in: query\\\\\\\\n name: limit\\\\\\\\n description: Limit\\\\\\\\n required: false\\\\\\\\n schema: *ref_5\\\\\\\\n - in: query\\\\\\\\n name: offset\\\\\\\\n description: Offset\\\\\\\\n required: false\\\\\\\\n schema: *ref_5\\\\\\\\n - in: query\\\\\\\\n name: page\\\\\\\\n description: Page number (1-based)\\\\\\\\n required: false\\\\\\\\n schema: *ref_5\\\\\\\\n - in: query\\\\\\\\n name: perPage\\\\\\\\n description: Returned items per page (default 50)\\\\\\\\n required: false\\\\\\\\n schema: *ref_5\\\\\\\\n - in: path\\\\\\\\n name: kind\\\\\\\\n description: Attachment kind\\\\\\\\n required: true\\\\\\\\n schema: *ref_0\\\\\\\\n - in: path\\\\\\\\n name: namespaceID\\\\\\\\n description: Namespace ID\\\\\\\\n required: true\\\\\\\\n schema: *ref_2\\\\\\\\n '/namespace/{namespaceID}/attachment/{kind}/{attachmentID}':\\\\\\\\n get:\\\\\\\\n tags:\\\\\\\\n - Attachments\\\\\\\\n summary: Attachment details\\\\\\\\n responses:\\\\\\\\n '200':\\\\\\\\n description: OK\\\\\\\\n parameters:\\\\\\\\n - in: path\\\\\\\\n name: kind\\\\\\\\n description: Attachment kind\\\\\\\\n required: true\\\\\\\\n schema: *ref_0\\\\\\\\n - in: path\\\\\\\\n name: namespaceID\\\\\\\\n description: Namespace ID\\\\\\\\n required: true\\\\\\\\n schema: *ref_2\\\\\\\\n - in: path\\\\\\\\n name: attachmentID\\\\\\\\n description: Attachment ID\\\\\\\\n required: true\\\\\\\\n schema: *ref_2\\\\\\\\n - in: query\\\\\\\\n name: sign\\\\\\\\n description: Signature\\\\\\\\n required: false\\\\\\\\n schema: *ref_0\\\\\\\\n - in: query\\\\\\\\n name: userID\\\\\\\\n description: User ID\\\\\\\\n required: false\\\\\\\\n schema: *ref_2\\\\\\\\n delete:\\\\\\\\n tags:\\\\\\\\n - Attachments\\\\\\\\n summary: Delete attachment\\\\\\\\n responses:\\\\\\\\n '200':\\\\\\\\n description: OK\\\\\\\\n parameters:\\\\\\\\n - in: path\\\\\\\\n name: kind\\\\\\\\n description: Attachment kind\\\\\\\\n required: true\\\\\\\\n schema: *ref_0\\\\\\\\n - in: path\\\\\\\\n name: namespaceID\\\\\\\\n description: Namespace ID\\\\\\\\n required: true\\\\\\\\n schema: *ref_2\\\\\\\\n - in: path\\\\\\\\n name: attachmentID\\\\\\\\n description: Attachment ID\\\\\\\\n required: true\\\\\\\\n schema: *ref_2\\\\\\\\n - in: query\\\\\\\\n name: sign\\\\\\\\n description: Signature\\\\\\\\n required: false\\\\\\\\n schema: *ref_0\\\\\\\\n - in: query\\\\\\\\n name: userID\\\\\\\\n description: User ID\\\\\\\\n required: false\\\\\\\\n schema: *ref_2\\\\\\\\n '/namespace/{namespaceID}/attachment/{kind}/{attachmentID}/original/{name}':\\\\\\\\n get:\\\\\\\\n tags:\\\\\\\\n - Attachments\\\\\\\\n summary: Serves attached file\\\\\\\\n responses:\\\\\\\\n '200':\\\\\\\\n description: OK\\\\\\\\n parameters:\\\\\\\\n - in: path\\\\\\\\n name: kind\\\\\\\\n description: Attachment kind\\\\\\\\n required: true\\\\\\\\n schema: *ref_0\\\\\\\\n - in: path\\\\\\\\n name: namespaceID\\\\\\\\n description: Namespace ID\\\\\\\\n required: true\\\\\\\\n schema: *ref_2\\\\\\\\n - in: path\\\\\\\\n name: attachmentID\\\\\\\\n description: Attachment ID\\\\\\\\n required: true\\\\\\\\n schema: *ref_2\\\\\\\\n - in: path\\\\\\\\n name: name\\\\\\\\n description: File name\\\\\\\\n required: true\\\\\\\\n schema: *ref_0\\\\\\\\n - in: query\\\\\\\\n name: sign\\\\\\\\n description: Signature\\\\\\\\n required: false\\\\\\\\n schema: *ref_0\\\\\\\\n - in: query\\\\\\\\n name: userID\\\\\\\\n description: User ID\\\\\\\\n required: false\\\\\\\\n schema: *ref_2\\\\\\\\n - in: query\\\\\\\\n name: download\\\\\\\\n description: Force file download\\\\\\\\n required: false\\\\\\\\n schema: &ref_30\\\\\\\\n type: boolean\\\\\\\\n '/namespace/{namespaceID}/attachment/{kind}/{attachmentID}/preview.{ext}':\\\\\\\\n get:\\\\\\\\n tags:\\\\\\\\n - Attachments\\\\\\\\n summary: Serves preview of an attached file\\\\\\\\n responses:\\\\\\\\n '200':\\\\\\\\n description: OK\\\\\\\\n parameters:\\\\\\\\n - in: path\\\\\\\\n name: kind\\\\\\\\n description: Attachment kind\\\\\\\\n required: true\\\\\\\\n schema: *ref_0\\\\\\\\n - in: path\\\\\\\\n name: namespaceID\\\\\\\\n description: Namespace ID\\\\\\\\n required: true\\\\\\\\n schema: *ref_2\\\\\\\\n - in: path\\\\\\\\n name: attachmentID\\\\\\\\n description: Attachment ID\\\\\\\\n required: true\\\\\\\\n schema: *ref_2\\\\\\\\n - in: path\\\\\\\\n name: ext\\\\\\\\n description: Preview extension/format\\\\\\\\n required: true\\\\\\\\n schema: *ref_0\\\\\\\\n - in: query\\\\\\\\n name: sign\\\\\\\\n description: Signature\\\\\\\\n required: false\\\\\\\\n schema: *ref_0\\\\\\\\n - in: query\\\\\\\\n name: userID\\\\\\\\n description: User ID\\\\\\\\n required: false\\\\\\\\n schema: *ref_2\\\\\\\\n /permissions/:\\\\\\\\n get:\\\\\\\\n tags:\\\\\\\\n - Permissions\\\\\\\\n summary: Retrieve defined permissions\\\\\\\\n responses:\\\\\\\\n '200':\\\\\\\\n description: OK\\\\\\\\n /permissions/effective:\\\\\\\\n get:\\\\\\\\n tags:\\\\\\\\n - Permissions\\\\\\\\n summary: Effective rules for current user\\\\\\\\n responses:\\\\\\\\n '200':\\\\\\\\n description: OK\\\\\\\\n parameters:\\\\\\\\n - in: query\\\\\\\\n name: resource\\\\\\\\n description: Show only rules for a specific resource\\\\\\\\n required: false\\\\\\\\n schema: *ref_0\\\\\\\\n '/permissions/{roleID}/rules':\\\\\\\\n get:\\\\\\\\n tags:\\\\\\\\n - Permissions\\\\\\\\n summary: Retrieve role permissions\\\\\\\\n responses:\\\\\\\\n '200':\\\\\\\\n description: OK\\\\\\\\n parameters:\\\\\\\\n - in: path\\\\\\\\n name: roleID\\\\\\\\n description: Role ID\\\\\\\\n required: true\\\\\\\\n schema: *ref_2\\\\\\\\n delete:\\\\\\\\n tags:\\\\\\\\n - Permissions\\\\\\\\n summary: Remove all defined role permissions\\\\\\\\n responses:\\\\\\\\n '200':\\\\\\\\n description: OK\\\\\\\\n parameters:\\\\\\\\n - in: path\\\\\\\\n name: roleID\\\\\\\\n description: Role ID\\\\\\\\n required: true\\\\\\\\n schema: *ref_2\\\\\\\\n patch:\\\\\\\\n tags:\\\\\\\\n - Permissions\\\\\\\\n summary: Update permission settings\\\\\\\\n responses:\\\\\\\\n '200':\\\\\\\\n description: OK\\\\\\\\n parameters:\\\\\\\\n - in: path\\\\\\\\n name: roleID\\\\\\\\n description: Role ID\\\\\\\\n required: true\\\\\\\\n schema: *ref_2\\\\\\\\n requestBody:\\\\\\\\n content:\\\\\\\\n application/json:\\\\\\\\n schema:\\\\\\\\n type: object\\\\\\\\n properties: &ref_29\\\\\\\\n rules:\\\\\\\\n type: array\\\\\\\\n items:\\\\\\\\n type: object\\\\\\\\n properties:\\\\\\\\n roleID:\\\\\\\\n type: string\\\\\\\\n format: uuid\\\\\\\\n resource:\\\\\\\\n type: string\\\\\\\\n operation:\\\\\\\\n type: string\\\\\\\\n access:\\\\\\\\n type: string\\\\\\\\n description: List of permission rules to set\\\\\\\\n required:\\\\\\\\n - rules\\\\\\\\n application/x-www-form-urlencoded:\\\\\\\\n schema:\\\\\\\\n type: object\\\\\\\\n properties: *ref_29\\\\\\\\n /automation/:\\\\\\\\n get:\\\\\\\\n tags:\\\\\\\\n - Compose automation scripts\\\\\\\\n summary: List all available automation scripts for compose resources\\\\\\\\n responses:\\\\\\\\n '200':\\\\\\\\n description: OK\\\\\\\\n parameters:\\\\\\\\n - in: query\\\\\\\\n name: resourceTypePrefixes\\\\\\\\n description: Filter by resource prefix\\\\\\\\n required: false\\\\\\\\n schema:\\\\\\\\n type: array\\\\\\\\n items: *ref_0\\\\\\\\n - in: query\\\\\\\\n name: resourceTypes\\\\\\\\n description: Filter by resource type\\\\\\\\n required: false\\\\\\\\n schema:\\\\\\\\n type: array\\\\\\\\n items: *ref_0\\\\\\\\n - in: query\\\\\\\\n name: eventTypes\\\\\\\\n description: Filter by event type\\\\\\\\n required: false\\\\\\\\n schema:\\\\\\\\n type: array\\\\\\\\n items: *ref_0\\\\\\\\n - in: query\\\\\\\\n name: excludeInvalid\\\\\\\\n description: Exclude scripts that can not be used (errors)\\\\\\\\n required: false\\\\\\\\n schema: *ref_30\\\\\\\\n - in: query\\\\\\\\n name: excludeClientScripts\\\\\\\\n description: Do not include client scripts\\\\\\\\n required: false\\\\\\\\n schema: *ref_30\\\\\\\\n - in: query\\\\\\\\n name: excludeServerScripts\\\\\\\\n description: Do not include server scripts\\\\\\\\n required: false\\\\\\\\n schema: *ref_30\\\\\\\\n '/automation/{bundle}-{type}.{ext}':\\\\\\\\n get:\\\\\\\\n tags:\\\\\\\\n - Compose automation scripts\\\\\\\\n summary: Serves client scripts bundle\\\\\\\\n responses:\\\\\\\\n '200':\\\\\\\\n description: OK\\\\\\\\n parameters:\\\\\\\\n - in: path\\\\\\\\n name: bundle\\\\\\\\n description: Name of the bundle\\\\\\\\n required: true\\\\\\\\n schema: *ref_0\\\\\\\\n - in: path\\\\\\\\n name: type\\\\\\\\n description: Bundle type\\\\\\\\n required: true\\\\\\\\n schema: *ref_0\\\\\\\\n - in: path\\\\\\\\n name: ext\\\\\\\\n description: Bundle extension\\\\\\\\n required: true\\\\\\\\n schema: *ref_0\\\\\\\\n /automation/trigger:\\\\\\\\n post:\\\\\\\\n tags:\\\\\\\\n - Compose automation scripts\\\\\\\\n summary: Triggers execution of a specific script on a system service level\\\\\\\\n responses:\\\\\\\\n '200':\\\\\\\\n description: OK\\\\\\\\n requestBody:\\\\\\\\n content:\\\\\\\\n application/json:\\\\\\\\n schema:\\\\\\\\n type: object\\\\\\\\n properties: &ref_31\\\\\\\\n script:\\\\\\\\n type: string\\\\\\\\n description: Script to execute\\\\\\\\n required:\\\\\\\\n - script\\\\\\\\n application/x-www-form-urlencoded:\\\\\\\\n schema:\\\\\\\\n type: object\\\\\\\\n properties: *ref_31\\\\\\\\nPK\\\\\\\\x07\\\\\\\\x08\\\\\\\\xf4\\\\\\\\xc4\\\\\\\\xa2\\\\\\\\x1d\\\\\\\\xdb\\\\\\\\xc9\\\\\\\\x00\\\\\\\\x00\\\\\\\\xdb\\\\\\\\xc9\\\\\\\\x00\\\\\\\\x00PK\\\\\\\\x03\\\\\\\\x04\\\\\\\\x14\\\\\\\\x00\\\\\\\\x08\\\\\\\\x00\\\\\\\\x00\\\\\\\\x00\\\\\\\\x00\\\\\\\\x00!(\\\\\\\\x00\\\\\\\\x00\\\\\\\\x00\\\\\\\\x00\\\\\\\\x00\\\\\\\\x00\\\\\\\\x00\\\\\\\\x00\\\\\\\\x00\\\\\\\\x00\\\\\\\\x00\\\\\\\\x00\\\\\\\\n\\\\\\\\x00 \\\\\\\\x00index.htmlUT\\\\\\\\x05\\\\\\\\x00\\\\\\\\x01\\\\\\\\x80Cm8<!-- HTML for static distribution bundle build -->\\\\\\\\n<!DOCTYPE html>\\\\\\\\n<html lang=\\\\\\\\\\\\\\\"en\\\\\\\\\\\\\\\">\\\\\\\\n <head>\\\\\\\\n <meta charset=\\\\\\\\\\\\\\\"UTF-8\\\\\\\\\\\\\\\">\\\\\\\\n <title>Corteza Server REST API Documentation</title>\\\\\\\\n <link rel=\\\\\\\\\\\\\\\"stylesheet\\\\\\\\\\\\\\\" type=\\\\\\\\\\\\\\\"text/css\\\\\\\\\\\\\\\" href=\\\\\\\\\\\\\\\"https://unpkg.com/swagger-ui-dist@3/swagger-ui.css\\\\\\\\\\\\\\\" >\\\\\\\\n <link rel=\\\\\\\\\\\\\\\"icon\\\\\\\\\\\\\\\" type=\\\\\\\\\\\\\\\"image/png\\\\\\\\\\\\\\\" href=\\\\\\\\\\\\\\\"https://unpkg.com/swagger-ui-dist@3/favicon-32x32.png\\\\\\\\\\\\\\\" sizes=\\\\\\\\\\\\\\\"32x32\\\\\\\\\\\\\\\" />\\\\\\\\n <link rel=\\\\\\\\\\\\\\\"icon\\\\\\\\\\\\\\\" type=\\\\\\\\\\\\\\\"image/png\\\\\\\\\\\\\\\" href=\\\\\\\\\\\\\\\"https://unpkg.com/swagger-ui-dist@3/favicon-16x16.png\\\\\\\\\\\\\\\" sizes=\\\\\\\\\\\\\\\"16x16\\\\\\\\\\\\\\\" />\\\\\\\\n <style>\\\\\\\\n html\\\\\\\\n {\\\\\\\\n box-sizing: border-box;\\\\\\\\n overflow: -moz-scrollbars-vertical;\\\\\\\\n overflow-y: scroll;\\\\\\\\n }\\\\\\\\n\\\\\\\\n *,\\\\\\\\n *:before,\\\\\\\\n *:after\\\\\\\\n {\\\\\\\\n box-sizing: inherit;\\\\\\\\n }\\\\\\\\n\\\\\\\\n body\\\\\\\\n {\\\\\\\\n margin:0;\\\\\\\\n background: #fafafa;\\\\\\\\n }\\\\\\\\n </style>\\\\\\\\n </head>\\\\\\\\n\\\\\\\\n <body>\\\\\\\\n <div id=\\\\\\\\\\\\\\\"swagger-ui\\\\\\\\\\\\\\\"></div>\\\\\\\\n <script src=\\\\\\\\\\\\\\\"https://unpkg.com/swagger-ui-dist@3/swagger-ui-bundle.js\\\\\\\\\\\\\\\" charset=\\\\\\\\\\\\\\\"UTF-8\\\\\\\\\\\\\\\"></script>\\\\\\\\n <script src=\\\\\\\\\\\\\\\"https://unpkg.com/swagger-ui-dist@3/swagger-ui-standalone-preset.js\\\\\\\\\\\\\\\" charset=\\\\\\\\\\\\\\\"UTF-8\\\\\\\\\\\\\\\"></script>\\\\\\\\n\\\\\\\\n <script>\\\\\\\\n window.onload = function() {\\\\\\\\n // https://swagger.io/docs/open-source-tools/swagger-ui/usage/configuration/\\\\\\\\n window.ui = SwaggerUIBundle({\\\\\\\\n urls: [\\\\\\\\n { url: \\\\\\\\\\\\\\\"/docs/system.yaml\\\\\\\\\\\\\\\", name: 'System' },\\\\\\\\n { url: \\\\\\\\\\\\\\\"/docs/compose.yaml\\\\\\\\\\\\\\\", name: 'Compose' },\\\\\\\\n { url: \\\\\\\\\\\\\\\"/docs/messaging.yaml\\\\\\\\\\\\\\\", name: 'Messaging' },\\\\\\\\n ],\\\\\\\\n dom_id: '#swagger-ui',\\\\\\\\n deepLinking: true,\\\\\\\\n presets: [\\\\\\\\n SwaggerUIBundle.presets.apis,\\\\\\\\n SwaggerUIStandalonePreset\\\\\\\\n ],\\\\\\\\n plugins: [\\\\\\\\n SwaggerUIBundle.plugins.DownloadUrl\\\\\\\\n ],\\\\\\\\n layout: \\\\\\\\\\\\\\\"StandaloneLayout\\\\\\\\\\\\\\\",\\\\\\\\n\\\\\\\\n supportedSubmitMethods: [],\\\\\\\\n })\\\\\\\\n }\\\\\\\\n </script>\\\\\\\\n </body>\\\\\\\\n</html>\\\\\\\\nPK\\\\\\\\x07\\\\\\\\x08;\\\\\\\\xaaT,B\\\\\\\\x07\\\\\\\\x00\\\\\\\\x00B\\\\\\\\x07\\\\\\\\x00\\\\\\\\x00PK\\\\\\\\x03\\\\\\\\x04\\\\\\\\x14\\\\\\\\x00\\\\\\\\x08\\\\\\\\x00\\\\\\\\x00\\\\\\\\x00\\\\\\\\x00\\\\\\\\x00!(\\\\\\\\x00\\\\\\\\x00\\\\\\\\x00\\\\\\\\x00\\\\\\\\x00\\\\\\\\x00\\\\\\\\x00\\\\\\\\x00\\\\\\\\x00\\\\\\\\x00\\\\\\\\x00\\\\\\\\x00\\\\\\\\x0e\\\\\\\\x00 \\\\\\\\x00messaging.yamlUT\\\\\\\\x05\\\\\\\\x00\\\\\\\\x01\\\\\\\\x80Cm8openapi: 3.0.0\\\\\\\\ninfo:\\\\\\\\n title: Corteza messaging API\\\\\\\\n description: Corteza messaging REST API definition\\\\\\\\n version: 2020.9\\\\\\\\n contact:\\\\\\\\n email: info@cortezaproject.org\\\\\\\\n license:\\\\\\\\n name: Apache 2.0\\\\\\\\n url: 'http://www.apache.org/licenses/LICENSE-2.0.html'\\\\\\\\npaths:\\\\\\\\n /commands/:\\\\\\\\n get:\\\\\\\\n tags:\\\\\\\\n - Commands\\\\\\\\n summary: List of available commands\\\\\\\\n responses:\\\\\\\\n '200':\\\\\\\\n description: OK\\\\\\\\n /status/:\\\\\\\\n get:\\\\\\\\n tags:\\\\\\\\n - Status\\\\\\\\n summary: See all current statuses\\\\\\\\n responses:\\\\\\\\n '200':\\\\\\\\n description: OK\\\\\\\\n post:\\\\\\\\n tags:\\\\\\\\n - Status\\\\\\\\n summary: Set user's status\\\\\\\\n responses:\\\\\\\\n '200':\\\\\\\\n description: OK\\\\\\\\n requestBody:\\\\\\\\n content:\\\\\\\\n application/json:\\\\\\\\n schema:\\\\\\\\n type: object\\\\\\\\n properties: &ref_0\\\\\\\\n icon:\\\\\\\\n type: string\\\\\\\\n description: Status icon\\\\\\\\n message:\\\\\\\\n type: string\\\\\\\\n description: Status message\\\\\\\\n expires:\\\\\\\\n type: string\\\\\\\\n description: >-\\\\\\\\n Clear status when it expires (eg: when-active, afternoon,\\\\\\\\n tomorrow 1h, 30m, 1 PM, 2019-05-20)\\\\\\\\n application/x-www-form-urlencoded:\\\\\\\\n schema:\\\\\\\\n type: object\\\\\\\\n properties: *ref_0\\\\\\\\n delete:\\\\\\\\n tags:\\\\\\\\n - Status\\\\\\\\n summary: Clear status\\\\\\\\n responses:\\\\\\\\n '200':\\\\\\\\n description: OK\\\\\\\\n /activity/:\\\\\\\\n post:\\\\\\\\n tags:\\\\\\\\n - User activity\\\\\\\\n summary: >-\\\\\\\\n Sends user's activity to all subscribers; globally or per\\\\\\\\n channel/message.\\\\\\\\n responses:\\\\\\\\n '200':\\\\\\\\n description: OK\\\\\\\\n requestBody:\\\\\\\\n content:\\\\\\\\n application/json:\\\\\\\\n schema:\\\\\\\\n type: object\\\\\\\\n properties: &ref_1\\\\\\\\n channelID:\\\\\\\\n type: string\\\\\\\\n description: >-\\\\\\\\n Channel ID, if set, activity will be send only to subscribed\\\\\\\\n users\\\\\\\\n messageID:\\\\\\\\n type: string\\\\\\\\n description: 'Message ID, if set, channelID must be set as well'\\\\\\\\n kind:\\\\\\\\n type: string\\\\\\\\n description: Arbitrary string\\\\\\\\n required:\\\\\\\\n - kind\\\\\\\\n application/x-www-form-urlencoded:\\\\\\\\n schema:\\\\\\\\n type: object\\\\\\\\n properties: *ref_1\\\\\\\\n /channels/:\\\\\\\\n get:\\\\\\\\n tags:\\\\\\\\n - Channels\\\\\\\\n summary: List channels\\\\\\\\n responses:\\\\\\\\n '200':\\\\\\\\n description: OK\\\\\\\\n parameters:\\\\\\\\n - in: query\\\\\\\\n name: query\\\\\\\\n description: Search query\\\\\\\\n required: false\\\\\\\\n schema: &ref_2\\\\\\\\n type: string\\\\\\\\n post:\\\\\\\\n tags:\\\\\\\\n - Channels\\\\\\\\n summary: Create new channel\\\\\\\\n responses:\\\\\\\\n '200':\\\\\\\\n description: OK\\\\\\\\n requestBody:\\\\\\\\n content:\\\\\\\\n application/json:\\\\\\\\n schema:\\\\\\\\n type: object\\\\\\\\n properties: &ref_3\\\\\\\\n name:\\\\\\\\n type: string\\\\\\\\n description: Name of Channel\\\\\\\\n topic:\\\\\\\\n type: string\\\\\\\\n description: Subject of Channel\\\\\\\\n type:\\\\\\\\n type: string\\\\\\\\n description: Channel type\\\\\\\\n membershipPolicy:\\\\\\\\n type: string\\\\\\\\n description: 'Membership policy (eg: featured, forced)?'\\\\\\\\n members:\\\\\\\\n type: array\\\\\\\\n items: *ref_2\\\\\\\\n description: Initial members of the channel\\\\\\\\n application/x-www-form-urlencoded:\\\\\\\\n schema:\\\\\\\\n type: object\\\\\\\\n properties: *ref_3\\\\\\\\n '/channels/{channelID}':\\\\\\\\n put:\\\\\\\\n tags:\\\\\\\\n - Channels\\\\\\\\n summary: Update channel details\\\\\\\\n responses:\\\\\\\\n '200':\\\\\\\\n description: OK\\\\\\\\n parameters:\\\\\\\\n - in: path\\\\\\\\n name: channelID\\\\\\\\n description: Channel ID\\\\\\\\n required: true\\\\\\\\n schema: &ref_5\\\\\\\\n type: string\\\\\\\\n requestBody:\\\\\\\\n content:\\\\\\\\n application/json:\\\\\\\\n schema:\\\\\\\\n type: object\\\\\\\\n properties: &ref_4\\\\\\\\n name:\\\\\\\\n type: string\\\\\\\\n description: Name of Channel\\\\\\\\n topic:\\\\\\\\n type: string\\\\\\\\n description: Subject of Channel\\\\\\\\n membershipPolicy:\\\\\\\\n type: string\\\\\\\\n description: 'Membership policy (eg: featured, forced)?'\\\\\\\\n type:\\\\\\\\n type: string\\\\\\\\n description: Channel type\\\\\\\\n organisationID:\\\\\\\\n type: string\\\\\\\\n description: Move channel to different organisation\\\\\\\\n application/x-www-form-urlencoded:\\\\\\\\n schema:\\\\\\\\n type: object\\\\\\\\n properties: *ref_4\\\\\\\\n get:\\\\\\\\n tags:\\\\\\\\n - Channels\\\\\\\\n summary: Read channel details\\\\\\\\n responses:\\\\\\\\n '200':\\\\\\\\n description: OK\\\\\\\\n parameters:\\\\\\\\n - in: path\\\\\\\\n name: channelID\\\\\\\\n description: Channel ID\\\\\\\\n required: true\\\\\\\\n schema: *ref_5\\\\\\\\n '/channels/{channelID}/state':\\\\\\\\n put:\\\\\\\\n tags:\\\\\\\\n - Channels\\\\\\\\n summary: Update channel state\\\\\\\\n responses:\\\\\\\\n '200':\\\\\\\\n description: OK\\\\\\\\n parameters:\\\\\\\\n - in: path\\\\\\\\n name: channelID\\\\\\\\n description: Channel ID\\\\\\\\n required: true\\\\\\\\n schema: *ref_5\\\\\\\\n requestBody:\\\\\\\\n content:\\\\\\\\n application/json:\\\\\\\\n schema:\\\\\\\\n type: object\\\\\\\\n properties: &ref_6\\\\\\\\n state:\\\\\\\\n type: string\\\\\\\\n description: 'Valid values: delete, undelete, archive, unarchive'\\\\\\\\n required:\\\\\\\\n - state\\\\\\\\n application/x-www-form-urlencoded:\\\\\\\\n schema:\\\\\\\\n type: object\\\\\\\\n properties: *ref_6\\\\\\\\n '/channels/{channelID}/flag':\\\\\\\\n put:\\\\\\\\n tags:\\\\\\\\n - Channels\\\\\\\\n summary: Update channel membership flag\\\\\\\\n responses:\\\\\\\\n '200':\\\\\\\\n description: OK\\\\\\\\n parameters:\\\\\\\\n - in: path\\\\\\\\n name: channelID\\\\\\\\n description: Channel ID\\\\\\\\n required: true\\\\\\\\n schema: *ref_5\\\\\\\\n requestBody:\\\\\\\\n content:\\\\\\\\n application/json:\\\\\\\\n schema:\\\\\\\\n type: object\\\\\\\\n properties: &ref_7\\\\\\\\n flag:\\\\\\\\n type: string\\\\\\\\n description: 'Valid values: pinned, hidden, ignored'\\\\\\\\n required:\\\\\\\\n - flag\\\\\\\\n application/x-www-form-urlencoded:\\\\\\\\n schema:\\\\\\\\n type: object\\\\\\\\n properties: *ref_7\\\\\\\\n delete:\\\\\\\\n tags:\\\\\\\\n - Channels\\\\\\\\n summary: Remove channel membership flag\\\\\\\\n responses:\\\\\\\\n '200':\\\\\\\\n description: OK\\\\\\\\n parameters:\\\\\\\\n - in: path\\\\\\\\n name: channelID\\\\\\\\n description: Channel ID\\\\\\\\n required: true\\\\\\\\n schema: *ref_5\\\\\\\\n '/channels/{channelID}/members':\\\\\\\\n get:\\\\\\\\n tags:\\\\\\\\n - Channels\\\\\\\\n summary: List channel members\\\\\\\\n responses:\\\\\\\\n '200':\\\\\\\\n description: OK\\\\\\\\n parameters:\\\\\\\\n - in: path\\\\\\\\n name: channelID\\\\\\\\n description: Channel ID\\\\\\\\n required: true\\\\\\\\n schema: *ref_5\\\\\\\\n '/channels/{channelID}/members/{userID}':\\\\\\\\n put:\\\\\\\\n tags:\\\\\\\\n - Channels\\\\\\\\n summary: Join channel\\\\\\\\n responses:\\\\\\\\n '200':\\\\\\\\n description: OK\\\\\\\\n parameters:\\\\\\\\n - in: path\\\\\\\\n name: channelID\\\\\\\\n description: Channel ID\\\\\\\\n required: true\\\\\\\\n schema: *ref_5\\\\\\\\n - in: path\\\\\\\\n name: userID\\\\\\\\n description: Member ID\\\\\\\\n required: true\\\\\\\\n schema: *ref_5\\\\\\\\n delete:\\\\\\\\n tags:\\\\\\\\n - Channels\\\\\\\\n summary: Remove member from channel\\\\\\\\n responses:\\\\\\\\n '200':\\\\\\\\n description: OK\\\\\\\\n parameters:\\\\\\\\n - in: path\\\\\\\\n name: channelID\\\\\\\\n description: Channel ID\\\\\\\\n required: true\\\\\\\\n schema: *ref_5\\\\\\\\n - in: path\\\\\\\\n name: userID\\\\\\\\n description: Member ID\\\\\\\\n required: true\\\\\\\\n schema: *ref_5\\\\\\\\n '/channels/{channelID}/invite':\\\\\\\\n post:\\\\\\\\n tags:\\\\\\\\n - Channels\\\\\\\\n summary: Join channel\\\\\\\\n responses:\\\\\\\\n '200':\\\\\\\\n description: OK\\\\\\\\n parameters:\\\\\\\\n - in: path\\\\\\\\n name: channelID\\\\\\\\n description: Channel ID\\\\\\\\n required: true\\\\\\\\n schema: *ref_5\\\\\\\\n requestBody:\\\\\\\\n content:\\\\\\\\n application/json:\\\\\\\\n schema:\\\\\\\\n type: object\\\\\\\\n properties: &ref_8\\\\\\\\n userID:\\\\\\\\n type: array\\\\\\\\n items: *ref_2\\\\\\\\n description: User ID\\\\\\\\n application/x-www-form-urlencoded:\\\\\\\\n schema:\\\\\\\\n type: object\\\\\\\\n properties: *ref_8\\\\\\\\n '/channels/{channelID}/attach':\\\\\\\\n post:\\\\\\\\n tags:\\\\\\\\n - Channels\\\\\\\\n summary: Attach file to channel\\\\\\\\n responses:\\\\\\\\n '200':\\\\\\\\n description: OK\\\\\\\\n parameters:\\\\\\\\n - in: path\\\\\\\\n name: channelID\\\\\\\\n description: Channel ID\\\\\\\\n required: true\\\\\\\\n schema: *ref_5\\\\\\\\n requestBody:\\\\\\\\n content:\\\\\\\\n application/json:\\\\\\\\n schema:\\\\\\\\n type: object\\\\\\\\n properties: &ref_9\\\\\\\\n replyTo:\\\\\\\\n type: string\\\\\\\\n description: Upload as a reply\\\\\\\\n upload:\\\\\\\\n type: string\\\\\\\\n format: binary\\\\\\\\n description: File to upload\\\\\\\\n required:\\\\\\\\n - upload\\\\\\\\n application/x-www-form-urlencoded:\\\\\\\\n schema:\\\\\\\\n type: object\\\\\\\\n properties: *ref_9\\\\\\\\n '/channels/{channelID}/messages/':\\\\\\\\n post:\\\\\\\\n tags:\\\\\\\\n - Messages\\\\\\\\n summary: Post new message to the channel\\\\\\\\n responses:\\\\\\\\n '200':\\\\\\\\n description: OK\\\\\\\\n requestBody:\\\\\\\\n content:\\\\\\\\n application/json:\\\\\\\\n schema:\\\\\\\\n type: object\\\\\\\\n properties: &ref_10\\\\\\\\n message:\\\\\\\\n type: string\\\\\\\\n description: Message contents (markdown)\\\\\\\\n required:\\\\\\\\n - message\\\\\\\\n application/x-www-form-urlencoded:\\\\\\\\n schema:\\\\\\\\n type: object\\\\\\\\n properties: *ref_10\\\\\\\\n parameters:\\\\\\\\n - in: path\\\\\\\\n name: channelID\\\\\\\\n description: Channel ID\\\\\\\\n required: true\\\\\\\\n schema: *ref_5\\\\\\\\n '/channels/{channelID}/messages/command/{command}/exec':\\\\\\\\n post:\\\\\\\\n tags:\\\\\\\\n - Messages\\\\\\\\n summary: Execute command\\\\\\\\n responses:\\\\\\\\n '200':\\\\\\\\n description: OK\\\\\\\\n parameters:\\\\\\\\n - in: path\\\\\\\\n name: channelID\\\\\\\\n description: Channel ID\\\\\\\\n required: true\\\\\\\\n schema: *ref_5\\\\\\\\n - in: path\\\\\\\\n name: command\\\\\\\\n description: Command to be executed\\\\\\\\n required: true\\\\\\\\n schema: *ref_2\\\\\\\\n requestBody:\\\\\\\\n content:\\\\\\\\n application/json:\\\\\\\\n schema:\\\\\\\\n type: object\\\\\\\\n properties: &ref_11\\\\\\\\n input:\\\\\\\\n type: string\\\\\\\\n description: Arbitrary command input\\\\\\\\n params:\\\\\\\\n type: array\\\\\\\\n items: *ref_2\\\\\\\\n description: Command parameters\\\\\\\\n application/x-www-form-urlencoded:\\\\\\\\n schema:\\\\\\\\n type: object\\\\\\\\n properties: *ref_11\\\\\\\\n '/channels/{channelID}/messages/mark-as-read':\\\\\\\\n get:\\\\\\\\n tags:\\\\\\\\n - Messages\\\\\\\\n summary: Manages read/unread messages in a channel or a thread\\\\\\\\n responses:\\\\\\\\n '200':\\\\\\\\n description: OK\\\\\\\\n parameters:\\\\\\\\n - in: path\\\\\\\\n name: channelID\\\\\\\\n description: Channel ID\\\\\\\\n required: true\\\\\\\\n schema: *ref_5\\\\\\\\n - in: query\\\\\\\\n name: threadID\\\\\\\\n description: 'ID of thread (messageID) '\\\\\\\\n required: false\\\\\\\\n schema: *ref_5\\\\\\\\n - in: query\\\\\\\\n name: lastReadMessageID\\\\\\\\n description: ID of the last read message\\\\\\\\n required: false\\\\\\\\n schema: *ref_5\\\\\\\\n '/channels/{channelID}/messages/{messageID}':\\\\\\\\n put:\\\\\\\\n tags:\\\\\\\\n - Messages\\\\\\\\n summary: Edit existing message\\\\\\\\n responses:\\\\\\\\n '200':\\\\\\\\n description: OK\\\\\\\\n parameters:\\\\\\\\n - in: path\\\\\\\\n name: channelID\\\\\\\\n description: Channel ID\\\\\\\\n required: true\\\\\\\\n schema: *ref_5\\\\\\\\n - in: path\\\\\\\\n name: messageID\\\\\\\\n description: Message ID\\\\\\\\n required: true\\\\\\\\n schema: *ref_5\\\\\\\\n requestBody:\\\\\\\\n content:\\\\\\\\n application/json:\\\\\\\\n schema:\\\\\\\\n type: object\\\\\\\\n properties: &ref_12\\\\\\\\n message:\\\\\\\\n type: string\\\\\\\\n description: Message contents (markdown)\\\\\\\\n required:\\\\\\\\n - message\\\\\\\\n application/x-www-form-urlencoded:\\\\\\\\n schema:\\\\\\\\n type: object\\\\\\\\n properties: *ref_12\\\\\\\\n delete:\\\\\\\\n tags:\\\\\\\\n - Messages\\\\\\\\n summary: Delete existing message\\\\\\\\n responses:\\\\\\\\n '200':\\\\\\\\n description: OK\\\\\\\\n parameters:\\\\\\\\n - in: path\\\\\\\\n name: channelID\\\\\\\\n description: Channel ID\\\\\\\\n required: true\\\\\\\\n schema: *ref_5\\\\\\\\n - in: path\\\\\\\\n name: messageID\\\\\\\\n description: Message ID\\\\\\\\n required: true\\\\\\\\n schema: *ref_5\\\\\\\\n '/channels/{channelID}/messages/{messageID}/replies':\\\\\\\\n post:\\\\\\\\n tags:\\\\\\\\n - Messages\\\\\\\\n summary: Reply to a message\\\\\\\\n responses:\\\\\\\\n '200':\\\\\\\\n description: OK\\\\\\\\n parameters:\\\\\\\\n - in: path\\\\\\\\n name: channelID\\\\\\\\n description: Channel ID\\\\\\\\n required: true\\\\\\\\n schema: *ref_5\\\\\\\\n - in: path\\\\\\\\n name: messageID\\\\\\\\n description: Message ID\\\\\\\\n required: true\\\\\\\\n schema: *ref_5\\\\\\\\n requestBody:\\\\\\\\n content:\\\\\\\\n application/json:\\\\\\\\n schema:\\\\\\\\n type: object\\\\\\\\n properties: &ref_13\\\\\\\\n message:\\\\\\\\n type: string\\\\\\\\n description: Message contents (markdown)\\\\\\\\n required:\\\\\\\\n - message\\\\\\\\n application/x-www-form-urlencoded:\\\\\\\\n schema:\\\\\\\\n type: object\\\\\\\\n properties: *ref_13\\\\\\\\n '/channels/{channelID}/messages/{messageID}/pin':\\\\\\\\n post:\\\\\\\\n tags:\\\\\\\\n - Messages\\\\\\\\n summary: Pin message to channel (public bookmark)\\\\\\\\n responses:\\\\\\\\n '200':\\\\\\\\n description: OK\\\\\\\\n parameters:\\\\\\\\n - in: path\\\\\\\\n name: channelID\\\\\\\\n description: Channel ID\\\\\\\\n required: true\\\\\\\\n schema: *ref_5\\\\\\\\n - in: path\\\\\\\\n name: messageID\\\\\\\\n description: Message ID\\\\\\\\n required: true\\\\\\\\n schema: *ref_5\\\\\\\\n delete:\\\\\\\\n tags:\\\\\\\\n - Messages\\\\\\\\n summary: Pin message to channel (public bookmark)\\\\\\\\n responses:\\\\\\\\n '200':\\\\\\\\n description: OK\\\\\\\\n parameters:\\\\\\\\n - in: path\\\\\\\\n name: channelID\\\\\\\\n description: Channel ID\\\\\\\\n required: true\\\\\\\\n schema: *ref_5\\\\\\\\n - in: path\\\\\\\\n name: messageID\\\\\\\\n description: Message ID\\\\\\\\n required: true\\\\\\\\n schema: *ref_5\\\\\\\\n '/channels/{channelID}/messages/{messageID}/bookmark':\\\\\\\\n post:\\\\\\\\n tags:\\\\\\\\n - Messages\\\\\\\\n summary: Bookmark a message (private bookmark)\\\\\\\\n responses:\\\\\\\\n '200':\\\\\\\\n description: OK\\\\\\\\n parameters:\\\\\\\\n - in: path\\\\\\\\n name: channelID\\\\\\\\n description: Channel ID\\\\\\\\n required: true\\\\\\\\n schema: *ref_5\\\\\\\\n - in: path\\\\\\\\n name: messageID\\\\\\\\n description: Message ID\\\\\\\\n required: true\\\\\\\\n schema: *ref_5\\\\\\\\n delete:\\\\\\\\n tags:\\\\\\\\n - Messages\\\\\\\\n summary: Remove boomark from message (private bookmark)\\\\\\\\n responses:\\\\\\\\n '200':\\\\\\\\n description: OK\\\\\\\\n parameters:\\\\\\\\n - in: path\\\\\\\\n name: channelID\\\\\\\\n description: Channel ID\\\\\\\\n required: true\\\\\\\\n schema: *ref_5\\\\\\\\n - in: path\\\\\\\\n name: messageID\\\\\\\\n description: Message ID\\\\\\\\n required: true\\\\\\\\n schema: *ref_5\\\\\\\\n '/channels/{channelID}/messages/{messageID}/reaction/{reaction}':\\\\\\\\n post:\\\\\\\\n tags:\\\\\\\\n - Messages\\\\\\\\n summary: React to a message\\\\\\\\n responses:\\\\\\\\n '200':\\\\\\\\n description: OK\\\\\\\\n parameters:\\\\\\\\n - in: path\\\\\\\\n name: channelID\\\\\\\\n description: Channel ID\\\\\\\\n required: true\\\\\\\\n schema: *ref_5\\\\\\\\n - in: path\\\\\\\\n name: messageID\\\\\\\\n description: Message ID\\\\\\\\n required: true\\\\\\\\n schema: *ref_5\\\\\\\\n - in: path\\\\\\\\n name: reaction\\\\\\\\n description: Reaction\\\\\\\\n required: true\\\\\\\\n schema: *ref_2\\\\\\\\n delete:\\\\\\\\n tags:\\\\\\\\n - Messages\\\\\\\\n summary: Delete reaction from a message\\\\\\\\n responses:\\\\\\\\n '200':\\\\\\\\n description: OK\\\\\\\\n parameters:\\\\\\\\n - in: path\\\\\\\\n name: channelID\\\\\\\\n description: Channel ID\\\\\\\\n required: true\\\\\\\\n schema: *ref_5\\\\\\\\n - in: path\\\\\\\\n name: messageID\\\\\\\\n description: Message ID\\\\\\\\n required: true\\\\\\\\n schema: *ref_5\\\\\\\\n - in: path\\\\\\\\n name: reaction\\\\\\\\n description: Reaction\\\\\\\\n required: true\\\\\\\\n schema: *ref_2\\\\\\\\n '/attachment/{attachmentID}/original/{name}':\\\\\\\\n get:\\\\\\\\n tags:\\\\\\\\n - Attachments\\\\\\\\n summary: Serves attached file\\\\\\\\n responses:\\\\\\\\n '200':\\\\\\\\n description: OK\\\\\\\\n parameters:\\\\\\\\n - in: path\\\\\\\\n name: attachmentID\\\\\\\\n description: Attachment ID\\\\\\\\n required: true\\\\\\\\n schema: *ref_5\\\\\\\\n - in: path\\\\\\\\n name: name\\\\\\\\n description: File name\\\\\\\\n required: true\\\\\\\\n schema: *ref_2\\\\\\\\n - in: query\\\\\\\\n name: sign\\\\\\\\n description: Signature\\\\\\\\n required: true\\\\\\\\n schema: *ref_2\\\\\\\\n - in: query\\\\\\\\n name: userID\\\\\\\\n description: User ID\\\\\\\\n required: true\\\\\\\\n schema: *ref_5\\\\\\\\n - in: query\\\\\\\\n name: download\\\\\\\\n description: Force file download\\\\\\\\n required: false\\\\\\\\n schema: &ref_14\\\\\\\\n type: boolean\\\\\\\\n '/attachment/{attachmentID}/preview.{ext}':\\\\\\\\n get:\\\\\\\\n tags:\\\\\\\\n - Attachments\\\\\\\\n summary: Serves preview of an attached file\\\\\\\\n responses:\\\\\\\\n '200':\\\\\\\\n description: OK\\\\\\\\n parameters:\\\\\\\\n - in: path\\\\\\\\n name: attachmentID\\\\\\\\n description: Attachment ID\\\\\\\\n required: true\\\\\\\\n schema: *ref_5\\\\\\\\n - in: path\\\\\\\\n name: ext\\\\\\\\n description: Preview extension/format\\\\\\\\n required: true\\\\\\\\n schema: *ref_2\\\\\\\\n - in: query\\\\\\\\n name: sign\\\\\\\\n description: Signature\\\\\\\\n required: true\\\\\\\\n schema: *ref_2\\\\\\\\n - in: query\\\\\\\\n name: userID\\\\\\\\n description: User ID\\\\\\\\n required: true\\\\\\\\n schema: *ref_5\\\\\\\\n /search/messages:\\\\\\\\n get:\\\\\\\\n tags:\\\\\\\\n - Search entry point\\\\\\\\n summary: Search for messages\\\\\\\\n responses:\\\\\\\\n '200':\\\\\\\\n description: OK\\\\\\\\n parameters:\\\\\\\\n - in: query\\\\\\\\n name: query\\\\\\\\n description: Search query\\\\\\\\n required: false\\\\\\\\n schema: *ref_2\\\\\\\\n - in: query\\\\\\\\n name: channelID\\\\\\\\n description: Filter by channels\\\\\\\\n required: false\\\\\\\\n schema:\\\\\\\\n type: array\\\\\\\\n items: *ref_2\\\\\\\\n - in: query\\\\\\\\n name: afterMessageID\\\\\\\\n description: ID of the first message in the list (exclusive)\\\\\\\\n required: false\\\\\\\\n schema: *ref_5\\\\\\\\n - in: query\\\\\\\\n name: beforeMessageID\\\\\\\\n description: ID of the last message in the list (exclusive)\\\\\\\\n required: false\\\\\\\\n schema: *ref_5\\\\\\\\n - in: query\\\\\\\\n name: fromMessageID\\\\\\\\n description: ID of the first message in the list (inclusive)\\\\\\\\n required: false\\\\\\\\n schema: *ref_5\\\\\\\\n - in: query\\\\\\\\n name: toMessageID\\\\\\\\n description: ID of the last message the list (inclusive)\\\\\\\\n required: false\\\\\\\\n schema: *ref_5\\\\\\\\n - in: query\\\\\\\\n name: threadID\\\\\\\\n description: Filter by thread message ID\\\\\\\\n required: false\\\\\\\\n schema:\\\\\\\\n type: array\\\\\\\\n items: *ref_2\\\\\\\\n - in: query\\\\\\\\n name: userID\\\\\\\\n description: Filter by one or more user\\\\\\\\n required: false\\\\\\\\n schema:\\\\\\\\n type: array\\\\\\\\n items: *ref_2\\\\\\\\n - in: query\\\\\\\\n name: type\\\\\\\\n description: 'Filter by message type (text, inlineImage, attachment, ...)'\\\\\\\\n required: false\\\\\\\\n schema:\\\\\\\\n type: array\\\\\\\\n items: *ref_2\\\\\\\\n - in: query\\\\\\\\n name: pinnedOnly\\\\\\\\n description: Return only pinned messages\\\\\\\\n required: false\\\\\\\\n schema: *ref_14\\\\\\\\n - in: query\\\\\\\\n name: bookmarkedOnly\\\\\\\\n description: Only bookmarked messages\\\\\\\\n required: false\\\\\\\\n schema: *ref_14\\\\\\\\n - in: query\\\\\\\\n name: limit\\\\\\\\n description: Max number of messages\\\\\\\\n required: false\\\\\\\\n schema: &ref_15\\\\\\\\n type: string\\\\\\\\n /search/threads:\\\\\\\\n get:\\\\\\\\n tags:\\\\\\\\n - Search entry point\\\\\\\\n summary: Search for threads\\\\\\\\n responses:\\\\\\\\n '200':\\\\\\\\n description: OK\\\\\\\\n parameters:\\\\\\\\n - in: query\\\\\\\\n name: query\\\\\\\\n description: Search query\\\\\\\\n required: false\\\\\\\\n schema: *ref_2\\\\\\\\n - in: query\\\\\\\\n name: channelID\\\\\\\\n description: Filter by channels\\\\\\\\n required: false\\\\\\\\n schema:\\\\\\\\n type: array\\\\\\\\n items: *ref_2\\\\\\\\n - in: query\\\\\\\\n name: limit\\\\\\\\n description: Max number of messages\\\\\\\\n required: false\\\\\\\\n schema: *ref_15\\\\\\\\n /permissions/:\\\\\\\\n get:\\\\\\\\n tags:\\\\\\\\n - Permissions\\\\\\\\n summary: Retrieve defined permissions\\\\\\\\n responses:\\\\\\\\n '200':\\\\\\\\n description: OK\\\\\\\\n /permissions/effective:\\\\\\\\n get:\\\\\\\\n tags:\\\\\\\\n - Permissions\\\\\\\\n summary: Effective rules for current user\\\\\\\\n responses:\\\\\\\\n '200':\\\\\\\\n description: OK\\\\\\\\n parameters:\\\\\\\\n - in: query\\\\\\\\n name: resource\\\\\\\\n description: Show only rules for a specific resource\\\\\\\\n required: false\\\\\\\\n schema: *ref_2\\\\\\\\n '/permissions/{roleID}/rules':\\\\\\\\n get:\\\\\\\\n tags:\\\\\\\\n - Permissions\\\\\\\\n summary: Retrieve role permissions\\\\\\\\n responses:\\\\\\\\n '200':\\\\\\\\n description: OK\\\\\\\\n parameters:\\\\\\\\n - in: path\\\\\\\\n name: roleID\\\\\\\\n description: Role ID\\\\\\\\n required: true\\\\\\\\n schema: *ref_5\\\\\\\\n delete:\\\\\\\\n tags:\\\\\\\\n - Permissions\\\\\\\\n summary: Remove all defined role permissions\\\\\\\\n responses:\\\\\\\\n '200':\\\\\\\\n description: OK\\\\\\\\n parameters:\\\\\\\\n - in: path\\\\\\\\n name: roleID\\\\\\\\n description: Role ID\\\\\\\\n required: true\\\\\\\\n schema: *ref_5\\\\\\\\n patch:\\\\\\\\n tags:\\\\\\\\n - Permissions\\\\\\\\n summary: Update permission settings\\\\\\\\n responses:\\\\\\\\n '200':\\\\\\\\n description: OK\\\\\\\\n parameters:\\\\\\\\n - in: path\\\\\\\\n name: roleID\\\\\\\\n description: Role ID\\\\\\\\n required: true\\\\\\\\n schema: *ref_5\\\\\\\\n requestBody:\\\\\\\\n content:\\\\\\\\n application/json:\\\\\\\\n schema:\\\\\\\\n type: object\\\\\\\\n properties: &ref_16\\\\\\\\n rules:\\\\\\\\n type: array\\\\\\\\n items:\\\\\\\\n type: object\\\\\\\\n properties:\\\\\\\\n roleID:\\\\\\\\n type: string\\\\\\\\n format: uuid\\\\\\\\n resource:\\\\\\\\n type: string\\\\\\\\n operation:\\\\\\\\n type: string\\\\\\\\n access:\\\\\\\\n type: string\\\\\\\\n description: List of permission rules to set\\\\\\\\n required:\\\\\\\\n - rules\\\\\\\\n application/x-www-form-urlencoded:\\\\\\\\n schema:\\\\\\\\n type: object\\\\\\\\n properties: *ref_16\\\\\\\\nPK\\\\\\\\x07\\\\\\\\x08\\\\\\\\x83J.D\\\\\\\\x82^\\\\\\\\x00\\\\\\\\x00\\\\\\\\x82^\\\\\\\\x00\\\\\\\\x00PK\\\\\\\\x03\\\\\\\\x04\\\\\\\\x14\\\\\\\\x00\\\\\\\\x08\\\\\\\\x00\\\\\\\\x00\\\\\\\\x00\\\\\\\\x00\\\\\\\\x00!(\\\\\\\\x00\\\\\\\\x00\\\\\\\\x00\\\\\\\\x00\\\\\\\\x00\\\\\\\\x00\\\\\\\\x00\\\\\\\\x00\\\\\\\\x00\\\\\\\\x00\\\\\\\\x00\\\\\\\\x00\\\\\\\\x0b\\\\\\\\x00 \\\\\\\\x00system.yamlUT\\\\\\\\x05\\\\\\\\x00\\\\\\\\x01\\\\\\\\x80Cm8openapi: 3.0.0\\\\\\\\ninfo:\\\\\\\\n title: Corteza System API\\\\\\\\n description: Corteza System REST API definition\\\\\\\\n version: 2020.9\\\\\\\\n contact:\\\\\\\\n email: info@cortezaproject.org\\\\\\\\n license:\\\\\\\\n name: Apache 2.0\\\\\\\\n url: 'http://www.apache.org/licenses/LICENSE-2.0.html'\\\\\\\\npaths:\\\\\\\\n /auth/:\\\\\\\\n get:\\\\\\\\n tags:\\\\\\\\n - Authentication\\\\\\\\n summary: Returns auth settings\\\\\\\\n responses:\\\\\\\\n '200':\\\\\\\\n description: OK\\\\\\\\n /auth/check:\\\\\\\\n get:\\\\\\\\n tags:\\\\\\\\n - Authentication\\\\\\\\n summary: Check JWT token\\\\\\\\n responses:\\\\\\\\n '200':\\\\\\\\n description: OK\\\\\\\\n /auth/impersonate:\\\\\\\\n post:\\\\\\\\n tags:\\\\\\\\n - Authentication\\\\\\\\n summary: Impersonate a user\\\\\\\\n responses:\\\\\\\\n '200':\\\\\\\\n description: OK\\\\\\\\n requestBody:\\\\\\\\n content:\\\\\\\\n application/json:\\\\\\\\n schema:\\\\\\\\n type: object\\\\\\\\n properties: &ref_0\\\\\\\\n userID:\\\\\\\\n type: string\\\\\\\\n description: ID of the impersonated user\\\\\\\\n required:\\\\\\\\n - userID\\\\\\\\n application/x-www-form-urlencoded:\\\\\\\\n schema:\\\\\\\\n type: object\\\\\\\\n properties: *ref_0\\\\\\\\n /auth/exchange:\\\\\\\\n post:\\\\\\\\n tags:\\\\\\\\n - Authentication\\\\\\\\n summary: Exchange auth token for JWT\\\\\\\\n responses:\\\\\\\\n '200':\\\\\\\\n description: OK\\\\\\\\n requestBody:\\\\\\\\n content:\\\\\\\\n application/json:\\\\\\\\n schema:\\\\\\\\n type: object\\\\\\\\n properties: &ref_1\\\\\\\\n token:\\\\\\\\n type: string\\\\\\\\n description: Token to be exchanged for JWT\\\\\\\\n required:\\\\\\\\n - token\\\\\\\\n application/x-www-form-urlencoded:\\\\\\\\n schema:\\\\\\\\n type: object\\\\\\\\n properties: *ref_1\\\\\\\\n /auth/logout:\\\\\\\\n get:\\\\\\\\n tags:\\\\\\\\n - Authentication\\\\\\\\n summary: Logout\\\\\\\\n responses:\\\\\\\\n '200':\\\\\\\\n description: OK\\\\\\\\n /auth/internal/login:\\\\\\\\n post:\\\\\\\\n tags:\\\\\\\\n - Internal authentication\\\\\\\\n summary: Login user\\\\\\\\n responses:\\\\\\\\n '200':\\\\\\\\n description: OK\\\\\\\\n requestBody:\\\\\\\\n content:\\\\\\\\n application/json:\\\\\\\\n schema:\\\\\\\\n type: object\\\\\\\\n properties: &ref_2\\\\\\\\n email:\\\\\\\\n type: string\\\\\\\\n description: Email\\\\\\\\n password:\\\\\\\\n type: string\\\\\\\\n format: password\\\\\\\\n description: Password\\\\\\\\n required:\\\\\\\\n - email\\\\\\\\n - password\\\\\\\\n application/x-www-form-urlencoded:\\\\\\\\n schema:\\\\\\\\n type: object\\\\\\\\n properties: *ref_2\\\\\\\\n /auth/internal/signup:\\\\\\\\n post:\\\\\\\\n tags:\\\\\\\\n - Internal authentication\\\\\\\\n summary: User signup/registration\\\\\\\\n responses:\\\\\\\\n '200':\\\\\\\\n description: OK\\\\\\\\n requestBody:\\\\\\\\n content:\\\\\\\\n application/json:\\\\\\\\n schema:\\\\\\\\n type: object\\\\\\\\n properties: &ref_3\\\\\\\\n email:\\\\\\\\n type: string\\\\\\\\n description: Email\\\\\\\\n username:\\\\\\\\n type: string\\\\\\\\n description: Username\\\\\\\\n password:\\\\\\\\n type: string\\\\\\\\n format: password\\\\\\\\n description: Password\\\\\\\\n handle:\\\\\\\\n type: string\\\\\\\\n description: User handle\\\\\\\\n name:\\\\\\\\n type: string\\\\\\\\n description: Display name\\\\\\\\n required:\\\\\\\\n - email\\\\\\\\n - password\\\\\\\\n application/x-www-form-urlencoded:\\\\\\\\n schema:\\\\\\\\n type: object\\\\\\\\n properties: *ref_3\\\\\\\\n /auth/internal/request-password-reset:\\\\\\\\n post:\\\\\\\\n tags:\\\\\\\\n - Internal authentication\\\\\\\\n summary: Request password reset token (via email)\\\\\\\\n responses:\\\\\\\\n '200':\\\\\\\\n description: OK\\\\\\\\n requestBody:\\\\\\\\n content:\\\\\\\\n application/json:\\\\\\\\n schema:\\\\\\\\n type: object\\\\\\\\n properties: &ref_4\\\\\\\\n email:\\\\\\\\n type: string\\\\\\\\n description: Email\\\\\\\\n required:\\\\\\\\n - email\\\\\\\\n application/x-www-form-urlencoded:\\\\\\\\n schema:\\\\\\\\n type: object\\\\\\\\n properties: *ref_4\\\\\\\\n /auth/internal/exchange-password-reset-token:\\\\\\\\n post:\\\\\\\\n tags:\\\\\\\\n - Internal authentication\\\\\\\\n summary: Exchange password reset token for new token and user info\\\\\\\\n responses:\\\\\\\\n '200':\\\\\\\\n description: OK\\\\\\\\n requestBody:\\\\\\\\n content:\\\\\\\\n application/json:\\\\\\\\n schema:\\\\\\\\n type: object\\\\\\\\n properties: &ref_5\\\\\\\\n token:\\\\\\\\n type: string\\\\\\\\n description: Token\\\\\\\\n required:\\\\\\\\n - token\\\\\\\\n application/x-www-form-urlencoded:\\\\\\\\n schema:\\\\\\\\n type: object\\\\\\\\n properties: *ref_5\\\\\\\\n /auth/internal/reset-password:\\\\\\\\n post:\\\\\\\\n tags:\\\\\\\\n - Internal authentication\\\\\\\\n summary: Reset password with exchanged password reset token\\\\\\\\n responses:\\\\\\\\n '200':\\\\\\\\n description: OK\\\\\\\\n requestBody:\\\\\\\\n content:\\\\\\\\n application/json:\\\\\\\\n schema:\\\\\\\\n type: object\\\\\\\\n properties: &ref_6\\\\\\\\n token:\\\\\\\\n type: string\\\\\\\\n description: Token\\\\\\\\n password:\\\\\\\\n type: string\\\\\\\\n format: password\\\\\\\\n description: Password\\\\\\\\n required:\\\\\\\\n - token\\\\\\\\n - password\\\\\\\\n application/x-www-form-urlencoded:\\\\\\\\n schema:\\\\\\\\n type: object\\\\\\\\n properties: *ref_6\\\\\\\\n /auth/internal/confirm-email:\\\\\\\\n post:\\\\\\\\n tags:\\\\\\\\n - Internal authentication\\\\\\\\n summary: Confirm email with token\\\\\\\\n responses:\\\\\\\\n '200':\\\\\\\\n description: OK\\\\\\\\n requestBody:\\\\\\\\n content:\\\\\\\\n application/json:\\\\\\\\n schema:\\\\\\\\n type: object\\\\\\\\n properties: &ref_7\\\\\\\\n token:\\\\\\\\n type: string\\\\\\\\n description: Token\\\\\\\\n required:\\\\\\\\n - token\\\\\\\\n application/x-www-form-urlencoded:\\\\\\\\n schema:\\\\\\\\n type: object\\\\\\\\n properties: *ref_7\\\\\\\\n /auth/internal/change-password:\\\\\\\\n post:\\\\\\\\n tags:\\\\\\\\n - Internal authentication\\\\\\\\n summary: 'Changes password for current user, requires current password'\\\\\\\\n responses:\\\\\\\\n '200':\\\\\\\\n description: OK\\\\\\\\n requestBody:\\\\\\\\n content:\\\\\\\\n application/json:\\\\\\\\n schema:\\\\\\\\n type: object\\\\\\\\n properties: &ref_8\\\\\\\\n oldPassword:\\\\\\\\n type: string\\\\\\\\n description: Old password\\\\\\\\n newPassword:\\\\\\\\n type: string\\\\\\\\n description: New password\\\\\\\\n required:\\\\\\\\n - oldPassword\\\\\\\\n - newPassword\\\\\\\\n application/x-www-form-urlencoded:\\\\\\\\n schema:\\\\\\\\n type: object\\\\\\\\n properties: *ref_8\\\\\\\\n /settings/:\\\\\\\\n get:\\\\\\\\n tags:\\\\\\\\n - Settings\\\\\\\\n summary: List settings\\\\\\\\n responses:\\\\\\\\n '200':\\\\\\\\n description: OK\\\\\\\\n parameters:\\\\\\\\n - in: query\\\\\\\\n name: prefix\\\\\\\\n description: Key prefix\\\\\\\\n required: false\\\\\\\\n schema: &ref_10\\\\\\\\n type: string\\\\\\\\n patch:\\\\\\\\n tags:\\\\\\\\n - Settings\\\\\\\\n summary: Update settings\\\\\\\\n responses:\\\\\\\\n '200':\\\\\\\\n description: OK\\\\\\\\n requestBody:\\\\\\\\n content:\\\\\\\\n application/json:\\\\\\\\n schema:\\\\\\\\n type: object\\\\\\\\n properties: &ref_9\\\\\\\\n values:\\\\\\\\n type: array\\\\\\\\n items:\\\\\\\\n type: object\\\\\\\\n properties:\\\\\\\\n name:\\\\\\\\n type: string\\\\\\\\n value:\\\\\\\\n type: string\\\\\\\\n description: >-\\\\\\\\n Array of new settings: `[{ name: ..., value: ... }]`. Omit\\\\\\\\n value to remove setting\\\\\\\\n required:\\\\\\\\n - values\\\\\\\\n application/x-www-form-urlencoded:\\\\\\\\n schema:\\\\\\\\n type: object\\\\\\\\n properties: *ref_9\\\\\\\\n '/settings/{key}':\\\\\\\\n get:\\\\\\\\n tags:\\\\\\\\n - Settings\\\\\\\\n summary: Get a value for a key\\\\\\\\n responses:\\\\\\\\n '200':\\\\\\\\n description: OK\\\\\\\\n parameters:\\\\\\\\n - in: path\\\\\\\\n name: key\\\\\\\\n description: Setting key\\\\\\\\n required: true\\\\\\\\n schema: *ref_10\\\\\\\\n - in: query\\\\\\\\n name: ownerID\\\\\\\\n description: Owner ID\\\\\\\\n required: false\\\\\\\\n schema: &ref_14\\\\\\\\n type: string\\\\\\\\n post:\\\\\\\\n tags:\\\\\\\\n - Settings\\\\\\\\n summary: Set value for specific setting\\\\\\\\n responses:\\\\\\\\n '200':\\\\\\\\n description: OK\\\\\\\\n parameters:\\\\\\\\n - in: path\\\\\\\\n name: key\\\\\\\\n description: Key\\\\\\\\n required: true\\\\\\\\n schema: *ref_10\\\\\\\\n requestBody:\\\\\\\\n content:\\\\\\\\n application/json:\\\\\\\\n schema:\\\\\\\\n type: object\\\\\\\\n properties: &ref_11\\\\\\\\n upload:\\\\\\\\n type: string\\\\\\\\n format: binary\\\\\\\\n description: File to upload\\\\\\\\n ownerID:\\\\\\\\n type: string\\\\\\\\n description: Owner ID\\\\\\\\n application/x-www-form-urlencoded:\\\\\\\\n schema:\\\\\\\\n type: object\\\\\\\\n properties: *ref_11\\\\\\\\n /settings/current:\\\\\\\\n get:\\\\\\\\n tags:\\\\\\\\n - Settings\\\\\\\\n summary: Current compose settings\\\\\\\\n responses:\\\\\\\\n '200':\\\\\\\\n description: OK\\\\\\\\n /subscription/:\\\\\\\\n get:\\\\\\\\n tags:\\\\\\\\n - Subscription\\\\\\\\n summary: Returns current subscription status\\\\\\\\n responses:\\\\\\\\n '200':\\\\\\\\n description: OK\\\\\\\\n /roles/:\\\\\\\\n get:\\\\\\\\n tags:\\\\\\\\n - Roles\\\\\\\\n summary: List roles\\\\\\\\n responses:\\\\\\\\n '200':\\\\\\\\n description: OK\\\\\\\\n parameters:\\\\\\\\n - in: query\\\\\\\\n name: query\\\\\\\\n description: Search query\\\\\\\\n required: false\\\\\\\\n schema: *ref_10\\\\\\\\n - in: query\\\\\\\\n name: deleted\\\\\\\\n description: 'Exclude (0, default), include (1) or return only (2) deleted roles'\\\\\\\\n required: false\\\\\\\\n schema: &ref_12\\\\\\\\n type: string\\\\\\\\n - in: query\\\\\\\\n name: archived\\\\\\\\n description: 'Exclude (0, default), include (1) or return only (2) achived roles'\\\\\\\\n required: false\\\\\\\\n schema: *ref_12\\\\\\\\n - in: query\\\\\\\\n name: limit\\\\\\\\n description: Limit\\\\\\\\n required: false\\\\\\\\n schema: *ref_12\\\\\\\\n - in: query\\\\\\\\n name: pageCursor\\\\\\\\n description: Page cursor\\\\\\\\n required: false\\\\\\\\n schema: *ref_10\\\\\\\\n - in: query\\\\\\\\n name: sort\\\\\\\\n description: Sort items\\\\\\\\n required: false\\\\\\\\n schema: *ref_10\\\\\\\\n post:\\\\\\\\n tags:\\\\\\\\n - Roles\\\\\\\\n summary: Update role details\\\\\\\\n responses:\\\\\\\\n '200':\\\\\\\\n description: OK\\\\\\\\n requestBody:\\\\\\\\n content:\\\\\\\\n application/json:\\\\\\\\n schema:\\\\\\\\n type: object\\\\\\\\n properties: &ref_13\\\\\\\\n name:\\\\\\\\n type: string\\\\\\\\n description: Name of Role\\\\\\\\n handle:\\\\\\\\n type: string\\\\\\\\n description: Handle for Role\\\\\\\\n members:\\\\\\\\n type: array\\\\\\\\n items: *ref_10\\\\\\\\n description: Role member IDs\\\\\\\\n required:\\\\\\\\n - name\\\\\\\\n - handle\\\\\\\\n application/x-www-form-urlencoded:\\\\\\\\n schema:\\\\\\\\n type: object\\\\\\\\n properties: *ref_13\\\\\\\\n '/roles/{roleID}':\\\\\\\\n put:\\\\\\\\n tags:\\\\\\\\n - Roles\\\\\\\\n summary: Update role details\\\\\\\\n responses:\\\\\\\\n '200':\\\\\\\\n description: OK\\\\\\\\n parameters:\\\\\\\\n - in: path\\\\\\\\n name: roleID\\\\\\\\n description: Role ID\\\\\\\\n required: true\\\\\\\\n schema: *ref_14\\\\\\\\n requestBody:\\\\\\\\n content:\\\\\\\\n application/json:\\\\\\\\n schema:\\\\\\\\n type: object\\\\\\\\n properties: &ref_15\\\\\\\\n name:\\\\\\\\n type: string\\\\\\\\n description: Name of Role\\\\\\\\n handle:\\\\\\\\n type: string\\\\\\\\n description: Handle for Role\\\\\\\\n members:\\\\\\\\n type: array\\\\\\\\n items: *ref_10\\\\\\\\n description: Role member IDs\\\\\\\\n application/x-www-form-urlencoded:\\\\\\\\n schema:\\\\\\\\n type: object\\\\\\\\n properties: *ref_15\\\\\\\\n get:\\\\\\\\n tags:\\\\\\\\n - Roles\\\\\\\\n summary: Read role details and memberships\\\\\\\\n responses:\\\\\\\\n '200':\\\\\\\\n description: OK\\\\\\\\n parameters:\\\\\\\\n - in: path\\\\\\\\n name: roleID\\\\\\\\n description: Role ID\\\\\\\\n required: true\\\\\\\\n schema: *ref_14\\\\\\\\n delete:\\\\\\\\n tags:\\\\\\\\n - Roles\\\\\\\\n summary: Remove role\\\\\\\\n responses:\\\\\\\\n '200':\\\\\\\\n description: OK\\\\\\\\n parameters:\\\\\\\\n - in: path\\\\\\\\n name: roleID\\\\\\\\n description: Role ID\\\\\\\\n required: true\\\\\\\\n schema: *ref_14\\\\\\\\n '/roles/{roleID}/archive':\\\\\\\\n post:\\\\\\\\n tags:\\\\\\\\n - Roles\\\\\\\\n summary: Archive role\\\\\\\\n responses:\\\\\\\\n '200':\\\\\\\\n description: OK\\\\\\\\n parameters:\\\\\\\\n - in: path\\\\\\\\n name: roleID\\\\\\\\n description: Role ID\\\\\\\\n required: true\\\\\\\\n schema: *ref_14\\\\\\\\n '/roles/{roleID}/unarchive':\\\\\\\\n post:\\\\\\\\n tags:\\\\\\\\n - Roles\\\\\\\\n summary: Unarchive role\\\\\\\\n responses:\\\\\\\\n '200':\\\\\\\\n description: OK\\\\\\\\n parameters:\\\\\\\\n - in: path\\\\\\\\n name: roleID\\\\\\\\n description: Role ID\\\\\\\\n required: true\\\\\\\\n schema: *ref_14\\\\\\\\n '/roles/{roleID}/undelete':\\\\\\\\n post:\\\\\\\\n tags:\\\\\\\\n - Roles\\\\\\\\n summary: Undelete role\\\\\\\\n responses:\\\\\\\\n '200':\\\\\\\\n description: OK\\\\\\\\n parameters:\\\\\\\\n - in: path\\\\\\\\n name: roleID\\\\\\\\n description: Role ID\\\\\\\\n required: true\\\\\\\\n schema: *ref_14\\\\\\\\n '/roles/{roleID}/move':\\\\\\\\n post:\\\\\\\\n tags:\\\\\\\\n - Roles\\\\\\\\n summary: Move role to different organisation\\\\\\\\n responses:\\\\\\\\n '200':\\\\\\\\n description: OK\\\\\\\\n parameters:\\\\\\\\n - in: path\\\\\\\\n name: roleID\\\\\\\\n description: Role ID\\\\\\\\n required: true\\\\\\\\n schema: *ref_14\\\\\\\\n requestBody:\\\\\\\\n content:\\\\\\\\n application/json:\\\\\\\\n schema:\\\\\\\\n type: object\\\\\\\\n properties: &ref_16\\\\\\\\n organisationID:\\\\\\\\n type: string\\\\\\\\n description: Role ID\\\\\\\\n required:\\\\\\\\n - organisationID\\\\\\\\n application/x-www-form-urlencoded:\\\\\\\\n schema:\\\\\\\\n type: object\\\\\\\\n properties: *ref_16\\\\\\\\n '/roles/{roleID}/merge':\\\\\\\\n post:\\\\\\\\n tags:\\\\\\\\n - Roles\\\\\\\\n summary: Merge one role into another\\\\\\\\n responses:\\\\\\\\n '200':\\\\\\\\n description: OK\\\\\\\\n parameters:\\\\\\\\n - in: path\\\\\\\\n name: roleID\\\\\\\\n description: Source Role ID\\\\\\\\n required: true\\\\\\\\n schema: *ref_14\\\\\\\\n requestBody:\\\\\\\\n content:\\\\\\\\n application/json:\\\\\\\\n schema:\\\\\\\\n type: object\\\\\\\\n properties: &ref_17\\\\\\\\n destination:\\\\\\\\n type: string\\\\\\\\n description: Destination Role ID\\\\\\\\n required:\\\\\\\\n - destination\\\\\\\\n application/x-www-form-urlencoded:\\\\\\\\n schema:\\\\\\\\n type: object\\\\\\\\n properties: *ref_17\\\\\\\\n '/roles/{roleID}/members':\\\\\\\\n get:\\\\\\\\n tags:\\\\\\\\n - Roles\\\\\\\\n summary: Returns all role members\\\\\\\\n responses:\\\\\\\\n '200':\\\\\\\\n description: OK\\\\\\\\n parameters:\\\\\\\\n - in: path\\\\\\\\n name: roleID\\\\\\\\n description: Source Role ID\\\\\\\\n required: true\\\\\\\\n schema: *ref_14\\\\\\\\n '/roles/{roleID}/member/{userID}':\\\\\\\\n post:\\\\\\\\n tags:\\\\\\\\n - Roles\\\\\\\\n summary: Add member to a role\\\\\\\\n responses:\\\\\\\\n '200':\\\\\\\\n description: OK\\\\\\\\n parameters:\\\\\\\\n - in: path\\\\\\\\n name: roleID\\\\\\\\n description: Source Role ID\\\\\\\\n required: true\\\\\\\\n schema: *ref_14\\\\\\\\n - in: path\\\\\\\\n name: userID\\\\\\\\n description: User ID\\\\\\\\n required: true\\\\\\\\n schema: *ref_14\\\\\\\\n delete:\\\\\\\\n tags:\\\\\\\\n - Roles\\\\\\\\n summary: Remove member from a role\\\\\\\\n responses:\\\\\\\\n '200':\\\\\\\\n description: OK\\\\\\\\n parameters:\\\\\\\\n - in: path\\\\\\\\n name: roleID\\\\\\\\n description: Source Role ID\\\\\\\\n required: true\\\\\\\\n schema: *ref_14\\\\\\\\n - in: path\\\\\\\\n name: userID\\\\\\\\n description: User ID\\\\\\\\n required: true\\\\\\\\n schema: *ref_14\\\\\\\\n '/roles/{roleID}/trigger':\\\\\\\\n post:\\\\\\\\n tags:\\\\\\\\n - Roles\\\\\\\\n summary: 'Fire system:role trigger'\\\\\\\\n responses:\\\\\\\\n '200':\\\\\\\\n description: OK\\\\\\\\n parameters:\\\\\\\\n - in: path\\\\\\\\n name: roleID\\\\\\\\n description: ID\\\\\\\\n required: true\\\\\\\\n schema: *ref_14\\\\\\\\n requestBody:\\\\\\\\n content:\\\\\\\\n application/json:\\\\\\\\n schema:\\\\\\\\n type: object\\\\\\\\n properties: &ref_18\\\\\\\\n script:\\\\\\\\n type: string\\\\\\\\n description: Script to execute\\\\\\\\n required:\\\\\\\\n - script\\\\\\\\n application/x-www-form-urlencoded:\\\\\\\\n schema:\\\\\\\\n type: object\\\\\\\\n properties: *ref_18\\\\\\\\n /users/:\\\\\\\\n get:\\\\\\\\n tags:\\\\\\\\n - Users\\\\\\\\n summary: Search users (Directory)\\\\\\\\n responses:\\\\\\\\n '200':\\\\\\\\n description: OK\\\\\\\\n parameters:\\\\\\\\n - in: query\\\\\\\\n name: userID\\\\\\\\n description: Filter by user ID\\\\\\\\n required: false\\\\\\\\n schema:\\\\\\\\n type: array\\\\\\\\n items: *ref_10\\\\\\\\n - in: query\\\\\\\\n name: roleID\\\\\\\\n description: Filter by role membership\\\\\\\\n required: false\\\\\\\\n schema:\\\\\\\\n type: array\\\\\\\\n items: *ref_10\\\\\\\\n - in: query\\\\\\\\n name: query\\\\\\\\n description: Search query to match against users\\\\\\\\n required: false\\\\\\\\n schema: *ref_10\\\\\\\\n - in: query\\\\\\\\n name: username\\\\\\\\n description: Search username to match against users\\\\\\\\n required: false\\\\\\\\n schema: *ref_10\\\\\\\\n - in: query\\\\\\\\n name: email\\\\\\\\n description: Search email to match against users\\\\\\\\n required: false\\\\\\\\n schema: *ref_10\\\\\\\\n - in: query\\\\\\\\n name: handle\\\\\\\\n description: Search handle to match against users\\\\\\\\n required: false\\\\\\\\n schema: *ref_10\\\\\\\\n - in: query\\\\\\\\n name: kind\\\\\\\\n description: 'Kind (normal, bot)'\\\\\\\\n required: false\\\\\\\\n schema:\\\\\\\\n type: string\\\\\\\\n - in: query\\\\\\\\n name: incDeleted\\\\\\\\n description: '[Deprecated] Include deleted users (requires ''access'' permission)'\\\\\\\\n required: false\\\\\\\\n schema: &ref_19\\\\\\\\n type: boolean\\\\\\\\n - in: query\\\\\\\\n name: incSuspended\\\\\\\\n description: '[Deprecated] Include suspended users'\\\\\\\\n required: false\\\\\\\\n schema: *ref_19\\\\\\\\n - in: query\\\\\\\\n name: deleted\\\\\\\\n description: 'Exclude (0, default), include (1) or return only (2) deleted users'\\\\\\\\n required: false\\\\\\\\n schema: *ref_12\\\\\\\\n - in: query\\\\\\\\n name: suspended\\\\\\\\n description: 'Exclude (0, default), include (1) or return only (2) suspended users'\\\\\\\\n required: false\\\\\\\\n schema: *ref_12\\\\\\\\n - in: query\\\\\\\\n name: limit\\\\\\\\n description: Limit\\\\\\\\n required: false\\\\\\\\n schema: *ref_12\\\\\\\\n - in: query\\\\\\\\n name: pageCursor\\\\\\\\n description: Page cursor\\\\\\\\n required: false\\\\\\\\n schema: *ref_10\\\\\\\\n - in: query\\\\\\\\n name: sort\\\\\\\\n description: Sort items\\\\\\\\n required: false\\\\\\\\n schema: *ref_10\\\\\\\\n post:\\\\\\\\n tags:\\\\\\\\n - Users\\\\\\\\n summary: Create user\\\\\\\\n responses:\\\\\\\\n '200':\\\\\\\\n description: OK\\\\\\\\n requestBody:\\\\\\\\n content:\\\\\\\\n application/json:\\\\\\\\n schema:\\\\\\\\n type: object\\\\\\\\n properties: &ref_20\\\\\\\\n email:\\\\\\\\n type: string\\\\\\\\n description: Email\\\\\\\\n name:\\\\\\\\n type: string\\\\\\\\n description: Name\\\\\\\\n handle:\\\\\\\\n type: string\\\\\\\\n description: Handle\\\\\\\\n kind:\\\\\\\\n type: string\\\\\\\\n description: 'Kind (normal, bot)'\\\\\\\\n required:\\\\\\\\n - email\\\\\\\\n application/x-www-form-urlencoded:\\\\\\\\n schema:\\\\\\\\n type: object\\\\\\\\n properties: *ref_20\\\\\\\\n '/users/{userID}':\\\\\\\\n put:\\\\\\\\n tags:\\\\\\\\n - Users\\\\\\\\n summary: Update user details\\\\\\\\n responses:\\\\\\\\n '200':\\\\\\\\n description: OK\\\\\\\\n parameters:\\\\\\\\n - in: path\\\\\\\\n name: userID\\\\\\\\n description: User ID\\\\\\\\n required: true\\\\\\\\n schema: *ref_14\\\\\\\\n requestBody:\\\\\\\\n content:\\\\\\\\n application/json:\\\\\\\\n schema:\\\\\\\\n type: object\\\\\\\\n properties: &ref_21\\\\\\\\n email:\\\\\\\\n type: string\\\\\\\\n description: Email\\\\\\\\n name:\\\\\\\\n type: string\\\\\\\\n description: Name\\\\\\\\n handle:\\\\\\\\n type: string\\\\\\\\n description: Handle\\\\\\\\n kind:\\\\\\\\n type: string\\\\\\\\n description: 'Kind (normal, bot)'\\\\\\\\n required:\\\\\\\\n - email\\\\\\\\n - name\\\\\\\\n application/x-www-form-urlencoded:\\\\\\\\n schema:\\\\\\\\n type: object\\\\\\\\n properties: *ref_21\\\\\\\\n get:\\\\\\\\n tags:\\\\\\\\n - Users\\\\\\\\n summary: Read user details\\\\\\\\n responses:\\\\\\\\n '200':\\\\\\\\n description: OK\\\\\\\\n parameters:\\\\\\\\n - in: path\\\\\\\\n name: userID\\\\\\\\n description: User ID\\\\\\\\n required: true\\\\\\\\n schema: *ref_14\\\\\\\\n delete:\\\\\\\\n tags:\\\\\\\\n - Users\\\\\\\\n summary: Remove user\\\\\\\\n responses:\\\\\\\\n '200':\\\\\\\\n description: OK\\\\\\\\n parameters:\\\\\\\\n - in: path\\\\\\\\n name: userID\\\\\\\\n description: User ID\\\\\\\\n required: true\\\\\\\\n schema: *ref_14\\\\\\\\n '/users/{userID}/suspend':\\\\\\\\n post:\\\\\\\\n tags:\\\\\\\\n - Users\\\\\\\\n summary: Suspend user\\\\\\\\n responses:\\\\\\\\n '200':\\\\\\\\n description: OK\\\\\\\\n parameters:\\\\\\\\n - in: path\\\\\\\\n name: userID\\\\\\\\n description: User ID\\\\\\\\n required: true\\\\\\\\n schema: *ref_14\\\\\\\\n '/users/{userID}/unsuspend':\\\\\\\\n post:\\\\\\\\n tags:\\\\\\\\n - Users\\\\\\\\n summary: Unsuspend user\\\\\\\\n responses:\\\\\\\\n '200':\\\\\\\\n description: OK\\\\\\\\n parameters:\\\\\\\\n - in: path\\\\\\\\n name: userID\\\\\\\\n description: User ID\\\\\\\\n required: true\\\\\\\\n schema: *ref_14\\\\\\\\n '/users/{userID}/undelete':\\\\\\\\n post:\\\\\\\\n tags:\\\\\\\\n - Users\\\\\\\\n summary: Undelete user\\\\\\\\n responses:\\\\\\\\n '200':\\\\\\\\n description: OK\\\\\\\\n parameters:\\\\\\\\n - in: path\\\\\\\\n name: userID\\\\\\\\n description: User ID\\\\\\\\n required: true\\\\\\\\n schema: *ref_14\\\\\\\\n '/users/{userID}/password':\\\\\\\\n post:\\\\\\\\n tags:\\\\\\\\n - Users\\\\\\\\n summary: Set's or changes user's password\\\\\\\\n responses:\\\\\\\\n '200':\\\\\\\\n description: OK\\\\\\\\n parameters:\\\\\\\\n - in: path\\\\\\\\n name: userID\\\\\\\\n description: User ID\\\\\\\\n required: true\\\\\\\\n schema: *ref_14\\\\\\\\n requestBody:\\\\\\\\n content:\\\\\\\\n application/json:\\\\\\\\n schema:\\\\\\\\n type: object\\\\\\\\n properties: &ref_22\\\\\\\\n password:\\\\\\\\n type: string\\\\\\\\n format: password\\\\\\\\n description: New password\\\\\\\\n required:\\\\\\\\n - password\\\\\\\\n application/x-www-form-urlencoded:\\\\\\\\n schema:\\\\\\\\n type: object\\\\\\\\n properties: *ref_22\\\\\\\\n '/users/{userID}/membership':\\\\\\\\n get:\\\\\\\\n tags:\\\\\\\\n - Users\\\\\\\\n summary: Add member to a role\\\\\\\\n responses:\\\\\\\\n '200':\\\\\\\\n description: OK\\\\\\\\n parameters:\\\\\\\\n - in: path\\\\\\\\n name: userID\\\\\\\\n description: User ID\\\\\\\\n required: true\\\\\\\\n schema: *ref_14\\\\\\\\n '/users/{userID}/membership/{roleID}':\\\\\\\\n post:\\\\\\\\n tags:\\\\\\\\n - Users\\\\\\\\n summary: Add role to a user\\\\\\\\n responses:\\\\\\\\n '200':\\\\\\\\n description: OK\\\\\\\\n parameters:\\\\\\\\n - in: path\\\\\\\\n name: roleID\\\\\\\\n description: Role ID\\\\\\\\n required: true\\\\\\\\n schema: *ref_14\\\\\\\\n - in: path\\\\\\\\n name: userID\\\\\\\\n description: User ID\\\\\\\\n required: true\\\\\\\\n schema: *ref_14\\\\\\\\n delete:\\\\\\\\n tags:\\\\\\\\n - Users\\\\\\\\n summary: Remove role from a user\\\\\\\\n responses:\\\\\\\\n '200':\\\\\\\\n description: OK\\\\\\\\n parameters:\\\\\\\\n - in: path\\\\\\\\n name: roleID\\\\\\\\n description: Role ID\\\\\\\\n required: true\\\\\\\\n schema: *ref_14\\\\\\\\n - in: path\\\\\\\\n name: userID\\\\\\\\n description: User ID\\\\\\\\n required: true\\\\\\\\n schema: *ref_14\\\\\\\\n '/users/{userID}/trigger':\\\\\\\\n post:\\\\\\\\n tags:\\\\\\\\n - Users\\\\\\\\n summary: 'Fire system:user trigger'\\\\\\\\n responses:\\\\\\\\n '200':\\\\\\\\n description: OK\\\\\\\\n parameters:\\\\\\\\n - in: path\\\\\\\\n name: userID\\\\\\\\n description: ID\\\\\\\\n required: true\\\\\\\\n schema: *ref_14\\\\\\\\n requestBody:\\\\\\\\n content:\\\\\\\\n application/json:\\\\\\\\n schema:\\\\\\\\n type: object\\\\\\\\n properties: &ref_23\\\\\\\\n script:\\\\\\\\n type: string\\\\\\\\n description: Script to execute\\\\\\\\n required:\\\\\\\\n - script\\\\\\\\n application/x-www-form-urlencoded:\\\\\\\\n schema:\\\\\\\\n type: object\\\\\\\\n properties: *ref_23\\\\\\\\n /application/:\\\\\\\\n get:\\\\\\\\n tags:\\\\\\\\n - Applications\\\\\\\\n summary: List applications\\\\\\\\n responses:\\\\\\\\n '200':\\\\\\\\n description: OK\\\\\\\\n parameters:\\\\\\\\n - in: query\\\\\\\\n name: name\\\\\\\\n description: Application name\\\\\\\\n required: false\\\\\\\\n schema: *ref_10\\\\\\\\n - in: query\\\\\\\\n name: query\\\\\\\\n description: Filter applications\\\\\\\\n required: false\\\\\\\\n schema: *ref_10\\\\\\\\n - in: query\\\\\\\\n name: deleted\\\\\\\\n description: 'Exclude (0, default), include (1) or return only (2) deleted roles'\\\\\\\\n required: false\\\\\\\\n schema: *ref_12\\\\\\\\n - in: query\\\\\\\\n name: limit\\\\\\\\n description: Limit\\\\\\\\n required: false\\\\\\\\n schema: *ref_12\\\\\\\\n - in: query\\\\\\\\n name: pageCursor\\\\\\\\n description: Page cursor\\\\\\\\n required: false\\\\\\\\n schema: *ref_10\\\\\\\\n - in: query\\\\\\\\n name: sort\\\\\\\\n description: Sort items\\\\\\\\n required: false\\\\\\\\n schema: *ref_10\\\\\\\\n post:\\\\\\\\n tags:\\\\\\\\n - Applications\\\\\\\\n summary: Create application\\\\\\\\n responses:\\\\\\\\n '200':\\\\\\\\n description: OK\\\\\\\\n requestBody:\\\\\\\\n content:\\\\\\\\n application/json:\\\\\\\\n schema:\\\\\\\\n type: object\\\\\\\\n properties: &ref_24\\\\\\\\n name:\\\\\\\\n type: string\\\\\\\\n description: Application name\\\\\\\\n enabled:\\\\\\\\n type: boolean\\\\\\\\n description: Enabled\\\\\\\\n unify:\\\\\\\\n type: string\\\\\\\\n format: json\\\\\\\\n description: Unify properties\\\\\\\\n config:\\\\\\\\n type: string\\\\\\\\n format: json\\\\\\\\n description: Arbitrary JSON holding application configuration\\\\\\\\n required:\\\\\\\\n - name\\\\\\\\n application/x-www-form-urlencoded:\\\\\\\\n schema:\\\\\\\\n type: object\\\\\\\\n properties: *ref_24\\\\\\\\n '/application/{applicationID}':\\\\\\\\n put:\\\\\\\\n tags:\\\\\\\\n - Applications\\\\\\\\n summary: Update user details\\\\\\\\n responses:\\\\\\\\n '200':\\\\\\\\n description: OK\\\\\\\\n parameters:\\\\\\\\n - in: path\\\\\\\\n name: applicationID\\\\\\\\n description: Application ID\\\\\\\\n required: true\\\\\\\\n schema: *ref_14\\\\\\\\n requestBody:\\\\\\\\n content:\\\\\\\\n application/json:\\\\\\\\n schema:\\\\\\\\n type: object\\\\\\\\n properties: &ref_25\\\\\\\\n name:\\\\\\\\n type: string\\\\\\\\n description: Email\\\\\\\\n enabled:\\\\\\\\n type: boolean\\\\\\\\n description: Enabled\\\\\\\\n unify:\\\\\\\\n type: string\\\\\\\\n format: json\\\\\\\\n description: Unify properties\\\\\\\\n config:\\\\\\\\n type: string\\\\\\\\n format: json\\\\\\\\n description: Arbitrary JSON holding application configuration\\\\\\\\n required:\\\\\\\\n - name\\\\\\\\n application/x-www-form-urlencoded:\\\\\\\\n schema:\\\\\\\\n type: object\\\\\\\\n properties: *ref_25\\\\\\\\n get:\\\\\\\\n tags:\\\\\\\\n - Applications\\\\\\\\n summary: Read application details\\\\\\\\n responses:\\\\\\\\n '200':\\\\\\\\n description: OK\\\\\\\\n parameters:\\\\\\\\n - in: path\\\\\\\\n name: applicationID\\\\\\\\n description: Application ID\\\\\\\\n required: true\\\\\\\\n schema: *ref_14\\\\\\\\n delete:\\\\\\\\n tags:\\\\\\\\n - Applications\\\\\\\\n summary: Remove application\\\\\\\\n responses:\\\\\\\\n '200':\\\\\\\\n description: OK\\\\\\\\n parameters:\\\\\\\\n - in: path\\\\\\\\n name: applicationID\\\\\\\\n description: Application ID\\\\\\\\n required: true\\\\\\\\n schema: *ref_14\\\\\\\\n '/application/{applicationID}/undelete':\\\\\\\\n post:\\\\\\\\n tags:\\\\\\\\n - Applications\\\\\\\\n summary: Undelete application\\\\\\\\n responses:\\\\\\\\n '200':\\\\\\\\n description: OK\\\\\\\\n parameters:\\\\\\\\n - in: path\\\\\\\\n name: applicationID\\\\\\\\n description: Application ID\\\\\\\\n required: true\\\\\\\\n schema: *ref_14\\\\\\\\n '/application/{applicationID}/trigger':\\\\\\\\n post:\\\\\\\\n tags:\\\\\\\\n - Applications\\\\\\\\n summary: 'Fire system:application trigger'\\\\\\\\n responses:\\\\\\\\n '200':\\\\\\\\n description: OK\\\\\\\\n parameters:\\\\\\\\n - in: path\\\\\\\\n name: applicationID\\\\\\\\n description: ID\\\\\\\\n required: true\\\\\\\\n schema: *ref_14\\\\\\\\n requestBody:\\\\\\\\n content:\\\\\\\\n application/json:\\\\\\\\n schema:\\\\\\\\n type: object\\\\\\\\n properties: &ref_26\\\\\\\\n script:\\\\\\\\n type: string\\\\\\\\n description: Script to execute\\\\\\\\n required:\\\\\\\\n - script\\\\\\\\n application/x-www-form-urlencoded:\\\\\\\\n schema:\\\\\\\\n type: object\\\\\\\\n properties: *ref_26\\\\\\\\n /permissions/:\\\\\\\\n get:\\\\\\\\n tags:\\\\\\\\n - Permissions\\\\\\\\n summary: Retrieve defined permissions\\\\\\\\n responses:\\\\\\\\n '200':\\\\\\\\n description: OK\\\\\\\\n /permissions/effective:\\\\\\\\n get:\\\\\\\\n tags:\\\\\\\\n - Permissions\\\\\\\\n summary: Effective rules for current user\\\\\\\\n responses:\\\\\\\\n '200':\\\\\\\\n description: OK\\\\\\\\n parameters:\\\\\\\\n - in: query\\\\\\\\n name: resource\\\\\\\\n description: Show only rules for a specific resource\\\\\\\\n required: false\\\\\\\\n schema: *ref_10\\\\\\\\n '/permissions/{roleID}/rules':\\\\\\\\n get:\\\\\\\\n tags:\\\\\\\\n - Permissions\\\\\\\\n summary: Retrieve role permissions\\\\\\\\n responses:\\\\\\\\n '200':\\\\\\\\n description: OK\\\\\\\\n parameters:\\\\\\\\n - in: path\\\\\\\\n name: roleID\\\\\\\\n description: Role ID\\\\\\\\n required: true\\\\\\\\n schema: *ref_14\\\\\\\\n delete:\\\\\\\\n tags:\\\\\\\\n - Permissions\\\\\\\\n summary: Remove all defined role permissions\\\\\\\\n responses:\\\\\\\\n '200':\\\\\\\\n description: OK\\\\\\\\n parameters:\\\\\\\\n - in: path\\\\\\\\n name: roleID\\\\\\\\n description: Role ID\\\\\\\\n required: true\\\\\\\\n schema: *ref_14\\\\\\\\n patch:\\\\\\\\n tags:\\\\\\\\n - Permissions\\\\\\\\n summary: Update permission settings\\\\\\\\n responses:\\\\\\\\n '200':\\\\\\\\n description: OK\\\\\\\\n parameters:\\\\\\\\n - in: path\\\\\\\\n name: roleID\\\\\\\\n description: Role ID\\\\\\\\n required: true\\\\\\\\n schema: *ref_14\\\\\\\\n requestBody:\\\\\\\\n content:\\\\\\\\n application/json:\\\\\\\\n schema:\\\\\\\\n type: object\\\\\\\\n properties: &ref_27\\\\\\\\n rules:\\\\\\\\n type: array\\\\\\\\n items:\\\\\\\\n type: object\\\\\\\\n properties:\\\\\\\\n roleID:\\\\\\\\n type: string\\\\\\\\n format: uuid\\\\\\\\n resource:\\\\\\\\n type: string\\\\\\\\n operation:\\\\\\\\n type: string\\\\\\\\n access:\\\\\\\\n type: string\\\\\\\\n description: List of permission rules to set\\\\\\\\n required:\\\\\\\\n - rules\\\\\\\\n application/x-www-form-urlencoded:\\\\\\\\n schema:\\\\\\\\n type: object\\\\\\\\n properties: *ref_27\\\\\\\\n /reminder/:\\\\\\\\n get:\\\\\\\\n tags:\\\\\\\\n - Reminders\\\\\\\\n summary: List/read reminders\\\\\\\\n responses:\\\\\\\\n '200':\\\\\\\\n description: OK\\\\\\\\n parameters:\\\\\\\\n - in: query\\\\\\\\n name: reminderID\\\\\\\\n description: Filter by reminder ID\\\\\\\\n required: false\\\\\\\\n schema:\\\\\\\\n type: array\\\\\\\\n items: *ref_10\\\\\\\\n - in: query\\\\\\\\n name: resource\\\\\\\\n description: Only reminders of a specific resource\\\\\\\\n required: false\\\\\\\\n schema: *ref_10\\\\\\\\n - in: query\\\\\\\\n name: assignedTo\\\\\\\\n description: Only reminders for a given user\\\\\\\\n required: false\\\\\\\\n schema: *ref_14\\\\\\\\n - in: query\\\\\\\\n name: scheduledFrom\\\\\\\\n description: Only reminders from this time (included)\\\\\\\\n required: false\\\\\\\\n schema: &ref_28\\\\\\\\n type: string\\\\\\\\n format: date-time\\\\\\\\n - in: query\\\\\\\\n name: scheduledUntil\\\\\\\\n description: Only reminders up to this time (included)\\\\\\\\n required: false\\\\\\\\n schema: *ref_28\\\\\\\\n - in: query\\\\\\\\n name: scheduledOnly\\\\\\\\n description: Only scheduled reminders\\\\\\\\n required: false\\\\\\\\n schema: *ref_19\\\\\\\\n - in: query\\\\\\\\n name: excludeDismissed\\\\\\\\n description: Filter out dismissed reminders\\\\\\\\n required: false\\\\\\\\n schema: *ref_19\\\\\\\\n - in: query\\\\\\\\n name: limit\\\\\\\\n description: Limit\\\\\\\\n required: false\\\\\\\\n schema: *ref_12\\\\\\\\n - in: query\\\\\\\\n name: pageCursor\\\\\\\\n description: Page cursor\\\\\\\\n required: false\\\\\\\\n schema: *ref_10\\\\\\\\n - in: query\\\\\\\\n name: sort\\\\\\\\n description: Sort items\\\\\\\\n required: false\\\\\\\\n schema: *ref_10\\\\\\\\n post:\\\\\\\\n tags:\\\\\\\\n - Reminders\\\\\\\\n summary: Add new reminder\\\\\\\\n responses:\\\\\\\\n '200':\\\\\\\\n description: OK\\\\\\\\n requestBody:\\\\\\\\n content:\\\\\\\\n application/json:\\\\\\\\n schema:\\\\\\\\n type: object\\\\\\\\n properties: &ref_29\\\\\\\\n resource:\\\\\\\\n type: string\\\\\\\\n description: Resource\\\\\\\\n assignedTo:\\\\\\\\n type: string\\\\\\\\n description: Assigned To\\\\\\\\n payload:\\\\\\\\n type: string\\\\\\\\n format: json\\\\\\\\n description: Payload\\\\\\\\n remindAt:\\\\\\\\n type: string\\\\\\\\n format: date-time\\\\\\\\n description: Remind At\\\\\\\\n required:\\\\\\\\n - resource\\\\\\\\n - assignedTo\\\\\\\\n - payload\\\\\\\\n application/x-www-form-urlencoded:\\\\\\\\n schema:\\\\\\\\n type: object\\\\\\\\n properties: *ref_29\\\\\\\\n '/reminder/{reminderID}':\\\\\\\\n put:\\\\\\\\n tags:\\\\\\\\n - Reminders\\\\\\\\n summary: Update reminder\\\\\\\\n responses:\\\\\\\\n '200':\\\\\\\\n description: OK\\\\\\\\n parameters:\\\\\\\\n - in: path\\\\\\\\n name: reminderID\\\\\\\\n description: Reminder ID\\\\\\\\n required: true\\\\\\\\n schema: *ref_14\\\\\\\\n requestBody:\\\\\\\\n content:\\\\\\\\n application/json:\\\\\\\\n schema:\\\\\\\\n type: object\\\\\\\\n properties: &ref_30\\\\\\\\n resource:\\\\\\\\n type: string\\\\\\\\n description: Resource\\\\\\\\n assignedTo:\\\\\\\\n type: string\\\\\\\\n description: Assigned To\\\\\\\\n payload:\\\\\\\\n type: string\\\\\\\\n format: json\\\\\\\\n description: Payload\\\\\\\\n remindAt:\\\\\\\\n type: string\\\\\\\\n format: date-time\\\\\\\\n description: Remind At\\\\\\\\n required:\\\\\\\\n - resource\\\\\\\\n - assignedTo\\\\\\\\n - payload\\\\\\\\n application/x-www-form-urlencoded:\\\\\\\\n schema:\\\\\\\\n type: object\\\\\\\\n properties: *ref_30\\\\\\\\n get:\\\\\\\\n tags:\\\\\\\\n - Reminders\\\\\\\\n summary: Read reminder by ID\\\\\\\\n responses:\\\\\\\\n '200':\\\\\\\\n description: OK\\\\\\\\n parameters:\\\\\\\\n - in: path\\\\\\\\n name: reminderID\\\\\\\\n description: Reminder ID\\\\\\\\n required: true\\\\\\\\n schema: *ref_14\\\\\\\\n delete:\\\\\\\\n tags:\\\\\\\\n - Reminders\\\\\\\\n summary: Delete reminder\\\\\\\\n responses:\\\\\\\\n '200':\\\\\\\\n description: OK\\\\\\\\n parameters:\\\\\\\\n - in: path\\\\\\\\n name: reminderID\\\\\\\\n description: Reminder ID\\\\\\\\n required: true\\\\\\\\n schema: *ref_14\\\\\\\\n '/reminder/{reminderID}/dismiss':\\\\\\\\n patch:\\\\\\\\n tags:\\\\\\\\n - Reminders\\\\\\\\n summary: Dismiss reminder\\\\\\\\n responses:\\\\\\\\n '200':\\\\\\\\n description: OK\\\\\\\\n parameters:\\\\\\\\n - in: path\\\\\\\\n name: reminderID\\\\\\\\n description: reminder ID\\\\\\\\n required: true\\\\\\\\n schema: *ref_14\\\\\\\\n '/reminder/{reminderID}/snooze':\\\\\\\\n patch:\\\\\\\\n tags:\\\\\\\\n - Reminders\\\\\\\\n summary: Snooze reminder\\\\\\\\n responses:\\\\\\\\n '200':\\\\\\\\n description: OK\\\\\\\\n parameters:\\\\\\\\n - in: path\\\\\\\\n name: reminderID\\\\\\\\n description: reminder ID\\\\\\\\n required: true\\\\\\\\n schema: *ref_14\\\\\\\\n requestBody:\\\\\\\\n content:\\\\\\\\n application/json:\\\\\\\\n schema:\\\\\\\\n type: object\\\\\\\\n properties: &ref_31\\\\\\\\n remindAt:\\\\\\\\n type: string\\\\\\\\n format: date-time\\\\\\\\n description: New Remind At Time\\\\\\\\n required:\\\\\\\\n - remindAt\\\\\\\\n application/x-www-form-urlencoded:\\\\\\\\n schema:\\\\\\\\n type: object\\\\\\\\n properties: *ref_31\\\\\\\\n '/attachment/{kind}/{attachmentID}':\\\\\\\\n get:\\\\\\\\n tags:\\\\\\\\n - Attachments\\\\\\\\n summary: Attachment details\\\\\\\\n responses:\\\\\\\\n '200':\\\\\\\\n description: OK\\\\\\\\n parameters:\\\\\\\\n - in: path\\\\\\\\n name: kind\\\\\\\\n description: Kind\\\\\\\\n required: true\\\\\\\\n schema: *ref_10\\\\\\\\n - in: path\\\\\\\\n name: attachmentID\\\\\\\\n description: Attachment ID\\\\\\\\n required: true\\\\\\\\n schema: *ref_14\\\\\\\\n - in: query\\\\\\\\n name: sign\\\\\\\\n description: Signature\\\\\\\\n required: false\\\\\\\\n schema: *ref_10\\\\\\\\n - in: query\\\\\\\\n name: userID\\\\\\\\n description: User ID\\\\\\\\n required: false\\\\\\\\n schema: *ref_14\\\\\\\\n delete:\\\\\\\\n tags:\\\\\\\\n - Attachments\\\\\\\\n summary: Delete attachment\\\\\\\\n responses:\\\\\\\\n '200':\\\\\\\\n description: OK\\\\\\\\n parameters:\\\\\\\\n - in: path\\\\\\\\n name: kind\\\\\\\\n description: Kind\\\\\\\\n required: true\\\\\\\\n schema: *ref_10\\\\\\\\n - in: path\\\\\\\\n name: attachmentID\\\\\\\\n description: Attachment ID\\\\\\\\n required: true\\\\\\\\n schema: *ref_14\\\\\\\\n - in: query\\\\\\\\n name: sign\\\\\\\\n description: Signature\\\\\\\\n required: false\\\\\\\\n schema: *ref_10\\\\\\\\n - in: query\\\\\\\\n name: userID\\\\\\\\n description: User ID\\\\\\\\n required: false\\\\\\\\n schema: *ref_14\\\\\\\\n '/attachment/{kind}/{attachmentID}/original/{name}':\\\\\\\\n get:\\\\\\\\n tags:\\\\\\\\n - Attachments\\\\\\\\n summary: Serves attached file\\\\\\\\n responses:\\\\\\\\n '200':\\\\\\\\n description: OK\\\\\\\\n parameters:\\\\\\\\n - in: path\\\\\\\\n name: kind\\\\\\\\n description: Kind\\\\\\\\n required: true\\\\\\\\n schema: *ref_10\\\\\\\\n - in: path\\\\\\\\n name: attachmentID\\\\\\\\n description: Attachment ID\\\\\\\\n required: true\\\\\\\\n schema: *ref_14\\\\\\\\n - in: path\\\\\\\\n name: name\\\\\\\\n description: File name\\\\\\\\n required: true\\\\\\\\n schema: *ref_10\\\\\\\\n - in: query\\\\\\\\n name: sign\\\\\\\\n description: Signature\\\\\\\\n required: false\\\\\\\\n schema: *ref_10\\\\\\\\n - in: query\\\\\\\\n name: userID\\\\\\\\n description: User ID\\\\\\\\n required: false\\\\\\\\n schema: *ref_14\\\\\\\\n - in: query\\\\\\\\n name: download\\\\\\\\n description: Force file download\\\\\\\\n required: false\\\\\\\\n schema: *ref_19\\\\\\\\n '/attachment/{kind}/{attachmentID}/preview.{ext}':\\\\\\\\n get:\\\\\\\\n tags:\\\\\\\\n - Attachments\\\\\\\\n summary: Serves preview of an attached file\\\\\\\\n responses:\\\\\\\\n '200':\\\\\\\\n description: OK\\\\\\\\n parameters:\\\\\\\\n - in: path\\\\\\\\n name: kind\\\\\\\\n description: Kind\\\\\\\\n required: true\\\\\\\\n schema: *ref_10\\\\\\\\n - in: path\\\\\\\\n name: attachmentID\\\\\\\\n description: Attachment ID\\\\\\\\n required: true\\\\\\\\n schema: *ref_14\\\\\\\\n - in: path\\\\\\\\n name: ext\\\\\\\\n description: Preview extension/format\\\\\\\\n required: true\\\\\\\\n schema: *ref_10\\\\\\\\n - in: query\\\\\\\\n name: sign\\\\\\\\n description: Signature\\\\\\\\n required: false\\\\\\\\n schema: *ref_10\\\\\\\\n - in: query\\\\\\\\n name: userID\\\\\\\\n description: User ID\\\\\\\\n required: false\\\\\\\\n schema: *ref_14\\\\\\\\n /stats/:\\\\\\\\n get:\\\\\\\\n tags:\\\\\\\\n - Statistics\\\\\\\\n summary: List system statistics\\\\\\\\n responses:\\\\\\\\n '200':\\\\\\\\n description: OK\\\\\\\\n /automation/:\\\\\\\\n get:\\\\\\\\n tags:\\\\\\\\n - System automation scripts\\\\\\\\n summary: List all available automation scripts for system resources\\\\\\\\n responses:\\\\\\\\n '200':\\\\\\\\n description: OK\\\\\\\\n parameters:\\\\\\\\n - in: query\\\\\\\\n name: resourceTypePrefixes\\\\\\\\n description: Filter by resource prefix\\\\\\\\n required: false\\\\\\\\n schema:\\\\\\\\n type: array\\\\\\\\n items: *ref_10\\\\\\\\n - in: query\\\\\\\\n name: resourceTypes\\\\\\\\n description: Filter by resource type\\\\\\\\n required: false\\\\\\\\n schema:\\\\\\\\n type: array\\\\\\\\n items: *ref_10\\\\\\\\n - in: query\\\\\\\\n name: eventTypes\\\\\\\\n description: Filter by event type\\\\\\\\n required: false\\\\\\\\n schema:\\\\\\\\n type: array\\\\\\\\n items: *ref_10\\\\\\\\n - in: query\\\\\\\\n name: excludeInvalid\\\\\\\\n description: Exclude scripts that can not be used (errors)\\\\\\\\n required: false\\\\\\\\n schema: *ref_19\\\\\\\\n - in: query\\\\\\\\n name: excludeClientScripts\\\\\\\\n description: Do not include client scripts\\\\\\\\n required: false\\\\\\\\n schema: *ref_19\\\\\\\\n - in: query\\\\\\\\n name: excludeServerScripts\\\\\\\\n description: Do not include server scripts\\\\\\\\n required: false\\\\\\\\n schema: *ref_19\\\\\\\\n '/automation/{bundle}-{type}.{ext}':\\\\\\\\n get:\\\\\\\\n tags:\\\\\\\\n - System automation scripts\\\\\\\\n summary: Serves client scripts bundle\\\\\\\\n responses:\\\\\\\\n '200':\\\\\\\\n description: OK\\\\\\\\n parameters:\\\\\\\\n - in: path\\\\\\\\n name: bundle\\\\\\\\n description: Name of the bundle\\\\\\\\n required: true\\\\\\\\n schema: *ref_10\\\\\\\\n - in: path\\\\\\\\n name: type\\\\\\\\n description: Bundle type\\\\\\\\n required: true\\\\\\\\n schema: *ref_10\\\\\\\\n - in: path\\\\\\\\n name: ext\\\\\\\\n description: Bundle extension\\\\\\\\n required: true\\\\\\\\n schema: *ref_10\\\\\\\\n /automation/trigger:\\\\\\\\n post:\\\\\\\\n tags:\\\\\\\\n - System automation scripts\\\\\\\\n summary: Triggers execution of a specific script on a system service level\\\\\\\\n responses:\\\\\\\\n '200':\\\\\\\\n description: OK\\\\\\\\n requestBody:\\\\\\\\n content:\\\\\\\\n application/json:\\\\\\\\n schema:\\\\\\\\n type: object\\\\\\\\n properties: &ref_32\\\\\\\\n script:\\\\\\\\n type: string\\\\\\\\n description: Script to execute\\\\\\\\n required:\\\\\\\\n - script\\\\\\\\n application/x-www-form-urlencoded:\\\\\\\\n schema:\\\\\\\\n type: object\\\\\\\\n properties: *ref_32\\\\\\\\n /actionlog/:\\\\\\\\n get:\\\\\\\\n tags:\\\\\\\\n - Action log\\\\\\\\n summary: Action log events\\\\\\\\n responses:\\\\\\\\n '200':\\\\\\\\n description: OK\\\\\\\\n parameters:\\\\\\\\n - in: query\\\\\\\\n name: from\\\\\\\\n description: From\\\\\\\\n required: false\\\\\\\\n schema: *ref_28\\\\\\\\n - in: query\\\\\\\\n name: to\\\\\\\\n description: To\\\\\\\\n required: false\\\\\\\\n schema: *ref_28\\\\\\\\n - in: query\\\\\\\\n name: resource\\\\\\\\n description: Resource\\\\\\\\n required: false\\\\\\\\n schema: *ref_10\\\\\\\\n - in: query\\\\\\\\n name: action\\\\\\\\n description: Action\\\\\\\\n required: false\\\\\\\\n schema: *ref_10\\\\\\\\n - in: query\\\\\\\\n name: actorID\\\\\\\\n description: Filter by one or more actors\\\\\\\\n required: false\\\\\\\\n schema:\\\\\\\\n type: array\\\\\\\\n items: *ref_10\\\\\\\\n - in: query\\\\\\\\n name: limit\\\\\\\\n description: Limit\\\\\\\\n required: false\\\\\\\\n schema: *ref_12\\\\\\\\n - in: query\\\\\\\\n name: pageCursor\\\\\\\\n description: Page cursor\\\\\\\\n required: false\\\\\\\\n schema: *ref_10\\\\\\\\nPK\\\\\\\\x07\\\\\\\\x08\\\\\\\\x1c\\\\\\\\xc1\\\\\\\\xc8\\\\\\\\xd4H\\\\\\\\xb1\\\\\\\\x00\\\\\\\\x00H\\\\\\\\xb1\\\\\\\\x00\\\\\\\\x00PK\\\\\\\\x01\\\\\\\\x02\\\\\\\\x14\\\\\\\\x03\\\\\\\\x14\\\\\\\\x00\\\\\\\\x08\\\\\\\\x00\\\\\\\\x00\\\\\\\\x00\\\\\\\\x00\\\\\\\\x00!($jr\\\\\\\\x0dN\\\\\\\\x03\\\\\\\\x00\\\\\\\\x00N\\\\\\\\x03\\\\\\\\x00\\\\\\\\x00\\\\\\\\x0b\\\\\\\\x00 \\\\\\\\x00\\\\\\\\x00\\\\\\\\x00\\\\\\\\x00\\\\\\\\x00\\\\\\\\x00\\\\\\\\x00\\\\\\\\x00\\\\\\\\x00\\\\\\\\xa4\\\\\\\\x81\\\\\\\\x00\\\\\\\\x00\\\\\\\\x00\\\\\\\\x00README.adocUT\\\\\\\\x05\\\\\\\\x00\\\\\\\\x01\\\\\\\\x80Cm8PK\\\\\\\\x01\\\\\\\\x02\\\\\\\\x14\\\\\\\\x03\\\\\\\\x14\\\\\\\\x00\\\\\\\\x08\\\\\\\\x00\\\\\\\\x00\\\\\\\\x00\\\\\\\\x00\\\\\\\\x00!(\\\\\\\\xf4\\\\\\\\xc4\\\\\\\\xa2\\\\\\\\x1d\\\\\\\\xdb\\\\\\\\xc9\\\\\\\\x00\\\\\\\\x00\\\\\\\\xdb\\\\\\\\xc9\\\\\\\\x00\\\\\\\\x00\\\\\\\\x0c\\\\\\\\x00 \\\\\\\\x00\\\\\\\\x00\\\\\\\\x00\\\\\\\\x00\\\\\\\\x00\\\\\\\\x00\\\\\\\\x00\\\\\\\\x00\\\\\\\\x00\\\\\\\\xa4\\\\\\\\x81\\\\\\\\x90\\\\\\\\x03\\\\\\\\x00\\\\\\\\x00compose.yamlUT\\\\\\\\x05\\\\\\\\x00\\\\\\\\x01\\\\\\\\x80Cm8PK\\\\\\\\x01\\\\\\\\x02\\\\\\\\x14\\\\\\\\x03\\\\\\\\x14\\\\\\\\x00\\\\\\\\x08\\\\\\\\x00\\\\\\\\x00\\\\\\\\x00\\\\\\\\x00\\\\\\\\x00!(;\\\\\\\\xaaT,B\\\\\\\\x07\\\\\\\\x00\\\\\\\\x00B\\\\\\\\x07\\\\\\\\x00\\\\\\\\x00\\\\\\\\n\\\\\\\\x00 \\\\\\\\x00\\\\\\\\x00\\\\\\\\x00\\\\\\\\x00\\\\\\\\x00\\\\\\\\x00\\\\\\\\x00\\\\\\\\x00\\\\\\\\x00\\\\\\\\xa4\\\\\\\\x81\\\\\\\\xae\\\\\\\\xcd\\\\\\\\x00\\\\\\\\x00index.htmlUT\\\\\\\\x05\\\\\\\\x00\\\\\\\\x01\\\\\\\\x80Cm8PK\\\\\\\\x01\\\\\\\\x02\\\\\\\\x14\\\\\\\\x03\\\\\\\\x14\\\\\\\\x00\\\\\\\\x08\\\\\\\\x00\\\\\\\\x00\\\\\\\\x00\\\\\\\\x00\\\\\\\\x00!(\\\\\\\\x83J.D\\\\\\\\x82^\\\\\\\\x00\\\\\\\\x00\\\\\\\\x82^\\\\\\\\x00\\\\\\\\x00\\\\\\\\x0e\\\\\\\\x00 \\\\\\\\x00\\\\\\\\x00\\\\\\\\x00\\\\\\\\x00\\\\\\\\x00\\\\\\\\x00\\\\\\\\x00\\\\\\\\x00\\\\\\\\x00\\\\\\\\xa4\\\\\\\\x811\\\\\\\\xd5\\\\\\\\x00\\\\\\\\x00messaging.yamlUT\\\\\\\\x05\\\\\\\\x00\\\\\\\\x01\\\\\\\\x80Cm8PK\\\\\\\\x01\\\\\\\\x02\\\\\\\\x14\\\\\\\\x03\\\\\\\\x14\\\\\\\\x00\\\\\\\\x08\\\\\\\\x00\\\\\\\\x00\\\\\\\\x00\\\\\\\\x00\\\\\\\\x00!(\\\\\\\\x1c\\\\\\\\xc1\\\\\\\\xc8\\\\\\\\xd4H\\\\\\\\xb1\\\\\\\\x00\\\\\\\\x00H\\\\\\\\xb1\\\\\\\\x00\\\\\\\\x00\\\\\\\\x0b\\\\\\\\x00 \\\\\\\\x00\\\\\\\\x00\\\\\\\\x00\\\\\\\\x00\\\\\\\\x00\\\\\\\\x00\\\\\\\\x00\\\\\\\\x00\\\\\\\\x00\\\\\\\\xa4\\\\\\\\x81\\\\\\\\xf83\\\\\\\\x01\\\\\\\\x00system.yamlUT\\\\\\\\x05\\\\\\\\x00\\\\\\\\x01\\\\\\\\x80Cm8PK\\\\\\\\x05\\\\\\\\x06\\\\\\\\x00\\\\\\\\x00\\\\\\\\x00\\\\\\\\x00\\\\\\\\x05\\\\\\\\x00\\\\\\\\x05\\\\\\\\x00M\\\\\\\\x01\\\\\\\\x00\\\\\\\\x00\\\\\\\\x82\\\\\\\\xe5\\\\\\\\x01\\\\\\\\x00\\\\\\\\x00\\\\\\\\x00\\\\\\\"\\\\nPK\\\\x07\\\\x086\\\\xc2Y\\\\x9d\\\\xe1\\\\xfe\\\\x01\\\\x00\\\\xe1\\\\xfe\\\\x01\\\\x00PK\\\\x03\\\\x04\\\\x14\\\\x00\\\\x08\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00!(\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x0b\\\\x00 \\\\x00system.yamlUT\\\\x05\\\\x00\\\\x01\\\\x80Cm8openapi: 3.0.0\\\\ninfo:\\\\n title: Corteza System API\\\\n description: Corteza System REST API definition\\\\n version: 2020.9\\\\n contact:\\\\n email: info@cortezaproject.org\\\\n license:\\\\n name: Apache 2.0\\\\n url: 'http://www.apache.org/licenses/LICENSE-2.0.html'\\\\npaths:\\\\n /auth/:\\\\n get:\\\\n tags:\\\\n - Authentication\\\\n summary: Returns auth settings\\\\n responses:\\\\n '200':\\\\n description: OK\\\\n /auth/check:\\\\n get:\\\\n tags:\\\\n - Authentication\\\\n summary: Check JWT token\\\\n responses:\\\\n '200':\\\\n description: OK\\\\n /auth/impersonate:\\\\n post:\\\\n tags:\\\\n - Authentication\\\\n summary: Impersonate a user\\\\n responses:\\\\n '200':\\\\n description: OK\\\\n requestBody:\\\\n content:\\\\n application/json:\\\\n schema:\\\\n type: object\\\\n properties: &ref_0\\\\n userID:\\\\n type: string\\\\n description: ID of the impersonated user\\\\n required:\\\\n - userID\\\\n application/x-www-form-urlencoded:\\\\n schema:\\\\n type: object\\\\n properties: *ref_0\\\\n /auth/exchange:\\\\n post:\\\\n tags:\\\\n - Authentication\\\\n summary: Exchange auth token for JWT\\\\n responses:\\\\n '200':\\\\n description: OK\\\\n requestBody:\\\\n content:\\\\n application/json:\\\\n schema:\\\\n type: object\\\\n properties: &ref_1\\\\n token:\\\\n type: string\\\\n description: Token to be exchanged for JWT\\\\n required:\\\\n - token\\\\n application/x-www-form-urlencoded:\\\\n schema:\\\\n type: object\\\\n properties: *ref_1\\\\n /auth/logout:\\\\n get:\\\\n tags:\\\\n - Authentication\\\\n summary: Logout\\\\n responses:\\\\n '200':\\\\n description: OK\\\\n /auth/internal/login:\\\\n post:\\\\n tags:\\\\n - Internal authentication\\\\n summary: Login user\\\\n responses:\\\\n '200':\\\\n description: OK\\\\n requestBody:\\\\n content:\\\\n application/json:\\\\n schema:\\\\n type: object\\\\n properties: &ref_2\\\\n email:\\\\n type: string\\\\n description: Email\\\\n password:\\\\n type: string\\\\n format: password\\\\n description: Password\\\\n required:\\\\n - email\\\\n - password\\\\n application/x-www-form-urlencoded:\\\\n schema:\\\\n type: object\\\\n properties: *ref_2\\\\n /auth/internal/signup:\\\\n post:\\\\n tags:\\\\n - Internal authentication\\\\n summary: User signup/registration\\\\n responses:\\\\n '200':\\\\n description: OK\\\\n requestBody:\\\\n content:\\\\n application/json:\\\\n schema:\\\\n type: object\\\\n properties: &ref_3\\\\n email:\\\\n type: string\\\\n description: Email\\\\n username:\\\\n type: string\\\\n description: Username\\\\n password:\\\\n type: string\\\\n format: password\\\\n description: Password\\\\n handle:\\\\n type: string\\\\n description: User handle\\\\n name:\\\\n type: string\\\\n description: Display name\\\\n required:\\\\n - email\\\\n - password\\\\n application/x-www-form-urlencoded:\\\\n schema:\\\\n type: object\\\\n properties: *ref_3\\\\n /auth/internal/request-password-reset:\\\\n post:\\\\n tags:\\\\n - Internal authentication\\\\n summary: Request password reset token (via email)\\\\n responses:\\\\n '200':\\\\n description: OK\\\\n requestBody:\\\\n content:\\\\n application/json:\\\\n schema:\\\\n type: object\\\\n properties: &ref_4\\\\n email:\\\\n type: string\\\\n description: Email\\\\n required:\\\\n - email\\\\n application/x-www-form-urlencoded:\\\\n schema:\\\\n type: object\\\\n properties: *ref_4\\\\n /auth/internal/exchange-password-reset-token:\\\\n post:\\\\n tags:\\\\n - Internal authentication\\\\n summary: Exchange password reset token for new token and user info\\\\n responses:\\\\n '200':\\\\n description: OK\\\\n requestBody:\\\\n content:\\\\n application/json:\\\\n schema:\\\\n type: object\\\\n properties: &ref_5\\\\n token:\\\\n type: string\\\\n description: Token\\\\n required:\\\\n - token\\\\n application/x-www-form-urlencoded:\\\\n schema:\\\\n type: object\\\\n properties: *ref_5\\\\n /auth/internal/reset-password:\\\\n post:\\\\n tags:\\\\n - Internal authentication\\\\n summary: Reset password with exchanged password reset token\\\\n responses:\\\\n '200':\\\\n description: OK\\\\n requestBody:\\\\n content:\\\\n application/json:\\\\n schema:\\\\n type: object\\\\n properties: &ref_6\\\\n token:\\\\n type: string\\\\n description: Token\\\\n password:\\\\n type: string\\\\n format: password\\\\n description: Password\\\\n required:\\\\n - token\\\\n - password\\\\n application/x-www-form-urlencoded:\\\\n schema:\\\\n type: object\\\\n properties: *ref_6\\\\n /auth/internal/confirm-email:\\\\n post:\\\\n tags:\\\\n - Internal authentication\\\\n summary: Confirm email with token\\\\n responses:\\\\n '200':\\\\n description: OK\\\\n requestBody:\\\\n content:\\\\n application/json:\\\\n schema:\\\\n type: object\\\\n properties: &ref_7\\\\n token:\\\\n type: string\\\\n description: Token\\\\n required:\\\\n - token\\\\n application/x-www-form-urlencoded:\\\\n schema:\\\\n type: object\\\\n properties: *ref_7\\\\n /auth/internal/change-password:\\\\n post:\\\\n tags:\\\\n - Internal authentication\\\\n summary: 'Changes password for current user, requires current password'\\\\n responses:\\\\n '200':\\\\n description: OK\\\\n requestBody:\\\\n content:\\\\n application/json:\\\\n schema:\\\\n type: object\\\\n properties: &ref_8\\\\n oldPassword:\\\\n type: string\\\\n description: Old password\\\\n newPassword:\\\\n type: string\\\\n description: New password\\\\n required:\\\\n - oldPassword\\\\n - newPassword\\\\n application/x-www-form-urlencoded:\\\\n schema:\\\\n type: object\\\\n properties: *ref_8\\\\n /settings/:\\\\n get:\\\\n tags:\\\\n - Settings\\\\n summary: List settings\\\\n responses:\\\\n '200':\\\\n description: OK\\\\n parameters:\\\\n - in: query\\\\n name: prefix\\\\n description: Key prefix\\\\n required: false\\\\n schema: &ref_10\\\\n type: string\\\\n patch:\\\\n tags:\\\\n - Settings\\\\n summary: Update settings\\\\n responses:\\\\n '200':\\\\n description: OK\\\\n requestBody:\\\\n content:\\\\n application/json:\\\\n schema:\\\\n type: object\\\\n properties: &ref_9\\\\n values:\\\\n type: array\\\\n items:\\\\n type: object\\\\n properties:\\\\n name:\\\\n type: string\\\\n value:\\\\n type: string\\\\n description: >-\\\\n Array of new settings: `[{ name: ..., value: ... }]`. Omit\\\\n value to remove setting\\\\n required:\\\\n - values\\\\n application/x-www-form-urlencoded:\\\\n schema:\\\\n type: object\\\\n properties: *ref_9\\\\n '/settings/{key}':\\\\n get:\\\\n tags:\\\\n - Settings\\\\n summary: Get a value for a key\\\\n responses:\\\\n '200':\\\\n description: OK\\\\n parameters:\\\\n - in: path\\\\n name: key\\\\n description: Setting key\\\\n required: true\\\\n schema: *ref_10\\\\n - in: query\\\\n name: ownerID\\\\n description: Owner ID\\\\n required: false\\\\n schema: &ref_14\\\\n type: string\\\\n post:\\\\n tags:\\\\n - Settings\\\\n summary: Set value for specific setting\\\\n responses:\\\\n '200':\\\\n description: OK\\\\n parameters:\\\\n - in: path\\\\n name: key\\\\n description: Key\\\\n required: true\\\\n schema: *ref_10\\\\n requestBody:\\\\n content:\\\\n application/json:\\\\n schema:\\\\n type: object\\\\n properties: &ref_11\\\\n upload:\\\\n type: string\\\\n format: binary\\\\n description: File to upload\\\\n ownerID:\\\\n type: string\\\\n description: Owner ID\\\\n application/x-www-form-urlencoded:\\\\n schema:\\\\n type: object\\\\n properties: *ref_11\\\\n /settings/current:\\\\n get:\\\\n tags:\\\\n - Settings\\\\n summary: Current compose settings\\\\n responses:\\\\n '200':\\\\n description: OK\\\\n /subscription/:\\\\n get:\\\\n tags:\\\\n - Subscription\\\\n summary: Returns current subscription status\\\\n responses:\\\\n '200':\\\\n description: OK\\\\n /roles/:\\\\n get:\\\\n tags:\\\\n - Roles\\\\n summary: List roles\\\\n responses:\\\\n '200':\\\\n description: OK\\\\n parameters:\\\\n - in: query\\\\n name: query\\\\n description: Search query\\\\n required: false\\\\n schema: *ref_10\\\\n - in: query\\\\n name: deleted\\\\n description: 'Exclude (0, default), include (1) or return only (2) deleted roles'\\\\n required: false\\\\n schema: &ref_12\\\\n type: string\\\\n - in: query\\\\n name: archived\\\\n description: 'Exclude (0, default), include (1) or return only (2) achived roles'\\\\n required: false\\\\n schema: *ref_12\\\\n - in: query\\\\n name: limit\\\\n description: Limit\\\\n required: false\\\\n schema: *ref_12\\\\n - in: query\\\\n name: pageCursor\\\\n description: Page cursor\\\\n required: false\\\\n schema: *ref_10\\\\n - in: query\\\\n name: sort\\\\n description: Sort items\\\\n required: false\\\\n schema: *ref_10\\\\n post:\\\\n tags:\\\\n - Roles\\\\n summary: Update role details\\\\n responses:\\\\n '200':\\\\n description: OK\\\\n requestBody:\\\\n content:\\\\n application/json:\\\\n schema:\\\\n type: object\\\\n properties: &ref_13\\\\n name:\\\\n type: string\\\\n description: Name of Role\\\\n handle:\\\\n type: string\\\\n description: Handle for Role\\\\n members:\\\\n type: array\\\\n items: *ref_10\\\\n description: Role member IDs\\\\n required:\\\\n - name\\\\n - handle\\\\n application/x-www-form-urlencoded:\\\\n schema:\\\\n type: object\\\\n properties: *ref_13\\\\n '/roles/{roleID}':\\\\n put:\\\\n tags:\\\\n - Roles\\\\n summary: Update role details\\\\n responses:\\\\n '200':\\\\n description: OK\\\\n parameters:\\\\n - in: path\\\\n name: roleID\\\\n description: Role ID\\\\n required: true\\\\n schema: *ref_14\\\\n requestBody:\\\\n content:\\\\n application/json:\\\\n schema:\\\\n type: object\\\\n properties: &ref_15\\\\n name:\\\\n type: string\\\\n description: Name of Role\\\\n handle:\\\\n type: string\\\\n description: Handle for Role\\\\n members:\\\\n type: array\\\\n items: *ref_10\\\\n description: Role member IDs\\\\n application/x-www-form-urlencoded:\\\\n schema:\\\\n type: object\\\\n properties: *ref_15\\\\n get:\\\\n tags:\\\\n - Roles\\\\n summary: Read role details and memberships\\\\n responses:\\\\n '200':\\\\n description: OK\\\\n parameters:\\\\n - in: path\\\\n name: roleID\\\\n description: Role ID\\\\n required: true\\\\n schema: *ref_14\\\\n delete:\\\\n tags:\\\\n - Roles\\\\n summary: Remove role\\\\n responses:\\\\n '200':\\\\n description: OK\\\\n parameters:\\\\n - in: path\\\\n name: roleID\\\\n description: Role ID\\\\n required: true\\\\n schema: *ref_14\\\\n '/roles/{roleID}/archive':\\\\n post:\\\\n tags:\\\\n - Roles\\\\n summary: Archive role\\\\n responses:\\\\n '200':\\\\n description: OK\\\\n parameters:\\\\n - in: path\\\\n name: roleID\\\\n description: Role ID\\\\n required: true\\\\n schema: *ref_14\\\\n '/roles/{roleID}/unarchive':\\\\n post:\\\\n tags:\\\\n - Roles\\\\n summary: Unarchive role\\\\n responses:\\\\n '200':\\\\n description: OK\\\\n parameters:\\\\n - in: path\\\\n name: roleID\\\\n description: Role ID\\\\n required: true\\\\n schema: *ref_14\\\\n '/roles/{roleID}/undelete':\\\\n post:\\\\n tags:\\\\n - Roles\\\\n summary: Undelete role\\\\n responses:\\\\n '200':\\\\n description: OK\\\\n parameters:\\\\n - in: path\\\\n name: roleID\\\\n description: Role ID\\\\n required: true\\\\n schema: *ref_14\\\\n '/roles/{roleID}/move':\\\\n post:\\\\n tags:\\\\n - Roles\\\\n summary: Move role to different organisation\\\\n responses:\\\\n '200':\\\\n description: OK\\\\n parameters:\\\\n - in: path\\\\n name: roleID\\\\n description: Role ID\\\\n required: true\\\\n schema: *ref_14\\\\n requestBody:\\\\n content:\\\\n application/json:\\\\n schema:\\\\n type: object\\\\n properties: &ref_16\\\\n organisationID:\\\\n type: string\\\\n description: Role ID\\\\n required:\\\\n - organisationID\\\\n application/x-www-form-urlencoded:\\\\n schema:\\\\n type: object\\\\n properties: *ref_16\\\\n '/roles/{roleID}/merge':\\\\n post:\\\\n tags:\\\\n - Roles\\\\n summary: Merge one role into another\\\\n responses:\\\\n '200':\\\\n description: OK\\\\n parameters:\\\\n - in: path\\\\n name: roleID\\\\n description: Source Role ID\\\\n required: true\\\\n schema: *ref_14\\\\n requestBody:\\\\n content:\\\\n application/json:\\\\n schema:\\\\n type: object\\\\n properties: &ref_17\\\\n destination:\\\\n type: string\\\\n description: Destination Role ID\\\\n required:\\\\n - destination\\\\n application/x-www-form-urlencoded:\\\\n schema:\\\\n type: object\\\\n properties: *ref_17\\\\n '/roles/{roleID}/members':\\\\n get:\\\\n tags:\\\\n - Roles\\\\n summary: Returns all role members\\\\n responses:\\\\n '200':\\\\n description: OK\\\\n parameters:\\\\n - in: path\\\\n name: roleID\\\\n description: Source Role ID\\\\n required: true\\\\n schema: *ref_14\\\\n '/roles/{roleID}/member/{userID}':\\\\n post:\\\\n tags:\\\\n - Roles\\\\n summary: Add member to a role\\\\n responses:\\\\n '200':\\\\n description: OK\\\\n parameters:\\\\n - in: path\\\\n name: roleID\\\\n description: Source Role ID\\\\n required: true\\\\n schema: *ref_14\\\\n - in: path\\\\n name: userID\\\\n description: User ID\\\\n required: true\\\\n schema: *ref_14\\\\n delete:\\\\n tags:\\\\n - Roles\\\\n summary: Remove member from a role\\\\n responses:\\\\n '200':\\\\n description: OK\\\\n parameters:\\\\n - in: path\\\\n name: roleID\\\\n description: Source Role ID\\\\n required: true\\\\n schema: *ref_14\\\\n - in: path\\\\n name: userID\\\\n description: User ID\\\\n required: true\\\\n schema: *ref_14\\\\n '/roles/{roleID}/trigger':\\\\n post:\\\\n tags:\\\\n - Roles\\\\n summary: 'Fire system:role trigger'\\\\n responses:\\\\n '200':\\\\n description: OK\\\\n parameters:\\\\n - in: path\\\\n name: roleID\\\\n description: ID\\\\n required: true\\\\n schema: *ref_14\\\\n requestBody:\\\\n content:\\\\n application/json:\\\\n schema:\\\\n type: object\\\\n properties: &ref_18\\\\n script:\\\\n type: string\\\\n description: Script to execute\\\\n required:\\\\n - script\\\\n application/x-www-form-urlencoded:\\\\n schema:\\\\n type: object\\\\n properties: *ref_18\\\\n /users/:\\\\n get:\\\\n tags:\\\\n - Users\\\\n summary: Search users (Directory)\\\\n responses:\\\\n '200':\\\\n description: OK\\\\n parameters:\\\\n - in: query\\\\n name: userID\\\\n description: Filter by user ID\\\\n required: false\\\\n schema:\\\\n type: array\\\\n items: *ref_10\\\\n - in: query\\\\n name: roleID\\\\n description: Filter by role membership\\\\n required: false\\\\n schema:\\\\n type: array\\\\n items: *ref_10\\\\n - in: query\\\\n name: query\\\\n description: Search query to match against users\\\\n required: false\\\\n schema: *ref_10\\\\n - in: query\\\\n name: username\\\\n description: Search username to match against users\\\\n required: false\\\\n schema: *ref_10\\\\n - in: query\\\\n name: email\\\\n description: Search email to match against users\\\\n required: false\\\\n schema: *ref_10\\\\n - in: query\\\\n name: handle\\\\n description: Search handle to match against users\\\\n required: false\\\\n schema: *ref_10\\\\n - in: query\\\\n name: kind\\\\n description: 'Kind (normal, bot)'\\\\n required: false\\\\n schema:\\\\n type: string\\\\n - in: query\\\\n name: incDeleted\\\\n description: '[Deprecated] Include deleted users (requires ''access'' permission)'\\\\n required: false\\\\n schema: &ref_19\\\\n type: boolean\\\\n - in: query\\\\n name: incSuspended\\\\n description: '[Deprecated] Include suspended users'\\\\n required: false\\\\n schema: *ref_19\\\\n - in: query\\\\n name: deleted\\\\n description: 'Exclude (0, default), include (1) or return only (2) deleted users'\\\\n required: false\\\\n schema: *ref_12\\\\n - in: query\\\\n name: suspended\\\\n description: 'Exclude (0, default), include (1) or return only (2) suspended users'\\\\n required: false\\\\n schema: *ref_12\\\\n - in: query\\\\n name: limit\\\\n description: Limit\\\\n required: false\\\\n schema: *ref_12\\\\n - in: query\\\\n name: pageCursor\\\\n description: Page cursor\\\\n required: false\\\\n schema: *ref_10\\\\n - in: query\\\\n name: sort\\\\n description: Sort items\\\\n required: false\\\\n schema: *ref_10\\\\n post:\\\\n tags:\\\\n - Users\\\\n summary: Create user\\\\n responses:\\\\n '200':\\\\n description: OK\\\\n requestBody:\\\\n content:\\\\n application/json:\\\\n schema:\\\\n type: object\\\\n properties: &ref_20\\\\n email:\\\\n type: string\\\\n description: Email\\\\n name:\\\\n type: string\\\\n description: Name\\\\n handle:\\\\n type: string\\\\n description: Handle\\\\n kind:\\\\n type: string\\\\n description: 'Kind (normal, bot)'\\\\n required:\\\\n - email\\\\n application/x-www-form-urlencoded:\\\\n schema:\\\\n type: object\\\\n properties: *ref_20\\\\n '/users/{userID}':\\\\n put:\\\\n tags:\\\\n - Users\\\\n summary: Update user details\\\\n responses:\\\\n '200':\\\\n description: OK\\\\n parameters:\\\\n - in: path\\\\n name: userID\\\\n description: User ID\\\\n required: true\\\\n schema: *ref_14\\\\n requestBody:\\\\n content:\\\\n application/json:\\\\n schema:\\\\n type: object\\\\n properties: &ref_21\\\\n email:\\\\n type: string\\\\n description: Email\\\\n name:\\\\n type: string\\\\n description: Name\\\\n handle:\\\\n type: string\\\\n description: Handle\\\\n kind:\\\\n type: string\\\\n description: 'Kind (normal, bot)'\\\\n required:\\\\n - email\\\\n - name\\\\n application/x-www-form-urlencoded:\\\\n schema:\\\\n type: object\\\\n properties: *ref_21\\\\n get:\\\\n tags:\\\\n - Users\\\\n summary: Read user details\\\\n responses:\\\\n '200':\\\\n description: OK\\\\n parameters:\\\\n - in: path\\\\n name: userID\\\\n description: User ID\\\\n required: true\\\\n schema: *ref_14\\\\n delete:\\\\n tags:\\\\n - Users\\\\n summary: Remove user\\\\n responses:\\\\n '200':\\\\n description: OK\\\\n parameters:\\\\n - in: path\\\\n name: userID\\\\n description: User ID\\\\n required: true\\\\n schema: *ref_14\\\\n '/users/{userID}/suspend':\\\\n post:\\\\n tags:\\\\n - Users\\\\n summary: Suspend user\\\\n responses:\\\\n '200':\\\\n description: OK\\\\n parameters:\\\\n - in: path\\\\n name: userID\\\\n description: User ID\\\\n required: true\\\\n schema: *ref_14\\\\n '/users/{userID}/unsuspend':\\\\n post:\\\\n tags:\\\\n - Users\\\\n summary: Unsuspend user\\\\n responses:\\\\n '200':\\\\n description: OK\\\\n parameters:\\\\n - in: path\\\\n name: userID\\\\n description: User ID\\\\n required: true\\\\n schema: *ref_14\\\\n '/users/{userID}/undelete':\\\\n post:\\\\n tags:\\\\n - Users\\\\n summary: Undelete user\\\\n responses:\\\\n '200':\\\\n description: OK\\\\n parameters:\\\\n - in: path\\\\n name: userID\\\\n description: User ID\\\\n required: true\\\\n schema: *ref_14\\\\n '/users/{userID}/password':\\\\n post:\\\\n tags:\\\\n - Users\\\\n summary: Set's or changes user's password\\\\n responses:\\\\n '200':\\\\n description: OK\\\\n parameters:\\\\n - in: path\\\\n name: userID\\\\n description: User ID\\\\n required: true\\\\n schema: *ref_14\\\\n requestBody:\\\\n content:\\\\n application/json:\\\\n schema:\\\\n type: object\\\\n properties: &ref_22\\\\n password:\\\\n type: string\\\\n format: password\\\\n description: New password\\\\n required:\\\\n - password\\\\n application/x-www-form-urlencoded:\\\\n schema:\\\\n type: object\\\\n properties: *ref_22\\\\n '/users/{userID}/membership':\\\\n get:\\\\n tags:\\\\n - Users\\\\n summary: Add member to a role\\\\n responses:\\\\n '200':\\\\n description: OK\\\\n parameters:\\\\n - in: path\\\\n name: userID\\\\n description: User ID\\\\n required: true\\\\n schema: *ref_14\\\\n '/users/{userID}/membership/{roleID}':\\\\n post:\\\\n tags:\\\\n - Users\\\\n summary: Add role to a user\\\\n responses:\\\\n '200':\\\\n description: OK\\\\n parameters:\\\\n - in: path\\\\n name: roleID\\\\n description: Role ID\\\\n required: true\\\\n schema: *ref_14\\\\n - in: path\\\\n name: userID\\\\n description: User ID\\\\n required: true\\\\n schema: *ref_14\\\\n delete:\\\\n tags:\\\\n - Users\\\\n summary: Remove role from a user\\\\n responses:\\\\n '200':\\\\n description: OK\\\\n parameters:\\\\n - in: path\\\\n name: roleID\\\\n description: Role ID\\\\n required: true\\\\n schema: *ref_14\\\\n - in: path\\\\n name: userID\\\\n description: User ID\\\\n required: true\\\\n schema: *ref_14\\\\n '/users/{userID}/trigger':\\\\n post:\\\\n tags:\\\\n - Users\\\\n summary: 'Fire system:user trigger'\\\\n responses:\\\\n '200':\\\\n description: OK\\\\n parameters:\\\\n - in: path\\\\n name: userID\\\\n description: ID\\\\n required: true\\\\n schema: *ref_14\\\\n requestBody:\\\\n content:\\\\n application/json:\\\\n schema:\\\\n type: object\\\\n properties: &ref_23\\\\n script:\\\\n type: string\\\\n description: Script to execute\\\\n required:\\\\n - script\\\\n application/x-www-form-urlencoded:\\\\n schema:\\\\n type: object\\\\n properties: *ref_23\\\\n /application/:\\\\n get:\\\\n tags:\\\\n - Applications\\\\n summary: List applications\\\\n responses:\\\\n '200':\\\\n description: OK\\\\n parameters:\\\\n - in: query\\\\n name: name\\\\n description: Application name\\\\n required: false\\\\n schema: *ref_10\\\\n - in: query\\\\n name: query\\\\n description: Filter applications\\\\n required: false\\\\n schema: *ref_10\\\\n - in: query\\\\n name: deleted\\\\n description: 'Exclude (0, default), include (1) or return only (2) deleted roles'\\\\n required: false\\\\n schema: *ref_12\\\\n - in: query\\\\n name: limit\\\\n description: Limit\\\\n required: false\\\\n schema: *ref_12\\\\n - in: query\\\\n name: pageCursor\\\\n description: Page cursor\\\\n required: false\\\\n schema: *ref_10\\\\n - in: query\\\\n name: sort\\\\n description: Sort items\\\\n required: false\\\\n schema: *ref_10\\\\n post:\\\\n tags:\\\\n - Applications\\\\n summary: Create application\\\\n responses:\\\\n '200':\\\\n description: OK\\\\n requestBody:\\\\n content:\\\\n application/json:\\\\n schema:\\\\n type: object\\\\n properties: &ref_24\\\\n name:\\\\n type: string\\\\n description: Application name\\\\n enabled:\\\\n type: boolean\\\\n description: Enabled\\\\n unify:\\\\n type: string\\\\n format: json\\\\n description: Unify properties\\\\n config:\\\\n type: string\\\\n format: json\\\\n description: Arbitrary JSON holding application configuration\\\\n required:\\\\n - name\\\\n application/x-www-form-urlencoded:\\\\n schema:\\\\n type: object\\\\n properties: *ref_24\\\\n '/application/{applicationID}':\\\\n put:\\\\n tags:\\\\n - Applications\\\\n summary: Update user details\\\\n responses:\\\\n '200':\\\\n description: OK\\\\n parameters:\\\\n - in: path\\\\n name: applicationID\\\\n description: Application ID\\\\n required: true\\\\n schema: *ref_14\\\\n requestBody:\\\\n content:\\\\n application/json:\\\\n schema:\\\\n type: object\\\\n properties: &ref_25\\\\n name:\\\\n type: string\\\\n description: Email\\\\n enabled:\\\\n type: boolean\\\\n description: Enabled\\\\n unify:\\\\n type: string\\\\n format: json\\\\n description: Unify properties\\\\n config:\\\\n type: string\\\\n format: json\\\\n description: Arbitrary JSON holding application configuration\\\\n required:\\\\n - name\\\\n application/x-www-form-urlencoded:\\\\n schema:\\\\n type: object\\\\n properties: *ref_25\\\\n get:\\\\n tags:\\\\n - Applications\\\\n summary: Read application details\\\\n responses:\\\\n '200':\\\\n description: OK\\\\n parameters:\\\\n - in: path\\\\n name: applicationID\\\\n description: Application ID\\\\n required: true\\\\n schema: *ref_14\\\\n delete:\\\\n tags:\\\\n - Applications\\\\n summary: Remove application\\\\n responses:\\\\n '200':\\\\n description: OK\\\\n parameters:\\\\n - in: path\\\\n name: applicationID\\\\n description: Application ID\\\\n required: true\\\\n schema: *ref_14\\\\n '/application/{applicationID}/undelete':\\\\n post:\\\\n tags:\\\\n - Applications\\\\n summary: Undelete application\\\\n responses:\\\\n '200':\\\\n description: OK\\\\n parameters:\\\\n - in: path\\\\n name: applicationID\\\\n description: Application ID\\\\n required: true\\\\n schema: *ref_14\\\\n '/application/{applicationID}/trigger':\\\\n post:\\\\n tags:\\\\n - Applications\\\\n summary: 'Fire system:application trigger'\\\\n responses:\\\\n '200':\\\\n description: OK\\\\n parameters:\\\\n - in: path\\\\n name: applicationID\\\\n description: ID\\\\n required: true\\\\n schema: *ref_14\\\\n requestBody:\\\\n content:\\\\n application/json:\\\\n schema:\\\\n type: object\\\\n properties: &ref_26\\\\n script:\\\\n type: string\\\\n description: Script to execute\\\\n required:\\\\n - script\\\\n application/x-www-form-urlencoded:\\\\n schema:\\\\n type: object\\\\n properties: *ref_26\\\\n /permissions/:\\\\n get:\\\\n tags:\\\\n - Permissions\\\\n summary: Retrieve defined permissions\\\\n responses:\\\\n '200':\\\\n description: OK\\\\n /permissions/effective:\\\\n get:\\\\n tags:\\\\n - Permissions\\\\n summary: Effective rules for current user\\\\n responses:\\\\n '200':\\\\n description: OK\\\\n parameters:\\\\n - in: query\\\\n name: resource\\\\n description: Show only rules for a specific resource\\\\n required: false\\\\n schema: *ref_10\\\\n '/permissions/{roleID}/rules':\\\\n get:\\\\n tags:\\\\n - Permissions\\\\n summary: Retrieve role permissions\\\\n responses:\\\\n '200':\\\\n description: OK\\\\n parameters:\\\\n - in: path\\\\n name: roleID\\\\n description: Role ID\\\\n required: true\\\\n schema: *ref_14\\\\n delete:\\\\n tags:\\\\n - Permissions\\\\n summary: Remove all defined role permissions\\\\n responses:\\\\n '200':\\\\n description: OK\\\\n parameters:\\\\n - in: path\\\\n name: roleID\\\\n description: Role ID\\\\n required: true\\\\n schema: *ref_14\\\\n patch:\\\\n tags:\\\\n - Permissions\\\\n summary: Update permission settings\\\\n responses:\\\\n '200':\\\\n description: OK\\\\n parameters:\\\\n - in: path\\\\n name: roleID\\\\n description: Role ID\\\\n required: true\\\\n schema: *ref_14\\\\n requestBody:\\\\n content:\\\\n application/json:\\\\n schema:\\\\n type: object\\\\n properties: &ref_27\\\\n rules:\\\\n type: array\\\\n items:\\\\n type: object\\\\n properties:\\\\n roleID:\\\\n type: string\\\\n format: uuid\\\\n resource:\\\\n type: string\\\\n operation:\\\\n type: string\\\\n access:\\\\n type: string\\\\n description: List of permission rules to set\\\\n required:\\\\n - rules\\\\n application/x-www-form-urlencoded:\\\\n schema:\\\\n type: object\\\\n properties: *ref_27\\\\n /reminder/:\\\\n get:\\\\n tags:\\\\n - Reminders\\\\n summary: List/read reminders\\\\n responses:\\\\n '200':\\\\n description: OK\\\\n parameters:\\\\n - in: query\\\\n name: reminderID\\\\n description: Filter by reminder ID\\\\n required: false\\\\n schema:\\\\n type: array\\\\n items: *ref_10\\\\n - in: query\\\\n name: resource\\\\n description: Only reminders of a specific resource\\\\n required: false\\\\n schema: *ref_10\\\\n - in: query\\\\n name: assignedTo\\\\n description: Only reminders for a given user\\\\n required: false\\\\n schema: *ref_14\\\\n - in: query\\\\n name: scheduledFrom\\\\n description: Only reminders from this time (included)\\\\n required: false\\\\n schema: &ref_28\\\\n type: string\\\\n format: date-time\\\\n - in: query\\\\n name: scheduledUntil\\\\n description: Only reminders up to this time (included)\\\\n required: false\\\\n schema: *ref_28\\\\n - in: query\\\\n name: scheduledOnly\\\\n description: Only scheduled reminders\\\\n required: false\\\\n schema: *ref_19\\\\n - in: query\\\\n name: excludeDismissed\\\\n description: Filter out dismissed reminders\\\\n required: false\\\\n schema: *ref_19\\\\n - in: query\\\\n name: limit\\\\n description: Limit\\\\n required: false\\\\n schema: *ref_12\\\\n - in: query\\\\n name: pageCursor\\\\n description: Page cursor\\\\n required: false\\\\n schema: *ref_10\\\\n - in: query\\\\n name: sort\\\\n description: Sort items\\\\n required: false\\\\n schema: *ref_10\\\\n post:\\\\n tags:\\\\n - Reminders\\\\n summary: Add new reminder\\\\n responses:\\\\n '200':\\\\n description: OK\\\\n requestBody:\\\\n content:\\\\n application/json:\\\\n schema:\\\\n type: object\\\\n properties: &ref_29\\\\n resource:\\\\n type: string\\\\n description: Resource\\\\n assignedTo:\\\\n type: string\\\\n description: Assigned To\\\\n payload:\\\\n type: string\\\\n format: json\\\\n description: Payload\\\\n remindAt:\\\\n type: string\\\\n format: date-time\\\\n description: Remind At\\\\n required:\\\\n - resource\\\\n - assignedTo\\\\n - payload\\\\n application/x-www-form-urlencoded:\\\\n schema:\\\\n type: object\\\\n properties: *ref_29\\\\n '/reminder/{reminderID}':\\\\n put:\\\\n tags:\\\\n - Reminders\\\\n summary: Update reminder\\\\n responses:\\\\n '200':\\\\n description: OK\\\\n parameters:\\\\n - in: path\\\\n name: reminderID\\\\n description: Reminder ID\\\\n required: true\\\\n schema: *ref_14\\\\n requestBody:\\\\n content:\\\\n application/json:\\\\n schema:\\\\n type: object\\\\n properties: &ref_30\\\\n resource:\\\\n type: string\\\\n description: Resource\\\\n assignedTo:\\\\n type: string\\\\n description: Assigned To\\\\n payload:\\\\n type: string\\\\n format: json\\\\n description: Payload\\\\n remindAt:\\\\n type: string\\\\n format: date-time\\\\n description: Remind At\\\\n required:\\\\n - resource\\\\n - assignedTo\\\\n - payload\\\\n application/x-www-form-urlencoded:\\\\n schema:\\\\n type: object\\\\n properties: *ref_30\\\\n get:\\\\n tags:\\\\n - Reminders\\\\n summary: Read reminder by ID\\\\n responses:\\\\n '200':\\\\n description: OK\\\\n parameters:\\\\n - in: path\\\\n name: reminderID\\\\n description: Reminder ID\\\\n required: true\\\\n schema: *ref_14\\\\n delete:\\\\n tags:\\\\n - Reminders\\\\n summary: Delete reminder\\\\n responses:\\\\n '200':\\\\n description: OK\\\\n parameters:\\\\n - in: path\\\\n name: reminderID\\\\n description: Reminder ID\\\\n required: true\\\\n schema: *ref_14\\\\n '/reminder/{reminderID}/dismiss':\\\\n patch:\\\\n tags:\\\\n - Reminders\\\\n summary: Dismiss reminder\\\\n responses:\\\\n '200':\\\\n description: OK\\\\n parameters:\\\\n - in: path\\\\n name: reminderID\\\\n description: reminder ID\\\\n required: true\\\\n schema: *ref_14\\\\n '/reminder/{reminderID}/snooze':\\\\n patch:\\\\n tags:\\\\n - Reminders\\\\n summary: Snooze reminder\\\\n responses:\\\\n '200':\\\\n description: OK\\\\n parameters:\\\\n - in: path\\\\n name: reminderID\\\\n description: reminder ID\\\\n required: true\\\\n schema: *ref_14\\\\n requestBody:\\\\n content:\\\\n application/json:\\\\n schema:\\\\n type: object\\\\n properties: &ref_31\\\\n remindAt:\\\\n type: string\\\\n format: date-time\\\\n description: New Remind At Time\\\\n required:\\\\n - remindAt\\\\n application/x-www-form-urlencoded:\\\\n schema:\\\\n type: object\\\\n properties: *ref_31\\\\n '/attachment/{kind}/{attachmentID}':\\\\n get:\\\\n tags:\\\\n - Attachments\\\\n summary: Attachment details\\\\n responses:\\\\n '200':\\\\n description: OK\\\\n parameters:\\\\n - in: path\\\\n name: kind\\\\n description: Kind\\\\n required: true\\\\n schema: *ref_10\\\\n - in: path\\\\n name: attachmentID\\\\n description: Attachment ID\\\\n required: true\\\\n schema: *ref_14\\\\n - in: query\\\\n name: sign\\\\n description: Signature\\\\n required: false\\\\n schema: *ref_10\\\\n - in: query\\\\n name: userID\\\\n description: User ID\\\\n required: false\\\\n schema: *ref_14\\\\n delete:\\\\n tags:\\\\n - Attachments\\\\n summary: Delete attachment\\\\n responses:\\\\n '200':\\\\n description: OK\\\\n parameters:\\\\n - in: path\\\\n name: kind\\\\n description: Kind\\\\n required: true\\\\n schema: *ref_10\\\\n - in: path\\\\n name: attachmentID\\\\n description: Attachment ID\\\\n required: true\\\\n schema: *ref_14\\\\n - in: query\\\\n name: sign\\\\n description: Signature\\\\n required: false\\\\n schema: *ref_10\\\\n - in: query\\\\n name: userID\\\\n description: User ID\\\\n required: false\\\\n schema: *ref_14\\\\n '/attachment/{kind}/{attachmentID}/original/{name}':\\\\n get:\\\\n tags:\\\\n - Attachments\\\\n summary: Serves attached file\\\\n responses:\\\\n '200':\\\\n description: OK\\\\n parameters:\\\\n - in: path\\\\n name: kind\\\\n description: Kind\\\\n required: true\\\\n schema: *ref_10\\\\n - in: path\\\\n name: attachmentID\\\\n description: Attachment ID\\\\n required: true\\\\n schema: *ref_14\\\\n - in: path\\\\n name: name\\\\n description: File name\\\\n required: true\\\\n schema: *ref_10\\\\n - in: query\\\\n name: sign\\\\n description: Signature\\\\n required: false\\\\n schema: *ref_10\\\\n - in: query\\\\n name: userID\\\\n description: User ID\\\\n required: false\\\\n schema: *ref_14\\\\n - in: query\\\\n name: download\\\\n description: Force file download\\\\n required: false\\\\n schema: *ref_19\\\\n '/attachment/{kind}/{attachmentID}/preview.{ext}':\\\\n get:\\\\n tags:\\\\n - Attachments\\\\n summary: Serves preview of an attached file\\\\n responses:\\\\n '200':\\\\n description: OK\\\\n parameters:\\\\n - in: path\\\\n name: kind\\\\n description: Kind\\\\n required: true\\\\n schema: *ref_10\\\\n - in: path\\\\n name: attachmentID\\\\n description: Attachment ID\\\\n required: true\\\\n schema: *ref_14\\\\n - in: path\\\\n name: ext\\\\n description: Preview extension/format\\\\n required: true\\\\n schema: *ref_10\\\\n - in: query\\\\n name: sign\\\\n description: Signature\\\\n required: false\\\\n schema: *ref_10\\\\n - in: query\\\\n name: userID\\\\n description: User ID\\\\n required: false\\\\n schema: *ref_14\\\\n /stats/:\\\\n get:\\\\n tags:\\\\n - Statistics\\\\n summary: List system statistics\\\\n responses:\\\\n '200':\\\\n description: OK\\\\n /automation/:\\\\n get:\\\\n tags:\\\\n - System automation scripts\\\\n summary: List all available automation scripts for system resources\\\\n responses:\\\\n '200':\\\\n description: OK\\\\n parameters:\\\\n - in: query\\\\n name: resourceTypePrefixes\\\\n description: Filter by resource prefix\\\\n required: false\\\\n schema:\\\\n type: array\\\\n items: *ref_10\\\\n - in: query\\\\n name: resourceTypes\\\\n description: Filter by resource type\\\\n required: false\\\\n schema:\\\\n type: array\\\\n items: *ref_10\\\\n - in: query\\\\n name: eventTypes\\\\n description: Filter by event type\\\\n required: false\\\\n schema:\\\\n type: array\\\\n items: *ref_10\\\\n - in: query\\\\n name: excludeInvalid\\\\n description: Exclude scripts that can not be used (errors)\\\\n required: false\\\\n schema: *ref_19\\\\n - in: query\\\\n name: excludeClientScripts\\\\n description: Do not include client scripts\\\\n required: false\\\\n schema: *ref_19\\\\n - in: query\\\\n name: excludeServerScripts\\\\n description: Do not include server scripts\\\\n required: false\\\\n schema: *ref_19\\\\n '/automation/{bundle}-{type}.{ext}':\\\\n get:\\\\n tags:\\\\n - System automation scripts\\\\n summary: Serves client scripts bundle\\\\n responses:\\\\n '200':\\\\n description: OK\\\\n parameters:\\\\n - in: path\\\\n name: bundle\\\\n description: Name of the bundle\\\\n required: true\\\\n schema: *ref_10\\\\n - in: path\\\\n name: type\\\\n description: Bundle type\\\\n required: true\\\\n schema: *ref_10\\\\n - in: path\\\\n name: ext\\\\n description: Bundle extension\\\\n required: true\\\\n schema: *ref_10\\\\n /automation/trigger:\\\\n post:\\\\n tags:\\\\n - System automation scripts\\\\n summary: Triggers execution of a specific script on a system service level\\\\n responses:\\\\n '200':\\\\n description: OK\\\\n requestBody:\\\\n content:\\\\n application/json:\\\\n schema:\\\\n type: object\\\\n properties: &ref_32\\\\n script:\\\\n type: string\\\\n description: Script to execute\\\\n required:\\\\n - script\\\\n application/x-www-form-urlencoded:\\\\n schema:\\\\n type: object\\\\n properties: *ref_32\\\\n /actionlog/:\\\\n get:\\\\n tags:\\\\n - Action log\\\\n summary: Action log events\\\\n responses:\\\\n '200':\\\\n description: OK\\\\n parameters:\\\\n - in: query\\\\n name: from\\\\n description: From\\\\n required: false\\\\n schema: *ref_28\\\\n - in: query\\\\n name: to\\\\n description: To\\\\n required: false\\\\n schema: *ref_28\\\\n - in: query\\\\n name: resource\\\\n description: Resource\\\\n required: false\\\\n schema: *ref_10\\\\n - in: query\\\\n name: action\\\\n description: Action\\\\n required: false\\\\n schema: *ref_10\\\\n - in: query\\\\n name: actorID\\\\n description: Filter by one or more actors\\\\n required: false\\\\n schema:\\\\n type: array\\\\n items: *ref_10\\\\n - in: query\\\\n name: limit\\\\n description: Limit\\\\n required: false\\\\n schema: *ref_12\\\\n - in: query\\\\n name: pageCursor\\\\n description: Page cursor\\\\n required: false\\\\n schema: *ref_10\\\\nPK\\\\x07\\\\x08\\\\x1c\\\\xc1\\\\xc8\\\\xd4H\\\\xb1\\\\x00\\\\x00H\\\\xb1\\\\x00\\\\x00PK\\\\x01\\\\x02\\\\x14\\\\x03\\\\x14\\\\x00\\\\x08\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00!($jr\\\\x0dN\\\\x03\\\\x00\\\\x00N\\\\x03\\\\x00\\\\x00\\\\x0b\\\\x00 \\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\xa4\\\\x81\\\\x00\\\\x00\\\\x00\\\\x00README.adocUT\\\\x05\\\\x00\\\\x01\\\\x80Cm8PK\\\\x01\\\\x02\\\\x14\\\\x03\\\\x14\\\\x00\\\\x08\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00!(\\\\xf4\\\\xc4\\\\xa2\\\\x1d\\\\xdb\\\\xc9\\\\x00\\\\x00\\\\xdb\\\\xc9\\\\x00\\\\x00\\\\x0c\\\\x00 \\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\xa4\\\\x81\\\\x90\\\\x03\\\\x00\\\\x00compose.yamlUT\\\\x05\\\\x00\\\\x01\\\\x80Cm8PK\\\\x01\\\\x02\\\\x14\\\\x03\\\\x14\\\\x00\\\\x08\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00!(;\\\\xaaT,B\\\\x07\\\\x00\\\\x00B\\\\x07\\\\x00\\\\x00\\\\n\\\\x00 \\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\xa4\\\\x81\\\\xae\\\\xcd\\\\x00\\\\x00index.htmlUT\\\\x05\\\\x00\\\\x01\\\\x80Cm8PK\\\\x01\\\\x02\\\\x14\\\\x03\\\\x14\\\\x00\\\\x08\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00!(\\\\x83J.D\\\\x82^\\\\x00\\\\x00\\\\x82^\\\\x00\\\\x00\\\\x0e\\\\x00 \\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\xa4\\\\x811\\\\xd5\\\\x00\\\\x00messaging.yamlUT\\\\x05\\\\x00\\\\x01\\\\x80Cm8PK\\\\x01\\\\x02\\\\x14\\\\x03\\\\x14\\\\x00\\\\x08\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00!(6\\\\xc2Y\\\\x9d\\\\xe1\\\\xfe\\\\x01\\\\x00\\\\xe1\\\\xfe\\\\x01\\\\x00 \\\\x00 \\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\xa4\\\\x81\\\\xf83\\\\x01\\\\x00static.goUT\\\\x05\\\\x00\\\\x01\\\\x80Cm8PK\\\\x01\\\\x02\\\\x14\\\\x03\\\\x14\\\\x00\\\\x08\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00!(\\\\x1c\\\\xc1\\\\xc8\\\\xd4H\\\\xb1\\\\x00\\\\x00H\\\\xb1\\\\x00\\\\x00\\\\x0b\\\\x00 \\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\x00\\\\xa4\\\\x81\\\\x193\\\\x03\\\\x00system.yamlUT\\\\x05\\\\x00\\\\x01\\\\x80Cm8PK\\\\x05\\\\x06\\\\x00\\\\x00\\\\x00\\\\x00\\\\x06\\\\x00\\\\x06\\\\x00\\\\x8d\\\\x01\\\\x00\\\\x00\\\\xa3\\\\xe4\\\\x03\\\\x00\\\\x00\\\\x00\\\"\\nPK\\x07\\x08\\xbf\\n\\x80\\xfc\\xb3\\x13\\x04\\x00\\xb3\\x13\\x04\\x00PK\\x03\\x04\\x14\\x00\\x08\\x00\\x00\\x00\\x00\\x00!(\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x0b\\x00 \\x00system.yamlUT\\x05\\x00\\x01\\x80Cm8openapi: 3.0.0\\ninfo:\\n title: Corteza System API\\n description: Corteza System REST API definition\\n version: 2020.12\\n contact:\\n email: info@cortezaproject.org\\n license:\\n name: Apache 2.0\\n url: 'http://www.apache.org/licenses/LICENSE-2.0.html'\\npaths:\\n /auth/:\\n get:\\n tags:\\n - Authentication\\n summary: Returns auth settings\\n responses:\\n '200':\\n description: OK\\n /auth/check:\\n get:\\n tags:\\n - Authentication\\n summary: Check JWT token\\n responses:\\n '200':\\n description: OK\\n /auth/impersonate:\\n post:\\n tags:\\n - Authentication\\n summary: Impersonate a user\\n responses:\\n '200':\\n description: OK\\n requestBody:\\n content:\\n application/json:\\n schema:\\n type: object\\n properties: &ref_0\\n userID:\\n type: string\\n description: ID of the impersonated user\\n required:\\n - userID\\n application/x-www-form-urlencoded:\\n schema:\\n type: object\\n properties: *ref_0\\n /auth/exchange:\\n post:\\n tags:\\n - Authentication\\n summary: Exchange auth token for JWT\\n responses:\\n '200':\\n description: OK\\n requestBody:\\n content:\\n application/json:\\n schema:\\n type: object\\n properties: &ref_1\\n token:\\n type: string\\n description: Token to be exchanged for JWT\\n required:\\n - token\\n application/x-www-form-urlencoded:\\n schema:\\n type: object\\n properties: *ref_1\\n /auth/logout:\\n get:\\n tags:\\n - Authentication\\n summary: Logout\\n responses:\\n '200':\\n description: OK\\n /auth/internal/login:\\n post:\\n tags:\\n - Internal authentication\\n summary: Login user\\n responses:\\n '200':\\n description: OK\\n requestBody:\\n content:\\n application/json:\\n schema:\\n type: object\\n properties: &ref_2\\n email:\\n type: string\\n description: Email\\n password:\\n type: string\\n format: password\\n description: Password\\n required:\\n - email\\n - password\\n application/x-www-form-urlencoded:\\n schema:\\n type: object\\n properties: *ref_2\\n /auth/internal/signup:\\n post:\\n tags:\\n - Internal authentication\\n summary: User signup/registration\\n responses:\\n '200':\\n description: OK\\n requestBody:\\n content:\\n application/json:\\n schema:\\n type: object\\n properties: &ref_3\\n email:\\n type: string\\n description: Email\\n username:\\n type: string\\n description: Username\\n password:\\n type: string\\n format: password\\n description: Password\\n handle:\\n type: string\\n description: User handle\\n name:\\n type: string\\n description: Display name\\n required:\\n - email\\n - password\\n application/x-www-form-urlencoded:\\n schema:\\n type: object\\n properties: *ref_3\\n /auth/internal/request-password-reset:\\n post:\\n tags:\\n - Internal authentication\\n summary: Request password reset token (via email)\\n responses:\\n '200':\\n description: OK\\n requestBody:\\n content:\\n application/json:\\n schema:\\n type: object\\n properties: &ref_4\\n email:\\n type: string\\n description: Email\\n required:\\n - email\\n application/x-www-form-urlencoded:\\n schema:\\n type: object\\n properties: *ref_4\\n /auth/internal/exchange-password-reset-token:\\n post:\\n tags:\\n - Internal authentication\\n summary: Exchange password reset token for new token and user info\\n responses:\\n '200':\\n description: OK\\n requestBody:\\n content:\\n application/json:\\n schema:\\n type: object\\n properties: &ref_5\\n token:\\n type: string\\n description: Token\\n required:\\n - token\\n application/x-www-form-urlencoded:\\n schema:\\n type: object\\n properties: *ref_5\\n /auth/internal/reset-password:\\n post:\\n tags:\\n - Internal authentication\\n summary: Reset password with exchanged password reset token\\n responses:\\n '200':\\n description: OK\\n requestBody:\\n content:\\n application/json:\\n schema:\\n type: object\\n properties: &ref_6\\n token:\\n type: string\\n description: Token\\n password:\\n type: string\\n format: password\\n description: Password\\n required:\\n - token\\n - password\\n application/x-www-form-urlencoded:\\n schema:\\n type: object\\n properties: *ref_6\\n /auth/internal/confirm-email:\\n post:\\n tags:\\n - Internal authentication\\n summary: Confirm email with token\\n responses:\\n '200':\\n description: OK\\n requestBody:\\n content:\\n application/json:\\n schema:\\n type: object\\n properties: &ref_7\\n token:\\n type: string\\n description: Token\\n required:\\n - token\\n application/x-www-form-urlencoded:\\n schema:\\n type: object\\n properties: *ref_7\\n /auth/internal/change-password:\\n post:\\n tags:\\n - Internal authentication\\n summary: 'Changes password for current user, requires current password'\\n responses:\\n '200':\\n description: OK\\n requestBody:\\n content:\\n application/json:\\n schema:\\n type: object\\n properties: &ref_8\\n oldPassword:\\n type: string\\n description: Old password\\n newPassword:\\n type: string\\n description: New password\\n required:\\n - oldPassword\\n - newPassword\\n application/x-www-form-urlencoded:\\n schema:\\n type: object\\n properties: *ref_8\\n /settings/:\\n get:\\n tags:\\n - Settings\\n summary: List settings\\n responses:\\n '200':\\n description: OK\\n parameters:\\n - in: query\\n name: prefix\\n description: Key prefix\\n required: false\\n schema: &ref_10\\n type: string\\n patch:\\n tags:\\n - Settings\\n summary: Update settings\\n responses:\\n '200':\\n description: OK\\n requestBody:\\n content:\\n application/json:\\n schema:\\n type: object\\n properties: &ref_9\\n values:\\n type: array\\n items:\\n type: object\\n properties:\\n name:\\n type: string\\n value:\\n type: string\\n description: >-\\n Array of new settings: `[{ name: ..., value: ... }]`. Omit\\n value to remove setting\\n required:\\n - values\\n application/x-www-form-urlencoded:\\n schema:\\n type: object\\n properties: *ref_9\\n '/settings/{key}':\\n get:\\n tags:\\n - Settings\\n summary: Get a value for a key\\n responses:\\n '200':\\n description: OK\\n parameters:\\n - in: path\\n name: key\\n description: Setting key\\n required: true\\n schema: *ref_10\\n - in: query\\n name: ownerID\\n description: Owner ID\\n required: false\\n schema: &ref_14\\n type: string\\n post:\\n tags:\\n - Settings\\n summary: Set value for specific setting\\n responses:\\n '200':\\n description: OK\\n parameters:\\n - in: path\\n name: key\\n description: Key\\n required: true\\n schema: *ref_10\\n requestBody:\\n content:\\n application/json:\\n schema:\\n type: object\\n properties: &ref_11\\n upload:\\n type: string\\n format: binary\\n description: File to upload\\n ownerID:\\n type: string\\n description: Owner ID\\n application/x-www-form-urlencoded:\\n schema:\\n type: object\\n properties: *ref_11\\n /settings/current:\\n get:\\n tags:\\n - Settings\\n summary: Current compose settings\\n responses:\\n '200':\\n description: OK\\n /subscription/:\\n get:\\n tags:\\n - Subscription\\n summary: Returns current subscription status\\n responses:\\n '200':\\n description: OK\\n /roles/:\\n get:\\n tags:\\n - Roles\\n summary: List roles\\n responses:\\n '200':\\n description: OK\\n parameters:\\n - in: query\\n name: query\\n description: Search query\\n required: false\\n schema: *ref_10\\n - in: query\\n name: deleted\\n description: 'Exclude (0, default), include (1) or return only (2) deleted roles'\\n required: false\\n schema: &ref_12\\n type: string\\n - in: query\\n name: archived\\n description: 'Exclude (0, default), include (1) or return only (2) achived roles'\\n required: false\\n schema: *ref_12\\n - in: query\\n name: limit\\n description: Limit\\n required: false\\n schema: *ref_12\\n - in: query\\n name: pageCursor\\n description: Page cursor\\n required: false\\n schema: *ref_10\\n - in: query\\n name: sort\\n description: Sort items\\n required: false\\n schema: *ref_10\\n post:\\n tags:\\n - Roles\\n summary: Update role details\\n responses:\\n '200':\\n description: OK\\n requestBody:\\n content:\\n application/json:\\n schema:\\n type: object\\n properties: &ref_13\\n name:\\n type: string\\n description: Name of Role\\n handle:\\n type: string\\n description: Handle for Role\\n members:\\n type: array\\n items: *ref_10\\n description: Role member IDs\\n required:\\n - name\\n - handle\\n application/x-www-form-urlencoded:\\n schema:\\n type: object\\n properties: *ref_13\\n '/roles/{roleID}':\\n put:\\n tags:\\n - Roles\\n summary: Update role details\\n responses:\\n '200':\\n description: OK\\n parameters:\\n - in: path\\n name: roleID\\n description: Role ID\\n required: true\\n schema: *ref_14\\n requestBody:\\n content:\\n application/json:\\n schema:\\n type: object\\n properties: &ref_15\\n name:\\n type: string\\n description: Name of Role\\n handle:\\n type: string\\n description: Handle for Role\\n members:\\n type: array\\n items: *ref_10\\n description: Role member IDs\\n application/x-www-form-urlencoded:\\n schema:\\n type: object\\n properties: *ref_15\\n get:\\n tags:\\n - Roles\\n summary: Read role details and memberships\\n responses:\\n '200':\\n description: OK\\n parameters:\\n - in: path\\n name: roleID\\n description: Role ID\\n required: true\\n schema: *ref_14\\n delete:\\n tags:\\n - Roles\\n summary: Remove role\\n responses:\\n '200':\\n description: OK\\n parameters:\\n - in: path\\n name: roleID\\n description: Role ID\\n required: true\\n schema: *ref_14\\n '/roles/{roleID}/archive':\\n post:\\n tags:\\n - Roles\\n summary: Archive role\\n responses:\\n '200':\\n description: OK\\n parameters:\\n - in: path\\n name: roleID\\n description: Role ID\\n required: true\\n schema: *ref_14\\n '/roles/{roleID}/unarchive':\\n post:\\n tags:\\n - Roles\\n summary: Unarchive role\\n responses:\\n '200':\\n description: OK\\n parameters:\\n - in: path\\n name: roleID\\n description: Role ID\\n required: true\\n schema: *ref_14\\n '/roles/{roleID}/undelete':\\n post:\\n tags:\\n - Roles\\n summary: Undelete role\\n responses:\\n '200':\\n description: OK\\n parameters:\\n - in: path\\n name: roleID\\n description: Role ID\\n required: true\\n schema: *ref_14\\n '/roles/{roleID}/move':\\n post:\\n tags:\\n - Roles\\n summary: Move role to different organisation\\n responses:\\n '200':\\n description: OK\\n parameters:\\n - in: path\\n name: roleID\\n description: Role ID\\n required: true\\n schema: *ref_14\\n requestBody:\\n content:\\n application/json:\\n schema:\\n type: object\\n properties: &ref_16\\n organisationID:\\n type: string\\n description: Role ID\\n required:\\n - organisationID\\n application/x-www-form-urlencoded:\\n schema:\\n type: object\\n properties: *ref_16\\n '/roles/{roleID}/merge':\\n post:\\n tags:\\n - Roles\\n summary: Merge one role into another\\n responses:\\n '200':\\n description: OK\\n parameters:\\n - in: path\\n name: roleID\\n description: Source Role ID\\n required: true\\n schema: *ref_14\\n requestBody:\\n content:\\n application/json:\\n schema:\\n type: object\\n properties: &ref_17\\n destination:\\n type: string\\n description: Destination Role ID\\n required:\\n - destination\\n application/x-www-form-urlencoded:\\n schema:\\n type: object\\n properties: *ref_17\\n '/roles/{roleID}/members':\\n get:\\n tags:\\n - Roles\\n summary: Returns all role members\\n responses:\\n '200':\\n description: OK\\n parameters:\\n - in: path\\n name: roleID\\n description: Source Role ID\\n required: true\\n schema: *ref_14\\n '/roles/{roleID}/member/{userID}':\\n post:\\n tags:\\n - Roles\\n summary: Add member to a role\\n responses:\\n '200':\\n description: OK\\n parameters:\\n - in: path\\n name: roleID\\n description: Source Role ID\\n required: true\\n schema: *ref_14\\n - in: path\\n name: userID\\n description: User ID\\n required: true\\n schema: *ref_14\\n delete:\\n tags:\\n - Roles\\n summary: Remove member from a role\\n responses:\\n '200':\\n description: OK\\n parameters:\\n - in: path\\n name: roleID\\n description: Source Role ID\\n required: true\\n schema: *ref_14\\n - in: path\\n name: userID\\n description: User ID\\n required: true\\n schema: *ref_14\\n '/roles/{roleID}/trigger':\\n post:\\n tags:\\n - Roles\\n summary: 'Fire system:role trigger'\\n responses:\\n '200':\\n description: OK\\n parameters:\\n - in: path\\n name: roleID\\n description: ID\\n required: true\\n schema: *ref_14\\n requestBody:\\n content:\\n application/json:\\n schema:\\n type: object\\n properties: &ref_18\\n script:\\n type: string\\n description: Script to execute\\n required:\\n - script\\n application/x-www-form-urlencoded:\\n schema:\\n type: object\\n properties: *ref_18\\n /users/:\\n get:\\n tags:\\n - Users\\n summary: Search users (Directory)\\n responses:\\n '200':\\n description: OK\\n parameters:\\n - in: query\\n name: userID\\n description: Filter by user ID\\n required: false\\n schema:\\n type: array\\n items: *ref_10\\n - in: query\\n name: roleID\\n description: Filter by role membership\\n required: false\\n schema:\\n type: array\\n items: *ref_10\\n - in: query\\n name: query\\n description: Search query to match against users\\n required: false\\n schema: *ref_10\\n - in: query\\n name: username\\n description: Search username to match against users\\n required: false\\n schema: *ref_10\\n - in: query\\n name: email\\n description: Search email to match against users\\n required: false\\n schema: *ref_10\\n - in: query\\n name: handle\\n description: Search handle to match against users\\n required: false\\n schema: *ref_10\\n - in: query\\n name: kind\\n description: 'Kind (normal, bot)'\\n required: false\\n schema:\\n type: string\\n - in: query\\n name: incDeleted\\n description: '[Deprecated] Include deleted users (requires ''access'' permission)'\\n required: false\\n schema: &ref_19\\n type: boolean\\n - in: query\\n name: incSuspended\\n description: '[Deprecated] Include suspended users'\\n required: false\\n schema: *ref_19\\n - in: query\\n name: deleted\\n description: 'Exclude (0, default), include (1) or return only (2) deleted users'\\n required: false\\n schema: *ref_12\\n - in: query\\n name: suspended\\n description: 'Exclude (0, default), include (1) or return only (2) suspended users'\\n required: false\\n schema: *ref_12\\n - in: query\\n name: limit\\n description: Limit\\n required: false\\n schema: *ref_12\\n - in: query\\n name: pageCursor\\n description: Page cursor\\n required: false\\n schema: *ref_10\\n - in: query\\n name: sort\\n description: Sort items\\n required: false\\n schema: *ref_10\\n post:\\n tags:\\n - Users\\n summary: Create user\\n responses:\\n '200':\\n description: OK\\n requestBody:\\n content:\\n application/json:\\n schema:\\n type: object\\n properties: &ref_20\\n email:\\n type: string\\n description: Email\\n name:\\n type: string\\n description: Name\\n handle:\\n type: string\\n description: Handle\\n kind:\\n type: string\\n description: 'Kind (normal, bot)'\\n required:\\n - email\\n application/x-www-form-urlencoded:\\n schema:\\n type: object\\n properties: *ref_20\\n '/users/{userID}':\\n put:\\n tags:\\n - Users\\n summary: Update user details\\n responses:\\n '200':\\n description: OK\\n parameters:\\n - in: path\\n name: userID\\n description: User ID\\n required: true\\n schema: *ref_14\\n requestBody:\\n content:\\n application/json:\\n schema:\\n type: object\\n properties: &ref_21\\n email:\\n type: string\\n description: Email\\n name:\\n type: string\\n description: Name\\n handle:\\n type: string\\n description: Handle\\n kind:\\n type: string\\n description: 'Kind (normal, bot)'\\n required:\\n - email\\n - name\\n application/x-www-form-urlencoded:\\n schema:\\n type: object\\n properties: *ref_21\\n get:\\n tags:\\n - Users\\n summary: Read user details\\n responses:\\n '200':\\n description: OK\\n parameters:\\n - in: path\\n name: userID\\n description: User ID\\n required: true\\n schema: *ref_14\\n delete:\\n tags:\\n - Users\\n summary: Remove user\\n responses:\\n '200':\\n description: OK\\n parameters:\\n - in: path\\n name: userID\\n description: User ID\\n required: true\\n schema: *ref_14\\n '/users/{userID}/suspend':\\n post:\\n tags:\\n - Users\\n summary: Suspend user\\n responses:\\n '200':\\n description: OK\\n parameters:\\n - in: path\\n name: userID\\n description: User ID\\n required: true\\n schema: *ref_14\\n '/users/{userID}/unsuspend':\\n post:\\n tags:\\n - Users\\n summary: Unsuspend user\\n responses:\\n '200':\\n description: OK\\n parameters:\\n - in: path\\n name: userID\\n description: User ID\\n required: true\\n schema: *ref_14\\n '/users/{userID}/undelete':\\n post:\\n tags:\\n - Users\\n summary: Undelete user\\n responses:\\n '200':\\n description: OK\\n parameters:\\n - in: path\\n name: userID\\n description: User ID\\n required: true\\n schema: *ref_14\\n '/users/{userID}/password':\\n post:\\n tags:\\n - Users\\n summary: Set's or changes user's password\\n responses:\\n '200':\\n description: OK\\n parameters:\\n - in: path\\n name: userID\\n description: User ID\\n required: true\\n schema: *ref_14\\n requestBody:\\n content:\\n application/json:\\n schema:\\n type: object\\n properties: &ref_22\\n password:\\n type: string\\n format: password\\n description: New password\\n required:\\n - password\\n application/x-www-form-urlencoded:\\n schema:\\n type: object\\n properties: *ref_22\\n '/users/{userID}/membership':\\n get:\\n tags:\\n - Users\\n summary: Add member to a role\\n responses:\\n '200':\\n description: OK\\n parameters:\\n - in: path\\n name: userID\\n description: User ID\\n required: true\\n schema: *ref_14\\n '/users/{userID}/membership/{roleID}':\\n post:\\n tags:\\n - Users\\n summary: Add role to a user\\n responses:\\n '200':\\n description: OK\\n parameters:\\n - in: path\\n name: roleID\\n description: Role ID\\n required: true\\n schema: *ref_14\\n - in: path\\n name: userID\\n description: User ID\\n required: true\\n schema: *ref_14\\n delete:\\n tags:\\n - Users\\n summary: Remove role from a user\\n responses:\\n '200':\\n description: OK\\n parameters:\\n - in: path\\n name: roleID\\n description: Role ID\\n required: true\\n schema: *ref_14\\n - in: path\\n name: userID\\n description: User ID\\n required: true\\n schema: *ref_14\\n '/users/{userID}/trigger':\\n post:\\n tags:\\n - Users\\n summary: 'Fire system:user trigger'\\n responses:\\n '200':\\n description: OK\\n parameters:\\n - in: path\\n name: userID\\n description: ID\\n required: true\\n schema: *ref_14\\n requestBody:\\n content:\\n application/json:\\n schema:\\n type: object\\n properties: &ref_23\\n script:\\n type: string\\n description: Script to execute\\n required:\\n - script\\n application/x-www-form-urlencoded:\\n schema:\\n type: object\\n properties: *ref_23\\n /application/:\\n get:\\n tags:\\n - Applications\\n summary: List applications\\n responses:\\n '200':\\n description: OK\\n parameters:\\n - in: query\\n name: name\\n description: Application name\\n required: false\\n schema: *ref_10\\n - in: query\\n name: query\\n description: Filter applications\\n required: false\\n schema: *ref_10\\n - in: query\\n name: deleted\\n description: 'Exclude (0, default), include (1) or return only (2) deleted roles'\\n required: false\\n schema: *ref_12\\n - in: query\\n name: limit\\n description: Limit\\n required: false\\n schema: *ref_12\\n - in: query\\n name: pageCursor\\n description: Page cursor\\n required: false\\n schema: *ref_10\\n - in: query\\n name: sort\\n description: Sort items\\n required: false\\n schema: *ref_10\\n post:\\n tags:\\n - Applications\\n summary: Create application\\n responses:\\n '200':\\n description: OK\\n requestBody:\\n content:\\n application/json:\\n schema:\\n type: object\\n properties: &ref_24\\n name:\\n type: string\\n description: Application name\\n enabled:\\n type: boolean\\n description: Enabled\\n unify:\\n type: string\\n format: json\\n description: Unify properties\\n config:\\n type: string\\n format: json\\n description: Arbitrary JSON holding application configuration\\n required:\\n - name\\n application/x-www-form-urlencoded:\\n schema:\\n type: object\\n properties: *ref_24\\n '/application/{applicationID}':\\n put:\\n tags:\\n - Applications\\n summary: Update user details\\n responses:\\n '200':\\n description: OK\\n parameters:\\n - in: path\\n name: applicationID\\n description: Application ID\\n required: true\\n schema: *ref_14\\n requestBody:\\n content:\\n application/json:\\n schema:\\n type: object\\n properties: &ref_25\\n name:\\n type: string\\n description: Email\\n enabled:\\n type: boolean\\n description: Enabled\\n unify:\\n type: string\\n format: json\\n description: Unify properties\\n config:\\n type: string\\n format: json\\n description: Arbitrary JSON holding application configuration\\n required:\\n - name\\n application/x-www-form-urlencoded:\\n schema:\\n type: object\\n properties: *ref_25\\n get:\\n tags:\\n - Applications\\n summary: Read application details\\n responses:\\n '200':\\n description: OK\\n parameters:\\n - in: path\\n name: applicationID\\n description: Application ID\\n required: true\\n schema: *ref_14\\n delete:\\n tags:\\n - Applications\\n summary: Remove application\\n responses:\\n '200':\\n description: OK\\n parameters:\\n - in: path\\n name: applicationID\\n description: Application ID\\n required: true\\n schema: *ref_14\\n '/application/{applicationID}/undelete':\\n post:\\n tags:\\n - Applications\\n summary: Undelete application\\n responses:\\n '200':\\n description: OK\\n parameters:\\n - in: path\\n name: applicationID\\n description: Application ID\\n required: true\\n schema: *ref_14\\n '/application/{applicationID}/trigger':\\n post:\\n tags:\\n - Applications\\n summary: 'Fire system:application trigger'\\n responses:\\n '200':\\n description: OK\\n parameters:\\n - in: path\\n name: applicationID\\n description: ID\\n required: true\\n schema: *ref_14\\n requestBody:\\n content:\\n application/json:\\n schema:\\n type: object\\n properties: &ref_26\\n script:\\n type: string\\n description: Script to execute\\n required:\\n - script\\n application/x-www-form-urlencoded:\\n schema:\\n type: object\\n properties: *ref_26\\n /permissions/:\\n get:\\n tags:\\n - Permissions\\n summary: Retrieve defined permissions\\n responses:\\n '200':\\n description: OK\\n /permissions/effective:\\n get:\\n tags:\\n - Permissions\\n summary: Effective rules for current user\\n responses:\\n '200':\\n description: OK\\n parameters:\\n - in: query\\n name: resource\\n description: Show only rules for a specific resource\\n required: false\\n schema: *ref_10\\n '/permissions/{roleID}/rules':\\n get:\\n tags:\\n - Permissions\\n summary: Retrieve role permissions\\n responses:\\n '200':\\n description: OK\\n parameters:\\n - in: path\\n name: roleID\\n description: Role ID\\n required: true\\n schema: *ref_14\\n delete:\\n tags:\\n - Permissions\\n summary: Remove all defined role permissions\\n responses:\\n '200':\\n description: OK\\n parameters:\\n - in: path\\n name: roleID\\n description: Role ID\\n required: true\\n schema: *ref_14\\n patch:\\n tags:\\n - Permissions\\n summary: Update permission settings\\n responses:\\n '200':\\n description: OK\\n parameters:\\n - in: path\\n name: roleID\\n description: Role ID\\n required: true\\n schema: *ref_14\\n requestBody:\\n content:\\n application/json:\\n schema:\\n type: object\\n properties: &ref_27\\n rules:\\n type: array\\n items:\\n type: object\\n properties:\\n roleID:\\n type: string\\n format: uuid\\n resource:\\n type: string\\n operation:\\n type: string\\n access:\\n type: string\\n description: List of permission rules to set\\n required:\\n - rules\\n application/x-www-form-urlencoded:\\n schema:\\n type: object\\n properties: *ref_27\\n /reminder/:\\n get:\\n tags:\\n - Reminders\\n summary: List/read reminders\\n responses:\\n '200':\\n description: OK\\n parameters:\\n - in: query\\n name: reminderID\\n description: Filter by reminder ID\\n required: false\\n schema:\\n type: array\\n items: *ref_10\\n - in: query\\n name: resource\\n description: Only reminders of a specific resource\\n required: false\\n schema: *ref_10\\n - in: query\\n name: assignedTo\\n description: Only reminders for a given user\\n required: false\\n schema: *ref_14\\n - in: query\\n name: scheduledFrom\\n description: Only reminders from this time (included)\\n required: false\\n schema: &ref_28\\n type: string\\n format: date-time\\n - in: query\\n name: scheduledUntil\\n description: Only reminders up to this time (included)\\n required: false\\n schema: *ref_28\\n - in: query\\n name: scheduledOnly\\n description: Only scheduled reminders\\n required: false\\n schema: *ref_19\\n - in: query\\n name: excludeDismissed\\n description: Filter out dismissed reminders\\n required: false\\n schema: *ref_19\\n - in: query\\n name: limit\\n description: Limit\\n required: false\\n schema: *ref_12\\n - in: query\\n name: pageCursor\\n description: Page cursor\\n required: false\\n schema: *ref_10\\n - in: query\\n name: sort\\n description: Sort items\\n required: false\\n schema: *ref_10\\n post:\\n tags:\\n - Reminders\\n summary: Add new reminder\\n responses:\\n '200':\\n description: OK\\n requestBody:\\n content:\\n application/json:\\n schema:\\n type: object\\n properties: &ref_29\\n resource:\\n type: string\\n description: Resource\\n assignedTo:\\n type: string\\n description: Assigned To\\n payload:\\n type: string\\n format: json\\n description: Payload\\n remindAt:\\n type: string\\n format: date-time\\n description: Remind At\\n required:\\n - resource\\n - assignedTo\\n - payload\\n application/x-www-form-urlencoded:\\n schema:\\n type: object\\n properties: *ref_29\\n '/reminder/{reminderID}':\\n put:\\n tags:\\n - Reminders\\n summary: Update reminder\\n responses:\\n '200':\\n description: OK\\n parameters:\\n - in: path\\n name: reminderID\\n description: Reminder ID\\n required: true\\n schema: *ref_14\\n requestBody:\\n content:\\n application/json:\\n schema:\\n type: object\\n properties: &ref_30\\n resource:\\n type: string\\n description: Resource\\n assignedTo:\\n type: string\\n description: Assigned To\\n payload:\\n type: string\\n format: json\\n description: Payload\\n remindAt:\\n type: string\\n format: date-time\\n description: Remind At\\n required:\\n - resource\\n - assignedTo\\n - payload\\n application/x-www-form-urlencoded:\\n schema:\\n type: object\\n properties: *ref_30\\n get:\\n tags:\\n - Reminders\\n summary: Read reminder by ID\\n responses:\\n '200':\\n description: OK\\n parameters:\\n - in: path\\n name: reminderID\\n description: Reminder ID\\n required: true\\n schema: *ref_14\\n delete:\\n tags:\\n - Reminders\\n summary: Delete reminder\\n responses:\\n '200':\\n description: OK\\n parameters:\\n - in: path\\n name: reminderID\\n description: Reminder ID\\n required: true\\n schema: *ref_14\\n '/reminder/{reminderID}/dismiss':\\n patch:\\n tags:\\n - Reminders\\n summary: Dismiss reminder\\n responses:\\n '200':\\n description: OK\\n parameters:\\n - in: path\\n name: reminderID\\n description: reminder ID\\n required: true\\n schema: *ref_14\\n '/reminder/{reminderID}/snooze':\\n patch:\\n tags:\\n - Reminders\\n summary: Snooze reminder\\n responses:\\n '200':\\n description: OK\\n parameters:\\n - in: path\\n name: reminderID\\n description: reminder ID\\n required: true\\n schema: *ref_14\\n requestBody:\\n content:\\n application/json:\\n schema:\\n type: object\\n properties: &ref_31\\n remindAt:\\n type: string\\n format: date-time\\n description: New Remind At Time\\n required:\\n - remindAt\\n application/x-www-form-urlencoded:\\n schema:\\n type: object\\n properties: *ref_31\\n '/attachment/{kind}/{attachmentID}':\\n get:\\n tags:\\n - Attachments\\n summary: Attachment details\\n responses:\\n '200':\\n description: OK\\n parameters:\\n - in: path\\n name: kind\\n description: Kind\\n required: true\\n schema: *ref_10\\n - in: path\\n name: attachmentID\\n description: Attachment ID\\n required: true\\n schema: *ref_14\\n - in: query\\n name: sign\\n description: Signature\\n required: false\\n schema: *ref_10\\n - in: query\\n name: userID\\n description: User ID\\n required: false\\n schema: *ref_14\\n delete:\\n tags:\\n - Attachments\\n summary: Delete attachment\\n responses:\\n '200':\\n description: OK\\n parameters:\\n - in: path\\n name: kind\\n description: Kind\\n required: true\\n schema: *ref_10\\n - in: path\\n name: attachmentID\\n description: Attachment ID\\n required: true\\n schema: *ref_14\\n - in: query\\n name: sign\\n description: Signature\\n required: false\\n schema: *ref_10\\n - in: query\\n name: userID\\n description: User ID\\n required: false\\n schema: *ref_14\\n '/attachment/{kind}/{attachmentID}/original/{name}':\\n get:\\n tags:\\n - Attachments\\n summary: Serves attached file\\n responses:\\n '200':\\n description: OK\\n parameters:\\n - in: path\\n name: kind\\n description: Kind\\n required: true\\n schema: *ref_10\\n - in: path\\n name: attachmentID\\n description: Attachment ID\\n required: true\\n schema: *ref_14\\n - in: path\\n name: name\\n description: File name\\n required: true\\n schema: *ref_10\\n - in: query\\n name: sign\\n description: Signature\\n required: false\\n schema: *ref_10\\n - in: query\\n name: userID\\n description: User ID\\n required: false\\n schema: *ref_14\\n - in: query\\n name: download\\n description: Force file download\\n required: false\\n schema: *ref_19\\n '/attachment/{kind}/{attachmentID}/preview.{ext}':\\n get:\\n tags:\\n - Attachments\\n summary: Serves preview of an attached file\\n responses:\\n '200':\\n description: OK\\n parameters:\\n - in: path\\n name: kind\\n description: Kind\\n required: true\\n schema: *ref_10\\n - in: path\\n name: attachmentID\\n description: Attachment ID\\n required: true\\n schema: *ref_14\\n - in: path\\n name: ext\\n description: Preview extension/format\\n required: true\\n schema: *ref_10\\n - in: query\\n name: sign\\n description: Signature\\n required: false\\n schema: *ref_10\\n - in: query\\n name: userID\\n description: User ID\\n required: false\\n schema: *ref_14\\n /stats/:\\n get:\\n tags:\\n - Statistics\\n summary: List system statistics\\n responses:\\n '200':\\n description: OK\\n /automation/:\\n get:\\n tags:\\n - System automation scripts\\n summary: List all available automation scripts for system resources\\n responses:\\n '200':\\n description: OK\\n parameters:\\n - in: query\\n name: resourceTypePrefixes\\n description: Filter by resource prefix\\n required: false\\n schema:\\n type: array\\n items: *ref_10\\n - in: query\\n name: resourceTypes\\n description: Filter by resource type\\n required: false\\n schema:\\n type: array\\n items: *ref_10\\n - in: query\\n name: eventTypes\\n description: Filter by event type\\n required: false\\n schema:\\n type: array\\n items: *ref_10\\n - in: query\\n name: excludeInvalid\\n description: Exclude scripts that can not be used (errors)\\n required: false\\n schema: *ref_19\\n - in: query\\n name: excludeClientScripts\\n description: Do not include client scripts\\n required: false\\n schema: *ref_19\\n - in: query\\n name: excludeServerScripts\\n description: Do not include server scripts\\n required: false\\n schema: *ref_19\\n '/automation/{bundle}-{type}.{ext}':\\n get:\\n tags:\\n - System automation scripts\\n summary: Serves client scripts bundle\\n responses:\\n '200':\\n description: OK\\n parameters:\\n - in: path\\n name: bundle\\n description: Name of the bundle\\n required: true\\n schema: *ref_10\\n - in: path\\n name: type\\n description: Bundle type\\n required: true\\n schema: *ref_10\\n - in: path\\n name: ext\\n description: Bundle extension\\n required: true\\n schema: *ref_10\\n /automation/trigger:\\n post:\\n tags:\\n - System automation scripts\\n summary: Triggers execution of a specific script on a system service level\\n responses:\\n '200':\\n description: OK\\n requestBody:\\n content:\\n application/json:\\n schema:\\n type: object\\n properties: &ref_32\\n script:\\n type: string\\n description: Script to execute\\n required:\\n - script\\n application/x-www-form-urlencoded:\\n schema:\\n type: object\\n properties: *ref_32\\n /actionlog/:\\n get:\\n tags:\\n - Action log\\n summary: Action log events\\n responses:\\n '200':\\n description: OK\\n parameters:\\n - in: query\\n name: from\\n description: From\\n required: false\\n schema: *ref_28\\n - in: query\\n name: to\\n description: To\\n required: false\\n schema: *ref_28\\n - in: query\\n name: resource\\n description: Resource\\n required: false\\n schema: *ref_10\\n - in: query\\n name: action\\n description: Action\\n required: false\\n schema: *ref_10\\n - in: query\\n name: actorID\\n description: Filter by one or more actors\\n required: false\\n schema:\\n type: array\\n items: *ref_10\\n - in: query\\n name: limit\\n description: Limit\\n required: false\\n schema: *ref_12\\n - in: query\\n name: pageCursor\\n description: Page cursor\\n required: false\\n schema: *ref_10\\nPK\\x07\\x08\\xdd\\xafQ=I\\xb1\\x00\\x00I\\xb1\\x00\\x00PK\\x01\\x02\\x14\\x03\\x14\\x00\\x08\\x00\\x00\\x00\\x00\\x00!($jr\\x0dN\\x03\\x00\\x00N\\x03\\x00\\x00\\x0b\\x00 \\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\xa4\\x81\\x00\\x00\\x00\\x00README.adocUT\\x05\\x00\\x01\\x80Cm8PK\\x01\\x02\\x14\\x03\\x14\\x00\\x08\\x00\\x00\\x00\\x00\\x00!(M<\\xdf\\xf8\\xdc\\xc9\\x00\\x00\\xdc\\xc9\\x00\\x00\\x0c\\x00 \\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\xa4\\x81\\x90\\x03\\x00\\x00compose.yamlUT\\x05\\x00\\x01\\x80Cm8PK\\x01\\x02\\x14\\x03\\x14\\x00\\x08\\x00\\x00\\x00\\x00\\x00!(;\\xaaT,B\\x07\\x00\\x00B\\x07\\x00\\x00\\n\\x00 \\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\xa4\\x81\\xaf\\xcd\\x00\\x00index.htmlUT\\x05\\x00\\x01\\x80Cm8PK\\x01\\x02\\x14\\x03\\x14\\x00\\x08\\x00\\x00\\x00\\x00\\x00!(\\x05\\xac\\xad\\xf6\\x83^\\x00\\x00\\x83^\\x00\\x00\\x0e\\x00 \\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\xa4\\x812\\xd5\\x00\\x00messaging.yamlUT\\x05\\x00\\x01\\x80Cm8PK\\x01\\x02\\x14\\x03\\x14\\x00\\x08\\x00\\x00\\x00\\x00\\x00!(\\xbf\\n\\x80\\xfc\\xb3\\x13\\x04\\x00\\xb3\\x13\\x04\\x00 \\x00 \\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x80\\x81\\xfa3\\x01\\x00static.goUT\\x05\\x00\\x01\\x80Cm8PK\\x01\\x02\\x14\\x03\\x14\\x00\\x08\\x00\\x00\\x00\\x00\\x00!(\\xdd\\xafQ=I\\xb1\\x00\\x00I\\xb1\\x00\\x00\\x0b\\x00 \\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\xa4\\x81\\xedG\\x05\\x00system.yamlUT\\x05\\x00\\x01\\x80Cm8PK\\x05\\x06\\x00\\x00\\x00\\x00\\x06\\x00\\x06\\x00\\x8d\\x01\\x00\\x00x\\xf9\\x05\\x00\\x00\\x00\"\nPK\x07\x08\x9a_\x07\xd1\xc9Q\x06\x00\xc9Q\x06\x00PK\x03\x04\x14\x00\x08\x00\x00\x00\x00\x00!(\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0b\x00 \x00system.yamlUT\x05\x00\x01\x80Cm8openapi: 3.0.0\ninfo:\n title: Corteza System API\n description: Corteza System REST API definition\n version: 2020.12\n contact:\n email: info@cortezaproject.org\n license:\n name: Apache 2.0\n url: 'http://www.apache.org/licenses/LICENSE-2.0.html'\npaths:\n /auth/:\n get:\n tags:\n - Authentication\n summary: Returns auth settings\n responses:\n '200':\n description: OK\n /auth/check:\n get:\n tags:\n - Authentication\n summary: Check JWT token\n responses:\n '200':\n description: OK\n /auth/impersonate:\n post:\n tags:\n - Authentication\n summary: Impersonate a user\n responses:\n '200':\n description: OK\n requestBody:\n content:\n application/json:\n schema:\n type: object\n properties: &ref_0\n userID:\n type: string\n description: ID of the impersonated user\n required:\n - userID\n application/x-www-form-urlencoded:\n schema:\n type: object\n properties: *ref_0\n /auth/exchange:\n post:\n tags:\n - Authentication\n summary: Exchange auth token for JWT\n responses:\n '200':\n description: OK\n requestBody:\n content:\n application/json:\n schema:\n type: object\n properties: &ref_1\n token:\n type: string\n description: Token to be exchanged for JWT\n required:\n - token\n application/x-www-form-urlencoded:\n schema:\n type: object\n properties: *ref_1\n /auth/logout:\n get:\n tags:\n - Authentication\n summary: Logout\n responses:\n '200':\n description: OK\n /auth/internal/login:\n post:\n tags:\n - Internal authentication\n summary: Login user\n responses:\n '200':\n description: OK\n requestBody:\n content:\n application/json:\n schema:\n type: object\n properties: &ref_2\n email:\n type: string\n description: Email\n password:\n type: string\n format: password\n description: Password\n required:\n - email\n - password\n application/x-www-form-urlencoded:\n schema:\n type: object\n properties: *ref_2\n /auth/internal/signup:\n post:\n tags:\n - Internal authentication\n summary: User signup/registration\n responses:\n '200':\n description: OK\n requestBody:\n content:\n application/json:\n schema:\n type: object\n properties: &ref_3\n email:\n type: string\n description: Email\n username:\n type: string\n description: Username\n password:\n type: string\n format: password\n description: Password\n handle:\n type: string\n description: User handle\n name:\n type: string\n description: Display name\n required:\n - email\n - password\n application/x-www-form-urlencoded:\n schema:\n type: object\n properties: *ref_3\n /auth/internal/request-password-reset:\n post:\n tags:\n - Internal authentication\n summary: Request password reset token (via email)\n responses:\n '200':\n description: OK\n requestBody:\n content:\n application/json:\n schema:\n type: object\n properties: &ref_4\n email:\n type: string\n description: Email\n required:\n - email\n application/x-www-form-urlencoded:\n schema:\n type: object\n properties: *ref_4\n /auth/internal/exchange-password-reset-token:\n post:\n tags:\n - Internal authentication\n summary: Exchange password reset token for new token and user info\n responses:\n '200':\n description: OK\n requestBody:\n content:\n application/json:\n schema:\n type: object\n properties: &ref_5\n token:\n type: string\n description: Token\n required:\n - token\n application/x-www-form-urlencoded:\n schema:\n type: object\n properties: *ref_5\n /auth/internal/reset-password:\n post:\n tags:\n - Internal authentication\n summary: Reset password with exchanged password reset token\n responses:\n '200':\n description: OK\n requestBody:\n content:\n application/json:\n schema:\n type: object\n properties: &ref_6\n token:\n type: string\n description: Token\n password:\n type: string\n format: password\n description: Password\n required:\n - token\n - password\n application/x-www-form-urlencoded:\n schema:\n type: object\n properties: *ref_6\n /auth/internal/confirm-email:\n post:\n tags:\n - Internal authentication\n summary: Confirm email with token\n responses:\n '200':\n description: OK\n requestBody:\n content:\n application/json:\n schema:\n type: object\n properties: &ref_7\n token:\n type: string\n description: Token\n required:\n - token\n application/x-www-form-urlencoded:\n schema:\n type: object\n properties: *ref_7\n /auth/internal/change-password:\n post:\n tags:\n - Internal authentication\n summary: 'Changes password for current user, requires current password'\n responses:\n '200':\n description: OK\n requestBody:\n content:\n application/json:\n schema:\n type: object\n properties: &ref_8\n oldPassword:\n type: string\n description: Old password\n newPassword:\n type: string\n description: New password\n required:\n - oldPassword\n - newPassword\n application/x-www-form-urlencoded:\n schema:\n type: object\n properties: *ref_8\n /settings/:\n get:\n tags:\n - Settings\n summary: List settings\n responses:\n '200':\n description: OK\n parameters:\n - in: query\n name: prefix\n description: Key prefix\n required: false\n schema: &ref_10\n type: string\n patch:\n tags:\n - Settings\n summary: Update settings\n responses:\n '200':\n description: OK\n requestBody:\n content:\n application/json:\n schema:\n type: object\n properties: &ref_9\n values:\n type: array\n items:\n type: object\n properties:\n name:\n type: string\n value:\n type: string\n description: >-\n Array of new settings: `[{ name: ..., value: ... }]`. Omit\n value to remove setting\n required:\n - values\n application/x-www-form-urlencoded:\n schema:\n type: object\n properties: *ref_9\n '/settings/{key}':\n get:\n tags:\n - Settings\n summary: Get a value for a key\n responses:\n '200':\n description: OK\n parameters:\n - in: path\n name: key\n description: Setting key\n required: true\n schema: *ref_10\n - in: query\n name: ownerID\n description: Owner ID\n required: false\n schema: &ref_14\n type: string\n post:\n tags:\n - Settings\n summary: Set value for specific setting\n responses:\n '200':\n description: OK\n parameters:\n - in: path\n name: key\n description: Key\n required: true\n schema: *ref_10\n requestBody:\n content:\n application/json:\n schema:\n type: object\n properties: &ref_11\n upload:\n type: string\n format: binary\n description: File to upload\n ownerID:\n type: string\n description: Owner ID\n application/x-www-form-urlencoded:\n schema:\n type: object\n properties: *ref_11\n /settings/current:\n get:\n tags:\n - Settings\n summary: Current compose settings\n responses:\n '200':\n description: OK\n /subscription/:\n get:\n tags:\n - Subscription\n summary: Returns current subscription status\n responses:\n '200':\n description: OK\n /roles/:\n get:\n tags:\n - Roles\n summary: List roles\n responses:\n '200':\n description: OK\n parameters:\n - in: query\n name: query\n description: Search query\n required: false\n schema: *ref_10\n - in: query\n name: deleted\n description: 'Exclude (0, default), include (1) or return only (2) deleted roles'\n required: false\n schema: &ref_12\n type: string\n - in: query\n name: archived\n description: 'Exclude (0, default), include (1) or return only (2) achived roles'\n required: false\n schema: *ref_12\n - in: query\n name: limit\n description: Limit\n required: false\n schema: *ref_12\n - in: query\n name: pageCursor\n description: Page cursor\n required: false\n schema: *ref_10\n - in: query\n name: sort\n description: Sort items\n required: false\n schema: *ref_10\n post:\n tags:\n - Roles\n summary: Update role details\n responses:\n '200':\n description: OK\n requestBody:\n content:\n application/json:\n schema:\n type: object\n properties: &ref_13\n name:\n type: string\n description: Name of Role\n handle:\n type: string\n description: Handle for Role\n members:\n type: array\n items: *ref_10\n description: Role member IDs\n required:\n - name\n - handle\n application/x-www-form-urlencoded:\n schema:\n type: object\n properties: *ref_13\n '/roles/{roleID}':\n put:\n tags:\n - Roles\n summary: Update role details\n responses:\n '200':\n description: OK\n parameters:\n - in: path\n name: roleID\n description: Role ID\n required: true\n schema: *ref_14\n requestBody:\n content:\n application/json:\n schema:\n type: object\n properties: &ref_15\n name:\n type: string\n description: Name of Role\n handle:\n type: string\n description: Handle for Role\n members:\n type: array\n items: *ref_10\n description: Role member IDs\n application/x-www-form-urlencoded:\n schema:\n type: object\n properties: *ref_15\n get:\n tags:\n - Roles\n summary: Read role details and memberships\n responses:\n '200':\n description: OK\n parameters:\n - in: path\n name: roleID\n description: Role ID\n required: true\n schema: *ref_14\n delete:\n tags:\n - Roles\n summary: Remove role\n responses:\n '200':\n description: OK\n parameters:\n - in: path\n name: roleID\n description: Role ID\n required: true\n schema: *ref_14\n '/roles/{roleID}/archive':\n post:\n tags:\n - Roles\n summary: Archive role\n responses:\n '200':\n description: OK\n parameters:\n - in: path\n name: roleID\n description: Role ID\n required: true\n schema: *ref_14\n '/roles/{roleID}/unarchive':\n post:\n tags:\n - Roles\n summary: Unarchive role\n responses:\n '200':\n description: OK\n parameters:\n - in: path\n name: roleID\n description: Role ID\n required: true\n schema: *ref_14\n '/roles/{roleID}/undelete':\n post:\n tags:\n - Roles\n summary: Undelete role\n responses:\n '200':\n description: OK\n parameters:\n - in: path\n name: roleID\n description: Role ID\n required: true\n schema: *ref_14\n '/roles/{roleID}/move':\n post:\n tags:\n - Roles\n summary: Move role to different organisation\n responses:\n '200':\n description: OK\n parameters:\n - in: path\n name: roleID\n description: Role ID\n required: true\n schema: *ref_14\n requestBody:\n content:\n application/json:\n schema:\n type: object\n properties: &ref_16\n organisationID:\n type: string\n description: Role ID\n required:\n - organisationID\n application/x-www-form-urlencoded:\n schema:\n type: object\n properties: *ref_16\n '/roles/{roleID}/merge':\n post:\n tags:\n - Roles\n summary: Merge one role into another\n responses:\n '200':\n description: OK\n parameters:\n - in: path\n name: roleID\n description: Source Role ID\n required: true\n schema: *ref_14\n requestBody:\n content:\n application/json:\n schema:\n type: object\n properties: &ref_17\n destination:\n type: string\n description: Destination Role ID\n required:\n - destination\n application/x-www-form-urlencoded:\n schema:\n type: object\n properties: *ref_17\n '/roles/{roleID}/members':\n get:\n tags:\n - Roles\n summary: Returns all role members\n responses:\n '200':\n description: OK\n parameters:\n - in: path\n name: roleID\n description: Source Role ID\n required: true\n schema: *ref_14\n '/roles/{roleID}/member/{userID}':\n post:\n tags:\n - Roles\n summary: Add member to a role\n responses:\n '200':\n description: OK\n parameters:\n - in: path\n name: roleID\n description: Source Role ID\n required: true\n schema: *ref_14\n - in: path\n name: userID\n description: User ID\n required: true\n schema: *ref_14\n delete:\n tags:\n - Roles\n summary: Remove member from a role\n responses:\n '200':\n description: OK\n parameters:\n - in: path\n name: roleID\n description: Source Role ID\n required: true\n schema: *ref_14\n - in: path\n name: userID\n description: User ID\n required: true\n schema: *ref_14\n '/roles/{roleID}/trigger':\n post:\n tags:\n - Roles\n summary: 'Fire system:role trigger'\n responses:\n '200':\n description: OK\n parameters:\n - in: path\n name: roleID\n description: ID\n required: true\n schema: *ref_14\n requestBody:\n content:\n application/json:\n schema:\n type: object\n properties: &ref_18\n script:\n type: string\n description: Script to execute\n required:\n - script\n application/x-www-form-urlencoded:\n schema:\n type: object\n properties: *ref_18\n /users/:\n get:\n tags:\n - Users\n summary: Search users (Directory)\n responses:\n '200':\n description: OK\n parameters:\n - in: query\n name: userID\n description: Filter by user ID\n required: false\n schema:\n type: array\n items: *ref_10\n - in: query\n name: roleID\n description: Filter by role membership\n required: false\n schema:\n type: array\n items: *ref_10\n - in: query\n name: query\n description: Search query to match against users\n required: false\n schema: *ref_10\n - in: query\n name: username\n description: Search username to match against users\n required: false\n schema: *ref_10\n - in: query\n name: email\n description: Search email to match against users\n required: false\n schema: *ref_10\n - in: query\n name: handle\n description: Search handle to match against users\n required: false\n schema: *ref_10\n - in: query\n name: kind\n description: 'Kind (normal, bot)'\n required: false\n schema:\n type: string\n - in: query\n name: incDeleted\n description: '[Deprecated] Include deleted users (requires ''access'' permission)'\n required: false\n schema: &ref_19\n type: boolean\n - in: query\n name: incSuspended\n description: '[Deprecated] Include suspended users'\n required: false\n schema: *ref_19\n - in: query\n name: deleted\n description: 'Exclude (0, default), include (1) or return only (2) deleted users'\n required: false\n schema: *ref_12\n - in: query\n name: suspended\n description: 'Exclude (0, default), include (1) or return only (2) suspended users'\n required: false\n schema: *ref_12\n - in: query\n name: limit\n description: Limit\n required: false\n schema: *ref_12\n - in: query\n name: pageCursor\n description: Page cursor\n required: false\n schema: *ref_10\n - in: query\n name: sort\n description: Sort items\n required: false\n schema: *ref_10\n post:\n tags:\n - Users\n summary: Create user\n responses:\n '200':\n description: OK\n requestBody:\n content:\n application/json:\n schema:\n type: object\n properties: &ref_20\n email:\n type: string\n description: Email\n name:\n type: string\n description: Name\n handle:\n type: string\n description: Handle\n kind:\n type: string\n description: 'Kind (normal, bot)'\n required:\n - email\n application/x-www-form-urlencoded:\n schema:\n type: object\n properties: *ref_20\n '/users/{userID}':\n put:\n tags:\n - Users\n summary: Update user details\n responses:\n '200':\n description: OK\n parameters:\n - in: path\n name: userID\n description: User ID\n required: true\n schema: *ref_14\n requestBody:\n content:\n application/json:\n schema:\n type: object\n properties: &ref_21\n email:\n type: string\n description: Email\n name:\n type: string\n description: Name\n handle:\n type: string\n description: Handle\n kind:\n type: string\n description: 'Kind (normal, bot)'\n required:\n - email\n - name\n application/x-www-form-urlencoded:\n schema:\n type: object\n properties: *ref_21\n get:\n tags:\n - Users\n summary: Read user details\n responses:\n '200':\n description: OK\n parameters:\n - in: path\n name: userID\n description: User ID\n required: true\n schema: *ref_14\n delete:\n tags:\n - Users\n summary: Remove user\n responses:\n '200':\n description: OK\n parameters:\n - in: path\n name: userID\n description: User ID\n required: true\n schema: *ref_14\n '/users/{userID}/suspend':\n post:\n tags:\n - Users\n summary: Suspend user\n responses:\n '200':\n description: OK\n parameters:\n - in: path\n name: userID\n description: User ID\n required: true\n schema: *ref_14\n '/users/{userID}/unsuspend':\n post:\n tags:\n - Users\n summary: Unsuspend user\n responses:\n '200':\n description: OK\n parameters:\n - in: path\n name: userID\n description: User ID\n required: true\n schema: *ref_14\n '/users/{userID}/undelete':\n post:\n tags:\n - Users\n summary: Undelete user\n responses:\n '200':\n description: OK\n parameters:\n - in: path\n name: userID\n description: User ID\n required: true\n schema: *ref_14\n '/users/{userID}/password':\n post:\n tags:\n - Users\n summary: Set's or changes user's password\n responses:\n '200':\n description: OK\n parameters:\n - in: path\n name: userID\n description: User ID\n required: true\n schema: *ref_14\n requestBody:\n content:\n application/json:\n schema:\n type: object\n properties: &ref_22\n password:\n type: string\n format: password\n description: New password\n required:\n - password\n application/x-www-form-urlencoded:\n schema:\n type: object\n properties: *ref_22\n '/users/{userID}/membership':\n get:\n tags:\n - Users\n summary: Add member to a role\n responses:\n '200':\n description: OK\n parameters:\n - in: path\n name: userID\n description: User ID\n required: true\n schema: *ref_14\n '/users/{userID}/membership/{roleID}':\n post:\n tags:\n - Users\n summary: Add role to a user\n responses:\n '200':\n description: OK\n parameters:\n - in: path\n name: roleID\n description: Role ID\n required: true\n schema: *ref_14\n - in: path\n name: userID\n description: User ID\n required: true\n schema: *ref_14\n delete:\n tags:\n - Users\n summary: Remove role from a user\n responses:\n '200':\n description: OK\n parameters:\n - in: path\n name: roleID\n description: Role ID\n required: true\n schema: *ref_14\n - in: path\n name: userID\n description: User ID\n required: true\n schema: *ref_14\n '/users/{userID}/trigger':\n post:\n tags:\n - Users\n summary: 'Fire system:user trigger'\n responses:\n '200':\n description: OK\n parameters:\n - in: path\n name: userID\n description: ID\n required: true\n schema: *ref_14\n requestBody:\n content:\n application/json:\n schema:\n type: object\n properties: &ref_23\n script:\n type: string\n description: Script to execute\n required:\n - script\n application/x-www-form-urlencoded:\n schema:\n type: object\n properties: *ref_23\n /application/:\n get:\n tags:\n - Applications\n summary: List applications\n responses:\n '200':\n description: OK\n parameters:\n - in: query\n name: name\n description: Application name\n required: false\n schema: *ref_10\n - in: query\n name: query\n description: Filter applications\n required: false\n schema: *ref_10\n - in: query\n name: deleted\n description: 'Exclude (0, default), include (1) or return only (2) deleted roles'\n required: false\n schema: *ref_12\n - in: query\n name: limit\n description: Limit\n required: false\n schema: *ref_12\n - in: query\n name: pageCursor\n description: Page cursor\n required: false\n schema: *ref_10\n - in: query\n name: sort\n description: Sort items\n required: false\n schema: *ref_10\n post:\n tags:\n - Applications\n summary: Create application\n responses:\n '200':\n description: OK\n requestBody:\n content:\n application/json:\n schema:\n type: object\n properties: &ref_24\n name:\n type: string\n description: Application name\n enabled:\n type: boolean\n description: Enabled\n unify:\n type: string\n format: json\n description: Unify properties\n config:\n type: string\n format: json\n description: Arbitrary JSON holding application configuration\n required:\n - name\n application/x-www-form-urlencoded:\n schema:\n type: object\n properties: *ref_24\n '/application/{applicationID}':\n put:\n tags:\n - Applications\n summary: Update user details\n responses:\n '200':\n description: OK\n parameters:\n - in: path\n name: applicationID\n description: Application ID\n required: true\n schema: *ref_14\n requestBody:\n content:\n application/json:\n schema:\n type: object\n properties: &ref_25\n name:\n type: string\n description: Email\n enabled:\n type: boolean\n description: Enabled\n unify:\n type: string\n format: json\n description: Unify properties\n config:\n type: string\n format: json\n description: Arbitrary JSON holding application configuration\n required:\n - name\n application/x-www-form-urlencoded:\n schema:\n type: object\n properties: *ref_25\n get:\n tags:\n - Applications\n summary: Read application details\n responses:\n '200':\n description: OK\n parameters:\n - in: path\n name: applicationID\n description: Application ID\n required: true\n schema: *ref_14\n delete:\n tags:\n - Applications\n summary: Remove application\n responses:\n '200':\n description: OK\n parameters:\n - in: path\n name: applicationID\n description: Application ID\n required: true\n schema: *ref_14\n '/application/{applicationID}/undelete':\n post:\n tags:\n - Applications\n summary: Undelete application\n responses:\n '200':\n description: OK\n parameters:\n - in: path\n name: applicationID\n description: Application ID\n required: true\n schema: *ref_14\n '/application/{applicationID}/trigger':\n post:\n tags:\n - Applications\n summary: 'Fire system:application trigger'\n responses:\n '200':\n description: OK\n parameters:\n - in: path\n name: applicationID\n description: ID\n required: true\n schema: *ref_14\n requestBody:\n content:\n application/json:\n schema:\n type: object\n properties: &ref_26\n script:\n type: string\n description: Script to execute\n required:\n - script\n application/x-www-form-urlencoded:\n schema:\n type: object\n properties: *ref_26\n /permissions/:\n get:\n tags:\n - Permissions\n summary: Retrieve defined permissions\n responses:\n '200':\n description: OK\n /permissions/effective:\n get:\n tags:\n - Permissions\n summary: Effective rules for current user\n responses:\n '200':\n description: OK\n parameters:\n - in: query\n name: resource\n description: Show only rules for a specific resource\n required: false\n schema: *ref_10\n '/permissions/{roleID}/rules':\n get:\n tags:\n - Permissions\n summary: Retrieve role permissions\n responses:\n '200':\n description: OK\n parameters:\n - in: path\n name: roleID\n description: Role ID\n required: true\n schema: *ref_14\n delete:\n tags:\n - Permissions\n summary: Remove all defined role permissions\n responses:\n '200':\n description: OK\n parameters:\n - in: path\n name: roleID\n description: Role ID\n required: true\n schema: *ref_14\n patch:\n tags:\n - Permissions\n summary: Update permission settings\n responses:\n '200':\n description: OK\n parameters:\n - in: path\n name: roleID\n description: Role ID\n required: true\n schema: *ref_14\n requestBody:\n content:\n application/json:\n schema:\n type: object\n properties: &ref_27\n rules:\n type: array\n items:\n type: object\n properties:\n roleID:\n type: string\n format: uuid\n resource:\n type: string\n operation:\n type: string\n access:\n type: string\n description: List of permission rules to set\n required:\n - rules\n application/x-www-form-urlencoded:\n schema:\n type: object\n properties: *ref_27\n /reminder/:\n get:\n tags:\n - Reminders\n summary: List/read reminders\n responses:\n '200':\n description: OK\n parameters:\n - in: query\n name: reminderID\n description: Filter by reminder ID\n required: false\n schema:\n type: array\n items: *ref_10\n - in: query\n name: resource\n description: Only reminders of a specific resource\n required: false\n schema: *ref_10\n - in: query\n name: assignedTo\n description: Only reminders for a given user\n required: false\n schema: *ref_14\n - in: query\n name: scheduledFrom\n description: Only reminders from this time (included)\n required: false\n schema: &ref_28\n type: string\n format: date-time\n - in: query\n name: scheduledUntil\n description: Only reminders up to this time (included)\n required: false\n schema: *ref_28\n - in: query\n name: scheduledOnly\n description: Only scheduled reminders\n required: false\n schema: *ref_19\n - in: query\n name: excludeDismissed\n description: Filter out dismissed reminders\n required: false\n schema: *ref_19\n - in: query\n name: limit\n description: Limit\n required: false\n schema: *ref_12\n - in: query\n name: pageCursor\n description: Page cursor\n required: false\n schema: *ref_10\n - in: query\n name: sort\n description: Sort items\n required: false\n schema: *ref_10\n post:\n tags:\n - Reminders\n summary: Add new reminder\n responses:\n '200':\n description: OK\n requestBody:\n content:\n application/json:\n schema:\n type: object\n properties: &ref_29\n resource:\n type: string\n description: Resource\n assignedTo:\n type: string\n description: Assigned To\n payload:\n type: string\n format: json\n description: Payload\n remindAt:\n type: string\n format: date-time\n description: Remind At\n required:\n - resource\n - assignedTo\n - payload\n application/x-www-form-urlencoded:\n schema:\n type: object\n properties: *ref_29\n '/reminder/{reminderID}':\n put:\n tags:\n - Reminders\n summary: Update reminder\n responses:\n '200':\n description: OK\n parameters:\n - in: path\n name: reminderID\n description: Reminder ID\n required: true\n schema: *ref_14\n requestBody:\n content:\n application/json:\n schema:\n type: object\n properties: &ref_30\n resource:\n type: string\n description: Resource\n assignedTo:\n type: string\n description: Assigned To\n payload:\n type: string\n format: json\n description: Payload\n remindAt:\n type: string\n format: date-time\n description: Remind At\n required:\n - resource\n - assignedTo\n - payload\n application/x-www-form-urlencoded:\n schema:\n type: object\n properties: *ref_30\n get:\n tags:\n - Reminders\n summary: Read reminder by ID\n responses:\n '200':\n description: OK\n parameters:\n - in: path\n name: reminderID\n description: Reminder ID\n required: true\n schema: *ref_14\n delete:\n tags:\n - Reminders\n summary: Delete reminder\n responses:\n '200':\n description: OK\n parameters:\n - in: path\n name: reminderID\n description: Reminder ID\n required: true\n schema: *ref_14\n '/reminder/{reminderID}/dismiss':\n patch:\n tags:\n - Reminders\n summary: Dismiss reminder\n responses:\n '200':\n description: OK\n parameters:\n - in: path\n name: reminderID\n description: reminder ID\n required: true\n schema: *ref_14\n '/reminder/{reminderID}/snooze':\n patch:\n tags:\n - Reminders\n summary: Snooze reminder\n responses:\n '200':\n description: OK\n parameters:\n - in: path\n name: reminderID\n description: reminder ID\n required: true\n schema: *ref_14\n requestBody:\n content:\n application/json:\n schema:\n type: object\n properties: &ref_31\n remindAt:\n type: string\n format: date-time\n description: New Remind At Time\n required:\n - remindAt\n application/x-www-form-urlencoded:\n schema:\n type: object\n properties: *ref_31\n '/attachment/{kind}/{attachmentID}':\n get:\n tags:\n - Attachments\n summary: Attachment details\n responses:\n '200':\n description: OK\n parameters:\n - in: path\n name: kind\n description: Kind\n required: true\n schema: *ref_10\n - in: path\n name: attachmentID\n description: Attachment ID\n required: true\n schema: *ref_14\n - in: query\n name: sign\n description: Signature\n required: false\n schema: *ref_10\n - in: query\n name: userID\n description: User ID\n required: false\n schema: *ref_14\n delete:\n tags:\n - Attachments\n summary: Delete attachment\n responses:\n '200':\n description: OK\n parameters:\n - in: path\n name: kind\n description: Kind\n required: true\n schema: *ref_10\n - in: path\n name: attachmentID\n description: Attachment ID\n required: true\n schema: *ref_14\n - in: query\n name: sign\n description: Signature\n required: false\n schema: *ref_10\n - in: query\n name: userID\n description: User ID\n required: false\n schema: *ref_14\n '/attachment/{kind}/{attachmentID}/original/{name}':\n get:\n tags:\n - Attachments\n summary: Serves attached file\n responses:\n '200':\n description: OK\n parameters:\n - in: path\n name: kind\n description: Kind\n required: true\n schema: *ref_10\n - in: path\n name: attachmentID\n description: Attachment ID\n required: true\n schema: *ref_14\n - in: path\n name: name\n description: File name\n required: true\n schema: *ref_10\n - in: query\n name: sign\n description: Signature\n required: false\n schema: *ref_10\n - in: query\n name: userID\n description: User ID\n required: false\n schema: *ref_14\n - in: query\n name: download\n description: Force file download\n required: false\n schema: *ref_19\n '/attachment/{kind}/{attachmentID}/preview.{ext}':\n get:\n tags:\n - Attachments\n summary: Serves preview of an attached file\n responses:\n '200':\n description: OK\n parameters:\n - in: path\n name: kind\n description: Kind\n required: true\n schema: *ref_10\n - in: path\n name: attachmentID\n description: Attachment ID\n required: true\n schema: *ref_14\n - in: path\n name: ext\n description: Preview extension/format\n required: true\n schema: *ref_10\n - in: query\n name: sign\n description: Signature\n required: false\n schema: *ref_10\n - in: query\n name: userID\n description: User ID\n required: false\n schema: *ref_14\n /stats/:\n get:\n tags:\n - Statistics\n summary: List system statistics\n responses:\n '200':\n description: OK\n /automation/:\n get:\n tags:\n - System automation scripts\n summary: List all available automation scripts for system resources\n responses:\n '200':\n description: OK\n parameters:\n - in: query\n name: resourceTypePrefixes\n description: Filter by resource prefix\n required: false\n schema:\n type: array\n items: *ref_10\n - in: query\n name: resourceTypes\n description: Filter by resource type\n required: false\n schema:\n type: array\n items: *ref_10\n - in: query\n name: eventTypes\n description: Filter by event type\n required: false\n schema:\n type: array\n items: *ref_10\n - in: query\n name: excludeInvalid\n description: Exclude scripts that can not be used (errors)\n required: false\n schema: *ref_19\n - in: query\n name: excludeClientScripts\n description: Do not include client scripts\n required: false\n schema: *ref_19\n - in: query\n name: excludeServerScripts\n description: Do not include server scripts\n required: false\n schema: *ref_19\n '/automation/{bundle}-{type}.{ext}':\n get:\n tags:\n - System automation scripts\n summary: Serves client scripts bundle\n responses:\n '200':\n description: OK\n parameters:\n - in: path\n name: bundle\n description: Name of the bundle\n required: true\n schema: *ref_10\n - in: path\n name: type\n description: Bundle type\n required: true\n schema: *ref_10\n - in: path\n name: ext\n description: Bundle extension\n required: true\n schema: *ref_10\n /automation/trigger:\n post:\n tags:\n - System automation scripts\n summary: Triggers execution of a specific script on a system service level\n responses:\n '200':\n description: OK\n requestBody:\n content:\n application/json:\n schema:\n type: object\n properties: &ref_32\n script:\n type: string\n description: Script to execute\n required:\n - script\n application/x-www-form-urlencoded:\n schema:\n type: object\n properties: *ref_32\n /actionlog/:\n get:\n tags:\n - Action log\n summary: Action log events\n responses:\n '200':\n description: OK\n parameters:\n - in: query\n name: from\n description: From\n required: false\n schema: *ref_28\n - in: query\n name: to\n description: To\n required: false\n schema: *ref_28\n - in: query\n name: resource\n description: Resource\n required: false\n schema: *ref_10\n - in: query\n name: action\n description: Action\n required: false\n schema: *ref_10\n - in: query\n name: actorID\n description: Filter by one or more actors\n required: false\n schema:\n type: array\n items: *ref_10\n - in: query\n name: limit\n description: Limit\n required: false\n schema: *ref_12\n - in: query\n name: pageCursor\n description: Page cursor\n required: false\n schema: *ref_10\nPK\x07\x08\xdd\xafQ=I\xb1\x00\x00I\xb1\x00\x00PK\x01\x02\x14\x03\x14\x00\x08\x00\x00\x00\x00\x00!($jr\x0dN\x03\x00\x00N\x03\x00\x00\x0b\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x81\x00\x00\x00\x00README.adocUT\x05\x00\x01\x80Cm8PK\x01\x02\x14\x03\x14\x00\x08\x00\x00\x00\x00\x00!(M<\xdf\xf8\xdc\xc9\x00\x00\xdc\xc9\x00\x00\x0c\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x81\x90\x03\x00\x00compose.yamlUT\x05\x00\x01\x80Cm8PK\x01\x02\x14\x03\x14\x00\x08\x00\x00\x00\x00\x00!(\xbf\xfb\xf2\xdd0\x07\x00\x000\x07\x00\x00\n\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x81\xaf\xcd\x00\x00index.htmlUT\x05\x00\x01\x80Cm8PK\x01\x02\x14\x03\x14\x00\x08\x00\x00\x00\x00\x00!(\x05\xac\xad\xf6\x83^\x00\x00\x83^\x00\x00\x0e\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x81 \xd5\x00\x00messaging.yamlUT\x05\x00\x01\x80Cm8PK\x01\x02\x14\x03\x14\x00\x08\x00\x00\x00\x00\x00!(\x9a_\x07\xd1\xc9Q\x06\x00\xc9Q\x06\x00 \x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x81\xe83\x01\x00static.goUT\x05\x00\x01\x80Cm8PK\x01\x02\x14\x03\x14\x00\x08\x00\x00\x00\x00\x00!(\xdd\xafQ=I\xb1\x00\x00I\xb1\x00\x00\x0b\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x81\xf1\x85\x07\x00system.yamlUT\x05\x00\x01\x80Cm8PK\x05\x06\x00\x00\x00\x00\x06\x00\x06\x00\x8d\x01\x00\x00|7\x08\x00\x00\x00"